From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id A739D6A95 for ; Fri, 12 Jun 2015 10:29:01 +0200 (CEST) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga101.jf.intel.com with ESMTP; 12 Jun 2015 01:29:00 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.13,601,1427785200"; d="scan'208";a="742011202" Received: from pgsmsx103.gar.corp.intel.com ([10.221.44.82]) by fmsmga002.fm.intel.com with ESMTP; 12 Jun 2015 01:28:59 -0700 Received: from kmsmsx154.gar.corp.intel.com (172.21.73.14) by PGSMSX103.gar.corp.intel.com (10.221.44.82) with Microsoft SMTP Server (TLS) id 14.3.224.2; Fri, 12 Jun 2015 16:28:57 +0800 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by KMSMSX154.gar.corp.intel.com (172.21.73.14) with Microsoft SMTP Server (TLS) id 14.3.224.2; Fri, 12 Jun 2015 16:28:57 +0800 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.129]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.146]) with mapi id 14.03.0224.002; Fri, 12 Jun 2015 16:28:56 +0800 From: "Zhang, Helin" To: Panu Matilainen , Thomas Monjalon , Olivier MATZ , "O'Driscoll, Tim" , "nhorman@tuxdriver.com" Thread-Topic: [dpdk-dev] [PATCH v6 01/18] mbuf: redefine packet_type in rte_mbuf Thread-Index: AQHQnEMPEbkaZ4WwlESH2lT5Es7QLJ2l3CR7gAKs8GaAAARu4P//g6AAgACJVoA= Date: Fri, 12 Jun 2015 08:28:55 +0000 Message-ID: References: <1432284264-17376-1-git-send-email-helin.zhang@intel.com> <26FA93C7ED1EAA44AB77D62FBE1D27BA54D536B3@IRSMSX102.ger.corp.intel.com> <55784A82.6020801@6wind.com> <4747564.NbtnEmoytI@xps13> <557A8918.4040306@redhat.com> <557A9508.2050501@redhat.com> In-Reply-To: <557A9508.2050501@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] [PATCH v6 01/18] mbuf: redefine packet_type in rte_mbuf X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Jun 2015 08:29:02 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogUGFudSBNYXRpbGFpbmVu IFttYWlsdG86cG1hdGlsYWlAcmVkaGF0LmNvbV0NCj4gU2VudDogRnJpZGF5LCBKdW5lIDEyLCAy MDE1IDQ6MTUgUE0NCj4gVG86IFpoYW5nLCBIZWxpbjsgVGhvbWFzIE1vbmphbG9uOyBPbGl2aWVy IE1BVFo7IE8nRHJpc2NvbGwsIFRpbTsNCj4gbmhvcm1hbkB0dXhkcml2ZXIuY29tDQo+IENjOiBk ZXZAZHBkay5vcmcNCj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIIHY2IDAxLzE4XSBt YnVmOiByZWRlZmluZSBwYWNrZXRfdHlwZSBpbg0KPiBydGVfbWJ1Zg0KPiANCj4gT24gMDYvMTIv MjAxNSAxMDo0MyBBTSwgWmhhbmcsIEhlbGluIHdyb3RlOg0KPiA+DQo+ID4NCj4gPj4gLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogUGFudSBNYXRpbGFpbmVuIFttYWlsdG86 cG1hdGlsYWlAcmVkaGF0LmNvbV0NCj4gPj4gU2VudDogRnJpZGF5LCBKdW5lIDEyLCAyMDE1IDM6 MjQgUE0NCj4gPj4gVG86IFRob21hcyBNb25qYWxvbjsgT2xpdmllciBNQVRaOyBPJ0RyaXNjb2xs LCBUaW07IFpoYW5nLCBIZWxpbjsNCj4gPj4gbmhvcm1hbkB0dXhkcml2ZXIuY29tDQo+ID4+IENj OiBkZXZAZHBkay5vcmcNCj4gPj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIIHY2IDAx LzE4XSBtYnVmOiByZWRlZmluZSBwYWNrZXRfdHlwZQ0KPiA+PiBpbiBydGVfbWJ1Zg0KPiA+Pg0K PiA+PiBPbiAwNi8xMC8yMDE1IDA3OjE0IFBNLCBUaG9tYXMgTW9uamFsb24gd3JvdGU6DQo+ID4+ PiAyMDE1LTA2LTEwIDE2OjMyLCBPbGl2aWVyIE1BVFo6DQo+ID4+Pj4gT24gMDYvMDIvMjAxNSAw MzoyNyBQTSwgTydEcmlzY29sbCwgVGltIHdyb3RlOg0KPiA+Pj4+PiBGcm9tOiBkZXYgW21haWx0 bzpkZXYtYm91bmNlc0BkcGRrLm9yZ10gT24gQmVoYWxmIE9mIE9saXZpZXIgTUFUWg0KPiA+Pj4+ Pj4gT24gMDYvMDEvMjAxNSAwOTozMyBBTSwgSGVsaW4gWmhhbmcgd3JvdGU6DQo+ID4+Pj4+Pj4g SW4gb3JkZXIgdG8gdW5pZnkgdGhlIHBhY2tldCB0eXBlLCB0aGUgZmllbGQgb2YgJ3BhY2tldF90 eXBlJyBpbg0KPiA+Pj4+Pj4+ICdzdHJ1Y3QgcnRlX21idWYnIG5lZWRzIHRvIGJlIGV4dGVuZGVk IGZyb20gMTYgdG8gMzIgYml0cy4NCj4gPj4+Pj4+PiBBY2NvcmRpbmdseSwgc29tZSBmaWVsZHMg aW4gJ3N0cnVjdCBydGVfbWJ1ZicgYXJlIHJlLW9yZ2FuaXplZA0KPiA+Pj4+Pj4+IHRvIHN1cHBv cnQgdGhpcyBjaGFuZ2UgZm9yIFZlY3RvciBQTUQuIEFzICdzdHJ1Y3QgcnRlX2tuaV9tYnVmJw0K PiA+Pj4+Pj4+IGZvciBLTkkgc2hvdWxkIGJlIHJpZ2h0IG1hcHBlZCB0byAnc3RydWN0IHJ0ZV9t YnVmJywgaXQgc2hvdWxkDQo+ID4+Pj4+Pj4gYmUgbW9kaWZpZWQgYWNjb3JkaW5nbHkuIEluIGFk ZGl0aW9uLCBWZWN0b3IgUE1EIG9mIGl4Z2JlIGlzDQo+ID4+Pj4+Pj4gZGlzYWJsZWQgYnkgZGVm YXVsdCwgYXMgJ3N0cnVjdCBydGVfbWJ1ZicgY2hhbmdlZC4NCj4gPj4+Pj4+PiBUbyBhdm9pZCBi cmVha2luZyBBQkkgY29tcGF0aWJpbGl0eSwgYWxsIHRoZSBjaGFuZ2VzIHdvdWxkIGJlDQo+ID4+ Pj4+Pj4gZW5hYmxlZCBieSBSVEVfVU5JRklFRF9QS1RfVFlQRSwgd2hpY2ggaXMgZGlzYWJsZWQg YnkgZGVmYXVsdC4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBXaGF0IGFyZSB0aGUgcGxhbnMgZm9yIHRo aXMgY29tcGlsZS10aW1lIG9wdGlvbiBpbiB0aGUgZnV0dXJlPw0KPiA+Pj4+Pj4NCj4gPj4+Pj4+ IEkgd29uZGVyIHdoYXQgYXJlIHRoZSBiZW5lZml0cyBvZiBoYXZpbmcgdGhpcyBvcHRpb24gaW4g dGVybXMgb2YNCj4gPj4+Pj4+IEFCSSBjb21wYXRpYmlsaXR5OiB3aGVuIGl0IGlzIGRpc2FibGVk LCBpdCBpcyBBQkktY29tcGF0aWJsZSBidXQNCj4gPj4+Pj4+IHRoZSBwYWNrZXQtdHlwZSBmZWF0 dXJlIGlzIG5vdCBwcmVzZW50LCBhbmQgd2hlbiBpdCBpcyBlbmFibGVkIHdlDQo+ID4+Pj4+PiBo YXZlIHRoZSBmZWF0dXJlIGJ1dCBpdCBicmVha3MgdGhlIGNvbXBhdGliaWxpdHkuDQo+ID4+Pj4+ Pg0KPiA+Pj4+Pj4gSW4gbXkgb3BpbmlvbiwgdGhlIHY1IGlzIHByZWZlcmFibGU6IGZvciB0aGlz IGtpbmQgb2YgZmVhdHVyZXMsIEkNCj4gPj4+Pj4+IGRvbid0IHNlZSBob3cgdGhlIEFCSSBjYW4g YmUgcHJlc2VydmVkLCBhbmQgSSB0aGluayBwYWNrZXQtdHlwZQ0KPiA+Pj4+Pj4gd29uJ3QgYmUg dGhlIG9ubHkgZmVhdHVyZSB0aGF0IHdpbGwgbW9kaWZ5IHRoZSBtYnVmIHN0cnVjdHVyZS4gSQ0K PiA+Pj4+Pj4gdGhpbmsgdGhlIHByb2Nlc3MgZGVzY3JpYmVkIGhlcmUgc2hvdWxkIGJlIGFwcGxp ZWQ6DQo+ID4+Pj4+PiBodHRwOi8vZHBkay5vcmcvYnJvd3NlL2RwZGsvdHJlZS9kb2MvZ3VpZGVz L3JlbF9ub3Rlcy9hYmkucnN0DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gKHN0YXJ0aW5nIGZyb20gIlNv bWUgQUJJIGNoYW5nZXMgbWF5IGJlIHRvbyBzaWduaWZpY2FudCB0bw0KPiA+Pj4+Pj4gcmVhc29u YWJseSBtYWludGFpbiBtdWx0aXBsZSB2ZXJzaW9ucyBvZiIpLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBU aGlzIGlzIGp1c3QgbGlrZSB0aGUgY2hhbmdlIHRoYXQgU3RldmUgKEN1bm1pbmcpIExpYW5nIHN1 Ym1pdHRlZA0KPiA+Pj4+PiBmb3IgSW50ZXJydXB0IE1vZGUuIFdlIGhhdmUgdGhlIHNhbWUgcHJv YmxlbSBpbiBib3RoIGNhc2VzOiB3ZQ0KPiA+Pj4+PiB3YW50IHRvIGZpbmQgYSB3YXkgdG8gZ2V0 IHRoZSBmZWF0dXJlcyBpbmNsdWRlZCwgYnV0IG5lZWQgdG8NCj4gPj4+Pj4gY29tcGx5IHdpdGgg b3VyIEFCSSBwb2xpY3kuIFNvLCBpbiBib3RoIGNhc2VzLCB0aGUgcHJvcG9zYWwgaXMgdG8NCj4g Pj4+Pj4gYWRkIGEgY29uZmlnIG9wdGlvbiB0byBlbmFibGUgdGhlIGNoYW5nZSBieSBkZWZhdWx0 LCBzbyB3ZQ0KPiA+Pj4+PiBtYWludGFpbiBiYWNrd2FyZA0KPiA+PiBjb21wYXRpYmlsaXR5Lg0K PiA+Pj4+PiBVc2VycyB0aGF0IHdhbnQgdGhlc2UgY2hhbmdlcywgYW5kIGFyZSB3aWxsaW5nIHRv IGFjY2VwdCB0aGUNCj4gPj4+Pj4gYXNzb2NpYXRlZCBBQkkgY2hhbmdlLCBoYXZlIHRvIHNwZWNp ZmljYWxseSBlbmFibGUgdGhlbS4NCj4gPj4+Pj4NCj4gPj4+Pj4gV2UgY2FuIG5vdGUgaW4gdGhl IERlcHJlY2F0aW9uIE5vdGljZXMgaW4gdGhlIFJlbGVhc2UgTm90ZXMgZm9yDQo+ID4+Pj4+IDIu MSB0aGF0IHRoZXNlIGNvbmZpZyBvcHRpb25zIHdpbGwgYmUgcmVtb3ZlZCBpbiAyLjIuIFRoZSBm ZWF0dXJlcw0KPiA+Pj4+PiB3aWxsIHRoZW4gYmUgZW5hYmxlZCBieSBkZWZhdWx0Lg0KPiA+Pj4+ Pg0KPiA+Pj4+PiBUaGlzIHNlZW1zIGxpa2UgYSBnb29kIGNvbXByb21pc2Ugd2hpY2ggYWxsb3dz IHVzIHRvIGdldCB0aGVzZQ0KPiA+Pj4+PiBjaGFuZ2VzIGludG8gMi4xIGJ1dCBhdm9pZHMgYnJl YWtpbmcgdGhlIEFCSSBwb2xpY3kuDQo+ID4+Pj4NCj4gPj4+PiBTb3JyeSBmb3IgdGhlIGxhdGUg YW5zd2VyLg0KPiA+Pj4+DQo+ID4+Pj4gQWZ0ZXIgc29tZSB0aG91Z2h0cyBvbiB0aGlzIHRvcGlj LCBJIHVuZGVyc3RhbmQgdGhhdCBoYXZpbmcgYQ0KPiA+Pj4+IGNvbXBpbGUtdGltZSBvcHRpb24g aXMgcGVyaGFwcyBhIGdvb2QgY29tcHJvbWlzZSBiZXR3ZWVuIGtlZXBpbmcNCj4gPj4+PiBjb21w YXRpYmlsaXR5IGFuZCBoYXZpbmcgbmV3IGZlYXR1cmVzIGVhcmxpZXIuDQo+ID4+Pj4NCj4gPj4+ PiBJJ20ganVzdCBhZnJhaWQgYWJvdXQgaGF2aW5nIG9uZSAjaWZkZWYgaW4gdGhlIGNvZGUgZm9y IGVhY2ggbmV3DQo+ID4+Pj4gZmVhdHVyZSB0aGF0IGNhbm5vdCBrZWVwIHRoZSBBQkkgY29tcGF0 aWJpbGl0eS4NCj4gPj4+PiBXaGF0IGRvIHlvdSB0aGluayBhYm91dCBoYXZpbmcgb25lIG9wdGlv biAtLSBsZXQncyBjYWxsIGl0DQo+ID4+Pj4gIkNPTkZJR19SVEVfTkVYVF9BQkkiIC0tLCB0aGF0 IGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQsIGFuZCB0aGF0DQo+ID4+Pj4gd291bGQgc3Vycm91bmQg YW55IG5ldyBmZWF0dXJlIHRoYXQgYnJlYWtzIHRoZSBBQkk/DQo+ID4+Pj4NCj4gPj4+PiBUaGlz IHdvdWxkIGhhdmUgc2V2ZXJhbCBhZHZhbnRhZ2VzOg0KPiA+Pj4+IC0gb25seSAyIGNhc2VzIChv biBvciBvZmYpLCB0aGUgY29tYmluYXRvcmlhbCBpcyBzbWFsbGVyIHRoYW4NCj4gPj4+PiAgICAg IGhhdmluZyBvbmUgb3B0aW9uIHBlciBmZWF0dXJlDQo+ID4+Pj4gLSBhbGwgbmV4dCBmZWF0dXJl cyBicmVha2luZyB0aGUgYWJpIGNhbiBiZSBpZGVudGlmaWVkIGJ5IGEgZ3JlcA0KPiA+Pj4+IC0g dGhlIGNvZGUgaW5zaWRlIHRoZSAjaWZkZWYgY2FuIGJlIGVuYWJsZWQgaW4gYSBzaW1wbGUgb3Bl cmF0aW9uDQo+ID4+Pj4gICAgICBieSBUaG9tYXMgYWZ0ZXIgZWFjaCByZWxlYXNlLg0KPiA+Pj4+ DQo+ID4+Pj4gVGhvbWFzLCBhbnkgY29tbWVudD8NCj4gPj4+DQo+ID4+PiBBcyBwcmV2aW91c2x5 IGRpc2N1c3NlZCAoMXRvMSkgd2l0aCBPbGl2aWVyLCBJIHRoaW5rIHRoYXQncyBhIGdvb2QNCj4g Pj4+IHByb3Bvc2FsIHRvIGludHJvZHVjZSBjaGFuZ2VzIGJyZWFraW5nIGRlZXBseSB0aGUgQUJJ Lg0KPiA+Pj4NCj4gPj4+IExldCdzIHN1bSB1cCB0aGUgY3VycmVudCBwb2xpY3k6DQo+ID4+PiAx LyBGb3IgY2hhbmdlcyB3aGljaCBoYXZlIGEgbGltaXRlZCBpbXBhY3Qgb24gdGhlIEFCSSwgdGhl IGJhY2t3YXJkDQo+ID4+PiBjb21wYXRpYmlsaXR5IG11c3QgYmUga2VwdCBkdXJpbmcgMSByZWxl YXNlIGluY2x1ZGluZyB0aGUgbm90aWNlIGluDQo+ID4+IGRvYy9ndWlkZXMvcmVsX25vdGVzL2Fi aS5yc3QuDQo+ID4+PiAyLyBGb3IgaW1wb3J0YW50IGNoYW5nZXMgbGlrZSBtYnVmIHJld29yaywg dGhlcmUgd2FzIGFuIGFncmVlbWVudCBvbg0KPiA+Pj4gc2tpcHBpbmcgdGhlIGJhY2t3YXJkIGNv bXBhdGliaWxpdHkgYWZ0ZXIgaGF2aW5nIDMgYWNrbm93bGVkZ2VtZW50cw0KPiA+Pj4gYW5kIGFu DQo+ID4+IDEtcmVsZWFzZSBsb25nIG5vdGljZS4NCj4gPj4+IFRoZW4gdGhlIEFCSSBudW1iZXJp bmcgbXVzdCBiZSBpbmNyZW1lbnRlZC4NCj4gPj4+DQo+ID4+PiBUaGlzIENPTkZJR19SVEVfTkVY VF9BQkkgcHJvcG9zYWwgd291bGQgY2hhbmdlIHRoZSBydWxlcyBmb3IgdGhlDQo+ID4+PiBzZWNv bmQNCj4gPj4gY2FzZS4NCj4gPj4+IEluIG9yZGVyIHRvIGJlIGFkb3B0ZWQsIGEgcGF0Y2ggZm9y IHRoZSBmaWxlDQo+ID4+PiBkb2MvZ3VpZGVzL3JlbF9ub3Rlcy9hYmkucnN0IG11c3QgYmUgc3Vi bWl0dGVkIGFuZCBzdHJvbmdseQ0KPiBhY2tub3dsZWRnZWQuDQo+ID4+Pg0KPiA+Pj4gVGhlIEFC SSBudW1iZXJpbmcgbXVzdCBiZSBhbHNvIGNsZWFybHkgZXhwbGFpbmVkOg0KPiA+Pj4gMS8gU2hv dWxkIHdlIGhhdmUgZGlmZmVyZW50IGxpYnJhcmllcyB2ZXJzaW9uIG51bWJlciBkZXBlbmRpbmcg b2YNCj4gPj4gQ09ORklHX1JURV9ORVhUX0FCST8NCj4gPj4+IEl0IHNlZW1zIHN0cmFpZ2h0Zm9y d2FyZCB0byB1c2UgImlmZXEiIHdoZW4gTElCQUJJVkVSIGluIHRoZQ0KPiA+Pj4gTWFrZWZpbGVz DQo+ID4+DQo+ID4+IEFuIGluY29tcGF0aWJsZSBBQkkgbXVzdCBiZSByZWZsZWN0ZWQgYnkgYSBz b25hbWUgY2hhbmdlLCBvdGhlcndpc2UNCj4gPj4gdGhlIHdob2xlIGxpYnJhcnkgdmVyc2lvbmlu ZyBpcyBpcnJlbGV2YW50Lg0KPiA+Pg0KPiA+Pj4gMi8gQXJlIHdlIGFibGUgdG8gaGF2ZSBzb21l ICJpZiBDT05GSUdfUlRFX05FWFRfQUJJIiBzdGF0ZW1lbnQgaW4NCj4gPj4gdGhlIC5tYXAgZmls ZXM/DQo+ID4+PiBNYXliZSB3ZSBzaG91bGQgcmVtb3ZlIHRoZXNlIGZpbGVzIGFuZCBnZW5lcmF0 ZSB0aGVtIHdpdGggc29tZQ0KPiA+PiBwcmVwcm9jZXNzaW5nLg0KPiA+Pj4NCj4gPj4+IE5laWws IGFzIHRoZSBBQkkgcG9saWN5IGF1dGhvciwgd2hhdCBpcyB5b3VyIG9waW5pb24/DQo+ID4+DQo+ ID4+IEknbSBub3QgTmVpbCBidXQgbXkgNWMuLi4NCj4gPj4NCj4gPj4gV29ya2luZyBhcm91bmQg QUJJIGNvbXBhdGliaWxpdHkgcG9saWN5IHZpYSBjb25maWcgb3B0aW9ucyBzZWVtcyBsaWtlDQo+ ID4+IGEgc2xpcHBlcnkgc2xvcGUuIEdvaW5nIGZvcndhcmQgdGhpcyB3aWxsIGxpa2VseSBtZWFu IHRoZXJlIGFyZQ0KPiA+PiBhbHdheXMgdHdvIGRpZmZlcmVudCBBQklzIGZvciBhbnkgZ2l2ZW4g dmVyc2lvbiwgYW5kIHRoZSB0aG91Z2h0IG9mDQo+ID4+IGtlZXBpbmcgdHJhY2sgb2YgaXQgYWxs IGluIGEgdHJ1bHkgY29tcGF0aWJsZSBtYW5uZXIgbWFrZXMgbXkgaGVhZCBodXJ0Lg0KPiA+Pg0K PiA+PiBUaGF0IHNhaWQgaXRzIGVhc3kgdG8gdW5kZXJzdGFuZCB0aGUgZGVzaXJlIHRvIG1vdmUg ZmFzdGVyIHRoYW4gdGhlDQo+ID4+IEFCSSBwb2xpY3kgYWxsb3dzLiBJbiBhIHByb2plY3Qgd2hl cmUgc28gbWFueSBzdHJ1Y3RzIGFyZSBpbiB0aGUgb3Blbg0KPiA+PiBpdCBnZXRzIGhhcmQgdG8g ZG8gbXVjaCBhbnl0aGluZyBhdCBhbGwgd2l0aG91dCBicmVha2luZyB0aGUgQUJJLg0KPiA+Pg0K PiA+PiBUaGUgaXNzdWUgY291bGQgYmUgbWl0aWdhdGVkIHNvbWV3aGF0IGJ5IHJlc2VydmluZyBz b21lIHNwYWNlIGF0IHRoZQ0KPiA+PiBlbmQgb2YgdGhlIHN0cnVjdHMgZWcgd2hlbiB0aGUgQUJJ IG5lZWRzIHRvIGJlIGNoYW5nZWQgYW55d2F5LCBidXQgaXQNCj4gPj4gaGFzIG9idmlvdXMgZG93 bnNpZGVzIGFzIHdlbGwuIFRoZSBvdGhlciBvcHRpb25zIEkgc2VlIHRlbmQgdG8NCj4gPj4gcmV2 b2x2ZSBhcm91bmQgY2hhbmdpbmcgcmVsZWFzZSBwb2xpY2llcyBvbmUgd2F5IG9yIHRoZSBvdGhl cjoNCj4gPj4gcmVsZWFzaW5nIEFCSSBjb21wYXRpYmxlIG1pY3JvIHZlcnNpb25zIGJldHdlZW4g bWlub3IgdmVyc2lvbnMgYW5kDQo+ID4+IHJlbGF4aW5nIHRoZSBBQkkgcG9saWN5IGEgYml0LCBv ciBqdXN0IHJlbGVhc2luZyBuZXcgbWlub3IgdmVyc2lvbnMgbW9yZSBvZnRlbg0KPiB0aGFuIHRo ZSBjdXJyZW50IGN5Y2xlLg0KPiA+Pg0KPiA+PiAJLSBQYW51IC0NCj4gPg0KPiA+IERvZXMgaXQg bWVhbiByZWxlYXNpbmcgUjIuMDEgcmlnaHQgbm93IHdpdGggYW5ub3VuY2VtZW50IG9mIGFsbCBB QkkNCj4gPiBjaGFuZ2VzLCB3aGljaCBiYXNlZCBvbiBSMi4wIGZpcnN0LCBhbmQgdGhlbiByZWxl YXNpbmcgUjIuMSBzZXZlcmFsIHdlZWtzIGxhdGVyDQo+IHdpdGggYWxsIHRoZSBjb2RlIGNoYW5n ZXM/DQo+IA0KPiBTb21ldGhpbmcgbGlrZSB0aGF0LCBidXQgSSdkIHRoaW5rIGl0cyB0b28gbGF0 ZSBmb3IgYW55IGJpZyByZWxlYXNlIG1vZGVsIC8gcG9saWN5DQo+IGNoYW5nZXMgZm9yIHRoaXMg cGFydGljdWxhciBjeWNsZS4NCj4gDQo+IEkgYWxzbyBkbyBub3Qgd2FudCB0byB1bmRlcm1pbmUg dGhlIEFCSSBwb2xpY3kgd2UganVzdCBnb3QgaW4gcGxhY2UsIGJ1dCBzaW5jZQ0KPiBwZW9wbGUg YXJlIGFjdGl2ZWx5IGxvb2tpbmcgZm9yIHdheXMgdG8gd29yayBhcm91bmQgaXQgYW55d2F5IGl0 cyBiZXR0ZXIgdG8gbWFwDQo+IG91dCBhbGwgdGhlIHBvc3NpYmlsaXRpZXMuIE9uZSBvZiB0aGVt IGlzIGNvbW1pdHRpbmcgdG8gbG9uZ2VyIHRlcm0gbWFpbnRlbmFuY2Ugb2YNCj4gcmVsZWFzZXMg KHZpYSBBQkkgY29tcGF0aWJsZSBtaWNybyB2ZXJzaW9uIHVwZGF0ZXMpLCBhbm90aGVyIG9uZSBp cyBzaG9ydGVuaW5nDQo+IHRoZSBjeWNsZXMuIEJvdGggYWNoaWV2ZSByb3VnaGx5IHRoZSBzYW1l IGdvYWxzIHdpdGggZGlmZmVyZW5jZXMgaW4gZW1waGFzaXMNCj4gcGVyaGFwcywgYnV0IG1vcmUg cmVsZWFzZXMgcmVxdWlyZXMgbW9yZSByZXNvdXJjZXMgb24gbWFpbnRhaW5pbmcsIHRlc3Rpbmcg ZXRjDQo+IHNvLi4uDQpSMi4wMSBjb3VsZCBqdXN0IGhhdmUgYWxsIHRoZSBzYW1lIG9mIFIyLjAs IHdpdGggYW4gYWRkaXRpb25hbCBBQkkgYW5ub3VuY2VtZW50Lg0KVGhlbiBub3RoaW5nIG5lZWRz IHRvIGJlIHRlc3RlZC4NCg0KLSBIZWxpbg0KDQo+IA0KPiAJLSBQYW51IC0NCg==