From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v4 04/16] livepatch: Initial ARM64 support. Date: Fri, 16 Sep 2016 12:38:16 -0400 Message-ID: <1474043908-12101-5-git-send-email-konrad.wilk@oracle.com> References: <1474043908-12101-1-git-send-email-konrad.wilk@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bkwA9-0002fH-Eo for xen-devel@lists.xenproject.org; Fri, 16 Sep 2016 16:38:53 +0000 In-Reply-To: <1474043908-12101-1-git-send-email-konrad.wilk@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org, konrad@kernel.org, ross.lagerwall@citrix.com, julien.grall@arm.com, sstabellini@kernel.org Cc: Andrew Cooper , Konrad Rzeszutek Wilk List-Id: xen-devel@lists.xenproject.org QXMgY29tcGFyZWQgdG8geDg2IHRoZSB2YSBvZiB0aGUgaHlwZXJ2aXNvciAudGV4dAppcyBsb2Nr ZWQgZG93biAtIHdlIGNhbm5vdCBtb2RpZnkgdGhlIHJ1bm5pbmcgcGFnZXRhYmxlcwp0byBoYXZl IHRoZSAucm8gZmxhZyB1bnNldC4gV2UgYm9ycm93IHRoZSBzYW1lIGlkZWEgdGhhdAphbHRlcm5h dGl2ZSBwYXRjaGluZyBoYXMgLSB3aGljaCBpcyB0byB2bWFwIHRoZSBlbnRpcmUKLnRleHQgcmVn aW9uIGFuZCB1c2UgdGhlIGFsdGVybmF0aXZlIHZpcnR1YWwgYWRkcmVzcwpmb3IgcGF0Y2hpbmcu CgpTaW5jZSB3ZSBhcmUgZG9pbmcgdm1hcCB3ZSBtYXkgZmFpbCwgaGVuY2UgdGhlCmFyY2hfbGl2 ZXBhdGNoX3F1aWVzY2Ugd2FzIGNoYW5nZWQgKHNlZSAieDg2LGFybToKQ2hhbmdlIGFyY2hfbGl2 ZXBhdGNoX3F1aWVzY2UoKSBkZWNsYXJhdGlvbiIpIHRvIHJldHVybgphbiBlcnJvciB2YWx1ZSB3 aGljaCB3aWxsIGJlIGJ1YmJsZWQgaW4gcGF5bG9hZC0+cmMgYW5kCnByb3ZpZGVkIHRvIHRoZSB1 c2VyIChhbG9uZyB3aXRoIG1lc3NhZ2VzIGluIHRoZSByaW5nIGJ1ZmZlcikuCgpUaGUgbGl2ZXBh dGNoIHZpcnR1YWwgYWRkcmVzcyBzcGFjZSAod2hlcmUgdGhlIG5ldyBmdW5jdGlvbnMKYXJlKSBu ZWVkcyB0byBiZSBjbG9zZSB0byB0aGUgaHlwZXJ2aXNvciB2aXJ0dWFsIGFkZHJlc3MKc28gdGhh dCB0aGUgdHJhbXBvbGluZSBjYW4gcmVhY2ggaXQuIEFzIHN1Y2ggd2UgcmUtdXNlCnRoZSBCT09U X1JFTE9DX1ZJUlRfU1RBUlQgd2hpY2ggaXMgbm90IHVzZWQgYWZ0ZXIgYm9vdHVwCihhbHRlcm5h dGl2ZWx5IHdlIGNhbiBhbHNvIHVzZSB0aGUgc3BhY2UgYWZ0ZXIgdGhlIF9lbmQgdG8KRklYTUFQ X0FERFIoMCksIGJ1dCB0aGF0IG1heSBiZSB0b28gc21hbGwpLgoKVGhlIEVMRiByZWxvY2F0aW9u IGVuZ2luZSBhdCB0aGUgc3RhcnQgd2FzIGNvZGVkIGZyb20KdGhlICJFTEYgZm9yIHRoZSBBUk0g NjQtYml0IEFyY2hpdGVjdHVyZSAoQUFyY2g2NCkiCihodHRwOi8vaW5mb2NlbnRlci5hcm0uY29t L2hlbHAvdG9waWMvY29tLmFybS5kb2MuaWhpMDA1NmIvSUhJMDA1NkJfYWFlbGY2NC5wZGYpCmJ1 dCBhZnRlciBhIHdoaWxlIG9mIHRyeWluZyB0byB3cml0ZSB0aGUgY29ycmVjdCBiaXQgc2hpZnRp bmcKYW5kIG1hc2tpbmcgZnJvbSBzY3JhdGNoIEkgZW5kZWQgdXAgYm9ycm93aW5nIGZyb20gTGlu dXgsIHRoZQoncmVsb2NfaW5zbl9pbW0nIChMaW51eCB2NC43IGFyY2gvYXJtNjQva2VybmVsL21v ZHVsZS5jIGZ1bmN0aW9uLgpTZWUgMjU3Y2IyNTE5MjVmODU0ZGE0MzVjYmY3OWIxNDA5ODQ0MTM4 NzFhYyAiYXJtNjQ6IExvYWRhYmxlIG1vZHVsZXMiKQoKQW5kIHdoaWxlIGF0IGl0IC0gd2UgYWxz byB1dGlsaXplIGNvZGUgZnJvbSBMaW51eCB0byBjb25zdHJ1Y3QKdGhlIHJpZ2h0IGJyYW5jaCBp bnN0cnVjdGlvbiAoc2VlICJhcm02NC9pbnNuOiBpbnRyb2R1Y2UKYWFyY2g2NF9pbnNuX2dlbl97 bm9wfGJyYW5jaF9pbW19KCkgaGVscGVyIGZ1bmN0aW9ucyIpLgoKSW4gdGhlIGxpdmVwYXRjaCBw YXlsb2FkIGxvYWRpbmcgY29kZSB3ZSB0d2VhayB0aGUgI2lmZGVmIHRvCm9ubHkgZXhjbHVkZSBB Uk1fMzIuIFRoZSBleGNlcHRpb25zIGFyZSBub3QgcGFydCBvZiBBUk0gMzIvNjQgaGVuY2UKdGhl eSBhcmUgc3RpbGwgYmVoaW5kIHRoZSAjaWZkZWYuCgpXZSBhbHNvIGV4cGFuZCB0aGUgTUFJTlRB SU5FUlMgZmlsZSB0byBpbmNsdWRlIHRoZSBhcm02NCBhbmQgYXJtMzIKcGxhdGZvcm0gc3BlY2lm aWMgbGl2ZXBhdGNoIGZpbGUuCgpBY2tlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu Y29tPiBbbm9uLWFybSBwYXJ0c10KU2lnbmVkLW9mZi1ieTogS29ucmFkIFJ6ZXN6dXRlayBXaWxr IDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgoKLS0tCkNjOiBSb3NzIExhZ2Vyd2FsbCA8cm9zcy5s YWdlcndhbGxAY2l0cml4LmNvbT4KQ2M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlA a2VybmVsLm9yZz4KQ2M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+CkNjICBK YW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcu Y29vcGVyM0BjaXRyaXguY29tPgoKUkZDOiBXaG9seSBjb3chIEl0IHdvcmtzIQp2MTogRmluaXNo ZWQgdGhlIHZhcmlvdXMgVE9ET3MgYW5kIHJldmlld3Mgb3V0bGluZWQgYnkgSnVsaWVuIGluIFJG Qy4KdjI6IENhbGwgY2hlY2tfZm9yX2xpdmVwYXRjaF93b3JrIGluIGxlYXZlX2h5cGVydmlzb3Jf dGFpbCBub3QgaW4KICAgIHJlc2V0X3N0YWNrX2FuZF9qdW1wCiAgIC0gTW92ZSBBUk0gMzIgY29t cG9uZW50cyBpbiBvdGhlciBwYXRjaAogICAtIEJsYWNrbGlzdCBwbGF0Zm9ybSBvcHRpb25zIGlu IEtjb25maWcKICAgLSBBZGRlZCBSX0FBUkNINjRfTERTVDEyOF9BQlNfTE8xMl9OQywgUl9BQVJD SDY0X1RTVEJSMTQsIGFuZAogICAgIFJfQUFSQ0g2NF9BRFJfUFJFTF9QR19ISTIxX05DCiAgIC0g QWRkZWQgZG9fcmVsb2MgYW5kIHJlbG9jX2RhdGEgYWxvbmcgd2l0aCBvdmVyZmxvdyBjaGVja3Mg ZnJvbSBMaW51eC4KICAgLSBVc2UgYXBwbHlfYWx0ZXJuYXRpdmVzIHdpdGhvdXQgYW55ICNpZmRl ZgogICAtIFVzZSBsZWF2ZV9oeXBlcnZpc29yX3RhaWwgdG8gY2FsbCBjaGVja19mb3JfbGl2ZXBh dGNoX3dvcmsKICAgLSBBZGQgQVNTRVJUIHRoYXQgaXNucyBpcyBub3QgQUFSQ0g2NF9CUkVBS19G QVVMVAogICAtIFNwdW4gb3V0IGFyY2hfbGl2ZXBhdGNoX3F1aWVzY2UgY2hhbmdlcyBpbiBzZXBl cmF0ZSBwYXRjaC4KICAgLSBTcHVuIG91dCBjaGFuZ2VzIHRvIGNvbmZpZy5oIChkb2N1bWVudCBv bmVzKSB0byBzZXBlcmF0ZSBwYXRjaC4KICAgLSBNb3ZlIHRoZSBsaXZlcGF0Y2guaCB0byBpbmNs dWRlL3hlbi9hc20tYXJtLgogICAtIEFkZCBMSVZFUEFUQ0hfVk1BUF9FTkQgYW5kIExJVkVQQVRD SF9WTUFQX1NUQVJUIGluIGNvbmZpZy5oCiAgIC0gSW4gYXJjaF9saXZlcGF0Y2hfc2VjdXJlIHVz ZSBzd2l0Y2ggZm9yIHZhX3R5cGUuCiAgIC0gRHJvcCB0aGUgI2lmbmRlZiBDT05GSUdfQVJNIGZv ciAuZXhfdGFibGUgKHNlZQogICAgICJhcm0veDg2OiBBZGQgSEFTX0FMVEVSTkFUSVZFIGFuZCBI QVNfRVhfVEFCTEUiKQogICAtIFBpZ2d5YmFjayBvbiAieDg2OiBjaGFuZ2UgbW9kaWZ5X3hlbl9t YXBwaW5ncyB0byByZXR1cm4gZXJyb3IiCiAgICAgIHNvIHRoYXQgYXJjaF9saXZlcGF0Y2hfc2Vj dXJlIGNhbiByZXR1cm4gZXJyb3JzLgogICAtIE1vdmVzIGNvbW1lbnQgYWJvdXQgYnJhbmNoIHBy ZWRpY3RvciBvdXQgb2YgdGhpcyBwYXRjaC4KdjM6IEZpeCBTdHlsZUd1aWRlIHZpb2xhdGlvbnMg KHN3aXRjaCBzdGF0ZW1lbnRzKQogICAtIEZpeCBpbmNvcnJlY3QgY2FzdCBvZiBhZGRyIHdoZW4g cmV2ZXJ0aW5nLgogICAtIERyb3Agb2xkX3B0ciB2YXJpYWJsZS4KICAgLSBVc2UgYm9vbF90IHZh bHVlcyBpbnN0ZWFkIG9mIG51bWJlcnMuCiAgIC0gU3ByaW5rbGUgXG4gYXMgcmVxdWVzdGVkIGJ5 IEp1bGllbi4KICAgLSBJbiBhcmNoX2xpdmVwYXRjaF9xdWllc2NlIHVzZSAxVSBpbnN0ZWFkIG9m IDEuCiAgIC0gVXNlIEM5OSAjZGVmaW5lcyBmb3IgW1UsXUlOVFsxNiwzMl1fW01JTixNQVhdIGlu c3RlYWQgb2YgTGludXgKICAgICBrZXJuZWwgb25lcyAoW1MsVV1bMTYsMzJdX1tNSU4sTUFYXSku CiAgIC0gSW5jbHVkZSB0aGUgRUxGIHJlbG9jYXRpb25zIGZvciBSX0FBUkNINjRfW0FCUyxQUkVd MTYsIGFuZAogICAgIGFsbCB0aGUgdmFyaW91cyBncm91cGluZ3MgZm9yIFJfQUFSQ0g2NF9NT1ZX X1tVQUJTLFNBQlMsUFJFTF1fKgogICAgIGZhbWlseS4KICAgLSBSZWRvIHRoZSBOT1AgcGF0Y2hp bmcgdG8gdXNlIG1vcmUgb2YgdGhlIG9wYXF1ZSBzaXplIChzbyB1cCB0byA3CiAgICAgaW5zdHJ1 Y3Rpb25zIGluIG9uZSBnbykuCiAgIC0gRHJvcCB0aGUgY3B1X3RvX2xlMzIgbWFjcm9zIGFzIHRo ZXkgYXJlIG5vdCBuZWVkZWQgKGFuZCBjYW4gYWxsb3cKICAgICB1c2UgdG8gc2hhcmUgbW9yZSBj b2RlIHdpdGggQVJNMzIpLgogICAtIEZsdXNoIG91dCBmdW5jLT5vbGRfYWRkciBpbnN0ZWFkIG9m IHZtYXAgcG9pbnRlciB3aGVuIHJldmVydGluZy4KdjQ6IEFkZGVkIEphbidzIEFjawogICBzL1BB VENIX0lOU05fU0laRS9BUkNIX1BBVENIX0lOU05fU0laRS8KICAgcy9hcmNoX2xpdmVwYXRjaF9p bnNuX2xlbi9saXZlcGF0Y2hfaW5zbl9sZW4vCi0tLQogTUFJTlRBSU5FUlMgICAgICAgICAgICAg ICAgICAgICB8ICAgMSArCiB4ZW4vYXJjaC9hcm0vTWFrZWZpbGUgICAgICAgICAgIHwgIDEzICst CiB4ZW4vYXJjaC9hcm0vYXJtMzIvTWFrZWZpbGUgICAgIHwgICAxICsKIHhlbi9hcmNoL2FybS9h cm0zMi9saXZlcGF0Y2guYyAgfCAgMzggKysrKwogeGVuL2FyY2gvYXJtL2FybTY0L01ha2VmaWxl ICAgICB8ICAgMSArCiB4ZW4vYXJjaC9hcm0vYXJtNjQvbGl2ZXBhdGNoLmMgIHwgNDc3ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHhlbi9hcmNoL2FybS9kb21haW4u YyAgICAgICAgICAgfCAgIDYgKwogeGVuL2FyY2gvYXJtL2xpdmVwYXRjaC5jICAgICAgICB8IDEw MyArKysrKysrLS0KIHhlbi9hcmNoL2FybS90cmFwcy5jICAgICAgICAgICAgfCAgIDYgKwogeGVu L2NvbW1vbi9LY29uZmlnICAgICAgICAgICAgICB8ICAgMiArLQogeGVuL2luY2x1ZGUvYXNtLWFy bS9jb25maWcuaCAgICB8ICAgNSArCiB4ZW4vaW5jbHVkZS9hc20tYXJtL2xpdmVwYXRjaC5oIHwg IDI4ICsrKwogeGVuL2luY2x1ZGUveGVuL2VsZnN0cnVjdHMuaCAgICB8ICA1NyArKysrLQogeGVu L2luY2x1ZGUveGVuL3R5cGVzLmggICAgICAgICB8ICAgOSArCiAxNCBmaWxlcyBjaGFuZ2VkLCA3 MjIgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgeGVu L2FyY2gvYXJtL2FybTMyL2xpdmVwYXRjaC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2FyY2gv YXJtL2FybTY0L2xpdmVwYXRjaC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2luY2x1ZGUvYXNt LWFybS9saXZlcGF0Y2guaAoKZGlmZiAtLWdpdCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlMK aW5kZXggOTc3MjBhOC4uYWUwYjZiYyAxMDA2NDQKLS0tIGEvTUFJTlRBSU5FUlMKKysrIGIvTUFJ TlRBSU5FUlMKQEAgLTI2OSw2ICsyNjksNyBAQCBTOiAgU3VwcG9ydGVkCiBGOiAgZG9jcy9taXNj L2xpdmVwYXRjaC5tYXJrZG93bgogRjogIHRvb2xzL21pc2MveGVuLWxpdmVwYXRjaC5jCiBGOiAg eGVuL2FyY2gvKi9saXZlcGF0Y2gqCitGOiAgeGVuL2FyY2gvKi8qL2xpdmVwYXRjaCoKIEY6ICB4 ZW4vY29tbW9uL2xpdmVwYXRjaCoKIEY6ICB4ZW4vaW5jbHVkZS94ZW4vbGl2ZXBhdGNoKgogCmRp ZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vTWFrZWZpbGUgYi94ZW4vYXJjaC9hcm0vTWFrZWZpbGUK aW5kZXggNjFlNjU1Yi4uNWNlZTg0ZCAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL01ha2VmaWxl CisrKyBiL3hlbi9hcmNoL2FybS9NYWtlZmlsZQpAQCAtNTksNiArNTksMTUgQEAgQUxMX09CSlMg Oj0gJChUQVJHRVRfU1VCQVJDSCkvaGVhZC5vICQoQUxMX09CSlMpCiAKIERFUFMgKz0gJChUQVJH RVRfU1VCQVJDSCkvLmhlYWQuby5kCiAKK2lmZGVmIENPTkZJR19MSVZFUEFUQ0gKK2FsbF9zeW1i b2xzID0gLS1hbGwtc3ltYm9scworaWZkZWYgQ09ORklHX0ZBU1RfU1lNQk9MX0xPT0tVUAorYWxs X3N5bWJvbHMgPSAtLWFsbC1zeW1ib2xzIC0tc29ydC1ieS1uYW1lCitlbmRpZgorZWxzZQorYWxs X3N5bWJvbHMgPQorZW5kaWYKKwogJChUQVJHRVQpOiAkKFRBUkdFVCktc3ltcyAkKFRBUkdFVCku YXhmCiAJJChPQkpDT1BZKSAtTyBiaW5hcnkgLVMgJDwgJEAKIGlmZXEgKCQoQ09ORklHX0FSTV82 NCkseSkKQEAgLTk0LDEyICsxMDMsMTIgQEAgJChUQVJHRVQpLXN5bXM6IHByZWxpbmsubyB4ZW4u bGRzICQoQkFTRURJUikvY29tbW9uL3N5bWJvbHMtZHVtbXkubwogCSQoTEQpICQoTERGTEFHUykg LVQgeGVuLmxkcyAtTiBwcmVsaW5rLm8gXAogCSAgICAkKEJBU0VESVIpL2NvbW1vbi9zeW1ib2xz LWR1bW15Lm8gLW8gJChARCkvLiQoQEYpLjAKIAkkKE5NKSAtcGEgLS1mb3JtYXQ9c3lzdiAkKEBE KS8uJChARikuMCBcCi0JCXwgJChCQVNFRElSKS90b29scy9zeW1ib2xzIC0tc3lzdiAtLXNvcnQg PiQoQEQpLy4kKEBGKS4wLlMKKwkJfCAkKEJBU0VESVIpL3Rvb2xzL3N5bWJvbHMgJChhbGxfc3lt Ym9scykgLS1zeXN2IC0tc29ydCA+JChARCkvLiQoQEYpLjAuUwogCSQoTUFLRSkgLWYgJChCQVNF RElSKS9SdWxlcy5tayAkKEBEKS8uJChARikuMC5vCiAJJChMRCkgJChMREZMQUdTKSAtVCB4ZW4u bGRzIC1OIHByZWxpbmsubyBcCiAJICAgICQoQEQpLy4kKEBGKS4wLm8gLW8gJChARCkvLiQoQEYp LjEKIAkkKE5NKSAtcGEgLS1mb3JtYXQ9c3lzdiAkKEBEKS8uJChARikuMSBcCi0JCXwgJChCQVNF RElSKS90b29scy9zeW1ib2xzIC0tc3lzdiAtLXNvcnQgPiQoQEQpLy4kKEBGKS4xLlMKKwkJfCAk KEJBU0VESVIpL3Rvb2xzL3N5bWJvbHMgJChhbGxfc3ltYm9scykgLS1zeXN2IC0tc29ydCA+JChA RCkvLiQoQEYpLjEuUwogCSQoTUFLRSkgLWYgJChCQVNFRElSKS9SdWxlcy5tayAkKEBEKS8uJChA RikuMS5vCiAJJChMRCkgJChMREZMQUdTKSAtVCB4ZW4ubGRzIC1OIHByZWxpbmsubyAkKGJ1aWxk X2lkX2xpbmtlcikgXAogCSAgICAkKEBEKS8uJChARikuMS5vIC1vICRACmRpZmYgLS1naXQgYS94 ZW4vYXJjaC9hcm0vYXJtMzIvTWFrZWZpbGUgYi94ZW4vYXJjaC9hcm0vYXJtMzIvTWFrZWZpbGUK aW5kZXggYjIwZGI2NC4uNDM5NTY5MyAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL2FybTMyL01h a2VmaWxlCisrKyBiL3hlbi9hcmNoL2FybS9hcm0zMi9NYWtlZmlsZQpAQCAtNCw2ICs0LDcgQEAg b2JqLSQoRUFSTFlfUFJJTlRLKSArPSBkZWJ1Zy5vCiBvYmoteSArPSBkb21jdGwubwogb2JqLXkg Kz0gZG9tYWluLm8KIG9iai15ICs9IGVudHJ5Lm8KK29iai0kKENPTkZJR19MSVZFUEFUQ0gpICs9 IGxpdmVwYXRjaC5vCiBvYmoteSArPSBwcm9jLXY3Lm8gcHJvYy1jYXh4Lm8KIG9iai15ICs9IHNt cGJvb3Qubwogb2JqLXkgKz0gdHJhcHMubwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2FybTMy L2xpdmVwYXRjaC5jIGIveGVuL2FyY2gvYXJtL2FybTMyL2xpdmVwYXRjaC5jCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzM2I2OGQKLS0tIC9kZXYvbnVsbAorKysgYi94ZW4v YXJjaC9hcm0vYXJtMzIvbGl2ZXBhdGNoLmMKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqICBDb3B5 cmlnaHQgKGMpIDIwMTYgT3JhY2xlIGFuZC9vciBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyBy ZXNlcnZlZC4KKyAqLworCisjaW5jbHVkZSA8eGVuL2Vycm5vLmg+CisjaW5jbHVkZSA8eGVuL2xp Yi5oPgorI2luY2x1ZGUgPHhlbi9saXZlcGF0Y2hfZWxmLmg+CisjaW5jbHVkZSA8eGVuL2xpdmVw YXRjaC5oPgorCit2b2lkIGFyY2hfbGl2ZXBhdGNoX2FwcGx5X2ptcChzdHJ1Y3QgbGl2ZXBhdGNo X2Z1bmMgKmZ1bmMpCit7Cit9CisKK3ZvaWQgYXJjaF9saXZlcGF0Y2hfcmV2ZXJ0X2ptcChjb25z dCBzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgKmZ1bmMpCit7Cit9CisKK2ludCBhcmNoX2xpdmVwYXRj aF92ZXJpZnlfZWxmKGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hfZWxmICplbGYpCit7CisgICAgcmV0 dXJuIC1FT1BOT1RTVVBQOworfQorCitpbnQgYXJjaF9saXZlcGF0Y2hfcGVyZm9ybV9yZWxhKHN0 cnVjdCBsaXZlcGF0Y2hfZWxmICplbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hfZWxmX3NlYyAqYmFzZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGxpdmVwYXRjaF9lbGZfc2VjICpyZWxhKQorewor ICAgIHJldHVybiAtRU5PU1lTOworfQorCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9k ZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRh Yi13aWR0aDogNAorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAt LWdpdCBhL3hlbi9hcmNoL2FybS9hcm02NC9NYWtlZmlsZSBiL3hlbi9hcmNoL2FybS9hcm02NC9N YWtlZmlsZQppbmRleCBjMWZhNDNmLi4xNDliNmIzIDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0v YXJtNjQvTWFrZWZpbGUKKysrIGIveGVuL2FyY2gvYXJtL2FybTY0L01ha2VmaWxlCkBAIC02LDYg KzYsNyBAQCBvYmoteSArPSBkb21jdGwubwogb2JqLXkgKz0gZG9tYWluLm8KIG9iai15ICs9IGVu dHJ5Lm8KIG9iai15ICs9IGluc24ubworb2JqLSQoQ09ORklHX0xJVkVQQVRDSCkgKz0gbGl2ZXBh dGNoLm8KIG9iai15ICs9IHNtcGJvb3Qubwogb2JqLXkgKz0gdHJhcHMubwogb2JqLXkgKz0gdmZw Lm8KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9hcm02NC9saXZlcGF0Y2guYyBiL3hlbi9hcmNo L2FybS9hcm02NC9saXZlcGF0Y2guYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li40OWViNjliCi0tLSAvZGV2L251bGwKKysrIGIveGVuL2FyY2gvYXJtL2FybTY0L2xpdmVwYXRj aC5jCkBAIC0wLDAgKzEsNDc3IEBACisvKgorICogIENvcHlyaWdodCAoYykgMjAxNiBPcmFjbGUg YW5kL29yIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICovCisKKyNpbmNs dWRlIDx4ZW4vYml0b3BzLmg+CisjaW5jbHVkZSA8eGVuL2Vycm5vLmg+CisjaW5jbHVkZSA8eGVu L2xpYi5oPgorI2luY2x1ZGUgPHhlbi9saXZlcGF0Y2hfZWxmLmg+CisjaW5jbHVkZSA8eGVuL2xp dmVwYXRjaC5oPgorI2luY2x1ZGUgPHhlbi9tbS5oPgorI2luY2x1ZGUgPHhlbi92bWFwLmg+CisK KyNpbmNsdWRlIDxhc20vYml0b3BzLmg+CisjaW5jbHVkZSA8YXNtL2J5dGVvcmRlci5oPgorI2lu Y2x1ZGUgPGFzbS9pbnNuLmg+CisjaW5jbHVkZSA8YXNtL2xpdmVwYXRjaC5oPgorCit2b2lkIGFy Y2hfbGl2ZXBhdGNoX2FwcGx5X2ptcChzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgKmZ1bmMpCit7Cisg ICAgdWludDMyX3QgaW5zbjsKKyAgICB1aW50MzJfdCAqbmV3X3B0cjsKKyAgICB1bnNpZ25lZCBp bnQgaSwgbGVuOworCisgICAgQlVJTERfQlVHX09OKEFSQ0hfUEFUQ0hfSU5TTl9TSVpFID4gc2l6 ZW9mKGZ1bmMtPm9wYXF1ZSkpOworICAgIEJVSUxEX0JVR19PTihBUkNIX1BBVENIX0lOU05fU0la RSAhPSBzaXplb2YoaW5zbikpOworCisgICAgQVNTRVJUKHZtYXBfb2ZfeGVuX3RleHQpOworCisg ICAgbGVuID0gbGl2ZXBhdGNoX2luc25fbGVuKGZ1bmMpOworICAgIGlmICggIWxlbiApCisgICAg ICAgIHJldHVybjsKKworICAgIC8qIFNhdmUgb2xkIG9uZXMuICovCisgICAgbWVtY3B5KGZ1bmMt Pm9wYXF1ZSwgZnVuYy0+b2xkX2FkZHIsIGxlbik7CisKKyAgICBpZiAoIGZ1bmMtPm5ld19hZGRy ICkKKyAgICAgICAgaW5zbiA9IGFhcmNoNjRfaW5zbl9nZW5fYnJhbmNoX2ltbSgodW5zaWduZWQg bG9uZylmdW5jLT5vbGRfYWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAodW5zaWduZWQgbG9uZylmdW5jLT5uZXdfYWRkciwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBBQVJDSDY0X0lOU05fQlJBTkNIX05PTElOSyk7Cisg ICAgZWxzZQorICAgICAgICBpbnNuID0gYWFyY2g2NF9pbnNuX2dlbl9ub3AoKTsKKworICAgIEFT U0VSVChpbnNuICE9IEFBUkNINjRfQlJFQUtfRkFVTFQpOworCisgICAgbmV3X3B0ciA9IGZ1bmMt Pm9sZF9hZGRyIC0gKHZvaWQgKilfc3RhcnQgKyB2bWFwX29mX3hlbl90ZXh0OworICAgIGxlbiA9 IGxlbiAvIHNpemVvZih1aW50MzJfdCk7CisKKyAgICAvKiBQQVRDSCEgKi8KKyAgICBmb3IgKCBp ID0gMDsgaSA8IGxlbjsgaSsrICkKKyAgICAgICAgKihuZXdfcHRyICsgaSkgPSBpbnNuOworCisg ICAgY2xlYW5fYW5kX2ludmFsaWRhdGVfZGNhY2hlX3ZhX3JhbmdlKG5ld19wdHIsIHNpemVvZigq bmV3X3B0cikgKiBsZW4pOworfQorCit2b2lkIGFyY2hfbGl2ZXBhdGNoX3JldmVydF9qbXAoY29u c3Qgc3RydWN0IGxpdmVwYXRjaF9mdW5jICpmdW5jKQoreworICAgIHVpbnQzMl90ICpuZXdfcHRy OworICAgIHVuc2lnbmVkIGludCBpLCBsZW47CisKKyAgICBuZXdfcHRyID0gZnVuYy0+b2xkX2Fk ZHIgLSAodm9pZCAqKV9zdGFydCArIHZtYXBfb2ZfeGVuX3RleHQ7CisgICAgbGVuID0gbGl2ZXBh dGNoX2luc25fbGVuKGZ1bmMpIC8gc2l6ZW9mKHVpbnQzMl90KTsKKyAgICBmb3IgKCBpID0gMDsg aSA8IGxlbjsgaSsrICkKKyAgICB7CisgICAgICAgIHVpbnQzMl90IGluc247CisKKyAgICAgICAg bWVtY3B5KCZpbnNuLCBmdW5jLT5vcGFxdWUgKyAoaSAqIHNpemVvZih1aW50MzJfdCkpLCBBUkNI X1BBVENIX0lOU05fU0laRSk7CisgICAgICAgIC8qIFBBVENIISAqLworICAgICAgICAqKG5ld19w dHIgKyBpKSA9IGluc247CisgICAgfQorCisgICAgY2xlYW5fYW5kX2ludmFsaWRhdGVfZGNhY2hl X3ZhX3JhbmdlKGZ1bmMtPm9sZF9hZGRyLCBzaXplb2YoKm5ld19wdHIpICogbGVuKTsKK30KKwor aW50IGFyY2hfbGl2ZXBhdGNoX3ZlcmlmeV9lbGYoY29uc3Qgc3RydWN0IGxpdmVwYXRjaF9lbGYg KmVsZikKK3sKKyAgICBjb25zdCBFbGZfRWhkciAqaGRyID0gZWxmLT5oZHI7CisKKyAgICBpZiAo IGhkci0+ZV9tYWNoaW5lICE9IEVNX0FBUkNINjQgfHwKKyAgICAgICAgIGhkci0+ZV9pZGVudFtF SV9DTEFTU10gIT0gRUxGQ0xBU1M2NCApCisgICAgeworICAgICAgICBkcHJpbnRrKFhFTkxPR19F UlIsIExJVkVQQVRDSCAiJXM6IFVuc3VwcG9ydGVkIEVMRiBNYWNoaW5lIHR5cGUhXG4iLAorICAg ICAgICAgICAgICAgIGVsZi0+bmFtZSk7CisgICAgICAgIHJldHVybiAtRU9QTk9UU1VQUDsKKyAg ICB9CisKKyAgICByZXR1cm4gMDsKK30KKworZW51bSBhYXJjaDY0X3JlbG9jX29wIHsKKyAgICBS RUxPQ19PUF9OT05FLAorICAgIFJFTE9DX09QX0FCUywKKyAgICBSRUxPQ19PUF9QUkVMLAorICAg IFJFTE9DX09QX1BBR0UsCit9OworCitzdGF0aWMgdTY0IGRvX3JlbG9jKGVudW0gYWFyY2g2NF9y ZWxvY19vcCByZWxvY19vcCwgdm9pZCAqcGxhY2UsIHU2NCB2YWwpCit7CisgICAgc3dpdGNoICgg cmVsb2Nfb3AgKQorICAgIHsKKyAgICBjYXNlIFJFTE9DX09QX0FCUzoKKyAgICAgICAgcmV0dXJu IHZhbDsKKworICAgIGNhc2UgUkVMT0NfT1BfUFJFTDoKKyAgICAgICAgcmV0dXJuIHZhbCAtICh1 NjQpcGxhY2U7CisKKyAgICBjYXNlIFJFTE9DX09QX1BBR0U6CisgICAgICAgIHJldHVybiAodmFs ICYgfjB4ZmZmKSAtICgodTY0KXBsYWNlICYgfjB4ZmZmKTsKKworICAgIGNhc2UgUkVMT0NfT1Bf Tk9ORToKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICB9CisKKyAgICBkcHJpbnRrKFhFTkxPR19E RUJVRywgTElWRVBBVENIICJkb19yZWxvYzogdW5rbm93biByZWxvY2F0aW9uIG9wZXJhdGlvbiAl ZFxuIiwgcmVsb2Nfb3ApOworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcmVsb2Nf ZGF0YShlbnVtIGFhcmNoNjRfcmVsb2Nfb3Agb3AsIHZvaWQgKnBsYWNlLCB1NjQgdmFsLCBpbnQg bGVuKQoreworICAgIHM2NCBzdmFsID0gZG9fcmVsb2Mob3AsIHBsYWNlLCB2YWwpOworCisgICAg c3dpdGNoICggbGVuICkKKyAgICB7CisgICAgY2FzZSAxNjoKKyAgICAgICAgKihzMTYgKilwbGFj ZSA9IHN2YWw7CisgICAgICAgIGlmICggc3ZhbCA8IElOVDE2X01JTiB8fCBzdmFsID4gVUlOVDE2 X01BWCApCisJICAgICAgICByZXR1cm4gLUVPVkVSRkxPVzsKKyAgICAgICAgYnJlYWs7CisKKyAg ICBjYXNlIDMyOgorICAgICAgICAqKHMzMiAqKXBsYWNlID0gc3ZhbDsKKyAgICAgICAgaWYgKCBz dmFsIDwgSU5UMzJfTUlOIHx8IHN2YWwgPiBVSU5UMzJfTUFYICkKKwkgICAgICAgIHJldHVybiAt RU9WRVJGTE9XOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgNjQ6CisgICAgICAgICooczY0 ICopcGxhY2UgPSBzdmFsOworICAgICAgICBicmVhazsKKworICAgIGRlZmF1bHQ6CisgICAgICAg IGRwcmludGsoWEVOTE9HX0RFQlVHLCBMSVZFUEFUQ0ggIkludmFsaWQgbGVuZ3RoICglZCkgZm9y IGRhdGEgcmVsb2NhdGlvblxuIiwgbGVuKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisg ICAgcmV0dXJuIDA7Cit9CisKK2VudW0gYWFyY2g2NF9pbnNuX21vdndfaW1tX3R5cGUgeworICAg IEFBUkNINjRfSU5TTl9JTU1fTU9WTlosCisgICAgQUFSQ0g2NF9JTlNOX0lNTV9NT1ZLWiwKK307 CisKK3N0YXRpYyBpbnQgcmVsb2NfaW5zbl9tb3Z3KGVudW0gYWFyY2g2NF9yZWxvY19vcCBvcCwg dm9pZCAqZGVzdCwgdTY0IHZhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsc2Is IGVudW0gYWFyY2g2NF9pbnNuX21vdndfaW1tX3R5cGUgaW1tX3R5cGUpCit7CisgICAgdTY0IGlt bTsKKyAgICBzNjQgc3ZhbDsKKyAgICB1MzIgaW5zbiA9ICoodTMyICopZGVzdDsKKworICAgIHN2 YWwgPSBkb19yZWxvYyhvcCwgZGVzdCwgdmFsKTsKKyAgICBpbW0gPSBzdmFsID4+IGxzYjsKKwor ICAgIGlmICggaW1tX3R5cGUgPT0gQUFSQ0g2NF9JTlNOX0lNTV9NT1ZOWiApCisgICAgeworICAg ICAgICAvKgorICAgICAgICAgKiBGb3Igc2lnbmVkIE1PVlcgcmVsb2NhdGlvbnMsIHdlIGhhdmUg dG8gbWFuaXB1bGF0ZSB0aGUKKyAgICAgICAgICogaW5zdHJ1Y3Rpb24gZW5jb2RpbmcgZGVwZW5k aW5nIG9uIHdoZXRoZXIgb3Igbm90IHRoZQorICAgICAgICAgKiBpbW1lZGlhdGUgaXMgbGVzcyB0 aGFuIHplcm8uCisgICAgICAgICAqLworICAgICAgICBpbnNuICY9IH4oMyA8PCAyOSk7CisgICAg ICAgIGlmICggc3ZhbCA+PSAwICkKKyAgICAgICAgeworICAgICAgICAgICAgLyogPj0wOiBTZXQg dGhlIGluc3RydWN0aW9uIHRvIE1PVlogKG9wY29kZSAxMGIpLiAqLworICAgICAgICAgICAgaW5z biB8PSAyIDw8IDI5OworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAg ICAgICAgLyoKKyAgICAgICAgICAgICAqIDwwOiBTZXQgdGhlIGluc3RydWN0aW9uIHRvIE1PVk4g KG9wY29kZSAwMGIpLgorICAgICAgICAgICAgICogICAgIFNpbmNlIHdlJ3ZlIG1hc2tlZCB0aGUg b3Bjb2RlIGFscmVhZHksIHdlCisgICAgICAgICAgICAgKiAgICAgZG9uJ3QgbmVlZCB0byBkbyBh bnl0aGluZyBvdGhlciB0aGFuCisgICAgICAgICAgICAgKiAgICAgaW52ZXJ0aW5nIHRoZSBuZXcg aW1tZWRpYXRlIGZpZWxkLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBpbW0gPSB+aW1t OworICAgICAgICB9CisgICAgfQorCisgICAgLyogVXBkYXRlIHRoZSBpbnN0cnVjdGlvbiB3aXRo IHRoZSBuZXcgZW5jb2RpbmcuICovCisgICAgaW5zbiA9IGFhcmNoNjRfaW5zbl9lbmNvZGVfaW1t ZWRpYXRlKEFBUkNINjRfSU5TTl9JTU1fMTYsIGluc24sIGltbSk7CisgICAgKih1MzIgKilkZXN0 ID0gaW5zbjsKKworICAgIGlmICggaW1tID4gVUlOVDE2X01BWCApCisgICAgICAgIHJldHVybiAt RU9WRVJGTE9XOworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcmVsb2NfaW5zbl9p bW0oZW51bSBhYXJjaDY0X3JlbG9jX29wIG9wLCB2b2lkICpkZXN0LCB1NjQgdmFsLAorICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnQgbHNiLCBpbnQgbGVuLCBlbnVtIGFhcmNoNjRfaW5zbl9p bW1fdHlwZSBpbW1fdHlwZSkKK3sKKyAgICB1NjQgaW1tLCBpbW1fbWFzazsKKyAgICBzNjQgc3Zh bDsKKyAgICB1MzIgaW5zbiA9ICoodTMyICopZGVzdDsKKworICAgIC8qIENhbGN1bGF0ZSB0aGUg cmVsb2NhdGlvbiB2YWx1ZS4gKi8KKyAgICBzdmFsID0gZG9fcmVsb2Mob3AsIGRlc3QsIHZhbCk7 CisgICAgc3ZhbCA+Pj0gbHNiOworCisgICAgLyogRXh0cmFjdCB0aGUgdmFsdWUgYml0cyBhbmQg c2hpZnQgdGhlbSB0byBiaXQgMC4gKi8KKyAgICBpbW1fbWFzayA9IChCSVQobHNiICsgbGVuKSAt IDEpID4+IGxzYjsKKyAgICBpbW0gPSBzdmFsICYgaW1tX21hc2s7CisKKyAgICAvKiBVcGRhdGUg dGhlIGluc3RydWN0aW9uJ3MgaW1tZWRpYXRlIGZpZWxkLiAqLworICAgIGluc24gPSBhYXJjaDY0 X2luc25fZW5jb2RlX2ltbWVkaWF0ZShpbW1fdHlwZSwgaW5zbiwgaW1tKTsKKyAgICAqKHUzMiAq KWRlc3QgPSBpbnNuOworCisgICAgLyoKKyAgICAgKiBFeHRyYWN0IHRoZSB1cHBlciB2YWx1ZSBi aXRzIChpbmNsdWRpbmcgdGhlIHNpZ24gYml0KSBhbmQKKyAgICAgKiBzaGlmdCB0aGVtIHRvIGJp dCAwLgorICAgICAqLworICAgIHN2YWwgPSAoczY0KShzdmFsICYgfihpbW1fbWFzayA+PiAxKSkg Pj4gKGxlbiAtIDEpOworCisgICAgLyoKKyAgICAgKiBPdmVyZmxvdyBoYXMgb2NjdXJyZWQgaWYg dGhlIHVwcGVyIGJpdHMgYXJlIG5vdCBhbGwgZXF1YWwgdG8KKyAgICAgKiB0aGUgc2lnbiBiaXQg b2YgdGhlIHZhbHVlLgorICAgICAqLworICAgIGlmICggKHU2NCkoc3ZhbCArIDEpID49IDIgKQor ICAgICAgICByZXR1cm4gLUVPVkVSRkxPVzsKKyAgICByZXR1cm4gMDsKK30KKworaW50IGFyY2hf bGl2ZXBhdGNoX3BlcmZvcm1fcmVsYShzdHJ1Y3QgbGl2ZXBhdGNoX2VsZiAqZWxmLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZl9zZWMg KmJhc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBsaXZl cGF0Y2hfZWxmX3NlYyAqcmVsYSkKK3sKKyAgICBjb25zdCBFbGZfUmVsQSAqcjsKKyAgICB1bnNp Z25lZCBpbnQgc3ltbmR4LCBpOworICAgIHVpbnQ2NF90IHZhbDsKKyAgICB2b2lkICpkZXN0Owor ICAgIGJvb2xfdCBvdmVyZmxvd19jaGVjazsKKworICAgIGZvciAoIGkgPSAwOyBpIDwgKHJlbGEt PnNlYy0+c2hfc2l6ZSAvIHJlbGEtPnNlYy0+c2hfZW50c2l6ZSk7IGkrKyApCisgICAgeworICAg ICAgICBpbnQgb3ZmID0gMDsKKworICAgICAgICByID0gcmVsYS0+ZGF0YSArIGkgKiByZWxhLT5z ZWMtPnNoX2VudHNpemU7CisKKyAgICAgICAgc3ltbmR4ID0gRUxGNjRfUl9TWU0oci0+cl9pbmZv KTsKKworICAgICAgICBpZiAoIHN5bW5keCA+IGVsZi0+bnN5bSApCisgICAgICAgIHsKKyAgICAg ICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgTElWRVBBVENIICIlczogUmVsYXRpdmUgcmVsb2Nh dGlvbiB3YW50cyBzeW1ib2xAJXUgd2hpY2ggaXMgcGFzdCBlbmQhXG4iLAorICAgICAgICAgICAg ICAgICAgICBlbGYtPm5hbWUsIHN5bW5keCk7CisgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsK KyAgICAgICAgfQorCisgICAgICAgIGRlc3QgPSBiYXNlLT5sb2FkX2FkZHIgKyByLT5yX29mZnNl dDsgLyogUCAqLworICAgICAgICB2YWwgPSBlbGYtPnN5bVtzeW1uZHhdLnN5bS0+c3RfdmFsdWUg KyAgci0+cl9hZGRlbmQ7IC8qIFMrQSAqLworCisgICAgICAgIG92ZXJmbG93X2NoZWNrID0gdHJ1 ZTsKKworICAgICAgICAvKiBBUk02NCBvcGVyYXRpb25zIGF0IG1pbmltdW0gYXJlIGFsd2F5cyAz Mi1iaXQuICovCisgICAgICAgIGlmICggci0+cl9vZmZzZXQgPj0gYmFzZS0+c2VjLT5zaF9zaXpl IHx8CisgICAgICAgICAgICAoci0+cl9vZmZzZXQgKyBzaXplb2YodWludDMyX3QpKSA+IGJhc2Ut PnNlYy0+c2hfc2l6ZSApCisgICAgICAgICAgICBnb3RvIGJhZF9vZmZzZXQ7CisKKyAgICAgICAg c3dpdGNoICggRUxGNjRfUl9UWVBFKHItPnJfaW5mbykgKQorICAgICAgICB7CisgICAgICAgIC8q IERhdGEgKi8KKyAgICAgICAgY2FzZSBSX0FBUkNINjRfQUJTNjQ6CisgICAgICAgICAgICBpZiAo IHItPnJfb2Zmc2V0ICsgc2l6ZW9mKHVpbnQ2NF90KSA+IGJhc2UtPnNlYy0+c2hfc2l6ZSApCisg ICAgICAgICAgICAgICAgZ290byBiYWRfb2Zmc2V0OworICAgICAgICAgICAgb3ZlcmZsb3dfY2hl Y2sgPSBmYWxzZTsKKyAgICAgICAgICAgIG92ZiA9IHJlbG9jX2RhdGEoUkVMT0NfT1BfQUJTLCBk ZXN0LCB2YWwsIDY0KTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgUl9BQVJD SDY0X0FCUzMyOgorICAgICAgICAgICAgb3ZmID0gcmVsb2NfZGF0YShSRUxPQ19PUF9BQlMsIGRl c3QsIHZhbCwgMzIpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBSX0FBUkNI NjRfQUJTMTY6CisgICAgICAgICAgICBvdmYgPSByZWxvY19kYXRhKFJFTE9DX09QX0FCUywgZGVz dCwgdmFsLCAxNik7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFJfQUFSQ0g2 NF9QUkVMNjQ6CisgICAgICAgICAgICBpZiAoIHItPnJfb2Zmc2V0ICsgc2l6ZW9mKHVpbnQ2NF90 KSA+IGJhc2UtPnNlYy0+c2hfc2l6ZSApCisgICAgICAgICAgICAgICAgZ290byBiYWRfb2Zmc2V0 OworICAgICAgICAgICAgb3ZlcmZsb3dfY2hlY2sgPSBmYWxzZTsKKyAgICAgICAgICAgIG92ZiA9 IHJlbG9jX2RhdGEoUkVMT0NfT1BfUFJFTCwgZGVzdCwgdmFsLCA2NCk7CisgICAgICAgICAgICBi cmVhazsKKworICAgICAgICBjYXNlIFJfQUFSQ0g2NF9QUkVMMzI6CisgICAgICAgICAgICBvdmYg PSByZWxvY19kYXRhKFJFTE9DX09QX1BSRUwsIGRlc3QsIHZhbCwgMzIpOworICAgICAgICAgICAg YnJlYWs7CisKKyAgICAgICAgY2FzZSBSX0FBUkNINjRfUFJFTDE2OgorICAgICAgICAgICAgb3Zm ID0gcmVsb2NfZGF0YShSRUxPQ19PUF9QUkVMLCBkZXN0LCB2YWwsIDE2KTsKKyAgICAgICAgICAg IGJyZWFrOworCisgICAgICAgIC8qIE1PVlcgaW5zdHJ1Y3Rpb24gcmVsb2NhdGlvbnMuICovCisg ICAgICAgIGNhc2UgUl9BQVJDSDY0X01PVldfVUFCU19HMF9OQzoKKyAgICAgICAgICAgIG92ZXJm bG93X2NoZWNrID0gZmFsc2U7CisKKyAgICAgICAgY2FzZSBSX0FBUkNINjRfTU9WV19VQUJTX0cw OgorICAgICAgICAgICAgb3ZmID0gcmVsb2NfaW5zbl9tb3Z3KFJFTE9DX09QX0FCUywgZGVzdCwg dmFsLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFBUkNINjRfSU5TTl9J TU1fTU9WS1opOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBSX0FBUkNINjRf TU9WV19VQUJTX0cxX05DOgorICAgICAgICAgICAgb3ZlcmZsb3dfY2hlY2sgPSBmYWxzZTsKKwor ICAgICAgICBjYXNlIFJfQUFSQ0g2NF9NT1ZXX1VBQlNfRzE6CisgICAgICAgICAgICBvdmYgPSBy ZWxvY19pbnNuX21vdncoUkVMT0NfT1BfQUJTLCBkZXN0LCB2YWwsIDE2LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEFBUkNINjRfSU5TTl9JTU1fTU9WS1opOworICAgICAgICAg ICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBSX0FBUkNINjRfTU9WV19VQUJTX0cyX05DOgorICAg ICAgICAgICAgb3ZlcmZsb3dfY2hlY2sgPSBmYWxzZTsKKworICAgICAgICBjYXNlIFJfQUFSQ0g2 NF9NT1ZXX1VBQlNfRzI6CisgICAgICAgICAgICBvdmYgPSByZWxvY19pbnNuX21vdncoUkVMT0Nf T1BfQUJTLCBkZXN0LCB2YWwsIDMyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEFBUkNINjRfSU5TTl9JTU1fTU9WS1opOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAg Y2FzZSBSX0FBUkNINjRfTU9WV19VQUJTX0czOgorICAgICAgICAgICAgLyogV2UncmUgdXNpbmcg dGhlIHRvcCBiaXRzIHNvIHdlIGNhbid0IG92ZXJmbG93LiAqLworICAgICAgICAgICAgb3ZlcmZs b3dfY2hlY2sgPSBmYWxzZTsKKyAgICAgICAgICAgIG92ZiA9IHJlbG9jX2luc25fbW92dyhSRUxP Q19PUF9BQlMsIGRlc3QsIHZhbCwgNDgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQUFSQ0g2NF9JTlNOX0lNTV9NT1ZLWik7CisgICAgICAgICAgICBicmVhazsKKworICAgICAg ICBjYXNlIFJfQUFSQ0g2NF9NT1ZXX1NBQlNfRzA6CisgICAgICAgICAgICBvdmYgPSByZWxvY19p bnNuX21vdncoUkVMT0NfT1BfQUJTLCBkZXN0LCB2YWwsIDAsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQUFSQ0g2NF9JTlNOX0lNTV9NT1ZOWik7CisgICAgICAgICAgICBicmVh azsKKworICAgICAgICBjYXNlIFJfQUFSQ0g2NF9NT1ZXX1NBQlNfRzE6CisgICAgICAgICAgICBv dmYgPSByZWxvY19pbnNuX21vdncoUkVMT0NfT1BfQUJTLCBkZXN0LCB2YWwsIDE2LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFBUkNINjRfSU5TTl9JTU1fTU9WTlopOworICAg ICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBSX0FBUkNINjRfTU9WV19TQUJTX0cyOgor ICAgICAgICAgICAgb3ZmID0gcmVsb2NfaW5zbl9tb3Z3KFJFTE9DX09QX0FCUywgZGVzdCwgdmFs LCAzMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBQVJDSDY0X0lOU05fSU1N X01PVk5aKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgUl9BQVJDSDY0X01P VldfUFJFTF9HMF9OQzoKKyAgICAgICAgICAgIG92ZXJmbG93X2NoZWNrID0gZmFsc2U7CisgICAg ICAgICAgICBvdmYgPSByZWxvY19pbnNuX21vdncoUkVMT0NfT1BfUFJFTCwgZGVzdCwgdmFsLCAw LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFBUkNINjRfSU5TTl9JTU1fTU9W S1opOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBSX0FBUkNINjRfTU9WV19Q UkVMX0cwOgorICAgICAgICAgICAgb3ZmID0gcmVsb2NfaW5zbl9tb3Z3KFJFTE9DX09QX1BSRUws IGRlc3QsIHZhbCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBQVJDSDY0 X0lOU05fSU1NX01PVk5aKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgUl9B QVJDSDY0X01PVldfUFJFTF9HMV9OQzoKKyAgICAgICAgICAgIG92ZXJmbG93X2NoZWNrID0gZmFs c2U7CisgICAgICAgICAgICBvdmYgPSByZWxvY19pbnNuX21vdncoUkVMT0NfT1BfUFJFTCwgZGVz dCwgdmFsLCAxNiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBQVJDSDY0X0lO U05fSU1NX01PVktaKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgUl9BQVJD SDY0X01PVldfUFJFTF9HMToKKyAgICAgICAgICAgIG92ZiA9IHJlbG9jX2luc25fbW92dyhSRUxP Q19PUF9QUkVMLCBkZXN0LCB2YWwsIDE2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFBUkNINjRfSU5TTl9JTU1fTU9WTlopOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAg ICAgY2FzZSBSX0FBUkNINjRfTU9WV19QUkVMX0cyX05DOgorICAgICAgICAgICAgb3ZlcmZsb3df Y2hlY2sgPSBmYWxzZTsKKyAgICAgICAgICAgIG92ZiA9IHJlbG9jX2luc25fbW92dyhSRUxPQ19P UF9QUkVMLCBkZXN0LCB2YWwsIDMyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEFBUkNINjRfSU5TTl9JTU1fTU9WS1opOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAg Y2FzZSBSX0FBUkNINjRfTU9WV19QUkVMX0cyOgorICAgICAgICAgICAgb3ZmID0gcmVsb2NfaW5z bl9tb3Z3KFJFTE9DX09QX1BSRUwsIGRlc3QsIHZhbCwgMzIsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQUFSQ0g2NF9JTlNOX0lNTV9NT1ZOWik7CisgICAgICAgICAgICBicmVh azsKKworICAgICAgICBjYXNlIFJfQUFSQ0g2NF9NT1ZXX1BSRUxfRzM6CisgICAgICAgICAgICAv KiBXZSdyZSB1c2luZyB0aGUgdG9wIGJpdHMgc28gd2UgY2FuJ3Qgb3ZlcmZsb3cuICovCisgICAg ICAgICAgICBvdmVyZmxvd19jaGVjayA9IGZhbHNlOworICAgICAgICAgICAgb3ZmID0gcmVsb2Nf aW5zbl9tb3Z3KFJFTE9DX09QX1BSRUwsIGRlc3QsIHZhbCwgNDgsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQUFSQ0g2NF9JTlNOX0lNTV9NT1ZOWik7CisgICAgICAgICAgICBi cmVhazsKKworICAgICAgICAvKiBJbnN0cnVjdGlvbnMuICovCisgICAgICAgIGNhc2UgUl9BQVJD SDY0X0FEUl9QUkVMX0xPMjE6CisgICAgICAgICAgICBvdmYgPSByZWxvY19pbnNuX2ltbShSRUxP Q19PUF9QUkVMLCBkZXN0LCB2YWwsIDAsIDIxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQUFSQ0g2NF9JTlNOX0lNTV9BRFIpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAg ICAgY2FzZSBSX0FBUkNINjRfQURSX1BSRUxfUEdfSEkyMV9OQzoKKyAgICAgICAgICAgIG92ZXJm bG93X2NoZWNrID0gZmFsc2U7CisgICAgICAgIGNhc2UgUl9BQVJDSDY0X0FEUl9QUkVMX1BHX0hJ MjE6CisgICAgICAgICAgICBvdmYgPSByZWxvY19pbnNuX2ltbShSRUxPQ19PUF9QQUdFLCBkZXN0 LCB2YWwsIDEyLCAyMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFBUkNINjRf SU5TTl9JTU1fQURSKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgUl9BQVJD SDY0X0xEU1Q4X0FCU19MTzEyX05DOgorICAgICAgICBjYXNlIFJfQUFSQ0g2NF9BRERfQUJTX0xP MTJfTkM6CisgICAgICAgICAgICBvdmVyZmxvd19jaGVjayA9IGZhbHNlOworICAgICAgICAgICAg b3ZmID0gcmVsb2NfaW5zbl9pbW0oUkVMT0NfT1BfQUJTLCBkZXN0LCB2YWwsIDAsIDEyLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQUFSQ0g2NF9JTlNOX0lNTV8xMik7CisgICAg ICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFJfQUFSQ0g2NF9MRFNUMTZfQUJTX0xPMTJf TkM6CisgICAgICAgICAgICBvdmVyZmxvd19jaGVjayA9IGZhbHNlOworICAgICAgICAgICAgb3Zm ID0gcmVsb2NfaW5zbl9pbW0oUkVMT0NfT1BfQUJTLCBkZXN0LCB2YWwsIDEsIDExLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQUFSQ0g2NF9JTlNOX0lNTV8xMik7CisgICAgICAg ICAgICBicmVhazsKKworICAgICAgICBjYXNlIFJfQUFSQ0g2NF9MRFNUMzJfQUJTX0xPMTJfTkM6 CisgICAgICAgICAgICBvdmVyZmxvd19jaGVjayA9IGZhbHNlOworICAgICAgICAgICAgb3ZmID0g cmVsb2NfaW5zbl9pbW0oUkVMT0NfT1BfQUJTLCBkZXN0LCB2YWwsIDIsIDEwLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQUFSQ0g2NF9JTlNOX0lNTV8xMik7CisgICAgICAgICAg ICBicmVhazsKKworICAgICAgICBjYXNlIFJfQUFSQ0g2NF9MRFNUNjRfQUJTX0xPMTJfTkM6Cisg ICAgICAgICAgICBvdmVyZmxvd19jaGVjayA9IGZhbHNlOworICAgICAgICAgICAgb3ZmID0gcmVs b2NfaW5zbl9pbW0oUkVMT0NfT1BfQUJTLCBkZXN0LCB2YWwsIDMsIDksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBBQVJDSDY0X0lOU05fSU1NXzEyKTsKKyAgICAgICAgICAgIGJy ZWFrOworCisgICAgICAgIGNhc2UgUl9BQVJDSDY0X0xEU1QxMjhfQUJTX0xPMTJfTkM6CisgICAg ICAgICAgICBvdmVyZmxvd19jaGVjayA9IGZhbHNlOworICAgICAgICAgICAgb3ZmID0gcmVsb2Nf aW5zbl9pbW0oUkVMT0NfT1BfQUJTLCBkZXN0LCB2YWwsIDQsIDgsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBQVJDSDY0X0lOU05fSU1NXzEyKTsKKyAgICAgICAgICAgIGJyZWFr OworCisgICAgICAgIGNhc2UgUl9BQVJDSDY0X1RTVEJSMTQ6CisgICAgICAgICAgICBvdmYgPSBy ZWxvY19pbnNuX2ltbShSRUxPQ19PUF9QUkVMLCBkZXN0LCB2YWwsIDIsIDE5LAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQUFSQ0g2NF9JTlNOX0lNTV8xNCk7CisgICAgICAgICAg ICBicmVhazsKKworICAgICAgICBjYXNlIFJfQUFSQ0g2NF9DT05EQlIxOToKKyAgICAgICAgICAg IG92ZiA9IHJlbG9jX2luc25faW1tKFJFTE9DX09QX1BSRUwsIGRlc3QsIHZhbCwgMiwgMTksCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBQVJDSDY0X0lOU05fSU1NXzE5KTsKKyAg ICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgUl9BQVJDSDY0X0pVTVAyNjoKKyAgICAg ICAgY2FzZSBSX0FBUkNINjRfQ0FMTDI2OgorICAgICAgICAgICAgb3ZmID0gcmVsb2NfaW5zbl9p bW0oUkVMT0NfT1BfUFJFTCwgZGVzdCwgdmFsLCAyLCAyNiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEFBUkNINjRfSU5TTl9JTU1fMjYpOworICAgICAgICAgICAgYnJlYWs7CisK KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgTElWRVBB VENIICIlczogVW5oYW5kbGVkIHJlbG9jYXRpb24gJWx1XG4iLAorICAgICAgICAgICAgICAgICAg ICBlbGYtPm5hbWUsIEVMRjY0X1JfVFlQRShyLT5yX2luZm8pKTsKKyAgICAgICAgICAgIHJldHVy biAtRU9QTk9UU1VQUDsKKyAgICAgICAgfQorCisgICAgICAgIGlmICggb3ZlcmZsb3dfY2hlY2sg JiYgb3ZmID09IC1FT1ZFUkZMT1cgKQorICAgICAgICB7CisgICAgICAgICAgICBkcHJpbnRrKFhF TkxPR19FUlIsIExJVkVQQVRDSCAiJXM6IE92ZXJmbG93IGluIHJlbG9jYXRpb24gJXUgaW4gJXMg Zm9yICVzIVxuIiwKKyAgICAgICAgICAgICAgICAgICAgZWxmLT5uYW1lLCBpLCByZWxhLT5uYW1l LCBiYXNlLT5uYW1lKTsKKyAgICAgICAgICAgIHJldHVybiBvdmY7CisgICAgICAgIH0KKyAgICB9 CisgICAgcmV0dXJuIDA7CisKKyBiYWRfb2Zmc2V0OgorICAgIGRwcmludGsoWEVOTE9HX0VSUiwg TElWRVBBVENIICIlczogUmVsYXRpdmUgcmVsb2NhdGlvbiBvZmZzZXQgaXMgcGFzdCAlcyBzZWN0 aW9uIVxuIiwKKyAgICAgICAgICAgIGVsZi0+bmFtZSwgYmFzZS0+bmFtZSk7CisgICAgcmV0dXJu IC1FSU5WQUw7Cit9CisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBj LWZpbGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0 CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEveGVu L2FyY2gvYXJtL2RvbWFpbi5jIGIveGVuL2FyY2gvYXJtL2RvbWFpbi5jCmluZGV4IDIwYmIyYmEu LjYwN2VlNTkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9kb21haW4uYworKysgYi94ZW4vYXJj aC9hcm0vZG9tYWluLmMKQEAgLTEzLDYgKzEzLDcgQEAKICNpbmNsdWRlIDx4ZW4vaHlwZXJjYWxs Lmg+CiAjaW5jbHVkZSA8eGVuL2luaXQuaD4KICNpbmNsdWRlIDx4ZW4vbGliLmg+CisjaW5jbHVk ZSA8eGVuL2xpdmVwYXRjaC5oPgogI2luY2x1ZGUgPHhlbi9zY2hlZC5oPgogI2luY2x1ZGUgPHhl bi9zb2Z0aXJxLmg+CiAjaW5jbHVkZSA8eGVuL3dhaXQuaD4KQEAgLTU1LDYgKzU2LDExIEBAIHZv aWQgaWRsZV9sb29wKHZvaWQpCiAKICAgICAgICAgZG9fdGFza2xldCgpOwogICAgICAgICBkb19z b2Z0aXJxKCk7CisgICAgICAgIC8qCisgICAgICAgICAqIFdlIE1VU1QgYmUgbGFzdCAob3IgYmVm b3JlIGRzYiwgd2ZpKS4gT3RoZXJ3aXNlIGFmdGVyIHdlIGdldCB0aGUKKyAgICAgICAgICogc29m dGlycSB3ZSB3b3VsZCBleGVjdXRlIGRzYix3ZmkgKGFuZCBzbGVlcCkgYW5kIG5vdCBwYXRjaC4K KyAgICAgICAgICovCisgICAgICAgIGNoZWNrX2Zvcl9saXZlcGF0Y2hfd29yaygpOwogICAgIH0K IH0KIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2xpdmVwYXRjaC5jIGIveGVuL2FyY2gvYXJt L2xpdmVwYXRjaC5jCmluZGV4IDc1NWY1OTYuLmI0YjRiNmMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L2FybS9saXZlcGF0Y2guYworKysgYi94ZW4vYXJjaC9hcm0vbGl2ZXBhdGNoLmMKQEAgLTYsNDQg KzYsODIgQEAKICNpbmNsdWRlIDx4ZW4vbGliLmg+CiAjaW5jbHVkZSA8eGVuL2xpdmVwYXRjaF9l bGYuaD4KICNpbmNsdWRlIDx4ZW4vbGl2ZXBhdGNoLmg+CisjaW5jbHVkZSA8eGVuL3ZtYXAuaD4K KworI2luY2x1ZGUgPGFzbS9saXZlcGF0Y2guaD4KKyNpbmNsdWRlIDxhc20vbW0uaD4KKwordm9p ZCAqdm1hcF9vZl94ZW5fdGV4dDsKIAogaW50IGFyY2hfbGl2ZXBhdGNoX3F1aWVzY2Uodm9pZCkK IHsKLSAgICByZXR1cm4gLUVOT1NZUzsKKyAgICBtZm5fdCB0ZXh0X21mbjsKKyAgICB1bnNpZ25l ZCBpbnQgdGV4dF9vcmRlcjsKKworICAgIGlmICggdm1hcF9vZl94ZW5fdGV4dCApCisgICAgICAg IHJldHVybiAtRUlOVkFMOworCisgICAgdGV4dF9tZm4gPSBfbWZuKHZpcnRfdG9fbWZuKF9zdGFy dCkpOworICAgIHRleHRfb3JkZXIgPSBnZXRfb3JkZXJfZnJvbV9ieXRlcyhfZW5kIC0gX3N0YXJ0 KTsKKworICAgIC8qCisgICAgICogVGhlIHRleHQgc2VjdGlvbiBpcyByZWFkLW9ubHkuIFNvIHJl LW1hcCBYZW4gdG8gYmUgYWJsZSB0byBwYXRjaAorICAgICAqIHRoZSBjb2RlLgorICAgICAqLwor ICAgIHZtYXBfb2ZfeGVuX3RleHQgPSBfX3ZtYXAoJnRleHRfbWZuLCAxVSA8PCB0ZXh0X29yZGVy LCAxLCAxLCBQQUdFX0hZUEVSVklTT1IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBW TUFQX0RFRkFVTFQpOworCisgICAgaWYgKCAhdm1hcF9vZl94ZW5fdGV4dCApCisgICAgeworICAg ICAgICBwcmludGsoWEVOTE9HX0VSUiBMSVZFUEFUQ0ggIkZhaWxlZCB0byBzZXR1cCB2bWFwIG9m IGh5cGVydmlzb3IhIChvcmRlcj0ldSlcbiIsCisgICAgICAgICAgICAgICB0ZXh0X29yZGVyKTsK KyAgICAgICAgcmV0dXJuIC1FTk9NRU07CisgICAgfQorCisgICAgcmV0dXJuIDA7CiB9CiAKIHZv aWQgYXJjaF9saXZlcGF0Y2hfcmV2aXZlKHZvaWQpCiB7CisgICAgLyoKKyAgICAgKiBOdWtlIHRo ZSBpbnN0cnVjdGlvbiBjYWNoZS4gRGF0YSBjYWNoZSBoYXMgYmVlbiBjbGVhbmVkIGJlZm9yZSBp bgorICAgICAqIGFyY2hfbGl2ZXBhdGNoX2FwcGx5X2ptcC4KKyAgICAgKi8KKyAgICBpbnZhbGlk YXRlX2ljYWNoZSgpOworCisgICAgaWYgKCB2bWFwX29mX3hlbl90ZXh0ICkKKyAgICAgICAgdnVu bWFwKHZtYXBfb2ZfeGVuX3RleHQpOworCisgICAgdm1hcF9vZl94ZW5fdGV4dCA9IE5VTEw7CiB9 CiAKIGludCBhcmNoX2xpdmVwYXRjaF92ZXJpZnlfZnVuYyhjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNo X2Z1bmMgKmZ1bmMpCiB7Ci0gICAgcmV0dXJuIC1FTk9TWVM7Ci19CisgICAgLyogSWYgTk9QaW5n IG9ubHkgZG8gdXAgdG8gbWF4aW11bSBhbW91bnQgd2UgY2FuIHB1dCBpbiB0aGUgLT5vcGFxdWUu ICovCisgICAgaWYgKCAhZnVuYy0+bmV3X2FkZHIgJiYgZnVuYy0+bmV3X3NpemUgPiBzaXplb2Yo ZnVuYy0+b3BhcXVlKSAmJgorICAgICAgICAgZnVuYy0+bmV3X3NpemUgJSBBUkNIX1BBVENIX0lO U05fU0laRSApCisgICAgICAgIHJldHVybiAtRU9QTk9UU1VQUDsKIAotdm9pZCBhcmNoX2xpdmVw YXRjaF9hcHBseV9qbXAoc3RydWN0IGxpdmVwYXRjaF9mdW5jICpmdW5jKQotewotfQorICAgIGlm ICggZnVuYy0+b2xkX3NpemUgPCBBUkNIX1BBVENIX0lOU05fU0laRSApCisgICAgICAgIHJldHVy biAtRUlOVkFMOwogCi12b2lkIGFyY2hfbGl2ZXBhdGNoX3JldmVydF9qbXAoY29uc3Qgc3RydWN0 IGxpdmVwYXRjaF9mdW5jICpmdW5jKQoteworICAgIHJldHVybiAwOwogfQogCiB2b2lkIGFyY2hf bGl2ZXBhdGNoX3Bvc3RfYWN0aW9uKHZvaWQpCiB7CisgICAgLyogYXJjaF9saXZlcGF0Y2hfcmV2 aXZlIGhhcyBudWtlZCB0aGUgaW5zdHJ1Y3Rpb24gY2FjaGUuICovCiB9CiAKIHZvaWQgYXJjaF9s aXZlcGF0Y2hfbWFzayh2b2lkKQogeworICAgIC8qIE1hc2sgU3lzdGVtIEVycm9yIChTRXJyb3Ip ICovCisgICAgbG9jYWxfYWJvcnRfZGlzYWJsZSgpOwogfQogCiB2b2lkIGFyY2hfbGl2ZXBhdGNo X3VubWFzayh2b2lkKQogewotfQotCi1pbnQgYXJjaF9saXZlcGF0Y2hfdmVyaWZ5X2VsZihjb25z dCBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZiAqZWxmKQotewotICAgIHJldHVybiAtRU5PU1lTOworICAg IGxvY2FsX2Fib3J0X2VuYWJsZSgpOwogfQogCiBpbnQgYXJjaF9saXZlcGF0Y2hfcGVyZm9ybV9y ZWwoc3RydWN0IGxpdmVwYXRjaF9lbGYgKmVsZiwKQEAgLTUzLDIwICs5MSw0MyBAQCBpbnQgYXJj aF9saXZlcGF0Y2hfcGVyZm9ybV9yZWwoc3RydWN0IGxpdmVwYXRjaF9lbGYgKmVsZiwKICAgICBy ZXR1cm4gLUVOT1NZUzsKIH0KIAotaW50IGFyY2hfbGl2ZXBhdGNoX3BlcmZvcm1fcmVsYShzdHJ1 Y3QgbGl2ZXBhdGNoX2VsZiAqZWxmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZl9zZWMgKmJhc2UsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hfZWxmX3NlYyAqcmVsYSkKLXsKLSAg ICByZXR1cm4gLUVOT1NZUzsKLX0KLQogaW50IGFyY2hfbGl2ZXBhdGNoX3NlY3VyZShjb25zdCB2 b2lkICp2YSwgdW5zaWduZWQgaW50IHBhZ2VzLCBlbnVtIHZhX3R5cGUgdHlwZSkKIHsKLSAgICBy ZXR1cm4gLUVOT1NZUzsKKyAgICB1bnNpZ25lZCBsb25nIHN0YXJ0ID0gKHVuc2lnbmVkIGxvbmcp dmE7CisgICAgdW5zaWduZWQgaW50IGZsYWdzID0gMDsKKworICAgIEFTU0VSVCh2YSk7CisgICAg QVNTRVJUKHBhZ2VzKTsKKworICAgIHN3aXRjaCAoIHR5cGUgKQorICAgIHsKKyAgICBjYXNlIExJ VkVQQVRDSF9WQV9SWDoKKyAgICAgICAgZmxhZ3MgPSBQVEVfUk87IC8qIFIgc2V0LCBOWCBjbGVh ciAqLworICAgICAgICBicmVhazsKKworICAgIGNhc2UgTElWRVBBVENIX1ZBX1JXOgorICAgICAg ICBmbGFncyA9IFBURV9OWDsgLyogUiBjbGVhciwgTlggc2V0ICovCisgICAgICAgIGJyZWFrOwor CisgICAgY2FzZSBMSVZFUEFUQ0hfVkFfUk86CisgICAgICAgIGZsYWdzID0gUFRFX05YIHwgUFRF X1JPOyAvKiBSIHNldCwgTlggc2V0ICovCisgICAgICAgIGJyZWFrOworCisgICAgZGVmYXVsdDoK KyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisgICAgfQorCisgICAgcmV0dXJuIG1vZGlmeV94ZW5f bWFwcGluZ3Moc3RhcnQsIHN0YXJ0ICsgcGFnZXMgKiBQQUdFX1NJWkUsIGZsYWdzKTsKIH0KIAog dm9pZCBfX2luaXQgYXJjaF9saXZlcGF0Y2hfaW5pdCh2b2lkKQogeworICAgIHZvaWQgKnN0YXJ0 LCAqZW5kOworCisgICAgc3RhcnQgPSAodm9pZCAqKUxJVkVQQVRDSF9WTUFQX1NUQVJUOworICAg IGVuZCA9ICh2b2lkICopTElWRVBBVENIX1ZNQVBfRU5EOworCisgICAgdm1faW5pdF90eXBlKFZN QVBfWEVOLCBzdGFydCwgZW5kKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS90 cmFwcy5jIGIveGVuL2FyY2gvYXJtL3RyYXBzLmMKaW5kZXggMzlhMDVmZC4uY2Q2YzIyMiAxMDA2 NDQKLS0tIGEveGVuL2FyY2gvYXJtL3RyYXBzLmMKKysrIGIveGVuL2FyY2gvYXJtL3RyYXBzLmMK QEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlIDx4ZW4vc3ltYm9scy5oPgogI2luY2x1ZGUgPHhl bi9pcnEuaD4KICNpbmNsdWRlIDx4ZW4vbGliLmg+CisjaW5jbHVkZSA8eGVuL2xpdmVwYXRjaC5o PgogI2luY2x1ZGUgPHhlbi9tbS5oPgogI2luY2x1ZGUgPHhlbi9lcnJuby5oPgogI2luY2x1ZGUg PHhlbi9oeXBlcmNhbGwuaD4KQEAgLTI2ODksNiArMjY5MCwxMSBAQCBhc21saW5rYWdlIHZvaWQg bGVhdmVfaHlwZXJ2aXNvcl90YWlsKHZvaWQpCiAgICAgICAgIH0KICAgICAgICAgbG9jYWxfaXJx X2VuYWJsZSgpOwogICAgICAgICBkb19zb2Z0aXJxKCk7CisgICAgICAgIC8qCisgICAgICAgICAq IE11c3QgYmUgdGhlIGxhc3Qgb25lIC0gYXMgdGhlIElQSSB3aWxsIHRyaWdnZXIgdXMgdG8gY29t ZSBoZXJlCisgICAgICAgICAqIGFuZCB3ZSB3YW50IHRvIHBhdGNoIHRoZSBoeXBlcnZpc29yIHdp dGggYWxtb3N0IG5vIHN0YWNrLgorICAgICAgICAgKi8KKyAgICAgICAgY2hlY2tfZm9yX2xpdmVw YXRjaF93b3JrKCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL0tjb25maWcg Yi94ZW4vY29tbW9uL0tjb25maWcKaW5kZXggODFlMDAxNy4uMGYyNjAyNyAxMDA2NDQKLS0tIGEv eGVuL2NvbW1vbi9LY29uZmlnCisrKyBiL3hlbi9jb21tb24vS2NvbmZpZwpAQCAtMjE3LDcgKzIx Nyw3IEBAIGNvbmZpZyBDUllQVE8KIGNvbmZpZyBMSVZFUEFUQ0gKIAlib29sICJMaXZlIHBhdGNo aW5nIHN1cHBvcnQgKFRFQ0ggUFJFVklFVykiCiAJZGVmYXVsdCBuCi0JZGVwZW5kcyBvbiBYODYg JiYgSEFTX0JVSUxEX0lEID0gInkiCisJZGVwZW5kcyBvbiAhQVJNXzMyICYmIEhBU19CVUlMRF9J RCA9ICJ5IgogCS0tLWhlbHAtLS0KIAkgIEFsbG93cyBhIHJ1bm5pbmcgWGVuIGh5cGVydmlzb3Ig dG8gYmUgZHluYW1pY2FsbHkgcGF0Y2hlZCB1c2luZwogCSAgYmluYXJ5IHBhdGNoZXMgd2l0aG91 dCByZWJvb3RpbmcuIFRoaXMgaXMgcHJpbWFyaWx5IHVzZWQgdG8gYmluYXJpbHkKZGlmZiAtLWdp dCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vY29uZmlnLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL2Nv bmZpZy5oCmluZGV4IDY3NzI1NTUuLmJhNjFmNjUgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2Fz bS1hcm0vY29uZmlnLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9jb25maWcuaApAQCAtODAs NiArODAsNyBAQAogICogICA0TSAtICAgNk0gICBGaXhtYXA6IHNwZWNpYWwtcHVycG9zZSA0SyBt YXBwaW5nIHNsb3RzCiAgKiAgIDZNIC0gICA4TSAgIEVhcmx5IGJvb3QgbWFwcGluZyBvZiBGRFQK ICAqICAgOE0gLSAgMTBNICAgRWFybHkgcmVsb2NhdGlvbiBhZGRyZXNzICh1c2VkIHdoZW4gcmVs b2NhdGluZyBYZW4pCisgKiAgICAgICAgICAgICAgIGFuZCBsYXRlciBmb3IgbGl2ZXBhdGNoIHZt YXAgKGlmIGNvbXBpbGVkIGluKQogICoKICAqIEFSTTMyIGxheW91dDoKICAqICAgMCAgLSAgMTBN ICAgPENPTU1PTj4KQEAgLTExMyw2ICsxMTQsMTAgQEAKICNkZWZpbmUgRklYTUFQX0FERFIobikg ICAgICAgIChfQVQodmFkZHJfdCwweDAwNDAwMDAwKSArIChuKSAqIFBBR0VfU0laRSkKICNkZWZp bmUgQk9PVF9GRFRfVklSVF9TVEFSVCAgICBfQVQodmFkZHJfdCwweDAwNjAwMDAwKQogI2RlZmlu ZSBCT09UX1JFTE9DX1ZJUlRfU1RBUlQgIF9BVCh2YWRkcl90LDB4MDA4MDAwMDApCisjaWZkZWYg Q09ORklHX0xJVkVQQVRDSAorI2RlZmluZSBMSVZFUEFUQ0hfVk1BUF9TVEFSVCAgIF9BVCh2YWRk cl90LDB4MDA4MDAwMDApCisjZGVmaW5lIExJVkVQQVRDSF9WTUFQX0VORCAgICAgKExJVkVQQVRD SF9WTUFQX1NUQVJUICsgTUIoMikpCisjZW5kaWYKIAogI2RlZmluZSBIWVBFUlZJU09SX1ZJUlRf U1RBUlQgIFhFTl9WSVJUX1NUQVJUCiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0v bGl2ZXBhdGNoLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL2xpdmVwYXRjaC5oCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyOWM3ZDkKLS0tIC9kZXYvbnVsbAorKysgYi94ZW4v aW5jbHVkZS9hc20tYXJtL2xpdmVwYXRjaC5oCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5 cmlnaHQgKGMpIDIwMTYgT3JhY2xlIGFuZC9vciBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyBy ZXNlcnZlZC4KKyAqCisgKi8KKworI2lmbmRlZiBfX1hFTl9BUk1fTElWRVBBVENIX0hfXworI2Rl ZmluZSBfX1hFTl9BUk1fTElWRVBBVENIX0hfXworCisvKiBPbiBBUk0zMiw2NCBpbnN0cnVjdGlv bnMgYXJlIGFsd2F5cyA0IGJ5dGVzIGxvbmcuICovCisjZGVmaW5lIEFSQ0hfUEFUQ0hfSU5TTl9T SVpFIDQKKworLyoKKyAqIFRoZSB2YSBvZiB0aGUgaHlwZXJ2aXNvciAudGV4dCByZWdpb24uIFdl IG5lZWQgdGhpcyBhcyB0aGUKKyAqIG5vcm1hbCB2YSBhcmUgd3JpdGUgcHJvdGVjdGVkLgorICov CitleHRlcm4gdm9pZCAqdm1hcF9vZl94ZW5fdGV4dDsKKworI2VuZGlmIC8qIF9fWEVOX0FSTV9M SVZFUEFUQ0hfSF9fICovCisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisg KiBjLWZpbGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRo OiA0CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEv eGVuL2luY2x1ZGUveGVuL2VsZnN0cnVjdHMuaCBiL3hlbi9pbmNsdWRlL3hlbi9lbGZzdHJ1Y3Rz LmgKaW5kZXggNWYyMDgyZS4uNzMyOTk4NyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2Vs ZnN0cnVjdHMuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vZWxmc3RydWN0cy5oCkBAIC0xNzcsNiAr MTc3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgewogI2RlZmluZSBFTV9JQV82NAk1MAkJLyogSW50ZWwg TWVyY2VkICovCiAjZGVmaW5lIEVNX1g4Nl82NAk2MgkJLyogQU1EIHg4Ni02NCBhcmNoaXRlY3R1 cmUgKi8KICNkZWZpbmUgRU1fVkFYCQk3NQkJLyogREVDIFZBWCAqLworI2RlZmluZSBFTV9BQVJD SDY0CTE4MwkJLyogQVJNIDY0LWJpdCAqLwogCiAvKiBWZXJzaW9uICovCiAjZGVmaW5lIEVWX05P TkUJCTAJCS8qIEludmFsaWQgKi8KQEAgLTM1MywxMiArMzU0LDY2IEBAIHR5cGVkZWYgc3RydWN0 IHsKICNkZWZpbmUJRUxGNjRfUl9UWVBFKGluZm8pCSgoaW5mbykgJiAweEZGRkZGRkZGKQogI2Rl ZmluZSBFTEY2NF9SX0lORk8ocyx0KSAJKCgocykgPDwgMzIpICsgKHVfaW50MzJfdCkodCkpCiAK LS8qIHg4Ni02NCByZWxvY2F0aW9uIHR5cGVzLiBXZSBsaXN0IG9ubHkgdGhlIG9uZXMgTGl2ZSBQ YXRjaCBpbXBsZW1lbnRzLiAqLworLyoKKyAqIFJlbG9jYXRpb24gdHlwZXMgZm9yIHg4Nl82NCBh bmQgQVJNIDY0LiBXZSBsaXN0IG9ubHkgdGhlIG9uZXMgTGl2ZSBQYXRjaAorICogaW1wbGVtZW50 cy4KKyAqLwogI2RlZmluZSBSX1g4Nl82NF9OT05FCQkwCS8qIE5vIHJlbG9jICovCiAjZGVmaW5l IFJfWDg2XzY0XzY0CSAgICAJMQkvKiBEaXJlY3QgNjQgYml0ICAqLwogI2RlZmluZSBSX1g4Nl82 NF9QQzMyCQkyCS8qIFBDIHJlbGF0aXZlIDMyIGJpdCBzaWduZWQgKi8KICNkZWZpbmUgUl9YODZf NjRfUExUMzIJCTQJLyogMzIgYml0IFBMVCBhZGRyZXNzICovCiAKKy8qCisgKiBTIC0gYWRkcmVz cyBvZiBzeW1ib2wuCisgKiBBIC0gYWRkZW5kIGZvciByZWxvY2F0aW9uIChyX2FkZGVuZCkKKyAq IFAgLSBhZGRyZXNzIG9mIHRoZSBkZXN0IGJlaW5nIHJlbG9jYXRlZCAoZGVyaWV2ZWQgZnJvbSBy X29mZnNldCkKKyAqIE5DIC0gIE5vIGNoZWNrIGZvciBvdmVyZmxvdy4KKyAqCisgKiBUaGUgZGVm aW5lcyBhbHNvIHVzZSBfUFJFTCBmb3IgUEMtcmVsYXRpdmUgYWRkcmVzcywgYW5kIF9OQyBpcyBO byBDaGVjay4KKyAqLworI2RlZmluZSBSX0FBUkNINjRfQUJTNjQJCQkyNTcgLyogRGlyZWN0IDY0 IGJpdC4gUytBLCBOQyovCisjZGVmaW5lIFJfQUFSQ0g2NF9BQlMzMgkJCTI1OCAvKiBEaXJlY3Qg MzIgYml0LiBTK0EgKi8KKyNkZWZpbmUgUl9BQVJDSDY0X0FCUzE2CQkJMjU5IC8qIERpcmVjdCAx NiBiaXQsIFMrQSAqLworI2RlZmluZSBSX0FBUkNINjRfUFJFTDY0CQkyNjAgLyogUytBLVAsIE5D ICovCisjZGVmaW5lIFJfQUFSQ0g2NF9QUkVMMzIJCTI2MSAvKiBTK0EtUCAqLworI2RlZmluZSBS X0FBUkNINjRfUFJFTDE2CQkyNjIgLyogUytBLVAgKi8KKworLyogSW5zdHJ1Y3Rpb25zLiAqLwor I2RlZmluZSBSX0FBUkNINjRfTU9WV19VQUJTX0cwCQkyNjMKKyNkZWZpbmUgUl9BQVJDSDY0X01P VldfVUFCU19HMF9OQwkyNjQKKyNkZWZpbmUgUl9BQVJDSDY0X01PVldfVUFCU19HMQkJMjY1Cisj ZGVmaW5lIFJfQUFSQ0g2NF9NT1ZXX1VBQlNfRzFfTkMJMjY2CisjZGVmaW5lIFJfQUFSQ0g2NF9N T1ZXX1VBQlNfRzIJCTI2NworI2RlZmluZSBSX0FBUkNINjRfTU9WV19VQUJTX0cyX05DCTI2OAor I2RlZmluZSBSX0FBUkNINjRfTU9WV19VQUJTX0czCQkyNjkKKworI2RlZmluZSBSX0FBUkNINjRf TU9WV19TQUJTX0cwCQkyNzAKKyNkZWZpbmUgUl9BQVJDSDY0X01PVldfU0FCU19HMQkJMjcxCisj ZGVmaW5lIFJfQUFSQ0g2NF9NT1ZXX1NBQlNfRzIJCTI3MgorCisjZGVmaW5lIFJfQUFSQ0g2NF9B RFJfUFJFTF9MTzIxCQkyNzQgLyogQURSIGltbSwgWzIwOjBdLiBTK0EtUCAqLworI2RlZmluZSBS X0FBUkNINjRfQURSX1BSRUxfUEdfSEkyMQkyNzUgLyogQURSUCBpbW0sIFszMjoxMl0uIFBhZ2Uo UytBKSAtIFBhZ2UoUCkuKi8KKyNkZWZpbmUgUl9BQVJDSDY0X0FEUl9QUkVMX1BHX0hJMjFfTkMJ Mjc2CisjZGVmaW5lIFJfQUFSQ0g2NF9BRERfQUJTX0xPMTJfTkMJMjc3IC8qIEFERCBpbW0uIFsx MTowXS4gUytBLCBOQyAqLworCisjZGVmaW5lIFJfQUFSQ0g2NF9UU1RCUjE0CQkyNzkKKyNkZWZp bmUgUl9BQVJDSDY0X0NPTkRCUjE5CQkyODAgLyogQml0cyAyMDoyLCBTK0EtUCAqLworI2RlZmlu ZSBSX0FBUkNINjRfSlVNUDI2CQkyODIgLyogQml0cyAyNzoyLCBTK0EtUCAqLworI2RlZmluZSBS X0FBUkNINjRfQ0FMTDI2CQkyODMgLyogQml0cyAyNzoyLCBTK0EtUCAqLworI2RlZmluZSBSX0FB UkNINjRfTERTVDE2X0FCU19MTzEyX05DCTI4NCAvKiBMRC9TVCB0byBiaXRzIDExOjEsIFMrQSwg TkMgKi8KKyNkZWZpbmUgUl9BQVJDSDY0X0xEU1QzMl9BQlNfTE8xMl9OQwkyODUgLyogTEQvU1Qg dG8gYml0cyAxMToyLCBTK0EsIE5DICovCisjZGVmaW5lIFJfQUFSQ0g2NF9MRFNUNjRfQUJTX0xP MTJfTkMJMjg2IC8qIExEL1NUIHRvIGJpdHMgMTE6MywgUytBLCBOQyAqLworI2RlZmluZSBSX0FB UkNINjRfTERTVDhfQUJTX0xPMTJfTkMJMjc4IC8qIExEL1NUIHRvIGJpdHMgMTE6MCwgUytBLCBO QyAqLworI2RlZmluZSBSX0FBUkNINjRfTERTVDEyOF9BQlNfTE8xMl9OQwkyOTkKKworI2RlZmlu ZSBSX0FBUkNINjRfTU9WV19QUkVMX0cwCQkyODcKKyNkZWZpbmUgUl9BQVJDSDY0X01PVldfUFJF TF9HMF9OQwkyODgKKyNkZWZpbmUgUl9BQVJDSDY0X01PVldfUFJFTF9HMQkJMjg5CisjZGVmaW5l IFJfQUFSQ0g2NF9NT1ZXX1BSRUxfRzFfTkMJMjkwCisjZGVmaW5lIFJfQUFSQ0g2NF9NT1ZXX1BS RUxfRzIJCTI5MQorI2RlZmluZSBSX0FBUkNINjRfTU9WV19QUkVMX0cyX05DCTI5MgorI2RlZmlu ZSBSX0FBUkNINjRfTU9WV19QUkVMX0czCQkyOTMKKwogLyogUHJvZ3JhbSBIZWFkZXIgKi8KIHR5 cGVkZWYgc3RydWN0IHsKIAlFbGYzMl9Xb3JkCXBfdHlwZTsJCS8qIHNlZ21lbnQgdHlwZSAqLwpk aWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3R5cGVzLmggYi94ZW4vaW5jbHVkZS94ZW4vdHlw ZXMuaAppbmRleCA3YmRjODNiLi5jNzljMzUzIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4v dHlwZXMuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vdHlwZXMuaApAQCAtMTQsNiArMTQsMTUgQEAK ICNkZWZpbmUgTlVMTCAoKHZvaWQqKTApCiAjZW5kaWYKIAorI2RlZmluZSBJTlQxNl9NSU4gICAg ICAgKC0zMjc2Ny0xKQorI2RlZmluZSBJTlQzMl9NSU4gICAgICAgKC0yMTQ3NDgzNjQ3LTEpCisK KyNkZWZpbmUgSU5UMTZfTUFYICAgICAgICgzMjc2NykKKyNkZWZpbmUgSU5UMzJfTUFYICAgICAg ICgyMTQ3NDgzNjQ3KQorCisjZGVmaW5lIFVJTlQxNl9NQVggICAgICAoNjU1MzUpCisjZGVmaW5l IFVJTlQzMl9NQVggICAgICAoNDI5NDk2NzI5NVUpCisKICNkZWZpbmUgSU5UX01BWCAgICAgICAg ICgoaW50KSh+MFU+PjEpKQogI2RlZmluZSBJTlRfTUlOICAgICAgICAgKC1JTlRfTUFYIC0gMSkK ICNkZWZpbmUgVUlOVF9NQVggICAgICAgICh+MFUpCi0tIAoyLjUuNQoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QK WGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=