From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 38F0BA0524; Fri, 6 Nov 2020 09:50:51 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 7AC7E5937; Fri, 6 Nov 2020 09:50:49 +0100 (CET) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by dpdk.org (Postfix) with ESMTP id A51B9592B for ; Fri, 6 Nov 2020 09:50:47 +0100 (CET) Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Date: Fri, 6 Nov 2020 09:50:45 +0100 X-MimeOLE: Produced By Microsoft Exchange V6.5 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35C613FA@smartserver.smartshare.dk> In-Reply-To: <20201106082053.GZ1898@platinum> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [dpdk-dev] [PATCH] mbuf: fix reset on mbuf free Thread-Index: Ada0FcP6JIkrCF8vTASQW/iUqilOFgAALEHw References: <10b675b5-c376-746f-9ae2-210685b0b05d@oktetlabs.ru> <20201105091022.GO1898@platinum> <20201105123150.GP1898@platinum> <20201105132438.GS1898@platinum> <98CBD80474FA8B44BF855DF32C47DC35C613F7@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC35C613F8@smartserver.smartshare.dk> <20201106082053.GZ1898@platinum> From: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Olivier Matz" Cc: "Ananyev, Konstantin" , "Andrew Rybchenko" , Subject: Re: [dpdk-dev] [PATCH] mbuf: fix reset on mbuf free X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" PiBGcm9tOiBPbGl2aWVyIE1hdHogW21haWx0bzpvbGl2aWVyLm1hdHpANndpbmQuY29tXQ0KPiBT ZW50OiBGcmlkYXksIE5vdmVtYmVyIDYsIDIwMjAgOToyMSBBTQ0KPiANCj4gT24gRnJpLCBOb3Yg MDYsIDIwMjAgYXQgMDg6NTI6NThBTSArMDEwMCwgTW9ydGVuIEJyw7hydXAgd3JvdGU6DQo+ID4g PiBGcm9tOiBBbmFueWV2LCBLb25zdGFudGluIFttYWlsdG86a29uc3RhbnRpbi5hbmFueWV2QGlu dGVsLmNvbV0NCj4gPiA+IFNlbnQ6IEZyaWRheSwgTm92ZW1iZXIgNiwgMjAyMCAxMjo1NSBBTQ0K PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+PiBIaSBPbGl2aWVyLA0KPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4+IG0tPm5iX3NlZyBtdXN0IGJl IHJlc2V0IG9uIG1idWYgZnJlZSB3aGF0ZXZlcg0KPiB0aGUNCj4gPiA+IHZhbHVlDQo+ID4gPiA+ ID4gb2YgbS0+bmV4dCwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gYmVjYXVzZSBpdCBjYW4g aGFwcGVuIHRoYXQgbS0+bmJfc2VnIGlzICE9IDEuDQo+IEZvcg0KPiA+ID4gPiA+IGluc3RhbmNl IGluIHRoaXMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gY2FzZToNCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+Pj4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gICBtMSA9IHJ0ZV9wa3RtYnVm X2FsbG9jKG1wKTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gICBydGVfcGt0bWJ1Zl9hcHBl bmQobTEsIDUwMCk7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICAgbTIgPSBydGVfcGt0bWJ1 Zl9hbGxvYyhtcCk7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICAgcnRlX3BrdG1idWZfYXBw ZW5kKG0yLCA1MDApOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+PiAgIHJ0ZV9wa3RtYnVmX2No YWluKG0xLCBtMik7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICAgbTAgPSBydGVfcGt0bWJ1 Zl9hbGxvYyhtcCk7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICAgcnRlX3BrdG1idWZfYXBw ZW5kKG0wLCA1MDApOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+PiAgIHJ0ZV9wa3RtYnVmX2No YWluKG0wLCBtMSk7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4+DQo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPj4+IEFzIHJ0ZV9wa3RtYnVmX2NoYWluKCkgZG9lcyBub3QgcmVzZXQgbmJfc2VnIGlu DQo+IHRoZQ0KPiA+ID4gPiA+IGluaXRpYWwgbTENCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Pj4g c2VnbWVudCAodGhpcyBpcyBub3QgcmVxdWlyZWQpLCBhZnRlciB0aGlzIGNvZGUNCj4gdGhlDQo+ ID4gPiA+ID4gbWJ1ZiBjaGFpbg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+PiBoYXZlIDMgc2Vn bWVudHM6DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICAgLSBtMDogbmV4dD1tMSwgbmJfc2Vn PTMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gICAtIG0xOiBuZXh0PW0yLCBuYl9zZWc9Mg0K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+PiAgIC0gbTI6IG5leHQ9TlVMTCwgbmJfc2VnPTENCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+Pj4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gRnJlZWlu ZyB0aGlzIG1idWYgY2hhaW4gd2lsbCBub3QgcmVzdG9yZQ0KPiBuYl9zZWc9MQ0KPiA+ID4gaW4N Cj4gPiA+ID4gPiB0aGUgc2Vjb25kDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4+IHNlZ21lbnQu DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+PiBIbW0s IG5vdCBzdXJlIHdoeSBpcyB0aGF0Pw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+IFlvdSBhcmUg dGFsa2luZyBhYm91dCBmcmVlaW5nIG0xLCByaWdodD8NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ PiBydGVfcGt0bWJ1Zl9wcmVmcmVlX3NlZyhzdHJ1Y3QgcnRlX21idWYgKm0pDQo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPj4gew0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+IAkuLi4NCj4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+PiAJaWYgKG0tPm5leHQgIT0gTlVMTCkgew0KPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgIG0tPm5leHQgPSBOVUxMOw0KPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgIG0tPm5iX3NlZ3MgPSAx Ow0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+ICAgICAgICAgICAgICAgICB9DQo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPj4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+PiBtMS0+bmV4dCAhPSBOVUxM LCBzbyBpdCB3aWxsIGVudGVyIHRoZSBpZigpDQo+IGJsb2NrLA0KPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4+IGFuZCB3aWxsIHJlc2V0IGJvdGggbmV4dCBhbmQgbmJfc2Vncy4NCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+PiBXaGF0IEkgYW0gbWlzc2luZyBoZXJlPw0KPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4+IFRoaW5raW5nIGluIG1vcmUgZ2VuZXJpYyB3YXksIHRoYXQgY2hhbmdlOg0KPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4+ICAtCQlpZiAobS0+bmV4dCAhPSBOVUxMKSB7DQo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPj4gIC0JCQltLT5uZXh0ID0gTlVMTDsNCj4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+PiAgLQkJCW0tPm5iX3NlZ3MgPSAxOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+ICAtCQl9 DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4gICsJCW0tPm5leHQgPSBOVUxMOw0KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4+ICArCQltLT5uYl9zZWdzID0gMTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBBaCwgc29ycnkuIEkgb3ZlcnNpbXBsaWZpZWQg dGhlIGV4YW1wbGUgYW5kIG5vdw0KPiBpdA0KPiA+ID4gZG9lcw0KPiA+ID4gPiA+IG5vdA0KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gc2hvdyB0aGUgaXNzdWUuLi4NCj4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGUgZnVsbCBleGFtcGxlIGFsc28gYWRk cyBhIHNwbGl0KCkgdG8gYnJlYWsgdGhlDQo+ID4gPiBtYnVmDQo+ID4gPiA+ID4gY2hhaW4NCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+IGJldHdlZW4gbTEgYW5kIG0yLiBUaGUga2luZCBvZiB0aGlu ZyB0aGF0IHdvdWxkDQo+IGJlDQo+ID4gPiBkb25lDQo+ID4gPiA+ID4gZm9yDQo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiBzb2Z0d2FyZSBUQ1Agc2VnbWVudGF0aW9uLg0KPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IElm IHNvLCBtYXkgYmUgdGhlIHJpZ2h0IHNvbHV0aW9uIGlzIHRvIGNhcmUgYWJvdXQNCj4gPiA+IG5i X3NlZ3MNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiB3aGVuIG5leHQgaXMgc2V0IHRvIE5VTEwgb24g c3BsaXQ/IEFueSBwbGFjZSB3aGVuDQo+IG5leHQNCj4gPiA+IGlzDQo+ID4gPiA+ID4gc2V0DQo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gdG8gTlVMTC4gSnVzdCB0byBrZWVwIHRoZSBvcHRpbWl6YXRp b24gaW4gYSBtb3JlDQo+ID4gPiBnZW5lcmljDQo+ID4gPiA+ID4gcGxhY2UuDQo+ID4gPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gVGhlIHByb2Js ZW0gd2l0aCB0aGF0IGFwcHJvYWNoIGlzIHRoYXQgdGhlcmUgYXJlDQo+IGFscmVhZHkNCj4gPiA+ ID4gPiBzZXZlcmFsDQo+ID4gPiA+ID4gPiA+ID4gPiA+IGV4aXN0aW5nIHNwbGl0KCkgb3IgdHJp bSgpIGltcGxlbWVudGF0aW9ucyBpbg0KPiBkaWZmZXJlbnQNCj4gPiA+IERQREstDQo+ID4gPiA+ ID4gYmFzZWQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gYXBwbGljYXRpb25zLiBGb3IgaW5zdGFuY2Us IHdlIGhhdmUgc29tZSBpbg0KPiA2V0lOREdhdGUuIElmDQo+ID4gPiB3ZQ0KPiA+ID4gPiA+IGZv cmNlDQo+ID4gPiA+ID4gPiA+ID4gPiA+IGFwcGxpY2F0aW9ucyB0byBzZXQgbmJfc2VnIHRvIDEg d2hlbiByZXNldHRpbmcgbmV4dCwNCj4gaXQNCj4gPiA+IGhhcw0KPiA+ID4gPiA+IHRvIGJlDQo+ ID4gPiA+ID4gPiA+ID4gPiA+IGRvY3VtZW50ZWQgYmVjYXVzZSBpdCBpcyBub3Qgc3RyYWlnaHRm b3J3YXJkLg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IEkgdGhpbmsgaXQg aXMgYmV0dGVyIHRvIGdvIHRoYXQgd2F5Lg0KPiA+ID4gPiA+ID4gPiA+ID4gRnJvbSBteSBwZXJz cGVjdGl2ZSBpdCBzZWVtcyBuYXR1cmFsIHRvIHJlc2V0IG5iX3NlZyBhdA0KPiA+ID4gc2FtZQ0K PiA+ID4gPiA+IHRpbWUNCj4gPiA+ID4gPiA+ID4gPiA+IHdlIHJlc2V0IG5leHQsIG90aGVyd2lz ZSBpbmNvbnNpc3RlbmN5IHdpbGwgb2NjdXIuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gPiBXaGlsZSBpdCBpcyBub3QgZXhwbGljaXRseSBzdGF0ZWQgZm9yIG5iX3NlZ3MsIHRvIG1l IGl0DQo+IHdhcw0KPiA+ID4gY2xlYXINCj4gPiA+ID4gPiB0aGF0DQo+ID4gPiA+ID4gPiA+ID4g bmJfc2VncyBpcyBvbmx5IHZhbGlkIGluIHRoZSBmaXJzdCBzZWdtZW50LCBsaWtlIGZvciBtYW55 DQo+ID4gPiBmaWVsZHMNCj4gPiA+ID4gPiAocG9ydCwNCj4gPiA+ID4gPiA+ID4gPiBvbF9mbGFn cywgdmxhbiwgcnNzLCAuLi4pLg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gSWYg d2Ugc2F5IHRoYXQgbmJfc2VncyBoYXMgdG8gYmUgdmFsaWQgaW4gYW55IHNlZ21lbnRzLA0KPiBp dA0KPiA+ID4gbWVhbnMNCj4gPiA+ID4gPiB0aGF0DQo+ID4gPiA+ID4gPiA+ID4gY2hhaW4oKSBv ciBzcGxpdCgpIHdpbGwgaGF2ZSB0byB1cGRhdGUgaXQgaW4gYWxsDQo+IHNlZ21lbnRzLA0KPiA+ ID4gd2hpY2gNCj4gPiA+ID4gPiBpcyBub3QNCj4gPiA+ID4gPiA+ID4gPiBlZmZpY2llbnQuDQo+ ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IFdoeSBpbiBhbGw/DQo+ID4gPiA+ID4gPiA+IFdl IGNhbiBzdGF0ZSB0aGF0IG5iX3NlZ3Mgb24gbm9uLWZpcnN0IHNlZ21lbnQgc2hvdWxkDQo+IGFs d2F5cw0KPiA+ID4gZXF1YWwNCj4gPiA+ID4gPiAxLg0KPiA+ID4gPiA+ID4gPiBBcyBJIHVuZGVy c3RhbmQgaW4gdGhhdCBjYXNlLCBib3RoIHNwbGl0KCkgYW5kIGNoYWluKCkgaGF2ZQ0KPiB0bw0K PiA+ID4gPiA+IHVwZGF0ZSBuYl9zZWdzDQo+ID4gPiA+ID4gPiA+IG9ubHkgZm9yIGhlYWQgbWJ1 ZnMsIHJlc3Qgb25lcyB3aWxsIHJlbWFpbiB1bnRvdWNoZWQuDQo+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gV2VsbCwgYW55d2F5LCBJIHRoaW5rIGl0J3Mgc3RyYW5nZSB0byBoYXZlIGEgY29uc3Ry YWludCBvbiBtLQ0KPiA+ID4gPm5iX3NlZ3MNCj4gPiA+ID4gPiBmb3INCj4gPiA+ID4gPiA+IG5v bi1maXJzdCBzZWdtZW50LiBXZSBkb24ndCBoYXZlIHRoYXQga2luZCBvZiBjb25zdHJhaW50cyBm b3INCj4gPiA+IG90aGVyDQo+ID4gPiA+ID4gZmllbGRzLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g VHJ1ZSwgd2UgZG9uJ3QuIEJ1dCB0aGlzIGlzIG9uZSBvZiB0aGUgZmllbGRzIHdlIGNvbnNpZGVy DQo+IGNyaXRpY2FsDQo+ID4gPiA+ID4gZm9yIHByb3BlciB3b3JrIG9mIG1idWYgYWxsb2MvZnJl ZSBtZWNoYW5pc20uDQo+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gSSBhbSBub3Qgc3VyZSB0 aGF0IHJlcXVpcmluZyBtLT5uYl9zZWdzID09IDEgb24gbm9uLWZpcnN0DQo+IHNlZ21lbnRzDQo+ ID4gPiB3aWxsIHByb3ZpZGUgYW55IGJlbmVmaXRzLg0KPiA+ID4NCj4gPiA+IEl0IHdvdWxkIG1h a2UgdGhpcyBwYXRjaCB1bm5lZWRlZC4NCj4gPiA+IFNvLCBmb3IgZGlyZWN0LCBub24tc2VnbWVu dGVkIG1idWZzICBwa3RtYnVmX2ZyZWUoKSB3aWxsIHJlbWFpbg0KPiB3cml0ZS0NCj4gPiA+IGZy ZWUuDQo+ID4NCj4gPiBJIHNlZS4gVGhlbiBJIGFncmVlIHdpdGggS29uc3RhbnRpbiB0aGF0IGFs dGVybmF0aXZlIHNvbHV0aW9ucyBzaG91bGQNCj4gYmUgY29uc2lkZXJlZC4NCj4gPg0KPiA+IFRo ZSBiZW5lZml0IHJlZ2FyZGluZyBmcmVlKCknaW5nIG5vbi1zZWdtZW50ZWQgbWJ1ZnMgLSB3aGlj aCBpcyBhDQo+IHZlcnkgY29tbW9uIG9wZXJhdGlvbiAtIGNlcnRhaW5seSBvdXR3ZWlnaHMgdGhl IGNvc3Qgb2YgcmVxdWlyaW5nDQo+IHNwbGl0KCkvY2hhaW4oKSBvcGVyYXRpb25zIHRvIHNldCB0 aGUgbmV3IGhlYWQgbWJ1ZidzIG5iX3NlZ3MgPSAxLg0KPiA+DQo+ID4gTm9uZXRoZWxlc3MsIHRo ZSBidWcgbmVlZHMgdG8gYmUgZml4ZWQgc29tZWhvdy4NCj4gPg0KPiA+IElmIHdlIGNhbid0IGNv bWUgdXAgd2l0aCBhIGJldHRlciBzb2x1dGlvbiB0aGF0IGRvZXNuJ3QgYnJlYWsgdGhlDQo+IEFC SSwgd2UgYXJlIGZvcmNlZCB0byBhY2NlcHQgdGhlIHBhdGNoLg0KPiA+DQo+ID4gVW5sZXNzIHRo ZSB0ZWNoYm9hcmQgYWNjZXB0cyB0byBicmVhayB0aGUgQUJJIGluIG9yZGVyIHRvIGF2b2lkIHRo ZQ0KPiBwZXJmb3JtYW5jZSBjb3N0IG9mIHRoaXMgcGF0Y2guDQo+IA0KPiBEaWQgc29tZW9uZSBu b3RpY2UgYSBwZXJmb3JtYW5jZSBkcm9wIHdpdGggdGhpcyBwYXRjaD8NCj4gT24gbXkgc2lkZSwg SSBkb24ndCBzZWUgYW55IHJlZ3Jlc3Npb24gb24gYSBMMyB1c2UgY2FzZS4NCg0KSSBhbSBhZnJh aWQgdGhhdCB0aGUgRFBESyBwZXJmb3JtYW5jZSByZWdyZXNzaW9uIHRlc3RzIGFyZSBiYXNlZCBv biBUWCBpbW1lZGlhdGVseSBmb2xsb3dpbmcgUlgsIHNvIGNhY2hlIG1pc3NlcyBpbiBUWCBtYXkg Z28gYnkgdW5ub3RpY2VkIGJlY2F1c2UgUlggd2FybWVkIHVwIHRoZSBjYWNoZSBmb3IgVFggYWxy ZWFkeS4gQW5kIHNpbWlsYXJseSBmb3IgUlggcmV1c2luZyBtYnVmcyB0aGF0IGhhdmUgYmVlbiB3 YXJtZWQgdXAgYnkgdGhlIHByZWNlZGluZyBmcmVlKCkgYXQgVFguDQoNClBsZWFzZSBjb25zaWRl ciB0ZXN0aW5nIHRoZSBwZXJmb3JtYW5jZSBkaWZmZXJlbmNlIHdpdGggdGhlIG1idWYgYmVpbmcg Y29tcGxldGVseSBjb2xkIGF0IFRYLCBhbmQgZ29pbmcgY29tcGxldGVseSBjb2xkIGFnYWluIGJl Zm9yZSBiZWluZyByZXVzZWQgZm9yIFJYLg0KDQo+IA0KPiBMZXQncyBzdW1hcml6ZTogc3BsaXR0 aW5nIGEgbWJ1ZiBjaGFpbiBhbmQgZnJlZWluZyBpdCBjYXVzZXMgc3Vic2VxdWVudA0KPiBtYnVm DQo+IGFsbG9jYXRpb24gdG8gcmV0dXJuIGEgbWJ1ZiB3aGljaCBpcyBub3QgY29ycmVjdGx5IGlu aXRpYWxpemVkLiBUaGVyZQ0KPiBhcmUgMg0KPiBvcHRpb25zIHRvIGZpeCBpdDoNCj4gDQo+IDEv IGNoYW5nZSB0aGUgbWJ1ZiBmcmVlIGZ1bmN0aW9uICh0aGlzIHBhdGNoKQ0KPiANCj4gICAgLSBt LT5uYl9zZWdzIHdvdWxkIGJlaGF2ZSBsaWtlIG1hbnkgb3RoZXIgZmllbGQ6IHZhbGlkIGluIHRo ZSBmaXJzdA0KPiAgICAgIHNlZ21lbnQsIGlnbm9yZWQgaW4gb3RoZXIgc2VnbWVudHMNCj4gICAg LSBtYXkgaW1wYWN0IHBlcmZvcm1hbmNlIChzdXNwZWN0ZWQpDQo+IA0KPiAyLyBjaGFuZ2UgYWxs IHBsYWNlcyB3aGVyZSBhIG1idWYgY2hhaW4gaXMgc3BsaXQsIG9yIHRyaW1tZWQNCj4gDQo+ICAg IC0gbS0+bmJfc2VncyB3b3VsZCBoYXZlIGEgc3BlY2lmaWMgYmVoYXZpb3I6IGNvdW50IHRoZSBu dW1iZXIgb2YNCj4gICAgICBzZWdtZW50cyBpbiB0aGUgZmlyc3QgbWJ1Ziwgc2hvdWxkIGJlIDEg aW4gdGhlIGxhc3Qgc2VnbWVudCwNCj4gICAgICBpZ25vcmVkIGluIG90aGVyIG9uZXMuDQo+ICAg IC0gbm8gY29kZSBjaGFuZ2UgaW4gbWJ1ZiBsaWJyYXJ5LCBzbyBubyBwZXJmb3JtYW5jZSBpbXBh Y3QNCj4gICAgLSBuZWVkIHRvIHBhdGNoIGFsbCBwbGFjZXMgd2hlcmUgd2UgZG8gYSBtYnVmIHNw bGl0IG9yIHRyaW0uIEZyb20NCj4gYWZhciwNCj4gICAgICBJIHNlZSBhdCBsZWFzdCBtYnVmX2N1 dF9zZWdfb2ZzKCkgaW4gRFBESy4gU29tZSBleHRlcm5hbA0KPiBhcHBsaWNhdGlvbnMNCj4gICAg ICBtYXkgaGF2ZSB0byBiZSBwYXRjaGVkIChmb3IgaW5zdGFuY2UsIEkgYWxyZWFkeSBmb3VuZCAz IHBsYWNlcyBpbg0KPiAgICAgIDZXSU5EIGNvZGUgYmFzZSB3aXRob3V0IGEgZGVlcCBzZWFyY2gp Lg0KPiANCj4gSW4gbXkgb3BpbmlvbiwgMS8gaXMgYmV0dGVyLCBleGNlcHQgd2Ugbm90aWNlIGEg c2lnbmlmaWNhbnQNCj4gcGVyZm9ybWFuY2UsDQo+IGJlY2F1c2UgdGhlIChpbXBsaWNpdCkgYmVo YXZpb3IgaXMgdW5jaGFuZ2VkLg0KPiANCj4gV2hhdGV2ZXIgdGhlIHNvbHV0aW9uLCBzb21lIGRv Y3VtZW50YXRpb24gaGFzIHRvIGJlIGFkZGVkLg0KPiANCj4gT2xpdmllcg0KPiANCg0KVW5mb3J0 dW5hdGVseSwgSSBkb24ndCB0aGluayB0aGF0IGFueXRoaW5nIGJ1dCB0aGUgZmlyc3Qgb3B0aW9u IHdpbGwgZ28gaW50byAyMC4xMSBhbmQgc3RhYmxlIHJlbGVhc2VzIG9mIG9sZGVyIHZlcnNpb25z LCBzbyBJIHN0YW5kIGJ5IG15IGFja25vd2xlZGdtZW50IG9mIHRoZSBwYXRjaC4NCg0KV2hpY2gg cmVtaW5kcyBtZTogQ29uc2lkZXIgcmVwb3J0aW5nIHRoZSBidWcgaW4gQnVnemlsbGEuDQoNCj4g DQo+ID4NCj4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IEUuZy4gdGhlIHNlY29uZCBzZWdtZW50IG9m IGEgdGhyZWUtc2VnbWVudCBjaGFpbiB3aWxsIHN0aWxsIGhhdmUNCj4gbS0NCj4gPiA+ID5uZXh0 ICE9IE5VTEwsIHNvIGl0IGNhbm5vdCBiZSB1c2VkIGFzIGEgZ2F0ZSB0byBwcmV2ZW50IGFjY2Vz c2luZw0KPiBtLQ0KPiA+ID4gPiA+bmV4dC4NCj4gPiA+ID4NCj4gPiA+ID4gSSBtaWdodCBoYXZl IG92ZXJsb29rZWQgc29tZXRoaW5nLCB0aG91Z2guDQo+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ IFNheWluZyB0aGF0IG5iX3NlZ3MgaGFzIHRvIGJlIHZhbGlkIGZvciB0aGUgZmlyc3QgYW5kDQo+ IGxhc3QNCj4gPiA+ID4gPiBzZWdtZW50IHNlZW1zDQo+ID4gPiA+ID4gPiA+ID4gcmVhbGx5IG9k ZCB0byBtZS4gV2hhdCBpcyB0aGUgbG9naWMgYmVoaW5kIHRoYXQgZXhjZXB0DQo+ID4gPiBrZWVw aW5nDQo+ID4gPiA+ID4gdGhpcyB0ZXN0DQo+ID4gPiA+ID4gPiA+ID4gYXMgaXM/DQo+ID4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBJbiBhbnkgY2FzZSwgaXQgaGFzIHRvIGJlIGJldHRl ciBkb2N1bWVudGVkLg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gPiBPbGl2aWVyDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiA+ID4gPiBJIHRoaW5rIHRoZSBhcHByb2FjaCBmcm9tDQo+ID4gPiA+ID4gPiA+ID4g PiA+IHRoaXMgcGF0Y2ggaXMgc2FmZXIuDQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiA+ID4gSXQgbWlnaHQgYmUgZWFzaWVyIGZyb20gcGVyc3BlY3RpdmUgdGhhdCBjaGFuZ2VzIGlu DQo+IGxlc3MNCj4gPiA+IHBsYWNlcw0KPiA+ID4gPiA+IGFyZSByZXF1aXJlZCwNCj4gPiA+ID4g PiA+ID4gPiA+IFRob3VnaCBJIHRoaW5rIHRoYXQgdGhpcyBwYXRjaCB3aWxsIGludHJvZHVjZSBz b21lDQo+ID4gPiBwZXJmb3JtYW5jZQ0KPiA+ID4gPiA+IGRyb3AuDQo+ID4gPiA+ID4gPiA+ID4g PiBBcyBub3cgZWFjaCBtYnVmX3ByZWZyZWVfc2VnKCkgd2lsbCBjYXVzZSB1cGRhdGUgb2YgMg0K PiBjYWNoZQ0KPiA+ID4gPiA+IGxpbmVzIHVuY29uZGl0aW9uYWxseS4NCj4gPiA+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IEJ5IHRoZSB3YXksIGZvciAyMS4xMSwgaWYgd2UgYXJl IGFibGUgdG8gZG8gc29tZQ0KPiA+ID4gPiA+IG9wdGltaXphdGlvbnMgYW5kIGhhdmUNCj4gPiA+ ID4gPiA+ID4gPiA+ID4gYm90aCBwb29sIChpbmRleD8pIGFuZCBuZXh0IGluIHRoZSBmaXJzdCBj YWNoZSBsaW5lLA0KPiB3ZQ0KPiA+ID4gbWF5DQo+ID4gPiA+ID4gcmVjb25zaWRlcg0KPiA+ID4g PiA+ID4gPiA+ID4gPiB0aGUgZmFjdCB0aGF0IG5leHQgYW5kIG5iX3NlZ3MgYXJlIGFscmVhZHkg c2V0IGZvcg0KPiBuZXcNCj4gPiA+ID4gPiBhbGxvY2F0ZWQgbWJ1ZnMsDQo+ID4gPiA+ID4gPiA+ ID4gPiA+IGJlY2F1c2UgaXQgaXMgbm90IHN0cmFpZ2h0Zm9yd2FyZCBlaXRoZXIuDQo+ID4gPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gTXkgc3VnZ2VzdGlvbiAtIGxldCdzIHB1dCBm dXR1cmUgb3B0aW1pemF0aW9uDQo+IGRpc2N1c3Npb24NCj4gPiA+IGFzaWRlDQo+ID4gPiA+ID4g Zm9yIG5vdywNCj4gPiA+ID4gPiA+ID4gPiA+IGFuZCBjb25jZW50cmF0ZSBvbiB0aGF0IHBhcnRp Y3VsYXIgcGF0Y2guDQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gQWZ0ZXIgdGhpcyBvcGVyYXRpb24sIHdlIGhhdmUgMiBtYnVm IGNoYWluOg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gIC0gbTAgd2l0aCAyIHNlZ21lbnRzLCB0 aGUgbGFzdCBvbmUgaGFzIG5leHQ9TlVMTA0KPiBidXQNCj4gPiA+ID4gPiBuYl9zZWc9Mg0KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gIC0gbmV3X20gd2l0aCAxIHNlZ21lbnQNCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBGcmVlaW5nIG0wIHdpbGwgbm90 IHJlc3RvcmUgbmJfc2VnPTEgaW4gdGhlDQo+IHNlY29uZA0KPiA+ID4gPiA+IHNlZ21lbnQuDQo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+IEFzc3VtZXMg dGhhdCBpdCBpcyBvayB0byBoYXZlIGFuIG1idWYgd2l0aA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4+IG5iX3NlZyA+IDEgYW5kIG5leHQgPT0gTlVMTC4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ PiBXaGljaCBzZWVtcyB3cm9uZyB0byBtZS4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiBJIGRvbid0IHRoaW5rIGl0IGlzIHdyb25nOiBuYl9zZWcgaXMg anVzdCBpZ25vcmVkDQo+ID4gPiB3aGVuDQo+ID4gPiA+ID4gbm90IGluIHRoZSBmaXJzdA0KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gc2VnbWVudCwgYW5kIHRoZXJlIGlzIG5vdGhpbmcgc2F5aW5n IGl0IHNob3VsZCBiZQ0KPiBzZXQNCj4gPiA+IHRvDQo+ID4gPiA+ID4gMS4gVHlwaWNhbGx5LA0K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gcnRlX3BrdG1idWZfY2hhaW4oKSBkb2VzIG5vdCBjaGFu Z2UgaXQsIGFuZCBJDQo+IGd1ZXNzDQo+ID4gPiBpdCdzDQo+ID4gPiA+ID4gdGhlIHNhbWUgZm9y DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBtYW55IHNpbWlsYXIgZnVuY3Rpb25zIGluIGFwcGxp Y2F0aW9ucy4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiBPbGl2aWVyDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Pj4g VGhpcyBpcyBleHBlY3RlZCB0aGF0IG1idWZzIHN0b3JlZCBpbiBwb29sIGhhdmUNCj4gPiA+IHRo ZWlyDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4+IG5iX3NlZyBmaWVsZCBzZXQgdG8gMS4NCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+Pj4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gRml4ZXM6 IDhmMDk0YTlhYzVkNyAoIm1idWY6IHNldCBtYnVmIGZpZWxkcw0KPiB3aGlsZQ0KPiA+ID4gaW4N Cj4gPiA+ID4gPiBwb29sIikNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gQ2M6IHN0YWJsZUBk cGRrLm9yZw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4+PiBTaWduZWQtb2ZmLWJ5OiBPbGl2aWVyIE1hdHoNCj4gPiA+IDxvbGl2aWVyLm1hdHpANndp bmQuY29tPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+PiAtLS0NCj4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+Pj4gIGxpYi9saWJydGVfbWJ1Zi9ydGVfbWJ1Zi5jIHwgIDYgKystLS0tDQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPj4+ICBsaWIvbGlicnRlX21idWYvcnRlX21idWYuaCB8IDEyICsrKyst LS0tLS0tLQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+PiAgMiBmaWxlcyBjaGFuZ2VkLCA2IGlu c2VydGlvbnMoKyksIDEyDQo+IGRlbGV0aW9ucygtKQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+ Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+PiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9tYnVm L3J0ZV9tYnVmLmMNCj4gPiA+ID4gPiBiL2xpYi9saWJydGVfbWJ1Zi9ydGVfbWJ1Zi5jDQo+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPj4+IGluZGV4IDhhNDU2ZTVlNjQuLmU2MzIwNzFjMjMgMTAwNjQ0 DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4+IC0tLSBhL2xpYi9saWJydGVfbWJ1Zi9ydGVfbWJ1 Zi5jDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICsrKyBiL2xpYi9saWJydGVfbWJ1Zi9ydGVf bWJ1Zi5jDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4+IEBAIC0xMjksMTAgKzEyOSw4IEBADQo+ ID4gPiA+ID4gcnRlX3BrdG1idWZfZnJlZV9waW5uZWRfZXh0bWVtKHZvaWQgKmFkZHIsIHZvaWQg Km9wYXF1ZSkNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Pj4NCj4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+Pj4gIAlydGVfbWJ1Zl9leHRfcmVmY250X3NldChtLT5zaGluZm8sIDEpOw0KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4+PiAgCW0tPm9sX2ZsYWdzID0gRVhUX0FUVEFDSEVEX01CVUY7DQo+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPj4+IC0JaWYgKG0tPm5leHQgIT0gTlVMTCkgew0KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4+PiAtCQltLT5uZXh0ID0gTlVMTDsNCj4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+Pj4gLQkJbS0+bmJfc2VncyA9IDE7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4+IC0JfQ0K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+PiArCW0tPm5leHQgPSBOVUxMOw0KPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4+PiArCW0tPm5iX3NlZ3MgPSAxOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+ PiAgCXJ0ZV9tYnVmX3Jhd19mcmVlKG0pOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+PiAgfQ0K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+PiBkaWZm IC0tZ2l0IGEvbGliL2xpYnJ0ZV9tYnVmL3J0ZV9tYnVmLmgNCj4gPiA+ID4gPiBiL2xpYi9saWJy dGVfbWJ1Zi9ydGVfbWJ1Zi5oDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4+IGluZGV4IGExNDE0 ZWQ3Y2QuLmVmNTgwMGM4ZWYgMTAwNjQ0DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4+IC0tLSBh L2xpYi9saWJydGVfbWJ1Zi9ydGVfbWJ1Zi5oDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICsr KyBiL2xpYi9saWJydGVfbWJ1Zi9ydGVfbWJ1Zi5oDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4+ IEBAIC0xMzI5LDEwICsxMzI5LDggQEANCj4gPiA+IHJ0ZV9wa3RtYnVmX3ByZWZyZWVfc2VnKHN0 cnVjdA0KPiA+ID4gPiA+IHJ0ZV9tYnVmICptKQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+PiAg CQkJCXJldHVybiBOVUxMOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+PiAgCQl9DQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPj4+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4+IC0JCWlmIChtLT5u ZXh0ICE9IE5VTEwpIHsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gLQkJCW0tPm5leHQgPSBO VUxMOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+PiAtCQkJbS0+bmJfc2VncyA9IDE7DQo+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPj4+IC0JCX0NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gKwkJ bS0+bmV4dCA9IE5VTEw7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICsJCW0tPm5iX3NlZ3Mg PSAxOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+ PiAgCQlyZXR1cm4gbTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Pj4NCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+Pj4gQEAgLTEzNDYsMTAgKzEzNDQsOCBAQA0KPiA+ID4gcnRlX3BrdG1idWZfcHJl ZnJlZV9zZWcoc3RydWN0DQo+ID4gPiA+ID4gcnRlX21idWYgKm0pDQo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPj4+ICAJCQkJcmV0dXJuIE5VTEw7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICAJ CX0NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Pj4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Pj4g LQkJaWYgKG0tPm5leHQgIT0gTlVMTCkgew0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+PiAtCQkJ bS0+bmV4dCA9IE5VTEw7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4+IC0JCQltLT5uYl9zZWdz ID0gMTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gLQkJfQ0KPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4+PiArCQltLT5uZXh0ID0gTlVMTDsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gKwkJ bS0+bmJfc2VncyA9IDE7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICAJCXJ0ZV9tYnVmX3Jl ZmNudF9zZXQobSwgMSk7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4+DQo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPj4+ICAJCXJldHVybiBtOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+PiAtLQ0K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+PiAyLjI1LjENCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4NCg0K