From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16667 invoked by alias); 25 Jul 2014 15:00:29 -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 16646 invoked by uid 89); 25 Jul 2014 15:00:27 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=3.0 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD,SPF_PASS,ZIP_ATTACHED autolearn=no version=3.3.2 X-HELO: mailapp01.imgtec.com Received: from mailapp01.imgtec.com (HELO mailapp01.imgtec.com) (195.59.15.196) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 25 Jul 2014 15:00:27 +0000 Received: from KLMAIL01.kl.imgtec.org (unknown [192.168.5.35]) by Websense Email Security Gateway with ESMTPS id E7395471340FD; Fri, 25 Jul 2014 16:00:18 +0100 (IST) Received: from LEMAIL01.le.imgtec.org (192.168.152.62) by KLMAIL01.kl.imgtec.org (192.168.5.35) with Microsoft SMTP Server (TLS) id 14.3.195.1; Fri, 25 Jul 2014 16:00:21 +0100 Received: from LEMAIL01.le.imgtec.org ([fe80::5ae:ee16:f4b9:cda9]) by LEMAIL01.le.imgtec.org ([fe80::5ae:ee16:f4b9:cda9%17]) with mapi id 14.03.0195.001; Fri, 25 Jul 2014 16:00:19 +0100 From: Matthew Fortune To: Richard Sandiford CC: "binutils@sourceware.org" , "Moore, Catherine" , "macro@codesourcery.com" , "Joseph Myers (joseph@codesourcery.com)" Subject: [PATCHv4] Add support for O32 FPXX ABI Date: Fri, 25 Jul 2014 15:00:00 -0000 Message-ID: <6D39441BF12EF246A7ABCE6654B0235320EB4042@LEMAIL01.le.imgtec.org> Content-Type: multipart/mixed; boundary="_004_6D39441BF12EF246A7ABCE6654B0235320EB4042LEMAIL01leimgte_" MIME-Version: 1.0 X-IsSubscribed: yes X-SW-Source: 2014-07/txt/msg00199.txt.bz2 --_004_6D39441BF12EF246A7ABCE6654B0235320EB4042LEMAIL01leimgte_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-length: 1535 Hi Richard, (Apologies for you getting this twice, I hit the attachment limit) I've now had time to run some more focussed testing on binutils, gcc, and=20 glibc together to gain confidence in the new O32 ABI extensions. Assuming the modifications made since last posting are OK I am therefore ready to commit.=09 The changes since v3 of this patch are below and shown in v3-v4.patch.=20 * Merge together FPXX and odd-spreg work as they are now inseparable * Ensure .MIPS.abiflags sections are not removed via --gc-sections * Infer oddspreg from an object based on architecture * Ensure there is no junk in .MIPS.abiflags:flags2. * Re-work odd-spreg handling to support the new extensions, add new flags to single-precision floating-point data movement instructions to simplify lo= gic. * Infer -mno-odd-spreg for -mfpxx regardless of architecture. * Fix for match_float_constant with r5900 * declassification of ctc1/cfc1 as FPU instructions. These are copro1 contr= ol instructions which are not 'using' the FPU. * Add FP64A support * Update docs for FP64A and minor typos The biggest change is the introduction of one further O32 floating point ABI extension, FP64A. This extension is based on FP64 but forbids the use of odd-numbered single-precision registers. The background to this extension c= an be found on: https://dmz-portal.mips.com/wiki/MIPS_O32_ABI_-_FR0_and_FR1_Interlinking#7.= _Defining_O32_FP64A I've kept the testsuite changes separate in the patches but will commit everything at once. Thanks, Matthew --_004_6D39441BF12EF246A7ABCE6654B0235320EB4042LEMAIL01leimgte_ Content-Type: application/octet-stream; name="0001-PATCHv4-MIPS-Implement-O32-FPXX-ABI.patch" Content-Description: 0001-PATCHv4-MIPS-Implement-O32-FPXX-ABI.patch Content-Disposition: attachment; filename="0001-PATCHv4-MIPS-Implement-O32-FPXX-ABI.patch"; size=104797; creation-date="Fri, 25 Jul 2014 14:52:38 GMT"; modification-date="Fri, 25 Jul 2014 14:24:26 GMT" Content-Transfer-Encoding: base64 Content-length: 142061 RnJvbSBmZGVkMzhhOTRlYjA3MTc0OWU0ZjhjMGNiODQwOTY0ZjMzNTdmYjE2 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBtZm9ydHVuZSA8bWF0 dGhldy5mb3J0dW5lQGltZ3RlYy5jb20+CkRhdGU6IFdlZCwgMjEgTWF5IDIw MTQgMDg6MTM6MzggKzAxMDAKU3ViamVjdDogW1BBVENIIDEvMl0gW1BBVENI djRdW01JUFNdIEltcGxlbWVudCBPMzIgRlBYWCBBQkkKCmluY2x1ZGUvCgoJ KiBlbGYvbWlwcy5oIChQVF9NSVBTX0FCSUZMQUdTLCBTSFRfTUlQU19BQklG TEFHUyk6IERlZmluZS4KCShWYWxfR05VX01JUFNfQUJJX0ZQX09MRF82NCk6 IFJlbmFtZSBmcm9tIFZhbF9HTlVfTUlQU19BQklfRlBfNjQuCgkoVmFsX0dO VV9NSVBTX0FCSV9GUF82NCk6IFJlZGVmaW5lLgoJKFZhbF9HTlVfTUlQU19B QklfRlBfWFgpOiBEZWZpbmUuCgkoRWxmX0V4dGVybmFsX0FCSUZsYWdzX3Yw LCBFbGZfSW50ZXJuYWxfQUJJRmxhZ3NfdjApOiBOZXcgc3RydWN0dXJlcy4K CShBRkxfUkVHX05PTkUsIEFGTF9SRUdfMzIsIEFGTF9SRUdfNjQsIEFGTF9S RUdfMTI4KTogRGVmaW5lLgoJKEFGTF9BU0VfRFNQLCBBRkxfQVNFX0RTUFIy LCBBRkxfQVNFX0VWQSwgQUZMX0FTRV9NQ1UpOiBMaWtld2lzZS4KCShBRkxf QVNFX01ETVgsIEFGTF9BU0VfTUlQUzNELCBBRkxfQVNFX01ULCBBRkxfQVNF X1NNQVJUTUlQUyk6IExpa2V3aXNlLgoJKEFGTF9BU0VfVklSVCwgQUZMX0FT RV9NU0EsIEFGTF9BU0VfTUlQUzE2KTogTGlrZXdpc2UuCgkoQUZMX0FTRV9N SUNST01JUFMsIEFGTF9BU0VfWFBBKTogTGlrZXdpc2UuCgkoQUZMX0VYVF9Y TFIsIEFGTF9FWFRfT0NURU9OMiwgQUZMX0VYVF9PQ1RFT05QKTogTGlrZXdp c2UuCgkoQUZMX0VYVF9MT09OR1NPTl8zQSwgQUZMX0VYVF9PQ1RFT04sIEFG TF9FWFRfNTkwMCk6IExpa2V3aXNlLgoJKEFGTF9FWFRfNDY1MCwgQUZMX0VY VF80MDEwLCBBRkxfRVhUXzQxMDAsIEFGTF9FWFRfMzkwMCk6IExpa2V3aXNl LgoJKEFGTF9FWFRfMTAwMDAsIEFGTF9FWFRfU0IxLCBBRkxfRVhUXzQxMTEs IEFGTF9FWFRfNDEyMCk6IExpa2V3aXNlLgoJKEFGTF9FWFRfNTQwMCwgQUZM X0VYVF81NTAwLCBBRkxfRVhUX0xPT05HU09OXzJFKTogTGlrZXdpc2UuCgko QUZMX0VYVF9MT09OR1NPTl8yRik6IExpa2V3aXNlLgoJKGJmZF9taXBzX2Vs Zl9zd2FwX2FiaWZsYWdzX3YwX2luKTogUHJvdG90eXBlLgoJKGJmZF9taXBz X2VsZl9zd2FwX2FiaWZsYWdzX3YwX291dCk6IExpa2V3aXNlLgoJKGJmZF9t aXBzX2lzYV9leHQpOiBMaWtld2lzZS4KCSogb3Bjb2RlL21pcHMuaCAoSU5T Tl9GUF8zMl9NT1ZFKTogTmV3IG1hY3JvLgoKYmZkLwoKCSogZWxmeHgtbWlw cy5jIChBQklfTzMyX1AsIE1JUFNfRUxGX0FCSUZMQUdTX1NFQ1RJT05fTkFN RV9QKTogTmV3IG1hY3JvLgoJKG1pcHNfZWxmX29ial90ZGF0YSk6IEFkZCBh YmlmbGFncyBhbmQgYWJpZmxhZ3NfdmFsaWQgZmllbGRzLgoJKGJmZF9taXBz X2VsZl9zd2FwX2FiaWZsYWdzX3YwX2luKTogTmV3IGZ1bmN0aW9uLgoJKGJm ZF9taXBzX2VsZl9zd2FwX2FiaWZsYWdzX3YwX291dCk6IExpa2V3aXNlLgoJ KF9iZmRfbWlwc19lbGZfc2VjdGlvbl9mcm9tX3NoZHIpOiBIYW5kbGUgU0hU X01JUFNfQUJJRkxBR1MuCgkoX2JmZF9taXBzX2VsZl9mYWtlX3NlY3Rpb25z KTogTGlrZXdpc2UuCgkoX2JmZF9taXBzX2VsZl9hbHdheXNfc2l6ZV9zZWN0 aW9ucyk6IEhhbmRsZSAuTUlQUy5hYmlmbGFncy4KCShfYmZkX21pcHNfZWxm X2FkZGl0aW9uYWxfcHJvZ3JhbV9oZWFkZXJzKTogQWNjb3VudCBmb3IgbmV3 CglQVF9NSVBTX0FCSUZMQUdTIHByb2dyYW0gaGVhZGVyLgoJKF9iZmRfbWlw c19lbGZfbW9kaWZ5X3NlZ21lbnRfbWFwKTogQ3JlYXRlIFBUX01JUFNfQUJJ RkxBR1Mgc2VnbWVudCBhbmQKCWFzc29jaWF0ZSB3aXRoIC5NSVBTLmFiaWZs YWdzLgoJKF9iZmRfbWlwc19lbGZfZ2NfbWFya19leHRyYV9zZWN0aW9ucyk6 IE5ldyBmdW5jdGlvbi4KCShiZmRfbWlwc19pc2FfZXh0LCB1cGRhdGVfbWlw c19hYmlmbGFnc19pc2EpOiBOZXcgc3RhdGljIGZ1bmN0aW9uLgoJKGluZmVy X21pcHNfYWJpZmxhZ3MpOiBMaWtld2lzZS4KCShfYmZkX21pcHNfZWxmX2Zp bmFsX2xpbmspOiBIYW5kbGUgLk1JUFMuYWJpZmxhZ3MuCgkobWlwc18zMmJp dF9mbGFnc19wKTogTW92ZWQgaGlnaGVyLgoJKG1pcHNfZWxmX21lcmdlX29i al9hdHRyaWJ1dGVzLCBfYmZkX21pcHNfZnBfYWJpX3N0cmluZyk6IEVycm9y CgljaGVja2luZyBmb3IgRlAgQUJJcy4KCShfYmZkX21pcHNfZWxmX21lcmdl X3ByaXZhdGVfYmZkX2RhdGEpOiBSZXN0cnVjdHVyZSBhbmQgYWRkIGFiaWZs YWdzCgljaGVja3MuICBDaGVjayBFRl9NSVBTX0ZQNjQgZmxhZyBjb25zaXN0 ZW5jeS4KCShwcmludF9taXBzX2FzZXMsIHByaW50X21pcHNfaXNhX2V4dCk6 IE5ldyBzdGF0aWMgZnVuY3Rpb24uCgkocHJpbnRfbWlwc19mcF9hYmlfdmFs dWUsIGdldF9taXBzX3JlZ19zaXplKTogTGlrZXdpc2UuCgkoX2JmZF9taXBz X2VsZl9wcmludF9wcml2YXRlX2JmZF9kYXRhKTogRGlzcGxheSBhYmlmbGFn cyBkYXRhLgoJKF9iZmRfbWlwc19wb3N0X3Byb2Nlc3NfaGVhZGVycyk6IFNl dCBFSV9BQklWRVJTSU9OID0gMyBmb3IKCVZhbF9HTlVfTUlQU19BQklfRlBf NjQgb3IgVmFsX0dOVV9NSVBTX0FCSV9GUF82NEEuCgkqIGVsZnh4LW1pcHMu aCAoX2JmZF9taXBzX2VsZl9nY19tYXJrX2V4dHJhX3NlY3Rpb25zKTogTmV3 IHByb3RvdHlwZS4KCSogZWxmMzItbWlwcy5jIChlbGZfYmFja2VuZF9nY19t YXJrX2V4dHJhX3NlY3Rpb25zKTogSW1wbGVtZW50LgoJKiBlbGZuMzItbWlw cy5jIChlbGZfYmFja2VuZF9nY19tYXJrX2V4dHJhX3NlY3Rpb25zKTogSW1w bGVtZW50LgoJKiBlbGY2NC1taXBzLmMgKGVsZl9iYWNrZW5kX2djX21hcmtf ZXh0cmFfc2VjdGlvbnMpOiBJbXBsZW1lbnQuCgpiaW51dGlscy8KCgkqIHJl YWRlbGYuYyAoZ2V0X21pcHNfc2VnbWVudF90eXBlKTogRGlzcGxheSBuYW1l IGZvciBQVF9NSVBTX0FCSUZMQUdTLgoJKGdldF9taXBzX3NlY3Rpb25fdHlw ZV9uYW1lKTogRGlzcGxheSBuYW1lIGZvciBTSFRfTUlQU19BQklGTEFHUy4K CShkaXNwbGF5X21pcHNfZ251X2F0dHJpYnV0ZSk6IEFic3RyYWN0ZWQgZnAg YWJpIHByaW50aW5nIHRvLi4uCgkocHJpbnRfbWlwc19mcF9hYmlfdmFsdWUp OiBOZXcgc3RhdGljIGZ1bmN0aW9uLiBIYW5kbGUgbmV3IEZQIEFCSXMuCgko cHJpbnRfbWlwc19hc2VzLCBwcmludF9taXBzX2lzYV9leHQpOiBOZXcgc3Rh dGljIGZ1bmN0aW9ucy4KCShnZXRfbWlwc19yZWdfc2l6ZSk6IExpa2V3aXNl LgoJKHByb2Nlc3NfbWlwc19zcGVjaWZpYyk6IERpc3BsYXkgYWJpZmxhZ3Mg ZGF0YS4KCmVsZmNwcC8KCgkqIGVsZmNwcC5oIChQVF9NSVBTX0FCSUZMQUdT KTogTmV3IHByb2dyYW0gaGVhZGVyIHR5cGUuCgpnYXMvCgoJKiBjb25maWcv dGMtbWlwcy5jIChtaXBzX2ZsYWdzX2ZyYWcpOiBOZXcgc3RhdGljIGdsb2Jh bC4KCShzdHJ1Y3QgbWlwc19zZXRfb3B0aW9ucyk6IEFkZCBub29kZHNwcmVn IGZpZWxkLgoJKGZpbGVfbWlwc19vcHRzLCBtaXBzX29wdHMpOiBJbml0aWFs aXplIG5vb2Rkc3ByZWcuCgkoSVNBX0hBU19PRERfU0lOR0xFX0ZQUik6IEFk ZCBDUFUgYXJndW1lbnQgYW5kIHVwZGF0ZSBmb3IgUjU5MDAgYW5kCglMb29u Z3Nvbi0zYS4KCShlbnVtIG9wdGlvbnMsIG1kX2xvbmdvcHRzLCBtZF9wYXJz ZV9vcHRpb24pOiBBZGQgLW1mcHh4LCAtbW9kZC1zcHJlZwoJYW5kIC1tbm8t b2RkLXNwcmVnIG9wdGlvbnMuCgkobWRfYmVnaW4pOiBDcmVhdGUgLk1JUFMu YWJpZmxhZ3Mgc2VjdGlvbi4KCShmcGFiaV9pbmNvbXBhdGlibGVfd2l0aCwg ZnBhYmlfcmVxdWlyZXMpOiBOZXcgc3RhdGljIGZ1bmN0aW9uLgoJKGNoZWNr X2ZwYWJpKTogTGlrZXdpc2UuCgkobWlwc19jaGVja19vcHRpb25zKTogSGFu ZGxlIGZwPXh4IGFuZCBvZGRzcHJlZyByZXN0cmljdGlvbnMuCgkoZmlsZV9t aXBzX2NoZWNrX29wdGlvbnMpOiBTZXQgbm9vZGRzcHJlZyBieSBkZWZhdWx0 IGZvciBmcD14eC4KCShtaXBzX29kZGZwcmVnX29rKTogUmUtd3JpdGUgZnVu Y3Rpb24uCgkoY2hlY2tfcmVnbm8pOiBDaGVjayBvZGQgbnVtYmVyZWQgcmVn aXN0ZXJzIHJlZ2FyZGxlc3Mgb2YgRlBSIHNpemUuCglGb3IgZnAgIT0gMzIg dXNlIGFzX2JhZCBpbnN0ZWFkIG9mIGFzX3dhcm4uCgkobWF0Y2hfZmxvYXRf Y29uc3RhbnQpOiBSZXdyaXRlIGNoZWNrIHJlZ2FyZGluZyBGUCByZWdpc3Rl ciB3aWR0aC4gIEFkZAoJc3VwcG9ydCBmb3IgZ2VuZXJhdGluZyBjb25zdGFu dHMgd2hlbiBNWEhDMSBpcyBwcmVzZW50LiAgSGFuZGxlIGZwPXh4Cgl0byBj b21wbHkgd2l0aCB0aGUgQUJJLgoJKG1hY3JvKTogVXBkYXRlIE1fTElfREQg c2ltaWxhcmx5IHRvIG1hdGNoX2Zsb2F0X2NvbnN0YW50LiAgR2VuZXJhdGUK CU1USEMxIHdoZW4gYXZhaWxhYmxlLiAgQ2hlY2sgdGhhdCBjb3JyZWN0IGNv ZGUgY2FuIGJlIGdlbmVyYXRlZCBmb3IKCWZwPXh4IGFuZCBmcD02NCBBQklz LgoJKHBhcnNlX2NvZGVfb3B0aW9uLCBzX21pcHNzZXQpOiBBZGQgZnA9eHgs IG9kZHNwcmVnIGFuZCBub29kZHNwcmVnCglvcHRpb25zLgoJKG1pcHNfY29u dmVydF9hc2VfZmxhZ3MpOiBOZXcgc3RhdGljIGZ1bmN0aW9uLgoJKG1pcHNf ZWxmX2ZpbmFsX3Byb2Nlc3NpbmcpOiBVc2UgZnBhYmkgPT0gVmFsX0dOVV9N SVBTX0FCSV9GUF9PTERfNjQKCXRvIGRldGVybWluZSB3aGVuIHRvIGFkZCB0 aGUgRUZfTUlQU19GUDY0IGZsYWcuICBQb3B1bGF0ZSB0aGUKCS5NSVBTLmFi aWZsYWdzIHNlY3Rpb24uCgkobWRfbWlwc19lbmQpOiBVcGRhdGUgLmdudV9h dHRyaWJ1dGUgYmFzZWQgb24gY29tbWFuZCBsaW5lIGFuZCAubW9kdWxlCglh cyBhcHBsaWNhYmxlLiAgVXNlIGNoZWNrX2ZwYWJpIHRvIGVuc3VyZSAuZ251 LmF0dHJpYnV0ZSBhbmQgY29tbWFuZAoJbGluZS8ubW9kdWxlIG9wdGlvbnMg YXJlIGNvbnNpc3RlbnQuCgkqIGRvYy9hcy50ZXhpbmZvOiBBZGQgbWlzc2lu ZyAtbWdwNjQvLW1mcDY0IG9wdGlvbnMgYW5kIGRvY3VtZW50IG5ldwoJLW1m cHh4LCAtbW9kZC1zcHJlZyBhbmQgLW1uby1vZGQtc3ByZWcgb3B0aW9ucy4K CSogZG9jL2MtbWlwcy50ZXhpOiBEb2N1bWVudCAtbWZweHgsIC1tb2RkLXNw cmVnLCAtbW5vLW9kZC1zcHJlZywKCWdudV9hdHRyaWJ1dGUgdmFsdWVzIGFu ZCBGUCBBQklzLgoKbGQvCgoJKiBlbXVscGFyYW1zL2VsZjMyYm1pcC5zaDog QWRkIC5NSVBTLmFiaWZsYWdzLgoJKiBlbXVscGFyYW1zL2VsZjMyYm1pcG4z Mi1kZWZzLnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGY2NGJtaXAt ZGVmcy5zaDogTGlrZXdpc2UuCgpvcGNvZGVzLwoKCSogbWljcm9taXBzLW9w Yy5jIChGMzJNKTogTmV3IG1hY3JvLgoJKGx3YzEsIGwucywgbHd4YzEsIG1m YzEsIG10YzEsIHN3YzEsIHMucywgc3d4YzEpOiBVc2UgRjMyTS4KCShjZmMx LCBjdGMxKTogUmVtb3ZlIEZQX1MgdGFnLgoJKiBtaXBzLW9wYy5jIChGMzJN KTogTmV3IG1hY3JvLgoJKGx3YzEsIGwucywgbHd4YzEsIG1mYzEsIG10YzEs IHN3YzEsIHMucywgc3d4YzEpOiBVc2UgRjMyTS4KCShjZmMxLCBjdGMxKTog UmVtb3ZlIEZQX1MgdGFnLgotLS0KIGJmZC9lbGYzMi1taXBzLmMgICAgICAg ICAgICAgICAgICAgfCAgIDIgKwogYmZkL2VsZjY0LW1pcHMuYyAgICAgICAg ICAgICAgICAgICB8ICAgMiArCiBiZmQvZWxmbjMyLW1pcHMuYyAgICAgICAg ICAgICAgICAgIHwgICAyICsKIGJmZC9lbGZ4eC1taXBzLmMgICAgICAgICAg ICAgICAgICAgfCA3NTggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLQogYmZkL2VsZnh4LW1pcHMuaCAgICAgICAgICAgICAgICAgICB8 ICAgMiArCiBiaW51dGlscy9yZWFkZWxmLmMgICAgICAgICAgICAgICAgIHwg MjI1ICsrKysrKysrKy0tCiBlbGZjcHAvZWxmY3BwLmggICAgICAgICAgICAg ICAgICAgIHwgICAyICsKIGdhcy9jb25maWcvdGMtbWlwcy5jICAgICAgICAg ICAgICAgfCA0MzYgKysrKysrKysrKysrKysrKysrLS0tCiBnYXMvZG9jL2Fz LnRleGluZm8gICAgICAgICAgICAgICAgIHwgIDIxICsKIGdhcy9kb2MvYy1t aXBzLnRleGkgICAgICAgICAgICAgICAgfCAxMjYgKysrKysrCiBpbmNsdWRl L2VsZi9taXBzLmggICAgICAgICAgICAgICAgIHwgMTIzICsrKysrLQogaW5j bHVkZS9vcGNvZGUvbWlwcy5oICAgICAgICAgICAgICB8ICAgMiArCiBsZC9l bXVscGFyYW1zL2VsZjMyYm1pcC5zaCAgICAgICAgIHwgICAzICstCiBsZC9l bXVscGFyYW1zL2VsZjMyYm1pcG4zMi1kZWZzLnNoIHwgICAxICsKIGxkL2Vt dWxwYXJhbXMvZWxmNjRibWlwLWRlZnMuc2ggICAgfCAgIDUgKy0KIG9wY29k ZXMvbWljcm9taXBzLW9wYy5jICAgICAgICAgICAgfCAgMzMgKy0KIG9wY29k ZXMvbWlwcy1vcGMuYyAgICAgICAgICAgICAgICAgfCAgMzMgKy0KIDE3IGZp bGVzIGNoYW5nZWQsIDE2MTIgaW5zZXJ0aW9ucygrKSwgMTY0IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2JmZC9lbGYzMi1taXBzLmMgYi9iZmQvZWxm MzItbWlwcy5jCmluZGV4IDFkZTMwMmYuLmFmNDA1YmMgMTAwNjQ0Ci0tLSBh L2JmZC9lbGYzMi1taXBzLmMKKysrIGIvYmZkL2VsZjMyLW1pcHMuYwpAQCAt MjMxNSw2ICsyMzE1LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBlY29mZl9k ZWJ1Z19zd2FwIG1pcHNfZWxmMzJfZWNvZmZfZGVidWdfc3dhcCA9IHsKICNk ZWZpbmUgZWxmX2JhY2tlbmRfY29sbGVjdAkJVFJVRQogI2RlZmluZSBlbGZf YmFja2VuZF90eXBlX2NoYW5nZV9vawlUUlVFCiAjZGVmaW5lIGVsZl9iYWNr ZW5kX2Nhbl9nY19zZWN0aW9ucwlUUlVFCisjZGVmaW5lIGVsZl9iYWNrZW5k X2djX21hcmtfZXh0cmFfc2VjdGlvbnMgXAorCQkJCQlfYmZkX21pcHNfZWxm X2djX21hcmtfZXh0cmFfc2VjdGlvbnMKICNkZWZpbmUgZWxmX2luZm9fdG9f aG93dG8JCW1pcHNfaW5mb190b19ob3d0b19yZWxhCiAjZGVmaW5lIGVsZl9p bmZvX3RvX2hvd3RvX3JlbAkJbWlwc19pbmZvX3RvX2hvd3RvX3JlbAogI2Rl ZmluZSBlbGZfYmFja2VuZF9zeW1faXNfZ2xvYmFsCW1pcHNfZWxmX3N5bV9p c19nbG9iYWwKZGlmZiAtLWdpdCBhL2JmZC9lbGY2NC1taXBzLmMgYi9iZmQv ZWxmNjQtbWlwcy5jCmluZGV4IDlkNTBhNzkuLjg2NjJkNjYgMTAwNjQ0Ci0t LSBhL2JmZC9lbGY2NC1taXBzLmMKKysrIGIvYmZkL2VsZjY0LW1pcHMuYwpA QCAtNDE4NSw2ICs0MTg1LDggQEAgY29uc3Qgc3RydWN0IGVsZl9zaXplX2lu Zm8gbWlwc19lbGY2NF9zaXplX2luZm8gPQogI2RlZmluZSBlbGZfYmFja2Vu ZF9jb2xsZWN0CQlUUlVFCiAjZGVmaW5lIGVsZl9iYWNrZW5kX3R5cGVfY2hh bmdlX29rCVRSVUUKICNkZWZpbmUgZWxmX2JhY2tlbmRfY2FuX2djX3NlY3Rp b25zCVRSVUUKKyNkZWZpbmUgZWxmX2JhY2tlbmRfZ2NfbWFya19leHRyYV9z ZWN0aW9ucyBcCisJCQkJCV9iZmRfbWlwc19lbGZfZ2NfbWFya19leHRyYV9z ZWN0aW9ucwogI2RlZmluZSBlbGZfaW5mb190b19ob3d0bwkJbWlwc19lbGY2 NF9pbmZvX3RvX2hvd3RvX3JlbGEKICNkZWZpbmUgZWxmX2luZm9fdG9faG93 dG9fcmVsCQltaXBzX2VsZjY0X2luZm9fdG9faG93dG9fcmVsCiAjZGVmaW5l IGVsZl9iYWNrZW5kX29iamVjdF9wCQltaXBzX2VsZjY0X29iamVjdF9wCmRp ZmYgLS1naXQgYS9iZmQvZWxmbjMyLW1pcHMuYyBiL2JmZC9lbGZuMzItbWlw cy5jCmluZGV4IGMzN2ZmOWQuLjEyODZjYzEgMTAwNjQ0Ci0tLSBhL2JmZC9l bGZuMzItbWlwcy5jCisrKyBiL2JmZC9lbGZuMzItbWlwcy5jCkBAIC0zNDEw LDYgKzM0MTAsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGVjb2ZmX2RlYnVn X3N3YXAgbWlwc19lbGYzMl9lY29mZl9kZWJ1Z19zd2FwID0gewogI2RlZmlu ZSBlbGZfYmFja2VuZF9jb2xsZWN0CQlUUlVFCiAjZGVmaW5lIGVsZl9iYWNr ZW5kX3R5cGVfY2hhbmdlX29rCVRSVUUKICNkZWZpbmUgZWxmX2JhY2tlbmRf Y2FuX2djX3NlY3Rpb25zCVRSVUUKKyNkZWZpbmUgZWxmX2JhY2tlbmRfZ2Nf bWFya19leHRyYV9zZWN0aW9ucyBcCisJCQkJCV9iZmRfbWlwc19lbGZfZ2Nf bWFya19leHRyYV9zZWN0aW9ucwogI2RlZmluZSBlbGZfaW5mb190b19ob3d0 bwkJbWlwc19pbmZvX3RvX2hvd3RvX3JlbGEKICNkZWZpbmUgZWxmX2luZm9f dG9faG93dG9fcmVsCQltaXBzX2luZm9fdG9faG93dG9fcmVsCiAjZGVmaW5l IGVsZl9iYWNrZW5kX3N5bV9pc19nbG9iYWwJbWlwc19lbGZfc3ltX2lzX2ds b2JhbApkaWZmIC0tZ2l0IGEvYmZkL2VsZnh4LW1pcHMuYyBiL2JmZC9lbGZ4 eC1taXBzLmMKaW5kZXggZGRkZjgzZS4uYTcyY2NjMyAxMDA2NDQKLS0tIGEv YmZkL2VsZnh4LW1pcHMuYworKysgYi9iZmQvZWxmeHgtbWlwcy5jCkBAIC01 NDcsNiArNTQ3LDEwIEBAIHN0cnVjdCBtaXBzX2VsZl9vYmpfdGRhdGEKICAg LyogSW5wdXQgQkZEIHByb3ZpZGluZyBUYWdfR05VX01JUFNfQUJJX01TQSBh dHRyaWJ1dGUgZm9yIG91dHB1dC4gICovCiAgIGJmZCAqYWJpX21zYV9iZmQ7 CiAKKyAgLyogVGhlIGFiaWZsYWdzIGZvciB0aGlzIG9iamVjdC4gICovCisg IEVsZl9JbnRlcm5hbF9BQklGbGFnc192MCBhYmlmbGFnczsKKyAgYmZkX2Jv b2xlYW4gYWJpZmxhZ3NfdmFsaWQ7CisKICAgLyogVGhlIEdPVCByZXF1aXJl bWVudHMgb2YgaW5wdXQgYmZkcy4gICovCiAgIHN0cnVjdCBtaXBzX2dvdF9p bmZvICpnb3Q7CiAKQEAgLTc3Niw2ICs3ODAsMTAgQEAgc3RhdGljIGJmZCAq cmVsZHluX3NvcnRpbmdfYmZkOwogI2RlZmluZSBQSUNfT0JKRUNUX1AoYWJm ZCkgXAogICAoKGVsZl9lbGZoZWFkZXIgKGFiZmQpLT5lX2ZsYWdzICYgRUZf TUlQU19QSUMpICE9IDApCiAKKy8qIE5vbnplcm8gaWYgQUJGRCBpcyB1c2lu ZyB0aGUgTzMyIEFCSS4gICovCisjZGVmaW5lIEFCSV9PMzJfUChhYmZkKSBc CisgICgoZWxmX2VsZmhlYWRlciAoYWJmZCktPmVfZmxhZ3MgJiBFRl9NSVBT X0FCSSkgPT0gRV9NSVBTX0FCSV9PMzIpCisKIC8qIE5vbnplcm8gaWYgQUJG RCBpcyB1c2luZyB0aGUgTjMyIEFCSS4gICovCiAjZGVmaW5lIEFCSV9OMzJf UChhYmZkKSBcCiAgICgoZWxmX2VsZmhlYWRlciAoYWJmZCktPmVfZmxhZ3Mg JiBFRl9NSVBTX0FCSTIpICE9IDApCkBAIC04MDgsNiArODE2LDEwIEBAIHN0 YXRpYyBiZmQgKnJlbGR5bl9zb3J0aW5nX2JmZDsKICNkZWZpbmUgTUlQU19F TEZfT1BUSU9OU19TRUNUSU9OX05BTUVfUChOQU1FKSBcCiAgIChzdHJjbXAg KE5BTUUsICIuTUlQUy5vcHRpb25zIikgPT0gMCB8fCBzdHJjbXAgKE5BTUUs ICIub3B0aW9ucyIpID09IDApCiAKKy8qIFRydWUgaWYgTkFNRSBpcyB0aGUg cmVjb2duaXplZCBuYW1lIG9mIGFueSBTSFRfTUlQU19BQklGTEFHUyBzZWN0 aW9uLiAgKi8KKyNkZWZpbmUgTUlQU19FTEZfQUJJRkxBR1NfU0VDVElPTl9O QU1FX1AoTkFNRSkgXAorICAoc3RyY21wIChOQU1FLCAiLk1JUFMuYWJpZmxh Z3MiKSA9PSAwKQorCiAvKiBXaGV0aGVyIHRoZSBzZWN0aW9uIGlzIHJlYWRv bmx5LiAgKi8KICNkZWZpbmUgTUlQU19FTEZfUkVBRE9OTFlfU0VDVElPTihz ZWMpIFwKICAgKChzZWMtPmZsYWdzICYgKFNFQ19BTExPQyB8IFNFQ19MT0FE IHwgU0VDX1JFQURPTkxZKSkJCVwKQEAgLTI2NjQsNiArMjY3Niw0NiBAQCBi ZmRfbWlwc19lbGZfc3dhcF9vcHRpb25zX291dCAoYmZkICphYmZkLCBjb25z dCBFbGZfSW50ZXJuYWxfT3B0aW9ucyAqaW4sCiAgIEhfUFVUXzE2IChhYmZk LCBpbi0+c2VjdGlvbiwgZXgtPnNlY3Rpb24pOwogICBIX1BVVF8zMiAoYWJm ZCwgaW4tPmluZm8sIGV4LT5pbmZvKTsKIH0KKworLyogU3dhcCBpbiBhbiBh YmlmbGFncyBzdHJ1Y3R1cmUuICAqLworCit2b2lkCitiZmRfbWlwc19lbGZf c3dhcF9hYmlmbGFnc192MF9pbiAoYmZkICphYmZkLAorCQkJCSAgY29uc3Qg RWxmX0V4dGVybmFsX0FCSUZsYWdzX3YwICpleCwKKwkJCQkgIEVsZl9JbnRl cm5hbF9BQklGbGFnc192MCAqaW4pCit7CisgIGluLT52ZXJzaW9uID0gSF9H RVRfMTYgKGFiZmQsIGV4LT52ZXJzaW9uKTsKKyAgaW4tPmlzYV9sZXZlbCA9 IEhfR0VUXzggKGFiZmQsIGV4LT5pc2FfbGV2ZWwpOworICBpbi0+aXNhX3Jl diA9IEhfR0VUXzggKGFiZmQsIGV4LT5pc2FfcmV2KTsKKyAgaW4tPmdwcl9z aXplID0gSF9HRVRfOCAoYWJmZCwgZXgtPmdwcl9zaXplKTsKKyAgaW4tPmNw cjFfc2l6ZSA9IEhfR0VUXzggKGFiZmQsIGV4LT5jcHIxX3NpemUpOworICBp bi0+Y3ByMl9zaXplID0gSF9HRVRfOCAoYWJmZCwgZXgtPmNwcjJfc2l6ZSk7 CisgIGluLT5mcF9hYmkgPSBIX0dFVF84IChhYmZkLCBleC0+ZnBfYWJpKTsK KyAgaW4tPmlzYV9leHQgPSBIX0dFVF8zMiAoYWJmZCwgZXgtPmlzYV9leHQp OworICBpbi0+YXNlcyA9IEhfR0VUXzMyIChhYmZkLCBleC0+YXNlcyk7Cisg IGluLT5mbGFnczEgPSBIX0dFVF8zMiAoYWJmZCwgZXgtPmZsYWdzMSk7Cisg IGluLT5mbGFnczIgPSBIX0dFVF8zMiAoYWJmZCwgZXgtPmZsYWdzMik7Cit9 CisKKy8qIFN3YXAgb3V0IGFuIGFiaWZsYWdzIHN0cnVjdHVyZS4gICovCisK K3ZvaWQKK2JmZF9taXBzX2VsZl9zd2FwX2FiaWZsYWdzX3YwX291dCAoYmZk ICphYmZkLAorCQkJCSAgIGNvbnN0IEVsZl9JbnRlcm5hbF9BQklGbGFnc192 MCAqaW4sCisJCQkJICAgRWxmX0V4dGVybmFsX0FCSUZsYWdzX3YwICpleCkK K3sKKyAgSF9QVVRfMTYgKGFiZmQsIGluLT52ZXJzaW9uLCBleC0+dmVyc2lv bik7CisgIEhfUFVUXzggKGFiZmQsIGluLT5pc2FfbGV2ZWwsIGV4LT5pc2Ff bGV2ZWwpOworICBIX1BVVF84IChhYmZkLCBpbi0+aXNhX3JldiwgZXgtPmlz YV9yZXYpOworICBIX1BVVF84IChhYmZkLCBpbi0+Z3ByX3NpemUsIGV4LT5n cHJfc2l6ZSk7CisgIEhfUFVUXzggKGFiZmQsIGluLT5jcHIxX3NpemUsIGV4 LT5jcHIxX3NpemUpOworICBIX1BVVF84IChhYmZkLCBpbi0+Y3ByMl9zaXpl LCBleC0+Y3ByMl9zaXplKTsKKyAgSF9QVVRfOCAoYWJmZCwgaW4tPmZwX2Fi aSwgZXgtPmZwX2FiaSk7CisgIEhfUFVUXzMyIChhYmZkLCBpbi0+aXNhX2V4 dCwgZXgtPmlzYV9leHQpOworICBIX1BVVF8zMiAoYWJmZCwgaW4tPmFzZXMs IGV4LT5hc2VzKTsKKyAgSF9QVVRfMzIgKGFiZmQsIGluLT5mbGFnczEsIGV4 LT5mbGFnczEpOworICBIX1BVVF8zMiAoYWJmZCwgaW4tPmZsYWdzMiwgZXgt PmZsYWdzMik7Cit9CiAMCiAvKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB2 aWEgcXNvcnQoKSB0byBzb3J0IHRoZSBkeW5hbWljIHJlbG9jYXRpb24KICAg IGVudHJpZXMgYnkgaW5jcmVhc2luZyByX3N5bW5keCB2YWx1ZS4gICovCkBA IC02OTEwLDYgKzY5NjIsMTEgQEAgX2JmZF9taXBzX2VsZl9zZWN0aW9uX2Zy b21fc2hkciAoYmZkICphYmZkLAogICAgICAgaWYgKCFNSVBTX0VMRl9PUFRJ T05TX1NFQ1RJT05fTkFNRV9QIChuYW1lKSkKIAlyZXR1cm4gRkFMU0U7CiAg ICAgICBicmVhazsKKyAgICBjYXNlIFNIVF9NSVBTX0FCSUZMQUdTOgorICAg ICAgaWYgKCFNSVBTX0VMRl9BQklGTEFHU19TRUNUSU9OX05BTUVfUCAobmFt ZSkpCisJcmV0dXJuIEZBTFNFOworICAgICAgZmxhZ3MgPSAoU0VDX0xJTktf T05DRSB8IFNFQ19MSU5LX0RVUExJQ0FURVNfU0FNRV9TSVpFKTsKKyAgICAg IGJyZWFrOwogICAgIGNhc2UgU0hUX01JUFNfRFdBUkY6CiAgICAgICBpZiAo ISBDT05TVF9TVFJORVEgKG5hbWUsICIuZGVidWdfIikKICAgICAgICAgICAm JiAhIENPTlNUX1NUUk5FUSAobmFtZSwgIi56ZGVidWdfIikpCkBAIC02OTQw LDYgKzY5OTcsMjAgQEAgX2JmZF9taXBzX2VsZl9zZWN0aW9uX2Zyb21fc2hk ciAoYmZkICphYmZkLAogCXJldHVybiBGQUxTRTsKICAgICB9CiAKKyAgaWYg KGhkci0+c2hfdHlwZSA9PSBTSFRfTUlQU19BQklGTEFHUykKKyAgICB7Cisg ICAgICBFbGZfRXh0ZXJuYWxfQUJJRmxhZ3NfdjAgZXh0OworCisgICAgICBp ZiAoISBiZmRfZ2V0X3NlY3Rpb25fY29udGVudHMgKGFiZmQsIGhkci0+YmZk X3NlY3Rpb24sCisJCQkJICAgICAgJmV4dCwgMCwgc2l6ZW9mIGV4dCkpCisJ cmV0dXJuIEZBTFNFOworICAgICAgYmZkX21pcHNfZWxmX3N3YXBfYWJpZmxh Z3NfdjBfaW4gKGFiZmQsICZleHQsCisJCQkJCSZtaXBzX2VsZl90ZGF0YSAo YWJmZCktPmFiaWZsYWdzKTsKKyAgICAgIGlmIChtaXBzX2VsZl90ZGF0YSAo YWJmZCktPmFiaWZsYWdzLnZlcnNpb24gIT0gMCkKKwlyZXR1cm4gRkFMU0U7 CisgICAgICBtaXBzX2VsZl90ZGF0YSAoYWJmZCktPmFiaWZsYWdzX3ZhbGlk ID0gVFJVRTsKKyAgICB9CisKICAgLyogRklYTUU6IFdlIHNob3VsZCByZWNv cmQgc2hfaW5mbyBmb3IgYSAuZ3B0YWIgc2VjdGlvbi4gICovCiAKICAgLyog Rm9yIGEgLnJlZ2luZm8gc2VjdGlvbiwgc2V0IHRoZSBncCB2YWx1ZSBpbiB0 aGUgdGRhdGEgaW5mb3JtYXRpb24KQEAgLTcxMDYsNiArNzE3NywxMSBAQCBf YmZkX21pcHNfZWxmX2Zha2Vfc2VjdGlvbnMgKGJmZCAqYWJmZCwgRWxmX0lu dGVybmFsX1NoZHIgKmhkciwgYXNlY3Rpb24gKnNlYykKICAgICAgIGhkci0+ c2hfZW50c2l6ZSA9IDE7CiAgICAgICBoZHItPnNoX2ZsYWdzIHw9IFNIRl9N SVBTX05PU1RSSVA7CiAgICAgfQorICBlbHNlIGlmIChDT05TVF9TVFJORVEg KG5hbWUsICIuTUlQUy5hYmlmbGFncyIpKQorICAgIHsKKyAgICAgIGhkci0+ c2hfdHlwZSA9IFNIVF9NSVBTX0FCSUZMQUdTOworICAgICAgaGRyLT5zaF9l bnRzaXplID0gc2l6ZW9mIChFbGZfRXh0ZXJuYWxfQUJJRmxhZ3NfdjApOwor ICAgIH0KICAgZWxzZSBpZiAoQ09OU1RfU1RSTkVRIChuYW1lLCAiLmRlYnVn XyIpCiAgICAgICAgICAgIHx8IENPTlNUX1NUUk5FUSAobmFtZSwgIi56ZGVi dWdfIikpCiAgICAgewpAQCAtOTAyNSw3ICs5MTAxLDcgQEAgYmZkX2Jvb2xl YW4KIF9iZmRfbWlwc19lbGZfYWx3YXlzX3NpemVfc2VjdGlvbnMgKGJmZCAq b3V0cHV0X2JmZCwKIAkJCQkgICAgc3RydWN0IGJmZF9saW5rX2luZm8gKmlu Zm8pCiB7Ci0gIGFzZWN0aW9uICpyaTsKKyAgYXNlY3Rpb24gKnNlY3Q7CiAg IHN0cnVjdCBtaXBzX2VsZl9saW5rX2hhc2hfdGFibGUgKmh0YWI7CiAgIHN0 cnVjdCBtaXBzX2h0YWJfdHJhdmVyc2VfaW5mbyBodGk7CiAKQEAgLTkwMzMs OSArOTEwOSwxNCBAQCBfYmZkX21pcHNfZWxmX2Fsd2F5c19zaXplX3NlY3Rp b25zIChiZmQgKm91dHB1dF9iZmQsCiAgIEJGRF9BU1NFUlQgKGh0YWIgIT0g TlVMTCk7CiAKICAgLyogVGhlIC5yZWdpbmZvIHNlY3Rpb24gaGFzIGEgZml4 ZWQgc2l6ZS4gICovCi0gIHJpID0gYmZkX2dldF9zZWN0aW9uX2J5X25hbWUg KG91dHB1dF9iZmQsICIucmVnaW5mbyIpOwotICBpZiAocmkgIT0gTlVMTCkK LSAgICBiZmRfc2V0X3NlY3Rpb25fc2l6ZSAob3V0cHV0X2JmZCwgcmksIHNp emVvZiAoRWxmMzJfRXh0ZXJuYWxfUmVnSW5mbykpOworICBzZWN0ID0gYmZk X2dldF9zZWN0aW9uX2J5X25hbWUgKG91dHB1dF9iZmQsICIucmVnaW5mbyIp OworICBpZiAoc2VjdCAhPSBOVUxMKQorICAgIGJmZF9zZXRfc2VjdGlvbl9z aXplIChvdXRwdXRfYmZkLCBzZWN0LCBzaXplb2YgKEVsZjMyX0V4dGVybmFs X1JlZ0luZm8pKTsKKworICAvKiBUaGUgLk1JUFMuYWJpZmxhZ3Mgc2VjdGlv biBoYXMgYSBmaXhlZCBzaXplLiAgKi8KKyAgc2VjdCA9IGJmZF9nZXRfc2Vj dGlvbl9ieV9uYW1lIChvdXRwdXRfYmZkLCAiLk1JUFMuYWJpZmxhZ3MiKTsK KyAgaWYgKHNlY3QgIT0gTlVMTCkKKyAgICBiZmRfc2V0X3NlY3Rpb25fc2l6 ZSAob3V0cHV0X2JmZCwgc2VjdCwgc2l6ZW9mIChFbGZfRXh0ZXJuYWxfQUJJ RmxhZ3NfdjApKTsKIAogICBodGkuaW5mbyA9IGluZm87CiAgIGh0aS5vdXRw dXRfYmZkID0gb3V0cHV0X2JmZDsKQEAgLTExNzgyLDYgKzExODYzLDEwIEBA IF9iZmRfbWlwc19lbGZfYWRkaXRpb25hbF9wcm9ncmFtX2hlYWRlcnMgKGJm ZCAqYWJmZCwKICAgaWYgKHMgJiYgKHMtPmZsYWdzICYgU0VDX0xPQUQpKQog ICAgICsrcmV0OwogCisgIC8qIFNlZSBpZiB3ZSBuZWVkIGEgUFRfTUlQU19B QklGTEFHUyBzZWdtZW50LiAgKi8KKyAgaWYgKGJmZF9nZXRfc2VjdGlvbl9i eV9uYW1lIChhYmZkLCAiLk1JUFMuYWJpZmxhZ3MiKSkKKyAgICArK3JldDsK KwogICAvKiBTZWUgaWYgd2UgbmVlZCBhIFBUX01JUFNfT1BUSU9OUyBzZWdt ZW50LiAgKi8KICAgaWYgKElSSVhfQ09NUEFUIChhYmZkKSA9PSBpY3RfaXJp eDYKICAgICAgICYmIGJmZF9nZXRfc2VjdGlvbl9ieV9uYW1lIChhYmZkLApA QCAtMTE4NDQsNiArMTE5MjksMzcgQEAgX2JmZF9taXBzX2VsZl9tb2RpZnlf c2VnbWVudF9tYXAgKGJmZCAqYWJmZCwKIAl9CiAgICAgfQogCisgIC8qIElm IHRoZXJlIGlzIGEgLk1JUFMuYWJpZmxhZ3Mgc2VjdGlvbiwgd2UgbmVlZCBh IFBUX01JUFNfQUJJRkxBR1MKKyAgICAgc2VnbWVudC4gICovCisgIHMgPSBi ZmRfZ2V0X3NlY3Rpb25fYnlfbmFtZSAoYWJmZCwgIi5NSVBTLmFiaWZsYWdz Iik7CisgIGlmIChzICE9IE5VTEwgJiYgKHMtPmZsYWdzICYgU0VDX0xPQUQp ICE9IDApCisgICAgeworICAgICAgZm9yIChtID0gZWxmX3NlZ19tYXAgKGFi ZmQpOyBtICE9IE5VTEw7IG0gPSBtLT5uZXh0KQorCWlmIChtLT5wX3R5cGUg PT0gUFRfTUlQU19BQklGTEFHUykKKwkgIGJyZWFrOworICAgICAgaWYgKG0g PT0gTlVMTCkKKwl7CisJICBhbXQgPSBzaXplb2YgKm07CisJICBtID0gYmZk X3phbGxvYyAoYWJmZCwgYW10KTsKKwkgIGlmIChtID09IE5VTEwpCisJICAg IHJldHVybiBGQUxTRTsKKworCSAgbS0+cF90eXBlID0gUFRfTUlQU19BQklG TEFHUzsKKwkgIG0tPmNvdW50ID0gMTsKKwkgIG0tPnNlY3Rpb25zWzBdID0g czsKKworCSAgLyogV2Ugd2FudCB0byBwdXQgaXQgYWZ0ZXIgdGhlIFBIRFIg YW5kIElOVEVSUCBzZWdtZW50cy4gICovCisJICBwbSA9ICZlbGZfc2VnX21h cCAoYWJmZCk7CisJICB3aGlsZSAoKnBtICE9IE5VTEwKKwkJICYmICgoKnBt KS0+cF90eXBlID09IFBUX1BIRFIKKwkJICAgICB8fCAoKnBtKS0+cF90eXBl ID09IFBUX0lOVEVSUCkpCisJICAgIHBtID0gJigqcG0pLT5uZXh0OworCisJ ICBtLT5uZXh0ID0gKnBtOworCSAgKnBtID0gbTsKKwl9CisgICAgfQorCiAg IC8qIEZvciBJUklYIDYsIHdlIGRvbid0IGhhdmUgLm1kZWJ1ZyBzZWN0aW9u cywgbm9yIGRvZXMgYW55dGhpbmcgYnV0CiAgICAgIC5keW5hbWljIGVuZCB1 cCBpbiBQVF9EWU5BTUlDLiAgSG93ZXZlciwgd2UgZG8gaGF2ZSB0byBpbnNl cnQgYQogICAgICBQVF9NSVBTX09QVElPTlMgc2VnbWVudCBpbW1lZGlhdGVs eSBmb2xsb3dpbmcgdGhlIHByb2dyYW0gaGVhZGVyCkBAIC0xMjEyNyw2ICsx MjI0MywzNiBAQCBfYmZkX21pcHNfZWxmX2djX3N3ZWVwX2hvb2sgKGJmZCAq YWJmZCBBVFRSSUJVVEVfVU5VU0VELAogCiAgIHJldHVybiBUUlVFOwogfQor CisvKiBQcmV2ZW50IC5NSVBTLmFiaWZsYWdzIGZyb20gYmVpbmcgZGlzY2Fy ZGVkIHdpdGggLS1nYy1zZWN0aW9ucy4gICovCisKK2JmZF9ib29sZWFuCitf YmZkX21pcHNfZWxmX2djX21hcmtfZXh0cmFfc2VjdGlvbnMgKHN0cnVjdCBi ZmRfbGlua19pbmZvICppbmZvLAorCQkJCSAgICAgIGVsZl9nY19tYXJrX2hv b2tfZm4gZ2NfbWFya19ob29rKQoreworICBiZmQgKnN1YjsKKworICBfYmZk X2VsZl9nY19tYXJrX2V4dHJhX3NlY3Rpb25zIChpbmZvLCBnY19tYXJrX2hv b2spOworCisgIGZvciAoc3ViID0gaW5mby0+aW5wdXRfYmZkczsgc3ViICE9 IE5VTEw7IHN1YiA9IHN1Yi0+bGluay5uZXh0KQorICAgIHsKKyAgICAgIGFz ZWN0aW9uICpvOworCisgICAgICBpZiAoISBpc19taXBzX2VsZiAoc3ViKSkK Kwljb250aW51ZTsKKworICAgICAgZm9yIChvID0gc3ViLT5zZWN0aW9uczsg byAhPSBOVUxMOyBvID0gby0+bmV4dCkKKwlpZiAoIW8tPmdjX21hcmsKKwkg ICAgJiYgTUlQU19FTEZfQUJJRkxBR1NfU0VDVElPTl9OQU1FX1AKKwkJIChi ZmRfZ2V0X3NlY3Rpb25fbmFtZSAoc3ViLCBvKSkpCisJICB7CisJICAgIGlm ICghX2JmZF9lbGZfZ2NfbWFyayAoaW5mbywgbywgZ2NfbWFya19ob29rKSkK KwkgICAgICByZXR1cm4gRkFMU0U7CisJICB9CisgICAgfQorCisgIHJldHVy biBUUlVFOworfQogDAogLyogQ29weSBkYXRhIGZyb20gYSBNSVBTIEVMRiBp bmRpcmVjdCBzeW1ib2wgdG8gaXRzIGRpcmVjdCBzeW1ib2wsCiAgICBoaWRp bmcgdGhlIG9sZCBpbmRpcmVjdCBzeW1ib2wuICBQcm9jZXNzIGFkZGl0aW9u YWwgcmVsb2NhdGlvbgpAQCAtMTM1NzcsNiArMTM3MjMsMTcwIEBAIF9iZmRf bWlwc19lbGZfaW5zbjMyIChzdHJ1Y3QgYmZkX2xpbmtfaW5mbyAqaW5mbywg YmZkX2Jvb2xlYW4gb24pCiAgIG1pcHNfZWxmX2hhc2hfdGFibGUgKGluZm8p LT5pbnNuMzIgPSBvbjsKIH0KIAwKKy8qIFJldHVybiB0aGUgLk1JUFMuYWJp ZmxhZ3MgdmFsdWUgcmVwcmVzZW50aW5nIGVhY2ggSVNBIEV4dGVuc2lvbi4g ICovCisKK3Vuc2lnbmVkIGludAorYmZkX21pcHNfaXNhX2V4dCAoYmZkICph YmZkKQoreworICBzd2l0Y2ggKGJmZF9nZXRfbWFjaCAoYWJmZCkpCisgICAg eworICAgIGNhc2UgYmZkX21hY2hfbWlwczM5MDA6CisgICAgICByZXR1cm4g QUZMX0VYVF8zOTAwOworICAgIGNhc2UgYmZkX21hY2hfbWlwczQwMTA6Cisg ICAgICByZXR1cm4gQUZMX0VYVF80MDEwOworICAgIGNhc2UgYmZkX21hY2hf bWlwczQxMDA6CisgICAgICByZXR1cm4gQUZMX0VYVF80MTAwOworICAgIGNh c2UgYmZkX21hY2hfbWlwczQxMTE6CisgICAgICByZXR1cm4gQUZMX0VYVF80 MTExOworICAgIGNhc2UgYmZkX21hY2hfbWlwczQxMjA6CisgICAgICByZXR1 cm4gQUZMX0VYVF80MTIwOworICAgIGNhc2UgYmZkX21hY2hfbWlwczQ2NTA6 CisgICAgICByZXR1cm4gQUZMX0VYVF80NjUwOworICAgIGNhc2UgYmZkX21h Y2hfbWlwczU0MDA6CisgICAgICByZXR1cm4gQUZMX0VYVF81NDAwOworICAg IGNhc2UgYmZkX21hY2hfbWlwczU1MDA6CisgICAgICByZXR1cm4gQUZMX0VY VF81NTAwOworICAgIGNhc2UgYmZkX21hY2hfbWlwczU5MDA6CisgICAgICBy ZXR1cm4gQUZMX0VYVF81OTAwOworICAgIGNhc2UgYmZkX21hY2hfbWlwczEw MDAwOgorICAgICAgcmV0dXJuIEFGTF9FWFRfMTAwMDA7CisgICAgY2FzZSBi ZmRfbWFjaF9taXBzX2xvb25nc29uXzJlOgorICAgICAgcmV0dXJuIEFGTF9F WFRfTE9PTkdTT05fMkU7CisgICAgY2FzZSBiZmRfbWFjaF9taXBzX2xvb25n c29uXzJmOgorICAgICAgcmV0dXJuIEFGTF9FWFRfTE9PTkdTT05fMkY7Cisg ICAgY2FzZSBiZmRfbWFjaF9taXBzX2xvb25nc29uXzNhOgorICAgICAgcmV0 dXJuIEFGTF9FWFRfTE9PTkdTT05fM0E7CisgICAgY2FzZSBiZmRfbWFjaF9t aXBzX3NiMToKKyAgICAgIHJldHVybiBBRkxfRVhUX1NCMTsKKyAgICBjYXNl IGJmZF9tYWNoX21pcHNfb2N0ZW9uOgorICAgICAgcmV0dXJuIEFGTF9FWFRf T0NURU9OOworICAgIGNhc2UgYmZkX21hY2hfbWlwc19vY3Rlb25wOgorICAg ICAgcmV0dXJuIEFGTF9FWFRfT0NURU9OUDsKKyAgICBjYXNlIGJmZF9tYWNo X21pcHNfb2N0ZW9uMjoKKyAgICAgIHJldHVybiBBRkxfRVhUX09DVEVPTjI7 CisgICAgY2FzZSBiZmRfbWFjaF9taXBzX3hscjoKKyAgICAgIHJldHVybiBB RkxfRVhUX1hMUjsKKyAgICB9CisgIHJldHVybiAwOworfQorCisvKiBVcGRh dGUgdGhlIGlzYV9sZXZlbCwgaXNhX3JldiwgaXNhX2V4dCBmaWVsZHMgb2Yg YWJpZmxhZ3MuICAqLworCitzdGF0aWMgdm9pZAordXBkYXRlX21pcHNfYWJp ZmxhZ3NfaXNhIChiZmQgKmFiZmQsIEVsZl9JbnRlcm5hbF9BQklGbGFnc192 MCAqYWJpZmxhZ3MpCit7CisgIHN3aXRjaCAoZWxmX2VsZmhlYWRlciAoYWJm ZCktPmVfZmxhZ3MgJiBFRl9NSVBTX0FSQ0gpCisgICAgeworICAgIGNhc2Ug RV9NSVBTX0FSQ0hfMToKKyAgICAgIGFiaWZsYWdzLT5pc2FfbGV2ZWwgPSAx OworICAgICAgYWJpZmxhZ3MtPmlzYV9yZXYgPSAwOworICAgICAgYnJlYWs7 CisgICAgY2FzZSBFX01JUFNfQVJDSF8yOgorICAgICAgYWJpZmxhZ3MtPmlz YV9sZXZlbCA9IDI7CisgICAgICBhYmlmbGFncy0+aXNhX3JldiA9IDA7Cisg ICAgICBicmVhazsKKyAgICBjYXNlIEVfTUlQU19BUkNIXzM6CisgICAgICBh YmlmbGFncy0+aXNhX2xldmVsID0gMzsKKyAgICAgIGFiaWZsYWdzLT5pc2Ff cmV2ID0gMDsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgRV9NSVBTX0FSQ0hf NDoKKyAgICAgIGFiaWZsYWdzLT5pc2FfbGV2ZWwgPSA0OworICAgICAgYWJp ZmxhZ3MtPmlzYV9yZXYgPSAwOworICAgICAgYnJlYWs7CisgICAgY2FzZSBF X01JUFNfQVJDSF81OgorICAgICAgYWJpZmxhZ3MtPmlzYV9sZXZlbCA9IDU7 CisgICAgICBhYmlmbGFncy0+aXNhX3JldiA9IDA7CisgICAgICBicmVhazsK KyAgICBjYXNlIEVfTUlQU19BUkNIXzMyOgorICAgICAgYWJpZmxhZ3MtPmlz YV9sZXZlbCA9IDMyOworICAgICAgYWJpZmxhZ3MtPmlzYV9yZXYgPSAxOwor ICAgICAgYnJlYWs7CisgICAgY2FzZSBFX01JUFNfQVJDSF8zMlIyOgorICAg ICAgYWJpZmxhZ3MtPmlzYV9sZXZlbCA9IDMyOworICAgICAgLyogSGFuZGxl IE1JUFMzMnIzIGFuZCBNSVBTMzJyNSB3aGljaCBkbyBub3QgaGF2ZSBhIGhl YWRlciBmbGFnLiAgKi8KKyAgICAgIGlmIChhYmlmbGFncy0+aXNhX3JldiA8 IDIpCisJYWJpZmxhZ3MtPmlzYV9yZXYgPSAyOworICAgICAgYnJlYWs7Cisg ICAgY2FzZSBFX01JUFNfQVJDSF82NDoKKyAgICAgIGFiaWZsYWdzLT5pc2Ff bGV2ZWwgPSA2NDsKKyAgICAgIGFiaWZsYWdzLT5pc2FfcmV2ID0gMTsKKyAg ICAgIGJyZWFrOworICAgIGNhc2UgRV9NSVBTX0FSQ0hfNjRSMjoKKyAgICAg IC8qIEhhbmRsZSBNSVBTNjRyMyBhbmQgTUlQUzY0cjUgd2hpY2ggZG8gbm90 IGhhdmUgYSBoZWFkZXIgZmxhZy4gICovCisgICAgICBhYmlmbGFncy0+aXNh X2xldmVsID0gNjQ7CisgICAgICBpZiAoYWJpZmxhZ3MtPmlzYV9yZXYgPCAy KQorCWFiaWZsYWdzLT5pc2FfcmV2ID0gMjsKKyAgICAgIGJyZWFrOworICAg IGRlZmF1bHQ6CisgICAgICAoKl9iZmRfZXJyb3JfaGFuZGxlcikKKwkoXygi JUI6IFVua25vd24gYXJjaGl0ZWN0dXJlICVzIiksCisJIGFiZmQsIGJmZF9w cmludGFibGVfbmFtZSAoYWJmZCkpOworICAgIH0KKworICBhYmlmbGFncy0+ aXNhX2V4dCA9IGJmZF9taXBzX2lzYV9leHQgKGFiZmQpOworfQorCisvKiBS ZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gRUxGIGhlYWRlciBmbGFncyBkZXNj cmliZSBhIDMyLWJpdCBiaW5hcnkuICAqLworCitzdGF0aWMgYmZkX2Jvb2xl YW4KK21pcHNfMzJiaXRfZmxhZ3NfcCAoZmxhZ3dvcmQgZmxhZ3MpCit7Cisg IHJldHVybiAoKGZsYWdzICYgRUZfTUlQU18zMkJJVE1PREUpICE9IDAKKwkg IHx8IChmbGFncyAmIEVGX01JUFNfQUJJKSA9PSBFX01JUFNfQUJJX08zMgor CSAgfHwgKGZsYWdzICYgRUZfTUlQU19BQkkpID09IEVfTUlQU19BQklfRUFC STMyCisJICB8fCAoZmxhZ3MgJiBFRl9NSVBTX0FSQ0gpID09IEVfTUlQU19B UkNIXzEKKwkgIHx8IChmbGFncyAmIEVGX01JUFNfQVJDSCkgPT0gRV9NSVBT X0FSQ0hfMgorCSAgfHwgKGZsYWdzICYgRUZfTUlQU19BUkNIKSA9PSBFX01J UFNfQVJDSF8zMgorCSAgfHwgKGZsYWdzICYgRUZfTUlQU19BUkNIKSA9PSBF X01JUFNfQVJDSF8zMlIyKTsKK30KKworLyogSW5mZXIgdGhlIGNvbnRlbnQg b2YgdGhlIEFCSSBmbGFncyBiYXNlZCBvbiB0aGUgZWxmIGhlYWRlci4gICov CisKK3N0YXRpYyB2b2lkCitpbmZlcl9taXBzX2FiaWZsYWdzIChiZmQgKmFi ZmQsIEVsZl9JbnRlcm5hbF9BQklGbGFnc192MCogYWJpZmxhZ3MpCit7Cisg IG9ial9hdHRyaWJ1dGUgKmluX2F0dHI7CisKKyAgbWVtc2V0IChhYmlmbGFn cywgMCwgc2l6ZW9mIChFbGZfSW50ZXJuYWxfQUJJRmxhZ3NfdjApKTsKKyAg dXBkYXRlX21pcHNfYWJpZmxhZ3NfaXNhIChhYmZkLCBhYmlmbGFncyk7CisK KyAgaWYgKG1pcHNfMzJiaXRfZmxhZ3NfcCAoZWxmX2VsZmhlYWRlciAoYWJm ZCktPmVfZmxhZ3MpKQorICAgIGFiaWZsYWdzLT5ncHJfc2l6ZSA9IEFGTF9S RUdfMzI7CisgIGVsc2UKKyAgICBhYmlmbGFncy0+Z3ByX3NpemUgPSBBRkxf UkVHXzY0OworCisgIGFiaWZsYWdzLT5jcHIxX3NpemUgPSBBRkxfUkVHX05P TkU7CisKKyAgaW5fYXR0ciA9IGVsZl9rbm93bl9vYmpfYXR0cmlidXRlcyAo YWJmZClbT0JKX0FUVFJfR05VXTsKKyAgYWJpZmxhZ3MtPmZwX2FiaSA9IGlu X2F0dHJbVGFnX0dOVV9NSVBTX0FCSV9GUF0uaTsKKworICBpZiAoYWJpZmxh Z3MtPmZwX2FiaSA9PSBWYWxfR05VX01JUFNfQUJJX0ZQX1NJTkdMRQorICAg ICAgfHwgYWJpZmxhZ3MtPmZwX2FiaSA9PSBWYWxfR05VX01JUFNfQUJJX0ZQ X1hYCisgICAgICB8fCAoYWJpZmxhZ3MtPmZwX2FiaSA9PSBWYWxfR05VX01J UFNfQUJJX0ZQX0RPVUJMRQorCSAgJiYgYWJpZmxhZ3MtPmdwcl9zaXplID09 IEFGTF9SRUdfMzIpKQorICAgIGFiaWZsYWdzLT5jcHIxX3NpemUgPSBBRkxf UkVHXzMyOworICBlbHNlIGlmIChhYmlmbGFncy0+ZnBfYWJpID09IFZhbF9H TlVfTUlQU19BQklfRlBfRE9VQkxFCisJICAgfHwgYWJpZmxhZ3MtPmZwX2Fi aSA9PSBWYWxfR05VX01JUFNfQUJJX0ZQXzY0CisJICAgfHwgYWJpZmxhZ3Mt PmZwX2FiaSA9PSBWYWxfR05VX01JUFNfQUJJX0ZQXzY0QSkKKyAgICBhYmlm bGFncy0+Y3ByMV9zaXplID0gQUZMX1JFR182NDsKKworICBhYmlmbGFncy0+ Y3ByMl9zaXplID0gQUZMX1JFR19OT05FOworCisgIGlmIChlbGZfZWxmaGVh ZGVyIChhYmZkKS0+ZV9mbGFncyAmIEVGX01JUFNfQVJDSF9BU0VfTURNWCkK KyAgICBhYmlmbGFncy0+YXNlcyB8PSBBRkxfQVNFX01ETVg7CisgIGlmIChl bGZfZWxmaGVhZGVyIChhYmZkKS0+ZV9mbGFncyAmIEVGX01JUFNfQVJDSF9B U0VfTTE2KQorICAgIGFiaWZsYWdzLT5hc2VzIHw9IEFGTF9BU0VfTUlQUzE2 OworICBpZiAoZWxmX2VsZmhlYWRlciAoYWJmZCktPmVfZmxhZ3MgJiBFRl9N SVBTX0FSQ0hfQVNFX01JQ1JPTUlQUykKKyAgICBhYmlmbGFncy0+YXNlcyB8 PSBBRkxfQVNFX01JQ1JPTUlQUzsKKworICBpZiAoYWJpZmxhZ3MtPmZwX2Fi aSAhPSBWYWxfR05VX01JUFNfQUJJX0ZQX0FOWQorICAgICAgJiYgYWJpZmxh Z3MtPmZwX2FiaSAhPSBWYWxfR05VX01JUFNfQUJJX0ZQX1NPRlQKKyAgICAg ICYmIGFiaWZsYWdzLT5mcF9hYmkgIT0gVmFsX0dOVV9NSVBTX0FCSV9GUF82 NEEKKyAgICAgICYmIGFiaWZsYWdzLT5pc2FfbGV2ZWwgPj0gMzIKKyAgICAg ICYmIGFiaWZsYWdzLT5pc2FfZXh0ICE9IEFGTF9FWFRfTE9PTkdTT05fM0Ep CisgICAgYWJpZmxhZ3MtPmZsYWdzMSB8PSBBRkxfRkxBR1MxX09ERFNQUkVH OworfQorCiAvKiBXZSBuZWVkIHRvIHVzZSBhIHNwZWNpYWwgbGluayByb3V0 aW5lIHRvIGhhbmRsZSB0aGUgLnJlZ2luZm8gYW5kCiAgICB0aGUgLm1kZWJ1 ZyBzZWN0aW9ucy4gIFdlIG5lZWQgdG8gbWVyZ2UgYWxsIGluc3RhbmNlcyBv ZiB0aGVzZQogICAgc2VjdGlvbnMgdG9nZXRoZXIsIG5vdCB3cml0ZSB0aGVt IGFsbCBvdXQgc2VxdWVudGlhbGx5LiAgKi8KQEAgLTEzNTg3LDcgKzEzODk3 LDcgQEAgX2JmZF9taXBzX2VsZl9maW5hbF9saW5rIChiZmQgKmFiZmQsIHN0 cnVjdCBiZmRfbGlua19pbmZvICppbmZvKQogICBhc2VjdGlvbiAqbzsKICAg c3RydWN0IGJmZF9saW5rX29yZGVyICpwOwogICBhc2VjdGlvbiAqcmVnaW5m b19zZWMsICptZGVidWdfc2VjLCAqZ3B0YWJfZGF0YV9zZWMsICpncHRhYl9i c3Nfc2VjOwotICBhc2VjdGlvbiAqcnRwcm9jX3NlYzsKKyAgYXNlY3Rpb24g KnJ0cHJvY19zZWMsICphYmlmbGFnc19zZWM7CiAgIEVsZjMyX1JlZ0luZm8g cmVnaW5mbzsKICAgc3RydWN0IGVjb2ZmX2RlYnVnX2luZm8gZGVidWc7CiAg IHN0cnVjdCBtaXBzX2h0YWJfdHJhdmVyc2VfaW5mbyBodGk7CkBAIC0xMzY2 OSwxMiArMTM5NzksNDYgQEAgX2JmZF9taXBzX2VsZl9maW5hbF9saW5rIChi ZmQgKmFiZmQsIHN0cnVjdCBiZmRfbGlua19pbmZvICppbmZvKQogCiAgIC8q IEdvIHRocm91Z2ggdGhlIHNlY3Rpb25zIGFuZCBjb2xsZWN0IHRoZSAucmVn aW5mbyBhbmQgLm1kZWJ1ZwogICAgICBpbmZvcm1hdGlvbi4gICovCisgIGFi aWZsYWdzX3NlYyA9IE5VTEw7CiAgIHJlZ2luZm9fc2VjID0gTlVMTDsKICAg bWRlYnVnX3NlYyA9IE5VTEw7CiAgIGdwdGFiX2RhdGFfc2VjID0gTlVMTDsK ICAgZ3B0YWJfYnNzX3NlYyA9IE5VTEw7CiAgIGZvciAobyA9IGFiZmQtPnNl Y3Rpb25zOyBvICE9IE5VTEw7IG8gPSBvLT5uZXh0KQogICAgIHsKKyAgICAg IGlmIChzdHJjbXAgKG8tPm5hbWUsICIuTUlQUy5hYmlmbGFncyIpID09IDAp CisJeworCSAgLyogV2UgaGF2ZSBmb3VuZCB0aGUgLk1JUFMuYWJpZmxhZ3Mg c2VjdGlvbiBpbiB0aGUgb3V0cHV0IGZpbGUuCisJICAgICBMb29rIHRocm91 Z2ggYWxsIHRoZSBsaW5rX29yZGVycyBjb21wcmlzaW5nIGl0IGFuZCByZW1v dmUgdGhlbS4KKwkgICAgIFRoZSBkYXRhIGlzIG1lcmdlZCBpbiBfYmZkX21p cHNfZWxmX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEuICAqLworCSAgZm9yIChw ID0gby0+bWFwX2hlYWQubGlua19vcmRlcjsgcCAhPSBOVUxMOyBwID0gcC0+ bmV4dCkKKwkgICAgeworCSAgICAgIGFzZWN0aW9uICppbnB1dF9zZWN0aW9u OworCisJICAgICAgaWYgKHAtPnR5cGUgIT0gYmZkX2luZGlyZWN0X2xpbmtf b3JkZXIpCisJCXsKKwkJICBpZiAocC0+dHlwZSA9PSBiZmRfZGF0YV9saW5r X29yZGVyKQorCQkgICAgY29udGludWU7CisJCSAgYWJvcnQgKCk7CisJCX0K KworCSAgICAgIGlucHV0X3NlY3Rpb24gPSBwLT51LmluZGlyZWN0LnNlY3Rp b247CisKKwkgICAgICAvKiBIYWNrOiByZXNldCB0aGUgU0VDX0hBU19DT05U RU5UUyBmbGFnIHNvIHRoYXQKKwkJIGVsZl9saW5rX2lucHV0X2JmZCBpZ25v cmVzIHRoaXMgc2VjdGlvbi4gICovCisJICAgICAgaW5wdXRfc2VjdGlvbi0+ ZmxhZ3MgJj0gflNFQ19IQVNfQ09OVEVOVFM7CisJICAgIH0KKworCSAgLyog U2l6ZSBoYXMgYmVlbiBzZXQgaW4gX2JmZF9taXBzX2VsZl9hbHdheXNfc2l6 ZV9zZWN0aW9ucy4gICovCisJICBCRkRfQVNTRVJUKG8tPnNpemUgPT0gc2l6 ZW9mIChFbGZfRXh0ZXJuYWxfQUJJRmxhZ3NfdjApKTsKKworCSAgLyogU2tp cCB0aGlzIHNlY3Rpb24gbGF0ZXIgb24gKEkgZG9uJ3QgdGhpbmsgdGhpcyBj dXJyZW50bHkKKwkgICAgIG1hdHRlcnMsIGJ1dCBzb21lZGF5IGl0IG1pZ2h0 KS4gICovCisJICBvLT5tYXBfaGVhZC5saW5rX29yZGVyID0gTlVMTDsKKwor CSAgYWJpZmxhZ3Nfc2VjID0gbzsKKwl9CisKICAgICAgIGlmIChzdHJjbXAg KG8tPm5hbWUsICIucmVnaW5mbyIpID09IDApCiAJewogCSAgbWVtc2V0ICgm cmVnaW5mbywgMCwgc2l6ZW9mIHJlZ2luZm8pOwpAQCAtMTQxNTksNiArMTQ1 MDMsMjQgQEAgX2JmZF9taXBzX2VsZl9maW5hbF9saW5rIChiZmQgKmFiZmQs IHN0cnVjdCBiZmRfbGlua19pbmZvICppbmZvKQogCiAgIC8qIE5vdyB3cml0 ZSBvdXQgdGhlIGNvbXB1dGVkIHNlY3Rpb25zLiAgKi8KIAorICBpZiAoYWJp ZmxhZ3Nfc2VjICE9IE5VTEwpCisgICAgeworICAgICAgRWxmX0V4dGVybmFs X0FCSUZsYWdzX3YwIGV4dDsKKyAgICAgIEVsZl9JbnRlcm5hbF9BQklGbGFn c192MCAqYWJpZmxhZ3M7CisKKyAgICAgIGFiaWZsYWdzID0gJm1pcHNfZWxm X3RkYXRhIChhYmZkKS0+YWJpZmxhZ3M7CisKKyAgICAgIC8qIFNldCB1cCB0 aGUgYWJpZmxhZ3MgaWYgbm8gdmFsaWQgaW5wdXQgc2VjdGlvbnMgd2VyZSBm b3VuZC4gICovCisgICAgICBpZiAoIW1pcHNfZWxmX3RkYXRhIChhYmZkKS0+ YWJpZmxhZ3NfdmFsaWQpCisJeworCSAgaW5mZXJfbWlwc19hYmlmbGFncyAo YWJmZCwgYWJpZmxhZ3MpOworCSAgbWlwc19lbGZfdGRhdGEgKGFiZmQpLT5h YmlmbGFnc192YWxpZCA9IFRSVUU7CisJfQorICAgICAgYmZkX21pcHNfZWxm X3N3YXBfYWJpZmxhZ3NfdjBfb3V0IChhYmZkLCBhYmlmbGFncywgJmV4dCk7 CisgICAgICBpZiAoISBiZmRfc2V0X3NlY3Rpb25fY29udGVudHMgKGFiZmQs IGFiaWZsYWdzX3NlYywgJmV4dCwgMCwgc2l6ZW9mIGV4dCkpCisJcmV0dXJu IEZBTFNFOworICAgIH0KKwogICBpZiAocmVnaW5mb19zZWMgIT0gTlVMTCkK ICAgICB7CiAgICAgICBFbGYzMl9FeHRlcm5hbF9SZWdJbmZvIGV4dDsKQEAg LTE0MzE2LDIxICsxNDY3OCw2IEBAIG1pcHNfbWFjaF9leHRlbmRzX3AgKHVu c2lnbmVkIGxvbmcgYmFzZSwgdW5zaWduZWQgbG9uZyBleHRlbnNpb24pCiB9 CiAKIAotLyogUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIEVMRiBoZWFkZXIg ZmxhZ3MgZGVzY3JpYmUgYSAzMi1iaXQgYmluYXJ5LiAgKi8KLQotc3RhdGlj IGJmZF9ib29sZWFuCi1taXBzXzMyYml0X2ZsYWdzX3AgKGZsYWd3b3JkIGZs YWdzKQotewotICByZXR1cm4gKChmbGFncyAmIEVGX01JUFNfMzJCSVRNT0RF KSAhPSAwCi0JICB8fCAoZmxhZ3MgJiBFRl9NSVBTX0FCSSkgPT0gRV9NSVBT X0FCSV9PMzIKLQkgIHx8IChmbGFncyAmIEVGX01JUFNfQUJJKSA9PSBFX01J UFNfQUJJX0VBQkkzMgotCSAgfHwgKGZsYWdzICYgRUZfTUlQU19BUkNIKSA9 PSBFX01JUFNfQVJDSF8xCi0JICB8fCAoZmxhZ3MgJiBFRl9NSVBTX0FSQ0gp ID09IEVfTUlQU19BUkNIXzIKLQkgIHx8IChmbGFncyAmIEVGX01JUFNfQVJD SCkgPT0gRV9NSVBTX0FSQ0hfMzIKLQkgIHx8IChmbGFncyAmIEVGX01JUFNf QVJDSCkgPT0gRV9NSVBTX0FSQ0hfMzJSMik7Ci19Ci0KLQogLyogTWVyZ2Ug b2JqZWN0IGF0dHJpYnV0ZXMgZnJvbSBJQkZEIGludG8gT0JGRC4gIFJhaXNl IGFuIGVycm9yIGlmCiAgICB0aGVyZSBhcmUgY29uZmxpY3RpbmcgYXR0cmli dXRlcy4gICovCiBzdGF0aWMgYmZkX2Jvb2xlYW4KQEAgLTE0Mzc1LDYgKzE0 NzIyLDI4IEBAIG1pcHNfZWxmX21lcmdlX29ial9hdHRyaWJ1dGVzIChiZmQg KmliZmQsIGJmZCAqb2JmZCkKICAgICAgIG91dF9hdHRyW1RhZ19HTlVfTUlQ U19BQklfRlBdLnR5cGUgPSAxOwogICAgICAgaWYgKG91dF9mcCA9PSBWYWxf R05VX01JUFNfQUJJX0ZQX0FOWSkKIAlvdXRfYXR0cltUYWdfR05VX01JUFNf QUJJX0ZQXS5pID0gaW5fZnA7CisgICAgICBlbHNlIGlmIChvdXRfZnAgPT0g VmFsX0dOVV9NSVBTX0FCSV9GUF9YWAorCSAgICAgICAmJiAoaW5fZnAgPT0g VmFsX0dOVV9NSVBTX0FCSV9GUF9ET1VCTEUKKwkJICAgfHwgaW5fZnAgPT0g VmFsX0dOVV9NSVBTX0FCSV9GUF82NAorCQkgICB8fCBpbl9mcCA9PSBWYWxf R05VX01JUFNfQUJJX0ZQXzY0QSkpCisJeworCSAgbWlwc19lbGZfdGRhdGEg KG9iZmQpLT5hYmlfZnBfYmZkID0gaWJmZDsKKwkgIG91dF9hdHRyW1RhZ19H TlVfTUlQU19BQklfRlBdLmkgPSBpbl9hdHRyW1RhZ19HTlVfTUlQU19BQklf RlBdLmk7CisJfQorICAgICAgZWxzZSBpZiAoaW5fZnAgPT0gVmFsX0dOVV9N SVBTX0FCSV9GUF9YWAorCSAgICAgICAmJiAob3V0X2ZwID09IFZhbF9HTlVf TUlQU19BQklfRlBfRE9VQkxFCisJCSAgIHx8IG91dF9mcCA9PSBWYWxfR05V X01JUFNfQUJJX0ZQXzY0CisJCSAgIHx8IG91dF9mcCA9PSBWYWxfR05VX01J UFNfQUJJX0ZQXzY0QSkpCisJLyogS2VlcCB0aGUgY3VycmVudCBzZXR0aW5n LiAgKi87CisgICAgICBlbHNlIGlmIChvdXRfZnAgPT0gVmFsX0dOVV9NSVBT X0FCSV9GUF82NEEKKwkgICAgICAgJiYgaW5fZnAgPT0gVmFsX0dOVV9NSVBT X0FCSV9GUF82NCkKKwl7CisJICBtaXBzX2VsZl90ZGF0YSAob2JmZCktPmFi aV9mcF9iZmQgPSBpYmZkOworCSAgb3V0X2F0dHJbVGFnX0dOVV9NSVBTX0FC SV9GUF0uaSA9IGluX2F0dHJbVGFnX0dOVV9NSVBTX0FCSV9GUF0uaTsKKwl9 CisgICAgICBlbHNlIGlmIChpbl9mcCA9PSBWYWxfR05VX01JUFNfQUJJX0ZQ XzY0QQorCSAgICAgICAmJiBvdXRfZnAgPT0gVmFsX0dOVV9NSVBTX0FCSV9G UF82NCkKKwkvKiBLZWVwIHRoZSBjdXJyZW50IHNldHRpbmcuICAqLzsKICAg ICAgIGVsc2UgaWYgKGluX2ZwICE9IFZhbF9HTlVfTUlQU19BQklfRlBfQU5Z KQogCXsKIAkgIGNvbnN0IGNoYXIgKm91dF9zdHJpbmcsICppbl9zdHJpbmc7 CkBAIC0xNDQ3MSw2ICsxNDg0MCw3IEBAIF9iZmRfbWlwc19lbGZfbWVyZ2Vf cHJpdmF0ZV9iZmRfZGF0YSAoYmZkICppYmZkLCBiZmQgKm9iZmQpCiAgIGJm ZF9ib29sZWFuIG9rOwogICBiZmRfYm9vbGVhbiBudWxsX2lucHV0X2JmZCA9 IFRSVUU7CiAgIGFzZWN0aW9uICpzZWM7CisgIG9ial9hdHRyaWJ1dGUgKm91 dF9hdHRyOwogCiAgIC8qIENoZWNrIGlmIHdlIGhhdmUgdGhlIHNhbWUgZW5k aWFubmVzcy4gICovCiAgIGlmICghIF9iZmRfZ2VuZXJpY192ZXJpZnlfZW5k aWFuX21hdGNoIChpYmZkLCBvYmZkKSkKQEAgLTE0NDkyLDE3ICsxNDg2Miw5 OCBAQCBfYmZkX21pcHNfZWxmX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEgKGJm ZCAqaWJmZCwgYmZkICpvYmZkKQogICAgICAgcmV0dXJuIEZBTFNFOwogICAg IH0KIAorICAvKiBTZXQgdXAgdGhlIEZQIEFCSSBhdHRyaWJ1dGUgZnJvbSB0 aGUgYWJpZmxhZ3MgaWYgaXQgaXMgbm90IGFscmVhZHkKKyAgICAgc2V0LiAg Ki8KKyAgaWYgKG1pcHNfZWxmX3RkYXRhIChpYmZkKS0+YWJpZmxhZ3NfdmFs aWQpCisgICAgeworICAgICAgb2JqX2F0dHJpYnV0ZSAqaW5fYXR0ciA9IGVs Zl9rbm93bl9vYmpfYXR0cmlidXRlcyAoaWJmZClbT0JKX0FUVFJfR05VXTsK KyAgICAgIGlmIChpbl9hdHRyW1RhZ19HTlVfTUlQU19BQklfRlBdLmkgPT0g VmFsX0dOVV9NSVBTX0FCSV9GUF9BTlkpCisgICAgICAgIGluX2F0dHJbVGFn X0dOVV9NSVBTX0FCSV9GUF0uaSA9CisJICBtaXBzX2VsZl90ZGF0YSAoaWJm ZCktPmFiaWZsYWdzLmZwX2FiaTsKKyAgICB9CisKICAgaWYgKCFtaXBzX2Vs Zl9tZXJnZV9vYmpfYXR0cmlidXRlcyAoaWJmZCwgb2JmZCkpCiAgICAgcmV0 dXJuIEZBTFNFOwogCi0gIG5ld19mbGFncyA9IGVsZl9lbGZoZWFkZXIgKGli ZmQpLT5lX2ZsYWdzOwotICBlbGZfZWxmaGVhZGVyIChvYmZkKS0+ZV9mbGFn cyB8PSBuZXdfZmxhZ3MgJiBFRl9NSVBTX05PUkVPUkRFUjsKLSAgb2xkX2Zs YWdzID0gZWxmX2VsZmhlYWRlciAob2JmZCktPmVfZmxhZ3M7CisgIC8qIENo ZWNrIHRvIHNlZSBpZiB0aGUgaW5wdXQgQkZEIGFjdHVhbGx5IGNvbnRhaW5z IGFueSBzZWN0aW9ucy4KKyAgICAgSWYgbm90LCBpdHMgZmxhZ3MgbWF5IG5v dCBoYXZlIGJlZW4gaW5pdGlhbGlzZWQgZWl0aGVyLCBidXQgaXQgY2Fubm90 CisgICAgIGFjdHVhbGx5IGNhdXNlIGFueSBpbmNvbXBhdGliaWxpdHkuICAq LworICBmb3IgKHNlYyA9IGliZmQtPnNlY3Rpb25zOyBzZWMgIT0gTlVMTDsg c2VjID0gc2VjLT5uZXh0KQorICAgIHsKKyAgICAgIC8qIElnbm9yZSBzeW50 aGV0aWMgc2VjdGlvbnMgYW5kIGVtcHR5IC50ZXh0LCAuZGF0YSBhbmQgLmJz cyBzZWN0aW9ucworCSB3aGljaCBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0 ZWQgYnkgZ2FzLiAgQWxzbyBpZ25vcmUgZmFrZQorCSAocyljb21tb24gc2Vj dGlvbnMsIHNpbmNlIG1lcmVseSBkZWZpbmluZyBhIGNvbW1vbiBzeW1ib2wg ZG9lcworCSBub3QgYWZmZWN0IGNvbXBhdGliaWxpdHkuICAqLworICAgICAg aWYgKChzZWMtPmZsYWdzICYgU0VDX0lTX0NPTU1PTikgPT0gMAorCSAgJiYg c3RyY21wIChzZWMtPm5hbWUsICIucmVnaW5mbyIpCisJICAmJiBzdHJjbXAg KHNlYy0+bmFtZSwgIi5tZGVidWciKQorCSAgJiYgKHNlYy0+c2l6ZSAhPSAw CisJICAgICAgfHwgKHN0cmNtcCAoc2VjLT5uYW1lLCAiLnRleHQiKQorCQkg ICYmIHN0cmNtcCAoc2VjLT5uYW1lLCAiLmRhdGEiKQorCQkgICYmIHN0cmNt cCAoc2VjLT5uYW1lLCAiLmJzcyIpKSkpCisJeworCSAgbnVsbF9pbnB1dF9i ZmQgPSBGQUxTRTsKKwkgIGJyZWFrOworCX0KKyAgICB9CisgIGlmIChudWxs X2lucHV0X2JmZCkKKyAgICByZXR1cm4gVFJVRTsKKworICAvKiBQb3B1bGF0 ZSBhYmlmbGFncyB1c2luZyBleGlzdGluZyBpbmZvcm1hdGlvbi4gICovCisg IGlmICghbWlwc19lbGZfdGRhdGEgKGliZmQpLT5hYmlmbGFnc192YWxpZCkK KyAgICB7CisgICAgICBpbmZlcl9taXBzX2FiaWZsYWdzIChpYmZkLCAmbWlw c19lbGZfdGRhdGEgKGliZmQpLT5hYmlmbGFncyk7CisgICAgICBtaXBzX2Vs Zl90ZGF0YSAoaWJmZCktPmFiaWZsYWdzX3ZhbGlkID0gVFJVRTsKKyAgICB9 CisgIGVsc2UKKyAgICB7CisgICAgICBFbGZfSW50ZXJuYWxfQUJJRmxhZ3Nf djAgYWJpZmxhZ3M7CisgICAgICBFbGZfSW50ZXJuYWxfQUJJRmxhZ3NfdjAg aW5fYWJpZmxhZ3M7CisgICAgICBpbmZlcl9taXBzX2FiaWZsYWdzIChpYmZk LCAmYWJpZmxhZ3MpOworICAgICAgaW5fYWJpZmxhZ3MgPSBtaXBzX2VsZl90 ZGF0YSAoaWJmZCktPmFiaWZsYWdzOworCisgICAgICAvKiBJdCBpcyBub3Qg cG9zc2libGUgdG8gaW5mZXIgdGhlIGNvcnJlY3QgSVNBIHJldmlzaW9uCisg ICAgICAgICBmb3IgUjMgb3IgUjUgc28gZHJvcCBkb3duIHRvIFIyIGZvciB0 aGUgY2hlY2tzLiAgKi8KKyAgICAgIGlmIChpbl9hYmlmbGFncy5pc2FfcmV2 ID09IDMgfHwgaW5fYWJpZmxhZ3MuaXNhX3JldiA9PSA1KQorCWluX2FiaWZs YWdzLmlzYV9yZXYgPSAyOworCisgICAgICBpZiAoaW5fYWJpZmxhZ3MuaXNh X2xldmVsICE9IGFiaWZsYWdzLmlzYV9sZXZlbAorCSAgfHwgaW5fYWJpZmxh Z3MuaXNhX3JldiAhPSBhYmlmbGFncy5pc2FfcmV2CisJICB8fCBpbl9hYmlm bGFncy5pc2FfZXh0ICE9IGFiaWZsYWdzLmlzYV9leHQpCisJKCpfYmZkX2Vy cm9yX2hhbmRsZXIpCisJICAoXygiJUI6IHdhcm5pbmc6IEluY29uc2lzdGVu dCBJU0EgYmV0d2VlbiBlX2ZsYWdzIGFuZCAiCisJICAgICAiLk1JUFMuYWJp ZmxhZ3MiKSwgaWJmZCk7CisgICAgICBpZiAoYWJpZmxhZ3MuZnBfYWJpICE9 IFZhbF9HTlVfTUlQU19BQklfRlBfQU5ZCisJICAmJiBpbl9hYmlmbGFncy5m cF9hYmkgIT0gYWJpZmxhZ3MuZnBfYWJpKQorCSgqX2JmZF9lcnJvcl9oYW5k bGVyKQorCSAgKF8oIiVCOiB3YXJuaW5nOiBJbmNvbnNpc3RlbnQgRlAgQUJJ IGJldHdlZW4gZV9mbGFncyBhbmQgIgorCSAgICAgIi5NSVBTLmFiaWZsYWdz IiksIGliZmQpOworICAgICAgaWYgKChpbl9hYmlmbGFncy5hc2VzICYgYWJp ZmxhZ3MuYXNlcykgIT0gYWJpZmxhZ3MuYXNlcykKKwkoKl9iZmRfZXJyb3Jf aGFuZGxlcikKKwkgIChfKCIlQjogd2FybmluZzogSW5jb25zaXN0ZW50IEFT RXMgYmV0d2VlbiBlX2ZsYWdzIGFuZCAiCisJICAgICAiLk1JUFMuYWJpZmxh Z3MiKSwgaWJmZCk7CisgICAgICBpZiAoaW5fYWJpZmxhZ3MuaXNhX2V4dCAh PSBhYmlmbGFncy5pc2FfZXh0KQorCSgqX2JmZF9lcnJvcl9oYW5kbGVyKQor CSAgKF8oIiVCOiB3YXJuaW5nOiBJbmNvbnNpc3RlbnQgSVNBIGV4dGVuc2lv bnMgYmV0d2VlbiBlX2ZsYWdzIGFuZCAiCisJICAgICAiLk1JUFMuYWJpZmxh Z3MiKSwgaWJmZCk7CisgICAgICBpZiAoaW5fYWJpZmxhZ3MuZmxhZ3MyICE9 IDApCisJKCpfYmZkX2Vycm9yX2hhbmRsZXIpCisJICAoXygiJUI6IHdhcm5p bmc6IFVuZXhwZWN0ZWQgZmxhZyBpbiB0aGUgZmxhZ3MyIGZpZWxkIG9mICIK KwkgICAgICIuTUlQUy5hYmlmbGFncyAoMHglbHgpIiksIGliZmQsCisJICAg KHVuc2lnbmVkIGxvbmcpIGluX2FiaWZsYWdzLmZsYWdzMik7CisgICAgfQor CisgIGlmICghbWlwc19lbGZfdGRhdGEgKG9iZmQpLT5hYmlmbGFnc192YWxp ZCkKKyAgICB7CisgICAgICAvKiBDb3B5IGlucHV0IGFiaWZsYWdzIGlmIG91 dHB1dCBhYmlmbGFncyBhcmUgbm90IGFscmVhZHkgdmFsaWQuICAqLworICAg ICAgbWlwc19lbGZfdGRhdGEgKG9iZmQpLT5hYmlmbGFncyA9IG1pcHNfZWxm X3RkYXRhIChpYmZkKS0+YWJpZmxhZ3M7CisgICAgICBtaXBzX2VsZl90ZGF0 YSAob2JmZCktPmFiaWZsYWdzX3ZhbGlkID0gVFJVRTsKKyAgICB9CiAKICAg aWYgKCEgZWxmX2ZsYWdzX2luaXQgKG9iZmQpKQogICAgIHsKICAgICAgIGVs Zl9mbGFnc19pbml0IChvYmZkKSA9IFRSVUU7Ci0gICAgICBlbGZfZWxmaGVh ZGVyIChvYmZkKS0+ZV9mbGFncyA9IG5ld19mbGFnczsKKyAgICAgIGVsZl9l bGZoZWFkZXIgKG9iZmQpLT5lX2ZsYWdzID0gZWxmX2VsZmhlYWRlciAoaWJm ZCktPmVfZmxhZ3M7CiAgICAgICBlbGZfZWxmaGVhZGVyIChvYmZkKS0+ZV9p ZGVudFtFSV9DTEFTU10KIAk9IGVsZl9lbGZoZWFkZXIgKGliZmQpLT5lX2lk ZW50W0VJX0NMQVNTXTsKIApAQCAtMTQ1MTQsMTEgKzE0OTY1LDQyIEBAIF9i ZmRfbWlwc19lbGZfbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSAoYmZkICppYmZk LCBiZmQgKm9iZmQpCiAJICBpZiAoISBiZmRfc2V0X2FyY2hfbWFjaCAob2Jm ZCwgYmZkX2dldF9hcmNoIChpYmZkKSwKIAkJCQkgICBiZmRfZ2V0X21hY2gg KGliZmQpKSkKIAkgICAgcmV0dXJuIEZBTFNFOworCisJICAvKiBVcGRhdGUg dGhlIEFCSSBmbGFncyBpc2FfbGV2ZWwsIGlzYV9yZXYgYW5kIGlzYV9leHQg ZmllbGRzLiAgKi8KKwkgIHVwZGF0ZV9taXBzX2FiaWZsYWdzX2lzYSAob2Jm ZCwgJm1pcHNfZWxmX3RkYXRhIChvYmZkKS0+YWJpZmxhZ3MpOwogCX0KIAog ICAgICAgcmV0dXJuIFRSVUU7CiAgICAgfQogCisgIC8qIFVwZGF0ZSB0aGUg b3V0cHV0IGFiaWZsYWdzIGZwX2FiaSB1c2luZyB0aGUgY29tcHV0ZWQgZnBf YWJpLiAgKi8KKyAgb3V0X2F0dHIgPSBlbGZfa25vd25fb2JqX2F0dHJpYnV0 ZXMgKG9iZmQpW09CSl9BVFRSX0dOVV07CisgIG1pcHNfZWxmX3RkYXRhIChv YmZkKS0+YWJpZmxhZ3MuZnBfYWJpID0gb3V0X2F0dHJbVGFnX0dOVV9NSVBT X0FCSV9GUF0uaTsKKworI2RlZmluZSBtYXgoYSxiKSAoKGEpID4gKGIpID8g KGEpIDogKGIpKQorICAvKiBNZXJnZSBhYmlmbGFncy4gICovCisgIG1pcHNf ZWxmX3RkYXRhIChvYmZkKS0+YWJpZmxhZ3MuaXNhX3JldgorICAgID0gbWF4 IChtaXBzX2VsZl90ZGF0YSAob2JmZCktPmFiaWZsYWdzLmlzYV9yZXYsCisJ ICAgbWlwc19lbGZfdGRhdGEgKGliZmQpLT5hYmlmbGFncy5pc2FfcmV2KTsK KyAgbWlwc19lbGZfdGRhdGEgKG9iZmQpLT5hYmlmbGFncy5ncHJfc2l6ZQor ICAgID0gbWF4IChtaXBzX2VsZl90ZGF0YSAob2JmZCktPmFiaWZsYWdzLmdw cl9zaXplLAorCSAgIG1pcHNfZWxmX3RkYXRhIChpYmZkKS0+YWJpZmxhZ3Mu Z3ByX3NpemUpOworICBtaXBzX2VsZl90ZGF0YSAob2JmZCktPmFiaWZsYWdz LmNwcjFfc2l6ZQorICAgID0gbWF4IChtaXBzX2VsZl90ZGF0YSAob2JmZCkt PmFiaWZsYWdzLmNwcjFfc2l6ZSwKKwkgICBtaXBzX2VsZl90ZGF0YSAoaWJm ZCktPmFiaWZsYWdzLmNwcjFfc2l6ZSk7CisgIG1pcHNfZWxmX3RkYXRhIChv YmZkKS0+YWJpZmxhZ3MuY3ByMl9zaXplCisgICAgPSBtYXggKG1pcHNfZWxm X3RkYXRhIChvYmZkKS0+YWJpZmxhZ3MuY3ByMl9zaXplLAorCSAgIG1pcHNf ZWxmX3RkYXRhIChpYmZkKS0+YWJpZmxhZ3MuY3ByMl9zaXplKTsKKyN1bmRl ZiBtYXgKKyAgbWlwc19lbGZfdGRhdGEgKG9iZmQpLT5hYmlmbGFncy5hc2Vz CisgICAgfD0gbWlwc19lbGZfdGRhdGEgKGliZmQpLT5hYmlmbGFncy5hc2Vz OworICBtaXBzX2VsZl90ZGF0YSAob2JmZCktPmFiaWZsYWdzLmZsYWdzMQor ICAgIHw9IG1pcHNfZWxmX3RkYXRhIChpYmZkKS0+YWJpZmxhZ3MuZmxhZ3Mx OworCisgIG5ld19mbGFncyA9IGVsZl9lbGZoZWFkZXIgKGliZmQpLT5lX2Zs YWdzOworICBlbGZfZWxmaGVhZGVyIChvYmZkKS0+ZV9mbGFncyB8PSBuZXdf ZmxhZ3MgJiBFRl9NSVBTX05PUkVPUkRFUjsKKyAgb2xkX2ZsYWdzID0gZWxm X2VsZmhlYWRlciAob2JmZCktPmVfZmxhZ3M7CisKICAgLyogQ2hlY2sgZmxh ZyBjb21wYXRpYmlsaXR5LiAgKi8KIAogICBuZXdfZmxhZ3MgJj0gfkVGX01J UFNfTk9SRU9SREVSOwpAQCAtMTQ1NDEsMzAgKzE1MDIzLDYgQEAgX2JmZF9t aXBzX2VsZl9tZXJnZV9wcml2YXRlX2JmZF9kYXRhIChiZmQgKmliZmQsIGJm ZCAqb2JmZCkKICAgaWYgKG5ld19mbGFncyA9PSBvbGRfZmxhZ3MpCiAgICAg cmV0dXJuIFRSVUU7CiAKLSAgLyogQ2hlY2sgdG8gc2VlIGlmIHRoZSBpbnB1 dCBCRkQgYWN0dWFsbHkgY29udGFpbnMgYW55IHNlY3Rpb25zLgotICAgICBJ ZiBub3QsIGl0cyBmbGFncyBtYXkgbm90IGhhdmUgYmVlbiBpbml0aWFsaXNl ZCBlaXRoZXIsIGJ1dCBpdCBjYW5ub3QKLSAgICAgYWN0dWFsbHkgY2F1c2Ug YW55IGluY29tcGF0aWJpbGl0eS4gICovCi0gIGZvciAoc2VjID0gaWJmZC0+ c2VjdGlvbnM7IHNlYyAhPSBOVUxMOyBzZWMgPSBzZWMtPm5leHQpCi0gICAg ewotICAgICAgLyogSWdub3JlIHN5bnRoZXRpYyBzZWN0aW9ucyBhbmQgZW1w dHkgLnRleHQsIC5kYXRhIGFuZCAuYnNzIHNlY3Rpb25zCi0JIHdoaWNoIGFy ZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBnYXMuICBBbHNvIGlnbm9y ZSBmYWtlCi0JIChzKWNvbW1vbiBzZWN0aW9ucywgc2luY2UgbWVyZWx5IGRl ZmluaW5nIGEgY29tbW9uIHN5bWJvbCBkb2VzCi0JIG5vdCBhZmZlY3QgY29t cGF0aWJpbGl0eS4gICovCi0gICAgICBpZiAoKHNlYy0+ZmxhZ3MgJiBTRUNf SVNfQ09NTU9OKSA9PSAwCi0JICAmJiBzdHJjbXAgKHNlYy0+bmFtZSwgIi5y ZWdpbmZvIikKLQkgICYmIHN0cmNtcCAoc2VjLT5uYW1lLCAiLm1kZWJ1ZyIp Ci0JICAmJiAoc2VjLT5zaXplICE9IDAKLQkgICAgICB8fCAoc3RyY21wIChz ZWMtPm5hbWUsICIudGV4dCIpCi0JCSAgJiYgc3RyY21wIChzZWMtPm5hbWUs ICIuZGF0YSIpCi0JCSAgJiYgc3RyY21wIChzZWMtPm5hbWUsICIuYnNzIikp KSkKLQl7Ci0JICBudWxsX2lucHV0X2JmZCA9IEZBTFNFOwotCSAgYnJlYWs7 Ci0JfQotICAgIH0KLSAgaWYgKG51bGxfaW5wdXRfYmZkKQotICAgIHJldHVy biBUUlVFOwotCiAgIG9rID0gVFJVRTsKIAogICBpZiAoKChuZXdfZmxhZ3Mg JiAoRUZfTUlQU19QSUMgfCBFRl9NSVBTX0NQSUMpKSAhPSAwKQpAQCAtMTQ2 MDUsNiArMTUwNjMsOSBAQCBfYmZkX21pcHNfZWxmX21lcmdlX3ByaXZhdGVf YmZkX2RhdGEgKGJmZCAqaWJmZCwgYmZkICpvYmZkKQogCSAgZWxmX2VsZmhl YWRlciAob2JmZCktPmVfZmxhZ3MKIAkgICAgfD0gbmV3X2ZsYWdzICYgKEVG X01JUFNfQVJDSCB8IEVGX01JUFNfTUFDSCB8IEVGX01JUFNfMzJCSVRNT0RF KTsKIAorCSAgLyogVXBkYXRlIHRoZSBBQkkgZmxhZ3MgaXNhX2xldmVsLCBp c2FfcmV2LCBpc2FfZXh0IGZpZWxkcy4gICovCisJICB1cGRhdGVfbWlwc19h YmlmbGFnc19pc2EgKG9iZmQsICZtaXBzX2VsZl90ZGF0YSAob2JmZCktPmFi aWZsYWdzKTsKKwogCSAgLyogQ29weSBhY3Jvc3MgdGhlIEFCSSBmbGFncyBp ZiBPQkZEIGRvZXNuJ3QgdXNlIHRoZW0KIAkgICAgIGFuZCBpZiB0aGF0IHdh cyB3aGF0IGNhdXNlZCB1cyB0byB0cmVhdCBJQkZEIGFzIDMyLWJpdC4gICov CiAJICBpZiAoKG9sZF9mbGFncyAmIEVGX01JUFNfQUJJKSA9PSAwCkBAIC0x NDY5MCw2ICsxNTE1MSwyMCBAQCBfYmZkX21pcHNfZWxmX21lcmdlX3ByaXZh dGVfYmZkX2RhdGEgKGJmZCAqaWJmZCwgYmZkICpvYmZkKQogICAgICAgb2xk X2ZsYWdzICY9IH5FRl9NSVBTX05BTjIwMDg7CiAgICAgfQogCisgIC8qIENv bXBhcmUgRlA2NCBzdGF0ZS4gICovCisgIGlmICgobmV3X2ZsYWdzICYgRUZf TUlQU19GUDY0KSAhPSAob2xkX2ZsYWdzICYgRUZfTUlQU19GUDY0KSkKKyAg ICB7CisgICAgICBfYmZkX2Vycm9yX2hhbmRsZXIgKF8oIiVCOiBsaW5raW5n ICVzIG1vZHVsZSB3aXRoIHByZXZpb3VzICVzIG1vZHVsZXMiKSwKKwkJCSAg aWJmZCwKKwkJCSAgKG5ld19mbGFncyAmIEVGX01JUFNfRlA2NAorCQkJICAg PyAiLW1mcDY0IiA6ICItbWZwMzIiKSwKKwkJCSAgKG9sZF9mbGFncyAmIEVG X01JUFNfRlA2NAorCQkJICAgPyAiLW1mcDY0IiA6ICItbWZwMzIiKSk7Cisg ICAgICBvayA9IEZBTFNFOworICAgICAgbmV3X2ZsYWdzICY9IH5FRl9NSVBT X0ZQNjQ7CisgICAgICBvbGRfZmxhZ3MgJj0gfkVGX01JUFNfRlA2NDsKKyAg ICB9CisKICAgLyogV2FybiBhYm91dCBhbnkgb3RoZXIgbWlzbWF0Y2hlcyAq LwogICBpZiAobmV3X2ZsYWdzICE9IG9sZF9mbGFncykKICAgICB7CkBAIC0x NDg0MCwxNCArMTUzMTUsMTY5IEBAIF9iZmRfbWlwc19mcF9hYmlfc3RyaW5n IChpbnQgZnApCiAgICAgY2FzZSBWYWxfR05VX01JUFNfQUJJX0ZQX1NPRlQ6 CiAgICAgICByZXR1cm4gIi1tc29mdC1mbG9hdCI7CiAKKyAgICBjYXNlIFZh bF9HTlVfTUlQU19BQklfRlBfT0xEXzY0OgorICAgICAgcmV0dXJuIF8oIi1t aXBzMzJyMiAtbWZwNjQgKDEyIGNhbGxlZS1zYXZlZCkiKTsKKworICAgIGNh c2UgVmFsX0dOVV9NSVBTX0FCSV9GUF9YWDoKKyAgICAgIHJldHVybiAiLW1m cHh4IjsKKwogICAgIGNhc2UgVmFsX0dOVV9NSVBTX0FCSV9GUF82NDoKLSAg ICAgIHJldHVybiAiLW1pcHMzMnIyIC1tZnA2NCI7CisgICAgICByZXR1cm4g Ii1tZ3AzMiAtbWZwNjQiOworCisgICAgY2FzZSBWYWxfR05VX01JUFNfQUJJ X0ZQXzY0QToKKyAgICAgIHJldHVybiAiLW1ncDMyIC1tZnA2NCAtbW5vLW9k ZC1zcHJlZyI7CiAKICAgICBkZWZhdWx0OgogICAgICAgcmV0dXJuIDA7CiAg ICAgfQogfQogCitzdGF0aWMgdm9pZAorcHJpbnRfbWlwc19hc2VzIChGSUxF ICpmaWxlLCB1bnNpZ25lZCBpbnQgbWFzaykKK3sKKyAgaWYgKG1hc2sgJiBB RkxfQVNFX0RTUCkKKyAgICBmcHV0cyAoIlxuXHREU1AgQVNFIiwgZmlsZSk7 CisgIGlmIChtYXNrICYgQUZMX0FTRV9EU1BSMikKKyAgICBmcHV0cyAoIlxu XHREU1AgUjIgQVNFIiwgZmlsZSk7CisgIGlmIChtYXNrICYgQUZMX0FTRV9F VkEpCisgICAgZnB1dHMgKCJcblx0RW5oYW5jZWQgVkEgU2NoZW1lIiwgZmls ZSk7CisgIGlmIChtYXNrICYgQUZMX0FTRV9NQ1UpCisgICAgZnB1dHMgKCJc blx0TUNVIChNaWNyb0NvbnRyb2xsZXIpIEFTRSIsIGZpbGUpOworICBpZiAo bWFzayAmIEFGTF9BU0VfTURNWCkKKyAgICBmcHV0cyAoIlxuXHRNRE1YIEFT RSIsIGZpbGUpOworICBpZiAobWFzayAmIEFGTF9BU0VfTUlQUzNEKQorICAg IGZwdXRzICgiXG5cdE1JUFMtM0QgQVNFIiwgZmlsZSk7CisgIGlmIChtYXNr ICYgQUZMX0FTRV9NVCkKKyAgICBmcHV0cyAoIlxuXHRNVCBBU0UiLCBmaWxl KTsKKyAgaWYgKG1hc2sgJiBBRkxfQVNFX1NNQVJUTUlQUykKKyAgICBmcHV0 cyAoIlxuXHRTbWFydE1JUFMgQVNFIiwgZmlsZSk7CisgIGlmIChtYXNrICYg QUZMX0FTRV9WSVJUKQorICAgIGZwdXRzICgiXG5cdFZaIEFTRSIsIGZpbGUp OworICBpZiAobWFzayAmIEFGTF9BU0VfTVNBKQorICAgIGZwdXRzICgiXG5c dE1TQSBBU0UiLCBmaWxlKTsKKyAgaWYgKG1hc2sgJiBBRkxfQVNFX01JUFMx NikKKyAgICBmcHV0cyAoIlxuXHRNSVBTMTYgQVNFIiwgZmlsZSk7CisgIGlm IChtYXNrICYgQUZMX0FTRV9NSUNST01JUFMpCisgICAgZnB1dHMgKCJcblx0 TUlDUk9NSVBTIEFTRSIsIGZpbGUpOworICBpZiAobWFzayAmIEFGTF9BU0Vf WFBBKQorICAgIGZwdXRzICgiXG5cdFhQQSBBU0UiLCBmaWxlKTsKKyAgaWYg KG1hc2sgPT0gMCkKKyAgICBmcHJpbnRmIChmaWxlLCAiXG5cdCVzIiwgXygi Tm9uZSIpKTsKK30KKworc3RhdGljIHZvaWQKK3ByaW50X21pcHNfaXNhX2V4 dCAoRklMRSAqZmlsZSwgdW5zaWduZWQgaW50IGlzYV9leHQpCit7CisgIHN3 aXRjaCAoaXNhX2V4dCkKKyAgICB7CisgICAgY2FzZSAwOgorICAgICAgZnB1 dHMgKF8oIk5vbmUiKSwgZmlsZSk7CisgICAgICBicmVhazsKKyAgICBjYXNl IEFGTF9FWFRfWExSOgorICAgICAgZnB1dHMgKCJSTUkgWExSIiwgZmlsZSk7 CisgICAgICBicmVhazsKKyAgICBjYXNlIEFGTF9FWFRfT0NURU9OMjoKKyAg ICAgIGZwdXRzICgiQ2F2aXVtIE5ldHdvcmtzIE9jdGVvbjIiLCBmaWxlKTsK KyAgICAgIGJyZWFrOworICAgIGNhc2UgQUZMX0VYVF9PQ1RFT05QOgorICAg ICAgZnB1dHMgKCJDYXZpdW0gTmV0d29ya3MgT2N0ZW9uUCIsIGZpbGUpOwor ICAgICAgYnJlYWs7CisgICAgY2FzZSBBRkxfRVhUX0xPT05HU09OXzNBOgor ICAgICAgZnB1dHMgKCJMb29uZ3NvbiAzQSIsIGZpbGUpOworICAgICAgYnJl YWs7CisgICAgY2FzZSBBRkxfRVhUX09DVEVPTjoKKyAgICAgIGZwdXRzICgi Q2F2aXVtIE5ldHdvcmtzIE9jdGVvbiIsIGZpbGUpOworICAgICAgYnJlYWs7 CisgICAgY2FzZSBBRkxfRVhUXzU5MDA6CisgICAgICBmcHV0cyAoIlRvc2hp YmEgUjU5MDAiLCBmaWxlKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgQUZM X0VYVF80NjUwOgorICAgICAgZnB1dHMgKCJNSVBTIFI0NjUwIiwgZmlsZSk7 CisgICAgICBicmVhazsKKyAgICBjYXNlIEFGTF9FWFRfNDAxMDoKKyAgICAg IGZwdXRzICgiTFNJIFI0MDEwIiwgZmlsZSk7CisgICAgICBicmVhazsKKyAg ICBjYXNlIEFGTF9FWFRfNDEwMDoKKyAgICAgIGZwdXRzICgiTkVDIFZSNDEw MCIsIGZpbGUpOworICAgICAgYnJlYWs7CisgICAgY2FzZSBBRkxfRVhUXzM5 MDA6CisgICAgICBmcHV0cyAoIlRvc2hpYmEgUjM5MDAiLCBmaWxlKTsKKyAg ICAgIGJyZWFrOworICAgIGNhc2UgQUZMX0VYVF8xMDAwMDoKKyAgICAgIGZw dXRzICgiTUlQUyBSMTAwMDAiLCBmaWxlKTsKKyAgICAgIGJyZWFrOworICAg IGNhc2UgQUZMX0VYVF9TQjE6CisgICAgICBmcHV0cyAoIkJyb2FkY29tIFNC LTEiLCBmaWxlKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgQUZMX0VYVF80 MTExOgorICAgICAgZnB1dHMgKCJORUMgVlI0MTExL1ZSNDE4MSIsIGZpbGUp OworICAgICAgYnJlYWs7CisgICAgY2FzZSBBRkxfRVhUXzQxMjA6CisgICAg ICBmcHV0cyAoIk5FQyBWUjQxMjAiLCBmaWxlKTsKKyAgICAgIGJyZWFrOwor ICAgIGNhc2UgQUZMX0VYVF81NDAwOgorICAgICAgZnB1dHMgKCJORUMgVlI1 NDAwIiwgZmlsZSk7CisgICAgICBicmVhazsKKyAgICBjYXNlIEFGTF9FWFRf NTUwMDoKKyAgICAgIGZwdXRzICgiTkVDIFZSNTUwMCIsIGZpbGUpOworICAg ICAgYnJlYWs7CisgICAgY2FzZSBBRkxfRVhUX0xPT05HU09OXzJFOgorICAg ICAgZnB1dHMgKCJTVCBNaWNyb2VsZWN0cm9uaWNzIExvb25nc29uIDJFIiwg ZmlsZSk7CisgICAgICBicmVhazsKKyAgICBjYXNlIEFGTF9FWFRfTE9PTkdT T05fMkY6CisgICAgICBmcHV0cyAoIlNUIE1pY3JvZWxlY3Ryb25pY3MgTG9v bmdzb24gMkYiLCBmaWxlKTsKKyAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6 CisgICAgICBmcHV0cyAoXygiVW5rbm93biIpLCBmaWxlKTsKKyAgICAgIGJy ZWFrOworICAgIH0KK30KKworc3RhdGljIHZvaWQKK3ByaW50X21pcHNfZnBf YWJpX3ZhbHVlIChGSUxFICpmaWxlLCBpbnQgdmFsKQoreworICBzd2l0Y2gg KHZhbCkKKyAgICB7CisgICAgY2FzZSBWYWxfR05VX01JUFNfQUJJX0ZQX0FO WToKKyAgICAgIGZwcmludGYgKGZpbGUsIF8oIkhhcmQgb3Igc29mdCBmbG9h dFxuIikpOworICAgICAgYnJlYWs7CisgICAgY2FzZSBWYWxfR05VX01JUFNf QUJJX0ZQX0RPVUJMRToKKyAgICAgIGZwcmludGYgKGZpbGUsIF8oIkhhcmQg ZmxvYXQgKGRvdWJsZSBwcmVjaXNpb24pXG4iKSk7CisgICAgICBicmVhazsK KyAgICBjYXNlIFZhbF9HTlVfTUlQU19BQklfRlBfU0lOR0xFOgorICAgICAg ZnByaW50ZiAoZmlsZSwgXygiSGFyZCBmbG9hdCAoc2luZ2xlIHByZWNpc2lv bilcbiIpKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgVmFsX0dOVV9NSVBT X0FCSV9GUF9TT0ZUOgorICAgICAgZnByaW50ZiAoZmlsZSwgXygiU29mdCBm bG9hdFxuIikpOworICAgICAgYnJlYWs7CisgICAgY2FzZSBWYWxfR05VX01J UFNfQUJJX0ZQX09MRF82NDoKKyAgICAgIGZwcmludGYgKGZpbGUsIF8oIkhh cmQgZmxvYXQgKE1JUFMzMnIyIDY0LWJpdCBGUFUgMTIgY2FsbGVlLXNhdmVk KVxuIikpOworICAgICAgYnJlYWs7CisgICAgY2FzZSBWYWxfR05VX01JUFNf QUJJX0ZQX1hYOgorICAgICAgZnByaW50ZiAoZmlsZSwgXygiSGFyZCBmbG9h dCAoMzItYml0IENQVSwgQW55IEZQVSlcbiIpKTsKKyAgICAgIGJyZWFrOwor ICAgIGNhc2UgVmFsX0dOVV9NSVBTX0FCSV9GUF82NDoKKyAgICAgIGZwcmlu dGYgKGZpbGUsIF8oIkhhcmQgZmxvYXQgKDMyLWJpdCBDUFUsIDY0LWJpdCBG UFUpXG4iKSk7CisgICAgICBicmVhazsKKyAgICBjYXNlIFZhbF9HTlVfTUlQ U19BQklfRlBfNjRBOgorICAgICAgZnByaW50ZiAoZmlsZSwgXygiSGFyZCBm bG9hdCBjb21wYXQgKDMyLWJpdCBDUFUsIDY0LWJpdCBGUFUpXG4iKSk7Cisg ICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgZnByaW50ZiAoZmls ZSwgIj8/PyAoJWQpXG4iLCB2YWwpOworICAgICAgYnJlYWs7CisgICAgfQor fQorCitzdGF0aWMgaW50CitnZXRfbWlwc19yZWdfc2l6ZSAoaW50IHJlZ19z aXplKQoreworICByZXR1cm4gKHJlZ19zaXplID09IEFGTF9SRUdfTk9ORSkg PyAwCisJIDogKHJlZ19zaXplID09IEFGTF9SRUdfMzIpID8gMzIKKwkgOiAo cmVnX3NpemUgPT0gQUZMX1JFR182NCkgPyA2NAorCSA6IChyZWdfc2l6ZSA9 PSBBRkxfUkVHXzEyOCkgPyAxMjgKKwkgOiAtMTsKK30KKwogYmZkX2Jvb2xl YW4KIF9iZmRfbWlwc19lbGZfcHJpbnRfcHJpdmF0ZV9iZmRfZGF0YSAoYmZk ICphYmZkLCB2b2lkICpwdHIpCiB7CkBAIC0xNDkxMiw3ICsxNTU0Miw3IEBA IF9iZmRfbWlwc19lbGZfcHJpbnRfcHJpdmF0ZV9iZmRfZGF0YSAoYmZkICph YmZkLCB2b2lkICpwdHIpCiAgICAgZnByaW50ZiAoZmlsZSwgIiBbbmFuMjAw OF0iKTsKIAogICBpZiAoZWxmX2VsZmhlYWRlciAoYWJmZCktPmVfZmxhZ3Mg JiBFRl9NSVBTX0ZQNjQpCi0gICAgZnByaW50ZiAoZmlsZSwgIiBbZnA2NF0i KTsKKyAgICBmcHJpbnRmIChmaWxlLCAiIFtvbGQgZnA2NF0iKTsKIAogICBp ZiAoZWxmX2VsZmhlYWRlciAoYWJmZCktPmVfZmxhZ3MgJiBFRl9NSVBTXzMy QklUTU9ERSkKICAgICBmcHJpbnRmIChmaWxlLCAiIFszMmJpdG1vZGVdIik7 CkBAIC0xNDkzNiw2ICsxNTU2NiwzMCBAQCBfYmZkX21pcHNfZWxmX3ByaW50 X3ByaXZhdGVfYmZkX2RhdGEgKGJmZCAqYWJmZCwgdm9pZCAqcHRyKQogCiAg IGZwdXRjICgnXG4nLCBmaWxlKTsKIAorICBpZiAobWlwc19lbGZfdGRhdGEg KGFiZmQpLT5hYmlmbGFnc192YWxpZCkKKyAgICB7CisgICAgICBFbGZfSW50 ZXJuYWxfQUJJRmxhZ3NfdjAgKmFiaWZsYWdzID0gJm1pcHNfZWxmX3RkYXRh IChhYmZkKS0+YWJpZmxhZ3M7CisgICAgICBmcHJpbnRmIChmaWxlLCAiXG5N SVBTIEFCSSBGbGFncyBWZXJzaW9uOiAlZFxuIiwgYWJpZmxhZ3MtPnZlcnNp b24pOworICAgICAgZnByaW50ZiAoZmlsZSwgIlxuSVNBOiBNSVBTJWQiLCBh YmlmbGFncy0+aXNhX2xldmVsKTsKKyAgICAgIGlmIChhYmlmbGFncy0+aXNh X3JldiA+IDEpCisJZnByaW50ZiAoZmlsZSwgInIlZCIsIGFiaWZsYWdzLT5p c2FfcmV2KTsKKyAgICAgIGZwcmludGYgKGZpbGUsICJcbkdQUiBzaXplOiAl ZCIsCisJICAgICAgIGdldF9taXBzX3JlZ19zaXplIChhYmlmbGFncy0+Z3By X3NpemUpKTsKKyAgICAgIGZwcmludGYgKGZpbGUsICJcbkNQUjEgc2l6ZTog JWQiLAorCSAgICAgICBnZXRfbWlwc19yZWdfc2l6ZSAoYWJpZmxhZ3MtPmNw cjFfc2l6ZSkpOworICAgICAgZnByaW50ZiAoZmlsZSwgIlxuQ1BSMiBzaXpl OiAlZCIsCisJICAgICAgIGdldF9taXBzX3JlZ19zaXplIChhYmlmbGFncy0+ Y3ByMl9zaXplKSk7CisgICAgICBmcHV0cyAoIlxuRlAgQUJJOiAiLCBmaWxl KTsKKyAgICAgIHByaW50X21pcHNfZnBfYWJpX3ZhbHVlIChmaWxlLCBhYmlm bGFncy0+ZnBfYWJpKTsKKyAgICAgIGZwdXRzICgiSVNBIEV4dGVuc2lvbjog IiwgZmlsZSk7CisgICAgICBwcmludF9taXBzX2lzYV9leHQgKGZpbGUsIGFi aWZsYWdzLT5pc2FfZXh0KTsKKyAgICAgIGZwdXRzICgiXG5BU0VzOiIsIGZp bGUpOworICAgICAgcHJpbnRfbWlwc19hc2VzIChmaWxlLCBhYmlmbGFncy0+ YXNlcyk7CisgICAgICBmcHJpbnRmIChmaWxlLCAiXG5GTEFHUyAxOiAlOC44 bHgiLCBhYmlmbGFncy0+ZmxhZ3MxKTsKKyAgICAgIGZwcmludGYgKGZpbGUs ICJcbkZMQUdTIDI6ICU4LjhseCIsIGFiaWZsYWdzLT5mbGFnczIpOworICAg ICAgZnB1dGMgKCdcbicsIGZpbGUpOworICAgIH0KKwogICByZXR1cm4gVFJV RTsKIH0KIApAQCAtMTUyNTgsNCArMTU5MTIsOCBAQCBfYmZkX21pcHNfcG9z dF9wcm9jZXNzX2hlYWRlcnMgKGJmZCAqYWJmZCwgc3RydWN0IGJmZF9saW5r X2luZm8gKmxpbmtfaW5mbykKICAgICB9CiAKICAgX2JmZF9lbGZfcG9zdF9w cm9jZXNzX2hlYWRlcnMgKGFiZmQsIGxpbmtfaW5mbyk7CisKKyAgaWYgKG1p cHNfZWxmX3RkYXRhIChhYmZkKS0+YWJpZmxhZ3MuZnBfYWJpID09IFZhbF9H TlVfTUlQU19BQklfRlBfNjQKKyAgICAgIHx8IG1pcHNfZWxmX3RkYXRhIChh YmZkKS0+YWJpZmxhZ3MuZnBfYWJpID09IFZhbF9HTlVfTUlQU19BQklfRlBf NjRBKQorICAgIGlfZWhkcnAtPmVfaWRlbnRbRUlfQUJJVkVSU0lPTl0gPSAz OwogfQpkaWZmIC0tZ2l0IGEvYmZkL2VsZnh4LW1pcHMuaCBiL2JmZC9lbGZ4 eC1taXBzLmgKaW5kZXggOTViOThhYy4uYTRkMWIyNyAxMDA2NDQKLS0tIGEv YmZkL2VsZnh4LW1pcHMuaAorKysgYi9iZmQvZWxmeHgtbWlwcy5oCkBAIC0x NTcsNiArMTU3LDggQEAgZXh0ZXJuIGJmZF92bWEgX2JmZF9taXBzX2VsZl9w bHRfc3ltX3ZhbAogICAoYmZkX3ZtYSwgY29uc3QgYXNlY3Rpb24gKiwgY29u c3QgYXJlbGVudCAqcmVsKTsKIGV4dGVybiBsb25nIF9iZmRfbWlwc19lbGZf Z2V0X3N5bnRoZXRpY19zeW10YWIKICAgKGJmZCAqLCBsb25nLCBhc3ltYm9s ICoqLCBsb25nLCBhc3ltYm9sICoqLCBhc3ltYm9sICoqKTsKK2V4dGVybiBi ZmRfYm9vbGVhbiBfYmZkX21pcHNfZWxmX2djX21hcmtfZXh0cmFfc2VjdGlv bnMKKyAgKHN0cnVjdCBiZmRfbGlua19pbmZvICosIGVsZl9nY19tYXJrX2hv b2tfZm4pOwogZXh0ZXJuIHZvaWQgX2JmZF9taXBzX3Bvc3RfcHJvY2Vzc19o ZWFkZXJzCiAgIChiZmQgKmFiZmQsIHN0cnVjdCBiZmRfbGlua19pbmZvICps aW5rX2luZm8pOwogCmRpZmYgLS1naXQgYS9iaW51dGlscy9yZWFkZWxmLmMg Yi9iaW51dGlscy9yZWFkZWxmLmMKaW5kZXggZjAzODQyMi4uNzQ2M2M1NSAx MDA2NDQKLS0tIGEvYmludXRpbHMvcmVhZGVsZi5jCisrKyBiL2JpbnV0aWxz L3JlYWRlbGYuYwpAQCAtMzE2Nyw2ICszMTY3LDggQEAgZ2V0X21pcHNfc2Vn bWVudF90eXBlICh1bnNpZ25lZCBsb25nIHR5cGUpCiAgICAgICByZXR1cm4g IlJUUFJPQyI7CiAgICAgY2FzZSBQVF9NSVBTX09QVElPTlM6CiAgICAgICBy ZXR1cm4gIk9QVElPTlMiOworICAgIGNhc2UgUFRfTUlQU19BQklGTEFHUzoK KyAgICAgIHJldHVybiAiQUJJRkxBR1MiOwogICAgIGRlZmF1bHQ6CiAgICAg ICBicmVhazsKICAgICB9CkBAIC0zMzY2LDYgKzMzNjgsNyBAQCBnZXRfbWlw c19zZWN0aW9uX3R5cGVfbmFtZSAodW5zaWduZWQgaW50IHNoX3R5cGUpCiAg ICAgY2FzZSBTSFRfTUlQU19FSF9SRUdJT046CSByZXR1cm4gIk1JUFNfRUhf UkVHSU9OIjsKICAgICBjYXNlIFNIVF9NSVBTX1hMQVRFX09MRDoJIHJldHVy biAiTUlQU19YTEFURV9PTEQiOwogICAgIGNhc2UgU0hUX01JUFNfUERSX0VY Q0VQVElPTjogcmV0dXJuICJNSVBTX1BEUl9FWENFUFRJT04iOworICAgIGNh c2UgU0hUX01JUFNfQUJJRkxBR1M6CSByZXR1cm4gIk1JUFNfQUJJRkxBR1Mi OwogICAgIGRlZmF1bHQ6CiAgICAgICBicmVhazsKICAgICB9CkBAIC0xMTk5 MCw2ICsxMTk5Myw0MSBAQCBkaXNwbGF5X3NwYXJjX2dudV9hdHRyaWJ1dGUg KHVuc2lnbmVkIGNoYXIgKiBwLAogICByZXR1cm4gZGlzcGxheV90YWdfdmFs dWUgKHRhZywgcCwgZW5kKTsKIH0KIAorc3RhdGljIHZvaWQKK3ByaW50X21p cHNfZnBfYWJpX3ZhbHVlIChpbnQgdmFsKQoreworICBzd2l0Y2ggKHZhbCkK KyAgICB7CisgICAgY2FzZSBWYWxfR05VX01JUFNfQUJJX0ZQX0FOWToKKyAg ICAgIHByaW50ZiAoXygiSGFyZCBvciBzb2Z0IGZsb2F0XG4iKSk7CisgICAg ICBicmVhazsKKyAgICBjYXNlIFZhbF9HTlVfTUlQU19BQklfRlBfRE9VQkxF OgorICAgICAgcHJpbnRmIChfKCJIYXJkIGZsb2F0IChkb3VibGUgcHJlY2lz aW9uKVxuIikpOworICAgICAgYnJlYWs7CisgICAgY2FzZSBWYWxfR05VX01J UFNfQUJJX0ZQX1NJTkdMRToKKyAgICAgIHByaW50ZiAoXygiSGFyZCBmbG9h dCAoc2luZ2xlIHByZWNpc2lvbilcbiIpKTsKKyAgICAgIGJyZWFrOworICAg IGNhc2UgVmFsX0dOVV9NSVBTX0FCSV9GUF9TT0ZUOgorICAgICAgcHJpbnRm IChfKCJTb2Z0IGZsb2F0XG4iKSk7CisgICAgICBicmVhazsKKyAgICBjYXNl IFZhbF9HTlVfTUlQU19BQklfRlBfT0xEXzY0OgorICAgICAgcHJpbnRmIChf KCJIYXJkIGZsb2F0IChNSVBTMzJyMiA2NC1iaXQgRlBVIDEyIGNhbGxlZS1z YXZlZClcbiIpKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgVmFsX0dOVV9N SVBTX0FCSV9GUF9YWDoKKyAgICAgIHByaW50ZiAoXygiSGFyZCBmbG9hdCAo MzItYml0IENQVSwgQW55IEZQVSlcbiIpKTsKKyAgICAgIGJyZWFrOworICAg IGNhc2UgVmFsX0dOVV9NSVBTX0FCSV9GUF82NDoKKyAgICAgIHByaW50ZiAo XygiSGFyZCBmbG9hdCAoMzItYml0IENQVSwgNjQtYml0IEZQVSlcbiIpKTsK KyAgICAgIGJyZWFrOworICAgIGNhc2UgVmFsX0dOVV9NSVBTX0FCSV9GUF82 NEE6CisgICAgICBwcmludGYgKF8oIkhhcmQgZmxvYXQgY29tcGF0ICgzMi1i aXQgQ1BVLCA2NC1iaXQgRlBVKVxuIikpOworICAgICAgYnJlYWs7CisgICAg ZGVmYXVsdDoKKyAgICAgIHByaW50ZiAoIj8/PyAoJWQpXG4iLCB2YWwpOwor ICAgICAgYnJlYWs7CisgICAgfQorfQorCiBzdGF0aWMgdW5zaWduZWQgY2hh ciAqCiBkaXNwbGF5X21pcHNfZ251X2F0dHJpYnV0ZSAodW5zaWduZWQgY2hh ciAqIHAsCiAJCQkgICAgaW50IHRhZywKQEAgLTEyMDA0LDI3ICsxMjA0Miw4 IEBAIGRpc3BsYXlfbWlwc19nbnVfYXR0cmlidXRlICh1bnNpZ25lZCBjaGFy ICogcCwKICAgICAgIHAgKz0gbGVuOwogICAgICAgcHJpbnRmICgiICBUYWdf R05VX01JUFNfQUJJX0ZQOiAiKTsKIAotICAgICAgc3dpdGNoICh2YWwpCi0J ewotCWNhc2UgVmFsX0dOVV9NSVBTX0FCSV9GUF9BTlk6Ci0JICBwcmludGYg KF8oIkhhcmQgb3Igc29mdCBmbG9hdFxuIikpOwotCSAgYnJlYWs7Ci0JY2Fz ZSBWYWxfR05VX01JUFNfQUJJX0ZQX0RPVUJMRToKLQkgIHByaW50ZiAoXygi SGFyZCBmbG9hdCAoZG91YmxlIHByZWNpc2lvbilcbiIpKTsKLQkgIGJyZWFr OwotCWNhc2UgVmFsX0dOVV9NSVBTX0FCSV9GUF9TSU5HTEU6Ci0JICBwcmlu dGYgKF8oIkhhcmQgZmxvYXQgKHNpbmdsZSBwcmVjaXNpb24pXG4iKSk7Ci0J ICBicmVhazsKLQljYXNlIFZhbF9HTlVfTUlQU19BQklfRlBfU09GVDoKLQkg IHByaW50ZiAoXygiU29mdCBmbG9hdFxuIikpOwotCSAgYnJlYWs7Ci0JY2Fz ZSBWYWxfR05VX01JUFNfQUJJX0ZQXzY0OgotCSAgcHJpbnRmIChfKCJIYXJk IGZsb2F0IChNSVBTMzJyMiA2NC1iaXQgRlBVKVxuIikpOwotCSAgYnJlYWs7 Ci0JZGVmYXVsdDoKLQkgIHByaW50ZiAoIj8/PyAoJWQpXG4iLCB2YWwpOwot CSAgYnJlYWs7Ci0JfQorICAgICAgcHJpbnRfbWlwc19mcF9hYmlfdmFsdWUg KHZhbCk7CisKICAgICAgIHJldHVybiBwOwogICAgfQogCkBAIC0xMjYyNywx MCArMTI2NDYsMTIxIEBAIHByaW50X21pcHNfcGx0Z290X2VudHJ5ICh1bnNp Z25lZCBjaGFyICogZGF0YSwgYmZkX3ZtYSBwbHRnb3QsIGJmZF92bWEgYWRk cikKICAgcmV0dXJuIGFkZHIgKyAoaXNfMzJiaXRfZWxmID8gNCA6IDgpOwog fQogCitzdGF0aWMgdm9pZAorcHJpbnRfbWlwc19hc2VzICh1bnNpZ25lZCBp bnQgbWFzaykKK3sKKyAgaWYgKG1hc2sgJiBBRkxfQVNFX0RTUCkKKyAgICBm cHV0cyAoIlxuXHREU1AgQVNFIiwgc3Rkb3V0KTsKKyAgaWYgKG1hc2sgJiBB RkxfQVNFX0RTUFIyKQorICAgIGZwdXRzICgiXG5cdERTUCBSMiBBU0UiLCBz dGRvdXQpOworICBpZiAobWFzayAmIEFGTF9BU0VfRVZBKQorICAgIGZwdXRz ICgiXG5cdEVuaGFuY2VkIFZBIFNjaGVtZSIsIHN0ZG91dCk7CisgIGlmICht YXNrICYgQUZMX0FTRV9NQ1UpCisgICAgZnB1dHMgKCJcblx0TUNVIChNaWNy b0NvbnRyb2xsZXIpIEFTRSIsIHN0ZG91dCk7CisgIGlmIChtYXNrICYgQUZM X0FTRV9NRE1YKQorICAgIGZwdXRzICgiXG5cdE1ETVggQVNFIiwgc3Rkb3V0 KTsKKyAgaWYgKG1hc2sgJiBBRkxfQVNFX01JUFMzRCkKKyAgICBmcHV0cyAo IlxuXHRNSVBTLTNEIEFTRSIsIHN0ZG91dCk7CisgIGlmIChtYXNrICYgQUZM X0FTRV9NVCkKKyAgICBmcHV0cyAoIlxuXHRNVCBBU0UiLCBzdGRvdXQpOwor ICBpZiAobWFzayAmIEFGTF9BU0VfU01BUlRNSVBTKQorICAgIGZwdXRzICgi XG5cdFNtYXJ0TUlQUyBBU0UiLCBzdGRvdXQpOworICBpZiAobWFzayAmIEFG TF9BU0VfVklSVCkKKyAgICBmcHV0cyAoIlxuXHRWWiBBU0UiLCBzdGRvdXQp OworICBpZiAobWFzayAmIEFGTF9BU0VfTVNBKQorICAgIGZwdXRzICgiXG5c dE1TQSBBU0UiLCBzdGRvdXQpOworICBpZiAobWFzayAmIEFGTF9BU0VfTUlQ UzE2KQorICAgIGZwdXRzICgiXG5cdE1JUFMxNiBBU0UiLCBzdGRvdXQpOwor ICBpZiAobWFzayAmIEFGTF9BU0VfTUlDUk9NSVBTKQorICAgIGZwdXRzICgi XG5cdE1JQ1JPTUlQUyBBU0UiLCBzdGRvdXQpOworICBpZiAobWFzayAmIEFG TF9BU0VfWFBBKQorICAgIGZwdXRzICgiXG5cdFhQQSBBU0UiLCBzdGRvdXQp OworICBpZiAobWFzayA9PSAwKQorICAgIGZwcmludGYgKHN0ZG91dCwgIlxu XHQlcyIsIF8oIk5vbmUiKSk7Cit9CisKK3N0YXRpYyB2b2lkCitwcmludF9t aXBzX2lzYV9leHQgKHVuc2lnbmVkIGludCBpc2FfZXh0KQoreworICBzd2l0 Y2ggKGlzYV9leHQpCisgICAgeworICAgIGNhc2UgMDoKKyAgICAgIGZwdXRz IChfKCJOb25lIiksIHN0ZG91dCk7CisgICAgICBicmVhazsKKyAgICBjYXNl IEFGTF9FWFRfWExSOgorICAgICAgZnB1dHMgKCJSTUkgWExSIiwgc3Rkb3V0 KTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgQUZMX0VYVF9PQ1RFT04yOgor ICAgICAgZnB1dHMgKCJDYXZpdW0gTmV0d29ya3MgT2N0ZW9uMiIsIHN0ZG91 dCk7CisgICAgICBicmVhazsKKyAgICBjYXNlIEFGTF9FWFRfT0NURU9OUDoK KyAgICAgIGZwdXRzICgiQ2F2aXVtIE5ldHdvcmtzIE9jdGVvblAiLCBzdGRv dXQpOworICAgICAgYnJlYWs7CisgICAgY2FzZSBBRkxfRVhUX0xPT05HU09O XzNBOgorICAgICAgZnB1dHMgKCJMb29uZ3NvbiAzQSIsIHN0ZG91dCk7Cisg ICAgICBicmVhazsKKyAgICBjYXNlIEFGTF9FWFRfT0NURU9OOgorICAgICAg ZnB1dHMgKCJDYXZpdW0gTmV0d29ya3MgT2N0ZW9uIiwgc3Rkb3V0KTsKKyAg ICAgIGJyZWFrOworICAgIGNhc2UgQUZMX0VYVF81OTAwOgorICAgICAgZnB1 dHMgKCJUb3NoaWJhIFI1OTAwIiwgc3Rkb3V0KTsKKyAgICAgIGJyZWFrOwor ICAgIGNhc2UgQUZMX0VYVF80NjUwOgorICAgICAgZnB1dHMgKCJNSVBTIFI0 NjUwIiwgc3Rkb3V0KTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgQUZMX0VY VF80MDEwOgorICAgICAgZnB1dHMgKCJMU0kgUjQwMTAiLCBzdGRvdXQpOwor ICAgICAgYnJlYWs7CisgICAgY2FzZSBBRkxfRVhUXzQxMDA6CisgICAgICBm cHV0cyAoIk5FQyBWUjQxMDAiLCBzdGRvdXQpOworICAgICAgYnJlYWs7Cisg ICAgY2FzZSBBRkxfRVhUXzM5MDA6CisgICAgICBmcHV0cyAoIlRvc2hpYmEg UjM5MDAiLCBzdGRvdXQpOworICAgICAgYnJlYWs7CisgICAgY2FzZSBBRkxf RVhUXzEwMDAwOgorICAgICAgZnB1dHMgKCJNSVBTIFIxMDAwMCIsIHN0ZG91 dCk7CisgICAgICBicmVhazsKKyAgICBjYXNlIEFGTF9FWFRfU0IxOgorICAg ICAgZnB1dHMgKCJCcm9hZGNvbSBTQi0xIiwgc3Rkb3V0KTsKKyAgICAgIGJy ZWFrOworICAgIGNhc2UgQUZMX0VYVF80MTExOgorICAgICAgZnB1dHMgKCJO RUMgVlI0MTExL1ZSNDE4MSIsIHN0ZG91dCk7CisgICAgICBicmVhazsKKyAg ICBjYXNlIEFGTF9FWFRfNDEyMDoKKyAgICAgIGZwdXRzICgiTkVDIFZSNDEy MCIsIHN0ZG91dCk7CisgICAgICBicmVhazsKKyAgICBjYXNlIEFGTF9FWFRf NTQwMDoKKyAgICAgIGZwdXRzICgiTkVDIFZSNTQwMCIsIHN0ZG91dCk7Cisg ICAgICBicmVhazsKKyAgICBjYXNlIEFGTF9FWFRfNTUwMDoKKyAgICAgIGZw dXRzICgiTkVDIFZSNTUwMCIsIHN0ZG91dCk7CisgICAgICBicmVhazsKKyAg ICBjYXNlIEFGTF9FWFRfTE9PTkdTT05fMkU6CisgICAgICBmcHV0cyAoIlNU IE1pY3JvZWxlY3Ryb25pY3MgTG9vbmdzb24gMkUiLCBzdGRvdXQpOworICAg ICAgYnJlYWs7CisgICAgY2FzZSBBRkxfRVhUX0xPT05HU09OXzJGOgorICAg ICAgZnB1dHMgKCJTVCBNaWNyb2VsZWN0cm9uaWNzIExvb25nc29uIDJGIiwg c3Rkb3V0KTsKKyAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICBm cHV0cyAoXygiVW5rbm93biIpLCBzdGRvdXQpOworICAgIH0KK30KKworc3Rh dGljIGludAorZ2V0X21pcHNfcmVnX3NpemUgKGludCByZWdfc2l6ZSkKK3sK KyAgcmV0dXJuIChyZWdfc2l6ZSA9PSBBRkxfUkVHX05PTkUpID8gMAorCSA6 IChyZWdfc2l6ZSA9PSBBRkxfUkVHXzMyKSA/IDMyCisJIDogKHJlZ19zaXpl ID09IEFGTF9SRUdfNjQpID8gNjQKKwkgOiAocmVnX3NpemUgPT0gQUZMX1JF R18xMjgpID8gMTI4CisJIDogLTE7Cit9CisKIHN0YXRpYyBpbnQKIHByb2Nl c3NfbWlwc19zcGVjaWZpYyAoRklMRSAqIGZpbGUpCiB7CiAgIEVsZl9JbnRl cm5hbF9EeW4gKiBlbnRyeTsKKyAgRWxmX0ludGVybmFsX1NoZHIgKnNlY3Qg PSBOVUxMOwogICBzaXplX3QgbGlibGlzdF9vZmZzZXQgPSAwOwogICBzaXpl X3QgbGlibGlzdG5vID0gMDsKICAgc2l6ZV90IGNvbmZsaWN0c25vID0gMDsK QEAgLTEyNjQ4LDYgKzEyNzc4LDU3IEBAIHByb2Nlc3NfbWlwc19zcGVjaWZp YyAoRklMRSAqIGZpbGUpCiAgIHByb2Nlc3NfYXR0cmlidXRlcyAoZmlsZSwg TlVMTCwgU0hUX0dOVV9BVFRSSUJVVEVTLCBOVUxMLAogCQkgICAgICBkaXNw bGF5X21pcHNfZ251X2F0dHJpYnV0ZSk7CiAKKyAgc2VjdCA9IGZpbmRfc2Vj dGlvbiAoIi5NSVBTLmFiaWZsYWdzIik7CisKKyAgaWYgKHNlY3QgIT0gTlVM TCkKKyAgICB7CisgICAgICBFbGZfRXh0ZXJuYWxfQUJJRmxhZ3NfdjAgKmFi aWZsYWdzX2V4dDsKKyAgICAgIEVsZl9JbnRlcm5hbF9BQklGbGFnc192MCBh YmlmbGFnc19pbjsKKworICAgICAgaWYgKHNpemVvZiAoRWxmX0V4dGVybmFs X0FCSUZsYWdzX3YwKSAhPSBzZWN0LT5zaF9zaXplKQorCWZwdXRzICgiXG5D b3JydXB0IEFCSSBGbGFncyBzZWN0aW9uLlxuIiwgc3Rkb3V0KTsKKyAgICAg IGVsc2UKKwl7CisJICBhYmlmbGFnc19leHQgPSBnZXRfZGF0YSAoTlVMTCwg ZmlsZSwgc2VjdC0+c2hfb2Zmc2V0LCAxLAorCQkJCSAgIHNlY3QtPnNoX3Np emUsIF8oIk1JUFMgQUJJIEZsYWdzIHNlY3Rpb24iKSk7CisJICBpZiAoYWJp ZmxhZ3NfZXh0KQorCSAgICB7CisJICAgICAgYWJpZmxhZ3NfaW4udmVyc2lv biA9IEJZVEVfR0VUIChhYmlmbGFnc19leHQtPnZlcnNpb24pOworCSAgICAg IGFiaWZsYWdzX2luLmlzYV9sZXZlbCA9IEJZVEVfR0VUIChhYmlmbGFnc19l eHQtPmlzYV9sZXZlbCk7CisJICAgICAgYWJpZmxhZ3NfaW4uaXNhX3JldiA9 IEJZVEVfR0VUIChhYmlmbGFnc19leHQtPmlzYV9yZXYpOworCSAgICAgIGFi aWZsYWdzX2luLmdwcl9zaXplID0gQllURV9HRVQgKGFiaWZsYWdzX2V4dC0+ Z3ByX3NpemUpOworCSAgICAgIGFiaWZsYWdzX2luLmNwcjFfc2l6ZSA9IEJZ VEVfR0VUIChhYmlmbGFnc19leHQtPmNwcjFfc2l6ZSk7CisJICAgICAgYWJp ZmxhZ3NfaW4uY3ByMl9zaXplID0gQllURV9HRVQgKGFiaWZsYWdzX2V4dC0+ Y3ByMl9zaXplKTsKKwkgICAgICBhYmlmbGFnc19pbi5mcF9hYmkgPSBCWVRF X0dFVCAoYWJpZmxhZ3NfZXh0LT5mcF9hYmkpOworCSAgICAgIGFiaWZsYWdz X2luLmlzYV9leHQgPSBCWVRFX0dFVCAoYWJpZmxhZ3NfZXh0LT5pc2FfZXh0 KTsKKwkgICAgICBhYmlmbGFnc19pbi5hc2VzID0gQllURV9HRVQgKGFiaWZs YWdzX2V4dC0+YXNlcyk7CisJICAgICAgYWJpZmxhZ3NfaW4uZmxhZ3MxID0g QllURV9HRVQgKGFiaWZsYWdzX2V4dC0+ZmxhZ3MxKTsKKwkgICAgICBhYmlm bGFnc19pbi5mbGFnczIgPSBCWVRFX0dFVCAoYWJpZmxhZ3NfZXh0LT5mbGFn czIpOworCisJICAgICAgcHJpbnRmICgiXG5NSVBTIEFCSSBGbGFncyBWZXJz aW9uOiAlZFxuIiwgYWJpZmxhZ3NfaW4udmVyc2lvbik7CisJICAgICAgcHJp bnRmICgiXG5JU0E6IE1JUFMlZCIsIGFiaWZsYWdzX2luLmlzYV9sZXZlbCk7 CisJICAgICAgaWYgKGFiaWZsYWdzX2luLmlzYV9yZXYgPiAxKQorCQlwcmlu dGYgKCJyJWQiLCBhYmlmbGFnc19pbi5pc2FfcmV2KTsKKwkgICAgICBwcmlu dGYgKCJcbkdQUiBzaXplOiAlZCIsCisJCSAgICAgIGdldF9taXBzX3JlZ19z aXplIChhYmlmbGFnc19pbi5ncHJfc2l6ZSkpOworCSAgICAgIHByaW50ZiAo IlxuQ1BSMSBzaXplOiAlZCIsCisJCSAgICAgIGdldF9taXBzX3JlZ19zaXpl IChhYmlmbGFnc19pbi5jcHIxX3NpemUpKTsKKwkgICAgICBwcmludGYgKCJc bkNQUjIgc2l6ZTogJWQiLAorCQkgICAgICBnZXRfbWlwc19yZWdfc2l6ZSAo YWJpZmxhZ3NfaW4uY3ByMl9zaXplKSk7CisJICAgICAgZnB1dHMgKCJcbkZQ IEFCSTogIiwgc3Rkb3V0KTsKKwkgICAgICBwcmludF9taXBzX2ZwX2FiaV92 YWx1ZSAoYWJpZmxhZ3NfaW4uZnBfYWJpKTsKKwkgICAgICBmcHV0cyAoIklT QSBFeHRlbnNpb246ICIsIHN0ZG91dCk7CisJICAgICAgcHJpbnRfbWlwc19p c2FfZXh0IChhYmlmbGFnc19pbi5pc2FfZXh0KTsKKwkgICAgICBmcHV0cyAo IlxuQVNFczoiLCBzdGRvdXQpOworCSAgICAgIHByaW50X21pcHNfYXNlcyAo YWJpZmxhZ3NfaW4uYXNlcyk7CisJICAgICAgcHJpbnRmICgiXG5GTEFHUyAx OiAlOC44bHgiLCBhYmlmbGFnc19pbi5mbGFnczEpOworCSAgICAgIHByaW50 ZiAoIlxuRkxBR1MgMjogJTguOGx4IiwgYWJpZmxhZ3NfaW4uZmxhZ3MyKTsK KwkgICAgICBmcHV0YyAoJ1xuJywgc3Rkb3V0KTsKKwkgICAgICBmcmVlIChh YmlmbGFnc19leHQpOworCSAgICB9CisJfQorICAgIH0KKwogICAvKiBXZSBo YXZlIGEgbG90IG9mIHNwZWNpYWwgc2VjdGlvbnMuICBUaGFua3MgU0dJISAg Ki8KICAgaWYgKGR5bmFtaWNfc2VjdGlvbiA9PSBOVUxMKQogICAgIC8qIE5v IGluZm9ybWF0aW9uIGF2YWlsYWJsZS4gICovCkBAIC0xMjc4NywxMSArMTI5 NjgsMTEgQEAgcHJvY2Vzc19taXBzX3NwZWNpZmljIChGSUxFICogZmlsZSkK ICAgaWYgKG9wdGlvbnNfb2Zmc2V0ICE9IDApCiAgICAgewogICAgICAgRWxm X0V4dGVybmFsX09wdGlvbnMgKiBlb3B0OwotICAgICAgRWxmX0ludGVybmFs X1NoZHIgKiBzZWN0ID0gc2VjdGlvbl9oZWFkZXJzOwogICAgICAgRWxmX0lu dGVybmFsX09wdGlvbnMgKiBpb3B0OwogICAgICAgRWxmX0ludGVybmFsX09w dGlvbnMgKiBvcHRpb247CiAgICAgICBzaXplX3Qgb2Zmc2V0OwogICAgICAg aW50IGNudDsKKyAgICAgIHNlY3QgPSBzZWN0aW9uX2hlYWRlcnM7CiAKICAg ICAgIC8qIEZpbmQgdGhlIHNlY3Rpb24gaGVhZGVyIHNvIHRoYXQgd2UgZ2V0 IHRoZSBzaXplLiAgKi8KICAgICAgIHdoaWxlIChzZWN0LT5zaF90eXBlICE9 IFNIVF9NSVBTX09QVElPTlMpCmRpZmYgLS1naXQgYS9lbGZjcHAvZWxmY3Bw LmggYi9lbGZjcHAvZWxmY3BwLmgKaW5kZXggOGU4ZTY3NS4uM2U1NWRiNSAx MDA2NDQKLS0tIGEvZWxmY3BwL2VsZmNwcC5oCisrKyBiL2VsZmNwcC9lbGZj cHAuaApAQCAtNDk1LDYgKzQ5NSw4IEBAIGVudW0gUFQKICAgUFRfTUlQU19S VFBST0MgPSAweDcwMDAwMDAxLAogICAvLyAuTUlQUy5vcHRpb25zIHNlY3Rp b24uCiAgIFBUX01JUFNfT1BUSU9OUyA9IDB4NzAwMDAwMDIsCisgIC8vIC5N SVBTLmFiaWZsYWdzIHNlY3Rpb24uCisgIFBUX01JUFNfQUJJRkxBR1MgPSAw eDcwMDAwMDAzLAogICAvLyBQbGF0Zm9ybSBhcmNoaXRlY3R1cmUgY29tcGF0 aWJpbGl0eSBpbmZvcm1hdGlvbgogICBQVF9BQVJDSDY0X0FSQ0hFWFQgPSAw eDcwMDAwMDAwLAogICAvLyBFeGNlcHRpb24gdW53aW5kIHRhYmxlcwpkaWZm IC0tZ2l0IGEvZ2FzL2NvbmZpZy90Yy1taXBzLmMgYi9nYXMvY29uZmlnL3Rj LW1pcHMuYwppbmRleCA0ODE0YTY5Li5iMGVjZjE5IDEwMDY0NAotLS0gYS9n YXMvY29uZmlnL3RjLW1pcHMuYworKysgYi9nYXMvY29uZmlnL3RjLW1pcHMu YwpAQCAtODksNiArODksNyBAQCBpbnQgbWlwc19mbGFnX3BkciA9IFRSVUU7 CiAjaW5jbHVkZSAiZWNvZmYuaCIKIAogc3RhdGljIGNoYXIgKm1pcHNfcmVn bWFza19mcmFnOworc3RhdGljIGNoYXIgKm1pcHNfZmxhZ3NfZnJhZzsKIAog I2RlZmluZSBaRVJPIDAKICNkZWZpbmUgQVRSRUcgMQpAQCAtMjU3LDYgKzI1 OCwxMCBAQCBzdHJ1Y3QgbWlwc19zZXRfb3B0aW9ucwogICAgICBDaGFuZ2Vk IGJ5IC5zZXQgc2luZ2xlZmxvYXQgb3IgLnNldCBkb3VibGVmbG9hdCwgY29t bWFuZC1saW5lIG9wdGlvbnMKICAgICAgLW1zaW5nbGUtZmxvYXQgb3IgLW1k b3VibGUtZmxvYXQuICBUaGUgZGVmYXVsdCBpcyBmYWxzZS4gICovCiAgIGJm ZF9ib29sZWFuIHNpbmdsZV9mbG9hdDsKKworICAvKiAxIGlmIHNpbmdsZS1w cmVjaXNpb24gb3BlcmF0aW9ucyBvbiBvZGQtbnVtYmVyZWQgcmVnaXN0ZXJz IGFyZQorICAgICBub3QgYWxsb3dlZCAoZXZlbiBpZiBzdXBwb3J0ZWQgYnkg SVNBX0hBU19PRERfU0lOR0xFX0ZQUikuICAqLworICBpbnQgbm9vZGRzcHJl ZzsKIH07CiAKIC8qIFNwZWNpZmllcyB3aGV0aGVyIG1vZHVsZSBsZXZlbCBv cHRpb25zIGhhdmUgYmVlbiBjaGVja2VkIHlldC4gICovCkBAIC0yNzUsNyAr MjgwLDcgQEAgc3RhdGljIHN0cnVjdCBtaXBzX3NldF9vcHRpb25zIGZpbGVf bWlwc19vcHRzID0KICAgLyogbm9yZW9yZGVyICovIDAsICAvKiBhdCAqLyBB VFJFRywgLyogd2Fybl9hYm91dF9tYWNyb3MgKi8gMCwKICAgLyogbm9tb3Zl ICovIDAsIC8qIG5vYm9wdCAqLyAwLCAvKiBub2F1dG9leHRlbmQgKi8gMCwg LyogaW5zbjMyICovIEZBTFNFLAogICAvKiBncCAqLyAtMSwgLyogZnAgKi8g LTEsIC8qIGFyY2ggKi8gQ1BVX1VOS05PV04sIC8qIHN5bTMyICovIEZBTFNF LAotICAvKiBzb2Z0X2Zsb2F0ICovIEZBTFNFLCAvKiBzaW5nbGVfZmxvYXQg Ki8gRkFMU0UKKyAgLyogc29mdF9mbG9hdCAqLyBGQUxTRSwgLyogc2luZ2xl X2Zsb2F0ICovIEZBTFNFLCAvKiBub29kZHNwcmVnICovIC0xCiB9OwogCiAv KiBUaGlzIGlzIHNpbWlsYXIgdG8gZmlsZV9taXBzX29wdHMsIGJ1dCBmb3Ig dGhlIGN1cnJlbnQgc2V0IG9mIG9wdGlvbnMuICAqLwpAQCAtMjg2LDcgKzI5 MSw3IEBAIHN0YXRpYyBzdHJ1Y3QgbWlwc19zZXRfb3B0aW9ucyBtaXBzX29w dHMgPQogICAvKiBub3Jlb3JkZXIgKi8gMCwgIC8qIGF0ICovIEFUUkVHLCAv KiB3YXJuX2Fib3V0X21hY3JvcyAqLyAwLAogICAvKiBub21vdmUgKi8gMCwg Lyogbm9ib3B0ICovIDAsIC8qIG5vYXV0b2V4dGVuZCAqLyAwLCAvKiBpbnNu MzIgKi8gRkFMU0UsCiAgIC8qIGdwICovIC0xLCAvKiBmcCAqLyAtMSwgLyog YXJjaCAqLyBDUFVfVU5LTk9XTiwgLyogc3ltMzIgKi8gRkFMU0UsCi0gIC8q IHNvZnRfZmxvYXQgKi8gRkFMU0UsIC8qIHNpbmdsZV9mbG9hdCAqLyBGQUxT RQorICAvKiBzb2Z0X2Zsb2F0ICovIEZBTFNFLCAvKiBzaW5nbGVfZmxvYXQg Ki8gRkFMU0UsIC8qIG5vb2Rkc3ByZWcgKi8gLTEKIH07CiAKIC8qIFdoaWNo IGJpdHMgb2YgZmlsZV9hc2Ugd2VyZSBleHBsaWNpdGx5IHNldCBvciBjbGVh cmVkIGJ5IEFTRSBvcHRpb25zLiAgKi8KQEAgLTM5MiwxNSArMzk3LDE3IEBA IHN0YXRpYyBpbnQgbWlwc18zMmJpdG1vZGUgPSAwOwogICAgKQogCiAvKiBS ZXR1cm4gdHJ1ZSBpZiBJU0Egc3VwcG9ydHMgc2luZ2xlLXByZWNpc2lvbiBm bG9hdHMgaW4gb2RkIHJlZ2lzdGVycy4gICovCi0jZGVmaW5lIElTQV9IQVNf T0REX1NJTkdMRV9GUFIoSVNBKQlcCi0gICgoSVNBKSA9PSBJU0FfTUlQUzMy CQkJXAotICAgfHwgKElTQSkgPT0gSVNBX01JUFMzMlIyCQlcCi0gICB8fCAo SVNBKSA9PSBJU0FfTUlQUzMyUjMJCVwKLSAgIHx8IChJU0EpID09IElTQV9N SVBTMzJSNQkJXAotICAgfHwgKElTQSkgPT0gSVNBX01JUFM2NAkJXAotICAg fHwgKElTQSkgPT0gSVNBX01JUFM2NFIyCQlcCi0gICB8fCAoSVNBKSA9PSBJ U0FfTUlQUzY0UjMJCVwKLSAgIHx8IChJU0EpID09IElTQV9NSVBTNjRSNSkK KyNkZWZpbmUgSVNBX0hBU19PRERfU0lOR0xFX0ZQUihJU0EsIENQVSlcCisg ICgoKElTQSkgPT0gSVNBX01JUFMzMgkJCVwKKyAgICB8fCAoSVNBKSA9PSBJ U0FfTUlQUzMyUjIJCVwKKyAgICB8fCAoSVNBKSA9PSBJU0FfTUlQUzMyUjMJ CVwKKyAgICB8fCAoSVNBKSA9PSBJU0FfTUlQUzMyUjUJCVwKKyAgICB8fCAo SVNBKSA9PSBJU0FfTUlQUzY0CQlcCisgICAgfHwgKElTQSkgPT0gSVNBX01J UFM2NFIyCQlcCisgICAgfHwgKElTQSkgPT0gSVNBX01JUFM2NFIzCQlcCisg ICAgfHwgKElTQSkgPT0gSVNBX01JUFM2NFI1CQlcCisgICAgfHwgKENQVSkg PT0gQ1BVX1I1OTAwKQkJXAorICAgJiYgKENQVSkgIT0gQ1BVX0xPT05HU09O XzNBKQogCiAvKiBSZXR1cm4gdHJ1ZSBpZiBJU0Egc3VwcG9ydHMgbW92ZSB0 by9mcm9tIGhpZ2ggcGFydCBvZiBhIDY0LWJpdAogICAgZmxvYXRpbmctcG9p bnQgcmVnaXN0ZXIuICovCkBAIC0xNDA3LDYgKzE0MTQsNyBAQCBlbnVtIG9w dGlvbnMKICAgICBPUFRJT05fQ09OU1RSVUNUX0ZMT0FUUywKICAgICBPUFRJ T05fTk9fQ09OU1RSVUNUX0ZMT0FUUywKICAgICBPUFRJT05fRlA2NCwKKyAg ICBPUFRJT05fRlBYWCwKICAgICBPUFRJT05fR1A2NCwKICAgICBPUFRJT05f UkVMQVhfQlJBTkNILAogICAgIE9QVElPTl9OT19SRUxBWF9CUkFOQ0gsCkBA IC0xNDM0LDYgKzE0NDIsOCBAQCBlbnVtIG9wdGlvbnMKICAgICBPUFRJT05f Tk9fUERSLAogICAgIE9QVElPTl9NVlhXT1JLU19QSUMsCiAgICAgT1BUSU9O X05BTiwKKyAgICBPUFRJT05fT0REX1NQUkVHLAorICAgIE9QVElPTl9OT19P RERfU1BSRUcsCiAgICAgT1BUSU9OX0VORF9PRl9FTlVNCiAgIH07CiAKQEAg LTE1MjYsNiArMTUzNiw3IEBAIHN0cnVjdCBvcHRpb24gbWRfbG9uZ29wdHNb XSA9CiAgIHsiY29uc3RydWN0LWZsb2F0cyIsIG5vX2FyZ3VtZW50LCBOVUxM LCBPUFRJT05fQ09OU1RSVUNUX0ZMT0FUU30sCiAgIHsibm8tY29uc3RydWN0 LWZsb2F0cyIsIG5vX2FyZ3VtZW50LCBOVUxMLCBPUFRJT05fTk9fQ09OU1RS VUNUX0ZMT0FUU30sCiAgIHsibWZwNjQiLCBub19hcmd1bWVudCwgTlVMTCwg T1BUSU9OX0ZQNjR9LAorICB7Im1mcHh4Iiwgbm9fYXJndW1lbnQsIE5VTEws IE9QVElPTl9GUFhYfSwKICAgeyJtZ3A2NCIsIG5vX2FyZ3VtZW50LCBOVUxM LCBPUFRJT05fR1A2NH0sCiAgIHsicmVsYXgtYnJhbmNoIiwgbm9fYXJndW1l bnQsIE5VTEwsIE9QVElPTl9SRUxBWF9CUkFOQ0h9LAogICB7Im5vLXJlbGF4 LWJyYW5jaCIsIG5vX2FyZ3VtZW50LCBOVUxMLCBPUFRJT05fTk9fUkVMQVhf QlJBTkNIfSwKQEAgLTE1MzksNiArMTU1MCw4IEBAIHN0cnVjdCBvcHRpb24g bWRfbG9uZ29wdHNbXSA9CiAgIHsibWhhcmQtZmxvYXQiLCBub19hcmd1bWVu dCwgTlVMTCwgT1BUSU9OX0hBUkRfRkxPQVR9LAogICB7Im1zaW5nbGUtZmxv YXQiLCBub19hcmd1bWVudCwgTlVMTCwgT1BUSU9OX1NJTkdMRV9GTE9BVH0s CiAgIHsibWRvdWJsZS1mbG9hdCIsIG5vX2FyZ3VtZW50LCBOVUxMLCBPUFRJ T05fRE9VQkxFX0ZMT0FUfSwKKyAgeyJtb2RkLXNwcmVnIiwgbm9fYXJndW1l bnQsIE5VTEwsIE9QVElPTl9PRERfU1BSRUd9LAorICB7Im1uby1vZGQtc3By ZWciLCBub19hcmd1bWVudCwgTlVMTCwgT1BUSU9OX05PX09ERF9TUFJFR30s CiAKICAgLyogU3RyaWN0bHkgc3BlYWtpbmcgdGhpcyBuZXh0IG9wdGlvbiBp cyBFTEYgc3BlY2lmaWMsCiAgICAgIGJ1dCB3ZSBhbGxvdyBpdCBmb3Igb3Ro ZXIgcG9ydHMgYXMgd2VsbCBpbiBvcmRlciB0bwpAQCAtMzYxMiw2ICszNjI1 LDEyIEBAIG1kX2JlZ2luICh2b2lkKQogCX0KICAgICAgIH0KIAorICAgIHNl YyA9IHN1YnNlZ19uZXcgKCIuTUlQUy5hYmlmbGFncyIsIChzdWJzZWdUKSAw KTsKKyAgICBiZmRfc2V0X3NlY3Rpb25fZmxhZ3MgKHN0ZG91dHB1dCwgc2Vj LAorCQkJICAgU0VDX1JFQURPTkxZIHwgU0VDX0RBVEEgfCBTRUNfQUxMT0Mg fCBTRUNfTE9BRCk7CisgICAgYmZkX3NldF9zZWN0aW9uX2FsaWdubWVudCAo c3Rkb3V0cHV0LCBzZWMsIDMpOworICAgIG1pcHNfZmxhZ3NfZnJhZyA9IGZy YWdfbW9yZSAoc2l6ZW9mIChFbGZfRXh0ZXJuYWxfQUJJRmxhZ3NfdjApKTsK KwogICAgIGlmIChFQ09GRl9ERUJVR0dJTkcpCiAgICAgICB7CiAJc2VjID0g c3Vic2VnX25ldyAoIi5tZGVidWciLCAoc3Vic2VnVCkgMCk7CkBAIC0zNjM1 LDYgKzM2NTQsODggQEAgbWRfYmVnaW4gKHZvaWQpCiAgICAgaW5pdF92cjQx MjBfY29uZmxpY3RzICgpOwogfQogCitzdGF0aWMgaW5saW5lIHZvaWQKK2Zw YWJpX2luY29tcGF0aWJsZV93aXRoIChpbnQgZnBhYmksIGNvbnN0IGNoYXIg KndoYXQpCit7CisgIGFzX3dhcm4gKF8oIi5nbnVfYXR0cmlidXRlICVkLCVk IGlzIGluY29tcGF0aWJsZSB3aXRoIGAlcyciKSwKKwkgICBUYWdfR05VX01J UFNfQUJJX0ZQLCBmcGFiaSwgd2hhdCk7Cit9CisKK3N0YXRpYyBpbmxpbmUg dm9pZAorZnBhYmlfcmVxdWlyZXMgKGludCBmcGFiaSwgY29uc3QgY2hhciAq d2hhdCkKK3sKKyAgYXNfd2FybiAoXygiLmdudV9hdHRyaWJ1dGUgJWQsJWQg cmVxdWlyZXMgYCVzJyIpLAorCSAgIFRhZ19HTlVfTUlQU19BQklfRlAsIGZw YWJpLCB3aGF0KTsKK30KKworLyogQ2hlY2sgLW1hYmkgYW5kIHJlZ2lzdGVy IHNpemVzIGFnYWluc3QgdGhlIHNwZWNpZmllZCBGUCBBQkkuICAqLworc3Rh dGljIHZvaWQKK2NoZWNrX2ZwYWJpIChpbnQgZnBhYmkpCit7CisgIGJmZF9i b29sZWFuIG5lZWRzX2NoZWNrID0gRkFMU0U7CisgIHN3aXRjaCAoZnBhYmkp CisgICAgeworICAgIGNhc2UgVmFsX0dOVV9NSVBTX0FCSV9GUF9ET1VCTEU6 CisgICAgICBpZiAoZmlsZV9taXBzX29wdHMuZ3AgPT0gNjQgJiYgZmlsZV9t aXBzX29wdHMuZnAgPT0gMzIpCisJZnBhYmlfaW5jb21wYXRpYmxlX3dpdGgg KGZwYWJpLCAiZ3A9NjQgZnA9MzIiKTsKKyAgICAgIGVsc2UgaWYgKGZpbGVf bWlwc19vcHRzLmdwID09IDMyICYmIGZpbGVfbWlwc19vcHRzLmZwID09IDY0 KQorCWZwYWJpX2luY29tcGF0aWJsZV93aXRoIChmcGFiaSwgImdwPTMyIGZw PTY0Iik7CisgICAgICBlbHNlCisJbmVlZHNfY2hlY2sgPSBUUlVFOworICAg ICAgYnJlYWs7CisKKyAgICBjYXNlIFZhbF9HTlVfTUlQU19BQklfRlBfWFg6 CisgICAgICBpZiAobWlwc19hYmkgIT0gTzMyX0FCSSkKKwlmcGFiaV9yZXF1 aXJlcyAoZnBhYmksICItbWFiaT0zMiIpOworICAgICAgZWxzZSBpZiAoZmls ZV9taXBzX29wdHMuZnAgIT0gMCkKKwlmcGFiaV9yZXF1aXJlcyAoZnBhYmks ICJmcD14eCIpOworICAgICAgZWxzZQorCW5lZWRzX2NoZWNrID0gVFJVRTsK KyAgICAgIGJyZWFrOworCisgICAgY2FzZSBWYWxfR05VX01JUFNfQUJJX0ZQ XzY0QToKKyAgICBjYXNlIFZhbF9HTlVfTUlQU19BQklfRlBfNjQ6CisgICAg ICBpZiAobWlwc19hYmkgIT0gTzMyX0FCSSkKKwlmcGFiaV9yZXF1aXJlcyAo ZnBhYmksICItbWFiaT0zMiIpOworICAgICAgZWxzZSBpZiAoZmlsZV9taXBz X29wdHMuZnAgIT0gNjQpCisJZnBhYmlfcmVxdWlyZXMgKGZwYWJpLCAiZnA9 NjQiKTsKKyAgICAgIGVsc2UgaWYgKGZwYWJpID09IFZhbF9HTlVfTUlQU19B QklfRlBfNjQgJiYgZmlsZV9taXBzX29wdHMubm9vZGRzcHJlZykKKwlmcGFi aV9pbmNvbXBhdGlibGVfd2l0aCAoZnBhYmksICJub29kZHNwcmVnIik7Cisg ICAgICBlbHNlIGlmIChmcGFiaSA9PSBWYWxfR05VX01JUFNfQUJJX0ZQXzY0 QSAmJiAhZmlsZV9taXBzX29wdHMubm9vZGRzcHJlZykKKwlmcGFiaV9yZXF1 aXJlcyAoZnBhYmksICJub29kZHNwcmVnIik7CisgICAgICBlbHNlCisJbmVl ZHNfY2hlY2sgPSBUUlVFOworICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFZh bF9HTlVfTUlQU19BQklfRlBfU0lOR0xFOgorICAgICAgaWYgKGZpbGVfbWlw c19vcHRzLnNvZnRfZmxvYXQpCisJZnBhYmlfaW5jb21wYXRpYmxlX3dpdGgg KGZwYWJpLCAic29mdGZsb2F0Iik7CisgICAgICBlbHNlIGlmICghZmlsZV9t aXBzX29wdHMuc2luZ2xlX2Zsb2F0KQorCWZwYWJpX3JlcXVpcmVzIChmcGFi aSwgInNpbmdsZWZsb2F0Iik7CisgICAgICBicmVhazsKKworICAgIGNhc2Ug VmFsX0dOVV9NSVBTX0FCSV9GUF9TT0ZUOgorICAgICAgaWYgKCFmaWxlX21p cHNfb3B0cy5zb2Z0X2Zsb2F0KQorCWZwYWJpX3JlcXVpcmVzIChmcGFiaSwg InNvZnRmbG9hdCIpOworICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFZhbF9H TlVfTUlQU19BQklfRlBfT0xEXzY0OgorICAgICAgYXNfd2FybiAoXygiLmdu dV9hdHRyaWJ1dGUgJWQsJWQgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCIpLAor CSAgICAgICBUYWdfR05VX01JUFNfQUJJX0ZQLCBmcGFiaSk7CisgICAgICBi cmVhazsKKworICAgIGRlZmF1bHQ6CisgICAgICBhc193YXJuIChfKCIuZ251 X2F0dHJpYnV0ZSAlZCwlZCBpcyBub3QgYSByZWNvZ25pemVkIgorCSAgICAg ICAgICIgZmxvYXRpbmctcG9pbnQgQUJJIiksIFRhZ19HTlVfTUlQU19BQklf RlAsIGZwYWJpKTsKKyAgICAgIGJyZWFrOworICAgIH0KKworICBpZiAobmVl ZHNfY2hlY2sgJiYgZmlsZV9taXBzX29wdHMuc29mdF9mbG9hdCkKKyAgICBm cGFiaV9pbmNvbXBhdGlibGVfd2l0aCAoZnBhYmksICJzb2Z0ZmxvYXQiKTsK KyAgZWxzZSBpZiAobmVlZHNfY2hlY2sgJiYgZmlsZV9taXBzX29wdHMuc2lu Z2xlX2Zsb2F0KQorICAgIGZwYWJpX2luY29tcGF0aWJsZV93aXRoIChmcGFi aSwgInNpbmdsZWZsb2F0Iik7Cit9CisKIC8qIFBlcmZvcm0gY29uc2lzdGVu Y3kgY2hlY2tzIG9uIHRoZSBjdXJyZW50IG9wdGlvbnMuICAqLwogCiBzdGF0 aWMgdm9pZApAQCAtMzY1Myw2ICszNzU0LDEyIEBAIG1pcHNfY2hlY2tfb3B0 aW9ucyAoc3RydWN0IG1pcHNfc2V0X29wdGlvbnMgKm9wdHMsIGJmZF9ib29s ZWFuIGFiaV9jaGVja3MpCiAgIC8qIENoZWNrIHRoZSBzaXplIG9mIHRoZSBm bG9hdCByZWdpc3RlcnMgYWdyZWVzIHdpdGggdGhlIEFCSSBhbmQgSVNBLiAg Ki8KICAgc3dpdGNoIChvcHRzLT5mcCkKICAgICB7CisgICAgY2FzZSAwOgor ICAgICAgaWYgKCFDUFVfSEFTX0xEQzFfU0RDMSAob3B0cy0+YXJjaCkpCisJ YXNfYmFkIChfKCJgZnA9eHgnIHVzZWQgd2l0aCBhIGNwdSBsYWNraW5nIGxk YzEvc2RjMSBpbnN0cnVjdGlvbnMiKSk7CisgICAgICBlbHNlIGlmIChvcHRz LT5zaW5nbGVfZmxvYXQgPT0gMSkKKwlhc19iYWQgKF8oImBmcD14eCcgY2Fu bm90IGJlIHVzZWQgd2l0aCBgc2luZ2xlZmxvYXQnIikpOworICAgICAgYnJl YWs7CiAgICAgY2FzZSA2NDoKICAgICAgIGlmICghSVNBX0hBU182NEJJVF9G UFJTIChvcHRzLT5pc2EpKQogCWFzX2JhZCAoXygiYGZwPTY0JyB1c2VkIHdp dGggYSAzMi1iaXQgZnB1IikpOwpAQCAtMzY3MSw2ICszNzc4LDkgQEAgbWlw c19jaGVja19vcHRpb25zIChzdHJ1Y3QgbWlwc19zZXRfb3B0aW9ucyAqb3B0 cywgYmZkX2Jvb2xlYW4gYWJpX2NoZWNrcykKICAgICAgIGJyZWFrOwogICAg IH0KIAorICBpZiAoQUJJX05FRURTXzY0QklUX1JFR1MgKG1pcHNfYWJpKSAm JiBvcHRzLT5ub29kZHNwcmVnKQorICAgIGFzX2JhZCAoXygiYG5vb2Rkc3By ZWdgIGNhbm5vdCBiZSB1c2VkIHdpdGggYSA2NC1iaXQgQUJJIikpOworCiAg IGlmIChvcHRzLT5taWNyb21pcHMgPT0gMSAmJiBvcHRzLT5taXBzMTYgPT0g MSkKICAgICBhc19iYWQgKF8oImBtaXBzMTYnIGNhbm5vdCBiZSB1c2VkIHdp dGggYG1pY3JvbWlwcyciKSk7CiB9CkBAIC0zNzI4LDYgKzM4MzgsMTYgQEAg ZmlsZV9taXBzX2NoZWNrX29wdGlvbnMgKHZvaWQpCiAKICAgYXJjaF9pbmZv ID0gbWlwc19jcHVfaW5mb19mcm9tX2FyY2ggKGZpbGVfbWlwc19vcHRzLmFy Y2gpOwogCisgIC8qIERpc2FibGUgb3BlcmF0aW9ucyBvbiBvZGQtbnVtYmVy ZWQgZmxvYXRpbmctcG9pbnQgcmVnaXN0ZXJzIGJ5IGRlZmF1bHQKKyAgICAg d2hlbiB1c2luZyB0aGUgRlBYWCBBQkkuICAqLworICBpZiAoZmlsZV9taXBz X29wdHMubm9vZGRzcHJlZyA8IDApCisgICAgeworICAgICAgaWYgKGZpbGVf bWlwc19vcHRzLmZwID09IDApCisJZmlsZV9taXBzX29wdHMubm9vZGRzcHJl ZyA9IDE7CisgICAgICBlbHNlCisJZmlsZV9taXBzX29wdHMubm9vZGRzcHJl ZyA9IDA7CisgICAgfQorCiAgIC8qIEVuZCBvZiBHQ0Mtc2hhcmVkIGluZmVy ZW5jZSBjb2RlLiAgKi8KIAogICAvKiBUaGlzIGZsYWcgaXMgc2V0IHdoZW4g d2UgaGF2ZSBhIDY0LWJpdCBjYXBhYmxlIENQVSBidXQgdXNlIG9ubHkKQEAg LTQzNzcsMzkgKzQ0OTcsNDEgQEAgc3RhdGljIGJmZF9ib29sZWFuCiBtaXBz X29kZGZwcmVnX29rIChjb25zdCBzdHJ1Y3QgbWlwc19vcGNvZGUgKmluc24s IGludCBvcG51bSkKIHsKICAgY29uc3QgY2hhciAqcyA9IGluc24tPm5hbWU7 CisgIGJmZF9ib29sZWFuIG9kZHNwcmVnID0gKElTQV9IQVNfT0REX1NJTkdM RV9GUFIgKG1pcHNfb3B0cy5pc2EsIG1pcHNfb3B0cy5hcmNoKQorCQkJICB8 fCBGUFJfU0laRSA9PSA2NCkKKwkJCSAmJiAhbWlwc19vcHRzLm5vb2Rkc3By ZWc7CiAKICAgaWYgKGluc24tPnBpbmZvID09IElOU05fTUFDUk8pCiAgICAg LyogTGV0IGEgbWFjcm8gcGFzcywgd2UnbGwgY2F0Y2ggaXQgbGF0ZXIgd2hl biBpdCBpcyBleHBhbmRlZC4gICovCiAgICAgcmV0dXJuIFRSVUU7CiAKLSAg aWYgKElTQV9IQVNfT0REX1NJTkdMRV9GUFIgKG1pcHNfb3B0cy5pc2EpIHx8 IG1pcHNfb3B0cy5hcmNoID09IENQVV9SNTkwMCkKLSAgICB7Ci0gICAgICAv KiBBbGxvdyBvZGQgcmVnaXN0ZXJzIGZvciBzaW5nbGUtcHJlY2lzaW9uIG9w cy4gICovCi0gICAgICBzd2l0Y2ggKGluc24tPnBpbmZvICYgKEZQX1MgfCBG UF9EKSkKLQl7Ci0JY2FzZSBGUF9TOgotCWNhc2UgMDoKLQkgIHJldHVybiBU UlVFOwotCWNhc2UgRlBfRDoKLQkgIHJldHVybiBGQUxTRTsKLQlkZWZhdWx0 OgotCSAgYnJlYWs7Ci0JfQorICAvKiBTaW5nbGUtcHJlY2lzaW9uIGNvcHJv Y2Vzc29yIGxvYWRzIGFuZCBtb3ZlcyBhcmUgT0sgZm9yIDMyLWJpdCByZWdp c3RlcnMsCisgICAgIG90aGVyd2lzZSBpdCBkZXBlbmRzIG9uIG9kZHNwcmVn LiAgKi8KKyAgaWYgKChpbnNuLT5waW5mbyAmIEZQX1MpCisgICAgICAmJiAo aW5zbi0+cGluZm8gJiBJTlNOX0ZQXzMyX01PVkUpKQorICAgIHJldHVybiBG UFJfU0laRSA9PSAzMiB8fCBvZGRzcHJlZzsKIAotICAgICAgLyogQ3Z0Lncu eCBhbmQgY3Z0LngudyBhbGxvdyBhbiBvZGQgcmVnaXN0ZXIgZm9yIGEgJ3cn IG9yICdzJyBvcGVyYW5kLiAgKi8KLSAgICAgIHMgPSBzdHJjaHIgKGluc24t Pm5hbWUsICcuJyk7Ci0gICAgICBpZiAocyAhPSBOVUxMICYmIG9wbnVtID09 IDIpCi0JcyA9IHN0cmNociAocyArIDEsICcuJyk7Ci0gICAgICByZXR1cm4g KHMgIT0gTlVMTCAmJiAoc1sxXSA9PSAndycgfHwgc1sxXSA9PSAncycpKTsK KyAgLyogQWxsb3cgb2RkIHJlZ2lzdGVycyBmb3Igc2luZ2xlLXByZWNpc2lv biBvcHMgYW5kIGRvdWJsZS1wcmVjaXNpb24gaWYgdGhlCisgICAgIGZsb2F0 aW5nLXBvaW50IHJlZ2lzdGVycyBhcmUgNjQtYml0IHdpZGUuICAqLworICBz d2l0Y2ggKGluc24tPnBpbmZvICYgKEZQX1MgfCBGUF9EKSkKKyAgICB7Cisg ICAgY2FzZSBGUF9TOgorICAgIGNhc2UgMDoKKyAgICAgIHJldHVybiBvZGRz cHJlZzsKKyAgICBjYXNlIEZQX0Q6CisgICAgICByZXR1cm4gRlBSX1NJWkUg PT0gNjQ7CisgICAgZGVmYXVsdDoKKyAgICAgIGJyZWFrOwogICAgIH0KIAot ICAvKiBTaW5nbGUtcHJlY2lzaW9uIGNvcHJvY2Vzc29yIGxvYWRzIGFuZCBt b3ZlcyBhcmUgT0sgdG9vLiAgKi8KLSAgaWYgKChpbnNuLT5waW5mbyAmIEZQ X1MpCi0gICAgICAmJiAoaW5zbi0+cGluZm8gJiAoSU5TTl9DT1BST0NfTUVN T1JZX0RFTEFZIHwgSU5TTl9TVE9SRV9NRU1PUlkKLQkJCSB8IElOU05fTE9B RF9DT1BST0NfREVMQVkgfCBJTlNOX0NPUFJPQ19NT1ZFX0RFTEFZKSkpCi0g ICAgcmV0dXJuIFRSVUU7CisgIC8qIEN2dC53LnggYW5kIGN2dC54LncgYWxs b3cgYW4gb2RkIHJlZ2lzdGVyIGZvciBhICd3JyBvciAncycgb3BlcmFuZC4g ICovCisgIHMgPSBzdHJjaHIgKGluc24tPm5hbWUsICcuJyk7CisgIGlmIChz ICE9IE5VTEwgJiYgb3BudW0gPT0gMikKKyAgICBzID0gc3RyY2hyIChzICsg MSwgJy4nKTsKKyAgaWYgKHMgIT0gTlVMTCAmJiAoc1sxXSA9PSAndycgfHwg c1sxXSA9PSAncycpKQorICAgIHJldHVybiBvZGRzcHJlZzsKIAotICByZXR1 cm4gRkFMU0U7CisgIHJldHVybiBGUFJfU0laRSA9PSA2NDsKIH0KIAogLyog SW5mb3JtYXRpb24gYWJvdXQgYW4gaW5zdHJ1Y3Rpb24gYXJndW1lbnQgdGhh dCB3ZSdyZSB0cnlpbmcgdG8gbWF0Y2guICAqLwpAQCAtNDYzMiw5ICs0NzU0 LDE2IEBAIGNoZWNrX3JlZ25vIChzdHJ1Y3QgbWlwc19hcmdfaW5mbyAqYXJn LAogCiAgIGlmICh0eXBlID09IE9QX1JFR19GUAogICAgICAgJiYgKHJlZ25v ICYgMSkgIT0gMAotICAgICAgJiYgRlBSX1NJWkUgIT0gNjQKICAgICAgICYm ICFtaXBzX29kZGZwcmVnX29rIChhcmctPmluc24tPmluc25fbW8sIGFyZy0+ b3BudW0pKQotICAgIGFzX3dhcm4gKF8oImZsb2F0IHJlZ2lzdGVyIHNob3Vs ZCBiZSBldmVuLCB3YXMgJWQiKSwgcmVnbm8pOworICAgIHsKKyAgICAgIC8q IFRoaXMgd2FzIGEgd2FybmluZyBwcmlvciB0byBpbnRyb2R1Y2luZyBPMzIg RlBYWCBhbmQgRlA2NCBzdXBwb3J0CisJIHNvIG1haW50YWluIGEgd2Fybmlu ZyBmb3IgRlAzMiBidXQgcmFpc2UgYW4gZXJyb3IgZm9yIHRoZSBuZXcKKwkg Y2FzZXMuICAqLworICAgICAgaWYgKEZQUl9TSVpFID09IDMyKQorCWFzX3dh cm4gKF8oImZsb2F0IHJlZ2lzdGVyIHNob3VsZCBiZSBldmVuLCB3YXMgJWQi KSwgcmVnbm8pOworICAgICAgZWxzZQorCWFzX2JhZCAoXygiZmxvYXQgcmVn aXN0ZXIgc2hvdWxkIGJlIGV2ZW4sIHdhcyAlZCIpLCByZWdubyk7CisgICAg fQogCiAgIGlmICh0eXBlID09IE9QX1JFR19DQ0MpCiAgICAgewpAQCAtNTQ4 OCwxMyArNTYxNywxNiBAQCBtYXRjaF9mbG9hdF9jb25zdGFudCAoc3RydWN0 IG1pcHNfYXJnX2luZm8gKmFyZywgZXhwcmVzc2lvblMgKmltbSwKICAgLyog SGFuZGxlIDY0LWJpdCBjb25zdGFudHMgZm9yIHdoaWNoIGFuIGltbWVkaWF0 ZSB2YWx1ZSBpcyBiZXN0LiAgKi8KICAgaWYgKGxlbmd0aCA9PSA4CiAgICAg ICAmJiAhbWlwc19kaXNhYmxlX2Zsb2F0X2NvbnN0cnVjdGlvbgotICAgICAg LyogQ29uc3RhbnRzIGNhbiBvbmx5IGJlIGNvbnN0cnVjdGVkIGluIEdQUnMg YW5kIGNvcGllZAotCSB0byBGUFJzIGlmIHRoZSBHUFJzIGFyZSBhdCBsZWFz dCBhcyB3aWRlIGFzIHRoZSBGUFJzLgotCSBGb3JjZSB0aGUgY29uc3RhbnQg aW50byBtZW1vcnkgaWYgd2UgYXJlIHVzaW5nIDY0LWJpdCBGUFJzCi0JIGJ1 dCB0aGUgR1BScyBhcmUgb25seSAzMiBiaXRzIHdpZGUuICAqLwotICAgICAg LyogPz8/IE5vIGxvbmdlciB0cnVlIHdpdGggdGhlIGFkZGl0aW9uIG9mIE1U SEMxLCBidXQgdGhpcwotCSBpcyBsZWdhY3kgY29kZS4uLiAgKi8KLSAgICAg ICYmICh1c2luZ19ncHJzIHx8ICEoRlBSX1NJWkUgPT0gNjQgJiYgR1BSX1NJ WkUgPT0gMzIpKQorICAgICAgLyogQ29uc3RhbnRzIGNhbiBvbmx5IGJlIGNv bnN0cnVjdGVkIGluIEdQUnMgYW5kIGNvcGllZCB0byBGUFJzIGlmIHRoZQor CSBHUFJzIGFyZSBhdCBsZWFzdCBhcyB3aWRlIGFzIHRoZSBGUFJzIG9yIE1U SEMxIGlzIGF2YWlsYWJsZS4KKwkgVW5saWtlIG1vc3QgdGVzdHMgZm9yIDMy LWJpdCBmbG9hdGluZy1wb2ludCByZWdpc3RlcnMgdGhpcyBjaGVjaworCSBz cGVjaWZpY2FsbHkgbG9va3MgZm9yIEdQUl9TSVpFID09IDMyIGFzIHRoZSBG UFhYIEFCSSBkb2VzIG5vdAorCSBwZXJtaXQgNjQtYml0IG1vdmVzIHdpdGhv dXQgTVhIQzEuCisJIEZvcmNlIHRoZSBjb25zdGFudCBpbnRvIG1lbW9yeSBv dGhlcndpc2UuICAqLworICAgICAgJiYgKHVzaW5nX2dwcnMKKwkgIHx8IEdQ Ul9TSVpFID09IDY0CisJICB8fCBJU0FfSEFTX01YSEMxIChtaXBzX29wdHMu aXNhKQorCSAgfHwgRlBSX1NJWkUgPT0gMzIpCiAgICAgICAmJiAoKGRhdGFb MF0gPT0gMCAmJiBkYXRhWzFdID09IDApCiAJICB8fCAoZGF0YVsyXSA9PSAw ICYmIGRhdGFbM10gPT0gMCkpCiAgICAgICAmJiAoKGRhdGFbNF0gPT0gMCAm JiBkYXRhWzVdID09IDApCkBAIC01NTA0LDcgKzU2MzYsNyBAQCBtYXRjaF9m bG9hdF9jb25zdGFudCAoc3RydWN0IG1pcHNfYXJnX2luZm8gKmFyZywgZXhw cmVzc2lvblMgKmltbSwKIAkgSWYgdXNpbmcgMzItYml0IHJlZ2lzdGVycywg c2V0IElNTSB0byB0aGUgaGlnaCBvcmRlciAzMiBiaXRzIGFuZAogCSBPRkZT RVQgdG8gdGhlIGxvdyBvcmRlciAzMiBiaXRzLiAgT3RoZXJ3aXNlLCBzZXQg SU1NIHRvIHRoZSBlbnRpcmUKIAkgNjQgYml0IGNvbnN0YW50LiAgKi8KLSAg ICAgIGlmICh1c2luZ19ncHJzID8gR1BSX1NJWkUgPT0gMzIgOiBGUFJfU0la RSAhPSA2NCkKKyAgICAgIGlmIChHUFJfU0laRSA9PSAzMiB8fCAoIXVzaW5n X2dwcnMgJiYgRlBSX1NJWkUgIT0gNjQpKQogCXsKIAkgIGltbS0+WF9vcCA9 IE9fY29uc3RhbnQ7CiAJICBvZmZzZXQtPlhfb3AgPSBPX2NvbnN0YW50OwpA QCAtMTE2ODYsMTQgKzExODE4LDE4IEBAIG1hY3JvIChzdHJ1Y3QgbWlwc19j bF9pbnNuICppcCwgY2hhciAqc3RyKQogCXsKIAkgIHVzZWRfYXQgPSAxOwog CSAgbG9hZF9yZWdpc3RlciAoQVQsICZpbW1fZXhwciwgRlBSX1NJWkUgPT0g NjQpOwotCSAgaWYgKEZQUl9TSVpFID09IDY0KQotCSAgICB7Ci0JICAgICAg Z2FzX2Fzc2VydCAoR1BSX1NJWkUgPT0gNjQpOwotCSAgICAgIG1hY3JvX2J1 aWxkIChOVUxMLCAiZG10YzEiLCAidCxTIiwgQVQsIG9wWzBdKTsKLQkgICAg fQorCSAgaWYgKEZQUl9TSVpFID09IDY0ICYmIEdQUl9TSVpFID09IDY0KQor CSAgICBtYWNyb19idWlsZCAoTlVMTCwgImRtdGMxIiwgInQsUyIsIEFULCBv cFswXSk7CiAJICBlbHNlCiAJICAgIHsKLQkgICAgICBtYWNyb19idWlsZCAo TlVMTCwgIm10YzEiLCAidCxHIiwgQVQsIG9wWzBdICsgMSk7CisJICAgICAg aWYgKElTQV9IQVNfTVhIQzEgKG1pcHNfb3B0cy5pc2EpKQorCSAgICAgICAg bWFjcm9fYnVpbGQgKE5VTEwsICJtdGhjMSIsICJ0LEciLCBBVCwgb3BbMF0p OworCSAgICAgIGVsc2UgaWYgKEZQUl9TSVpFICE9IDMyKQorCQlhc19iYWQg KF8oIlVuYWJsZSB0byBnZW5lcmF0ZSBgJXMnIGNvbXBsaWFudCBjb2RlICIK KwkJCSAgIndpdGhvdXQgbXRoYzEiKSwKKwkJCShGUFJfU0laRSA9PSA2NCkg PyAiZnA2NCIgOiAiZnB4eCIpOworCSAgICAgIGVsc2UKKwkJbWFjcm9fYnVp bGQgKE5VTEwsICJtdGMxIiwgInQsRyIsIEFULCBvcFswXSArIDEpOwogCSAg ICAgIGlmIChvZmZzZXRfZXhwci5YX29wID09IE9fYWJzZW50KQogCQltYWNy b19idWlsZCAoTlVMTCwgIm10YzEiLCAidCxHIiwgMCwgb3BbMF0pOwogCSAg ICAgIGVsc2UKQEAgLTEzOTM5LDEwICsxNDA3NSwyMiBAQCBtZF9wYXJzZV9v cHRpb24gKGludCBjLCBjaGFyICphcmcpCiAgICAgICBmaWxlX21pcHNfb3B0 cy5mcCA9IDMyOwogICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIE9QVElPTl9G UFhYOgorICAgICAgZmlsZV9taXBzX29wdHMuZnAgPSAwOworICAgICAgYnJl YWs7CisKICAgICBjYXNlIE9QVElPTl9GUDY0OgogICAgICAgZmlsZV9taXBz X29wdHMuZnAgPSA2NDsKICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBPUFRJ T05fT0REX1NQUkVHOgorICAgICAgZmlsZV9taXBzX29wdHMubm9vZGRzcHJl ZyA9IDA7CisgICAgICBicmVhazsKKworICAgIGNhc2UgT1BUSU9OX05PX09E RF9TUFJFRzoKKyAgICAgIGZpbGVfbWlwc19vcHRzLm5vb2Rkc3ByZWcgPSAx OworICAgICAgYnJlYWs7CisKICAgICBjYXNlIE9QVElPTl9TSU5HTEVfRkxP QVQ6CiAgICAgICBmaWxlX21pcHNfb3B0cy5zaW5nbGVfZmxvYXQgPSAxOwog ICAgICAgYnJlYWs7CkBAIC0xNTAzMSw2ICsxNTE3OSw4IEBAIHBhcnNlX2Nv ZGVfb3B0aW9uIChjaGFyICogbmFtZSkKICAgICBtaXBzX29wdHMuZ3AgPSA2 NDsKICAgZWxzZSBpZiAoc3RyY21wIChuYW1lLCAiZnA9MzIiKSA9PSAwKQog ICAgIG1pcHNfb3B0cy5mcCA9IDMyOworICBlbHNlIGlmIChzdHJjbXAgKG5h bWUsICJmcD14eCIpID09IDApCisgICAgbWlwc19vcHRzLmZwID0gMDsKICAg ZWxzZSBpZiAoc3RyY21wIChuYW1lLCAiZnA9NjQiKSA9PSAwKQogICAgIG1p cHNfb3B0cy5mcCA9IDY0OwogICBlbHNlIGlmIChzdHJjbXAgKG5hbWUsICJz b2Z0ZmxvYXQiKSA9PSAwKQpAQCAtMTUwNDEsNiArMTUxOTEsMTAgQEAgcGFy c2VfY29kZV9vcHRpb24gKGNoYXIgKiBuYW1lKQogICAgIG1pcHNfb3B0cy5z aW5nbGVfZmxvYXQgPSAxOwogICBlbHNlIGlmIChzdHJjbXAgKG5hbWUsICJk b3VibGVmbG9hdCIpID09IDApCiAgICAgbWlwc19vcHRzLnNpbmdsZV9mbG9h dCA9IDA7CisgIGVsc2UgaWYgKHN0cmNtcCAobmFtZSwgIm5vb2Rkc3ByZWci KSA9PSAwKQorICAgIG1pcHNfb3B0cy5ub29kZHNwcmVnID0gMTsKKyAgZWxz ZSBpZiAoc3RyY21wIChuYW1lLCAib2Rkc3ByZWciKSA9PSAwKQorICAgIG1p cHNfb3B0cy5ub29kZHNwcmVnID0gMDsKICAgZWxzZSBpZiAoc3RyY21wIChu YW1lLCAibWlwczE2IikgPT0gMAogCSAgIHx8IHN0cmNtcCAobmFtZSwgIk1J UFMtMTYiKSA9PSAwKQogICAgIG1pcHNfb3B0cy5taXBzMTYgPSAxOwpAQCAt MTUyMDIsMTMgKzE1MzU2LDE3IEBAIHNfbWlwc3NldCAoaW50IHggQVRUUklC VVRFX1VOVVNFRCkKIAljYXNlIDA6CiAJICBicmVhazsKIAljYXNlIElTQV9N SVBTMToKKwkgIC8qIE1JUFMgSSBjYW5ub3Qgc3VwcG9ydCBGUFhYLiAgKi8K KwkgIG1pcHNfb3B0cy5mcCA9IDMyOworCSAgLyogZmFsbC10aHJvdWdoLiAg Ki8KIAljYXNlIElTQV9NSVBTMjoKIAljYXNlIElTQV9NSVBTMzI6CiAJY2Fz ZSBJU0FfTUlQUzMyUjI6CiAJY2FzZSBJU0FfTUlQUzMyUjM6CiAJY2FzZSBJ U0FfTUlQUzMyUjU6CiAJICBtaXBzX29wdHMuZ3AgPSAzMjsKLQkgIG1pcHNf b3B0cy5mcCA9IDMyOworCSAgaWYgKG1pcHNfb3B0cy5mcCAhPSAwKQorCSAg ICBtaXBzX29wdHMuZnAgPSAzMjsKIAkgIGJyZWFrOwogCWNhc2UgSVNBX01J UFMzOgogCWNhc2UgSVNBX01JUFM0OgpAQCAtMTUyMTgsMTAgKzE1Mzc2LDEz IEBAIHNfbWlwc3NldCAoaW50IHggQVRUUklCVVRFX1VOVVNFRCkKIAljYXNl IElTQV9NSVBTNjRSMzoKIAljYXNlIElTQV9NSVBTNjRSNToKIAkgIG1pcHNf b3B0cy5ncCA9IDY0OwotCSAgaWYgKG1pcHNfb3B0cy5hcmNoID09IENQVV9S NTkwMCkKLQkgICAgbWlwc19vcHRzLmZwID0gMzI7Ci0JICBlbHNlCi0JICAg IG1pcHNfb3B0cy5mcCA9IDY0OworCSAgaWYgKG1pcHNfb3B0cy5mcCAhPSAw KQorCSAgICB7CisJICAgICAgaWYgKG1pcHNfb3B0cy5hcmNoID09IENQVV9S NTkwMCkKKwkJbWlwc19vcHRzLmZwID0gMzI7CisJICAgICAgZWxzZQorCQlt aXBzX29wdHMuZnAgPSA2NDsKKwkgICAgfQogCSAgYnJlYWs7CiAJZGVmYXVs dDoKIAkgIGFzX2JhZCAoXygidW5rbm93biBJU0EgbGV2ZWwgJXMiKSwgbmFt ZSArIDQpOwpAQCAtMTczNzEsMTEgKzE3NTMyLDEyMyBAQCBtaXBzX2FkZF9k b3RfbGFiZWwgKHN5bWJvbFMgKnN5bSkKICAgICBtaXBzX2NvbXByZXNzZWRf bWFya19sYWJlbCAoc3ltKTsKIH0KIAwKKy8qIENvbnZlcnRpbmcgQVNFIGZs YWdzIGZyb20gaW50ZXJuYWwgdG8gLk1JUFMuYWJpZmxhZ3MgdmFsdWVzLiAg Ki8KK3N0YXRpYyB1bnNpZ25lZCBpbnQKK21pcHNfY29udmVydF9hc2VfZmxh Z3MgKGludCBhc2UpCit7CisgIHVuc2lnbmVkIGludCBleHRfYXNlcyA9IDA7 CisKKyAgaWYgKGFzZSAmIEFTRV9EU1ApCisgICAgZXh0X2FzZXMgfD0gQUZM X0FTRV9EU1A7CisgIGlmIChhc2UgJiBBU0VfRFNQUjIpCisgICAgZXh0X2Fz ZXMgfD0gQUZMX0FTRV9EU1BSMjsKKyAgaWYgKGFzZSAmIEFTRV9FVkEpCisg ICAgZXh0X2FzZXMgfD0gQUZMX0FTRV9FVkE7CisgIGlmIChhc2UgJiBBU0Vf TUNVKQorICAgIGV4dF9hc2VzIHw9IEFGTF9BU0VfTUNVOworICBpZiAoYXNl ICYgQVNFX01ETVgpCisgICAgZXh0X2FzZXMgfD0gQUZMX0FTRV9NRE1YOwor ICBpZiAoYXNlICYgQVNFX01JUFMzRCkKKyAgICBleHRfYXNlcyB8PSBBRkxf QVNFX01JUFMzRDsKKyAgaWYgKGFzZSAmIEFTRV9NVCkKKyAgICBleHRfYXNl cyB8PSBBRkxfQVNFX01UOworICBpZiAoYXNlICYgQVNFX1NNQVJUTUlQUykK KyAgICBleHRfYXNlcyB8PSBBRkxfQVNFX1NNQVJUTUlQUzsKKyAgaWYgKGFz ZSAmIEFTRV9WSVJUKQorICAgIGV4dF9hc2VzIHw9IEFGTF9BU0VfVklSVDsK KyAgaWYgKGFzZSAmIEFTRV9NU0EpCisgICAgZXh0X2FzZXMgfD0gQUZMX0FT RV9NU0E7CisgIGlmIChhc2UgJiBBU0VfWFBBKQorICAgIGV4dF9hc2VzIHw9 IEFGTF9BU0VfWFBBOworCisgIHJldHVybiBleHRfYXNlczsKK30KIC8qIFNv bWUgc3BlY2lhbCBwcm9jZXNzaW5nIGZvciBhIE1JUFMgRUxGIGZpbGUuICAq LwogCiB2b2lkCiBtaXBzX2VsZl9maW5hbF9wcm9jZXNzaW5nICh2b2lkKQog eworICBpbnQgZnBhYmk7CisgIEVsZl9JbnRlcm5hbF9BQklGbGFnc192MCBm bGFnczsKKworICBmbGFncy52ZXJzaW9uID0gMDsKKyAgZmxhZ3MuaXNhX3Jl diA9IDA7CisgIHN3aXRjaCAoZmlsZV9taXBzX29wdHMuaXNhKQorICAgIHsK KyAgICBjYXNlIElOU05fSVNBMToKKyAgICAgIGZsYWdzLmlzYV9sZXZlbCA9 IDE7CisgICAgICBicmVhazsKKyAgICBjYXNlIElOU05fSVNBMjoKKyAgICAg IGZsYWdzLmlzYV9sZXZlbCA9IDI7CisgICAgICBicmVhazsKKyAgICBjYXNl IElOU05fSVNBMzoKKyAgICAgIGZsYWdzLmlzYV9sZXZlbCA9IDM7CisgICAg ICBicmVhazsKKyAgICBjYXNlIElOU05fSVNBNDoKKyAgICAgIGZsYWdzLmlz YV9sZXZlbCA9IDQ7CisgICAgICBicmVhazsKKyAgICBjYXNlIElOU05fSVNB NToKKyAgICAgIGZsYWdzLmlzYV9sZXZlbCA9IDU7CisgICAgICBicmVhazsK KyAgICBjYXNlIElOU05fSVNBMzI6CisgICAgICBmbGFncy5pc2FfbGV2ZWwg PSAzMjsKKyAgICAgIGZsYWdzLmlzYV9yZXYgPSAxOworICAgICAgYnJlYWs7 CisgICAgY2FzZSBJTlNOX0lTQTMyUjI6CisgICAgICBmbGFncy5pc2FfbGV2 ZWwgPSAzMjsKKyAgICAgIGZsYWdzLmlzYV9yZXYgPSAyOworICAgICAgYnJl YWs7CisgICAgY2FzZSBJTlNOX0lTQTMyUjM6CisgICAgICBmbGFncy5pc2Ff bGV2ZWwgPSAzMjsKKyAgICAgIGZsYWdzLmlzYV9yZXYgPSAzOworICAgICAg YnJlYWs7CisgICAgY2FzZSBJTlNOX0lTQTMyUjU6CisgICAgICBmbGFncy5p c2FfbGV2ZWwgPSAzMjsKKyAgICAgIGZsYWdzLmlzYV9yZXYgPSA1OworICAg ICAgYnJlYWs7CisgICAgY2FzZSBJTlNOX0lTQTY0OgorICAgICAgZmxhZ3Mu aXNhX2xldmVsID0gNjQ7CisgICAgICBmbGFncy5pc2FfcmV2ID0gMTsKKyAg ICAgIGJyZWFrOworICAgIGNhc2UgSU5TTl9JU0E2NFIyOgorICAgICAgZmxh Z3MuaXNhX2xldmVsID0gNjQ7CisgICAgICBmbGFncy5pc2FfcmV2ID0gMjsK KyAgICAgIGJyZWFrOworICAgIGNhc2UgSU5TTl9JU0E2NFIzOgorICAgICAg ZmxhZ3MuaXNhX2xldmVsID0gNjQ7CisgICAgICBmbGFncy5pc2FfcmV2ID0g MzsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgSU5TTl9JU0E2NFI1OgorICAg ICAgZmxhZ3MuaXNhX2xldmVsID0gNjQ7CisgICAgICBmbGFncy5pc2FfcmV2 ID0gNTsKKyAgICAgIGJyZWFrOworICAgIH0KKworICBmbGFncy5ncHJfc2l6 ZSA9IGZpbGVfbWlwc19vcHRzLmdwID09IDMyID8gQUZMX1JFR18zMiA6IEFG TF9SRUdfNjQ7CisgIGZsYWdzLmNwcjFfc2l6ZSA9IGZpbGVfbWlwc19vcHRz LnNvZnRfZmxvYXQgPyBBRkxfUkVHX05PTkUKKwkJICAgIDogKGZpbGVfbWlw c19vcHRzLmFzZSAmIEFTRV9NU0EpID8gQUZMX1JFR18xMjgKKwkJICAgIDog KGZpbGVfbWlwc19vcHRzLmZwID09IDY0KSA/IEFGTF9SRUdfNjQKKwkJICAg IDogQUZMX1JFR18zMjsKKyAgZmxhZ3MuY3ByMl9zaXplID0gQUZMX1JFR19O T05FOworICBmbGFncy5mcF9hYmkgPSBiZmRfZWxmX2dldF9vYmpfYXR0cl9p bnQgKHN0ZG91dHB1dCwgT0JKX0FUVFJfR05VLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhZ19HTlVfTUlQU19BQklf RlApOworICBmbGFncy5pc2FfZXh0ID0gYmZkX21pcHNfaXNhX2V4dCAoc3Rk b3V0cHV0KTsKKyAgZmxhZ3MuYXNlcyA9IG1pcHNfY29udmVydF9hc2VfZmxh Z3MgKGZpbGVfbWlwc19vcHRzLmFzZSk7CisgIGlmIChmaWxlX2FzZV9taXBz MTYpCisgICAgZmxhZ3MuYXNlcyB8PSBBRkxfQVNFX01JUFMxNjsKKyAgaWYg KGZpbGVfYXNlX21pY3JvbWlwcykKKyAgICBmbGFncy5hc2VzIHw9IEFGTF9B U0VfTUlDUk9NSVBTOworICBmbGFncy5mbGFnczEgPSAwOworICBpZiAoKElT QV9IQVNfT0REX1NJTkdMRV9GUFIgKGZpbGVfbWlwc19vcHRzLmlzYSwgZmls ZV9taXBzX29wdHMuYXJjaCkKKyAgICAgICB8fCBmaWxlX21pcHNfb3B0cy5m cCA9PSA2NCkKKyAgICAgICYmICFmaWxlX21pcHNfb3B0cy5ub29kZHNwcmVn KQorICAgIGZsYWdzLmZsYWdzMSB8PSBBRkxfRkxBR1MxX09ERFNQUkVHOwor ICBmbGFncy5mbGFnczIgPSAwOworCisgIGJmZF9taXBzX2VsZl9zd2FwX2Fi aWZsYWdzX3YwX291dCAoc3Rkb3V0cHV0LCAmZmxhZ3MsCisJCQkJICAgICAo KEVsZl9FeHRlcm5hbF9BQklGbGFnc192MCAqKQorCQkJCSAgICAgbWlwc19m bGFnc19mcmFnKSk7CisKICAgLyogV3JpdGUgb3V0IHRoZSByZWdpc3RlciBp bmZvcm1hdGlvbi4gICovCiAgIGlmIChtaXBzX2FiaSAhPSBONjRfQUJJKQog ICAgIHsKQEAgLTE3NDU0LDcgKzE3NzI3LDkgQEAgbWlwc19lbGZfZmluYWxf cHJvY2Vzc2luZyAodm9pZCkKICAgICBlbGZfZWxmaGVhZGVyIChzdGRvdXRw dXQpLT5lX2ZsYWdzIHw9IEVGX01JUFNfTkFOMjAwODsKIAogICAvKiAzMiBi aXQgY29kZSB3aXRoIDY0IGJpdCBGUCByZWdpc3RlcnMuICAqLwotICBpZiAo ZmlsZV9taXBzX29wdHMuZnAgPT0gNjQgJiYgQUJJX05FRURTXzMyQklUX1JF R1MgKG1pcHNfYWJpKSkKKyAgZnBhYmkgPSBiZmRfZWxmX2dldF9vYmpfYXR0 cl9pbnQgKHN0ZG91dHB1dCwgT0JKX0FUVFJfR05VLAorCQkJCSAgICBUYWdf R05VX01JUFNfQUJJX0ZQKTsKKyAgaWYgKGZwYWJpID09IFZhbF9HTlVfTUlQ U19BQklfRlBfT0xEXzY0KQogICAgIGVsZl9lbGZoZWFkZXIgKHN0ZG91dHB1 dCktPmVfZmxhZ3MgfD0gRUZfTUlQU19GUDY0OwogfQogDApAQCAtMTg0MDIs MTAgKzE4Njc3LDU3IEBAIG1pcHNfY29udmVydF9zeW1ib2xpY19hdHRyaWJ1 dGUgKGNvbnN0IGNoYXIgKm5hbWUpCiB2b2lkCiBtZF9taXBzX2VuZCAodm9p ZCkKIHsKKyAgaW50IGZwYWJpID0gVmFsX0dOVV9NSVBTX0FCSV9GUF9BTlk7 CisKICAgbWlwc19lbWl0X2RlbGF5cyAoKTsKICAgaWYgKGN1cl9wcm9jX3B0 cikKICAgICBhc193YXJuIChfKCJtaXNzaW5nIC5lbmQgYXQgZW5kIG9mIGFz c2VtYmx5IikpOwogCiAgIC8qIEp1c3QgaW4gY2FzZSBubyBjb2RlIHdhcyBl bWl0dGVkLCBkbyB0aGUgY29uc2lzdGVuY3kgY2hlY2suICAqLwogICBmaWxl X21pcHNfY2hlY2tfb3B0aW9ucyAoKTsKKworICAvKiBTZXQgYSBmbG9hdGlu Zy1wb2ludCBBQkkgaWYgdGhlIHVzZXIgZGlkIG5vdC4gICovCisgIGlmIChv YmpfZWxmX3NlZW5fYXR0cmlidXRlIChPQkpfQVRUUl9HTlUsIFRhZ19HTlVf TUlQU19BQklfRlApKQorICAgIHsKKworICAgICAgLyogUGVyZm9ybSBjb25z aXN0ZW5jeSBjaGVja3Mgb24gdGhlIGZsb2F0aW5nLXBvaW50IEFCSS4gICov CisgICAgICBmcGFiaSA9IGJmZF9lbGZfZ2V0X29ial9hdHRyX2ludCAoc3Rk b3V0cHV0LCBPQkpfQVRUUl9HTlUsCisJCQkJCVRhZ19HTlVfTUlQU19BQklf RlApOworICAgICAgaWYgKGZwYWJpICE9IFZhbF9HTlVfTUlQU19BQklfRlBf QU5ZKQorCWNoZWNrX2ZwYWJpIChmcGFiaSk7CisgICAgfQorICBlbHNlCisg ICAgeworICAgICAgLyogU29mdC1mbG9hdCBnZXRzIHByZWNlZGVuY2Ugb3Zl ciBzaW5nbGUtZmxvYXQsIHRoZSB0d28gb3B0aW9ucyBzaG91bGQKKyAgICAg ICAgIG5vdCBiZSB1c2VkIHRvZ2V0aGVyIHNvIHRoaXMgc2hvdWxkIG5vdCBt YXR0ZXIuICAqLworICAgICAgaWYgKGZpbGVfbWlwc19vcHRzLnNvZnRfZmxv YXQgPT0gMSkKKwlmcGFiaSA9IFZhbF9HTlVfTUlQU19BQklfRlBfU09GVDsK KyAgICAgIC8qIFNpbmdsZS1mbG9hdCBnZXRzIHByZWNlZGVuY2Ugb3ZlciBh bGwgZG91YmxlX2Zsb2F0IGNhc2VzLiAgKi8KKyAgICAgIGVsc2UgaWYgKGZp bGVfbWlwc19vcHRzLnNpbmdsZV9mbG9hdCA9PSAxKQorCWZwYWJpID0gVmFs X0dOVV9NSVBTX0FCSV9GUF9TSU5HTEU7CisgICAgICBlbHNlCisJeworCSAg c3dpdGNoIChmaWxlX21pcHNfb3B0cy5mcCkKKwkgICAgeworCSAgICBjYXNl IDMyOgorCSAgICAgIGlmIChmaWxlX21pcHNfb3B0cy5ncCA9PSAzMikKKwkJ ZnBhYmkgPSBWYWxfR05VX01JUFNfQUJJX0ZQX0RPVUJMRTsKKwkgICAgICBi cmVhazsKKwkgICAgY2FzZSAwOgorCSAgICAgIGZwYWJpID0gVmFsX0dOVV9N SVBTX0FCSV9GUF9YWDsKKwkgICAgICBicmVhazsKKwkgICAgY2FzZSA2NDoK KwkgICAgICBpZiAoZmlsZV9taXBzX29wdHMuZ3AgPT0gMzIgJiYgZmlsZV9t aXBzX29wdHMubm9vZGRzcHJlZykKKwkJZnBhYmkgPSBWYWxfR05VX01JUFNf QUJJX0ZQXzY0QTsKKwkgICAgICBlbHNlIGlmIChmaWxlX21pcHNfb3B0cy5n cCA9PSAzMikKKwkJZnBhYmkgPSBWYWxfR05VX01JUFNfQUJJX0ZQXzY0Owor CSAgICAgIGVsc2UKKwkJZnBhYmkgPSBWYWxfR05VX01JUFNfQUJJX0ZQX0RP VUJMRTsKKwkgICAgICBicmVhazsKKwkgICAgfQorCX0KKworICAgICAgYmZk X2VsZl9hZGRfb2JqX2F0dHJfaW50IChzdGRvdXRwdXQsIE9CSl9BVFRSX0dO VSwKKwkJCQlUYWdfR05VX01JUFNfQUJJX0ZQLCBmcGFiaSk7CisgICAgfQog fQpkaWZmIC0tZ2l0IGEvZ2FzL2RvYy9hcy50ZXhpbmZvIGIvZ2FzL2RvYy9h cy50ZXhpbmZvCmluZGV4IDBmMDk1NmMuLjI1MWI2ZDUgMTAwNjQ0Ci0tLSBh L2dhcy9kb2MvYXMudGV4aW5mbworKysgYi9nYXMvZG9jL2FzLnRleGluZm8K QEAgLTM5OSw2ICszOTksOCBAQCBnY2MoMSksIGxkKDEpLCBhbmQgdGhlIElu Zm8gZW50cmllcyBmb3IgQGZpbGV7YmludXRpbHN9IGFuZCBAZmlsZXtsZH0u CiAgICBbQGJ7LWd9W0B2YXJ7ZGVidWcgbGV2ZWx9XV0gW0Biey1HfSBAdmFy e251bX1dIFtAYnstS1BJQ31dIFtAYnstY2FsbF9zaGFyZWR9XQogICAgW0Bi ey1ub25fc2hhcmVkfV0gW0Biey14Z290fSBbQGJ7LW12eHdvcmtzLXBpY31d CiAgICBbQGJ7LW1hYml9PUB2YXJ7QUJJfV0gW0Biey0zMn1dIFtAYnstbjMy fV0gW0Biey02NH1dIFtAYnstbWZwMzJ9XSBbQGJ7LW1ncDMyfV0KKyAgIFtA YnstbWZwNjR9XSBbQGJ7LW1ncDY0fV0gW0Biey1tZnB4eH1dCisgICBbQGJ7 LW1vZGQtc3ByZWd9XSBbQGJ7LW1uby1vZGQtc3ByZWd9XQogICAgW0Biey1t YXJjaH09QHZhcntDUFV9XSBbQGJ7LW10dW5lfT1AdmFye0NQVX1dIFtAYnst bWlwczF9XSBbQGJ7LW1pcHMyfV0KICAgIFtAYnstbWlwczN9XSBbQGJ7LW1p cHM0fV0gW0Biey1taXBzNX1dIFtAYnstbWlwczMyfV0gW0Biey1taXBzMzJy Mn1dCiAgICBbQGJ7LW1pcHMzMnIzfV0gW0Biey1taXBzMzJyNX1dIFtAYnst bWlwczY0fV0gW0Biey1taXBzNjRyMn1dCkBAIC0xMzIxLDYgKzEzMjMsMjUg QEAgZmxhZ3MgZm9yY2UgYSBjZXJ0YWluIGdyb3VwIG9mIHJlZ2lzdGVycyB0 byBiZSB0cmVhdGVkIGFzIDMyIGJpdHMgd2lkZSBhdAogYWxsIHRpbWVzLiAg QHNhbXB7LW1ncDMyfSBjb250cm9scyB0aGUgc2l6ZSBvZiBnZW5lcmFsLXB1 cnBvc2UgcmVnaXN0ZXJzCiBhbmQgQHNhbXB7LW1mcDMyfSBjb250cm9scyB0 aGUgc2l6ZSBvZiBmbG9hdGluZy1wb2ludCByZWdpc3RlcnMuCiAKK0BpdGVt IC1tZ3A2NAorQGl0ZW14IC1tZnA2NAorVGhlIHJlZ2lzdGVyIHNpemVzIGFy ZSBub3JtYWxseSBpbmZlcnJlZCBmcm9tIHRoZSBJU0EgYW5kIEFCSSwgYnV0 IHRoZXNlCitmbGFncyBmb3JjZSBhIGNlcnRhaW4gZ3JvdXAgb2YgcmVnaXN0 ZXJzIHRvIGJlIHRyZWF0ZWQgYXMgNjQgYml0cyB3aWRlIGF0CithbGwgdGlt ZXMuICBAc2FtcHstbWdwNjR9IGNvbnRyb2xzIHRoZSBzaXplIG9mIGdlbmVy YWwtcHVycG9zZSByZWdpc3RlcnMKK2FuZCBAc2FtcHstbWZwNjR9IGNvbnRy b2xzIHRoZSBzaXplIG9mIGZsb2F0aW5nLXBvaW50IHJlZ2lzdGVycy4KKwor QGl0ZW0gLW1mcHh4CitUaGUgcmVnaXN0ZXIgc2l6ZXMgYXJlIG5vcm1hbGx5 IGluZmVycmVkIGZyb20gdGhlIElTQSBhbmQgQUJJLCBidXQgdXNpbmcKK3Ro aXMgZmxhZyBpbiBjb21iaW5hdGlvbiB3aXRoIEBzYW1wey1tYWJpPTMyfSBl bmFibGVzIGFuIEFCSSB2YXJpYW50Cit3aGljaCB3aWxsIG9wZXJhdGUgY29y cmVjdGx5IHdpdGggZmxvYXRpbmctcG9pbnQgcmVnaXN0ZXJzIHdoaWNoIGFy ZQorMzIgb3IgNjQgYml0cyB3aWRlLgorCitAaXRlbSAtbW9kZC1zcHJlZwor QGl0ZW14IC1tbm8tb2RkLXNwcmVnCitFbmFibGUgdXNlIG9mIGZsb2F0aW5n LXBvaW50IG9wZXJhdGlvbnMgb24gb2RkLW51bWJlcmVkIHNpbmdsZS1wcmVj aXNpb24KK3JlZ2lzdGVycyB3aGVuIHN1cHBvcnRlZCBieSB0aGUgSVNBLiAg QHNhbXB7LW1mcHh4fSBpbXBsaWVzCitAc2FtcHstbW5vLW9kZC1zcHJlZ30s IG90aGVyd2lzZSB0aGUgZGVmYXVsdCBpcyBAc2FtcHstbW9kZC1zcHJlZ30u CisKIEBpdGVtIC1taXBzMTYKIEBpdGVteCAtbm8tbWlwczE2CiBHZW5lcmF0 ZSBjb2RlIGZvciB0aGUgTUlQUyAxNiBwcm9jZXNzb3IuICBUaGlzIGlzIGVx dWl2YWxlbnQgdG8gcHV0dGluZwpkaWZmIC0tZ2l0IGEvZ2FzL2RvYy9jLW1p cHMudGV4aSBiL2dhcy9kb2MvYy1taXBzLnRleGkKaW5kZXggZDI3OTVlNy4u MWU1MmUwOSAxMDA2NDQKLS0tIGEvZ2FzL2RvYy9jLW1pcHMudGV4aQorKysg Yi9nYXMvZG9jL2MtbWlwcy50ZXhpCkBAIC0yOCw2ICsyOCw3IEBAIEFzc2Vt Ymx5IExhbmd1YWdlIFByb2dyYW1taW5nJycgaW4gdGhlIHNhbWUgd29yay4K ICogTUlQUyBhc3NlbWJseSBvcHRpb25zOjogRGlyZWN0aXZlcyB0byBjb250 cm9sIGNvZGUgZ2VuZXJhdGlvbgogKiBNSVBTIGF1dG9leHRlbmQ6OglEaXJl Y3RpdmVzIGZvciBleHRlbmRpbmcgTUlQUyAxNiBiaXQgaW5zdHJ1Y3Rpb25z CiAqIE1JUFMgaW5zbjo6CQlEaXJlY3RpdmUgdG8gbWFyayBkYXRhIGFzIGFu IGluc3RydWN0aW9uCisqIE1JUFMgRlAgQUJJczo6CU1hcmtpbmcgd2hpY2gg RlAgQUJJIGlzIGluIHVzZQogKiBNSVBTIE5hTiBFbmNvZGluZ3M6OglEaXJl Y3RpdmVzIHRvIHJlY29yZCB3aGljaCBOYU4gZW5jb2RpbmcgaXMgYmVpbmcg dXNlZAogKiBNSVBTIE9wdGlvbiBTdGFjazo6CURpcmVjdGl2ZXMgdG8gc2F2 ZSBhbmQgcmVzdG9yZSBvcHRpb25zCiAqIE1JUFMgQVNFIEluc3RydWN0aW9u IEdlbmVyYXRpb24gT3ZlcnJpZGVzOjogRGlyZWN0aXZlcyB0byBjb250cm9s CkBAIC0xMjUsNiArMTI2LDIyIEBAIFRoZSBAY29kZXsuc2V0IGdwPTY0fSBh bmQgQGNvZGV7LnNldCBmcD02NH0gZGlyZWN0aXZlcyBhbGxvdyB0aGUgc2l6 ZQogb2YgcmVnaXN0ZXJzIHRvIGJlIGNoYW5nZWQgZm9yIHBhcnRzIG9mIGFu IG9iamVjdC4gVGhlIGRlZmF1bHQgdmFsdWUgaXMKIHJlc3RvcmVkIGJ5IEBj b2Rley5zZXQgZ3A9ZGVmYXVsdH0gYW5kIEBjb2Rley5zZXQgZnA9ZGVmYXVs dH0uCiAKK0BpdGVtIC1tZnB4eAorTWFrZSBubyBhc3N1bXB0aW9ucyBhYm91 dCB3aGV0aGVyIDMyLWJpdCBvciA2NC1iaXQgZmxvYXRpbmctcG9pbnQKK3Jl Z2lzdGVycyBhcmUgYXZhaWxhYmxlLiBUaGlzIGlzIHByb3ZpZGVkIHRvIHN1 cHBvcnQgaGF2aW5nIG1vZHVsZXMKK2NvbXBhdGlibGUgd2l0aCBlaXRoZXIg QHNhbXB7LW1mcDMyfSBvciBAc2FtcHstbWZwNjR9LiBUaGlzIG9wdGlvbiBj YW4KK29ubHkgYmUgdXNlZCB3aXRoIE1JUFMgSUkgYW5kIGFib3ZlLgorCitU aGUgQGNvZGV7LnNldCBmcD14eH0gZGlyZWN0aXZlIGFsbG93cyBhIHBhcnQg b2YgYW4gb2JqZWN0IHRvIGJlIG1hcmtlZAorYXMgbm90IG1ha2luZyBhc3N1 bXB0aW9ucyBhYm91dCAzMi1iaXQgb3IgNjQtYml0IEZQIHJlZ2lzdGVycy4g IFRoZQorZGVmYXVsdCB2YWx1ZSBpcyByZXN0b3JlZCBieSBAY29kZXsuc2V0 IGZwPWRlZmF1bHR9LgorCitAaXRlbSAtbW9kZC1zcHJlZworQGl0ZW14IC1t bm8tb2RkLXNwcmVnCitFbmFibGUgdXNlIG9mIGZsb2F0aW5nLXBvaW50IG9w ZXJhdGlvbnMgb24gb2RkLW51bWJlcmVkIHNpbmdsZS1wcmVjaXNpb24KK3Jl Z2lzdGVycyB3aGVuIHN1cHBvcnRlZCBieSB0aGUgSVNBLiAgQHNhbXB7LW1m cHh4fSBpbXBsaWVzCitAc2FtcHstbW5vLW9kZC1zcHJlZ30sIG90aGVyd2lz ZSB0aGUgZGVmYXVsdCBpcyBAc2FtcHstbW9kZC1zcHJlZ30KKwogQGl0ZW0g LW1pcHMxNgogQGl0ZW14IC1uby1taXBzMTYKIEdlbmVyYXRlIGNvZGUgZm9y IHRoZSBNSVBTIDE2IHByb2Nlc3Nvci4gIFRoaXMgaXMgZXF1aXZhbGVudCB0 byBwdXR0aW5nCkBAIC03NjksNiArNzg2LDExNSBAQCBiYXo6CiAKIEBlbmQg ZXhhbXBsZQogCitAbm9kZSBNSVBTIEZQIEFCSXMKK0BzZWN0aW9uIERpcmVj dGl2ZXMgdG8gY29udHJvbCB0aGUgRlAgQUJJCitAbWVudQorKiBNSVBTIEZQ IEFCSSBIaXN0b3J5OjogICAgICAgICAgICAgICAgSGlzdG9yeSBvZiBGUCBB QklzCisqIE1JUFMgRlAgQUJJIFZhcmlhbnRzOjogICAgICAgICAgICAgICBT dXBwb3J0ZWQgRlAgQUJJcworKiBNSVBTIEZQIEFCSSBTZWxlY3Rpb246OiAg ICAgICAgICAgICAgQXV0b21hdGljIHNlbGVjdGlvbiBvZiBGUCBBQkkKKyog TUlQUyBGUCBBQkkgQ29tcGF0aWJpbGl0eTo6ICAgICAgICAgIExpbmtpbmcg ZGlmZmVyZW50IEZQIEFCSSB2YXJpYW50cworQGVuZCBtZW51CisKK0Bub2Rl IE1JUFMgRlAgQUJJIEhpc3RvcnkKK0BzdWJzZWN0aW9uIEhpc3Rvcnkgb2Yg RlAgQUJJcworQGNpbmRleCBAY29kZXsuZ251X2F0dHJpYnV0ZSA0LCBAdmFy e259fSBkaXJlY3RpdmUsIE1JUFMKK0BjaW5kZXggQGNvZGV7LmdudV9hdHRy aWJ1dGUgVGFnX0dOVV9NSVBTX0FCSV9GUCwgQHZhcntufX0gZGlyZWN0aXZl LCBNSVBTCitUaGUgTUlQUyBBQklzIHN1cHBvcnQgYSB2YXJpZXR5IG9mIGRp ZmZlcmVudCBmbG9hdGluZy1wb2ludCBleHRlbnNpb25zCit3aGVyZSBjYWxs aW5nLWNvbnZlbnRpb24gYW5kIHJlZ2lzdGVyIHNpemVzIHZhcnkgZm9yIGZs b2F0aW5nLXBvaW50IGRhdGEuCitUaGUgZXh0ZW5zaW9ucyBleGlzdCB0byBz dXBwb3J0IGEgd2lkZSB2YXJpZXR5IG9mIG9wdGlvbmFsIGFyY2hpdGVjdHVy ZQorZmVhdHVyZXMuICBUaGUgcmVzdWx0aW5nIEFCSSB2YXJpYW50cyBhcmUg Z2VuZXJhbGx5IGluY29tcGF0aWJsZSB3aXRoIGVhY2gKK290aGVyIGFuZCBt dXN0IGJlIHRyYWNrZWQgY2FyZWZ1bGx5LgorCitUcmFkaXRpb25hbGx5IHRo ZSB1c2Ugb2YgYW4gZXhwbGljaXQgQGNvZGV7LmdudV9hdHRyaWJ1dGUgNCwg QHZhcntufX0KK2RpcmVjdGl2ZSBpcyB1c2VkIHRvIGluZGljYXRlIHdoaWNo IEFCSSBpcyBpbiB1c2UgYnkgYSBzcGVjaWZpYyBtb2R1bGUuCitJdCB3YXMg dGhlbiBsZWZ0IHRvIHRoZSB1c2VyIHRvIGVuc3VyZSB0aGF0IGNvbW1hbmQg bGluZSBvcHRpb25zIGFuZCB0aGUKK3NlbGVjdGVkIEFCSSB3ZXJlIGNvbXBh dGlibGUgd2l0aCBzb21lIHBvdGVudGlhbCBmb3IgaW5jb25zaXN0ZW5jaWVz LgorCitAbm9kZSBNSVBTIEZQIEFCSSBWYXJpYW50cworQHN1YnNlY3Rpb24g U3VwcG9ydGVkIEZQIEFCSXMKK1RoZSBzdXBwb3J0ZWQgZmxvYXRpbmctcG9p bnQgQUJJIHZhcmlhbnRzIGFyZToKKworQHRhYmxlIEBjb2RlCitAaXRlbSAw IC0gTm8gZmxvYXRpbmctcG9pbnQKK1RoaXMgdmFyaWFudCBpcyB1c2VkIHRv IGluZGljYXRlIHRoYXQgZmxvYXRpbmctcG9pbnQgaXMgbm90IHVzZWQgd2l0 aGluCit0aGUgbW9kdWxlIGF0IGFsbCBhbmQgdGhlcmVmb3JlIGhhcyBubyBp bXBhY3Qgb24gdGhlIEFCSS4gIFRoaXMgaXMgdGhlCitkZWZhdWx0LgorCitA aXRlbSAxIC0gRG91YmxlLXByZWNpc2lvbgorVGhpcyB2YXJpYW50IGluZGlj YXRlcyB0aGF0IGRvdWJsZS1wcmVjaXNpb24gc3VwcG9ydCBpcyB1c2VkLiAg Rm9yIDY0LWJpdAorQUJJcyB0aGlzIG1lYW5zIHRoYXQgNjQtYml0IHdpZGUg ZmxvYXRpbmctcG9pbnQgcmVnaXN0ZXJzIGFyZSByZXF1aXJlZC4KK0ZvciAz Mi1iaXQgQUJJcyB0aGlzIG1lYW5zIHRoYXQgMzItYml0IHdpZGUgZmxvYXRp bmctcG9pbnQgcmVnaXN0ZXJzIGFyZQorcmVxdWlyZWQgYW5kIGRvdWJsZS1w cmVjaXNpb24gb3BlcmF0aW9ucyB1c2UgcGFpcnMgb2YgcmVnaXN0ZXJzLgor CitAaXRlbSAyIC0gU2luZ2xlLXByZWNpc2lvbgorVGhpcyB2YXJpYW50IGlu ZGljYXRlcyB0aGF0IHNpbmdsZS1wcmVjaXNpb24gc3VwcG9ydCBpcyB1c2Vk LiAgRG91YmxlCitwcmVjaXNpb24gb3BlcmF0aW9ucyB3aWxsIGJlIHN1cHBv cnRlZCB2aWEgc29mdC1mbG9hdCByb3V0aW5lcy4KKworQGl0ZW0gMyAtIFNv ZnQtZmxvYXQKK1RoaXMgdmFyaWFudCBpbmRpY2F0ZXMgdGhhdCBhbHRob3Vn aCBmbG9hdGluZy1wb2ludCBzdXBwb3J0IGlzIHVzZWQgYWxsCitvcGVyYXRp b25zIGFyZSBlbXVsYXRlZCBpbiBzb2Z0d2FyZS4gIFRoaXMgbWVhbnMgdGhl IEFCSSBpcyBtb2RpZmllZCB0bworcGFzcyBhbGwgZmxvYXRpbmctcG9pbnQg ZGF0YSBpbiBnZW5lcmFsLXB1cnBvc2UgcmVnaXN0ZXJzLgorCitAaXRlbSA0 IC0gRGVwcmVjYXRlZAorVGhpcyB2YXJpYW50IGV4aXN0ZWQgYXMgYW4gaW5p dGlhbCBhdHRlbXB0IGF0IHN1cHBvcnRpbmcgNjQtYml0IHdpZGUKK2Zsb2F0 aW5nLXBvaW50IHJlZ2lzdGVycyBmb3IgTzMyIEFCSSBvbiBhIE1JUFMzMnIy IGNwdS4gIFRoaXMgaGFzIGJlZW4KK3N1cGVyY2VkZWQgYnkgQHZhbHVlezV9 LCBAdmFsdWV7Nn0gYW5kIEB2YWx1ZXs3fS4KKworQGl0ZW0gNSAtIERvdWJs ZS1wcmVjaXNpb24gMzItYml0IENQVSwgMzItYml0IG9yIDY0LWJpdCBGUFUK K1RoaXMgdmFyaWFudCBpcyB1c2VkIGJ5IDMyLWJpdCBBQklzIHRvIGluZGlj YXRlIHRoYXQgdGhlIGZsb2F0aW5nLXBvaW50Citjb2RlIGluIHRoZSBtb2R1 bGUgaGFzIGJlZW4gZGVzaWduZWQgdG8gb3BlcmF0ZSBjb3JyZWN0bHkgd2l0 aCBlaXRoZXIKKzMyLWJpdCB3aWRlIG9yIDY0LWJpdCB3aWRlIGZsb2F0aW5n LXBvaW50IHJlZ2lzdGVycy4gIERvdWJsZS1wcmVjaXNpb24KK3N1cHBvcnQg aXMgdXNlZC4gIE9ubHkgTzMyIGN1cnJlbnRseSBzdXBwb3J0cyB0aGlzIHZh cmlhbnQgYW5kIHJlcXVpcmVzCithIG1pbmltdW0gYXJjaGl0ZWN0dXJlIG9m IE1JUFMgSUkuCisKK0BpdGVtIDYgLSBEb3VibGUtcHJlY2lzaW9uIDMyLWJp dCBGUFUsIDY0LWJpdCBGUFUKK1RoaXMgdmFyaWFudCBpcyB1c2VkIGJ5IDMy LWJpdCBBQklzIHRvIGluZGljYXRlIHRoYXQgdGhlIGZsb2F0aW5nLXBvaW50 Citjb2RlIGluIHRoZSBtb2R1bGUgcmVxdWlyZXMgNjQtYml0IHdpZGUgZmxv YXRpbmctcG9pbnQgcmVnaXN0ZXJzLgorRG91YmxlLXByZWNpc2lvbiBzdXBw b3J0IGlzIHVzZWQuICBPbmx5IE8zMiBjdXJyZW50bHkgc3VwcG9ydHMgdGhp cwordmFyaWFudCBhbmQgcmVxdWlyZXMgYSBtaW5pbXVtIGFyY2hpdGVjdHVy ZSBvZiBNSVBTMzJyMi4KKworQGl0ZW0gNyAtIERvdWJsZS1wcmVjaXNpb24g Y29tcGF0IDMyLWJpdCBGUFUsIDY0LWJpdCBGUFUKK1RoaXMgdmFyaWFudCBp cyB1c2VkIGJ5IDMyLWJpdCBBQklzIHRvIGluZGljYXRlIHRoYXQgdGhlIGZs b2F0aW5nLXBvaW50Citjb2RlIGluIHRoZSBtb2R1bGUgcmVxdWlyZXMgNjQt Yml0IHdpZGUgZmxvYXRpbmctcG9pbnQgcmVnaXN0ZXJzLgorRG91YmxlLXBy ZWNpc2lvbiBzdXBwb3J0IGlzIHVzZWQuICBUaGlzIGRpZmZlcnMgZnJvbSB0 aGUgcHJldmlvdXMgQUJJCithcyBpdCByZXN0cmljdHMgdXNlIG9mIG9kZC1u dW1iZXJlZCBzaW5nbGUtcHJlY2lzaW9uIHJlZ2lzdGVycy4gIE9ubHkKK08z MiBjdXJyZW50bHkgc3VwcG9ydHMgdGhpcyB2YXJpYW50IGFuZCByZXF1aXJl cyBhIG1pbmltdW0gYXJjaGl0ZWN0dXJlCitvZiBNSVBTMzJyMi4KK0BlbmQg dGFibGUKKworQG5vZGUgTUlQUyBGUCBBQkkgU2VsZWN0aW9uCitAc3Vic2Vj dGlvbiBBdXRvbWF0aWMgc2VsZWN0aW9uIG9mIEZQIEFCSQorQGNpbmRleCBA Y29kZXsubW9kdWxlIGZwPUB2YXJ7bm59fSBkaXJlY3RpdmUsIE1JUFMKK0lu IG9yZGVyIHRvIHNpbXBsaWZ5IGFuZCBhZGQgc2FmZXR5IHRvIHRoZSBwcm9j ZXNzIG9mIHNlbGVjdGluZyB0aGUKK2NvcnJlY3QgZmxvYXRpbmctcG9pbnQg QUJJLCB0aGUgYXNzZW1ibGVyIHdpbGwgYXV0b21hdGljYWxseSBpbmZlciB0 aGUKK2NvcnJlY3QgQGNvZGV7LmdudV9hdHRyaWJ1dGUgNCwgQHZhcntufX0g ZGlyZWN0aXZlIGJhc2VkIG9uIGNvbW1hbmQgbGluZQorb3B0aW9ucyBhbmQg QGNvZGV7Lm1vZHVsZX0gb3ZlcnJpZGVzLiAgV2hlcmUgYW4gZXhwbGljaXQK K0Bjb2Rley5nbnVfYXR0cmlidXRlIDQsIEB2YXJ7bn19IGRpcmVjdGl2ZSBo YXMgYmVlbiBzZWVuIHRoZW4gYSB3YXJuaW5nCit3aWxsIGJlIHJhaXNlZCBp ZiBpdCBkb2VzIG5vdCBtYXRjaCBhbiBpbmZlcnJlZCBzZXR0aW5nLgorCitU aGUgZmxvYXRpbmctcG9pbnQgQUJJIGlzIGluZmVycmVkIGFzIGZvbGxvd3Mu ICBJZiBAc2FtcHstbXNvZnQtZmxvYXR9CitoYXMgYmVlbiB1c2VkIHRoZSBt b2R1bGUgd2lsbCBiZSBtYXJrZWQgYXMgc29mdC1mbG9hdC4gIElmCitAc2Ft cHstbXNpbmdsZS1mbG9hdH0gaGFzIGJlZW4gdXNlZCB0aGVuIHRoZSBtb2R1 bGUgd2lsbCBiZSBtYXJrZWQgYXMKK3NpbmdsZS1wcmVjaXNpb24uICBUaGUg cmVtYWluaW5nIEFCSXMgYXJlIHRoZW4gc2VsZWN0ZWQgYmFzZWQKK29uIHRo ZSBGUCByZWdpc3RlciB3aWR0aC4gIERvdWJsZS1wcmVjaXNpb24gaXMgc2Vs ZWN0ZWQgaWYgdGhlIHdpZHRoCitvZiBHUCBhbmQgRlAgcmVnaXN0ZXJzIG1h dGNoIGFuZCB0aGUgc3BlY2lhbCBkb3VibGUtcHJlY2lzaW9uIHZhcmlhbnRz Citmb3IgMzItYml0IEFCSXMgYXJlIHRoZW4gc2VsZWN0ZWQgZGVwZW5kaW5n IG9uIEBzYW1wey1tZnB4eH0sCitAc2FtcHstbWZwNjR9IGFuZCBAc2FtcHst bW5vLW9kZC1zcHJlZ30uCisKK0Bub2RlIE1JUFMgRlAgQUJJIENvbXBhdGli aWxpdHkKK0BzdWJzZWN0aW9uIExpbmtpbmcgZGlmZmVyZW50IEZQIEFCSSB2 YXJpYW50cworTW9kdWxlcyB1c2luZyB0aGUgZGVmYXVsdCBGUCBBQkkgKG5v IGZsb2F0aW5nLXBvaW50KSBjYW4gYmUgbGlua2VkIHdpdGgKK2FueSBvdGhl ciAoc2luZ3VsYXIpIEZQIEFCSSB2YXJpYW50LgorCitTcGVjaWFsIGNvbXBh dGliaWxpdHkgc3VwcG9ydCBleGlzdHMgZm9yIE8zMiB3aXRoIHRoZSBmb3Vy Citkb3VibGUtcHJlY2lzaW9uIEZQIEFCSSB2YXJpYW50cy4gIFRoZSBAc2Ft cHstbWZweHh9IEZQIEFCSSBpcyBzcGVjaWZpY2FsbHkKK2Rlc2lnbmVkIHRv IGJlIGNvbXBhdGlibGUgd2l0aCB0aGUgc3RhbmRhcmQgZG91YmxlLXByZWNp c2lvbiBBQkkgYW5kIHRoZQorQHNhbXB7LW1mcDY0fSBGUCBBQklzLiAgVGhp cyBtYWtlcyBpdCBkZXNpcmFibGUgZm9yIE8zMiBtb2R1bGVzIHRvIGJlCiti dWlsdCBhcyBAc2FtcHstbWZweHh9IHRvIGVuc3VyZSB0aGUgbWF4aW11bSBj b21wYXRpYmlsaXR5IHdpdGggb3RoZXIKK21vZHVsZXMgcHJvZHVjZWQgZm9y IG1vcmUgc3BlY2lmaWMgbmVlZHMuICBUaGUgb25seSBGUCBBQklzIHdoaWNo IGNhbm5vdAorYmUgbGlua2VkIHRvZ2V0aGVyIGFyZSB0aGUgc3RhbmRhcmQg ZG91YmxlLXByZWNpc2lvbiBBQkkgYW5kIHRoZSBmdWxsCitAc2FtcHstbWZw NjR9IEFCSSB3aXRoIEBzYW1wey1tb2RkLXNwcmVnfS4KKwogQG5vZGUgTUlQ UyBOYU4gRW5jb2RpbmdzCiBAc2VjdGlvbiBEaXJlY3RpdmVzIHRvIHJlY29y ZCB3aGljaCBOYU4gZW5jb2RpbmcgaXMgYmVpbmcgdXNlZAogCmRpZmYgLS1n aXQgYS9pbmNsdWRlL2VsZi9taXBzLmggYi9pbmNsdWRlL2VsZi9taXBzLmgK aW5kZXggMjk0OTYyOS4uMjRjMjM4MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9l bGYvbWlwcy5oCisrKyBiL2luY2x1ZGUvZWxmL21pcHMuaApAQCAtNDI4LDYg KzQyOCw4IEBAIEVORF9SRUxPQ19OVU1CRVJTIChSX01JUFNfbWF4ZXh0KQog LyogUnVudGltZSBwcm9jZWR1cmUgZGVzY3JpcHRvciB0YWJsZSBleGNlcHRp b24gaW5mb3JtYXRpb24gKHVjb2RlKSA/Pz8gKi8KICNkZWZpbmUgU0hUX01J UFNfUERSX0VYQ0VQVElPTgkweDcwMDAwMDI5CiAKKy8qIEFCSSByZWxhdGVk IGZsYWdzIHNlY3Rpb24uICAqLworI2RlZmluZSBTSFRfTUlQU19BQklGTEFH UwkweDcwMDAwMDJhCiAKIC8qIEEgc2VjdGlvbiBvZiB0eXBlIFNIVF9NSVBT X0xJQkxJU1QgY29udGFpbnMgYW4gYXJyYXkgb2YgdGhlCiAgICBmb2xsb3dp bmcgc3RydWN0dXJlLiAgVGhlIHNoX2xpbmsgZmllbGQgaXMgdGhlIHNlY3Rp b24gaW5kZXggb2YgdGhlCkBAIC01OTMsNiArNTk1LDkgQEAgZXh0ZXJuIHZv aWQgYmZkX21pcHNfZWxmMzJfc3dhcF9yZWdpbmZvX291dAogCiAvKiAuTUlQ Uy5vcHRpb25zIHNlY3Rpb24uICAqLwogI2RlZmluZSBQVF9NSVBTX09QVElP TlMJCTB4NzAwMDAwMDIKKworLyogUmVjb3JkcyBBQkkgcmVsYXRlZCBmbGFn cy4gICovCisjZGVmaW5lIFBUX01JUFNfQUJJRkxBR1MJMHg3MDAwMDAwMwog DAogLyogUHJvY2Vzc29yIHNwZWNpZmljIGR5bmFtaWMgYXJyYXkgdGFncy4g ICovCiAKQEAgLTEwNDgsNiArMTA1Myw1OCBAQCB0eXBlZGVmIHN0cnVjdAog ICBiZmRfdm1hIHJpX2dwX3ZhbHVlOwogfSBFbGY2NF9JbnRlcm5hbF9SZWdJ bmZvOwogCisvKiBBQkkgRmxhZ3Mgc3RydWN0dXJlIHZlcnNpb24gMC4gICov CisKK3R5cGVkZWYgc3RydWN0Cit7CisgIC8qIFZlcnNpb24gb2YgZmxhZ3Mg c3RydWN0dXJlLiAgKi8KKyAgdW5zaWduZWQgY2hhciB2ZXJzaW9uWzJdOwor ICAvKiBUaGUgbGV2ZWwgb2YgdGhlIElTQTogMS01LCAzMiwgNjQuICAqLwor ICB1bnNpZ25lZCBjaGFyIGlzYV9sZXZlbFsxXTsKKyAgLyogVGhlIHJldmlz aW9uIG9mIElTQTogMCBmb3IgTUlQUyBWIGFuZCBiZWxvdywgMS1uIG90aGVy d2lzZS4gICovCisgIHVuc2lnbmVkIGNoYXIgaXNhX3JldlsxXTsKKyAgLyog VGhlIHNpemUgb2YgZ2VuZXJhbCBwdXJwb3NlIHJlZ2lzdGVycy4gICovCisg IHVuc2lnbmVkIGNoYXIgZ3ByX3NpemVbMV07CisgIC8qIFRoZSBzaXplIG9m IGNvLXByb2Nlc3NvciAxIHJlZ2lzdGVycy4gICovCisgIHVuc2lnbmVkIGNo YXIgY3ByMV9zaXplWzFdOworICAvKiBUaGUgc2l6ZSBvZiBjby1wcm9jZXNz b3IgMiByZWdpc3RlcnMuICAqLworICB1bnNpZ25lZCBjaGFyIGNwcjJfc2l6 ZVsxXTsKKyAgLyogVGhlIGZsb2F0aW5nLXBvaW50IEFCSS4gICovCisgIHVu c2lnbmVkIGNoYXIgZnBfYWJpWzFdOworICAvKiBQcm9jZXNzb3Itc3BlY2lm aWMgZXh0ZW5zaW9uLiAgKi8KKyAgdW5zaWduZWQgY2hhciBpc2FfZXh0WzRd OworICAvKiBNYXNrIG9mIEFTRXMgdXNlZC4gICovCisgIHVuc2lnbmVkIGNo YXIgYXNlc1s0XTsKKyAgLyogTWFzayBvZiBnZW5lcmFsIGZsYWdzLiAgKi8K KyAgdW5zaWduZWQgY2hhciBmbGFnczFbNF07CisgIHVuc2lnbmVkIGNoYXIg ZmxhZ3MyWzRdOworfSBFbGZfRXh0ZXJuYWxfQUJJRmxhZ3NfdjA7CisKK3R5 cGVkZWYgc3RydWN0Cit7CisgIC8qIFZlcnNpb24gb2YgZmxhZ3Mgc3RydWN0 dXJlLiAgKi8KKyAgdW5zaWduZWQgc2hvcnQgdmVyc2lvbjsKKyAgLyogVGhl IGxldmVsIG9mIHRoZSBJU0E6IDEtNSwgMzIsIDY0LiAgKi8KKyAgdW5zaWdu ZWQgY2hhciBpc2FfbGV2ZWw7CisgIC8qIFRoZSByZXZpc2lvbiBvZiBJU0E6 IDAgZm9yIE1JUFMgViBhbmQgYmVsb3csIDEtbiBvdGhlcndpc2UuICAqLwor ICB1bnNpZ25lZCBjaGFyIGlzYV9yZXY7CisgIC8qIFRoZSBzaXplIG9mIGdl bmVyYWwgcHVycG9zZSByZWdpc3RlcnMuICAqLworICB1bnNpZ25lZCBjaGFy IGdwcl9zaXplOworICAvKiBUaGUgc2l6ZSBvZiBjby1wcm9jZXNzb3IgMSBy ZWdpc3RlcnMuICAqLworICB1bnNpZ25lZCBjaGFyIGNwcjFfc2l6ZTsKKyAg LyogVGhlIHNpemUgb2YgY28tcHJvY2Vzc29yIDIgcmVnaXN0ZXJzLiAgKi8K KyAgdW5zaWduZWQgY2hhciBjcHIyX3NpemU7CisgIC8qIFRoZSBmbG9hdGlu Zy1wb2ludCBBQkkuICAqLworICB1bnNpZ25lZCBjaGFyIGZwX2FiaTsKKyAg LyogUHJvY2Vzc29yLXNwZWNpZmljIGV4dGVuc2lvbi4gICovCisgIHVuc2ln bmVkIGxvbmcgaXNhX2V4dDsKKyAgLyogTWFzayBvZiBBU0VzIHVzZWQuICAq LworICB1bnNpZ25lZCBsb25nIGFzZXM7CisgIC8qIE1hc2sgb2YgZ2VuZXJh bCBmbGFncy4gICovCisgIHVuc2lnbmVkIGxvbmcgZmxhZ3MxOworICB1bnNp Z25lZCBsb25nIGZsYWdzMjsKK30gRWxmX0ludGVybmFsX0FCSUZsYWdzX3Yw OworCiB0eXBlZGVmIHN0cnVjdAogewogICAvKiBUaGUgaGFzaCB2YWx1ZSBj b21wdXRlZCBmcm9tIHRoZSBuYW1lIG9mIHRoZSBjb3JyZXNwb25kaW5nCkBA IC0xMDg4LDYgKzExNDUsMTIgQEAgZXh0ZXJuIHZvaWQgYmZkX21pcHNfZWxm NjRfc3dhcF9yZWdpbmZvX2luCiBleHRlcm4gdm9pZCBiZmRfbWlwc19lbGY2 NF9zd2FwX3JlZ2luZm9fb3V0CiAgIChiZmQgKiwgY29uc3QgRWxmNjRfSW50 ZXJuYWxfUmVnSW5mbyAqLCBFbGY2NF9FeHRlcm5hbF9SZWdJbmZvICopOwog CisvKiBNSVBTIEVMRiBmbGFncyBzd2FwcGluZyByb3V0aW5lcy4gICovCitl eHRlcm4gdm9pZCBiZmRfbWlwc19lbGZfc3dhcF9hYmlmbGFnc192MF9pbgor ICAoYmZkICosIGNvbnN0IEVsZl9FeHRlcm5hbF9BQklGbGFnc192MCAqLCBF bGZfSW50ZXJuYWxfQUJJRmxhZ3NfdjAgKik7CitleHRlcm4gdm9pZCBiZmRf bWlwc19lbGZfc3dhcF9hYmlmbGFnc192MF9vdXQKKyAgKGJmZCAqLCBjb25z dCBFbGZfSW50ZXJuYWxfQUJJRmxhZ3NfdjAgKiwgRWxmX0V4dGVybmFsX0FC SUZsYWdzX3YwICopOworCiAvKiBNYXNrcyBmb3IgdGhlIGluZm8gd29yayBv ZiBhbiBPREtfRVhDRVBUSU9OUyBkZXNjcmlwdG9yLiAgKi8KICNkZWZpbmUg T0VYX0ZQVV9NSU4JMHgxZgkvKiBGUEVzIHdoaWNoIG11c3QgYmUgZW5hYmxl ZC4gICovCiAjZGVmaW5lIE9FWF9GUFVfTUFYCTB4MWYwMAkvKiBGUEVzIHdo aWNoIG1heSBiZSBlbmFibGVkLiAgKi8KQEAgLTExMjUsNiArMTE4OCw1NSBA QCBleHRlcm4gdm9pZCBiZmRfbWlwc19lbGY2NF9zd2FwX3JlZ2luZm9fb3V0 CiAvKiBNYXNrcyBmb3IgdGhlIGluZm8gd29yZCBvZiBhbiBPREtfSFdBTkQv T0RLX0hXT1IgZGVzY3JpcHRvci4gICovCiAjZGVmaW5lIE9IV0EwX1I0S0VP UF9DSEVDS0VECTB4MDAwMDAwMDEKICNkZWZpbmUgT0hXQTBfUjRLRU9QX0NM RUFOCTB4MDAwMDAwMDIKKworLyogVmFsdWVzIGZvciB0aGUgeHh4X3NpemUg Ynl0ZXMgb2YgYW4gQUJJIGZsYWdzIHN0cnVjdHVyZS4gICovCisKKyNkZWZp bmUgQUZMX1JFR19OT05FCSAgICAgMHgwMAkvKiBObyByZWdpc3RlcnMuICAq LworI2RlZmluZSBBRkxfUkVHXzMyCSAgICAgMHgwMQkvKiAzMi1iaXQgcmVn aXN0ZXJzLiAgKi8KKyNkZWZpbmUgQUZMX1JFR182NAkgICAgIDB4MDIJLyog NjQtYml0IHJlZ2lzdGVycy4gICovCisjZGVmaW5lIEFGTF9SRUdfMTI4CSAg ICAgMHgwMwkvKiAxMjgtYml0IHJlZ2lzdGVycy4gICovCisKKy8qIE1hc2tz IGZvciB0aGUgYXNlcyB3b3JkIG9mIGFuIEFCSSBmbGFncyBzdHJ1Y3R1cmUu ICAqLworCisjZGVmaW5lIEFGTF9BU0VfRFNQICAgICAgICAgIDB4MDAwMDAw MDEgLyogRFNQIEFTRS4gICovCisjZGVmaW5lIEFGTF9BU0VfRFNQUjIgICAg ICAgIDB4MDAwMDAwMDIgLyogRFNQIFIyIEFTRS4gICovCisjZGVmaW5lIEFG TF9BU0VfRVZBICAgICAgICAgIDB4MDAwMDAwMDQgLyogRW5oYW5jZWQgVkEg U2NoZW1lLiAgKi8KKyNkZWZpbmUgQUZMX0FTRV9NQ1UgICAgICAgICAgMHgw MDAwMDAwOCAvKiBNQ1UgKE1pY3JvQ29udHJvbGxlcikgQVNFLiAgKi8KKyNk ZWZpbmUgQUZMX0FTRV9NRE1YICAgICAgICAgMHgwMDAwMDAxMCAvKiBNRE1Y IEFTRS4gICovCisjZGVmaW5lIEFGTF9BU0VfTUlQUzNEICAgICAgIDB4MDAw MDAwMjAgLyogTUlQUy0zRCBBU0UuICAqLworI2RlZmluZSBBRkxfQVNFX01U ICAgICAgICAgICAweDAwMDAwMDQwIC8qIE1UIEFTRS4gICovCisjZGVmaW5l IEFGTF9BU0VfU01BUlRNSVBTICAgIDB4MDAwMDAwODAgLyogU21hcnRNSVBT IEFTRS4gICovCisjZGVmaW5lIEFGTF9BU0VfVklSVCAgICAgICAgIDB4MDAw MDAxMDAgLyogVlogQVNFLiAgKi8KKyNkZWZpbmUgQUZMX0FTRV9NU0EgICAg ICAgICAgMHgwMDAwMDIwMCAvKiBNU0EgQVNFLiAgKi8KKyNkZWZpbmUgQUZM X0FTRV9NSVBTMTYgICAgICAgMHgwMDAwMDQwMCAvKiBNSVBTMTYgQVNFLiAg Ki8KKyNkZWZpbmUgQUZMX0FTRV9NSUNST01JUFMgICAgMHgwMDAwMDgwMCAv KiBNSUNST01JUFMgQVNFLiAgKi8KKyNkZWZpbmUgQUZMX0FTRV9YUEEgICAg ICAgICAgMHgwMDAwMTAwMCAvKiBYUEEgQVNFLiAgKi8KKworLyogVmFsdWVz IGZvciB0aGUgaXNhX2V4dCB3b3JkIG9mIGFuIEFCSSBmbGFncyBzdHJ1Y3R1 cmUuICAqLworCisjZGVmaW5lIEFGTF9FWFRfWExSICAgICAgICAgICAxICAv KiBSTUkgWGxyIGluc3RydWN0aW9uLiAgKi8KKyNkZWZpbmUgQUZMX0VYVF9P Q1RFT04yICAgICAgIDIgIC8qIENhdml1bSBOZXR3b3JrcyBPY3Rlb24yLiAg Ki8KKyNkZWZpbmUgQUZMX0VYVF9PQ1RFT05QICAgICAgIDMgIC8qIENhdml1 bSBOZXR3b3JrcyBPY3Rlb25QLiAgKi8KKyNkZWZpbmUgQUZMX0VYVF9MT09O R1NPTl8zQSAgIDQgIC8qIExvb25nc29uIDNBLiAgKi8KKyNkZWZpbmUgQUZM X0VYVF9PQ1RFT04gICAgICAgIDUgIC8qIENhdml1bSBOZXR3b3JrcyBPY3Rl b24uICAqLworI2RlZmluZSBBRkxfRVhUXzU5MDAgICAgICAgICAgNiAgLyog TUlQUyBSNTkwMCBpbnN0cnVjdGlvbi4gICovCisjZGVmaW5lIEFGTF9FWFRf NDY1MCAgICAgICAgICA3ICAvKiBNSVBTIFI0NjUwIGluc3RydWN0aW9uLiAg Ki8KKyNkZWZpbmUgQUZMX0VYVF80MDEwICAgICAgICAgIDggIC8qIExTSSBS NDAxMCBpbnN0cnVjdGlvbi4gICovCisjZGVmaW5lIEFGTF9FWFRfNDEwMCAg ICAgICAgICA5ICAvKiBORUMgVlI0MTAwIGluc3RydWN0aW9uLiAgKi8KKyNk ZWZpbmUgQUZMX0VYVF8zOTAwICAgICAgICAgMTAgIC8qIFRvc2hpYmEgUjM5 MDAgaW5zdHJ1Y3Rpb24uICAqLworI2RlZmluZSBBRkxfRVhUXzEwMDAwICAg ICAgICAxMSAgLyogTUlQUyBSMTAwMDAgaW5zdHJ1Y3Rpb24uICAqLworI2Rl ZmluZSBBRkxfRVhUX1NCMSAgICAgICAgICAxMiAgLyogQnJvYWRjb20gU0It MSBpbnN0cnVjdGlvbi4gICovCisjZGVmaW5lIEFGTF9FWFRfNDExMSAgICAg ICAgIDEzICAvKiBORUMgVlI0MTExL1ZSNDE4MSBpbnN0cnVjdGlvbi4gICov CisjZGVmaW5lIEFGTF9FWFRfNDEyMCAgICAgICAgIDE0ICAvKiBORUMgVlI0 MTIwIGluc3RydWN0aW9uLiAgKi8KKyNkZWZpbmUgQUZMX0VYVF81NDAwICAg ICAgICAgMTUgIC8qIE5FQyBWUjU0MDAgaW5zdHJ1Y3Rpb24uICAqLworI2Rl ZmluZSBBRkxfRVhUXzU1MDAgICAgICAgICAxNiAgLyogTkVDIFZSNTUwMCBp bnN0cnVjdGlvbi4gICovCisjZGVmaW5lIEFGTF9FWFRfTE9PTkdTT05fMkUg IDE3ICAvKiBTVCBNaWNyb2VsZWN0cm9uaWNzIExvb25nc29uIDJFLiAgKi8K KyNkZWZpbmUgQUZMX0VYVF9MT09OR1NPTl8yRiAgMTggIC8qIFNUIE1pY3Jv ZWxlY3Ryb25pY3MgTG9vbmdzb24gMkYuICAqLworCisvKiBNYXNrcyBmb3Ig dGhlIGZsYWdzMSB3b3JkIG9mIGFuIEFCSSBmbGFncyBzdHJ1Y3R1cmUuICAq LworI2RlZmluZSBBRkxfRkxBR1MxX09ERFNQUkVHICAgMQkgLyogVXNlcyBv ZGQgc2luZ2xlLXByZWNpc2lvbiByZWdpc3RlcnMuICAqLworCitleHRlcm4g dW5zaWduZWQgaW50IGJmZF9taXBzX2lzYV9leHQgKGJmZCAqKTsKIAwKIAog LyogT2JqZWN0IGF0dHJpYnV0ZSB0YWdzLiAgKi8KQEAgLTExNTcsNyArMTI2 OSwxNiBAQCBlbnVtCiAgIFZhbF9HTlVfTUlQU19BQklfRlBfU09GVCA9IDMs CiAKICAgLyogVXNpbmcgLW1pcHMzMnIyIC1tZnA2NC4gICovCi0gIFZhbF9H TlVfTUlQU19BQklfRlBfNjQgPSA0LAorICBWYWxfR05VX01JUFNfQUJJX0ZQ X09MRF82NCA9IDQsCisKKyAgLyogVXNpbmcgLW1mcHh4ICovCisgIFZhbF9H TlVfTUlQU19BQklfRlBfWFggPSA1LAorCisgIC8qIFVzaW5nIC1taXBzMzJy MiAtbWZwNjQuICAqLworICBWYWxfR05VX01JUFNfQUJJX0ZQXzY0ID0gNiwK KworICAvKiBVc2luZyAtbWlwczMycjIgLW1mcDY0IC1tbm8tb2RkLXNwcmVn LiAgKi8KKyAgVmFsX0dOVV9NSVBTX0FCSV9GUF82NEEgPSA3LAogCiAgIC8q IFZhbHVlcyBkZWZpbmVkIGZvciBUYWdfR05VX01JUFNfQUJJX01TQS4gICov CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvb3Bjb2RlL21pcHMuaCBiL2luY2x1 ZGUvb3Bjb2RlL21pcHMuaAppbmRleCA2YWUxZjNhLi4xM2ViYmE3NiAxMDA2 NDQKLS0tIGEvaW5jbHVkZS9vcGNvZGUvbWlwcy5oCisrKyBiL2luY2x1ZGUv b3Bjb2RlL21pcHMuaApAQCAtMTAxMCw2ICsxMDEwLDggQEAgc3RydWN0IG1p cHNfb3Bjb2RlCiAjZGVmaW5lIElOU05fV1JJVEVfR1BSXzI0ICAgICAgICAg ICAweDEwMDAwMDAwCiAvKiBBIHVzZXItZGVmaW5lZCBpbnN0cnVjdGlvbi4g ICovCiAjZGVmaW5lIElOU05fVURJICAgICAgICAgICAgICAgICAgICAweDIw MDAwMDAwCisvKiBJcyBtdGMxLCBtZmMxLCBzd2MxLCBsd2MxLiAgKi8KKyNk ZWZpbmUgSU5TTl9GUF8zMl9NT1ZFCQkgICAgMHg0MDAwMDAwMAogLyogSW5z dHJ1Y3Rpb24gaXMgYWN0dWFsbHkgYSBtYWNyby4gIEl0IHNob3VsZCBiZSBp Z25vcmVkIGJ5IHRoZQogICAgZGlzYXNzZW1ibGVyLCBhbmQgcmVxdWlyZXMg c3BlY2lhbCB0cmVhdG1lbnQgYnkgdGhlIGFzc2VtYmxlci4gICovCiAjZGVm aW5lIElOU05fTUFDUk8gICAgICAgICAgICAgICAgICAweGZmZmZmZmZmCmRp ZmYgLS1naXQgYS9sZC9lbXVscGFyYW1zL2VsZjMyYm1pcC5zaCBiL2xkL2Vt dWxwYXJhbXMvZWxmMzJibWlwLnNoCmluZGV4IDExOGQ1N2EuLjhkYTBmOGYg MTAwNjQ0Ci0tLSBhL2xkL2VtdWxwYXJhbXMvZWxmMzJibWlwLnNoCisrKyBi L2xkL2VtdWxwYXJhbXMvZWxmMzJibWlwLnNoCkBAIC0xNyw3ICsxNyw4IEBA IGlmIHRlc3QgLXogIiR7Q1JFQVRFX1NITElCfSI7IHRoZW4KICAgSU5JVElB TF9SRUFET05MWV9TRUNUSU9OUz0iLmludGVycCAgICAgICAke1JFTE9DQVRJ TkctMH0gOiB7ICooLmludGVycCkgfSIKIGZpCiBJTklUSUFMX1JFQURPTkxZ X1NFQ1RJT05TPSIke0lOSVRJQUxfUkVBRE9OTFlfU0VDVElPTlN9Ci0gIC5y ZWdpbmZvICAgICAgJHtSRUxPQ0FUSU5HLTB9IDogeyAqKC5yZWdpbmZvKSB9 CisgIC5NSVBTLmFiaWZsYWdzICR7UkVMT0NBVElORy0wfSA6IHsgKiguTUlQ Uy5hYmlmbGFncykgfQorICAucmVnaW5mbyAgICAgICAke1JFTE9DQVRJTkct MH0gOiB7ICooLnJlZ2luZm8pIH0KICIKIE9USEVSX1RFWFRfU0VDVElPTlM9 JyooLm1pcHMxNi5mbi4qKSAqKC5taXBzMTYuY2FsbC4qKScKICMgVW5saWtl IG1vc3QgdGFyZ2V0cywgdGhlIE1JUFMgYmFja2VuZCBwdXRzIGFsbCBkeW5h bWljIHJlbG9jYXRpb25zCmRpZmYgLS1naXQgYS9sZC9lbXVscGFyYW1zL2Vs ZjMyYm1pcG4zMi1kZWZzLnNoIGIvbGQvZW11bHBhcmFtcy9lbGYzMmJtaXBu MzItZGVmcy5zaAppbmRleCA1MTQ5OTBiLi43MjNlYWM4IDEwMDY0NAotLS0g YS9sZC9lbXVscGFyYW1zL2VsZjMyYm1pcG4zMi1kZWZzLnNoCisrKyBiL2xk L2VtdWxwYXJhbXMvZWxmMzJibWlwbjMyLWRlZnMuc2gKQEAgLTg4LDYgKzg4 LDcgQEAgaWYgdGVzdCAteiAiJHtDUkVBVEVfU0hMSUJ9IjsgdGhlbgogICBJ TklUSUFMX1JFQURPTkxZX1NFQ1RJT05TPSIuaW50ZXJwICAgICAgICR7UkVM T0NBVElORy0wfSA6IHsgKiguaW50ZXJwKSB9IgogZmkKIElOSVRJQUxfUkVB RE9OTFlfU0VDVElPTlM9IiR7SU5JVElBTF9SRUFET05MWV9TRUNUSU9OU30K KyAgLk1JUFMuYWJpZmxhZ3MgICAgICAke1JFTE9DQVRJTkctMH0gOiB7ICoo Lk1JUFMuYWJpZmxhZ3MpIH0KICAgLnJlZ2luZm8gICAgICAke1JFTE9DQVRJ TkctMH0gOiB7ICooLnJlZ2luZm8pIH0iCiAjIERpc2NhcmQgYW55IC5NSVBT LmNvbnRlbnQqIG9yIC5NSVBTLmV2ZW50cyogc2VjdGlvbnMuICBUaGUgbGlu a2VyCiAjIGRvZXNuJ3Qga25vdyBob3cgdG8gYWRqdXN0IHRoZW0uCmRpZmYg LS1naXQgYS9sZC9lbXVscGFyYW1zL2VsZjY0Ym1pcC1kZWZzLnNoIGIvbGQv ZW11bHBhcmFtcy9lbGY2NGJtaXAtZGVmcy5zaAppbmRleCAxMTBmODkyLi44 YTA1MjJmIDEwMDY0NAotLS0gYS9sZC9lbXVscGFyYW1zL2VsZjY0Ym1pcC1k ZWZzLnNoCisrKyBiL2xkL2VtdWxwYXJhbXMvZWxmNjRibWlwLWRlZnMuc2gK QEAgLTEsMyArMSw2IEBACiAuICR7c3JjZGlyfS9lbXVscGFyYW1zL2VsZjMy Ym1pcG4zMi1kZWZzLnNoCiBDT01NT05QQUdFU0laRT0iQ09OU1RBTlQgKENP TU1PTlBBR0VTSVpFKSIKLUlOSVRJQUxfUkVBRE9OTFlfU0VDVElPTlM9Ii5N SVBTLm9wdGlvbnMgOiB7ICooLk1JUFMub3B0aW9ucykgfSIKK0lOSVRJQUxf UkVBRE9OTFlfU0VDVElPTlM9IgorICAuTUlQUy5hYmlmbGFncyAgICAgICR7 UkVMT0NBVElORy0wfSA6IHsgKiguTUlQUy5hYmlmbGFncykgfQorICAuTUlQ Uy5vcHRpb25zIDogeyAqKC5NSVBTLm9wdGlvbnMpIH0KKyIKZGlmZiAtLWdp dCBhL29wY29kZXMvbWljcm9taXBzLW9wYy5jIGIvb3Bjb2Rlcy9taWNyb21p cHMtb3BjLmMKaW5kZXggYWY3Y2JmNi4uZDhmY2JjYSAxMDA2NDQKLS0tIGEv b3Bjb2Rlcy9taWNyb21pcHMtb3BjLmMKKysrIGIvb3Bjb2Rlcy9taWNyb21p cHMtb3BjLmMKQEAgLTIwNCw2ICsyMDQsNyBAQCBkZWNvZGVfbWljcm9taXBz X29wZXJhbmQgKGNvbnN0IGNoYXIgKnApCiAjZGVmaW5lIFNNCUlOU05fU1RP UkVfTUVNT1JZCiAjZGVmaW5lIEJEMTYJSU5TTjJfQlJBTkNIX0RFTEFZXzE2 QklUCS8qIFVzZWQgaW4gcGluZm8yLiAgKi8KICNkZWZpbmUgQkQzMglJTlNO Ml9CUkFOQ0hfREVMQVlfMzJCSVQJLyogVXNlZCBpbiBwaW5mbzIuICAqLwor I2RlZmluZSBGMzJNCUlOU05fRlBfMzJfTU9WRQogCiAjZGVmaW5lIFdSXzEJ SU5TTl9XUklURV8xCiAjZGVmaW5lIFdSXzIJSU5TTl9XUklURV8yCkBAIC01 NDAsMTQgKzU0MSwxNCBAQCBjb25zdCBzdHJ1Y3QgbWlwc19vcGNvZGUgbWlj cm9taXBzX29wY29kZXNbXSA9CiB7ImNlaWwubC5zIiwJCSJULFMiLAkJMHg1 NDAwMTMzYiwgMHhmYzAwZmZmZiwJV1JfMXxSRF8yfEZQX1N8RlBfRCwJMCwJ CUkxLAkJMCwJMCB9LAogeyJjZWlsLncuZCIsCQkiVCxTIiwJCTB4NTQwMDVi M2IsIDB4ZmMwMGZmZmYsCVdSXzF8UkRfMnxGUF9TfEZQX0QsCTAsCQlJMSwJ CTAsCTAgfSwKIHsiY2VpbC53LnMiLAkJIlQsUyIsCQkweDU0MDAxYjNiLCAw eGZjMDBmZmZmLAlXUl8xfFJEXzJ8RlBfUywJCTAsCQlJMSwJCTAsCTAgfSwK LXsiY2ZjMSIsCQkidCxHIiwJCTB4NTQwMDEwM2IsIDB4ZmMwMGZmZmYsCVdS XzF8UkRfQzF8RlBfUywJMCwJCUkxLAkJMCwJMCB9LAoteyJjZmMxIiwJCSJ0 LFMiLAkJMHg1NDAwMTAzYiwgMHhmYzAwZmZmZiwJV1JfMXxSRF9DMXxGUF9T LAkwLAkJSTEsCQkwLAkwIH0sCit7ImNmYzEiLAkJInQsRyIsCQkweDU0MDAx MDNiLCAweGZjMDBmZmZmLAlXUl8xfFJEX0MxLAkJMCwJCUkxLAkJMCwJMCB9 LAoreyJjZmMxIiwJCSJ0LFMiLAkJMHg1NDAwMTAzYiwgMHhmYzAwZmZmZiwJ V1JfMXxSRF9DMSwJCTAsCQlJMSwJCTAsCTAgfSwKIHsiY2ZjMiIsCQkidCxH IiwJCTB4MDAwMGNkM2MsIDB4ZmMwMGZmZmYsCVdSXzF8UkRfQzIsCQkwLAkJ STEsCQkwLAkwIH0sCiB7ImNsbyIsCQkJInQscyIsCQkweDAwMDA0YjNjLCAw eGZjMDBmZmZmLAlXUl8xfFJEXzIsCQkwLAkJSTEsCQkwLAkwIH0sCiB7ImNs eiIsCQkJInQscyIsCQkweDAwMDA1YjNjLCAweGZjMDBmZmZmLAlXUl8xfFJE XzIsCQkwLAkJSTEsCQkwLAkwIH0sCiB7ImNvcDIiLAkJIkMiLAkJMHgwMDAw MDAwMiwgMHhmYzAwMDAwNywJQ1AsCQkJMCwJCUkxLAkJMCwJMCB9LAoteyJj dGMxIiwJCSJ0LEciLAkJMHg1NDAwMTgzYiwgMHhmYzAwZmZmZiwJUkRfMXxX Ul9DQ3xGUF9TLAkwLAkJSTEsCQkwLAkwIH0sCi17ImN0YzEiLAkJInQsUyIs CQkweDU0MDAxODNiLCAweGZjMDBmZmZmLAlSRF8xfFdSX0NDfEZQX1MsCTAs CQlJMSwJCTAsCTAgfSwKK3siY3RjMSIsCQkidCxHIiwJCTB4NTQwMDE4M2Is IDB4ZmMwMGZmZmYsCVJEXzF8V1JfQ0MsCQkwLAkJSTEsCQkwLAkwIH0sCit7 ImN0YzEiLAkJInQsUyIsCQkweDU0MDAxODNiLCAweGZjMDBmZmZmLAlSRF8x fFdSX0NDLAkJMCwJCUkxLAkJMCwJMCB9LAogeyJjdGMyIiwJCSJ0LEciLAkJ MHgwMDAwZGQzYywgMHhmYzAwZmZmZiwJUkRfMXxXUl9DMnxXUl9DQywJMCwJ CUkxLAkJMCwJMCB9LAogeyJjdnQuZC5sIiwJCSJULFMiLAkJMHg1NDAwNTM3 YiwgMHhmYzAwZmZmZiwJV1JfMXxSRF8yfEZQX0QsCQkwLAkJSTEsCQkwLAkw IH0sCiB7ImN2dC5kLnMiLAkJIlQsUyIsCQkweDU0MDAxMzdiLCAweGZjMDBm ZmZmLAlXUl8xfFJEXzJ8RlBfU3xGUF9ELAkwLAkJSTEsCQkwLAkwIH0sCkBA IC03ODksMTMgKzc5MCwxMyBAQCBjb25zdCBzdHJ1Y3QgbWlwc19vcGNvZGUg bWljcm9taXBzX29wY29kZXNbXSA9CiB7Imx3IiwJCQkibWQsbUEobWEpIiwg ICAgICAgIDB4NjQwMCwgICAgIDB4ZmMwMCwJV1JfMXxSRF8zfExNLAkJMCwJ CUkxLAkJMCwJMCB9LCAvKiBsd2dwICovCiB7Imx3IiwJCQkidCxvKGIpIiwJ MHhmYzAwMDAwMCwgMHhmYzAwMDAwMCwJV1JfMXxSRF8zfExNLAkJMCwJCUkx LAkJMCwJMCB9LAogeyJsdyIsCQkJInQsQShiKSIsCTAsICAgIChpbnQpIE1f TFdfQUIsCUlOU05fTUFDUk8sCQkwLAkJSTEsCQkwLAkwIH0sCi17Imx3YzEi LAkJIlQsbyhiKSIsCTB4OWMwMDAwMDAsIDB4ZmMwMDAwMDAsCVdSXzF8UkRf M3xGUF9TfExNLAkwLAkJSTEsCQkwLAkwIH0sCi17Imx3YzEiLAkJIkUsbyhi KSIsCTB4OWMwMDAwMDAsIDB4ZmMwMDAwMDAsCVdSXzF8UkRfM3xGUF9TfExN LAkwLAkJSTEsCQkwLAkwIH0sCit7Imx3YzEiLAkJIlQsbyhiKSIsCTB4OWMw MDAwMDAsIDB4ZmMwMDAwMDAsCVdSXzF8UkRfM3xGUF9TfExNfEYzMk0sCTAs CQlJMSwJCTAsCTAgfSwKK3sibHdjMSIsCQkiRSxvKGIpIiwJMHg5YzAwMDAw MCwgMHhmYzAwMDAwMCwJV1JfMXxSRF8zfEZQX1N8TE18RjMyTSwJMCwJCUkx LAkJMCwJMCB9LAogeyJsd2MxIiwJCSJULEEoYikiLAkwLCAgICAoaW50KSBN X0xXQzFfQUIsCUlOU05fTUFDUk8sCQlJTlNOMl9NX0ZQX1MsCUkxLAkJMCwJ MCB9LAogeyJsd2MxIiwJCSJFLEEoYikiLAkwLCAgICAoaW50KSBNX0xXQzFf QUIsCUlOU05fTUFDUk8sCQlJTlNOMl9NX0ZQX1MsCUkxLAkJMCwJMCB9LAog eyJsd2MyIiwJCSJFLH4oYikiLAkweDIwMDAwMDAwLCAweGZjMDBmMDAwLAlS RF8zfFdSX0NDfExNLAkJMCwJCUkxLAkJMCwJMCB9LAogeyJsd2MyIiwJCSJF LEEoYikiLAkwLCAgICAoaW50KSBNX0xXQzJfQUIsCUlOU05fTUFDUk8sCQkw LAkJSTEsCQkwLAkwIH0sCi17ImwucyIsCQkJIlQsbyhiKSIsCTB4OWMwMDAw MDAsIDB4ZmMwMDAwMDAsCVdSXzF8UkRfM3xGUF9TfExNLAkwLAkJSTEsCQkw LAkwIH0sIC8qIGx3YzEgKi8KK3sibC5zIiwJCQkiVCxvKGIpIiwJMHg5YzAw MDAwMCwgMHhmYzAwMDAwMCwJV1JfMXxSRF8zfEZQX1N8TE18RjMyTSwJMCwJ CUkxLAkJMCwJMCB9LCAvKiBsd2MxICovCiB7ImwucyIsCQkJIlQsQShiKSIs CTAsICAgIChpbnQpIE1fTFdDMV9BQiwJSU5TTl9NQUNSTywJCUlOU04yX01f RlBfUywJSTEsCQkwLAkwIH0sCiB7Imx3bCIsCQkJInQsfihiKSIsCTB4NjAw MDAwMDAsIDB4ZmMwMGYwMDAsCVdSXzF8UkRfM3xMTSwJCTAsCQlJMSwJCTAs CTAgfSwKIHsibHdsIiwJCQkidCxBKGIpIiwJMCwgICAgKGludCkgTV9MV0xf QUIsCUlOU05fTUFDUk8sCQkwLAkJSTEsCQkwLAkwIH0sCkBAIC04MTAsNyAr ODExLDcgQEAgY29uc3Qgc3RydWN0IG1pcHNfb3Bjb2RlIG1pY3JvbWlwc19v cGNvZGVzW10gPQogeyJsd3IiLAkJCSJ0LEEoYikiLAkwLCAgICAoaW50KSBN X0xXUl9BQiwJSU5TTl9NQUNSTywJCTAsCQlJMSwJCTAsCTAgfSwKIHsibHd1 IiwJCQkidCx+KGIpIiwJMHg2MDAwZTAwMCwgMHhmYzAwZjAwMCwJV1JfMXxS RF8zfExNLAkJMCwJCUkzLAkJMCwJMCB9LAogeyJsd3UiLAkJCSJ0LEEoYiki LAkwLCAgICAoaW50KSBNX0xXVV9BQiwJSU5TTl9NQUNSTywJCTAsCQlJMywJ CTAsCTAgfSwKLXsibHd4YzEiLAkJIkQsdChiKSIsCTB4NTQwMDAwNDgsIDB4 ZmMwMDA3ZmYsCVdSXzF8UkRfMnxSRF8zfEZQX1N8TE0sIDAsCQlJMSwJCTAs CTAgfSwKK3sibHd4YzEiLAkJIkQsdChiKSIsCTB4NTQwMDAwNDgsIDB4ZmMw MDA3ZmYsCVdSXzF8UkRfMnxSRF8zfEZQX1N8TE18RjMyTSwgMCwJCUkxLAkJ MCwJMCB9LAogeyJmbHVzaCIsCQkidCx+KGIpIiwJMHg2MDAwMTAwMCwgMHhm YzAwZjAwMCwJV1JfMXxSRF8zLAkJMCwJCUkxLAkJMCwJMCB9LCAvKiBzYW1l ICovCiB7ImZsdXNoIiwJCSJ0LEEoYikiLAkwLCAgICAoaW50KSBNX0xXUl9B QiwJSU5TTl9NQUNSTywJCTAsCQlJMSwJCTAsCTAgfSwKIHsibHd4cyIsCQki ZCx0KGIpIiwJMHgwMDAwMDExOCwgMHhmYzAwMDdmZiwJV1JfMXxSRF8yfFJE XzN8TE0sCTAsCQlJMSwJCTAsCTAgfSwKQEAgLTgyMyw4ICs4MjQsOCBAQCBj b25zdCBzdHJ1Y3QgbWlwc19vcGNvZGUgbWljcm9taXBzX29wY29kZXNbXSA9 CiB7Im1hZGR1IiwJCSI3LHMsdCIsCTB4MDAwMDFhYmMsIDB4ZmMwMDNmZmYs CVJEXzJ8UkRfM3xNT0RfYSwJMCwJCTAsCQlEMzIsCTAgfSwKIHsibWZjMCIs CQkidCxHIiwJCTB4MDAwMDAwZmMsIDB4ZmMwMGZmZmYsCVdSXzF8UkRfQzAs CQkwLAkJSTEsCQkwLAkwIH0sCiB7Im1mYzAiLAkJInQsRyxIIiwJMHgwMDAw MDBmYywgMHhmYzAwYzdmZiwJV1JfMXxSRF9DMCwJCTAsCQlJMSwJCTAsCTAg fSwKLXsibWZjMSIsCQkidCxTIiwJCTB4NTQwMDIwM2IsIDB4ZmMwMGZmZmYs CVdSXzF8UkRfMnxGUF9TLAkJMCwJCUkxLAkJMCwJMCB9LAoteyJtZmMxIiwJ CSJ0LEciLAkJMHg1NDAwMjAzYiwgMHhmYzAwZmZmZiwJV1JfMXxSRF8yfEZQ X1MsCQkwLAkJSTEsCQkwLAkwIH0sCit7Im1mYzEiLAkJInQsUyIsCQkweDU0 MDAyMDNiLCAweGZjMDBmZmZmLAlXUl8xfFJEXzJ8RlBfU3xGMzJNLAkwLAkJ STEsCQkwLAkwIH0sCit7Im1mYzEiLAkJInQsRyIsCQkweDU0MDAyMDNiLCAw eGZjMDBmZmZmLAlXUl8xfFJEXzJ8RlBfU3xGMzJNLAkwLAkJSTEsCQkwLAkw IH0sCiB7Im1mYzIiLAkJInQsRyIsCQkweDAwMDA0ZDNjLCAweGZjMDBmZmZm LAlXUl8xfFJEX0MyLAkJMCwJCUkxLAkJMCwJMCB9LAogeyJtZmdjMCIsCQki dCxHIiwJCTB4MDAwMDA0ZmMsIDB4ZmMwMGZmZmYsCVdSXzF8UkRfQzAsCQkw LAkJMCwJCUlWSVJULAkwIH0sCiB7Im1mZ2MwIiwJCSJ0LEcsSCIsCTB4MDAw MDA0ZmMsIDB4ZmMwMGM3ZmYsCVdSXzF8UkRfQzAsCQkwLAkJMCwJCUlWSVJU LAkwIH0sCkBAIC04NjksOCArODcwLDggQEAgY29uc3Qgc3RydWN0IG1pcHNf b3Bjb2RlIG1pY3JvbWlwc19vcGNvZGVzW10gPQogeyJtc3VidSIsCQkiNyxz LHQiLAkweDAwMDAzYWJjLCAweGZjMDAzZmZmLAlSRF8yfFJEXzN8TU9EX2Es CTAsCQkwLAkJRDMyLAkwIH0sCiB7Im10YzAiLAkJInQsRyIsCQkweDAwMDAw MmZjLCAweGZjMDBmZmZmLAlSRF8xfFdSX0MwfFdSX0NDLAkwLAkJSTEsCQkw LAkwIH0sCiB7Im10YzAiLAkJInQsRyxIIiwJMHgwMDAwMDJmYywgMHhmYzAw YzdmZiwJUkRfMXxXUl9DMHxXUl9DQywJMCwJCUkxLAkJMCwJMCB9LAoteyJt dGMxIiwJCSJ0LFMiLAkJMHg1NDAwMjgzYiwgMHhmYzAwZmZmZiwJUkRfMXxX Ul8yfEZQX1MsCQkwLAkJSTEsCQkwLAkwIH0sCi17Im10YzEiLAkJInQsRyIs CQkweDU0MDAyODNiLCAweGZjMDBmZmZmLAlSRF8xfFdSXzJ8RlBfUywJCTAs CQlJMSwJCTAsCTAgfSwKK3sibXRjMSIsCQkidCxTIiwJCTB4NTQwMDI4M2Is IDB4ZmMwMGZmZmYsCVJEXzF8V1JfMnxGUF9TfEYzMk0sCTAsCQlJMSwJCTAs CTAgfSwKK3sibXRjMSIsCQkidCxHIiwJCTB4NTQwMDI4M2IsIDB4ZmMwMGZm ZmYsCVJEXzF8V1JfMnxGUF9TfEYzMk0sCTAsCQlJMSwJCTAsCTAgfSwKIHsi bXRjMiIsCQkidCxHIiwJCTB4MDAwMDVkM2MsIDB4ZmMwMGZmZmYsCVJEXzF8 V1JfQzJ8V1JfQ0MsCTAsCQlJMSwJCTAsCTAgfSwKIHsibXRnYzAiLAkJInQs RyIsCQkweDAwMDAwNmZjLCAweGZjMDBmZmZmLAlSRF8xfFdSX0MwfFdSX0ND LAkwLAkJMCwJCUlWSVJULAkwIH0sCiB7Im10Z2MwIiwJCSJ0LEcsSCIsCTB4 MDAwMDA2ZmMsIDB4ZmMwMGM3ZmYsCVJEXzF8V1JfQzB8V1JfQ0MsCTAsCQkw LAkJSVZJUlQsCTAgfSwKQEAgLTEwMzcsMTMgKzEwMzgsMTMgQEAgY29uc3Qg c3RydWN0IG1pcHNfb3Bjb2RlIG1pY3JvbWlwc19vcGNvZGVzW10gPQogeyJz dyIsCQkJIm1wLG1VKG1zKSIsCSAgICAweGM4MDAsICAgICAweGZjMDAsCVJE XzF8UkRfM3xTTSwJCTAsCQlJMSwJCTAsCTAgfSwgLyogc3dzcCAqLwogeyJz dyIsCQkJInQsbyhiKSIsCTB4ZjgwMDAwMDAsIDB4ZmMwMDAwMDAsCVJEXzF8 UkRfM3xTTSwJCTAsCQlJMSwJCTAsCTAgfSwKIHsic3ciLAkJCSJ0LEEoYiki LAkwLCAgICAoaW50KSBNX1NXX0FCLAlJTlNOX01BQ1JPLAkJMCwJCUkxLAkJ MCwJMCB9LAoteyJzd2MxIiwJCSJULG8oYikiLAkweDk4MDAwMDAwLCAweGZj MDAwMDAwLAlSRF8xfFJEXzN8U018RlBfUywJMCwJCUkxLAkJMCwJMCB9LAot eyJzd2MxIiwJCSJFLG8oYikiLAkweDk4MDAwMDAwLCAweGZjMDAwMDAwLAlS RF8xfFJEXzN8U018RlBfUywJMCwJCUkxLAkJMCwJMCB9LAoreyJzd2MxIiwJ CSJULG8oYikiLAkweDk4MDAwMDAwLCAweGZjMDAwMDAwLAlSRF8xfFJEXzN8 U018RlBfU3xGMzJNLAkwLAkJSTEsCQkwLAkwIH0sCit7InN3YzEiLAkJIkUs byhiKSIsCTB4OTgwMDAwMDAsIDB4ZmMwMDAwMDAsCVJEXzF8UkRfM3xTTXxG UF9TfEYzMk0sCTAsCQlJMSwJCTAsCTAgfSwKIHsic3djMSIsCQkiVCxBKGIp IiwJMCwgICAgKGludCkgTV9TV0MxX0FCLAlJTlNOX01BQ1JPLAkJSU5TTjJf TV9GUF9TLAlJMSwJCTAsCTAgfSwKIHsic3djMSIsCQkiRSxBKGIpIiwJMCwg ICAgKGludCkgTV9TV0MxX0FCLAlJTlNOX01BQ1JPLAkJSU5TTjJfTV9GUF9T LAlJMSwJCTAsCTAgfSwKIHsic3djMiIsCQkiRSx+KGIpIiwJMHgyMDAwODAw MCwgMHhmYzAwZjAwMCwJUkRfM3xSRF9DMnxTTSwJCTAsCQlJMSwJCTAsCTAg fSwKIHsic3djMiIsCQkiRSxBKGIpIiwJMCwgICAgKGludCkgTV9TV0MyX0FC LAlJTlNOX01BQ1JPLAkJMCwJCUkxLAkJMCwJMCB9LAoteyJzLnMiLAkJCSJU LG8oYikiLAkweDk4MDAwMDAwLCAweGZjMDAwMDAwLAlSRF8xfFJEXzN8U018 RlBfUywJMCwJCUkxLAkJMCwJMCB9LCAvKiBzd2MxICovCit7InMucyIsCQkJ IlQsbyhiKSIsCTB4OTgwMDAwMDAsIDB4ZmMwMDAwMDAsCVJEXzF8UkRfM3xT TXxGUF9TfEYzMk0sCTAsCQlJMSwJCTAsCTAgfSwgLyogc3djMSAqLwogeyJz LnMiLAkJCSJULEEoYikiLAkwLCAgICAoaW50KSBNX1NXQzFfQUIsCUlOU05f TUFDUk8sCQlJTlNOMl9NX0ZQX1MsCUkxLAkJMCwJMCB9LAogeyJzd2wiLAkJ CSJ0LH4oYikiLAkweDYwMDA4MDAwLCAweGZjMDBmMDAwLAlSRF8xfFJEXzN8 U00sCQkwLAkJSTEsCQkwLAkwIH0sCiB7InN3bCIsCQkJInQsQShiKSIsCTAs ICAgIChpbnQpIE1fU1dMX0FCLAlJTlNOX01BQ1JPLAkJMCwJCUkxLAkJMCwJ MCB9LApAQCAtMTA1OCw3ICsxMDU5LDcgQEAgY29uc3Qgc3RydWN0IG1pcHNf b3Bjb2RlIG1pY3JvbWlwc19vcGNvZGVzW10gPQogeyJzd3IiLAkJCSJ0LEEo YikiLAkwLCAgICAoaW50KSBNX1NXUl9BQiwJSU5TTl9NQUNSTywJCTAsCQlJ MSwJCTAsCTAgfSwKIHsiaW52YWxpZGF0ZSIsCQkidCx+KGIpIiwJMHg2MDAw OTAwMCwgMHhmYzAwZjAwMCwJUkRfMXxSRF8zfFNNLAkJMCwJCUkxLAkJMCwJ MCB9LCAvKiBzYW1lICovCiB7ImludmFsaWRhdGUiLAkJInQsQShiKSIsCTAs ICAgIChpbnQpIE1fU1dSX0FCLAlJTlNOX01BQ1JPLAkJMCwJCUkxLAkJMCwJ MCB9LAoteyJzd3hjMSIsCQkiRCx0KGIpIiwJMHg1NDAwMDA4OCwgMHhmYzAw MDdmZiwJUkRfMXxSRF8yfFJEXzN8U018RlBfUywJMCwJCUkxLAkJMCwJMCB9 LAoreyJzd3hjMSIsCQkiRCx0KGIpIiwJMHg1NDAwMDA4OCwgMHhmYzAwMDdm ZiwJUkRfMXxSRF8yfFJEXzN8U018RlBfU3xGMzJNLCAwLAkJSTEsCQkwLAkw IH0sCiB7InN5bmNfYWNxdWlyZSIsCSIiLAkJMHgwMDExNmI3YywgMHhmZmZm ZmZmZiwJTk9EUywJCQkwLAkJSTEsCQkwLAkwIH0sCiB7InN5bmNfbWIiLAkJ IiIsCQkweDAwMTA2YjdjLCAweGZmZmZmZmZmLAlOT0RTLAkJCTAsCQlJMSwJ CTAsCTAgfSwKIHsic3luY19yZWxlYXNlIiwJIiIsCQkweDAwMTI2YjdjLCAw eGZmZmZmZmZmLAlOT0RTLAkJCTAsCQlJMSwJCTAsCTAgfSwKZGlmZiAtLWdp dCBhL29wY29kZXMvbWlwcy1vcGMuYyBiL29wY29kZXMvbWlwcy1vcGMuYwpp bmRleCBlMmMyNThjLi4wNGMyM2M1IDEwMDY0NAotLS0gYS9vcGNvZGVzL21p cHMtb3BjLmMKKysrIGIvb3Bjb2Rlcy9taXBzLW9wYy5jCkBAIC0yMDAsNiAr MjAwLDcgQEAgZGVjb2RlX21pcHNfb3BlcmFuZCAoY29uc3QgY2hhciAqcCkK ICNkZWZpbmUgVFJBUAlJTlNOX05PX0RFTEFZX1NMT1QKICNkZWZpbmUgTE0J SU5TTl9MT0FEX01FTU9SWQogI2RlZmluZSBTTQlJTlNOX1NUT1JFX01FTU9S WQorI2RlZmluZSBGMzJNCUlOU05fRlBfMzJfTU9WRQogCiAjZGVmaW5lIFdS XzEJSU5TTl9XUklURV8xCiAjZGVmaW5lIFdSXzIJSU5TTl9XUklURV8yCkBA IC05MDEsOCArOTAyLDggQEAgY29uc3Qgc3RydWN0IG1pcHNfb3Bjb2RlIG1p cHNfYnVpbHRpbl9vcGNvZGVzW10gPQogeyJjZWlsLncuZCIsCQkiRCxTIiwJ CTB4NDYyMDAwMGUsIDB4ZmZmZjAwM2YsIFdSXzF8UkRfMnxGUF9TfEZQX0Qs CTAsCQlJMiwJCTAsCVNGIH0sCiB7ImNlaWwudy5zIiwJCSJELFMiLAkJMHg0 NjAwMDAwZSwgMHhmZmZmMDAzZiwgV1JfMXxSRF8yfEZQX1MsCQkwLAkJSTIs CQkwLAlFRSB9LAogLyogY2ZjMCBpcyBhdCB0aGUgYm90dG9tIG9mIHRoZSB0 YWJsZS4gICovCi17ImNmYzEiLAkJInQsRyIsCQkweDQ0NDAwMDAwLCAweGZm ZTAwN2ZmLAlXUl8xfFJEX0MxfExDRHxGUF9TLAkwLAkJSTEsCQkwLAkwIH0s Ci17ImNmYzEiLAkJInQsUyIsCQkweDQ0NDAwMDAwLCAweGZmZTAwN2ZmLAlX Ul8xfFJEX0MxfExDRHxGUF9TLAkwLAkJSTEsCQkwLAkwIH0sCit7ImNmYzEi LAkJInQsRyIsCQkweDQ0NDAwMDAwLCAweGZmZTAwN2ZmLAlXUl8xfFJEX0Mx fExDRCwJCTAsCQlJMSwJCTAsCTAgfSwKK3siY2ZjMSIsCQkidCxTIiwJCTB4 NDQ0MDAwMDAsIDB4ZmZlMDA3ZmYsCVdSXzF8UkRfQzF8TENELAkJMCwJCUkx LAkJMCwJMCB9LAogLyogY2ZjMiBpcyBhdCB0aGUgYm90dG9tIG9mIHRoZSB0 YWJsZS4gICovCiAvKiBjZmMzIGlzIGF0IHRoZSBib3R0b20gb2YgdGhlIHRh YmxlLiAgKi8KIHsiY2Z0YzEiLAkJImQsRSIsCQkweDQxMDAwMDIzLCAweGZm ZTAwN2ZmLCBXUl8xfFJEX0MxfFRSQVB8TENEfEZQX1MsIDAsCQkwLAkJTVQz MiwJMCB9LApAQCAtOTE0LDggKzkxNSw4IEBAIGNvbnN0IHN0cnVjdCBtaXBz X29wY29kZSBtaXBzX2J1aWx0aW5fb3Bjb2Rlc1tdID0KIHsiY2xvIiwJCQki VSxzIiwJCTB4NzAwMDAwMjEsIDB4ZmMwMDA3ZmYsIFdSXzF8UkRfMiwgCTAs CQlJMzJ8TjU1LAkwLAkwIH0sCiB7ImNseiIsCQkJIlUscyIsCQkweDcwMDAw MDIwLCAweGZjMDAwN2ZmLCBXUl8xfFJEXzIsIAkwLAkJSTMyfE41NSwJMCwJ MCB9LAogLyogY3RjMCBpcyBhdCB0aGUgYm90dG9tIG9mIHRoZSB0YWJsZS4g ICovCi17ImN0YzEiLAkJInQsRyIsCQkweDQ0YzAwMDAwLCAweGZmZTAwN2Zm LAlSRF8xfFdSX0NDfENPRHxGUF9TLAkwLAkJSTEsCQkwLAkwIH0sCi17ImN0 YzEiLAkJInQsUyIsCQkweDQ0YzAwMDAwLCAweGZmZTAwN2ZmLAlSRF8xfFdS X0NDfENPRHxGUF9TLAkwLAkJSTEsCQkwLAkwIH0sCit7ImN0YzEiLAkJInQs RyIsCQkweDQ0YzAwMDAwLCAweGZmZTAwN2ZmLAlSRF8xfFdSX0NDfENPRCwJ CTAsCQlJMSwJCTAsCTAgfSwKK3siY3RjMSIsCQkidCxTIiwJCTB4NDRjMDAw MDAsIDB4ZmZlMDA3ZmYsCVJEXzF8V1JfQ0N8Q09ELAkJMCwJCUkxLAkJMCwJ MCB9LAogLyogY3RjMiBpcyBhdCB0aGUgYm90dG9tIG9mIHRoZSB0YWJsZS4g ICovCiAvKiBjdGMzIGlzIGF0IHRoZSBib3R0b20gb2YgdGhlIHRhYmxlLiAg Ki8KIHsiY3R0YzEiLAkJInQsZyIsCQkweDQxODAwMDIzLCAweGZmZTAwN2Zm LCBSRF8xfFdSX0NDfFRSQVB8Q09EfEZQX1MsIDAsCQkwLAkJTVQzMiwJMCB9 LApAQCAtMTIwOCwxMSArMTIwOSwxMSBAQCBjb25zdCBzdHJ1Y3QgbWlwc19v cGNvZGUgbWlwc19idWlsdGluX29wY29kZXNbXSA9CiB7Imx3IiwJCQkidCxB KGIpIiwJMCwgICAgKGludCkgTV9MV19BQiwJSU5TTl9NQUNSTywJCTAsCQlJ MSwJCTAsCTAgfSwKIHsibHdjMCIsCQkiRSxvKGIpIiwJMHhjMDAwMDAwMCwg MHhmYzAwMDAwMCwJUkRfM3xXUl9DQ3xDTEQsCQkwLAkJSTEsCQkwLAlJT0NU fElPQ1RQfElPQ1QyIH0sCiB7Imx3YzAiLAkJIkUsQShiKSIsCTAsICAgIChp bnQpIE1fTFdDMF9BQiwJSU5TTl9NQUNSTywJCTAsCQlJMSwJCTAsCUlPQ1R8 SU9DVFB8SU9DVDIgfSwKLXsibHdjMSIsCQkiVCxvKGIpIiwJMHhjNDAwMDAw MCwgMHhmYzAwMDAwMCwJV1JfMXxSRF8zfENMRHxGUF9TLAkwLAkJSTEsCQkw LAkwIH0sCi17Imx3YzEiLAkJIkUsbyhiKSIsCTB4YzQwMDAwMDAsIDB4ZmMw MDAwMDAsCVdSXzF8UkRfM3xDTER8RlBfUywJMCwJCUkxLAkJMCwJMCB9LAor eyJsd2MxIiwJCSJULG8oYikiLAkweGM0MDAwMDAwLCAweGZjMDAwMDAwLAlX Ul8xfFJEXzN8Q0xEfEZQX1N8RjMyTSwwLAkJSTEsCQkwLAkwIH0sCit7Imx3 YzEiLAkJIkUsbyhiKSIsCTB4YzQwMDAwMDAsIDB4ZmMwMDAwMDAsCVdSXzF8 UkRfM3xDTER8RlBfU3xGMzJNLDAsCQlJMSwJCTAsCTAgfSwKIHsibHdjMSIs CQkiVCxBKGIpIiwJMCwgICAgKGludCkgTV9MV0MxX0FCLAlJTlNOX01BQ1JP LAkJSU5TTjJfTV9GUF9TLAlJMSwJCTAsCTAgfSwKIHsibHdjMSIsCQkiRSxB KGIpIiwJMCwgICAgKGludCkgTV9MV0MxX0FCLAlJTlNOX01BQ1JPLAkJSU5T TjJfTV9GUF9TLAlJMSwJCTAsCTAgfSwKLXsibC5zIiwJCQkiVCxvKGIpIiwJ MHhjNDAwMDAwMCwgMHhmYzAwMDAwMCwJV1JfMXxSRF8zfENMRHxGUF9TLAkw LAkJSTEsCQkwLAkwIH0sIC8qIGx3YzEgKi8KK3sibC5zIiwJCQkiVCxvKGIp IiwJMHhjNDAwMDAwMCwgMHhmYzAwMDAwMCwJV1JfMXxSRF8zfENMRHxGUF9T fEYzMk0sMCwJCUkxLAkJMCwJMCB9LCAvKiBsd2MxICovCiB7ImwucyIsCQkJ IlQsQShiKSIsCTAsICAgIChpbnQpIE1fTFdDMV9BQiwJSU5TTl9NQUNSTywJ CUlOU04yX01fRlBfUywJSTEsCQkwLAkwIH0sCiB7Imx3YzIiLAkJIkUsbyhi KSIsCTB4YzgwMDAwMDAsIDB4ZmMwMDAwMDAsCVJEXzN8V1JfQ0N8Q0xELAkJ MCwJCUkxLAkJMCwJSU9DVHxJT0NUUHxJT0NUMnxFRSB9LAogeyJsd2MyIiwJ CSJFLEEoYikiLAkwLCAgICAoaW50KSBNX0xXQzJfQUIsCUlOU05fTUFDUk8s CQkwLAkJSTEsCQkwLAlJT0NUfElPQ1RQfElPQ1QyfEVFIH0sCkBAIC0xMjI5 LDcgKzEyMzAsNyBAQCBjb25zdCBzdHJ1Y3QgbWlwc19vcGNvZGUgbWlwc19i dWlsdGluX29wY29kZXNbXSA9CiB7ImZvcmsiLAkJImQscyx0IiwJMHg3YzAw MDAwOCwgMHhmYzAwMDdmZiwgV1JfMXxSRF8yfFJEXzN8VFJBUCwJMCwJCTAs CQlNVDMyLAkwIH0sCiB7Imx3dSIsCQkJInQsbyhiKSIsCTB4OWMwMDAwMDAs IDB4ZmMwMDAwMDAsCVdSXzF8UkRfM3xMTSwJCTAsCQlJMywJCTAsCTAgfSwK IHsibHd1IiwJCQkidCxBKGIpIiwJMCwgICAgKGludCkgTV9MV1VfQUIsCUlO U05fTUFDUk8sCQkwLAkJSTMsCQkwLAkwIH0sCi17Imx3eGMxIiwJCSJELHQo YikiLAkweDRjMDAwMDAwLCAweGZjMDBmODNmLCBXUl8xfFJEXzJ8UkRfM3xM TXxGUF9TLCAgICAgMCwJCUk0XzMzLAkJMCwJMCB9LAoreyJsd3hjMSIsCQki RCx0KGIpIiwJMHg0YzAwMDAwMCwgMHhmYzAwZjgzZiwgV1JfMXxSRF8yfFJE XzN8TE18RlBfU3xGMzJNLCAwLAkJSTRfMzMsCQkwLAkwIH0sCiB7Imx3eHMi LAkJImQsdChiKSIsCTB4NzAwMDAwODgsIDB4ZmMwMDA3ZmYsCVdSXzF8UkRf MnxSRF8zfExNLAkgICAgIDAsCQkwLAkJU01ULAkwIH0sCiB7Im1hY2MiLAkJ ImQscyx0IiwJMHgwMDAwMDAyOCwgMHhmYzAwMDdmZiwgV1JfMXxSRF8yfFJE XzN8V1JfSElMTywJICAgICAwLAkJTjQxMiwJCTAsCTAgfSwKIHsibWFjYyIs CQkiZCxzLHQiLAkweDAwMDAwMTU4LCAweGZjMDAwN2ZmLCBXUl8xfFJEXzJ8 UkRfM3xXUl9ISUxPLAkgICAgIDAsCQlONSwJCTAsCTAgfSwKQEAgLTEzMTAs OCArMTMxMSw4IEBAIGNvbnN0IHN0cnVjdCBtaXBzX29wY29kZSBtaXBzX2J1 aWx0aW5fb3Bjb2Rlc1tdID0KIHsibWZoYzAiLAkJInQsRyxIIiwJMHg0MDQw MDAwMCwgMHhmZmUwMDdmOCwJV1JfMXxSRF9DMHxMQ0QsCQkwLAkJSTMzLAkJ WFBBLAkwIH0sCiB7Im1maGdjMCIsCQkidCxHIiwJCTB4NDA2MDA0MDAsIDB4 ZmZlMDA3ZmYsCVdSXzF8UkRfQzB8TENELAkJMCwJCUkzMywJCUlWSVJUfFhQ QSwJMCB9LAogeyJtZmhnYzAiLAkJInQsRyxIIiwJMHg0MDYwMDQwMCwgMHhm ZmUwMDdmOCwJV1JfMXxSRF9DMHxMQ0QsCQkwLAkJSTMzLAkJSVZJUlR8WFBB LAkwIH0sCi17Im1mYzEiLAkJInQsUyIsCQkweDQ0MDAwMDAwLCAweGZmZTAw N2ZmLAlXUl8xfFJEXzJ8TENEfEZQX1MsCTAsCQlJMSwJCTAsCTAgfSwKLXsi bWZjMSIsCQkidCxHIiwJCTB4NDQwMDAwMDAsIDB4ZmZlMDA3ZmYsCVdSXzF8 UkRfMnxMQ0R8RlBfUywJMCwJCUkxLAkJMCwJMCB9LAoreyJtZmMxIiwJCSJ0 LFMiLAkJMHg0NDAwMDAwMCwgMHhmZmUwMDdmZiwJV1JfMXxSRF8yfExDRHxG UF9TfEYzMk0sMCwJCUkxLAkJMCwJMCB9LAoreyJtZmMxIiwJCSJ0LEciLAkJ MHg0NDAwMDAwMCwgMHhmZmUwMDdmZiwJV1JfMXxSRF8yfExDRHxGUF9TfEYz Mk0sMCwJCUkxLAkJMCwJMCB9LAogeyJtZmhjMSIsCQkidCxTIiwJCTB4NDQ2 MDAwMDAsIDB4ZmZlMDA3ZmYsCVdSXzF8UkRfMnxMQ0R8RlBfRCwJMCwJCUkz MywJCTAsCTAgfSwKIHsibWZoYzEiLAkJInQsRyIsCQkweDQ0NjAwMDAwLCAw eGZmZTAwN2ZmLAlXUl8xfFJEXzJ8TENEfEZQX0QsCTAsCQlJMzMsCQkwLAkw IH0sCiAvKiBtZmMyIGlzIGF0IHRoZSBib3R0b20gb2YgdGhlIHRhYmxlLiAg Ki8KQEAgLTE0MDcsOCArMTQwOCw4IEBAIGNvbnN0IHN0cnVjdCBtaXBzX29w Y29kZSBtaXBzX2J1aWx0aW5fb3Bjb2Rlc1tdID0KIHsibXRoYzAiLAkJInQs RyxIIiwJMHg0MGMwMDAwMCwgMHhmZmUwMDdmOCwJUkRfMXxXUl9DMHxXUl9D Q3xDT0QsCTAsCQlJMzMsCQlYUEEsCTAgfSwKIHsibXRoZ2MwIiwJCSJ0LEci LAkJMHg0MDYwMDYwMCwgMHhmZmUwMDdmZiwJUkRfMXxXUl9DMHxXUl9DQ3xD T0QsCTAsCQlJMzMsCQlJVklSVHxYUEEsCTAgfSwKIHsibXRoZ2MwIiwJCSJ0 LEcsSCIsCTB4NDA2MDA2MDAsIDB4ZmZlMDA3ZjgsCVJEXzF8V1JfQzB8V1Jf Q0N8Q09ELAkwLAkJSTMzLAkJSVZJUlR8WFBBLAkwIH0sCi17Im10YzEiLAkJ InQsUyIsCQkweDQ0ODAwMDAwLCAweGZmZTAwN2ZmLAlSRF8xfFdSXzJ8Q09E fEZQX1MsCTAsCQlJMSwJCTAsCTAgfSwKLXsibXRjMSIsCQkidCxHIiwJCTB4 NDQ4MDAwMDAsIDB4ZmZlMDA3ZmYsCVJEXzF8V1JfMnxDT0R8RlBfUywJMCwJ CUkxLAkJMCwJMCB9LAoreyJtdGMxIiwJCSJ0LFMiLAkJMHg0NDgwMDAwMCwg MHhmZmUwMDdmZiwJUkRfMXxXUl8yfENPRHxGUF9TfEYzMk0sMCwJCUkxLAkJ MCwJMCB9LAoreyJtdGMxIiwJCSJ0LEciLAkJMHg0NDgwMDAwMCwgMHhmZmUw MDdmZiwJUkRfMXxXUl8yfENPRHxGUF9TfEYzMk0sMCwJCUkxLAkJMCwJMCB9 LAogeyJtdGhjMSIsCQkidCxTIiwJCTB4NDRlMDAwMDAsIDB4ZmZlMDA3ZmYs CVJEXzF8V1JfMnxDT0R8RlBfRCwJMCwJCUkzMywJCTAsCTAgfSwKIHsibXRo YzEiLAkJInQsRyIsCQkweDQ0ZTAwMDAwLCAweGZmZTAwN2ZmLAlSRF8xfFdS XzJ8Q09EfEZQX0QsCTAsCQlJMzMsCQkwLAkwIH0sCiAvKiBtdGMyIGlzIGF0 IHRoZSBib3R0b20gb2YgdGhlIHRhYmxlLiAgKi8KQEAgLTE4NDgsMTEgKzE4 NDksMTEgQEAgY29uc3Qgc3RydWN0IG1pcHNfb3Bjb2RlIG1pcHNfYnVpbHRp bl9vcGNvZGVzW10gPQogeyJzd2FwZCIsCQkidCxiIiwJCTB4NzAwMDAwMTYs IDB4ZmMwMGZmZmYsIE1PRF8xfFJEXzJ8TE18U00sCTAsCQlYTFIsCQkwLAkw IH0sCiB7InN3YzAiLAkJIkUsbyhiKSIsCTB4ZTAwMDAwMDAsIDB4ZmMwMDAw MDAsCVJEXzN8UkRfQzB8U00sCQkwLAkJSTEsCQkwLAlJT0NUfElPQ1RQfElP Q1QyIH0sCiB7InN3YzAiLAkJIkUsQShiKSIsCTAsICAgIChpbnQpIE1fU1dD MF9BQiwJSU5TTl9NQUNSTywJCTAsCQlJMSwJCTAsCUlPQ1R8SU9DVFB8SU9D VDIgfSwKLXsic3djMSIsCQkiVCxvKGIpIiwJMHhlNDAwMDAwMCwgMHhmYzAw MDAwMCwJUkRfMXxSRF8zfFNNfEZQX1MsCTAsCQlJMSwJCTAsCTAgfSwKLXsi c3djMSIsCQkiRSxvKGIpIiwJMHhlNDAwMDAwMCwgMHhmYzAwMDAwMCwJUkRf MXxSRF8zfFNNfEZQX1MsCTAsCQlJMSwJCTAsCTAgfSwKK3sic3djMSIsCQki VCxvKGIpIiwJMHhlNDAwMDAwMCwgMHhmYzAwMDAwMCwJUkRfMXxSRF8zfFNN fEZQX1N8RjMyTSwJMCwJCUkxLAkJMCwJMCB9LAoreyJzd2MxIiwJCSJFLG8o YikiLAkweGU0MDAwMDAwLCAweGZjMDAwMDAwLAlSRF8xfFJEXzN8U018RlBf U3xGMzJNLAkwLAkJSTEsCQkwLAkwIH0sCiB7InN3YzEiLAkJIlQsQShiKSIs CTAsICAgIChpbnQpIE1fU1dDMV9BQiwJSU5TTl9NQUNSTywJCUlOU04yX01f RlBfUywJSTEsCQkwLAkwIH0sCiB7InN3YzEiLAkJIkUsQShiKSIsCTAsICAg IChpbnQpIE1fU1dDMV9BQiwJSU5TTl9NQUNSTywJCUlOU04yX01fRlBfUywJ STEsCQkwLAkwIH0sCi17InMucyIsCQkJIlQsbyhiKSIsCTB4ZTQwMDAwMDAs IDB4ZmMwMDAwMDAsCVJEXzF8UkRfM3xTTXxGUF9TLAkwLAkJSTEsCQkwLAkw IH0sIC8qIHN3YzEgKi8KK3sicy5zIiwJCQkiVCxvKGIpIiwJMHhlNDAwMDAw MCwgMHhmYzAwMDAwMCwJUkRfMXxSRF8zfFNNfEZQX1N8RjMyTSwJMCwJCUkx LAkJMCwJMCB9LCAvKiBzd2MxICovCiB7InMucyIsCQkJIlQsQShiKSIsCTAs ICAgIChpbnQpIE1fU1dDMV9BQiwJSU5TTl9NQUNSTywJCUlOU04yX01fRlBf UywJSTEsCQkwLAkwIH0sCiB7InN3YzIiLAkJIkUsbyhiKSIsCTB4ZTgwMDAw MDAsIDB4ZmMwMDAwMDAsCVJEXzN8UkRfQzJ8U00sCQkwLAkJSTEsCQkwLAlJ T0NUfElPQ1RQfElPQ1QyfEVFIH0sCiB7InN3YzIiLAkJIkUsQShiKSIsCTAs ICAgIChpbnQpIE1fU1dDMl9BQiwJSU5TTl9NQUNSTywJCTAsCQlJMSwJCTAs CUlPQ1R8SU9DVFB8SU9DVDJ8RUUgfSwKQEAgLTE4NjYsNyArMTg2Nyw3IEBA IGNvbnN0IHN0cnVjdCBtaXBzX29wY29kZSBtaXBzX2J1aWx0aW5fb3Bjb2Rl c1tdID0KIHsic3dyIiwJCQkidCxBKGIpIiwJMCwgICAgKGludCkgTV9TV1Jf QUIsCUlOU05fTUFDUk8sCQkwLAkJSTEsCQkwLAkwIH0sCiB7ImludmFsaWRh dGUiLAkJInQsbyhiKSIsCTB4YjgwMDAwMDAsIDB4ZmMwMDAwMDAsCVJEXzF8 UkRfMywJCTAsCQlJMiwJCTAsCTAgfSwgLyogc2FtZSAqLwogeyJpbnZhbGlk YXRlIiwJCSJ0LEEoYikiLAkwLCAgICAoaW50KSBNX1NXUl9BQiwJSU5TTl9N QUNSTywJCTAsCQlJMiwJCTAsCTAgfSwgLyogYXMgc3dyICovCi17InN3eGMx IiwJCSJTLHQoYikiLAkweDRjMDAwMDA4LCAweGZjMDAwN2ZmLCBSRF8xfFJE XzJ8UkRfM3xTTXxGUF9TLAkwLAkJSTRfMzMsCQkwLAkwIH0sCit7InN3eGMx IiwJCSJTLHQoYikiLAkweDRjMDAwMDA4LCAweGZjMDAwN2ZmLCBSRF8xfFJE XzJ8UkRfM3xTTXxGUF9TfEYzMk0sIDAsCQlJNF8zMywJCTAsCTAgfSwKIHsi c3luY2lvYmRtYSIsCQkiIiwJCTB4MDAwMDAwOGYsIDB4ZmZmZmZmZmYsCU5P RFMsCQkJMCwJCUlPQ1QsCQkwLAkwIH0sCiB7InN5bmNzIiwJCSIiLAkJMHgw MDAwMDE4ZiwgMHhmZmZmZmZmZiwJTk9EUywJCQkwLAkJSU9DVCwJCTAsCTAg fSwKIHsic3luY3ciLAkJIiIsCQkweDAwMDAwMTBmLCAweGZmZmZmZmZmLAlO T0RTLAkJCTAsCQlJT0NULAkJMCwJMCB9LAotLSAKMS45LjQKCg== --_004_6D39441BF12EF246A7ABCE6654B0235320EB4042LEMAIL01leimgte_ Content-Type: application/octet-stream; name="v3-v4.patch" Content-Description: v3-v4.patch Content-Disposition: attachment; filename="v3-v4.patch"; size=45410; creation-date="Fri, 25 Jul 2014 14:52:38 GMT"; modification-date="Fri, 25 Jul 2014 14:40:37 GMT" Content-Transfer-Encoding: base64 Content-length: 61558 ZGlmZiAtLWdpdCBhL2JmZC9lbGYzMi1taXBzLmMgYi9iZmQvZWxmMzItbWlw cy5jCmluZGV4IDFkZTMwMmYuLmFmNDA1YmMgMTAwNjQ0Ci0tLSBhL2JmZC9l bGYzMi1taXBzLmMKKysrIGIvYmZkL2VsZjMyLW1pcHMuYwpAQCAtMjMxNSw2 ICsyMzE1LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBlY29mZl9kZWJ1Z19z d2FwIG1pcHNfZWxmMzJfZWNvZmZfZGVidWdfc3dhcCA9IHsKICNkZWZpbmUg ZWxmX2JhY2tlbmRfY29sbGVjdAkJVFJVRQogI2RlZmluZSBlbGZfYmFja2Vu ZF90eXBlX2NoYW5nZV9vawlUUlVFCiAjZGVmaW5lIGVsZl9iYWNrZW5kX2Nh bl9nY19zZWN0aW9ucwlUUlVFCisjZGVmaW5lIGVsZl9iYWNrZW5kX2djX21h cmtfZXh0cmFfc2VjdGlvbnMgXAorCQkJCQlfYmZkX21pcHNfZWxmX2djX21h cmtfZXh0cmFfc2VjdGlvbnMKICNkZWZpbmUgZWxmX2luZm9fdG9faG93dG8J CW1pcHNfaW5mb190b19ob3d0b19yZWxhCiAjZGVmaW5lIGVsZl9pbmZvX3Rv X2hvd3RvX3JlbAkJbWlwc19pbmZvX3RvX2hvd3RvX3JlbAogI2RlZmluZSBl bGZfYmFja2VuZF9zeW1faXNfZ2xvYmFsCW1pcHNfZWxmX3N5bV9pc19nbG9i YWwKZGlmZiAtLWdpdCBhL2JmZC9lbGY2NC1taXBzLmMgYi9iZmQvZWxmNjQt bWlwcy5jCmluZGV4IDlkNTBhNzkuLjg2NjJkNjYgMTAwNjQ0Ci0tLSBhL2Jm ZC9lbGY2NC1taXBzLmMKKysrIGIvYmZkL2VsZjY0LW1pcHMuYwpAQCAtNDE4 NSw2ICs0MTg1LDggQEAgY29uc3Qgc3RydWN0IGVsZl9zaXplX2luZm8gbWlw c19lbGY2NF9zaXplX2luZm8gPQogI2RlZmluZSBlbGZfYmFja2VuZF9jb2xs ZWN0CQlUUlVFCiAjZGVmaW5lIGVsZl9iYWNrZW5kX3R5cGVfY2hhbmdlX29r CVRSVUUKICNkZWZpbmUgZWxmX2JhY2tlbmRfY2FuX2djX3NlY3Rpb25zCVRS VUUKKyNkZWZpbmUgZWxmX2JhY2tlbmRfZ2NfbWFya19leHRyYV9zZWN0aW9u cyBcCisJCQkJCV9iZmRfbWlwc19lbGZfZ2NfbWFya19leHRyYV9zZWN0aW9u cwogI2RlZmluZSBlbGZfaW5mb190b19ob3d0bwkJbWlwc19lbGY2NF9pbmZv X3RvX2hvd3RvX3JlbGEKICNkZWZpbmUgZWxmX2luZm9fdG9faG93dG9fcmVs CQltaXBzX2VsZjY0X2luZm9fdG9faG93dG9fcmVsCiAjZGVmaW5lIGVsZl9i YWNrZW5kX29iamVjdF9wCQltaXBzX2VsZjY0X29iamVjdF9wCmRpZmYgLS1n aXQgYS9iZmQvZWxmbjMyLW1pcHMuYyBiL2JmZC9lbGZuMzItbWlwcy5jCmlu ZGV4IGMzN2ZmOWQuLjEyODZjYzEgMTAwNjQ0Ci0tLSBhL2JmZC9lbGZuMzIt bWlwcy5jCisrKyBiL2JmZC9lbGZuMzItbWlwcy5jCkBAIC0zNDEwLDYgKzM0 MTAsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGVjb2ZmX2RlYnVnX3N3YXAg bWlwc19lbGYzMl9lY29mZl9kZWJ1Z19zd2FwID0gewogI2RlZmluZSBlbGZf YmFja2VuZF9jb2xsZWN0CQlUUlVFCiAjZGVmaW5lIGVsZl9iYWNrZW5kX3R5 cGVfY2hhbmdlX29rCVRSVUUKICNkZWZpbmUgZWxmX2JhY2tlbmRfY2FuX2dj X3NlY3Rpb25zCVRSVUUKKyNkZWZpbmUgZWxmX2JhY2tlbmRfZ2NfbWFya19l eHRyYV9zZWN0aW9ucyBcCisJCQkJCV9iZmRfbWlwc19lbGZfZ2NfbWFya19l eHRyYV9zZWN0aW9ucwogI2RlZmluZSBlbGZfaW5mb190b19ob3d0bwkJbWlw c19pbmZvX3RvX2hvd3RvX3JlbGEKICNkZWZpbmUgZWxmX2luZm9fdG9faG93 dG9fcmVsCQltaXBzX2luZm9fdG9faG93dG9fcmVsCiAjZGVmaW5lIGVsZl9i YWNrZW5kX3N5bV9pc19nbG9iYWwJbWlwc19lbGZfc3ltX2lzX2dsb2JhbApk aWZmIC0tZ2l0IGEvYmZkL2VsZnh4LW1pcHMuYyBiL2JmZC9lbGZ4eC1taXBz LmMKaW5kZXggMmIzZDQwZC4uYTcyY2NjMyAxMDA2NDQKLS0tIGEvYmZkL2Vs Znh4LW1pcHMuYworKysgYi9iZmQvZWxmeHgtbWlwcy5jCkBAIC0xMjI0Myw2 ICsxMjI0MywzNiBAQCBfYmZkX21pcHNfZWxmX2djX3N3ZWVwX2hvb2sgKGJm ZCAqYWJmZCBBVFRSSUJVVEVfVU5VU0VELAogCiAgIHJldHVybiBUUlVFOwog fQorCisvKiBQcmV2ZW50IC5NSVBTLmFiaWZsYWdzIGZyb20gYmVpbmcgZGlz Y2FyZGVkIHdpdGggLS1nYy1zZWN0aW9ucy4gICovCisKK2JmZF9ib29sZWFu CitfYmZkX21pcHNfZWxmX2djX21hcmtfZXh0cmFfc2VjdGlvbnMgKHN0cnVj dCBiZmRfbGlua19pbmZvICppbmZvLAorCQkJCSAgICAgIGVsZl9nY19tYXJr X2hvb2tfZm4gZ2NfbWFya19ob29rKQoreworICBiZmQgKnN1YjsKKworICBf YmZkX2VsZl9nY19tYXJrX2V4dHJhX3NlY3Rpb25zIChpbmZvLCBnY19tYXJr X2hvb2spOworCisgIGZvciAoc3ViID0gaW5mby0+aW5wdXRfYmZkczsgc3Vi ICE9IE5VTEw7IHN1YiA9IHN1Yi0+bGluay5uZXh0KQorICAgIHsKKyAgICAg IGFzZWN0aW9uICpvOworCisgICAgICBpZiAoISBpc19taXBzX2VsZiAoc3Vi KSkKKwljb250aW51ZTsKKworICAgICAgZm9yIChvID0gc3ViLT5zZWN0aW9u czsgbyAhPSBOVUxMOyBvID0gby0+bmV4dCkKKwlpZiAoIW8tPmdjX21hcmsK KwkgICAgJiYgTUlQU19FTEZfQUJJRkxBR1NfU0VDVElPTl9OQU1FX1AKKwkJ IChiZmRfZ2V0X3NlY3Rpb25fbmFtZSAoc3ViLCBvKSkpCisJICB7CisJICAg IGlmICghX2JmZF9lbGZfZ2NfbWFyayAoaW5mbywgbywgZ2NfbWFya19ob29r KSkKKwkgICAgICByZXR1cm4gRkFMU0U7CisJICB9CisgICAgfQorCisgIHJl dHVybiBUUlVFOworfQogDAogLyogQ29weSBkYXRhIGZyb20gYSBNSVBTIEVM RiBpbmRpcmVjdCBzeW1ib2wgdG8gaXRzIGRpcmVjdCBzeW1ib2wsCiAgICBo aWRpbmcgdGhlIG9sZCBpbmRpcmVjdCBzeW1ib2wuICBQcm9jZXNzIGFkZGl0 aW9uYWwgcmVsb2NhdGlvbgpAQCAtMTM3NzMsNiArMTM4MDMsNyBAQCB1cGRh dGVfbWlwc19hYmlmbGFnc19pc2EgKGJmZCAqYWJmZCwgRWxmX0ludGVybmFs X0FCSUZsYWdzX3YwICphYmlmbGFncykKICAgICAgIGJyZWFrOwogICAgIGNh c2UgRV9NSVBTX0FSQ0hfMzJSMjoKICAgICAgIGFiaWZsYWdzLT5pc2FfbGV2 ZWwgPSAzMjsKKyAgICAgIC8qIEhhbmRsZSBNSVBTMzJyMyBhbmQgTUlQUzMy cjUgd2hpY2ggZG8gbm90IGhhdmUgYSBoZWFkZXIgZmxhZy4gICovCiAgICAg ICBpZiAoYWJpZmxhZ3MtPmlzYV9yZXYgPCAyKQogCWFiaWZsYWdzLT5pc2Ff cmV2ID0gMjsKICAgICAgIGJyZWFrOwpAQCAtMTM3ODEsNiArMTM4MTIsNyBA QCB1cGRhdGVfbWlwc19hYmlmbGFnc19pc2EgKGJmZCAqYWJmZCwgRWxmX0lu dGVybmFsX0FCSUZsYWdzX3YwICphYmlmbGFncykKICAgICAgIGFiaWZsYWdz LT5pc2FfcmV2ID0gMTsKICAgICAgIGJyZWFrOwogICAgIGNhc2UgRV9NSVBT X0FSQ0hfNjRSMjoKKyAgICAgIC8qIEhhbmRsZSBNSVBTNjRyMyBhbmQgTUlQ UzY0cjUgd2hpY2ggZG8gbm90IGhhdmUgYSBoZWFkZXIgZmxhZy4gICovCiAg ICAgICBhYmlmbGFncy0+aXNhX2xldmVsID0gNjQ7CiAgICAgICBpZiAoYWJp ZmxhZ3MtPmlzYV9yZXYgPCAyKQogCWFiaWZsYWdzLT5pc2FfcmV2ID0gMjsK QEAgLTEzODM0LDcgKzEzODY2LDggQEAgaW5mZXJfbWlwc19hYmlmbGFncyAo YmZkICphYmZkLCBFbGZfSW50ZXJuYWxfQUJJRmxhZ3NfdjAqIGFiaWZsYWdz KQogCSAgJiYgYWJpZmxhZ3MtPmdwcl9zaXplID09IEFGTF9SRUdfMzIpKQog ICAgIGFiaWZsYWdzLT5jcHIxX3NpemUgPSBBRkxfUkVHXzMyOwogICBlbHNl IGlmIChhYmlmbGFncy0+ZnBfYWJpID09IFZhbF9HTlVfTUlQU19BQklfRlBf RE9VQkxFCi0JICAgfHwgYWJpZmxhZ3MtPmZwX2FiaSA9PSBWYWxfR05VX01J UFNfQUJJX0ZQXzY0KQorCSAgIHx8IGFiaWZsYWdzLT5mcF9hYmkgPT0gVmFs X0dOVV9NSVBTX0FCSV9GUF82NAorCSAgIHx8IGFiaWZsYWdzLT5mcF9hYmkg PT0gVmFsX0dOVV9NSVBTX0FCSV9GUF82NEEpCiAgICAgYWJpZmxhZ3MtPmNw cjFfc2l6ZSA9IEFGTF9SRUdfNjQ7CiAKICAgYWJpZmxhZ3MtPmNwcjJfc2l6 ZSA9IEFGTF9SRUdfTk9ORTsKQEAgLTEzODQ1LDYgKzEzODc4LDEzIEBAIGlu ZmVyX21pcHNfYWJpZmxhZ3MgKGJmZCAqYWJmZCwgRWxmX0ludGVybmFsX0FC SUZsYWdzX3YwKiBhYmlmbGFncykKICAgICBhYmlmbGFncy0+YXNlcyB8PSBB RkxfQVNFX01JUFMxNjsKICAgaWYgKGVsZl9lbGZoZWFkZXIgKGFiZmQpLT5l X2ZsYWdzICYgRUZfTUlQU19BUkNIX0FTRV9NSUNST01JUFMpCiAgICAgYWJp ZmxhZ3MtPmFzZXMgfD0gQUZMX0FTRV9NSUNST01JUFM7CisKKyAgaWYgKGFi aWZsYWdzLT5mcF9hYmkgIT0gVmFsX0dOVV9NSVBTX0FCSV9GUF9BTlkKKyAg ICAgICYmIGFiaWZsYWdzLT5mcF9hYmkgIT0gVmFsX0dOVV9NSVBTX0FCSV9G UF9TT0ZUCisgICAgICAmJiBhYmlmbGFncy0+ZnBfYWJpICE9IFZhbF9HTlVf TUlQU19BQklfRlBfNjRBCisgICAgICAmJiBhYmlmbGFncy0+aXNhX2xldmVs ID49IDMyCisgICAgICAmJiBhYmlmbGFncy0+aXNhX2V4dCAhPSBBRkxfRVhU X0xPT05HU09OXzNBKQorICAgIGFiaWZsYWdzLT5mbGFnczEgfD0gQUZMX0ZM QUdTMV9PRERTUFJFRzsKIH0KIAogLyogV2UgbmVlZCB0byB1c2UgYSBzcGVj aWFsIGxpbmsgcm91dGluZSB0byBoYW5kbGUgdGhlIC5yZWdpbmZvIGFuZApA QCAtMTQ2ODQsMTQgKzE0NzI0LDI1IEBAIG1pcHNfZWxmX21lcmdlX29ial9h dHRyaWJ1dGVzIChiZmQgKmliZmQsIGJmZCAqb2JmZCkKIAlvdXRfYXR0cltU YWdfR05VX01JUFNfQUJJX0ZQXS5pID0gaW5fZnA7CiAgICAgICBlbHNlIGlm IChvdXRfZnAgPT0gVmFsX0dOVV9NSVBTX0FCSV9GUF9YWAogCSAgICAgICAm JiAoaW5fZnAgPT0gVmFsX0dOVV9NSVBTX0FCSV9GUF9ET1VCTEUKLQkJICAg fHwgaW5fZnAgPT0gVmFsX0dOVV9NSVBTX0FCSV9GUF82NCkpCisJCSAgIHx8 IGluX2ZwID09IFZhbF9HTlVfTUlQU19BQklfRlBfNjQKKwkJICAgfHwgaW5f ZnAgPT0gVmFsX0dOVV9NSVBTX0FCSV9GUF82NEEpKQogCXsKIAkgIG1pcHNf ZWxmX3RkYXRhIChvYmZkKS0+YWJpX2ZwX2JmZCA9IGliZmQ7CiAJICBvdXRf YXR0cltUYWdfR05VX01JUFNfQUJJX0ZQXS5pID0gaW5fYXR0cltUYWdfR05V X01JUFNfQUJJX0ZQXS5pOwogCX0KICAgICAgIGVsc2UgaWYgKGluX2ZwID09 IFZhbF9HTlVfTUlQU19BQklfRlBfWFgKIAkgICAgICAgJiYgKG91dF9mcCA9 PSBWYWxfR05VX01JUFNfQUJJX0ZQX0RPVUJMRQotCQkgICB8fCBvdXRfZnAg PT0gVmFsX0dOVV9NSVBTX0FCSV9GUF82NCkpCisJCSAgIHx8IG91dF9mcCA9 PSBWYWxfR05VX01JUFNfQUJJX0ZQXzY0CisJCSAgIHx8IG91dF9mcCA9PSBW YWxfR05VX01JUFNfQUJJX0ZQXzY0QSkpCisJLyogS2VlcCB0aGUgY3VycmVu dCBzZXR0aW5nLiAgKi87CisgICAgICBlbHNlIGlmIChvdXRfZnAgPT0gVmFs X0dOVV9NSVBTX0FCSV9GUF82NEEKKwkgICAgICAgJiYgaW5fZnAgPT0gVmFs X0dOVV9NSVBTX0FCSV9GUF82NCkKKwl7CisJICBtaXBzX2VsZl90ZGF0YSAo b2JmZCktPmFiaV9mcF9iZmQgPSBpYmZkOworCSAgb3V0X2F0dHJbVGFnX0dO VV9NSVBTX0FCSV9GUF0uaSA9IGluX2F0dHJbVGFnX0dOVV9NSVBTX0FCSV9G UF0uaTsKKwl9CisgICAgICBlbHNlIGlmIChpbl9mcCA9PSBWYWxfR05VX01J UFNfQUJJX0ZQXzY0QQorCSAgICAgICAmJiBvdXRfZnAgPT0gVmFsX0dOVV9N SVBTX0FCSV9GUF82NCkKIAkvKiBLZWVwIHRoZSBjdXJyZW50IHNldHRpbmcu ICAqLzsKICAgICAgIGVsc2UgaWYgKGluX2ZwICE9IFZhbF9HTlVfTUlQU19B QklfRlBfQU5ZKQogCXsKQEAgLTE0Nzg5LDYgKzE0ODQwLDcgQEAgX2JmZF9t aXBzX2VsZl9tZXJnZV9wcml2YXRlX2JmZF9kYXRhIChiZmQgKmliZmQsIGJm ZCAqb2JmZCkKICAgYmZkX2Jvb2xlYW4gb2s7CiAgIGJmZF9ib29sZWFuIG51 bGxfaW5wdXRfYmZkID0gVFJVRTsKICAgYXNlY3Rpb24gKnNlYzsKKyAgb2Jq X2F0dHJpYnV0ZSAqb3V0X2F0dHI7CiAKICAgLyogQ2hlY2sgaWYgd2UgaGF2 ZSB0aGUgc2FtZSBlbmRpYW5uZXNzLiAgKi8KICAgaWYgKCEgX2JmZF9nZW5l cmljX3ZlcmlmeV9lbmRpYW5fbWF0Y2ggKGliZmQsIG9iZmQpKQpAQCAtMTQ4 ODQsNiArMTQ5MzYsMTEgQEAgX2JmZF9taXBzX2VsZl9tZXJnZV9wcml2YXRl X2JmZF9kYXRhIChiZmQgKmliZmQsIGJmZCAqb2JmZCkKIAkoKl9iZmRfZXJy b3JfaGFuZGxlcikKIAkgIChfKCIlQjogd2FybmluZzogSW5jb25zaXN0ZW50 IElTQSBleHRlbnNpb25zIGJldHdlZW4gZV9mbGFncyBhbmQgIgogCSAgICAg Ii5NSVBTLmFiaWZsYWdzIiksIGliZmQpOworICAgICAgaWYgKGluX2FiaWZs YWdzLmZsYWdzMiAhPSAwKQorCSgqX2JmZF9lcnJvcl9oYW5kbGVyKQorCSAg KF8oIiVCOiB3YXJuaW5nOiBVbmV4cGVjdGVkIGZsYWcgaW4gdGhlIGZsYWdz MiBmaWVsZCBvZiAiCisJICAgICAiLk1JUFMuYWJpZmxhZ3MgKDB4JWx4KSIp LCBpYmZkLAorCSAgICh1bnNpZ25lZCBsb25nKSBpbl9hYmlmbGFncy5mbGFn czIpOwogICAgIH0KIAogICBpZiAoIW1pcHNfZWxmX3RkYXRhIChvYmZkKS0+ YWJpZmxhZ3NfdmFsaWQpCkBAIC0xNDkxNyw3ICsxNDk3NCw3IEBAIF9iZmRf bWlwc19lbGZfbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSAoYmZkICppYmZkLCBi ZmQgKm9iZmQpCiAgICAgfQogCiAgIC8qIFVwZGF0ZSB0aGUgb3V0cHV0IGFi aWZsYWdzIGZwX2FiaSB1c2luZyB0aGUgY29tcHV0ZWQgZnBfYWJpLiAgKi8K LSAgb2JqX2F0dHJpYnV0ZSAqb3V0X2F0dHIgPSBlbGZfa25vd25fb2JqX2F0 dHJpYnV0ZXMgKG9iZmQpW09CSl9BVFRSX0dOVV07CisgIG91dF9hdHRyID0g ZWxmX2tub3duX29ial9hdHRyaWJ1dGVzIChvYmZkKVtPQkpfQVRUUl9HTlVd OwogICBtaXBzX2VsZl90ZGF0YSAob2JmZCktPmFiaWZsYWdzLmZwX2FiaSA9 IG91dF9hdHRyW1RhZ19HTlVfTUlQU19BQklfRlBdLmk7CiAKICNkZWZpbmUg bWF4KGEsYikgKChhKSA+IChiKSA/IChhKSA6IChiKSkKQEAgLTE0OTM3LDYg KzE0OTk0LDggQEAgX2JmZF9taXBzX2VsZl9tZXJnZV9wcml2YXRlX2JmZF9k YXRhIChiZmQgKmliZmQsIGJmZCAqb2JmZCkKICN1bmRlZiBtYXgKICAgbWlw c19lbGZfdGRhdGEgKG9iZmQpLT5hYmlmbGFncy5hc2VzCiAgICAgfD0gbWlw c19lbGZfdGRhdGEgKGliZmQpLT5hYmlmbGFncy5hc2VzOworICBtaXBzX2Vs Zl90ZGF0YSAob2JmZCktPmFiaWZsYWdzLmZsYWdzMQorICAgIHw9IG1pcHNf ZWxmX3RkYXRhIChpYmZkKS0+YWJpZmxhZ3MuZmxhZ3MxOwogCiAgIG5ld19m bGFncyA9IGVsZl9lbGZoZWFkZXIgKGliZmQpLT5lX2ZsYWdzOwogICBlbGZf ZWxmaGVhZGVyIChvYmZkKS0+ZV9mbGFncyB8PSBuZXdfZmxhZ3MgJiBFRl9N SVBTX05PUkVPUkRFUjsKQEAgLTE1MjU3LDcgKzE1MzE2LDcgQEAgX2JmZF9t aXBzX2ZwX2FiaV9zdHJpbmcgKGludCBmcCkKICAgICAgIHJldHVybiAiLW1z b2Z0LWZsb2F0IjsKIAogICAgIGNhc2UgVmFsX0dOVV9NSVBTX0FCSV9GUF9P TERfNjQ6Ci0gICAgICByZXR1cm4gIi1taXBzMzJyMiAtbWZwNjQgKDEyIGNh bGxlZS1zYXZlZCkiOworICAgICAgcmV0dXJuIF8oIi1taXBzMzJyMiAtbWZw NjQgKDEyIGNhbGxlZS1zYXZlZCkiKTsKIAogICAgIGNhc2UgVmFsX0dOVV9N SVBTX0FCSV9GUF9YWDoKICAgICAgIHJldHVybiAiLW1mcHh4IjsKQEAgLTE1 MjY1LDYgKzE1MzI0LDkgQEAgX2JmZF9taXBzX2ZwX2FiaV9zdHJpbmcgKGlu dCBmcCkKICAgICBjYXNlIFZhbF9HTlVfTUlQU19BQklfRlBfNjQ6CiAgICAg ICByZXR1cm4gIi1tZ3AzMiAtbWZwNjQiOwogCisgICAgY2FzZSBWYWxfR05V X01JUFNfQUJJX0ZQXzY0QToKKyAgICAgIHJldHVybiAiLW1ncDMyIC1tZnA2 NCAtbW5vLW9kZC1zcHJlZyI7CisKICAgICBkZWZhdWx0OgogICAgICAgcmV0 dXJuIDA7CiAgICAgfQpAQCAtMTUzMDAsNyArMTUzNjIsNyBAQCBwcmludF9t aXBzX2FzZXMgKEZJTEUgKmZpbGUsIHVuc2lnbmVkIGludCBtYXNrKQogICBp ZiAobWFzayAmIEFGTF9BU0VfWFBBKQogICAgIGZwdXRzICgiXG5cdFhQQSBB U0UiLCBmaWxlKTsKICAgaWYgKG1hc2sgPT0gMCkKLSAgICBmcHV0cyAoXygi XG5cdE5vbmUiKSwgZmlsZSk7CisgICAgZnByaW50ZiAoZmlsZSwgIlxuXHQl cyIsIF8oIk5vbmUiKSk7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC0xNTMxMiw3 ICsxNTM3NCw3IEBAIHByaW50X21pcHNfaXNhX2V4dCAoRklMRSAqZmlsZSwg dW5zaWduZWQgaW50IGlzYV9leHQpCiAgICAgICBmcHV0cyAoXygiTm9uZSIp LCBmaWxlKTsKICAgICAgIGJyZWFrOwogICAgIGNhc2UgQUZMX0VYVF9YTFI6 Ci0gICAgICBmcHV0cyAoIlJNSSBYTFIgaW5zdHJ1Y3Rpb24iLCBmaWxlKTsK KyAgICAgIGZwdXRzICgiUk1JIFhMUiIsIGZpbGUpOwogICAgICAgYnJlYWs7 CiAgICAgY2FzZSBBRkxfRVhUX09DVEVPTjI6CiAgICAgICBmcHV0cyAoIkNh dml1bSBOZXR3b3JrcyBPY3Rlb24yIiwgZmlsZSk7CkBAIC0xNTM5Nyw2ICsx NTQ1OSw5IEBAIHByaW50X21pcHNfZnBfYWJpX3ZhbHVlIChGSUxFICpmaWxl LCBpbnQgdmFsKQogICAgIGNhc2UgVmFsX0dOVV9NSVBTX0FCSV9GUF82NDoK ICAgICAgIGZwcmludGYgKGZpbGUsIF8oIkhhcmQgZmxvYXQgKDMyLWJpdCBD UFUsIDY0LWJpdCBGUFUpXG4iKSk7CiAgICAgICBicmVhazsKKyAgICBjYXNl IFZhbF9HTlVfTUlQU19BQklfRlBfNjRBOgorICAgICAgZnByaW50ZiAoZmls ZSwgXygiSGFyZCBmbG9hdCBjb21wYXQgKDMyLWJpdCBDUFUsIDY0LWJpdCBG UFUpXG4iKSk7CisgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAg ZnByaW50ZiAoZmlsZSwgIj8/PyAoJWQpXG4iLCB2YWwpOwogICAgICAgYnJl YWs7CkBAIC0xNTg0Niw4ICsxNTkxMSw5IEBAIF9iZmRfbWlwc19wb3N0X3By b2Nlc3NfaGVhZGVycyAoYmZkICphYmZkLCBzdHJ1Y3QgYmZkX2xpbmtfaW5m byAqbGlua19pbmZvKQogCWlfZWhkcnAtPmVfaWRlbnRbRUlfQUJJVkVSU0lP Tl0gPSAxOwogICAgIH0KIAotICBpZiAobWlwc19lbGZfdGRhdGEgKGFiZmQp LT5hYmlmbGFncy5mcF9hYmkgPT0gVmFsX0dOVV9NSVBTX0FCSV9GUF82NCkK LSAgICBpX2VoZHJwLT5lX2lkZW50W0VJX0FCSVZFUlNJT05dID0gMzsKLQog ICBfYmZkX2VsZl9wb3N0X3Byb2Nlc3NfaGVhZGVycyAoYWJmZCwgbGlua19p bmZvKTsKKworICBpZiAobWlwc19lbGZfdGRhdGEgKGFiZmQpLT5hYmlmbGFn cy5mcF9hYmkgPT0gVmFsX0dOVV9NSVBTX0FCSV9GUF82NAorICAgICAgfHwg bWlwc19lbGZfdGRhdGEgKGFiZmQpLT5hYmlmbGFncy5mcF9hYmkgPT0gVmFs X0dOVV9NSVBTX0FCSV9GUF82NEEpCisgICAgaV9laGRycC0+ZV9pZGVudFtF SV9BQklWRVJTSU9OXSA9IDM7CiB9CmRpZmYgLS1naXQgYS9iZmQvZWxmeHgt bWlwcy5oIGIvYmZkL2VsZnh4LW1pcHMuaAppbmRleCA5NWI5OGFjLi5hNGQx YjI3IDEwMDY0NAotLS0gYS9iZmQvZWxmeHgtbWlwcy5oCisrKyBiL2JmZC9l bGZ4eC1taXBzLmgKQEAgLTE1Nyw2ICsxNTcsOCBAQCBleHRlcm4gYmZkX3Zt YSBfYmZkX21pcHNfZWxmX3BsdF9zeW1fdmFsCiAgIChiZmRfdm1hLCBjb25z dCBhc2VjdGlvbiAqLCBjb25zdCBhcmVsZW50ICpyZWwpOwogZXh0ZXJuIGxv bmcgX2JmZF9taXBzX2VsZl9nZXRfc3ludGhldGljX3N5bXRhYgogICAoYmZk ICosIGxvbmcsIGFzeW1ib2wgKiosIGxvbmcsIGFzeW1ib2wgKiosIGFzeW1i b2wgKiopOworZXh0ZXJuIGJmZF9ib29sZWFuIF9iZmRfbWlwc19lbGZfZ2Nf bWFya19leHRyYV9zZWN0aW9ucworICAoc3RydWN0IGJmZF9saW5rX2luZm8g KiwgZWxmX2djX21hcmtfaG9va19mbik7CiBleHRlcm4gdm9pZCBfYmZkX21p cHNfcG9zdF9wcm9jZXNzX2hlYWRlcnMKICAgKGJmZCAqYWJmZCwgc3RydWN0 IGJmZF9saW5rX2luZm8gKmxpbmtfaW5mbyk7CiAKZGlmZiAtLWdpdCBhL2Jp bnV0aWxzL3JlYWRlbGYuYyBiL2JpbnV0aWxzL3JlYWRlbGYuYwppbmRleCBi OGI1Mzc3Li43NDYzYzU1IDEwMDY0NAotLS0gYS9iaW51dGlscy9yZWFkZWxm LmMKKysrIGIvYmludXRpbHMvcmVhZGVsZi5jCkBAIC0xMjAxOSw2ICsxMjAx OSw5IEBAIHByaW50X21pcHNfZnBfYWJpX3ZhbHVlIChpbnQgdmFsKQogICAg IGNhc2UgVmFsX0dOVV9NSVBTX0FCSV9GUF82NDoKICAgICAgIHByaW50ZiAo XygiSGFyZCBmbG9hdCAoMzItYml0IENQVSwgNjQtYml0IEZQVSlcbiIpKTsK ICAgICAgIGJyZWFrOworICAgIGNhc2UgVmFsX0dOVV9NSVBTX0FCSV9GUF82 NEE6CisgICAgICBwcmludGYgKF8oIkhhcmQgZmxvYXQgY29tcGF0ICgzMi1i aXQgQ1BVLCA2NC1iaXQgRlBVKVxuIikpOworICAgICAgYnJlYWs7CiAgICAg ZGVmYXVsdDoKICAgICAgIHByaW50ZiAoIj8/PyAoJWQpXG4iLCB2YWwpOwog ICAgICAgYnJlYWs7CkBAIC0xMjY3Myw3ICsxMjY3Niw3IEBAIHByaW50X21p cHNfYXNlcyAodW5zaWduZWQgaW50IG1hc2spCiAgIGlmIChtYXNrICYgQUZM X0FTRV9YUEEpCiAgICAgZnB1dHMgKCJcblx0WFBBIEFTRSIsIHN0ZG91dCk7 CiAgIGlmIChtYXNrID09IDApCi0gICAgZnB1dHMgKF8oIlxuXHROb25lIiks IHN0ZG91dCk7CisgICAgZnByaW50ZiAoc3Rkb3V0LCAiXG5cdCVzIiwgXygi Tm9uZSIpKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTEyNjg1LDcgKzEyNjg4 LDcgQEAgcHJpbnRfbWlwc19pc2FfZXh0ICh1bnNpZ25lZCBpbnQgaXNhX2V4 dCkKICAgICAgIGZwdXRzIChfKCJOb25lIiksIHN0ZG91dCk7CiAgICAgICBi cmVhazsKICAgICBjYXNlIEFGTF9FWFRfWExSOgotICAgICAgZnB1dHMgKCJS TUkgWExSIGluc3RydWN0aW9uIiwgc3Rkb3V0KTsKKyAgICAgIGZwdXRzICgi Uk1JIFhMUiIsIHN0ZG91dCk7CiAgICAgICBicmVhazsKICAgICBjYXNlIEFG TF9FWFRfT0NURU9OMjoKICAgICAgIGZwdXRzICgiQ2F2aXVtIE5ldHdvcmtz IE9jdGVvbjIiLCBzdGRvdXQpOwpkaWZmIC0tZ2l0IGEvZ2FzL2NvbmZpZy90 Yy1taXBzLmMgYi9nYXMvY29uZmlnL3RjLW1pcHMuYwppbmRleCBhY2M3NzJh Li5iMGVjZjE5IDEwMDY0NAotLS0gYS9nYXMvY29uZmlnL3RjLW1pcHMuYwor KysgYi9nYXMvY29uZmlnL3RjLW1pcHMuYwpAQCAtMjU4LDYgKzI1OCwxMCBA QCBzdHJ1Y3QgbWlwc19zZXRfb3B0aW9ucwogICAgICBDaGFuZ2VkIGJ5IC5z ZXQgc2luZ2xlZmxvYXQgb3IgLnNldCBkb3VibGVmbG9hdCwgY29tbWFuZC1s aW5lIG9wdGlvbnMKICAgICAgLW1zaW5nbGUtZmxvYXQgb3IgLW1kb3VibGUt ZmxvYXQuICBUaGUgZGVmYXVsdCBpcyBmYWxzZS4gICovCiAgIGJmZF9ib29s ZWFuIHNpbmdsZV9mbG9hdDsKKworICAvKiAxIGlmIHNpbmdsZS1wcmVjaXNp b24gb3BlcmF0aW9ucyBvbiBvZGQtbnVtYmVyZWQgcmVnaXN0ZXJzIGFyZQor ICAgICBub3QgYWxsb3dlZCAoZXZlbiBpZiBzdXBwb3J0ZWQgYnkgSVNBX0hB U19PRERfU0lOR0xFX0ZQUikuICAqLworICBpbnQgbm9vZGRzcHJlZzsKIH07 CiAKIC8qIFNwZWNpZmllcyB3aGV0aGVyIG1vZHVsZSBsZXZlbCBvcHRpb25z IGhhdmUgYmVlbiBjaGVja2VkIHlldC4gICovCkBAIC0yNzYsNyArMjgwLDcg QEAgc3RhdGljIHN0cnVjdCBtaXBzX3NldF9vcHRpb25zIGZpbGVfbWlwc19v cHRzID0KICAgLyogbm9yZW9yZGVyICovIDAsICAvKiBhdCAqLyBBVFJFRywg Lyogd2Fybl9hYm91dF9tYWNyb3MgKi8gMCwKICAgLyogbm9tb3ZlICovIDAs IC8qIG5vYm9wdCAqLyAwLCAvKiBub2F1dG9leHRlbmQgKi8gMCwgLyogaW5z bjMyICovIEZBTFNFLAogICAvKiBncCAqLyAtMSwgLyogZnAgKi8gLTEsIC8q IGFyY2ggKi8gQ1BVX1VOS05PV04sIC8qIHN5bTMyICovIEZBTFNFLAotICAv KiBzb2Z0X2Zsb2F0ICovIEZBTFNFLCAvKiBzaW5nbGVfZmxvYXQgKi8gRkFM U0UKKyAgLyogc29mdF9mbG9hdCAqLyBGQUxTRSwgLyogc2luZ2xlX2Zsb2F0 ICovIEZBTFNFLCAvKiBub29kZHNwcmVnICovIC0xCiB9OwogCiAvKiBUaGlz IGlzIHNpbWlsYXIgdG8gZmlsZV9taXBzX29wdHMsIGJ1dCBmb3IgdGhlIGN1 cnJlbnQgc2V0IG9mIG9wdGlvbnMuICAqLwpAQCAtMjg3LDcgKzI5MSw3IEBA IHN0YXRpYyBzdHJ1Y3QgbWlwc19zZXRfb3B0aW9ucyBtaXBzX29wdHMgPQog ICAvKiBub3Jlb3JkZXIgKi8gMCwgIC8qIGF0ICovIEFUUkVHLCAvKiB3YXJu X2Fib3V0X21hY3JvcyAqLyAwLAogICAvKiBub21vdmUgKi8gMCwgLyogbm9i b3B0ICovIDAsIC8qIG5vYXV0b2V4dGVuZCAqLyAwLCAvKiBpbnNuMzIgKi8g RkFMU0UsCiAgIC8qIGdwICovIC0xLCAvKiBmcCAqLyAtMSwgLyogYXJjaCAq LyBDUFVfVU5LTk9XTiwgLyogc3ltMzIgKi8gRkFMU0UsCi0gIC8qIHNvZnRf ZmxvYXQgKi8gRkFMU0UsIC8qIHNpbmdsZV9mbG9hdCAqLyBGQUxTRQorICAv KiBzb2Z0X2Zsb2F0ICovIEZBTFNFLCAvKiBzaW5nbGVfZmxvYXQgKi8gRkFM U0UsIC8qIG5vb2Rkc3ByZWcgKi8gLTEKIH07CiAKIC8qIFdoaWNoIGJpdHMg b2YgZmlsZV9hc2Ugd2VyZSBleHBsaWNpdGx5IHNldCBvciBjbGVhcmVkIGJ5 IEFTRSBvcHRpb25zLiAgKi8KQEAgLTM5MywxNSArMzk3LDE3IEBAIHN0YXRp YyBpbnQgbWlwc18zMmJpdG1vZGUgPSAwOwogICAgKQogCiAvKiBSZXR1cm4g dHJ1ZSBpZiBJU0Egc3VwcG9ydHMgc2luZ2xlLXByZWNpc2lvbiBmbG9hdHMg aW4gb2RkIHJlZ2lzdGVycy4gICovCi0jZGVmaW5lIElTQV9IQVNfT0REX1NJ TkdMRV9GUFIoSVNBKQlcCi0gICgoSVNBKSA9PSBJU0FfTUlQUzMyCQkJXAot ICAgfHwgKElTQSkgPT0gSVNBX01JUFMzMlIyCQlcCi0gICB8fCAoSVNBKSA9 PSBJU0FfTUlQUzMyUjMJCVwKLSAgIHx8IChJU0EpID09IElTQV9NSVBTMzJS NQkJXAotICAgfHwgKElTQSkgPT0gSVNBX01JUFM2NAkJXAotICAgfHwgKElT QSkgPT0gSVNBX01JUFM2NFIyCQlcCi0gICB8fCAoSVNBKSA9PSBJU0FfTUlQ UzY0UjMJCVwKLSAgIHx8IChJU0EpID09IElTQV9NSVBTNjRSNSkKKyNkZWZp bmUgSVNBX0hBU19PRERfU0lOR0xFX0ZQUihJU0EsIENQVSlcCisgICgoKElT QSkgPT0gSVNBX01JUFMzMgkJCVwKKyAgICB8fCAoSVNBKSA9PSBJU0FfTUlQ UzMyUjIJCVwKKyAgICB8fCAoSVNBKSA9PSBJU0FfTUlQUzMyUjMJCVwKKyAg ICB8fCAoSVNBKSA9PSBJU0FfTUlQUzMyUjUJCVwKKyAgICB8fCAoSVNBKSA9 PSBJU0FfTUlQUzY0CQlcCisgICAgfHwgKElTQSkgPT0gSVNBX01JUFM2NFIy CQlcCisgICAgfHwgKElTQSkgPT0gSVNBX01JUFM2NFIzCQlcCisgICAgfHwg KElTQSkgPT0gSVNBX01JUFM2NFI1CQlcCisgICAgfHwgKENQVSkgPT0gQ1BV X1I1OTAwKQkJXAorICAgJiYgKENQVSkgIT0gQ1BVX0xPT05HU09OXzNBKQog CiAvKiBSZXR1cm4gdHJ1ZSBpZiBJU0Egc3VwcG9ydHMgbW92ZSB0by9mcm9t IGhpZ2ggcGFydCBvZiBhIDY0LWJpdAogICAgZmxvYXRpbmctcG9pbnQgcmVn aXN0ZXIuICovCkBAIC0xNDM2LDYgKzE0NDIsOCBAQCBlbnVtIG9wdGlvbnMK ICAgICBPUFRJT05fTk9fUERSLAogICAgIE9QVElPTl9NVlhXT1JLU19QSUMs CiAgICAgT1BUSU9OX05BTiwKKyAgICBPUFRJT05fT0REX1NQUkVHLAorICAg IE9QVElPTl9OT19PRERfU1BSRUcsCiAgICAgT1BUSU9OX0VORF9PRl9FTlVN CiAgIH07CiAKQEAgLTE1NDIsNiArMTU1MCw4IEBAIHN0cnVjdCBvcHRpb24g bWRfbG9uZ29wdHNbXSA9CiAgIHsibWhhcmQtZmxvYXQiLCBub19hcmd1bWVu dCwgTlVMTCwgT1BUSU9OX0hBUkRfRkxPQVR9LAogICB7Im1zaW5nbGUtZmxv YXQiLCBub19hcmd1bWVudCwgTlVMTCwgT1BUSU9OX1NJTkdMRV9GTE9BVH0s CiAgIHsibWRvdWJsZS1mbG9hdCIsIG5vX2FyZ3VtZW50LCBOVUxMLCBPUFRJ T05fRE9VQkxFX0ZMT0FUfSwKKyAgeyJtb2RkLXNwcmVnIiwgbm9fYXJndW1l bnQsIE5VTEwsIE9QVElPTl9PRERfU1BSRUd9LAorICB7Im1uby1vZGQtc3By ZWciLCBub19hcmd1bWVudCwgTlVMTCwgT1BUSU9OX05PX09ERF9TUFJFR30s CiAKICAgLyogU3RyaWN0bHkgc3BlYWtpbmcgdGhpcyBuZXh0IG9wdGlvbiBp cyBFTEYgc3BlY2lmaWMsCiAgICAgIGJ1dCB3ZSBhbGxvdyBpdCBmb3Igb3Ro ZXIgcG9ydHMgYXMgd2VsbCBpbiBvcmRlciB0bwpAQCAtMzY1OCwxMSArMzY2 OCwxMSBAQCBmcGFiaV9yZXF1aXJlcyAoaW50IGZwYWJpLCBjb25zdCBjaGFy ICp3aGF0KQogCSAgIFRhZ19HTlVfTUlQU19BQklfRlAsIGZwYWJpLCB3aGF0 KTsKIH0KIAorLyogQ2hlY2sgLW1hYmkgYW5kIHJlZ2lzdGVyIHNpemVzIGFn YWluc3QgdGhlIHNwZWNpZmllZCBGUCBBQkkuICAqLwogc3RhdGljIHZvaWQK IGNoZWNrX2ZwYWJpIChpbnQgZnBhYmkpCiB7CiAgIGJmZF9ib29sZWFuIG5l ZWRzX2NoZWNrID0gRkFMU0U7Ci0gIC8qIENoZWNrIC1tYWJpIGFuZCByZWdp c3RlciBzaXplcy4gICovCiAgIHN3aXRjaCAoZnBhYmkpCiAgICAgewogICAg IGNhc2UgVmFsX0dOVV9NSVBTX0FCSV9GUF9ET1VCTEU6CkBAIC0zNjgzLDEx ICszNjkzLDE2IEBAIGNoZWNrX2ZwYWJpIChpbnQgZnBhYmkpCiAJbmVlZHNf Y2hlY2sgPSBUUlVFOwogICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIFZhbF9H TlVfTUlQU19BQklfRlBfNjRBOgogICAgIGNhc2UgVmFsX0dOVV9NSVBTX0FC SV9GUF82NDoKICAgICAgIGlmIChtaXBzX2FiaSAhPSBPMzJfQUJJKQogCWZw YWJpX3JlcXVpcmVzIChmcGFiaSwgIi1tYWJpPTMyIik7Ci0gICAgICBlbHNl IGlmIChmaWxlX21pcHNfb3B0cy5mcCA9PSAzMikKLQlmcGFiaV9pbmNvbXBh dGlibGVfd2l0aCAoZnBhYmksICJmcD0zMiIpOworICAgICAgZWxzZSBpZiAo ZmlsZV9taXBzX29wdHMuZnAgIT0gNjQpCisJZnBhYmlfcmVxdWlyZXMgKGZw YWJpLCAiZnA9NjQiKTsKKyAgICAgIGVsc2UgaWYgKGZwYWJpID09IFZhbF9H TlVfTUlQU19BQklfRlBfNjQgJiYgZmlsZV9taXBzX29wdHMubm9vZGRzcHJl ZykKKwlmcGFiaV9pbmNvbXBhdGlibGVfd2l0aCAoZnBhYmksICJub29kZHNw cmVnIik7CisgICAgICBlbHNlIGlmIChmcGFiaSA9PSBWYWxfR05VX01JUFNf QUJJX0ZQXzY0QSAmJiAhZmlsZV9taXBzX29wdHMubm9vZGRzcHJlZykKKwlm cGFiaV9yZXF1aXJlcyAoZnBhYmksICJub29kZHNwcmVnIik7CiAgICAgICBl bHNlCiAJbmVlZHNfY2hlY2sgPSBUUlVFOwogICAgICAgYnJlYWs7CkBAIC0z Njk2LDEyICszNzExLDEyIEBAIGNoZWNrX2ZwYWJpIChpbnQgZnBhYmkpCiAg ICAgICBpZiAoZmlsZV9taXBzX29wdHMuc29mdF9mbG9hdCkKIAlmcGFiaV9p bmNvbXBhdGlibGVfd2l0aCAoZnBhYmksICJzb2Z0ZmxvYXQiKTsKICAgICAg IGVsc2UgaWYgKCFmaWxlX21pcHNfb3B0cy5zaW5nbGVfZmxvYXQpCi0JZnBh YmlfaW5jb21wYXRpYmxlX3dpdGggKGZwYWJpLCAiZG91YmxlZmxvYXQiKTsK KwlmcGFiaV9yZXF1aXJlcyAoZnBhYmksICJzaW5nbGVmbG9hdCIpOwogICAg ICAgYnJlYWs7CiAKICAgICBjYXNlIFZhbF9HTlVfTUlQU19BQklfRlBfU09G VDoKICAgICAgIGlmICghZmlsZV9taXBzX29wdHMuc29mdF9mbG9hdCkKLQlm cGFiaV9pbmNvbXBhdGlibGVfd2l0aCAoZnBhYmksICJoYXJkZmxvYXQiKTsK KwlmcGFiaV9yZXF1aXJlcyAoZnBhYmksICJzb2Z0ZmxvYXQiKTsKICAgICAg IGJyZWFrOwogCiAgICAgY2FzZSBWYWxfR05VX01JUFNfQUJJX0ZQX09MRF82 NDoKQEAgLTM3NjMsNiArMzc3OCw5IEBAIG1pcHNfY2hlY2tfb3B0aW9ucyAo c3RydWN0IG1pcHNfc2V0X29wdGlvbnMgKm9wdHMsIGJmZF9ib29sZWFuIGFi aV9jaGVja3MpCiAgICAgICBicmVhazsKICAgICB9CiAKKyAgaWYgKEFCSV9O RUVEU182NEJJVF9SRUdTIChtaXBzX2FiaSkgJiYgb3B0cy0+bm9vZGRzcHJl ZykKKyAgICBhc19iYWQgKF8oImBub29kZHNwcmVnYCBjYW5ub3QgYmUgdXNl ZCB3aXRoIGEgNjQtYml0IEFCSSIpKTsKKwogICBpZiAob3B0cy0+bWljcm9t aXBzID09IDEgJiYgb3B0cy0+bWlwczE2ID09IDEpCiAgICAgYXNfYmFkIChf KCJgbWlwczE2JyBjYW5ub3QgYmUgdXNlZCB3aXRoIGBtaWNyb21pcHMnIikp OwogfQpAQCAtMzgyMCw2ICszODM4LDE2IEBAIGZpbGVfbWlwc19jaGVja19v cHRpb25zICh2b2lkKQogCiAgIGFyY2hfaW5mbyA9IG1pcHNfY3B1X2luZm9f ZnJvbV9hcmNoIChmaWxlX21pcHNfb3B0cy5hcmNoKTsKIAorICAvKiBEaXNh YmxlIG9wZXJhdGlvbnMgb24gb2RkLW51bWJlcmVkIGZsb2F0aW5nLXBvaW50 IHJlZ2lzdGVycyBieSBkZWZhdWx0CisgICAgIHdoZW4gdXNpbmcgdGhlIEZQ WFggQUJJLiAgKi8KKyAgaWYgKGZpbGVfbWlwc19vcHRzLm5vb2Rkc3ByZWcg PCAwKQorICAgIHsKKyAgICAgIGlmIChmaWxlX21pcHNfb3B0cy5mcCA9PSAw KQorCWZpbGVfbWlwc19vcHRzLm5vb2Rkc3ByZWcgPSAxOworICAgICAgZWxz ZQorCWZpbGVfbWlwc19vcHRzLm5vb2Rkc3ByZWcgPSAwOworICAgIH0KKwog ICAvKiBFbmQgb2YgR0NDLXNoYXJlZCBpbmZlcmVuY2UgY29kZS4gICovCiAK ICAgLyogVGhpcyBmbGFnIGlzIHNldCB3aGVuIHdlIGhhdmUgYSA2NC1iaXQg Y2FwYWJsZSBDUFUgYnV0IHVzZSBvbmx5CkBAIC00NDY5LDQ2ICs0NDk3LDQx IEBAIHN0YXRpYyBiZmRfYm9vbGVhbgogbWlwc19vZGRmcHJlZ19vayAoY29u c3Qgc3RydWN0IG1pcHNfb3Bjb2RlICppbnNuLCBpbnQgb3BudW0pCiB7CiAg IGNvbnN0IGNoYXIgKnMgPSBpbnNuLT5uYW1lOwotICBiZmRfYm9vbGVhbiBv ZGRzcHJlZyA9IChJU0FfSEFTX09ERF9TSU5HTEVfRlBSIChtaXBzX29wdHMu aXNhKQotCQkJICB8fCBtaXBzX29wdHMuYXJjaCA9PSBDUFVfUjU5MDApOwor ICBiZmRfYm9vbGVhbiBvZGRzcHJlZyA9IChJU0FfSEFTX09ERF9TSU5HTEVf RlBSIChtaXBzX29wdHMuaXNhLCBtaXBzX29wdHMuYXJjaCkKKwkJCSAgfHwg RlBSX1NJWkUgPT0gNjQpCisJCQkgJiYgIW1pcHNfb3B0cy5ub29kZHNwcmVn OwogCiAgIGlmIChpbnNuLT5waW5mbyA9PSBJTlNOX01BQ1JPKQogICAgIC8q IExldCBhIG1hY3JvIHBhc3MsIHdlJ2xsIGNhdGNoIGl0IGxhdGVyIHdoZW4g aXQgaXMgZXhwYW5kZWQuICAqLwogICAgIHJldHVybiBUUlVFOwogCi0gIGlm IChvZGRzcHJlZykKLSAgICB7Ci0gICAgICAvKiBBbGxvdyBvZGQgcmVnaXN0 ZXJzIGZvciBzaW5nbGUtcHJlY2lzaW9uIG9wcy4gICovCi0gICAgICBzd2l0 Y2ggKGluc24tPnBpbmZvICYgKEZQX1MgfCBGUF9EKSkKLQl7Ci0JY2FzZSBG UF9TOgotCWNhc2UgMDoKLQkgIHJldHVybiBUUlVFOwotCWNhc2UgRlBfRDoK LQkgIHJldHVybiBGQUxTRTsKLQlkZWZhdWx0OgotCSAgYnJlYWs7Ci0JfQot Ci0gICAgICAvKiBDdnQudy54IGFuZCBjdnQueC53IGFsbG93IGFuIG9kZCBy ZWdpc3RlciBmb3IgYSAndycgb3IgJ3MnIG9wZXJhbmQuICAqLwotICAgICAg cyA9IHN0cmNociAoaW5zbi0+bmFtZSwgJy4nKTsKLSAgICAgIGlmIChzICE9 IE5VTEwgJiYgb3BudW0gPT0gMikKLQlzID0gc3RyY2hyIChzICsgMSwgJy4n KTsKLSAgICAgIHJldHVybiAocyAhPSBOVUxMICYmIChzWzFdID09ICd3JyB8 fCBzWzFdID09ICdzJykpOwotICAgIH0KLQotICAvKiBTaW5nbGUtcHJlY2lz aW9uIGNvcHJvY2Vzc29yIGxvYWRzIGFuZCBtb3ZlcyBhcmUgT0sgdG9vLiAg Ki8KKyAgLyogU2luZ2xlLXByZWNpc2lvbiBjb3Byb2Nlc3NvciBsb2FkcyBh bmQgbW92ZXMgYXJlIE9LIGZvciAzMi1iaXQgcmVnaXN0ZXJzLAorICAgICBv dGhlcndpc2UgaXQgZGVwZW5kcyBvbiBvZGRzcHJlZy4gICovCiAgIGlmICgo aW5zbi0+cGluZm8gJiBGUF9TKQotICAgICAgJiYgKGluc24tPnBpbmZvICYg KElOU05fQ09QUk9DX01FTU9SWV9ERUxBWSB8IElOU05fU1RPUkVfTUVNT1JZ Ci0JCQkgfCBJTlNOX0xPQURfQ09QUk9DX0RFTEFZIHwgSU5TTl9DT1BST0Nf TU9WRV9ERUxBWSkpKQorICAgICAgJiYgKGluc24tPnBpbmZvICYgSU5TTl9G UF8zMl9NT1ZFKSkKKyAgICByZXR1cm4gRlBSX1NJWkUgPT0gMzIgfHwgb2Rk c3ByZWc7CisKKyAgLyogQWxsb3cgb2RkIHJlZ2lzdGVycyBmb3Igc2luZ2xl LXByZWNpc2lvbiBvcHMgYW5kIGRvdWJsZS1wcmVjaXNpb24gaWYgdGhlCisg ICAgIGZsb2F0aW5nLXBvaW50IHJlZ2lzdGVycyBhcmUgNjQtYml0IHdpZGUu ICAqLworICBzd2l0Y2ggKGluc24tPnBpbmZvICYgKEZQX1MgfCBGUF9EKSkK ICAgICB7Ci0gICAgICBpZiAoRlBSX1NJWkUgPT0gMCAmJiAhb2Rkc3ByZWcp Ci0JYXNfYmFkIChfKCJ1bnN1cHBvcnRlZCBhY2Nlc3MgdG8gdGhlIHVwcGVy IGhhbGYgb2YgZG91YmxlLXByZWNpc2lvbiAiCi0JCSAgInJlZ2lzdGVycyIp KTsKLSAgICAgIHJldHVybiBUUlVFOworICAgIGNhc2UgRlBfUzoKKyAgICBj YXNlIDA6CisgICAgICByZXR1cm4gb2Rkc3ByZWc7CisgICAgY2FzZSBGUF9E OgorICAgICAgcmV0dXJuIEZQUl9TSVpFID09IDY0OworICAgIGRlZmF1bHQ6 CisgICAgICBicmVhazsKICAgICB9CiAKLSAgcmV0dXJuIEZBTFNFOworICAv KiBDdnQudy54IGFuZCBjdnQueC53IGFsbG93IGFuIG9kZCByZWdpc3RlciBm b3IgYSAndycgb3IgJ3MnIG9wZXJhbmQuICAqLworICBzID0gc3RyY2hyIChp bnNuLT5uYW1lLCAnLicpOworICBpZiAocyAhPSBOVUxMICYmIG9wbnVtID09 IDIpCisgICAgcyA9IHN0cmNociAocyArIDEsICcuJyk7CisgIGlmIChzICE9 IE5VTEwgJiYgKHNbMV0gPT0gJ3cnIHx8IHNbMV0gPT0gJ3MnKSkKKyAgICBy ZXR1cm4gb2Rkc3ByZWc7CisKKyAgcmV0dXJuIEZQUl9TSVpFID09IDY0Owog fQogCiAvKiBJbmZvcm1hdGlvbiBhYm91dCBhbiBpbnN0cnVjdGlvbiBhcmd1 bWVudCB0aGF0IHdlJ3JlIHRyeWluZyB0byBtYXRjaC4gICovCkBAIC00NzMx LDEwICs0NzU0LDEyIEBAIGNoZWNrX3JlZ25vIChzdHJ1Y3QgbWlwc19hcmdf aW5mbyAqYXJnLAogCiAgIGlmICh0eXBlID09IE9QX1JFR19GUAogICAgICAg JiYgKHJlZ25vICYgMSkgIT0gMAotICAgICAgJiYgRlBSX1NJWkUgIT0gNjQK ICAgICAgICYmICFtaXBzX29kZGZwcmVnX29rIChhcmctPmluc24tPmluc25f bW8sIGFyZy0+b3BudW0pKQogICAgIHsKLSAgICAgIGlmIChGUFJfU0laRSAh PSAwKQorICAgICAgLyogVGhpcyB3YXMgYSB3YXJuaW5nIHByaW9yIHRvIGlu dHJvZHVjaW5nIE8zMiBGUFhYIGFuZCBGUDY0IHN1cHBvcnQKKwkgc28gbWFp bnRhaW4gYSB3YXJuaW5nIGZvciBGUDMyIGJ1dCByYWlzZSBhbiBlcnJvciBm b3IgdGhlIG5ldworCSBjYXNlcy4gICovCisgICAgICBpZiAoRlBSX1NJWkUg PT0gMzIpCiAJYXNfd2FybiAoXygiZmxvYXQgcmVnaXN0ZXIgc2hvdWxkIGJl IGV2ZW4sIHdhcyAlZCIpLCByZWdubyk7CiAgICAgICBlbHNlCiAJYXNfYmFk IChfKCJmbG9hdCByZWdpc3RlciBzaG91bGQgYmUgZXZlbiwgd2FzICVkIiks IHJlZ25vKTsKQEAgLTU2MTEsNyArNTYzNiw3IEBAIG1hdGNoX2Zsb2F0X2Nv bnN0YW50IChzdHJ1Y3QgbWlwc19hcmdfaW5mbyAqYXJnLCBleHByZXNzaW9u UyAqaW1tLAogCSBJZiB1c2luZyAzMi1iaXQgcmVnaXN0ZXJzLCBzZXQgSU1N IHRvIHRoZSBoaWdoIG9yZGVyIDMyIGJpdHMgYW5kCiAJIE9GRlNFVCB0byB0 aGUgbG93IG9yZGVyIDMyIGJpdHMuICBPdGhlcndpc2UsIHNldCBJTU0gdG8g dGhlIGVudGlyZQogCSA2NCBiaXQgY29uc3RhbnQuICAqLwotICAgICAgaWYg KHVzaW5nX2dwcnMgPyBHUFJfU0laRSA9PSAzMiA6IEZQUl9TSVpFICE9IDY0 KQorICAgICAgaWYgKEdQUl9TSVpFID09IDMyIHx8ICghdXNpbmdfZ3BycyAm JiBGUFJfU0laRSAhPSA2NCkpCiAJewogCSAgaW1tLT5YX29wID0gT19jb25z dGFudDsKIAkgIG9mZnNldC0+WF9vcCA9IE9fY29uc3RhbnQ7CkBAIC0xMTc5 OSwxMCArMTE4MjQsMTAgQEAgbWFjcm8gKHN0cnVjdCBtaXBzX2NsX2luc24g KmlwLCBjaGFyICpzdHIpCiAJICAgIHsKIAkgICAgICBpZiAoSVNBX0hBU19N WEhDMSAobWlwc19vcHRzLmlzYSkpCiAJICAgICAgICBtYWNyb19idWlsZCAo TlVMTCwgIm10aGMxIiwgInQsRyIsIEFULCBvcFswXSk7Ci0JICAgICAgZWxz ZSBpZiAobWlwc19vcHRzLmZwICE9IDMyKQorCSAgICAgIGVsc2UgaWYgKEZQ Ul9TSVpFICE9IDMyKQogCQlhc19iYWQgKF8oIlVuYWJsZSB0byBnZW5lcmF0 ZSBgJXMnIGNvbXBsaWFudCBjb2RlICIKIAkJCSAgIndpdGhvdXQgbXRoYzEi KSwKLQkJCShtaXBzX29wdHMuZnAgPT0gNjQpID8gImZwNjQiIDogImZweHgi KTsKKwkJCShGUFJfU0laRSA9PSA2NCkgPyAiZnA2NCIgOiAiZnB4eCIpOwog CSAgICAgIGVsc2UKIAkJbWFjcm9fYnVpbGQgKE5VTEwsICJtdGMxIiwgInQs RyIsIEFULCBvcFswXSArIDEpOwogCSAgICAgIGlmIChvZmZzZXRfZXhwci5Y X29wID09IE9fYWJzZW50KQpAQCAtMTQwNTgsNiArMTQwODMsMTQgQEAgbWRf cGFyc2Vfb3B0aW9uIChpbnQgYywgY2hhciAqYXJnKQogICAgICAgZmlsZV9t aXBzX29wdHMuZnAgPSA2NDsKICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBP UFRJT05fT0REX1NQUkVHOgorICAgICAgZmlsZV9taXBzX29wdHMubm9vZGRz cHJlZyA9IDA7CisgICAgICBicmVhazsKKworICAgIGNhc2UgT1BUSU9OX05P X09ERF9TUFJFRzoKKyAgICAgIGZpbGVfbWlwc19vcHRzLm5vb2Rkc3ByZWcg PSAxOworICAgICAgYnJlYWs7CisKICAgICBjYXNlIE9QVElPTl9TSU5HTEVf RkxPQVQ6CiAgICAgICBmaWxlX21pcHNfb3B0cy5zaW5nbGVfZmxvYXQgPSAx OwogICAgICAgYnJlYWs7CkBAIC0xNTE1OCw2ICsxNTE5MSwxMCBAQCBwYXJz ZV9jb2RlX29wdGlvbiAoY2hhciAqIG5hbWUpCiAgICAgbWlwc19vcHRzLnNp bmdsZV9mbG9hdCA9IDE7CiAgIGVsc2UgaWYgKHN0cmNtcCAobmFtZSwgImRv dWJsZWZsb2F0IikgPT0gMCkKICAgICBtaXBzX29wdHMuc2luZ2xlX2Zsb2F0 ID0gMDsKKyAgZWxzZSBpZiAoc3RyY21wIChuYW1lLCAibm9vZGRzcHJlZyIp ID09IDApCisgICAgbWlwc19vcHRzLm5vb2Rkc3ByZWcgPSAxOworICBlbHNl IGlmIChzdHJjbXAgKG5hbWUsICJvZGRzcHJlZyIpID09IDApCisgICAgbWlw c19vcHRzLm5vb2Rkc3ByZWcgPSAwOwogICBlbHNlIGlmIChzdHJjbXAgKG5h bWUsICJtaXBzMTYiKSA9PSAwCiAJICAgfHwgc3RyY21wIChuYW1lLCAiTUlQ Uy0xNiIpID09IDApCiAgICAgbWlwc19vcHRzLm1pcHMxNiA9IDE7CkBAIC0x NTMxOSw2ICsxNTM1Niw5IEBAIHNfbWlwc3NldCAoaW50IHggQVRUUklCVVRF X1VOVVNFRCkKIAljYXNlIDA6CiAJICBicmVhazsKIAljYXNlIElTQV9NSVBT MToKKwkgIC8qIE1JUFMgSSBjYW5ub3Qgc3VwcG9ydCBGUFhYLiAgKi8KKwkg IG1pcHNfb3B0cy5mcCA9IDMyOworCSAgLyogZmFsbC10aHJvdWdoLiAgKi8K IAljYXNlIElTQV9NSVBTMjoKIAljYXNlIElTQV9NSVBTMzI6CiAJY2FzZSBJ U0FfTUlQUzMyUjI6CkBAIC0xNzU5OSw2ICsxNzYzOSwxMCBAQCBtaXBzX2Vs Zl9maW5hbF9wcm9jZXNzaW5nICh2b2lkKQogICBpZiAoZmlsZV9hc2VfbWlj cm9taXBzKQogICAgIGZsYWdzLmFzZXMgfD0gQUZMX0FTRV9NSUNST01JUFM7 CiAgIGZsYWdzLmZsYWdzMSA9IDA7CisgIGlmICgoSVNBX0hBU19PRERfU0lO R0xFX0ZQUiAoZmlsZV9taXBzX29wdHMuaXNhLCBmaWxlX21pcHNfb3B0cy5h cmNoKQorICAgICAgIHx8IGZpbGVfbWlwc19vcHRzLmZwID09IDY0KQorICAg ICAgJiYgIWZpbGVfbWlwc19vcHRzLm5vb2Rkc3ByZWcpCisgICAgZmxhZ3Mu ZmxhZ3MxIHw9IEFGTF9GTEFHUzFfT0REU1BSRUc7CiAgIGZsYWdzLmZsYWdz MiA9IDA7CiAKICAgYmZkX21pcHNfZWxmX3N3YXBfYWJpZmxhZ3NfdjBfb3V0 IChzdGRvdXRwdXQsICZmbGFncywKQEAgLTE4NjQzLDcgKzE4Njg3LDE2IEBA IG1kX21pcHNfZW5kICh2b2lkKQogICBmaWxlX21pcHNfY2hlY2tfb3B0aW9u cyAoKTsKIAogICAvKiBTZXQgYSBmbG9hdGluZy1wb2ludCBBQkkgaWYgdGhl IHVzZXIgZGlkIG5vdC4gICovCi0gIGlmICghb2JqX2VsZl9zZWVuX2F0dHJp YnV0ZSAoT0JKX0FUVFJfR05VLCBUYWdfR05VX01JUFNfQUJJX0ZQKSkKKyAg aWYgKG9ial9lbGZfc2Vlbl9hdHRyaWJ1dGUgKE9CSl9BVFRSX0dOVSwgVGFn X0dOVV9NSVBTX0FCSV9GUCkpCisgICAgeworCisgICAgICAvKiBQZXJmb3Jt IGNvbnNpc3RlbmN5IGNoZWNrcyBvbiB0aGUgZmxvYXRpbmctcG9pbnQgQUJJ LiAgKi8KKyAgICAgIGZwYWJpID0gYmZkX2VsZl9nZXRfb2JqX2F0dHJfaW50 IChzdGRvdXRwdXQsIE9CSl9BVFRSX0dOVSwKKwkJCQkJVGFnX0dOVV9NSVBT X0FCSV9GUCk7CisgICAgICBpZiAoZnBhYmkgIT0gVmFsX0dOVV9NSVBTX0FC SV9GUF9BTlkpCisJY2hlY2tfZnBhYmkgKGZwYWJpKTsKKyAgICB9CisgIGVs c2UKICAgICB7CiAgICAgICAvKiBTb2Z0LWZsb2F0IGdldHMgcHJlY2VkZW5j ZSBvdmVyIHNpbmdsZS1mbG9hdCwgdGhlIHR3byBvcHRpb25zIHNob3VsZAog ICAgICAgICAgbm90IGJlIHVzZWQgdG9nZXRoZXIgc28gdGhpcyBzaG91bGQg bm90IG1hdHRlci4gICovCkBAIC0xODY2NCw3ICsxODcxNyw5IEBAIG1kX21p cHNfZW5kICh2b2lkKQogCSAgICAgIGZwYWJpID0gVmFsX0dOVV9NSVBTX0FC SV9GUF9YWDsKIAkgICAgICBicmVhazsKIAkgICAgY2FzZSA2NDoKLQkgICAg ICBpZiAoZmlsZV9taXBzX29wdHMuZ3AgPT0gMzIpCisJICAgICAgaWYgKGZp bGVfbWlwc19vcHRzLmdwID09IDMyICYmIGZpbGVfbWlwc19vcHRzLm5vb2Rk c3ByZWcpCisJCWZwYWJpID0gVmFsX0dOVV9NSVBTX0FCSV9GUF82NEE7CisJ ICAgICAgZWxzZSBpZiAoZmlsZV9taXBzX29wdHMuZ3AgPT0gMzIpCiAJCWZw YWJpID0gVmFsX0dOVV9NSVBTX0FCSV9GUF82NDsKIAkgICAgICBlbHNlCiAJ CWZwYWJpID0gVmFsX0dOVV9NSVBTX0FCSV9GUF9ET1VCTEU7CkBAIC0xODY3 NSwxMCArMTg3MzAsNCBAQCBtZF9taXBzX2VuZCAodm9pZCkKICAgICAgIGJm ZF9lbGZfYWRkX29ial9hdHRyX2ludCAoc3Rkb3V0cHV0LCBPQkpfQVRUUl9H TlUsCiAJCQkJVGFnX0dOVV9NSVBTX0FCSV9GUCwgZnBhYmkpOwogICAgIH0K LQotICAvKiBQZXJmb3JtIGNvbnNpc3RlbmN5IGNoZWNrcyBvbiB0aGUgZmxv YXRpbmctcG9pbnQgQUJJLiAgKi8KLSAgZnBhYmkgPSBiZmRfZWxmX2dldF9v YmpfYXR0cl9pbnQgKHN0ZG91dHB1dCwgT0JKX0FUVFJfR05VLAotCQkJCSAg ICBUYWdfR05VX01JUFNfQUJJX0ZQKTsKLSAgaWYgKGZwYWJpICE9IFZhbF9H TlVfTUlQU19BQklfRlBfQU5ZKQotICAgIGNoZWNrX2ZwYWJpIChmcGFiaSk7 CiB9CmRpZmYgLS1naXQgYS9nYXMvZG9jL2FzLnRleGluZm8gYi9nYXMvZG9j L2FzLnRleGluZm8KaW5kZXggMDQ3NTdkZi4uMjUxYjZkNSAxMDA2NDQKLS0t IGEvZ2FzL2RvYy9hcy50ZXhpbmZvCisrKyBiL2dhcy9kb2MvYXMudGV4aW5m bwpAQCAtNDAwLDYgKzQwMCw3IEBAIGdjYygxKSwgbGQoMSksIGFuZCB0aGUg SW5mbyBlbnRyaWVzIGZvciBAZmlsZXtiaW51dGlsc30gYW5kIEBmaWxle2xk fS4KICAgIFtAYnstbm9uX3NoYXJlZH1dIFtAYnsteGdvdH0gW0Biey1tdnh3 b3Jrcy1waWN9XQogICAgW0Biey1tYWJpfT1AdmFye0FCSX1dIFtAYnstMzJ9 XSBbQGJ7LW4zMn1dIFtAYnstNjR9XSBbQGJ7LW1mcDMyfV0gW0Biey1tZ3Az Mn1dCiAgICBbQGJ7LW1mcDY0fV0gW0Biey1tZ3A2NH1dIFtAYnstbWZweHh9 XQorICAgW0Biey1tb2RkLXNwcmVnfV0gW0Biey1tbm8tb2RkLXNwcmVnfV0K ICAgIFtAYnstbWFyY2h9PUB2YXJ7Q1BVfV0gW0Biey1tdHVuZX09QHZhcntD UFV9XSBbQGJ7LW1pcHMxfV0gW0Biey1taXBzMn1dCiAgICBbQGJ7LW1pcHMz fV0gW0Biey1taXBzNH1dIFtAYnstbWlwczV9XSBbQGJ7LW1pcHMzMn1dIFtA YnstbWlwczMycjJ9XQogICAgW0Biey1taXBzMzJyM31dIFtAYnstbWlwczMy cjV9XSBbQGJ7LW1pcHM2NH1dIFtAYnstbWlwczY0cjJ9XQpAQCAtMTMzNSw2 ICsxMzM2LDEyIEBAIHRoaXMgZmxhZyBpbiBjb21iaW5hdGlvbiB3aXRoIEBz YW1wey1tYWJpPTMyfSBlbmFibGVzIGFuIEFCSSB2YXJpYW50CiB3aGljaCB3 aWxsIG9wZXJhdGUgY29ycmVjdGx5IHdpdGggZmxvYXRpbmctcG9pbnQgcmVn aXN0ZXJzIHdoaWNoIGFyZQogMzIgb3IgNjQgYml0cyB3aWRlLgogCitAaXRl bSAtbW9kZC1zcHJlZworQGl0ZW14IC1tbm8tb2RkLXNwcmVnCitFbmFibGUg dXNlIG9mIGZsb2F0aW5nLXBvaW50IG9wZXJhdGlvbnMgb24gb2RkLW51bWJl cmVkIHNpbmdsZS1wcmVjaXNpb24KK3JlZ2lzdGVycyB3aGVuIHN1cHBvcnRl ZCBieSB0aGUgSVNBLiAgQHNhbXB7LW1mcHh4fSBpbXBsaWVzCitAc2FtcHst bW5vLW9kZC1zcHJlZ30sIG90aGVyd2lzZSB0aGUgZGVmYXVsdCBpcyBAc2Ft cHstbW9kZC1zcHJlZ30uCisKIEBpdGVtIC1taXBzMTYKIEBpdGVteCAtbm8t bWlwczE2CiBHZW5lcmF0ZSBjb2RlIGZvciB0aGUgTUlQUyAxNiBwcm9jZXNz b3IuICBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gcHV0dGluZwpkaWZmIC0tZ2l0 IGEvZ2FzL2RvYy9jLW1pcHMudGV4aSBiL2dhcy9kb2MvYy1taXBzLnRleGkK aW5kZXggOGVkNGQ1MS4uMWU1MmUwOSAxMDA2NDQKLS0tIGEvZ2FzL2RvYy9j LW1pcHMudGV4aQorKysgYi9nYXMvZG9jL2MtbWlwcy50ZXhpCkBAIC0xMzMs OCArMTMzLDE1IEBAIGNvbXBhdGlibGUgd2l0aCBlaXRoZXIgQHNhbXB7LW1m cDMyfSBvciBAc2FtcHstbWZwNjR9LiBUaGlzIG9wdGlvbiBjYW4KIG9ubHkg YmUgdXNlZCB3aXRoIE1JUFMgSUkgYW5kIGFib3ZlLgogCiBUaGUgQGNvZGV7 LnNldCBmcD14eH0gZGlyZWN0aXZlIGFsbG93cyBhIHBhcnQgb2YgYW4gb2Jq ZWN0IHRvIGJlIG1hcmtlZAotYXMgbm90IG1ha2luZyBhc3N1bXB0aW9ucyBh Ym91dCAzMi1iaXQgb3IgNjQtYml0YSBGUCByZWdpc3RlcnMuICBUaGUKK2Fz IG5vdCBtYWtpbmcgYXNzdW1wdGlvbnMgYWJvdXQgMzItYml0IG9yIDY0LWJp dCBGUCByZWdpc3RlcnMuICBUaGUKIGRlZmF1bHQgdmFsdWUgaXMgcmVzdG9y ZWQgYnkgQGNvZGV7LnNldCBmcD1kZWZhdWx0fS4KKworQGl0ZW0gLW1vZGQt c3ByZWcKK0BpdGVteCAtbW5vLW9kZC1zcHJlZworRW5hYmxlIHVzZSBvZiBm bG9hdGluZy1wb2ludCBvcGVyYXRpb25zIG9uIG9kZC1udW1iZXJlZCBzaW5n bGUtcHJlY2lzaW9uCityZWdpc3RlcnMgd2hlbiBzdXBwb3J0ZWQgYnkgdGhl IElTQS4gIEBzYW1wey1tZnB4eH0gaW1wbGllcworQHNhbXB7LW1uby1vZGQt c3ByZWd9LCBvdGhlcndpc2UgdGhlIGRlZmF1bHQgaXMgQHNhbXB7LW1vZGQt c3ByZWd9CisKIEBpdGVtIC1taXBzMTYKIEBpdGVteCAtbm8tbWlwczE2CiBH ZW5lcmF0ZSBjb2RlIGZvciB0aGUgTUlQUyAxNiBwcm9jZXNzb3IuICBUaGlz IGlzIGVxdWl2YWxlbnQgdG8gcHV0dGluZwpAQCAtODMxLDcgKzgzOCw3IEBA IHBhc3MgYWxsIGZsb2F0aW5nLXBvaW50IGRhdGEgaW4gZ2VuZXJhbC1wdXJw b3NlIHJlZ2lzdGVycy4KIEBpdGVtIDQgLSBEZXByZWNhdGVkCiBUaGlzIHZh cmlhbnQgZXhpc3RlZCBhcyBhbiBpbml0aWFsIGF0dGVtcHQgYXQgc3VwcG9y dGluZyA2NC1iaXQgd2lkZQogZmxvYXRpbmctcG9pbnQgcmVnaXN0ZXJzIGZv ciBPMzIgQUJJIG9uIGEgTUlQUzMycjIgY3B1LiAgVGhpcyBoYXMgYmVlbgot c3VwZXJjZWRlZCBieSBAdmFsdWV7NX0gYW5kIEB2YWx1ZXs2fS4KK3N1cGVy Y2VkZWQgYnkgQHZhbHVlezV9LCBAdmFsdWV7Nn0gYW5kIEB2YWx1ZXs3fS4K IAogQGl0ZW0gNSAtIERvdWJsZS1wcmVjaXNpb24gMzItYml0IENQVSwgMzIt Yml0IG9yIDY0LWJpdCBGUFUKIFRoaXMgdmFyaWFudCBpcyB1c2VkIGJ5IDMy LWJpdCBBQklzIHRvIGluZGljYXRlIHRoYXQgdGhlIGZsb2F0aW5nLXBvaW50 CkBAIC04NDUsNiArODUyLDE0IEBAIFRoaXMgdmFyaWFudCBpcyB1c2VkIGJ5 IDMyLWJpdCBBQklzIHRvIGluZGljYXRlIHRoYXQgdGhlIGZsb2F0aW5nLXBv aW50CiBjb2RlIGluIHRoZSBtb2R1bGUgcmVxdWlyZXMgNjQtYml0IHdpZGUg ZmxvYXRpbmctcG9pbnQgcmVnaXN0ZXJzLgogRG91YmxlLXByZWNpc2lvbiBz dXBwb3J0IGlzIHVzZWQuICBPbmx5IE8zMiBjdXJyZW50bHkgc3VwcG9ydHMg dGhpcwogdmFyaWFudCBhbmQgcmVxdWlyZXMgYSBtaW5pbXVtIGFyY2hpdGVj dHVyZSBvZiBNSVBTMzJyMi4KKworQGl0ZW0gNyAtIERvdWJsZS1wcmVjaXNp b24gY29tcGF0IDMyLWJpdCBGUFUsIDY0LWJpdCBGUFUKK1RoaXMgdmFyaWFu dCBpcyB1c2VkIGJ5IDMyLWJpdCBBQklzIHRvIGluZGljYXRlIHRoYXQgdGhl IGZsb2F0aW5nLXBvaW50Citjb2RlIGluIHRoZSBtb2R1bGUgcmVxdWlyZXMg NjQtYml0IHdpZGUgZmxvYXRpbmctcG9pbnQgcmVnaXN0ZXJzLgorRG91Ymxl LXByZWNpc2lvbiBzdXBwb3J0IGlzIHVzZWQuICBUaGlzIGRpZmZlcnMgZnJv bSB0aGUgcHJldmlvdXMgQUJJCithcyBpdCByZXN0cmljdHMgdXNlIG9mIG9k ZC1udW1iZXJlZCBzaW5nbGUtcHJlY2lzaW9uIHJlZ2lzdGVycy4gIE9ubHkK K08zMiBjdXJyZW50bHkgc3VwcG9ydHMgdGhpcyB2YXJpYW50IGFuZCByZXF1 aXJlcyBhIG1pbmltdW0gYXJjaGl0ZWN0dXJlCitvZiBNSVBTMzJyMi4KIEBl bmQgdGFibGUKIAogQG5vZGUgTUlQUyBGUCBBQkkgU2VsZWN0aW9uCkBAIC04 NjMsMjAgKzg3OCwyMiBAQCBoYXMgYmVlbiB1c2VkIHRoZSBtb2R1bGUgd2ls bCBiZSBtYXJrZWQgYXMgc29mdC1mbG9hdC4gIElmCiBzaW5nbGUtcHJlY2lz aW9uLiAgVGhlIHJlbWFpbmluZyBBQklzIGFyZSB0aGVuIHNlbGVjdGVkIGJh c2VkCiBvbiB0aGUgRlAgcmVnaXN0ZXIgd2lkdGguICBEb3VibGUtcHJlY2lz aW9uIGlzIHNlbGVjdGVkIGlmIHRoZSB3aWR0aAogb2YgR1AgYW5kIEZQIHJl Z2lzdGVycyBtYXRjaCBhbmQgdGhlIHNwZWNpYWwgZG91YmxlLXByZWNpc2lv biB2YXJpYW50cwotZm9yIDMyLWJpdCBBQklzIGFyZSB0aGVuIHNlbGVjdGVk IGRlcGVuZGluZyBvbiBAc2FtcHstbWZweHh9IGFuZAotQHNhbXB7LW1mcDY0 fS4KK2ZvciAzMi1iaXQgQUJJcyBhcmUgdGhlbiBzZWxlY3RlZCBkZXBlbmRp bmcgb24gQHNhbXB7LW1mcHh4fSwKK0BzYW1wey1tZnA2NH0gYW5kIEBzYW1w ey1tbm8tb2RkLXNwcmVnfS4KIAogQG5vZGUgTUlQUyBGUCBBQkkgQ29tcGF0 aWJpbGl0eQogQHN1YnNlY3Rpb24gTGlua2luZyBkaWZmZXJlbnQgRlAgQUJJ IHZhcmlhbnRzCiBNb2R1bGVzIHVzaW5nIHRoZSBkZWZhdWx0IEZQIEFCSSAo bm8gZmxvYXRpbmctcG9pbnQpIGNhbiBiZSBsaW5rZWQgd2l0aAogYW55IG90 aGVyIChzaW5ndWxhcikgRlAgQUJJIHZhcmlhbnQuCiAKLVNwZWNpYWwgY29t cGF0aWJpbGl0eSBzdXBwb3J0IGV4aXN0cyBmb3IgTzMyIHdpdGggdGhlIHRo cmVlCitTcGVjaWFsIGNvbXBhdGliaWxpdHkgc3VwcG9ydCBleGlzdHMgZm9y IE8zMiB3aXRoIHRoZSBmb3VyCiBkb3VibGUtcHJlY2lzaW9uIEZQIEFCSSB2 YXJpYW50cy4gIFRoZSBAc2FtcHstbWZweHh9IEZQIEFCSSBpcyBzcGVjaWZp Y2FsbHkKLWRlc2lnbmVkIHRvIGJlIGNvbXBhdGlibGUgd2l0aCBib3RoIHRo ZSBzdGFuZGFyZCBkb3VibGUtcHJlY2lzaW9uIEFCSSBhbmQKLXRoZSBAc2Ft cHstbWZwNjR9IEZQIEFCSS4gIFRoaXMgbWFrZXMgaXQgZGVzaXJhYmxlIGZv ciBPMzIgbW9kdWxlcyB0byBiZQorZGVzaWduZWQgdG8gYmUgY29tcGF0aWJs ZSB3aXRoIHRoZSBzdGFuZGFyZCBkb3VibGUtcHJlY2lzaW9uIEFCSSBhbmQg dGhlCitAc2FtcHstbWZwNjR9IEZQIEFCSXMuICBUaGlzIG1ha2VzIGl0IGRl c2lyYWJsZSBmb3IgTzMyIG1vZHVsZXMgdG8gYmUKIGJ1aWx0IGFzIEBzYW1w ey1tZnB4eH0gdG8gZW5zdXJlIHRoZSBtYXhpbXVtIGNvbXBhdGliaWxpdHkg d2l0aCBvdGhlcgotbW9kdWxlcyBwcm9kdWNlZCBmb3IgbW9yZSBzcGVjaWZp YyBuZWVkcy4KK21vZHVsZXMgcHJvZHVjZWQgZm9yIG1vcmUgc3BlY2lmaWMg bmVlZHMuICBUaGUgb25seSBGUCBBQklzIHdoaWNoIGNhbm5vdAorYmUgbGlu a2VkIHRvZ2V0aGVyIGFyZSB0aGUgc3RhbmRhcmQgZG91YmxlLXByZWNpc2lv biBBQkkgYW5kIHRoZSBmdWxsCitAc2FtcHstbWZwNjR9IEFCSSB3aXRoIEBz YW1wey1tb2RkLXNwcmVnfS4KIAogQG5vZGUgTUlQUyBOYU4gRW5jb2Rpbmdz CiBAc2VjdGlvbiBEaXJlY3RpdmVzIHRvIHJlY29yZCB3aGljaCBOYU4gZW5j b2RpbmcgaXMgYmVpbmcgdXNlZApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9lbGYv bWlwcy5oIGIvaW5jbHVkZS9lbGYvbWlwcy5oCmluZGV4IDI1NTNlNmQuLjI0 YzIzODAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZWxmL21pcHMuaAorKysgYi9p bmNsdWRlL2VsZi9taXBzLmgKQEAgLTEwNzEsNyArMTA3MSw3IEBAIHR5cGVk ZWYgc3RydWN0CiAgIHVuc2lnbmVkIGNoYXIgY3ByMl9zaXplWzFdOwogICAv KiBUaGUgZmxvYXRpbmctcG9pbnQgQUJJLiAgKi8KICAgdW5zaWduZWQgY2hh ciBmcF9hYmlbMV07Ci0gIC8qIE1hc2sgb2YgcHJvY2Vzc29yLXNwZWNpZmlj IGV4dGVuc2lvbnMuICAqLworICAvKiBQcm9jZXNzb3Itc3BlY2lmaWMgZXh0 ZW5zaW9uLiAgKi8KICAgdW5zaWduZWQgY2hhciBpc2FfZXh0WzRdOwogICAv KiBNYXNrIG9mIEFTRXMgdXNlZC4gICovCiAgIHVuc2lnbmVkIGNoYXIgYXNl c1s0XTsKQEAgLTEwOTYsNyArMTA5Niw3IEBAIHR5cGVkZWYgc3RydWN0CiAg IHVuc2lnbmVkIGNoYXIgY3ByMl9zaXplOwogICAvKiBUaGUgZmxvYXRpbmct cG9pbnQgQUJJLiAgKi8KICAgdW5zaWduZWQgY2hhciBmcF9hYmk7Ci0gIC8q IE1hc2sgb2YgcHJvY2Vzc29yLXNwZWNpZmljIGV4dGVuc2lvbnMuICAqLwor ICAvKiBQcm9jZXNzb3Itc3BlY2lmaWMgZXh0ZW5zaW9uLiAgKi8KICAgdW5z aWduZWQgbG9uZyBpc2FfZXh0OwogICAvKiBNYXNrIG9mIEFTRXMgdXNlZC4g ICovCiAgIHVuc2lnbmVkIGxvbmcgYXNlczsKQEAgLTEyMzMsNiArMTIzMyw5 IEBAIGV4dGVybiB2b2lkIGJmZF9taXBzX2VsZl9zd2FwX2FiaWZsYWdzX3Yw X291dAogI2RlZmluZSBBRkxfRVhUX0xPT05HU09OXzJFICAxNyAgLyogU1Qg TWljcm9lbGVjdHJvbmljcyBMb29uZ3NvbiAyRS4gICovCiAjZGVmaW5lIEFG TF9FWFRfTE9PTkdTT05fMkYgIDE4ICAvKiBTVCBNaWNyb2VsZWN0cm9uaWNz IExvb25nc29uIDJGLiAgKi8KIAorLyogTWFza3MgZm9yIHRoZSBmbGFnczEg d29yZCBvZiBhbiBBQkkgZmxhZ3Mgc3RydWN0dXJlLiAgKi8KKyNkZWZpbmUg QUZMX0ZMQUdTMV9PRERTUFJFRyAgIDEJIC8qIFVzZXMgb2RkIHNpbmdsZS1w cmVjaXNpb24gcmVnaXN0ZXJzLiAgKi8KKwogZXh0ZXJuIHVuc2lnbmVkIGlu dCBiZmRfbWlwc19pc2FfZXh0IChiZmQgKik7CiAMCiAKQEAgLTEyNzQsNiAr MTI3Nyw5IEBAIGVudW0KICAgLyogVXNpbmcgLW1pcHMzMnIyIC1tZnA2NC4g ICovCiAgIFZhbF9HTlVfTUlQU19BQklfRlBfNjQgPSA2LAogCisgIC8qIFVz aW5nIC1taXBzMzJyMiAtbWZwNjQgLW1uby1vZGQtc3ByZWcuICAqLworICBW YWxfR05VX01JUFNfQUJJX0ZQXzY0QSA9IDcsCisKICAgLyogVmFsdWVzIGRl ZmluZWQgZm9yIFRhZ19HTlVfTUlQU19BQklfTVNBLiAgKi8KIAogICAvKiBO b3QgdGFnZ2VkIG9yIG5vdCB1c2luZyBhbnkgQUJJcyBhZmZlY3RlZCBieSB0 aGUgZGlmZmVyZW5jZXMuICAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9vcGNv ZGUvbWlwcy5oIGIvaW5jbHVkZS9vcGNvZGUvbWlwcy5oCmluZGV4IDZhZTFm M2EuLjEzZWJiYTc2IDEwMDY0NAotLS0gYS9pbmNsdWRlL29wY29kZS9taXBz LmgKKysrIGIvaW5jbHVkZS9vcGNvZGUvbWlwcy5oCkBAIC0xMDEwLDYgKzEw MTAsOCBAQCBzdHJ1Y3QgbWlwc19vcGNvZGUKICNkZWZpbmUgSU5TTl9XUklU RV9HUFJfMjQgICAgICAgICAgIDB4MTAwMDAwMDAKIC8qIEEgdXNlci1kZWZp bmVkIGluc3RydWN0aW9uLiAgKi8KICNkZWZpbmUgSU5TTl9VREkgICAgICAg ICAgICAgICAgICAgIDB4MjAwMDAwMDAKKy8qIElzIG10YzEsIG1mYzEsIHN3 YzEsIGx3YzEuICAqLworI2RlZmluZSBJTlNOX0ZQXzMyX01PVkUJCSAgICAw eDQwMDAwMDAwCiAvKiBJbnN0cnVjdGlvbiBpcyBhY3R1YWxseSBhIG1hY3Jv LiAgSXQgc2hvdWxkIGJlIGlnbm9yZWQgYnkgdGhlCiAgICBkaXNhc3NlbWJs ZXIsIGFuZCByZXF1aXJlcyBzcGVjaWFsIHRyZWF0bWVudCBieSB0aGUgYXNz ZW1ibGVyLiAgKi8KICNkZWZpbmUgSU5TTl9NQUNSTyAgICAgICAgICAgICAg ICAgIDB4ZmZmZmZmZmYKZGlmZiAtLWdpdCBhL29wY29kZXMvbWljcm9taXBz LW9wYy5jIGIvb3Bjb2Rlcy9taWNyb21pcHMtb3BjLmMKaW5kZXggYWY3Y2Jm Ni4uZDhmY2JjYSAxMDA2NDQKLS0tIGEvb3Bjb2Rlcy9taWNyb21pcHMtb3Bj LmMKKysrIGIvb3Bjb2Rlcy9taWNyb21pcHMtb3BjLmMKQEAgLTIwNCw2ICsy MDQsNyBAQCBkZWNvZGVfbWljcm9taXBzX29wZXJhbmQgKGNvbnN0IGNoYXIg KnApCiAjZGVmaW5lIFNNCUlOU05fU1RPUkVfTUVNT1JZCiAjZGVmaW5lIEJE MTYJSU5TTjJfQlJBTkNIX0RFTEFZXzE2QklUCS8qIFVzZWQgaW4gcGluZm8y LiAgKi8KICNkZWZpbmUgQkQzMglJTlNOMl9CUkFOQ0hfREVMQVlfMzJCSVQJ LyogVXNlZCBpbiBwaW5mbzIuICAqLworI2RlZmluZSBGMzJNCUlOU05fRlBf MzJfTU9WRQogCiAjZGVmaW5lIFdSXzEJSU5TTl9XUklURV8xCiAjZGVmaW5l IFdSXzIJSU5TTl9XUklURV8yCkBAIC01NDAsMTQgKzU0MSwxNCBAQCBjb25z dCBzdHJ1Y3QgbWlwc19vcGNvZGUgbWljcm9taXBzX29wY29kZXNbXSA9CiB7 ImNlaWwubC5zIiwJCSJULFMiLAkJMHg1NDAwMTMzYiwgMHhmYzAwZmZmZiwJ V1JfMXxSRF8yfEZQX1N8RlBfRCwJMCwJCUkxLAkJMCwJMCB9LAogeyJjZWls LncuZCIsCQkiVCxTIiwJCTB4NTQwMDViM2IsIDB4ZmMwMGZmZmYsCVdSXzF8 UkRfMnxGUF9TfEZQX0QsCTAsCQlJMSwJCTAsCTAgfSwKIHsiY2VpbC53LnMi LAkJIlQsUyIsCQkweDU0MDAxYjNiLCAweGZjMDBmZmZmLAlXUl8xfFJEXzJ8 RlBfUywJCTAsCQlJMSwJCTAsCTAgfSwKLXsiY2ZjMSIsCQkidCxHIiwJCTB4 NTQwMDEwM2IsIDB4ZmMwMGZmZmYsCVdSXzF8UkRfQzF8RlBfUywJMCwJCUkx LAkJMCwJMCB9LAoteyJjZmMxIiwJCSJ0LFMiLAkJMHg1NDAwMTAzYiwgMHhm YzAwZmZmZiwJV1JfMXxSRF9DMXxGUF9TLAkwLAkJSTEsCQkwLAkwIH0sCit7 ImNmYzEiLAkJInQsRyIsCQkweDU0MDAxMDNiLCAweGZjMDBmZmZmLAlXUl8x fFJEX0MxLAkJMCwJCUkxLAkJMCwJMCB9LAoreyJjZmMxIiwJCSJ0LFMiLAkJ MHg1NDAwMTAzYiwgMHhmYzAwZmZmZiwJV1JfMXxSRF9DMSwJCTAsCQlJMSwJ CTAsCTAgfSwKIHsiY2ZjMiIsCQkidCxHIiwJCTB4MDAwMGNkM2MsIDB4ZmMw MGZmZmYsCVdSXzF8UkRfQzIsCQkwLAkJSTEsCQkwLAkwIH0sCiB7ImNsbyIs CQkJInQscyIsCQkweDAwMDA0YjNjLCAweGZjMDBmZmZmLAlXUl8xfFJEXzIs CQkwLAkJSTEsCQkwLAkwIH0sCiB7ImNseiIsCQkJInQscyIsCQkweDAwMDA1 YjNjLCAweGZjMDBmZmZmLAlXUl8xfFJEXzIsCQkwLAkJSTEsCQkwLAkwIH0s CiB7ImNvcDIiLAkJIkMiLAkJMHgwMDAwMDAwMiwgMHhmYzAwMDAwNywJQ1As CQkJMCwJCUkxLAkJMCwJMCB9LAoteyJjdGMxIiwJCSJ0LEciLAkJMHg1NDAw MTgzYiwgMHhmYzAwZmZmZiwJUkRfMXxXUl9DQ3xGUF9TLAkwLAkJSTEsCQkw LAkwIH0sCi17ImN0YzEiLAkJInQsUyIsCQkweDU0MDAxODNiLCAweGZjMDBm ZmZmLAlSRF8xfFdSX0NDfEZQX1MsCTAsCQlJMSwJCTAsCTAgfSwKK3siY3Rj MSIsCQkidCxHIiwJCTB4NTQwMDE4M2IsIDB4ZmMwMGZmZmYsCVJEXzF8V1Jf Q0MsCQkwLAkJSTEsCQkwLAkwIH0sCit7ImN0YzEiLAkJInQsUyIsCQkweDU0 MDAxODNiLCAweGZjMDBmZmZmLAlSRF8xfFdSX0NDLAkJMCwJCUkxLAkJMCwJ MCB9LAogeyJjdGMyIiwJCSJ0LEciLAkJMHgwMDAwZGQzYywgMHhmYzAwZmZm ZiwJUkRfMXxXUl9DMnxXUl9DQywJMCwJCUkxLAkJMCwJMCB9LAogeyJjdnQu ZC5sIiwJCSJULFMiLAkJMHg1NDAwNTM3YiwgMHhmYzAwZmZmZiwJV1JfMXxS RF8yfEZQX0QsCQkwLAkJSTEsCQkwLAkwIH0sCiB7ImN2dC5kLnMiLAkJIlQs UyIsCQkweDU0MDAxMzdiLCAweGZjMDBmZmZmLAlXUl8xfFJEXzJ8RlBfU3xG UF9ELAkwLAkJSTEsCQkwLAkwIH0sCkBAIC03ODksMTMgKzc5MCwxMyBAQCBj b25zdCBzdHJ1Y3QgbWlwc19vcGNvZGUgbWljcm9taXBzX29wY29kZXNbXSA9 CiB7Imx3IiwJCQkibWQsbUEobWEpIiwgICAgICAgIDB4NjQwMCwgICAgIDB4 ZmMwMCwJV1JfMXxSRF8zfExNLAkJMCwJCUkxLAkJMCwJMCB9LCAvKiBsd2dw ICovCiB7Imx3IiwJCQkidCxvKGIpIiwJMHhmYzAwMDAwMCwgMHhmYzAwMDAw MCwJV1JfMXxSRF8zfExNLAkJMCwJCUkxLAkJMCwJMCB9LAogeyJsdyIsCQkJ InQsQShiKSIsCTAsICAgIChpbnQpIE1fTFdfQUIsCUlOU05fTUFDUk8sCQkw LAkJSTEsCQkwLAkwIH0sCi17Imx3YzEiLAkJIlQsbyhiKSIsCTB4OWMwMDAw MDAsIDB4ZmMwMDAwMDAsCVdSXzF8UkRfM3xGUF9TfExNLAkwLAkJSTEsCQkw LAkwIH0sCi17Imx3YzEiLAkJIkUsbyhiKSIsCTB4OWMwMDAwMDAsIDB4ZmMw MDAwMDAsCVdSXzF8UkRfM3xGUF9TfExNLAkwLAkJSTEsCQkwLAkwIH0sCit7 Imx3YzEiLAkJIlQsbyhiKSIsCTB4OWMwMDAwMDAsIDB4ZmMwMDAwMDAsCVdS XzF8UkRfM3xGUF9TfExNfEYzMk0sCTAsCQlJMSwJCTAsCTAgfSwKK3sibHdj MSIsCQkiRSxvKGIpIiwJMHg5YzAwMDAwMCwgMHhmYzAwMDAwMCwJV1JfMXxS RF8zfEZQX1N8TE18RjMyTSwJMCwJCUkxLAkJMCwJMCB9LAogeyJsd2MxIiwJ CSJULEEoYikiLAkwLCAgICAoaW50KSBNX0xXQzFfQUIsCUlOU05fTUFDUk8s CQlJTlNOMl9NX0ZQX1MsCUkxLAkJMCwJMCB9LAogeyJsd2MxIiwJCSJFLEEo YikiLAkwLCAgICAoaW50KSBNX0xXQzFfQUIsCUlOU05fTUFDUk8sCQlJTlNO Ml9NX0ZQX1MsCUkxLAkJMCwJMCB9LAogeyJsd2MyIiwJCSJFLH4oYikiLAkw eDIwMDAwMDAwLCAweGZjMDBmMDAwLAlSRF8zfFdSX0NDfExNLAkJMCwJCUkx LAkJMCwJMCB9LAogeyJsd2MyIiwJCSJFLEEoYikiLAkwLCAgICAoaW50KSBN X0xXQzJfQUIsCUlOU05fTUFDUk8sCQkwLAkJSTEsCQkwLAkwIH0sCi17Imwu cyIsCQkJIlQsbyhiKSIsCTB4OWMwMDAwMDAsIDB4ZmMwMDAwMDAsCVdSXzF8 UkRfM3xGUF9TfExNLAkwLAkJSTEsCQkwLAkwIH0sIC8qIGx3YzEgKi8KK3si bC5zIiwJCQkiVCxvKGIpIiwJMHg5YzAwMDAwMCwgMHhmYzAwMDAwMCwJV1Jf MXxSRF8zfEZQX1N8TE18RjMyTSwJMCwJCUkxLAkJMCwJMCB9LCAvKiBsd2Mx ICovCiB7ImwucyIsCQkJIlQsQShiKSIsCTAsICAgIChpbnQpIE1fTFdDMV9B QiwJSU5TTl9NQUNSTywJCUlOU04yX01fRlBfUywJSTEsCQkwLAkwIH0sCiB7 Imx3bCIsCQkJInQsfihiKSIsCTB4NjAwMDAwMDAsIDB4ZmMwMGYwMDAsCVdS XzF8UkRfM3xMTSwJCTAsCQlJMSwJCTAsCTAgfSwKIHsibHdsIiwJCQkidCxB KGIpIiwJMCwgICAgKGludCkgTV9MV0xfQUIsCUlOU05fTUFDUk8sCQkwLAkJ STEsCQkwLAkwIH0sCkBAIC04MTAsNyArODExLDcgQEAgY29uc3Qgc3RydWN0 IG1pcHNfb3Bjb2RlIG1pY3JvbWlwc19vcGNvZGVzW10gPQogeyJsd3IiLAkJ CSJ0LEEoYikiLAkwLCAgICAoaW50KSBNX0xXUl9BQiwJSU5TTl9NQUNSTywJ CTAsCQlJMSwJCTAsCTAgfSwKIHsibHd1IiwJCQkidCx+KGIpIiwJMHg2MDAw ZTAwMCwgMHhmYzAwZjAwMCwJV1JfMXxSRF8zfExNLAkJMCwJCUkzLAkJMCwJ MCB9LAogeyJsd3UiLAkJCSJ0LEEoYikiLAkwLCAgICAoaW50KSBNX0xXVV9B QiwJSU5TTl9NQUNSTywJCTAsCQlJMywJCTAsCTAgfSwKLXsibHd4YzEiLAkJ IkQsdChiKSIsCTB4NTQwMDAwNDgsIDB4ZmMwMDA3ZmYsCVdSXzF8UkRfMnxS RF8zfEZQX1N8TE0sIDAsCQlJMSwJCTAsCTAgfSwKK3sibHd4YzEiLAkJIkQs dChiKSIsCTB4NTQwMDAwNDgsIDB4ZmMwMDA3ZmYsCVdSXzF8UkRfMnxSRF8z fEZQX1N8TE18RjMyTSwgMCwJCUkxLAkJMCwJMCB9LAogeyJmbHVzaCIsCQki dCx+KGIpIiwJMHg2MDAwMTAwMCwgMHhmYzAwZjAwMCwJV1JfMXxSRF8zLAkJ MCwJCUkxLAkJMCwJMCB9LCAvKiBzYW1lICovCiB7ImZsdXNoIiwJCSJ0LEEo YikiLAkwLCAgICAoaW50KSBNX0xXUl9BQiwJSU5TTl9NQUNSTywJCTAsCQlJ MSwJCTAsCTAgfSwKIHsibHd4cyIsCQkiZCx0KGIpIiwJMHgwMDAwMDExOCwg MHhmYzAwMDdmZiwJV1JfMXxSRF8yfFJEXzN8TE0sCTAsCQlJMSwJCTAsCTAg fSwKQEAgLTgyMyw4ICs4MjQsOCBAQCBjb25zdCBzdHJ1Y3QgbWlwc19vcGNv ZGUgbWljcm9taXBzX29wY29kZXNbXSA9CiB7Im1hZGR1IiwJCSI3LHMsdCIs CTB4MDAwMDFhYmMsIDB4ZmMwMDNmZmYsCVJEXzJ8UkRfM3xNT0RfYSwJMCwJ CTAsCQlEMzIsCTAgfSwKIHsibWZjMCIsCQkidCxHIiwJCTB4MDAwMDAwZmMs IDB4ZmMwMGZmZmYsCVdSXzF8UkRfQzAsCQkwLAkJSTEsCQkwLAkwIH0sCiB7 Im1mYzAiLAkJInQsRyxIIiwJMHgwMDAwMDBmYywgMHhmYzAwYzdmZiwJV1Jf MXxSRF9DMCwJCTAsCQlJMSwJCTAsCTAgfSwKLXsibWZjMSIsCQkidCxTIiwJ CTB4NTQwMDIwM2IsIDB4ZmMwMGZmZmYsCVdSXzF8UkRfMnxGUF9TLAkJMCwJ CUkxLAkJMCwJMCB9LAoteyJtZmMxIiwJCSJ0LEciLAkJMHg1NDAwMjAzYiwg MHhmYzAwZmZmZiwJV1JfMXxSRF8yfEZQX1MsCQkwLAkJSTEsCQkwLAkwIH0s Cit7Im1mYzEiLAkJInQsUyIsCQkweDU0MDAyMDNiLCAweGZjMDBmZmZmLAlX Ul8xfFJEXzJ8RlBfU3xGMzJNLAkwLAkJSTEsCQkwLAkwIH0sCit7Im1mYzEi LAkJInQsRyIsCQkweDU0MDAyMDNiLCAweGZjMDBmZmZmLAlXUl8xfFJEXzJ8 RlBfU3xGMzJNLAkwLAkJSTEsCQkwLAkwIH0sCiB7Im1mYzIiLAkJInQsRyIs CQkweDAwMDA0ZDNjLCAweGZjMDBmZmZmLAlXUl8xfFJEX0MyLAkJMCwJCUkx LAkJMCwJMCB9LAogeyJtZmdjMCIsCQkidCxHIiwJCTB4MDAwMDA0ZmMsIDB4 ZmMwMGZmZmYsCVdSXzF8UkRfQzAsCQkwLAkJMCwJCUlWSVJULAkwIH0sCiB7 Im1mZ2MwIiwJCSJ0LEcsSCIsCTB4MDAwMDA0ZmMsIDB4ZmMwMGM3ZmYsCVdS XzF8UkRfQzAsCQkwLAkJMCwJCUlWSVJULAkwIH0sCkBAIC04NjksOCArODcw LDggQEAgY29uc3Qgc3RydWN0IG1pcHNfb3Bjb2RlIG1pY3JvbWlwc19vcGNv ZGVzW10gPQogeyJtc3VidSIsCQkiNyxzLHQiLAkweDAwMDAzYWJjLCAweGZj MDAzZmZmLAlSRF8yfFJEXzN8TU9EX2EsCTAsCQkwLAkJRDMyLAkwIH0sCiB7 Im10YzAiLAkJInQsRyIsCQkweDAwMDAwMmZjLCAweGZjMDBmZmZmLAlSRF8x fFdSX0MwfFdSX0NDLAkwLAkJSTEsCQkwLAkwIH0sCiB7Im10YzAiLAkJInQs RyxIIiwJMHgwMDAwMDJmYywgMHhmYzAwYzdmZiwJUkRfMXxXUl9DMHxXUl9D QywJMCwJCUkxLAkJMCwJMCB9LAoteyJtdGMxIiwJCSJ0LFMiLAkJMHg1NDAw MjgzYiwgMHhmYzAwZmZmZiwJUkRfMXxXUl8yfEZQX1MsCQkwLAkJSTEsCQkw LAkwIH0sCi17Im10YzEiLAkJInQsRyIsCQkweDU0MDAyODNiLCAweGZjMDBm ZmZmLAlSRF8xfFdSXzJ8RlBfUywJCTAsCQlJMSwJCTAsCTAgfSwKK3sibXRj MSIsCQkidCxTIiwJCTB4NTQwMDI4M2IsIDB4ZmMwMGZmZmYsCVJEXzF8V1Jf MnxGUF9TfEYzMk0sCTAsCQlJMSwJCTAsCTAgfSwKK3sibXRjMSIsCQkidCxH IiwJCTB4NTQwMDI4M2IsIDB4ZmMwMGZmZmYsCVJEXzF8V1JfMnxGUF9TfEYz Mk0sCTAsCQlJMSwJCTAsCTAgfSwKIHsibXRjMiIsCQkidCxHIiwJCTB4MDAw MDVkM2MsIDB4ZmMwMGZmZmYsCVJEXzF8V1JfQzJ8V1JfQ0MsCTAsCQlJMSwJ CTAsCTAgfSwKIHsibXRnYzAiLAkJInQsRyIsCQkweDAwMDAwNmZjLCAweGZj MDBmZmZmLAlSRF8xfFdSX0MwfFdSX0NDLAkwLAkJMCwJCUlWSVJULAkwIH0s CiB7Im10Z2MwIiwJCSJ0LEcsSCIsCTB4MDAwMDA2ZmMsIDB4ZmMwMGM3ZmYs CVJEXzF8V1JfQzB8V1JfQ0MsCTAsCQkwLAkJSVZJUlQsCTAgfSwKQEAgLTEw MzcsMTMgKzEwMzgsMTMgQEAgY29uc3Qgc3RydWN0IG1pcHNfb3Bjb2RlIG1p Y3JvbWlwc19vcGNvZGVzW10gPQogeyJzdyIsCQkJIm1wLG1VKG1zKSIsCSAg ICAweGM4MDAsICAgICAweGZjMDAsCVJEXzF8UkRfM3xTTSwJCTAsCQlJMSwJ CTAsCTAgfSwgLyogc3dzcCAqLwogeyJzdyIsCQkJInQsbyhiKSIsCTB4Zjgw MDAwMDAsIDB4ZmMwMDAwMDAsCVJEXzF8UkRfM3xTTSwJCTAsCQlJMSwJCTAs CTAgfSwKIHsic3ciLAkJCSJ0LEEoYikiLAkwLCAgICAoaW50KSBNX1NXX0FC LAlJTlNOX01BQ1JPLAkJMCwJCUkxLAkJMCwJMCB9LAoteyJzd2MxIiwJCSJU LG8oYikiLAkweDk4MDAwMDAwLCAweGZjMDAwMDAwLAlSRF8xfFJEXzN8U018 RlBfUywJMCwJCUkxLAkJMCwJMCB9LAoteyJzd2MxIiwJCSJFLG8oYikiLAkw eDk4MDAwMDAwLCAweGZjMDAwMDAwLAlSRF8xfFJEXzN8U018RlBfUywJMCwJ CUkxLAkJMCwJMCB9LAoreyJzd2MxIiwJCSJULG8oYikiLAkweDk4MDAwMDAw LCAweGZjMDAwMDAwLAlSRF8xfFJEXzN8U018RlBfU3xGMzJNLAkwLAkJSTEs CQkwLAkwIH0sCit7InN3YzEiLAkJIkUsbyhiKSIsCTB4OTgwMDAwMDAsIDB4 ZmMwMDAwMDAsCVJEXzF8UkRfM3xTTXxGUF9TfEYzMk0sCTAsCQlJMSwJCTAs CTAgfSwKIHsic3djMSIsCQkiVCxBKGIpIiwJMCwgICAgKGludCkgTV9TV0Mx X0FCLAlJTlNOX01BQ1JPLAkJSU5TTjJfTV9GUF9TLAlJMSwJCTAsCTAgfSwK IHsic3djMSIsCQkiRSxBKGIpIiwJMCwgICAgKGludCkgTV9TV0MxX0FCLAlJ TlNOX01BQ1JPLAkJSU5TTjJfTV9GUF9TLAlJMSwJCTAsCTAgfSwKIHsic3dj MiIsCQkiRSx+KGIpIiwJMHgyMDAwODAwMCwgMHhmYzAwZjAwMCwJUkRfM3xS RF9DMnxTTSwJCTAsCQlJMSwJCTAsCTAgfSwKIHsic3djMiIsCQkiRSxBKGIp IiwJMCwgICAgKGludCkgTV9TV0MyX0FCLAlJTlNOX01BQ1JPLAkJMCwJCUkx LAkJMCwJMCB9LAoteyJzLnMiLAkJCSJULG8oYikiLAkweDk4MDAwMDAwLCAw eGZjMDAwMDAwLAlSRF8xfFJEXzN8U018RlBfUywJMCwJCUkxLAkJMCwJMCB9 LCAvKiBzd2MxICovCit7InMucyIsCQkJIlQsbyhiKSIsCTB4OTgwMDAwMDAs IDB4ZmMwMDAwMDAsCVJEXzF8UkRfM3xTTXxGUF9TfEYzMk0sCTAsCQlJMSwJ CTAsCTAgfSwgLyogc3djMSAqLwogeyJzLnMiLAkJCSJULEEoYikiLAkwLCAg ICAoaW50KSBNX1NXQzFfQUIsCUlOU05fTUFDUk8sCQlJTlNOMl9NX0ZQX1Ms CUkxLAkJMCwJMCB9LAogeyJzd2wiLAkJCSJ0LH4oYikiLAkweDYwMDA4MDAw LCAweGZjMDBmMDAwLAlSRF8xfFJEXzN8U00sCQkwLAkJSTEsCQkwLAkwIH0s CiB7InN3bCIsCQkJInQsQShiKSIsCTAsICAgIChpbnQpIE1fU1dMX0FCLAlJ TlNOX01BQ1JPLAkJMCwJCUkxLAkJMCwJMCB9LApAQCAtMTA1OCw3ICsxMDU5 LDcgQEAgY29uc3Qgc3RydWN0IG1pcHNfb3Bjb2RlIG1pY3JvbWlwc19vcGNv ZGVzW10gPQogeyJzd3IiLAkJCSJ0LEEoYikiLAkwLCAgICAoaW50KSBNX1NX Ul9BQiwJSU5TTl9NQUNSTywJCTAsCQlJMSwJCTAsCTAgfSwKIHsiaW52YWxp ZGF0ZSIsCQkidCx+KGIpIiwJMHg2MDAwOTAwMCwgMHhmYzAwZjAwMCwJUkRf MXxSRF8zfFNNLAkJMCwJCUkxLAkJMCwJMCB9LCAvKiBzYW1lICovCiB7Imlu dmFsaWRhdGUiLAkJInQsQShiKSIsCTAsICAgIChpbnQpIE1fU1dSX0FCLAlJ TlNOX01BQ1JPLAkJMCwJCUkxLAkJMCwJMCB9LAoteyJzd3hjMSIsCQkiRCx0 KGIpIiwJMHg1NDAwMDA4OCwgMHhmYzAwMDdmZiwJUkRfMXxSRF8yfFJEXzN8 U018RlBfUywJMCwJCUkxLAkJMCwJMCB9LAoreyJzd3hjMSIsCQkiRCx0KGIp IiwJMHg1NDAwMDA4OCwgMHhmYzAwMDdmZiwJUkRfMXxSRF8yfFJEXzN8U018 RlBfU3xGMzJNLCAwLAkJSTEsCQkwLAkwIH0sCiB7InN5bmNfYWNxdWlyZSIs CSIiLAkJMHgwMDExNmI3YywgMHhmZmZmZmZmZiwJTk9EUywJCQkwLAkJSTEs CQkwLAkwIH0sCiB7InN5bmNfbWIiLAkJIiIsCQkweDAwMTA2YjdjLCAweGZm ZmZmZmZmLAlOT0RTLAkJCTAsCQlJMSwJCTAsCTAgfSwKIHsic3luY19yZWxl YXNlIiwJIiIsCQkweDAwMTI2YjdjLCAweGZmZmZmZmZmLAlOT0RTLAkJCTAs CQlJMSwJCTAsCTAgfSwKZGlmZiAtLWdpdCBhL29wY29kZXMvbWlwcy1vcGMu YyBiL29wY29kZXMvbWlwcy1vcGMuYwppbmRleCBlMmMyNThjLi4wNGMyM2M1 IDEwMDY0NAotLS0gYS9vcGNvZGVzL21pcHMtb3BjLmMKKysrIGIvb3Bjb2Rl cy9taXBzLW9wYy5jCkBAIC0yMDAsNiArMjAwLDcgQEAgZGVjb2RlX21pcHNf b3BlcmFuZCAoY29uc3QgY2hhciAqcCkKICNkZWZpbmUgVFJBUAlJTlNOX05P X0RFTEFZX1NMT1QKICNkZWZpbmUgTE0JSU5TTl9MT0FEX01FTU9SWQogI2Rl ZmluZSBTTQlJTlNOX1NUT1JFX01FTU9SWQorI2RlZmluZSBGMzJNCUlOU05f RlBfMzJfTU9WRQogCiAjZGVmaW5lIFdSXzEJSU5TTl9XUklURV8xCiAjZGVm aW5lIFdSXzIJSU5TTl9XUklURV8yCkBAIC05MDEsOCArOTAyLDggQEAgY29u c3Qgc3RydWN0IG1pcHNfb3Bjb2RlIG1pcHNfYnVpbHRpbl9vcGNvZGVzW10g PQogeyJjZWlsLncuZCIsCQkiRCxTIiwJCTB4NDYyMDAwMGUsIDB4ZmZmZjAw M2YsIFdSXzF8UkRfMnxGUF9TfEZQX0QsCTAsCQlJMiwJCTAsCVNGIH0sCiB7 ImNlaWwudy5zIiwJCSJELFMiLAkJMHg0NjAwMDAwZSwgMHhmZmZmMDAzZiwg V1JfMXxSRF8yfEZQX1MsCQkwLAkJSTIsCQkwLAlFRSB9LAogLyogY2ZjMCBp cyBhdCB0aGUgYm90dG9tIG9mIHRoZSB0YWJsZS4gICovCi17ImNmYzEiLAkJ InQsRyIsCQkweDQ0NDAwMDAwLCAweGZmZTAwN2ZmLAlXUl8xfFJEX0MxfExD RHxGUF9TLAkwLAkJSTEsCQkwLAkwIH0sCi17ImNmYzEiLAkJInQsUyIsCQkw eDQ0NDAwMDAwLCAweGZmZTAwN2ZmLAlXUl8xfFJEX0MxfExDRHxGUF9TLAkw LAkJSTEsCQkwLAkwIH0sCit7ImNmYzEiLAkJInQsRyIsCQkweDQ0NDAwMDAw LCAweGZmZTAwN2ZmLAlXUl8xfFJEX0MxfExDRCwJCTAsCQlJMSwJCTAsCTAg fSwKK3siY2ZjMSIsCQkidCxTIiwJCTB4NDQ0MDAwMDAsIDB4ZmZlMDA3ZmYs CVdSXzF8UkRfQzF8TENELAkJMCwJCUkxLAkJMCwJMCB9LAogLyogY2ZjMiBp cyBhdCB0aGUgYm90dG9tIG9mIHRoZSB0YWJsZS4gICovCiAvKiBjZmMzIGlz IGF0IHRoZSBib3R0b20gb2YgdGhlIHRhYmxlLiAgKi8KIHsiY2Z0YzEiLAkJ ImQsRSIsCQkweDQxMDAwMDIzLCAweGZmZTAwN2ZmLCBXUl8xfFJEX0MxfFRS QVB8TENEfEZQX1MsIDAsCQkwLAkJTVQzMiwJMCB9LApAQCAtOTE0LDggKzkx NSw4IEBAIGNvbnN0IHN0cnVjdCBtaXBzX29wY29kZSBtaXBzX2J1aWx0aW5f b3Bjb2Rlc1tdID0KIHsiY2xvIiwJCQkiVSxzIiwJCTB4NzAwMDAwMjEsIDB4 ZmMwMDA3ZmYsIFdSXzF8UkRfMiwgCTAsCQlJMzJ8TjU1LAkwLAkwIH0sCiB7 ImNseiIsCQkJIlUscyIsCQkweDcwMDAwMDIwLCAweGZjMDAwN2ZmLCBXUl8x fFJEXzIsIAkwLAkJSTMyfE41NSwJMCwJMCB9LAogLyogY3RjMCBpcyBhdCB0 aGUgYm90dG9tIG9mIHRoZSB0YWJsZS4gICovCi17ImN0YzEiLAkJInQsRyIs CQkweDQ0YzAwMDAwLCAweGZmZTAwN2ZmLAlSRF8xfFdSX0NDfENPRHxGUF9T LAkwLAkJSTEsCQkwLAkwIH0sCi17ImN0YzEiLAkJInQsUyIsCQkweDQ0YzAw MDAwLCAweGZmZTAwN2ZmLAlSRF8xfFdSX0NDfENPRHxGUF9TLAkwLAkJSTEs CQkwLAkwIH0sCit7ImN0YzEiLAkJInQsRyIsCQkweDQ0YzAwMDAwLCAweGZm ZTAwN2ZmLAlSRF8xfFdSX0NDfENPRCwJCTAsCQlJMSwJCTAsCTAgfSwKK3si Y3RjMSIsCQkidCxTIiwJCTB4NDRjMDAwMDAsIDB4ZmZlMDA3ZmYsCVJEXzF8 V1JfQ0N8Q09ELAkJMCwJCUkxLAkJMCwJMCB9LAogLyogY3RjMiBpcyBhdCB0 aGUgYm90dG9tIG9mIHRoZSB0YWJsZS4gICovCiAvKiBjdGMzIGlzIGF0IHRo ZSBib3R0b20gb2YgdGhlIHRhYmxlLiAgKi8KIHsiY3R0YzEiLAkJInQsZyIs CQkweDQxODAwMDIzLCAweGZmZTAwN2ZmLCBSRF8xfFdSX0NDfFRSQVB8Q09E fEZQX1MsIDAsCQkwLAkJTVQzMiwJMCB9LApAQCAtMTIwOCwxMSArMTIwOSwx MSBAQCBjb25zdCBzdHJ1Y3QgbWlwc19vcGNvZGUgbWlwc19idWlsdGluX29w Y29kZXNbXSA9CiB7Imx3IiwJCQkidCxBKGIpIiwJMCwgICAgKGludCkgTV9M V19BQiwJSU5TTl9NQUNSTywJCTAsCQlJMSwJCTAsCTAgfSwKIHsibHdjMCIs CQkiRSxvKGIpIiwJMHhjMDAwMDAwMCwgMHhmYzAwMDAwMCwJUkRfM3xXUl9D Q3xDTEQsCQkwLAkJSTEsCQkwLAlJT0NUfElPQ1RQfElPQ1QyIH0sCiB7Imx3 YzAiLAkJIkUsQShiKSIsCTAsICAgIChpbnQpIE1fTFdDMF9BQiwJSU5TTl9N QUNSTywJCTAsCQlJMSwJCTAsCUlPQ1R8SU9DVFB8SU9DVDIgfSwKLXsibHdj MSIsCQkiVCxvKGIpIiwJMHhjNDAwMDAwMCwgMHhmYzAwMDAwMCwJV1JfMXxS RF8zfENMRHxGUF9TLAkwLAkJSTEsCQkwLAkwIH0sCi17Imx3YzEiLAkJIkUs byhiKSIsCTB4YzQwMDAwMDAsIDB4ZmMwMDAwMDAsCVdSXzF8UkRfM3xDTER8 RlBfUywJMCwJCUkxLAkJMCwJMCB9LAoreyJsd2MxIiwJCSJULG8oYikiLAkw eGM0MDAwMDAwLCAweGZjMDAwMDAwLAlXUl8xfFJEXzN8Q0xEfEZQX1N8RjMy TSwwLAkJSTEsCQkwLAkwIH0sCit7Imx3YzEiLAkJIkUsbyhiKSIsCTB4YzQw MDAwMDAsIDB4ZmMwMDAwMDAsCVdSXzF8UkRfM3xDTER8RlBfU3xGMzJNLDAs CQlJMSwJCTAsCTAgfSwKIHsibHdjMSIsCQkiVCxBKGIpIiwJMCwgICAgKGlu dCkgTV9MV0MxX0FCLAlJTlNOX01BQ1JPLAkJSU5TTjJfTV9GUF9TLAlJMSwJ CTAsCTAgfSwKIHsibHdjMSIsCQkiRSxBKGIpIiwJMCwgICAgKGludCkgTV9M V0MxX0FCLAlJTlNOX01BQ1JPLAkJSU5TTjJfTV9GUF9TLAlJMSwJCTAsCTAg fSwKLXsibC5zIiwJCQkiVCxvKGIpIiwJMHhjNDAwMDAwMCwgMHhmYzAwMDAw MCwJV1JfMXxSRF8zfENMRHxGUF9TLAkwLAkJSTEsCQkwLAkwIH0sIC8qIGx3 YzEgKi8KK3sibC5zIiwJCQkiVCxvKGIpIiwJMHhjNDAwMDAwMCwgMHhmYzAw MDAwMCwJV1JfMXxSRF8zfENMRHxGUF9TfEYzMk0sMCwJCUkxLAkJMCwJMCB9 LCAvKiBsd2MxICovCiB7ImwucyIsCQkJIlQsQShiKSIsCTAsICAgIChpbnQp IE1fTFdDMV9BQiwJSU5TTl9NQUNSTywJCUlOU04yX01fRlBfUywJSTEsCQkw LAkwIH0sCiB7Imx3YzIiLAkJIkUsbyhiKSIsCTB4YzgwMDAwMDAsIDB4ZmMw MDAwMDAsCVJEXzN8V1JfQ0N8Q0xELAkJMCwJCUkxLAkJMCwJSU9DVHxJT0NU UHxJT0NUMnxFRSB9LAogeyJsd2MyIiwJCSJFLEEoYikiLAkwLCAgICAoaW50 KSBNX0xXQzJfQUIsCUlOU05fTUFDUk8sCQkwLAkJSTEsCQkwLAlJT0NUfElP Q1RQfElPQ1QyfEVFIH0sCkBAIC0xMjI5LDcgKzEyMzAsNyBAQCBjb25zdCBz dHJ1Y3QgbWlwc19vcGNvZGUgbWlwc19idWlsdGluX29wY29kZXNbXSA9CiB7 ImZvcmsiLAkJImQscyx0IiwJMHg3YzAwMDAwOCwgMHhmYzAwMDdmZiwgV1Jf MXxSRF8yfFJEXzN8VFJBUCwJMCwJCTAsCQlNVDMyLAkwIH0sCiB7Imx3dSIs CQkJInQsbyhiKSIsCTB4OWMwMDAwMDAsIDB4ZmMwMDAwMDAsCVdSXzF8UkRf M3xMTSwJCTAsCQlJMywJCTAsCTAgfSwKIHsibHd1IiwJCQkidCxBKGIpIiwJ MCwgICAgKGludCkgTV9MV1VfQUIsCUlOU05fTUFDUk8sCQkwLAkJSTMsCQkw LAkwIH0sCi17Imx3eGMxIiwJCSJELHQoYikiLAkweDRjMDAwMDAwLCAweGZj MDBmODNmLCBXUl8xfFJEXzJ8UkRfM3xMTXxGUF9TLCAgICAgMCwJCUk0XzMz LAkJMCwJMCB9LAoreyJsd3hjMSIsCQkiRCx0KGIpIiwJMHg0YzAwMDAwMCwg MHhmYzAwZjgzZiwgV1JfMXxSRF8yfFJEXzN8TE18RlBfU3xGMzJNLCAwLAkJ STRfMzMsCQkwLAkwIH0sCiB7Imx3eHMiLAkJImQsdChiKSIsCTB4NzAwMDAw ODgsIDB4ZmMwMDA3ZmYsCVdSXzF8UkRfMnxSRF8zfExNLAkgICAgIDAsCQkw LAkJU01ULAkwIH0sCiB7Im1hY2MiLAkJImQscyx0IiwJMHgwMDAwMDAyOCwg MHhmYzAwMDdmZiwgV1JfMXxSRF8yfFJEXzN8V1JfSElMTywJICAgICAwLAkJ TjQxMiwJCTAsCTAgfSwKIHsibWFjYyIsCQkiZCxzLHQiLAkweDAwMDAwMTU4 LCAweGZjMDAwN2ZmLCBXUl8xfFJEXzJ8UkRfM3xXUl9ISUxPLAkgICAgIDAs CQlONSwJCTAsCTAgfSwKQEAgLTEzMTAsOCArMTMxMSw4IEBAIGNvbnN0IHN0 cnVjdCBtaXBzX29wY29kZSBtaXBzX2J1aWx0aW5fb3Bjb2Rlc1tdID0KIHsi bWZoYzAiLAkJInQsRyxIIiwJMHg0MDQwMDAwMCwgMHhmZmUwMDdmOCwJV1Jf MXxSRF9DMHxMQ0QsCQkwLAkJSTMzLAkJWFBBLAkwIH0sCiB7Im1maGdjMCIs CQkidCxHIiwJCTB4NDA2MDA0MDAsIDB4ZmZlMDA3ZmYsCVdSXzF8UkRfQzB8 TENELAkJMCwJCUkzMywJCUlWSVJUfFhQQSwJMCB9LAogeyJtZmhnYzAiLAkJ InQsRyxIIiwJMHg0MDYwMDQwMCwgMHhmZmUwMDdmOCwJV1JfMXxSRF9DMHxM Q0QsCQkwLAkJSTMzLAkJSVZJUlR8WFBBLAkwIH0sCi17Im1mYzEiLAkJInQs UyIsCQkweDQ0MDAwMDAwLCAweGZmZTAwN2ZmLAlXUl8xfFJEXzJ8TENEfEZQ X1MsCTAsCQlJMSwJCTAsCTAgfSwKLXsibWZjMSIsCQkidCxHIiwJCTB4NDQw MDAwMDAsIDB4ZmZlMDA3ZmYsCVdSXzF8UkRfMnxMQ0R8RlBfUywJMCwJCUkx LAkJMCwJMCB9LAoreyJtZmMxIiwJCSJ0LFMiLAkJMHg0NDAwMDAwMCwgMHhm ZmUwMDdmZiwJV1JfMXxSRF8yfExDRHxGUF9TfEYzMk0sMCwJCUkxLAkJMCwJ MCB9LAoreyJtZmMxIiwJCSJ0LEciLAkJMHg0NDAwMDAwMCwgMHhmZmUwMDdm ZiwJV1JfMXxSRF8yfExDRHxGUF9TfEYzMk0sMCwJCUkxLAkJMCwJMCB9LAog eyJtZmhjMSIsCQkidCxTIiwJCTB4NDQ2MDAwMDAsIDB4ZmZlMDA3ZmYsCVdS XzF8UkRfMnxMQ0R8RlBfRCwJMCwJCUkzMywJCTAsCTAgfSwKIHsibWZoYzEi LAkJInQsRyIsCQkweDQ0NjAwMDAwLCAweGZmZTAwN2ZmLAlXUl8xfFJEXzJ8 TENEfEZQX0QsCTAsCQlJMzMsCQkwLAkwIH0sCiAvKiBtZmMyIGlzIGF0IHRo ZSBib3R0b20gb2YgdGhlIHRhYmxlLiAgKi8KQEAgLTE0MDcsOCArMTQwOCw4 IEBAIGNvbnN0IHN0cnVjdCBtaXBzX29wY29kZSBtaXBzX2J1aWx0aW5fb3Bj b2Rlc1tdID0KIHsibXRoYzAiLAkJInQsRyxIIiwJMHg0MGMwMDAwMCwgMHhm ZmUwMDdmOCwJUkRfMXxXUl9DMHxXUl9DQ3xDT0QsCTAsCQlJMzMsCQlYUEEs CTAgfSwKIHsibXRoZ2MwIiwJCSJ0LEciLAkJMHg0MDYwMDYwMCwgMHhmZmUw MDdmZiwJUkRfMXxXUl9DMHxXUl9DQ3xDT0QsCTAsCQlJMzMsCQlJVklSVHxY UEEsCTAgfSwKIHsibXRoZ2MwIiwJCSJ0LEcsSCIsCTB4NDA2MDA2MDAsIDB4 ZmZlMDA3ZjgsCVJEXzF8V1JfQzB8V1JfQ0N8Q09ELAkwLAkJSTMzLAkJSVZJ UlR8WFBBLAkwIH0sCi17Im10YzEiLAkJInQsUyIsCQkweDQ0ODAwMDAwLCAw eGZmZTAwN2ZmLAlSRF8xfFdSXzJ8Q09EfEZQX1MsCTAsCQlJMSwJCTAsCTAg fSwKLXsibXRjMSIsCQkidCxHIiwJCTB4NDQ4MDAwMDAsIDB4ZmZlMDA3ZmYs CVJEXzF8V1JfMnxDT0R8RlBfUywJMCwJCUkxLAkJMCwJMCB9LAoreyJtdGMx IiwJCSJ0LFMiLAkJMHg0NDgwMDAwMCwgMHhmZmUwMDdmZiwJUkRfMXxXUl8y fENPRHxGUF9TfEYzMk0sMCwJCUkxLAkJMCwJMCB9LAoreyJtdGMxIiwJCSJ0 LEciLAkJMHg0NDgwMDAwMCwgMHhmZmUwMDdmZiwJUkRfMXxXUl8yfENPRHxG UF9TfEYzMk0sMCwJCUkxLAkJMCwJMCB9LAogeyJtdGhjMSIsCQkidCxTIiwJ CTB4NDRlMDAwMDAsIDB4ZmZlMDA3ZmYsCVJEXzF8V1JfMnxDT0R8RlBfRCwJ MCwJCUkzMywJCTAsCTAgfSwKIHsibXRoYzEiLAkJInQsRyIsCQkweDQ0ZTAw MDAwLCAweGZmZTAwN2ZmLAlSRF8xfFdSXzJ8Q09EfEZQX0QsCTAsCQlJMzMs CQkwLAkwIH0sCiAvKiBtdGMyIGlzIGF0IHRoZSBib3R0b20gb2YgdGhlIHRh YmxlLiAgKi8KQEAgLTE4NDgsMTEgKzE4NDksMTEgQEAgY29uc3Qgc3RydWN0 IG1pcHNfb3Bjb2RlIG1pcHNfYnVpbHRpbl9vcGNvZGVzW10gPQogeyJzd2Fw ZCIsCQkidCxiIiwJCTB4NzAwMDAwMTYsIDB4ZmMwMGZmZmYsIE1PRF8xfFJE XzJ8TE18U00sCTAsCQlYTFIsCQkwLAkwIH0sCiB7InN3YzAiLAkJIkUsbyhi KSIsCTB4ZTAwMDAwMDAsIDB4ZmMwMDAwMDAsCVJEXzN8UkRfQzB8U00sCQkw LAkJSTEsCQkwLAlJT0NUfElPQ1RQfElPQ1QyIH0sCiB7InN3YzAiLAkJIkUs QShiKSIsCTAsICAgIChpbnQpIE1fU1dDMF9BQiwJSU5TTl9NQUNSTywJCTAs CQlJMSwJCTAsCUlPQ1R8SU9DVFB8SU9DVDIgfSwKLXsic3djMSIsCQkiVCxv KGIpIiwJMHhlNDAwMDAwMCwgMHhmYzAwMDAwMCwJUkRfMXxSRF8zfFNNfEZQ X1MsCTAsCQlJMSwJCTAsCTAgfSwKLXsic3djMSIsCQkiRSxvKGIpIiwJMHhl NDAwMDAwMCwgMHhmYzAwMDAwMCwJUkRfMXxSRF8zfFNNfEZQX1MsCTAsCQlJ MSwJCTAsCTAgfSwKK3sic3djMSIsCQkiVCxvKGIpIiwJMHhlNDAwMDAwMCwg MHhmYzAwMDAwMCwJUkRfMXxSRF8zfFNNfEZQX1N8RjMyTSwJMCwJCUkxLAkJ MCwJMCB9LAoreyJzd2MxIiwJCSJFLG8oYikiLAkweGU0MDAwMDAwLCAweGZj MDAwMDAwLAlSRF8xfFJEXzN8U018RlBfU3xGMzJNLAkwLAkJSTEsCQkwLAkw IH0sCiB7InN3YzEiLAkJIlQsQShiKSIsCTAsICAgIChpbnQpIE1fU1dDMV9B QiwJSU5TTl9NQUNSTywJCUlOU04yX01fRlBfUywJSTEsCQkwLAkwIH0sCiB7 InN3YzEiLAkJIkUsQShiKSIsCTAsICAgIChpbnQpIE1fU1dDMV9BQiwJSU5T Tl9NQUNSTywJCUlOU04yX01fRlBfUywJSTEsCQkwLAkwIH0sCi17InMucyIs CQkJIlQsbyhiKSIsCTB4ZTQwMDAwMDAsIDB4ZmMwMDAwMDAsCVJEXzF8UkRf M3xTTXxGUF9TLAkwLAkJSTEsCQkwLAkwIH0sIC8qIHN3YzEgKi8KK3sicy5z IiwJCQkiVCxvKGIpIiwJMHhlNDAwMDAwMCwgMHhmYzAwMDAwMCwJUkRfMXxS RF8zfFNNfEZQX1N8RjMyTSwJMCwJCUkxLAkJMCwJMCB9LCAvKiBzd2MxICov CiB7InMucyIsCQkJIlQsQShiKSIsCTAsICAgIChpbnQpIE1fU1dDMV9BQiwJ SU5TTl9NQUNSTywJCUlOU04yX01fRlBfUywJSTEsCQkwLAkwIH0sCiB7InN3 YzIiLAkJIkUsbyhiKSIsCTB4ZTgwMDAwMDAsIDB4ZmMwMDAwMDAsCVJEXzN8 UkRfQzJ8U00sCQkwLAkJSTEsCQkwLAlJT0NUfElPQ1RQfElPQ1QyfEVFIH0s CiB7InN3YzIiLAkJIkUsQShiKSIsCTAsICAgIChpbnQpIE1fU1dDMl9BQiwJ SU5TTl9NQUNSTywJCTAsCQlJMSwJCTAsCUlPQ1R8SU9DVFB8SU9DVDJ8RUUg fSwKQEAgLTE4NjYsNyArMTg2Nyw3IEBAIGNvbnN0IHN0cnVjdCBtaXBzX29w Y29kZSBtaXBzX2J1aWx0aW5fb3Bjb2Rlc1tdID0KIHsic3dyIiwJCQkidCxB KGIpIiwJMCwgICAgKGludCkgTV9TV1JfQUIsCUlOU05fTUFDUk8sCQkwLAkJ STEsCQkwLAkwIH0sCiB7ImludmFsaWRhdGUiLAkJInQsbyhiKSIsCTB4Yjgw MDAwMDAsIDB4ZmMwMDAwMDAsCVJEXzF8UkRfMywJCTAsCQlJMiwJCTAsCTAg fSwgLyogc2FtZSAqLwogeyJpbnZhbGlkYXRlIiwJCSJ0LEEoYikiLAkwLCAg ICAoaW50KSBNX1NXUl9BQiwJSU5TTl9NQUNSTywJCTAsCQlJMiwJCTAsCTAg fSwgLyogYXMgc3dyICovCi17InN3eGMxIiwJCSJTLHQoYikiLAkweDRjMDAw MDA4LCAweGZjMDAwN2ZmLCBSRF8xfFJEXzJ8UkRfM3xTTXxGUF9TLAkwLAkJ STRfMzMsCQkwLAkwIH0sCit7InN3eGMxIiwJCSJTLHQoYikiLAkweDRjMDAw MDA4LCAweGZjMDAwN2ZmLCBSRF8xfFJEXzJ8UkRfM3xTTXxGUF9TfEYzMk0s IDAsCQlJNF8zMywJCTAsCTAgfSwKIHsic3luY2lvYmRtYSIsCQkiIiwJCTB4 MDAwMDAwOGYsIDB4ZmZmZmZmZmYsCU5PRFMsCQkJMCwJCUlPQ1QsCQkwLAkw IH0sCiB7InN5bmNzIiwJCSIiLAkJMHgwMDAwMDE4ZiwgMHhmZmZmZmZmZiwJ Tk9EUywJCQkwLAkJSU9DVCwJCTAsCTAgfSwKIHsic3luY3ciLAkJIiIsCQkw eDAwMDAwMTBmLCAweGZmZmZmZmZmLAlOT0RTLAkJCTAsCQlJT0NULAkJMCwJ MCB9LAo= --_004_6D39441BF12EF246A7ABCE6654B0235320EB4042LEMAIL01leimgte_ Content-Type: application/x-gzip; name="0002-O32-FPXX-ABI-tests.patch.gz" Content-Description: 0002-O32-FPXX-ABI-tests.patch.gz Content-Disposition: attachment; filename="0002-O32-FPXX-ABI-tests.patch.gz"; size=21193; creation-date="Fri, 25 Jul 2014 14:59:10 GMT"; modification-date="Fri, 25 Jul 2014 14:24:26 GMT" Content-Transfer-Encoding: base64 Content-length: 28731 H4sICJpo0lMAAzAwMDItTzMyLUZQWFgtQUJJLXRlc3RzLnBhdGNoAMxdbXPb Nrb+XP0KzPRDk8hUSIAEKc/tnThpkubevHjidLc7m50sKUK2Wr1dUWrsnfz4 C4C0RBJ8OQAkt57WseXznAMcPDjAAQHw1Wa1QGzqJmPfm4Z+EiZxOvFDmpDE n9LpdOp5mI6nIQnxmKB3qyW6Ymvkhch1z+V/CLuuN3jF1ZyjxXS12e6WDP3X It5ub9jXUfHBs9niessmo8lq8d+Dn+ItO0efbnZnKELv4juuwfORS8+Jd44D NHQ91x1c7ZLf2GR7jv55efHpxc8IP8X/Qh8IRq8uf/0VXTx/g7Ys22aDQTJb 7razefZU/r6bbdnTweC7J+j+cyeez59uWJyy+XSUnaOLyWS1W24RLxkavXtz eTWKk9l0Hl9nKF6mg+9G18vdiJd+M0t2XOWoXVfmbBezNVf5dvY7+zrLmCqb cTVrh4zSstDgOlZKKz4Syp4Kyw4vguM7roC9505sF6gbb5LynMV0TfBoriEL 1kt9uF4uC9Z7ewuVzWbL6zlzpvNVvIWWpYKB2llNt5pWDgiQjSpLWqUgurCz SFe7RMsvdQzQjqZfsLZfMMgvMM4SZ3ETb1KN8lYRIBug8hKQLljvgvWrwAF2 VikI0giqaQAzCrJIoXWg0DpQUB0ozCiwDvoxq46B2tHrm1S7b1JnuVqlKVB7 LgvRG0LbOYS2c2jg9ToGakfP66G210MH6vNcEqQT1A9CmNUei8vVkjn5WNNj VUquCHbk7EFDNudatt6w61HaKctnGgC9FR5A5A8t2irNJ5Ff4s3k5ov4jeBN x8BRF+2IvBVR6oO1ctEOrfOZk/b8tbXNF6t0x303uWGT352v8WbZTiJVFKS1 vWQVqT5d+dy3T1fPDPkg1cXYihRIVxE9QRr7Iu1Btov9FaleXbAe0ijdrxvQ mxpk+/RmbAv0wUGyVaf4q4i20zzmwMRaO0JVrNXociWEnKzbZovIvQwPA08z nmvPVks84h6UOe1F+tsu2yJ2u+Z/YSla7bbr3bYl5PMMmkdSUAYjRBdZ3CU7 4ZmziKLr2aRLrBK9oHId3bsaY8GxGB60oaIdYaMiBx8E4ENAXxkzxiUnm5X4 pCszU4QhorwZKUypkOzttCmbso0cRTrYUciu/mCbzSztmI8s+WxhslryjtIh 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 TpprTptrTptrTptrTptrTptrTptrzpprzpprzpprzpprzpprzpprzk3VnubT mY7T92YmN5tf5hd2Xvz387EpiQIckIAGLOCBCGTwv8HvNsSuyptBxnSSNd2g lncE28GkUoWvfi/f++mr3ysP/fTY3muiuvmv/n5lP0J9AVVEoabLuPkyabyM mx+Omx+Omx9Omh9Omh9ufbmhYUwMHF28b3iCCTVtBUhbAdpWgLUV4G0FRFsB 2VYAFfRXa1sAChFIIQophIpMaHud2gsRSCFaFtotthwojeyeaxc1mNgoU/Pp NsrUIGOjTE21N8rU4GOjTA1ENsrUoGSjjAKUiYoyu8OnSTwZneuzOL15vPca QUg9LgZtyszpMA2eKoYKYXkwzs1I9qsiK35qzBV8MkE1eGSjasGgYRN0r+zo 7Itiu7xiNDuqD/qqeVimmodlqnlYpppHTqp55KSaR06qeXCjmgc3i4DoMMw/ HyeQedyi2HKQjzMhUmEG+QmNSRpBqZPqgyBj/GXRxTyOLeZxbJjHuc3jzGTm YpyOcHjWauRK0dWE/f/bu9retm0g/D2/QsM+pIljThQlkcyGAm6avgCpMyTu sCHJAuqtNebYQex2zb8fjxIlWlYsymmybEgQGLLx3Ek8Ho/U8e7IEhYRH6qA CRow2wieOjOLzjbh+aaHX9U2eYzU78csdNN0/1ppEeCkC4vAbXHoyK+r5UXc pvIivS3n15vxlbi5dd4ej8AvdiCms+lYvtM6n66dr2LyJVXwAJzA1lsmRj95 9urkVeoUexxHMUPIC7lIie1OWp2ZvTp5z+r0b6hTsV/EnB4hqgBEjV5yeDuZ RZI8nUpRp/N9NakP8urFan4fxLG6fD8dL8YSeHp7dY5+E5NzpEoxA2SYfHOG 0rCDtYWbq8r48g2Zeuz8xafr8x1HOV4D6lcXbz4OD/J6uyHkmSWhQRznxP4S MWfVRZ2YVsSemxO7S8SBW13UiQOD2FfEOFwi9uLqok7sg2J2bzMt2tzbpM20 aHNvkzbTos29TdpMizZvYKeIvZ0ilZ3iHqdZGiKEfRz7qe0WR52ZvZ0iz3bq PzHt+cJenxRWL5hFxEiQwrFdMUuxberuCjd7jcrxzyr1RFXqy2QxzoNcZv35 Z3HTFgDZSKCjHwORYZciJEiKo8g2TraZZZuGNRKp9/k9jOXbPHyCnqHdfadn nKiDVB5yy/5tPz+SJnKdX87+fHmx+9IhMY7ljyTfe/10DXuvpMT5Jc6jPOay B/TWqkTK/77nB9wr4ayEiyySbF2m9n0lUE6e82vQnRyZtT2Axlk+gIa3P4Cj jvNRD8yS0EoOErf8GPKNnC0/BpbzWFiiLcXAoEaEhRgkzu7+Gm0jhQ6J4tqt tH4AVSi9USnkV58jRNxUMGLrwzD4tAwVAwnjI9gjTi/IC9M5anyg3aXxAYQw SurnKJ25fS762cXumd+nsbxACIza2dnehbwF3OHsYu8CrFxXqeWOuna5aZyO fmJyOoszhGRfxrFruzpa4mQhuxIL0lPen9z3sxT/d71Wlv0foVb2ONvqWwu1 kqkS6Q+bEnbpC5ivxTSRJnWqFoNti4wmfKnVPKAQFxW5GY2wrcOmkWNLHzXS GAsO9mjrDcspGjPSYYpebd56L2kTvugUhhM3YQKhzEsiysXGndLuN22kWV8Q oTl0bTl0EH2niMEOvst6S6KOgyKqBkWYkCSkcoGU8jBl1DbsqJFjR/lHT31Q iE7r1tXmdRsUxh5CyEkUJYlctUahnwrbWaSRY+dO0YVZVGEj+VkbFHpYuN8E 1F/5+X6lPzZXer+jfP3IjBJPeZYwVVwtZoFtjHIjx27y9Sv5KqNDVoyOIV+v lK+xtZLcTouNlAcWcNDRqgSmVeGYi1AuIMPEDyPrAlGNHLsJOPh/W5Wgo9YH ptYTkVIqrUpEwzjNNu+UzlofVFp/R7mnJ6P1YTf5hpV4E555NISwe4Y5wxsa 7bC7dMNSuFQJlz6wcO+X2gCB+rMpRot1LSxB2kdIXEqFlC3OPDcNbGVbsWmR aAUEOXIQI29YDYInRgsFrmXDnZfO6PD30YfDD3dNhBLxejAaaATI3ch72HGW EI/SARPitaeeGzCdFEpiCGBGiPMAh9g2fNlk1NoNFVSZcFel9xVzZHF6KDjF tHNsG0kS0N9tR8AJnBnUS0S7TjybLsR4Onc8YxeteD11LnonuWk/OTwintpF gTHyDsawfHM2nW/bqpu399V+VH6ysyfc0gW67gLV/kwWUYErL7qziDd8il7F Ir0/i0w3JNuUBVl/87tZdFH2mZ2yzwxld7FLEipXMNSHCvS276UmIytlnz0r ezuLZ2W3Vfa2RO4Cop0vPMkI9qH8Z5RlwvaUBc2kXcGrPG1fKbf/fZTb6UGc A9l3Ct0eHg8Pna667W/aGQYLXCdY/aWNhXdvxfSD+7MIVxqy8ksbC/qgug3p RpC8Nr+9ak2KrWO1SRcBS8MMITjFNha2b/0r3FrUfgWv9J+Ak159rq25auFM fJD0WLtOWEzm/c/jJEmnpKULlpHa3KRu4gqBUBC6XPi2Z0rUeLWIv4ZWwueQ J6s+7VKTF+YyflGGuj6JvGRoX7XTjNFNmzCWwHorJBUk8SBL3w8iucyxHQur /Cx6Y5mgyNanKls/T1y+nYqrcVza6mb7j5k5AcgxktuT0Dl/oeaAV4PTw8vB 69cnh6en5zvVcfPSPJl4ofFHxweDo8u3x6PhsQl3PAONsUaf/vFhNHhVgwIa QFIvSgpPU3wcnhy+kW+GdRrsbvW6wLH5PETD5XPLR6o/DSCjrdIkuziVeBW4 sYrM/05Hg9H7g8vR0alBJq30+Yvhx6Oju6iUUO3U9eu3v2c3f83bTLYB08Yi S0nsM2mtecZCz1ZDTUYtumlCi3T6QKXTr0bR21Qw2Fl2pTy+mZ7HN+Prxfyn 2df0ZiJu+xAd1OhmaQbqWTLhIiMBQiGLXc5aXC13sGqW/B1glabsguzVZ032 6TS5nGWXYIQvC8K5mihVH1SuLeaCZ+sBZC7bvYURR/7W1j/TlHAdYDkDAA== --_004_6D39441BF12EF246A7ABCE6654B0235320EB4042LEMAIL01leimgte_--