From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 742 invoked by alias); 4 Feb 2014 21:56:39 -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 732 invoked by uid 89); 4 Feb 2014 21:56:38 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.2 X-HELO: relay1.mentorg.com Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 04 Feb 2014 21:56:36 +0000 Received: from svr-orw-exc-10.mgc.mentorg.com ([147.34.98.58]) by relay1.mentorg.com with esmtp id 1WAnyq-0006wD-LS from Catherine_Moore@mentor.com ; Tue, 04 Feb 2014 13:56:32 -0800 Received: from SVR-ORW-FEM-06.mgc.mentorg.com ([147.34.97.120]) by SVR-ORW-EXC-10.mgc.mentorg.com with Microsoft SMTPSVC(6.0.3790.4675); Tue, 4 Feb 2014 13:56:32 -0800 Received: from NA-MBX-01.mgc.mentorg.com ([169.254.1.15]) by SVR-ORW-FEM-06.mgc.mentorg.com ([147.34.97.120]) with mapi id 14.02.0247.003; Tue, 4 Feb 2014 13:55:17 -0800 From: "Moore, Catherine" To: Richard Sandiford CC: "binutils@sourceware.org" , "Moore, Catherine" Subject: RE: [Patch] Gas support for MIPS Compact EH Date: Tue, 04 Feb 2014 21:56:00 -0000 Message-ID: References: <87k3me9jia.fsf@talisman.default> In-Reply-To: <87k3me9jia.fsf@talisman.default> Content-Type: multipart/mixed; boundary="_003_FD3DCEAC5B03E9408544A1E416F11242012EAC2AE0NAMBX01mgcmen_" MIME-Version: 1.0 X-IsSubscribed: yes X-SW-Source: 2014-02/txt/msg00030.txt.bz2 --_003_FD3DCEAC5B03E9408544A1E416F11242012EAC2AE0NAMBX01mgcmen_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Content-length: 26544 SGkgUmljaGFyZCwNCg0KSSBmaW5hbGx5IGdvdCBzb21lIHRpbWUgdG8gd29y ayBvbiBmaXhpbmcgdXAgKHdpdGggc29tZSBoZWxwIGZyb20gQmVybmQpIHRo ZSBiaW51dGlscyBzdWJtaXNzaW9uIGZvciBjb21wYWN0IEVILiAgIEhvcGVm dWxseSwgIHRoZSByZXZpZXcgY29tbWVudHMgaGF2ZSBiZWVuIGFkZHJlc3Nl ZC4NClRoZSBjdXJyZW50IHBhdGNoIGhhcyBiZWVuIGV4cGFuZGVkIHRvIGlu Y2x1ZGUgYWxsIG9mIGJpbnV0aWxzLiANCg0KQXMgYSByZW1pbmRlciwgdGhl IHNwZWMgaXMgYXZhaWxhYmxlIGhlcmU6DQpodHRwczovL2dpdGh1Yi5jb20v TWVudG9yRW1iZWRkZWQvY3h4LWFiaS9ibG9iL21hc3Rlci9NSVBTQ29tcGFj dEVILnBkZg0KDQpTcGVjaWZpYyBjb21tZW50cyByZWxhdGVkIHRvIHlvdXIg cmV2aWV3IGFyZSBlbWJlZGRlZC4NCg0KVGhhbmtzLA0KQ2F0aGVyaW5lDQoN Cj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogUmljaGFy ZCBTYW5kaWZvcmQgW21haWx0bzpyZHNhbmRpZm9yZEBnb29nbGVtYWlsLmNv bV0NCj4gU2VudDogU2F0dXJkYXksIEp1bmUgMDEsIDIwMTMgNzowOCBBTQ0K PiBUbzogTW9vcmUsIENhdGhlcmluZQ0KPiBDYzogYmludXRpbHNAc291cmNl d2FyZS5vcmcNCj4gU3ViamVjdDogUmU6IFtQYXRjaF0gR2FzIHN1cHBvcnQg Zm9yIE1JUFMgQ29tcGFjdCBFSA0KPiANCj4gIk1vb3JlLCBDYXRoZXJpbmUi IDxDYXRoZXJpbmVfTW9vcmVAbWVudG9yLmNvbT4gd3JpdGVzOg0KPiA+IElu ZGV4OiBkb2MvYXMudGV4aW5mbw0KPiA+DQo+ID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4g PT09PT09PT09DQo+ID4gUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nYXMvZG9j L2FzLnRleGluZm8sdiByZXRyaWV2aW5nIHJldmlzaW9uIDEuMjY2DQo+ID4g ZGlmZiAtcCAtdSAtcjEuMjY2IGFzLnRleGluZm8NCj4gPiAtLS0gZG9jL2Fz LnRleGluZm8JMjkgQXByIDIwMTMgMTM6Mzg6NTggLTAwMDAJMS4yNjYNCj4g PiArKysgZG9jL2FzLnRleGluZm8JMzEgTWF5IDIwMTMgMTc6MjQ6MjAgLTAw MDANCj4gPiBAQCAtNDQ3OSw2ICs0NDc5LDkgQEAgaWYgQHZhcntzZWN0aW9u X2xpc3R9IGlzIEBjb2Rley5kZWJ1Z19mciAgVG8NCj4gPiBlbWl0IGJvdGgg dXNlIEBjb2Rley5laF9mcmFtZSwgLmRlYnVnX2ZyYW1lfS4gIFRoZSBkZWZh dWx0IGlmIHRoaXMNCj4gPiBkaXJlY3RpdmUgaXMgbm90IHVzZWQgaXMgQGNv ZGV7LmNmaV9zZWN0aW9ucyAuZWhfZnJhbWV9Lg0KPiA+DQo+ID4gK09uIHRh cmdldHMgdGhhdCBzdXBwb3J0IGNvbXBhY3QgdW53aW5kaW5nIHRhYmxlcyB0 aGVzZSBjYW4gYmUNCj4gPiArZ2VuZXJhdGVkIGJ5IHNwZWNpZnlpbmcgQGNv ZGV7LmVoX2ZyYW1lX2hlYWRlcn0gaW5zdGVhZCBvZg0KPiBAY29kZXsuZWhf ZnJhbWV9Lg0KPiANCj4gU2hvdWxkIHRoaXMgYmUgLmVoX2ZyYW1lX2VudHJ5 IGluc3RlYWQgb2YgLmVoX2ZyYW1lX2hlYWRlcj8NCg0KWWVzLCBub3cgZml4 ZWQuDQoNCj4gDQo+ID4gQEAgLTQ1MTQsNiArNDUxNywyMyBAQCBhcmd1bWVu dCBpcyBub3QgcHJlc2VudCwgb3RoZXJ3aXNlIHNlY29uICBvciBhDQo+ID4g c3ltYm9sIG5hbWUuICBUaGUgZGVmYXVsdCBhZnRlciBAY29kZXsuY2ZpX3N0 YXJ0cHJvY30gaXMNCj4gPiBAY29kZXsuY2ZpX2xzZGEgMHhmZn0sICBubyBM U0RBLg0KPiA+DQo+ID4gK0BzZWN0aW9uIEBjb2Rley5jZmlfaW5saW5lX2xz ZGF9IFtAdmFye2FsaWdufV0NCj4gPiArQGNvZGV7LmNmaV9pbmxpbmVfbHNk YX0gbWFya3MgdGhlIHN0YXJ0IG9mIGEgTFNEQSBkYXRhIHNlY3Rpb24gYW5k DQo+ID4gK3N3aXRjaGVzIHRvIHRoZSBjb3JyZXNwb25kaW5nIEBjb2Rley5n bnUuZXh0YWJ9IHNlY3Rpb24uDQo+ID4gK0l0IG11c3QgYmUgcHJlY2VkZWQg YnkgYSBDRkkgYmxvY2sgY29udGFpbmluZyBhIEBjb2Rley5jZmlfbHNkYX0N Cj4gPiArZGlyZWN0aXZlIGFuZCBpcyBvbmx5IHZhbGlkIHdoZW4gZ2VuZXJh dGluZyBjb21wYWN0IEVIIGZyYW1lcyAoaS5lLg0KPiA+ICt3aXRoIEBjb2Rl ey5jZmlfc2VjdGlvbnMgZWhfZnJhbWVfZW50cnl9Lg0KPiA+ICsNCj4gPiAr SWYgYSBjb21wYWN0IGVuY29kaW5nIGlzIGJlaW5nIHVzZWQgdGhlbiB0aGUg dGFibGUgaGVhZGVyIGFuZA0KPiA+ICt1bndpbmRpbmcgb3Bjb2RlcyB3aWxs IGJlIGdlbmVyYXRlZCBhdCB0aGlzIHBvaW50LCBzbyB0aGF0IHRoZXkgYXJl DQo+ID4gK2ltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5IHRoZSBMU0RBIGRhdGEu ICBUaGUgc3ltYm9sIHJlZmVyZW5jZWQgYnkgdGhlDQo+ID4gK0Bjb2Rley5j ZmlfbHNkYX0gZGlyZWN0aXZlIHNob3VsZCBzdGlsbCBiZSBkZWZpbmVkIGlu IGNhc2UgYSBmYWxsYmFjaw0KPiA+ICtGREUgYmFzZWQgZW5jb2RpbmcgaXMg dXNlZC4NCj4gPiArDQo+ID4gK1RoZSBvcHRpb25hbCBAdmFye2FsaWdufSBh cmd1bWVudCBzcGVjaWZpZXMgdGhlIGFsaWdubWVudCByZXF1aXJlZC4NCj4g PiArVGhlIGFsaWdubWVudCBpcyBzcGVjaWZpZWQgYXMgYSBwb3dlciBvZiB0 d28sIGFzIHdpdGggdGhlDQo+ID4gK0Bjb2Rley5wMmFsaWdufSBkaXJlY3Rp dmUuDQo+IA0KPiBIbW0sIHN3aXRjaGluZyBzZWN0aW9ucyBhbmQgZW1pdHRp bmcgZGF0YSBmZWVscyB2ZXJ5IGRpZmZlcmVudCBpbiBzdHlsZSBmcm9tDQo+ IHRoZSBvdGhlciAuY2ZpIGRpcmVjdGl2ZXMsIHdoaWNoIGp1c3QgYW5ub3Rh dGUgY29kZSB3aXRob3V0IGNoYW5naW5nIHRoZSBmbG93DQo+IG9mIGFzc2Vt Ymx5LiAgSSdkIGxpa2UgdG8ga25vdyBvdGhlciBwZW9wbGUncyB0aG91Z2h0 cyBvbiB0aGlzLg0KPiANCj4gQWxzbywgaG93IGRvIHlvdSB0ZXJtaW5hdGUg dGhlIExTREE/ICBUaGUgZG9jdW1lbnRhdGlvbiBkb2Vzbid0IHNheSAoYnV0 DQo+IHNob3VsZCA6LSkpIGFuZCBJIGNvdWxkbid0IHNlZSB0aGlzIGRpcmVj dGl2ZSBpbiB0aGUgc3BlYyBlaXRoZXIuDQoNClRoZSBMU0RBIGlzIHRlcm1p bmF0ZWQgYnkgYSBzZWN0aW9uIHN3aXRjaC4NCj4gDQo+ICJJZiBhIGNvbXBh Y3QgZW5jb2RpbmcgaXMgYmVpbmcgdXNlZCIgc2VlbXMgcmVkdW5kYW50LCBz aW5jZSBpdCBjb21lcyBqdXN0DQo+IGFmdGVyIHRoZSBiaXQgc2F5aW5nICJv bmx5IHZhbGlkIHdoZW4gZ2VuZXJhdGluZyBjb21wYWN0IEVIIGZyYW1lcyIu DQo+IA0KPiBUaGVyZSBuZWVkIHRvIGJlIHRlc3RzIGZvciBhbGwgb2YgdGhp cy4gDQoNClRlc3RzIGFyZSBub3cgaW5jbHVkZWQgaW4gdGhlIHBhdGNoLg0K DQo+VEJILCB3aXRob3V0IHRlc3RzLCBhbmQgd2l0aG91dCBhbg0KPiBleHBs YW5hdGlvbiBvZiB3aGF0IHRoZSBjb2RlIGlzIGRvaW5nLCBJIGZvdW5kIHRo aXMgcGF0Y2ggcHJldHR5IGhhcmQgdG8NCj4gcmV2aWV3LiAgRS5nLjoNCj4g DQo+ID4gQEAgLTEyOSw3ICsxNDAsMTIgQEAgZ2V0X2RlYnVnc2VnX25hbWUg KHNlZ1Qgc2VnLCBjb25zdCBjaGFyDQo+ID4gICAgICAgIGRvdCA9IHN0cmNo ciAobmFtZSArIDEsICcuJyk7DQo+ID4NCj4gPiAgICAgICAgaWYgKCFkb2xs YXIgJiYgIWRvdCkNCj4gPiAtCW5hbWUgPSAiIjsNCj4gPiArCXsNCj4gPiAr CSAgaWYgKGNvbXBhY3RfZWggJiYgc3RyY21wIChuYW1lLCAiLnRleHQiKSAh PSAwKQ0KPiA+ICsJICAgIHJldHVybiBjb25jYXQgKGJhc2VfbmFtZSwgIi4i LCBuYW1lLCBOVUxMKTsNCj4gPiArDQo+ID4gKwkgIG5hbWUgPSAiIjsNCj4g PiArCX0NCj4gDQo+IHdoeSBpcyB0aGlzIGNoYW5nZSBuZWVkZWQ/ICBJLmUu LCBmb3IgYSB0ZXh0IHNlY3Rpb24gY2FsbGVkIHNvbWV0aGluZyBsaWtlDQo+ IC5mb29iYXIsIHdoeSBkb2VzIGNvbXBhY3RfZWggbmVlZCB0byBwdXQgdGhp bmdzIGluIGEgc2VjdGlvbiBuYW1lIGVuZGluZw0KPiBpbiAiLi5mb29iYXIi LCByYXRoZXIgdGhhbiBpbiB0aGUgbWFpbiBFSCBzZWN0aW9uPyAgSSBhc3N1 bWUgdGhlIGRvdWJsZSBkb3RzDQo+IGFyZSBkZWxpYmVyYXRlLCBlLmcuIHRv IGF2b2lkIGNvbmZ1c2lvbiB3aXRoICIudGV4dC5mb29iYXIiPw0KDQpJJ20g bm90IHN1cmUgd2h5IFBhdWwgcHV0IHRoaXMgaXMgYW5kIHRoZSBuZXh0IGh1 bmsuICBUaGVyZSB3ZXJlIHRlc3QgZmFpbHVyZXMgd2l0aG91dC4gIEkgY2Fu IHJldmlzaXQgdGhpcw0KRm9yIHRoZSBuZXh0IGl0ZXJhdGlvbiBpZiBuZWNl c3NhcnkuDQoNCj4gDQo+ID4gQEAgLTE2MSw2ICsxNzcsOSBAQCBhbGxvY19k ZWJ1Z3NlZ19pdGVtIChzZWdUIHNlZywgaW50IHN1YnNlICBzdGF0aWMNCj4g PiBzZWdUICBpc19ub3dfbGlua29uY2Vfc2VnbWVudCAodm9pZCkgIHsNCj4g PiArICBpZiAoY29tcGFjdF9laCkNCj4gPiArICAgIHJldHVybiBub3dfc2Vn Ow0KPiA+ICsNCj4gPiAgICBpZiAoKGJmZF9nZXRfc2VjdGlvbl9mbGFncyAo c3Rkb3V0cHV0LCBub3dfc2VnKQ0KPiA+ICAgICAgICAgJiAoU0VDX0xJTktf T05DRSB8IFNFQ19MSU5LX0RVUExJQ0FURVNfRElTQ0FSRA0KPiA+ICAJICB8 IFNFQ19MSU5LX0RVUExJQ0FURVNfT05FX09OTFkgfA0KPiBTRUNfTElOS19E VVBMSUNBVEVTX1NBTUVfU0laRQ0KPiANCj4gV2h5IGlzIHRoaXMgY2hhbmdl IG5lZWRlZD8NCj4gDQo+ID4gQEAgLTE4MCw3ICsxOTksMTEgQEAgbWFrZV9k ZWJ1Z19zZWcgKHNlZ1QgY3NlZywgY2hhciAqbmFtZSwgaQ0KPiA+ICAgIHNl Z1QgcjsNCj4gPiAgICBmbGFnd29yZCBmbGFnczsNCj4gPg0KPiA+ICsjaWZk ZWYgdGNfbWFrZV9kZWJ1Z19zZWcNCj4gPiArICByID0gdGNfbWFrZV9kZWJ1 Z19zZWcgKGNzZWcsIG5hbWUpOyAjZWxzZQ0KPiA+ICAgIHIgPSBzdWJzZWdf bmV3IChuYW1lLCAwKTsNCj4gPiArI2VuZGlmDQo+IA0KPiBXaHkgaXMgdGhp cyBjaGFuZ2UgbmVlZGVkPyAgQW5kIHdoYXQgZG9lcyB0aGUgbmV3IGhvb2sg ZG8/ICBJdCBzaG91bGQgYmUNCj4gZG9jdW1lbnRlZCBpbiBpbnRlcm5hbHMu dGV4aS4NCj4gDQo+IERvIHdlIHJlYWxseSB3YW50IHRvIGNoYW5nZSB0aGUg YmVoYXZpb3VyIGZvciB0cmFkaXRpb25hbCBEV0FSRiBFSCB0b28/DQo+IA0K DQpJdCBsb29rcyBsaWtlIHRoaXMgd2FzIGludGVuZGVkIHRvIG1ha2UgLmdy b3VwIHNlY3Rpb25zIHNvIHRoYXQgdGV4dCwgZXh0YWIgYW5kIGVoX2ZyYW1l IGVudHJpZXMgYXJlIG9ubHkgZGVsZXRlZCB0b2dldGhlci4gIFRoaXMgaXMg bm93IHJlbW92ZWQgYW5kIHRoaXMgbmV3IHBhdGNoIGFkZCBzb21lIGxpbmtl ciBzbWFydHMgdG8gaGFuZGxlIHRoaW5ncy4NCg0KPiA+IEBAIC04MzMsMTQg Kzg1OSwxNSBAQCBkb3RfY2ZpX3BlcnNvbmFsaXR5IChpbnQgaWdub3JlZCBB VFRSSUJVDQo+ID4gICAgICB9DQo+ID4NCj4gPiAgICBpZiAoKGVuY29kaW5n ICYgMHhmZikgIT0gZW5jb2RpbmcNCj4gPiAtICAgICAgfHwgKChlbmNvZGlu ZyAmIDB4NzApICE9IDANCj4gPiArICAgICAgfHwgKCgoKGVuY29kaW5nICYg MHg3MCkgIT0gMA0KPiA+ICAjaWYgQ0ZJX0RJRkZfRVhQUl9PSyB8fCBkZWZp bmVkIHRjX2NmaV9lbWl0X3BjcmVsX2V4cHINCj4gPiAtCSAgJiYgKGVuY29k aW5nICYgMHg3MCkgIT0gRFdfRUhfUEVfcGNyZWwNCj4gPiArCSAgICYmIChl bmNvZGluZyAmIDB4NzApICE9IERXX0VIX1BFX3BjcmVsDQo+ID4gICNlbmRp Zg0KPiA+ICAJICApDQo+ID4gIAkgLyogbGViMTI4IGNhbiBiZSBoYW5kbGVk LCBidXQgZG9lcyBzb21ldGhpbmcgYWN0dWFsbHkgbmVlZCBpdD8gICovDQo+ ID4gLSAgICAgIHx8IChlbmNvZGluZyAmIDcpID09IERXX0VIX1BFX3VsZWIx MjgNCj4gPiAtICAgICAgfHwgKGVuY29kaW5nICYgNykgPiBEV19FSF9QRV91 ZGF0YTgpDQo+ID4gKwkgICB8fCAoZW5jb2RpbmcgJiA3KSA9PSBEV19FSF9Q RV91bGViMTI4DQo+ID4gKwkgICB8fCAoZW5jb2RpbmcgJiA3KSA+IERXX0VI X1BFX3VkYXRhOCkNCj4gPiArCSYmICF0Y19jZmlfc3BlY2lhbF9lbmNvZGlu ZyAoZW5jb2RpbmcpKSkNCj4gPiAgICAgIHsNCj4gPiAgICAgICAgYXNfYmFk IChfKCJpbnZhbGlkIG9yIHVuc3VwcG9ydGVkIGVuY29kaW5nIGluIC5jZmlf cGVyc29uYWxpdHkiKSk7DQo+ID4gICAgICAgIGlnbm9yZV9yZXN0X29mX2xp bmUgKCk7DQo+IA0KPiBXaGF0IGRvZXMgYSAic3BlY2lhbCIgZW5jb2Rpbmcg bWVhbj8gIEFnYWluLCB0aGlzIGhvb2sgc2hvdWxkIGJlDQo+IGRvY3VtZW50 ZWQgaW4gaW50ZXJuYWxzLnRleGkuICBBbmQgZG8gd2UgcmVhbGx5IHdhbnQg dG8gY2hhbmdlIHRoZSBzZXQgb2YNCj4gZW5jb2RpbmdzIHRoYXQgYXJlIGFs bG93ZWQgZm9yIERXQVJGLCBldmVuIG9uIE1JUFMgc3lzdGVtcyB0aGF0IHBy ZWRhdGUNCj4gY29tcGF0IEVIPw0KPiANClNwZWNpYWwgbWVhbnMgdGhhdCB3 ZSBoYXZlIGNvZGUgaW4gdGhlIGJhY2tlbmQgdG8gZW1pdCBhIHJlbG9jIGZv ciBpdC4gIEluIHRoZSByZXZpc2VkIHBhdGNoLCBpdCBnb2VzIGFsb25nIHdp dGgNClRjX2NmaV9yZWxvY19mb3JfZW5jb2RpbmcuICBJdCBhbHNvIGxvb2tz IGxpa2UgaW50ZXJuYWxzLnRleGkgZmFpbHMgdG8gZG9jdW1lbnQgbWFueSBv ZiB0aGUgdGNfbWFjcm9zIGFuZCBpdCBkb2Vzbid0IGFwcGVhciB0byBiZSBi dWlsdCBpbnRvIGEgLmluZm8gZmlpZS4NCg0KPiA+IEBAIC0xMDQyLDYgKzEw NzIsMTMgQEAgZG90X2NmaV9zZWN0aW9ucyAoaW50IGlnbm9yZWQgQVRUUklC VVRFXw0KPiA+ICAJICBzZWN0aW9ucyB8PSBDRklfRU1JVF9laF9mcmFtZTsN Cj4gPiAgCWVsc2UgaWYgKHN0cm5jbXAgKG5hbWUsICIuZGVidWdfZnJhbWUi LCBzaXplb2YgIi5kZWJ1Z19mcmFtZSIpID09DQo+IDApDQo+ID4gIAkgIHNl Y3Rpb25zIHw9IENGSV9FTUlUX2RlYnVnX2ZyYW1lOw0KPiA+ICsjaWYgU1VQ UE9SVF9DT01QQUNUX0VIDQo+ID4gKwllbHNlIGlmIChzdHJuY21wIChuYW1l LCAiLmVoX2ZyYW1lX2VudHJ5Iiwgc2l6ZW9mDQo+ICIuZWhfZnJhbWVfZW50 cnkiKSA9PSAwKQ0KPiA+ICsJICB7DQo+ID4gKwkgICAgY29tcGFjdF9laCA9 IFRSVUU7DQo+ID4gKwkgICAgc2VjdGlvbnMgfD0gQ0ZJX0VNSVRfZWhfZnJh bWUgfCBDRklfRU1JVF90YXJnZXQ7DQo+ID4gKwkgIH0NCj4gPiArI2VuZGlm DQo+ID4gICNpZmRlZiB0Y19jZmlfc2VjdGlvbl9uYW1lDQo+ID4gIAllbHNl IGlmIChzdHJjbXAgKG5hbWUsIHRjX2NmaV9zZWN0aW9uX25hbWUpID09IDAp DQo+ID4gIAkgIHNlY3Rpb25zIHw9IENGSV9FTUlUX3RhcmdldDsNCj4gDQo+ IEkgdGhpbmsgdGhlcmUgbmVlZHMgdG8gYmUgbW9yZSBlcnJvciBjaGVja2lu ZyBoZXJlLiAgRG8gd2Ugc3VwcG9ydCBtaXh0dXJlcw0KPiBvZiBEV0FSRiBh bmQgbmV3LWZvcm1hdCBFSCBpbmZvIGluIHRoZSBzYW1lIC5zIGZpbGU/DQpO bywgd2UgZG9uJ3Qgc3VwcG9ydCBtaXhpbmcgdGhlIHR3byBmb3JtYXRzIGlu IHRoZSBzYW1lIC5zIGZpbGUuDQpFcnJvciBjaGVja2luZyBoYXMgbm93IGJl ZW4gYWRkZWQuDQoNCj4gSWYgbm90LCB3ZSBzaG91bGQgY2hlY2sgZm9yIGl0 LCBpbmNsdWRpbmcgbWFraW5nIHN1cmUgdGhhdCBsYXRlciAuY2ZpX3NlY3Rp b25zDQo+IGRvbid0IGNvbnRyYWRpY3QgZWFybGllciBvbmVzLiAgKEF0IHRo ZSBtb21lbnQsIHRoZSBsYXN0IG9uZSB3aW5zLCBleGNlcHQgZm9yDQo+IHRo ZSBDRklfRU1JVF90YXJnZXQgaGFuZGxpbmcuKSBJZiB3ZSBkbyBzdXBwb3J0 IG1peHR1cmVzLCBzaG91bGRuJ3QNCj4gc29tZXRoaW5nIGNsZWFyIGNvbXBh dF9laCwgc2luY2UgY29tcGF0X2VoIGlzIGNoZWNrZWQgaW4gcGFyc2luZw0K PiBjb250ZXh0cz8NCj4gDQo+IFdoeSBpcyB0aGUgQ0ZJX0VNSVRfdGFyZ2V0 IG5lZWRlZD8NClN0dHJpY3RseSBzcGVha2luZyBpdCBpc24ndCwgYnV0IGhh dmluZyBhIGRpZmZlcmVudCB2YWx1ZSB3YXMgdXNlZnVsIGluIHRoZSBlcnJv ciBjaGVja2luZy4NCg0KPiA+IEBAIC0xMTI1LDE2ICsxMTYyLDE0NyBAQCBk b3RfY2ZpX2VuZHByb2MgKGludCBpZ25vcmVkIEFUVFJJQlVURV9VDQo+ID4g ICAgICAgIHJldHVybjsNCj4gPiAgICAgIH0NCj4gPg0KPiA+IC0gIGZkZSA9 IGZyY2hhaW5fbm93LT5mcmNoX2NmaV9kYXRhLT5jdXJfZmRlX2RhdGE7DQo+ ID4gKyAgbGFzdF9mZGUgPSBmcmNoYWluX25vdy0+ZnJjaF9jZmlfZGF0YS0+ Y3VyX2ZkZV9kYXRhOw0KPiA+DQo+ID4gICAgY2ZpX2VuZF9mZGUgKHN5bWJv bF90ZW1wX25ld19ub3cgKCkpOw0KPiA+DQo+ID4gICAgZGVtYW5kX2VtcHR5 X3Jlc3Rfb2ZfbGluZSAoKTsNCj4gPg0KPiA+IC0gIGlmICgoY2ZpX3NlY3Rp b25zICYgQ0ZJX0VNSVRfdGFyZ2V0KSAhPSAwKQ0KPiA+IC0gICAgdGNfY2Zp X2VuZHByb2MgKGZkZSk7DQo+ID4gKyAgaWYgKChjZmlfc2VjdGlvbnMgJiBD RklfRU1JVF90YXJnZXQpICE9IDANCj4gPiArICAgICAgfHwgKGNvbXBhY3Rf ZWggJiYgKGNmaV9zZWN0aW9ucyAmIENGSV9FTUlUX2VoX2ZyYW1lKSAhPSAw KSkNCj4gPiArICAgIHRjX2NmaV9lbmRwcm9jIChsYXN0X2ZkZSk7DQo+ID4g IH0NCj4gDQo+IEkgdGhpbmsgaXQnZCBiZSBiZXR0ZXIgdG8gdXNlIGEgc2Vw YXJhdGUgaG9vaywgZXNwZWNpYWxseSBpZiB0aGUgaWRlYSBpcyB0aGF0IG90 aGVyDQo+IHRhcmdldHMgY291bGQgdXNlIGNvbXBhY3QgRUggaW5mby4gIFRh cmdldHMgbWlnaHQgdGhlbiBuZWVkIGEgImxlZ2FjeSINCj4gdGNfY2ZpX2Vu ZHByb2MgYXMgd2VsbCBhcyBhICJuZXciIGhvb2suDQo+IA0KTm93IGNoYW5n ZWQgdG8gdXNlIC5jZmlfZmRlX2RhdGEuDQoNCj4gPiArI2lmIFNVUFBPUlRf Q09NUEFDVF9FSA0KPiA+ICtzdGF0aWMgdm9pZA0KPiA+ICtvdXRwdXRfY29t cGFjdF91bndpbmRfZGF0YSAoc3RydWN0IGZkZV9lbnRyeSAqZmRlLCBpbnQg YWxpZ24pIHsNCj4gPiArICBpbnQgZGF0YV9zaXplID0gZmRlLT5laF9kYXRh X3NpemUgKyAyOw0KPiA+ICsgIGludCBhbWFzazsNCj4gPiArICBjaGFyICpw Ow0KPiA+ICsgIGNoYXIgKmVuZDsNCj4gPiArDQo+ID4gKyAgZmRlLT5laF9s b2MgPSBzeW1ib2xfdGVtcF9uZXdfbm93ICgpOyAgaWYgKGZkZS0+cGVyX2Vu Y29kaW5nICE9DQo+ID4gKyBEV19FSF9QRV9vbWl0KQ0KPiA+ICsgICAgZGF0 YV9zaXplICs9IDQ7DQo+IA0KPiBUaGlzIDQgc2hvdWxkbid0IGJlIGhhcmRj b2RlZC4gIEhvcGVmdWxseSBhbiB1bmNvbmRpdGlvbmFsOg0KDQpOb3cgZml4 ZWQuDQoNCj4gDQo+ICAgZGF0YV9zaXplICs9IGVuY29kaW5nX3NpemUgKGZk ZS0+cGVyX2VuY29kaW5nKTsNCj4gDQo+IHdvdWxkIHdvcms7IGlmIG5vdCwg cGxlYXNlIGV4dGVuZCBlbmNvZGluZ19zaXplLiAgV2UgdGhlbiBoYXZlOg0K PiANCj4gPiArICBpZiAoZmRlLT5wZXJfZW5jb2RpbmcgIT0gRFdfRUhfUEVf b21pdCkNCj4gPiArICAgIHsNCj4gPiArICAgICAgKihwKyspID0gMDsNCj4g PiArICAgICAgbWRfbnVtYmVyX3RvX2NoYXJzIChwLCAwLCA0KTsNCj4gPiAr ICAgICAgdGNfY2ZpX2ZpeF9laF9yZWYgKHAsICZmZGUtPnBlcnNvbmFsaXR5 KTsNCj4gPiArICAgICAgcCArPSA0Ow0KPiANCj4gd2hlcmUgdGNfY2ZpX2Zp eF9laF9yZWYgZW1pdHMgYW4gUl9NSVBTX0VIIHJlbG9jYXRpb24gcmVnYXJk bGVzcyBvZiB3aGljaA0KPiBwZXJzb25hbGl0eSBlbmNvZGluZyBpcyB1c2Vk LiAgQUlVSSwgdGhlIGVuY29kaW5nIG11c3QgYmUgb25lIG9mIHRoZQ0KPiAi c3BlY2lhbCIgb25lcyBhbGxvd2VkIGJ5IHRjX2NmaV9zcGVjaWFsX2VuY29k aW5nLCBzbyB3ZSBzaG91bGQgY2hlY2sgZm9yDQo+IHRoYXQuDQo+IA0KPiBU aGUgdGNfY2ZpX2ZpeF9laF9yZWYgYW5kIHRjX2NmaV9lbWl0X2V4cHIgaG9v a3MgZG9uJ3Qgc2VlbSB2ZXJ5DQo+IGNvbnNpc3RlbnQ7IHRoZSBmb3JtZXIg cmVsaWVzIG9uIHRoZSBjYWxsZXIgdG8gY2xlYXIgdGhlIGJ5dGVzLCB3aGVy ZWFzIHRoZQ0KPiBsYXR0ZXIgaXMgc3VwcG9zZWQgdG8gZG8gaXQgaXRzZWxm Lg0KDQpBbGwgZml4ZWQsIG5vdyB1c2luZyBhIGhvb2sgdG8gcmV0dXJuIGEg cmVsb2MgYW5kIGVsaW1pbmF0ZWQgdGhlIHVzZSBvZiBSX01JUFNfRUggZnJv bSB0aGUgYXNzZW1ibGVyLg0KPiANCj4gTmVpdGhlciBvZiB0aGUgaG9va3Mg cmVhbGx5IHNlZW0gdG8gYmUgZG9pbmcgYW55dGhpbmcgdGFyZ2V0LXNwZWNp ZmljIGV4Y2VwdA0KPiBmb3IgdGhlIGFsbC1pbXBvcnRhbnQgam9iIG9mIHBp Y2tpbmcgYSByZWxvYy4gIEkgdGhpbmsgaXQgd291bGQgYmUgY2xlYW5lciB0 byBoYXZlDQo+IGEgaG9vayB0aGF0IHJldHVybnMgdGhlIHJlbG9jIGluc3Rl YWQuDQo+IEluIHRoZSBjYXNlIG9mIHRjX2NmaV9lbWl0X2V4cHIsIHRoaXMg Y291bGQgYmUgZG9uZSBieSBtYWtpbmcNCj4gdGNfY2ZpX3NwZWNpYWxfZW5j b2RpbmcgcmV0dXJuIHRoZSByZWxvYyBmb3IgYW4gZW5jb2RpbmcsIG9yDQo+ IEJGRF9SRUxPQ19OT05FIGZvciB1bnN1cHBvcnRlZCBlbmNvZGluZ3MuDQo+ IA0KPiBBbHNvLCB0aGlzIGlzIG1vcmUgb2YgYSBkZXNpZ24gcG9pbnQsIGJ1 dCBJIGZpbmQgdGhlIGhhbmRsaW5nIG9mIHRoZSBwZXJzb25hbGl0eQ0KPiBl bmNvZGluZyBhbmQgUl9NSVBTX0VIIGhhbmRsaW5nIGEgYml0IGNvbmZ1c2lu Zy4gIFRvIHF1b3RlOg0KPiANCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQo+IDExIFJlbG9jYXRpb25zDQo+IA0KPiBBIG5ldyBzdGF0aWMgcmVsb2Nh dGlvbiwgUl9NSVBTX0VILCBpcyBkZWZpbmVkLiBUaGUgc2VtYW50aWNzIG9m IHRoaXMNCj4gcmVsb2NhdGlvbiBkZXBlbmQgb24gd2hldGhlciBzdGF0aWMg b3IgZHluYW1pYyBsaW5raW5nIGlzIHByb3ZpZGVkLg0KPiANCj4gQSBHTlUg ZXh0ZW5zaW9uIHVzaW5nIHJlbG9jYXRpb24gbnVtYmVyIDI0OSBzaGFsbCBi ZSB1c2VkLiBUaGUgcmVsb2NhdGlvbg0KPiBhZGRyZXNzIG5lZWQgbm90IGJl IG5hdHVyYWxseSBhbGlnbmVkLg0KPiANCj4gMTEuMSBTdGF0aWMgY29kZQ0K PiANCj4gRm9yIHN0YXRpYyBjb2RlIGdlbmVyYXRpb24sIHRoZSBjYWxjdWxh dGlvbiBpcyB0aGUgc2FtZSBhcyBhbg0KPiBSX01JUFNfUkVMMzIgcmVsb2Nh dGlvbi4NCj4gDQo+IEF0IHJ1bnRpbWUsIHRoZSBmb2xsb3dpbmcgZXhwcmVz c2lvbiBwcm92aWRlcyB0aGUgcmVsb2NhdGVkIHZhbHVlLCBpZiAncHRyJw0K PiBwb2ludHMgdG8gdGhlIHJlbG9jYXRpb24gbG9jYXRpb24uDQo+IA0KPiDi gKIgKHB0cmRpZmZfdClwdHIgKyAqKGludDMyX3QgX19hdHRyaWJ1dGVfXygo cGFja2VkKSkqKXB0cg0KPiANCj4gWy4uLl0NCj4gDQo+IDExLjIgUElDIGNv ZGUNCj4gDQo+IEZvciBQSUMgY29kZSBnZW5lcmF0aW9uLCBhIDMyLSBvciA2 NC1iaXQgR09ULXRhYmxlIGVudHJ5IG11c3QgYmUgYWxsb2NhdGVkIHRvDQo+ IHJlZmVyIHRvIHRoZSAoZHluYW1pY2FsbHkgcmVzb2x2ZWQpIHRhcmdldCBh ZGRyZXNzLiBPbmNlIHRoZSBHT1QgZW50cnkgaGFzDQo+IGJlZW4gYWxsb2Nh dGVkLCB0aGUgc3RhdGljIGNhbGN1bGF0aW9uIGlzIGFzIGZvciBhbg0KPiBS X01JUFNfR1BSRUwzMiByZWxvY2F0aW9uIChleGNlcHQgdGhhdCB0aGUgc3lt Ym9sIGlzIGV4dGVybmFsbHkgdmlzaWJsZSkuDQo+IFRoZSBHT1QtIHNsb3Qg aGFzIGFuIGFzc29jaWF0ZWQgUl9NSVBTX3szMiw2NH0gZHluYW1pYyByZWxv Y2F0aW9uIGVtaXR0ZWQNCj4g4oCTIGFuZCB0aGF0IHdpbGwgb2YgY291cnNl IGJlIGF0IGEgbmF0dXJhbGx5IGFsaWduZWQgbG9jYXRpb24NCj4gDQo+IEF0 IHJ1bnRpbWUsIHRoZSBmb2xsb3dpbmcgZXhwcmVzc2lvbiBwcm92aWRlcyB0 aGUgcmVsb2NhdGVkIHZhbHVlLCBpZiAncHRyJw0KPiBwb2ludHMgdG8gdGhl IHJlbG9jYXRpb24gbG9jYXRpb24sIGFuZCAnZ3AnIGlzIHRoZSBnbG9iYWwg cG9pbnRlcg0KPiB2YWx1ZToNCj4gDQo+IOKAoiAqKHB0cmRpZmZfdCAqKSgo cHRyZGlmZl90KWdwICsgKihpbnQzMl90IF9fYXR0cmlidXRlX18oKHBhY2tl ZCkpICopcHRyKQ0KPiANCj4gWy4uLl0NCj4gLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQo+IA0KPiBTbyBhcyBJIHVuZGVyc3RhbmQgdGhlIGZpcnN0IHNl bnRlbmNlLCBpdCdzIGFjdHVhbGx5IHRoZSBsaW5rZXIgdGhhdCBkZWNpZGVz DQo+IHdoZXRoZXIgUl9NSVBTX0VIIHJlbG9jYXRpb25zIGFjdCBhcyBkaXJl Y3QgUEMtcmVsYXRpdmUgcmVmZXJlbmNlcyAoMTEuMSkgb3INCj4gYXMgaW5k aXJlY3QgZGF0YXJlbCByZWZlcmVuY2VzICgxMS4yKS4NCj4gSXQncyB0aGVy ZWZvcmUgdGhlIGxpbmtlciB0aGF0IGRlY2lkZXMgd2hhdCBEV0FSRiBlbmNv ZGluZyBSX01JUFNfRUgNCj4gZmllbGRzIHVzZS4gIFRoZSBsaW5rZXIgdGhl biByZWNvcmRzIHRoYXQgY2hvaWNlIGluIHRoZSAuZWhfZnJhbWVfaGRyLiAg SXMgdGhhdA0KPiByaWdodD8NCj4gDQo+IElmIHNvLCB0aGUgYXNzZW1ibGVy IHNlZW1zIHRvIGJlIGFzc29jaWF0aW5nIFJfTUlQU19FSCB3aXRoIHNwZWNp ZmljIERXQVJGDQo+IGVuY29kaW5ncywgZXZlbiB0aG91Z2ggdGhlIGludGVy cHJldGF0aW9uIG9mIFJfTUlQU19FSCBpc24ndCBrbm93biBhdCB0aGF0DQo+ IHN0YWdlLiAgSS5lLiB0aGUgY29kZSByZWFkczoNCj4gDQo+ICNkZWZpbmUg dGNfY2ZpX3NwZWNpYWxfZW5jb2RpbmcoZSkgXA0KPiAgICgoZSkgPT0gKERX X0VIX1BFX3NkYXRhNCB8IERXX0VIX1BFX2RhdGFyZWwgfCBEV19FSF9QRV9p bmRpcmVjdCkgXA0KPiAgICB8fCAoZSkgPT0gKERXX0VIX1BFX3NkYXRhNCB8 IERXX0VIX1BFX3BjcmVsKSkNCj4gDQo+IHZvaWQNCj4gbWlwc19jZmlfZW1p dF9leHByIChleHByZXNzaW9uUyAqZXhwLCBpbnQgZW5jb2RpbmcpIHsNCj4g ICBjaGFyICpwOw0KPiANCj4gICBwID0gZnJhZ19tb3JlKDQpOw0KPiAgIG1k X251bWJlcl90b19jaGFycyAocCwgMCwgNCk7DQo+ICAgaWYgKChlbmNvZGlu ZyAmIDB4NzApID09IERXX0VIX1BFX2RhdGFyZWwpDQo+ICAgICBtaXBzX2Nm aV9maXhfZWhfcmVmIChwLCBleHApOw0KPiAgIGVsc2UNCj4gICAgIHsNCj4g ICAgICAgZml4X25ldyAoZnJhZ19ub3csIHAgLSBmcmFnX25vdy0+ZnJfbGl0 ZXJhbCwgNCwgZXhwLT5YX2FkZF9zeW1ib2wsDQo+IAkgICAgICAgZXhwLT5Y X2FkZF9udW1iZXIsIFRSVUUsIEJGRF9SRUxPQ18zMl9QQ1JFTCk7DQo+ICAg ICB9DQo+IH0NCj4gDQo+IHdoZXJlIG1pcHNfY2ZpX2ZpeF9laF9yZWYgZW1p dHMgYW4gUl9NSVBTX0VILiAgU28gdGhlIGNvZGUgYXBwZWFycyB0byBiZQ0K PiB1c2luZyBSX01JUFNfRUggZm9yIHRoZSBEV0FSRiBlbmNvZGluZzoNCj4g DQo+ICAgICBEV19FSF9QRV9zZGF0YTQgfCBEV19FSF9QRV9kYXRhcmVsIHwg RFdfRUhfUEVfaW5kaXJlY3QNCj4gDQo+IGV2ZW4gdGhvdWdoIHRoZXJlJ3Mg bm8gZ3VhcmFudGVlIHRoYXQgdGhlIGZpbmFsIHZhbHVlIHdpbGwgYmUgZWl0 aGVyIGRhdGFyZWwgb3INCj4gaW5kaXJlY3QuDQo+IA0KPiBPciwgdG8gcHV0 IGl0IGFub3RoZXIgd2F5LCB3aHkgYXJlIHdlIG1ha2luZyB0aGUgY2hvaWNl IGJldHdlZW4NCj4gUl9NSVBTX1BDMzIgYW5kIFJfTUlQU19FSCBhdCBhc3Nl bWJseSB0aW1lIGluIG1pcHNfY2ZpX2VtaXRfZXhwciwgYnV0DQo+IG5vdCBp biBtaXBzX2NmaV9maXhfZWhfcmVmLCBldmVuIHRob3VnaCB0aGUgcGF0Y2gg YXBwZWFycyB0byBhbGxvdyB0aGUNCj4gc2FtZSB0d28gZW5jb2RpbmdzIGlu IGJvdGggY2FzZWVzPw0KPiANCj4gPiArICBtZW1jcHkgKHAsIGZkZS0+ZWhf ZGF0YSwgZmRlLT5laF9kYXRhX3NpemUpOyAgcCArPQ0KPiA+ICsgZmRlLT5l aF9kYXRhX3NpemU7ICB3aGlsZSAocCAhPSBlbmQpDQo+ID4gKyAgICAqKHAr KykgPSAweDVmOw0KPiA+ICsNCj4gPiArICAqKHArKykgPSAweDVjOw0KPiAN Cj4gUGxlYXNlIHVzZSBzb21ldGhpbmcgbW9yZSBtbmVtb25pYyB0aGFuIDB4 NWYgYW5kIDB4NWMuICBBcmUgdGhlc2UgdGhlDQo+ICJTcGFyZSIgYW5kICJQ QyA9IFZSWzMxXTsgRmluaXNoIiBlbmNvZGluZ3MgZnJvbSBwYWdlIDE2Pw0K PiBJZiBzbywgdGhleSBzZWVtIHRhcmdldC1zcGVjaWZpYywgc28gc2hvdWxk IHByb2JhYmx5IHVzZSB0Y18qICNkZWZpbmVzLg0KDQpOb3cgZml4ZWQuDQo+ IA0KPiA+ICtzdGF0aWMgdm9pZA0KPiA+ICtkb3RfY2ZpX2lubGluZV9sc2Rh IChpbnQgaWdub3JlZCBBVFRSSUJVVEVfVU5VU0VEKSB7DQo+ID4gKyAgc2Vn VCBjZmlfc2VnLCBjY3NlZzsNCj4gPiArICBpbnQgYWxpZ247DQo+ID4gKyAg bG9uZyBtYXhfYWxpZ25tZW50ID0gMjg7DQo+ID4gKw0KPiA+ICsgIGlmICgh bGFzdF9mZGUpDQo+ID4gKyAgICB7DQo+ID4gKyAgICAgIGFzX2JhZCAoXygi dW5leHBlY3RlZCAuY2ZpX2lubGluZV9sc2RhIikpOw0KPiA+ICsgICAgICBp Z25vcmVfcmVzdF9vZl9saW5lICgpOw0KPiA+ICsgICAgICByZXR1cm47DQo+ ID4gKyAgICB9DQo+ID4gKw0KPiA+ICsgIGlmICghY29tcGFjdF9laA0KPiA+ ICsgICAgICB8fCAobGFzdF9mZGUtPnNlY3Rpb25zICYgQ0ZJX0VNSVRfZWhf ZnJhbWUpID09IDANCj4gPiArICAgICAgfHwgKGxhc3RfZmRlLT5laF9oZWFk ZXJfdHlwZSAhPSBFSF9DT01QQUNUX0xFR0FDWQ0KPiA+ICsJICAmJiBsYXN0 X2ZkZS0+ZWhfaGVhZGVyX3R5cGUgIT0gRUhfQ09NUEFDVF9IQVNfTFNEQSkp DQo+ID4gKw0KPiA+ICsgICAgew0KPiA+ICsgICAgICBhc19iYWQgKF8oIi5j ZmlfaW5saW5lX2xzZGEgbm90IHZhbGlkIGZvciB0aGlzIGZyYW1lIikpOw0K PiA+ICsgICAgICBpZ25vcmVfcmVzdF9vZl9saW5lICgpOw0KPiA+ICsgICAg ICByZXR1cm47DQo+ID4gKyAgICB9DQo+IA0KPiBFeGNlc3MgYmxhbmsgbGlu ZS4gIFRoZSBmaXJzdCB0d28gbGluZXMgb2YgdGhlIGlmIGFyZSBjbGVhciBl bm91Z2gsIGJ1dCB3aGF0IGlzDQo+IHRoZSBlaF9oZWFkZXJfdHlwZSBjb25k aXRpb24gZG9pbmc/ICBJdCBsb29rcyBsaWtlIG9uZSBvZiB0aGUgY2FzZXMg aXQgY2F0Y2hlcw0KPiBpcyB3aGVyZSB0d28gTFNEQXMgYXJlIHNwZWNpZmll ZCBmb3IgdGhlIHNhbWUgZnJhbWUuDQo+IElmIHNvLCBJIHRoaW5rIGEgYmV0 dGVyIGVycm9yIG1lc3NhZ2Ugc2hvdWxkIGJlIGdpdmVuIGluIHRoYXQgY2Fz ZS4NCg0KQWxsIGZpeGVkIGluY2x1ZGluZyBhIHRlc3QgY2FzZSBmb3IgdGhl IGVycm9yIG1lc3NhZ2UuDQo+IA0KPiA+ICsgIGRlbWFuZF9lbXB0eV9yZXN0 X29mX2xpbmUgKCk7DQo+ID4gKyAgY2NzZWcgPSBDVVJfU0VHIChsYXN0X2Zk ZSk7DQo+ID4gKyAgLyogT3BlbiAuZ251X2V4dGFiIHNlY3Rpb24uICAqLw0K PiA+ICsgIGNmaV9zZWcgPSBnZXRfY2ZpX3NlZyAoY2NzZWcsICIuZ251X2V4 dGFiIiwNCj4gPiArCQkJIChTRUNfQUxMT0MgfCBTRUNfTE9BRCB8IFNFQ19E QVRBDQo+ID4gKwkJCSAgfCBEV0FSRjJfRUhfRlJBTUVfUkVBRF9PTkxZKSwN Cj4gPiArCQkJIDEpOw0KPiA+ICsjaWZkZWYgbWRfZml4X3VwX2VoX2ZyYW1l DQo+ID4gKyAgbWRfZml4X3VwX2VoX2ZyYW1lIChjZmlfc2VnKTsNCj4gPiAr I2Vsc2UNCj4gPiArICAodm9pZCkgY2ZpX3NlZzsNCj4gPiArI2VuZGlmDQo+ ID4gKw0KPiA+ICsgIGZyYWdfYWxpZ24gKGFsaWduLCAwLCAwKTsNCj4gPiAr ICByZWNvcmRfYWxpZ25tZW50IChub3dfc2VnLCBhbGlnbik7DQo+ID4gKyAg aWYgKGxhc3RfZmRlLT5laF9oZWFkZXJfdHlwZSA9PSBFSF9DT01QQUNUX0hB U19MU0RBKQ0KPiA+ICsgICAgb3V0cHV0X2NvbXBhY3RfdW53aW5kX2RhdGEg KGxhc3RfZmRlLCBhbGlnbik7DQo+IA0KPiBQbGVhc2UgY291bGQgeW91IGV4 cGxhaW4gdGhlIEVIX0NPTVBBQ1RfTEVHQUNZIGhhbmRsaW5nIGhlcmU/IA0K DQpXb3VsZCB5b3UgcGxlYXNlIGNsYXJpZnkgdGhpcyBxdWVzdGlvbj8gIEkg ZG9uJ3Qgc2VlIHRoZSByZWZlcmVuY2UgdG8gRUhfQ09NUEFDVF9MRUdBQ1ku DQo+IA0KPiA+IEBAIC0xNDc5LDcgKzE2NDcsMTEgQEAgb3V0cHV0X2NpZSAo c3RydWN0IGNpZV9lbnRyeSAqY2llLCBiZmRfYg0KPiA+ICAJICBvZmZzZXRU IHNpemUgPSBlbmNvZGluZ19zaXplIChjaWUtPnBlcl9lbmNvZGluZyk7DQo+ ID4gIAkgIG91dF9vbmUgKGNpZS0+cGVyX2VuY29kaW5nKTsNCj4gPiAgCSAg ZXhwID0gY2llLT5wZXJzb25hbGl0eTsNCj4gPiAtCSAgaWYgKChjaWUtPnBl cl9lbmNvZGluZyAmIDB4NzApID09IERXX0VIX1BFX3BjcmVsKQ0KPiA+ICsJ ICBpZiAodGNfY2ZpX3NwZWNpYWxfZW5jb2RpbmcgKGNpZS0+cGVyX2VuY29k aW5nKSkNCj4gPiArCSAgICB7DQo+ID4gKwkgICAgICB0Y19jZmlfZW1pdF9l eHByICgmZXhwLCBjaWUtPnBlcl9lbmNvZGluZyk7DQo+ID4gKwkgICAgfQ0K PiANCj4gRXhjZXNzIGJyYWNlcy4NCg0KU2hvdWxkIGJlIGFsbCBmaXhlZCBu b3cuDQo+IA0KPiA+IEBAIC0xNjE3LDcgKzE4MDQsMTEgQEAgb3V0cHV0X2Zk ZSAoc3RydWN0IGZkZV9lbnRyeSAqZmRlLCBzdHJ1Yw0KPiA+ICAgIGlmIChm ZGUtPmxzZGFfZW5jb2RpbmcgIT0gRFdfRUhfUEVfb21pdCkNCj4gPiAgICAg IHsNCj4gPiAgICAgICAgZXhwID0gZmRlLT5sc2RhOw0KPiA+IC0gICAgICBp ZiAoKGZkZS0+bHNkYV9lbmNvZGluZyAmIDB4NzApID09IERXX0VIX1BFX3Bj cmVsKQ0KPiA+ICsgICAgICBpZiAodGNfY2ZpX3NwZWNpYWxfZW5jb2Rpbmcg KGNpZS0+bHNkYV9lbmNvZGluZykpDQo+ID4gKwl7DQo+ID4gKwkgIHRjX2Nm aV9lbWl0X2V4cHIgKCZleHAsIGNpZS0+bHNkYV9lbmNvZGluZyk7DQo+ID4g Kwl9DQo+IA0KPiBTYW1lIGhlcmUuDQo+IA0KPiA+ICsjaWYgU1VQUE9SVF9D T01QQUNUX0VIDQo+ID4gK3N0YXRpYyB2b2lkDQo+ID4gK2NmaV9lbWl0X2Vo X2hlYWRlciAoc3ltYm9sUyAqc3ltLCBiZmRfdm1hIGFkZGVuZCkNCj4gPiAg ew0KPiA+IC0gIGlmIChTVVBQT1JUX0ZSQU1FX0xJTktPTkNFKQ0KPiA+ICsg IGV4cHJlc3Npb25TIGV4cDsNCj4gPiArDQo+ID4gKyAgZXhwLlhfYWRkX251 bWJlciA9IGFkZGVuZDsNCj4gPiArICBleHAuWF9hZGRfc3ltYm9sID0gc3lt Ow0KPiA+ICsgIGlmICh0Y19jZmlfc3BlY2lhbF9lbmNvZGluZyAoRFdfRUhf UEVfc2RhdGE0IHwgRFdfRUhfUEVfcGNyZWwpKQ0KPiA+ICAgICAgew0KPiA+ IC0gICAgICBzdHJ1Y3QgZHdjZmlfc2VnX2xpc3QgKmw7DQo+ID4gKyAgICAg IHRjX2NmaV9lbWl0X2V4cHIgKCZleHAsIERXX0VIX1BFX3NkYXRhNCB8IERX X0VIX1BFX3BjcmVsKTsNCj4gPiArICAgIH0NCj4gDQo+IEhlcmUgdG9vLg0K PiANCj4gPiArCQkgICAgICAvKiBPcGVuIC5laF9mcmFtZSBzZWN0aW9uLiAg Ki8NCj4gPiArCQkgICAgICBjZmlfc2VnID0gZ2V0X2NmaV9zZWcgKGNjc2Vn LCAiLmdudV9leHRhYiIsDQo+ID4gKwkJCQkJICAgICAoU0VDX0FMTE9DIHwg U0VDX0xPQUQgfA0KPiBTRUNfREFUQQ0KPiA+ICsJCQkJCSAgICAgIHwNCj4g RFdBUkYyX0VIX0ZSQU1FX1JFQURfT05MWSksDQo+ID4gKwkJCQkJICAgICAx KTsNCj4gDQo+IFBhc3RvLCB0aGlzIGlzbid0IC5laF9mcmFtZS4NCg0KRml4 ZWQuDQo+IA0KPiA+IEBAIC0xNTcxMiw3ICsxNTcxMiw4IEBAIG1kX2FwcGx5 X2ZpeCAoZml4UyAqZml4UCwgdmFsdWVUICp2YWxQLA0KPiA+ICAJICAgICAg fHwgZml4UC0+Znhfcl90eXBlID09IEJGRF9SRUxPQ19NSUNST01JUFNfU1VC DQo+ID4gIAkgICAgICB8fCBmaXhQLT5meF9yX3R5cGUgPT0gQkZEX1JFTE9D X1ZUQUJMRV9JTkhFUklUDQo+ID4gIAkgICAgICB8fCBmaXhQLT5meF9yX3R5 cGUgPT0gQkZEX1JFTE9DX1ZUQUJMRV9FTlRSWQ0KPiA+IC0JICAgICAgfHwg Zml4UC0+Znhfcl90eXBlID09IEJGRF9SRUxPQ19NSVBTX1RMU19EVFBSRUw2 NCk7DQo+ID4gKwkgICAgICB8fCBmaXhQLT5meF9yX3R5cGUgPT0gQkZEX1JF TE9DX01JUFNfVExTX0RUUFJFTDY0DQo+ID4gKwkgICAgICB8fCBmaXhQLT5m eF9yX3R5cGUgPT0gQkZEX1JFTE9DX05PTkUpOw0KPiA+DQo+ID4gICAgYnVm ID0gZml4UC0+ZnhfZnJhZy0+ZnJfbGl0ZXJhbCArIGZpeFAtPmZ4X3doZXJl Ow0KPiA+DQo+ID4gQEAgLTE1OTUxLDYgKzE1OTUyLDcgQEAgbWRfYXBwbHlf Zml4IChmaXhTICpmaXhQLCB2YWx1ZVQgKnZhbFAsDQo+ID4gICAgICAgICAg U19TRVRfV0VBSyAoZml4UC0+ZnhfYWRkc3kpOw0KPiA+ICAgICAgICBicmVh azsNCj4gPg0KPiA+ICsgICAgY2FzZSBCRkRfUkVMT0NfTk9ORToNCj4gPiAg ICAgIGNhc2UgQkZEX1JFTE9DX1ZUQUJMRV9FTlRSWToNCj4gPiAgICAgICAg Zml4UC0+ZnhfZG9uZSA9IDA7DQo+ID4gICAgICAgIGJyZWFrOw0KPiANCj4g V2h5IGFyZSB0aGVzZSB0d28gaHVua3MgbmVlZGVkPw0KDQpOb3cgcmV2ZXJ0 ZWQuDQo+IA0KPiA+IEBAIC0xOTc5MywzICsxOTc5NSwyODkgQEAgdGNfbWlw c19yZWduYW1lX3RvX2R3MnJlZ251bSAoY2hhcg0KPiAqcmVnbg0KPiA+DQo+ ID4gICAgcmV0dXJuIHJlZ251bTsNCj4gPiAgfQ0KPiA+ICsNCj4gPiArI2lm IGRlZmluZWQgKE9CSl9FTEYpDQo+ID4gK3NlZ1QNCj4gPiArbWlwc19tYWtl X2RlYnVnX3NlZyAoc2VnVCBjc2VnLCBjaGFyICpuYW1lKSB7DQo+ID4gKyAg Y29uc3QgY2hhciAqZ3JvdXBfbmFtZSA9IE5VTEw7DQo+ID4gKyAgaW50IGxp bmtvbmNlOw0KPiA+ICsgIGludCBmbGFncyA9IDA7DQo+ID4gKw0KPiA+ICsg IGlmIChjc2VnICYmIChjc2VnLT5mbGFncyAmIFNFQ19MSU5LX09OQ0UpICE9 IDApDQo+ID4gKyAgICB7DQo+ID4gKyAgICAgIGdyb3VwX25hbWUgPSBlbGZf Z3JvdXBfbmFtZSAoY3NlZyk7DQo+ID4gKyAgICAgIGlmIChncm91cF9uYW1l ID09IE5VTEwpDQo+ID4gKwl7DQo+ID4gKwkgIGFzX2JhZCAoXygiR3JvdXAg c2VjdGlvbiBgJXMnIGhhcyBubyBncm91cCBzaWduYXR1cmUiKSwNCj4gPiAr CQkgIHNlZ21lbnRfbmFtZSAoY3NlZykpOw0KPiA+ICsJfQ0KPiA+ICsgICAg ICBmbGFncyB8PSBTSEZfR1JPVVA7DQo+ID4gKyAgICAgIGxpbmtvbmNlID0g MTsNCj4gPiArICAgIH0NCj4gPiArICBvYmpfZWxmX2NoYW5nZV9zZWN0aW9u IChuYW1lLCBTSFRfUFJPR0JJVFMsIGZsYWdzLCAwLCBncm91cF9uYW1lLA0K PiA+ICtsaW5rb25jZSwgMCk7DQo+ID4gKyAgcmV0dXJuIG5vd19zZWc7DQo+ ID4gK30NCj4gPiArDQo+IA0KPiBUaGlzIGZ1bmN0aW9uIGRvZXNuJ3Qgc2Vl bSB0byBjb250YWluIGFueSBNSVBTLXNwZWNpZmljIGNvZGUuDQo+IElmIGEg aG9vayByZWFsbHkgaXMgbmVlZGVkLCB0aGVuIEkgdGhpbmsgdGhpcyBpbXBs ZW1lbnRhdGlvbiBiZWxvbmdzIGluIG9iai0NCj4gZWxmLmMgcmF0aGVyIHRo YW4gdGMtbWlwcy5jLg0KDQpOb3cgcmVtb3ZlZCBpbiBmYXZvciBvZiBsaW5r ZXIgc21hcnRzLg0KPiANCj4gPiArLyogQXR0ZW1wdCB0byBnZW5lcmF0ZSBj b21wYWN0IGZyYW1lIHVud2luZCBlbmNvZGluZ3MuICAqLw0KPiA+ICsNCj4g PiArdm9pZA0KPiA+ICttaXBzX2NmaV9lbmRwcm9jIChzdHJ1Y3QgZmRlX2Vu dHJ5ICpmZGUgQVRUUklCVVRFX1VOVVNFRCkgew0KDQpBbGwgcmVtYWluaW5n IGNvbW1lbnRzIGFyZSBhZ2FpbnN0IHRoaXMgZnVuY3Rpb24gd2hpY2ggd2Fz IHJlbW92ZWQuICBUaGUgY29tcGFjdCBvcGNvZGVzIGFyZQ0KTm93IGdlbmVy YXRlZCBieSBnY2MgdXNpbmcgYSAuY2ZpX2ZkZV9kYXRhIGRpcmVjdGl2ZS4N Cg0KDQo= --_003_FD3DCEAC5B03E9408544A1E416F11242012EAC2AE0NAMBX01mgcmen_ Content-Type: application/octet-stream; name="compact-eh.cl" Content-Description: compact-eh.cl Content-Disposition: attachment; filename="compact-eh.cl"; size=5872; creation-date="Tue, 04 Feb 2014 21:54:25 GMT"; modification-date="Tue, 04 Feb 2014 21:50:56 GMT" Content-Transfer-Encoding: base64 Content-length: 7963 MjAxNC0wMi0wMyAgQ2F0aGVyaW5lIE1vb3JlICA8Y2xtQGNvZGVzb3VyY2Vy eS5jb20+DQoJICAgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5j b20+DQoJICAgIEJlcm5kIFNjaG1pZHQgPGJlcm5kc0Bjb2Rlc291cmNlcnku Y29tPg0KDQoJYmZkLw0KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLg0KCSog ZWxmLWJmZC5oIChlaF9mcmFtZV9oZHJfaW5mbykgQWRkIGFsbG9jYXRlZF9l bnRyaWVzDQoJYW5kIGVudHJpZXMuDQoJKGVsZl9iYWNrZW5kX2RhdGEpOiBB ZGQgY29tcGFjdF9laF9lbmNvZGluZy4NCgkoYmZkX2VsZl9zZWN0aW9uX2Rh dGEpOiBBZGQgZWhfZnJhbWVfZW50cnkuDQoJKGVsZl9zZWN0aW9uX2VoX2Zy YW1lX2VudHJ5KTogRGVmaW5lLg0KCShiZmRfZWxmX3BhcnNlX2VoX2ZyYW1l X2VudHJ5KTogRGVjbGFyZS4NCgkoYmZkX2VsZl9lbmRfZWhfZnJhbWVfcGFy c2luZyk6IFJldHVybiB0eXBlIGlzIG5vdyBiZmRfYm9vbGVhbi4NCgkoYmZk X2VsZl93cml0ZV9zZWN0aW9uX2VoX2ZyYW1lX2VudHJ5KTogRGVjbGFyZS4N CgkoX2JmZF9lbGZfZWhfZnJhbWVfZW50cnlfcHJlc2VudCk6IERlY2xhcmUu DQoJKiBlbGYtZWgtZnJhbWUuYyAoYmZkX2VsZl9yZW1lbWJlcl9laF9mcmFt ZV9lbnRyeSk6IE5ldyBmdW5jdGlvbi4NCgkoYmZkX2VsZl9wYXJzZV9laF9m cmFtZV9lbnRyeSk6IE5ldyBmdW5jdGlvbi4NCgkoY21wX2VoX2ZyYW1lX2hk cik6IE5ldyBmdW5jdGlvbi4NCgkoYWRkX2VoX2ZyYW1lX2hkcl90ZXJtaW5h dG9yKTogTmV3IGZ1bmN0aW9uLg0KCShfYmZkX2VsZl9laF9mcmFtZV9lbnRy eV9wcmVzZW50KTogTmV3IGZ1bmN0aW9uLg0KCShfYmZkX2VsZl9lbmRfZWhf ZnJhbWVfcGFyc2luZ2kpOiBNb2RpZnkgZm9yIENvbXBhY3QgRUggc3VwcG9y dC4NCgkoX2JmZF9lbGZfZGlzY2FyZF9zZWN0aW9uX2VoX2ZyYW1lX2hkcik6 IExpa2V3aXNlLg0KCShfYmZkX2VsZl9tYXliZV9zdHJpcF9laF9mcmFtZV9o ZHIpOiBMaWtld2lzZS4NCgkoX2JmZF9lbGZfd3JpdGVfc2VjdGlvbl9laF9m cmFtZV9lbnRyeSk6IE5ldyBmdW5jdGlvbi4NCgkoX2JmZF9lbGZfZml4dXBf ZWhfZnJhbWVfaGRyKTogTmV3IGZ1bmN0aW9uLg0KCShfYmZkX2VsZl93cml0 ZV9zZWN0aW9uX2VoX2ZyYW1lX2hkcik6IE1vZGlmeSBmb3IgQ29tcGFjdCBF SCBzdXBwb3J0Lg0KCSogZWxmbGluay5jIChlbGZfbGlua19pbnB1dF9iZmQp OiBTdXBwb3J0IFNFQ19JTkZPX1RZUEVfRUhfRlJBTUVfRU5UUlkuDQoJKGVs Zl9zZWN0aW9uX2lnbm9yZV9kaXNjYXJkZWRfcmVsb2NzKTogTGlrZXdpc2Uu DQoJKGJmZF9lbGZfZmluYWxfbGluayk6IENhbGwgX2JmZF9lbGZfZml4dXBf ZWhfZnJhbWVfaGRyLg0KCShfYmZkX2VsZl9nY19tYXJrKTogU3VwcG9ydCBD b21wYWN0IEVILg0KCShiZmRfZWxmX2djX3NlY3Rpb25zKTogTGlrZXdpc2Uu DQoJKGJmZF9lbGZfZGlzY2FyZF9pbmZvKTogTGlrZXdpc2UuDQoJKiBlbGZ4 eC1taXBzLmM6IEluY2x1ZGUgZHdhcmYyLmguDQoJKG1pcHNfZWxmX2xpbmtf aGFzaF90YWJsZSk6IEFkZCBlaF9yZWxvY190eXBlLg0KCShtaXBzX2VsZl9y ZWFsX3JlbG9jKTogTmV3IGZ1bmN0aW9uLg0KCShtaXBzX2VsZl9jYWxjdWxh dGVfcmVsb2NhdGlvbik6IEludm9rZSBtaXBzX2VsZl9yZWFsX3JlbG9jLg0K CUhhbmRsZSBSX01JUFNfRUguDQoJKF9iZmRfbWlwc19lbGZfY2hlY2tfcmVs b2NzKTogTGlrZXdpc2UuDQoJKG1pcHNfZWxmX2NyZWF0ZV9keW5hbWljX3Jl bG9jYXRpb24pOiBJbnZva2UgbWlwc19lbGZfcmVhbF9yZWxvYy4NCgkobWlw c19lbGZfYWRqdXN0X2FkZGVuZCk6IExpa2V3aXNlLg0KCShfYmZkX21pcHNf ZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4NCgkoX2JmZF9taXBz X2VsZl9pbnNuMzIpOiBSZW5hbWVkIHRvLi4uDQoJKF9iZmRfbWlwc19lbGZf bGlua2VyX2ZsYWdzKTogLi4uIHRoaXMuDQoJKF9iZmRfbWlwc19lbGZfY29t cGFjdF9laF9lbmNvZGluZyk6IE5ldyBmdW5jdGlvbi4NCgkqIGVsZnh4LW1p cHMuaCAoX2JmZF9taXBzX2VsZl9pbnNuMzIpOiBEZWxldGUgZGVjbGFyYXRp b24uDQoJKF9iZmRfbWlwc19lbGZfbGlua2VyX2ZsYWdzKTogTmV3IGRlY2xh cmF0aW9uLg0KCShfYmZkX21pcHNfZWxmX2NvbXBhY3RfZWhfZW5jb2Rpbmcp OiBOZXcgZGVjbGFyYXRpb24uDQoJKGVsZl9iYWNrZW5kX2NvbXBhY3RfZWhf ZW5jb2RpbmcpOiBEZWZpbmUuDQoJKiBlbGZ4eC10YXJnZXQuaCAoZWxmX2Jh Y2tlbmRfY29tcGFjdF9laF9lbmNvZGluZyk6IFByb3ZpZGUNCglkZWZhdWx0 IGRlZmluaXRpb24uDQoJKGVsZl9iYWNrZW5kX2RhdGEpOiBBZGQgZWxmX2Jh Y2tlbmRfY29tcGFjdF9laF9lbmNvZGluZy4NCgkqIHNlY3Rpb24uYyAoU0VD X0lORk9fVFlQRV9FSF9GUkFNRV9FTlRSWSk6IERlZmluZS4NCg0KCWdhcy8N CgkqIGNvbmZpZy90Yy1taXBzLmMgKHNfZm9yY2VfZ3B3b3JkKTogTmV3IGZ1 bmN0aW9uLg0KCShtaXBzX3BzZXVkb190YWJsZSk6IE5ldyBlbnRyeSAiZm9y Y2VncHdvcmQiLg0KCShtZF9hcHBseV9maXgpOiBIYW5kbGUgQkZEX1JFTE9D X05PTkUuDQoJKHNfZWh3b3JkKTogVXNlIEJGRF9SRUxPQ18zMl9QQ1JFTC4N CgkobWlwc19jZmlfcmVsb2NfZm9yX2VuY29kaW5nKTogTmV3IGZ1bmN0aW9u Lg0KCSogY29uZmlnL3RjLW1pcHMuaCAoRFdBUkYyX0ZERV9SRUxPQ19TSVpF KTogUmVkZWZpbmUuDQoJKERXQVJGMl9GREVfUkVMT0NfRU5DT0RJTkcpOiBE ZWZpbmUuDQoJKiBkb2MvYXMudGV4aW5mbzogTmV3IGRvY3VtZW50YXRpb24g Zm9yIENvbXBhY3QgRUggZXh0ZW5zaW9ucy4NCgkqIGR3MmdlbmNmaS5jIChF SF9GUkFNRV9MSU5LT05DRSk6IERlZmluZS4NCgkodGNfY2ZpX3NwZWNpYWxf ZW5jb2RpbmcpOiBEZWZpbmUuDQoJKEZSQU1FX05BTUUpOiBEZWZpbmUuDQoJ KGNvbXBhY3RfZWgpOiBEZWNsYXJlIG9yIGRlZmluZS4NCgkob3V0X29uZSwg b3V0X3R3bywgb3V0X2ZvdXIpOiBOZXcgZnVuY3Rpb25zLg0KCShvdXRfdWxl YjEyOCwgb3V0X3NsZWIxMjgpOiBOZXcgZnVuY3Rpb25zLg0KCShlbmNvZGlu Z19zaXplKTogTmV3IGZ1bmN0aW9uLg0KCShlbWl0X2V4cHJfZW5jb2RlZCk6 IE5ldyBmdW5jdGlvbi4NCgkoZ2V0X2RlYnVnc2VnX25hbWUpOiBTdXBwb3J0 IENvbXBhY3QgRUguDQoJKGFsbG9jX2RlYnVnc2VnX2l0ZW0pOiBMaWtld2lz ZS4NCgkoaXNfbm93X2xpbmtvbmNlX3NlZ21lbnQpOiBMaWtld2lzZS4NCgko bWFrZV9kZWJ1Z19zZWcpOiBMaWtld2lzZS4NCgkoY2llX2VudHJ5KTogQWRk IGZkZV9lbmNvZGluZy4NCgkoZG90X2NmaV9mZGVfZGF0YSwgZG90X2NmaV9w ZXJzb25hbGl0eSwgZG90X2NmaV9pbmxpbmUpOiBOZXcgZnVuY3Rpb25zLg0K CShjZmlfcHNldWRvX3RhYmxlKTogImNmaV9mZGVfZGF0YSIsICJjZmlfcGVy c29uYWxpdHlfaWQiLA0KCSJjZmlfaW5saW5lX2xzZGEiLCAiY2ZpX2VwaWxv Z3VlX2JlZ2luIjogTmV3IGVudHJpZXMuDQoJKGRvdF9jZmkpOiBTdXBwb3J0 IENvbXBhY3QgRUguDQoJKGRvdF9jZmlfcGVyc29uYWxpdHkpOiBMaWtld2lz ZS4NCgkoZG90X2NmaV9sc2RhKTogTGlrZXdpc2UuDQoJKGRvdF9jZmlfc2Vj dGlvbnMpOiBMaWtld2lzZS4NCgkoZG90X2NmaV92YWxfZW5jb2RlZF9hZGRy KTogTGlrZXdpc2UuDQoJKGRvdF9jZmlfc3RhcnRwcm9jKTogTGlrZXdpc2Uu DQoJKGRvdF9jZmlfZW5kcHJvYyk6IExpa2V3aXNlLg0KCShnZXRfY2ZpX3Nl Zyk6IExpa2V3aXNlLg0KCShvdXRwdXRfY29tcGFjdF91bndpbmRfZGF0YSk6 IE5ldyBmdW5jdGlvbi4NCiAJKG91dHB1dF9jZmlfaW5zbik6IFN1cHBvcnQg Q29tcGFjdCBFSC4NCgkob3V0cHV0X2NpZSk6IExpa2V3aXNlLg0KCShvdXRw dXRfZmRlKTogTGlrZXdpc2UuDQoJKHNlbGVjdF9jaWVfZm9yX2ZkZSk6IExp a2V3aXNlLg0KCShjZmlfZW1pdF9laF9oZWFkZXIpOiBMaWtld2lzZS4NCgko b3V0cHV0X2VoX2hlYWRlcik6IExpa2V3aXNlLg0KCShjZmlfZmluaXNoKTog TGlrZXdpc2UuDQoJKiBkdzJnZW5jZmkuaCAoU1VQUE9SVF9DT01QQUNUX0VI KTogRGVmaW5lLg0KCShNVUxUSVBMRV9GUkFNRV9TRUNUSU9OUyk6IERlZmlu ZS4NCgkoRUhfQ09NUEFDVF9MRUdBQ1ksIEVIX0NPTVBBQ1RfSU5MSU5FLA0K CUVIX0NPTVBBQ1RfT1VUTElORSwgRUhfQ09NUEFDVF9PVVRMSU5FX0RPTkUs DQoJRUhfQ09NUEFDVF9IQVNfTFNEQSk6IE5ldy4NCgkoZmRlX2VudHJ5KTog QWRkIHBlcnNvbmFsaXR5X2lkLCBlaF9oZWFkZXJfdHlwZSwNCgllaF9kYXRh X3NpemUsIGVoX2RhdGEsIGVsX2xvYywgc2VjdGlvbnMuDQoJKENGSV9FUElM T0dVRV9FTkQpOiBEZWZpbmUuIA0KDQoJZ2FzL3Rlc3RzdWl0ZS8NCgkqIGdh cy9taXBzL2NvbXBhY3QtZWgtMS5zOiBOZXcgdGVzdC4NCgkqIGdhcy9taXBz L2NvbXBhY3QtZWgtZWwtMS5zOiBOZXcgdGVzdC4NCgkqIGdhcy9taXBzL2Nv bXBhY3QtZWgtMS5kOiBOZXcgdGVzdCBvdXRwdXQuDQoJKiBnYXMvbWlwcy9j b21wYWN0LWVoLTIuczogTmV3IHRlc3QuDQoJKiBnYXMvbWlwcy9jb21wYWN0 LWVoLWVsLTIuczogTmV3IHRlc3QuDQoJKiBnYXMvbWlwcy9jb21wYWN0LWVo LTIuZDogTmV3IHRlc3Qgb3V0cHV0Lg0KCSogZ2FzL21pcHMvY29tcGFjdC1l aC0zLnM6IE5ldyB0ZXN0Lg0KCSogZ2FzL21pcHMvY29tcGFjdC1laC1lbC0z LnM6IE5ldyB0ZXN0Lg0KCSogZ2FzL21pcHMvY29tcGFjdC1laC0zLmQ6IE5l dyB0ZXN0IG91dHB1dC4NCgkqIGdhcy9taXBzL2NvbXBhY3QtZWgtNC5zOiBO ZXcgdGVzdC4NCgkqIGdhcy9taXBzL2NvbXBhY3QtZWgtZWwtNC5zOiBOZXcg dGVzdC4NCgkqIGdhcy9taXBzL2NvbXBhY3QtZWgtNC5kOiBOZXcgdGVzdCBv dXRwdXQuDQoJKiBnYXMvbWlwcy9jb21wYWN0LWVoLTUuczogTmV3IHRlc3Qu DQoJKiBnYXMvbWlwcy9jb21wYWN0LWVoLWVsLTUuczogTmV3IHRlc3QuDQoJ KiBnYXMvbWlwcy9jb21wYWN0LWVoLTUuZDogTmV3IHRlc3Qgb3V0cHV0Lg0K CSogZ2FzL21pcHMvY29tcGFjdC1laC02LnM6IE5ldyB0ZXN0Lg0KCSogZ2Fz L21pcHMvY29tcGFjdC1laC1lbC02LnM6IE5ldyB0ZXN0Lg0KCSogZ2FzL21p cHMvY29tcGFjdC1laC02LmQ6IE5ldyB0ZXN0IG91dHB1dC4NCgkqIGdhcy9t aXBzL2NvbXBhY3QtZWgtNy5zOiBOZXcgdGVzdC4NCgkqIGdhcy9taXBzL2Nv bXBhY3QtZWgtZWwtNy5zOiBOZXcgdGVzdC4NCgkqIGdhcy9taXBzL2NvbXBh Y3QtZWgtNy5kOiBOZXcgdGVzdCBvdXRwdXQuDQoJKiBnYXMvbWlwcy9jb21w YWN0LWVoLWVycjEuczogTmV3IHRlc3QuDQoJKiBnYXMvbWlwcy9jb21wYWN0 LWVoLWVycjEubDogTmV3IHRlc3Qgb3V0cHV0Lg0KCSogZ2FzL21pcHMvY29t cGFjdC1laC1lcnIyLnM6IE5ldyB0ZXN0Lg0KCSogZ2FzL21pcHMvY29tcGFj dC1laC1lcnIyLmw6IE5ldyB0ZXN0IG91dHB1dC4NCgkqIGdhcy9taXBzL2Vo d29yZC5kOiBVcGRhdGUgb3V0cHV0Lg0KCSogZ2FzL21pcHMvbWlwcy5leHA6 IFJ1biBuZXcgdGVzdHMuDQoNCglpbmNsdWRlLw0KCSogYmZkbGluay5oIChi ZmRfbGlua19pbmZvKTogVXBkYXRlIHNpemUgb2YgZWhfZnJhbWVfaGRyLg0K DQoJbGQvDQoJKiBlbXVsdGVtcGwvZWxmMzIuZW0gKGdsZCR7RU1VTEFUSU9O X05BTUV9X2FmdGVyX29wZW4pOiANCglBZGQgQ29tcGFjdCBFSCBzdXBwb3J0 Lg0KCSogZW11bHRlbXBsL21pcHNlbGYuZW0gKG1pcHNfY3JlYXRlX291dHB1 dF9zZWN0aW9uX3N0YXRlbWVudHMpOg0KCUFkZCBDb21wYWN0IEVIIHN1cHBv cnQuDQoJKHBjcmVsLWVoLXJlbG9jKTogTmV3IG9wdGlvbi4NCgkoT1BUSU9O X1BDUkVMX0VIX1JFTE9DKTogTmV3Lg0KCSogbGQudGV4aW5mbzogRG9jdW1l bnQgLS1wY3JlbC1laC1yZWxvYy4NCg== --_003_FD3DCEAC5B03E9408544A1E416F11242012EAC2AE0NAMBX01mgcmen_ Content-Type: application/octet-stream; name="compact-eh.patch" Content-Description: compact-eh.patch Content-Disposition: attachment; filename="compact-eh.patch"; size=108912; creation-date="Tue, 04 Feb 2014 21:54:23 GMT"; modification-date="Tue, 04 Feb 2014 21:50:56 GMT" Content-Transfer-Encoding: base64 Content-length: 147637 ZGlmZiAtLWdpdCBhL2JmZC9iZmQtaW4yLmggYi9iZmQvYmZkLWluMi5oDQpp bmRleCAzMzc5MmY0Li4yMzhhYWU0IDEwMDY0NA0KLS0tIGEvYmZkL2JmZC1p bjIuaA0KKysrIGIvYmZkL2JmZC1pbjIuaA0KQEAgLTE0MzgsNiArMTQzOCw3 IEBAIHR5cGVkZWYgc3RydWN0IGJmZF9zZWN0aW9uDQogI2RlZmluZSBTRUNf SU5GT19UWVBFX0VIX0ZSQU1FICAzDQogI2RlZmluZSBTRUNfSU5GT19UWVBF X0pVU1RfU1lNUyA0DQogI2RlZmluZSBTRUNfSU5GT19UWVBFX1RBUkdFVCAg ICA1DQorI2RlZmluZSBTRUNfSU5GT19UWVBFX0VIX0ZSQU1FX0VOVFJZIDYN CiANCiAgIC8qIE5vbnplcm8gaWYgdGhpcyBzZWN0aW9uIHVzZXMgUkVMQSBy ZWxvY2F0aW9ucywgcmF0aGVyIHRoYW4gUkVMLiAgKi8NCiAgIHVuc2lnbmVk IGludCB1c2VfcmVsYV9wOjE7DQpkaWZmIC0tZ2l0IGEvYmZkL2VsZi1iZmQu aCBiL2JmZC9lbGYtYmZkLmgNCmluZGV4IDBhYWI1ZmEuLmI3ZDdkZjAgMTAw NjQ0DQotLS0gYS9iZmQvZWxmLWJmZC5oDQorKysgYi9iZmQvZWxmLWJmZC5o DQpAQCAtMzgxLDggKzM4MSwxMCBAQCBzdHJ1Y3QgZWhfZnJhbWVfaGRyX2lu Zm8NCiB7DQogICBzdHJ1Y3QgaHRhYiAqY2llczsNCiAgIGFzZWN0aW9uICpo ZHJfc2VjOw0KLSAgdW5zaWduZWQgaW50IGZkZV9jb3VudCwgYXJyYXlfY291 bnQ7DQorICB1bnNpZ25lZCBpbnQgZmRlX2NvdW50LCBhcnJheV9jb3VudCwg YWxsb2NhdGVkX2VudHJpZXM7DQogICBzdHJ1Y3QgZWhfZnJhbWVfYXJyYXlf ZW50ICphcnJheTsNCisgIC8qIGVoX2ZyYW1lX2VudHJ5IGZyYWdtZW50cy4g ICovDQorICBhc2VjdGlvbiAqKmVudHJpZXM7DQogICAvKiBUUlVFIGlmIHdl IHNob3VsZCB0cnkgdG8gbWVyZ2UgQ0lFcyBiZXR3ZWVuIGlucHV0IHNlY3Rp b25zLiAgKi8NCiAgIGJmZF9ib29sZWFuIG1lcmdlX2NpZXM7DQogICAvKiBU UlVFIGlmIGFsbCAuZWhfZnJhbWVzIGhhdmUgYmVlbiBwYXJzZC4gICovDQpA QCAtMTI3NSw2ICsxMjc3LDkgQEAgc3RydWN0IGVsZl9iYWNrZW5kX2RhdGEN CiAgICAgIG9yIGdpdmUgYW4gZXJyb3IgYW5kIHJldHVybiBGQUxTRS4gICov DQogICBiZmRfYm9vbGVhbiAoKm9ial9hdHRyc19oYW5kbGVfdW5rbm93bikg KGJmZCAqLCBpbnQpOw0KIA0KKyAgLyogRW5jb2RpbmcgdXNlZCBmb3IgY29t cGFjdCBFSCB0YWJsZXMuICAqLw0KKyAgaW50ICgqY29tcGFjdF9laF9lbmNv ZGluZykgKHN0cnVjdCBiZmRfbGlua19pbmZvICopOw0KKw0KICAgLyogVGhp cyBpcyBub24temVybyBpZiBzdGF0aWMgVExTIHNlZ21lbnRzIHJlcXVpcmUg YSBzcGVjaWFsIGFsaWdubWVudC4gICovDQogICB1bnNpZ25lZCBzdGF0aWNf dGxzX2FsaWdubWVudDsNCiANCkBAIC0xNDIwLDYgKzE0MjUsOSBAQCBzdHJ1 Y3QgYmZkX2VsZl9zZWN0aW9uX2RhdGENCiAgICAgIGZpZWxkIGFjdHMgYXMg YSBjaGFpbiBwb2ludGVyLiAgKi8NCiAgIHN0cnVjdCBlaF9jaWVfZmRlICpm ZGVfbGlzdDsNCiANCisgIC8qIExpbmsgZnJvbSBhIHRleHQgc2VjdGlvbiB0 byBpdHMgLmVoX2ZyYW1lX2VudHJ5IHNlY3Rpb24uICAqLw0KKyAgYXNlY3Rp b24gKmVoX2ZyYW1lX2VudHJ5Ow0KKw0KICAgLyogQSBwb2ludGVyIHVzZWQg Zm9yIHZhcmlvdXMgc2VjdGlvbiBvcHRpbWl6YXRpb25zLiAgKi8NCiAgIHZv aWQgKnNlY19pbmZvOw0KIH07DQpAQCAtMTQzMyw2ICsxNDQxLDcgQEAgc3Ry dWN0IGJmZF9lbGZfc2VjdGlvbl9kYXRhDQogI2RlZmluZSBlbGZfbmV4dF9p bl9ncm91cChzZWMpCShlbGZfc2VjdGlvbl9kYXRhKHNlYyktPm5leHRfaW5f Z3JvdXApDQogI2RlZmluZSBlbGZfZmRlX2xpc3Qoc2VjKQkoZWxmX3NlY3Rp b25fZGF0YShzZWMpLT5mZGVfbGlzdCkNCiAjZGVmaW5lIGVsZl9zZWNfZ3Jv dXAoc2VjKQkoZWxmX3NlY3Rpb25fZGF0YShzZWMpLT5zZWNfZ3JvdXApDQor I2RlZmluZSBlbGZfc2VjdGlvbl9laF9mcmFtZV9lbnRyeShzZWMpCShlbGZf c2VjdGlvbl9kYXRhKHNlYyktPmVoX2ZyYW1lX2VudHJ5KQ0KIA0KICNkZWZp bmUgeHZlY19nZXRfZWxmX2JhY2tlbmRfZGF0YSh4dmVjKSBcDQogICAoKGNv bnN0IHN0cnVjdCBlbGZfYmFja2VuZF9kYXRhICopICh4dmVjKS0+YmFja2Vu ZF9kYXRhKQ0KQEAgLTE5NjQsOSArMTk3MywxMiBAQCBleHRlcm4gdm9pZCBf YmZkX2VsZl9zdHJ0YWJfZmluYWxpemUNCiANCiBleHRlcm4gdm9pZCBfYmZk X2VsZl9iZWdpbl9laF9mcmFtZV9wYXJzaW5nDQogICAoc3RydWN0IGJmZF9s aW5rX2luZm8gKmluZm8pOw0KK2V4dGVybiB2b2lkIF9iZmRfZWxmX3BhcnNl X2VoX2ZyYW1lX2VudHJ5DQorICAoYmZkICosIHN0cnVjdCBiZmRfbGlua19p bmZvICosIGFzZWN0aW9uICosIHN0cnVjdCBlbGZfcmVsb2NfY29va2llICos DQorICAgYmZkX2Jvb2xlYW4pOw0KIGV4dGVybiB2b2lkIF9iZmRfZWxmX3Bh cnNlX2VoX2ZyYW1lDQogICAoYmZkICosIHN0cnVjdCBiZmRfbGlua19pbmZv ICosIGFzZWN0aW9uICosIHN0cnVjdCBlbGZfcmVsb2NfY29va2llICopOw0K LWV4dGVybiB2b2lkIF9iZmRfZWxmX2VuZF9laF9mcmFtZV9wYXJzaW5nDQor ZXh0ZXJuIGJmZF9ib29sZWFuIF9iZmRfZWxmX2VuZF9laF9mcmFtZV9wYXJz aW5nDQogICAoc3RydWN0IGJmZF9saW5rX2luZm8gKmluZm8pOw0KIA0KIGV4 dGVybiBiZmRfYm9vbGVhbiBfYmZkX2VsZl9kaXNjYXJkX3NlY3Rpb25fZWhf ZnJhbWUNCkBAIC0xOTc4LDEwICsxOTkwLDE1IEBAIGV4dGVybiBiZmRfdm1h IF9iZmRfZWxmX2VoX2ZyYW1lX3NlY3Rpb25fb2Zmc2V0DQogICAoYmZkICos IHN0cnVjdCBiZmRfbGlua19pbmZvICosIGFzZWN0aW9uICosIGJmZF92bWEp Ow0KIGV4dGVybiBiZmRfYm9vbGVhbiBfYmZkX2VsZl93cml0ZV9zZWN0aW9u X2VoX2ZyYW1lDQogICAoYmZkICosIHN0cnVjdCBiZmRfbGlua19pbmZvICos IGFzZWN0aW9uICosIGJmZF9ieXRlICopOw0KK2V4dGVybiBiZmRfYm9vbGVh biBfYmZkX2VsZl93cml0ZV9zZWN0aW9uX2VoX2ZyYW1lX2VudHJ5DQorICAo YmZkICosIGFzZWN0aW9uICosIGJmZF9ieXRlICopOw0KK2V4dGVybiB2b2lk IF9iZmRfZWxmX2ZpeHVwX2VoX2ZyYW1lX2hkciAoc3RydWN0IGJmZF9saW5r X2luZm8gKik7DQogZXh0ZXJuIGJmZF9ib29sZWFuIF9iZmRfZWxmX3dyaXRl X3NlY3Rpb25fZWhfZnJhbWVfaGRyDQogICAoYmZkICosIHN0cnVjdCBiZmRf bGlua19pbmZvICopOw0KIGV4dGVybiBiZmRfYm9vbGVhbiBfYmZkX2VsZl9l aF9mcmFtZV9wcmVzZW50DQogICAoc3RydWN0IGJmZF9saW5rX2luZm8gKik7 DQorZXh0ZXJuIGJmZF9ib29sZWFuIF9iZmRfZWxmX2VoX2ZyYW1lX2VudHJ5 X3ByZXNlbnQNCisgIChzdHJ1Y3QgYmZkX2xpbmtfaW5mbyAqKTsNCiBleHRl cm4gYmZkX2Jvb2xlYW4gX2JmZF9lbGZfbWF5YmVfc3RyaXBfZWhfZnJhbWVf aGRyDQogICAoc3RydWN0IGJmZF9saW5rX2luZm8gKik7DQogDQpkaWZmIC0t Z2l0IGEvYmZkL2VsZi1laC1mcmFtZS5jIGIvYmZkL2VsZi1laC1mcmFtZS5j DQppbmRleCA0YjZlOGVhLi40Yzk0YzEwIDEwMDY0NA0KLS0tIGEvYmZkL2Vs Zi1laC1mcmFtZS5jDQorKysgYi9iZmQvZWxmLWVoLWZyYW1lLmMNCkBAIC00 NjIsNiArNDYyLDExOSBAQCBfYmZkX2VsZl9iZWdpbl9laF9mcmFtZV9wYXJz aW5nIChzdHJ1Y3QgYmZkX2xpbmtfaW5mbyAqaW5mbykNCiAgIGhkcl9pbmZv LT5tZXJnZV9jaWVzID0gIWluZm8tPnJlbG9jYXRhYmxlOw0KIH0NCiANCisv KiBBZGQgYSAuZWhfZnJhbWVfZW50cnkgc2VjdGlvbi4gICovDQorDQorc3Rh dGljIHZvaWQNCitiZmRfZWxmX3JlbWVtYmVyX2VoX2ZyYW1lX2VudHJ5IChz dHJ1Y3QgZWhfZnJhbWVfaGRyX2luZm8gKmhkcl9pbmZvLA0KKwkJCQkgYXNl Y3Rpb24gKnNlYykNCit7DQorICBpZiAoaGRyX2luZm8tPmFycmF5X2NvdW50 ID09IGhkcl9pbmZvLT5hbGxvY2F0ZWRfZW50cmllcykNCisgICAgew0KKyAg ICAgIGlmIChoZHJfaW5mby0+YWxsb2NhdGVkX2VudHJpZXMgPT0gMCkNCisJ ew0KKwkgIGhkcl9pbmZvLT5hbGxvY2F0ZWRfZW50cmllcyA9IDI7DQorCSAg aGRyX2luZm8tPmVudHJpZXMgPSBiZmRfbWFsbG9jIChoZHJfaW5mby0+YWxs b2NhdGVkX2VudHJpZXMNCisJCQkJCSAgKiBzaXplb2YoaGRyX2luZm8tPmVu dHJpZXNbMF0pKTsNCisJfQ0KKyAgICAgIGVsc2UNCisJew0KKwkgIGhkcl9p bmZvLT5hbGxvY2F0ZWRfZW50cmllcyAqPSAyOw0KKwkgIGhkcl9pbmZvLT5l bnRyaWVzID0gYmZkX3JlYWxsb2MgKGhkcl9pbmZvLT5lbnRyaWVzLA0KKwkg ICAgaGRyX2luZm8tPmFsbG9jYXRlZF9lbnRyaWVzICogc2l6ZW9mKGhkcl9p bmZvLT5lbnRyaWVzWzBdKSk7DQorCX0NCisNCisgICAgICBCRkRfQVNTRVJU IChoZHJfaW5mby0+ZW50cmllcyk7DQorICAgIH0NCisNCisgIGhkcl9pbmZv LT5lbnRyaWVzW2hkcl9pbmZvLT5hcnJheV9jb3VudCsrXSA9IHNlYzsNCit9 DQorDQorLyogUGFyc2UgYSAuZWhfZnJhbWVfZW50cnkgc2VjdGlvbi4gIEZp Z3VyZSBvdXQgd2hpY2ggdGV4dCBzZWN0aW9uIGl0DQorICAgcmVmZXJlbmNl cy4gICovDQorDQordm9pZA0KK19iZmRfZWxmX3BhcnNlX2VoX2ZyYW1lX2Vu dHJ5IChiZmQgKmFiZmQsIHN0cnVjdCBiZmRfbGlua19pbmZvICppbmZvLA0K KwkJCSAgICAgICBhc2VjdGlvbiAqc2VjLCBzdHJ1Y3QgZWxmX3JlbG9jX2Nv b2tpZSAqY29va2llLA0KKwkJCSAgICAgICBiZmRfYm9vbGVhbiByZW1lbWJl cikNCit7DQorICBzdHJ1Y3QgZWxmX2xpbmtfaGFzaF90YWJsZSAqaHRhYjsN CisgIHN0cnVjdCBlaF9mcmFtZV9oZHJfaW5mbyAqaGRyX2luZm87DQorICB1 bnNpZ25lZCBsb25nIHJfc3ltbmR4Ow0KKyAgc3RydWN0IGVsZl9saW5rX2hh c2hfZW50cnkgKmg7DQorICBhc2VjdGlvbiAqdGV4dF9zZWM7DQorDQorICBo dGFiID0gZWxmX2hhc2hfdGFibGUgKGluZm8pOw0KKyAgaGRyX2luZm8gPSAm aHRhYi0+ZWhfaW5mbzsNCisNCisgIGlmIChzZWMtPnNlY19pbmZvX3R5cGUg PT0gU0VDX0lORk9fVFlQRV9FSF9GUkFNRV9FTlRSWSkNCisgICAgew0KKyAg ICAgIGlmICghKHNlYy0+ZmxhZ3MgJiBTRUNfRVhDTFVERSkgJiYgcmVtZW1i ZXIpDQorCWJmZF9lbGZfcmVtZW1iZXJfZWhfZnJhbWVfZW50cnkgKGhkcl9p bmZvLCBzZWMpOw0KKyAgICAgIHJldHVybjsNCisgICAgfQ0KKw0KKyAgaWYg KHNlYy0+c2l6ZSA9PSAwDQorICAgICAgfHwgc2VjLT5zZWNfaW5mb190eXBl ICE9IFNFQ19JTkZPX1RZUEVfTk9ORSkNCisgICAgew0KKyAgICAgIHJldHVy bjsNCisgICAgfQ0KKw0KKyAgaWYgKHNlYy0+b3V0cHV0X3NlY3Rpb24gJiYg YmZkX2lzX2Fic19zZWN0aW9uIChzZWMtPm91dHB1dF9zZWN0aW9uKSkNCisg ICAgew0KKyAgICAgIC8qIEF0IGxlYXN0IG9uZSBvZiB0aGUgc2VjdGlvbnMg aXMgYmVpbmcgZGlzY2FyZGVkIGZyb20gdGhlDQorCSBsaW5rLCBzbyB3ZSBz aG91bGQganVzdCBpZ25vcmUgdGhlbS4gICovDQorICAgICAgcmV0dXJuOw0K KyAgICB9DQorDQorICBpZiAoY29va2llLT5yZWwgPT0gY29va2llLT5yZWxl bmQpDQorICAgIGdvdG8gZmFpbDsNCisNCisgIC8qIFRoZSBmaXJzdCByZWxv Y2F0aW9uIGlzIHRoZSBmdW5jdGlvbiBzdGFydC4gICovDQorICByX3N5bW5k eCA9IGNvb2tpZS0+cmVsLT5yX2luZm8gPj4gY29va2llLT5yX3N5bV9zaGlm dDsNCisgIGlmIChyX3N5bW5keCA9PSBTVE5fVU5ERUYpDQorICAgIGdvdG8g ZmFpbDsNCisNCisgIGlmIChyX3N5bW5keCA+PSBjb29raWUtPmxvY3N5bWNv dW50DQorICAgICAgfHwgRUxGX1NUX0JJTkQgKGNvb2tpZS0+bG9jc3ltc1ty X3N5bW5keF0uc3RfaW5mbykgIT0gU1RCX0xPQ0FMKQ0KKyAgICB7DQorICAg ICAgaCA9IGNvb2tpZS0+c3ltX2hhc2hlc1tyX3N5bW5keCAtIGNvb2tpZS0+ ZXh0c3ltb2ZmXTsNCisgICAgICB3aGlsZSAoaC0+cm9vdC50eXBlID09IGJm ZF9saW5rX2hhc2hfaW5kaXJlY3QNCisgICAgICAgICAgICAgfHwgaC0+cm9v dC50eXBlID09IGJmZF9saW5rX2hhc2hfd2FybmluZykNCisgICAgICAgIGgg PSAoc3RydWN0IGVsZl9saW5rX2hhc2hfZW50cnkgKikgaC0+cm9vdC51Lmku bGluazsNCisNCisgICAgICBpZiAoaC0+cm9vdC50eXBlICE9IGJmZF9saW5r X2hhc2hfZGVmaW5lZA0KKyAgICAgICAgICAmJiBoLT5yb290LnR5cGUgIT0g YmZkX2xpbmtfaGFzaF9kZWZ3ZWFrKQ0KKwlnb3RvIGZhaWw7DQorDQorICAg ICAgdGV4dF9zZWMgPSBoLT5yb290LnUuZGVmLnNlY3Rpb247DQorICAgIH0N CisgIGVsc2UNCisgICAgew0KKyAgICAgIEVsZl9JbnRlcm5hbF9TeW0gKmlz eW07DQorDQorICAgICAgLyogTmVlZCB0bzogZ2V0IHRoZSBzeW1ib2w7IGdl dCB0aGUgc2VjdGlvbi4gICovDQorICAgICAgaXN5bSA9ICZjb29raWUtPmxv Y3N5bXNbcl9zeW1uZHhdOw0KKyAgICAgIHRleHRfc2VjID0gYmZkX3NlY3Rp b25fZnJvbV9lbGZfaW5kZXggKGFiZmQsIGlzeW0tPnN0X3NobmR4KTsNCisg ICAgfQ0KKw0KKyAgaWYgKHRleHRfc2VjID09IE5VTEwpDQorICAgIGdvdG8g ZmFpbDsNCisNCisgIGVsZl9zZWN0aW9uX2VoX2ZyYW1lX2VudHJ5ICh0ZXh0 X3NlYykgPSBzZWM7DQorICBpZiAodGV4dF9zZWMtPm91dHB1dF9zZWN0aW9u DQorICAgICAgJiYgYmZkX2lzX2Fic19zZWN0aW9uICh0ZXh0X3NlYy0+b3V0 cHV0X3NlY3Rpb24pKQ0KKyAgICBzZWMtPmZsYWdzIHw9IFNFQ19FWENMVURF Ow0KKyAgZWxzZSBpZiAocmVtZW1iZXIpDQorICAgIGJmZF9lbGZfcmVtZW1i ZXJfZWhfZnJhbWVfZW50cnkgKGhkcl9pbmZvLCBzZWMpOw0KKw0KKyAgc2Vj LT5zZWNfaW5mb190eXBlID0gU0VDX0lORk9fVFlQRV9FSF9GUkFNRV9FTlRS WTsNCisgIGVsZl9zZWN0aW9uX2RhdGEgKHNlYyktPnNlY19pbmZvID0gdGV4 dF9zZWM7DQorICByZXR1cm47DQorDQorZmFpbDoNCisgICgqX2JmZF9lcnJv cl9oYW5kbGVyKSAoXygiJUI6IGZhaWxlZCB0byBwcmVjb2VzcyAuZWhfZnJh bWVfZW50cnkiKSwgc2VjLT5vd25lcik7DQorfQ0KKw0KIC8qIFRyeSB0byBw YXJzZSAuZWhfZnJhbWUgc2VjdGlvbiBTRUMsIHdoaWNoIGJlbG9uZ3MgdG8g QUJGRC4gIFN0b3JlIHRoZQ0KICAgIGluZm9ybWF0aW9uIGluIHRoZSBzZWN0 aW9uJ3Mgc2VjX2luZm8gZmllbGQgb24gc3VjY2Vzcy4gIENPT0tJRQ0KICAg IGRlc2NyaWJlcyB0aGUgcmVsb2NhdGlvbnMgaW4gU0VDLiAgKi8NCkBAIC05 MzEsMTUgKzEwNDQsODcgQEAgX2JmZF9lbGZfcGFyc2VfZWhfZnJhbWUgKGJm ZCAqYWJmZCwgc3RydWN0IGJmZF9saW5rX2luZm8gKmluZm8sDQogI3VuZGVm IFJFUVVJUkUNCiB9DQogDQotLyogRmluaXNoIGEgcGFzcyBvdmVyIGFsbCAu ZWhfZnJhbWUgc2VjdGlvbnMuICAqLw0KKy8qIE9yZGVyIGVoX2ZyYW1lX2hk ciBlbnRyaWVzIGJ5IHRoZSBWTUEgb2YgdGhlaXIgdGV4dCBzZWN0aW9uLiAg Ki8NCiANCi12b2lkDQorc3RhdGljIGludA0KK2NtcF9laF9mcmFtZV9oZHIg KGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIpDQorew0KKyAgYmZkX3Zt YSB0ZXh0X2E7DQorICBiZmRfdm1hIHRleHRfYjsNCisgIGFzZWN0aW9uICpz ZWM7DQorDQorICBzZWMgPSAqKGFzZWN0aW9uICpjb25zdCAqKWE7DQorICBz ZWMgPSAoYXNlY3Rpb24gKikgZWxmX3NlY3Rpb25fZGF0YSAoc2VjKS0+c2Vj X2luZm87DQorICB0ZXh0X2EgPSBzZWMtPm91dHB1dF9zZWN0aW9uLT52bWEg KyBzZWMtPm91dHB1dF9vZmZzZXQ7DQorICBzZWMgPSAqKGFzZWN0aW9uICpj b25zdCAqKWI7DQorICBzZWMgPSAoYXNlY3Rpb24gKikgZWxmX3NlY3Rpb25f ZGF0YSAoc2VjKS0+c2VjX2luZm87DQorICB0ZXh0X2IgPSBzZWMtPm91dHB1 dF9zZWN0aW9uLT52bWEgKyBzZWMtPm91dHB1dF9vZmZzZXQ7DQorDQorICBp ZiAodGV4dF9hIDwgdGV4dF9iKQ0KKyAgICByZXR1cm4gLTE7DQorICByZXR1 cm4gdGV4dF9hID4gdGV4dF9iOw0KKw0KK30NCisNCisvKiBBZGQgc3BhY2Ug Zm9yIGEgQ0FOVFVOV0lORCB0ZXJtaW5hdG9yIHRvIFNFQyBpcyB0aGUgdGV4 dCBzZWN0aW9ucw0KKyAgIHJlZmVyZW5jZWQgYnkgaXQgYW5kIE5FWFQgYXJl IG5vdCBjb250aWd1b3VzLCBvciBORVhUIGlzIE5VTEwuICAqLw0KKw0KK3N0 YXRpYyB2b2lkDQorYWRkX2VoX2ZyYW1lX2hkcl90ZXJtaW5hdG9yIChhc2Vj dGlvbiAqc2VjLA0KKwkJCSAgICAgYXNlY3Rpb24gKm5leHQpDQorew0KKyAg YmZkX3ZtYSBlbmQ7DQorICBiZmRfdm1hIG5leHRfc3RhcnQ7DQorICBhc2Vj dGlvbiAqdGV4dF9zZWM7DQorDQorICBpZiAobmV4dCkNCisgICAgew0KKyAg ICAgIC8qIFNlZSBpZiB0aGVyZSBpcyBhIGdhcCAocHJlc3VhYmx5IGEgdGV4 dCBzZWN0aW9uIHdpdGhvdXQgdW53aW5kIGluZm8pDQorCSBiZXR3ZWVuIHRo ZXNlIHR3byBlbnRyaWVzLiAgKi8NCisgICAgICB0ZXh0X3NlYyA9IChhc2Vj dGlvbiAqKSBlbGZfc2VjdGlvbl9kYXRhIChzZWMpLT5zZWNfaW5mbzsNCisg ICAgICBlbmQgPSB0ZXh0X3NlYy0+b3V0cHV0X3NlY3Rpb24tPnZtYSArIHRl eHRfc2VjLT5vdXRwdXRfb2Zmc2V0DQorCSAgICArIHRleHRfc2VjLT5zaXpl Ow0KKyAgICAgIHRleHRfc2VjID0gKGFzZWN0aW9uICopIGVsZl9zZWN0aW9u X2RhdGEgKG5leHQpLT5zZWNfaW5mbzsNCisgICAgICBuZXh0X3N0YXJ0ID0g dGV4dF9zZWMtPm91dHB1dF9zZWN0aW9uLT52bWEgKyB0ZXh0X3NlYy0+b3V0 cHV0X29mZnNldDsNCisgICAgICAvKiBBbGxvdyBmb3IgYWxpZ25tZW50IHBh ZGRpbmcuICAqLw0KKyAgICAgIGVuZCA9IEJGRF9BTElHTiAoZW5kLCAxIDw8 IGJmZF9nZXRfc2VjdGlvbl9hbGlnbm1lbnQgKHRleHRfc2VjLT5vd25lciwg dGV4dF9zZWMpKTsNCisgICAgICBpZiAoZW5kID09IG5leHRfc3RhcnQpDQor CXJldHVybjsNCisgICAgfQ0KKw0KKyAgLyogQWRkIHNwYWNlIGZvciBhIENB TlRVTldJTkQgdGVybWluYXRvci4gICovDQorICBpZiAoIXNlYy0+cmF3c2l6 ZSkNCisgICAgc2VjLT5yYXdzaXplID0gc2VjLT5zaXplOw0KKw0KKyAgYmZk X3NldF9zZWN0aW9uX3NpemUgKHNlYy0+b3duZXIsIHNlYywgc2VjLT5zaXpl ICsgOCk7DQorfQ0KKw0KKy8qIEZpbmlzaCBhIHBhc3Mgb3ZlciBhbGwgLmVo X2ZyYW1lIGFuZCBlaF9mcmFtZV9lbnRyeSBzZWN0aW9ucy4gICovDQorDQor YmZkX2Jvb2xlYW4NCiBfYmZkX2VsZl9lbmRfZWhfZnJhbWVfcGFyc2luZyAo c3RydWN0IGJmZF9saW5rX2luZm8gKmluZm8pDQogew0KICAgc3RydWN0IGVo X2ZyYW1lX2hkcl9pbmZvICpoZHJfaW5mbzsNCisgIHVuc2lnbmVkIGludCBp Ow0KIA0KICAgaGRyX2luZm8gPSAmZWxmX2hhc2hfdGFibGUgKGluZm8pLT5l aF9pbmZvOw0KICAgaGRyX2luZm8tPnBhcnNlZF9laF9mcmFtZXMgPSBUUlVF Ow0KKw0KKyAgaWYgKGhkcl9pbmZvLT5hcnJheV9jb3VudCA9PSAwIHx8IGlu Zm8tPmVoX2ZyYW1lX2hkciA8IDIpDQorICAgIHJldHVybiBGQUxTRTsNCisN CisgIHFzb3J0IChoZHJfaW5mby0+ZW50cmllcywgaGRyX2luZm8tPmFycmF5 X2NvdW50LA0KKwkgc2l6ZW9mIChhc2VjdGlvbiAqKSwgY21wX2VoX2ZyYW1l X2hkcik7DQorDQorICBmb3IgKGkgPSAwOyBpIDwgaGRyX2luZm8tPmFycmF5 X2NvdW50IC0gMTsgaSsrKQ0KKyAgICB7DQorICAgICAgYWRkX2VoX2ZyYW1l X2hkcl90ZXJtaW5hdG9yIChoZHJfaW5mby0+ZW50cmllc1tpXSwNCisJCQkJ ICAgaGRyX2luZm8tPmVudHJpZXNbaSArIDFdKTsNCisgICAgfQ0KKw0KKyAg LyogQWRkIGEgQ0FOVFVOV0lORCB0ZXJtaW5hdG9yIGFmdGVyIHRoZSBsYXN0 IGVudHJ5LiAgKi8NCisgIGFkZF9laF9mcmFtZV9oZHJfdGVybWluYXRvciAo aGRyX2luZm8tPmVudHJpZXNbaV0sIE5VTEwpOw0KKyAgcmV0dXJuIFRSVUU7 DQogfQ0KIA0KIC8qIE1hcmsgYWxsIHJlbG9jYXRpb25zIGFnYWluc3QgQ0lF IG9yIEZERSBFTlQsIHdoaWNoIG9jY3VycyBpbg0KQEAgLTEyNDMsOSArMTQy OCwxOCBAQCBfYmZkX2VsZl9kaXNjYXJkX3NlY3Rpb25fZWhfZnJhbWVfaGRy IChiZmQgKmFiZmQsIHN0cnVjdCBiZmRfbGlua19pbmZvICppbmZvKQ0KICAg aWYgKHNlYyA9PSBOVUxMKQ0KICAgICByZXR1cm4gRkFMU0U7DQogDQotICBz ZWMtPnNpemUgPSBFSF9GUkFNRV9IRFJfU0laRTsNCi0gIGlmIChoZHJfaW5m by0+dGFibGUpDQotICAgIHNlYy0+c2l6ZSArPSA0ICsgaGRyX2luZm8tPmZk ZV9jb3VudCAqIDg7DQorICBpZiAoaW5mby0+ZWhfZnJhbWVfaGRyID09IDIp DQorICAgIHsNCisgICAgICAvKiBGb3IgY29tcGFjdCBmcmFtZXMgd2Ugb25s eSBhZGQgdGhlIGhlYWRlci4gIFRoZSBhY3R1YWwgdGFibGUgY29tZXMNCisg ICAgICAgICBmcm9tIHRoZSAuZWhfZnJhbWVfZW50cnkgc2VjdGlvbnMuICAq Lw0KKyAgICAgIHNlYy0+c2l6ZSA9IDg7DQorICAgIH0NCisgIGVsc2UNCisg ICAgew0KKyAgICAgIHNlYy0+c2l6ZSA9IEVIX0ZSQU1FX0hEUl9TSVpFOw0K KyAgICAgIGlmIChoZHJfaW5mby0+dGFibGUpDQorCXNlYy0+c2l6ZSArPSA0 ICsgaGRyX2luZm8tPmZkZV9jb3VudCAqIDg7DQorICAgIH0NCiANCiAgIGVs Zl9laF9mcmFtZV9oZHIgKGFiZmQpID0gc2VjOw0KICAgcmV0dXJuIFRSVUU7 DQpAQCAtMTI3MSw2ICsxNDY1LDQ1IEBAIF9iZmRfZWxmX2VoX2ZyYW1lX3By ZXNlbnQgKHN0cnVjdCBiZmRfbGlua19pbmZvICppbmZvKQ0KICAgcmV0dXJu IEZBTFNFOw0KIH0NCiANCisvKiBSZXR1cm4gdHJ1ZSBpZiB0aGVyZSBpcyBh dCBsZWFzdCBvbmUgLmVoX2ZyYW1lX2VudHJ5IHNlY3Rpb24gaW4NCisgICBp bnB1dCBmaWxlcy4gICovDQorYmZkX2Jvb2xlYW4NCitfYmZkX2VsZl9laF9m cmFtZV9lbnRyeV9wcmVzZW50IChzdHJ1Y3QgYmZkX2xpbmtfaW5mbyAqaW5m bykNCit7DQorICBhc2VjdGlvbiAqbzsNCisgIGJmZCAqYWJmZDsNCisNCisg IGZvciAoYWJmZCA9IGluZm8tPmlucHV0X2JmZHM7IGFiZmQgIT0gTlVMTDsg YWJmZCA9IGFiZmQtPmxpbmtfbmV4dCkNCisgICAgew0KKyAgICAgIGZvciAo byA9IGFiZmQtPnNlY3Rpb25zOyBvOyBvID0gby0+bmV4dCkNCisJew0KKwkg IGNvbnN0IGNoYXIgKm5hbWUgPSBiZmRfZ2V0X3NlY3Rpb25fbmFtZSAoYWJm ZCwgbyk7DQorDQorCSAgaWYgKHN0cmNtcCAobmFtZSwgIi5laF9mcmFtZV9l bnRyeSIpDQorCSAgICAgICYmICFiZmRfaXNfYWJzX3NlY3Rpb24gKG8tPm91 dHB1dF9zZWN0aW9uKSkNCisJICAgIHsNCisJICAgICAgaWYgKHN0cmNtcCAo by0+b3V0cHV0X3NlY3Rpb24tPm5hbWUsICIuZWhfZnJhbWVfaGRyIikpDQor CQlyZXR1cm4gVFJVRTsNCisJICAgICAgZWxzZQ0KKwkJew0KKwkJICAoKl9i ZmRfZXJyb3JfaGFuZGxlcikNCisJCQkoXygiZXJyb3I6IGFuICcuZWhfZnJh bWVfZW50cnknIg0KKwkJCSAgICIgaW5wdXQgc2VjdGlvbiB0aGF0IGlzIG5v dCBtYXBwZWQgdG8gdGhlIg0KKwkJCSAgICIgJy5laF9mcmFtZV9oZHInIG91 dHB1dCBzZWN0aW9uIHdhcyBzZWVuIikpOw0KKwkJICAoKl9iZmRfZXJyb3Jf aGFuZGxlcikNCisJCQkoXygibm90ZTogdHJ5IGFkZGluZyAnKiguZWhfZnJh bWVfZW50cnkiDQorCQkJICAgIiAuZWhfZnJhbWVfZW50cnkuKiknIHRvIHRo ZSAnLmVoX2ZyYW1lX2hkciciDQorCQkJICAgIiBvdXRwdXQgc2VjdGlvbiBk ZXNjcmlwdGlvbiBpbiB0aGUgbGlua2VyIg0KKwkJCSAgICIgc2NyaXB0Iikp Ow0KKwkJICBiZmRfc2V0X2Vycm9yIChiZmRfZXJyb3JfaW52YWxpZF9vcGVy YXRpb24pOw0KKwkJICByZXR1cm4gRkFMU0U7DQorCQl9DQorCSAgICB9DQor CX0NCisgICAgfQ0KKyAgcmV0dXJuIEZBTFNFOw0KK30NCisNCiAvKiBUaGlz IGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tIHNpemVfZHluYW1pY19zZWN0aW9u cy4NCiAgICBJdCBuZWVkcyB0byBkZWNpZGUgd2hldGhlciAuZWhfZnJhbWVf aGRyIHNob3VsZCBiZSBvdXRwdXQgb3Igbm90LA0KICAgIGJlY2F1c2Ugd2hl biB0aGUgZHluYW1pYyBzeW1ib2wgdGFibGUgaGFzIGJlZW4gc2l6ZWQgaXQg aXMgdG9vIGxhdGUNCkBAIC0xMjgxLDYgKzE1MTQsOCBAQCBfYmZkX2VsZl9t YXliZV9zdHJpcF9laF9mcmFtZV9oZHIgKHN0cnVjdCBiZmRfbGlua19pbmZv ICppbmZvKQ0KIHsNCiAgIHN0cnVjdCBlbGZfbGlua19oYXNoX3RhYmxlICpo dGFiOw0KICAgc3RydWN0IGVoX2ZyYW1lX2hkcl9pbmZvICpoZHJfaW5mbzsN CisgIHN0cnVjdCBiZmRfbGlua19oYXNoX2VudHJ5ICpiaCA9IE5VTEw7DQor ICBzdHJ1Y3QgZWxmX2xpbmtfaGFzaF9lbnRyeSAqaDsNCiANCiAgIGh0YWIg PSBlbGZfaGFzaF90YWJsZSAoaW5mbyk7DQogICBoZHJfaW5mbyA9ICZodGFi LT5laF9pbmZvOw0KQEAgLTEyODksMTMgKzE1MjQsMjcgQEAgX2JmZF9lbGZf bWF5YmVfc3RyaXBfZWhfZnJhbWVfaGRyIChzdHJ1Y3QgYmZkX2xpbmtfaW5m byAqaW5mbykNCiANCiAgIGlmIChiZmRfaXNfYWJzX3NlY3Rpb24gKGhkcl9p bmZvLT5oZHJfc2VjLT5vdXRwdXRfc2VjdGlvbikNCiAgICAgICB8fCAhaW5m by0+ZWhfZnJhbWVfaGRyDQotICAgICAgfHwgIV9iZmRfZWxmX2VoX2ZyYW1l X3ByZXNlbnQgKGluZm8pKQ0KKyAgICAgIHx8IChpbmZvLT5laF9mcmFtZV9o ZHIgPT0gMSAmJiAhX2JmZF9lbGZfZWhfZnJhbWVfcHJlc2VudCAoaW5mbykp DQorICAgICAgfHwgKGluZm8tPmVoX2ZyYW1lX2hkciA9PSAyICYmICFfYmZk X2VsZl9laF9mcmFtZV9lbnRyeV9wcmVzZW50IChpbmZvKSkpDQogICAgIHsN CiAgICAgICBoZHJfaW5mby0+aGRyX3NlYy0+ZmxhZ3MgfD0gU0VDX0VYQ0xV REU7DQogICAgICAgaGRyX2luZm8tPmhkcl9zZWMgPSBOVUxMOw0KICAgICAg IHJldHVybiBUUlVFOw0KICAgICB9DQogDQorICAvKiBBZGQgYSBoaWRkZW4g c3ltYm9sIHNvIHRoYXQgc3lzdGVtcyB3aXRob3V0IGFjY2VzcyB0byBQSERS cyBjYW4NCisgICAgIGZpbmQgdGhlIHRhYmxlLiAgKi8NCisgIGlmICghIChf YmZkX2dlbmVyaWNfbGlua19hZGRfb25lX3N5bWJvbA0KKwkgKGluZm8sIGlu Zm8tPm91dHB1dF9iZmQsICJfX0dOVV9FSF9GUkFNRV9IRFIiLCBCU0ZfTE9D QUwsDQorCSAgaGRyX2luZm8tPmhkcl9zZWMsIDAsIE5VTEwsIEZBTFNFLCBG QUxTRSwgJmJoKSkpDQorICAgIHJldHVybiBGQUxTRTsNCisNCisgIGggPSAo c3RydWN0IGVsZl9saW5rX2hhc2hfZW50cnkgKikgYmg7DQorICBoLT5kZWZf cmVndWxhciA9IDE7DQorICBoLT5vdGhlciA9IFNUVl9ISURERU47DQorICBn ZXRfZWxmX2JhY2tlbmRfZGF0YQ0KKyAgICAoaW5mby0+b3V0cHV0X2JmZCkt PmVsZl9iYWNrZW5kX2hpZGVfc3ltYm9sIChpbmZvLCBoLCBUUlVFKTsNCisN CiAgIGhkcl9pbmZvLT50YWJsZSA9IFRSVUU7DQogICByZXR1cm4gVFJVRTsN CiB9DQpAQCAtMTM4Nyw2ICsxNjM2LDcxIEBAIF9iZmRfZWxmX2VoX2ZyYW1l X3NlY3Rpb25fb2Zmc2V0IChiZmQgKm91dHB1dF9iZmQgQVRUUklCVVRFX1VO VVNFRCwNCiAJICArIGV4dHJhX2F1Z21lbnRhdGlvbl9kYXRhX2J5dGVzIChz ZWNfaW5mby0+ZW50cnkgKyBtaWQpKTsNCiB9DQogDQorLyogV3JpdGUgb3V0 IC5laF9mcmFtZV9lbnRyeSBzZWN0aW9uLiAgQWRkIENBTlRVTldJTkQgdGVy bWluYXRvciBpZiBuZWVkZWQuDQorICAgQWxzbyBjaGVjayB0aGF0IHRoZSBj b250ZW50cyBsb29rIHNhbmUuICAqLw0KKw0KK2JmZF9ib29sZWFuDQorX2Jm ZF9lbGZfd3JpdGVfc2VjdGlvbl9laF9mcmFtZV9lbnRyeSAoYmZkICphYmZk LA0KKwkJCQkgICAgICAgYXNlY3Rpb24gKnNlYywNCisJCQkJICAgICAgIGJm ZF9ieXRlICpjb250ZW50cykNCit7DQorICBiZmRfYnl0ZSBjYW50dW53aW5k WzhdOw0KKyAgYmZkX3ZtYSBhZGRyOw0KKyAgYmZkX3ZtYSBsYXN0X2FkZHI7 DQorICBhc2VjdGlvbiAqdGV4dF9zZWM7DQorICBiZmRfdm1hIG9mZnNldDsN CisNCisgIGlmICghc2VjLT5yYXdzaXplKQ0KKyAgICBzZWMtPnJhd3NpemUg PSBzZWMtPnNpemU7DQorDQorICBCRkRfQVNTRVJUIChzZWMtPnNlY19pbmZv X3R5cGUgPT0gU0VDX0lORk9fVFlQRV9FSF9GUkFNRV9FTlRSWSk7DQorDQor ICBpZiAoc2VjLT5mbGFncyAmIFNFQ19FWENMVURFKQ0KKyAgICByZXR1cm4g VFJVRTsNCisNCisgIGlmICghYmZkX3NldF9zZWN0aW9uX2NvbnRlbnRzIChh YmZkLCBzZWMtPm91dHB1dF9zZWN0aW9uLCBjb250ZW50cywNCisJCQkJIHNl Yy0+b3V0cHV0X29mZnNldCwgc2VjLT5yYXdzaXplKSkNCisgICAgICByZXR1 cm4gRkFMU0U7DQorDQorICBsYXN0X2FkZHIgPSBiZmRfZ2V0X3NpZ25lZF8z MiAoYWJmZCwgY29udGVudHMpOw0KKyAgLyogQ2hlY2sgdGhhdCBhbGwgdGhl IGVudHJpZXMgYXJlIGluIG9yZGVyLiAgKi8NCisgIGZvciAob2Zmc2V0ID0g ODsgb2Zmc2V0IDwgc2VjLT5yYXdzaXplOyBvZmZzZXQgKz0gOCkNCisgICAg ew0KKyAgICAgIGFkZHIgPSBiZmRfZ2V0X3NpZ25lZF8zMiAoYWJmZCwgY29u dGVudHMgKyBvZmZzZXQpICsgb2Zmc2V0Ow0KKyAgICAgIGlmIChhZGRyIDw9 IGxhc3RfYWRkcikNCisJew0KKwkgICgqX2JmZF9lcnJvcl9oYW5kbGVyKSAo XygiJUI6ICVzIG5vdCBpbiBvcmRlciIpLCBzZWMtPm93bmVyLCBzZWMtPm5h bWUpOw0KKwkgIHJldHVybiBGQUxTRTsNCisJfQ0KKw0KKyAgICAgIGxhc3Rf YWRkciA9IGFkZHI7DQorICAgIH0NCisNCisgIHRleHRfc2VjID0gKGFzZWN0 aW9uICopIGVsZl9zZWN0aW9uX2RhdGEgKHNlYyktPnNlY19pbmZvOw0KKyAg YWRkciA9IHRleHRfc2VjLT5vdXRwdXRfc2VjdGlvbi0+dm1hICsgdGV4dF9z ZWMtPm91dHB1dF9vZmZzZXQNCisJICsgdGV4dF9zZWMtPnNpemU7DQorICBh ZGRyICY9IH4xOw0KKyAgYWRkciAtPSAoc2VjLT5vdXRwdXRfc2VjdGlvbi0+ dm1hICsgc2VjLT5vdXRwdXRfb2Zmc2V0ICsgc2VjLT5yYXdzaXplKTsNCisg IEJGRF9BU1NFUlQgKChhZGRyICYgMSkgPT0gMCk7DQorICBpZiAobGFzdF9h ZGRyID49IGFkZHIgKyBzZWMtPnJhd3NpemUpDQorICAgIHsNCisgICAgICAo Kl9iZmRfZXJyb3JfaGFuZGxlcikgKF8oIiVCOiAlcyBwb2ludHMgcGFzdCBl bmQgb2YgdGV4dCBzZWN0aW9uIiksDQorCQkJICAgICBzZWMtPm93bmVyLCBz ZWMtPm5hbWUpOw0KKyAgICAgIHJldHVybiBGQUxTRTsNCisgICAgfQ0KKw0K KyAgaWYgKHNlYy0+c2l6ZSA9PSBzZWMtPnJhd3NpemUpDQorICAgIHJldHVy biBUUlVFOw0KKw0KKyAgQkZEX0FTU0VSVCAoc2VjLT5zaXplID09IHNlYy0+ cmF3c2l6ZSArIDgpOw0KKyAgQkZEX0FTU0VSVCAoKGFkZHIgJiAxKSA9PSAw KTsNCisNCisgIGJmZF9wdXRfMzIgKGFiZmQsIGFkZHIsIGNhbnR1bndpbmQp Ow0KKyAgYmZkX3B1dF8zMiAoYWJmZCwgMHgwMTVkNWQwMSwgY2FudHVud2lu ZCArIDQpOw0KKyAgcmV0dXJuIGJmZF9zZXRfc2VjdGlvbl9jb250ZW50cyAo YWJmZCwgc2VjLT5vdXRwdXRfc2VjdGlvbiwgY2FudHVud2luZCwNCisJCQkJ ICAgc2VjLT5vdXRwdXRfb2Zmc2V0ICsgc2VjLT5yYXdzaXplLCA4KTsNCit9 DQorDQogLyogV3JpdGUgb3V0IC5laF9mcmFtZSBzZWN0aW9uLiAgVGhpcyBp cyBjYWxsZWQgd2l0aCB0aGUgcmVsb2NhdGVkDQogICAgY29udGVudHMuICAq Lw0KIA0KQEAgLTE3NDYsNiArMjA2MCw0NCBAQCB2bWFfY29tcGFyZSAoY29u c3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYikNCiAgIHJldHVybiAwOw0KIH0N CiANCisvKiBSZW9yZGVyIC5laF9mcmFtZV9lbnRyeSBzZWN0aW9ucyB0byBt YXRjaCB0aGUgYXNzb2NpYXRlZCB0ZXh0IHNlY3Rpb25zLiAgKi8NCisNCit2 b2lkDQorX2JmZF9lbGZfZml4dXBfZWhfZnJhbWVfaGRyIChzdHJ1Y3QgYmZk X2xpbmtfaW5mbyAqaW5mbykNCit7DQorICBhc2VjdGlvbiAqc2VjID0gTlVM TDsNCisgIHN0cnVjdCBlaF9mcmFtZV9oZHJfaW5mbyAqaGRyX2luZm87DQor ICB1bnNpZ25lZCBpbnQgaTsNCisgIGJmZF92bWEgb2Zmc2V0Ow0KKyAgc3Ry dWN0IGJmZF9saW5rX29yZGVyICpwOw0KKw0KKyAgaGRyX2luZm8gPSAmZWxm X2hhc2hfdGFibGUgKGluZm8pLT5laF9pbmZvOw0KKw0KKyAgaWYgKGhkcl9p bmZvLT5oZHJfc2VjID09IE5VTEwgfHwgaW5mby0+ZWhfZnJhbWVfaGRyIDwg Mg0KKyAgICAgIHx8IGhkcl9pbmZvLT5hcnJheV9jb3VudCA9PSAwKQ0KKyAg ICByZXR1cm47DQorDQorICAvKiBDaGFuZ2Ugc2VjdGlvbiBvdXRwdXQgb2Zm c2V0cyB0byBiZSBpbiB0ZXh0IHNlY3Rpb24gb3JkZXIuICAqLw0KKyAgb2Zm c2V0ID0gODsNCisgIGZvciAoaSA9IDA7IGkgPCBoZHJfaW5mby0+YXJyYXlf Y291bnQ7IGkrKykNCisgICAgew0KKyAgICAgIHNlYyA9IGhkcl9pbmZvLT5l bnRyaWVzW2ldOw0KKyAgICAgIHNlYy0+b3V0cHV0X29mZnNldCA9IG9mZnNl dDsNCisgICAgICBvZmZzZXQgKz0gc2VjLT5zaXplOw0KKyAgICB9DQorDQor DQorICAvKiBGaXggdGhlIGxpbmtfb3JkZXIgdG8gbWF0Y2guICAqLw0KKyAg Zm9yIChwID0gc2VjLT5vdXRwdXRfc2VjdGlvbi0+bWFwX2hlYWQubGlua19v cmRlcjsgcCAhPSBOVUxMOyBwID0gcC0+bmV4dCkNCisgICAgew0KKyAgICAg IGlmIChwLT50eXBlICE9IGJmZF9pbmRpcmVjdF9saW5rX29yZGVyKQ0KKwlh Ym9ydCgpOw0KKw0KKyAgICAgIHAtPm9mZnNldCA9IHAtPnUuaW5kaXJlY3Qu c2VjdGlvbi0+b3V0cHV0X29mZnNldDsNCisgICAgICBpLS07DQorICAgIH0N Cit9DQorDQogLyogV3JpdGUgb3V0IC5laF9mcmFtZV9oZHIgc2VjdGlvbi4g IFRoaXMgbXVzdCBiZSBjYWxsZWQgYWZ0ZXINCiAgICBfYmZkX2VsZl93cml0 ZV9zZWN0aW9uX2VoX2ZyYW1lIGhhcyBiZWVuIGNhbGxlZCBvbiBhbGwgaW5w dXQNCiAgICAuZWhfZnJhbWUgc2VjdGlvbnMuDQpAQCAtMTc2Niw3ICsyMTE4 LDEzIEBAIHZtYV9jb21wYXJlIChjb25zdCB2b2lkICphLCBjb25zdCB2b2lk ICpiKQ0KICAgIGZkZV9jb3VudCB4IFtlbmNvZGVkXSBpbml0aWFsX2xvYywg ZmRlDQogCQkJCShhcnJheSBvZiBlbmNvZGVkIHBhaXJzIGNvbnRhaW5pbmcN CiAJCQkJIEZERSBpbml0aWFsX2xvY2F0aW9uIGZpZWxkIGFuZCBGREUgYWRk cmVzcywNCi0JCQkJIHNvcnRlZCBieSBpbmNyZWFzaW5nIGluaXRpYWxfbG9j KS4gICovDQorCQkJCSBzb3J0ZWQgYnkgaW5jcmVhc2luZyBpbml0aWFsX2xv YykuDQorDQorICAgRm9yIGNvbXBhY3QgZnJhbWVzIHdlIHVzZSB0aGUgZm9s bG93aW5nIGZvcm1hdDoNCisgICB1Ynl0ZSB2ZXJzaW9uCQkoMikNCisgICB1 Ynl0ZSBlaF9yZWZfZW5jCQkoRFdfRUhfUEVfKiBlbmNvZGluZyBvZiB0eXBp bmZvIHJlZmVyZW5jZXMpDQorICAgdWludDMyX3QgY291bnQJCShOdW1iZXIg b2YgZW50cmllcyBpbiB0YWJsZSkNCisgICBbYXJyYXkgZnJvbSAuZWhfZnJh bWVfZW50cnkgc2VjdGlvbnNdICAqLw0KIA0KIGJmZF9ib29sZWFuDQogX2Jm ZF9lbGZfd3JpdGVfc2VjdGlvbl9laF9mcmFtZV9oZHIgKGJmZCAqYWJmZCwg c3RydWN0IGJmZF9saW5rX2luZm8gKmluZm8pDQpAQCAtMTc4Nyw2ICsyMTQ1 LDM2IEBAIF9iZmRfZWxmX3dyaXRlX3NlY3Rpb25fZWhfZnJhbWVfaGRyIChi ZmQgKmFiZmQsIHN0cnVjdCBiZmRfbGlua19pbmZvICppbmZvKQ0KICAgICAg IGJmZF9zaXplX3R5cGUgc2l6ZTsNCiAgICAgICBiZmRfdm1hIGVuY29kZWRf ZWhfZnJhbWU7DQogDQorICAgICAgaWYgKGluZm8tPmVoX2ZyYW1lX2hkciA9 PSAyKQ0KKwl7DQorCSAgY29uc3Qgc3RydWN0IGVsZl9iYWNrZW5kX2RhdGEg KmJlZDsNCisJICBiZmRfdm1hIGNvdW50Ow0KKw0KKwkgIGNvbnRlbnRzID0g YmZkX21hbGxvYyAoOCk7DQorCSAgaWYgKGNvbnRlbnRzID09IE5VTEwpDQor CSAgICByZXR1cm4gRkFMU0U7DQorDQorCSAgaWYgKHNlYy0+c2l6ZSAhPSA4 KQ0KKwkgICAgYWJvcnQgKCk7DQorDQorCSAgbWVtc2V0IChjb250ZW50cywg MCwgOCk7DQorCSAgY29udGVudHNbMF0gPSAyOw0KKwkgIGJlZCA9IGdldF9l bGZfYmFja2VuZF9kYXRhIChhYmZkKTsNCisJICBpZiAoYmVkLT5jb21wYWN0 X2VoX2VuY29kaW5nKQ0KKwkgICAgY29udGVudHNbMV0gPSAoKmJlZC0+Y29t cGFjdF9laF9lbmNvZGluZykgKGluZm8pOw0KKwkgIGVsc2UNCisJICAgIGNv bnRlbnRzWzBdID0gMHhmZjsNCisNCisJICBjb3VudCA9IChzZWMtPm91dHB1 dF9zZWN0aW9uLT5zaXplIC05ICkgLyA4Ow0KKwkgIGJmZF9wdXRfMzIgKGFi ZmQsIGNvdW50LCBjb250ZW50cyArIDQpOw0KKwkgIHJldHZhbCA9IGJmZF9z ZXRfc2VjdGlvbl9jb250ZW50cyAoYWJmZCwgc2VjLT5vdXRwdXRfc2VjdGlv biwNCisJCQkJCSAgICAgY29udGVudHMsDQorCQkJCQkgICAgIChmaWxlX3B0 cikgc2VjLT5vdXRwdXRfb2Zmc2V0LA0KKwkJCQkJICAgICBzZWMtPnNpemUp Ow0KKwkgIGZyZWUgKGNvbnRlbnRzKTsNCisJICByZXR1cm4gcmV0dmFsOw0K Kwl9DQorDQogICAgICAgc2l6ZSA9IEVIX0ZSQU1FX0hEUl9TSVpFOw0KICAg ICAgIGlmIChoZHJfaW5mby0+YXJyYXkgJiYgaGRyX2luZm8tPmFycmF5X2Nv dW50ID09IGhkcl9pbmZvLT5mZGVfY291bnQpDQogCXNpemUgKz0gNCArIGhk cl9pbmZvLT5mZGVfY291bnQgKiA4Ow0KZGlmZiAtLWdpdCBhL2JmZC9lbGZs aW5rLmMgYi9iZmQvZWxmbGluay5jDQppbmRleCA4ODk2N2M4Li4zMTBlMGM0 IDEwMDY0NA0KLS0tIGEvYmZkL2VsZmxpbmsuYw0KKysrIGIvYmZkL2VsZmxp bmsuYw0KQEAgLTkxNDIsNiArOTE0Miw3IEBAIGVsZl9zZWN0aW9uX2lnbm9y ZV9kaXNjYXJkZWRfcmVsb2NzIChhc2VjdGlvbiAqc2VjKQ0KICAgICB7DQog ICAgIGNhc2UgU0VDX0lORk9fVFlQRV9TVEFCUzoNCiAgICAgY2FzZSBTRUNf SU5GT19UWVBFX0VIX0ZSQU1FOg0KKyAgICBjYXNlIFNFQ19JTkZPX1RZUEVf RUhfRlJBTUVfRU5UUlk6DQogICAgICAgcmV0dXJuIFRSVUU7DQogICAgIGRl ZmF1bHQ6DQogICAgICAgYnJlYWs7DQpAQCAtMTAwMzksNiArMTAwNDAsMTAg QEAgZWxmX2xpbmtfaW5wdXRfYmZkIChzdHJ1Y3QgZWxmX2ZpbmFsX2xpbmtf aW5mbyAqZmxpbmZvLCBiZmQgKmlucHV0X2JmZCkNCiAJICAgICAgcmV0dXJu IEZBTFNFOw0KIAkgIH0NCiAJICBicmVhazsNCisJY2FzZSBTRUNfSU5GT19U WVBFX0VIX0ZSQU1FX0VOVFJZOg0KKwkgICAgaWYgKCEgX2JmZF9lbGZfd3Jp dGVfc2VjdGlvbl9laF9mcmFtZV9lbnRyeSAob3V0cHV0X2JmZCwgbywgY29u dGVudHMpKQ0KKwkgICAgICByZXR1cm4gRkFMU0U7DQorCSAgYnJlYWs7DQog CWRlZmF1bHQ6DQogCSAgew0KIAkgICAgLyogRklYTUU6IG9jdGV0c19wZXJf Ynl0ZS4gICovDQpAQCAtMTA5MDEsNiArMTA5MDYsOCBAQCBiZmRfZWxmX2Zp bmFsX2xpbmsgKGJmZCAqYWJmZCwgc3RydWN0IGJmZF9saW5rX2luZm8gKmlu Zm8pDQogCXJldHVybiBGQUxTRTsNCiAgICAgfQ0KIA0KKyAgX2JmZF9lbGZf Zml4dXBfZWhfZnJhbWVfaGRyIChpbmZvKTsNCisNCiAgIC8qIFNpbmNlIEVM RiBwZXJtaXRzIHJlbG9jYXRpb25zIHRvIGJlIGFnYWluc3QgbG9jYWwgc3lt Ym9scywgd2UNCiAgICAgIG11c3QgaGF2ZSB0aGUgbG9jYWwgc3ltYm9scyBh dmFpbGFibGUgd2hlbiB3ZSBkbyB0aGUgcmVsb2NhdGlvbnMuDQogICAgICBT aW5jZSB3ZSB3b3VsZCByYXRoZXIgb25seSByZWFkIHRoZSBsb2NhbCBzeW1i b2xzIG9uY2UsIGFuZCB3ZQ0KQEAgLTExODA3LDYgKzExODE0LDEzIEBAIF9i ZmRfZWxmX2djX21hcmsgKHN0cnVjdCBiZmRfbGlua19pbmZvICppbmZvLA0K IAl9DQogICAgIH0NCiANCisgIGVoX2ZyYW1lID0gZWxmX3NlY3Rpb25fZWhf ZnJhbWVfZW50cnkgKHNlYyk7DQorICBpZiAoZWhfZnJhbWUgJiYgIWVoX2Zy YW1lLT5nY19tYXJrKQ0KKyAgICB7DQorICAgIGlmICghX2JmZF9lbGZfZ2Nf bWFyayAoaW5mbywgZWhfZnJhbWUsIGdjX21hcmtfaG9vaykpDQorICAgICAg cmV0dXJuIEZBTFNFOw0KKyAgICB9DQorDQogICByZXR1cm4gcmV0Ow0KIH0N CiANCkBAIC0xMjE5MCwyMiArMTIyMDQsNDIgQEAgYmZkX2VsZl9nY19zZWN0 aW9ucyAoYmZkICphYmZkLCBzdHJ1Y3QgYmZkX2xpbmtfaW5mbyAqaW5mbykN CiAgIGJlZC0+Z2Nfa2VlcCAoaW5mbyk7DQogDQogICAvKiBUcnkgdG8gcGFy c2UgZWFjaCBiZmQncyAuZWhfZnJhbWUgc2VjdGlvbi4gIFBvaW50IGVsZl9l aF9mcmFtZV9zZWN0aW9uDQotICAgICBhdCB0aGUgLmVoX2ZyYW1lIHNlY3Rp b24gaWYgd2UgY2FuIG1hcmsgdGhlIEZERXMgaW5kaXZpZHVhbGx5LiAgKi8N CisgICAgIGF0IHRoZSAuZWhfZnJhbWUgc2VjdGlvbiBpZiB3ZSBjYW4gbWFy ayB0aGUgRkRFcyBpbmRpdmlkdWFsbHkuDQorICAgICBFc3RhYmxpc2ggbGlu a3MgZnJvbSB0ZXh0IHNlY3Rpb25zIHRvIHRoZWlyIGNvcnJlc3BvbmRpbmcN CisgICAgIC5laF9mcmFtZV9lbnRyeSBzZWN0aW9ucy4gICovDQogICBfYmZk X2VsZl9iZWdpbl9laF9mcmFtZV9wYXJzaW5nIChpbmZvKTsNCiAgIGZvciAo c3ViID0gaW5mby0+aW5wdXRfYmZkczsgc3ViICE9IE5VTEw7IHN1YiA9IHN1 Yi0+bGlua19uZXh0KQ0KICAgICB7DQogICAgICAgYXNlY3Rpb24gKnNlYzsN CiAgICAgICBzdHJ1Y3QgZWxmX3JlbG9jX2Nvb2tpZSBjb29raWU7DQogDQot ICAgICAgc2VjID0gYmZkX2dldF9zZWN0aW9uX2J5X25hbWUgKHN1YiwgIi5l aF9mcmFtZSIpOw0KLSAgICAgIHdoaWxlIChzZWMgJiYgaW5pdF9yZWxvY19j b29raWVfZm9yX3NlY3Rpb24gKCZjb29raWUsIGluZm8sIHNlYykpDQorICAg ICAgaWYgKCFpbml0X3JlbG9jX2Nvb2tpZSAoJmNvb2tpZSwgaW5mbywgc3Vi KSkNCisJcmV0dXJuIEZBTFNFOw0KKw0KKyAgICAgIGlmIChpbmZvLT5laF9m cmFtZV9oZHIgPCAyKQ0KIAl7DQotCSAgX2JmZF9lbGZfcGFyc2VfZWhfZnJh bWUgKHN1YiwgaW5mbywgc2VjLCAmY29va2llKTsNCi0JICBpZiAoZWxmX3Nl Y3Rpb25fZGF0YSAoc2VjKS0+c2VjX2luZm8NCi0JICAgICAgJiYgKHNlYy0+ ZmxhZ3MgJiBTRUNfTElOS0VSX0NSRUFURUQpID09IDApDQotCSAgICBlbGZf ZWhfZnJhbWVfc2VjdGlvbiAoc3ViKSA9IHNlYzsNCi0JICBmaW5pX3JlbG9j X2Nvb2tpZV9mb3Jfc2VjdGlvbiAoJmNvb2tpZSwgc2VjKTsNCi0JICBzZWMg PSBiZmRfZ2V0X25leHRfc2VjdGlvbl9ieV9uYW1lIChzZWMpOw0KKwkgIHNl YyA9IGJmZF9nZXRfc2VjdGlvbl9ieV9uYW1lIChzdWIsICIuZWhfZnJhbWUi KTsNCisJICBpZiAoc2VjICYmIGluaXRfcmVsb2NfY29va2llX3JlbHMgKCZj b29raWUsIGluZm8sIHN1Yiwgc2VjKSkNCisJICAgIHsNCisJICAgICAgX2Jm ZF9lbGZfcGFyc2VfZWhfZnJhbWUgKHN1YiwgaW5mbywgc2VjLCAmY29va2ll KTsNCisJICAgICAgaWYgKGVsZl9zZWN0aW9uX2RhdGEgKHNlYyktPnNlY19p bmZvDQorCQkgICYmIChzZWMtPmZsYWdzICYgU0VDX0xJTktFUl9DUkVBVEVE KSA9PSAwKQ0KKwkJZWxmX2VoX2ZyYW1lX3NlY3Rpb24gKHN1YikgPSBzZWM7 DQorCSAgICAgIGZpbmlfcmVsb2NfY29va2llX2Zvcl9zZWN0aW9uICgmY29v a2llLCBzZWMpOw0KKwkgICAgfQ0KKwl9DQorICAgICAgZWxzZQ0KKwl7DQor CSAgZm9yIChzZWMgPSBzdWItPnNlY3Rpb25zOyBzZWM7IHNlYyA9IHNlYy0+ bmV4dCkNCisJICAgIHsNCisJICAgICAgaWYgKENPTlNUX1NUUk5FUSAoYmZk X3NlY3Rpb25fbmFtZSAoc3ViLCBzZWMpLCAiLmVoX2ZyYW1lX2VudHJ5IikN CisJCSAgJiYgaW5pdF9yZWxvY19jb29raWVfcmVscyAoJmNvb2tpZSwgaW5m bywgc3ViLCBzZWMpKQ0KKwkJew0KKwkJICBfYmZkX2VsZl9wYXJzZV9laF9m cmFtZV9lbnRyeSAoc3ViLCBpbmZvLCBzZWMsICZjb29raWUsDQorCQkJCQkJ IEZBTFNFKTsNCisJCSAgZmluaV9yZWxvY19jb29raWVfZm9yX3NlY3Rpb24g KCZjb29raWUsIHNlYyk7DQorCQl9DQorCSAgICB9DQogCX0NCiAgICAgfQ0K ICAgX2JmZF9lbGZfZW5kX2VoX2ZyYW1lX3BhcnNpbmcgKGluZm8pOw0KQEAg LTEyNjY0LDYgKzEyNjk4LDcgQEAgYmZkX2VsZl9kaXNjYXJkX2luZm8gKGJm ZCAqb3V0cHV0X2JmZCwgc3RydWN0IGJmZF9saW5rX2luZm8gKmluZm8pDQog ew0KICAgc3RydWN0IGVsZl9yZWxvY19jb29raWUgY29va2llOw0KICAgYXNl Y3Rpb24gKnN0YWIsICplaDsNCisgIHN0cnVjdCBlaF9mcmFtZV9oZHJfaW5m byAqaGRyX2luZm87DQogICBjb25zdCBzdHJ1Y3QgZWxmX2JhY2tlbmRfZGF0 YSAqYmVkOw0KICAgYmZkICphYmZkOw0KICAgYmZkX2Jvb2xlYW4gcmV0ID0g RkFMU0U7DQpAQCAtMTI2NzIsNiArMTI3MDcsNyBAQCBiZmRfZWxmX2Rpc2Nh cmRfaW5mbyAoYmZkICpvdXRwdXRfYmZkLCBzdHJ1Y3QgYmZkX2xpbmtfaW5m byAqaW5mbykNCiAgICAgICB8fCAhaXNfZWxmX2hhc2hfdGFibGUgKGluZm8t Pmhhc2gpKQ0KICAgICByZXR1cm4gRkFMU0U7DQogDQorICBoZHJfaW5mbyA9 ICZlbGZfaGFzaF90YWJsZSAoaW5mbyktPmVoX2luZm87DQogICBfYmZkX2Vs Zl9iZWdpbl9laF9mcmFtZV9wYXJzaW5nIChpbmZvKTsNCiAgIGZvciAoYWJm ZCA9IGluZm8tPmlucHV0X2JmZHM7IGFiZmQgIT0gTlVMTDsgYWJmZCA9IGFi ZmQtPmxpbmtfbmV4dCkNCiAgICAgew0KQEAgLTEyNjgxLDcgKzEyNzE3LDcg QEAgYmZkX2VsZl9kaXNjYXJkX2luZm8gKGJmZCAqb3V0cHV0X2JmZCwgc3Ry dWN0IGJmZF9saW5rX2luZm8gKmluZm8pDQogICAgICAgYmVkID0gZ2V0X2Vs Zl9iYWNrZW5kX2RhdGEgKGFiZmQpOw0KIA0KICAgICAgIGVoID0gTlVMTDsN Ci0gICAgICBpZiAoIWluZm8tPnJlbG9jYXRhYmxlKQ0KKyAgICAgIGlmICgo aW5mby0+ZWhfZnJhbWVfaGRyIDwgMikgJiYgIWluZm8tPnJlbG9jYXRhYmxl KQ0KIAl7DQogCSAgZWggPSBiZmRfZ2V0X3NlY3Rpb25fYnlfbmFtZSAoYWJm ZCwgIi5laF9mcmFtZSIpOw0KIAkgIHdoaWxlIChlaCAhPSBOVUxMDQpAQCAt MTI2OTksNyArMTI3MzUsOCBAQCBiZmRfZWxmX2Rpc2NhcmRfaW5mbyAoYmZk ICpvdXRwdXRfYmZkLCBzdHJ1Y3QgYmZkX2xpbmtfaW5mbyAqaW5mbykNCiAN CiAgICAgICBpZiAoc3RhYiA9PSBOVUxMDQogCSAgJiYgZWggPT0gTlVMTA0K LQkgICYmIGJlZC0+ZWxmX2JhY2tlbmRfZGlzY2FyZF9pbmZvID09IE5VTEwp DQorCSAgJiYgYmVkLT5lbGZfYmFja2VuZF9kaXNjYXJkX2luZm8gPT0gTlVM TA0KKwkgICYmIGluZm8tPmVoX2ZyYW1lX2hkciAhPSAyKQ0KIAljb250aW51 ZTsNCiANCiAgICAgICBpZiAoIWluaXRfcmVsb2NfY29va2llICgmY29va2ll LCBpbmZvLCBhYmZkKSkNCkBAIC0xMjcyOSwxNiArMTI3NjYsMzQgQEAgYmZk X2VsZl9kaXNjYXJkX2luZm8gKGJmZCAqb3V0cHV0X2JmZCwgc3RydWN0IGJm ZF9saW5rX2luZm8gKmluZm8pDQogCSAgZWggPSBiZmRfZ2V0X25leHRfc2Vj dGlvbl9ieV9uYW1lIChlaCk7DQogCX0NCiANCisgICAgICAvKiBBbGwgdGhl IC5laF9mcmFtZV9lbnRyeSBzZWN0aW9ucyBtYXkgaGF2ZSBiZWVuIGdhcmJh Z2UgY29sbGVjdGVkDQorCSB0aHVzIGNhdXNpbmcgdGhlIC5laF9mcmFtZV9o ZHIgc2VjdGlvbiB0byBiZSBkaXNjYXJkZWQuICBUaGVyZWZvcmUNCisJIGNo ZWNrIHRoYXQgdGhlIC5laF9mcmFtZV9oZHIgc2VjdGlvbiBzdGlsbCBleGlz dHMgYmVmb3JlIHdhbGtpbmcNCisJIHRoZSBzZWN0aW9ucy4gICovDQorICAg ICAgaWYgKGluZm8tPmVoX2ZyYW1lX2hkciA9PSAyICYmIGhkcl9pbmZvLT5o ZHJfc2VjKQ0KKwl7DQorCSAgZm9yIChlaCA9IGFiZmQtPnNlY3Rpb25zOyBl aDsgZWggPSBlaC0+bmV4dCkNCisJICAgIHsNCisJICAgICAgaWYgKGVoLT5v dXRwdXRfc2VjdGlvbiA9PSBoZHJfaW5mby0+aGRyX3NlYy0+b3V0cHV0X3Nl Y3Rpb24NCisJCSAgJiYgaW5pdF9yZWxvY19jb29raWVfcmVscyAoJmNvb2tp ZSwgaW5mbywgYWJmZCwgZWgpKQ0KKwkJew0KKwkJICBfYmZkX2VsZl9wYXJz ZV9laF9mcmFtZV9lbnRyeSAoYWJmZCwgaW5mbywgZWgsICZjb29raWUsDQor CQkJCQkJIFRSVUUpOw0KKwkJICBmaW5pX3JlbG9jX2Nvb2tpZV9yZWxzICgm Y29va2llLCBlaCk7DQorCQl9DQorCSAgICB9DQorCX0NCisNCiAgICAgICBp ZiAoYmVkLT5lbGZfYmFja2VuZF9kaXNjYXJkX2luZm8gIT0gTlVMTA0KIAkg ICYmICgqYmVkLT5lbGZfYmFja2VuZF9kaXNjYXJkX2luZm8pIChhYmZkLCAm Y29va2llLCBpbmZvKSkNCiAJcmV0ID0gVFJVRTsNCiANCiAgICAgICBmaW5p X3JlbG9jX2Nvb2tpZSAoJmNvb2tpZSwgYWJmZCk7DQogICAgIH0NCi0gIF9i ZmRfZWxmX2VuZF9laF9mcmFtZV9wYXJzaW5nIChpbmZvKTsNCisgIGlmIChf YmZkX2VsZl9lbmRfZWhfZnJhbWVfcGFyc2luZyAoaW5mbykpDQorICAgIHJl dCA9IFRSVUU7DQogDQotICBpZiAoaW5mby0+ZWhfZnJhbWVfaGRyDQotICAg ICAgJiYgIWluZm8tPnJlbG9jYXRhYmxlDQorICBpZiAoIWluZm8tPnJlbG9j YXRhYmxlDQogICAgICAgJiYgX2JmZF9lbGZfZGlzY2FyZF9zZWN0aW9uX2Vo X2ZyYW1lX2hkciAob3V0cHV0X2JmZCwgaW5mbykpDQogICAgIHJldCA9IFRS VUU7DQogDQpkaWZmIC0tZ2l0IGEvYmZkL2VsZnh4LW1pcHMuYyBiL2JmZC9l bGZ4eC1taXBzLmMNCmluZGV4IGY1MTg0NWIuLjFkZDMyZGM4IDEwMDY0NA0K LS0tIGEvYmZkL2VsZnh4LW1pcHMuYw0KKysrIGIvYmZkL2VsZnh4LW1pcHMu Yw0KQEAgLTM2LDYgKzM2LDcgQEANCiAjaW5jbHVkZSAiZWxmeHgtbWlwcy5o Ig0KICNpbmNsdWRlICJlbGYvbWlwcy5oIg0KICNpbmNsdWRlICJlbGYtdnh3 b3Jrcy5oIg0KKyNpbmNsdWRlICJkd2FyZjIuaCINCiANCiAvKiBHZXQgdGhl IEVDT0ZGIHN3YXBwaW5nIHJvdXRpbmVzLiAgKi8NCiAjaW5jbHVkZSAiY29m Zi9zeW0uaCINCkBAIC01MDgsNiArNTA5LDkgQEAgc3RydWN0IG1pcHNfZWxm X2xpbmtfaGFzaF90YWJsZQ0KICAgICAgcmV0dXJucyBudWxsLiAgKi8NCiAg IGFzZWN0aW9uICooKmFkZF9zdHViX3NlY3Rpb24pIChjb25zdCBjaGFyICos IGFzZWN0aW9uICosIGFzZWN0aW9uICopOw0KIA0KKyAgLyogSG93IHRvIGlu dGVycHJldCBSX01JUFNfRUguICAqLw0KKyAgaW50IGVoX3JlbG9jX3R5cGU7 DQorDQogICAvKiBTbWFsbCBsb2NhbCBzeW0gY2FjaGUuICAqLw0KICAgc3Ry dWN0IHN5bV9jYWNoZSBzeW1fY2FjaGU7DQogDQpAQCAtNTExMyw2ICs1MTE3 LDE3IEBAIG1pcHNfZWxmX3JlbG9jYXRpb25fbmVlZHNfbGEyNV9zdHViIChi ZmQgKmlucHV0X2JmZCwgaW50IHJfdHlwZSwNCiAgICAgICByZXR1cm4gRkFM U0U7DQogICAgIH0NCiB9DQorDQorLyogT24gc29tZSB0YXJnZXRzIFJfTUlQ U19FSCBpcyBpbnRlcnByZXRlZCBhcyBSX01JUFNfUEMzMi4gICovDQorc3Rh dGljIGludA0KK21pcHNfZWxmX3JlYWxfcmVsb2MgKHN0cnVjdCBiZmRfbGlu a19pbmZvICppbmZvLCBpbnQgcl90eXBlKQ0KK3sNCisgIHN0cnVjdCBtaXBz X2VsZl9saW5rX2hhc2hfdGFibGUgKmh0YWIgPSBtaXBzX2VsZl9oYXNoX3Rh YmxlIChpbmZvKTsNCisgIGlmIChyX3R5cGUgPT0gUl9NSVBTX0VIKQ0KKyAg ICByZXR1cm4gaHRhYi0+ZWhfcmVsb2NfdHlwZTsNCisNCisgIHJldHVybiBy X3R5cGU7DQorfQ0KIAwNCiAvKiBDYWxjdWxhdGUgdGhlIHZhbHVlIHByb2R1 Y2VkIGJ5IHRoZSBSRUxPQ0FUSU9OICh3aGljaCBjb21lcyBmcm9tDQogICAg dGhlIElOUFVUX0JGRCkuICBUaGUgQURERU5EIGlzIHRoZSBhZGRlbmQgdG8g dXNlIGZvciB0aGlzDQpAQCAtNTE4OCw2ICs1MjAzLDcgQEAgbWlwc19lbGZf Y2FsY3VsYXRlX3JlbG9jYXRpb24gKGJmZCAqYWJmZCwgYmZkICppbnB1dF9i ZmQsDQogICAvKiBQYXJzZSB0aGUgcmVsb2NhdGlvbi4gICovDQogICByX3N5 bW5keCA9IEVMRl9SX1NZTSAoaW5wdXRfYmZkLCByZWxvY2F0aW9uLT5yX2lu Zm8pOw0KICAgcl90eXBlID0gRUxGX1JfVFlQRSAoaW5wdXRfYmZkLCByZWxv Y2F0aW9uLT5yX2luZm8pOw0KKyAgcl90eXBlID0gbWlwc19lbGZfcmVhbF9y ZWxvYyAoaW5mbywgcl90eXBlKTsNCiAgIHAgPSAoaW5wdXRfc2VjdGlvbi0+ b3V0cHV0X3NlY3Rpb24tPnZtYQ0KICAgICAgICArIGlucHV0X3NlY3Rpb24t Pm91dHB1dF9vZmZzZXQNCiAgICAgICAgKyByZWxvY2F0aW9uLT5yX29mZnNl dCk7DQpAQCAtNTU0MSw2ICs1NTU3LDcgQEAgbWlwc19lbGZfY2FsY3VsYXRl X3JlbG9jYXRpb24gKGJmZCAqYWJmZCwgYmZkICppbnB1dF9iZmQsDQogICAg IGNhc2UgUl9NSUNST01JUFNfVExTX0dEOg0KICAgICBjYXNlIFJfTUlDUk9N SVBTX1RMU19HT1RUUFJFTDoNCiAgICAgY2FzZSBSX01JQ1JPTUlQU19UTFNf TERNOg0KKyAgICBjYXNlIFJfTUlQU19FSDoNCiAgICAgICAvKiBGaW5kIHRo ZSBpbmRleCBpbnRvIHRoZSBHT1Qgd2hlcmUgdGhpcyB2YWx1ZSBpcyBsb2Nh dGVkLiAgKi8NCiAgICAgICBpZiAodGxzX2xkbV9yZWxvY19wIChyX3R5cGUp KQ0KIAl7DQpAQCAtNTg3NSw2ICs1ODkyLDExIEBAIG1pcHNfZWxmX2NhbGN1 bGF0ZV9yZWxvY2F0aW9uIChiZmQgKmFiZmQsIGJmZCAqaW5wdXRfYmZkLA0K ICAgICAgIG92ZXJmbG93ZWRfcCA9IG1pcHNfZWxmX292ZXJmbG93X3AgKHZh bHVlLCAxNik7DQogICAgICAgYnJlYWs7DQogDQorICAgIGNhc2UgUl9NSVBT X0VIOg0KKyAgICAgIHZhbHVlID0gZzsNCisgICAgICBvdmVyZmxvd2VkX3Ag PSBtaXBzX2VsZl9vdmVyZmxvd19wICh2YWx1ZSwgMzIpOw0KKyAgICAgIGJy ZWFrOw0KKw0KICAgICBjYXNlIFJfTUlQU19HUFJFTDMyOg0KICAgICAgIHZh bHVlID0gKGFkZGVuZCArIHN5bWJvbCArIGdwMCAtIGdwKTsNCiAgICAgICBp ZiAoIXNhdmVfYWRkZW5kKQ0KQEAgLTYwNDEsNiArNjA2Myw3IEBAIG1pcHNf ZWxmX3BlcmZvcm1fcmVsb2NhdGlvbiAoc3RydWN0IGJmZF9saW5rX2luZm8g KmluZm8sDQogICBiZmRfYnl0ZSAqbG9jYXRpb247DQogICBpbnQgcl90eXBl ID0gRUxGX1JfVFlQRSAoaW5wdXRfYmZkLCByZWxvY2F0aW9uLT5yX2luZm8p Ow0KIA0KKyAgcl90eXBlID0gbWlwc19lbGZfcmVhbF9yZWxvYyAoaW5mbywg cl90eXBlKTsNCiAgIC8qIEZpZ3VyZSBvdXQgd2hlcmUgdGhlIHJlbG9jYXRp b24gaXMgb2NjdXJyaW5nLiAgKi8NCiAgIGxvY2F0aW9uID0gY29udGVudHMg KyByZWxvY2F0aW9uLT5yX29mZnNldDsNCiANCkBAIC02MTY2LDYgKzYxODks NyBAQCBtaXBzX2VsZl9jcmVhdGVfZHluYW1pY19yZWxvY2F0aW9uIChiZmQg Km91dHB1dF9iZmQsDQogICBCRkRfQVNTRVJUIChodGFiICE9IE5VTEwpOw0K IA0KICAgcl90eXBlID0gRUxGX1JfVFlQRSAob3V0cHV0X2JmZCwgcmVsLT5y X2luZm8pOw0KKyAgcl90eXBlID0gbWlwc19lbGZfcmVhbF9yZWxvYyAoaW5m bywgcl90eXBlKTsNCiAgIGR5bm9iaiA9IGVsZl9oYXNoX3RhYmxlIChpbmZv KS0+ZHlub2JqOw0KICAgc3JlbG9jID0gbWlwc19lbGZfcmVsX2R5bl9zZWN0 aW9uIChpbmZvLCBGQUxTRSk7DQogICBCRkRfQVNTRVJUIChzcmVsb2MgIT0g TlVMTCk7DQpAQCAtNzk4MSw2ICs4MDA1LDcgQEAgX2JmZF9taXBzX2VsZl9j aGVja19yZWxvY3MgKGJmZCAqYWJmZCwgc3RydWN0IGJmZF9saW5rX2luZm8g KmluZm8sDQogDQogICAgICAgcl9zeW1uZHggPSBFTEZfUl9TWU0gKGFiZmQs IHJlbC0+cl9pbmZvKTsNCiAgICAgICByX3R5cGUgPSBFTEZfUl9UWVBFIChh YmZkLCByZWwtPnJfaW5mbyk7DQorICAgICAgcl90eXBlID0gbWlwc19lbGZf cmVhbF9yZWxvYyAoaW5mbywgcl90eXBlKTsNCiANCiAgICAgICBpZiAocl9z eW1uZHggPCBleHRzeW1vZmYpDQogCWggPSBOVUxMOw0KQEAgLTgwNTUsNiAr ODA4MCw3IEBAIF9iZmRfbWlwc19lbGZfY2hlY2tfcmVsb2NzIChiZmQgKmFi ZmQsIHN0cnVjdCBiZmRfbGlua19pbmZvICppbmZvLA0KIAljYXNlIFJfTUlD Uk9NSVBTX1RMU19HT1RUUFJFTDoNCiAJY2FzZSBSX01JQ1JPTUlQU19UTFNf R0Q6DQogCWNhc2UgUl9NSUNST01JUFNfVExTX0xETToNCisJY2FzZSBSX01J UFNfRUg6DQogCSAgaWYgKGR5bm9iaiA9PSBOVUxMKQ0KIAkgICAgZWxmX2hh c2hfdGFibGUgKGluZm8pLT5keW5vYmogPSBkeW5vYmogPSBhYmZkOw0KIAkg IGlmICghbWlwc19lbGZfY3JlYXRlX2dvdF9zZWN0aW9uIChkeW5vYmosIGlu Zm8pKQ0KQEAgLTgxNjgsNyArODE5NCw4IEBAIF9iZmRfbWlwc19lbGZfY2hl Y2tfcmVsb2NzIChiZmQgKmFiZmQsIHN0cnVjdCBiZmRfbGlua19pbmZvICpp bmZvLA0KICAgICAgIGVsc2UgaWYgKGNhbGxfbG8xNl9yZWxvY19wIChyX3R5 cGUpDQogCSAgICAgICB8fCBnb3RfbG8xNl9yZWxvY19wIChyX3R5cGUpDQog CSAgICAgICB8fCBnb3RfZGlzcF9yZWxvY19wIChyX3R5cGUpDQotCSAgICAg ICB8fCAoZ290MTZfcmVsb2NfcCAocl90eXBlKSAmJiBodGFiLT5pc192eHdv cmtzKSkNCisJICAgICAgIHx8IChnb3QxNl9yZWxvY19wIChyX3R5cGUpICYm IGh0YWItPmlzX3Z4d29ya3MpDQorCSAgICAgICB8fCByX3R5cGUgPT0gUl9N SVBTX0VIKQ0KIAl7DQogCSAgLyogV2UgbWF5IG5lZWQgYSBsb2NhbCBHT1Qg ZW50cnkgZm9yIHRoaXMgcmVsb2NhdGlvbi4gIFdlDQogCSAgICAgZG9uJ3Qg Y291bnQgUl9NSVBTX0dPVF9QQUdFIGJlY2F1c2Ugd2UgY2FuIGVzdGltYXRl IHRoZQ0KQEAgLTgyNzYsNiArODMwMyw3IEBAIF9iZmRfbWlwc19lbGZfY2hl Y2tfcmVsb2NzIChiZmQgKmFiZmQsIHN0cnVjdCBiZmRfbGlua19pbmZvICpp bmZvLA0KIA0KIAljYXNlIFJfTUlQU19HT1RfRElTUDoNCiAJY2FzZSBSX01J Q1JPTUlQU19HT1RfRElTUDoNCisJY2FzZSBSX01JUFNfRUg6DQogCSAgaWYg KGggJiYgIW1pcHNfZWxmX3JlY29yZF9nbG9iYWxfZ290X3N5bWJvbCAoaCwg YWJmZCwgaW5mbywNCiAJCQkJCQkgICAgICAgRkFMU0UsIHJfdHlwZSkpDQog CSAgICByZXR1cm4gRkFMU0U7DQpAQCAtOTY4NSw4ICs5NzEzLDEwIEBAIG1p cHNfZWxmX2FkanVzdF9hZGRlbmQgKGJmZCAqb3V0cHV0X2JmZCwgc3RydWN0 IGJmZF9saW5rX2luZm8gKmluZm8sDQogICBpZiAobWlwc19lbGZfbG9jYWxf cmVsb2NhdGlvbl9wIChpbnB1dF9iZmQsIHJlbCwgbG9jYWxfc2VjdGlvbnMp KQ0KICAgICB7DQogICAgICAgcl90eXBlID0gRUxGX1JfVFlQRSAob3V0cHV0 X2JmZCwgcmVsLT5yX2luZm8pOw0KKyAgICAgIHJfdHlwZSA9IG1pcHNfZWxm X3JlYWxfcmVsb2MgKGluZm8sIHJfdHlwZSk7DQogICAgICAgaWYgKGdwcmVs MTZfcmVsb2NfcCAocl90eXBlKQ0KIAkgIHx8IHJfdHlwZSA9PSBSX01JUFNf R1BSRUwzMg0KKwkgIHx8IHJfdHlwZSA9PSBSX01JUFNfRUgNCiAJICB8fCBs aXRlcmFsX3JlbG9jX3AgKHJfdHlwZSkpDQogCXsNCiAJICByZWwtPnJfYWRk ZW5kICs9IF9iZmRfZ2V0X2dwX3ZhbHVlIChpbnB1dF9iZmQpOw0KQEAgLTk3 OTIsNiArOTgyMiw3IEBAIF9iZmRfbWlwc19lbGZfcmVsb2NhdGVfc2VjdGlv biAoYmZkICpvdXRwdXRfYmZkLCBzdHJ1Y3QgYmZkX2xpbmtfaW5mbyAqaW5m bywNCiAgICAgICBzdHJ1Y3QgZWxmX2xpbmtfaGFzaF9lbnRyeSAqaDsNCiAg ICAgICBiZmRfYm9vbGVhbiByZWxfcmVsb2M7DQogDQorICAgICAgcl90eXBl ID0gbWlwc19lbGZfcmVhbF9yZWxvYyAoaW5mbywgcl90eXBlKTsNCiAgICAg ICByZWxfcmVsb2MgPSAoTkVXQUJJX1AgKGlucHV0X2JmZCkNCiAJCSAgICYm IG1pcHNfZWxmX3JlbF9yZWxvY2F0aW9uX3AgKGlucHV0X2JmZCwgaW5wdXRf c2VjdGlvbiwNCiAJCQkJCQkgcmVsb2NzLCByZWwpKTsNCkBAIC0xMzU2Miwx MiArMTM1OTMsMTQgQEAgX2JmZF9taXBzX2VsZl91c2VfcGx0c19hbmRfY29w eV9yZWxvY3MgKHN0cnVjdCBiZmRfbGlua19pbmZvICppbmZvKQ0KIH0NCiAN CiAvKiBBIGZ1bmN0aW9uIHRoYXQgdGhlIGxpbmtlciBjYWxscyB0byBzZWxl Y3QgYmV0d2VlbiBhbGwgb3Igb25seQ0KLSAgIDMyLWJpdCBtaWNyb01JUFMg aW5zdHJ1Y3Rpb25zLiAgKi8NCisgICAzMi1iaXQgbWljcm9NSVBTIGluc3Ry dWN0aW9ucywgYW5kIHRoZSBtZWFuaW5nIG9mIFJfTUlQU19FSC4gICovDQog DQogdm9pZA0KLV9iZmRfbWlwc19lbGZfaW5zbjMyIChzdHJ1Y3QgYmZkX2xp bmtfaW5mbyAqaW5mbywgYmZkX2Jvb2xlYW4gb24pDQorX2JmZF9taXBzX2Vs Zl9saW5rZXJfZmxhZ3MgKHN0cnVjdCBiZmRfbGlua19pbmZvICppbmZvLCBi ZmRfYm9vbGVhbiBpbnNuMzIsDQorCQkJICAgIGludCBlaF9yZWxvYykNCiB7 DQotICBtaXBzX2VsZl9oYXNoX3RhYmxlIChpbmZvKS0+aW5zbjMyID0gb247 DQorICBtaXBzX2VsZl9oYXNoX3RhYmxlIChpbmZvKS0+aW5zbjMyID0gaW5z bjMyOw0KKyAgbWlwc19lbGZfaGFzaF90YWJsZSAoaW5mbyktPmVoX3JlbG9j X3R5cGUgPSBlaF9yZWxvYzsNCiB9DQogDA0KIC8qIFdlIG5lZWQgdG8gdXNl IGEgc3BlY2lhbCBsaW5rIHJvdXRpbmUgdG8gaGFuZGxlIHRoZSAucmVnaW5m byBhbmQNCkBAIC0xNTM1MiwzICsxNTM4NSwxNyBAQCBfYmZkX21pcHNfcG9z dF9wcm9jZXNzX2hlYWRlcnMgKGJmZCAqYWJmZCwgc3RydWN0IGJmZF9saW5r X2luZm8gKmxpbmtfaW5mbykNCiANCiAgIF9iZmRfZWxmX3Bvc3RfcHJvY2Vz c19oZWFkZXJzIChhYmZkLCBsaW5rX2luZm8pOw0KIH0NCisNCitpbnQNCitf YmZkX21pcHNfZWxmX2NvbXBhY3RfZWhfZW5jb2RpbmcgKHN0cnVjdCBiZmRf bGlua19pbmZvICpsaW5rX2luZm8pDQorew0KKyAgc3dpdGNoIChtaXBzX2Vs Zl9oYXNoX3RhYmxlIChsaW5rX2luZm8pIC0+ZWhfcmVsb2NfdHlwZSkNCisg ICAgew0KKyAgICBjYXNlIFJfTUlQU19FSDoNCisgICAgICByZXR1cm4gRFdf RUhfUEVfZGF0YXJlbCB8IERXX0VIX1BFX2luZGlyZWN0IHwgRFdfRUhfUEVf c2RhdGE0Ow0KKyAgICBjYXNlIFJfTUlQU19QQzMyOg0KKyAgICAgIHJldHVy biBEV19FSF9QRV9wY3JlbCB8IERXX0VIX1BFX3NkYXRhNDsNCisgICAgZGVm YXVsdDoNCisgICAgICBhYm9ydCgpOw0KKyAgICB9DQorfQ0KZGlmZiAtLWdp dCBhL2JmZC9lbGZ4eC1taXBzLmggYi9iZmQvZWxmeHgtbWlwcy5oDQppbmRl eCBmMjdkYzE1Li40MDYwMTQyIDEwMDY0NA0KLS0tIGEvYmZkL2VsZnh4LW1p cHMuaA0KKysrIGIvYmZkL2VsZnh4LW1pcHMuaA0KQEAgLTE0Nyw4ICsxNDcs OCBAQCBleHRlcm4gYmZkX2Jvb2xlYW4gX2JmZF9taXBzX2VsZl9pZ25vcmVf dW5kZWZfc3ltYm9sDQogICAoc3RydWN0IGVsZl9saW5rX2hhc2hfZW50cnkg Kik7DQogZXh0ZXJuIHZvaWQgX2JmZF9taXBzX2VsZl91c2VfcGx0c19hbmRf Y29weV9yZWxvY3MNCiAgIChzdHJ1Y3QgYmZkX2xpbmtfaW5mbyAqKTsNCi1l eHRlcm4gdm9pZCBfYmZkX21pcHNfZWxmX2luc24zMg0KLSAgKHN0cnVjdCBi ZmRfbGlua19pbmZvICosIGJmZF9ib29sZWFuKTsNCitleHRlcm4gdm9pZCBf YmZkX21pcHNfZWxmX2xpbmtlcl9mbGFncw0KKyAgKHN0cnVjdCBiZmRfbGlu a19pbmZvICosIGJmZF9ib29sZWFuLCBpbnQpOw0KIGV4dGVybiBiZmRfYm9v bGVhbiBfYmZkX21pcHNfZWxmX2luaXRfc3R1YnMNCiAgIChzdHJ1Y3QgYmZk X2xpbmtfaW5mbyAqLA0KICAgIGFzZWN0aW9uICooKikgKGNvbnN0IGNoYXIg KiwgYXNlY3Rpb24gKiwgYXNlY3Rpb24gKikpOw0KQEAgLTE2Myw2ICsxNjMs OCBAQCBleHRlcm4gY29uc3Qgc3RydWN0IGJmZF9lbGZfc3BlY2lhbF9zZWN0 aW9uIF9iZmRfbWlwc19lbGZfc3BlY2lhbF9zZWN0aW9ucyBbXTsNCiANCiBl eHRlcm4gYmZkX2Jvb2xlYW4gX2JmZF9taXBzX2VsZl9jb21tb25fZGVmaW5p dGlvbiAoRWxmX0ludGVybmFsX1N5bSAqKTsNCiANCitleHRlcm4gaW50IF9i ZmRfbWlwc19lbGZfY29tcGFjdF9laF9lbmNvZGluZyAoc3RydWN0IGJmZF9s aW5rX2luZm8gKik7DQorDQogc3RhdGljIGlubGluZSBiZmRfYm9vbGVhbg0K IGdwcmVsMTZfcmVsb2NfcCAodW5zaWduZWQgaW50IHJfdHlwZSkNCiB7DQpA QCAtMTg2LDMgKzE4OCw0IEBAIGxpdGVyYWxfcmVsb2NfcCAoaW50IHJfdHlw ZSkNCiAjZGVmaW5lIGVsZl9iYWNrZW5kX21lcmdlX3N5bWJvbF9hdHRyaWJ1 dGUgIF9iZmRfbWlwc19lbGZfbWVyZ2Vfc3ltYm9sX2F0dHJpYnV0ZQ0KICNk ZWZpbmUgZWxmX2JhY2tlbmRfaWdub3JlX3VuZGVmX3N5bWJvbCBfYmZkX21p cHNfZWxmX2lnbm9yZV91bmRlZl9zeW1ib2wNCiAjZGVmaW5lIGVsZl9iYWNr ZW5kX3Bvc3RfcHJvY2Vzc19oZWFkZXJzIF9iZmRfbWlwc19wb3N0X3Byb2Nl c3NfaGVhZGVycw0KKyNkZWZpbmUgZWxmX2JhY2tlbmRfY29tcGFjdF9laF9l bmNvZGluZyBfYmZkX21pcHNfZWxmX2NvbXBhY3RfZWhfZW5jb2RpbmcNCmRp ZmYgLS1naXQgYS9iZmQvZWxmeHgtdGFyZ2V0LmggYi9iZmQvZWxmeHgtdGFy Z2V0LmgNCmluZGV4IDJlN2NiY2EuLjg1MzNhNjkgMTAwNjQ0DQotLS0gYS9i ZmQvZWxmeHgtdGFyZ2V0LmgNCisrKyBiL2JmZC9lbGZ4eC10YXJnZXQuaA0K QEAgLTY2NCw2ICs2NjQsMTAgQEANCiAjZGVmaW5lIGVsZl9iYWNrZW5kX21h eWJlX2Z1bmN0aW9uX3N5bSBfYmZkX2VsZl9tYXliZV9mdW5jdGlvbl9zeW0N CiAjZW5kaWYNCiANCisjaWZuZGVmIGVsZl9iYWNrZW5kX2NvbXBhY3RfZWhf ZW5jb2RpbmcNCisjZGVmaW5lIGVsZl9iYWNrZW5kX2NvbXBhY3RfZWhfZW5j b2RpbmcgTlVMTA0KKyNlbmRpZg0KKw0KICNpZm5kZWYgZWxmX21hdGNoX3By aW9yaXR5DQogI2RlZmluZSBlbGZfbWF0Y2hfcHJpb3JpdHkgXA0KICAgKEVM Rl9BUkNIID09IGJmZF9hcmNoX3Vua25vd24gPyAyIDogRUxGX09TQUJJID09 IEVMRk9TQUJJX05PTkUgPyAxIDogMCkNCkBAIC03NzQsNiArNzc4LDcgQEAg c3RhdGljIHN0cnVjdCBlbGZfYmFja2VuZF9kYXRhIGVsZk5OX2JlZCA9DQog ICBlbGZfYmFja2VuZF9vYmpfYXR0cnNfc2VjdGlvbl90eXBlLA0KICAgZWxm X2JhY2tlbmRfb2JqX2F0dHJzX29yZGVyLA0KICAgZWxmX2JhY2tlbmRfb2Jq X2F0dHJzX2hhbmRsZV91bmtub3duLA0KKyAgZWxmX2JhY2tlbmRfY29tcGFj dF9laF9lbmNvZGluZywNCiAgIGVsZl9iYWNrZW5kX3N0YXRpY190bHNfYWxp Z25tZW50LA0KICAgZWxmX2JhY2tlbmRfc3RhY2tfYWxpZ24sDQogICBlbGZf YmFja2VuZF9jb2xsZWN0LA0KZGlmZiAtLWdpdCBhL2JmZC9zZWN0aW9uLmMg Yi9iZmQvc2VjdGlvbi5jDQppbmRleCBkMjFkZjFjLi5mNzlmOGMwIDEwMDY0 NA0KLS0tIGEvYmZkL3NlY3Rpb24uYw0KKysrIGIvYmZkL3NlY3Rpb24uYw0K QEAgLTM4OSw2ICszODksNyBAQCBDT0RFX0ZSQUdNRU5UDQogLiNkZWZpbmUg U0VDX0lORk9fVFlQRV9FSF9GUkFNRSAgMw0KIC4jZGVmaW5lIFNFQ19JTkZP X1RZUEVfSlVTVF9TWU1TIDQNCiAuI2RlZmluZSBTRUNfSU5GT19UWVBFX1RB UkdFVCAgICA1DQorLiNkZWZpbmUgU0VDX0lORk9fVFlQRV9FSF9GUkFNRV9F TlRSWSA2DQogLg0KIC4gIHsqIE5vbnplcm8gaWYgdGhpcyBzZWN0aW9uIHVz ZXMgUkVMQSByZWxvY2F0aW9ucywgcmF0aGVyIHRoYW4gUkVMLiAgKn0NCiAu ICB1bnNpZ25lZCBpbnQgdXNlX3JlbGFfcDoxOw0KZGlmZiAtLWdpdCBhL2dh cy9jb25maWcvdGMtbWlwcy5jIGIvZ2FzL2NvbmZpZy90Yy1taXBzLmMNCmlu ZGV4IDM0ZjFiZjAuLjkwNjg4ZjEgMTAwNjQ0DQotLS0gYS9nYXMvY29uZmln L3RjLW1pcHMuYw0KKysrIGIvZ2FzL2NvbmZpZy90Yy1taXBzLmMNCkBAIC0x MjY1LDYgKzEyNjUsNyBAQCBzdGF0aWMgdm9pZCBzX2R0cHJlbGR3b3JkIChp bnQpOw0KIHN0YXRpYyB2b2lkIHNfdHByZWx3b3JkIChpbnQpOw0KIHN0YXRp YyB2b2lkIHNfdHByZWxkd29yZCAoaW50KTsNCiBzdGF0aWMgdm9pZCBzX2dw dmFsdWUgKGludCk7DQorc3RhdGljIHZvaWQgc19mb3JjZV9ncHdvcmQgKGlu dCk7DQogc3RhdGljIHZvaWQgc19ncHdvcmQgKGludCk7DQogc3RhdGljIHZv aWQgc19ncGR3b3JkIChpbnQpOw0KIHN0YXRpYyB2b2lkIHNfZWh3b3JkIChp bnQpOw0KQEAgLTE2NDgsNiArMTY0OSw3IEBAIHN0YXRpYyBjb25zdCBwc2V1 ZG9fdHlwZVMgbWlwc19wc2V1ZG9fdGFibGVbXSA9DQogICB7InRwcmVsd29y ZCIsIHNfdHByZWx3b3JkLCAwfSwNCiAgIHsidHByZWxkd29yZCIsIHNfdHBy ZWxkd29yZCwgMH0sDQogICB7ImdwdmFsdWUiLCBzX2dwdmFsdWUsIDB9LA0K KyAgeyJmb3JjZWdwd29yZCIsIHNfZm9yY2VfZ3B3b3JkLCAwfSwNCiAgIHsi Z3B3b3JkIiwgc19ncHdvcmQsIDB9LA0KICAgeyJncGR3b3JkIiwgc19ncGR3 b3JkLCAwfSwNCiAgIHsiZWh3b3JkIiwgc19laHdvcmQsIDB9LA0KQEAgLTE1 NTc0LDIwICsxNTU3NiwxMyBAQCBzX2dwdmFsdWUgKGludCBpZ25vcmUgQVRU UklCVVRFX1VOVVNFRCkNCiAgICBjb2RlLiAgSXQgZ2VuZXJhdGVzIGEgMzIg Yml0IEdQIHJlbGF0aXZlIHJlbG9jLiAgKi8NCiANCiBzdGF0aWMgdm9pZA0K LXNfZ3B3b3JkIChpbnQgaWdub3JlIEFUVFJJQlVURV9VTlVTRUQpDQorc19m b3JjZV9ncHdvcmQgKGludCBpZ25vcmUgQVRUUklCVVRFX1VOVVNFRCkNCiB7 DQogICBzZWdtZW50X2luZm9fdHlwZSAqc2k7DQogICBzdHJ1Y3QgaW5zbl9s YWJlbF9saXN0ICpsOw0KICAgZXhwcmVzc2lvblMgZXg7DQogICBjaGFyICpw Ow0KIA0KLSAgLyogV2hlbiBub3QgZ2VuZXJhdGluZyBQSUMgY29kZSwgdGhp cyBpcyB0cmVhdGVkIGFzIC53b3JkLiAgKi8NCi0gIGlmIChtaXBzX3BpYyAh PSBTVlI0X1BJQykNCi0gICAgew0KLSAgICAgIHNfY29ucyAoMik7DQotICAg ICAgcmV0dXJuOw0KLSAgICB9DQotDQogICBzaSA9IHNlZ19pbmZvIChub3df c2VnKTsNCiAgIGwgPSBzaS0+bGFiZWxfbGlzdDsNCiAgIG1pcHNfZW1pdF9k ZWxheXMgKCk7DQpAQCAtMTU2NTMsNiArMTU2NDgsMTggQEAgc19ncGR3b3Jk IChpbnQgaWdub3JlIEFUVFJJQlVURV9VTlVTRUQpDQogICBkZW1hbmRfZW1w dHlfcmVzdF9vZl9saW5lICgpOw0KIH0NCiANCitzdGF0aWMgdm9pZA0KK3Nf Z3B3b3JkIChpbnQgaWdub3JlIEFUVFJJQlVURV9VTlVTRUQpDQorew0KKyAg LyogV2hlbiBub3QgZ2VuZXJhdGluZyBQSUMgY29kZSwgdGhpcyBpcyB0cmVh dGVkIGFzIC53b3JkLiAgKi8NCisgIGlmIChtaXBzX3BpYyAhPSBTVlI0X1BJ QykNCisgICAgew0KKyAgICAgIHNfY29ucyAoMik7DQorICAgICAgcmV0dXJu Ow0KKyAgICB9DQorICBzX2ZvcmNlX2dwd29yZCAoaWdub3JlKTsNCit9DQor DQogLyogSGFuZGxlIHRoZSAuZWh3b3JkIHBzZXVkby1vcC4gIFRoaXMgaXMg dXNlZCB3aGVuIGdlbmVyYXRpbmcgdW53aW5kaW5nDQogICAgdGFibGVzLiAg SXQgZ2VuZXJhdGVzIGEgUl9NSVBTX0VIIHJlbG9jLiAgKi8NCiANCkBAIC0x NTY3Niw3ICsxNTY4Myw3IEBAIHNfZWh3b3JkIChpbnQgaWdub3JlIEFUVFJJ QlVURV9VTlVTRUQpDQogICBwID0gZnJhZ19tb3JlICg0KTsNCiAgIG1kX251 bWJlcl90b19jaGFycyAocCwgMCwgNCk7DQogICBmaXhfbmV3X2V4cCAoZnJh Z19ub3csIHAgLSBmcmFnX25vdy0+ZnJfbGl0ZXJhbCwgNCwgJmV4LCBGQUxT RSwNCi0JICAgICAgIEJGRF9SRUxPQ19NSVBTX0VIKTsNCisJICAgICAgIEJG RF9SRUxPQ18zMl9QQ1JFTCk7DQogDQogICBkZW1hbmRfZW1wdHlfcmVzdF9v Zl9saW5lICgpOw0KIH0NCkBAIC0xODI0OSwzICsxODI1NiwxMyBAQCB0Y19t aXBzX3JlZ25hbWVfdG9fZHcycmVnbnVtIChjaGFyICpyZWduYW1lKQ0KIA0K ICAgcmV0dXJuIHJlZ251bTsNCiB9DQorDQorI2lmIGRlZmluZWQgKE9CSl9F TEYpDQorYmZkX3JlbG9jX2NvZGVfcmVhbF90eXBlDQorbWlwc19jZmlfcmVs b2NfZm9yX2VuY29kaW5nIChpbnQgZW5jb2RpbmcpDQorew0KKyAgaWYgKChl bmNvZGluZyAmIDB4NzApID09IERXX0VIX1BFX2RhdGFyZWwpDQorICAgIHJl dHVybiBCRkRfUkVMT0NfR1BSRUwzMjsNCisgIHJldHVybiBCRkRfUkVMT0Nf MzJfUENSRUw7DQorfQ0KKyNlbmRpZg0KZGlmZiAtLWdpdCBhL2dhcy9jb25m aWcvdGMtbWlwcy5oIGIvZ2FzL2NvbmZpZy90Yy1taXBzLmgNCmluZGV4IGM3 ZWFhMDQuLmEzMDAwNjIgMTAwNjQ0DQotLS0gYS9nYXMvY29uZmlnL3RjLW1p cHMuaA0KKysrIGIvZ2FzL2NvbmZpZy90Yy1taXBzLmgNCkBAIC0xNzcsNyAr MTc3LDkgQEAgZXh0ZXJuIGVudW0gZHdhcmYyX2Zvcm1hdCBtaXBzX2R3YXJm Ml9mb3JtYXQgKGFzZWN0aW9uICopOw0KIA0KIGV4dGVybiBpbnQgbWlwc19k d2FyZjJfYWRkcl9zaXplICh2b2lkKTsNCiAjZGVmaW5lIERXQVJGMl9BRERS X1NJWkUoYmZkKSBtaXBzX2R3YXJmMl9hZGRyX3NpemUgKCkNCi0jZGVmaW5l IERXQVJGMl9GREVfUkVMT0NfU0laRSBtaXBzX2R3YXJmMl9hZGRyX3NpemUg KCkNCisjZGVmaW5lIERXQVJGMl9GREVfUkVMT0NfU0laRSAoY29tcGFjdF9l aCA/IDQgOiBtaXBzX2R3YXJmMl9hZGRyX3NpemUgKCkpDQorI2RlZmluZSBE V0FSRjJfRkRFX1JFTE9DX0VOQ09ESU5HKGVuYykgXA0KKyAgKGVuYyB8IChj b21wYWN0X2VoID8gRFdfRUhfUEVfcGNyZWwgOiAwKSkNCiANCiAjZGVmaW5l IFRBUkdFVF9VU0VfQ0ZJUE9QIDENCiANCkBAIC0xOTAsNCArMTkyLDE4IEBA IGV4dGVybiBpbnQgdGNfbWlwc19yZWduYW1lX3RvX2R3MnJlZ251bSAoY2hh ciAqcmVnbmFtZSk7DQogI2RlZmluZSBEV0FSRjJfREVGQVVMVF9SRVRVUk5f Q09MVU1OIDMxDQogI2RlZmluZSBEV0FSRjJfQ0lFX0RBVEFfQUxJR05NRU5U ICgtNCkNCiANCisjaWYgZGVmaW5lZCAoT0JKX0VMRikNCisNCisjZGVmaW5l IHRjX2NmaV9yZWxvY19mb3JfZW5jb2RpbmcgbWlwc19jZmlfcmVsb2NfZm9y X2VuY29kaW5nDQorZXh0ZXJuIGJmZF9yZWxvY19jb2RlX3JlYWxfdHlwZSBt aXBzX2NmaV9yZWxvY19mb3JfZW5jb2RpbmcgKGludCBlbmNvZGluZyk7DQor DQorI2RlZmluZSB0Y19jZmlfc3BlY2lhbF9lbmNvZGluZyhlKQkJCQkgICBc DQorICAoKGUpID09IChEV19FSF9QRV9zZGF0YTQgfCBEV19FSF9QRV9kYXRh cmVsIHwgRFdfRUhfUEVfaW5kaXJlY3QpIFwNCisgICB8fCAoZSkgPT0gKERX X0VIX1BFX3NkYXRhNCB8IERXX0VIX1BFX3BjcmVsKSkNCisNCisjZGVmaW5l IHRjX2NvbXBhY3RfZWhfb3Bjb2RlX3N0b3AgMHg1Yw0KKyNkZWZpbmUgdGNf Y29tcGFjdF9laF9vcGNvZGVfcGFkIDB4NWYNCisNCisjZW5kaWYgLyogT0JK X0VMRiAqLw0KKw0KICNlbmRpZiAvKiBUQ19NSVBTICovDQpkaWZmIC0tZ2l0 IGEvZ2FzL2RvYy9hcy50ZXhpbmZvIGIvZ2FzL2RvYy9hcy50ZXhpbmZvDQpp bmRleCA3MzliNWI5Li45ZjQ1MmEwIDEwMDY0NA0KLS0tIGEvZ2FzL2RvYy9h cy50ZXhpbmZvDQorKysgYi9nYXMvZG9jL2FzLnRleGluZm8NCkBAIC00NTMx LDYgKzQ1MzEsOSBAQCBpZiBAdmFye3NlY3Rpb25fbGlzdH0gaXMgQGNvZGV7 LmRlYnVnX2ZyYW1lfSwgQGNvZGV7LmRlYnVnX2ZyYW1lfSBpcyBlbWl0dGVk Lg0KIFRvIGVtaXQgYm90aCB1c2UgQGNvZGV7LmVoX2ZyYW1lLCAuZGVidWdf ZnJhbWV9LiAgVGhlIGRlZmF1bHQgaWYgdGhpcw0KIGRpcmVjdGl2ZSBpcyBu b3QgdXNlZCBpcyBAY29kZXsuY2ZpX3NlY3Rpb25zIC5laF9mcmFtZX0uDQog DQorT24gdGFyZ2V0cyB0aGF0IHN1cHBvcnQgY29tcGFjdCB1bndpbmRpbmcg dGFibGVzIHRoZXNlIGNhbiBiZSBnZW5lcmF0ZWQNCitieSBzcGVjaWZ5aW5n IEBjb2Rley5laF9mcmFtZV9lbnRyeX0gaW5zdGVhZCBvZiBAY29kZXsuZWhf ZnJhbWV9Lg0KKw0KIEBzZWN0aW9uIEBjb2Rley5jZmlfc3RhcnRwcm9jIFtz aW1wbGVdfQ0KIEBjaW5kZXggQGNvZGV7Y2ZpX3N0YXJ0cHJvY30gZGlyZWN0 aXZlDQogQGNvZGV7LmNmaV9zdGFydHByb2N9IGlzIHVzZWQgYXQgdGhlIGJl Z2lubmluZyBvZiBlYWNoIGZ1bmN0aW9uIHRoYXQNCkBAIC00NTQ4LDYgKzQ1 NTEsNyBAQCB1bndpbmQgZW50cnkgcHJldmlvdXNseSBvcGVuZWQgYnkNCiBA Y29kZXsuY2ZpX3N0YXJ0cHJvY30sIGFuZCBlbWl0cyBpdCB0byBAY29kZXsu ZWhfZnJhbWV9Lg0KIA0KIEBzZWN0aW9uIEBjb2Rley5jZmlfcGVyc29uYWxp dHkgQHZhcntlbmNvZGluZ30gWywgQHZhcntleHB9XX0NCitAY2luZGV4IEBj b2Rle2NmaV9wZXJzb25hbGl0eX0gZGlyZWN0aXZlDQogQGNvZGV7LmNmaV9w ZXJzb25hbGl0eX0gZGVmaW5lcyBwZXJzb25hbGl0eSByb3V0aW5lIGFuZCBp dHMgZW5jb2RpbmcuDQogQHZhcntlbmNvZGluZ30gbXVzdCBiZSBhIGNvbnN0 YW50IGRldGVybWluaW5nIGhvdyB0aGUgcGVyc29uYWxpdHkNCiBzaG91bGQg YmUgZW5jb2RlZC4gIElmIGl0IGlzIDI1NSAoQGNvZGV7RFdfRUhfUEVfb21p dH0pLCBzZWNvbmQNCkBAIC00NTU4LDYgKzQ1NjIsMjIgQEAgY2FuIGJlIGxv YWRlZCBmcm9tLCBub3QgdGhlIHBlcnNvbmFsaXR5IHJvdXRpbmUgaXRzZWxm Lg0KIFRoZSBkZWZhdWx0IGFmdGVyIEBjb2Rley5jZmlfc3RhcnRwcm9jfSBp cyBAY29kZXsuY2ZpX3BlcnNvbmFsaXR5IDB4ZmZ9LA0KIG5vIHBlcnNvbmFs aXR5IHJvdXRpbmUuDQogDQorQHNlY3Rpb24gQGNvZGV7LmNmaV9wZXJzb25h bGl0eV9pZCBAdmFye2lkfX0NCitAY2luZGV4IEBjb2Rle2NmaV9wZXJzb25h bGl0eV9pZH0gZGlyZWN0aXZlDQorQGNvZGV7Y2ZpX3BlcnNvbmFsaXR5X2lk fSBkZWZpbmVzIGEgcGVyc29uYWxpdHkgcm91dGluZSBieSBpdHMgaW5kZXgg YXMNCitkZWZpbmVkIGluIGEgY29tcGFjdCB1bndpbmRpbmcgZm9ybWF0Lg0K K09ubHkgdmFsaWQgd2hlbiBnZW5lcmF0aW5nIGNvbXBhY3QgRUggZnJhbWVz IChpLmUuDQord2l0aCBAY29kZXsuY2ZpX3NlY3Rpb25zIGVoX2ZyYW1lX2Vu dHJ5fS4NCisNCitAc2VjdGlvbiBAY29kZXsuY2ZpX2ZkZV9kYXRhIFtAdmFy e29wY29kZTF9IFssIEBkb3Rze31dXX0NCitAY2luZGV4IEBjb2Rle2NmaV9m ZGVfZGF0YX0gZGlyZWN0aXZlDQorQGNvZGV7Y2ZpX2ZkZV9kYXRhfSBpcyB1 c2VkIHRvIGRlc2NyaWJlIHRoZSBjb21wYWN0IHVud2luZCBvcGNvZGVzIHRv IGJlDQordXNlZCBmb3IgdGhlIGN1cnJlbnQgZnVuY3Rpb24uICBUaGVzZSBh cmUgZW1pdHRlZCBpbmxpbmUgaW4gdGhlDQorQGNvZGV7LmVoX2ZyYW1lX2Vu dHJ5fSBzZWN0aW9uIGlmIHNtYWxsIGVub3VnaCBhbmQgdGhlcmUgaXMgbm8g TFNEQSwgb3INCitpbiB0aGUgQGNvZGV7LmdudS5leHRhYn0gc2VjdGlvbiBv dGhlcndpc2UuDQorT25seSB2YWxpZCB3aGVuIGdlbmVyYXRpbmcgY29tcGFj dCBFSCBmcmFtZXMgKGkuZS4NCit3aXRoIEBjb2Rley5jZmlfc2VjdGlvbnMg ZWhfZnJhbWVfZW50cnl9Lg0KKw0KIEBzZWN0aW9uIEBjb2Rley5jZmlfbHNk YSBAdmFye2VuY29kaW5nfSBbLCBAdmFye2V4cH1dfQ0KIEBjb2Rley5jZmlf bHNkYX0gZGVmaW5lcyBMU0RBIGFuZCBpdHMgZW5jb2RpbmcuDQogQHZhcntl bmNvZGluZ30gbXVzdCBiZSBhIGNvbnN0YW50IGRldGVybWluaW5nIGhvdyB0 aGUgTFNEQQ0KQEAgLTQ1NjYsNiArNDU4NiwyMiBAQCBhcmd1bWVudCBpcyBu b3QgcHJlc2VudCwgb3RoZXJ3aXNlIHNlY29uZCBhcmd1bWVudCBzaG91bGQg YmUgYSBjb25zdGFudA0KIG9yIGEgc3ltYm9sIG5hbWUuICBUaGUgZGVmYXVs dCBhZnRlciBAY29kZXsuY2ZpX3N0YXJ0cHJvY30gaXMgQGNvZGV7LmNmaV9s c2RhIDB4ZmZ9LA0KIG5vIExTREEuDQogDQorQHNlY3Rpb24gQGNvZGV7LmNm aV9pbmxpbmVfbHNkYX0gW0B2YXJ7YWxpZ259XQ0KK0Bjb2Rley5jZmlfaW5s aW5lX2xzZGF9IG1hcmtzIHRoZSBzdGFydCBvZiBhIExTREEgZGF0YSBzZWN0 aW9uIGFuZA0KK3N3aXRjaGVzIHRvIHRoZSBjb3JyZXNwb25kaW5nIEBjb2Rl ey5nbnUuZXh0YWJ9IHNlY3Rpb24uDQorTXVzdCBiZSBwcmVjZWRlZCBieSBh IENGSSBibG9jayBjb250YWluaW5nIGEgQGNvZGV7LmNmaV9sc2RhfSBkaXJl Y3RpdmUuDQorT25seSB2YWxpZCB3aGVuIGdlbmVyYXRpbmcgY29tcGFjdCBF SCBmcmFtZXMgKGkuZS4NCit3aXRoIEBjb2Rley5jZmlfc2VjdGlvbnMgZWhf ZnJhbWVfZW50cnl9Lg0KKw0KK1RoZSB0YWJsZSBoZWFkZXIgYW5kIHVud2lu ZGluZyBvcGNvZGVzIHdpbGwgYmUgZ2VuZXJhdGVkIGF0IHRoaXMgcG9pbnQs DQorc28gdGhhdCB0aGV5IGFyZSBpbW1lZGlhdGVseSBmb2xsb3dlZCBieSB0 aGUgTFNEQSBkYXRhLiAgVGhlIHN5bWJvbA0KK3JlZmVyZW5jZWQgYnkgdGhl IEBjb2Rley5jZmlfbHNkYX0gZGlyZWN0aXZlIHNob3VsZCBzdGlsbCBiZSBk ZWZpbmVkDQoraW4gY2FzZSBhIGZhbGxiYWNrIEZERSBiYXNlZCBlbmNvZGlu ZyBpcyB1c2VkLg0KKw0KK1RoZSBvcHRpb25hbCBAdmFye2FsaWdufSBhcmd1 bWVudCBzcGVjaWZpZXMgdGhlIGFsaWdubWVudCByZXF1aXJlZC4NCitUaGUg YWxpbm1lbnQgaXMgc3BlY2lmaWVkIGFzIGEgcG93ZXIgb2YgdHdvLCBhcyB3 aXRoIHRoZQ0KK0Bjb2Rley5wMmFsaWdufSBkaXJlY3RpdmUuDQorDQogQHNl Y3Rpb24gQGNvZGV7LmNmaV9kZWZfY2ZhIEB2YXJ7cmVnaXN0ZXJ9LCBAdmFy e29mZnNldH19DQogQGNvZGV7LmNmaV9kZWZfY2ZhfSBkZWZpbmVzIGEgcnVs ZSBmb3IgY29tcHV0aW5nIENGQSBhczogQGl7dGFrZQ0KIGFkZHJlc3MgZnJv bSBAdmFye3JlZ2lzdGVyfSBhbmQgYWRkIEB2YXJ7b2Zmc2V0fSB0byBpdH0u DQpAQCAtNDYyNyw3ICs0NjYzLDcgQEAgTWFyayBjdXJyZW50IGZ1bmN0aW9u IGFzIHNpZ25hbCB0cmFtcG9saW5lLg0KIEBzZWN0aW9uIEBjb2Rley5jZmlf d2luZG93X3NhdmV9DQogU1BBUkMgcmVnaXN0ZXIgd2luZG93IGhhcyBiZWVu IHNhdmVkLg0KIA0KLUBzZWN0aW9uIEBjb2Rley5jZmlfZXNjYXBlfSBAdmFy e2V4cHJlc3Npb259WywgQGRvdHN7fV0NCitAc2VjdGlvbiBAY29kZXsuY2Zp X2VzY2FwZSBAdmFye2V4cHJlc3Npb259WywgQGRvdHN7fV19DQogQWxsb3dz IHRoZSB1c2VyIHRvIGFkZCBhcmJpdHJhcnkgYnl0ZXMgdG8gdGhlIHVud2lu ZCBpbmZvLiAgT25lDQogbWlnaHQgdXNlIHRoaXMgdG8gYWRkIE9TLXNwZWNp ZmljIENGSSBvcGNvZGVzLCBvciBnZW5lcmljIENGSQ0KIG9wY29kZXMgdGhh dCBHQVMgZG9lcyBub3QgeWV0IHN1cHBvcnQuDQpAQCAtNDY0Myw2ICs0Njc5 LDIwIEBAIG1hcmsgYSBjb2RlIHNlZ21lbnQgdGhhdCBoYXMgb25seSBvbmUg cmV0dXJuIGFkZHJlc3Mgd2hpY2ggaXMgcmVhY2hlZA0KIGJ5IGEgZGlyZWN0 IGJyYW5jaCBhbmQgbm8gY29weSBvZiB0aGUgcmV0dXJuIGFkZHJlc3MgZXhp c3RzIGluIG1lbW9yeQ0KIG9yIGFub3RoZXIgcmVnaXN0ZXIuDQogDQorQHNl Y3Rpb24gQGNvZGV7LmNmaV9lcGlsb2d1ZV9iZWdpbn0NCitBIHBzZXVkby1v cGVyYXRpb24gd2hpY2ggbWFya3MgdGhlIGJlZ2lubmluZyBvZiB0aGUgZXBp bG9ndWUgaW4gYSANCitnaXZlbiBmdW5jdGlvbi4gIFRoaXMgaXMgY3VycmVu dGx5IHVzZWQgYnkgdGhlIGNvbXBhY3QgdW53aW5kLXRhYmxlDQoraW1wbGVt ZW50YXRpb24gKGZvciBleGNlcHRpb24gaGFuZGxpbmcpLCB3aGljaCBhc3N1 bWVzIGEgc2luZ2xlIHJlZ2lzdGVyDQorc3RhdGUgZm9yIHVud2luZGluZyB0 aHJvdWdob3V0IHRoZSBib2R5IG9mIGEgZnVuY3Rpb24uICBUaGUgZnVuY3Rp b24gaXMNCitzY2FubmVkLCBhbmQgQ0ZJIGRpcmVjdGl2ZXMgYXJlIHJld3Jp dHRlbiBpbiBhIGNvbXBhY3QgZm9ybS4gIEhvd2V2ZXIsDQorcmVjZW50IHZl cnNpb25zIG9mIEdDQyBlbWl0IHVud2luZCBpbmZvcm1hdGlvbiBmb3IgZnVu Y3Rpb24gZXBpbG9ndWVzLA0KK3doaWNoIHNob3VsZCBub3QgYmUgcmVwcmVz ZW50ZWQgaW4gdGhpcyBjb21wYWN0IGZvcm06IGhlbmNlLCBhbnkgQ0ZJDQor ZGlyZWN0aXZlcyB3aGljaCBvY2N1ciBpbiBhIGZ1bmN0aW9uIGFmdGVyIEBj b2Rley5jZmlfZXBpbG9ndWVfZW5kfQ0KK2FyZSBub3QgcHJvY2Vzc2VkLg0K Kw0KK1RoaXMgb3BlcmF0aW9uIG9ubHkgYWZmZWN0cyB0aGUgaW50ZXJuYWxz IG9mIHRoZSBhc3NlbWJsZXIsIGFuZCBpcyBub3QNCityZXByZXNlbnRlZCBp biB0aGUgYmluYXJ5IG91dHB1dC4NCisNCiBAbm9kZSBDb21tDQogQHNlY3Rp b24gQGNvZGV7LmNvbW0gQHZhcntzeW1ib2x9ICwgQHZhcntsZW5ndGh9IH0N CiANCmRpZmYgLS1naXQgYS9nYXMvZHcyZ2VuY2ZpLmMgYi9nYXMvZHcyZ2Vu Y2ZpLmMNCmluZGV4IGZhYTgzODQuLmNiZmFkYzUgMTAwNjQ0DQotLS0gYS9n YXMvZHcyZ2VuY2ZpLmMNCisrKyBiL2dhcy9kdzJnZW5jZmkuYw0KQEAgLTc2 LDYgKzc2LDggQEANCiAjIGRlZmluZSB0Y19jZmlfZW5kcHJvYyhmZGUpICgo dm9pZCkgKGZkZSkpDQogI2VuZGlmDQogDQorI2RlZmluZSBFSF9GUkFNRV9M SU5LT05DRSAoU1VQUE9SVF9GUkFNRV9MSU5LT05DRSB8fCBjb21wYWN0X2Vo KQ0KKw0KICNpZm5kZWYgRFdBUkYyX0ZPUk1BVA0KICNkZWZpbmUgRFdBUkYy X0ZPUk1BVChTRUMpIGR3YXJmMl9mb3JtYXRfMzJiaXQNCiAjZW5kaWYNCkBA IC04NCw3ICs4Niw3IEBADQogI2RlZmluZSBEV0FSRjJfQUREUl9TSVpFKGJm ZCkgKGJmZF9hcmNoX2JpdHNfcGVyX2FkZHJlc3MgKGJmZCkgLyA4KQ0KICNl bmRpZg0KIA0KLSNpZiBTVVBQT1JUX0ZSQU1FX0xJTktPTkNFDQorI2lmIE1V TFRJUExFX0ZSQU1FX1NFQ1RJT05TDQogI2RlZmluZSBDVVJfU0VHKHN0cnVj dHApIHN0cnVjdHAtPmN1cl9zZWcNCiAjZGVmaW5lIFNFVF9DVVJfU0VHKHN0 cnVjdHAsIHNlZykgc3RydWN0cC0+Y3VyX3NlZyA9IHNlZw0KICNkZWZpbmUg SEFORExFRChzdHJ1Y3RwKSBzdHJ1Y3RwLT5oYW5kbGVkDQpAQCAtOTYsNiAr OTgsMTEgQEANCiAjZGVmaW5lIFNFVF9IQU5ETEVEKHN0cnVjdHAsIHZhbCkg KHZvaWQpICgwICYmIHZhbCkNCiAjZW5kaWYNCiANCisjaWZuZGVmIHRjX2Nm aV9zcGVjaWFsX2VuY29kaW5nDQorI2RlZmluZSB0Y19jZmlfc3BlY2lhbF9l bmNvZGluZyhlKSAwDQorI2RlZmluZSB0Y19jZmlfcmVsb2NfZm9yX2VuY29k aW5nKGUpIEJGRF9SRUxPQ19OT05FDQorI2VuZGlmDQorDQogLyogUHJpdmF0 ZSBzZWdtZW50IGNvbGxlY3Rpb24gbGlzdC4gICovDQogc3RydWN0IGR3Y2Zp X3NlZ19saXN0DQogew0KQEAgLTEwNCwxMCArMTExLDExNiBAQCBzdHJ1Y3Qg ZHdjZmlfc2VnX2xpc3QNCiAgIGNoYXIgKiBzZWdfbmFtZTsNCiB9Ow0KIA0K LSNkZWZpbmUgRlJBTUVfTkFNRSAiLmVoX2ZyYW1lIg0KKyNpZmRlZiBTVVBQ T1JUX0NPTVBBQ1RfRUgNCitzdGF0aWMgYmZkX2Jvb2xlYW4gY29tcGFjdF9l aDsNCisjZWxzZQ0KKyNkZWZpbmUgY29tcGFjdF9laCAwDQorI2VuZGlmDQog DQogc3RhdGljIHN0cnVjdCBoYXNoX2NvbnRyb2wgKmR3Y2ZpX2hhc2g7DQor DA0KKy8qIEVtaXQgYSBzaW5nbGUgYnl0ZSBpbnRvIHRoZSBjdXJyZW50IHNl Z21lbnQuICAqLw0KKw0KK3N0YXRpYyBpbmxpbmUgdm9pZA0KK291dF9vbmUg KGludCBieXRlKQ0KK3sNCisgIEZSQUdfQVBQRU5EXzFfQ0hBUiAoYnl0ZSk7 DQorfQ0KIA0KKy8qIEVtaXQgYSB0d28tYnl0ZSB3b3JkIGludG8gdGhlIGN1 cnJlbnQgc2VnbWVudC4gICovDQorDQorc3RhdGljIGlubGluZSB2b2lkDQor b3V0X3R3byAoaW50IGRhdGEpDQorew0KKyAgbWRfbnVtYmVyX3RvX2NoYXJz IChmcmFnX21vcmUgKDIpLCBkYXRhLCAyKTsNCit9DQorDQorLyogRW1pdCBh IGZvdXIgYnl0ZSB3b3JkIGludG8gdGhlIGN1cnJlbnQgc2VnbWVudC4gICov DQorDQorc3RhdGljIGlubGluZSB2b2lkDQorb3V0X2ZvdXIgKGludCBkYXRh KQ0KK3sNCisgIG1kX251bWJlcl90b19jaGFycyAoZnJhZ19tb3JlICg0KSwg ZGF0YSwgNCk7DQorfQ0KKw0KKy8qIEVtaXQgYW4gdW5zaWduZWQgImxpdHRs ZS1lbmRpYW4gYmFzZSAxMjgiIG51bWJlci4gICovDQorDQorc3RhdGljIHZv aWQNCitvdXRfdWxlYjEyOCAoYWRkcmVzc1QgdmFsdWUpDQorew0KKyAgb3V0 cHV0X2xlYjEyOCAoZnJhZ19tb3JlIChzaXplb2ZfbGViMTI4ICh2YWx1ZSwg MCkpLCB2YWx1ZSwgMCk7DQorfQ0KKw0KKy8qIEVtaXQgYW4gdW5zaWduZWQg ImxpdHRsZS1lbmRpYW4gYmFzZSAxMjgiIG51bWJlci4gICovDQorDQorc3Rh dGljIHZvaWQNCitvdXRfc2xlYjEyOCAob2Zmc2V0VCB2YWx1ZSkNCit7DQor ICBvdXRwdXRfbGViMTI4IChmcmFnX21vcmUgKHNpemVvZl9sZWIxMjggKHZh bHVlLCAxKSksIHZhbHVlLCAxKTsNCit9DQorDQorLyogUmV0dXJuIHRoZSB2 YWx1ZSBvZiB0aGUgRUggZW5jb2Rpbmcgc2l6ZS4gICovDQorDQorc3RhdGlj IG9mZnNldFQNCitlbmNvZGluZ19zaXplICh1bnNpZ25lZCBjaGFyIGVuY29k aW5nKQ0KK3sNCisgIGlmIChlbmNvZGluZyA9PSBEV19FSF9QRV9vbWl0KQ0K KyAgICByZXR1cm4gMDsNCisgIHN3aXRjaCAoZW5jb2RpbmcgJiAweDcpDQor ICAgIHsNCisgICAgY2FzZSAwOg0KKyAgICAgIHJldHVybiBiZmRfZ2V0X2Fy Y2hfc2l6ZSAoc3Rkb3V0cHV0KSA9PSA2NCA/IDggOiA0Ow0KKyAgICBjYXNl IERXX0VIX1BFX3VkYXRhMjoNCisgICAgICByZXR1cm4gMjsNCisgICAgY2Fz ZSBEV19FSF9QRV91ZGF0YTQ6DQorICAgICAgcmV0dXJuIDQ7DQorICAgIGNh c2UgRFdfRUhfUEVfdWRhdGE4Og0KKyAgICAgIHJldHVybiA4Ow0KKyAgICBk ZWZhdWx0Og0KKyAgICAgIGFib3J0ICgpOw0KKyAgICB9DQorfQ0KKw0KKy8q IEVtaXQgZXhwcmVzc2lvbiBFWFAgaW4gRU5DT0RJTkcuICBJZiBFTUlUX0VO Q09ESU5HIGlzIHRydWUsIGZpcnN0DQorICAgZW1pdCBhIGJ5dGUgY29udGFp bmluZyBFTkNPRElORy4gICovDQorDQorc3RhdGljIHZvaWQNCitlbWl0X2V4 cHJfZW5jb2RlZCAoZXhwcmVzc2lvblMgKmV4cCwgaW50IGVuY29kaW5nLCBi ZmRfYm9vbGVhbiBlbWl0X2VuY29kaW5nKQ0KK3sNCisgIG9mZnNldFQgc2l6 ZSA9IGVuY29kaW5nX3NpemUgKGVuY29kaW5nKTsNCisNCisgIGlmIChlbmNv ZGluZyA9PSBEV19FSF9QRV9vbWl0KQ0KKyAgICByZXR1cm47DQorDQorICBp ZiAoZW1pdF9lbmNvZGluZykNCisgICAgb3V0X29uZSAoZW5jb2RpbmcpOw0K KyAgaWYgKHRjX2NmaV9zcGVjaWFsX2VuY29kaW5nIChlbmNvZGluZykpDQor ICAgIHsNCisgICAgICBiZmRfcmVsb2NfY29kZV9yZWFsX3R5cGUgY29kZQ0K Kwk9IHRjX2NmaV9yZWxvY19mb3JfZW5jb2RpbmcgKGVuY29kaW5nKTsNCisg ICAgICByZWxvY19ob3d0b190eXBlICpob3d0byA9IGJmZF9yZWxvY190eXBl X2xvb2t1cCAoc3Rkb3V0cHV0LCBjb2RlKTsNCisgICAgICBjaGFyICpwID0g ZnJhZ19tb3JlKHNpemUpOw0KKyAgICAgIG1kX251bWJlcl90b19jaGFycyAo cCwgMCwgc2l6ZSk7DQorICAgICAgZml4X25ldyAoZnJhZ19ub3csIHAgLSBm cmFnX25vdy0+ZnJfbGl0ZXJhbCwgc2l6ZSwgZXhwLT5YX2FkZF9zeW1ib2ws DQorCSAgICAgICBleHAtPlhfYWRkX251bWJlciwgaG93dG8tPnBjX3JlbGF0 aXZlLCBjb2RlKTsNCisgICAgfQ0KKyAgZWxzZSBpZiAoKGVuY29kaW5nICYg MHg3MCkgPT0gRFdfRUhfUEVfcGNyZWwpDQorICAgIHsNCisjaWYgQ0ZJX0RJ RkZfRVhQUl9PSw0KKyAgICAgIGV4cHJlc3Npb25TIHRtcCA9ICpleHA7DQor ICAgICAgdG1wLlhfb3AgPSBPX3N1YnRyYWN0Ow0KKyAgICAgIHRtcC5YX29w X3N5bWJvbCA9IHN5bWJvbF90ZW1wX25ld19ub3cgKCk7DQorICAgICAgZW1p dF9leHByICgmdG1wLCBzaXplKTsNCisjZWxpZiBkZWZpbmVkICh0Y19jZmlf ZW1pdF9wY3JlbF9leHByKQ0KKyAgICAgIHRjX2NmaV9lbWl0X3BjcmVsX2V4 cHIgKGV4cCwgc2l6ZSk7DQorI2Vsc2UNCisgICAgICBhYm9ydCAoKTsNCisj ZW5kaWYNCisgICAgfQ0KKyAgZWxzZQ0KKyAgICBlbWl0X2V4cHIgKGV4cCwg c2l6ZSk7DQorfQ0KKwwNCiAvKiBCdWlsZCBiYXNlZCBvbiBzZWdtZW50IHRo ZSBkZXJpdmVkIC5kZWJ1Z18uLi4NCiAgICBzZWdtZW50IG5hbWUgY29udGFp bmluZyBvcmlnaW4gc2VnbWVudCdzIHBvc3RmaXggbmFtZSBwYXJ0LiAgKi8N CiANCkBAIC0xMjksNyArMjQyLDExIEBAIGdldF9kZWJ1Z3NlZ19uYW1lIChz ZWdUIHNlZywgY29uc3QgY2hhciAqYmFzZV9uYW1lKQ0KICAgICAgIGRvdCA9 IHN0cmNociAobmFtZSArIDEsICcuJyk7DQogDQogICAgICAgaWYgKCFkb2xs YXIgJiYgIWRvdCkNCi0JbmFtZSA9ICIiOw0KKwl7DQorCSAgaWYgKGNvbXBh Y3RfZWggJiYgc3RyY21wIChuYW1lLCAiLnRleHQiKSAhPSAwKQ0KKwkgICAg cmV0dXJuIGNvbmNhdCAoYmFzZV9uYW1lLCAiLiIsIG5hbWUsIE5VTEwpOw0K KwkgIG5hbWUgPSAiIjsNCisJfQ0KICAgICAgIGVsc2UgaWYgKCFkb2xsYXIp DQogCW5hbWUgPSBkb3Q7DQogICAgICAgZWxzZSBpZiAoIWRvdCkNCkBAIC0x NjEsNiArMjc4LDkgQEAgYWxsb2NfZGVidWdzZWdfaXRlbSAoc2VnVCBzZWcs IGludCBzdWJzZWcsIGNoYXIgKm5hbWUpDQogc3RhdGljIHNlZ1QNCiBpc19u b3dfbGlua29uY2Vfc2VnbWVudCAodm9pZCkNCiB7DQorICBpZiAoY29tcGFj dF9laCkNCisgICAgcmV0dXJuIG5vd19zZWc7DQorDQogICBpZiAoKGJmZF9n ZXRfc2VjdGlvbl9mbGFncyAoc3Rkb3V0cHV0LCBub3dfc2VnKQ0KICAgICAg ICAmIChTRUNfTElOS19PTkNFIHwgU0VDX0xJTktfRFVQTElDQVRFU19ESVND QVJEDQogCSAgfCBTRUNfTElOS19EVVBMSUNBVEVTX09ORV9PTkxZIHwgU0VD X0xJTktfRFVQTElDQVRFU19TQU1FX1NJWkUNCkBAIC0yNzMsMTIgKzM5Mywx MyBAQCBzdHJ1Y3QgY2ZpX2VzY2FwZV9kYXRhDQogc3RydWN0IGNpZV9lbnRy eQ0KIHsNCiAgIHN0cnVjdCBjaWVfZW50cnkgKm5leHQ7DQotI2lmIFNVUFBP UlRfRlJBTUVfTElOS09OQ0UNCisjaWYgTVVMVElQTEVfRlJBTUVfU0VDVElP TlMNCiAgIHNlZ1QgY3VyX3NlZzsNCiAjZW5kaWYNCiAgIHN5bWJvbFMgKnN0 YXJ0X2FkZHJlc3M7DQogICB1bnNpZ25lZCBpbnQgcmV0dXJuX2NvbHVtbjsN CiAgIHVuc2lnbmVkIGludCBzaWduYWxfZnJhbWU7DQorICB1bnNpZ25lZCBj aGFyIGZkZV9lbmNvZGluZzsNCiAgIHVuc2lnbmVkIGNoYXIgcGVyX2VuY29k aW5nOw0KICAgdW5zaWduZWQgY2hhciBsc2RhX2VuY29kaW5nOw0KICAgZXhw cmVzc2lvblMgcGVyc29uYWxpdHk7DQpAQCAtNTQ4LDE1ICs2NjksMTkgQEAg c3RhdGljIHZvaWQgZG90X2NmaV9lc2NhcGUgKGludCk7DQogc3RhdGljIHZv aWQgZG90X2NmaV9zZWN0aW9ucyAoaW50KTsNCiBzdGF0aWMgdm9pZCBkb3Rf Y2ZpX3N0YXJ0cHJvYyAoaW50KTsNCiBzdGF0aWMgdm9pZCBkb3RfY2ZpX2Vu ZHByb2MgKGludCk7DQorc3RhdGljIHZvaWQgZG90X2NmaV9mZGVfZGF0YSAo aW50KTsNCiBzdGF0aWMgdm9pZCBkb3RfY2ZpX3BlcnNvbmFsaXR5IChpbnQp Ow0KK3N0YXRpYyB2b2lkIGRvdF9jZmlfcGVyc29uYWxpdHlfaWQgKGludCk7 DQogc3RhdGljIHZvaWQgZG90X2NmaV9sc2RhIChpbnQpOw0KIHN0YXRpYyB2 b2lkIGRvdF9jZmlfdmFsX2VuY29kZWRfYWRkciAoaW50KTsNCitzdGF0aWMg dm9pZCBkb3RfY2ZpX2lubGluZV9sc2RhIChpbnQpOw0KIA0KIGNvbnN0IHBz ZXVkb190eXBlUyBjZmlfcHNldWRvX3RhYmxlW10gPQ0KICAgew0KICAgICB7 ICJjZmlfc2VjdGlvbnMiLCBkb3RfY2ZpX3NlY3Rpb25zLCAwIH0sDQogICAg IHsgImNmaV9zdGFydHByb2MiLCBkb3RfY2ZpX3N0YXJ0cHJvYywgMCB9LA0K ICAgICB7ICJjZmlfZW5kcHJvYyIsIGRvdF9jZmlfZW5kcHJvYywgMCB9LA0K KyAgICB7ICJjZmlfZmRlX2RhdGEiLCBkb3RfY2ZpX2ZkZV9kYXRhLCAwIH0s DQogICAgIHsgImNmaV9kZWZfY2ZhIiwgZG90X2NmaSwgRFdfQ0ZBX2RlZl9j ZmEgfSwNCiAgICAgeyAiY2ZpX2RlZl9jZmFfcmVnaXN0ZXIiLCBkb3RfY2Zp LCBEV19DRkFfZGVmX2NmYV9yZWdpc3RlciB9LA0KICAgICB7ICJjZmlfZGVm X2NmYV9vZmZzZXQiLCBkb3RfY2ZpLCBEV19DRkFfZGVmX2NmYV9vZmZzZXQg fSwNCkBAIC01NzQsOCArNjk5LDExIEBAIGNvbnN0IHBzZXVkb190eXBlUyBj ZmlfcHNldWRvX3RhYmxlW10gPQ0KICAgICB7ICJjZmlfZXNjYXBlIiwgZG90 X2NmaV9lc2NhcGUsIDAgfSwNCiAgICAgeyAiY2ZpX3NpZ25hbF9mcmFtZSIs IGRvdF9jZmksIENGSV9zaWduYWxfZnJhbWUgfSwNCiAgICAgeyAiY2ZpX3Bl cnNvbmFsaXR5IiwgZG90X2NmaV9wZXJzb25hbGl0eSwgMCB9LA0KKyAgICB7 ICJjZmlfcGVyc29uYWxpdHlfaWQiLCBkb3RfY2ZpX3BlcnNvbmFsaXR5X2lk LCAwIH0sDQogICAgIHsgImNmaV9sc2RhIiwgZG90X2NmaV9sc2RhLCAwIH0s DQogICAgIHsgImNmaV92YWxfZW5jb2RlZF9hZGRyIiwgZG90X2NmaV92YWxf ZW5jb2RlZF9hZGRyLCAwIH0sDQorICAgIHsgImNmaV9pbmxpbmVfbHNkYSIs IGRvdF9jZmlfaW5saW5lX2xzZGEsIDAgfSwNCisgICAgeyAiY2ZpX2VwaWxv Z3VlX2JlZ2luIiwgZG90X2NmaSwgQ0ZJX2VwaWxvZ3VlX2JlZ2lufSwNCiAg ICAgeyBOVUxMLCBOVUxMLCAwIH0NCiAgIH07DQogDQpAQCAtNzY1LDYgKzg5 MywxMCBAQCBkb3RfY2ZpIChpbnQgYXJnKQ0KICAgICAgIGZyY2hhaW5fbm93 LT5mcmNoX2NmaV9kYXRhLT5jdXJfZmRlX2RhdGEtPnNpZ25hbF9mcmFtZSA9 IDE7DQogICAgICAgYnJlYWs7DQogDQorICAgIGNhc2UgQ0ZJX2VwaWxvZ3Vl X2JlZ2luOg0KKyAgICAgIGNmaV9hZGRfQ0ZBX2luc24gKENGSV9lcGlsb2d1 ZV9iZWdpbik7DQorICAgICAgYnJlYWs7DQorDQogICAgIGRlZmF1bHQ6DQog ICAgICAgYWJvcnQgKCk7DQogICAgIH0NCkBAIC04MzMsMTQgKzk2NSwxNSBA QCBkb3RfY2ZpX3BlcnNvbmFsaXR5IChpbnQgaWdub3JlZCBBVFRSSUJVVEVf VU5VU0VEKQ0KICAgICB9DQogDQogICBpZiAoKGVuY29kaW5nICYgMHhmZikg IT0gZW5jb2RpbmcNCi0gICAgICB8fCAoKGVuY29kaW5nICYgMHg3MCkgIT0g MA0KKyAgICAgIHx8ICgoKChlbmNvZGluZyAmIDB4NzApICE9IDANCiAjaWYg Q0ZJX0RJRkZfRVhQUl9PSyB8fCBkZWZpbmVkIHRjX2NmaV9lbWl0X3BjcmVs X2V4cHINCi0JICAmJiAoZW5jb2RpbmcgJiAweDcwKSAhPSBEV19FSF9QRV9w Y3JlbA0KKwkgICAmJiAoZW5jb2RpbmcgJiAweDcwKSAhPSBEV19FSF9QRV9w Y3JlbA0KICNlbmRpZg0KIAkgICkNCiAJIC8qIGxlYjEyOCBjYW4gYmUgaGFu ZGxlZCwgYnV0IGRvZXMgc29tZXRoaW5nIGFjdHVhbGx5IG5lZWQgaXQ/ICAq Lw0KLSAgICAgIHx8IChlbmNvZGluZyAmIDcpID09IERXX0VIX1BFX3VsZWIx MjgNCi0gICAgICB8fCAoZW5jb2RpbmcgJiA3KSA+IERXX0VIX1BFX3VkYXRh OCkNCisJICAgfHwgKGVuY29kaW5nICYgNykgPT0gRFdfRUhfUEVfdWxlYjEy OA0KKwkgICB8fCAoZW5jb2RpbmcgJiA3KSA+IERXX0VIX1BFX3VkYXRhOCkN CisJJiYgIXRjX2NmaV9zcGVjaWFsX2VuY29kaW5nIChlbmNvZGluZykpKQ0K ICAgICB7DQogICAgICAgYXNfYmFkIChfKCJpbnZhbGlkIG9yIHVuc3VwcG9y dGVkIGVuY29kaW5nIGluIC5jZmlfcGVyc29uYWxpdHkiKSk7DQogICAgICAg aWdub3JlX3Jlc3Rfb2ZfbGluZSAoKTsNCkBAIC05MDMsMTQgKzEwMzYsMTUg QEAgZG90X2NmaV9sc2RhIChpbnQgaWdub3JlZCBBVFRSSUJVVEVfVU5VU0VE KQ0KICAgICB9DQogDQogICBpZiAoKGVuY29kaW5nICYgMHhmZikgIT0gZW5j b2RpbmcNCi0gICAgICB8fCAoKGVuY29kaW5nICYgMHg3MCkgIT0gMA0KKyAg ICAgIHx8ICgoKChlbmNvZGluZyAmIDB4NzApICE9IDANCiAjaWYgQ0ZJX0RJ RkZfTFNEQV9PSyB8fCBkZWZpbmVkIHRjX2NmaV9lbWl0X3BjcmVsX2V4cHIN Ci0JICAmJiAoZW5jb2RpbmcgJiAweDcwKSAhPSBEV19FSF9QRV9wY3JlbA0K KwkgICAgJiYgKGVuY29kaW5nICYgMHg3MCkgIT0gRFdfRUhfUEVfcGNyZWwN CiAjZW5kaWYNCi0JICApDQorCSAgICkNCiAJIC8qIGxlYjEyOCBjYW4gYmUg aGFuZGxlZCwgYnV0IGRvZXMgc29tZXRoaW5nIGFjdHVhbGx5IG5lZWQgaXQ/ ICAqLw0KLSAgICAgIHx8IChlbmNvZGluZyAmIDcpID09IERXX0VIX1BFX3Vs ZWIxMjgNCi0gICAgICB8fCAoZW5jb2RpbmcgJiA3KSA+IERXX0VIX1BFX3Vk YXRhOCkNCisJICAgfHwgKGVuY29kaW5nICYgNykgPT0gRFdfRUhfUEVfdWxl YjEyOA0KKwkgICB8fCAoZW5jb2RpbmcgJiA3KSA+IERXX0VIX1BFX3VkYXRh OCkNCisJICAmJiAhdGNfY2ZpX3NwZWNpYWxfZW5jb2RpbmcgKGVuY29kaW5n KSkpDQogICAgIHsNCiAgICAgICBhc19iYWQgKF8oImludmFsaWQgb3IgdW5z dXBwb3J0ZWQgZW5jb2RpbmcgaW4gLmNmaV9sc2RhIikpOw0KICAgICAgIGln bm9yZV9yZXN0X29mX2xpbmUgKCk7DQpAQCAtMTAyMSw3ICsxMTU1LDEwIEBA IGRvdF9jZmlfdmFsX2VuY29kZWRfYWRkciAoaW50IGlnbm9yZWQgQVRUUklC VVRFX1VOVVNFRCkNCiAjZGVmaW5lIENGSV9FTUlUX2VoX2ZyYW1lCSgxIDw8 IDApDQogI2RlZmluZSBDRklfRU1JVF9kZWJ1Z19mcmFtZQkoMSA8PCAxKQ0K ICNkZWZpbmUgQ0ZJX0VNSVRfdGFyZ2V0CQkoMSA8PCAyKQ0KK3N0YXRpYyBi ZmRfYm9vbGVhbiBjZmlfc2VjdGlvbnNfc2V0ID0gRkFMU0U7DQogc3RhdGlj IGludCBjZmlfc2VjdGlvbnMgPSBDRklfRU1JVF9laF9mcmFtZTsNCitzdGF0 aWMgaW50IGFsbF9jZmlfc2VjdGlvbnMgPSAwOw0KK3N0YXRpYyBzdHJ1Y3Qg ZmRlX2VudHJ5ICpsYXN0X2ZkZTsNCiANCiBzdGF0aWMgdm9pZA0KIGRvdF9j Zmlfc2VjdGlvbnMgKGludCBpZ25vcmVkIEFUVFJJQlVURV9VTlVTRUQpDQpA QCAtMTA0Miw2ICsxMTc5LDEzIEBAIGRvdF9jZmlfc2VjdGlvbnMgKGludCBp Z25vcmVkIEFUVFJJQlVURV9VTlVTRUQpDQogCSAgc2VjdGlvbnMgfD0gQ0ZJ X0VNSVRfZWhfZnJhbWU7DQogCWVsc2UgaWYgKHN0cm5jbXAgKG5hbWUsICIu ZGVidWdfZnJhbWUiLCBzaXplb2YgIi5kZWJ1Z19mcmFtZSIpID09IDApDQog CSAgc2VjdGlvbnMgfD0gQ0ZJX0VNSVRfZGVidWdfZnJhbWU7DQorI2lmIFNV UFBPUlRfQ09NUEFDVF9FSA0KKwllbHNlIGlmIChzdHJuY21wIChuYW1lLCAi LmVoX2ZyYW1lX2VudHJ5Iiwgc2l6ZW9mICIuZWhfZnJhbWVfZW50cnkiKSA9 PSAwKQ0KKwkgIHsNCisJICAgIGNvbXBhY3RfZWggPSBUUlVFOw0KKwkgICAg c2VjdGlvbnMgfD0gQ0ZJX0VNSVRfZWhfZnJhbWUgfCBDRklfRU1JVF90YXJn ZXQ7DQorCSAgfQ0KKyNlbmRpZg0KICNpZmRlZiB0Y19jZmlfc2VjdGlvbl9u YW1lDQogCWVsc2UgaWYgKHN0cmNtcCAobmFtZSwgdGNfY2ZpX3NlY3Rpb25f bmFtZSkgPT0gMCkNCiAJICBzZWN0aW9ucyB8PSBDRklfRU1JVF90YXJnZXQ7 DQpAQCAtMTA3MCw2ICsxMjE0LDkgQEAgZG90X2NmaV9zZWN0aW9ucyAoaW50 IGlnbm9yZWQgQVRUUklCVVRFX1VOVVNFRCkNCiAgICAgICB9DQogDQogICBk ZW1hbmRfZW1wdHlfcmVzdF9vZl9saW5lICgpOw0KKyAgaWYgKGNmaV9zZWN0 aW9uc19zZXQgJiYgY2ZpX3NlY3Rpb25zICE9IHNlY3Rpb25zKQ0KKyAgICBh c19iYWQgKF8oImluY29uc2lzdGVudCB1c2VzIG9mIC5jZmlfc2VjdGlvbnMi KSk7DQorICBjZmlfc2VjdGlvbnNfc2V0ID0gVFJVRTsNCiAgIGNmaV9zZWN0 aW9ucyA9IHNlY3Rpb25zOw0KIH0NCiANCkBAIC0xMTA1LDYgKzEyNTIsOCBA QCBkb3RfY2ZpX3N0YXJ0cHJvYyAoaW50IGlnbm9yZWQgQVRUUklCVVRFX1VO VVNFRCkNCiAgICAgfQ0KICAgZGVtYW5kX2VtcHR5X3Jlc3Rfb2ZfbGluZSAo KTsNCiANCisgIGFsbF9jZmlfc2VjdGlvbnMgfD0gY2ZpX3NlY3Rpb25zOw0K KyAgZnJjaGFpbl9ub3ctPmZyY2hfY2ZpX2RhdGEtPmN1cl9mZGVfZGF0YS0+ c2VjdGlvbnMgPSBjZmlfc2VjdGlvbnM7DQogICBmcmNoYWluX25vdy0+ZnJj aF9jZmlfZGF0YS0+Y3VyX2NmYV9vZmZzZXQgPSAwOw0KICAgaWYgKCFzaW1w bGUpDQogICAgIHRjX2NmaV9mcmFtZV9pbml0aWFsX2luc3RydWN0aW9ucyAo KTsNCkBAIC0xMTE2LDggKzEyNjUsNiBAQCBkb3RfY2ZpX3N0YXJ0cHJvYyAo aW50IGlnbm9yZWQgQVRUUklCVVRFX1VOVVNFRCkNCiBzdGF0aWMgdm9pZA0K IGRvdF9jZmlfZW5kcHJvYyAoaW50IGlnbm9yZWQgQVRUUklCVVRFX1VOVVNF RCkNCiB7DQotICBzdHJ1Y3QgZmRlX2VudHJ5ICpmZGU7DQotDQogICBpZiAo ZnJjaGFpbl9ub3ctPmZyY2hfY2ZpX2RhdGEgPT0gTlVMTCkNCiAgICAgew0K ICAgICAgIGFzX2JhZCAoXygiLmNmaV9lbmRwcm9jIHdpdGhvdXQgY29ycmVz cG9uZGluZyAuY2ZpX3N0YXJ0cHJvYyIpKTsNCkBAIC0xMTI1LDU4ICsxMjcy LDI1NCBAQCBkb3RfY2ZpX2VuZHByb2MgKGludCBpZ25vcmVkIEFUVFJJQlVU RV9VTlVTRUQpDQogICAgICAgcmV0dXJuOw0KICAgICB9DQogDQotICBmZGUg PSBmcmNoYWluX25vdy0+ZnJjaF9jZmlfZGF0YS0+Y3VyX2ZkZV9kYXRhOw0K KyAgbGFzdF9mZGUgPSBmcmNoYWluX25vdy0+ZnJjaF9jZmlfZGF0YS0+Y3Vy X2ZkZV9kYXRhOw0KIA0KICAgY2ZpX2VuZF9mZGUgKHN5bWJvbF90ZW1wX25l d19ub3cgKCkpOw0KIA0KICAgZGVtYW5kX2VtcHR5X3Jlc3Rfb2ZfbGluZSAo KTsNCiANCiAgIGlmICgoY2ZpX3NlY3Rpb25zICYgQ0ZJX0VNSVRfdGFyZ2V0 KSAhPSAwKQ0KLSAgICB0Y19jZmlfZW5kcHJvYyAoZmRlKTsNCisgICAgdGNf Y2ZpX2VuZHByb2MgKGxhc3RfZmRlKTsNCiB9DQogDQotDA0KLS8qIEVtaXQg YSBzaW5nbGUgYnl0ZSBpbnRvIHRoZSBjdXJyZW50IHNlZ21lbnQuICAqLw0K LQ0KLXN0YXRpYyBpbmxpbmUgdm9pZA0KLW91dF9vbmUgKGludCBieXRlKQ0K K3N0YXRpYyBzZWdUDQorZ2V0X2NmaV9zZWcgKHNlZ1QgY3NlZywgY29uc3Qg Y2hhciAqYmFzZSwgZmxhZ3dvcmQgZmxhZ3MsIGludCBhbGlnbikNCiB7DQot ICBGUkFHX0FQUEVORF8xX0NIQVIgKGJ5dGUpOw0KKyAgaWYgKFNVUFBPUlRf RlJBTUVfTElOS09OQ0UgfHwgKChmbGFncyAmIFNFQ19ERUJVR0dJTkcpID09 IDAgJiYgY29tcGFjdF9laCkpDQorICAgIHsNCisgICAgICBzdHJ1Y3QgZHdj Zmlfc2VnX2xpc3QgKmw7DQorDQorICAgICAgbCA9IGR3Y2ZpX2hhc2hfZmlu ZF9vcl9tYWtlIChjc2VnLCBiYXNlLCBmbGFncyk7DQorDQorICAgICAgY3Nl ZyA9IGwtPnNlZzsNCisgICAgICBzdWJzZWdfc2V0IChjc2VnLCBsLT5zdWJz ZWcpOw0KKyAgICB9DQorICBlbHNlDQorICAgIHsNCisgICAgICBjc2VnID0g c3Vic2VnX25ldyAoYmFzZSwgMCk7DQorICAgICAgYmZkX3NldF9zZWN0aW9u X2ZsYWdzIChzdGRvdXRwdXQsIGNzZWcsIGZsYWdzKTsNCisgICAgfQ0KKyAg cmVjb3JkX2FsaWdubWVudCAoY3NlZywgYWxpZ24pOw0KKyAgcmV0dXJuIGNz ZWc7DQogfQ0KIA0KLS8qIEVtaXQgYSB0d28tYnl0ZSB3b3JkIGludG8gdGhl IGN1cnJlbnQgc2VnbWVudC4gICovDQorI2lmIFNVUFBPUlRfQ09NUEFDVF9F SA0KIA0KLXN0YXRpYyBpbmxpbmUgdm9pZA0KLW91dF90d28gKGludCBkYXRh KQ0KKy8qIFNldCB0aGUgcGVyc29uYWxpdHkgaWQgaW4gdGhlIEZERSBzdHJ1 Y3R1cmUuICAqLw0KKw0KK3N0YXRpYyB2b2lkDQorZG90X2NmaV9wZXJzb25h bGl0eV9pZCAoaW50IGlnbm9yZWQgQVRUUklCVVRFX1VOVVNFRCkNCiB7DQot ICBtZF9udW1iZXJfdG9fY2hhcnMgKGZyYWdfbW9yZSAoMiksIGRhdGEsIDIp Ow0KKyAgc3RydWN0IGZkZV9lbnRyeSAqZmRlOw0KKw0KKyAgaWYgKGZyY2hh aW5fbm93LT5mcmNoX2NmaV9kYXRhID09IE5VTEwpDQorICAgIHsNCisgICAg ICBhc19iYWQgKF8oIkNGSSBpbnN0cnVjdGlvbiB1c2VkIHdpdGhvdXQgcHJl dmlvdXMgLmNmaV9zdGFydHByb2MiKSk7DQorICAgICAgaWdub3JlX3Jlc3Rf b2ZfbGluZSAoKTsNCisgICAgICByZXR1cm47DQorICAgIH0NCisNCisgIGZk ZSA9IGZyY2hhaW5fbm93LT5mcmNoX2NmaV9kYXRhLT5jdXJfZmRlX2RhdGE7 DQorICBmZGUtPnBlcnNvbmFsaXR5X2lkID0gY2ZpX3BhcnNlX2NvbnN0ICgp Ow0KKyAgZGVtYW5kX2VtcHR5X3Jlc3Rfb2ZfbGluZSAoKTsNCisNCisgIGlm IChmZGUtPnBlcnNvbmFsaXR5X2lkID09IDAgfHwgZmRlLT5wZXJzb25hbGl0 eV9pZCA+IDMpDQorICAgIHsNCisgICAgICBhc19iYWQgKF8oIndyb25nIGFy Z3VtZW50IHRvIC5jZmlfcGVyc29uYWxpdHlfaWQiKSk7DQorICAgICAgcmV0 dXJuOw0KKyAgICB9DQogfQ0KIA0KLS8qIEVtaXQgYSBmb3VyIGJ5dGUgd29y ZCBpbnRvIHRoZSBjdXJyZW50IHNlZ21lbnQuICAqLw0KK3N0YXRpYyB2b2lk DQorZG90X2NmaV9mZGVfZGF0YSAoaW50IGlnbm9yZWQgQVRUUklCVVRFX1VO VVNFRCkNCit7DQorICBzdHJ1Y3QgY2ZpX2VzY2FwZV9kYXRhICpoZWFkLCAq KnRhaWwsICplOw0KKyAgaW50IG51bV9vcHMgPSAwOw0KIA0KLXN0YXRpYyBp bmxpbmUgdm9pZA0KLW91dF9mb3VyIChpbnQgZGF0YSkNCisgIGlmIChmcmNo YWluX25vdy0+ZnJjaF9jZmlfZGF0YSA9PSBOVUxMKQ0KKyAgICB7DQorICAg ICAgYXNfYmFkIChfKCIuY2ZpX2ZkZV9kYXRhIHdpdGhvdXQgY29ycmVzcG9u ZGluZyAuY2ZpX3N0YXJ0cHJvYyIpKTsNCisgICAgICBpZ25vcmVfcmVzdF9v Zl9saW5lICgpOw0KKyAgICAgIHJldHVybjsNCisgICAgfQ0KKw0KKyAgbGFz dF9mZGUgPSBmcmNoYWluX25vdy0+ZnJjaF9jZmlfZGF0YS0+Y3VyX2ZkZV9k YXRhOw0KKw0KKyAgaWYgKCFjb21wYWN0X2VoIHx8IChjZmlfc2VjdGlvbnMg JiBDRklfRU1JVF9laF9mcmFtZSkgPT0gMCkNCisgICAgYXNfYmFkIChfKCIu Y2ZpX2ZkZV9kYXRhIG5vdCB2YWxpZCBmb3IgdGhpcyBmcmFtZSIpKTsNCisN CisgIHRhaWwgPSAmaGVhZDsNCisgIGlmICghaXNfaXRfZW5kX29mX3N0YXRl bWVudCAoKSkNCisgICAgew0KKyAgICAgIG51bV9vcHMgPSAwOw0KKyAgICAg IGRvDQorCXsNCisJICBlID0gKHN0cnVjdCBjZmlfZXNjYXBlX2RhdGEgKikg eG1hbGxvYyAoc2l6ZW9mICgqZSkpOw0KKwkgIGRvX3BhcnNlX2NvbnNfZXhw cmVzc2lvbiAoJmUtPmV4cCwgMSk7DQorCSAgKnRhaWwgPSBlOw0KKwkgIHRh aWwgPSAmZS0+bmV4dDsNCisJICBudW1fb3BzKys7DQorCX0NCisgICAgICB3 aGlsZSAoKmlucHV0X2xpbmVfcG9pbnRlcisrID09ICcsJyk7DQorICAgICAg LS1pbnB1dF9saW5lX3BvaW50ZXI7DQorICAgIH0NCisgICp0YWlsID0gTlVM TDsNCisNCisgIGlmIChsYXN0X2ZkZS0+bHNkYV9lbmNvZGluZyAhPSBEV19F SF9QRV9vbWl0KQ0KKyAgICBsYXN0X2ZkZS0+ZWhfaGVhZGVyX3R5cGUgPSBF SF9DT01QQUNUX0hBU19MU0RBOw0KKyAgZWxzZSBpZiAobnVtX29wcyA8PSAz ICYmIGxhc3RfZmRlLT5wZXJfZW5jb2RpbmcgPT0gRFdfRUhfUEVfb21pdCkN CisgICAgbGFzdF9mZGUtPmVoX2hlYWRlcl90eXBlID0gRUhfQ09NUEFDVF9J TkxJTkU7DQorICBlbHNlDQorICAgIGxhc3RfZmRlLT5laF9oZWFkZXJfdHlw ZSA9IEVIX0NPTVBBQ1RfT1VUTElORTsNCisNCisgIGlmIChsYXN0X2ZkZS0+ ZWhfaGVhZGVyX3R5cGUgPT0gRUhfQ09NUEFDVF9JTkxJTkUpDQorICAgIG51 bV9vcHMgPSAzOw0KKw0KKyAgbGFzdF9mZGUtPmVoX2RhdGFfc2l6ZSA9IG51 bV9vcHM7DQorICBsYXN0X2ZkZS0+ZWhfZGF0YSA9IChiZmRfYnl0ZSAqKSB4 bWFsbG9jIChudW1fb3BzKTsNCisgIG51bV9vcHMgPSAwOw0KKyAgd2hpbGUg KGhlYWQpDQorICAgIHsNCisgICAgICBlID0gaGVhZDsNCisgICAgICBoZWFk ID0gZS0+bmV4dDsNCisgICAgICBsYXN0X2ZkZS0+ZWhfZGF0YVtudW1fb3Bz KytdID0gZS0+ZXhwLlhfYWRkX251bWJlcjsNCisgICAgICBmcmVlIChlKTsN CisgICAgfQ0KKyAgaWYgKGxhc3RfZmRlLT5laF9oZWFkZXJfdHlwZSA9PSBF SF9DT01QQUNUX0lOTElORSkNCisgICAgd2hpbGUgKG51bV9vcHMgPCAzKQ0K KyAgICAgIGxhc3RfZmRlLT5laF9kYXRhW251bV9vcHMrK10gPSB0Y19jb21w YWN0X2VoX29wY29kZV9zdG9wOw0KKw0KKyAgZGVtYW5kX2VtcHR5X3Jlc3Rf b2ZfbGluZSAoKTsNCit9DQorDQorc3RhdGljIHZvaWQNCitvdXRwdXRfY29t cGFjdF91bndpbmRfZGF0YSAoc3RydWN0IGZkZV9lbnRyeSAqZmRlLCBpbnQg YWxpZ24pDQogew0KLSAgbWRfbnVtYmVyX3RvX2NoYXJzIChmcmFnX21vcmUg KDQpLCBkYXRhLCA0KTsNCisgIGludCBkYXRhX3NpemUgPSBmZGUtPmVoX2Rh dGFfc2l6ZSArIDI7DQorICBpbnQgYWxpZ25fcGFkZGluZzsNCisgIGludCBh bWFzazsNCisgIGNoYXIgKnA7DQorDQorICBmZGUtPmVoX2xvYyA9IHN5bWJv bF90ZW1wX25ld19ub3cgKCk7DQorDQorICBwID0gZnJhZ19tb3JlICgxKTsN CisgIGlmIChmZGUtPnBlcnNvbmFsaXR5X2lkICE9IDApDQorICAgICpwID0g ZmRlLT5wZXJzb25hbGl0eV9pZDsNCisgIGVsc2UgaWYgKGZkZS0+cGVyX2Vu Y29kaW5nICE9IERXX0VIX1BFX29taXQpDQorICAgIHsNCisgICAgICAqcCA9 IDA7DQorICAgICAgZW1pdF9leHByX2VuY29kZWQgKCZmZGUtPnBlcnNvbmFs aXR5LCBmZGUtPnBlcl9lbmNvZGluZywgRkFMU0UpOw0KKyAgICAgIGRhdGFf c2l6ZSArPSBlbmNvZGluZ19zaXplIChmZGUtPnBlcl9lbmNvZGluZyk7DQor ICAgIH0NCisgIGVsc2UNCisgICAgKnAgPSAxOw0KKw0KKyAgYW1hc2sgPSAo MSA8PCBhbGlnbikgLSAxOw0KKyAgYWxpZ25fcGFkZGluZyA9ICgoZGF0YV9z aXplICsgYW1hc2spICYgfmFtYXNrKSAtIGRhdGFfc2l6ZTsNCisNCisgIHAg PSBmcmFnX21vcmUgKGZkZS0+ZWhfZGF0YV9zaXplICsgMSArIGFsaWduX3Bh ZGRpbmcpOw0KKyAgbWVtY3B5IChwLCBmZGUtPmVoX2RhdGEsIGZkZS0+ZWhf ZGF0YV9zaXplKTsNCisgIHAgKz0gZmRlLT5laF9kYXRhX3NpemU7DQorDQor ICB3aGlsZSAoYWxpZ25fcGFkZGluZy0tID4gMCkNCisgICAgKihwKyspID0g dGNfY29tcGFjdF9laF9vcGNvZGVfcGFkOw0KKw0KKyAgKihwKyspID0gdGNf Y29tcGFjdF9laF9vcGNvZGVfc3RvcDsNCisgIGZkZS0+ZWhfaGVhZGVyX3R5 cGUgPSBFSF9DT01QQUNUX09VVExJTkVfRE9ORTsNCiB9DQogDQotLyogRW1p dCBhbiB1bnNpZ25lZCAibGl0dGxlLWVuZGlhbiBiYXNlIDEyOCIgbnVtYmVy LiAgKi8NCitzdGF0aWMgdm9pZA0KK2RvdF9jZmlfaW5saW5lX2xzZGEgKGlu dCBpZ25vcmVkIEFUVFJJQlVURV9VTlVTRUQpDQorew0KKyAgc2VnVCBjZmlf c2VnLCBjY3NlZzsNCisgIGludCBhbGlnbjsNCisgIGxvbmcgbWF4X2FsaWdu bWVudCA9IDI4Ow0KKw0KKyAgaWYgKCFsYXN0X2ZkZSkNCisgICAgew0KKyAg ICAgIGFzX2JhZCAoXygidW5leHBlY3RlZCAuY2ZpX2lubGluZV9sc2RhIikp Ow0KKyAgICAgIGlnbm9yZV9yZXN0X29mX2xpbmUgKCk7DQorICAgICAgcmV0 dXJuOw0KKyAgICB9DQogDQorICBpZiAoIWNvbXBhY3RfZWgNCisgICAgICB8 fCAobGFzdF9mZGUtPnNlY3Rpb25zICYgQ0ZJX0VNSVRfZWhfZnJhbWUpID09 IDApDQorICAgIHsNCisgICAgICBhc19iYWQgKF8oIi5jZmlfaW5saW5lX2xz ZGEgbm90IHZhbGlkIGZvciB0aGlzIGZyYW1lIikpOw0KKyAgICAgIGlnbm9y ZV9yZXN0X29mX2xpbmUgKCk7DQorICAgICAgcmV0dXJuOw0KKyAgICB9DQor DQorICBpZiAobGFzdF9mZGUtPmVoX2hlYWRlcl90eXBlICE9IEVIX0NPTVBB Q1RfTEVHQUNZDQorICAgICAgJiYgbGFzdF9mZGUtPmVoX2hlYWRlcl90eXBl ICE9IEVIX0NPTVBBQ1RfSEFTX0xTREEpDQorICAgIHsNCisgICAgICBhc19i YWQgKF8oIi5jZmlfaW5saW5lX2xzZGEgc2VlbiBmb3IgZnJhbWUgd2l0aG91 dCAuY2ZpX2xzZGEiKSk7DQorICAgICAgaWdub3JlX3Jlc3Rfb2ZfbGluZSAo KTsNCisgICAgICByZXR1cm47DQorICAgIH0NCisNCisjaWZkZWYgbWRfZmx1 c2hfcGVuZGluZ19vdXRwdXQNCisgIG1kX2ZsdXNoX3BlbmRpbmdfb3V0cHV0 ICgpOw0KKyNlbmRpZg0KKw0KKyAgYWxpZ24gPSBnZXRfYWJzb2x1dGVfZXhw cmVzc2lvbiAoKTsNCisgIGlmIChhbGlnbiA+IG1heF9hbGlnbm1lbnQpDQor ICAgIHsNCisgICAgICBhbGlnbiA9IG1heF9hbGlnbm1lbnQ7DQorICAgICAg YXNfYmFkIChfKCJBbGlnbm1lbnQgdG9vIGxhcmdlOiAlZC4gYXNzdW1lZC4i KSwgYWxpZ24pOw0KKyAgICB9DQorICBlbHNlIGlmIChhbGlnbiA8IDApDQor ICAgIHsNCisgICAgICBhc193YXJuIChfKCJBbGlnbm1lbnQgbmVnYXRpdmU6 IDAgYXNzdW1lZC4iKSk7DQorICAgICAgYWxpZ24gPSAwOw0KKyAgICB9DQor DQorICBkZW1hbmRfZW1wdHlfcmVzdF9vZl9saW5lICgpOw0KKyAgY2NzZWcg PSBDVVJfU0VHIChsYXN0X2ZkZSk7DQorICAvKiBPcGVuIC5nbnVfZXh0YWIg c2VjdGlvbi4gICovDQorICBjZmlfc2VnID0gZ2V0X2NmaV9zZWcgKGNjc2Vn LCAiLmdudV9leHRhYiIsDQorCQkJIChTRUNfQUxMT0MgfCBTRUNfTE9BRCB8 IFNFQ19EQVRBDQorCQkJICB8IERXQVJGMl9FSF9GUkFNRV9SRUFEX09OTFkp LA0KKwkJCSAxKTsNCisjaWZkZWYgbWRfZml4X3VwX2VoX2ZyYW1lDQorICBt ZF9maXhfdXBfZWhfZnJhbWUgKGNmaV9zZWcpOw0KKyNlbHNlDQorICAodm9p ZCkgY2ZpX3NlZzsNCisjZW5kaWYNCisNCisgIGZyYWdfYWxpZ24gKGFsaWdu LCAwLCAwKTsNCisgIHJlY29yZF9hbGlnbm1lbnQgKG5vd19zZWcsIGFsaWdu KTsNCisgIGlmIChsYXN0X2ZkZS0+ZWhfaGVhZGVyX3R5cGUgPT0gRUhfQ09N UEFDVF9IQVNfTFNEQSkNCisgICAgb3V0cHV0X2NvbXBhY3RfdW53aW5kX2Rh dGEgKGxhc3RfZmRlLCBhbGlnbik7DQorDQorICBsYXN0X2ZkZSA9IE5VTEw7 DQorDQorICByZXR1cm47DQorfQ0KKyNlbHNlIC8qICFTVVBQT1JUX0NPTVBB Q1RfRUggKi8NCiBzdGF0aWMgdm9pZA0KLW91dF91bGViMTI4IChhZGRyZXNz VCB2YWx1ZSkNCitkb3RfY2ZpX2lubGluZV9sc2RhIChpbnQgaWdub3JlZCBB VFRSSUJVVEVfVU5VU0VEKQ0KIHsNCi0gIG91dHB1dF9sZWIxMjggKGZyYWdf bW9yZSAoc2l6ZW9mX2xlYjEyOCAodmFsdWUsIDApKSwgdmFsdWUsIDApOw0K KyAgYXNfYmFkIChfKCIuY2ZpX2lubGluZV9sc2RhIGlzIG5vdCBzdXBwb3J0 ZWQgZm9yIHRoaXMgdGFyZ2V0IikpOw0KKyAgaWdub3JlX3Jlc3Rfb2ZfbGlu ZSAoKTsNCiB9DQogDQotLyogRW1pdCBhbiB1bnNpZ25lZCAibGl0dGxlLWVu ZGlhbiBiYXNlIDEyOCIgbnVtYmVyLiAgKi8NCi0NCiBzdGF0aWMgdm9pZA0K LW91dF9zbGViMTI4IChvZmZzZXRUIHZhbHVlKQ0KK2RvdF9jZmlfZmRlX2Rh dGEgKGludCBpZ25vcmVkIEFUVFJJQlVURV9VTlVTRUQpDQogew0KLSAgb3V0 cHV0X2xlYjEyOCAoZnJhZ19tb3JlIChzaXplb2ZfbGViMTI4ICh2YWx1ZSwg MSkpLCB2YWx1ZSwgMSk7DQorICBhc19iYWQgKF8oIi5jZmlfZmRlX2RhdGEg aXMgbm90IHN1cHBvcnRlZCBmb3IgdGhpcyB0YXJnZXQiKSk7DQorICBpZ25v cmVfcmVzdF9vZl9saW5lICgpOw0KIH0NCiANCiBzdGF0aWMgdm9pZA0KK2Rv dF9jZmlfcGVyc29uYWxpdHlfaWQgKGludCBpZ25vcmVkIEFUVFJJQlVURV9V TlVTRUQpDQorew0KKyAgYXNfYmFkIChfKCIuY2ZpX3BlcnNvbmFsaXR5X2lk IGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHRoaXMgdGFyZ2V0IikpOw0KKyAgaWdu b3JlX3Jlc3Rfb2ZfbGluZSAoKTsNCit9DQorI2VuZGlmDQorDA0KK3N0YXRp YyB2b2lkDQogb3V0cHV0X2NmaV9pbnNuIChzdHJ1Y3QgY2ZpX2luc25fZGF0 YSAqaW5zbikNCiB7DQogICBvZmZzZXRUIG9mZnNldDsNCkBAIC0xMzMyLDcg KzE2NzUsNyBAQCBvdXRwdXRfY2ZpX2luc24gKHN0cnVjdCBjZmlfaW5zbl9k YXRhICppbnNuKQ0KICAgICBjYXNlIENGSV92YWxfZW5jb2RlZF9hZGRyOg0K ICAgICAgIHsNCiAgICAgICAgIHVuc2lnbmVkIGVuY29kaW5nID0gaW5zbi0+ dS5lYS5lbmNvZGluZzsNCi0gICAgICAgIG9mZnNldFQgZW5jb2Rpbmdfc2l6 ZTsNCisgICAgICAgIG9mZnNldFQgZW5jX3NpemU7DQogDQogCWlmIChlbmNv ZGluZyA9PSBEV19FSF9QRV9vbWl0KQ0KIAkgIGJyZWFrOw0KQEAgLTEzNDIs MTYgKzE2ODUsMTYgQEAgb3V0cHV0X2NmaV9pbnNuIChzdHJ1Y3QgY2ZpX2lu c25fZGF0YSAqaW5zbikNCiAgICAgICAgIHN3aXRjaCAoZW5jb2RpbmcgJiAw eDcpDQogCSAgew0KIAkgIGNhc2UgRFdfRUhfUEVfYWJzcHRyOg0KLQkgICAg ZW5jb2Rpbmdfc2l6ZSA9IERXQVJGMl9BRERSX1NJWkUgKHN0ZG91dHB1dCk7 DQorCSAgICBlbmNfc2l6ZSA9IERXQVJGMl9BRERSX1NJWkUgKHN0ZG91dHB1 dCk7DQogCSAgICBicmVhazsNCiAJICBjYXNlIERXX0VIX1BFX3VkYXRhMjoN Ci0JICAgIGVuY29kaW5nX3NpemUgPSAyOw0KKwkgICAgZW5jX3NpemUgPSAy Ow0KIAkgICAgYnJlYWs7DQogCSAgY2FzZSBEV19FSF9QRV91ZGF0YTQ6DQot CSAgICBlbmNvZGluZ19zaXplID0gNDsNCisJICAgIGVuY19zaXplID0gNDsN CiAJICAgIGJyZWFrOw0KIAkgIGNhc2UgRFdfRUhfUEVfdWRhdGE4Og0KLQkg ICAgZW5jb2Rpbmdfc2l6ZSA9IDg7DQorCSAgICBlbmNfc2l6ZSA9IDg7DQog CSAgICBicmVhazsNCiAJICBkZWZhdWx0Og0KIAkgICAgYWJvcnQgKCk7DQpA QCAtMTM2MSwxMiArMTcwNCwxMiBAQCBvdXRwdXRfY2ZpX2luc24gKHN0cnVj dCBjZmlfaW5zbl9kYXRhICppbnNuKQ0KIAkgICB0aGVuIHVzZSB0aGUgc21h bGxlciBEV19PUF9hZGRyIGVuY29kaW5nLiAgKi8NCiAJaWYgKGluc24tPnUu ZWEuZW5jb2RpbmcgPT0gRFdfRUhfUEVfYWJzcHRyKQ0KIAkgIHsNCi0JICAg IG91dF91bGViMTI4ICgxICsgZW5jb2Rpbmdfc2l6ZSk7DQorCSAgICBvdXRf dWxlYjEyOCAoMSArIGVuY19zaXplKTsNCiAJICAgIG91dF9vbmUgKERXX09Q X2FkZHIpOw0KIAkgIH0NCiAJZWxzZQ0KIAkgIHsNCi0JICAgIG91dF91bGVi MTI4ICgxICsgMSArIGVuY29kaW5nX3NpemUpOw0KKwkgICAgb3V0X3VsZWIx MjggKDEgKyAxICsgZW5jX3NpemUpOw0KIAkgICAgb3V0X29uZSAoRFdfT1Bf R05VX2VuY29kZWRfYWRkcik7DQogCSAgICBvdXRfb25lIChlbmNvZGluZyk7 DQogDQpAQCAtMTM3NiwzNyArMTcxOSwyMSBAQCBvdXRwdXRfY2ZpX2luc24g KHN0cnVjdCBjZmlfaW5zbl9kYXRhICppbnNuKQ0KIAkJaW5zbi0+dS5lYS5l eHAuWF9vcCA9IE9fc3VidHJhY3Q7DQogCQlpbnNuLT51LmVhLmV4cC5YX29w X3N5bWJvbCA9IHN5bWJvbF90ZW1wX25ld19ub3cgKCk7DQogI2VsaWYgZGVm aW5lZCAodGNfY2ZpX2VtaXRfcGNyZWxfZXhwcikNCi0JCXRjX2NmaV9lbWl0 X3BjcmVsX2V4cHIgKCZpbnNuLT51LmVhLmV4cCwgZW5jb2Rpbmdfc2l6ZSk7 DQorCQl0Y19jZmlfZW1pdF9wY3JlbF9leHByICgmaW5zbi0+dS5lYS5leHAs IGVuY19zaXplKTsNCiAJCWJyZWFrOw0KICNlbHNlDQogCQlhYm9ydCAoKTsN CiAjZW5kaWYNCiAJICAgICAgfQ0KIAkgIH0NCi0JZW1pdF9leHByICgmaW5z bi0+dS5lYS5leHAsIGVuY29kaW5nX3NpemUpOw0KKwllbWl0X2V4cHIgKCZp bnNuLT51LmVhLmV4cCwgZW5jX3NpemUpOw0KICAgICAgIH0NCiAgICAgICBi cmVhazsNCiANCi0gICAgZGVmYXVsdDoNCi0gICAgICBhYm9ydCAoKTsNCi0g ICAgfQ0KLX0NCisgICAgY2FzZSBDRklfZXBpbG9ndWVfYmVnaW46DQorICAg ICAgLyogTm90aGluZyB0byBlbWl0LiAgKi8NCisgICAgICBicmVhazsNCiAN Ci1zdGF0aWMgb2Zmc2V0VA0KLWVuY29kaW5nX3NpemUgKHVuc2lnbmVkIGNo YXIgZW5jb2RpbmcpDQotew0KLSAgaWYgKGVuY29kaW5nID09IERXX0VIX1BF X29taXQpDQotICAgIHJldHVybiAwOw0KLSAgc3dpdGNoIChlbmNvZGluZyAm IDB4NykNCi0gICAgew0KLSAgICBjYXNlIDA6DQotICAgICAgcmV0dXJuIGJm ZF9nZXRfYXJjaF9zaXplIChzdGRvdXRwdXQpID09IDY0ID8gOCA6IDQ7DQot ICAgIGNhc2UgRFdfRUhfUEVfdWRhdGEyOg0KLSAgICAgIHJldHVybiAyOw0K LSAgICBjYXNlIERXX0VIX1BFX3VkYXRhNDoNCi0gICAgICByZXR1cm4gNDsN Ci0gICAgY2FzZSBEV19FSF9QRV91ZGF0YTg6DQotICAgICAgcmV0dXJuIDg7 DQogICAgIGRlZmF1bHQ6DQogICAgICAgYWJvcnQgKCk7DQogICAgIH0NCkBA IC0xNDc0LDI2ICsxODAxLDcgQEAgb3V0cHV0X2NpZSAoc3RydWN0IGNpZV9l bnRyeSAqY2llLCBiZmRfYm9vbGVhbiBlaF9mcmFtZSwgaW50IGFsaWduKQ0K IAlhdWdtZW50YXRpb25fc2l6ZSArPSAxICsgZW5jb2Rpbmdfc2l6ZSAoY2ll LT5wZXJfZW5jb2RpbmcpOw0KICAgICAgIG91dF91bGViMTI4IChhdWdtZW50 YXRpb25fc2l6ZSk7CQkvKiBBdWdtZW50YXRpb24gc2l6ZS4gICovDQogDQot ICAgICAgaWYgKGNpZS0+cGVyX2VuY29kaW5nICE9IERXX0VIX1BFX29taXQp DQotCXsNCi0JICBvZmZzZXRUIHNpemUgPSBlbmNvZGluZ19zaXplIChjaWUt PnBlcl9lbmNvZGluZyk7DQotCSAgb3V0X29uZSAoY2llLT5wZXJfZW5jb2Rp bmcpOw0KLQkgIGV4cCA9IGNpZS0+cGVyc29uYWxpdHk7DQotCSAgaWYgKChj aWUtPnBlcl9lbmNvZGluZyAmIDB4NzApID09IERXX0VIX1BFX3BjcmVsKQ0K LQkgICAgew0KLSNpZiBDRklfRElGRl9FWFBSX09LDQotCSAgICAgIGV4cC5Y X29wID0gT19zdWJ0cmFjdDsNCi0JICAgICAgZXhwLlhfb3Bfc3ltYm9sID0g c3ltYm9sX3RlbXBfbmV3X25vdyAoKTsNCi0JICAgICAgZW1pdF9leHByICgm ZXhwLCBzaXplKTsNCi0jZWxpZiBkZWZpbmVkICh0Y19jZmlfZW1pdF9wY3Jl bF9leHByKQ0KLQkgICAgICB0Y19jZmlfZW1pdF9wY3JlbF9leHByICgmZXhw LCBzaXplKTsNCi0jZWxzZQ0KLQkgICAgICBhYm9ydCAoKTsNCi0jZW5kaWYN Ci0JICAgIH0NCi0JICBlbHNlDQotCSAgICBlbWl0X2V4cHIgKCZleHAsIHNp emUpOw0KLQl9DQorICAgICAgZW1pdF9leHByX2VuY29kZWQgKCZjaWUtPnBl cnNvbmFsaXR5LCBjaWUtPnBlcl9lbmNvZGluZywgVFJVRSk7DQogDQogICAg ICAgaWYgKGNpZS0+bHNkYV9lbmNvZGluZyAhPSBEV19FSF9QRV9vbWl0KQ0K IAlvdXRfb25lIChjaWUtPmxzZGFfZW5jb2RpbmcpOw0KQEAgLTE1MTYsNiAr MTgyNCwxMSBAQCBvdXRwdXRfY2llIChzdHJ1Y3QgY2llX2VudHJ5ICpjaWUs IGJmZF9ib29sZWFuIGVoX2ZyYW1lLCBpbnQgYWxpZ24pDQogI2lmIENGSV9E SUZGX0VYUFJfT0sgfHwgZGVmaW5lZCB0Y19jZmlfZW1pdF9wY3JlbF9leHBy DQogICBlbmMgfD0gRFdfRUhfUEVfcGNyZWw7DQogI2VuZGlmDQorI2lmZGVm IERXQVJGMl9GREVfUkVMT0NfRU5DT0RJTkcNCisgIC8qIEFsbG93IHRhcmdl dCB0byBvdmVycmlkZSBlbmNvZGluZy4gICovDQorICBlbmMgPSBEV0FSRjJf RkRFX1JFTE9DX0VOQ09ESU5HIChlbmMpOw0KKyNlbmRpZg0KKyAgY2llLT5m ZGVfZW5jb2RpbmcgPSBlbmM7DQogICBpZiAoZWhfZnJhbWUpDQogICAgIG91 dF9vbmUgKGVuYyk7DQogDQpAQCAtMTU3NiwyOSArMTg4OSw0MyBAQCBvdXRw dXRfZmRlIChzdHJ1Y3QgZmRlX2VudHJ5ICpmZGUsIHN0cnVjdCBjaWVfZW50 cnkgKmNpZSwNCiAgICAgICBUQ19EV0FSRjJfRU1JVF9PRkZTRVQgKGNpZS0+ c3RhcnRfYWRkcmVzcywgb2Zmc2V0X3NpemUpOw0KICAgICB9DQogDQorICBl eHAuWF9vcCA9IE9fc3ltYm9sOw0KKyAgZXhwLlhfYWRkX3N5bWJvbCA9IGZk ZS0+c3RhcnRfYWRkcmVzczsNCiAgIGlmIChlaF9mcmFtZSkNCiAgICAgew0K LSAgICAgIGV4cC5YX29wID0gT19zdWJ0cmFjdDsNCi0gICAgICBleHAuWF9h ZGRfbnVtYmVyID0gMDsNCisgICAgICBpZiAodGNfY2ZpX3NwZWNpYWxfZW5j b2RpbmcgKGNpZS0+ZmRlX2VuY29kaW5nKSkNCisJew0KKwkgIGJmZF9yZWxv Y19jb2RlX3JlYWxfdHlwZSBjb2RlDQorCSAgICA9IHRjX2NmaV9yZWxvY19m b3JfZW5jb2RpbmcgKGNpZS0+ZmRlX2VuY29kaW5nKTsNCisJICByZWxvY19o b3d0b190eXBlICpob3d0byA9IGJmZF9yZWxvY190eXBlX2xvb2t1cCAoc3Rk b3V0cHV0LCBjb2RlKTsNCisJICBjaGFyICpwID0gZnJhZ19tb3JlKDQpOw0K KwkgIG1kX251bWJlcl90b19jaGFycyAocCwgMCwgNCk7DQorCSAgZml4X25l dyAoZnJhZ19ub3csIHAgLSBmcmFnX25vdy0+ZnJfbGl0ZXJhbCwgNCwgZXhw LlhfYWRkX3N5bWJvbCwNCisJCSAgIGV4cC5YX2FkZF9udW1iZXIsIGhvd3Rv LT5wY19yZWxhdGl2ZSwgY29kZSk7DQorCX0NCisgICAgICBlbHNlDQorCXsN CisJICBleHAuWF9vcCA9IE9fc3VidHJhY3Q7DQorCSAgZXhwLlhfYWRkX251 bWJlciA9IDA7DQogI2lmIENGSV9ESUZGX0VYUFJfT0sNCi0gICAgICBleHAu WF9hZGRfc3ltYm9sID0gZmRlLT5zdGFydF9hZGRyZXNzOw0KLSAgICAgIGV4 cC5YX29wX3N5bWJvbCA9IHN5bWJvbF90ZW1wX25ld19ub3cgKCk7DQotICAg ICAgZW1pdF9leHByICgmZXhwLCBEV0FSRjJfRkRFX1JFTE9DX1NJWkUpOwkv KiBDb2RlIG9mZnNldC4gICovDQorCSAgZXhwLlhfYWRkX3N5bWJvbCA9IGZk ZS0+c3RhcnRfYWRkcmVzczsNCisJICBleHAuWF9vcF9zeW1ib2wgPSBzeW1i b2xfdGVtcF9uZXdfbm93ICgpOw0KKwkgIGVtaXRfZXhwciAoJmV4cCwgRFdB UkYyX0ZERV9SRUxPQ19TSVpFKTsJLyogQ29kZSBvZmZzZXQuICAqLw0KICNl bHNlDQotICAgICAgZXhwLlhfb3AgPSBPX3N5bWJvbDsNCi0gICAgICBleHAu WF9hZGRfc3ltYm9sID0gZmRlLT5zdGFydF9hZGRyZXNzOw0KLSNpZmRlZiB0 Y19jZmlfZW1pdF9wY3JlbF9leHByDQotICAgICAgdGNfY2ZpX2VtaXRfcGNy ZWxfZXhwciAoJmV4cCwgRFdBUkYyX0ZERV9SRUxPQ19TSVpFKTsJIC8qIENv ZGUgb2Zmc2V0LiAgKi8NCisJICBleHAuWF9vcCA9IE9fc3ltYm9sOw0KKwkg IGV4cC5YX2FkZF9zeW1ib2wgPSBmZGUtPnN0YXJ0X2FkZHJlc3M7DQorDQor I2lmIGRlZmluZWQodGNfY2ZpX2VtaXRfcGNyZWxfZXhwcikNCisJICB0Y19j ZmlfZW1pdF9wY3JlbF9leHByICgmZXhwLCBEV0FSRjJfRkRFX1JFTE9DX1NJ WkUpOwkgLyogQ29kZSBvZmZzZXQuICAqLw0KICNlbHNlDQotICAgICAgZW1p dF9leHByICgmZXhwLCBEV0FSRjJfRkRFX1JFTE9DX1NJWkUpOwkvKiBDb2Rl IG9mZnNldC4gICovDQorCSAgZW1pdF9leHByICgmZXhwLCBEV0FSRjJfRkRF X1JFTE9DX1NJWkUpOwkvKiBDb2RlIG9mZnNldC4gICovDQogI2VuZGlmDQog I2VuZGlmDQorCX0NCiAgICAgICBhZGRyX3NpemUgPSBEV0FSRjJfRkRFX1JF TE9DX1NJWkU7DQogICAgIH0NCiAgIGVsc2UNCiAgICAgew0KLSAgICAgIGV4 cC5YX29wID0gT19zeW1ib2w7DQotICAgICAgZXhwLlhfYWRkX3N5bWJvbCA9 IGZkZS0+c3RhcnRfYWRkcmVzczsNCiAgICAgICBleHAuWF9hZGRfbnVtYmVy ID0gMDsNCiAgICAgICBhZGRyX3NpemUgPSBEV0FSRjJfQUREUl9TSVpFIChz dGRvdXRwdXQpOw0KICAgICAgIGVtaXRfZXhwciAoJmV4cCwgYWRkcl9zaXpl KTsNCkBAIC0xNjE0LDI0ICsxOTQxLDcgQEAgb3V0cHV0X2ZkZSAoc3RydWN0 IGZkZV9lbnRyeSAqZmRlLCBzdHJ1Y3QgY2llX2VudHJ5ICpjaWUsDQogICBp ZiAoZWhfZnJhbWUpDQogICAgIG91dF91bGViMTI4IChhdWdtZW50YXRpb25f c2l6ZSk7CQkvKiBBdWdtZW50YXRpb24gc2l6ZS4gICovDQogDQotICBpZiAo ZmRlLT5sc2RhX2VuY29kaW5nICE9IERXX0VIX1BFX29taXQpDQotICAgIHsN Ci0gICAgICBleHAgPSBmZGUtPmxzZGE7DQotICAgICAgaWYgKChmZGUtPmxz ZGFfZW5jb2RpbmcgJiAweDcwKSA9PSBEV19FSF9QRV9wY3JlbCkNCi0Jew0K LSNpZiBDRklfRElGRl9MU0RBX09LDQotCSAgZXhwLlhfb3AgPSBPX3N1YnRy YWN0Ow0KLQkgIGV4cC5YX29wX3N5bWJvbCA9IHN5bWJvbF90ZW1wX25ld19u b3cgKCk7DQotCSAgZW1pdF9leHByICgmZXhwLCBhdWdtZW50YXRpb25fc2l6 ZSk7DQotI2VsaWYgZGVmaW5lZCAodGNfY2ZpX2VtaXRfcGNyZWxfZXhwcikN Ci0JICB0Y19jZmlfZW1pdF9wY3JlbF9leHByICgmZXhwLCBhdWdtZW50YXRp b25fc2l6ZSk7DQotI2Vsc2UNCi0JICBhYm9ydCAoKTsNCi0jZW5kaWYNCi0J fQ0KLSAgICAgIGVsc2UNCi0JZW1pdF9leHByICgmZXhwLCBhdWdtZW50YXRp b25fc2l6ZSk7DQotICAgIH0NCisgIGVtaXRfZXhwcl9lbmNvZGVkICgmZmRl LT5sc2RhLCBjaWUtPmxzZGFfZW5jb2RpbmcsIEZBTFNFKTsNCiANCiAgIGZv ciAoOyBmaXJzdDsgZmlyc3QgPSBmaXJzdC0+bmV4dCkNCiAgICAgaWYgKENV Ul9TRUcgKGZpcnN0KSA9PSBDVVJfU0VHIChmZGUpKQ0KQEAgLTE3MjIsNiAr MjAzMiw3IEBAIHNlbGVjdF9jaWVfZm9yX2ZkZSAoc3RydWN0IGZkZV9lbnRy eSAqZmRlLCBiZmRfYm9vbGVhbiBlaF9mcmFtZSwNCiANCiAJICAgIGNhc2Ug Q0ZJX2VzY2FwZToNCiAJICAgIGNhc2UgQ0ZJX3ZhbF9lbmNvZGVkX2FkZHI6 DQorCSAgICBjYXNlIENGSV9lcGlsb2d1ZV9iZWdpbjoNCiAJICAgICAgLyog RG9uJ3QgYm90aGVyIG1hdGNoaW5nIHRoZXNlIGZvciBub3cuICAqLw0KIAkg ICAgICBnb3RvIGZhaWw7DQogDQpAQCAtMTgyMSwyNiArMjEzMiw1MCBAQCBj ZmlfY2hhbmdlX3JlZ19udW1iZXJzIChzdHJ1Y3QgY2ZpX2luc25fZGF0YSAq aW5zbiwgc2VnVCBjY3NlZykNCiAjZGVmaW5lIGNmaV9jaGFuZ2VfcmVnX251 bWJlcnMoaW5zbiwgY3NlZykgZG8geyB9IHdoaWxlICgwKQ0KICNlbmRpZg0K IA0KLXN0YXRpYyBzZWdUDQotZ2V0X2NmaV9zZWcgKHNlZ1QgY3NlZywgY29u c3QgY2hhciAqYmFzZSwgZmxhZ3dvcmQgZmxhZ3MsIGludCBhbGlnbikNCisj aWYgU1VQUE9SVF9DT01QQUNUX0VIDQorc3RhdGljIHZvaWQNCitjZmlfZW1p dF9laF9oZWFkZXIgKHN5bWJvbFMgKnN5bSwgYmZkX3ZtYSBhZGRlbmQpDQog ew0KLSAgaWYgKFNVUFBPUlRfRlJBTUVfTElOS09OQ0UpDQotICAgIHsNCi0g ICAgICBzdHJ1Y3QgZHdjZmlfc2VnX2xpc3QgKmw7DQorICBleHByZXNzaW9u UyBleHA7DQogDQotICAgICAgbCA9IGR3Y2ZpX2hhc2hfZmluZF9vcl9tYWtl IChjc2VnLCBiYXNlLCBmbGFncyk7DQorICBleHAuWF9hZGRfbnVtYmVyID0g YWRkZW5kOw0KKyAgZXhwLlhfYWRkX3N5bWJvbCA9IHN5bTsNCisgIGVtaXRf ZXhwcl9lbmNvZGVkICgmZXhwLCBEV19FSF9QRV9zZGF0YTQgfCBEV19FSF9Q RV9wY3JlbCwgRkFMU0UpOw0KK30NCiANCi0gICAgICBjc2VnID0gbC0+c2Vn Ow0KLSAgICAgIHN1YnNlZ19zZXQgKGNzZWcsIGwtPnN1YnNlZyk7DQorc3Rh dGljIHZvaWQNCitvdXRwdXRfZWhfaGVhZGVyIChzdHJ1Y3QgZmRlX2VudHJ5 ICpmZGUpDQorew0KKyAgY2hhciAqcDsNCisgIGJmZF92bWEgYWRkZW5kOw0K Kw0KKyAgaWYgKGZkZS0+ZWhfaGVhZGVyX3R5cGUgPT0gRUhfQ09NUEFDVF9J TkxJTkUpDQorICAgIGFkZGVuZCA9IDA7DQorICBlbHNlDQorICAgIGFkZGVu ZCA9IDE7DQorDQorICBjZmlfZW1pdF9laF9oZWFkZXIgKGZkZS0+c3RhcnRf YWRkcmVzcywgYWRkZW5kKTsNCisNCisgIGlmIChmZGUtPmVoX2hlYWRlcl90 eXBlID09IEVIX0NPTVBBQ1RfSU5MSU5FKQ0KKyAgICB7DQorICAgICAgcCA9 IGZyYWdfbW9yZSAoNCk7DQorICAgICAgLyogSW5saW5lIGVudHJpZXMgYWx3 YXlzIHVzZSBQUjEuICAqLw0KKyAgICAgICoocCsrKSA9IDE7DQorICAgICAg bWVtY3B5KHAsIGZkZS0+ZWhfZGF0YSwgMyk7DQogICAgIH0NCiAgIGVsc2UN CiAgICAgew0KLSAgICAgIGNzZWcgPSBzdWJzZWdfbmV3IChiYXNlLCAwKTsN Ci0gICAgICBiZmRfc2V0X3NlY3Rpb25fZmxhZ3MgKHN0ZG91dHB1dCwgY3Nl ZywgZmxhZ3MpOw0KKyAgICAgIGlmIChmZGUtPmVoX2hlYWRlcl90eXBlID09 IEVIX0NPTVBBQ1RfTEVHQUNZKQ0KKwlhZGRlbmQgPSAxOw0KKyAgICAgIGVs c2UgaWYgKGZkZS0+ZWhfaGVhZGVyX3R5cGUgPT0gRUhfQ09NUEFDVF9PVVRM SU5FDQorCSAgICAgICB8fCBmZGUtPmVoX2hlYWRlcl90eXBlID09IEVIX0NP TVBBQ1RfT1VUTElORV9ET05FKQ0KKwlhZGRlbmQgPSAwOw0KKyAgICAgIGVs c2UNCisJYWJvcnQgKCk7DQorICAgICAgY2ZpX2VtaXRfZWhfaGVhZGVyIChm ZGUtPmVoX2xvYywgYWRkZW5kKTsNCiAgICAgfQ0KLSAgcmVjb3JkX2FsaWdu bWVudCAoY3NlZywgYWxpZ24pOw0KLSAgcmV0dXJuIGNzZWc7DQogfQ0KKyNl bmRpZg0KIA0KIHZvaWQNCiBjZmlfZmluaXNoICh2b2lkKQ0KQEAgLTE4NTQs MTMgKzIxODksMTMgQEAgY2ZpX2ZpbmlzaCAodm9pZCkNCiAgIGlmIChhbGxf ZmRlX2RhdGEgPT0gMCkNCiAgICAgcmV0dXJuOw0KIA0KLSAgaWYgKChjZmlf c2VjdGlvbnMgJiBDRklfRU1JVF9laF9mcmFtZSkgIT0gMCkNCisgIGlmICgo YWxsX2NmaV9zZWN0aW9ucyAmIENGSV9FTUlUX2VoX2ZyYW1lKSAhPSAwKQ0K ICAgICB7DQogICAgICAgLyogTWFrZSBzdXJlIGNoZWNrX2VoX2ZyYW1lIGRv ZXNuJ3QgZG8gYW55dGhpbmcgd2l0aCBvdXIgb3V0cHV0LiAgKi8NCiAgICAg ICBzYXZlX2ZsYWdfdHJhZGl0aW9uYWxfZm9ybWF0ID0gZmxhZ190cmFkaXRp b25hbF9mb3JtYXQ7DQogICAgICAgZmxhZ190cmFkaXRpb25hbF9mb3JtYXQg PSAxOw0KIA0KLSAgICAgIGlmICghU1VQUE9SVF9GUkFNRV9MSU5LT05DRSkN CisgICAgICBpZiAoIUVIX0ZSQU1FX0xJTktPTkNFKQ0KIAl7DQogCSAgLyog T3BlbiAuZWhfZnJhbWUgc2VjdGlvbi4gICovDQogCSAgY2ZpX3NlZyA9IGdl dF9jZmlfc2VnIChOVUxMLCAiLmVoX2ZyYW1lIiwNCkBAIC0xODg4LDcgKzIy MjMsMTcgQEAgY2ZpX2ZpbmlzaCAodm9pZCkNCiANCiAJICBmb3IgKGZkZSA9 IGFsbF9mZGVfZGF0YTsgZmRlIDsgZmRlID0gZmRlLT5uZXh0KQ0KIAkgICAg ew0KLQkgICAgICBpZiAoU1VQUE9SVF9GUkFNRV9MSU5LT05DRSkNCisJICAg ICAgaWYgKChmZGUtPnNlY3Rpb25zICYgQ0ZJX0VNSVRfZWhfZnJhbWUpID09 IDApDQorCQljb250aW51ZTsNCisNCisjaWYgU1VQUE9SVF9DT01QQUNUX0VI DQorCSAgICAgIGlmIChmZGUtPmVoX2hlYWRlcl90eXBlID09IEVIX0NPTVBB Q1RfSEFTX0xTREEpDQorCQlmZGUtPmVoX2hlYWRlcl90eXBlID0gRUhfQ09N UEFDVF9MRUdBQ1k7DQorDQorCSAgICAgIGlmIChmZGUtPmVoX2hlYWRlcl90 eXBlICE9IEVIX0NPTVBBQ1RfTEVHQUNZKQ0KKwkJY29udGludWU7DQorI2Vu ZGlmDQorCSAgICAgIGlmIChFSF9GUkFNRV9MSU5LT05DRSkNCiAJCXsNCiAJ CSAgaWYgKEhBTkRMRUQgKGZkZSkpDQogCQkgICAgY29udGludWU7DQpAQCAt MTkyMiwxNiArMjI2NywxMDcgQEAgY2ZpX2ZpbmlzaCAodm9pZCkNCiAJCX0N CiANCiAJICAgICAgY2llID0gc2VsZWN0X2NpZV9mb3JfZmRlIChmZGUsIFRS VUUsICZmaXJzdCwgMik7DQorCSAgICAgIGZkZS0+ZWhfbG9jID0gc3ltYm9s X3RlbXBfbmV3X25vdyAoKTsNCiAJICAgICAgb3V0cHV0X2ZkZSAoZmRlLCBj aWUsIFRSVUUsIGZpcnN0LA0KIAkJCSAgZmRlLT5uZXh0ID09IE5VTEwgPyBF SF9GUkFNRV9BTElHTk1FTlQgOiAyKTsNCiAJICAgIH0NCiAJfQ0KLSAgICAg IHdoaWxlIChTVVBQT1JUX0ZSQU1FX0xJTktPTkNFICYmIHNlZWtfbmV4dF9z ZWcgPT0gMik7DQorICAgICAgd2hpbGUgKEVIX0ZSQU1FX0xJTktPTkNFICYm IHNlZWtfbmV4dF9zZWcgPT0gMik7DQogDQotICAgICAgaWYgKFNVUFBPUlRf RlJBTUVfTElOS09OQ0UpDQorICAgICAgaWYgKEVIX0ZSQU1FX0xJTktPTkNF KQ0KIAlmb3IgKGZkZSA9IGFsbF9mZGVfZGF0YTsgZmRlIDsgZmRlID0gZmRl LT5uZXh0KQ0KIAkgIFNFVF9IQU5ETEVEIChmZGUsIDApOw0KIA0KKyNpZiBT VVBQT1JUX0NPTVBBQ1RfRUgNCisgICAgICBpZiAoY29tcGFjdF9laCkNCisJ ew0KKwkgIC8qIENyZWF0ZSByZW1haW5pbmcgb3V0IG9mIGxpbmUgdGFibGUg ZW50cmllcy4gICovDQorCSAgZG8NCisJICAgIHsNCisJICAgICAgY2NzZWcg PSBOVUxMOw0KKwkgICAgICBzZWVrX25leHRfc2VnID0gMDsNCisNCisJICAg ICAgZm9yIChmZGUgPSBhbGxfZmRlX2RhdGE7IGZkZSA7IGZkZSA9IGZkZS0+ bmV4dCkNCisJCXsNCisJCSAgaWYgKChmZGUtPnNlY3Rpb25zICYgQ0ZJX0VN SVRfZWhfZnJhbWUpID09IDApDQorCQkgICAgY29udGludWU7DQorDQorCQkg IGlmIChmZGUtPmVoX2hlYWRlcl90eXBlICE9IEVIX0NPTVBBQ1RfT1VUTElO RSkNCisJCSAgICBjb250aW51ZTsNCisJCSAgaWYgKEhBTkRMRUQgKGZkZSkp DQorCQkgICAgY29udGludWU7DQorCQkgIGlmIChzZWVrX25leHRfc2VnICYm IENVUl9TRUcgKGZkZSkgIT0gY2NzZWcpDQorCQkgICAgew0KKwkJICAgICAg c2Vla19uZXh0X3NlZyA9IDI7DQorCQkgICAgICBjb250aW51ZTsNCisJCSAg ICB9DQorCQkgIGlmICghc2Vla19uZXh0X3NlZykNCisJCSAgICB7DQorCQkg ICAgICBjY3NlZyA9IENVUl9TRUcgKGZkZSk7DQorCQkgICAgICAvKiBPcGVu IC5nbnVfZXh0YWIgc2VjdGlvbi4gICovDQorCQkgICAgICBjZmlfc2VnID0g Z2V0X2NmaV9zZWcgKGNjc2VnLCAiLmdudV9leHRhYiIsDQorCQkJCQkgICAg IChTRUNfQUxMT0MgfCBTRUNfTE9BRCB8IFNFQ19EQVRBDQorCQkJCQkgICAg ICB8IERXQVJGMl9FSF9GUkFNRV9SRUFEX09OTFkpLA0KKwkJCQkJICAgICAx KTsNCisjaWZkZWYgbWRfZml4X3VwX2VoX2ZyYW1lDQorCQkgICAgICBtZF9m aXhfdXBfZWhfZnJhbWUgKGNmaV9zZWcpOw0KKyNlbHNlDQorCQkgICAgICAo dm9pZCkgY2ZpX3NlZzsNCisjZW5kaWYNCisJCSAgICAgIHNlZWtfbmV4dF9z ZWcgPSAxOw0KKwkJICAgIH0NCisJCSAgU0VUX0hBTkRMRUQgKGZkZSwgMSk7 DQorDQorCQkgIGZyYWdfYWxpZ24gKDEsIDAsIDApOw0KKwkJICByZWNvcmRf YWxpZ25tZW50IChub3dfc2VnLCAxKTsNCisJCSAgb3V0cHV0X2NvbXBhY3Rf dW53aW5kX2RhdGEgKGZkZSwgMSk7DQorCQl9DQorCSAgICB9DQorCSAgd2hp bGUgKEVIX0ZSQU1FX0xJTktPTkNFICYmIHNlZWtfbmV4dF9zZWcgPT0gMik7 DQorDQorCSAgZm9yIChmZGUgPSBhbGxfZmRlX2RhdGE7IGZkZSA7IGZkZSA9 IGZkZS0+bmV4dCkNCisJICAgIFNFVF9IQU5ETEVEIChmZGUsIDApOw0KKw0K KwkgIC8qIENyZWF0ZSBpbmRleCB0YWJsZSBmcmFnbWVudHMuICAqLw0KKwkg IGRvDQorCSAgICB7DQorCSAgICAgIGNjc2VnID0gTlVMTDsNCisJICAgICAg c2Vla19uZXh0X3NlZyA9IDA7DQorDQorCSAgICAgIGZvciAoZmRlID0gYWxs X2ZkZV9kYXRhOyBmZGUgOyBmZGUgPSBmZGUtPm5leHQpDQorCQl7DQorCQkg IGlmICgoZmRlLT5zZWN0aW9ucyAmIENGSV9FTUlUX2VoX2ZyYW1lKSA9PSAw KQ0KKwkJICAgIGNvbnRpbnVlOw0KKw0KKwkJICBpZiAoSEFORExFRCAoZmRl KSkNCisJCSAgICBjb250aW51ZTsNCisJCSAgaWYgKHNlZWtfbmV4dF9zZWcg JiYgQ1VSX1NFRyAoZmRlKSAhPSBjY3NlZykNCisJCSAgICB7DQorCQkgICAg ICBzZWVrX25leHRfc2VnID0gMjsNCisJCSAgICAgIGNvbnRpbnVlOw0KKwkJ ICAgIH0NCisJCSAgaWYgKCFzZWVrX25leHRfc2VnKQ0KKwkJICAgIHsNCisJ CSAgICAgIGNjc2VnID0gQ1VSX1NFRyAoZmRlKTsNCisJCSAgICAgIC8qIE9w ZW4gLmVoX2ZyYW1lX2VudHJ5IHNlY3Rpb24uICAqLw0KKwkJICAgICAgY2Zp X3NlZyA9IGdldF9jZmlfc2VnIChjY3NlZywgIi5laF9mcmFtZV9lbnRyeSIs DQorCQkJCQkgICAgIChTRUNfQUxMT0MgfCBTRUNfTE9BRCB8IFNFQ19EQVRB DQorCQkJCQkgICAgICB8IERXQVJGMl9FSF9GUkFNRV9SRUFEX09OTFkpLA0K KwkJCQkJICAgICAyKTsNCisJCSAgICAgIHNlZWtfbmV4dF9zZWcgPSAxOw0K KwkJICAgIH0NCisJCSAgU0VUX0hBTkRMRUQgKGZkZSwgMSk7DQorDQorCQkg IG91dHB1dF9laF9oZWFkZXIgKGZkZSk7DQorCQl9DQorCSAgICB9DQorCSAg d2hpbGUgKHNlZWtfbmV4dF9zZWcgPT0gMik7DQorDQorCSAgZm9yIChmZGUg PSBhbGxfZmRlX2RhdGE7IGZkZSA7IGZkZSA9IGZkZS0+bmV4dCkNCisJICAg IFNFVF9IQU5ETEVEIChmZGUsIDApOw0KKwl9DQorI2VuZGlmIC8qIFNVUFBP UlRfQ09NUEFDVF9FSCAqLw0KKw0KICAgICAgIGZsYWdfdHJhZGl0aW9uYWxf Zm9ybWF0ID0gc2F2ZV9mbGFnX3RyYWRpdGlvbmFsX2Zvcm1hdDsNCiAgICAg fQ0KIA0KQEAgLTE5NTgsNiArMjM5NCw5IEBAIGNmaV9maW5pc2ggKHZvaWQp DQogDQogCSAgZm9yIChmZGUgPSBhbGxfZmRlX2RhdGE7IGZkZSA7IGZkZSA9 IGZkZS0+bmV4dCkNCiAJICAgIHsNCisJICAgICAgaWYgKChmZGUtPnNlY3Rp b25zICYgQ0ZJX0VNSVRfZGVidWdfZnJhbWUpID09IDApDQorCQljb250aW51 ZTsNCisNCiAJICAgICAgaWYgKFNVUFBPUlRfRlJBTUVfTElOS09OQ0UpDQog CQl7DQogCQkgIGlmIChIQU5ETEVEIChmZGUpKQ0KQEAgLTIwMTUsNiArMjQ1 NCw3IEBAIGNvbnN0IHBzZXVkb190eXBlUyBjZmlfcHNldWRvX3RhYmxlW10g PQ0KICAgICB7ICJjZmlfc2VjdGlvbnMiLCBkb3RfY2ZpX2R1bW15LCAwIH0s DQogICAgIHsgImNmaV9zdGFydHByb2MiLCBkb3RfY2ZpX2R1bW15LCAwIH0s DQogICAgIHsgImNmaV9lbmRwcm9jIiwgZG90X2NmaV9kdW1teSwgMCB9LA0K KyAgICB7ICJjZmlfZmRlX2RhdGEiLCBkb3RfY2ZpX2R1bW15LCAwIH0sDQog ICAgIHsgImNmaV9kZWZfY2ZhIiwgZG90X2NmaV9kdW1teSwgMCB9LA0KICAg ICB7ICJjZmlfZGVmX2NmYV9yZWdpc3RlciIsIGRvdF9jZmlfZHVtbXksIDAg fSwNCiAgICAgeyAiY2ZpX2RlZl9jZmFfb2Zmc2V0IiwgZG90X2NmaV9kdW1t eSwgMCB9LA0KQEAgLTIwMzIsOCArMjQ3MiwxMSBAQCBjb25zdCBwc2V1ZG9f dHlwZVMgY2ZpX3BzZXVkb190YWJsZVtdID0NCiAgICAgeyAiY2ZpX2VzY2Fw ZSIsIGRvdF9jZmlfZHVtbXksIDAgfSwNCiAgICAgeyAiY2ZpX3NpZ25hbF9m cmFtZSIsIGRvdF9jZmlfZHVtbXksIDAgfSwNCiAgICAgeyAiY2ZpX3BlcnNv bmFsaXR5IiwgZG90X2NmaV9kdW1teSwgMCB9LA0KKyAgICB7ICJjZmlfcGVy c29uYWxpdHlfaWQiLCBkb3RfY2ZpX2R1bW15LCAwIH0sDQogICAgIHsgImNm aV9sc2RhIiwgZG90X2NmaV9kdW1teSwgMCB9LA0KICAgICB7ICJjZmlfdmFs X2VuY29kZWRfYWRkciIsIGRvdF9jZmlfZHVtbXksIDAgfSwNCisgICAgeyAi Y2ZpX2lubGluZV9sc2RhIiwgZG90X2NmaV9kdW1teSwgMCB9LA0KKyAgICB7 ICJjZmlfcHJvbG9ndWVfZW5kIiwgZG90X2NmaV9kdW1teSwgMCB9LA0KICAg ICB7IE5VTEwsIE5VTEwsIDAgfQ0KICAgfTsNCiANCmRpZmYgLS1naXQgYS9n YXMvZHcyZ2VuY2ZpLmggYi9nYXMvZHcyZ2VuY2ZpLmgNCmluZGV4IDdmODM0 OTYuLjlhN2U1MzggMTAwNjQ0DQotLS0gYS9nYXMvZHcyZ2VuY2ZpLmgNCisr KyBiL2dhcy9kdzJnZW5jZmkuaA0KQEAgLTU3LDEwICs1NywxOCBAQCBleHRl cm4gdm9pZCBjZmlfYWRkX0NGQV9yZXN0b3JlX3N0YXRlICh2b2lkKTsNCiAj ZGVmaW5lIFNVUFBPUlRfRlJBTUVfTElOS09OQ0UgMA0KICNlbmRpZg0KIA0K KyNpZmRlZiB0Y19jZmlfc3BlY2lhbF9lbmNvZGluZw0KKyNkZWZpbmUgU1VQ UE9SVF9DT01QQUNUX0VIIDENCisjZWxzZQ0KKyNkZWZpbmUgU1VQUE9SVF9D T01QQUNUX0VIIDANCisjZW5kaWYNCisNCisjZGVmaW5lIE1VTFRJUExFX0ZS QU1FX1NFQ1RJT05TIChTVVBQT1JUX0ZSQU1FX0xJTktPTkNFIHx8IFNVUFBP UlRfQ09NUEFDVF9FSCkNCisNCiBzdHJ1Y3QgY2ZpX2luc25fZGF0YQ0KIHsN CiAgIHN0cnVjdCBjZmlfaW5zbl9kYXRhICpuZXh0Ow0KLSNpZiBTVVBQT1JU X0ZSQU1FX0xJTktPTkNFDQorI2lmIE1VTFRJUExFX0ZSQU1FX1NFQ1RJT05T DQogICBzZWdUIGN1cl9zZWc7DQogI2VuZGlmDQogICBpbnQgaW5zbjsNCkBA IC05NywxMCArMTA1LDE5IEBAIHN0cnVjdCBjZmlfaW5zbl9kYXRhDQogICB9 IHU7DQogfTsNCiANCitlbnVtIHsNCisgICAgRUhfQ09NUEFDVF9MRUdBQ1ks DQorICAgIEVIX0NPTVBBQ1RfSU5MSU5FLA0KKyAgICBFSF9DT01QQUNUX09V VExJTkUsDQorICAgIEVIX0NPTVBBQ1RfT1VUTElORV9ET05FLA0KKyAgICAv KiBPdXRsaW5lIGlmIC5jZmlfaW5saW5lX2xzZGEgdXNlZCwgb3RoZXJ3aXNl IGxlZ2FjeSBGREUuICAqLw0KKyAgICBFSF9DT01QQUNUX0hBU19MU0RBDQor fTsNCisNCiBzdHJ1Y3QgZmRlX2VudHJ5DQogew0KICAgc3RydWN0IGZkZV9l bnRyeSAqbmV4dDsNCi0jaWYgU1VQUE9SVF9GUkFNRV9MSU5LT05DRQ0KKyNp ZiBNVUxUSVBMRV9GUkFNRV9TRUNUSU9OUw0KICAgc2VnVCBjdXJfc2VnOw0K ICNlbmRpZg0KICAgc3ltYm9sUyAqc3RhcnRfYWRkcmVzczsNCkBAIC0xMDks MTMgKzEyNiwyMSBAQCBzdHJ1Y3QgZmRlX2VudHJ5DQogICBzdHJ1Y3QgY2Zp X2luc25fZGF0YSAqKmxhc3Q7DQogICB1bnNpZ25lZCBjaGFyIHBlcl9lbmNv ZGluZzsNCiAgIHVuc2lnbmVkIGNoYXIgbHNkYV9lbmNvZGluZzsNCisgIGlu dCBwZXJzb25hbGl0eV9pZDsNCiAgIGV4cHJlc3Npb25TIHBlcnNvbmFsaXR5 Ow0KICAgZXhwcmVzc2lvblMgbHNkYTsNCiAgIHVuc2lnbmVkIGludCByZXR1 cm5fY29sdW1uOw0KICAgdW5zaWduZWQgaW50IHNpZ25hbF9mcmFtZTsNCi0j aWYgU1VQUE9SVF9GUkFNRV9MSU5LT05DRQ0KKyNpZiBNVUxUSVBMRV9GUkFN RV9TRUNUSU9OUw0KICAgaW50IGhhbmRsZWQ7DQogI2VuZGlmDQorICBpbnQg ZWhfaGVhZGVyX3R5cGU7DQorICAvKiBDb21wYWN0IHVud2luZGluZyBvcGNv ZGVzLCBub3QgaW5jbHVkaW5nIHRoZSBQUiBieXRlIG9yIExTREEuICAqLw0K KyAgaW50IGVoX2RhdGFfc2l6ZTsNCisgIGJmZF9ieXRlICplaF9kYXRhOw0K KyAgLyogRm9yIG91dCBvZiBsaW5lIHRhYmxlcyBhbmQgRkRFcy4gICovDQor ICBzeW1ib2xTICplaF9sb2M7DQorICBpbnQgc2VjdGlvbnM7DQogfTsNCiAN CiAvKiBUaGUgbGlzdCBvZiBhbGwgRkRFcyB0aGF0IGhhdmUgYmVlbiBjb2xs ZWN0ZWQuICAqLw0KQEAgLTEyOCw1ICsxNTMsNiBAQCBleHRlcm4gc3RydWN0 IGZkZV9lbnRyeSAqYWxsX2ZkZV9kYXRhOw0KICNkZWZpbmUgQ0ZJX2VzY2Fw ZQkJMHgxMDMNCiAjZGVmaW5lIENGSV9zaWduYWxfZnJhbWUJMHgxMDQNCiAj ZGVmaW5lIENGSV92YWxfZW5jb2RlZF9hZGRyCTB4MTA1DQorI2RlZmluZSBD RklfZXBpbG9ndWVfYmVnaW4JMHgxMDYNCiANCiAjZW5kaWYgLyogRFcyR0VO Q0ZJX0ggKi8NCmRpZmYgLS1naXQgYS9nYXMvdGVzdHN1aXRlL2dhcy9taXBz L2NvbXBhY3QtZWgtMS5kIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMvbWlwcy9jb21w YWN0LWVoLTEuZA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAw MDAuLjdjNTI0OGINCi0tLSAvZGV2L251bGwNCisrKyBiL2dhcy90ZXN0c3Vp dGUvZ2FzL21pcHMvY29tcGFjdC1laC0xLmQNCkBAIC0wLDAgKzEsMjggQEAN Cisjb2JqZHVtcDogLXNyDQorI25hbWU6IENvbXBhY3QgRUggIzEgd2l0aCBw ZXJzb25hbGl0eSBJRCBhbmQgRkRFIGRhdGENCisjYXM6IC1FQg0KKw0KKy4q OiAgICAgZmlsZSBmb3JtYXQuKg0KKw0KK1JFTE9DQVRJT04gUkVDT1JEUyBG T1IgXFsucGRyXF06DQorT0ZGU0VUICAgVFlQRSAgICAgICAgICAgICAgVkFM VUUgDQorMDAwMDAwMDAgUl9NSVBTXzMyICAgICAgICAgX1ozZm9vaQ0KKw0K Kw0KK1JFTE9DQVRJT04gUkVDT1JEUyBGT1IgXFsuZWhfZnJhbWVfZW50cnlc XToNCitPRkZTRVQgICBUWVBFICAgICAgICAgICAgICBWQUxVRSANCiswMDAw MDAwMCBSX01JUFNfUEMzMiAgICAgICAudGV4dC4qDQorDQorDQorQ29udGVu dHMgb2Ygc2VjdGlvbiAudGV4dDoNCisgMDAwMCAwMDAwMDAwMC4qDQorQ29u dGVudHMgb2Ygc2VjdGlvbiAucmVnaW5mbzoNCisgMDAwMCAwMDAwMDAwMCAw MDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAgLioNCisgMDAxMCAwMDAwMDAw MCAwMDAwMDAwMCAgICAgICAgICAgICAgICAgICAgLioNCitDb250ZW50cyBv ZiBzZWN0aW9uIC5wZHI6DQorIDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAw MDAwMDAgMDAwMDAwMDAgIC4qDQorIDAwMTAgMDAwMDAwMDAgMDAwMDAwMDAg MDAwMDAwMDAgMDAwMDAwMDAgIC4qDQorQ29udGVudHMgb2Ygc2VjdGlvbiAu Z251LmF0dHJpYnV0ZXM6DQorIDAwMDAgNDEwMDAwMDAgMGY2NzZlNzUgMDAw MTAwMDAgMDAwNzA0MDEgIC4qDQorQ29udGVudHMgb2Ygc2VjdGlvbiAuZWhf ZnJhbWVfZW50cnk6DQorIDAwMDAgMDAwMDAwMDAgMDEwNDQwNWMgICAgICAg ICAgICAgICAgICAgIC4qDQpkaWZmIC0tZ2l0IGEvZ2FzL3Rlc3RzdWl0ZS9n YXMvbWlwcy9jb21wYWN0LWVoLTEucyBiL2dhcy90ZXN0c3VpdGUvZ2FzL21p cHMvY29tcGFjdC1laC0xLnMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRl eCAwMDAwMDAwLi45YzRmOGQyDQotLS0gL2Rldi9udWxsDQorKysgYi9nYXMv dGVzdHN1aXRlL2dhcy9taXBzL2NvbXBhY3QtZWgtMS5zDQpAQCAtMCwwICsx LDE5IEBADQorCS5nbnVfYXR0cmlidXRlIDQsIDENCisJLmFiaWNhbGxzDQor CS50ZXh0DQorCS5hbGlnbgkyDQorCS5nbG9ibAlfWjNmb29pDQorCS5jZmlf c2VjdGlvbnMgLmVoX2ZyYW1lX2VudHJ5DQorJExGQjAgPSAuDQorCS5jZmlf c3RhcnRwcm9jDQorCS5jZmlfcGVyc29uYWxpdHlfaWQgMHgyDQorCS5zZXQJ bm9taXBzMTYNCisJLnNldAlub21pY3JvbWlwcw0KKwkuZW50CV9aM2Zvb2kN CisJLnR5cGUJX1ozZm9vaSwgQGZ1bmN0aW9uDQorX1ozZm9vaToNCisJbm9w DQorCS5lbmQJX1ozZm9vaQ0KKwkuc2l6ZQlfWjNmb29pLCAuLV9aM2Zvb2kN CisJLmNmaV9mZGVfZGF0YSAweDQsMHg0MA0KKwkuY2ZpX2VuZHByb2MNCmRp ZmYgLS1naXQgYS9nYXMvdGVzdHN1aXRlL2dhcy9taXBzL2NvbXBhY3QtZWgt Mi5kIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMvbWlwcy9jb21wYWN0LWVoLTIuZA0K bmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLjk2YjliYTQN Ci0tLSAvZGV2L251bGwNCisrKyBiL2dhcy90ZXN0c3VpdGUvZ2FzL21pcHMv Y29tcGFjdC1laC0yLmQNCkBAIC0wLDAgKzEsNDUgQEANCisjb2JqZHVtcDog LXNyDQorI25hbWU6IENvbXBhY3QgRUggIzIgd2l0aCBwZXJzb25hbGl0eSBy b3V0aW5lIGFuZCBGREUgZGF0YQ0KKyNhczogLUVCDQorDQorLio6ICAgICBm aWxlIGZvcm1hdC4qDQorDQorUkVMT0NBVElPTiBSRUNPUkRTIEZPUiBcWy5w ZHJcXToNCitPRkZTRVQgICBUWVBFICAgICAgICAgICAgICBWQUxVRSANCisw MDAwMDAwMCBSX01JUFNfMzIgICAgICAgICBfWjNmb29pDQorDQorDQorUkVM T0NBVElPTiBSRUNPUkRTIEZPUiBcWy5kYXRhLkRXLnJlZi5fX2dudV9jb21w YWN0X3ByMlxdOg0KK09GRlNFVCAgIFRZUEUgICAgICAgICAgICAgIFZBTFVF IA0KKzAwMDAwMDAwIFJfTUlQU18zMiAgICAgICAgIF9fZ251X2NvbXBhY3Rf cHIyDQorDQorDQorUkVMT0NBVElPTiBSRUNPUkRTIEZPUiBcWy5nbnVfZXh0 YWJcXToNCitPRkZTRVQgICBUWVBFICAgICAgICAgICAgICBWQUxVRSANCisw MDAwMDAwMSBSX01JUFNfR1BSRUwzMiAgICBEVy5yZWYuX19nbnVfY29tcGFj dF9wcjINCisNCisNCitSRUxPQ0FUSU9OIFJFQ09SRFMgRk9SIFxbLmVoX2Zy YW1lX2VudHJ5XF06DQorT0ZGU0VUICAgVFlQRSAgICAgICAgICAgICAgVkFM VUUgDQorMDAwMDAwMDAgUl9NSVBTX1BDMzIgICAgICAgLnRleHQuKg0KKzAw MDAwMDA0IFJfTUlQU19QQzMyICAgICAgIC5nbnVfZXh0YWINCisNCisNCitD b250ZW50cyBvZiBzZWN0aW9uIC5ncm91cDoNCisgMDAwMCAwMDAwMDAwMSAw MDAwMDAwOCAgICAgICAgICAgICAgICAgICAgLioNCitDb250ZW50cyBvZiBz ZWN0aW9uIC50ZXh0Og0KKyAwMDAwIDAwMDAwMDAwLioNCitDb250ZW50cyBv ZiBzZWN0aW9uIC5yZWdpbmZvOg0KKyAwMDAwIDAwMDAwMDAwIDAwMDAwMDAw IDAwMDAwMDAwIDAwMDAwMDAwICAuKg0KKyAwMDEwIDAwMDAwMDAwIDAwMDAw MDAwICAgICAgICAgICAgICAgICAgICAuKg0KK0NvbnRlbnRzIG9mIHNlY3Rp b24gLnBkcjoNCisgMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAw MDAwMDAwMCAgLioNCisgMDAxMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAw MCAwMDAwMDAwMCAgLioNCitDb250ZW50cyBvZiBzZWN0aW9uIC5kYXRhLkRX LnJlZi5fX2dudV9jb21wYWN0X3ByMjoNCisgMDAwMCAwMDAwMDAwMCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLioNCitDb250ZW50cyBvZiBzZWN0 aW9uIC5nbnUuYXR0cmlidXRlczoNCisgMDAwMCA0MTAwMDAwMCAwZjY3NmU3 NSAwMDAxMDAwMCAwMDA3MDQwMSAgLioNCitDb250ZW50cyBvZiBzZWN0aW9u IC5nbnVfZXh0YWI6DQorIDAwMDAgMDAwMDAwMDAgMDAwNDQwNWMgICAgICAg ICAgICAgICAgICAgIC4qDQorQ29udGVudHMgb2Ygc2VjdGlvbiAuZWhfZnJh bWVfZW50cnk6DQorIDAwMDAgMDAwMDAwMDEgMDAwMDAwMDAgICAgICAgICAg ICAgICAgICAgIC4qDQpkaWZmIC0tZ2l0IGEvZ2FzL3Rlc3RzdWl0ZS9nYXMv bWlwcy9jb21wYWN0LWVoLTIucyBiL2dhcy90ZXN0c3VpdGUvZ2FzL21pcHMv Y29tcGFjdC1laC0yLnMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAw MDAwMDAwLi5mNWIyYTcxDQotLS0gL2Rldi9udWxsDQorKysgYi9nYXMvdGVz dHN1aXRlL2dhcy9taXBzL2NvbXBhY3QtZWgtMi5zDQpAQCAtMCwwICsxLDI4 IEBADQorCS5nbnVfYXR0cmlidXRlIDQsIDENCisJLmFiaWNhbGxzDQorICAg ICAgICAuaGlkZGVuIERXLnJlZi5fX2dudV9jb21wYWN0X3ByMg0KKyAgICAg ICAgLndlYWsgICBEVy5yZWYuX19nbnVfY29tcGFjdF9wcjINCisgICAgICAg IC5zZWN0aW9uICAgICAgICAuZGF0YS5EVy5yZWYuX19nbnVfY29tcGFjdF9w cjIsImF3RyIsQHByb2diaXRzLERXLnJlZi5fX2dudV9jb21wYWN0X3ByMixj b21kYXQNCisgICAgICAgIC5hbGlnbiAgMg0KKyAgICAgICAgLnR5cGUgICBE Vy5yZWYuX19nbnVfY29tcGFjdF9wcjIsIEBvYmplY3QNCisgICAgICAgIC5z aXplICAgRFcucmVmLl9fZ251X2NvbXBhY3RfcHIyLCA0DQorRFcucmVmLl9f Z251X2NvbXBhY3RfcHIyOg0KKyAgICAgICAgLndvcmQgICBfX2dudV9jb21w YWN0X3ByMg0KKwkudGV4dA0KKwkuYWxpZ24JMg0KKwkuZ2xvYmwJX1ozZm9v aQ0KKwkuY2ZpX3NlY3Rpb25zIC5laF9mcmFtZV9lbnRyeQ0KKyRMRkIwID0g Lg0KKwkuY2ZpX3N0YXJ0cHJvYw0KKwkuY2ZpX3BlcnNvbmFsaXR5IDB4YmIs IERXLnJlZi5fX2dudV9jb21wYWN0X3ByMg0KKwkuc2V0CW5vbWlwczE2DQor CS5zZXQJbm9taWNyb21pcHMNCisJLmVudAlfWjNmb29pDQorCS50eXBlCV9a M2Zvb2ksIEBmdW5jdGlvbg0KK19aM2Zvb2k6DQorCW5vcA0KKwkuZW5kCV9a M2Zvb2kNCisJLnNpemUJX1ozZm9vaSwgLi1fWjNmb29pDQorCS5jZmlfZmRl X2RhdGEgMHg0LDB4NDANCisJLmNmaV9lbmRwcm9jDQorCS5nbG9ibAlfX2du dV9jb21wYWN0X3ByMg0KZGlmZiAtLWdpdCBhL2dhcy90ZXN0c3VpdGUvZ2Fz L21pcHMvY29tcGFjdC1laC0zLmQgYi9nYXMvdGVzdHN1aXRlL2dhcy9taXBz L2NvbXBhY3QtZWgtMy5kDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXgg MDAwMDAwMC4uMjViZjJkMQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2FzL3Rl c3RzdWl0ZS9nYXMvbWlwcy9jb21wYWN0LWVoLTMuZA0KQEAgLTAsMCArMSwz MSBAQA0KKyNvYmpkdW1wOiAtc3INCisjbmFtZTogQ29tcGFjdCBFSCAjMyB3 aXRoIHBlcnNvbmFsaXR5IGlkIGFuZCBsYXJnZSBGREUgZGF0YQ0KKyNhczog LUVCDQorDQorLio6ICAgICBmaWxlIGZvcm1hdC4qDQorDQorUkVMT0NBVElP TiBSRUNPUkRTIEZPUiBcWy5wZHJcXToNCitPRkZTRVQgICBUWVBFICAgICAg ICAgICAgICBWQUxVRSANCiswMDAwMDAwMCBSX01JUFNfMzIgICAgICAgICBf WjNmb29pDQorDQorDQorUkVMT0NBVElPTiBSRUNPUkRTIEZPUiBcWy5laF9m cmFtZV9lbnRyeVxdOg0KK09GRlNFVCAgIFRZUEUgICAgICAgICAgICAgIFZB TFVFIA0KKzAwMDAwMDAwIFJfTUlQU19QQzMyICAgICAgIC50ZXh0LioNCisw MDAwMDAwNCBSX01JUFNfUEMzMiAgICAgICAuZ251X2V4dGFiDQorDQorDQor Q29udGVudHMgb2Ygc2VjdGlvbiAudGV4dDoNCisgMDAwMCAwMDAwMDAwMC4q DQorQ29udGVudHMgb2Ygc2VjdGlvbiAucmVnaW5mbzoNCisgMDAwMCAwMDAw MDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAgLioNCisgMDAxMCAw MDAwMDAwMCAwMDAwMDAwMCAgICAgICAgICAgICAgICAgICAgLioNCitDb250 ZW50cyBvZiBzZWN0aW9uIC5wZHI6DQorIDAwMDAgMDAwMDAwMDAgMDAwMDAw MDAgMDAwMDAwMDAgMDAwMDAwMDAgIC4qDQorIDAwMTAgMDAwMDAwMDAgMDAw MDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgIC4qDQorQ29udGVudHMgb2Ygc2Vj dGlvbiAuZ251LmF0dHJpYnV0ZXM6DQorIDAwMDAgNDEwMDAwMDAgMGY2NzZl NzUgMDAwMTAwMDAgMDAwNzA0MDEgIC4qDQorQ29udGVudHMgb2Ygc2VjdGlv biAuZ251X2V4dGFiOg0KKyAwMDAwIDAyMDQ0MDAzIDA1NWMgICAgICAgICAg ICAgICAgICAgICAgICAuKg0KK0NvbnRlbnRzIG9mIHNlY3Rpb24gLmVoX2Zy YW1lX2VudHJ5Og0KKyAwMDAwIDAwMDAwMDAxIDAwMDAwMDAwICAgICAgICAg ICAgICAgICAgICAuKg0KZGlmZiAtLWdpdCBhL2dhcy90ZXN0c3VpdGUvZ2Fz L21pcHMvY29tcGFjdC1laC0zLnMgYi9nYXMvdGVzdHN1aXRlL2dhcy9taXBz L2NvbXBhY3QtZWgtMy5zDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXgg MDAwMDAwMC4uZmQ5ZGVmMQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2FzL3Rl c3RzdWl0ZS9nYXMvbWlwcy9jb21wYWN0LWVoLTMucw0KQEAgLTAsMCArMSwx OSBAQA0KKwkuZ251X2F0dHJpYnV0ZSA0LCAxDQorCS5hYmljYWxscw0KKwku dGV4dA0KKwkuYWxpZ24JMg0KKwkuZ2xvYmwJX1ozZm9vaQ0KKwkuY2ZpX3Nl Y3Rpb25zIC5laF9mcmFtZV9lbnRyeQ0KKyRMRkIwID0gLg0KKwkuY2ZpX3N0 YXJ0cHJvYw0KKwkuY2ZpX3BlcnNvbmFsaXR5X2lkIDB4Mg0KKwkuc2V0CW5v bWlwczE2DQorCS5zZXQJbm9taWNyb21pcHMNCisJLmVudAlfWjNmb29pDQor CS50eXBlCV9aM2Zvb2ksIEBmdW5jdGlvbg0KK19aM2Zvb2k6DQorCW5vcA0K KwkuZW5kCV9aM2Zvb2kNCisJLnNpemUJX1ozZm9vaSwgLi1fWjNmb29pDQor CS5jZmlfZmRlX2RhdGEgMHg0LDB4NDAsMHgzLDB4NQ0KKwkuY2ZpX2VuZHBy b2MNCmRpZmYgLS1naXQgYS9nYXMvdGVzdHN1aXRlL2dhcy9taXBzL2NvbXBh Y3QtZWgtNC5kIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMvbWlwcy9jb21wYWN0LWVo LTQuZA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLmMy ZTljYjUNCi0tLSAvZGV2L251bGwNCisrKyBiL2dhcy90ZXN0c3VpdGUvZ2Fz L21pcHMvY29tcGFjdC1laC00LmQNCkBAIC0wLDAgKzEsMzIgQEANCisjb2Jq ZHVtcDogLXNyDQorI25hbWU6IENvbXBhY3QgRUggIzQgd2l0aCBwZXJzb25h bGl0eSBpZCwgRkRFIGRhdGEgYW5kIExTREENCisjYXM6IC1FQg0KKw0KKy4q OiAgICAgZmlsZSBmb3JtYXQuKg0KKw0KK1JFTE9DQVRJT04gUkVDT1JEUyBG T1IgXFsucGRyXF06DQorT0ZGU0VUICAgVFlQRSAgICAgICAgICAgICAgVkFM VUUgDQorMDAwMDAwMDAgUl9NSVBTXzMyICAgICAgICAgX1ozZm9vaQ0KKw0K Kw0KK1JFTE9DQVRJT04gUkVDT1JEUyBGT1IgXFsuZWhfZnJhbWVfZW50cnlc XToNCitPRkZTRVQgICBUWVBFICAgICAgICAgICAgICBWQUxVRSANCiswMDAw MDAwMCBSX01JUFNfUEMzMiAgICAgICAudGV4dC4qDQorMDAwMDAwMDQgUl9N SVBTX1BDMzIgICAgICAgLmdudV9leHRhYg0KKw0KKw0KK0NvbnRlbnRzIG9m IHNlY3Rpb24gLnRleHQ6DQorIDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAw MDAwMDAgMDAwMDAwMDAgIC4qDQorIDAwMTAgMDAwMDAwMDAuKg0KK0NvbnRl bnRzIG9mIHNlY3Rpb24gLnJlZ2luZm86DQorIDAwMDAgMDAwMDAwMDAgMDAw MDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgIC4qDQorIDAwMTAgMDAwMDAwMDAg MDAwMDAwMDAgICAgICAgICAgICAgICAgICAgIC4qDQorQ29udGVudHMgb2Yg c2VjdGlvbiAucGRyOg0KKyAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAw MDAwIDAwMDAwMDAwICAuKg0KKyAwMDEwIDAwMDAwMDAwIDAwMDAwMDAwIDAw MDAwMDAwIDAwMDAwMDAwICAuKg0KK0NvbnRlbnRzIG9mIHNlY3Rpb24gLmdu dV9leHRhYjoNCisgMDAwMCAwMjA0NDA1YyAwMjBhMDEwNCA3ZjA1MDQwNCAw MDA1MDQ3ZiAgLioNCitDb250ZW50cyBvZiBzZWN0aW9uIC5nbnUuYXR0cmli dXRlczoNCisgMDAwMCA0MTAwMDAwMCAwZjY3NmU3NSAwMDAxMDAwMCAwMDA3 MDQwMSAgLioNCitDb250ZW50cyBvZiBzZWN0aW9uIC5laF9mcmFtZV9lbnRy eToNCisgMDAwMCAwMDAwMDAwMSAwMDAwMDAwMCAgICAgICAgICAgICAgICAg ICAgLioNCmRpZmYgLS1naXQgYS9nYXMvdGVzdHN1aXRlL2dhcy9taXBzL2Nv bXBhY3QtZWgtNC5zIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMvbWlwcy9jb21wYWN0 LWVoLTQucw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAu LmQwYmUxYzcNCi0tLSAvZGV2L251bGwNCisrKyBiL2dhcy90ZXN0c3VpdGUv Z2FzL21pcHMvY29tcGFjdC1laC00LnMNCkBAIC0wLDAgKzEsNDcgQEANCisJ LmdudV9hdHRyaWJ1dGUgNCwgMQ0KKwkuYWJpY2FsbHMNCisJLnRleHQNCisJ LmFsaWduCTINCisJLmdsb2JsCV9aM2Zvb2kNCisJLmNmaV9zZWN0aW9ucyAu ZWhfZnJhbWVfZW50cnkNCiskTEZCMCA9IC4NCisJLmNmaV9zdGFydHByb2MN CisJLmNmaV9wZXJzb25hbGl0eV9pZCAweDINCisJLmNmaV9sc2RhIDB4MWIs JExMU0RBMA0KKwkuc2V0CW5vbWlwczE2DQorCS5zZXQJbm9taWNyb21pcHMN CisJLmVudAlfWjNmb29pDQorCS50eXBlCV9aM2Zvb2ksIEBmdW5jdGlvbg0K K19aM2Zvb2k6DQorJExFSEIwID0gLg0KKwlub3ANCiskTEVIRTAgPSAuDQor CW5vcA0KKyRMRUhCMSA9IC4NCisJbm9wDQorJExFSEUxID0gLg0KKwlub3AN CiskTEVIQjIgPSAuDQorJEwzOg0KKwlub3ANCiskTEVIRTIgPSAuDQorCS5l bmQJX1ozZm9vaQ0KKwkuc2l6ZQlfWjNmb29pLCAuLV9aM2Zvb2kNCisJLmNm aV9mZGVfZGF0YSAweDQsMHg0MA0KKwkuY2ZpX2VuZHByb2MNCisJLmNmaV9p bmxpbmVfbHNkYSAyDQorJExMU0RBMDoNCisJLmJ5dGUJMHgyDQorCS51bGVi MTI4ICRMTFNEQUNTRTAtJExMU0RBQ1NCMA0KKyRMTFNEQUNTQjA6DQorCS51 bGViMTI4ICgkTEVIQjAtJExGQjApfDENCisJLnVsZWIxMjggKCRMRUhFMC0k TEVIQjApDQorCS5zbGViMTI4IC0xDQorCS51bGViMTI4ICgkTEVIQjEtJExF SEUwKXwxDQorCS51bGViMTI4ICgkTEVIRTEtJExFSEIxKQ0KKwkuc2xlYjEy OCAoJEwzLSgkTEVIRTEpKQ0KKwkuc2xlYjEyOCAoMDw8Mil8MA0KKwkudWxl YjEyOCAoJExFSEIyLSRMRUhFMSl8MQ0KKwkudWxlYjEyOCAoJExFSEUyLSRM RUhCMikNCisJLnNsZWIxMjggLTENCiskTExTREFDU0UwOg0KZGlmZiAtLWdp dCBhL2dhcy90ZXN0c3VpdGUvZ2FzL21pcHMvY29tcGFjdC1laC01LmQgYi9n YXMvdGVzdHN1aXRlL2dhcy9taXBzL2NvbXBhY3QtZWgtNS5kDQpuZXcgZmls ZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uMGFhOWUwZA0KLS0tIC9k ZXYvbnVsbA0KKysrIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMvbWlwcy9jb21wYWN0 LWVoLTUuZA0KQEAgLTAsMCArMSw0NyBAQA0KKyNvYmpkdW1wOiAtc3INCisj bmFtZTogQ29tcGFjdCBFSCAjNSB3aXRoIHBlcnNvbmFsaXR5IHJvdXRpbmUs IEZERSBkYXRhIGFuZCBMU0RBDQorI2FzOiAtRUINCisNCisuKjogICAgIGZp bGUgZm9ybWF0LioNCisNCitSRUxPQ0FUSU9OIFJFQ09SRFMgRk9SIFxbLnBk clxdOg0KK09GRlNFVCAgIFRZUEUgICAgICAgICAgICAgIFZBTFVFIA0KKzAw MDAwMDAwIFJfTUlQU18zMiAgICAgICAgIF9aM2Zvb2kNCisNCisNCitSRUxP Q0FUSU9OIFJFQ09SRFMgRk9SIFxbLmRhdGEuRFcucmVmLl9fZ251X2NvbXBh Y3RfcHIyXF06DQorT0ZGU0VUICAgVFlQRSAgICAgICAgICAgICAgVkFMVUUg DQorMDAwMDAwMDAgUl9NSVBTXzMyICAgICAgICAgX19nbnVfY29tcGFjdF9w cjINCisNCisNCitSRUxPQ0FUSU9OIFJFQ09SRFMgRk9SIFxbLmdudV9leHRh YlxdOg0KK09GRlNFVCAgIFRZUEUgICAgICAgICAgICAgIFZBTFVFIA0KKzAw MDAwMDAxIFJfTUlQU19HUFJFTDMyICAgIERXLnJlZi5fX2dudV9jb21wYWN0 X3ByMg0KKw0KKw0KK1JFTE9DQVRJT04gUkVDT1JEUyBGT1IgXFsuZWhfZnJh bWVfZW50cnlcXToNCitPRkZTRVQgICBUWVBFICAgICAgICAgICAgICBWQUxV RSANCiswMDAwMDAwMCBSX01JUFNfUEMzMiAgICAgICAudGV4dC4qDQorMDAw MDAwMDQgUl9NSVBTX1BDMzIgICAgICAgLmdudV9leHRhYg0KKw0KKw0KK0Nv bnRlbnRzIG9mIHNlY3Rpb24gLmdyb3VwOg0KKyAwMDAwIDAwMDAwMDAxIDAw MDAwMDA4ICAgICAgICAgICAgICAgICAgICAuKg0KK0NvbnRlbnRzIG9mIHNl Y3Rpb24gLnRleHQ6DQorIDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAw MDAgMDAwMDAwMDAgIC4qDQorIDAwMTAgMDAwMDAwMDAuKg0KK0NvbnRlbnRz IG9mIHNlY3Rpb24gLnJlZ2luZm86DQorIDAwMDAgMDAwMDAwMDAgMDAwMDAw MDAgMDAwMDAwMDAgMDAwMDAwMDAgIC4qDQorIDAwMTAgMDAwMDAwMDAgMDAw MDAwMDAgICAgICAgICAgICAgICAgICAgIC4qDQorQ29udGVudHMgb2Ygc2Vj dGlvbiAucGRyOg0KKyAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAw IDAwMDAwMDAwICAuKg0KKyAwMDEwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAw MDAwIDAwMDAwMDAwICAuKg0KK0NvbnRlbnRzIG9mIHNlY3Rpb24gLmRhdGEu RFcucmVmLl9fZ251X2NvbXBhY3RfcHIyOg0KKyAwMDAwIDAwMDAwMDAwICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAuKg0KK0NvbnRlbnRzIG9mIHNl Y3Rpb24gLmdudV9leHRhYjoNCisgMDAwMCAwMDAwMDAwMCAwMDA0NDA1YyAw MjBhMDEwNCA3ZjA1MDQwNCAgLioNCisgMDAxMCAwMDA1MDQ3ZiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLioNCitDb250ZW50cyBvZiBzZWN0aW9u IC5nbnUuYXR0cmlidXRlczoNCisgMDAwMCA0MTAwMDAwMCAwZjY3NmU3NSAw MDAxMDAwMCAwMDA3MDQwMSAgLioNCitDb250ZW50cyBvZiBzZWN0aW9uIC5l aF9mcmFtZV9lbnRyeToNCisgMDAwMCAwMDAwMDAwMSAwMDAwMDAwMCAgICAg ICAgICAgICAgICAgICAgLioNCmRpZmYgLS1naXQgYS9nYXMvdGVzdHN1aXRl L2dhcy9taXBzL2NvbXBhY3QtZWgtNS5zIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMv bWlwcy9jb21wYWN0LWVoLTUucw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmlu ZGV4IDAwMDAwMDAuLjZiZGY1NTENCi0tLSAvZGV2L251bGwNCisrKyBiL2dh cy90ZXN0c3VpdGUvZ2FzL21pcHMvY29tcGFjdC1laC01LnMNCkBAIC0wLDAg KzEsNTYgQEANCisJLmdudV9hdHRyaWJ1dGUgNCwgMQ0KKwkuYWJpY2FsbHMN CisgICAgICAgIC5oaWRkZW4gRFcucmVmLl9fZ251X2NvbXBhY3RfcHIyDQor ICAgICAgICAud2VhayAgIERXLnJlZi5fX2dudV9jb21wYWN0X3ByMg0KKyAg ICAgICAgLnNlY3Rpb24gICAgICAgIC5kYXRhLkRXLnJlZi5fX2dudV9jb21w YWN0X3ByMiwiYXdHIixAcHJvZ2JpdHMsRFcucmVmLl9fZ251X2NvbXBhY3Rf cHIyLGNvbWRhdA0KKyAgICAgICAgLmFsaWduICAyDQorICAgICAgICAudHlw ZSAgIERXLnJlZi5fX2dudV9jb21wYWN0X3ByMiwgQG9iamVjdA0KKyAgICAg ICAgLnNpemUgICBEVy5yZWYuX19nbnVfY29tcGFjdF9wcjIsIDQNCitEVy5y ZWYuX19nbnVfY29tcGFjdF9wcjI6DQorICAgICAgICAud29yZCAgIF9fZ251 X2NvbXBhY3RfcHIyDQorCS50ZXh0DQorCS5hbGlnbgkyDQorCS5nbG9ibAlf WjNmb29pDQorCS5jZmlfc2VjdGlvbnMgLmVoX2ZyYW1lX2VudHJ5DQorJExG QjAgPSAuDQorCS5jZmlfc3RhcnRwcm9jDQorCS5jZmlfcGVyc29uYWxpdHkg MHhiYiwgRFcucmVmLl9fZ251X2NvbXBhY3RfcHIyDQorCS5jZmlfbHNkYSAw eDFiLCRMTFNEQTANCisJLnNldAlub21pcHMxNg0KKwkuc2V0CW5vbWljcm9t aXBzDQorCS5lbnQJX1ozZm9vaQ0KKwkudHlwZQlfWjNmb29pLCBAZnVuY3Rp b24NCitfWjNmb29pOg0KKyRMRUhCMCA9IC4NCisJbm9wDQorJExFSEUwID0g Lg0KKwlub3ANCiskTEVIQjEgPSAuDQorCW5vcA0KKyRMRUhFMSA9IC4NCisJ bm9wDQorJExFSEIyID0gLg0KKyRMMzoNCisJbm9wDQorJExFSEUyID0gLg0K KwkuZW5kCV9aM2Zvb2kNCisJLnNpemUJX1ozZm9vaSwgLi1fWjNmb29pDQor CS5jZmlfZmRlX2RhdGEgMHg0LDB4NDANCisJLmNmaV9lbmRwcm9jDQorCS5n bG9ibAlfX2dudV9jb21wYWN0X3ByMg0KKwkuY2ZpX2lubGluZV9sc2RhIDIN CiskTExTREEwOg0KKwkuYnl0ZQkweDINCisJLnVsZWIxMjggJExMU0RBQ1NF MC0kTExTREFDU0IwDQorJExMU0RBQ1NCMDoNCisJLnVsZWIxMjggKCRMRUhC MC0kTEZCMCl8MQ0KKwkudWxlYjEyOCAoJExFSEUwLSRMRUhCMCkNCisJLnNs ZWIxMjggLTENCisJLnVsZWIxMjggKCRMRUhCMS0kTEVIRTApfDENCisJLnVs ZWIxMjggKCRMRUhFMS0kTEVIQjEpDQorCS5zbGViMTI4ICgkTDMtKCRMRUhF MSkpDQorCS5zbGViMTI4ICgwPDwyKXwwDQorCS51bGViMTI4ICgkTEVIQjIt JExFSEUxKXwxDQorCS51bGViMTI4ICgkTEVIRTItJExFSEIyKQ0KKwkuc2xl YjEyOCAtMQ0KKyRMTFNEQUNTRTA6DQpkaWZmIC0tZ2l0IGEvZ2FzL3Rlc3Rz dWl0ZS9nYXMvbWlwcy9jb21wYWN0LWVoLTYuZCBiL2dhcy90ZXN0c3VpdGUv Z2FzL21pcHMvY29tcGFjdC1laC02LmQNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQppbmRleCAwMDAwMDAwLi4zODUyYWI5DQotLS0gL2Rldi9udWxsDQorKysg Yi9nYXMvdGVzdHN1aXRlL2dhcy9taXBzL2NvbXBhY3QtZWgtNi5kDQpAQCAt MCwwICsxLDMzIEBADQorI29iamR1bXA6IC1zcg0KKyNuYW1lOiBDb21wYWN0 IEVIICM2IHdpdGggcGVyc29uYWxpdHkgaWQsIExTREEgYW5kIGxhcmdlIEZE RSBkYXRhDQorI2FzOiAtRUINCisNCisuKjogICAgIGZpbGUgZm9ybWF0LioN CisNCitSRUxPQ0FUSU9OIFJFQ09SRFMgRk9SIFxbLnBkclxdOg0KK09GRlNF VCAgIFRZUEUgICAgICAgICAgICAgIFZBTFVFIA0KKzAwMDAwMDAwIFJfTUlQ U18zMiAgICAgICAgIF9aM2Zvb2kNCisNCisNCitSRUxPQ0FUSU9OIFJFQ09S RFMgRk9SIFxbLmVoX2ZyYW1lX2VudHJ5XF06DQorT0ZGU0VUICAgVFlQRSAg ICAgICAgICAgICAgVkFMVUUgDQorMDAwMDAwMDAgUl9NSVBTX1BDMzIgICAg ICAgLnRleHQuKg0KKzAwMDAwMDA0IFJfTUlQU19QQzMyICAgICAgIC5nbnVf ZXh0YWINCisNCisNCitDb250ZW50cyBvZiBzZWN0aW9uIC50ZXh0Og0KKyAw MDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwICAuKg0K KyAwMDEwIDAwMDAwMDAwLioNCitDb250ZW50cyBvZiBzZWN0aW9uIC5yZWdp bmZvOg0KKyAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAw MDAwICAuKg0KKyAwMDEwIDAwMDAwMDAwIDAwMDAwMDAwICAgICAgICAgICAg ICAgICAgICAuKg0KK0NvbnRlbnRzIG9mIHNlY3Rpb24gLnBkcjoNCisgMDAw MCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAgLioNCisg MDAxMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAgLioN CitDb250ZW50cyBvZiBzZWN0aW9uIC5nbnVfZXh0YWI6DQorIDAwMDAgMDIw NDQwMDMgMDU1ZjVmNWMgMDIwYTAxMDQgN2YwNTA0MDQgIC4qDQorIDAwMTAg MDAwNTA0N2YgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4qDQorQ29u dGVudHMgb2Ygc2VjdGlvbiAuZ251LmF0dHJpYnV0ZXM6DQorIDAwMDAgNDEw MDAwMDAgMGY2NzZlNzUgMDAwMTAwMDAgMDAwNzA0MDEgIC4qDQorQ29udGVu dHMgb2Ygc2VjdGlvbiAuZWhfZnJhbWVfZW50cnk6DQorIDAwMDAgMDAwMDAw MDEgMDAwMDAwMDAgICAgICAgICAgICAgICAgICAgIC4qDQpkaWZmIC0tZ2l0 IGEvZ2FzL3Rlc3RzdWl0ZS9nYXMvbWlwcy9jb21wYWN0LWVoLTYucyBiL2dh cy90ZXN0c3VpdGUvZ2FzL21pcHMvY29tcGFjdC1laC02LnMNCm5ldyBmaWxl IG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi4yZTQ5MDU0DQotLS0gL2Rl di9udWxsDQorKysgYi9nYXMvdGVzdHN1aXRlL2dhcy9taXBzL2NvbXBhY3Qt ZWgtNi5zDQpAQCAtMCwwICsxLDQ3IEBADQorCS5nbnVfYXR0cmlidXRlIDQs IDENCisJLmFiaWNhbGxzDQorCS50ZXh0DQorCS5hbGlnbgkyDQorCS5nbG9i bAlfWjNmb29pDQorCS5jZmlfc2VjdGlvbnMgLmVoX2ZyYW1lX2VudHJ5DQor JExGQjAgPSAuDQorCS5jZmlfc3RhcnRwcm9jDQorCS5jZmlfcGVyc29uYWxp dHlfaWQgMHgyDQorCS5jZmlfbHNkYSAweDFiLCRMTFNEQTANCisJLnNldAlu b21pcHMxNg0KKwkuc2V0CW5vbWljcm9taXBzDQorCS5lbnQJX1ozZm9vaQ0K KwkudHlwZQlfWjNmb29pLCBAZnVuY3Rpb24NCitfWjNmb29pOg0KKyRMRUhC MCA9IC4NCisJbm9wDQorJExFSEUwID0gLg0KKwlub3ANCiskTEVIQjEgPSAu DQorCW5vcA0KKyRMRUhFMSA9IC4NCisJbm9wDQorJExFSEIyID0gLg0KKyRM MzoNCisJbm9wDQorJExFSEUyID0gLg0KKwkuZW5kCV9aM2Zvb2kNCisJLnNp emUJX1ozZm9vaSwgLi1fWjNmb29pDQorCS5jZmlfZmRlX2RhdGEgMHg0LDB4 NDAsMHgzLDB4NQ0KKwkuY2ZpX2VuZHByb2MNCisJLmNmaV9pbmxpbmVfbHNk YSAyDQorJExMU0RBMDoNCisJLmJ5dGUJMHgyDQorCS51bGViMTI4ICRMTFNE QUNTRTAtJExMU0RBQ1NCMA0KKyRMTFNEQUNTQjA6DQorCS51bGViMTI4ICgk TEVIQjAtJExGQjApfDENCisJLnVsZWIxMjggKCRMRUhFMC0kTEVIQjApDQor CS5zbGViMTI4IC0xDQorCS51bGViMTI4ICgkTEVIQjEtJExFSEUwKXwxDQor CS51bGViMTI4ICgkTEVIRTEtJExFSEIxKQ0KKwkuc2xlYjEyOCAoJEwzLSgk TEVIRTEpKQ0KKwkuc2xlYjEyOCAoMDw8Mil8MA0KKwkudWxlYjEyOCAoJExF SEIyLSRMRUhFMSl8MQ0KKwkudWxlYjEyOCAoJExFSEUyLSRMRUhCMikNCisJ LnNsZWIxMjggLTENCiskTExTREFDU0UwOg0KZGlmZiAtLWdpdCBhL2dhcy90 ZXN0c3VpdGUvZ2FzL21pcHMvY29tcGFjdC1laC03LmQgYi9nYXMvdGVzdHN1 aXRlL2dhcy9taXBzL2NvbXBhY3QtZWgtNy5kDQpuZXcgZmlsZSBtb2RlIDEw MDY0NA0KaW5kZXggMDAwMDAwMC4uYzBjOWM2MQ0KLS0tIC9kZXYvbnVsbA0K KysrIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMvbWlwcy9jb21wYWN0LWVoLTcuZA0K QEAgLTAsMCArMSwzOCBAQA0KKyNvYmpkdW1wOiAtc3INCisjbmFtZTogQ29t cGFjdCBFSCAjNyB3aXRoIHBlcnNvbmFsaXR5IGlkIGFuZCBmYWxsYmFjayBG REUNCisjYXM6IC1FQg0KKw0KKy4qOiAgICAgZmlsZSBmb3JtYXQuKg0KKw0K K1JFTE9DQVRJT04gUkVDT1JEUyBGT1IgXFsucGRyXF06DQorT0ZGU0VUICAg VFlQRSAgICAgICAgICAgICAgVkFMVUUgDQorMDAwMDAwMDAgUl9NSVBTXzMy ICAgICAgICAgX1ozZm9vaQ0KKw0KKw0KK1JFTE9DQVRJT04gUkVDT1JEUyBG T1IgXFsuZWhfZnJhbWVcXToNCitPRkZTRVQgICBUWVBFICAgICAgICAgICAg ICBWQUxVRSANCiswMDAwMDAxYyBSX01JUFNfUEMzMiAgICAgICAudGV4dC4q DQorDQorDQorUkVMT0NBVElPTiBSRUNPUkRTIEZPUiBcWy5laF9mcmFtZV9l bnRyeVxdOg0KK09GRlNFVCAgIFRZUEUgICAgICAgICAgICAgIFZBTFVFIA0K KzAwMDAwMDAwIFJfTUlQU19QQzMyICAgICAgIC50ZXh0LioNCiswMDAwMDAw NCBSX01JUFNfUEMzMiAgICAgICAuZWhfZnJhbWUuKg0KKw0KKw0KK0NvbnRl bnRzIG9mIHNlY3Rpb24gLnRleHQ6DQorIDAwMDAgMDAwMDAwMDAgMDAwMDAw MDAuKg0KK0NvbnRlbnRzIG9mIHNlY3Rpb24gLnJlZ2luZm86DQorIDAwMDAg MDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgIC4qDQorIDAw MTAgMDAwMDAwMDAgMDAwMDAwMDAgICAgICAgICAgICAgICAgICAgIC4qDQor Q29udGVudHMgb2Ygc2VjdGlvbiAucGRyOg0KKyAwMDAwIDAwMDAwMDAwIDAw MDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwICAuKg0KKyAwMDEwIDAwMDAwMDAw IDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwICAuKg0KK0NvbnRlbnRzIG9m IHNlY3Rpb24gLmdudS5hdHRyaWJ1dGVzOg0KKyAwMDAwIDQxMDAwMDAwIDBm Njc2ZTc1IDAwMDEwMDAwIDAwMDcwNDAxICAuKg0KK0NvbnRlbnRzIG9mIHNl Y3Rpb24gLmVoX2ZyYW1lOg0KKyAwMDAwIDAwMDAwMDEwIDAwMDAwMDAwIDAx N2E1MjAwIDAxN2MxZjAxICAuKg0KKyAwMDEwIDFiMGQxZDAwIDAwMDAwMDE0 IDAwMDAwMDE4IDAwMDAwMDAwICAuKg0KKyAwMDIwIDAwMDAwMDA4IDAwNDQx MzA4IDQ0MGUwMDAwICAgICAgICAgICAuKg0KK0NvbnRlbnRzIG9mIHNlY3Rp b24gLmVoX2ZyYW1lX2VudHJ5Og0KKyAwMDAwIDAwMDAwMDAxIDAwMDAwMDE1 ICAgICAgICAgICAgICAgICAgICAuKg0KZGlmZiAtLWdpdCBhL2dhcy90ZXN0 c3VpdGUvZ2FzL21pcHMvY29tcGFjdC1laC03LnMgYi9nYXMvdGVzdHN1aXRl L2dhcy9taXBzL2NvbXBhY3QtZWgtNy5zDQpuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KaW5kZXggMDAwMDAwMC4uZTc1NTRkMg0KLS0tIC9kZXYvbnVsbA0KKysr IGIvZ2FzL3Rlc3RzdWl0ZS9nYXMvbWlwcy9jb21wYWN0LWVoLTcucw0KQEAg LTAsMCArMSwyMiBAQA0KKwkuZ251X2F0dHJpYnV0ZSA0LCAxDQorCS5hYmlj YWxscw0KKwkudGV4dA0KKwkuYWxpZ24JMg0KKwkuZ2xvYmwJX1ozZm9vaQ0K KwkuY2ZpX3NlY3Rpb25zIC5laF9mcmFtZV9lbnRyeQ0KKyRMRkIwID0gLg0K KwkuY2ZpX3N0YXJ0cHJvYw0KKwkuY2ZpX3BlcnNvbmFsaXR5X2lkIDB4Mg0K Kwkuc2V0CW5vbWlwczE2DQorCS5zZXQJbm9taWNyb21pcHMNCisJLmVudAlf WjNmb29pDQorCS50eXBlCV9aM2Zvb2ksIEBmdW5jdGlvbg0KK19aM2Zvb2k6 DQorCW5vcA0KKwkuY2ZpX2RlZl9jZmFfb2Zmc2V0IC0zMg0KKwlub3ANCisJ LmNmaV9kZWZfY2ZhX29mZnNldCAwDQorCQ0KKwkuZW5kCV9aM2Zvb2kNCisJ LnNpemUJX1ozZm9vaSwgLi1fWjNmb29pDQorCS5jZmlfZW5kcHJvYw0KZGlm ZiAtLWdpdCBhL2dhcy90ZXN0c3VpdGUvZ2FzL21pcHMvY29tcGFjdC1laC1l bC0xLmQgYi9nYXMvdGVzdHN1aXRlL2dhcy9taXBzL2NvbXBhY3QtZWgtZWwt MS5kDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uYTZl YmVkOQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMv bWlwcy9jb21wYWN0LWVoLWVsLTEuZA0KQEAgLTAsMCArMSwyOSBAQA0KKyNv YmpkdW1wOiAtc3INCisjbmFtZTogQ29tcGFjdCBFSCBFTCAjMSB3aXRoIHBl cnNvbmFsaXR5IElEIGFuZCBGREUgZGF0YQ0KKyNzb3VyY2U6IGNvbXBhY3Qt ZWgtMS5zDQorI2FzOiAtRUwNCisNCisuKjogICAgIGZpbGUgZm9ybWF0LioN CisNCitSRUxPQ0FUSU9OIFJFQ09SRFMgRk9SIFxbLnBkclxdOg0KK09GRlNF VCAgIFRZUEUgICAgICAgICAgICAgIFZBTFVFIA0KKzAwMDAwMDAwIFJfTUlQ U18zMiAgICAgICAgIF9aM2Zvb2kNCisNCisNCitSRUxPQ0FUSU9OIFJFQ09S RFMgRk9SIFxbLmVoX2ZyYW1lX2VudHJ5XF06DQorT0ZGU0VUICAgVFlQRSAg ICAgICAgICAgICAgVkFMVUUgDQorMDAwMDAwMDAgUl9NSVBTX1BDMzIgICAg ICAgLnRleHQuKg0KKw0KKw0KK0NvbnRlbnRzIG9mIHNlY3Rpb24gLnRleHQ6 DQorIDAwMDAgMDAwMDAwMDAuKg0KK0NvbnRlbnRzIG9mIHNlY3Rpb24gLnJl Z2luZm86DQorIDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAw MDAwMDAgIC4qDQorIDAwMTAgMDAwMDAwMDAgMDAwMDAwMDAgICAgICAgICAg ICAgICAgICAgIC4qDQorQ29udGVudHMgb2Ygc2VjdGlvbiAucGRyOg0KKyAw MDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwICAuKg0K KyAwMDEwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwICAu Kg0KK0NvbnRlbnRzIG9mIHNlY3Rpb24gLmdudS5hdHRyaWJ1dGVzOg0KKyAw MDAwIDQxMGYwMDAwIDAwNjc2ZTc1IDAwMDEwNzAwIDAwMDAwNDAxICAuKg0K K0NvbnRlbnRzIG9mIHNlY3Rpb24gLmVoX2ZyYW1lX2VudHJ5Og0KKyAwMDAw IDAwMDAwMDAwIDAxMDQ0MDVjICAgICAgICAgICAgICAgICAgICAuKg0KZGlm ZiAtLWdpdCBhL2dhcy90ZXN0c3VpdGUvZ2FzL21pcHMvY29tcGFjdC1laC1l bC0yLmQgYi9nYXMvdGVzdHN1aXRlL2dhcy9taXBzL2NvbXBhY3QtZWgtZWwt Mi5kDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uMDc1 ZGY2Mg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMv bWlwcy9jb21wYWN0LWVoLWVsLTIuZA0KQEAgLTAsMCArMSw0NiBAQA0KKyNv YmpkdW1wOiAtc3INCisjbmFtZTogQ29tcGFjdCBFSCBFTCAjMiB3aXRoIHBl cnNvbmFsaXR5IHJvdXRpbmUgYW5kIEZERSBkYXRhDQorI3NvdXJjZTogY29t cGFjdC1laC0yLnMNCisjYXM6IC1FTA0KKw0KKy4qOiAgICAgZmlsZSBmb3Jt YXQuKg0KKw0KK1JFTE9DQVRJT04gUkVDT1JEUyBGT1IgXFsucGRyXF06DQor T0ZGU0VUICAgVFlQRSAgICAgICAgICAgICAgVkFMVUUgDQorMDAwMDAwMDAg Ul9NSVBTXzMyICAgICAgICAgX1ozZm9vaQ0KKw0KKw0KK1JFTE9DQVRJT04g UkVDT1JEUyBGT1IgXFsuZGF0YS5EVy5yZWYuX19nbnVfY29tcGFjdF9wcjJc XToNCitPRkZTRVQgICBUWVBFICAgICAgICAgICAgICBWQUxVRSANCiswMDAw MDAwMCBSX01JUFNfMzIgICAgICAgICBfX2dudV9jb21wYWN0X3ByMg0KKw0K Kw0KK1JFTE9DQVRJT04gUkVDT1JEUyBGT1IgXFsuZ251X2V4dGFiXF06DQor T0ZGU0VUICAgVFlQRSAgICAgICAgICAgICAgVkFMVUUgDQorMDAwMDAwMDEg Ul9NSVBTX0dQUkVMMzIgICAgRFcucmVmLl9fZ251X2NvbXBhY3RfcHIyDQor DQorDQorUkVMT0NBVElPTiBSRUNPUkRTIEZPUiBcWy5laF9mcmFtZV9lbnRy eVxdOg0KK09GRlNFVCAgIFRZUEUgICAgICAgICAgICAgIFZBTFVFIA0KKzAw MDAwMDAwIFJfTUlQU19QQzMyICAgICAgIC50ZXh0LioNCiswMDAwMDAwNCBS X01JUFNfUEMzMiAgICAgICAuZ251X2V4dGFiDQorDQorDQorQ29udGVudHMg b2Ygc2VjdGlvbiAuZ3JvdXA6DQorIDAwMDAgMDEwMDAwMDAgMDgwMDAwMDAg ICAgICAgICAgICAgICAgICAgIC4qDQorQ29udGVudHMgb2Ygc2VjdGlvbiAu dGV4dDoNCisgMDAwMCAwMDAwMDAwMC4qDQorQ29udGVudHMgb2Ygc2VjdGlv biAucmVnaW5mbzoNCisgMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAw MCAwMDAwMDAwMCAgLioNCisgMDAxMCAwMDAwMDAwMCAwMDAwMDAwMCAgICAg ICAgICAgICAgICAgICAgLioNCitDb250ZW50cyBvZiBzZWN0aW9uIC5wZHI6 DQorIDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAg IC4qDQorIDAwMTAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAw MDAgIC4qDQorQ29udGVudHMgb2Ygc2VjdGlvbiAuZGF0YS5EVy5yZWYuX19n bnVfY29tcGFjdF9wcjI6DQorIDAwMDAgMDAwMDAwMDAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC4qDQorQ29udGVudHMgb2Ygc2VjdGlvbiAuZ251 LmF0dHJpYnV0ZXM6DQorIDAwMDAgNDEwZjAwMDAgMDA2NzZlNzUgMDAwMTA3 MDAgMDAwMDA0MDEgIC4qDQorQ29udGVudHMgb2Ygc2VjdGlvbiAuZ251X2V4 dGFiOg0KKyAwMDAwIDAwMDAwMDAwIDAwMDQ0MDVjICAgICAgICAgICAgICAg ICAgICAuKg0KK0NvbnRlbnRzIG9mIHNlY3Rpb24gLmVoX2ZyYW1lX2VudHJ5 Og0KKyAwMDAwIDAxMDAwMDAwIDAwMDAwMDAwICAgICAgICAgICAgICAgICAg ICAuKg0KZGlmZiAtLWdpdCBhL2dhcy90ZXN0c3VpdGUvZ2FzL21pcHMvY29t cGFjdC1laC1lbC0zLmQgYi9nYXMvdGVzdHN1aXRlL2dhcy9taXBzL2NvbXBh Y3QtZWgtZWwtMy5kDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAw MDAwMC4uNmEyOWZkMA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2FzL3Rlc3Rz dWl0ZS9nYXMvbWlwcy9jb21wYWN0LWVoLWVsLTMuZA0KQEAgLTAsMCArMSwz MiBAQA0KKyNvYmpkdW1wOiAtc3INCisjbmFtZTogQ29tcGFjdCBFSCBFTCAj MyB3aXRoIHBlcnNvbmFsaXR5IGlkIGFuZCBsYXJnZSBGREUgZGF0YQ0KKyNz b3VyY2U6IGNvbXBhY3QtZWgtMy5zDQorI2FzOiAtRUwNCisNCisuKjogICAg IGZpbGUgZm9ybWF0LioNCisNCitSRUxPQ0FUSU9OIFJFQ09SRFMgRk9SIFxb LnBkclxdOg0KK09GRlNFVCAgIFRZUEUgICAgICAgICAgICAgIFZBTFVFIA0K KzAwMDAwMDAwIFJfTUlQU18zMiAgICAgICAgIF9aM2Zvb2kNCisNCisNCitS RUxPQ0FUSU9OIFJFQ09SRFMgRk9SIFxbLmVoX2ZyYW1lX2VudHJ5XF06DQor T0ZGU0VUICAgVFlQRSAgICAgICAgICAgICAgVkFMVUUgDQorMDAwMDAwMDAg Ul9NSVBTX1BDMzIgICAgICAgLnRleHQuKg0KKzAwMDAwMDA0IFJfTUlQU19Q QzMyICAgICAgIC5nbnVfZXh0YWINCisNCisNCitDb250ZW50cyBvZiBzZWN0 aW9uIC50ZXh0Og0KKyAwMDAwIDAwMDAwMDAwLioNCitDb250ZW50cyBvZiBz ZWN0aW9uIC5yZWdpbmZvOg0KKyAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAw MDAwMDAwIDAwMDAwMDAwICAuKg0KKyAwMDEwIDAwMDAwMDAwIDAwMDAwMDAw ICAgICAgICAgICAgICAgICAgICAuKg0KK0NvbnRlbnRzIG9mIHNlY3Rpb24g LnBkcjoNCisgMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAw MDAwMCAgLioNCisgMDAxMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAw MDAwMDAwMCAgLioNCitDb250ZW50cyBvZiBzZWN0aW9uIC5nbnUuYXR0cmli dXRlczoNCisgMDAwMCA0MTBmMDAwMCAwMDY3NmU3NSAwMDAxMDcwMCAwMDAw MDQwMSAgLioNCitDb250ZW50cyBvZiBzZWN0aW9uIC5nbnVfZXh0YWI6DQor IDAwMDAgMDIwNDQwMDMgMDU1YyAgICAgICAgICAgICAgICAgICAgICAgIC4q DQorQ29udGVudHMgb2Ygc2VjdGlvbiAuZWhfZnJhbWVfZW50cnk6DQorIDAw MDAgMDEwMDAwMDAgMDAwMDAwMDAgICAgICAgICAgICAgICAgICAgIC4qDQpk aWZmIC0tZ2l0IGEvZ2FzL3Rlc3RzdWl0ZS9nYXMvbWlwcy9jb21wYWN0LWVo LWVsLTQuZCBiL2dhcy90ZXN0c3VpdGUvZ2FzL21pcHMvY29tcGFjdC1laC1l bC00LmQNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi4y MzY4ZTY2DQotLS0gL2Rldi9udWxsDQorKysgYi9nYXMvdGVzdHN1aXRlL2dh cy9taXBzL2NvbXBhY3QtZWgtZWwtNC5kDQpAQCAtMCwwICsxLDMzIEBADQor I29iamR1bXA6IC1zcg0KKyNuYW1lOiBDb21wYWN0IEVIIEVMICM0IHdpdGgg cGVyc29uYWxpdHkgaWQsIEZERSBkYXRhIGFuZCBMU0RBDQorI3NvdXJjZTog Y29tcGFjdC1laC00LnMNCisjYXM6IC1FTA0KKw0KKy4qOiAgICAgZmlsZSBm b3JtYXQuKg0KKw0KK1JFTE9DQVRJT04gUkVDT1JEUyBGT1IgXFsucGRyXF06 DQorT0ZGU0VUICAgVFlQRSAgICAgICAgICAgICAgVkFMVUUgDQorMDAwMDAw MDAgUl9NSVBTXzMyICAgICAgICAgX1ozZm9vaQ0KKw0KKw0KK1JFTE9DQVRJ T04gUkVDT1JEUyBGT1IgXFsuZWhfZnJhbWVfZW50cnlcXToNCitPRkZTRVQg ICBUWVBFICAgICAgICAgICAgICBWQUxVRSANCiswMDAwMDAwMCBSX01JUFNf UEMzMiAgICAgICAudGV4dC4qDQorMDAwMDAwMDQgUl9NSVBTX1BDMzIgICAg ICAgLmdudV9leHRhYg0KKw0KKw0KK0NvbnRlbnRzIG9mIHNlY3Rpb24gLnRl eHQ6DQorIDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAw MDAgIC4qDQorIDAwMTAgMDAwMDAwMDAuKg0KK0NvbnRlbnRzIG9mIHNlY3Rp b24gLnJlZ2luZm86DQorIDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAw MDAgMDAwMDAwMDAgIC4qDQorIDAwMTAgMDAwMDAwMDAgMDAwMDAwMDAgICAg ICAgICAgICAgICAgICAgIC4qDQorQ29udGVudHMgb2Ygc2VjdGlvbiAucGRy Og0KKyAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAw ICAuKg0KKyAwMDEwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAw MDAwICAuKg0KK0NvbnRlbnRzIG9mIHNlY3Rpb24gLmdudV9leHRhYjoNCisg MDAwMCAwMjA0NDA1YyAwMjBhMDEwNCA3ZjA1MDQwNCAwMDA1MDQ3ZiAgLioN CitDb250ZW50cyBvZiBzZWN0aW9uIC5nbnUuYXR0cmlidXRlczoNCisgMDAw MCA0MTBmMDAwMCAwMDY3NmU3NSAwMDAxMDcwMCAwMDAwMDQwMSAgLioNCitD b250ZW50cyBvZiBzZWN0aW9uIC5laF9mcmFtZV9lbnRyeToNCisgMDAwMCAw MTAwMDAwMCAwMDAwMDAwMCAgICAgICAgICAgICAgICAgICAgLioNCmRpZmYg LS1naXQgYS9nYXMvdGVzdHN1aXRlL2dhcy9taXBzL2NvbXBhY3QtZWgtZWwt NS5kIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMvbWlwcy9jb21wYWN0LWVoLWVsLTUu ZA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLjI4MTNm YTANCi0tLSAvZGV2L251bGwNCisrKyBiL2dhcy90ZXN0c3VpdGUvZ2FzL21p cHMvY29tcGFjdC1laC1lbC01LmQNCkBAIC0wLDAgKzEsNDggQEANCisjb2Jq ZHVtcDogLXNyDQorI25hbWU6IENvbXBhY3QgRUggRUwgIzUgd2l0aCBwZXJz b25hbGl0eSByb3V0aW5lLCBGREUgZGF0YSBhbmQgTFNEQQ0KKyNzb3VyY2U6 IGNvbXBhY3QtZWgtNS5zDQorI2FzOiAtRUwNCisNCisuKjogICAgIGZpbGUg Zm9ybWF0LioNCisNCitSRUxPQ0FUSU9OIFJFQ09SRFMgRk9SIFxbLnBkclxd Og0KK09GRlNFVCAgIFRZUEUgICAgICAgICAgICAgIFZBTFVFIA0KKzAwMDAw MDAwIFJfTUlQU18zMiAgICAgICAgIF9aM2Zvb2kNCisNCisNCitSRUxPQ0FU SU9OIFJFQ09SRFMgRk9SIFxbLmRhdGEuRFcucmVmLl9fZ251X2NvbXBhY3Rf cHIyXF06DQorT0ZGU0VUICAgVFlQRSAgICAgICAgICAgICAgVkFMVUUgDQor MDAwMDAwMDAgUl9NSVBTXzMyICAgICAgICAgX19nbnVfY29tcGFjdF9wcjIN CisNCisNCitSRUxPQ0FUSU9OIFJFQ09SRFMgRk9SIFxbLmdudV9leHRhYlxd Og0KK09GRlNFVCAgIFRZUEUgICAgICAgICAgICAgIFZBTFVFIA0KKzAwMDAw MDAxIFJfTUlQU19HUFJFTDMyICAgIERXLnJlZi5fX2dudV9jb21wYWN0X3By Mg0KKw0KKw0KK1JFTE9DQVRJT04gUkVDT1JEUyBGT1IgXFsuZWhfZnJhbWVf ZW50cnlcXToNCitPRkZTRVQgICBUWVBFICAgICAgICAgICAgICBWQUxVRSAN CiswMDAwMDAwMCBSX01JUFNfUEMzMiAgICAgICAudGV4dC4qDQorMDAwMDAw MDQgUl9NSVBTX1BDMzIgICAgICAgLmdudV9leHRhYg0KKw0KKw0KK0NvbnRl bnRzIG9mIHNlY3Rpb24gLmdyb3VwOg0KKyAwMDAwIDAxMDAwMDAwIDA4MDAw MDAwICAgICAgICAgICAgICAgICAgICAuKg0KK0NvbnRlbnRzIG9mIHNlY3Rp b24gLnRleHQ6DQorIDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAg MDAwMDAwMDAgIC4qDQorIDAwMTAgMDAwMDAwMDAuKg0KK0NvbnRlbnRzIG9m IHNlY3Rpb24gLnJlZ2luZm86DQorIDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAg MDAwMDAwMDAgMDAwMDAwMDAgIC4qDQorIDAwMTAgMDAwMDAwMDAgMDAwMDAw MDAgICAgICAgICAgICAgICAgICAgIC4qDQorQ29udGVudHMgb2Ygc2VjdGlv biAucGRyOg0KKyAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAw MDAwMDAwICAuKg0KKyAwMDEwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAw IDAwMDAwMDAwICAuKg0KK0NvbnRlbnRzIG9mIHNlY3Rpb24gLmRhdGEuRFcu cmVmLl9fZ251X2NvbXBhY3RfcHIyOg0KKyAwMDAwIDAwMDAwMDAwICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAuKg0KK0NvbnRlbnRzIG9mIHNlY3Rp b24gLmdudV9leHRhYjoNCisgMDAwMCAwMDAwMDAwMCAwMDA0NDA1YyAwMjBh MDEwNCA3ZjA1MDQwNCAgLioNCisgMDAxMCAwMDA1MDQ3ZiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLioNCitDb250ZW50cyBvZiBzZWN0aW9uIC5n bnUuYXR0cmlidXRlczoNCisgMDAwMCA0MTBmMDAwMCAwMDY3NmU3NSAwMDAx MDcwMCAwMDAwMDQwMSAgLioNCitDb250ZW50cyBvZiBzZWN0aW9uIC5laF9m cmFtZV9lbnRyeToNCisgMDAwMCAwMTAwMDAwMCAwMDAwMDAwMCAgICAgICAg ICAgICAgICAgICAgLioNCmRpZmYgLS1naXQgYS9nYXMvdGVzdHN1aXRlL2dh cy9taXBzL2NvbXBhY3QtZWgtZWwtNi5kIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMv bWlwcy9jb21wYWN0LWVoLWVsLTYuZA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQN CmluZGV4IDAwMDAwMDAuLjdjNmRlODMNCi0tLSAvZGV2L251bGwNCisrKyBi L2dhcy90ZXN0c3VpdGUvZ2FzL21pcHMvY29tcGFjdC1laC1lbC02LmQNCkBA IC0wLDAgKzEsMzQgQEANCisjb2JqZHVtcDogLXNyDQorI25hbWU6IENvbXBh Y3QgRUggRUwgIzYgd2l0aCBwZXJzb25hbGl0eSBpZCwgTFNEQSBhbmQgbGFy Z2UgRkRFIGRhdGENCisjc291cmNlOiBjb21wYWN0LWVoLTYucw0KKyNhczog LUVMDQorDQorLio6ICAgICBmaWxlIGZvcm1hdC4qDQorDQorUkVMT0NBVElP TiBSRUNPUkRTIEZPUiBcWy5wZHJcXToNCitPRkZTRVQgICBUWVBFICAgICAg ICAgICAgICBWQUxVRSANCiswMDAwMDAwMCBSX01JUFNfMzIgICAgICAgICBf WjNmb29pDQorDQorDQorUkVMT0NBVElPTiBSRUNPUkRTIEZPUiBcWy5laF9m cmFtZV9lbnRyeVxdOg0KK09GRlNFVCAgIFRZUEUgICAgICAgICAgICAgIFZB TFVFIA0KKzAwMDAwMDAwIFJfTUlQU19QQzMyICAgICAgIC50ZXh0LioNCisw MDAwMDAwNCBSX01JUFNfUEMzMiAgICAgICAuZ251X2V4dGFiDQorDQorDQor Q29udGVudHMgb2Ygc2VjdGlvbiAudGV4dDoNCisgMDAwMCAwMDAwMDAwMCAw MDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAgLioNCisgMDAxMCAwMDAwMDAw MC4qDQorQ29udGVudHMgb2Ygc2VjdGlvbiAucmVnaW5mbzoNCisgMDAwMCAw MDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAgLioNCisgMDAx MCAwMDAwMDAwMCAwMDAwMDAwMCAgICAgICAgICAgICAgICAgICAgLioNCitD b250ZW50cyBvZiBzZWN0aW9uIC5wZHI6DQorIDAwMDAgMDAwMDAwMDAgMDAw MDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgIC4qDQorIDAwMTAgMDAwMDAwMDAg MDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgIC4qDQorQ29udGVudHMgb2Yg c2VjdGlvbiAuZ251X2V4dGFiOg0KKyAwMDAwIDAyMDQ0MDAzIDA1NWY1ZjVj IDAyMGEwMTA0IDdmMDUwNDA0ICAuKg0KKyAwMDEwIDAwMDUwNDdmICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAuKg0KK0NvbnRlbnRzIG9mIHNlY3Rp b24gLmdudS5hdHRyaWJ1dGVzOg0KKyAwMDAwIDQxMGYwMDAwIDAwNjc2ZTc1 IDAwMDEwNzAwIDAwMDAwNDAxICAuKg0KK0NvbnRlbnRzIG9mIHNlY3Rpb24g LmVoX2ZyYW1lX2VudHJ5Og0KKyAwMDAwIDAxMDAwMDAwIDAwMDAwMDAwICAg ICAgICAgICAgICAgICAgICAuKg0KZGlmZiAtLWdpdCBhL2dhcy90ZXN0c3Vp dGUvZ2FzL21pcHMvY29tcGFjdC1laC1lbC03LmQgYi9nYXMvdGVzdHN1aXRl L2dhcy9taXBzL2NvbXBhY3QtZWgtZWwtNy5kDQpuZXcgZmlsZSBtb2RlIDEw MDY0NA0KaW5kZXggMDAwMDAwMC4uYWY2YjZjOQ0KLS0tIC9kZXYvbnVsbA0K KysrIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMvbWlwcy9jb21wYWN0LWVoLWVsLTcu ZA0KQEAgLTAsMCArMSwzOSBAQA0KKyNvYmpkdW1wOiAtc3INCisjbmFtZTog Q29tcGFjdCBFSCBFTCAjNyB3aXRoIHBlcnNvbmFsaXR5IGlkIGFuZCBmYWxs YmFjayBGREUNCisjc291cmNlOiBjb21wYWN0LWVoLTcucw0KKyNhczogLUVM DQorDQorLio6ICAgICBmaWxlIGZvcm1hdC4qDQorDQorUkVMT0NBVElPTiBS RUNPUkRTIEZPUiBcWy5wZHJcXToNCitPRkZTRVQgICBUWVBFICAgICAgICAg ICAgICBWQUxVRSANCiswMDAwMDAwMCBSX01JUFNfMzIgICAgICAgICBfWjNm b29pDQorDQorDQorUkVMT0NBVElPTiBSRUNPUkRTIEZPUiBcWy5laF9mcmFt ZVxdOg0KK09GRlNFVCAgIFRZUEUgICAgICAgICAgICAgIFZBTFVFIA0KKzAw MDAwMDFjIFJfTUlQU19QQzMyICAgICAgIC50ZXh0LioNCisNCisNCitSRUxP Q0FUSU9OIFJFQ09SRFMgRk9SIFxbLmVoX2ZyYW1lX2VudHJ5XF06DQorT0ZG U0VUICAgVFlQRSAgICAgICAgICAgICAgVkFMVUUgDQorMDAwMDAwMDAgUl9N SVBTX1BDMzIgICAgICAgLnRleHQuKg0KKzAwMDAwMDA0IFJfTUlQU19QQzMy ICAgICAgIC5laF9mcmFtZS4qDQorDQorDQorQ29udGVudHMgb2Ygc2VjdGlv biAudGV4dDoNCisgMDAwMCAwMDAwMDAwMCAwMDAwMDAwMC4qDQorQ29udGVu dHMgb2Ygc2VjdGlvbiAucmVnaW5mbzoNCisgMDAwMCAwMDAwMDAwMCAwMDAw MDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAgLioNCisgMDAxMCAwMDAwMDAwMCAw MDAwMDAwMCAgICAgICAgICAgICAgICAgICAgLioNCitDb250ZW50cyBvZiBz ZWN0aW9uIC5wZHI6DQorIDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAw MDAgMDAwMDAwMDAgIC4qDQorIDAwMTAgMDAwMDAwMDAgMDAwMDAwMDAgMDAw MDAwMDAgMDAwMDAwMDAgIC4qDQorQ29udGVudHMgb2Ygc2VjdGlvbiAuZ251 LmF0dHJpYnV0ZXM6DQorIDAwMDAgNDEwZjAwMDAgMDA2NzZlNzUgMDAwMTA3 MDAgMDAwMDA0MDEgIC4qDQorQ29udGVudHMgb2Ygc2VjdGlvbiAuZWhfZnJh bWU6DQorIDAwMDAgMTAwMDAwMDAgMDAwMDAwMDAgMDE3YTUyMDAgMDE3YzFm MDEgIC4qDQorIDAwMTAgMWIwZDFkMDAgMTQwMDAwMDAgMTgwMDAwMDAgMDAw MDAwMDAgIC4qDQorIDAwMjAgMDgwMDAwMDAgMDA0NDEzMDggNDQwZTAwMDAg ICAgICAgICAgIC4qDQorQ29udGVudHMgb2Ygc2VjdGlvbiAuZWhfZnJhbWVf ZW50cnk6DQorIDAwMDAgMDEwMDAwMDAgMTUwMDAwMDAgICAgICAgICAgICAg ICAgICAgIC4qDQpkaWZmIC0tZ2l0IGEvZ2FzL3Rlc3RzdWl0ZS9nYXMvbWlw cy9jb21wYWN0LWVoLWVycjEubCBiL2dhcy90ZXN0c3VpdGUvZ2FzL21pcHMv Y29tcGFjdC1laC1lcnIxLmwNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRl eCAwMDAwMDAwLi4zZWUwM2RlDQotLS0gL2Rldi9udWxsDQorKysgYi9nYXMv dGVzdHN1aXRlL2dhcy9taXBzL2NvbXBhY3QtZWgtZXJyMS5sDQpAQCAtMCww ICsxLDIgQEANCisuKjogQXNzZW1ibGVyIG1lc3NhZ2VzOg0KKy4qOjIwOiBF cnJvcjogLmNmaV9pbmxpbmVfbHNkYSBzZWVuIGZvciBmcmFtZSB3aXRob3V0 IC5jZmlfbHNkYQ0KZGlmZiAtLWdpdCBhL2dhcy90ZXN0c3VpdGUvZ2FzL21p cHMvY29tcGFjdC1laC1lcnIxLnMgYi9nYXMvdGVzdHN1aXRlL2dhcy9taXBz L2NvbXBhY3QtZWgtZXJyMS5zDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5k ZXggMDAwMDAwMC4uOTY3MzEzZg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2Fz L3Rlc3RzdWl0ZS9nYXMvbWlwcy9jb21wYWN0LWVoLWVycjEucw0KQEAgLTAs MCArMSwyMCBAQA0KKwkuZ251X2F0dHJpYnV0ZSA0LCAxDQorCS5hYmljYWxs cw0KKwkudGV4dA0KKwkuYWxpZ24JMg0KKwkuZ2xvYmwJX1ozZm9vaQ0KKwku Y2ZpX3NlY3Rpb25zIC5laF9mcmFtZV9lbnRyeQ0KKyRMRkIwID0gLg0KKwku Y2ZpX3N0YXJ0cHJvYw0KKwkuY2ZpX3BlcnNvbmFsaXR5X2lkIDB4Mg0KKwku c2V0CW5vbWlwczE2DQorCS5zZXQJbm9taWNyb21pcHMNCisJLmVudAlfWjNm b29pDQorCS50eXBlCV9aM2Zvb2ksIEBmdW5jdGlvbg0KK19aM2Zvb2k6DQor CW5vcA0KKwkuZW5kCV9aM2Zvb2kNCisJLnNpemUJX1ozZm9vaSwgLi1fWjNm b29pDQorCS5jZmlfZmRlX2RhdGEgMHg0LDB4NDANCisJLmNmaV9lbmRwcm9j DQorCS5jZmlfaW5saW5lX2xzZGEgMQ0KZGlmZiAtLWdpdCBhL2dhcy90ZXN0 c3VpdGUvZ2FzL21pcHMvY29tcGFjdC1laC1lcnIyLmwgYi9nYXMvdGVzdHN1 aXRlL2dhcy9taXBzL2NvbXBhY3QtZWgtZXJyMi5sDQpuZXcgZmlsZSBtb2Rl IDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uYzUyOTc2YQ0KLS0tIC9kZXYvbnVs bA0KKysrIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMvbWlwcy9jb21wYWN0LWVoLWVy cjIubA0KQEAgLTAsMCArMSwyIEBADQorLio6IEFzc2VtYmxlciBtZXNzYWdl czoNCisuKjo3OiBFcnJvcjogaW5jb25zaXN0ZW50IHVzZXMgb2YgLmNmaV9z ZWN0aW9ucw0KZGlmZiAtLWdpdCBhL2dhcy90ZXN0c3VpdGUvZ2FzL21pcHMv Y29tcGFjdC1laC1lcnIyLnMgYi9nYXMvdGVzdHN1aXRlL2dhcy9taXBzL2Nv bXBhY3QtZWgtZXJyMi5zDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXgg MDAwMDAwMC4uYWNmODNkMQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2FzL3Rl c3RzdWl0ZS9nYXMvbWlwcy9jb21wYWN0LWVoLWVycjIucw0KQEAgLTAsMCAr MSw3IEBADQorCS5nbnVfYXR0cmlidXRlIDQsIDENCisJLmFiaWNhbGxzDQor CS50ZXh0DQorCS5hbGlnbgkyDQorCS5nbG9ibAlfWjNmb29pDQorCS5jZmlf c2VjdGlvbnMgLmVoX2ZyYW1lX2VudHJ5DQorCS5jZmlfc2VjdGlvbnMgLmVo X2ZyYW1lDQpkaWZmIC0tZ2l0IGEvZ2FzL3Rlc3RzdWl0ZS9nYXMvbWlwcy9l aHdvcmQuZCBiL2dhcy90ZXN0c3VpdGUvZ2FzL21pcHMvZWh3b3JkLmQNCmlu ZGV4IDRjYmVmMTIuLjM4ZGI5MDQgMTAwNjQ0DQotLS0gYS9nYXMvdGVzdHN1 aXRlL2dhcy9taXBzL2Vod29yZC5kDQorKysgYi9nYXMvdGVzdHN1aXRlL2dh cy9taXBzL2Vod29yZC5kDQpAQCAtNiw0ICs2LDQgQEANCiANCiBSRUxPQ0FU SU9OIFJFQ09SRFMgRk9SIFxbXC50ZXh0XF06DQogT0ZGU0VUICAgVFlQRSAg ICAgICAgICAgICAgVkFMVUUgDQotMDAwMDAwMDAgUl9NSVBTX0VIICAgICAg ICAgX1pUSTVteUV4Yw0KKzAwMDAwMDAwIFJfTUlQU19QQzMyICAgICAgIF9a VEk1bXlFeGMNCmRpZmYgLS1naXQgYS9nYXMvdGVzdHN1aXRlL2dhcy9taXBz L21pcHMuZXhwIGIvZ2FzL3Rlc3RzdWl0ZS9nYXMvbWlwcy9taXBzLmV4cA0K aW5kZXggZWNlM2ExMy4uYjBiYTYzNiAxMDA2NDQNCi0tLSBhL2dhcy90ZXN0 c3VpdGUvZ2FzL21pcHMvbWlwcy5leHANCisrKyBiL2dhcy90ZXN0c3VpdGUv Z2FzL21pcHMvbWlwcy5leHANCkBAIC01MTgsNiArNTE4LDIzIEBAIGlmIHsg W2lzdGFyZ2V0IG1pcHMqLSotdnh3b3JrcypdIH0gew0KIAkgICAgIk1JUFMg YnJhbmNoIHN3YXBwaW5nICgkY291bnQpIg0KICAgICB9DQogDQorICAgIHJ1 bl9kdW1wX3Rlc3QgImNvbXBhY3QtZWgtMSINCisgICAgcnVuX2R1bXBfdGVz dCAiY29tcGFjdC1laC1lbC0xIg0KKyAgICBydW5fZHVtcF90ZXN0ICJjb21w YWN0LWVoLTIiDQorICAgIHJ1bl9kdW1wX3Rlc3QgImNvbXBhY3QtZWgtZWwt MiINCisgICAgcnVuX2R1bXBfdGVzdCAiY29tcGFjdC1laC0zIg0KKyAgICBy dW5fZHVtcF90ZXN0ICJjb21wYWN0LWVoLWVsLTMiDQorICAgIHJ1bl9kdW1w X3Rlc3QgImNvbXBhY3QtZWgtNCINCisgICAgcnVuX2R1bXBfdGVzdCAiY29t cGFjdC1laC1lbC00Ig0KKyAgICBydW5fZHVtcF90ZXN0ICJjb21wYWN0LWVo LTUiDQorICAgIHJ1bl9kdW1wX3Rlc3QgImNvbXBhY3QtZWgtZWwtNSINCisg ICAgcnVuX2R1bXBfdGVzdCAiY29tcGFjdC1laC02Ig0KKyAgICBydW5fZHVt cF90ZXN0ICJjb21wYWN0LWVoLWVsLTYiDQorICAgIHJ1bl9kdW1wX3Rlc3Qg ImNvbXBhY3QtZWgtNyINCisgICAgcnVuX2R1bXBfdGVzdCAiY29tcGFjdC1l aC1lbC03Ig0KKyAgICBydW5fbGlzdF90ZXN0ICJjb21wYWN0LWVoLWVycjEi DQorICAgIHJ1bl9saXN0X3Rlc3QgImNvbXBhY3QtZWgtZXJyMiINCisNCiAg ICAgcnVuX2R1bXBfdGVzdCAiZGl2Ig0KIA0KICAgICBpZiB7ICEkYWRkcjMy IH0gew0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYmZkbGluay5oIGIvaW5jbHVk ZS9iZmRsaW5rLmgNCmluZGV4IDFhYzA3MzguLjFiMTNkZDggMTAwNjQ0DQot LS0gYS9pbmNsdWRlL2JmZGxpbmsuaA0KKysrIGIvaW5jbHVkZS9iZmRsaW5r LmgNCkBAIC0zMzAsOSArMzMwLDkgQEAgc3RydWN0IGJmZF9saW5rX2luZm8N CiAgIC8qIFRSVUUgaWYgUFRfR05VX1JFTFJPIHNlZ21lbnQgc2hvdWxkIGJl IGNyZWF0ZWQuICAqLw0KICAgdW5zaWduZWQgaW50IHJlbHJvOiAxOw0KIA0K LSAgLyogVFJVRSBpZiAuZWhfZnJhbWVfaGRyIHNlY3Rpb24gYW5kIFBUX0dO VV9FSF9GUkFNRSBFTEYgc2VnbWVudA0KLSAgICAgc2hvdWxkIGJlIGNyZWF0 ZWQuICAqLw0KLSAgdW5zaWduZWQgaW50IGVoX2ZyYW1lX2hkcjogMTsNCisg IC8qIE5vbnplcm8gaWYgLmVoX2ZyYW1lX2hkciBzZWN0aW9uIGFuZCBQVF9H TlVfRUhfRlJBTUUgRUxGIHNlZ21lbnQNCisgICAgIHNob3VsZCBiZSBjcmVh dGVkLiAgMSBmb3IgRFdBUkYyIHRhYmxlcywgMiBmb3IgY29tcGFjdCB0YWJs ZXMuICAqLw0KKyAgdW5zaWduZWQgaW50IGVoX2ZyYW1lX2hkcjogMjsNCiAN CiAgIC8qIFRSVUUgaWYgd2Ugc2hvdWxkIHdhcm4gd2hlbiBhZGRpbmcgYSBE VF9URVhUUkVMIHRvIGEgc2hhcmVkIG9iamVjdC4gICovDQogICB1bnNpZ25l ZCBpbnQgd2Fybl9zaGFyZWRfdGV4dHJlbDogMTsNCmRpZmYgLS1naXQgYS9s ZC9lbXVsdGVtcGwvZWxmMzIuZW0gYi9sZC9lbXVsdGVtcGwvZWxmMzIuZW0N CmluZGV4IGZkYTBlNjguLmFkNzljOWYgMTAwNjQ0DQotLS0gYS9sZC9lbXVs dGVtcGwvZWxmMzIuZW0NCisrKyBiL2xkL2VtdWx0ZW1wbC9lbGYzMi5lbQ0K QEAgLTExMTYsMjkgKzExMTYsNjAgQEAgZ2xkJHtFTVVMQVRJT05fTkFNRX1f YWZ0ZXJfb3BlbiAodm9pZCkNCiAgIGlmIChsaW5rX2luZm8ucmVsb2NhdGFi bGUpDQogICAgIHJldHVybjsNCiANCi0gIGlmIChsaW5rX2luZm8uZWhfZnJh bWVfaGRyDQotICAgICAgJiYgIWxpbmtfaW5mby50cmFkaXRpb25hbF9mb3Jt YXQpDQorICBpZiAoIWxpbmtfaW5mby50cmFkaXRpb25hbF9mb3JtYXQpDQog ICAgIHsNCi0gICAgICBiZmQgKmFiZmQsICplbGZiZmQgPSBOVUxMOw0KKyAg ICAgIGJmZCAqYWJmZCwgKmVsZmJmZCA9IE5VTEwsICpzZWVuYmZkID0gTlVM TDsNCiAgICAgICBiZmRfYm9vbGVhbiB3YXJuX2VoX2ZyYW1lID0gRkFMU0U7 DQogICAgICAgYXNlY3Rpb24gKnM7DQorICAgICAgaW50IHNlZW5fdHlwZSA9 IDA7DQogDQogICAgICAgZm9yIChhYmZkID0gbGlua19pbmZvLmlucHV0X2Jm ZHM7IGFiZmQ7IGFiZmQgPSBhYmZkLT5saW5rX25leHQpDQogCXsNCi0JICBp ZiAoYmZkX2dldF9mbGF2b3VyIChhYmZkKSA9PSBiZmRfdGFyZ2V0X2VsZl9m bGF2b3VyKQ0KLQkgICAgZWxmYmZkID0gYWJmZDsNCi0JICBpZiAoIXdhcm5f ZWhfZnJhbWUpDQorCSAgaW50IHR5cGUgPSAwOw0KKwkgIGZvciAocyA9IGFi ZmQtPnNlY3Rpb25zOyBzICYmIHR5cGUgPCAyIDsgcyA9IHMtPm5leHQpDQog CSAgICB7DQotCSAgICAgIHMgPSBiZmRfZ2V0X3NlY3Rpb25fYnlfbmFtZSAo YWJmZCwgIi5laF9mcmFtZSIpOw0KLQkgICAgICB3aGlsZSAocyAhPSBOVUxM DQotCQkgICAgICYmIChzLT5zaXplIDw9IDgNCi0JCQkgfHwgYmZkX2lzX2Fi c19zZWN0aW9uIChzLT5vdXRwdXRfc2VjdGlvbikpKQ0KLQkJcyA9IGJmZF9n ZXRfbmV4dF9zZWN0aW9uX2J5X25hbWUgKHMpOw0KLQkgICAgICB3YXJuX2Vo X2ZyYW1lID0gcyAhPSBOVUxMOw0KKwkgICAgICBjb25zdCBjaGFyICpuYW1l ID0gYmZkX2dldF9zZWN0aW9uX25hbWUgKGFiZmQsIHMpOw0KKw0KKwkgICAg ICBpZiAoYmZkX2lzX2Fic19zZWN0aW9uIChzLT5vdXRwdXRfc2VjdGlvbikp DQorCQljb250aW51ZTsNCisNCisJICAgICAgaWYgKENPTlNUX1NUUk5FUSAo bmFtZSwgIi5laF9mcmFtZV9lbnRyeSIpKQ0KKwkJdHlwZSA9IDI7DQorCSAg ICAgIGVsc2UgaWYgKHN0cmNtcCAobmFtZSwgIi5laF9mcmFtZSIpID09IDAN CisJCSAgICAgICAmJiBzLT5zaXplID4gOCkNCisJCXR5cGUgPSAxOw0KKwkg ICAgfQ0KKw0KKwkgIGlmICh0eXBlICE9IDApDQorCSAgICB7DQorCSAgICAg IGlmICghZWxmYmZkICYmICh0eXBlID09IDIgfHwgbGlua19pbmZvLmVoX2Zy YW1lX2hkcikpDQorCQl7DQorCQkgIGlmIChiZmRfZ2V0X2ZsYXZvdXIgKGFi ZmQpID09IGJmZF90YXJnZXRfZWxmX2ZsYXZvdXIpDQorCQkgICAgZWxmYmZk ID0gYWJmZDsNCisNCisJCSAgd2Fybl9laF9mcmFtZSA9IFRSVUU7DQorCQl9 DQorDQorCSAgICAgIGlmIChzZWVuX3R5cGUgPT0gMCkNCisgICAgICAgICAg ICAgICAgew0KKwkJICBzZWVuX3R5cGUgPSB0eXBlOw0KKyAgICAgICAgICAg ICAgICAgIHNlZW5iZmQgPSBhYmZkOw0KKyAgICAgICAgICAgICAgICB9DQor CSAgICAgIGVsc2UgaWYgKHNlZW5fdHlwZSAhPSB0eXBlKQ0KKwkJew0KKwkJ ICBlaW5mbyAoXygiJVAlRjogY29tcGFjdCBmcmFtZSBkZXNjcmlwdGlvbnMg ZnJvbSAlQiINCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGFyZSBp bmNvbXBhdGlibGUgd2l0aCBEV0FSRjIgLmVoX2ZyYW1lIg0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICIgZnJvbSAlQlxuIiksIHNlZW5iZmQsDQor CQkJIHR5cGUgPT0gMSA/IGFiZmQgOiBlbGZiZmQpOw0KKwkJICBicmVhazsN CisJCX0NCisNCiAJICAgIH0NCi0JICBpZiAoZWxmYmZkICYmIHdhcm5fZWhf ZnJhbWUpDQotCSAgICBicmVhazsNCiAJfQ0KKw0KKyAgICAgIGlmIChzZWVu X3R5cGUgPT0gMikNCisJbGlua19pbmZvLmVoX2ZyYW1lX2hkciA9IDI7DQor DQogICAgICAgaWYgKGVsZmJmZCkNCiAJew0KIAkgIGNvbnN0IHN0cnVjdCBl bGZfYmFja2VuZF9kYXRhICpiZWQ7DQpkaWZmIC0tZ2l0IGEvbGQvZW11bHRl bXBsL21pcHNlbGYuZW0gYi9sZC9lbXVsdGVtcGwvbWlwc2VsZi5lbQ0KaW5k ZXggMDIwNDNiNy4uMjUyYWYwZiAxMDA2NDQNCi0tLSBhL2xkL2VtdWx0ZW1w bC9taXBzZWxmLmVtDQorKysgYi9sZC9lbXVsdGVtcGwvbWlwc2VsZi5lbQ0K QEAgLTM0LDYgKzM0LDcgQEAgc3RhdGljIGxhbmdfaW5wdXRfc3RhdGVtZW50 X3R5cGUgKnN0dWJfZmlsZTsNCiBzdGF0aWMgYmZkICpzdHViX2JmZDsNCiAN CiBzdGF0aWMgYmZkX2Jvb2xlYW4gaW5zbjMyOw0KK3N0YXRpYyBpbnQgZWhf cmVsb2NfdHlwZSA9IFJfTUlQU19FSDsNCiANCiBzdGF0aWMgdm9pZA0KIG1p cHNfYWZ0ZXJfcGFyc2UgKHZvaWQpDQpAQCAtMjAyLDcgKzIwMyw3IEBAIG1p cHNfY3JlYXRlX291dHB1dF9zZWN0aW9uX3N0YXRlbWVudHMgKHZvaWQpDQog DQogICBodGFiID0gZWxmX2hhc2hfdGFibGUgKCZsaW5rX2luZm8pOw0KICAg aWYgKGlzX2VsZl9oYXNoX3RhYmxlIChodGFiKSAmJiBpc19taXBzX2VsZiAo bGlua19pbmZvLm91dHB1dF9iZmQpKQ0KLSAgICBfYmZkX21pcHNfZWxmX2lu c24zMiAoJmxpbmtfaW5mbywgaW5zbjMyKTsNCisgICAgX2JmZF9taXBzX2Vs Zl9saW5rZXJfZmxhZ3MgKCZsaW5rX2luZm8sIGluc24zMiwgZWhfcmVsb2Nf dHlwZSk7DQogDQogICBpZiAoaXNfbWlwc19lbGYgKGxpbmtfaW5mby5vdXRw dXRfYmZkKSkNCiAgICAgX2JmZF9taXBzX2VsZl9pbml0X3N0dWJzICgmbGlu a19pbmZvLCBtaXBzX2FkZF9zdHViX3NlY3Rpb24pOw0KQEAgLTI1MiwxMSAr MjUzLDEzIEBAIEVPRg0KIFBBUlNFX0FORF9MSVNUX1BST0xPR1VFPScNCiAj ZGVmaW5lIE9QVElPTl9JTlNOMzIJCQkzMDENCiAjZGVmaW5lIE9QVElPTl9O T19JTlNOMzIJCShPUFRJT05fSU5TTjMyICsgMSkNCisjZGVmaW5lIE9QVElP Tl9QQ1JFTF9FSF9SRUxPQwkJMzAzDQogJw0KIA0KIFBBUlNFX0FORF9MSVNU X0xPTkdPUFRTPScNCiAgIHsgImluc24zMiIsIG5vX2FyZ3VtZW50LCBOVUxM LCBPUFRJT05fSU5TTjMyIH0sDQogICB7ICJuby1pbnNuMzIiLCBub19hcmd1 bWVudCwgTlVMTCwgT1BUSU9OX05PX0lOU04zMiB9LA0KKyAgeyAicGNyZWwt ZWgtcmVsb2MiLCBub19hcmd1bWVudCwgTlVMTCwgT1BUSU9OX1BDUkVMX0VI X1JFTE9DIH0sDQogJw0KIA0KIFBBUlNFX0FORF9MSVNUX09QVElPTlM9Jw0K QEAgLTI3Niw2ICsyNzksMTAgQEAgUEFSU0VfQU5EX0xJU1RfQVJHU19DQVNF Uz0nDQogICAgIGNhc2UgT1BUSU9OX05PX0lOU04zMjoNCiAgICAgICBpbnNu MzIgPSBGQUxTRTsNCiAgICAgICBicmVhazsNCisNCisgICAgY2FzZSBPUFRJ T05fUENSRUxfRUhfUkVMT0M6DQorICAgICAgZWhfcmVsb2NfdHlwZSA9IFJf TUlQU19QQzMyOw0KKyAgICAgIGJyZWFrOw0KICcNCiANCiBMREVNVUxfQUZU RVJfUEFSU0U9bWlwc19hZnRlcl9wYXJzZQ0KZGlmZiAtLWdpdCBhL2xkL2xk LnRleGluZm8gYi9sZC9sZC50ZXhpbmZvDQppbmRleCBiZmMyNjQzLi4wNDIw OTNjIDEwMDY0NA0KLS0tIGEvbGQvbGQudGV4aW5mbw0KKysrIGIvbGQvbGQu dGV4aW5mbw0KQEAgLTI3NzUsNiArMjc3NSwxMSBAQCBvciBpbiByZWxheGF0 aW9uLiAgSWYgQHNhbXB7LS1pbnNuMzJ9IGlzIHVzZWQsIHRoZW4gdGhlIGxp bmtlciBvbmx5IHVzZXMNCiB1c2VkLCBhbGwgaW5zdHJ1Y3Rpb24gZW5jb2Rp bmdzIGFyZSB1c2VkLCBpbmNsdWRpbmcgMTYtYml0IG9uZXMgd2hlcmUNCiBw b3NzaWJsZS4NCiANCitAa2luZGV4IC0tcGNyZWwtZWgtcmVsb2MNCitAaXRl bSAtLXBjcmVsLWVoLXJlbG9jDQorSW50ZXJwcmV0IFJfTUlQU19FSCBhcyBh IHBjLXJlbGF0aXZlIGFkZHJlc3MuICBUaGUgZGVmYXVsdCBpcyBhDQorR1At cmVsYXRpdmUgaW5kaXJlY3QgYWRkcmVzcy4NCisNCiBAZW5kIHRhYmxlDQog DQogQGMgbWFuIGVuZA0KZGlmZiAtLWdpdCBhL2xkL3NjcmlwdHRlbXBsL2Vs Zi5zYyBiL2xkL3NjcmlwdHRlbXBsL2VsZi5zYw0KaW5kZXggZTgxMjZjYi4u MTUxZTg3NCAxMDA2NDQNCi0tLSBhL2xkL3NjcmlwdHRlbXBsL2VsZi5zYw0K KysrIGIvbGQvc2NyaXB0dGVtcGwvZWxmLnNjDQpAQCAtNTIyLDEwICs1MjIs MTEgQEAgY2F0IDw8RU9GDQogICAke0NSRUFURV9TSExJQi0ke1NEQVRBMn19 DQogICAke0NSRUFURV9TSExJQi0ke1NCU1MyfX0NCiAgICR7T1RIRVJfUkVB RE9OTFlfU0VDVElPTlN9DQotICAuZWhfZnJhbWVfaGRyIDogeyAqKC5laF9m cmFtZV9oZHIpIH0NCi0gIC5laF9mcmFtZSAgICAgJHtSRUxPQ0FUSU5HLTB9 IDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgfQ0KKyAgLmVo X2ZyYW1lX2hkciA6IHsgKiguZWhfZnJhbWVfaGRyKSAke1JFTE9DQVRJTkcr KiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopfSB9DQorICAu ZWhfZnJhbWUgICAgICR7UkVMT0NBVElORy0wfSA6IE9OTFlfSUZfUk8geyBL RUVQICgqKC5laF9mcmFtZSkpICR7UkVMT0NBVElORysqKC5laF9mcmFtZS4q KX0gfQ0KICAgLmdjY19leGNlcHRfdGFibGUgJHtSRUxPQ0FUSU5HLTB9IDog T05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUNCiAgIC5nY2NfZXhj ZXB0X3RhYmxlLiopIH0NCisgIC5nbnVfZXh0YWIgJHtSRUxPQ0FUSU5HLTB9 IDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0NCiAgIC8qIFRoZXNl IHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysr IGNvbXBpbGVyLiAgKi8NCiAgIC5leGNlcHRpb25fcmFuZ2VzICR7UkVMT0NB VElORy0wfSA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzDQog ICAuZXhjZXB0aW9uX3JhbmdlcyopIH0NCkBAIC01MzgsNyArNTM5LDggQEAg Y2F0IDw8RU9GDQogICAke0NSRUFURV9QSUUrJHtSRUxPQ0FUSU5HKy4gPSAk e1NITElCX0RBVEFfQUREUi0ke0RBVEFfU0VHTUVOVF9BTElHTn19O319DQog DQogICAvKiBFeGNlcHRpb24gaGFuZGxpbmcgICovDQotICAuZWhfZnJhbWUg ICAgICR7UkVMT0NBVElORy0wfSA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5l aF9mcmFtZSkpIH0NCisgIC5laF9mcmFtZSAgICAgJHtSRUxPQ0FUSU5HLTB9 IDogT05MWV9JRl9SVyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgJHtSRUxPQ0FU SU5HKyooLmVoX2ZyYW1lLiopfSB9DQorICAuZ251X2V4dGFiICAgICR7UkVM T0NBVElORy0wfSA6IE9OTFlfSUZfUlcgeyAqKC5nbnVfZXh0YWIpIH0NCiAg IC5nY2NfZXhjZXB0X3RhYmxlICR7UkVMT0NBVElORy0wfSA6IE9OTFlfSUZf UlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiop IH0NCiAgIC5leGNlcHRpb25fcmFuZ2VzICR7UkVMT0NBVElORy0wfSA6IE9O TFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzIC5leGNlcHRpb25fcmFu Z2VzKikgfQ0KIA0K --_003_FD3DCEAC5B03E9408544A1E416F11242012EAC2AE0NAMBX01mgcmen_--