From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id 134C11F5 for ; Tue, 29 Aug 2017 03:51:55 +0200 (CEST) Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Aug 2017 18:51:53 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.41,443,1498546800"; d="scan'208";a="144958193" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by fmsmga005.fm.intel.com with ESMTP; 28 Aug 2017 18:51:53 -0700 Received: from FMSMSX110.amr.corp.intel.com (10.18.116.10) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 28 Aug 2017 18:51:53 -0700 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by fmsmsx110.amr.corp.intel.com (10.18.116.10) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 28 Aug 2017 18:51:53 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.39]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.93]) with mapi id 14.03.0319.002; Tue, 29 Aug 2017 09:51:16 +0800 From: "Hu, Jiayu" To: Wisam Monther CC: "users@dpdk.org" , Raslan Darawsheh , Shahaf Shuler Thread-Topic: Unable to merge packets using GRO feature Thread-Index: AdMaTiF+8CYSsq4aQZ+8LenCiQpxYQAD6neAADXVIAAABK9KMAAAd2TQAFQNtLAAAYcosADMAwaAACXOZZA= Date: Tue, 29 Aug 2017 01:51:15 +0000 Message-ID: References: <20170821091347.GA94297@dpdk15.sh.intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYzEyYTAyYmUtNzhlNi00Mjg1LTlkYzYtMDFlNWRmMzM1YWQ1IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE2LjUuOS4zIiwiVHJ1c3RlZExhYmVsSGFzaCI6Ink1RStGQ3JwVFFVMGV0ZVRMblpNdUtvWXBsbGJrdkQzRVZXZXhDQ25pVFE9In0= x-ctpclassification: CTP_IC x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-users] Unable to merge packets using GRO feature X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Aug 2017 01:51:56 -0000 SGkgV2lzYW0sDQoNCkluIHRoZSBwaWN0dXJlIG9mIHlvdXIgZXhwZXJpbWVudCB0b3BvbG9neSwg SSBndWVzcyBOSUMgQiBpbiB0aGUgbWFjaGluZSBCIGlzIGNvbm5lY3RlZA0Kd2l0aCBhbm90aGVy IGludGVyZmFjZSBwaHlzaWNhbGx5LiBJZiBzbywgdGhlIHBhY2tldHMgdGhhdCB0Y3BkdW1wIGNh cHR1cmVzIGFyZSBmcm9tIHRoZQ0KcGh5c2ljYWwgbGluay4gSG93ZXZlciwgcGFja2V0cyBhZnRl ciBHUk9lZCBhcmUgbXVsdGktc2VnbWVudCBsYXJnZSBwYWNrZXRzLCB3aGljaA0KYXJlIGxhcmdl ciB0aGFuIE1UVS4gSSBhbSBub3Qgc3VyZSBpZiB5b3UgaGF2ZSBtYWtlIG90aGVyIGNvbmZpZ3Vy YXRpb25zIHRvIGVuYWJsZQ0KdGhlc2UgbGFyZ2UgcGFja2V0cyB0byBwYXNzIHRoZSBwaHlzaWNh bCBsaW5rLCBhbmQgdGhlcmUgaXMganVtYm8gZnJhbWUgc2l6ZSBsaW1pdCBmb3IgZGlmZmVyZW50 DQpOSUNzLiBTbyB3b3VsZCB5b3UgcGxlYXNlIHRvIGNoZWNrIHRoaXM/IEJUVywgeW91IGNhbiB1 c2UgdGhlIFZNIHRvIHRlc3QgdGhpcyBHUk8gZmVhdHVyZSwNCnNpbmNlIGxhcmdlIHBhY2tldHMg Y2FuIGFsd2F5cyBwYXNzIHRvIHRoZSBWTS4NCg0KVGhhbmtzLA0KSmlheXUNCg0KPiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBXaXNhbSBNb250aGVyIFttYWlsdG86d2lzYW1t QG1lbGxhbm94LmNvbV0NCj4gU2VudDogTW9uZGF5LCBBdWd1c3QgMjgsIDIwMTcgMzozNyBQTQ0K PiBUbzogSHUsIEppYXl1IDxqaWF5dS5odUBpbnRlbC5jb20+DQo+IENjOiB1c2Vyc0BkcGRrLm9y ZzsgUmFzbGFuIERhcmF3c2hlaCA8cmFzbGFuZEBtZWxsYW5veC5jb20+OyBTaGFoYWYNCj4gU2h1 bGVyIDxzaGFoYWZzQG1lbGxhbm94LmNvbT4NCj4gU3ViamVjdDogUkU6IFVuYWJsZSB0byBtZXJn ZSBwYWNrZXRzIHVzaW5nIEdSTyBmZWF0dXJlDQo+IA0KPiBIaSBKaWF5dSwNCj4gDQo+IEknbSBz b3JyeSBmb3IgYm90aGVyaW5nIHlvdSwgYnV0IGNvdWxkIHlvdSBjb25mb3JtIHRoYXQgdGhlIGZl YXR1cmUgaXMNCj4gd29ya2luZyBwcm9iYWJseQ0KPiBCZWNhdXNlLCB3aGF0IEkgZXZlciAgZGlk LCBJIGNvdWxkbid0IGdldCB0aGUgbWVyZ2VkIHBhY2tldHMuDQo+IA0KPiBCUnMsDQo+IFdpc2Ft IEphZGRvDQo+IA0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBXaXNhbSBN b250aGVyDQo+IFNlbnQ6IFRodXJzZGF5LCBBdWd1c3QgMjQsIDIwMTcgOToxNSBBTQ0KPiBUbzog J0h1LCBKaWF5dScNCj4gQ2M6IHVzZXJzQGRwZGsub3JnOyBSYXNsYW4gRGFyYXdzaGVoOyBTaGFo YWYgU2h1bGVyDQo+IFN1YmplY3Q6IFJFOiBVbmFibGUgdG8gbWVyZ2UgcGFja2V0cyB1c2luZyBH Uk8gZmVhdHVyZQ0KPiANCj4gSGksDQo+IA0KPiBJJ20gdXNpbmcgTWVsbGFub3ggTklDcywgYW5k IGl0IGlzIHN1cHBvcnRpbmcgcGFyc2UgcGFja2V0IHR5cGVzLg0KPiANCj4gQmVzdCByZWdhcmRz LA0KPiBXaXNhbSBKYWRkbw0KPiANCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJv bTogSHUsIEppYXl1IFttYWlsdG86amlheXUuaHVAaW50ZWwuY29tXQ0KPiBTZW50OiBUaHVyc2Rh eSwgQXVndXN0IDI0LCAyMDE3IDg6NDcgQU0NCj4gVG86IFdpc2FtIE1vbnRoZXINCj4gQ2M6IHVz ZXJzQGRwZGsub3JnOyBSYXNsYW4gRGFyYXdzaGVoOyBTaGFoYWYgU2h1bGVyDQo+IFN1YmplY3Q6 IFJFOiBVbmFibGUgdG8gbWVyZ2UgcGFja2V0cyB1c2luZyBHUk8gZmVhdHVyZQ0KPiANCj4gSGks DQo+IA0KPiBDYW4geW91IHRlbGwgbWUgd2hhdCdzIHRoZSBOSUMgdHlwZSBvZiB0aGUgR1JPLWVu YWJsZWQgcG9ydD8NCj4gDQo+IFNpbmNlIEdSTyBsaWJyYXJ5IHVzZXMgbWJ1Zi0+cGFja2V0X3R5 cGUgdG8gcGFyc2UgcGFja2V0IGhlYWRlcnMsDQo+IGFwcGxpY2F0aW9ucyBuZWVkIHRvIGZpbGwg dGhpcyB2YWx1ZSBiZWZvcmUgY2FsbGluZyBHUk8gcmVhc3NlbWJseSBBUElzLg0KPiBPdGhlcndp c2UsIHRoZSBHUk8gY2FuJ3Qgd29yayBjb3JyZWN0bHkuDQo+IA0KPiBJbiBjc3VtIGZvcndhcmRp bmcgZW5naW5lIG9mIHRlc3RwbWQsIHBhY2tldF90eXBlIGlzIGZpbGxlZCBieSBOSUMgZHJpdmVy cy4NCj4gVGhlIGNzdW0gZm9yd2FyZGluZyBlbmdpbmUgd29uJ3Qgc2V0IHRoaXMgdmFsdWUuIFNv IGlmIHlvdXIgTklDIGRvZXNu4oCZdA0KPiBzdXBwb3J0IHRvIHBhcnNlIHBhY2tldCB0eXBlcywg dGhlIHZhbHVlIG9mIHBhY2tldF90eXBlIGlzIDAgYW5kIEdSTyBjYW4ndA0KPiB3b3JrIGNvcnJl Y3RseS4NCj4gDQo+IEJScywNCj4gSmlheXUNCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gPiBGcm9tOiBXaXNhbSBNb250aGVyIFttYWlsdG86d2lzYW1tQG1lbGxhbm94LmNv bV0NCj4gPiBTZW50OiBUdWVzZGF5LCBBdWd1c3QgMjIsIDIwMTcgOToyNSBQTQ0KPiA+IFRvOiBI dSwgSmlheXUgPGppYXl1Lmh1QGludGVsLmNvbT4NCj4gPiBDYzogdXNlcnNAZHBkay5vcmc7IFJh c2xhbiBEYXJhd3NoZWggPHJhc2xhbmRAbWVsbGFub3guY29tPjsgU2hhaGFmDQo+ID4gU2h1bGVy IDxzaGFoYWZzQG1lbGxhbm94LmNvbT4NCj4gPiBTdWJqZWN0OiBSRTogVW5hYmxlIHRvIG1lcmdl IHBhY2tldHMgdXNpbmcgR1JPIGZlYXR1cmUNCj4gPg0KPiA+IFllcyBpdCBpcywNCj4gPiBUaGUg ZnJhZ21lbnRlZCBwYWNrZXRzIGNvbWVzIGZyb20gcG9ydDEgLyBOSUMgYiBmcm9tIG1hY2hpbmUg QSB0byBwb3J0DQo+ID4gMSBpbiBOSUMgQSBmb3IgbWFjaGluZSBiIFNvIGl0J3MgcmVjZWl2ZWQg b24gdGhlIHBvcnQgJzEnLCB3aGljaCBpcw0KPiA+IGNvbmZpZ3VyZWQgZ3JvIGFjdGl2ZSBvbiB0 aGlzIHBvcnQuDQo+ID4NCj4gPiBCZXN0IHJlZ2FyZHMsDQo+ID4gV2lzYW0gSmFkZG8NCj4gPg0K PiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogSHUsIEppYXl1IFttYWls dG86amlheXUuaHVAaW50ZWwuY29tXQ0KPiA+IFNlbnQ6IFR1ZXNkYXksIEF1Z3VzdCAyMiwgMjAx NyA0OjIxIFBNDQo+ID4gVG86IFdpc2FtIE1vbnRoZXINCj4gPiBDYzogdXNlcnNAZHBkay5vcmc7 IFJhc2xhbiBEYXJhd3NoZWg7IFNoYWhhZiBTaHVsZXINCj4gPiBTdWJqZWN0OiBSRTogVW5hYmxl IHRvIG1lcmdlIHBhY2tldHMgdXNpbmcgR1JPIGZlYXR1cmUNCj4gPg0KPiA+IEhpLA0KPiA+DQo+ ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogV2lzYW0gTW9udGhl ciBbbWFpbHRvOndpc2FtbUBtZWxsYW5veC5jb21dDQo+ID4gPiBTZW50OiBUdWVzZGF5LCBBdWd1 c3QgMjIsIDIwMTcgNzowNyBQTQ0KPiA+ID4gVG86IEh1LCBKaWF5dSA8amlheXUuaHVAaW50ZWwu Y29tPg0KPiA+ID4gQ2M6IHVzZXJzQGRwZGsub3JnOyBSYXNsYW4gRGFyYXdzaGVoIDxyYXNsYW5k QG1lbGxhbm94LmNvbT47DQo+IFNoYWhhZg0KPiA+ID4gU2h1bGVyIDxzaGFoYWZzQG1lbGxhbm94 LmNvbT4NCj4gPiA+IFN1YmplY3Q6IFJFOiBVbmFibGUgdG8gbWVyZ2UgcGFja2V0cyB1c2luZyBH Uk8gZmVhdHVyZQ0KPiA+ID4NCj4gPiA+IEhleSBKaWF5dSwNCj4gPiA+DQo+ID4gPiBUaGFuayB5 b3UgZm9yIHlvdXIgcmVwbHkuDQo+ID4gPiBJIHRyaWVkIHdoYXQgeW91IHNhaWQgd2l0aCB0aGUg Y3N1bSBhdCBmd2QgbW9kZS4NCj4gPiA+IEV2ZW4gc28gdGhlIEdSTyBkaWRuJ3Qgd29ya3MgZmlu ZS4NCj4gPiA+DQo+ID4gPiBJIGV2ZW4gdGVzdGVkIHdpdGggYSBuZXcgbWV0aG9kb2xvZ3kuDQo+ ID4gPiBUd28gbWFjaGluZXMgd2l0aCB0d28gZGlmZmVyZW50IG5pYyBmb3IgZWFjaC4NCj4gPiA+ IFRoZSBtZXRob2RvbG9neSB0aGF0IEkgdXNlZCB0byB0ZXN0IGl0IGlzIGRlc2NyaWJlZCBpbiB0 aGUgYXR0YWNoZWQgZmlsZS4NCj4gPiA+DQo+ID4gPiBXaGF0IEkgZGlkIGZyb20gZ3JvIHNpZGU6 DQo+ID4gPiAiIiINCj4gPiA+IHRlc3RwbWQ+Z3JvIG9uIDENCj4gPg0KPiA+IERvZXMgdGhlIHBv cnQgbnVtYmVyIG9mIE5JQyBBIGluIG1hY2hpbmUgQiBpcyAnMSc/IFdoZW4geW91IGVuYWJsZSBH Uk8NCj4gPiBmb3IgcG9ydCAnMScsIFRlc3RwbWQgb25seSB0cmllcyB0byBtZXJnZSBwYWNrZXRz IHJlY2VpdmVkIGZyb20gcG9ydCAnMScuDQo+ID4NCj4gPiBCUnMsDQo+ID4gSmlheXUNCj4gPg0K PiA+ID4gVGVzdHBtZD5zZXQgZndkIGNzdW0NCj4gPiA+IFRlc3RwbWQ+c3RhcnQNCj4gPiA+ICIi Ig0KPiA+ID4gQW5kIHRoZSBwYWNrZXQgd2l0aCBjb3JyZWN0IGRzdCBtYWMuDQo+ID4gPg0KPiA+ ID4gQmVzdCByZWdhcmRzLA0KPiA+ID4gV2lzYW0gSmFkZG8NCj4gPiA+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBKaWF5dSBIdSBbbWFpbHRvOmppYXl1Lmh1QGludGVs LmNvbV0NCj4gPiA+IFNlbnQ6IE1vbmRheSwgQXVndXN0IDIxLCAyMDE3IDEyOjE0IFBNDQo+ID4g PiBUbzogV2lzYW0gTW9udGhlcg0KPiA+ID4gQ2M6IFRob21hcyBNb25qYWxvbjsgdXNlcnNAZHBk ay5vcmc7IFJhc2xhbiBEYXJhd3NoZWg7IFNoYWhhZiBTaHVsZXINCj4gPiA+IFN1YmplY3Q6IFJl OiBVbmFibGUgdG8gbWVyZ2UgcGFja2V0cyB1c2luZyBHUk8gZmVhdHVyZQ0KPiA+ID4NCj4gPiA+ IEhpLA0KPiA+ID4NCj4gPiA+IE9uIE1vbiwgQXVnIDIxLCAyMDE3IGF0IDA3OjI1OjIzQU0gKzAw MDAsIFdpc2FtIE1vbnRoZXIgd3JvdGU6DQo+ID4gPiA+IEhlbGxvIEd1eXMsDQo+ID4gPiA+DQo+ ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IEkgaG9wZSB0aGlzIGZpbmRzIHlvdSB3ZWxsLCBJ4oCZ bSB0cnlpbmcgdG8gdGVzdCB0aGUgR1JPIGZlYXR1cmUuDQo+ID4gPiA+IEJ1dCBJ4oCZbSBzdHVj ayB3aXRoIHRoaXMgc2NlbmFyaW8uDQo+ID4gPiA+DQo+ID4gPiA+IEFzIHlvdSBrbm93LCBHUk8g aXMgb25seSBzdXBwb3J0IFRDUF9JUFY0IHBhY2tldCB1bnRpbCBub3cuDQo+ID4gPiA+DQo+ID4g PiA+IFNvIEnigJltIHRyeWluZyB0byB0ZXN0IHRoZSBiYXNpYyBmdW5jdGlvbmFsaXR5IG9mIHRo ZSBmZWF0dXJlLCBhcyBmb2xsb3dpbmc6DQo+ID4gPiA+DQo+ID4gPiA+IFN0YXJ0IHRlc3RwbWQ6 DQo+ID4gPiA+DQo+ID4gPiA+IOKAnOKAneKAnQ0KPiA+ID4gPg0KPiA+ID4gPiAuL3g4Nl82NC1u YXRpdmUtbGludXhhcHAtZ2NjL2J1aWxkL2FwcC90ZXN0LXBtZC90ZXN0cG1kIC1uIDQgIC13DQo+ ID4gPiA+IDAwOjBhLjAgIC13DQo+ID4gPiA+IDAwOjA5LjAgLS0gIC0tYnVyc3Q9NjQgLS1tYmNh Y2hlPTUxMiAtLXBvcnRtYXNrIDB4ZiAtaSAgLS10eGQ9NTEyDQo+ID4gPiA+IC0tcnhkPTUxMg0K PiA+ID4gPiAtLW5iLWNvcmVzPTkgIC0tcnhxPTIgLS10eHE9MiAtLXR4cWZsYWdzPTANCj4gPiA+ ID4NCj4gPiA+ID4g4oCc4oCd4oCdDQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ IFRoZW4gZW5hYmxlIEdSTyBhdCB0aGUgdHdvIHBvcnRzOg0KPiA+ID4gPg0KPiA+ID4gPiDigJzi gJ3igJ0NCj4gPiA+ID4NCj4gPiA+ID4gVGVzdHBtZD5ncm8gb24gMA0KPiA+ID4gPg0KPiA+ID4g PiBUZXN0cG1kPmdybyBvbiAxDQo+ID4gPg0KPiA+ID4gV2hlbiB1c2UgR1JPIGluIHRlc3RwbWQs IHRoZXJlIGFyZSBmb2xsb3dpbmcgdGhpbmdzIHRvIG5vdGljZToNCj4gPiA+DQo+ID4gPiAxLiBJ biB0ZXN0cG1kLCBHUk8gaXMgc3VwcG9ydGVkIGJ5IGNzdW0gZm9yd2FyZGluZyBlbmdpbmUuDQo+ ID4gPiBUaGVyZWZvcmUsIHBsZWFzZSB1c2UgJ3NldCBmd2QgY3N1bScgdG8gc3dpdGNoIGZvcndh cmRpbmcgZW5naW5lLg0KPiA+ID4NCj4gPiA+IDIuIEJ5IGRlZmF1bHQsIGNzdW0gZm9yd2FyZGlu ZyBlbmdpbmUgY29tcHVsc29yaWx5IGNoYW5nZXMgZXRoZXJuZXQNCj4gPiA+IGFkZHJlc3Nlcy4g U28gcGxlYXNlIG1ha2Ugc3VyZSB0aGF0IE1BQyBhZGRyZXNzZXMgYXJlIGNvcnJlY3QuDQo+ID4g Pg0KPiA+ID4gMy4gV2hlbiBlbmFibGUgR1JPIGZvciBwb3J0MCwgY3N1bSBmb3J3YXJkaW5nIGVu Z2luZSB3aWxsIG1lcmdlDQo+ID4gPiBwYWNrZXRzIHJlY2VpdmVkIGZyb20gcG9ydDAuIElmIHRo ZXJlIGFyZSBubyBwYWNrZXRzIGZyb20gcG9ydDEgdG8NCj4gPiA+IHBvcnQwLCB5b3UgZG9uJ3Qg bmVlZCB0byBlbmFibGUgR1JPIGZvciBwb3J0MS4NCj4gPiA+DQo+ID4gPiA0LiBHUk8gbGlicmFy eSBkb2Vzbid0IHJlLWNhbGN1bGF0ZSBjaGVja3N1bXMgZm9yIG1lcmdlZCBwYWNrZXRzLiBJZg0K PiA+ID4geW91IHdhbnQgbWVyZ2VkIHBhY2tldHMgaGF2ZSBjb3JyZWN0IGNoZWNrc3VtLCBwbGVh c2Ugc2VsZWN0IEhXIElQDQo+ID4gPiBhbmQgSFcgVENQIGNoZWNrc3VtIGNhbGN1bGF0aW9uIGZv ciB0aGUgcG9ydCB3aGljaCB0aGUgbWVyZ2VkDQo+ID4gPiBwYWNrZXRzIGFyZSB0cmFuc21pdHRl ZCB0byBpbiBjc3VtIGZvcndhcmRpbmcgZW5naW5lLg0KPiA+ID4gVGhpcyBpcyBiZWNhdXNlIHRo ZSBtZXJnZWQgcGFja2V0cyBhcmUgbXVsdGktc2VnbWVudCBtYnVmcywgYnV0IGNzdW0NCj4gPiA+ IGZvcndhcmRpbmcgZW5naW5lIGRvZXNuJ3Qgc3VwcG9ydCB0byBjYWxjdWxhdGUgY2hlY2tzdW1z IGZvcg0KPiA+ID4gbXVsdGktc2VnbWVudCBtYnVmcyBpbiBTVy4gU28gd2UgbmVlZCB0byBzZWxl Y3QgSFcgY2hlY2tzdW0NCj4gb2ZmbG9hZGluZy4NCj4gPiA+DQo+ID4gPiBlLmcuIElmIGRhdGEg ZmxvdyBpcyAicGFja2V0cyAtPiBwb3J0MCAtPiBwb3J0MSIsIGNvbW1hbmRzIHVzZWQgaW4NCj4g dGVzdHBtZDoNCj4gPiA+IAlncm8gb24gcG9ydDANCj4gPiA+IAlzZXQgZndkIGNzdW0NCj4gPiA+ IAljc3VtIHNldCBpcCBodyBwb3J0MQ0KPiA+ID4gCWNzdW0gc2V0IHRjcCBodyBwb3J0MQ0KPiA+ ID4NCj4gPiA+DQo+ID4gPiBCZXNpZGVzLCB5b3UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB5b3Vy IFBNRCBkcml2ZXIgZG9lc24ndCB1c2UNCj4gPiA+IHZlY3RvciBUWCBmdW5jdGlvbiwgc2luY2Ug dmVjdG9yIGZ1bmN0aW9uIGRvZXNuJ3Qgc3VwcG9ydCBjaGVja3N1bQ0KPiBvZmZsb2FkaW5nLg0K PiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4g4oCc4oCd4oCdDQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4g PiA+DQo+ID4gPiA+IEFuZCB0cnlpbmcgdG8gc2VuZCBUQ1BfSVBWNCBmcmFnbWVudGVkIHBhY2tl dCDigJxwYWNrZXQgd2l0aCBsZW5ndGgNCj4gPiA+ID4gMTUwMCBmcmFnbWVudGVkIHRvIHRocmVl IHBhY2tldHMgb2YgNTAw4oCdDQo+ID4gPiA+DQo+ID4gPiA+IOKAnOKAneKAnQ0KPiA+ID4gPg0K PiA+ID4gPiBwPUV0aGVyKHNyYz1nZXRfaWZfaHdhZGRyKCdlbnMxMCcpLCBkc3Q9DQo+ID4gPiA+ ICcyNDo4QTowNzo4ODoyNjo2QicpL0lQKCkvVENQKCkNCj4gPiA+ID4NCj4gPiA+ID4gcC5hZGRf cGF5bG9hZCgnRicqKDE1MDAgLSBsZW4ocCkpKQ0KPiA+ID4gPg0KPiA+ID4gPiBmcmFncz1mcmFn bWVudChwLGZyYWdzaXplPTUwMCkNCj4gPiA+ID4NCj4gPiA+ID4gZm9yIGZyYWdtZW50IGluIGZy YWdzOg0KPiA+ID4gPg0KPiA+ID4gPiAgICAgIHNlbmRwKGZyYWdtZW50LCBpZmFjZT0nZW5zMTAn KQ0KPiA+ID4gPg0KPiA+ID4gPiDigJzigJ3igJ0NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4N Cj4gPiA+ID4gQnV0IHRoZSB0ZXN0cG1kIGZvcndhcmQgdGhlIHBhY2tldHMgYXMgaXQgaXMsIOKA nCBkb2VzbuKAmXQgZG8gYW55IG1lcmdl4oCdDQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ ID4gPiA+IFRjcGR1bXAgYXQgdGhlIFRHIHNpZGUsDQo+ID4gPiA+DQo+ID4gPiA+IFRoZSBzZW5k aW5nIGZyYWdtZXRzIHVzaW5nIGVuczEwOg0KPiA+ID4gPg0KPiA+ID4gPiAjdGNwZHVtcCDigJNJ IGVuczEwIOKAk3Z2dmVuDQo+ID4gPiA+DQo+ID4gPiA+IDE1OjQ1OjI5LjA4MzUxNCAyNDo4YTow Nzo4ODoyNjo1YiA+IDI0OjhhOjA3Ojg4OjI2OjZiLCBldGhlcnR5cGUNCj4gPiA+ID4gSVB2NCAo MHgwODAwKSwgbGVuZ3RoIDUzODogKHRvcyAweDAsIHR0bCA2NCwgaWQgMSwgb2Zmc2V0IDAsIGZs YWdzDQo+ID4gPiA+IFsrXSwgcHJvdG8gT3B0aW9ucyAoMCksIGxlbmd0aCA1MjQpDQo+ID4gPiA+ DQo+ID4gPiA+ICAgICAxMjcuMC4wLjEgPiAxMjcuMC4wLjE6ICBpcC1wcm90by0wIDUwNA0KPiA+ ID4gPg0KPiA+ID4gPiAxNTo0NToyOS4xMTUyNjYgMjQ6OGE6MDc6ODg6MjY6NWIgPiAyNDo4YTow Nzo4ODoyNjo2YiwgZXRoZXJ0eXBlDQo+ID4gPiA+IElQdjQgKDB4MDgwMCksIGxlbmd0aCA1Mzg6 ICh0b3MgMHgwLCB0dGwgNjQsIGlkIDEsIG9mZnNldCA1MDQsDQo+ID4gPiA+IGZsYWdzIFsrXSwg cHJvdG8gT3B0aW9ucyAoMCksIGxlbmd0aCA1MjQpDQo+ID4gPiA+DQo+ID4gPiA+ICAgICAxMjcu MC4wLjEgPiAxMjcuMC4wLjE6IGlwLXByb3RvLTANCj4gPiA+ID4NCj4gPiA+ID4gMTU6NDU6Mjku MTQ3MjU4IDI0OjhhOjA3Ojg4OjI2OjViID4gMjQ6OGE6MDc6ODg6MjY6NmIsIGV0aGVydHlwZQ0K PiA+ID4gPiBJUHY0ICgweDA4MDApLCBsZW5ndGggNDkyOiAodG9zIDB4MCwgdHRsIDY0LCBpZCAx LCBvZmZzZXQgMTAwOCwNCj4gPiA+ID4gZmxhZ3MgW25vbmVdLCBwcm90byBPcHRpb25zICgwKSwg bGVuZ3RoIDQ3OCkNCj4gPiA+ID4NCj4gPiA+ID4gICAgIDEyNy4wLjAuMSA+IDEyNy4wLjAuMTog aXAtcHJvdG8tMA0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiAjdGNwZHVtcCAt aSBlbnM5IOKAk3Z2dmVuICAvLy8gaGVyZSB3aWxsIGJlIHJlY2VpdmVkIHRoZSBmb3J3YXJkZWQN Cj4gPiA+ID4gcGFja2V0cyBmcm9tDQo+ID4gPiA+IHRlc3RwbWQ6DQo+ID4gPiA+DQo+ID4gPiA+ IDE1OjQ1OjI5LjA4Mzk5NiAyNDo4YTowNzo4ODoyNjo1YiA+IDI0OjhhOjA3Ojg4OjI2OjZiLCBl dGhlcnR5cGUNCj4gPiA+ID4gSVB2NCAoMHgwODAwKSwgbGVuZ3RoIDUzODogKHRvcyAweDAsIHR0 bCA2NCwgaWQgMSwgb2Zmc2V0IDAsIGZsYWdzDQo+ID4gPiA+IFsrXSwgcHJvdG8gT3B0aW9ucyAo MCksIGxlbmd0aCA1MjQpDQo+ID4gPiA+DQo+ID4gPiA+ICAgICAxMjcuMC4wLjEgPiAxMjcuMC4w LjE6ICBpcC1wcm90by0wIDUwNA0KPiA+ID4gPg0KPiA+ID4gPiAxNTo0NToyOS4xMTU0MjUgMjQ6 OGE6MDc6ODg6MjY6NWIgPiAyNDo4YTowNzo4ODoyNjo2YiwgZXRoZXJ0eXBlDQo+ID4gPiA+IElQ djQgKDB4MDgwMCksIGxlbmd0aCA1Mzg6ICh0b3MgMHgwLCB0dGwgNjQsIGlkIDEsIG9mZnNldCA1 MDQsDQo+ID4gPiA+IGZsYWdzIFsrXSwgcHJvdG8gT3B0aW9ucyAoMCksIGxlbmd0aCA1MjQpDQo+ ID4gPiA+DQo+ID4gPiA+ICAgICAxMjcuMC4wLjEgPiAxMjcuMC4wLjE6IGlwLXByb3RvLTANCj4g PiA+ID4NCj4gPiA+ID4gMTU6NDU6MjkuMTQ3NDkyIDI0OjhhOjA3Ojg4OjI2OjViID4gMjQ6OGE6 MDc6ODg6MjY6NmIsIGV0aGVydHlwZQ0KPiA+ID4gPiBJUHY0ICgweDA4MDApLCBsZW5ndGggNDky OiAodG9zIDB4MCwgdHRsIDY0LCBpZCAxLCBvZmZzZXQgMTAwOCwNCj4gPiA+ID4gZmxhZ3MgW25v bmVdLCBwcm90byBPcHRpb25zICgwKSwgbGVuZ3RoIDQ3OCkNCj4gPiA+ID4NCj4gPiA+ID4gICAg IDEyNy4wLjAuMSA+IDEyNy4wLjAuMTogaXAtcHJvdG8tMA0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiBBbSBJIGRvaW5nIHNvbWV0aGluZyB3cm9u Zz8hIE9yIGl0IGlzIGEgYnVnLg0KPiA+ID4gPg0KPiA+ID4gPiDDqCBBcyB5b3Ugc2VlIHRoZSB0 Y3BkdW1wIHNob3dzIHRoZSBvZmZzZXQgb2YgZWFjaCBmcmFnbWVudCwgYW5kDQo+ID4gPiA+IHRl c3RwbWQgcHJpbnRzIEw0X0ZSQUcsIHNvIHRoZSBib3RoIGFyZSByZWNvZ25pemluZyB0aGF0IHRo aXMgaXMgYQ0KPiA+ID4gZnJhZ21lbnRlZCBwYWNrZXQuDQo+ID4gPg0KPiA+ID4gR1JPIGxpYnJh cnkgbWVyZ2VzIFRTT2VkL0dTT2VkIHBhY2tldHMsIHdob3NlIElQIElEcyBhbmQgVENQDQo+ID4g c2VxdWVuY2VzDQo+ID4gPiBhcmUgYm90aCBjb25zZWN1dGl2ZS4gSWYgaW5wdXQgcGFja2V0cyBo YXZlIHNhbWUgSVAgSURzLCBubyBwYWNrZXRzDQo+ID4gPiB3aWxsIGJlIG1lcmdlZC4NCj4gPiA+ DQo+ID4gPiBCVFcsIHlvdSBjYW4gdXNlIGlwZXJmIHRvIHRlc3QgR1JPIGZlYXR1cmUuDQo+ID4g Pg0KPiA+ID4gQmVzdCBSZWdhcmRzLA0KPiA+ID4gSmlheXUNCj4gPiA+DQo+ID4gPiA+DQo+ID4g PiA+DQo+ID4gPiA+DQo+ID4gPiA+IEJlc3QgcmVnYXJkcywNCj4gPiA+ID4NCj4gPiA+ID4gV2lz YW0gSmFkZG8NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCg==