From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by smtp.lore.kernel.org (Postfix) with ESMTP id CB784C5CFC1 for ; Tue, 11 Aug 2026 11:10:40 +0000 (UTC) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id F083E40288; Tue, 11 Aug 2026 13:10:39 +0200 (CEST) Received: from dkmailrelay1.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id 035774027F for ; Tue, 11 Aug 2026 13:10:39 +0200 (CEST) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesys.local [192.168.4.10]) by dkmailrelay1.smartsharesystems.com (Postfix) with ESMTP id 8D00222827; Tue, 11 Aug 2026 13:10:37 +0200 (CEST) Content-class: urn:content-classes:message Subject: RE: [PATCH] eal/x86: optimize memcpy of small 64-byte blocks MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Date: Tue, 11 Aug 2026 13:10:35 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.5 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35F659D3@smartserver.smartshare.dk> In-Reply-To: <22720aafe5cf445787940bb319f7e90e@huawei.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [PATCH] eal/x86: optimize memcpy of small 64-byte blocks Thread-Index: AQHdJB42oNL4gJj070KJtRurBEIGmLaN+WoAgAAJXwCAAOt0oIAABRpAgAAL2ECAAB9NYIAAlEawgAAzoeCAAMFNUIAAEs8QgAe7bdCAAD6sMA== References: <20260804143305.1344327-1-mb@smartsharesystems.com> <20260804085210.74763eb5@phoenix.local> <98CBD80474FA8B44BF855DF32C47DC35F659B8@smartserver.smartshare.dk> <6f474724bc22441a8a4f516f3398ca76@huawei.com> <98CBD80474FA8B44BF855DF32C47DC35F659BD@smartserver.smartshare.dk> <3c7eea01416249e0aaeab0e8b6b4c157@huawei.com> <98CBD80474FA8B44BF855DF32C47DC35F659BF@smartserver.smartshare.dk> <3a96ca58a1e146758f5314202a04c3de@huawei.com> <98CBD80474FA8B44BF855DF32C47DC35F659C3@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC35F659C6@smartserver.smartshare.dk> <22720aafe5cf445787940bb319f7e90e@huawei.com> From: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Konstantin Ananyev" , "Stephen Hemminger" Cc: , "Bruce Richardson" X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org PiBGcm9tOiBLb25zdGFudGluIEFuYW55ZXYgW21haWx0bzprb25zdGFudGluLmFuYW55ZXZAaHVh d2VpLmNvbV0NCj4gU2VudDogVHVlc2RheSwgMTEgQXVndXN0IDIwMjYgMDkuMDYNCj4gDQo+IA0K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKwkvKiBDb21tb24gd2F5IGZvciBzbWFsbCBjb3B5IHNp emUgb2YgNjQtYnl0ZQ0KPiA+ID4gYmxvY2tzLg0KPiA+ID4gPiA+ID4gPiA+ID4gVW5saWtlbHks IHNvDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gY29uc3RhbnQgc2l6ZSBvbmx5ICovDQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiArCWlmIChfX3J0ZV9jb25zdGFudChuKSAmJiAobiAmIDYzKSA9PSAw ICYmIG4gPD0NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBSVEVfTUVNQ1BZX0JMT0NLXzY0X01BWCkg ew0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKwkJdm9pZCAqcmV0ID0gZHN0Ow0KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gTWF5YmUganVzdCBsZXQgY29tcGlsZXIgZGVjaWRlLCBpdCB3aWxsIGdlbmVyYXRlDQo+ IHZlY3Rvcg0KPiA+ID4gPiA+ID4gPiA+ID4gaW5zdHJ1Y3Rpb25zIGluDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gbW9zdCBjYXNlcy4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiA+ID4gPiA+IAlpZiAoX19ydGVfY29uc3RhbnQobikpDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g CQlyZXR1cm4gbWVtcGNweShkc3QsIHNyYywgbik7DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+ID4gPiA+IE1heWJlIGluIG1vc3QsIGJ1dCBub3QgaW4gYWxsOg0KPiA+ID4gPiA+ ID4gPiA+ID4gPiBodHRwczovL2dvZGJvbHQub3JnL3ovS3ZkS3FUNXJZDQo+ID4gPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gV2l0aCAnLW1hdngnIG9yICctbWF2eDUxMmYnIGl0IGxv b2tzIGxpa2UgaXQgZG9lcyBmb3INCj4geW91cg0KPiA+ID4gPiA+IHNhbXBsZQ0KPiA+ID4gPiA+ ID4gPiBjb2RlLg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gSXQgYWxzbyBkb2Vz IHdpdGggLW1zc2U0LjIgd2hlbiBTWiBpcyByZWR1Y2VkIHRvIDI1Ng0KPiBieXRlcy4NCj4gPiA+ ID4gPiA+ID4gPiBDbGFuZyBzd2l0Y2hlcyB0byBpbmxpbmUgd2hlbiBTWiBpcyByZWR1Y2VkIHRv IDEyOCBieXRlcy4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IEl0IHNlZW1zIHRo ZSBjb21waWxlciBoYXMgYSB0aHJlc2hvbGQgZm9yIHdoZW4gdG8gaW5saW5lDQo+IGFuZA0KPiA+ ID4gd2hlbg0KPiA+ID4gPiA+IHRvDQo+ID4gPiA+ID4gPiA+IGNhbGwgdGhlIEMNCj4gPiA+ID4g PiA+ID4gPiBsaWJyYXJ5J3MgbWVtY3B5IHN1YnJvdXRpbmUuDQo+ID4gPiA+ID4gPiA+ID4gVGhl IHRocmVzaG9sZCBkZXBlbmRzIG9uIGJvdGggY29weSBzaXplIGFuZCB2ZWN0b3INCj4gcmVnaXN0 ZXINCj4gPiA+IHNpemUuDQo+ID4gPiA+ID4gPiA+ID4gQW5kIGl0IGlzIGNvbXBpbGVyIGRlcGVu ZGVudC4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gSSB0aGluayB0aGVyZSBhcmUgY29t cGlsZXIgb3B0aW9ucyB0byBzcGVjaWZ5IGRlc2lyZWQNCj4gdGhyZXNob2xkDQo+ID4gPiA+ID4g dmFsdWVzLg0KPiA+ID4gPiA+ID4gPiBMZXQgc2F5IGZvciBnY2MgdGhlcmUgaXMgICcgLW1tZW1j cHktc3RyYXRlZ3k9c3RyYXRlZ3knLg0KPiA+ID4gPiA+ID4gPiBGb3IgdGhhdCBleGFtcGxlIGlu IHRoYXQgcGFydGljdWxhciBjYXNlDQo+ID4gPiA+ID4gPiA+IC1tbWVtY3B5LXN0cmF0ZWd5PXZl Y3Rvcl9sb29wOjUxMjphbGlnbixsb29wOi0xOmFsaWduDQo+ID4gPiA+ID4gPiA+IGdlbmVyYXRl cyBzc2UgbG9hZHMvc3RvcmVzLg0KPiA+ID4gPiA+ID4gPiBNaWdodCBiZSB3ZSBjYW4gZXhwbG9p dCBpdCBzb21laG93Pw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IFRoYXQgY291bGQgZ2l2ZSB1 cyBoaWdoZXIgZ3JhbnVsYXJpdHkvY29udHJvbCBvdmVyIG1lbWNweSBmb3INCj4gPiA+ID4gPiBp bmRpdmlkdWFsDQo+ID4gPiA+ID4gPiBtZW1jcHkgaW5zdGFuY2VzOyBtaWdodCBiZSB1c2VmdWwg Zm9yIGhvdCBjb2RlIHBhdGhzIHdoZXJlIHdlDQo+ID4gPiBoYXZlDQo+ID4gPiA+ID4gbW9yZQ0K PiA+ID4gPiA+ID4ga25vd2xlZGdlIGFib3V0IHRoZSBjb3B5IG9wZXJhdGlvbiB0aGFuIHRoZSBj b21waWxlciBjYW4NCj4gaW5mZXIuDQo+ID4gPiA+ID4gPiBIb3dldmVyLCBwcmFnbWFzIGFyZSBk aXNjb3VyYWdlZCBpbiBEUERLLCBhbmQgdGhpcyBsb29rcyBsaWtlDQo+IGENCj4gPiA+IHZlcnkN Cj4gPiA+ID4gPiBzaW1pbGFyDQo+ID4gPiA+ID4gPiBwYXRoLg0KPiA+ID4gPiA+DQo+ID4gPiA+ ID4gV2VsbCwgcmlnaHQgbm93ICBydGVfbWVtY3B5LmggaXMgNzAwKyBsaW5lcyBhbmQga2VlcHMg Z3Jvd2luZy4NCj4gPiA+ID4gPiBDb25zaWRlcmluZyB0aGF0IHByb2JhYmx5IHByYWdtYXMgYXJl IG5vdCB0aGF0IGJhZC4NCj4gPiA+ID4gPiBPZiBjb3Vyc2UsIHByYWdtYXMgaGF2ZSB0aGVpciBv d24gaXNzdWVzIGFuZCBpdCBpcyBoYXJkIHRvDQo+IGVuc3VyZQ0KPiA+ID4gdGhhdA0KPiA+ID4g PiA+IHRoZXkgd2lsbCBwcm9kdWNlIHNhbWUgY29kZSBiZXR3ZWVuIGRpZmZlcmVudA0KPiBjb21w aWxlcnMvdmVyc2lvbnMsDQo+ID4gPiBldGMuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gSSBh bSBub3QgcmVhbGx5IGhhcHB5IHRoYXQgb3VyIGhvbWUtYnJld2VkIG1lbWNweSBjb2RlLQ0KPiBi bG9jaw0KPiA+ID4ga2VlcHMNCj4gPiA+ID4gPiA+ID4gZ3Jvd2luZywNCj4gPiA+ID4gPiA+ID4g d2hpbGUgd2Uga2VlcCB0YWxraW5nIHRoYXQgaXQgd291bGQgYmUgZ29vZCB0byBlbGltaW5hdGUg aXQNCj4gPiA+ID4gPiBjb21wbGV0ZWx5Lg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEkgYWdy ZWUgaW4gcHJpbmNpcGxlLg0KPiA+ID4gPiA+ID4gSG93ZXZlciwgdGhpcyBydGVfbWVtY3B5KCkg b3B0aW1pemF0aW9uIGlzIGZvciB0aGUNCj4gcGlsZS9tZW1wb29sDQo+ID4gPiA+ID4gb3B0aW1p emF0aW9ucw0KPiA+ID4gPiA+ID4gSSdtIHdvcmtpbmcgb24sIHNvIHRoZXJlIGlzIGEgc3BlY2lm aWMgdXNlIGNhc2UgbW90aXZhdGluZw0KPiB0aGUNCj4gPiA+IGFkZGVkDQo+ID4gPiA+ID4gY29k ZS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEkgdW5kZXJzdGFuZCB0aGF0IHlvdSBwcm9iYWJseSBo YXZlIHNvbWUgc3BlY2lmaWMgdXNlLWNhc2UgaW4NCj4gbWluZC4NCj4gPiA+ID4gPiBCVFcgZm9y IHRoaXMgb3B0aW1pemF0aW9uIHlvdSBtZW50aW9uZWQgYWJvdmU6IHdoYXQgaXMgdGhlIGdhaW4N Cj4gPiA+IHdpdGgNCj4gPiA+ID4gPiB0aGVzZSBjaGFuZ2VzPw0KPiA+ID4gPg0KPiA+ID4gPiBJ TU8sIHRoZSBwcmltYXJ5IGJlbmVmaXQgaXMgdGhlIG11Y2ggc2ltcGxlciAoYW5kIHNtYWxsZXIp DQo+IGFzc2VtYmx5DQo+ID4gPiBvdXRwdXQgZHVlDQo+ID4gPiA+IHRvIGF2b2lkaW5nIHRoZSBh ZGRyZXNzIGFsaWdubWVudCBjaGVjayAoYW5kIHRoZSByZXN1bHRpbmcNCj4gZHVwbGljYXRlZA0K PiA+ID4gY29kZSkuDQo+ID4gPg0KPiA+ID4gSSB0aGluayB0aGF0IHNob3VsZCBiZSBtZWFzdXJh YmxlIHRvbzogd2hvbGUgYmluYXJ5ICBhbmQvb3IgaG90DQo+IHBhdGgNCj4gPiA+IGZ1bmN0aW9u IHNpemUgcmVkdWN0aW9uLCBldGMuDQo+ID4NCj4gPiBUaGUgc2l6ZSBvZiB0aGUgZ2VuZXJhdGVk IGNvZGUgZm9yIHRoZSBjb3B5IG9wZXJhdGlvbiBpcyByZWR1Y2VkIHRvDQo+IHNsaWdodGx5IGxl c3MNCj4gPiB0aGFuIGhhbGYgKG9ubHkgb25lIGluc3RhbmNlIG9mIHRoZSBjb3B5IG9wZXJhdGlv biBpbnN0ZWFkIG9mIHR3bywNCj4gYW5kIHRoZQ0KPiA+IGFkZHJlc3MgYWxpZ25tZW50IGNvbXBh cmlzb24gaXMgb21pdHRlZCkuDQo+ID4NCj4gPiA+DQo+ID4gPiA+IEkgaGF2ZW4ndCBtZWFzdXJl ZCB0aGUgcGVyZm9ybWFuY2UgZ2Fpbi4NCj4gPiA+ID4gQmFzZWQgb24gdGhlIHBlcmYgZ2FpbiBp biBhIHByZXZpb3VzIG1lbXBvb2wgb3B0aW1pemF0aW9uIHBhdGNoDQo+IFsxXSwNCj4gPiA+IGl0 IHNlZW1zDQo+ID4gPiA+IGF2b2lkaW5nIHRoZSBhZGRyZXNzIGFsaWdubWVudCBjaGVjayBzaGF2 ZXMgfjIgY3ljbGVzIG9mZiB0aGUNCj4gY29weQ0KPiA+ID4gb3BlcmF0aW9uIChmb3INCj4gPiA+ ID4gY2FjaGUtdG8tY2FjaGUgY29weSkuDQo+ID4gPiA+IEkgZXhwZWN0IHRoYXQgdGhlIHNhbWUg Z2FpbiAoZnJvbSBhdm9pZGluZyB0aGUgYWRkcmVzcyBhbGlnbm1lbnQNCj4gPiA+IGNoZWNrKSBh cHBsaWVzDQo+ID4gPiA+IGhlcmUuDQo+ID4gPg0KPiA+ID4gT2ssIHRoZW4gSSBzdWdnZXN0IHdl IGRvIHNvbWUgbWVhc3VyZW1lbnRzIGZpcnN0LCBiZWZvcmUgZ29pbmcNCj4gZm9yd2FyZA0KPiA+ ID4gd2l0aCBpdC4NCj4gPg0KPiA+IEkgdHJpZWQgbWVtY3B5X3BlcmZfYXV0b3Rlc3QsIGJ1dCB0 aGUgYnJhbmNoIHByZWRpY3RvciBraWNrcyBpbiBhbmQNCj4gZWxpbWluYXRlcw0KPiA+IHRoZSBj b3N0IG9mIHRoZSBhZGRyZXNzIGFsaWdubWVudCBjb21wYXJpc29uLiBTbyB0aGUgcmVzdWx0cyBh cmUgdmVyeQ0KPiBzaW1pbGFyLg0KPiANCj4gSW5kZWVkLCB0aGV5IGFyZSB0aGUgc2FtZS4NCj4g DQo+ID4gQlRXLCB0aGF0J3MgYSBnZW5lcmFsIGlzc3VlIHdpdGggb3VyIHBlcmYgdGVzdHM6IFJl cGVhdGVkIHRlc3RpbmcNCj4gZG9lc24ndCBzaG93DQo+ID4gdGhlIGNvc3Qgb2YgYnJhbmNoZXMs IGJlY2F1c2UgdGhleSBhcmUgYWx3YXlzIGVsaW1pbmF0ZWQgYnkgdGhlDQo+IGJyYW5jaA0KPiA+ IHByZWRpY3Rvci4NCj4gDQo+IE1pZ2h0IGJlLi4uDQo+IEJ1dCB3ZSBkbyBuZWVkIHNvbWUgbWVh c3VyYWJsZSBldmlkZW5jZSB0aGF0IHN1Y2ggY2hhbmdlIGltcHJvdmUNCj4gdGhpbmdzLA0KPiBv dGhlcndpc2UgLSB3aHkgdG8gYm90aGVyPw0KPiBJZiB0aGF0IHBlcmYgdGVzdCBpcyBub3QgZ29v ZiBlbm91Z2ggLSBsZXQncyB0cnkgdG8gZXh0ZW5kIGl0IG9yIHVzZQ0KPiBkaWZmZXJlbnQgb25l Lg0KPiBCVFcsIGluIHlvdXIgbWVtcG9vbCBwaWxlIFJGQywgSSBzZWUgeW91IGFsc28gdXNlIHJ0 ZV9tZW1jcHkgb3ZlciBmaXhlZA0KPiBzaXplZCBidWZmZXJzLg0KPiBEbyB5b3Ugc2VlIGFueSBp bXByb3ZlbWVudCB0aGVyZSAod2l0L3dpdGhvdXQgcnRlX21lbWNweSBvcHRpbWl4YXRpb24pPw0K DQpMb29raW5nIGF0IHRoZSBnZW5lcmF0ZWQgYXNzZW1ibHkgKG9iamR1bXAgLVMgYnVpbGQvZHJp dmVycy9saWJydGVfbWVtcG9vbF9zdGFjay5zbykuLi4NCg0KVGhpcyBpcyB0aGUgb3B0aW1pemVk IGNvcHkgbG9vcCBpbiBwaWxlX2RlcXVldWU6DQoNCiAgICAxNjUwOgk4OSBjYSAgICAgICAgICAg ICAgICAJbW92ICAgICVlY3gsJWVkeA0KICAgIDE2NTI6CWM1IGZlIDZmIDQwIDQwICAgICAgIAl2 bW92ZHF1IDB4NDAoJXJheCksJXltbTANCiAgICAxNjU3OglmZiBjMSAgICAgICAgICAgICAgICAJ aW5jICAgICVlY3gNCiAgICAxNjU5OgljMSBlMiAwNSAgICAgICAgICAgICAJc2hsICAgICQweDUs JWVkeA0KICAgIDE2NWM6CTQ5IDhkIDE0IGQ0ICAgICAgICAgIAlsZWEgICAgKCVyMTIsJXJkeCw4 KSwlcmR4DQogICAgMTY2MDoJYzUgZmUgN2YgMDIgICAgICAgICAgCXZtb3ZkcXUgJXltbTAsKCVy ZHgpDQogICAgMTY2NDoJYzUgZmUgNmYgNDggNjAgICAgICAgCXZtb3ZkcXUgMHg2MCglcmF4KSwl eW1tMQ0KICAgIDE2Njk6CWM1IGZlIDdmIDRhIDIwICAgICAgIAl2bW92ZHF1ICV5bW0xLDB4MjAo JXJkeCkNCiAgICAxNjZlOgljNSBmZSA2ZiA5MCA4MCAwMCAwMCAJdm1vdmRxdSAweDgwKCVyYXgp LCV5bW0yDQogICAgMTY3NToJMDAgDQogICAgMTY3NjoJYzUgZmUgN2YgNTIgNDAgICAgICAgCXZt b3ZkcXUgJXltbTIsMHg0MCglcmR4KQ0KICAgIDE2N2I6CWM1IGZlIDZmIDk4IGEwIDAwIDAwIAl2 bW92ZHF1IDB4YTAoJXJheCksJXltbTMNCiAgICAxNjgyOgkwMCANCiAgICAxNjgzOgljNSBmZSA3 ZiA1YSA2MCAgICAgICAJdm1vdmRxdSAleW1tMywweDYwKCVyZHgpDQogICAgMTY4ODoJYzUgZmUg NmYgYTAgYzAgMDAgMDAgCXZtb3ZkcXUgMHhjMCglcmF4KSwleW1tNA0KICAgIDE2OGY6CTAwIA0K ICAgIDE2OTA6CWM1IGZlIDdmIGEyIDgwIDAwIDAwIAl2bW92ZHF1ICV5bW00LDB4ODAoJXJkeCkN CiAgICAxNjk3OgkwMCANCiAgICAxNjk4OgljNSBmZSA2ZiBhOCBlMCAwMCAwMCAJdm1vdmRxdSAw eGUwKCVyYXgpLCV5bW01DQogICAgMTY5ZjoJMDAgDQogICAgMTZhMDoJYzUgZmUgN2YgYWEgYTAg MDAgMDAgCXZtb3ZkcXUgJXltbTUsMHhhMCglcmR4KQ0KICAgIDE2YTc6CTAwIA0KICAgIDE2YTg6 CWM1IGZlIDZmIGIwIDAwIDAxIDAwIAl2bW92ZHF1IDB4MTAwKCVyYXgpLCV5bW02DQogICAgMTZh ZjoJMDAgDQogICAgMTZiMDoJYzUgZmUgN2YgYjIgYzAgMDAgMDAgCXZtb3ZkcXUgJXltbTYsMHhj MCglcmR4KQ0KICAgIDE2Yjc6CTAwIA0KICAgIDE2Yjg6CWM1IGZlIDZmIGI4IDIwIDAxIDAwIAl2 bW92ZHF1IDB4MTIwKCVyYXgpLCV5bW03DQogICAgMTZiZjoJMDAgDQogICAgMTZjMDoJYzUgZmUg N2YgYmEgZTAgMDAgMDAgCXZtb3ZkcXUgJXltbTcsMHhlMCglcmR4KQ0KICAgIDE2Yzc6CTAwIA0K ICAgIDE2Yzg6CTQ4IDhiIDQwIDA4ICAgICAgICAgIAltb3YgICAgMHg4KCVyYXgpLCVyYXgNCiAg ICAxNmNjOgkzOSBmMSAgICAgICAgICAgICAgICAJY21wICAgICVlc2ksJWVjeA0KICAgIDE2Y2U6 CTc1IDgwICAgICAgICAgICAgICAgIAlqbmUgICAgMTY1MCA8cGlsZV9kZXF1ZXVlKzB4ZTA+DQog ICAgMTZkMDoNCg0KVGhpcyBpcyB3aXRob3V0IHRoZSBydGVfbWVtY3B5IG9wdGltaXphdGlvbjoN Cg0KICAgIDE2NTA6CTg5IGNhICAgICAgICAgICAgICAgIAltb3YgICAgJWVjeCwlZWR4DQogICAg MTY1MjoJYzUgZmUgNmYgNDAgNDAgICAgICAgCXZtb3ZkcXUgMHg0MCglcmF4KSwleW1tMA0KICAg IDE2NTc6CTQ5IDg5IGMxICAgICAgICAgICAgIAltb3YgICAgJXJheCwlcjkNCiAgICAxNjVhOglm ZiBjMSAgICAgICAgICAgICAgICAJaW5jICAgICVlY3gNCiAgICAxNjVjOgljMSBlMiAwNSAgICAg ICAgICAgICAJc2hsICAgICQweDUsJWVkeA0KICAgIDE2NWY6CTQ5IDhkIDE0IGQ0ICAgICAgICAg IAlsZWEgICAgKCVyMTIsJXJkeCw4KSwlcmR4DQogICAgMTY2MzoJYzUgZmUgN2YgMDIgICAgICAg ICAgCXZtb3ZkcXUgJXltbTAsKCVyZHgpDQogICAgMTY2NzoJYzUgZmUgNmYgNDggNjAgICAgICAg CXZtb3ZkcXUgMHg2MCglcmF4KSwleW1tMQ0KICAgIDE2NmM6CTQ5IDA5IGQxICAgICAgICAgICAg IAlvciAgICAgJXJkeCwlcjkNCiAgICAxNjZmOgk0MSA4MyBlMSAxZiAgICAgICAgICAJYW5kICAg ICQweDFmLCVyOWQNCiAgICAxNjczOgljNSBmZSA3ZiA0YSAyMCAgICAgICAJdm1vdmRxdSAleW1t MSwweDIwKCVyZHgpDQogICAgMTY3ODoJYzUgZmUgNmYgOTAgODAgMDAgMDAgCXZtb3ZkcXUgMHg4 MCglcmF4KSwleW1tMg0KICAgIDE2N2Y6CTAwIA0KICAgIDE2ODA6CWM1IGZlIDdmIDUyIDQwICAg ICAgIAl2bW92ZHF1ICV5bW0yLDB4NDAoJXJkeCkNCiAgICAxNjg1OgljNSBmZSA2ZiA5OCBhMCAw MCAwMCAJdm1vdmRxdSAweGEwKCVyYXgpLCV5bW0zDQogICAgMTY4YzoJMDAgDQogICAgMTY4ZDoJ YzUgZmUgN2YgNWEgNjAgICAgICAgCXZtb3ZkcXUgJXltbTMsMHg2MCglcmR4KQ0KICAgIDE2OTI6 CWM1IGZlIDZmIGEwIGMwIDAwIDAwIAl2bW92ZHF1IDB4YzAoJXJheCksJXltbTQNCiAgICAxNjk5 OgkwMCANCiAgICAxNjlhOgljNSBmZSA3ZiBhMiA4MCAwMCAwMCAJdm1vdmRxdSAleW1tNCwweDgw KCVyZHgpDQogICAgMTZhMToJMDAgDQogICAgMTZhMjoJYzUgZmUgNmYgYTggZTAgMDAgMDAgCXZt b3ZkcXUgMHhlMCglcmF4KSwleW1tNQ0KICAgIDE2YTk6CTAwIA0KICAgIDE2YWE6CWM1IGZlIDdm IGFhIGEwIDAwIDAwIAl2bW92ZHF1ICV5bW01LDB4YTAoJXJkeCkNCiAgICAxNmIxOgkwMCANCiAg ICAxNmIyOgljNSBmZSA2ZiBiMCAwMCAwMSAwMCAJdm1vdmRxdSAweDEwMCglcmF4KSwleW1tNg0K ICAgIDE2Yjk6CTAwIA0KICAgIDE2YmE6CWM1IGZlIDdmIGIyIGMwIDAwIDAwIAl2bW92ZHF1ICV5 bW02LDB4YzAoJXJkeCkNCiAgICAxNmMxOgkwMCANCiAgICAxNmMyOgljNSBmZSA2ZiBiOCAyMCAw MSAwMCAJdm1vdmRxdSAweDEyMCglcmF4KSwleW1tNw0KICAgIDE2Yzk6CTAwIA0KICAgIDE2Y2E6 CWM1IGZlIDdmIGJhIGUwIDAwIDAwIAl2bW92ZHF1ICV5bW03LDB4ZTAoJXJkeCkNCiAgICAxNmQx OgkwMCANCiAgICAxNmQyOgk0OCA4YiA0MCAwOCAgICAgICAgICAJbW92ICAgIDB4OCglcmF4KSwl cmF4DQogICAgMTZkNjoJMGYgODUgYzQgMDAgMDAgMDAgICAgCWpuZSAgICAxN2EwIDxwaWxlX2Rl cXVldWUrMHgyMzA+DQogICAgMTZkYzoJMzkgY2UgICAgICAgICAgICAgICAgCWNtcCAgICAlZWN4 LCVlc2kNCiAgICAxNmRlOgkwZiA4NSA2YyBmZiBmZiBmZiAgICAJam5lICAgIDE2NTAgPHBpbGVf ZGVxdWV1ZSsweGUwPg0KICAgIDE2ZTQ6DQogICAgWy4uLl0NCiAgICAxN2EwOgkzOSBmMSAgICAg ICAgICAgICAgICAJY21wICAgICVlc2ksJWVjeA0KICAgIDE3YTI6CTBmIDg1IGE4IGZlIGZmIGZm ICAgIAlqbmUgICAgMTY1MCA8cGlsZV9kZXF1ZXVlKzB4ZTA+DQogICAgMTdhODoJZTkgMzcgZmYg ZmYgZmYgICAgICAgCWptcCAgICAxNmU0IDxwaWxlX2RlcXVldWUrMHgxNzQ+DQoNCkhlcmUsIHRo ZSBhbGlnbm1lbnQgY29tcGFyaXNvbiBJIGhhdmUgb3B0aW1pemVkIGF3YXkgaXMgcGVyZm9ybWVk IHVzaW5nIHJlZ2lzdGVyICVyOS4NCg0KV2l0aCB0aGUgb3B0aW1pemF0aW9uLCB0aGUgZ2VuZXJh dGVkIGFzc2VtYmx5IGlzIGxlc3MgY2x1dHRlcmVkLCBhbmQgdGh1cyBlYXNpZXIgdG8gcmV2aWV3 Lg0KKEl0IHNlZW1zIHRoZSBjb21waWxlciBpcyBjbGV2ZXIgZW5vdWdoIHRvIG5vdCBkdXBsaWNh dGUgdGhlIHR3byBpbnN0YW5jZXMgb2YgdGhlIGNvZGUsIGJ1dCByZXVzZSB0aGUgYWxpZ25lZCBp bnN0YW5jZSBmb3IgdGhlIHVuYWxpZ25lZCBjYXNlIHRvby4gU28gdGhlIHJlZHVjdGlvbiBpbiBj b2RlIHNpemUgaXMgbm90IGFzIGdyZWF0IGFzIEkgcHJldmlvdXNseSBjbGFpbWVkLikNCg0KSSBh Z3JlZSB0aGUgcGVyZm9ybWFuY2UgYmVuZWZpdCBpbiBDUFUgY3ljbGVzIGlzIHByb2JhYmx5IGlu c2lnbmlmaWNhbnQuDQpCdXQgdGhlIGdlbmVyYXRlZCBhc3NlbWJseSBpcyBjbGVhbmVyLg0KQW5k IGlmIHByZXNzdXJlZCBmb3IgQ1BVIHJlZ2lzdGVycywgdGhlIG9wdGltaXphdGlvbiBhbHNvIGZy ZWVzIHVwIG9uZSBDUFUgcmVnaXN0ZXIgZm9yIG90aGVyIHB1cnBvc2VzLg0KDQpDb2RlIHNpemUg cmVkdWN0aW9uOg0KVGhlIG9wdGltaXplZCBsb29wIGlzIDB4ODAgYnl0ZXMgb2YgaW5zdHJ1Y3Rp b25zLg0KVGhlIG5vbi1vcHRpbWl6ZWQgaXMgMHg4ZSBieXRlcywgMTQgYnl0ZXMgbW9yZSwgaW4g dGhlIGxvb3AsIHBsdXMgMTMgYnl0ZXMgb3V0c2lkZSB0aGUgbG9vcC4NCg0KPiANCj4gPiA9PT09 PT09ID09PT09PT09PT09PT09PT09ID09PT09PT09PT09PT09PT09ID09PT09PT09PT09PT09PT09 DQo+ID4gPT09PT09PT09PT09PT09PT0NCj4gPiAgICBTaXplICAgQ2FjaGUgdG8gY2FjaGUgICAg IENhY2hlIHRvIG1lbSAgICAgIE1lbSB0byBjYWNoZQ0KPiBNZW0gdG8gbWVtDQo+ID4gKGJ5dGVz KSAgICAgICAgICAodGlja3MpICAgICAgICAgICh0aWNrcykgICAgICAgICAgICh0aWNrcykNCj4g KHRpY2tzKQ0KPiA+IC0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0g LS0tLS0tLS0tLS0tLS0tLS0gLS0tLS0tLQ0KPiAtLS0tLS0tLS0tDQo+ID4gPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09IDMyQiBhbGlnbmVkDQo+ID4gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09DQo+ID4gQmVmb3JlDQo+ID4gQyAgICA2NCAgMiAtICAyKCAgOS42MCUp ICAyMiAtIDIxKCAgNC40OCUpICAzMyAtIDMxKCAgNS4xNSUpICA1NyAtDQo+IDU2KCAgMC4yOCUp DQo+ID4gQyAgIDEyOCAgNCAtICA0KCAgNS41NiUpICA0MSAtIDQwKCAgMy41OSUpICA1MyAtIDUy KCAgMS40OSUpIDEwMSAtDQo+IDEwMCggIDAuNzElKQ0KPiA+IEMgICAxOTIgIDYgLSAgNiggIDQu MDYlKSAgNjQgLSA2MCggIDUuNjElKSAgNjggLSA2OSggLTEuNjglKSAxMzYgLQ0KPiAxMzgoIC0x LjQ5JSkNCj4gPiBDICAgMjU2IDEwIC0gIDkoICA1LjIxJSkgIDgyIC0gODEoICAxLjIwJSkgIDkz IC0gODcoICA3LjQ3JSkgMTcyIC0NCj4gMTc1KCAtMS40NiUpDQo+ID4gQWZ0ZXINCj4gPiBDICAg IDY0ICAyIC0gIDIoIC0wLjcxJSkgIDIyIC0gMjEoICA3LjYyJSkgIDMxIC0gMzAoICA0LjMyJSkg IDU3IC0NCj4gNTkoIC0zLjAzJSkNCj4gPiBDICAgMTI4ICA0IC0gIDQoIC0wLjM0JSkgIDQwIC0g NDAoICAwLjYwJSkgIDUwIC0gNTAoICAwLjQxJSkgIDk3IC0NCj4gOTkoIC0xLjk2JSkNCj4gPiBD ICAgMTkyICA2IC0gIDYoICA1LjI3JSkgIDU5IC0gNTkoIC0wLjI3JSkgIDY5IC0gNzIoIC00LjQy JSkgMTM5IC0NCj4gMTM4KCAgMC45MCUpDQo+ID4gQyAgIDI1NiAgOSAtICA5KCAgOS4xNCUpICA3 NyAtIDc3KCAgMC4yNSUpICA4OSAtIDkwKCAtMC44OCUpIDE4MCAtDQo+IDE3NyggIDEuNTclKQ0K PiA+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gVW5hbGlnbmVkDQo+ID4gPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA+IEJlZm9yZQ0KPiA+IEMgICAgNjQg IDUgLSAgNSggIDAuOTglKSAgMzIgLSAzMiggIDAuNzIlKSAgNDIgLSA0MiggIDAuNDQlKSAgODIg LQ0KPiA4MiggIDAuNTElKQ0KPiA+IEMgICAxMjggIDggLSAgOSgtMTEuMjYlKSAgNTEgLSA1MCgg IDAuNTMlKSAgNjAgLSA1OSggIDAuODklKSAxMTcgLQ0KPiAxMTUoICAxLjM3JSkNCj4gPiBDICAg MTkyIDEzIC0gMTIoICAxLjYyJSkgIDY2IC0gNjcoIC0xLjEyJSkgIDgzIC0gODAoICAzLjI2JSkg MTU3IC0NCj4gMTY1KCAtNS4yNSUpDQo+ID4gQyAgIDI1NiAyMSAtIDIyKCAtNS43OCUpICA5NCAt IDkzKCAgMS42NSUpIDEwMCAtIDk5KCAgMS41MiUpIDIwMiAtDQo+IDIwNCggLTEuMzQlKQ0KPiA+ IEFmdGVyDQo+ID4gQyAgICA2NCAgNSAtICA1KCAgMC4wNSUpICAzMSAtIDMxKCAgMC4xNiUpICA0 MCAtIDM5KCAgMS4zNyUpICA3NyAtDQo+IDc3KCAtMC45MyUpDQo+ID4gQyAgIDEyOCAgOSAtICA5 KCAtMC42OSUpICA1MCAtIDUwKCAtMC4wMiUpICA2MSAtIDYwKCAgMi43MSUpIDExOCAtDQo+IDEy MiggLTMuMTUlKQ0KPiA+IEMgICAxOTIgMTIgLSAxMSggIDcuNjglKSAgNjggLSA2NiggIDMuNjQl KSAgNzkgLSA4MSggLTIuODUlKSAxNjQgLQ0KPiAxNjQoIC0wLjEyJSkNCj4gPiBDICAgMjU2IDIx IC0gMjAoICAxLjgwJSkgIDkwIC0gODcoICAyLjcwJSkgIDk2IC0gOTcoIC0wLjk5JSkgMjAyIC0N Cj4gMjAxKCAgMC4wOSUpDQo+ID4NCj4gPiA+DQo+ID4gPiA+IFsxXToNCj4gPiA+DQo+IGh0dHBz Oi8vcGF0Y2h3b3JrLmRwZGsub3JnL3Byb2plY3QvZHBkay9wYXRjaC8yMDI2MDUyMTE4NTYzMS4x MTYwNDYtMS0NCj4gPiA+ID4gbWJAc21hcnRzaGFyZXN5c3RlbXMuY29tLw0KDQo=