From: Thomas Garnier Subject: [RFC v2 01/23] x86/crypto: Adapt assembly for PIE support Date: Thu, 10 Aug 2017 10:25:53 -0700 Message-ID: <20170810172615.51965-2-thgarnie@google.com> References: <20170810172615.51965-1-thgarnie@google.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: linux-arch@vger.kernel.org, kvm@vger.kernel.org, linux-pm@vger.kernel.org, x86@kernel.org, linux-kernel@vger.kernel.org, linux-sparse@vger.kernel.org, linux-crypto@vger.kernel.org, kernel-hardening@lists.openwall.com, xen-devel@lists.xenproject.org To: Herbert Xu , "David S . Miller" , Thomas Gleixner , Ingo Molnar , "H . Peter Anvin" , Peter Zijlstra , Josh Poimboeuf , Arnd Bergmann , Thomas Garnier , Matthias Kaehlcke , Boris Ostrovsky , Juergen Gross , Paolo Bonzini , =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= , Joerg Roedel , Tom Lendacky , Andy Lutomirski , Borislav Petkov , Brian Gerst , "Kirill A . Shutemov" , "Rafael J . Wysocki" , Len Brown , Pavel Machek Return-path: In-Reply-To: <20170810172615.51965-1-thgarnie@google.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" List-Id: linux-crypto.vger.kernel.org Q2hhbmdlIHRoZSBhc3NlbWJseSBjb2RlIHRvIHVzZSBvbmx5IHJlbGF0aXZlIHJlZmVyZW5jZXMg b2Ygc3ltYm9scyBmb3IgdGhlCmtlcm5lbCB0byBiZSBQSUUgY29tcGF0aWJsZS4KClBvc2l0aW9u IEluZGVwZW5kZW50IEV4ZWN1dGFibGUgKFBJRSkgc3VwcG9ydCB3aWxsIGFsbG93IHRvIGV4dGVu ZGVkIHRoZQpLQVNMUiByYW5kb21pemF0aW9uIHJhbmdlIGJlbG93IHRoZSAtMkcgbWVtb3J5IGxp bWl0LgoKU2lnbmVkLW9mZi1ieTogVGhvbWFzIEdhcm5pZXIgPHRoZ2FybmllQGdvb2dsZS5jb20+ Ci0tLQogYXJjaC94ODYvY3J5cHRvL2Flcy14ODZfNjQtYXNtXzY0LlMgICAgICAgICAgfCA0NSAr KysrKysrKy0tLS0tCiBhcmNoL3g4Ni9jcnlwdG8vYWVzbmktaW50ZWxfYXNtLlMgICAgICAgICAg ICB8IDE0ICsrLS0KIGFyY2gveDg2L2NyeXB0by9hZXNuaS1pbnRlbF9hdngteDg2XzY0LlMgICAg IHwgIDYgKy0KIGFyY2gveDg2L2NyeXB0by9jYW1lbGxpYS1hZXNuaS1hdngtYXNtXzY0LlMgIHwg NDIgKysrKysrLS0tLS0tCiBhcmNoL3g4Ni9jcnlwdG8vY2FtZWxsaWEtYWVzbmktYXZ4Mi1hc21f NjQuUyB8IDQ0ICsrKysrKy0tLS0tLS0KIGFyY2gveDg2L2NyeXB0by9jYW1lbGxpYS14ODZfNjQt YXNtXzY0LlMgICAgIHwgIDggKystCiBhcmNoL3g4Ni9jcnlwdG8vY2FzdDUtYXZ4LXg4Nl82NC1h c21fNjQuUyAgICB8IDUwICsrKysrKysrLS0tLS0tLQogYXJjaC94ODYvY3J5cHRvL2Nhc3Q2LWF2 eC14ODZfNjQtYXNtXzY0LlMgICAgfCA0NCArKysrKysrLS0tLS0tCiBhcmNoL3g4Ni9jcnlwdG8v ZGVzM19lZGUtYXNtXzY0LlMgICAgICAgICAgICB8IDk2ICsrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0KIGFyY2gveDg2L2NyeXB0by9naGFzaC1jbG11bG5pLWludGVsX2FzbS5TICAgIHwgIDQg Ky0KIGFyY2gveDg2L2NyeXB0by9nbHVlX2hlbHBlci1hc20tYXZ4LlMgICAgICAgIHwgIDQgKy0K IGFyY2gveDg2L2NyeXB0by9nbHVlX2hlbHBlci1hc20tYXZ4Mi5TICAgICAgIHwgIDYgKy0KIDEy IGZpbGVzIGNoYW5nZWQsIDIxMSBpbnNlcnRpb25zKCspLCAxNTIgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvYXJjaC94ODYvY3J5cHRvL2Flcy14ODZfNjQtYXNtXzY0LlMgYi9hcmNoL3g4Ni9j cnlwdG8vYWVzLXg4Nl82NC1hc21fNjQuUwppbmRleCA4NzM5Y2Y3Nzk1ZGUuLjg2ZmEwNjhlNWU4 MSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvY3J5cHRvL2Flcy14ODZfNjQtYXNtXzY0LlMKKysrIGIv YXJjaC94ODYvY3J5cHRvL2Flcy14ODZfNjQtYXNtXzY0LlMKQEAgLTQ4LDggKzQ4LDEyIEBACiAj ZGVmaW5lIFIxMAklcjEwCiAjZGVmaW5lIFIxMQklcjExCiAKKy8qIEhvbGQgZ2xvYmFsIGZvciBQ SUUgc3Vwb3J0ICovCisjZGVmaW5lIFJCQVNFCSVyMTIKKwogI2RlZmluZSBwcm9sb2d1ZShGVU5D LEtFWSxCMTI4LEIxOTIscjEscjIscjUscjYscjcscjgscjkscjEwLHIxMSkgXAogCUVOVFJZKEZV TkMpOwkJCVwKKwlwdXNocQlSQkFTRTsJCQlcCiAJbW92cQlyMSxyMjsJCQlcCiAJbGVhcQlLRVkr NDgocjgpLHI5OwkJXAogCW1vdnEJcjEwLHIxMTsJCVwKQEAgLTc0LDU0ICs3OCw2MyBAQAogCW1v dmwJcjYgIyMgRSw0KHI5KTsJCVwKIAltb3ZsCXI3ICMjIEUsOChyOSk7CQlcCiAJbW92bAlyOCAj IyBFLDEyKHI5KTsJCVwKKwlwb3BxCVJCQVNFOwkJCVwKIAlyZXQ7CQkJCVwKIAlFTkRQUk9DKEZV TkMpOwogCisjZGVmaW5lIHJvdW5kX21vdih0YWJfb2ZmLCByZWdfaSwgcmVnX28pIFwKKwlsZWFx CXRhYl9vZmYoJXJpcCksIFJCQVNFOyBcCisJbW92bAkoUkJBU0UscmVnX2ksNCksIHJlZ19vOwor CisjZGVmaW5lIHJvdW5kX3hvcih0YWJfb2ZmLCByZWdfaSwgcmVnX28pIFwKKwlsZWFxCXRhYl9v ZmYoJXJpcCksIFJCQVNFOyBcCisJeG9ybAkoUkJBU0UscmVnX2ksNCksIHJlZ19vOworCiAjZGVm aW5lIHJvdW5kKFRBQixPRkZTRVQscjEscjIscjMscjQscjUscjYscjcscjgscmEscmIscmMscmQp IFwKIAltb3Z6YmwJcjIgIyMgSCxyNSAjIyBFOwlcCiAJbW92emJsCXIyICMjIEwscjYgIyMgRTsJ XAotCW1vdmwJVEFCKzEwMjQoLHI1LDQpLHI1ICMjIEU7XAorCXJvdW5kX21vdihUQUIrMTAyNCwg cjUsIHI1ICMjIEUpXAogCW1vdncJcjQgIyMgWCxyMiAjIyBYOwlcCi0JbW92bAlUQUIoLHI2LDQp LHI2ICMjIEU7CVwKKwlyb3VuZF9tb3YoVEFCLCByNiwgcjYgIyMgRSkJXAogCXJvbGwJJDE2LHIy ICMjIEU7CQlcCiAJc2hybAkkMTYscjQgIyMgRTsJCVwKIAltb3Z6YmwJcjQgIyMgTCxyNyAjIyBF OwlcCiAJbW92emJsCXI0ICMjIEgscjQgIyMgRTsJXAogCXhvcmwJT0ZGU0VUKHI4KSxyYSAjIyBF OwlcCiAJeG9ybAlPRkZTRVQrNChyOCkscmIgIyMgRTsJXAotCXhvcmwJVEFCKzMwNzIoLHI0LDQp LHI1ICMjIEU7XAotCXhvcmwJVEFCKzIwNDgoLHI3LDQpLHI2ICMjIEU7XAorCXJvdW5kX3hvcihU QUIrMzA3MiwgcjQsIHI1ICMjIEUpXAorCXJvdW5kX3hvcihUQUIrMjA0OCwgcjcsIHI2ICMjIEUp XAogCW1vdnpibAlyMSAjIyBMLHI3ICMjIEU7CVwKIAltb3Z6YmwJcjEgIyMgSCxyNCAjIyBFOwlc Ci0JbW92bAlUQUIrMTAyNCgscjQsNCkscjQgIyMgRTtcCisJcm91bmRfbW92KFRBQisxMDI0LCBy NCwgcjQgIyMgRSlcCiAJbW92dwlyMyAjIyBYLHIxICMjIFg7CVwKIAlyb2xsCSQxNixyMSAjIyBF OwkJXAogCXNocmwJJDE2LHIzICMjIEU7CQlcCi0JeG9ybAlUQUIoLHI3LDQpLHI1ICMjIEU7CVwK Kwlyb3VuZF94b3IoVEFCLCByNywgcjUgIyMgRSkJXAogCW1vdnpibAlyMyAjIyBMLHI3ICMjIEU7 CVwKIAltb3Z6YmwJcjMgIyMgSCxyMyAjIyBFOwlcCi0JeG9ybAlUQUIrMzA3MigscjMsNCkscjQg IyMgRTtcCi0JeG9ybAlUQUIrMjA0OCgscjcsNCkscjUgIyMgRTtcCisJcm91bmRfeG9yKFRBQisz MDcyLCByMywgcjQgIyMgRSlcCisJcm91bmRfeG9yKFRBQisyMDQ4LCByNywgcjUgIyMgRSlcCiAJ bW92emJsCXIxICMjIEwscjcgIyMgRTsJXAogCW1vdnpibAlyMSAjIyBILHIzICMjIEU7CVwKIAlz aHJsCSQxNixyMSAjIyBFOwkJXAotCXhvcmwJVEFCKzMwNzIoLHIzLDQpLHI2ICMjIEU7XAotCW1v dmwJVEFCKzIwNDgoLHI3LDQpLHIzICMjIEU7XAorCXJvdW5kX3hvcihUQUIrMzA3MiwgcjMsIHI2 ICMjIEUpXAorCXJvdW5kX21vdihUQUIrMjA0OCwgcjcsIHIzICMjIEUpXAogCW1vdnpibAlyMSAj IyBMLHI3ICMjIEU7CVwKIAltb3Z6YmwJcjEgIyMgSCxyMSAjIyBFOwlcCi0JeG9ybAlUQUIrMTAy NCgscjEsNCkscjYgIyMgRTtcCi0JeG9ybAlUQUIoLHI3LDQpLHIzICMjIEU7CVwKKwlyb3VuZF94 b3IoVEFCKzEwMjQsIHIxLCByNiAjIyBFKVwKKwlyb3VuZF94b3IoVEFCLCByNywgcjMgIyMgRSkJ XAogCW1vdnpibAlyMiAjIyBILHIxICMjIEU7CVwKIAltb3Z6YmwJcjIgIyMgTCxyNyAjIyBFOwlc CiAJc2hybAkkMTYscjIgIyMgRTsJCVwKLQl4b3JsCVRBQiszMDcyKCxyMSw0KSxyMyAjIyBFO1wK LQl4b3JsCVRBQisyMDQ4KCxyNyw0KSxyNCAjIyBFO1wKKwlyb3VuZF94b3IoVEFCKzMwNzIsIHIx LCByMyAjIyBFKVwKKwlyb3VuZF94b3IoVEFCKzIwNDgsIHI3LCByNCAjIyBFKVwKIAltb3Z6YmwJ cjIgIyMgSCxyMSAjIyBFOwlcCiAJbW92emJsCXIyICMjIEwscjIgIyMgRTsJXAogCXhvcmwJT0ZG U0VUKzgocjgpLHJjICMjIEU7CVwKIAl4b3JsCU9GRlNFVCsxMihyOCkscmQgIyMgRTsJXAotCXhv cmwJVEFCKzEwMjQoLHIxLDQpLHIzICMjIEU7XAotCXhvcmwJVEFCKCxyMiw0KSxyNCAjIyBFOwor CXJvdW5kX3hvcihUQUIrMTAyNCwgcjEsIHIzICMjIEUpXAorCXJvdW5kX3hvcihUQUIsIHIyLCBy NCAjIyBFKQogCiAjZGVmaW5lIG1vdmVfcmVncyhyMSxyMixyMyxyNCkgXAogCW1vdmwJcjMgIyMg RSxyMSAjIyBFOwlcCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9jcnlwdG8vYWVzbmktaW50ZWxfYXNt LlMgYi9hcmNoL3g4Ni9jcnlwdG8vYWVzbmktaW50ZWxfYXNtLlMKaW5kZXggMTY2MjdmZWM4MGIy Li41ZjczMjAxZGZmMzIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2NyeXB0by9hZXNuaS1pbnRlbF9h c20uUworKysgYi9hcmNoL3g4Ni9jcnlwdG8vYWVzbmktaW50ZWxfYXNtLlMKQEAgLTMyNSw3ICsz MjUsOCBAQCBfZ2V0X0FBRF9yZXN0MFxudW1faW5pdGlhbF9ibG9ja3Ncb3BlcmF0aW9uOgogCXZw c2h1ZmIgYW5kIGFuIGFycmF5IG9mIHNodWZmbGUgbWFza3MgKi8KIAltb3ZxCSAgICVyMTIsICVy MTEKIAlzYWxxCSAgICQ0LCAlcjExCi0JbW92ZHF1CSAgIGFhZF9zaGlmdF9hcnIoJXIxMSksIFxU TVAxCisJbGVhcQkgICBhYWRfc2hpZnRfYXJyKCVyaXApLCAlcmF4CisJbW92ZHF1CSAgICglcmF4 LCVyMTEsKSwgXFRNUDEKIAlQU0hVRkJfWE1NIFxUTVAxLCAleG1tXGkKIF9nZXRfQUFEX3Jlc3Rf ZmluYWxcbnVtX2luaXRpYWxfYmxvY2tzXG9wZXJhdGlvbjoKIAlQU0hVRkJfWE1NICAgJXhtbTE0 LCAleG1tXGkgIyBieXRlLXJlZmxlY3QgdGhlIEFBRCBkYXRhCkBAIC01ODQsNyArNTg1LDggQEAg X2dldF9BQURfcmVzdDBcbnVtX2luaXRpYWxfYmxvY2tzXG9wZXJhdGlvbjoKIAl2cHNodWZiIGFu ZCBhbiBhcnJheSBvZiBzaHVmZmxlIG1hc2tzICovCiAJbW92cQkgICAlcjEyLCAlcjExCiAJc2Fs cQkgICAkNCwgJXIxMQotCW1vdmRxdQkgICBhYWRfc2hpZnRfYXJyKCVyMTEpLCBcVE1QMQorCWxl YXEJICAgYWFkX3NoaWZ0X2FyciglcmlwKSwgJXJheAorCW1vdmRxdQkgICAoJXJheCwlcjExLCks IFxUTVAxCiAJUFNIVUZCX1hNTSBcVE1QMSwgJXhtbVxpCiBfZ2V0X0FBRF9yZXN0X2ZpbmFsXG51 bV9pbml0aWFsX2Jsb2Nrc1xvcGVyYXRpb246CiAJUFNIVUZCX1hNTSAgICV4bW0xNCwgJXhtbVxp ICMgYnl0ZS1yZWZsZWN0IHRoZSBBQUQgZGF0YQpAQCAtMjcyMiw3ICsyNzI0LDcgQEAgRU5EUFJP QyhhZXNuaV9jYmNfZGVjKQogICovCiAuYWxpZ24gNAogX2Flc25pX2luY19pbml0OgotCW1vdmFw cyAuTGJzd2FwX21hc2ssIEJTV0FQX01BU0sKKwltb3ZhcHMgLkxic3dhcF9tYXNrKCVyaXApLCBC U1dBUF9NQVNLCiAJbW92YXBzIElWLCBDVFIKIAlQU0hVRkJfWE1NIEJTV0FQX01BU0sgQ1RSCiAJ bW92ICQxLCBUQ1RSX0xPVwpAQCAtMjg1MCwxMiArMjg1MiwxMiBAQCBFTlRSWShhZXNuaV94dHNf Y3J5cHQ4KQogCWNtcGIgJDAsICVjbAogCW1vdmwgJDAsICVlY3gKIAltb3ZsICQyNDAsICVyMTBk Ci0JbGVhcSBfYWVzbmlfZW5jNCwgJXIxMQotCWxlYXEgX2Flc25pX2RlYzQsICVyYXgKKwlsZWFx IF9hZXNuaV9lbmM0KCVyaXApLCAlcjExCisJbGVhcSBfYWVzbmlfZGVjNCglcmlwKSwgJXJheAog CWNtb3ZlbCAlcjEwZCwgJWVjeAogCWNtb3ZlcSAlcmF4LCAlcjExCiAKLQltb3ZkcWEgLkxnZjEy OG11bF94X2JsZV9tYXNrLCBHRjEyOE1VTF9NQVNLCisJbW92ZHFhIC5MZ2YxMjhtdWxfeF9ibGVf bWFzayglcmlwKSwgR0YxMjhNVUxfTUFTSwogCW1vdnVwcyAoSVZQKSwgSVYKIAogCW1vdiA0ODAo S0VZUCksIEtMRU4KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9hZXNuaS1pbnRlbF9hdngt eDg2XzY0LlMgYi9hcmNoL3g4Ni9jcnlwdG8vYWVzbmktaW50ZWxfYXZ4LXg4Nl82NC5TCmluZGV4 IGZhZWNiMTUxOGJmOC4uNDg4NjA1YjE5ZmU4IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9jcnlwdG8v YWVzbmktaW50ZWxfYXZ4LXg4Nl82NC5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9hZXNuaS1pbnRl bF9hdngteDg2XzY0LlMKQEAgLTQ1NCw3ICs0NTQsOCBAQCBfZ2V0X0FBRF9yZXN0MFxAOgogCXZw c2h1ZmIgYW5kIGFuIGFycmF5IG9mIHNodWZmbGUgbWFza3MgKi8KIAltb3ZxICAgICVyMTIsICVy MTEKIAlzYWxxICAgICQ0LCAlcjExCi0JbW92ZHF1ICBhYWRfc2hpZnRfYXJyKCVyMTEpLCBcVDEK KwlsZWFxCWFhZF9zaGlmdF9hcnIoJXJpcCksICVyYXgKKwltb3ZkcXUgICglcmF4LCVyMTEsKSwg XFQxCiAJdnBzaHVmYiBcVDEsIHJlZ19pLCByZWdfaQogX2dldF9BQURfcmVzdF9maW5hbFxAOgog CXZwc2h1ZmIgU0hVRl9NQVNLKCVyaXApLCByZWdfaSwgcmVnX2kKQEAgLTE3NjEsNyArMTc2Miw4 IEBAIF9nZXRfQUFEX3Jlc3QwXEA6CiAJdnBzaHVmYiBhbmQgYW4gYXJyYXkgb2Ygc2h1ZmZsZSBt YXNrcyAqLwogCW1vdnEgICAgJXIxMiwgJXIxMQogCXNhbHEgICAgJDQsICVyMTEKLQltb3ZkcXUg IGFhZF9zaGlmdF9hcnIoJXIxMSksIFxUMQorCWxlYXEJYWFkX3NoaWZ0X2FyciglcmlwKSwgJXJh eAorCW1vdmRxdSAgKCVyYXgsJXIxMSwpLCBcVDEKIAl2cHNodWZiIFxUMSwgcmVnX2ksIHJlZ19p CiBfZ2V0X0FBRF9yZXN0X2ZpbmFsXEA6CiAJdnBzaHVmYiBTSFVGX01BU0soJXJpcCksIHJlZ19p LCByZWdfaQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvY3J5cHRvL2NhbWVsbGlhLWFlc25pLWF2eC1h c21fNjQuUyBiL2FyY2gveDg2L2NyeXB0by9jYW1lbGxpYS1hZXNuaS1hdngtYXNtXzY0LlMKaW5k ZXggZjdjNDk1ZTI4NjNjLi40NmZlYWVhNTI2MzIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2NyeXB0 by9jYW1lbGxpYS1hZXNuaS1hdngtYXNtXzY0LlMKKysrIGIvYXJjaC94ODYvY3J5cHRvL2NhbWVs bGlhLWFlc25pLWF2eC1hc21fNjQuUwpAQCAtNTIsMTAgKzUyLDEwIEBACiAJLyogXAogCSAqIFMt ZnVuY3Rpb24gd2l0aCBBRVMgc3ViYnl0ZXMgXAogCSAqLyBcCi0Jdm1vdmRxYSAuTGludl9zaGlm dF9yb3csIHQ0OyBcCi0JdmJyb2FkY2FzdHNzIC5MMGYwZjBmMGYsIHQ3OyBcCi0Jdm1vdmRxYSAu THByZV90Zl9sb19zMSwgdDA7IFwKLQl2bW92ZHFhIC5McHJlX3RmX2hpX3MxLCB0MTsgXAorCXZt b3ZkcWEgLkxpbnZfc2hpZnRfcm93KCVyaXApLCB0NDsgXAorCXZicm9hZGNhc3RzcyAuTDBmMGYw ZjBmKCVyaXApLCB0NzsgXAorCXZtb3ZkcWEgLkxwcmVfdGZfbG9fczEoJXJpcCksIHQwOyBcCisJ dm1vdmRxYSAuTHByZV90Zl9oaV9zMSglcmlwKSwgdDE7IFwKIAlcCiAJLyogQUVTIGludmVyc2Ug c2hpZnQgcm93cyAqLyBcCiAJdnBzaHVmYiB0NCwgeDAsIHgwOyBcCkBAIC02OCw4ICs2OCw4IEBA CiAJdnBzaHVmYiB0NCwgeDYsIHg2OyBcCiAJXAogCS8qIHByZWZpbHRlciBzYm94ZXMgMSwgMiBh bmQgMyAqLyBcCi0Jdm1vdmRxYSAuTHByZV90Zl9sb19zNCwgdDI7IFwKLQl2bW92ZHFhIC5McHJl X3RmX2hpX3M0LCB0MzsgXAorCXZtb3ZkcWEgLkxwcmVfdGZfbG9fczQoJXJpcCksIHQyOyBcCisJ dm1vdmRxYSAuTHByZV90Zl9oaV9zNCglcmlwKSwgdDM7IFwKIAlmaWx0ZXJfOGJpdCh4MCwgdDAs IHQxLCB0NywgdDYpOyBcCiAJZmlsdGVyXzhiaXQoeDcsIHQwLCB0MSwgdDcsIHQ2KTsgXAogCWZp bHRlcl84Yml0KHgxLCB0MCwgdDEsIHQ3LCB0Nik7IFwKQEAgLTgzLDggKzgzLDggQEAKIAlmaWx0 ZXJfOGJpdCh4NiwgdDIsIHQzLCB0NywgdDYpOyBcCiAJXAogCS8qIEFFUyBzdWJieXRlcyArIEFF UyBzaGlmdCByb3dzICovIFwKLQl2bW92ZHFhIC5McG9zdF90Zl9sb19zMSwgdDA7IFwKLQl2bW92 ZHFhIC5McG9zdF90Zl9oaV9zMSwgdDE7IFwKKwl2bW92ZHFhIC5McG9zdF90Zl9sb19zMSglcmlw KSwgdDA7IFwKKwl2bW92ZHFhIC5McG9zdF90Zl9oaV9zMSglcmlwKSwgdDE7IFwKIAl2YWVzZW5j bGFzdCB0NCwgeDAsIHgwOyBcCiAJdmFlc2VuY2xhc3QgdDQsIHg3LCB4NzsgXAogCXZhZXNlbmNs YXN0IHQ0LCB4MSwgeDE7IFwKQEAgLTk1LDE2ICs5NSwxNiBAQAogCXZhZXNlbmNsYXN0IHQ0LCB4 NiwgeDY7IFwKIAlcCiAJLyogcG9zdGZpbHRlciBzYm94ZXMgMSBhbmQgNCAqLyBcCi0Jdm1vdmRx YSAuTHBvc3RfdGZfbG9fczMsIHQyOyBcCi0Jdm1vdmRxYSAuTHBvc3RfdGZfaGlfczMsIHQzOyBc CisJdm1vdmRxYSAuTHBvc3RfdGZfbG9fczMoJXJpcCksIHQyOyBcCisJdm1vdmRxYSAuTHBvc3Rf dGZfaGlfczMoJXJpcCksIHQzOyBcCiAJZmlsdGVyXzhiaXQoeDAsIHQwLCB0MSwgdDcsIHQ2KTsg XAogCWZpbHRlcl84Yml0KHg3LCB0MCwgdDEsIHQ3LCB0Nik7IFwKIAlmaWx0ZXJfOGJpdCh4Mywg dDAsIHQxLCB0NywgdDYpOyBcCiAJZmlsdGVyXzhiaXQoeDYsIHQwLCB0MSwgdDcsIHQ2KTsgXAog CVwKIAkvKiBwb3N0ZmlsdGVyIHNib3ggMyAqLyBcCi0Jdm1vdmRxYSAuTHBvc3RfdGZfbG9fczIs IHQ0OyBcCi0Jdm1vdmRxYSAuTHBvc3RfdGZfaGlfczIsIHQ1OyBcCisJdm1vdmRxYSAuTHBvc3Rf dGZfbG9fczIoJXJpcCksIHQ0OyBcCisJdm1vdmRxYSAuTHBvc3RfdGZfaGlfczIoJXJpcCksIHQ1 OyBcCiAJZmlsdGVyXzhiaXQoeDIsIHQyLCB0MywgdDcsIHQ2KTsgXAogCWZpbHRlcl84Yml0KHg1 LCB0MiwgdDMsIHQ3LCB0Nik7IFwKIAlcCkBAIC00NDMsNyArNDQzLDcgQEAgRU5EUFJPQyhyb3Vu ZHNtMTZfeDRfeDVfeDZfeDdfeDBfeDFfeDJfeDNfeTRfeTVfeTZfeTdfeTBfeTFfeTJfeTNfYWIp CiAJdHJhbnNwb3NlXzR4NChjMCwgYzEsIGMyLCBjMywgYTAsIGExKTsgXAogCXRyYW5zcG9zZV80 eDQoZDAsIGQxLCBkMiwgZDMsIGEwLCBhMSk7IFwKIAlcCi0Jdm1vdmRxdSAuTHNodWZiXzE2eDE2 YiwgYTA7IFwKKwl2bW92ZHF1IC5Mc2h1ZmJfMTZ4MTZiKCVyaXApLCBhMDsgXAogCXZtb3ZkcXUg c3QxLCBhMTsgXAogCXZwc2h1ZmIgYTAsIGEyLCBhMjsgXAogCXZwc2h1ZmIgYTAsIGEzLCBhMzsg XApAQCAtNDgyLDcgKzQ4Miw3IEBAIEVORFBST0Mocm91bmRzbTE2X3g0X3g1X3g2X3g3X3gwX3gx X3gyX3gzX3k0X3k1X3k2X3k3X3kwX3kxX3kyX3kzX2FiKQogI2RlZmluZSBpbnBhY2sxNl9wcmUo eDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB5MCwgeTEsIHkyLCB5MywgeTQsIHk1LCBc CiAJCSAgICAgeTYsIHk3LCByaW8sIGtleSkgXAogCXZtb3ZxIGtleSwgeDA7IFwKLQl2cHNodWZi IC5McGFja19ic3dhcCwgeDAsIHgwOyBcCisJdnBzaHVmYiAuTHBhY2tfYnN3YXAoJXJpcCksIHgw LCB4MDsgXAogCVwKIAl2cHhvciAwICogMTYocmlvKSwgeDAsIHk3OyBcCiAJdnB4b3IgMSAqIDE2 KHJpbyksIHgwLCB5NjsgXApAQCAtNTMzLDcgKzUzMyw3IEBAIEVORFBST0Mocm91bmRzbTE2X3g0 X3g1X3g2X3g3X3gwX3gxX3gyX3gzX3k0X3k1X3k2X3k3X3kwX3kxX3kyX3kzX2FiKQogCXZtb3Zk cXUgeDAsIHN0YWNrX3RtcDA7IFwKIAlcCiAJdm1vdnEga2V5LCB4MDsgXAotCXZwc2h1ZmIgLkxw YWNrX2Jzd2FwLCB4MCwgeDA7IFwKKwl2cHNodWZiIC5McGFja19ic3dhcCglcmlwKSwgeDAsIHgw OyBcCiAJXAogCXZweG9yIHgwLCB5NywgeTc7IFwKIAl2cHhvciB4MCwgeTYsIHk2OyBcCkBAIC0x MDE2LDcgKzEwMTYsNyBAQCBFTlRSWShjYW1lbGxpYV9jdHJfMTZ3YXkpCiAJc3VicSAkKDE2ICog MTYpLCAlcnNwOwogCW1vdnEgJXJzcCwgJXJheDsKIAotCXZtb3ZkcWEgLkxic3dhcDEyOF9tYXNr LCAleG1tMTQ7CisJdm1vdmRxYSAuTGJzd2FwMTI4X21hc2soJXJpcCksICV4bW0xNDsKIAogCS8q IGxvYWQgSVYgYW5kIGJ5dGVzd2FwICovCiAJdm1vdmRxdSAoJXJjeCksICV4bW0wOwpAQCAtMTA2 NSw3ICsxMDY1LDcgQEAgRU5UUlkoY2FtZWxsaWFfY3RyXzE2d2F5KQogCiAJLyogaW5wYWNrMTZf cHJlOiAqLwogCXZtb3ZxIChrZXlfdGFibGUpKENUWCksICV4bW0xNTsKLQl2cHNodWZiIC5McGFj a19ic3dhcCwgJXhtbTE1LCAleG1tMTU7CisJdnBzaHVmYiAuTHBhY2tfYnN3YXAoJXJpcCksICV4 bW0xNSwgJXhtbTE1OwogCXZweG9yICV4bW0wLCAleG1tMTUsICV4bW0wOwogCXZweG9yICV4bW0x LCAleG1tMTUsICV4bW0xOwogCXZweG9yICV4bW0yLCAleG1tMTUsICV4bW0yOwpAQCAtMTEzMyw3 ICsxMTMzLDcgQEAgY2FtZWxsaWFfeHRzX2NyeXB0XzE2d2F5OgogCXN1YnEgJCgxNiAqIDE2KSwg JXJzcDsKIAltb3ZxICVyc3AsICVyYXg7CiAKLQl2bW92ZHFhIC5MeHRzX2dmMTI4bXVsX2FuZF9z aGwxX21hc2ssICV4bW0xNDsKKwl2bW92ZHFhIC5MeHRzX2dmMTI4bXVsX2FuZF9zaGwxX21hc2so JXJpcCksICV4bW0xNDsKIAogCS8qIGxvYWQgSVYgKi8KIAl2bW92ZHF1ICglcmN4KSwgJXhtbTA7 CkBAIC0xMjA5LDcgKzEyMDksNyBAQCBjYW1lbGxpYV94dHNfY3J5cHRfMTZ3YXk6CiAKIAkvKiBp bnBhY2sxNl9wcmU6ICovCiAJdm1vdnEgKGtleV90YWJsZSkoQ1RYLCAlcjgsIDgpLCAleG1tMTU7 Ci0JdnBzaHVmYiAuTHBhY2tfYnN3YXAsICV4bW0xNSwgJXhtbTE1OworCXZwc2h1ZmIgLkxwYWNr X2Jzd2FwKCVyaXApLCAleG1tMTUsICV4bW0xNTsKIAl2cHhvciAwICogMTYoJXJheCksICV4bW0x NSwgJXhtbTA7CiAJdnB4b3IgJXhtbTEsICV4bW0xNSwgJXhtbTE7CiAJdnB4b3IgJXhtbTIsICV4 bW0xNSwgJXhtbTI7CkBAIC0xMjY0LDcgKzEyNjQsNyBAQCBFTlRSWShjYW1lbGxpYV94dHNfZW5j XzE2d2F5KQogCSAqLwogCXhvcmwgJXI4ZCwgJXI4ZDsgLyogaW5wdXQgd2hpdGVuaW5nIGtleSwg MCBmb3IgZW5jICovCiAKLQlsZWFxIF9fY2FtZWxsaWFfZW5jX2JsazE2LCAlcjk7CisJbGVhcSBf X2NhbWVsbGlhX2VuY19ibGsxNiglcmlwKSwgJXI5OwogCiAJam1wIGNhbWVsbGlhX3h0c19jcnlw dF8xNndheTsKIEVORFBST0MoY2FtZWxsaWFfeHRzX2VuY18xNndheSkKQEAgLTEyODIsNyArMTI4 Miw3IEBAIEVOVFJZKGNhbWVsbGlhX3h0c19kZWNfMTZ3YXkpCiAJbW92bCAkMjQsICVlYXg7CiAJ Y21vdmVsICVlYXgsICVyOGQ7ICAvKiBpbnB1dCB3aGl0ZW5pbmcga2V5LCBsYXN0IGZvciBkZWMg Ki8KIAotCWxlYXEgX19jYW1lbGxpYV9kZWNfYmxrMTYsICVyOTsKKwlsZWFxIF9fY2FtZWxsaWFf ZGVjX2JsazE2KCVyaXApLCAlcjk7CiAKIAlqbXAgY2FtZWxsaWFfeHRzX2NyeXB0XzE2d2F5Owog RU5EUFJPQyhjYW1lbGxpYV94dHNfZGVjXzE2d2F5KQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvY3J5 cHRvL2NhbWVsbGlhLWFlc25pLWF2eDItYXNtXzY0LlMgYi9hcmNoL3g4Ni9jcnlwdG8vY2FtZWxs aWEtYWVzbmktYXZ4Mi1hc21fNjQuUwppbmRleCBlZWU1YjM5ODJjZmQuLjkzZGEzMjdmZWM4MyAx MDA2NDQKLS0tIGEvYXJjaC94ODYvY3J5cHRvL2NhbWVsbGlhLWFlc25pLWF2eDItYXNtXzY0LlMK KysrIGIvYXJjaC94ODYvY3J5cHRvL2NhbWVsbGlhLWFlc25pLWF2eDItYXNtXzY0LlMKQEAgLTY5 LDEyICs2OSwxMiBAQAogCS8qIFwKIAkgKiBTLWZ1bmN0aW9uIHdpdGggQUVTIHN1YmJ5dGVzIFwK IAkgKi8gXAotCXZicm9hZGNhc3RpMTI4IC5MaW52X3NoaWZ0X3JvdywgdDQ7IFwKLQl2cGJyb2Fk Y2FzdGQgLkwwZjBmMGYwZiwgdDc7IFwKLQl2YnJvYWRjYXN0aTEyOCAuTHByZV90Zl9sb19zMSwg dDU7IFwKLQl2YnJvYWRjYXN0aTEyOCAuTHByZV90Zl9oaV9zMSwgdDY7IFwKLQl2YnJvYWRjYXN0 aTEyOCAuTHByZV90Zl9sb19zNCwgdDI7IFwKLQl2YnJvYWRjYXN0aTEyOCAuTHByZV90Zl9oaV9z NCwgdDM7IFwKKwl2YnJvYWRjYXN0aTEyOCAuTGludl9zaGlmdF9yb3coJXJpcCksIHQ0OyBcCisJ dnBicm9hZGNhc3RkIC5MMGYwZjBmMGYoJXJpcCksIHQ3OyBcCisJdmJyb2FkY2FzdGkxMjggLkxw cmVfdGZfbG9fczEoJXJpcCksIHQ1OyBcCisJdmJyb2FkY2FzdGkxMjggLkxwcmVfdGZfaGlfczEo JXJpcCksIHQ2OyBcCisJdmJyb2FkY2FzdGkxMjggLkxwcmVfdGZfbG9fczQoJXJpcCksIHQyOyBc CisJdmJyb2FkY2FzdGkxMjggLkxwcmVfdGZfaGlfczQoJXJpcCksIHQzOyBcCiAJXAogCS8qIEFF UyBpbnZlcnNlIHNoaWZ0IHJvd3MgKi8gXAogCXZwc2h1ZmIgdDQsIHgwLCB4MDsgXApAQCAtMTIw LDggKzEyMCw4IEBACiAJdmluc2VydGkxMjggJDEsIHQyIyNfeCwgeDYsIHg2OyBcCiAJdmV4dHJh Y3RpMTI4ICQxLCB4MSwgdDMjI194OyBcCiAJdmV4dHJhY3RpMTI4ICQxLCB4NCwgdDIjI194OyBc Ci0JdmJyb2FkY2FzdGkxMjggLkxwb3N0X3RmX2xvX3MxLCB0MDsgXAotCXZicm9hZGNhc3RpMTI4 IC5McG9zdF90Zl9oaV9zMSwgdDE7IFwKKwl2YnJvYWRjYXN0aTEyOCAuTHBvc3RfdGZfbG9fczEo JXJpcCksIHQwOyBcCisJdmJyb2FkY2FzdGkxMjggLkxwb3N0X3RmX2hpX3MxKCVyaXApLCB0MTsg XAogCXZhZXNlbmNsYXN0IHQ0IyNfeCwgeDIjI194LCB4MiMjX3g7IFwKIAl2YWVzZW5jbGFzdCB0 NCMjX3gsIHQ2IyNfeCwgdDYjI194OyBcCiAJdmluc2VydGkxMjggJDEsIHQ2IyNfeCwgeDIsIHgy OyBcCkBAIC0xMzYsMTYgKzEzNiwxNiBAQAogCXZpbnNlcnRpMTI4ICQxLCB0MiMjX3gsIHg0LCB4 NDsgXAogCVwKIAkvKiBwb3N0ZmlsdGVyIHNib3hlcyAxIGFuZCA0ICovIFwKLQl2YnJvYWRjYXN0 aTEyOCAuTHBvc3RfdGZfbG9fczMsIHQyOyBcCi0JdmJyb2FkY2FzdGkxMjggLkxwb3N0X3RmX2hp X3MzLCB0MzsgXAorCXZicm9hZGNhc3RpMTI4IC5McG9zdF90Zl9sb19zMyglcmlwKSwgdDI7IFwK Kwl2YnJvYWRjYXN0aTEyOCAuTHBvc3RfdGZfaGlfczMoJXJpcCksIHQzOyBcCiAJZmlsdGVyXzhi aXQoeDAsIHQwLCB0MSwgdDcsIHQ2KTsgXAogCWZpbHRlcl84Yml0KHg3LCB0MCwgdDEsIHQ3LCB0 Nik7IFwKIAlmaWx0ZXJfOGJpdCh4MywgdDAsIHQxLCB0NywgdDYpOyBcCiAJZmlsdGVyXzhiaXQo eDYsIHQwLCB0MSwgdDcsIHQ2KTsgXAogCVwKIAkvKiBwb3N0ZmlsdGVyIHNib3ggMyAqLyBcCi0J dmJyb2FkY2FzdGkxMjggLkxwb3N0X3RmX2xvX3MyLCB0NDsgXAotCXZicm9hZGNhc3RpMTI4IC5M cG9zdF90Zl9oaV9zMiwgdDU7IFwKKwl2YnJvYWRjYXN0aTEyOCAuTHBvc3RfdGZfbG9fczIoJXJp cCksIHQ0OyBcCisJdmJyb2FkY2FzdGkxMjggLkxwb3N0X3RmX2hpX3MyKCVyaXApLCB0NTsgXAog CWZpbHRlcl84Yml0KHgyLCB0MiwgdDMsIHQ3LCB0Nik7IFwKIAlmaWx0ZXJfOGJpdCh4NSwgdDIs IHQzLCB0NywgdDYpOyBcCiAJXApAQCAtNDgyLDcgKzQ4Miw3IEBAIEVORFBST0Mocm91bmRzbTMy X3g0X3g1X3g2X3g3X3gwX3gxX3gyX3gzX3k0X3k1X3k2X3k3X3kwX3kxX3kyX3kzX2FiKQogCXRy YW5zcG9zZV80eDQoYzAsIGMxLCBjMiwgYzMsIGEwLCBhMSk7IFwKIAl0cmFuc3Bvc2VfNHg0KGQw LCBkMSwgZDIsIGQzLCBhMCwgYTEpOyBcCiAJXAotCXZicm9hZGNhc3RpMTI4IC5Mc2h1ZmJfMTZ4 MTZiLCBhMDsgXAorCXZicm9hZGNhc3RpMTI4IC5Mc2h1ZmJfMTZ4MTZiKCVyaXApLCBhMDsgXAog CXZtb3ZkcXUgc3QxLCBhMTsgXAogCXZwc2h1ZmIgYTAsIGEyLCBhMjsgXAogCXZwc2h1ZmIgYTAs IGEzLCBhMzsgXApAQCAtNTIxLDcgKzUyMSw3IEBAIEVORFBST0Mocm91bmRzbTMyX3g0X3g1X3g2 X3g3X3gwX3gxX3gyX3gzX3k0X3k1X3k2X3k3X3kwX3kxX3kyX3kzX2FiKQogI2RlZmluZSBpbnBh Y2szMl9wcmUoeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB5MCwgeTEsIHkyLCB5Mywg eTQsIHk1LCBcCiAJCSAgICAgeTYsIHk3LCByaW8sIGtleSkgXAogCXZwYnJvYWRjYXN0cSBrZXks IHgwOyBcCi0JdnBzaHVmYiAuTHBhY2tfYnN3YXAsIHgwLCB4MDsgXAorCXZwc2h1ZmIgLkxwYWNr X2Jzd2FwKCVyaXApLCB4MCwgeDA7IFwKIAlcCiAJdnB4b3IgMCAqIDMyKHJpbyksIHgwLCB5Nzsg XAogCXZweG9yIDEgKiAzMihyaW8pLCB4MCwgeTY7IFwKQEAgLTU3Miw3ICs1NzIsNyBAQCBFTkRQ Uk9DKHJvdW5kc20zMl94NF94NV94Nl94N194MF94MV94Ml94M195NF95NV95Nl95N195MF95MV95 Ml95M19hYikKIAl2bW92ZHF1IHgwLCBzdGFja190bXAwOyBcCiAJXAogCXZwYnJvYWRjYXN0cSBr ZXksIHgwOyBcCi0JdnBzaHVmYiAuTHBhY2tfYnN3YXAsIHgwLCB4MDsgXAorCXZwc2h1ZmIgLkxw YWNrX2Jzd2FwKCVyaXApLCB4MCwgeDA7IFwKIAlcCiAJdnB4b3IgeDAsIHk3LCB5NzsgXAogCXZw eG9yIHgwLCB5NiwgeTY7IFwKQEAgLTExMTIsNyArMTExMiw3IEBAIEVOVFJZKGNhbWVsbGlhX2N0 cl8zMndheSkKIAl2bW92ZHF1ICglcmN4KSwgJXhtbTA7CiAJdm1vdmRxYSAleG1tMCwgJXhtbTE7 CiAJaW5jX2xlMTI4KCV4bW0wLCAleG1tMTUsICV4bW0xNCk7Ci0JdmJyb2FkY2FzdGkxMjggLkxi c3dhcDEyOF9tYXNrLCAleW1tMTQ7CisJdmJyb2FkY2FzdGkxMjggLkxic3dhcDEyOF9tYXNrKCVy aXApLCAleW1tMTQ7CiAJdmluc2VydGkxMjggJDEsICV4bW0wLCAleW1tMSwgJXltbTA7CiAJdnBz aHVmYiAleW1tMTQsICV5bW0wLCAleW1tMTM7CiAJdm1vdmRxdSAleW1tMTMsIDE1ICogMzIoJXJh eCk7CkBAIC0xMTU4LDcgKzExNTgsNyBAQCBFTlRSWShjYW1lbGxpYV9jdHJfMzJ3YXkpCiAKIAkv KiBpbnBhY2szMl9wcmU6ICovCiAJdnBicm9hZGNhc3RxIChrZXlfdGFibGUpKENUWCksICV5bW0x NTsKLQl2cHNodWZiIC5McGFja19ic3dhcCwgJXltbTE1LCAleW1tMTU7CisJdnBzaHVmYiAuTHBh Y2tfYnN3YXAoJXJpcCksICV5bW0xNSwgJXltbTE1OwogCXZweG9yICV5bW0wLCAleW1tMTUsICV5 bW0wOwogCXZweG9yICV5bW0xLCAleW1tMTUsICV5bW0xOwogCXZweG9yICV5bW0yLCAleW1tMTUs ICV5bW0yOwpAQCAtMTI0MiwxMyArMTI0MiwxMyBAQCBjYW1lbGxpYV94dHNfY3J5cHRfMzJ3YXk6 CiAJc3VicSAkKDE2ICogMzIpLCAlcnNwOwogCW1vdnEgJXJzcCwgJXJheDsKIAotCXZicm9hZGNh c3RpMTI4IC5MeHRzX2dmMTI4bXVsX2FuZF9zaGwxX21hc2tfMCwgJXltbTEyOworCXZicm9hZGNh c3RpMTI4IC5MeHRzX2dmMTI4bXVsX2FuZF9zaGwxX21hc2tfMCglcmlwKSwgJXltbTEyOwogCiAJ LyogbG9hZCBJViBhbmQgY29uc3RydWN0IHNlY29uZCBJViAqLwogCXZtb3ZkcXUgKCVyY3gpLCAl eG1tMDsKIAl2bW92ZHFhICV4bW0wLCAleG1tMTU7CiAJZ2YxMjhtdWxfeF9ibGUoJXhtbTAsICV4 bW0xMiwgJXhtbTEzKTsKLQl2YnJvYWRjYXN0aTEyOCAuTHh0c19nZjEyOG11bF9hbmRfc2hsMV9t YXNrXzEsICV5bW0xMzsKKwl2YnJvYWRjYXN0aTEyOCAuTHh0c19nZjEyOG11bF9hbmRfc2hsMV9t YXNrXzEoJXJpcCksICV5bW0xMzsKIAl2aW5zZXJ0aTEyOCAkMSwgJXhtbTAsICV5bW0xNSwgJXlt bTA7CiAJdnB4b3IgMCAqIDMyKCVyZHgpLCAleW1tMCwgJXltbTE1OwogCXZtb3ZkcXUgJXltbTE1 LCAxNSAqIDMyKCVyYXgpOwpAQCAtMTMyNSw3ICsxMzI1LDcgQEAgY2FtZWxsaWFfeHRzX2NyeXB0 XzMyd2F5OgogCiAJLyogaW5wYWNrMzJfcHJlOiAqLwogCXZwYnJvYWRjYXN0cSAoa2V5X3RhYmxl KShDVFgsICVyOCwgOCksICV5bW0xNTsKLQl2cHNodWZiIC5McGFja19ic3dhcCwgJXltbTE1LCAl eW1tMTU7CisJdnBzaHVmYiAuTHBhY2tfYnN3YXAoJXJpcCksICV5bW0xNSwgJXltbTE1OwogCXZw eG9yIDAgKiAzMiglcmF4KSwgJXltbTE1LCAleW1tMDsKIAl2cHhvciAleW1tMSwgJXltbTE1LCAl eW1tMTsKIAl2cHhvciAleW1tMiwgJXltbTE1LCAleW1tMjsKQEAgLTEzODMsNyArMTM4Myw3IEBA IEVOVFJZKGNhbWVsbGlhX3h0c19lbmNfMzJ3YXkpCiAKIAl4b3JsICVyOGQsICVyOGQ7IC8qIGlu cHV0IHdoaXRlbmluZyBrZXksIDAgZm9yIGVuYyAqLwogCi0JbGVhcSBfX2NhbWVsbGlhX2VuY19i bGszMiwgJXI5OworCWxlYXEgX19jYW1lbGxpYV9lbmNfYmxrMzIoJXJpcCksICVyOTsKIAogCWpt cCBjYW1lbGxpYV94dHNfY3J5cHRfMzJ3YXk7CiBFTkRQUk9DKGNhbWVsbGlhX3h0c19lbmNfMzJ3 YXkpCkBAIC0xNDAxLDcgKzE0MDEsNyBAQCBFTlRSWShjYW1lbGxpYV94dHNfZGVjXzMyd2F5KQog CW1vdmwgJDI0LCAlZWF4OwogCWNtb3ZlbCAlZWF4LCAlcjhkOyAgLyogaW5wdXQgd2hpdGVuaW5n IGtleSwgbGFzdCBmb3IgZGVjICovCiAKLQlsZWFxIF9fY2FtZWxsaWFfZGVjX2JsazMyLCAlcjk7 CisJbGVhcSBfX2NhbWVsbGlhX2RlY19ibGszMiglcmlwKSwgJXI5OwogCiAJam1wIGNhbWVsbGlh X3h0c19jcnlwdF8zMndheTsKIEVORFBST0MoY2FtZWxsaWFfeHRzX2RlY18zMndheSkKZGlmZiAt LWdpdCBhL2FyY2gveDg2L2NyeXB0by9jYW1lbGxpYS14ODZfNjQtYXNtXzY0LlMgYi9hcmNoL3g4 Ni9jcnlwdG8vY2FtZWxsaWEteDg2XzY0LWFzbV82NC5TCmluZGV4IDMxMDMxOWM2MDFlZC4uYjhj ODFlMmY5OTczIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9jcnlwdG8vY2FtZWxsaWEteDg2XzY0LWFz bV82NC5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9jYW1lbGxpYS14ODZfNjQtYXNtXzY0LlMKQEAg LTkyLDExICs5MiwxMyBAQAogI2RlZmluZSBSWE9SYmwgJXI5YgogCiAjZGVmaW5lIHhvcjJyb3Ix NihUMCwgVDEsIHRtcDEsIHRtcDIsIGFiLCBkc3QpIFwKKwlsZWFxIFQwKCVyaXApLCAJCQl0bXAx OyBcCiAJbW92emJsIGFiICMjIGJsLAkJdG1wMiAjIyBkOyBcCisJeG9ycSAodG1wMSwgdG1wMiwg OCksCQlkc3Q7IFwKKwlsZWFxIFQxKCVyaXApLCAJCQl0bXAyOyBcCiAJbW92emJsIGFiICMjIGJo LAkJdG1wMSAjIyBkOyBcCi0Jcm9ycSAkMTYsCQkJYWI7IFwKLQl4b3JxIFQwKCwgdG1wMiwgOCks CQlkc3Q7IFwKLQl4b3JxIFQxKCwgdG1wMSwgOCksCQlkc3Q7CisJeG9ycSAodG1wMiwgdG1wMSwg OCksCQlkc3Q7IFwKKwlyb3JxICQxNiwJCQlhYjsKIAogLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgMS13YXkg Y2FtZWxsaWEKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9jYXN0NS1hdngteDg2XzY0LWFz bV82NC5TIGIvYXJjaC94ODYvY3J5cHRvL2Nhc3Q1LWF2eC14ODZfNjQtYXNtXzY0LlMKaW5kZXgg YjRhODgwNjIzNGVhLi5hZTI5NzZiNTZiMjcgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2NyeXB0by9j YXN0NS1hdngteDg2XzY0LWFzbV82NC5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9jYXN0NS1hdngt eDg2XzY0LWFzbV82NC5TCkBAIC05OCwxNiArOTgsMjAgQEAKIAogCiAjZGVmaW5lIGxvb2t1cF8z MmJpdChzcmMsIGRzdCwgb3AxLCBvcDIsIG9wMywgaW50ZXJsZWF2ZV9vcCwgaWxfcmVnKSBcCi0J bW92emJsCQlzcmMgIyMgYmgsICAgICBSSUQxZDsgICAgXAotCW1vdnpibAkJc3JjICMjIGJsLCAg ICAgUklEMmQ7ICAgIFwKLQlzaHJxICQxNiwJc3JjOyAgICAgICAgICAgICAgICAgICAgIFwKLQlt b3ZsCQlzMSgsIFJJRDEsIDQpLCBkc3QgIyMgZDsgXAotCW9wMQkJczIoLCBSSUQyLCA0KSwgZHN0 ICMjIGQ7IFwKLQltb3Z6YmwJCXNyYyAjIyBiaCwgICAgIFJJRDFkOyAgICBcCi0JbW92emJsCQlz cmMgIyMgYmwsICAgICBSSUQyZDsgICAgXAotCWludGVybGVhdmVfb3AoaWxfcmVnKTsJCQkgXAot CW9wMgkJczMoLCBSSUQxLCA0KSwgZHN0ICMjIGQ7IFwKLQlvcDMJCXM0KCwgUklEMiwgNCksIGRz dCAjIyBkOworCW1vdnpibAkJc3JjICMjIGJoLCAgICAgICBSSUQxZDsgICAgXAorCWxlYXEJCXMx KCVyaXApLCAgICAgICAgUklEMjsgICAgIFwKKwltb3ZsCQkoUklEMiwgUklEMSwgNCksIGRzdCAj IyBkOyBcCisJbW92emJsCQlzcmMgIyMgYmwsICAgICAgIFJJRDJkOyAgICBcCisJbGVhcQkJczIo JXJpcCksICAgICAgICBSSUQxOyAgICAgXAorCW9wMQkJKFJJRDEsIFJJRDIsIDQpLCBkc3QgIyMg ZDsgXAorCXNocnEgJDE2LAlzcmM7ICAgICAgICAgICAgICAgICAgICAgICBcCisJbW92emJsCQlz cmMgIyMgYmgsICAgICBSSUQxZDsgICAgICBcCisJbGVhcQkJczMoJXJpcCksICAgICAgICBSSUQy OyAgICAgXAorCW9wMgkJKFJJRDIsIFJJRDEsIDQpLCBkc3QgIyMgZDsgXAorCW1vdnpibAkJc3Jj ICMjIGJsLCAgICAgUklEMmQ7ICAgICAgXAorCWxlYXEJCXM0KCVyaXApLCAgICAgICAgUklEMTsg ICAgIFwKKwlvcDMJCShSSUQxLCBSSUQyLCA0KSwgZHN0ICMjIGQ7IFwKKwlpbnRlcmxlYXZlX29w KGlsX3JlZyk7CiAKICNkZWZpbmUgZHVtbXkoZCkgLyogZG8gbm90aGluZyAqLwogCkBAIC0xNjYs MTUgKzE3MCwxNSBAQAogCXN1YnJvdW5kKGwgIyMgMywgciAjIyAzLCBsICMjIDQsIHIgIyMgNCwg Zik7CiAKICNkZWZpbmUgZW5jX3ByZWxvYWRfcmtyKCkgXAotCXZicm9hZGNhc3RzcwkuTDE2X21h c2ssICAgICAgICAgICAgICAgIFJLUjsgICAgICBcCisJdmJyb2FkY2FzdHNzCS5MMTZfbWFzaygl cmlwKSwgICAgICAgICAgUktSOyAgICAgIFwKIAkvKiBhZGQgMTYtYml0IHJvdGF0aW9uIHRvIGtl eSByb3RhdGlvbnMgKG1vZCAzMikgKi8gXAogCXZweG9yCQlrcihDVFgpLCAgICAgICAgICAgICAg ICAgIFJLUiwgUktSOwogCiAjZGVmaW5lIGRlY19wcmVsb2FkX3JrcigpIFwKLQl2YnJvYWRjYXN0 c3MJLkwxNl9tYXNrLCAgICAgICAgICAgICAgICBSS1I7ICAgICAgXAorCXZicm9hZGNhc3Rzcwku TDE2X21hc2soJXJpcCksICAgICAgICAgIFJLUjsgICAgICBcCiAJLyogYWRkIDE2LWJpdCByb3Rh dGlvbiB0byBrZXkgcm90YXRpb25zIChtb2QgMzIpICovIFwKIAl2cHhvcgkJa3IoQ1RYKSwgICAg ICAgICAgICAgICAgICBSS1IsIFJLUjsgXAotCXZwc2h1ZmIJCS5MYnN3YXAxMjhfbWFzaywgICAg ICAgICAgUktSLCBSS1I7CisJdnBzaHVmYgkJLkxic3dhcDEyOF9tYXNrKCVyaXApLCAgICBSS1Is IFJLUjsKIAogI2RlZmluZSB0cmFuc3Bvc2VfMng0KHgwLCB4MSwgdDAsIHQxKSBcCiAJdnB1bnBj a2xkcQkJeDEsIHgwLCB0MDsgXApAQCAtMjQ5LDkgKzI1Myw5IEBAIF9fY2FzdDVfZW5jX2JsazE2 OgogCXB1c2hxICVyYnA7CiAJcHVzaHEgJXJieDsKIAotCXZtb3ZkcWEgLkxic3dhcF9tYXNrLCBS S007Ci0Jdm1vdmQgLkxmaXJzdF9tYXNrLCBSMVNUOwotCXZtb3ZkIC5MMzJfbWFzaywgUjMyOwor CXZtb3ZkcWEgLkxic3dhcF9tYXNrKCVyaXApLCBSS007CisJdm1vdmQgLkxmaXJzdF9tYXNrKCVy aXApLCBSMVNUOworCXZtb3ZkIC5MMzJfbWFzayglcmlwKSwgUjMyOwogCWVuY19wcmVsb2FkX3Jr cigpOwogCiAJaW5wYWNrX2Jsb2NrcyhSTDEsIFJSMSwgUlRNUCwgUlgsIFJLTSk7CkBAIC0yODUs NyArMjg5LDcgQEAgX19jYXN0NV9lbmNfYmxrMTY6CiAJcG9wcSAlcmJ4OwogCXBvcHEgJXJicDsK IAotCXZtb3ZkcWEgLkxic3dhcF9tYXNrLCBSS007CisJdm1vdmRxYSAuTGJzd2FwX21hc2soJXJp cCksIFJLTTsKIAogCW91dHVucGFja19ibG9ja3MoUlIxLCBSTDEsIFJUTVAsIFJYLCBSS00pOwog CW91dHVucGFja19ibG9ja3MoUlIyLCBSTDIsIFJUTVAsIFJYLCBSS00pOwpAQCAtMzIxLDkgKzMy NSw5IEBAIF9fY2FzdDVfZGVjX2JsazE2OgogCXB1c2hxICVyYnA7CiAJcHVzaHEgJXJieDsKIAot CXZtb3ZkcWEgLkxic3dhcF9tYXNrLCBSS007Ci0Jdm1vdmQgLkxmaXJzdF9tYXNrLCBSMVNUOwot CXZtb3ZkIC5MMzJfbWFzaywgUjMyOworCXZtb3ZkcWEgLkxic3dhcF9tYXNrKCVyaXApLCBSS007 CisJdm1vdmQgLkxmaXJzdF9tYXNrKCVyaXApLCBSMVNUOworCXZtb3ZkIC5MMzJfbWFzayglcmlw KSwgUjMyOwogCWRlY19wcmVsb2FkX3JrcigpOwogCiAJaW5wYWNrX2Jsb2NrcyhSTDEsIFJSMSwg UlRNUCwgUlgsIFJLTSk7CkBAIC0zNTQsNyArMzU4LDcgQEAgX19jYXN0NV9kZWNfYmxrMTY6CiAJ cm91bmQoUkwsIFJSLCAxLCAyKTsKIAlyb3VuZChSUiwgUkwsIDAsIDEpOwogCi0Jdm1vdmRxYSAu TGJzd2FwX21hc2ssIFJLTTsKKwl2bW92ZHFhIC5MYnN3YXBfbWFzayglcmlwKSwgUktNOwogCXBv cHEgJXJieDsKIAlwb3BxICVyYnA7CiAKQEAgLTUwOCw4ICs1MTIsOCBAQCBFTlRSWShjYXN0NV9j dHJfMTZ3YXkpCiAKIAl2cGNtcGVxZCBSS1IsIFJLUiwgUktSOwogCXZwYWRkcSBSS1IsIFJLUiwg UktSOyAvKiBsb3c6IC0yLCBoaWdoOiAtMiAqLwotCXZtb3ZkcWEgLkxic3dhcF9pdl9tYXNrLCBS MVNUOwotCXZtb3ZkcWEgLkxic3dhcDEyOF9tYXNrLCBSS007CisJdm1vdmRxYSAuTGJzd2FwX2l2 X21hc2soJXJpcCksIFIxU1Q7CisJdm1vdmRxYSAuTGJzd2FwMTI4X21hc2soJXJpcCksIFJLTTsK IAogCS8qIGxvYWQgSVYgYW5kIGJ5dGVzd2FwICovCiAJdm1vdnEgKCVyY3gpLCBSWDsKZGlmZiAt LWdpdCBhL2FyY2gveDg2L2NyeXB0by9jYXN0Ni1hdngteDg2XzY0LWFzbV82NC5TIGIvYXJjaC94 ODYvY3J5cHRvL2Nhc3Q2LWF2eC14ODZfNjQtYXNtXzY0LlMKaW5kZXggOTUyZDMxNTZhOTMzLi42 YmQ1MjIxMGEzYzEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2NyeXB0by9jYXN0Ni1hdngteDg2XzY0 LWFzbV82NC5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9jYXN0Ni1hdngteDg2XzY0LWFzbV82NC5T CkBAIC05OCwxNiArOTgsMjAgQEAKIAogCiAjZGVmaW5lIGxvb2t1cF8zMmJpdChzcmMsIGRzdCwg b3AxLCBvcDIsIG9wMywgaW50ZXJsZWF2ZV9vcCwgaWxfcmVnKSBcCi0JbW92emJsCQlzcmMgIyMg YmgsICAgICBSSUQxZDsgICAgXAotCW1vdnpibAkJc3JjICMjIGJsLCAgICAgUklEMmQ7ICAgIFwK LQlzaHJxICQxNiwJc3JjOyAgICAgICAgICAgICAgICAgICAgIFwKLQltb3ZsCQlzMSgsIFJJRDEs IDQpLCBkc3QgIyMgZDsgXAotCW9wMQkJczIoLCBSSUQyLCA0KSwgZHN0ICMjIGQ7IFwKLQltb3Z6 YmwJCXNyYyAjIyBiaCwgICAgIFJJRDFkOyAgICBcCi0JbW92emJsCQlzcmMgIyMgYmwsICAgICBS SUQyZDsgICAgXAotCWludGVybGVhdmVfb3AoaWxfcmVnKTsJCQkgXAotCW9wMgkJczMoLCBSSUQx LCA0KSwgZHN0ICMjIGQ7IFwKLQlvcDMJCXM0KCwgUklEMiwgNCksIGRzdCAjIyBkOworCW1vdnpi bAkJc3JjICMjIGJoLCAgICAgICBSSUQxZDsgICAgXAorCWxlYXEJCXMxKCVyaXApLCAgICAgICAg UklEMjsgICAgIFwKKwltb3ZsCQkoUklEMiwgUklEMSwgNCksIGRzdCAjIyBkOyBcCisJbW92emJs CQlzcmMgIyMgYmwsICAgICAgIFJJRDJkOyAgICBcCisJbGVhcQkJczIoJXJpcCksICAgICAgICBS SUQxOyAgICAgXAorCW9wMQkJKFJJRDEsIFJJRDIsIDQpLCBkc3QgIyMgZDsgXAorCXNocnEgJDE2 LAlzcmM7ICAgICAgICAgICAgICAgICAgICAgICBcCisJbW92emJsCQlzcmMgIyMgYmgsICAgICBS SUQxZDsgICAgICBcCisJbGVhcQkJczMoJXJpcCksICAgICAgICBSSUQyOyAgICAgXAorCW9wMgkJ KFJJRDIsIFJJRDEsIDQpLCBkc3QgIyMgZDsgXAorCW1vdnpibAkJc3JjICMjIGJsLCAgICAgUklE MmQ7ICAgICAgXAorCWxlYXEJCXM0KCVyaXApLCAgICAgICAgUklEMTsgICAgIFwKKwlvcDMJCShS SUQxLCBSSUQyLCA0KSwgZHN0ICMjIGQ7IFwKKwlpbnRlcmxlYXZlX29wKGlsX3JlZyk7CiAKICNk ZWZpbmUgZHVtbXkoZCkgLyogZG8gbm90aGluZyAqLwogCkBAIC0xOTAsMTAgKzE5NCwxMCBAQAog CXFvcChSRCwgUkMsIDEpOwogCiAjZGVmaW5lIHNodWZmbGUobWFzaykgXAotCXZwc2h1ZmIJCW1h c2ssICAgICAgICAgICAgUktSLCBSS1I7CisJdnBzaHVmYgkJbWFzayglcmlwKSwgICAgICAgICAg ICBSS1IsIFJLUjsKIAogI2RlZmluZSBwcmVsb2FkX3JrcihuLCBkb19tYXNrLCBtYXNrKSBcCi0J dmJyb2FkY2FzdHNzCS5MMTZfbWFzaywgICAgICAgICAgICAgICAgUktSOyAgICAgIFwKKwl2YnJv YWRjYXN0c3MJLkwxNl9tYXNrKCVyaXApLCAgICAgICAgICBSS1I7ICAgICAgXAogCS8qIGFkZCAx Ni1iaXQgcm90YXRpb24gdG8ga2V5IHJvdGF0aW9ucyAobW9kIDMyKSAqLyBcCiAJdnB4b3IJCShr cituKjE2KShDVFgpLCAgICAgICAgICAgUktSLCBSS1I7IFwKIAlkb19tYXNrKG1hc2spOwpAQCAt MjczLDkgKzI3Nyw5IEBAIF9fY2FzdDZfZW5jX2Jsazg6CiAJcHVzaHEgJXJicDsKIAlwdXNocSAl cmJ4OwogCi0Jdm1vdmRxYSAuTGJzd2FwX21hc2ssIFJLTTsKLQl2bW92ZCAuTGZpcnN0X21hc2ss IFIxU1Q7Ci0Jdm1vdmQgLkwzMl9tYXNrLCBSMzI7CisJdm1vdmRxYSAuTGJzd2FwX21hc2soJXJp cCksIFJLTTsKKwl2bW92ZCAuTGZpcnN0X21hc2soJXJpcCksIFIxU1Q7CisJdm1vdmQgLkwzMl9t YXNrKCVyaXApLCBSMzI7CiAKIAlpbnBhY2tfYmxvY2tzKFJBMSwgUkIxLCBSQzEsIFJEMSwgUlRN UCwgUlgsIFJLUkYsIFJLTSk7CiAJaW5wYWNrX2Jsb2NrcyhSQTIsIFJCMiwgUkMyLCBSRDIsIFJU TVAsIFJYLCBSS1JGLCBSS00pOwpAQCAtMjk5LDcgKzMwMyw3IEBAIF9fY2FzdDZfZW5jX2Jsazg6 CiAJcG9wcSAlcmJ4OwogCXBvcHEgJXJicDsKIAotCXZtb3ZkcWEgLkxic3dhcF9tYXNrLCBSS007 CisJdm1vdmRxYSAuTGJzd2FwX21hc2soJXJpcCksIFJLTTsKIAogCW91dHVucGFja19ibG9ja3Mo UkExLCBSQjEsIFJDMSwgUkQxLCBSVE1QLCBSWCwgUktSRiwgUktNKTsKIAlvdXR1bnBhY2tfYmxv Y2tzKFJBMiwgUkIyLCBSQzIsIFJEMiwgUlRNUCwgUlgsIFJLUkYsIFJLTSk7CkBAIC0zMTksOSAr MzIzLDkgQEAgX19jYXN0Nl9kZWNfYmxrODoKIAlwdXNocSAlcmJwOwogCXB1c2hxICVyYng7CiAK LQl2bW92ZHFhIC5MYnN3YXBfbWFzaywgUktNOwotCXZtb3ZkIC5MZmlyc3RfbWFzaywgUjFTVDsK LQl2bW92ZCAuTDMyX21hc2ssIFIzMjsKKwl2bW92ZHFhIC5MYnN3YXBfbWFzayglcmlwKSwgUktN OworCXZtb3ZkIC5MZmlyc3RfbWFzayglcmlwKSwgUjFTVDsKKwl2bW92ZCAuTDMyX21hc2soJXJp cCksIFIzMjsKIAogCWlucGFja19ibG9ja3MoUkExLCBSQjEsIFJDMSwgUkQxLCBSVE1QLCBSWCwg UktSRiwgUktNKTsKIAlpbnBhY2tfYmxvY2tzKFJBMiwgUkIyLCBSQzIsIFJEMiwgUlRNUCwgUlgs IFJLUkYsIFJLTSk7CkBAIC0zNDUsNyArMzQ5LDcgQEAgX19jYXN0Nl9kZWNfYmxrODoKIAlwb3Bx ICVyYng7CiAJcG9wcSAlcmJwOwogCi0Jdm1vdmRxYSAuTGJzd2FwX21hc2ssIFJLTTsKKwl2bW92 ZHFhIC5MYnN3YXBfbWFzayglcmlwKSwgUktNOwogCW91dHVucGFja19ibG9ja3MoUkExLCBSQjEs IFJDMSwgUkQxLCBSVE1QLCBSWCwgUktSRiwgUktNKTsKIAlvdXR1bnBhY2tfYmxvY2tzKFJBMiwg UkIyLCBSQzIsIFJEMiwgUlRNUCwgUlgsIFJLUkYsIFJLTSk7CiAKZGlmZiAtLWdpdCBhL2FyY2gv eDg2L2NyeXB0by9kZXMzX2VkZS1hc21fNjQuUyBiL2FyY2gveDg2L2NyeXB0by9kZXMzX2VkZS1h c21fNjQuUwppbmRleCBmM2U5MTY0N2NhMjcuLmQ1MzJmZjk0YjcwYSAxMDA2NDQKLS0tIGEvYXJj aC94ODYvY3J5cHRvL2RlczNfZWRlLWFzbV82NC5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9kZXMz X2VkZS1hc21fNjQuUwpAQCAtMTM4LDIxICsxMzgsMjkgQEAKIAltb3Z6YmwgUlcwYmwsIFJUMmQ7 IFwKIAltb3Z6YmwgUlcwYmgsIFJUM2Q7IFwKIAlzaHJxICQxNiwgUlcwOyBcCi0JbW92cSBzOCgs IFJUMCwgOCksIFJUMDsgXAotCXhvcnEgczYoLCBSVDEsIDgpLCB0bzsgXAorCWxlYXEgczgoJXJp cCksIFJXMTsgXAorCW1vdnEgKFJXMSwgUlQwLCA4KSwgUlQwOyBcCisJbGVhcSBzNiglcmlwKSwg UlcxOyBcCisJeG9ycSAoUlcxLCBSVDEsIDgpLCB0bzsgXAogCW1vdnpibCBSVzBibCwgUkwxZDsg XAogCW1vdnpibCBSVzBiaCwgUlQxZDsgXAogCXNocmwgJDE2LCBSVzBkOyBcCi0JeG9ycSBzNCgs IFJUMiwgOCksIFJUMDsgXAotCXhvcnEgczIoLCBSVDMsIDgpLCB0bzsgXAorCWxlYXEgczQoJXJp cCksIFJXMTsgXAorCXhvcnEgKFJXMSwgUlQyLCA4KSwgUlQwOyBcCisJbGVhcSBzMiglcmlwKSwg UlcxOyBcCisJeG9ycSAoUlcxLCBSVDMsIDgpLCB0bzsgXAogCW1vdnpibCBSVzBibCwgUlQyZDsg XAogCW1vdnpibCBSVzBiaCwgUlQzZDsgXAotCXhvcnEgczcoLCBSTDEsIDgpLCBSVDA7IFwKLQl4 b3JxIHM1KCwgUlQxLCA4KSwgdG87IFwKLQl4b3JxIHMzKCwgUlQyLCA4KSwgUlQwOyBcCisJbGVh cSBzNyglcmlwKSwgUlcxOyBcCisJeG9ycSAoUlcxLCBSTDEsIDgpLCBSVDA7IFwKKwlsZWFxIHM1 KCVyaXApLCBSVzE7IFwKKwl4b3JxIChSVzEsIFJUMSwgOCksIHRvOyBcCisJbGVhcSBzMyglcmlw KSwgUlcxOyBcCisJeG9ycSAoUlcxLCBSVDIsIDgpLCBSVDA7IFwKIAlsb2FkX25leHRfa2V5KG4s IFJXMCk7IFwKIAl4b3JxIFJUMCwgdG87IFwKLQl4b3JxIHMxKCwgUlQzLCA4KSwgdG87IFwKKwls ZWFxIHMxKCVyaXApLCBSVzE7IFwKKwl4b3JxIChSVzEsIFJUMywgOCksIHRvOyBcCiAKICNkZWZp bmUgbG9hZF9uZXh0X2tleShuLCBSV3gpIFwKIAltb3ZxICgoKG4pICsgMSkgKiA4KShDVFgpLCBS V3g7CkBAIC0zNjIsNjUgKzM3MCw4OSBAQCBFTkRQUk9DKGRlczNfZWRlX3g4Nl82NF9jcnlwdF9i bGspCiAJbW92emJsIFJXMGJsLCBSVDNkOyBcCiAJbW92emJsIFJXMGJoLCBSVDFkOyBcCiAJc2hy cSAkMTYsIFJXMDsgXAotCXhvcnEgczgoLCBSVDMsIDgpLCB0byMjMDsgXAotCXhvcnEgczYoLCBS VDEsIDgpLCB0byMjMDsgXAorCWxlYXEgczgoJXJpcCksIFJUMjsgXAorCXhvcnEgKFJUMiwgUlQz LCA4KSwgdG8jIzA7IFwKKwlsZWFxIHM2KCVyaXApLCBSVDI7IFwKKwl4b3JxIChSVDIsIFJUMSwg OCksIHRvIyMwOyBcCiAJbW92emJsIFJXMGJsLCBSVDNkOyBcCiAJbW92emJsIFJXMGJoLCBSVDFk OyBcCiAJc2hycSAkMTYsIFJXMDsgXAotCXhvcnEgczQoLCBSVDMsIDgpLCB0byMjMDsgXAotCXhv cnEgczIoLCBSVDEsIDgpLCB0byMjMDsgXAorCWxlYXEgczQoJXJpcCksIFJUMjsgXAorCXhvcnEg KFJUMiwgUlQzLCA4KSwgdG8jIzA7IFwKKwlsZWFxIHMyKCVyaXApLCBSVDI7IFwKKwl4b3JxIChS VDIsIFJUMSwgOCksIHRvIyMwOyBcCiAJbW92emJsIFJXMGJsLCBSVDNkOyBcCiAJbW92emJsIFJX MGJoLCBSVDFkOyBcCiAJc2hybCAkMTYsIFJXMGQ7IFwKLQl4b3JxIHM3KCwgUlQzLCA4KSwgdG8j IzA7IFwKLQl4b3JxIHM1KCwgUlQxLCA4KSwgdG8jIzA7IFwKKwlsZWFxIHM3KCVyaXApLCBSVDI7 IFwKKwl4b3JxIChSVDIsIFJUMywgOCksIHRvIyMwOyBcCisJbGVhcSBzNSglcmlwKSwgUlQyOyBc CisJeG9ycSAoUlQyLCBSVDEsIDgpLCB0byMjMDsgXAogCW1vdnpibCBSVzBibCwgUlQzZDsgXAog CW1vdnpibCBSVzBiaCwgUlQxZDsgXAogCWxvYWRfbmV4dF9rZXkobiwgUlcwKTsgXAotCXhvcnEg czMoLCBSVDMsIDgpLCB0byMjMDsgXAotCXhvcnEgczEoLCBSVDEsIDgpLCB0byMjMDsgXAorCWxl YXEgczMoJXJpcCksIFJUMjsgXAorCXhvcnEgKFJUMiwgUlQzLCA4KSwgdG8jIzA7IFwKKwlsZWFx IHMxKCVyaXApLCBSVDI7IFwKKwl4b3JxIChSVDIsIFJUMSwgOCksIHRvIyMwOyBcCiAJCXhvcnEg ZnJvbSMjMSwgUlcxOyBcCiAJCW1vdnpibCBSVzFibCwgUlQzZDsgXAogCQltb3Z6YmwgUlcxYmgs IFJUMWQ7IFwKIAkJc2hycSAkMTYsIFJXMTsgXAotCQl4b3JxIHM4KCwgUlQzLCA4KSwgdG8jIzE7 IFwKLQkJeG9ycSBzNigsIFJUMSwgOCksIHRvIyMxOyBcCisJCWxlYXEgczgoJXJpcCksIFJUMjsg XAorCQl4b3JxIChSVDIsIFJUMywgOCksIHRvIyMxOyBcCisJCWxlYXEgczYoJXJpcCksIFJUMjsg XAorCQl4b3JxIChSVDIsIFJUMSwgOCksIHRvIyMxOyBcCiAJCW1vdnpibCBSVzFibCwgUlQzZDsg XAogCQltb3Z6YmwgUlcxYmgsIFJUMWQ7IFwKIAkJc2hycSAkMTYsIFJXMTsgXAotCQl4b3JxIHM0 KCwgUlQzLCA4KSwgdG8jIzE7IFwKLQkJeG9ycSBzMigsIFJUMSwgOCksIHRvIyMxOyBcCisJCWxl YXEgczQoJXJpcCksIFJUMjsgXAorCQl4b3JxIChSVDIsIFJUMywgOCksIHRvIyMxOyBcCisJCWxl YXEgczIoJXJpcCksIFJUMjsgXAorCQl4b3JxIChSVDIsIFJUMSwgOCksIHRvIyMxOyBcCiAJCW1v dnpibCBSVzFibCwgUlQzZDsgXAogCQltb3Z6YmwgUlcxYmgsIFJUMWQ7IFwKIAkJc2hybCAkMTYs IFJXMWQ7IFwKLQkJeG9ycSBzNygsIFJUMywgOCksIHRvIyMxOyBcCi0JCXhvcnEgczUoLCBSVDEs IDgpLCB0byMjMTsgXAorCQlsZWFxIHM3KCVyaXApLCBSVDI7IFwKKwkJeG9ycSAoUlQyLCBSVDMs IDgpLCB0byMjMTsgXAorCQlsZWFxIHM1KCVyaXApLCBSVDI7IFwKKwkJeG9ycSAoUlQyLCBSVDEs IDgpLCB0byMjMTsgXAogCQltb3Z6YmwgUlcxYmwsIFJUM2Q7IFwKIAkJbW92emJsIFJXMWJoLCBS VDFkOyBcCiAJCWRvX21vdnEoUlcwLCBSVzEpOyBcCi0JCXhvcnEgczMoLCBSVDMsIDgpLCB0byMj MTsgXAotCQl4b3JxIHMxKCwgUlQxLCA4KSwgdG8jIzE7IFwKKwkJbGVhcSBzMyglcmlwKSwgUlQy OyBcCisJCXhvcnEgKFJUMiwgUlQzLCA4KSwgdG8jIzE7IFwKKwkJbGVhcSBzMSglcmlwKSwgUlQy OyBcCisJCXhvcnEgKFJUMiwgUlQxLCA4KSwgdG8jIzE7IFwKIAkJCXhvcnEgZnJvbSMjMiwgUlcy OyBcCiAJCQltb3Z6YmwgUlcyYmwsIFJUM2Q7IFwKIAkJCW1vdnpibCBSVzJiaCwgUlQxZDsgXAog CQkJc2hycSAkMTYsIFJXMjsgXAotCQkJeG9ycSBzOCgsIFJUMywgOCksIHRvIyMyOyBcCi0JCQl4 b3JxIHM2KCwgUlQxLCA4KSwgdG8jIzI7IFwKKwkJCWxlYXEgczgoJXJpcCksIFJUMjsgXAorCQkJ eG9ycSAoUlQyLCBSVDMsIDgpLCB0byMjMjsgXAorCQkJbGVhcSBzNiglcmlwKSwgUlQyOyBcCisJ CQl4b3JxIChSVDIsIFJUMSwgOCksIHRvIyMyOyBcCiAJCQltb3Z6YmwgUlcyYmwsIFJUM2Q7IFwK IAkJCW1vdnpibCBSVzJiaCwgUlQxZDsgXAogCQkJc2hycSAkMTYsIFJXMjsgXAotCQkJeG9ycSBz NCgsIFJUMywgOCksIHRvIyMyOyBcCi0JCQl4b3JxIHMyKCwgUlQxLCA4KSwgdG8jIzI7IFwKKwkJ CWxlYXEgczQoJXJpcCksIFJUMjsgXAorCQkJeG9ycSAoUlQyLCBSVDMsIDgpLCB0byMjMjsgXAor CQkJbGVhcSBzMiglcmlwKSwgUlQyOyBcCisJCQl4b3JxIChSVDIsIFJUMSwgOCksIHRvIyMyOyBc CiAJCQltb3Z6YmwgUlcyYmwsIFJUM2Q7IFwKIAkJCW1vdnpibCBSVzJiaCwgUlQxZDsgXAogCQkJ c2hybCAkMTYsIFJXMmQ7IFwKLQkJCXhvcnEgczcoLCBSVDMsIDgpLCB0byMjMjsgXAotCQkJeG9y cSBzNSgsIFJUMSwgOCksIHRvIyMyOyBcCisJCQlsZWFxIHM3KCVyaXApLCBSVDI7IFwKKwkJCXhv cnEgKFJUMiwgUlQzLCA4KSwgdG8jIzI7IFwKKwkJCWxlYXEgczUoJXJpcCksIFJUMjsgXAorCQkJ eG9ycSAoUlQyLCBSVDEsIDgpLCB0byMjMjsgXAogCQkJbW92emJsIFJXMmJsLCBSVDNkOyBcCiAJ CQltb3Z6YmwgUlcyYmgsIFJUMWQ7IFwKIAkJCWRvX21vdnEoUlcwLCBSVzIpOyBcCi0JCQl4b3Jx IHMzKCwgUlQzLCA4KSwgdG8jIzI7IFwKLQkJCXhvcnEgczEoLCBSVDEsIDgpLCB0byMjMjsKKwkJ CWxlYXEgczMoJXJpcCksIFJUMjsgXAorCQkJeG9ycSAoUlQyLCBSVDMsIDgpLCB0byMjMjsgXAor CQkJbGVhcSBzMSglcmlwKSwgUlQyOyBcCisJCQl4b3JxIChSVDIsIFJUMSwgOCksIHRvIyMyOwog CiAjZGVmaW5lIF9fbW92cShzcmMsIGRzdCkgXAogCW1vdnEgc3JjLCBkc3Q7CmRpZmYgLS1naXQg YS9hcmNoL3g4Ni9jcnlwdG8vZ2hhc2gtY2xtdWxuaS1pbnRlbF9hc20uUyBiL2FyY2gveDg2L2Ny eXB0by9naGFzaC1jbG11bG5pLWludGVsX2FzbS5TCmluZGV4IGY5NDM3NWE4ZGNkMS4uZDU2YTI4 MTIyMWZiIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9jcnlwdG8vZ2hhc2gtY2xtdWxuaS1pbnRlbF9h c20uUworKysgYi9hcmNoL3g4Ni9jcnlwdG8vZ2hhc2gtY2xtdWxuaS1pbnRlbF9hc20uUwpAQCAt OTcsNyArOTcsNyBAQCBFTlRSWShjbG11bF9naGFzaF9tdWwpCiAJRlJBTUVfQkVHSU4KIAltb3Z1 cHMgKCVyZGkpLCBEQVRBCiAJbW92dXBzICglcnNpKSwgU0hBU0gKLQltb3ZhcHMgLkxic3dhcF9t YXNrLCBCU1dBUAorCW1vdmFwcyAuTGJzd2FwX21hc2soJXJpcCksIEJTV0FQCiAJUFNIVUZCX1hN TSBCU1dBUCBEQVRBCiAJY2FsbCBfX2NsbXVsX2dmMTI4bXVsX2JsZQogCVBTSFVGQl9YTU0gQlNX QVAgREFUQQpAQCAtMTE0LDcgKzExNCw3IEBAIEVOVFJZKGNsbXVsX2doYXNoX3VwZGF0ZSkKIAlG UkFNRV9CRUdJTgogCWNtcCAkMTYsICVyZHgKIAlqYiAuTHVwZGF0ZV9qdXN0X3JldAkjIGNoZWNr IGxlbmd0aAotCW1vdmFwcyAuTGJzd2FwX21hc2ssIEJTV0FQCisJbW92YXBzIC5MYnN3YXBfbWFz ayglcmlwKSwgQlNXQVAKIAltb3Z1cHMgKCVyZGkpLCBEQVRBCiAJbW92dXBzICglcmN4KSwgU0hB U0gKIAlQU0hVRkJfWE1NIEJTV0FQIERBVEEKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9n bHVlX2hlbHBlci1hc20tYXZ4LlMgYi9hcmNoL3g4Ni9jcnlwdG8vZ2x1ZV9oZWxwZXItYXNtLWF2 eC5TCmluZGV4IDAyZWUyMzA4ZmIzOC4uOGE0OWFiMTY5OWVmIDEwMDY0NAotLS0gYS9hcmNoL3g4 Ni9jcnlwdG8vZ2x1ZV9oZWxwZXItYXNtLWF2eC5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9nbHVl X2hlbHBlci1hc20tYXZ4LlMKQEAgLTU0LDcgKzU0LDcgQEAKICNkZWZpbmUgbG9hZF9jdHJfOHdh eShpdiwgYnN3YXAsIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NywgdDAsIHQxLCB0Mikg XAogCXZwY21wZXFkIHQwLCB0MCwgdDA7IFwKIAl2cHNybGRxICQ4LCB0MCwgdDA7IC8qIGxvdzog LTEsIGhpZ2g6IDAgKi8gXAotCXZtb3ZkcWEgYnN3YXAsIHQxOyBcCisJdm1vdmRxYSBic3dhcCgl cmlwKSwgdDE7IFwKIAlcCiAJLyogbG9hZCBJViBhbmQgYnl0ZXN3YXAgKi8gXAogCXZtb3ZkcXUg KGl2KSwgeDc7IFwKQEAgLTk5LDcgKzk5LDcgQEAKIAogI2RlZmluZSBsb2FkX3h0c184d2F5KGl2 LCBzcmMsIGRzdCwgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB0aXYsIHQwLCBcCiAJ CSAgICAgIHQxLCB4dHNfZ2YxMjhtdWxfYW5kX3NobDFfbWFzaykgXAotCXZtb3ZkcWEgeHRzX2dm MTI4bXVsX2FuZF9zaGwxX21hc2ssIHQwOyBcCisJdm1vdmRxYSB4dHNfZ2YxMjhtdWxfYW5kX3No bDFfbWFzayglcmlwKSwgdDA7IFwKIAlcCiAJLyogbG9hZCBJViAqLyBcCiAJdm1vdmRxdSAoaXYp LCB0aXY7IFwKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9nbHVlX2hlbHBlci1hc20tYXZ4 Mi5TIGIvYXJjaC94ODYvY3J5cHRvL2dsdWVfaGVscGVyLWFzbS1hdngyLlMKaW5kZXggYTUzYWMx MWRkMzg1Li5lMDRjODA0NjdiZDIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2NyeXB0by9nbHVlX2hl bHBlci1hc20tYXZ4Mi5TCisrKyBiL2FyY2gveDg2L2NyeXB0by9nbHVlX2hlbHBlci1hc20tYXZ4 Mi5TCkBAIC02Nyw3ICs2Nyw3IEBACiAJdm1vdmRxdSAoaXYpLCB0Mng7IFwKIAl2bW92ZHFhIHQy eCwgdDN4OyBcCiAJaW5jX2xlMTI4KHQyeCwgdDB4LCB0MXgpOyBcCi0JdmJyb2FkY2FzdGkxMjgg YnN3YXAsIHQxOyBcCisJdmJyb2FkY2FzdGkxMjggYnN3YXAoJXJpcCksIHQxOyBcCiAJdmluc2Vy dGkxMjggJDEsIHQyeCwgdDMsIHQyOyAvKiBhYjogbGUwIDsgY2Q6IGxlMSAqLyBcCiAJdnBzaHVm YiB0MSwgdDIsIHgwOyBcCiAJXApAQCAtMTI0LDEzICsxMjQsMTMgQEAKIAkJICAgICAgIHRpdngs IHQwLCB0MHgsIHQxLCB0MXgsIHQyLCB0MngsIHQzLCBcCiAJCSAgICAgICB4dHNfZ2YxMjhtdWxf YW5kX3NobDFfbWFza18wLCBcCiAJCSAgICAgICB4dHNfZ2YxMjhtdWxfYW5kX3NobDFfbWFza18x KSBcCi0JdmJyb2FkY2FzdGkxMjggeHRzX2dmMTI4bXVsX2FuZF9zaGwxX21hc2tfMCwgdDE7IFwK Kwl2YnJvYWRjYXN0aTEyOCB4dHNfZ2YxMjhtdWxfYW5kX3NobDFfbWFza18wKCVyaXApLCB0MTsg XAogCVwKIAkvKiBsb2FkIElWIGFuZCBjb25zdHJ1Y3Qgc2Vjb25kIElWICovIFwKIAl2bW92ZHF1 IChpdiksIHRpdng7IFwKIAl2bW92ZHFhIHRpdngsIHQweDsgXAogCWdmMTI4bXVsX3hfYmxlKHRp dngsIHQxeCwgdDJ4KTsgXAotCXZicm9hZGNhc3RpMTI4IHh0c19nZjEyOG11bF9hbmRfc2hsMV9t YXNrXzEsIHQyOyBcCisJdmJyb2FkY2FzdGkxMjggeHRzX2dmMTI4bXVsX2FuZF9zaGwxX21hc2tf MSglcmlwKSwgdDI7IFwKIAl2aW5zZXJ0aTEyOCAkMSwgdGl2eCwgdDAsIHRpdjsgXAogCXZweG9y ICgwKjMyKShzcmMpLCB0aXYsIHgwOyBcCiAJdm1vdmRxdSB0aXYsICgwKjMyKShkc3QpOyBcCi0t IAoyLjE0LjAuNDM0Lmc5ODA5NmZkN2E4LWdvb2cKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBs aXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK