From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5577 invoked by alias); 31 May 2013 18:56:21 -0000 Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org Received: (qmail 5562 invoked by uid 89); 31 May 2013 18:56:20 -0000 X-Spam-SWARE-Status: No, score=-3.7 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,RCVD_IN_HOSTKARMA_W,RCVD_IN_HOSTKARMA_WL autolearn=ham version=3.3.1 Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Fri, 31 May 2013 18:56:19 +0000 Received: from svr-orw-fem-01.mgc.mentorg.com ([147.34.98.93]) by relay1.mentorg.com with esmtp id 1UiUUr-000086-FY from Catherine_Moore@mentor.com ; Fri, 31 May 2013 11:56:17 -0700 Received: from SVR-ORW-FEM-04.mgc.mentorg.com ([147.34.97.41]) by svr-orw-fem-01.mgc.mentorg.com over TLS secured channel with Microsoft SMTPSVC(6.0.3790.4675); Fri, 31 May 2013 11:56:16 -0700 Received: from NA-MBX-01.mgc.mentorg.com ([169.254.1.118]) by SVR-ORW-FEM-04.mgc.mentorg.com ([147.34.97.41]) with mapi id 14.02.0247.003; Fri, 31 May 2013 11:56:15 -0700 From: "Moore, Catherine" To: "rdsandiford@googlemail.com" CC: "Moore, Catherine" , "binutils@sourceware.org" Subject: [Patch] Gas support for MIPS Compact EH Date: Fri, 31 May 2013 18:56:00 -0000 Message-ID: Content-Type: multipart/mixed; boundary="_005_FD3DCEAC5B03E9408544A1E416F11242F8FC5972NAMBX01mgcmento_" MIME-Version: 1.0 X-Virus-Found: No X-SW-Source: 2013-05/txt/msg00342.txt.bz2 --_005_FD3DCEAC5B03E9408544A1E416F11242F8FC5972NAMBX01mgcmento_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-length: 317 Hi Richard, These are the remaining assembler patches required to support the Compact E= H format. Will you please take a look and let me if these are ready to be = committed? Thanks, Catherine MIPS Compact Exception Handling Specification: https://github.com/MentorEmbedded/cxx-abi/blob/master/MIPSCompactEH.pdf --_005_FD3DCEAC5B03E9408544A1E416F11242F8FC5972NAMBX01mgcmento_ Content-Type: application/octet-stream; name="gas.cl" Content-Description: gas.cl Content-Disposition: attachment; filename="gas.cl"; size=1308; creation-date="Fri, 31 May 2013 18:53:56 GMT"; modification-date="Fri, 31 May 2013 18:52:54 GMT" Content-Transfer-Encoding: base64 Content-length: 1774 MjAxMy0wNS0xMyBQYXVsIEJyb29rIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+ DQoNCgkqIGRvYy9hcy50ZXhpbmZvOiBEb2N1bWVudCAuY2ZpX3NlY3Rpb25z IC5laF9mcmFtZV9oZWFkZXIgYW5kDQoJLmNmaV9pbmxpbmVfbHNkYS4NCgkq IGR3MmdlbmNmaS5jIChFSF9GUkFNRV9MSU5LT05DRSk6IERlZmluZS4NCgko bGFzdF9mZGUpOiBOZXcgdmFyaWFibGUuDQoJKHRjX2NmaV9lbWl0X2V4cHIs IHRjX2NmaV9zcGVjaWFsX2VuY29kaW5nKTogUHJvdmlkZSBkZWZhdWx0cy4N CgkoY29tcGFjdF9laCk6IE5ldyB2YXJpYWJsZS4NCgkoRlJBTUVfTkFNRSk6 IFVzZSAuZ251LmV4dGFiIGZvciBjb21wYWN0IGZyYW1lcy4NCgkoZ2V0X2Rl YnVnc2VnX25hbWUpOiBTdWZmaXggYWxsIEVIIHNlY3Rpb25zIGV4Y2VwdCBm b3IgLnRleHQuDQoJKGlzX25vd19saW5rb25jZV9zZWdtZW50KTogRG8gbm90 IHNxdWljaCByZWd1bGFyIGNvbXBhY3QgRUgNCglzZWN0aW9ucyB0b2dldGhl ci4NCgkobWFrZV9kZWJ1Z19zZWcpOiBVc2UgdGNfbWFrZV9kZWJ1Z19zZWcu DQoJKGNpZV9lbnRyeSk6IEFkZCBmZGVfZW5jb2RpbmcuDQoJKGNmaV9wc2V1 ZG9fdGFibGUpOiBBZGQgImNmaV9pbmxpbmVfbHNkYSIuDQoJKGRvdF9jZmlf cGVyc29uYWxpdHksIGRvdF9jZmlfbHNkYSk6IFVzZSB0Y19jZmlfc3BlY2lh bF9lbmNvZGluZy4NCgkoZG90X2NmaV9zZWN0aW9ucyk6IEFjY2VwdCAuZWhf ZnJhbWVfZW50cnkuDQoJKGRvdF9jZmlfc3RhcnRwcm9jKTogU2V0IGxhc3Rf ZmRlLiAgQ2FsbCB0Y19jZmlfZW5kcHJvYyBmb3IgY29tcGFjdCBFSC4NCgko Z2V0X2NmaV9zZWcpOiBNb3ZlIGhpZ2hlciBpbiBmaWxlLg0KCShvdXRwdXRf Y29tcGFjdF91bndpbmRfZGF0YSwgZG90X2NmaV9pbmxpbmVfbHNkYSk6IE5l dyBmdW5jdGlvbnMuDQoJKG91dHB1dF9jaWUpOiBVc2UgdGNfY2ZpX3NwZWNp YWxfZW5jb2RpbmcgYW5kDQoJRFdBUkYyX0ZERV9SRUxPQ19FTkNPRElORy4N Cgkob3V0cHV0X2ZkZSk6IFVzZSB0Y19jZmlfc3BlY2lhbF9lbmNvZGluZy4N CgkoY2ZpX2VtaXRfZWhfaGVhZGVyLCBvdXRwdXRfZWhfaGVhZGVyKTogTmV3 IGZ1bmN0aW9ucy4NCgkoY2ZpX2ZpbmlzaCk6IEhhbmRsZSBjb21wYWN0IEVI IGZyYW1lIGdlbmVyYXRpb24uDQoJKiBkdzJnZW5jZmkuaCAoU1VQUE9SVF9D T01QQUNUX0VILCBNVUxUSVBMRV9GUkFNRV9TRUNUSU9OUyk6IERlZmluZS4N CgkoRUhfQ09NUEFDVF8qKTogRGVmaW5lLg0KCShmZGVfZW50cnkpOiBBZGQg ZWhfaGVhZGVyX3R5cGUsIGVoX2RhdGFfc2l6ZSwgZWhfZGF0YSwgZWhfbG9j Lg0K --_005_FD3DCEAC5B03E9408544A1E416F11242F8FC5972NAMBX01mgcmento_ Content-Type: application/octet-stream; name="gas.patch" Content-Description: gas.patch Content-Disposition: attachment; filename="gas.patch"; size=22979; creation-date="Fri, 31 May 2013 18:53:55 GMT"; modification-date="Fri, 31 May 2013 18:52:24 GMT" Content-Transfer-Encoding: base64 Content-length: 31151 SW5kZXg6IGRvYy9hcy50ZXhpbmZvDQo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 DQpSQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2dhcy9kb2MvYXMudGV4aW5mbyx2 DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjY2DQpkaWZmIC1wIC11IC1yMS4y NjYgYXMudGV4aW5mbw0KLS0tIGRvYy9hcy50ZXhpbmZvCTI5IEFwciAyMDEz IDEzOjM4OjU4IC0wMDAwCTEuMjY2DQorKysgZG9jL2FzLnRleGluZm8JMzEg TWF5IDIwMTMgMTc6MjQ6MjAgLTAwMDANCkBAIC00NDc5LDYgKzQ0NzksOSBA QCBpZiBAdmFye3NlY3Rpb25fbGlzdH0gaXMgQGNvZGV7LmRlYnVnX2ZyDQog VG8gZW1pdCBib3RoIHVzZSBAY29kZXsuZWhfZnJhbWUsIC5kZWJ1Z19mcmFt ZX0uICBUaGUgZGVmYXVsdCBpZiB0aGlzDQogZGlyZWN0aXZlIGlzIG5vdCB1 c2VkIGlzIEBjb2Rley5jZmlfc2VjdGlvbnMgLmVoX2ZyYW1lfS4NCiANCitP biB0YXJnZXRzIHRoYXQgc3VwcG9ydCBjb21wYWN0IHVud2luZGluZyB0YWJs ZXMgdGhlc2UgY2FuIGJlIGdlbmVyYXRlZA0KK2J5IHNwZWNpZnlpbmcgQGNv ZGV7LmVoX2ZyYW1lX2hlYWRlcn0gaW5zdGVhZCBvZiBAY29kZXsuZWhfZnJh bWV9Lg0KKw0KIEBzZWN0aW9uIEBjb2Rley5jZmlfc3RhcnRwcm9jIFtzaW1w bGVdfQ0KIEBjaW5kZXggQGNvZGV7Y2ZpX3N0YXJ0cHJvY30gZGlyZWN0aXZl DQogQGNvZGV7LmNmaV9zdGFydHByb2N9IGlzIHVzZWQgYXQgdGhlIGJlZ2lu bmluZyBvZiBlYWNoIGZ1bmN0aW9uIHRoYXQNCkBAIC00NTE0LDYgKzQ1MTcs MjMgQEAgYXJndW1lbnQgaXMgbm90IHByZXNlbnQsIG90aGVyd2lzZSBzZWNv bg0KIG9yIGEgc3ltYm9sIG5hbWUuICBUaGUgZGVmYXVsdCBhZnRlciBAY29k ZXsuY2ZpX3N0YXJ0cHJvY30gaXMgQGNvZGV7LmNmaV9sc2RhIDB4ZmZ9LA0K IG5vIExTREEuDQogDQorQHNlY3Rpb24gQGNvZGV7LmNmaV9pbmxpbmVfbHNk YX0gW0B2YXJ7YWxpZ259XQ0KK0Bjb2Rley5jZmlfaW5saW5lX2xzZGF9IG1h cmtzIHRoZSBzdGFydCBvZiBhIExTREEgZGF0YSBzZWN0aW9uIGFuZA0KK3N3 aXRjaGVzIHRvIHRoZSBjb3JyZXNwb25kaW5nIEBjb2Rley5nbnUuZXh0YWJ9 IHNlY3Rpb24uDQorSXQgbXVzdCBiZSBwcmVjZWRlZCBieSBhIENGSSBibG9j ayBjb250YWluaW5nIGEgQGNvZGV7LmNmaV9sc2RhfSBkaXJlY3RpdmUgYW5k DQoraXMgb25seSB2YWxpZCB3aGVuIGdlbmVyYXRpbmcgY29tcGFjdCBFSCBm cmFtZXMgKGkuZS4NCit3aXRoIEBjb2Rley5jZmlfc2VjdGlvbnMgZWhfZnJh bWVfZW50cnl9Lg0KKw0KK0lmIGEgY29tcGFjdCBlbmNvZGluZyBpcyBiZWlu ZyB1c2VkIHRoZW4gdGhlIHRhYmxlIGhlYWRlciBhbmQgdW53aW5kaW5nDQor b3Bjb2RlcyB3aWxsIGJlIGdlbmVyYXRlZCBhdCB0aGlzIHBvaW50LCBzbyB0 aGF0IHRoZXkgYXJlIGltbWVkaWF0ZWx5DQorZm9sbG93ZWQgYnkgdGhlIExT REEgZGF0YS4gIFRoZSBzeW1ib2wgcmVmZXJlbmNlZCBieSB0aGUgQGNvZGV7 LmNmaV9sc2RhfQ0KK2RpcmVjdGl2ZSBzaG91bGQgc3RpbGwgYmUgZGVmaW5l ZCBpbiBjYXNlIGEgZmFsbGJhY2sgRkRFIGJhc2VkIGVuY29kaW5nDQoraXMg dXNlZC4NCisNCitUaGUgb3B0aW9uYWwgQHZhcnthbGlnbn0gYXJndW1lbnQg c3BlY2lmaWVzIHRoZSBhbGlnbm1lbnQgcmVxdWlyZWQuDQorVGhlIGFsaWdu bWVudCBpcyBzcGVjaWZpZWQgYXMgYSBwb3dlciBvZiB0d28sIGFzIHdpdGgg dGhlDQorQGNvZGV7LnAyYWxpZ259IGRpcmVjdGl2ZS4NCisNCiBAc2VjdGlv biBAY29kZXsuY2ZpX2RlZl9jZmEgQHZhcntyZWdpc3Rlcn0sIEB2YXJ7b2Zm c2V0fX0NCiBAY29kZXsuY2ZpX2RlZl9jZmF9IGRlZmluZXMgYSBydWxlIGZv ciBjb21wdXRpbmcgQ0ZBIGFzOiBAaXt0YWtlDQogYWRkcmVzcyBmcm9tIEB2 YXJ7cmVnaXN0ZXJ9IGFuZCBhZGQgQHZhcntvZmZzZXR9IHRvIGl0fS4NCg0K SW5kZXg6IGR3MmdlbmNmaS5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpS Q1MgZmlsZTogL2N2cy9zcmMvc3JjL2dhcy9kdzJnZW5jZmkuYyx2DQpyZXRy aWV2aW5nIHJldmlzaW9uIDEuNTgNCmRpZmYgLXAgLXUgLXIxLjU4IGR3Mmdl bmNmaS5jDQotLS0gZHcyZ2VuY2ZpLmMJMTAgSmFuIDIwMTMgMTk6NTE6NTQg LTAwMDAJMS41OA0KKysrIGR3MmdlbmNmaS5jCTMxIE1heSAyMDEzIDE3OjI0 OjIwIC0wMDAwDQpAQCAtNzYsNiArNzYsOCBAQA0KICMgZGVmaW5lIHRjX2Nm aV9lbmRwcm9jKGZkZSkgKCh2b2lkKSAoZmRlKSkNCiAjZW5kaWYNCiANCisj ZGVmaW5lIEVIX0ZSQU1FX0xJTktPTkNFIChTVVBQT1JUX0ZSQU1FX0xJTktP TkNFIHx8IGNvbXBhY3RfZWgpDQorDQogI2lmbmRlZiBEV0FSRjJfRk9STUFU DQogI2RlZmluZSBEV0FSRjJfRk9STUFUKFNFQykgZHdhcmYyX2Zvcm1hdF8z MmJpdA0KICNlbmRpZg0KQEAgLTg0LDcgKzg2LDcgQEANCiAjZGVmaW5lIERX QVJGMl9BRERSX1NJWkUoYmZkKSAoYmZkX2FyY2hfYml0c19wZXJfYWRkcmVz cyAoYmZkKSAvIDgpDQogI2VuZGlmDQogDQotI2lmIFNVUFBPUlRfRlJBTUVf TElOS09OQ0UNCisjaWYgTVVMVElQTEVfRlJBTUVfU0VDVElPTlMNCiAjZGVm aW5lIENVUl9TRUcoc3RydWN0cCkgc3RydWN0cC0+Y3VyX3NlZw0KICNkZWZp bmUgU0VUX0NVUl9TRUcoc3RydWN0cCwgc2VnKSBzdHJ1Y3RwLT5jdXJfc2Vn ID0gc2VnDQogI2RlZmluZSBIQU5ETEVEKHN0cnVjdHApIHN0cnVjdHAtPmhh bmRsZWQNCkBAIC05Niw2ICs5OCwxMSBAQA0KICNkZWZpbmUgU0VUX0hBTkRM RUQoc3RydWN0cCwgdmFsKSAodm9pZCkgKDAgJiYgdmFsKQ0KICNlbmRpZg0K IA0KKyNpZm5kZWYgdGNfY2ZpX3NwZWNpYWxfZW5jb2RpbmcNCisjZGVmaW5l IHRjX2NmaV9lbWl0X2V4cHIoZXhwLCBlbmMpICh2b2lkKSAwDQorI2RlZmlu ZSB0Y19jZmlfc3BlY2lhbF9lbmNvZGluZyhlKSAwDQorI2VuZGlmDQorDQog LyogUHJpdmF0ZSBzZWdtZW50IGNvbGxlY3Rpb24gbGlzdC4gICovDQogc3Ry dWN0IGR3Y2ZpX3NlZ19saXN0DQogew0KQEAgLTEwNCw3ICsxMTEsMTEgQEAg c3RydWN0IGR3Y2ZpX3NlZ19saXN0DQogICBjaGFyICogc2VnX25hbWU7DQog fTsNCiANCi0jZGVmaW5lIEZSQU1FX05BTUUgIi5laF9mcmFtZSINCisjaWZk ZWYgU1VQUE9SVF9DT01QQUNUX0VIDQorc3RhdGljIGJmZF9ib29sZWFuIGNv bXBhY3RfZWg7DQorI2Vsc2UNCisjZGVmaW5lIGNvbXBhY3RfZWggMA0KKyNl bmRpZg0KIA0KIHN0YXRpYyBzdHJ1Y3QgaGFzaF9jb250cm9sICpkd2NmaV9o YXNoOw0KIA0KQEAgLTEyOSw3ICsxNDAsMTIgQEAgZ2V0X2RlYnVnc2VnX25h bWUgKHNlZ1Qgc2VnLCBjb25zdCBjaGFyIA0KICAgICAgIGRvdCA9IHN0cmNo ciAobmFtZSArIDEsICcuJyk7DQogDQogICAgICAgaWYgKCFkb2xsYXIgJiYg IWRvdCkNCi0JbmFtZSA9ICIiOw0KKwl7DQorCSAgaWYgKGNvbXBhY3RfZWgg JiYgc3RyY21wIChuYW1lLCAiLnRleHQiKSAhPSAwKQ0KKwkgICAgcmV0dXJu IGNvbmNhdCAoYmFzZV9uYW1lLCAiLiIsIG5hbWUsIE5VTEwpOw0KKw0KKwkg IG5hbWUgPSAiIjsNCisJfQ0KICAgICAgIGVsc2UgaWYgKCFkb2xsYXIpDQog CW5hbWUgPSBkb3Q7DQogICAgICAgZWxzZSBpZiAoIWRvdCkNCkBAIC0xNjEs NiArMTc3LDkgQEAgYWxsb2NfZGVidWdzZWdfaXRlbSAoc2VnVCBzZWcsIGlu dCBzdWJzZQ0KIHN0YXRpYyBzZWdUDQogaXNfbm93X2xpbmtvbmNlX3NlZ21l bnQgKHZvaWQpDQogew0KKyAgaWYgKGNvbXBhY3RfZWgpDQorICAgIHJldHVy biBub3dfc2VnOw0KKw0KICAgaWYgKChiZmRfZ2V0X3NlY3Rpb25fZmxhZ3Mg KHN0ZG91dHB1dCwgbm93X3NlZykNCiAgICAgICAgJiAoU0VDX0xJTktfT05D RSB8IFNFQ19MSU5LX0RVUExJQ0FURVNfRElTQ0FSRA0KIAkgIHwgU0VDX0xJ TktfRFVQTElDQVRFU19PTkVfT05MWSB8IFNFQ19MSU5LX0RVUExJQ0FURVNf U0FNRV9TSVpFDQpAQCAtMTgwLDcgKzE5OSwxMSBAQCBtYWtlX2RlYnVnX3Nl ZyAoc2VnVCBjc2VnLCBjaGFyICpuYW1lLCBpDQogICBzZWdUIHI7DQogICBm bGFnd29yZCBmbGFnczsNCiANCisjaWZkZWYgdGNfbWFrZV9kZWJ1Z19zZWcN CisgIHIgPSB0Y19tYWtlX2RlYnVnX3NlZyAoY3NlZywgbmFtZSk7DQorI2Vs c2UNCiAgIHIgPSBzdWJzZWdfbmV3IChuYW1lLCAwKTsNCisjZW5kaWYNCiAN CiAgIC8qIENoZWNrIGlmIGNvZGUgc2VnbWVudCBpcyBtYXJrZWQgYXMgbGlu a2VkIG9uY2UuICAqLw0KICAgaWYgKCFjc2VnKQ0KQEAgLTI3MywxMiArMjk2 LDEzIEBAIHN0cnVjdCBjZmlfZXNjYXBlX2RhdGENCiBzdHJ1Y3QgY2llX2Vu dHJ5DQogew0KICAgc3RydWN0IGNpZV9lbnRyeSAqbmV4dDsNCi0jaWYgU1VQ UE9SVF9GUkFNRV9MSU5LT05DRQ0KKyNpZiBNVUxUSVBMRV9GUkFNRV9TRUNU SU9OUw0KICAgc2VnVCBjdXJfc2VnOw0KICNlbmRpZg0KICAgc3ltYm9sUyAq c3RhcnRfYWRkcmVzczsNCiAgIHVuc2lnbmVkIGludCByZXR1cm5fY29sdW1u Ow0KICAgdW5zaWduZWQgaW50IHNpZ25hbF9mcmFtZTsNCisgIHVuc2lnbmVk IGNoYXIgZmRlX2VuY29kaW5nOw0KICAgdW5zaWduZWQgY2hhciBwZXJfZW5j b2Rpbmc7DQogICB1bnNpZ25lZCBjaGFyIGxzZGFfZW5jb2Rpbmc7DQogICBl eHByZXNzaW9uUyBwZXJzb25hbGl0eTsNCkBAIC01NTEsNiArNTc1LDcgQEAg c3RhdGljIHZvaWQgZG90X2NmaV9lbmRwcm9jIChpbnQpOw0KIHN0YXRpYyB2 b2lkIGRvdF9jZmlfcGVyc29uYWxpdHkgKGludCk7DQogc3RhdGljIHZvaWQg ZG90X2NmaV9sc2RhIChpbnQpOw0KIHN0YXRpYyB2b2lkIGRvdF9jZmlfdmFs X2VuY29kZWRfYWRkciAoaW50KTsNCitzdGF0aWMgdm9pZCBkb3RfY2ZpX2lu bGluZV9sc2RhIChpbnQpOw0KIA0KIGNvbnN0IHBzZXVkb190eXBlUyBjZmlf cHNldWRvX3RhYmxlW10gPQ0KICAgew0KQEAgLTU3Niw2ICs2MDEsNyBAQCBj b25zdCBwc2V1ZG9fdHlwZVMgY2ZpX3BzZXVkb190YWJsZVtdID0NCiAgICAg eyAiY2ZpX3BlcnNvbmFsaXR5IiwgZG90X2NmaV9wZXJzb25hbGl0eSwgMCB9 LA0KICAgICB7ICJjZmlfbHNkYSIsIGRvdF9jZmlfbHNkYSwgMCB9LA0KICAg ICB7ICJjZmlfdmFsX2VuY29kZWRfYWRkciIsIGRvdF9jZmlfdmFsX2VuY29k ZWRfYWRkciwgMCB9LA0KKyAgICB7ICJjZmlfaW5saW5lX2xzZGEiLCBkb3Rf Y2ZpX2lubGluZV9sc2RhLCAwIH0sDQogICAgIHsgTlVMTCwgTlVMTCwgMCB9 DQogICB9Ow0KIA0KQEAgLTgzMywxNCArODU5LDE1IEBAIGRvdF9jZmlfcGVy c29uYWxpdHkgKGludCBpZ25vcmVkIEFUVFJJQlUNCiAgICAgfQ0KIA0KICAg aWYgKChlbmNvZGluZyAmIDB4ZmYpICE9IGVuY29kaW5nDQotICAgICAgfHwg KChlbmNvZGluZyAmIDB4NzApICE9IDANCisgICAgICB8fCAoKCgoZW5jb2Rp bmcgJiAweDcwKSAhPSAwDQogI2lmIENGSV9ESUZGX0VYUFJfT0sgfHwgZGVm aW5lZCB0Y19jZmlfZW1pdF9wY3JlbF9leHByDQotCSAgJiYgKGVuY29kaW5n ICYgMHg3MCkgIT0gRFdfRUhfUEVfcGNyZWwNCisJICAgJiYgKGVuY29kaW5n ICYgMHg3MCkgIT0gRFdfRUhfUEVfcGNyZWwNCiAjZW5kaWYNCiAJICApDQog CSAvKiBsZWIxMjggY2FuIGJlIGhhbmRsZWQsIGJ1dCBkb2VzIHNvbWV0aGlu ZyBhY3R1YWxseSBuZWVkIGl0PyAgKi8NCi0gICAgICB8fCAoZW5jb2Rpbmcg JiA3KSA9PSBEV19FSF9QRV91bGViMTI4DQotICAgICAgfHwgKGVuY29kaW5n ICYgNykgPiBEV19FSF9QRV91ZGF0YTgpDQorCSAgIHx8IChlbmNvZGluZyAm IDcpID09IERXX0VIX1BFX3VsZWIxMjgNCisJICAgfHwgKGVuY29kaW5nICYg NykgPiBEV19FSF9QRV91ZGF0YTgpDQorCSYmICF0Y19jZmlfc3BlY2lhbF9l bmNvZGluZyAoZW5jb2RpbmcpKSkNCiAgICAgew0KICAgICAgIGFzX2JhZCAo XygiaW52YWxpZCBvciB1bnN1cHBvcnRlZCBlbmNvZGluZyBpbiAuY2ZpX3Bl cnNvbmFsaXR5IikpOw0KICAgICAgIGlnbm9yZV9yZXN0X29mX2xpbmUgKCk7 DQpAQCAtOTAzLDE0ICs5MzAsMTUgQEAgZG90X2NmaV9sc2RhIChpbnQgaWdu b3JlZCBBVFRSSUJVVEVfVU5VUw0KICAgICB9DQogDQogICBpZiAoKGVuY29k aW5nICYgMHhmZikgIT0gZW5jb2RpbmcNCi0gICAgICB8fCAoKGVuY29kaW5n ICYgMHg3MCkgIT0gMA0KKyAgICAgIHx8ICgoKChlbmNvZGluZyAmIDB4NzAp ICE9IDANCiAjaWYgQ0ZJX0RJRkZfTFNEQV9PSyB8fCBkZWZpbmVkIHRjX2Nm aV9lbWl0X3BjcmVsX2V4cHINCi0JICAmJiAoZW5jb2RpbmcgJiAweDcwKSAh PSBEV19FSF9QRV9wY3JlbA0KKwkgICAgJiYgKGVuY29kaW5nICYgMHg3MCkg IT0gRFdfRUhfUEVfcGNyZWwNCiAjZW5kaWYNCi0JICApDQorCSAgICkNCiAJ IC8qIGxlYjEyOCBjYW4gYmUgaGFuZGxlZCwgYnV0IGRvZXMgc29tZXRoaW5n IGFjdHVhbGx5IG5lZWQgaXQ/ICAqLw0KLSAgICAgIHx8IChlbmNvZGluZyAm IDcpID09IERXX0VIX1BFX3VsZWIxMjgNCi0gICAgICB8fCAoZW5jb2Rpbmcg JiA3KSA+IERXX0VIX1BFX3VkYXRhOCkNCisJICAgfHwgKGVuY29kaW5nICYg NykgPT0gRFdfRUhfUEVfdWxlYjEyOA0KKwkgICB8fCAoZW5jb2RpbmcgJiA3 KSA+IERXX0VIX1BFX3VkYXRhOCkNCisJICAmJiAhdGNfY2ZpX3NwZWNpYWxf ZW5jb2RpbmcgKGVuY29kaW5nKSkpDQogICAgIHsNCiAgICAgICBhc19iYWQg KF8oImludmFsaWQgb3IgdW5zdXBwb3J0ZWQgZW5jb2RpbmcgaW4gLmNmaV9s c2RhIikpOw0KICAgICAgIGlnbm9yZV9yZXN0X29mX2xpbmUgKCk7DQpAQCAt MTAyMiw2ICsxMDUwLDggQEAgZG90X2NmaV92YWxfZW5jb2RlZF9hZGRyIChp bnQgaWdub3JlZCBBVA0KICNkZWZpbmUgQ0ZJX0VNSVRfZGVidWdfZnJhbWUJ KDEgPDwgMSkNCiAjZGVmaW5lIENGSV9FTUlUX3RhcmdldAkJKDEgPDwgMikN CiBzdGF0aWMgaW50IGNmaV9zZWN0aW9ucyA9IENGSV9FTUlUX2VoX2ZyYW1l Ow0KK3N0YXRpYyBpbnQgYWxsX2NmaV9zZWN0aW9ucyA9IDA7DQorc3RhdGlj IHN0cnVjdCBmZGVfZW50cnkgKmxhc3RfZmRlOw0KIA0KIHN0YXRpYyB2b2lk DQogZG90X2NmaV9zZWN0aW9ucyAoaW50IGlnbm9yZWQgQVRUUklCVVRFX1VO VVNFRCkNCkBAIC0xMDQyLDYgKzEwNzIsMTMgQEAgZG90X2NmaV9zZWN0aW9u cyAoaW50IGlnbm9yZWQgQVRUUklCVVRFXw0KIAkgIHNlY3Rpb25zIHw9IENG SV9FTUlUX2VoX2ZyYW1lOw0KIAllbHNlIGlmIChzdHJuY21wIChuYW1lLCAi LmRlYnVnX2ZyYW1lIiwgc2l6ZW9mICIuZGVidWdfZnJhbWUiKSA9PSAwKQ0K IAkgIHNlY3Rpb25zIHw9IENGSV9FTUlUX2RlYnVnX2ZyYW1lOw0KKyNpZiBT VVBQT1JUX0NPTVBBQ1RfRUgNCisJZWxzZSBpZiAoc3RybmNtcCAobmFtZSwg Ii5laF9mcmFtZV9lbnRyeSIsIHNpemVvZiAiLmVoX2ZyYW1lX2VudHJ5Iikg PT0gMCkNCisJICB7DQorCSAgICBjb21wYWN0X2VoID0gVFJVRTsNCisJICAg IHNlY3Rpb25zIHw9IENGSV9FTUlUX2VoX2ZyYW1lIHwgQ0ZJX0VNSVRfdGFy Z2V0Ow0KKwkgIH0NCisjZW5kaWYNCiAjaWZkZWYgdGNfY2ZpX3NlY3Rpb25f bmFtZQ0KIAllbHNlIGlmIChzdHJjbXAgKG5hbWUsIHRjX2NmaV9zZWN0aW9u X25hbWUpID09IDApDQogCSAgc2VjdGlvbnMgfD0gQ0ZJX0VNSVRfdGFyZ2V0 Ow0KQEAgLTExMDUsNiArMTE0Miw4IEBAIGRvdF9jZmlfc3RhcnRwcm9jIChp bnQgaWdub3JlZCBBVFRSSUJVVEUNCiAgICAgfQ0KICAgZGVtYW5kX2VtcHR5 X3Jlc3Rfb2ZfbGluZSAoKTsNCiANCisgIGFsbF9jZmlfc2VjdGlvbnMgfD0g Y2ZpX3NlY3Rpb25zOw0KKyAgZnJjaGFpbl9ub3ctPmZyY2hfY2ZpX2RhdGEt PmN1cl9mZGVfZGF0YS0+c2VjdGlvbnMgPSBjZmlfc2VjdGlvbnM7DQogICBm cmNoYWluX25vdy0+ZnJjaF9jZmlfZGF0YS0+Y3VyX2NmYV9vZmZzZXQgPSAw Ow0KICAgaWYgKCFzaW1wbGUpDQogICAgIHRjX2NmaV9mcmFtZV9pbml0aWFs X2luc3RydWN0aW9ucyAoKTsNCkBAIC0xMTE2LDggKzExNTUsNiBAQCBkb3Rf Y2ZpX3N0YXJ0cHJvYyAoaW50IGlnbm9yZWQgQVRUUklCVVRFDQogc3RhdGlj IHZvaWQNCiBkb3RfY2ZpX2VuZHByb2MgKGludCBpZ25vcmVkIEFUVFJJQlVU RV9VTlVTRUQpDQogew0KLSAgc3RydWN0IGZkZV9lbnRyeSAqZmRlOw0KLQ0K ICAgaWYgKGZyY2hhaW5fbm93LT5mcmNoX2NmaV9kYXRhID09IE5VTEwpDQog ICAgIHsNCiAgICAgICBhc19iYWQgKF8oIi5jZmlfZW5kcHJvYyB3aXRob3V0 IGNvcnJlc3BvbmRpbmcgLmNmaV9zdGFydHByb2MiKSk7DQpAQCAtMTEyNSwx NiArMTE2MiwxNDcgQEAgZG90X2NmaV9lbmRwcm9jIChpbnQgaWdub3JlZCBB VFRSSUJVVEVfVQ0KICAgICAgIHJldHVybjsNCiAgICAgfQ0KIA0KLSAgZmRl ID0gZnJjaGFpbl9ub3ctPmZyY2hfY2ZpX2RhdGEtPmN1cl9mZGVfZGF0YTsN CisgIGxhc3RfZmRlID0gZnJjaGFpbl9ub3ctPmZyY2hfY2ZpX2RhdGEtPmN1 cl9mZGVfZGF0YTsNCiANCiAgIGNmaV9lbmRfZmRlIChzeW1ib2xfdGVtcF9u ZXdfbm93ICgpKTsNCiANCiAgIGRlbWFuZF9lbXB0eV9yZXN0X29mX2xpbmUg KCk7DQogDQotICBpZiAoKGNmaV9zZWN0aW9ucyAmIENGSV9FTUlUX3Rhcmdl dCkgIT0gMCkNCi0gICAgdGNfY2ZpX2VuZHByb2MgKGZkZSk7DQorICBpZiAo KGNmaV9zZWN0aW9ucyAmIENGSV9FTUlUX3RhcmdldCkgIT0gMA0KKyAgICAg IHx8IChjb21wYWN0X2VoICYmIChjZmlfc2VjdGlvbnMgJiBDRklfRU1JVF9l aF9mcmFtZSkgIT0gMCkpDQorICAgIHRjX2NmaV9lbmRwcm9jIChsYXN0X2Zk ZSk7DQogfQ0KIA0KK3N0YXRpYyBzZWdUDQorZ2V0X2NmaV9zZWcgKHNlZ1Qg Y3NlZywgY29uc3QgY2hhciAqYmFzZSwgZmxhZ3dvcmQgZmxhZ3MsIGludCBh bGlnbikNCit7DQorICBpZiAoU1VQUE9SVF9GUkFNRV9MSU5LT05DRSB8fCAo KGZsYWdzICYgU0VDX0RFQlVHR0lORykgPT0gMCAmJiBjb21wYWN0X2VoKSkN CisgICAgew0KKyAgICAgIHN0cnVjdCBkd2NmaV9zZWdfbGlzdCAqbDsNCisN CisgICAgICBsID0gZHdjZmlfaGFzaF9maW5kX29yX21ha2UgKGNzZWcsIGJh c2UsIGZsYWdzKTsNCisNCisgICAgICBjc2VnID0gbC0+c2VnOw0KKyAgICAg IHN1YnNlZ19zZXQgKGNzZWcsIGwtPnN1YnNlZyk7DQorICAgIH0NCisgIGVs c2UNCisgICAgew0KKyAgICAgIGNzZWcgPSBzdWJzZWdfbmV3IChiYXNlLCAw KTsNCisgICAgICBiZmRfc2V0X3NlY3Rpb25fZmxhZ3MgKHN0ZG91dHB1dCwg Y3NlZywgZmxhZ3MpOw0KKyAgICB9DQorICByZWNvcmRfYWxpZ25tZW50IChj c2VnLCBhbGlnbik7DQorICByZXR1cm4gY3NlZzsNCit9DQorDQorI2lmIFNV UFBPUlRfQ09NUEFDVF9FSA0KK3N0YXRpYyB2b2lkDQorb3V0cHV0X2NvbXBh Y3RfdW53aW5kX2RhdGEgKHN0cnVjdCBmZGVfZW50cnkgKmZkZSwgaW50IGFs aWduKQ0KK3sNCisgIGludCBkYXRhX3NpemUgPSBmZGUtPmVoX2RhdGFfc2l6 ZSArIDI7DQorICBpbnQgYW1hc2s7DQorICBjaGFyICpwOw0KKyAgY2hhciAq ZW5kOw0KKw0KKyAgZmRlLT5laF9sb2MgPSBzeW1ib2xfdGVtcF9uZXdfbm93 ICgpOw0KKyAgaWYgKGZkZS0+cGVyX2VuY29kaW5nICE9IERXX0VIX1BFX29t aXQpDQorICAgIGRhdGFfc2l6ZSArPSA0Ow0KKw0KKyAgYW1hc2sgPSAoMSA8 PCBhbGlnbikgLSAxOw0KKyAgZGF0YV9zaXplID0gKGRhdGFfc2l6ZSArIGFt YXNrKSAmIH5hbWFzazsNCisgIHAgPSBmcmFnX21vcmUgKGRhdGFfc2l6ZSk7 DQorICBlbmQgPSBwICsgZGF0YV9zaXplIC0gMTsNCisgIGlmIChmZGUtPnBl cl9lbmNvZGluZyAhPSBEV19FSF9QRV9vbWl0KQ0KKyAgICB7DQorICAgICAg KihwKyspID0gMDsNCisgICAgICBtZF9udW1iZXJfdG9fY2hhcnMgKHAsIDAs IDQpOw0KKyAgICAgIHRjX2NmaV9maXhfZWhfcmVmIChwLCAmZmRlLT5wZXJz b25hbGl0eSk7DQorICAgICAgcCArPSA0Ow0KKyAgICB9DQorICBlbHNlDQor ICAgIHsNCisgICAgICAqKHArKykgPSAxOw0KKyAgICB9DQorDQorICBtZW1j cHkgKHAsIGZkZS0+ZWhfZGF0YSwgZmRlLT5laF9kYXRhX3NpemUpOw0KKyAg cCArPSBmZGUtPmVoX2RhdGFfc2l6ZTsNCisgIHdoaWxlIChwICE9IGVuZCkN CisgICAgKihwKyspID0gMHg1ZjsNCisNCisgICoocCsrKSA9IDB4NWM7DQor ICBmZGUtPmVoX2hlYWRlcl90eXBlID0gRUhfQ09NUEFDVF9PVVRMSU5FX0RP TkU7DQorfQ0KKw0KK3N0YXRpYyB2b2lkDQorZG90X2NmaV9pbmxpbmVfbHNk YSAoaW50IGlnbm9yZWQgQVRUUklCVVRFX1VOVVNFRCkNCit7DQorICBzZWdU IGNmaV9zZWcsIGNjc2VnOw0KKyAgaW50IGFsaWduOw0KKyAgbG9uZyBtYXhf YWxpZ25tZW50ID0gMjg7DQorDQorICBpZiAoIWxhc3RfZmRlKQ0KKyAgICB7 DQorICAgICAgYXNfYmFkIChfKCJ1bmV4cGVjdGVkIC5jZmlfaW5saW5lX2xz ZGEiKSk7DQorICAgICAgaWdub3JlX3Jlc3Rfb2ZfbGluZSAoKTsNCisgICAg ICByZXR1cm47DQorICAgIH0NCisNCisgIGlmICghY29tcGFjdF9laA0KKyAg ICAgIHx8IChsYXN0X2ZkZS0+c2VjdGlvbnMgJiBDRklfRU1JVF9laF9mcmFt ZSkgPT0gMA0KKyAgICAgIHx8IChsYXN0X2ZkZS0+ZWhfaGVhZGVyX3R5cGUg IT0gRUhfQ09NUEFDVF9MRUdBQ1kNCisJICAmJiBsYXN0X2ZkZS0+ZWhfaGVh ZGVyX3R5cGUgIT0gRUhfQ09NUEFDVF9IQVNfTFNEQSkpDQorDQorICAgIHsN CisgICAgICBhc19iYWQgKF8oIi5jZmlfaW5saW5lX2xzZGEgbm90IHZhbGlk IGZvciB0aGlzIGZyYW1lIikpOw0KKyAgICAgIGlnbm9yZV9yZXN0X29mX2xp bmUgKCk7DQorICAgICAgcmV0dXJuOw0KKyAgICB9DQorDQorI2lmZGVmIG1k X2ZsdXNoX3BlbmRpbmdfb3V0cHV0DQorICBtZF9mbHVzaF9wZW5kaW5nX291 dHB1dCAoKTsNCisjZW5kaWYNCisNCisgIGFsaWduID0gZ2V0X2Fic29sdXRl X2V4cHJlc3Npb24gKCk7DQorICBpZiAoYWxpZ24gPiBtYXhfYWxpZ25tZW50 KQ0KKyAgICB7DQorICAgICAgYWxpZ24gPSBtYXhfYWxpZ25tZW50Ow0KKyAg ICAgIGFzX2JhZCAoXygiQWxpZ25tZW50IHRvbyBsYXJnZTogJWQuIGFzc3Vt ZWQuIiksIGFsaWduKTsNCisgICAgfQ0KKyAgZWxzZSBpZiAoYWxpZ24gPCAw KQ0KKyAgICB7DQorICAgICAgYXNfd2FybiAoXygiQWxpZ25tZW50IG5lZ2F0 aXZlOiAwIGFzc3VtZWQuIikpOw0KKyAgICAgIGFsaWduID0gMDsNCisgICAg fQ0KKw0KKyAgZGVtYW5kX2VtcHR5X3Jlc3Rfb2ZfbGluZSAoKTsNCisgIGNj c2VnID0gQ1VSX1NFRyAobGFzdF9mZGUpOw0KKyAgLyogT3BlbiAuZ251X2V4 dGFiIHNlY3Rpb24uICAqLw0KKyAgY2ZpX3NlZyA9IGdldF9jZmlfc2VnIChj Y3NlZywgIi5nbnVfZXh0YWIiLA0KKwkJCSAoU0VDX0FMTE9DIHwgU0VDX0xP QUQgfCBTRUNfREFUQQ0KKwkJCSAgfCBEV0FSRjJfRUhfRlJBTUVfUkVBRF9P TkxZKSwNCisJCQkgMSk7DQorI2lmZGVmIG1kX2ZpeF91cF9laF9mcmFtZQ0K KyAgbWRfZml4X3VwX2VoX2ZyYW1lIChjZmlfc2VnKTsNCisjZWxzZQ0KKyAg KHZvaWQpIGNmaV9zZWc7DQorI2VuZGlmDQorDQorICBmcmFnX2FsaWduIChh bGlnbiwgMCwgMCk7DQorICByZWNvcmRfYWxpZ25tZW50IChub3dfc2VnLCBh bGlnbik7DQorICBpZiAobGFzdF9mZGUtPmVoX2hlYWRlcl90eXBlID09IEVI X0NPTVBBQ1RfSEFTX0xTREEpDQorICAgIG91dHB1dF9jb21wYWN0X3Vud2lu ZF9kYXRhIChsYXN0X2ZkZSwgYWxpZ24pOw0KKw0KKyAgbGFzdF9mZGUgPSBO VUxMOw0KKw0KKyAgcmV0dXJuOw0KK30NCisjZWxzZSAvKiAhU1VQUE9SVF9D T01QQUNUX0VIICovDQorc3RhdGljIHZvaWQNCitkb3RfY2ZpX2lubGluZV9s c2RhIChpbnQgaWdub3JlZCBBVFRSSUJVVEVfVU5VU0VEKQ0KK3sNCisgIGFz X2JhZCAoXygiLmNmaV9pbmxpbmVfbHNkYSBpcyBub3Qgc3VwcG9ydGVkIGZv ciB0aGlzIHRhcmdldCIpKTsNCisgIGlnbm9yZV9yZXN0X29mX2xpbmUgKCk7 DQorfQ0KKyNlbmRpZg0KIAwNCiAvKiBFbWl0IGEgc2luZ2xlIGJ5dGUgaW50 byB0aGUgY3VycmVudCBzZWdtZW50LiAgKi8NCiANCkBAIC0xNDc5LDcgKzE2 NDcsMTEgQEAgb3V0cHV0X2NpZSAoc3RydWN0IGNpZV9lbnRyeSAqY2llLCBi ZmRfYg0KIAkgIG9mZnNldFQgc2l6ZSA9IGVuY29kaW5nX3NpemUgKGNpZS0+ cGVyX2VuY29kaW5nKTsNCiAJICBvdXRfb25lIChjaWUtPnBlcl9lbmNvZGlu Zyk7DQogCSAgZXhwID0gY2llLT5wZXJzb25hbGl0eTsNCi0JICBpZiAoKGNp ZS0+cGVyX2VuY29kaW5nICYgMHg3MCkgPT0gRFdfRUhfUEVfcGNyZWwpDQor CSAgaWYgKHRjX2NmaV9zcGVjaWFsX2VuY29kaW5nIChjaWUtPnBlcl9lbmNv ZGluZykpDQorCSAgICB7DQorCSAgICAgIHRjX2NmaV9lbWl0X2V4cHIgKCZl eHAsIGNpZS0+cGVyX2VuY29kaW5nKTsNCisJICAgIH0NCisJICBlbHNlIGlm ICgoY2llLT5wZXJfZW5jb2RpbmcgJiAweDcwKSA9PSBEV19FSF9QRV9wY3Jl bCkNCiAJICAgIHsNCiAjaWYgQ0ZJX0RJRkZfRVhQUl9PSw0KIAkgICAgICBl eHAuWF9vcCA9IE9fc3VidHJhY3Q7DQpAQCAtMTUxNiw2ICsxNjg4LDExIEBA IG91dHB1dF9jaWUgKHN0cnVjdCBjaWVfZW50cnkgKmNpZSwgYmZkX2INCiAj aWYgQ0ZJX0RJRkZfRVhQUl9PSyB8fCBkZWZpbmVkIHRjX2NmaV9lbWl0X3Bj cmVsX2V4cHINCiAgIGVuYyB8PSBEV19FSF9QRV9wY3JlbDsNCiAjZW5kaWYN CisjaWZkZWYgRFdBUkYyX0ZERV9SRUxPQ19FTkNPRElORw0KKyAgLyogQWxs b3cgdGFyZ2V0IHRvIG92ZXJyaWRlIGVuY29kaW5nLiAgKi8NCisgIGVuYyA9 IERXQVJGMl9GREVfUkVMT0NfRU5DT0RJTkcgKGVuYyk7DQorI2VuZGlmDQor ICBjaWUtPmZkZV9lbmNvZGluZyA9IGVuYzsNCiAgIGlmIChlaF9mcmFtZSkN CiAgICAgb3V0X29uZSAoZW5jKTsNCiANCkBAIC0xNTc4LDIxICsxNzU1LDMx IEBAIG91dHB1dF9mZGUgKHN0cnVjdCBmZGVfZW50cnkgKmZkZSwgc3RydWMN CiANCiAgIGlmIChlaF9mcmFtZSkNCiAgICAgew0KLSAgICAgIGV4cC5YX29w ID0gT19zdWJ0cmFjdDsNCi0gICAgICBleHAuWF9hZGRfbnVtYmVyID0gMDsN CisgICAgICBpZiAodGNfY2ZpX3NwZWNpYWxfZW5jb2RpbmcgKGNpZS0+ZmRl X2VuY29kaW5nKSkNCisJew0KKwkgIGV4cC5YX29wID0gT19zeW1ib2w7DQor CSAgZXhwLlhfYWRkX3N5bWJvbCA9IGZkZS0+c3RhcnRfYWRkcmVzczsNCisJ ICB0Y19jZmlfZW1pdF9leHByICgmZXhwLCBjaWUtPmZkZV9lbmNvZGluZyk7 DQorCX0NCisgICAgICBlbHNlDQorCXsNCisJICBleHAuWF9vcCA9IE9fc3Vi dHJhY3Q7DQorCSAgZXhwLlhfYWRkX251bWJlciA9IDA7DQogI2lmIENGSV9E SUZGX0VYUFJfT0sNCi0gICAgICBleHAuWF9hZGRfc3ltYm9sID0gZmRlLT5z dGFydF9hZGRyZXNzOw0KLSAgICAgIGV4cC5YX29wX3N5bWJvbCA9IHN5bWJv bF90ZW1wX25ld19ub3cgKCk7DQotICAgICAgZW1pdF9leHByICgmZXhwLCBE V0FSRjJfRkRFX1JFTE9DX1NJWkUpOwkvKiBDb2RlIG9mZnNldC4gICovDQor CSAgZXhwLlhfYWRkX3N5bWJvbCA9IGZkZS0+c3RhcnRfYWRkcmVzczsNCisJ ICBleHAuWF9vcF9zeW1ib2wgPSBzeW1ib2xfdGVtcF9uZXdfbm93ICgpOw0K KwkgIGVtaXRfZXhwciAoJmV4cCwgRFdBUkYyX0ZERV9SRUxPQ19TSVpFKTsJ LyogQ29kZSBvZmZzZXQuICAqLw0KICNlbHNlDQotICAgICAgZXhwLlhfb3Ag PSBPX3N5bWJvbDsNCi0gICAgICBleHAuWF9hZGRfc3ltYm9sID0gZmRlLT5z dGFydF9hZGRyZXNzOw0KLSNpZmRlZiB0Y19jZmlfZW1pdF9wY3JlbF9leHBy DQotICAgICAgdGNfY2ZpX2VtaXRfcGNyZWxfZXhwciAoJmV4cCwgRFdBUkYy X0ZERV9SRUxPQ19TSVpFKTsJIC8qIENvZGUgb2Zmc2V0LiAgKi8NCisJICBl eHAuWF9vcCA9IE9fc3ltYm9sOw0KKwkgIGV4cC5YX2FkZF9zeW1ib2wgPSBm ZGUtPnN0YXJ0X2FkZHJlc3M7DQorDQorI2lmIGRlZmluZWQodGNfY2ZpX2Vt aXRfcGNyZWxfZXhwcikNCisJICB0Y19jZmlfZW1pdF9wY3JlbF9leHByICgm ZXhwLCBEV0FSRjJfRkRFX1JFTE9DX1NJWkUpOwkgLyogQ29kZSBvZmZzZXQu ICAqLw0KICNlbHNlDQotICAgICAgZW1pdF9leHByICgmZXhwLCBEV0FSRjJf RkRFX1JFTE9DX1NJWkUpOwkvKiBDb2RlIG9mZnNldC4gICovDQorCSAgZW1p dF9leHByICgmZXhwLCBEV0FSRjJfRkRFX1JFTE9DX1NJWkUpOwkvKiBDb2Rl IG9mZnNldC4gICovDQogI2VuZGlmDQogI2VuZGlmDQorCX0NCiAgICAgICBh ZGRyX3NpemUgPSBEV0FSRjJfRkRFX1JFTE9DX1NJWkU7DQogICAgIH0NCiAg IGVsc2UNCkBAIC0xNjE3LDcgKzE4MDQsMTEgQEAgb3V0cHV0X2ZkZSAoc3Ry dWN0IGZkZV9lbnRyeSAqZmRlLCBzdHJ1Yw0KICAgaWYgKGZkZS0+bHNkYV9l bmNvZGluZyAhPSBEV19FSF9QRV9vbWl0KQ0KICAgICB7DQogICAgICAgZXhw ID0gZmRlLT5sc2RhOw0KLSAgICAgIGlmICgoZmRlLT5sc2RhX2VuY29kaW5n ICYgMHg3MCkgPT0gRFdfRUhfUEVfcGNyZWwpDQorICAgICAgaWYgKHRjX2Nm aV9zcGVjaWFsX2VuY29kaW5nIChjaWUtPmxzZGFfZW5jb2RpbmcpKQ0KKwl7 DQorCSAgdGNfY2ZpX2VtaXRfZXhwciAoJmV4cCwgY2llLT5sc2RhX2VuY29k aW5nKTsNCisJfQ0KKyAgICAgIGVsc2UgaWYgKChmZGUtPmxzZGFfZW5jb2Rp bmcgJiAweDcwKSA9PSBEV19FSF9QRV9wY3JlbCkNCiAJew0KICNpZiBDRklf RElGRl9MU0RBX09LDQogCSAgZXhwLlhfb3AgPSBPX3N1YnRyYWN0Ow0KQEAg LTE4MjEsMjYgKzIwMTIsNjYgQEAgY2ZpX2NoYW5nZV9yZWdfbnVtYmVycyAo c3RydWN0IGNmaV9pbnNuXw0KICNkZWZpbmUgY2ZpX2NoYW5nZV9yZWdfbnVt YmVycyhpbnNuLCBjc2VnKSBkbyB7IH0gd2hpbGUgKDApDQogI2VuZGlmDQog DQotc3RhdGljIHNlZ1QNCi1nZXRfY2ZpX3NlZyAoc2VnVCBjc2VnLCBjb25z dCBjaGFyICpiYXNlLCBmbGFnd29yZCBmbGFncywgaW50IGFsaWduKQ0KKyNp ZiBTVVBQT1JUX0NPTVBBQ1RfRUgNCitzdGF0aWMgdm9pZA0KK2NmaV9lbWl0 X2VoX2hlYWRlciAoc3ltYm9sUyAqc3ltLCBiZmRfdm1hIGFkZGVuZCkNCiB7 DQotICBpZiAoU1VQUE9SVF9GUkFNRV9MSU5LT05DRSkNCisgIGV4cHJlc3Np b25TIGV4cDsNCisNCisgIGV4cC5YX2FkZF9udW1iZXIgPSBhZGRlbmQ7DQor ICBleHAuWF9hZGRfc3ltYm9sID0gc3ltOw0KKyAgaWYgKHRjX2NmaV9zcGVj aWFsX2VuY29kaW5nIChEV19FSF9QRV9zZGF0YTQgfCBEV19FSF9QRV9wY3Jl bCkpDQogICAgIHsNCi0gICAgICBzdHJ1Y3QgZHdjZmlfc2VnX2xpc3QgKmw7 DQorICAgICAgdGNfY2ZpX2VtaXRfZXhwciAoJmV4cCwgRFdfRUhfUEVfc2Rh dGE0IHwgRFdfRUhfUEVfcGNyZWwpOw0KKyAgICB9DQorICBlbHNlDQorICAg IHsNCisjaWYgQ0ZJX0RJRkZfRVhQUl9PSw0KKyAgICAgIGV4cC5YX29wID0g T19zdWJ0cmFjdDsNCisgICAgICBleHAuWF9vcF9zeW1ib2wgPSBzeW1ib2xf dGVtcF9uZXdfbm93ICgpOw0KKyAgICAgIGVtaXRfZXhwciAoJmV4cCwgNCk7 CS8qIENvZGUgb2Zmc2V0LiAgKi8NCisjZWxpZiBkZWZpbmVkICh0Y19jZmlf ZW1pdF9wY3JlbF9leHByKQ0KKyAgICAgIGV4cC5YX29wID0gT19zeW1ib2w7 DQorICAgICAgdGNfY2ZpX2VtaXRfcGNyZWxfZXhwciAoJmV4cCwgNCk7CSAv KiBDb2RlIG9mZnNldC4gICovDQorI2Vsc2UNCisgICAgICBhYm9ydCgpOw0K KyNlbmRpZg0KKyAgICB9DQorfQ0KIA0KLSAgICAgIGwgPSBkd2NmaV9oYXNo X2ZpbmRfb3JfbWFrZSAoY3NlZywgYmFzZSwgZmxhZ3MpOw0KK3N0YXRpYyB2 b2lkDQorb3V0cHV0X2VoX2hlYWRlciAoc3RydWN0IGZkZV9lbnRyeSAqZmRl KQ0KK3sNCisgIGNoYXIgKnA7DQorICBiZmRfdm1hIGFkZGVuZDsNCiANCi0g ICAgICBjc2VnID0gbC0+c2VnOw0KLSAgICAgIHN1YnNlZ19zZXQgKGNzZWcs IGwtPnN1YnNlZyk7DQorICBpZiAoZmRlLT5laF9oZWFkZXJfdHlwZSA9PSBF SF9DT01QQUNUX0lOTElORSkNCisgICAgYWRkZW5kID0gMDsNCisgIGVsc2UN CisgICAgYWRkZW5kID0gMTsNCisNCisgIGNmaV9lbWl0X2VoX2hlYWRlciAo ZmRlLT5zdGFydF9hZGRyZXNzLCBhZGRlbmQpOw0KKw0KKyAgaWYgKGZkZS0+ ZWhfaGVhZGVyX3R5cGUgPT0gRUhfQ09NUEFDVF9JTkxJTkUpDQorICAgIHsN CisgICAgICBwID0gZnJhZ19tb3JlICg0KTsNCisgICAgICAvKiBJbmxpbmUg ZW50cmllcyBhbHdheXMgdXNlIFBSMS4gICovDQorICAgICAgKihwKyspID0g MTsNCisgICAgICBtZW1jcHkocCwgZmRlLT5laF9kYXRhLCAzKTsNCiAgICAg fQ0KICAgZWxzZQ0KICAgICB7DQotICAgICAgY3NlZyA9IHN1YnNlZ19uZXcg KGJhc2UsIDApOw0KLSAgICAgIGJmZF9zZXRfc2VjdGlvbl9mbGFncyAoc3Rk b3V0cHV0LCBjc2VnLCBmbGFncyk7DQorICAgICAgaWYgKGZkZS0+ZWhfaGVh ZGVyX3R5cGUgPT0gRUhfQ09NUEFDVF9MRUdBQ1kpDQorCWFkZGVuZCA9IDE7 DQorICAgICAgZWxzZSBpZiAoZmRlLT5laF9oZWFkZXJfdHlwZSA9PSBFSF9D T01QQUNUX09VVExJTkUNCisJICAgICAgIHx8IGZkZS0+ZWhfaGVhZGVyX3R5 cGUgPT0gRUhfQ09NUEFDVF9PVVRMSU5FX0RPTkUpDQorCWFkZGVuZCA9IDA7 DQorICAgICAgZWxzZQ0KKwlhYm9ydCAoKTsNCisgICAgICBjZmlfZW1pdF9l aF9oZWFkZXIgKGZkZS0+ZWhfbG9jLCBhZGRlbmQpOw0KICAgICB9DQotICBy ZWNvcmRfYWxpZ25tZW50IChjc2VnLCBhbGlnbik7DQotICByZXR1cm4gY3Nl ZzsNCiB9DQorI2VuZGlmDQogDQogdm9pZA0KIGNmaV9maW5pc2ggKHZvaWQp DQpAQCAtMTg1NCwxMyArMjA4NSwxMyBAQCBjZmlfZmluaXNoICh2b2lkKQ0K ICAgaWYgKGFsbF9mZGVfZGF0YSA9PSAwKQ0KICAgICByZXR1cm47DQogDQot ICBpZiAoKGNmaV9zZWN0aW9ucyAmIENGSV9FTUlUX2VoX2ZyYW1lKSAhPSAw KQ0KKyAgaWYgKChhbGxfY2ZpX3NlY3Rpb25zICYgQ0ZJX0VNSVRfZWhfZnJh bWUpICE9IDApDQogICAgIHsNCiAgICAgICAvKiBNYWtlIHN1cmUgY2hlY2tf ZWhfZnJhbWUgZG9lc24ndCBkbyBhbnl0aGluZyB3aXRoIG91ciBvdXRwdXQu ICAqLw0KICAgICAgIHNhdmVfZmxhZ190cmFkaXRpb25hbF9mb3JtYXQgPSBm bGFnX3RyYWRpdGlvbmFsX2Zvcm1hdDsNCiAgICAgICBmbGFnX3RyYWRpdGlv bmFsX2Zvcm1hdCA9IDE7DQogDQotICAgICAgaWYgKCFTVVBQT1JUX0ZSQU1F X0xJTktPTkNFKQ0KKyAgICAgIGlmICghRUhfRlJBTUVfTElOS09OQ0UpDQog CXsNCiAJICAvKiBPcGVuIC5laF9mcmFtZSBzZWN0aW9uLiAgKi8NCiAJICBj Zmlfc2VnID0gZ2V0X2NmaV9zZWcgKE5VTEwsICIuZWhfZnJhbWUiLA0KQEAg LTE4ODgsNyArMjExOSwxNyBAQCBjZmlfZmluaXNoICh2b2lkKQ0KIA0KIAkg IGZvciAoZmRlID0gYWxsX2ZkZV9kYXRhOyBmZGUgOyBmZGUgPSBmZGUtPm5l eHQpDQogCSAgICB7DQotCSAgICAgIGlmIChTVVBQT1JUX0ZSQU1FX0xJTktP TkNFKQ0KKwkgICAgICBpZiAoKGZkZS0+c2VjdGlvbnMgJiBDRklfRU1JVF9l aF9mcmFtZSkgPT0gMCkNCisJCWNvbnRpbnVlOw0KKw0KKyNpZiBTVVBQT1JU X0NPTVBBQ1RfRUgNCisJICAgICAgaWYgKGZkZS0+ZWhfaGVhZGVyX3R5cGUg PT0gRUhfQ09NUEFDVF9IQVNfTFNEQSkNCisJCWZkZS0+ZWhfaGVhZGVyX3R5 cGUgPSBFSF9DT01QQUNUX0xFR0FDWTsNCisNCisJICAgICAgaWYgKGZkZS0+ ZWhfaGVhZGVyX3R5cGUgIT0gRUhfQ09NUEFDVF9MRUdBQ1kpDQorCQljb250 aW51ZTsNCisjZW5kaWYNCisJICAgICAgaWYgKEVIX0ZSQU1FX0xJTktPTkNF KQ0KIAkJew0KIAkJICBpZiAoSEFORExFRCAoZmRlKSkNCiAJCSAgICBjb250 aW51ZTsNCkBAIC0xOTIyLDIwICsyMTYzLDExMSBAQCBjZmlfZmluaXNoICh2 b2lkKQ0KIAkJfQ0KIA0KIAkgICAgICBjaWUgPSBzZWxlY3RfY2llX2Zvcl9m ZGUgKGZkZSwgVFJVRSwgJmZpcnN0LCAyKTsNCisJICAgICAgZmRlLT5laF9s b2MgPSBzeW1ib2xfdGVtcF9uZXdfbm93ICgpOw0KIAkgICAgICBvdXRwdXRf ZmRlIChmZGUsIGNpZSwgVFJVRSwgZmlyc3QsDQogCQkJICBmZGUtPm5leHQg PT0gTlVMTCA/IEVIX0ZSQU1FX0FMSUdOTUVOVCA6IDIpOw0KIAkgICAgfQ0K IAl9DQotICAgICAgd2hpbGUgKFNVUFBPUlRfRlJBTUVfTElOS09OQ0UgJiYg c2Vla19uZXh0X3NlZyA9PSAyKTsNCisgICAgICB3aGlsZSAoRUhfRlJBTUVf TElOS09OQ0UgJiYgc2Vla19uZXh0X3NlZyA9PSAyKTsNCiANCi0gICAgICBp ZiAoU1VQUE9SVF9GUkFNRV9MSU5LT05DRSkNCisgICAgICBpZiAoRUhfRlJB TUVfTElOS09OQ0UpDQogCWZvciAoZmRlID0gYWxsX2ZkZV9kYXRhOyBmZGUg OyBmZGUgPSBmZGUtPm5leHQpDQogCSAgU0VUX0hBTkRMRUQgKGZkZSwgMCk7 DQogDQorI2lmIFNVUFBPUlRfQ09NUEFDVF9FSA0KKyAgICAgIGlmIChjb21w YWN0X2VoKQ0KKwl7DQorCSAgLyogQ3JlYXRlIHJlbWFpbmluZyBvdXQgb2Yg bGluZSB0YWJsZSBlbnRyaWVzLiAgKi8NCisJICBkbw0KKwkgICAgew0KKwkg ICAgICBjY3NlZyA9IE5VTEw7DQorCSAgICAgIHNlZWtfbmV4dF9zZWcgPSAw Ow0KKw0KKwkgICAgICBmb3IgKGZkZSA9IGFsbF9mZGVfZGF0YTsgZmRlIDsg ZmRlID0gZmRlLT5uZXh0KQ0KKwkJew0KKwkJICBpZiAoKGZkZS0+c2VjdGlv bnMgJiBDRklfRU1JVF9laF9mcmFtZSkgPT0gMCkNCisJCSAgICBjb250aW51 ZTsNCisNCisJCSAgaWYgKGZkZS0+ZWhfaGVhZGVyX3R5cGUgIT0gRUhfQ09N UEFDVF9PVVRMSU5FKQ0KKwkJICAgIGNvbnRpbnVlOw0KKwkJICBpZiAoSEFO RExFRCAoZmRlKSkNCisJCSAgICBjb250aW51ZTsNCisJCSAgaWYgKHNlZWtf bmV4dF9zZWcgJiYgQ1VSX1NFRyAoZmRlKSAhPSBjY3NlZykNCisJCSAgICB7 DQorCQkgICAgICBzZWVrX25leHRfc2VnID0gMjsNCisJCSAgICAgIGNvbnRp bnVlOw0KKwkJICAgIH0NCisJCSAgaWYgKCFzZWVrX25leHRfc2VnKQ0KKwkJ ICAgIHsNCisJCSAgICAgIGNjc2VnID0gQ1VSX1NFRyAoZmRlKTsNCisJCSAg ICAgIC8qIE9wZW4gLmVoX2ZyYW1lIHNlY3Rpb24uICAqLw0KKwkJICAgICAg Y2ZpX3NlZyA9IGdldF9jZmlfc2VnIChjY3NlZywgIi5nbnVfZXh0YWIiLA0K KwkJCQkJICAgICAoU0VDX0FMTE9DIHwgU0VDX0xPQUQgfCBTRUNfREFUQQ0K KwkJCQkJICAgICAgfCBEV0FSRjJfRUhfRlJBTUVfUkVBRF9PTkxZKSwNCisJ CQkJCSAgICAgMSk7DQorI2lmZGVmIG1kX2ZpeF91cF9laF9mcmFtZQ0KKwkJ ICAgICAgbWRfZml4X3VwX2VoX2ZyYW1lIChjZmlfc2VnKTsNCisjZWxzZQ0K KwkJICAgICAgKHZvaWQpIGNmaV9zZWc7DQorI2VuZGlmDQorCQkgICAgICBz ZWVrX25leHRfc2VnID0gMTsNCisJCSAgICB9DQorCQkgIFNFVF9IQU5ETEVE IChmZGUsIDEpOw0KKw0KKwkJICBmcmFnX2FsaWduICgxLCAwLCAwKTsNCisJ CSAgcmVjb3JkX2FsaWdubWVudCAobm93X3NlZywgMSk7DQorCQkgIG91dHB1 dF9jb21wYWN0X3Vud2luZF9kYXRhIChmZGUsIDEpOw0KKwkJfQ0KKwkgICAg fQ0KKwkgIHdoaWxlIChFSF9GUkFNRV9MSU5LT05DRSAmJiBzZWVrX25leHRf c2VnID09IDIpOw0KKw0KKwkgIGZvciAoZmRlID0gYWxsX2ZkZV9kYXRhOyBm ZGUgOyBmZGUgPSBmZGUtPm5leHQpDQorCSAgICBTRVRfSEFORExFRCAoZmRl LCAwKTsNCisNCisJICAvKiBDcmVhdGUgaW5kZXggdGFibGUgZnJhZ21lbnRz LiAgKi8NCisJICBkbw0KKwkgICAgew0KKwkgICAgICBjY3NlZyA9IE5VTEw7 DQorCSAgICAgIHNlZWtfbmV4dF9zZWcgPSAwOw0KKw0KKwkgICAgICBmb3Ig KGZkZSA9IGFsbF9mZGVfZGF0YTsgZmRlIDsgZmRlID0gZmRlLT5uZXh0KQ0K KwkJew0KKwkJICBpZiAoKGZkZS0+c2VjdGlvbnMgJiBDRklfRU1JVF9laF9m cmFtZSkgPT0gMCkNCisJCSAgICBjb250aW51ZTsNCisNCisJCSAgaWYgKEhB TkRMRUQgKGZkZSkpDQorCQkgICAgY29udGludWU7DQorCQkgIGlmIChzZWVr X25leHRfc2VnICYmIENVUl9TRUcgKGZkZSkgIT0gY2NzZWcpDQorCQkgICAg ew0KKwkJICAgICAgc2Vla19uZXh0X3NlZyA9IDI7DQorCQkgICAgICBjb250 aW51ZTsNCisJCSAgICB9DQorCQkgIGlmICghc2Vla19uZXh0X3NlZykNCisJ CSAgICB7DQorCQkgICAgICBjY3NlZyA9IENVUl9TRUcgKGZkZSk7DQorCQkg ICAgICAvKiBPcGVuIC5laF9mcmFtZV9lbnRyeSBzZWN0aW9uLiAgKi8NCisJ CSAgICAgIGNmaV9zZWcgPSBnZXRfY2ZpX3NlZyAoY2NzZWcsICIuZWhfZnJh bWVfZW50cnkiLA0KKwkJCQkJICAgICAoU0VDX0FMTE9DIHwgU0VDX0xPQUQg fCBTRUNfREFUQQ0KKwkJCQkJICAgICAgfCBEV0FSRjJfRUhfRlJBTUVfUkVB RF9PTkxZKSwNCisJCQkJCSAgICAgMik7DQorCQkgICAgICBzZWVrX25leHRf c2VnID0gMTsNCisJCSAgICB9DQorCQkgIFNFVF9IQU5ETEVEIChmZGUsIDEp Ow0KKw0KKwkJICBvdXRwdXRfZWhfaGVhZGVyIChmZGUpOw0KKwkJfQ0KKwkg ICAgfQ0KKwkgIHdoaWxlIChzZWVrX25leHRfc2VnID09IDIpOw0KKw0KKwkg IGZvciAoZmRlID0gYWxsX2ZkZV9kYXRhOyBmZGUgOyBmZGUgPSBmZGUtPm5l eHQpDQorCSAgICBTRVRfSEFORExFRCAoZmRlLCAwKTsNCisJfQ0KKyNlbmRp ZiAvKiBTVVBQT1JUX0NPTVBBQ1RfRUggKi8NCisNCiAgICAgICBmbGFnX3Ry YWRpdGlvbmFsX2Zvcm1hdCA9IHNhdmVfZmxhZ190cmFkaXRpb25hbF9mb3Jt YXQ7DQogICAgIH0NCiANCi0gIGlmICgoY2ZpX3NlY3Rpb25zICYgQ0ZJX0VN SVRfZGVidWdfZnJhbWUpICE9IDApDQorICBpZiAoKGFsbF9jZmlfc2VjdGlv bnMgJiBDRklfRU1JVF9kZWJ1Z19mcmFtZSkgIT0gMCkNCiAgICAgew0KICAg ICAgIGludCBhbGlnbm1lbnQgPSBmZnMgKERXQVJGMl9BRERSX1NJWkUgKHN0 ZG91dHB1dCkpIC0gMTsNCiANCkBAIC0xOTU4LDYgKzIyOTAsOSBAQCBjZmlf ZmluaXNoICh2b2lkKQ0KIA0KIAkgIGZvciAoZmRlID0gYWxsX2ZkZV9kYXRh OyBmZGUgOyBmZGUgPSBmZGUtPm5leHQpDQogCSAgICB7DQorCSAgICAgIGlm ICgoZmRlLT5zZWN0aW9ucyAmIENGSV9FTUlUX2RlYnVnX2ZyYW1lKSA9PSAw KQ0KKwkJY29udGludWU7DQorDQogCSAgICAgIGlmIChTVVBQT1JUX0ZSQU1F X0xJTktPTkNFKQ0KIAkJew0KIAkJICBpZiAoSEFORExFRCAoZmRlKSkNCkBA IC0yMDM0LDYgKzIzNjksNyBAQCBjb25zdCBwc2V1ZG9fdHlwZVMgY2ZpX3Bz ZXVkb190YWJsZVtdID0NCiAgICAgeyAiY2ZpX3BlcnNvbmFsaXR5IiwgZG90 X2NmaV9kdW1teSwgMCB9LA0KICAgICB7ICJjZmlfbHNkYSIsIGRvdF9jZmlf ZHVtbXksIDAgfSwNCiAgICAgeyAiY2ZpX3ZhbF9lbmNvZGVkX2FkZHIiLCBk b3RfY2ZpX2R1bW15LCAwIH0sDQorICAgIHsgImNmaV9pbmxpbmVfbHNkYSIs IGRvdF9jZmlfZHVtbXksIDAgfSwNCiAgICAgeyBOVUxMLCBOVUxMLCAwIH0N CiAgIH07DQogDQpJbmRleDogZHcyZ2VuY2ZpLmgNCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0NClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2FzL2R3MmdlbmNm aS5oLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMA0KZGlmZiAtcCAtdSAt cjEuMTAgZHcyZ2VuY2ZpLmgNCi0tLSBkdzJnZW5jZmkuaAk3IEF1ZyAyMDEx IDE2OjMyOjIwIC0wMDAwCTEuMTANCisrKyBkdzJnZW5jZmkuaAkzMSBNYXkg MjAxMyAxNzoyNDoyMCAtMDAwMA0KQEAgLTU3LDEwICs1NywxOCBAQCBleHRl cm4gdm9pZCBjZmlfYWRkX0NGQV9yZXN0b3JlX3N0YXRlICh2DQogI2RlZmlu ZSBTVVBQT1JUX0ZSQU1FX0xJTktPTkNFIDANCiAjZW5kaWYNCiANCisjaWZk ZWYgdGNfY2ZpX2ZpeF9laF9yZWYNCisjZGVmaW5lIFNVUFBPUlRfQ09NUEFD VF9FSCAxDQorI2Vsc2UNCisjZGVmaW5lIFNVUFBPUlRfQ09NUEFDVF9FSCAw DQorI2VuZGlmDQorDQorI2RlZmluZSBNVUxUSVBMRV9GUkFNRV9TRUNUSU9O UyAoU1VQUE9SVF9GUkFNRV9MSU5LT05DRSB8fCBTVVBQT1JUX0NPTVBBQ1Rf RUgpDQorDQogc3RydWN0IGNmaV9pbnNuX2RhdGENCiB7DQogICBzdHJ1Y3Qg Y2ZpX2luc25fZGF0YSAqbmV4dDsNCi0jaWYgU1VQUE9SVF9GUkFNRV9MSU5L T05DRQ0KKyNpZiBNVUxUSVBMRV9GUkFNRV9TRUNUSU9OUw0KICAgc2VnVCBj dXJfc2VnOw0KICNlbmRpZg0KICAgaW50IGluc247DQpAQCAtOTcsMTAgKzEw NSwxOSBAQCBzdHJ1Y3QgY2ZpX2luc25fZGF0YQ0KICAgfSB1Ow0KIH07DQog DQorZW51bSB7DQorICAgIEVIX0NPTVBBQ1RfTEVHQUNZLA0KKyAgICBFSF9D T01QQUNUX0lOTElORSwNCisgICAgRUhfQ09NUEFDVF9PVVRMSU5FLA0KKyAg ICBFSF9DT01QQUNUX09VVExJTkVfRE9ORSwNCisgICAgLyogT3V0bGluZSBp ZiAuY2ZpX2lubGluZV9sc2RhIHVzZWQsIG90aGVyd2lzZSBsZWdhY3kgRkRF LiAgKi8NCisgICAgRUhfQ09NUEFDVF9IQVNfTFNEQQ0KK307DQorDQogc3Ry dWN0IGZkZV9lbnRyeQ0KIHsNCiAgIHN0cnVjdCBmZGVfZW50cnkgKm5leHQ7 DQotI2lmIFNVUFBPUlRfRlJBTUVfTElOS09OQ0UNCisjaWYgTVVMVElQTEVf RlJBTUVfU0VDVElPTlMNCiAgIHNlZ1QgY3VyX3NlZzsNCiAjZW5kaWYNCiAg IHN5bWJvbFMgKnN0YXJ0X2FkZHJlc3M7DQpAQCAtMTEzLDkgKzEzMCwxNiBA QCBzdHJ1Y3QgZmRlX2VudHJ5DQogICBleHByZXNzaW9uUyBsc2RhOw0KICAg dW5zaWduZWQgaW50IHJldHVybl9jb2x1bW47DQogICB1bnNpZ25lZCBpbnQg c2lnbmFsX2ZyYW1lOw0KLSNpZiBTVVBQT1JUX0ZSQU1FX0xJTktPTkNFDQor I2lmIE1VTFRJUExFX0ZSQU1FX1NFQ1RJT05TDQogICBpbnQgaGFuZGxlZDsN CiAjZW5kaWYNCisgIGludCBlaF9oZWFkZXJfdHlwZTsNCisgIC8qIENvbXBh Y3QgdW53aW5kaW5nIG9wY29kZXMsIG5vdCBpbmNsdWRpbmcgdGhlIFBSIGJ5 dGUgb3IgTFNEQS4gICovDQorICBpbnQgZWhfZGF0YV9zaXplOw0KKyAgYmZk X2J5dGUgKmVoX2RhdGE7DQorICAvKiBGb3Igb3V0IG9mIGxpbmUgdGFibGVz IGFuZCBGREVzLiAgKi8NCisgIHN5bWJvbFMgKmVoX2xvYzsNCisgIGludCBz ZWN0aW9uczsNCiB9Ow0KIA0KIC8qIFRoZSBsaXN0IG9mIGFsbCBGREVzIHRo YXQgaGF2ZSBiZWVuIGNvbGxlY3RlZC4gICovDQo= --_005_FD3DCEAC5B03E9408544A1E416F11242F8FC5972NAMBX01mgcmento_ Content-Type: application/octet-stream; name="gas-mips.cl" Content-Description: gas-mips.cl Content-Disposition: attachment; filename="gas-mips.cl"; size=394; creation-date="Fri, 31 May 2013 18:53:54 GMT"; modification-date="Fri, 31 May 2013 18:51:39 GMT" Content-Transfer-Encoding: base64 Content-length: 537 CSogY29uZmlnL3RjLW1pcHMuYyAobWRfYXBwbHlfZml4KTogSGFuZGxlIEJG RF9SRUxPQ19OT05FLg0KCShtaXBzX21ha2VfZGVidWdfc2VnKTogTmV3IGZ1 bmN0aW9uLg0KCShtaXBzX3Vud2luZF9yZWdfZnJvbV9kd2FyZiwgbWlwc19j ZmlfZW5kcHJvYywgbWlwc19jZmlfZml4X2VoX3JlZiwNCgltaXBzX2NmaV9l bWl0X2V4cHIpOiBOZXcgZnVuY3Rpb25zLg0KCSogY29uZmlnL3RjLW1pcHMu aCAoRFdBUkYyX0ZERV9SRUxPQ19TSVpFKTogVXNlIGNvbXBhY3RfZWguDQoJ KERXQVJGMl9GREVfUkVMT0NfRU5DT0RJTkcpOiBEZWZpbmUuDQoJKHRjX21h a2VfZGVidWdfc2VnLCB0Y19jZmlfZW5kcHJvYywgdGNfY2ZpX2VtaXRfZXhw ciwNCgl0Y19jZmlfZml4X2VoX3JlZik6IERlZmluZS4NCg== --_005_FD3DCEAC5B03E9408544A1E416F11242F8FC5972NAMBX01mgcmento_ Content-Type: application/octet-stream; name="gas-mips.patch" Content-Description: gas-mips.patch Content-Disposition: attachment; filename="gas-mips.patch"; size=8841; creation-date="Fri, 31 May 2013 18:53:53 GMT"; modification-date="Fri, 31 May 2013 18:52:29 GMT" Content-Transfer-Encoding: base64 Content-length: 11985 SW5kZXg6IGNvbmZpZy90Yy1taXBzLmMNCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0NClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2FzL2NvbmZpZy90Yy1taXBz LmMsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjUzNg0KZGlmZiAtcCAtdSAt cjEuNTM2IHRjLW1pcHMuYw0KLS0tIGNvbmZpZy90Yy1taXBzLmMJMzEgTWF5 IDIwMTMgMTc6MDQ6NTIgLTAwMDAJMS41MzYNCisrKyBjb25maWcvdGMtbWlw cy5jCTMxIE1heSAyMDEzIDE3OjI0OjIwIC0wMDAwDQpAQCAtMTU3MTIsNyAr MTU3MTIsOCBAQCBtZF9hcHBseV9maXggKGZpeFMgKmZpeFAsIHZhbHVlVCAq dmFsUCwgDQogCSAgICAgIHx8IGZpeFAtPmZ4X3JfdHlwZSA9PSBCRkRfUkVM T0NfTUlDUk9NSVBTX1NVQg0KIAkgICAgICB8fCBmaXhQLT5meF9yX3R5cGUg PT0gQkZEX1JFTE9DX1ZUQUJMRV9JTkhFUklUDQogCSAgICAgIHx8IGZpeFAt PmZ4X3JfdHlwZSA9PSBCRkRfUkVMT0NfVlRBQkxFX0VOVFJZDQotCSAgICAg IHx8IGZpeFAtPmZ4X3JfdHlwZSA9PSBCRkRfUkVMT0NfTUlQU19UTFNfRFRQ UkVMNjQpOw0KKwkgICAgICB8fCBmaXhQLT5meF9yX3R5cGUgPT0gQkZEX1JF TE9DX01JUFNfVExTX0RUUFJFTDY0DQorCSAgICAgIHx8IGZpeFAtPmZ4X3Jf dHlwZSA9PSBCRkRfUkVMT0NfTk9ORSk7DQogDQogICBidWYgPSBmaXhQLT5m eF9mcmFnLT5mcl9saXRlcmFsICsgZml4UC0+Znhfd2hlcmU7DQogDQpAQCAt MTU5NTEsNiArMTU5NTIsNyBAQCBtZF9hcHBseV9maXggKGZpeFMgKmZpeFAs IHZhbHVlVCAqdmFsUCwgDQogICAgICAgICBTX1NFVF9XRUFLIChmaXhQLT5m eF9hZGRzeSk7DQogICAgICAgYnJlYWs7DQogDQorICAgIGNhc2UgQkZEX1JF TE9DX05PTkU6DQogICAgIGNhc2UgQkZEX1JFTE9DX1ZUQUJMRV9FTlRSWToN CiAgICAgICBmaXhQLT5meF9kb25lID0gMDsNCiAgICAgICBicmVhazsNCkBA IC0xOTc5MywzICsxOTc5NSwyODkgQEAgdGNfbWlwc19yZWduYW1lX3RvX2R3 MnJlZ251bSAoY2hhciAqcmVnbg0KIA0KICAgcmV0dXJuIHJlZ251bTsNCiB9 DQorDQorI2lmIGRlZmluZWQgKE9CSl9FTEYpDQorc2VnVA0KK21pcHNfbWFr ZV9kZWJ1Z19zZWcgKHNlZ1QgY3NlZywgY2hhciAqbmFtZSkNCit7DQorICBj b25zdCBjaGFyICpncm91cF9uYW1lID0gTlVMTDsNCisgIGludCBsaW5rb25j ZTsNCisgIGludCBmbGFncyA9IDA7DQorDQorICBpZiAoY3NlZyAmJiAoY3Nl Zy0+ZmxhZ3MgJiBTRUNfTElOS19PTkNFKSAhPSAwKQ0KKyAgICB7DQorICAg ICAgZ3JvdXBfbmFtZSA9IGVsZl9ncm91cF9uYW1lIChjc2VnKTsNCisgICAg ICBpZiAoZ3JvdXBfbmFtZSA9PSBOVUxMKQ0KKwl7DQorCSAgYXNfYmFkIChf KCJHcm91cCBzZWN0aW9uIGAlcycgaGFzIG5vIGdyb3VwIHNpZ25hdHVyZSIp LA0KKwkJICBzZWdtZW50X25hbWUgKGNzZWcpKTsNCisJfQ0KKyAgICAgIGZs YWdzIHw9IFNIRl9HUk9VUDsNCisgICAgICBsaW5rb25jZSA9IDE7DQorICAg IH0NCisgIG9ial9lbGZfY2hhbmdlX3NlY3Rpb24gKG5hbWUsIFNIVF9QUk9H QklUUywgZmxhZ3MsIDAsIGdyb3VwX25hbWUsIGxpbmtvbmNlLCAwKTsNCisg IHJldHVybiBub3dfc2VnOw0KK30NCisNCisvKiBUT0RPOiBDYW4gYWxzbyBz YXZlIGZsb2F0IHJlZ3MuICAqLw0KKyNkZWZpbmUgTUlQU19OVU1fVU5XSU5E X1JFR1MgMzINCisNCitzdGF0aWMgaW50DQorbWlwc191bndpbmRfcmVnX2Zy b21fZHdhcmYgKGludCByZWcpDQorew0KKyAgaWYgKHJlZyA+IE1JUFNfTlVN X1VOV0lORF9SRUdTKQ0KKyAgICByZXR1cm4gLTE7DQorDQorICByZXR1cm4g cmVnOw0KK30NCisNCisvKiBBdHRlbXB0IHRvIGdlbmVyYXRlIGNvbXBhY3Qg ZnJhbWUgdW53aW5kIGVuY29kaW5ncy4gICovDQorDQordm9pZA0KK21pcHNf Y2ZpX2VuZHByb2MgKHN0cnVjdCBmZGVfZW50cnkgKmZkZSBBVFRSSUJVVEVf VU5VU0VEKQ0KK3sNCisgIHN0cnVjdCBjZmlfaW5zbl9kYXRhICppbnNuOw0K KyAgaW50IHJlZzsNCisgIG9mZnNldFQgY2ZhX29mZnNldCA9IDA7DQorICBv ZmZzZXRUIG5leHRfb2Zmc2V0ID0gMDsNCisgIGJmZF9ib29sZWFuIHJlZ19v ZmZzZXRbTUlQU19OVU1fVU5XSU5EX1JFR1NdOw0KKyAgaW50IGNmYV9yZWcg PSAyOTsNCisgIGJmZF9ieXRlIG9wYnVmZls0MF07DQorICBpbnQgbnVtX29w czsNCisgIGludCBpOw0KKyAgYmZkX2J5dGUgb3A7DQorICBvZmZzZXRUIHN0 YWNrX2FsaWduID0gSEFWRV9ORVdBQkkgPyAxNiA6IDg7DQorICBvZmZzZXRU IGdwcl9zaXplID0gSEFWRV82NEJJVF9HUFJTID8gOCA6IDQ7DQorDQorICBm b3IgKHJlZyA9IDA7IHJlZyA8IE1JUFNfTlVNX1VOV0lORF9SRUdTOyByZWcr KykNCisgICAgcmVnX29mZnNldFtyZWddID0gMDsNCisNCisgIC8qIFNjYW4g RkRFIGluc3RydWN0aW9ucyB0byBidWlsZCB1cCBzdGFjayBmcmFtZSBsYXlv dXQuICAqLw0KKyAgZm9yIChpbnNuID0gZmRlLT5kYXRhOyBpbnNuOyBpbnNu ID0gaW5zbi0+bmV4dCkNCisgICAgew0KKyAgICAgIHN3aXRjaCAoaW5zbi0+ aW5zbikNCisJew0KKwljYXNlIERXX0NGQV9hZHZhbmNlX2xvYzoNCisJICBi cmVhazsNCisNCisJY2FzZSBEV19DRkFfZGVmX2NmYToNCisJICBjZmFfcmVn ID0gaW5zbi0+dS5yaS5yZWc7DQorCSAgY2ZhX29mZnNldCA9IGluc24tPnUu cmkub2Zmc2V0Ow0KKwkgIGJyZWFrOw0KKw0KKwljYXNlIERXX0NGQV9kZWZf Y2ZhX3JlZ2lzdGVyOg0KKwkgIGNmYV9yZWcgPSBpbnNuLT51LnI7DQorCSAg YnJlYWs7DQorDQorCWNhc2UgRFdfQ0ZBX2RlZl9jZmFfb2Zmc2V0Og0KKwkg IGNmYV9vZmZzZXQgPSBpbnNuLT51Lmk7DQorCSAgYnJlYWs7DQorDQorCWNh c2UgRFdfQ0ZBX3VuZGVmaW5lZDoNCisJY2FzZSBEV19DRkFfc2FtZV92YWx1 ZToNCisJICByZWcgPSBtaXBzX3Vud2luZF9yZWdfZnJvbV9kd2FyZiAoaW5z bi0+dS5yKTsNCisJICBpZiAocmVnID49IDApDQorCSAgICByZWdfb2Zmc2V0 W3JlZ10gPSAwOw0KKwkgIGJyZWFrOw0KKw0KKwljYXNlIERXX0NGQV9vZmZz ZXQ6DQorCSAgcmVnID0gbWlwc191bndpbmRfcmVnX2Zyb21fZHdhcmYgKGlu c24tPnUucmkucmVnKTsNCisJICBpZiAocmVnIDwgMCkNCisJICAgIHJldHVy bjsNCisJICBpZiAoaW5zbi0+dS5yaS5vZmZzZXQgPj0gMCkNCisJICAgIHJl dHVybjsNCisJICByZWdfb2Zmc2V0W3JlZ10gPSBpbnNuLT51LnJpLm9mZnNl dDsNCisJICBicmVhazsNCisNCisJZGVmYXVsdDoNCisJICBhYm9ydCAoKTsN CisJfQ0KKyAgICB9DQorDQorICAvKiBGcmFtZSBwb2ludGVyIG11c3QgYmUg Y2FsbGVlIGNhdmVkLiAgKi8NCisgIGlmIChjZmFfcmVnIDwgMTYNCisgICAg ICB8fCAoY2ZhX3JlZyA+IDIzICYmIGNmYV9yZWcgPCAyOSkNCisgICAgICB8 fCBjZmFfcmVnID4gMzApDQorICAgIHJldHVybjsNCisNCisgIC8qIENhbiBv bmx5IGluY3JlbWVudCBzdGFjayBwb2ludGVyLiAgKi8NCisgIGlmIChjZmFf b2Zmc2V0IDwgMCkNCisgICAgcmV0dXJuOw0KKw0KKyAgLyogU3RhY2sgbXVz dCBiZSBhbGlnbmVkLiAgKi8NCisgIGlmICgoY2ZhX29mZnNldCAmIChzdGFj a19hbGlnbiAtIDEpKSAhPSAwKQ0KKyAgICByZXR1cm47DQorDQorICAvKiBS ZWdpc3RlcnMgbXVzdCBiZSBjb250aWd1b3VzLiAgVGhlcmUncyBvbmx5IGxp bWl0ZWQgYmVuZWZpdCBpbg0KKyAgICAgc3VwcHJ0aW5nIG1vcmUgY29tcGxl eCBsYXlvdXRzLCBzbyBGb3Igbm93IHdlIGFsc28gcmVxdWlyZSB0aGV5DQor ICAgICBiZSBpbiBvcmRlci4gICovDQorICBuZXh0X29mZnNldCA9IC1ncHJf c2l6ZTsNCisgIGZvciAoaSA9IE1JUFNfTlVNX1VOV0lORF9SRUdTIC0gMTsg aSA+PSAwOyBpLS0pDQorICAgIHsNCisgICAgICBpZiAocmVnX29mZnNldFtp XSA9PSAwKQ0KKwljb250aW51ZTsNCisNCisgICAgICBpZiAocmVnX29mZnNl dFtpXSAhPSBuZXh0X29mZnNldCkNCisJcmV0dXJuOw0KKw0KKyAgICAgIG5l eHRfb2Zmc2V0IC09IGdwcl9zaXplOw0KKyAgICB9DQorDQorICBudW1fb3Bz ID0gMDsNCisgIGlmIChjZmFfcmVnICE9IDI5KQ0KKyAgICBvcGJ1ZmZbbnVt X29wcysrXSA9IDB4NTAgKyBjZmFfcmVnIC0gMTY7DQorDQorICBjZmFfb2Zm c2V0IC89IHN0YWNrX2FsaWduOw0KKyAgaWYgKGNmYV9vZmZzZXQgJiYgY2Zh X29mZnNldCA8PSAxMjkpDQorICAgIHsNCisgICAgICB3aGlsZSAoY2ZhX29m ZnNldCA+IDY0KQ0KKwl7DQorCSAgb3BidWZmW251bV9vcHMrK10gPSAweDNm Ow0KKwkgIGNmYV9vZmZzZXQgLT0gNjQ7DQorCX0NCisgICAgICBvcGJ1ZmZb bnVtX29wcysrXSA9IGNmYV9vZmZzZXQgLSAxOw0KKyAgICB9DQorICBlbHNl IGlmIChjZmFfb2Zmc2V0ID4gMCkNCisgICAgew0KKyAgICAgIG9wYnVmZltu dW1fb3BzKytdID0gMHg1ODsNCisgICAgICBjZmFfb2Zmc2V0IC09IDEyOTsN CisgICAgICB3aGlsZSAoY2ZhX29mZnNldCA+IDB4N2YpDQorCXsNCisJICBv cGJ1ZmZbbnVtX29wcysrXSA9IChjZmFfb2Zmc2V0ICYgMHg3ZikgfCAweDgw Ow0KKwkgIGNmYV9vZmZzZXQgPj49IDc7DQorCX0NCisgICAgICBvcGJ1ZmZb bnVtX29wcysrXSA9IGNmYV9vZmZzZXQ7DQorICAgIH0NCisNCisgIG9wID0g MDsNCisgIC8qIHIxNlstcjIzXSwgW3IzMF0sIHIzMSAqLw0KKyAgaWYgKHJl Z19vZmZzZXRbMzFdKQ0KKyAgICB7DQorICAgICAgaWYgKHJlZ19vZmZzZXRb MzBdKQ0KKwlvcCA9IDB4NDg7DQorICAgICAgZWxzZQ0KKwlvcCA9IDB4NDA7 DQorDQorICAgICAgZm9yIChpID0gMjk7IGkgPiAyMzsgaS0tKQ0KKwl7DQor CSAgaWYgKHJlZ19vZmZzZXRbaV0pDQorCSAgICBvcCA9IDA7DQorCX0NCisN CisgICAgICB3aGlsZSAoaSA+IDE2ICYmIHJlZ19vZmZzZXRbaV0gPT0gMCkN CisJaS0tOw0KKw0KKyAgICAgIHJlZyA9IGk7DQorICAgICAgZm9yIChpID0g MTY7IGkgPD0gcmVnOyBpKyspDQorCWlmIChyZWdfb2Zmc2V0W2ldID09IDAp DQorCSAgb3AgPSAwOw0KKw0KKyAgICAgIGlmIChvcCkNCisJb3AgfD0gKHJl ZyAtIDE2KTsNCisgICAgfQ0KKw0KKyAgaWYgKCFvcCkNCisgICAgew0KKyAg ICAgIC8qIG1pcHMxNiBzYXZlIG11bHRpcGxlLiAgKi8NCisgICAgICBvcCA9 IDB4NmM7DQorICAgICAgaWYgKHJlZ19vZmZzZXRbMTZdID09IDAgfHwgcmVn X29mZnNldFsxN10gPT0gMA0KKwkgIHx8IHJlZ19vZmZzZXRbMjFdID09IDAg fHwgcmVnX29mZnNldFsyMl0gPT0gMA0KKwkgIHx8IHJlZ19vZmZzZXRbMjNd ID09IDAgfHwgcmVnX29mZnNldFszMV0gPT0gMCkNCisJb3AgPSAwOw0KKw0K KyAgICAgIGZvciAoaSA9IDI0OyBpIDwgMzE7IGkrKykNCisJaWYgKHJlZ19v ZmZzZXRbaV0gIT0gMCkNCisJICBvcCA9IDA7DQorDQorICAgICAgaWYgKG9w ICYmIHJlZ19vZmZzZXRbMThdID09IDApDQorCW9wKys7DQorICAgICAgaWYg KHJlZ19vZmZzZXRbMTldID09IDApDQorCXsNCisJICBpZiAob3AgPT0gMHg2 ZCkNCisJICAgIG9wKys7DQorCSAgZWxzZQ0KKwkgICAgb3AgPSAwOw0KKwl9 DQorICAgICAgaWYgKHJlZ19vZmZzZXRbMjBdID09IDApDQorCXsNCisJICBp ZiAob3AgPT0gMHg2ZSkNCisJICAgIG9wKys7DQorCSAgZWxzZQ0KKwkgICAg b3AgPSAwOw0KKwl9DQorICAgIH0NCisNCisgIGlmIChvcCkNCisgICAgew0K KyAgICAgIG9wYnVmZltudW1fb3BzKytdID0gb3A7DQorICAgICAgcmVnID0g MTU7DQorICAgIH0NCisgIGVsc2UNCisgICAgew0KKyAgICAgIHJlZyA9IDMx Ow0KKyAgICB9DQorICAvKiBBcmJpdHJhcnkgYmxvY2tzIG9mIHJlZ2lzdGVy cy4gICovDQorICBpID0gMDsNCisgIHdoaWxlIChyZWcgPj0gMCkNCisgICAg ew0KKyAgICAgIGlmIChyZWdfb2Zmc2V0W3JlZ10gPT0gMCkNCisJew0KKwkg IGlmIChpKQ0KKwkgICAgew0KKwkgICAgICBvcGJ1ZmZbbnVtX29wcysrXSA9 IDB4NTk7DQorCSAgICAgIG9wYnVmZltudW1fb3BzKytdID0gKChyZWcgKyAx KSA8PCAzKSB8IChpIC0gMSk7DQorCSAgICAgIGkgPSAwOw0KKwkgICAgfQ0K Kwl9DQorICAgICAgZWxzZQ0KKwlpKys7DQorICAgICAgcmVnLS07DQorICAg IH0NCisNCisgIGlmIChpKQ0KKyAgICB7DQorICAgICAgb3BidWZmW251bV9v cHMrK10gPSAweDU5Ow0KKyAgICAgIG9wYnVmZltudW1fb3BzKytdID0gaSAt IDE7DQorICAgIH0NCisNCisgIGlmIChmZGUtPmxzZGFfZW5jb2RpbmcgIT0g RFdfRUhfUEVfb21pdCkNCisgICAgZmRlLT5laF9oZWFkZXJfdHlwZSA9IEVI X0NPTVBBQ1RfSEFTX0xTREE7DQorICBlbHNlIGlmIChudW1fb3BzIDw9IDMg JiYgZmRlLT5wZXJfZW5jb2RpbmcgPT0gRFdfRUhfUEVfb21pdCkNCisgICAg ZmRlLT5laF9oZWFkZXJfdHlwZSA9IEVIX0NPTVBBQ1RfSU5MSU5FOw0KKyAg ZWxzZQ0KKyAgICBmZGUtPmVoX2hlYWRlcl90eXBlID0gRUhfQ09NUEFDVF9P VVRMSU5FOw0KKw0KKyAgaWYgKGZkZS0+ZWhfaGVhZGVyX3R5cGUgPT0gRUhf Q09NUEFDVF9JTkxJTkUpDQorICAgIHsNCisgICAgICB3aGlsZSAobnVtX29w cyA8IDMpDQorCW9wYnVmZltudW1fb3BzKytdID0gMHg1YzsNCisgICAgfQ0K Kw0KKyAgZmRlLT5laF9kYXRhX3NpemUgPSBudW1fb3BzOw0KKyAgZmRlLT5l aF9kYXRhID0gKGJmZF9ieXRlICopIHhtYWxsb2MgKG51bV9vcHMpOw0KKyAg bWVtY3B5IChmZGUtPmVoX2RhdGEsIG9wYnVmZiwgbnVtX29wcyk7DQorfQ0K Kw0KK3ZvaWQNCittaXBzX2NmaV9maXhfZWhfcmVmIChjaGFyICp3aGVyZSwg ZXhwcmVzc2lvblMgKmV4cCkNCit7DQorICBmaXhfbmV3IChmcmFnX25vdywg d2hlcmUgLSBmcmFnX25vdy0+ZnJfbGl0ZXJhbCwgNCwgZXhwLT5YX2FkZF9z eW1ib2wsDQorCSAgIGV4cC0+WF9hZGRfbnVtYmVyLCBGQUxTRSwgQkZEX1JF TE9DX01JUFNfRUgpOw0KK30NCisNCit2b2lkDQorbWlwc19jZmlfZW1pdF9l eHByIChleHByZXNzaW9uUyAqZXhwLCBpbnQgZW5jb2RpbmcpDQorew0KKyAg Y2hhciAqcDsNCisNCisgIHAgPSBmcmFnX21vcmUoNCk7DQorICBtZF9udW1i ZXJfdG9fY2hhcnMgKHAsIDAsIDQpOw0KKyAgaWYgKChlbmNvZGluZyAmIDB4 NzApID09IERXX0VIX1BFX2RhdGFyZWwpDQorICAgIG1pcHNfY2ZpX2ZpeF9l aF9yZWYgKHAsIGV4cCk7DQorICBlbHNlDQorICAgIHsNCisgICAgICBmaXhf bmV3IChmcmFnX25vdywgcCAtIGZyYWdfbm93LT5mcl9saXRlcmFsLCA0LCBl eHAtPlhfYWRkX3N5bWJvbCwNCisJICAgICAgIGV4cC0+WF9hZGRfbnVtYmVy LCBUUlVFLCBCRkRfUkVMT0NfMzJfUENSRUwpOw0KKyAgICB9DQorfQ0KKyNl bmRpZg0KSW5kZXg6IGNvbmZpZy90Yy1taXBzLmgNCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0NClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2FzL2NvbmZpZy90 Yy1taXBzLmgsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjU5DQpkaWZmIC1w IC11IC1yMS41OSB0Yy1taXBzLmgNCi0tLSBjb25maWcvdGMtbWlwcy5oCTIz IFNlcCAyMDEyIDExOjE0OjI1IC0wMDAwCTEuNTkNCisrKyBjb25maWcvdGMt bWlwcy5oCTMxIE1heSAyMDEzIDE3OjI0OjIwIC0wMDAwDQpAQCAtMTc3LDcg KzE3Nyw5IEBAIGV4dGVybiBlbnVtIGR3YXJmMl9mb3JtYXQgbWlwc19kd2Fy ZjJfZm8NCiANCiBleHRlcm4gaW50IG1pcHNfZHdhcmYyX2FkZHJfc2l6ZSAo dm9pZCk7DQogI2RlZmluZSBEV0FSRjJfQUREUl9TSVpFKGJmZCkgbWlwc19k d2FyZjJfYWRkcl9zaXplICgpDQotI2RlZmluZSBEV0FSRjJfRkRFX1JFTE9D X1NJWkUgbWlwc19kd2FyZjJfYWRkcl9zaXplICgpDQorI2RlZmluZSBEV0FS RjJfRkRFX1JFTE9DX1NJWkUgKGNvbXBhY3RfZWggPyA0IDogbWlwc19kd2Fy ZjJfYWRkcl9zaXplICgpKQ0KKyNkZWZpbmUgRFdBUkYyX0ZERV9SRUxPQ19F TkNPRElORyhlbmMpIFwNCisgIChlbmMgfCAoY29tcGFjdF9laCA/IERXX0VI X1BFX3BjcmVsIDogMCkpDQogDQogI2RlZmluZSBUQVJHRVRfVVNFX0NGSVBP UCAxDQogDQpAQCAtMTkwLDQgKzE5MiwyNCBAQCBleHRlcm4gaW50IHRjX21p cHNfcmVnbmFtZV90b19kdzJyZWdudW0gDQogI2RlZmluZSBEV0FSRjJfREVG QVVMVF9SRVRVUk5fQ09MVU1OIDMxDQogI2RlZmluZSBEV0FSRjJfQ0lFX0RB VEFfQUxJR05NRU5UICgtNCkNCiANCisjaWYgZGVmaW5lZCAoT0JKX0VMRikN CisNCisjZGVmaW5lIHRjX21ha2VfZGVidWdfc2VnIG1pcHNfbWFrZV9kZWJ1 Z19zZWcNCitzZWdUIG1pcHNfbWFrZV9kZWJ1Z19zZWcgKHNlZ1QgY3NlZywg Y2hhciAqbmFtZSk7DQorDQorI2RlZmluZSB0Y19jZmlfZW5kcHJvYyBtaXBz X2NmaV9lbmRwcm9jDQorc3RydWN0IGZkZV9lbnRyeTsNCit2b2lkIG1pcHNf Y2ZpX2VuZHByb2MgKHN0cnVjdCBmZGVfZW50cnkgKmZkZSk7DQorDQorI2Rl ZmluZSB0Y19jZmlfZW1pdF9leHByIG1pcHNfY2ZpX2VtaXRfZXhwcg0KK3Zv aWQgbWlwc19jZmlfZW1pdF9leHByIChleHByZXNzaW9uUyAqZXhwLCBpbnQg ZW5jb2RpbmcpOw0KKyNkZWZpbmUgdGNfY2ZpX3NwZWNpYWxfZW5jb2Rpbmco ZSkgXA0KKyAgKChlKSA9PSAoRFdfRUhfUEVfc2RhdGE0IHwgRFdfRUhfUEVf ZGF0YXJlbCB8IERXX0VIX1BFX2luZGlyZWN0KSBcDQorICAgfHwgKGUpID09 IChEV19FSF9QRV9zZGF0YTQgfCBEV19FSF9QRV9wY3JlbCkpDQorDQorI2Rl ZmluZSB0Y19jZmlfZml4X2VoX3JlZiBtaXBzX2NmaV9maXhfZWhfcmVmDQor dm9pZCBtaXBzX2NmaV9maXhfZWhfcmVmIChjaGFyICp3aGVyZSwgZXhwcmVz c2lvblMgKmV4cCk7DQorDQorI2VuZGlmIC8qIE9CSl9FTEYgKi8NCisNCiAj ZW5kaWYgLyogVENfTUlQUyAqLw0K --_005_FD3DCEAC5B03E9408544A1E416F11242F8FC5972NAMBX01mgcmento_--