From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ola Liljedahl Subject: Re: [PATCH 1/1] eal: add 128-bit cmpset (x86-64 only) Date: Fri, 1 Feb 2019 19:01:36 +0000 Message-ID: <1549047709.20325.35.camel@arm.com> References: <20190128172945.27251-1-gage.eads@intel.com> <20190128172945.27251-2-gage.eads@intel.com> <1548716507.11472.96.camel@arm.com> <9184057F7FC11744A2107296B6B8EB1E541CE1FE@FMSMSX108.amr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: "jerinj@marvell.com" , "chaozhu@linux.vnet.ibm.com" , nd , "bruce.richardson@intel.com" , "konstantin.ananyev@intel.com" , "hemant.agrawal@nxp.com" , "olivier.matz@6wind.com" , "arybchenko@solarflare.com" , "Gavin Hu (Arm Technology China)" , Honnappa Nagarahalli To: "gage.eads@intel.com" , "dev@dpdk.org" Return-path: Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10052.outbound.protection.outlook.com [40.107.1.52]) by dpdk.org (Postfix) with ESMTP id A5D441B4F7 for ; Fri, 1 Feb 2019 20:01:39 +0100 (CET) In-Reply-To: <9184057F7FC11744A2107296B6B8EB1E541CE1FE@FMSMSX108.amr.corp.intel.com> Content-Language: en-US Content-ID: List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" T24gRnJpLCAyMDE5LTAyLTAxIGF0IDE3OjA2ICswMDAwLCBFYWRzLCBHYWdlIHdyb3RlOg0KPiAN Cj4gPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IE9sYSBMaWxq ZWRhaGwgW21haWx0bzpPbGEuTGlsamVkYWhsQGFybS5jb21dDQo+ID4gU2VudDogTW9uZGF5LCBK YW51YXJ5IDI4LCAyMDE5IDU6MDIgUE0NCj4gPiBUbzogRWFkcywgR2FnZSA8Z2FnZS5lYWRzQGlu dGVsLmNvbT47IGRldkBkcGRrLm9yZw0KPiA+IENjOiBhcnliY2hlbmtvQHNvbGFyZmxhcmUuY29t OyBqZXJpbmpAbWFydmVsbC5jb207DQo+ID4gY2hhb3podUBsaW51eC52bmV0LmlibS5jb207IG5k IDxuZEBhcm0uY29tPjsgUmljaGFyZHNvbiwgQnJ1Y2UNCj4gPiA8YnJ1Y2UucmljaGFyZHNvbkBp bnRlbC5jb20+OyBBbmFueWV2LCBLb25zdGFudGluDQo+ID4gPGtvbnN0YW50aW4uYW5hbnlldkBp bnRlbC5jb20+OyBoZW1hbnQuYWdyYXdhbEBueHAuY29tOw0KPiA+IG9saXZpZXIubWF0ekA2d2lu ZC5jb207IEhvbm5hcHBhIE5hZ2FyYWhhbGxpDQo+ID4gPEhvbm5hcHBhLk5hZ2FyYWhhbGxpQGFy bS5jb20+OyBHYXZpbiBIdSAoQXJtIFRlY2hub2xvZ3kgQ2hpbmEpDQo+ID4gPEdhdmluLkh1QGFy bS5jb20+DQo+ID4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIIDEvMV0gZWFsOiBhZGQg MTI4LWJpdCBjbXBzZXQgKHg4Ni02NCBvbmx5KQ0KPiA+IA0KPiA+IE9uIE1vbiwgMjAxOS0wMS0y OCBhdCAxMToyOSAtMDYwMCwgR2FnZSBFYWRzIHdyb3RlOg0KPiA+ID4gDQo+ID4gPiBUaGlzIG9w ZXJhdGlvbiBjYW4gYmUgdXNlZCBmb3Igbm9uLWJsb2NraW5nIGFsZ29yaXRobXMsIHN1Y2ggYXMg YQ0KPiA+ID4gbm9uLWJsb2NraW5nIHN0YWNrIG9yIHJpbmcuDQo+ID4gPiANCj4gPiA+IFNpZ25l ZC1vZmYtYnk6IEdhZ2UgRWFkcyA8Z2FnZS5lYWRzQGludGVsLmNvbT4NCj4gPiA+IC0tLQ0KPiA+ ID4gwqAuLi4vY29tbW9uL2luY2x1ZGUvYXJjaC94ODYvcnRlX2F0b21pY182NC5owqDCoMKgwqDC oMKgwqDCoHwgMzEgKysrKysrKysrKysNCj4gPiA+IMKgbGliL2xpYnJ0ZV9lYWwvY29tbW9uL2lu Y2x1ZGUvZ2VuZXJpYy9ydGVfYXRvbWljLmggfCA2NQ0KPiA+ID4gKysrKysrKysrKysrKysrKysr KysrKw0KPiA+ID4gwqAyIGZpbGVzIGNoYW5nZWQsIDk2IGluc2VydGlvbnMoKykNCj4gPiA+IA0K PiA+ID4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfZWFsL2NvbW1vbi9pbmNsdWRlL2FyY2gveDg2 L3J0ZV9hdG9taWNfNjQuaA0KPiA+ID4gYi9saWIvbGlicnRlX2VhbC9jb21tb24vaW5jbHVkZS9h cmNoL3g4Ni9ydGVfYXRvbWljXzY0LmgNCj4gPiA+IGluZGV4IGZkMmVjOWM1My4uYjdiOTBiODNl IDEwMDY0NA0KPiA+ID4gLS0tIGEvbGliL2xpYnJ0ZV9lYWwvY29tbW9uL2luY2x1ZGUvYXJjaC94 ODYvcnRlX2F0b21pY182NC5oDQo+ID4gPiArKysgYi9saWIvbGlicnRlX2VhbC9jb21tb24vaW5j bHVkZS9hcmNoL3g4Ni9ydGVfYXRvbWljXzY0LmgNCj4gPiA+IEBAIC0zNCw2ICszNCw3IEBADQo+ ID4gPiDCoC8qDQo+ID4gPiDCoCAqIEluc3BpcmVkIGZyb20gRnJlZUJTRCBzcmMvc3lzL2FtZDY0 L2luY2x1ZGUvYXRvbWljLmgNCj4gPiA+IMKgICogQ29weXJpZ2h0IChjKSAxOTk4IERvdWcgUmFi c29uDQo+ID4gPiArICogQ29weXJpZ2h0IChjKSAyMDE5IEludGVsIENvcnBvcmF0aW9uDQo+ID4g PiDCoCAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+ID4gPiDCoCAqLw0KPiA+ID4gDQo+ID4gPiBA QCAtNDYsNiArNDcsNyBAQA0KPiA+ID4gDQo+ID4gPiDCoCNpbmNsdWRlIDxzdGRpbnQuaD4NCj4g PiA+IMKgI2luY2x1ZGUgPHJ0ZV9jb21tb24uaD4NCj4gPiA+ICsjaW5jbHVkZSA8cnRlX2NvbXBh dC5oPg0KPiA+ID4gwqAjaW5jbHVkZSA8cnRlX2F0b21pYy5oPg0KPiA+ID4gDQo+ID4gPiDCoC8q LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSA2NCBiaXQgYXRvbWljIG9wZXJhdGlvbnMNCj4gPiA+ IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAtKi8gQEAgLTIwOCw0ICsyMTAsMzMgQEAgc3RhdGlj IGlubGluZSB2b2lkDQo+ID4gPiBydGVfYXRvbWljNjRfY2xlYXIocnRlX2F0b21pYzY0X3QgKnYp DQo+ID4gPiDCoH0NCj4gPiA+IMKgI2VuZGlmDQo+ID4gPiANCj4gPiA+ICtzdGF0aWMgaW5saW5l IGludCBfX3J0ZV9leHBlcmltZW50YWwNCj4gPiBfX3J0ZV9hbHdheXNfaW5saW5lPw0KPiA+IA0K PiA+ID4gDQo+ID4gPiArcnRlX2F0b21pYzEyOF9jbXBzZXQodm9sYXRpbGUgcnRlX2ludDEyOF90 ICpkc3QsDQo+ID4gTm8gbmVlZCB0byBkZWNsYXJlIHRoZSBsb2NhdGlvbiB2b2xhdGlsZS4gVm9s YXRpbGUgZG9lc24ndCBkbyB3aGF0IHlvdSB0aGluaw0KPiA+IGl0DQo+ID4gZG9lcy4NCj4gPiBo dHRwczovL3lvdXR1LmJlL2xrZ3N6a1BuVjhnP3Q9MTAyNw0KPiA+IA0KPiBJIG1hZGUgdGhpcyB2 b2xhdGlsZSB0byBtYXRjaCB0aGUgZXhpc3RpbmcgcnRlX2F0b21pY05fY21wc2V0IGRlZmluaXRp b25zLA0KPiB3aGljaCBwcmVzdW1hYmx5IGhhdmUgYSBnb29kIHJlYXNvbiBmb3IgdXNpbmcgdGhl IGtleXdvcmQuIE1haW50YWluZXJzLCBhbnkNCj4gaW5wdXQgaGVyZT8NCj4gDQo+ID4gDQo+ID4g DQo+ID4gPiANCj4gPiA+ICsJCcKgwqDCoMKgwqBydGVfaW50MTI4X3QgKmV4cCwNCj4gPiBJIHdv dWxkIGRlY2xhcmUgJ2V4cCcgY29uc3QgYXMgd2VsbCBhbmQgZG9jdW1lbnQgdGhhdCAnZXhwJyBp cyBub3QgdXBkYXRlZA0KPiA+ICh3aXRoDQo+ID4gdGhlIG9sZCB2YWx1ZSkgZm9yIGEgZmFpbHVy ZS4gVGhlIHJlYXNvbiBiZWluZyB0aGF0IEFSTXY4LjAvQUFyY2g2NCBjYW5ub3QNCj4gPiBhdG9t aWNhbGx5IHJlYWQgdGhlIG9sZCB2YWx1ZSB3aXRob3V0IGFsc28gd3JpdGluZyB0aGUgbG9jYXRp b24gYW5kIHRoYXQgaXMNCj4gPiBiYWQNCj4gPiBmb3IgcGVyZm9ybWFuY2UgKHVubmVjZXNzYXJ5 IHdyaXRlcyBsZWFkcyB0byB1bm5lY2Vzc2FyeSBjb250ZW50aW9uIGFuZA0KPiA+IHdvcnNlIHNj YWxhYmlsaXR5KS4gQW5kIHRoZSB1c2VyIG11c3QgYW55d2F5IHJlYWQgdGhlIGxvY2F0aW9uIChp biB0aGUgc3RhcnQNCj4gPiBvZg0KPiA+IHRoZSBjcml0aWNhbCBzZWN0aW9uKSB1c2luZyBlLmcu IG5vbi1hdG9taWMgNjQtYml0IHJlYWRzIHNvIHRoZXJlIGlzbid0DQo+ID4gYWN0dWFsbHkgYW55 DQo+ID4gcmVxdWlyZW1lbnQgZm9yIGFuIGF0b21pYyAxMjgtYml0IHJlYWQgb2YgdGhlIGxvY2F0 aW9uLg0KPiA+IA0KPiBXaWxsIGNoYW5nZSBpbiB2Mi4NCj4gDQo+ID4gDQo+ID4gPiANCj4gPiA+ IMKgcnRlX2ludDEyOF90ICpzcmMsDQo+ID4gY29uc3QgcnRlX2ludDEyOF90ICpzcmM/DQo+IFN1 cmUsIEkgZG9uJ3Qgc2VlIGFueSBoYXJtIGluIHVzaW5nIGNvbnN0Lg0KPiANCj4gPiANCj4gPiAN Cj4gPiBCdXQgd2h5IGFyZSB3ZSBub3QgcGFzc2luZyAnZXhwJyBhbmQgJ3NyYycgYnkgdmFsdWU/ IFRoYXQgd29ya3MgZ3JlYXQsIGV2ZW4NCj4gPiB3aXRoDQo+ID4gc3RydWN0cy4gUGFzc2luZyBi eSB2YWx1ZSBzaW1wbGlmaWVzIHRoZSBjb21waWxlcidzIGxpZmUsIGVzcGVjaWFsbHkgaWYgdGhl DQo+ID4gY2FsbCBpcw0KPiA+IGlubGluZWQuIEFzayBhIGNvbXBpbGVyIGRldmVsb3Blci4NCj4g SSByYW4gb2JqZHVtcCBvbiB0aGUgbmJfc3RhY2sgY29kZSB3aXRoIGJvdGggYXBwcm9hY2hlcywg YW5kIHBhc3MtYnktcmVmZXJlbmNlIA0KPiByZXN1bHRlZCBpbiBmZXdlciBvdmVyYWxsIHg4Nl82 NCBhc3NlbWJseSBvcHMuDQo+IFBCVjogMTAwIG9wcyBmb3IgcHVzaCwgOTcgb3BzIGZvciBwb3AN Cj4gUEJSOiA5MiBvcHMgZm9yIHB1c2gsIDg0IG9wcyBmb3IgcG9wDQpPSyBJIGhhdmUgbmV2ZXIg Y2hlY2tlZCB4ODZfNjQgY29kZSBnZW5lcmF0aW9uLi4uIEkgaGF2ZSBnb29kIGV4cGVyaWVuY2Vz IHdpdGgNCkFSTS9BQXJjaDY0LCBldmVyeXRoaW5nIHNlZW1zIHRvIGJlIGRvbmUgdXNpbmcgcmVn aXN0ZXJzLiBJIGFtIHN1cnByaXNlZCB0aGVyZQ0KaXMgYSBkaWZmZXJlbmNlLg0KDQpEaWQgYSBx dWljayBjaGVjayB3aXRoIGxmcmluZywgcGFzc2luZyAnc3JjJyAodGhpcmQgcGFyYW0pIGJ5IHJl ZmVyZW5jZSBhbmQgYnkNCnZhbHVlLiBObyBkaWZmZXJlbmNlIGluIGNvZGUgZ2VuZXJhdGlvbiBv biB4ODZfNjQuDQoNCkJ1dCBpZiB5b3UgaW5zaXN0IGxldCdzIGdvIHdpdGggUEJSLg0KDQo+IA0K PiAoVXNpbmcgdGhlIGluLXByb2dyZXNzIHY1IG5iX3N0YWNrIGNvZGUpDQo+IA0KPiBBbm90aGVy IGZhY3RvciAtLSB0aG91Z2ggbXVjaCBsZXNzIGNvbXBlbGxpbmcgLS0gaXMgdGhhdCB3aXRoIHBh c3MtYnktDQo+IHJlZmVyZW5jZSwgdGhlIHVzZXIgY2FuIGNyZWF0ZSBhIDE2QiBzdHJ1Y3R1cmUg YW5kIGNhc3QgaXQgdG8gcnRlX2ludDEyOF90DQo+IHdoZW4gdGhleSBjYWxsIHJ0ZV9hdG9taWMx MjhfY21wc2V0LCB3aGVyZWFzIHdpdGggcGFzcy1ieS12YWx1ZSB0aGV5IG5lZWQgdG8NCj4gcHV0 IHRoYXQgc3RydWN0IGluIGEgdW5pb24gd2l0aCBydGVfaW50MTI4X3QuDQpXaGljaCBpcyB3aGF0 IEkgYWx3YXlzIGRvIG5vd2FkYXlzLi4uIFRyeWluZyB0byB1c2UgYXMgZmV3IGNhc3RzIGFzIHBv c3NpYmxlIGFuZA0KbGllIHRvIHRoZSBjb21waWxlciBhcyBzZWxkb20gYXMgcG9zc2libGUuIEJ1 dCBJIGNhbiBzZWUgdGhlIGZyZWVkb20gcHJvdmlkZWQgYnkNCnRha2luZyBhIHBvaW50ZXIgdG8g c29tZXRoaW5nIGFuZCBjYXN0IGl0IGl0IHJ0ZV9pbnQxMjhfdCBwdHIgaW4gdGhlIGNhbGwNCnRv wqBydGVfYXRvbWljMTI4X2NtcHNldCgpLg0KDQpXb3VsZCBwcmVmZXIgYSBuYW1lIHRoYXQgaXMg bW9yZSBzaW1pbGFyIHRvIF9fYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2UoKS4gRS5nLg0KcnRlX2F0 b21pYzEyOF9jb21wYXJlX2V4Y2hhbmdlKCkgKG9yIHBlcmhhcHMganVzdCBydGVfYXRvbWljMTI4 X2NtcHhjaGcpPyBBbGwNCnRoZSBydGVfYXRvbWljWFhfY21wc2V0KCkgZnVuY3Rpb25zIGRvIG5v dCB0YWtlIGFueSBtZW1vcnkgb3JkZXIgcGFyYW1ldGVycy4NCkZyb20gYW4gQXJtIHBlcnNwZWN0 aXZlLCB3ZSBhcmUgbm90IGhhcHB5IHdpdGggdGhhdC4NCg0KPiANCj4gPiANCj4gPiANCj4gPiA+ IA0KPiA+ID4gKwkJwqDCoMKgwqDCoHVuc2lnbmVkIGludCB3ZWFrLA0KPiA+ID4gKwkJwqDCoMKg wqDCoGVudW0gcnRlX2F0b21pY19tZW1tb2RlbF90IHN1Y2Nlc3MsDQo+ID4gPiArCQnCoMKgwqDC oMKgZW51bSBydGVfYXRvbWljX21lbW1vZGVsX3QgZmFpbHVyZSkgew0KPiA+ID4gKwlSVEVfU0VU X1VTRUQod2Vhayk7DQo+ID4gPiArCVJURV9TRVRfVVNFRChzdWNjZXNzKTsNCj4gPiA+ICsJUlRF X1NFVF9VU0VEKGZhaWx1cmUpOw0KPiA+ID4gKwl1aW50OF90IHJlczsNCj4gPiA+ICsNCj4gPiA+ ICsJYXNtIHZvbGF0aWxlICgNCj4gPiA+ICsJCcKgwqDCoMKgwqDCoE1QTE9DS0VEDQo+ID4gPiAr CQnCoMKgwqDCoMKgwqAiY21weGNoZzE2YiAlW2RzdF07Ig0KPiA+ID4gKwkJwqDCoMKgwqDCoMKg IiBzZXRlICVbcmVzXSINCj4gPiA+ICsJCcKgwqDCoMKgwqDCoDogW2RzdF0gIj1tIiAoZHN0LT52 YWxbMF0pLA0KPiA+ID4gKwkJCSI9QSIgKGV4cC0+dmFsWzBdKSwNCj4gPiA+ICsJCQlbcmVzXSAi PXIiIChyZXMpDQo+ID4gPiArCQnCoMKgwqDCoMKgwqA6ICJjIiAoc3JjLT52YWxbMV0pLA0KPiA+ ID4gKwkJCSJiIiAoc3JjLT52YWxbMF0pLA0KPiA+ID4gKwkJCSJtIiAoZHN0LT52YWxbMF0pLA0K PiA+ID4gKwkJCSJkIiAoZXhwLT52YWxbMV0pLA0KPiA+ID4gKwkJCSJhIiAoZXhwLT52YWxbMF0p DQo+ID4gPiArCQnCoMKgwqDCoMKgwqA6ICJtZW1vcnkiKTsNCj4gPiA+ICsNCj4gPiA+ICsJcmV0 dXJuIHJlczsNCj4gPiA+ICt9DQo+ID4gPiArDQo+ID4gPiDCoCNlbmRpZiAvKiBfUlRFX0FUT01J Q19YODZfNjRfSF8gKi8NCj4gPiA+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2VhbC9jb21tb24v aW5jbHVkZS9nZW5lcmljL3J0ZV9hdG9taWMuaA0KPiA+ID4gYi9saWIvbGlicnRlX2VhbC9jb21t b24vaW5jbHVkZS9nZW5lcmljL3J0ZV9hdG9taWMuaA0KPiA+ID4gaW5kZXggYjk5YmE0Njg4Li44 ZDYxMmQ1NjYgMTAwNjQ0DQo+ID4gPiAtLS0gYS9saWIvbGlicnRlX2VhbC9jb21tb24vaW5jbHVk ZS9nZW5lcmljL3J0ZV9hdG9taWMuaA0KPiA+ID4gKysrIGIvbGliL2xpYnJ0ZV9lYWwvY29tbW9u L2luY2x1ZGUvZ2VuZXJpYy9ydGVfYXRvbWljLmgNCj4gPiA+IEBAIC0xNCw2ICsxNCw3IEBADQo+ ID4gPiANCj4gPiA+IMKgI2luY2x1ZGUgPHN0ZGludC5oPg0KPiA+ID4gwqAjaW5jbHVkZSA8cnRl X2NvbW1vbi5oPg0KPiA+ID4gKyNpbmNsdWRlIDxydGVfY29tcGF0Lmg+DQo+ID4gPiANCj4gPiA+ IMKgI2lmZGVmIF9fRE9YWUdFTl9fDQo+ID4gPiANCj4gPiA+IEBAIC0xMDgyLDQgKzEwODMsNjgg QEAgc3RhdGljIGlubGluZSB2b2lkDQo+ID4gPiBydGVfYXRvbWljNjRfY2xlYXIocnRlX2F0b21p YzY0X3QNCj4gPiA+ICp2KQ0KPiA+ID4gwqB9DQo+ID4gPiDCoCNlbmRpZg0KPiA+ID4gDQo+ID4g PiArLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gMTI4IGJpdCBhdG9taWMgb3BlcmF0aW9ucw0K PiA+ID4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ID4gLSovDQo+ID4gPiArDQo+ID4g PiArLyoqDQo+ID4gPiArICogMTI4LWJpdCBpbnRlZ2VyIHN0cnVjdHVyZS4NCj4gPiA+ICsgKi8N Cj4gPiA+ICt0eXBlZGVmIHN0cnVjdCB7DQo+ID4gPiArCXVpbnQ2NF90IHZhbFsyXTsNCj4gPiA+ ICt9IF9fcnRlX2FsaWduZWQoMTYpIHJ0ZV9pbnQxMjhfdDsNCj4gPiBTbyB3ZSBjYW4ndCB1c2Ug X19pbnQxMjg/DQo+ID4gDQo+IEknbGwgcHV0IGl0IGluIGEgdW5pb24gd2l0aCB2YWxbMl0sIGlu IGNhc2UgYW55IGltcGxlbWVudGF0aW9ucyB3YW50IHRvIHVzZQ0KPiBpdC4NClRoaW5raW5nIG9u IHRoaXMgb25lIG1vcmUgdGltZSwgc2luY2UgdGhlIGlubGluZSBhc20gZnVuY3Rpb25zIChlLmcu IGZvciB4ODZfNjQNCmNtcHhjaGcxNmIgYW5kIGZvciBBQXJjaDY0IExEWFAvU1RYUCkgYW55d2F5 IHdpbGwgdXNlIDY0LWJpdCByZWdpc3RlcnMsIGl0IG1ha2VzDQptb3N0IHNlbnNlIHRvIG1ha2Ug cnRlX2ludDEyOF90IGEgc3RydWN0IG9mIDJ4NjRiLiBUaGUgcXVlc3Rpb24gaXMgd2hldGhlciB0 bw0KdXNlIGFuIGFycmF5IGxpa2UgYWJvdmUgb3IgYSBzdHJ1Y3Qgd2l0aCB0d28gZWxlbWVudHMg KHdoaWNoIEkgbm9ybWFsbHkgZG8NCmludGVybmFsbHkpLiBDYW4geW91IGNvbXBhcmUgY29kZSBn ZW5lcmF0aW9uIHdpdGggdGhlIGZvbGxvd2luZyBkZWZpbml0aW9uPw0KdHlwZWRlZiBzdHJ1Y3Qg ew0KwqAgwqAgwqAgwqAgdWludDY0X3QgbG8sIGhpOw0KfSBfX3J0ZV9hbGlnbmVkKDE2KSBydGVf aW50MTI4X3Q7DQoNCj4gDQo+IFRoYW5rcywNCj4gR2FnZQ0KPiANCj4gW3NuaXBdDQotLSANCk9s YSBMaWxqZWRhaGwsIE5ldHdvcmtpbmcgU3lzdGVtIEFyY2hpdGVjdCwgQXJtDQpQaG9uZSArNDY3 MDY4NjYzNzMsIFNreXBlIG9sYS5saWxqZWRhaGwNCg0K