From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by dpdk.org (Postfix) with ESMTP id C459D1B323 for ; Mon, 12 Feb 2018 16:36:15 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Feb 2018 07:36:13 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.46,501,1511856000"; d="scan'208";a="30133377" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by fmsmga001.fm.intel.com with ESMTP; 12 Feb 2018 07:36:13 -0800 Received: from fmsmsx126.amr.corp.intel.com (10.18.125.43) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 12 Feb 2018 07:36:13 -0800 Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by FMSMSX126.amr.corp.intel.com (10.18.125.43) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 12 Feb 2018 07:36:13 -0800 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.253]) by shsmsx102.ccr.corp.intel.com ([169.254.2.124]) with mapi id 14.03.0319.002; Mon, 12 Feb 2018 23:36:10 +0800 From: "Wang, Xiao W" To: Maxime Coquelin , "dev@dpdk.org" CC: "Tan, Jianfeng" , "Bie, Tiwei" , "yliu@fridaylinux.org" , "Liang, Cunming" , "Daly, Dan" , "Wang, Zhihong" Thread-Topic: [PATCH 2/3] net/vdpa_virtio_pci: introduce vdpa sample driver Thread-Index: AQHTnchjq17hQz6uhEmu7g2DooiWmaOW6qyAgALbi5D///D/gIAGibbw Date: Mon, 12 Feb 2018 15:36:09 +0000 Message-ID: References: <20180204145542.38345-1-xiao.w.wang@intel.com> <20180204145542.38345-3-xiao.w.wang@intel.com> <1909c444-4b88-bbb3-9fc2-b85ac8a3f5cb@redhat.com> In-Reply-To: <1909c444-4b88-bbb3-9fc2-b85ac8a3f5cb@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZmJkZWI1YTMtZDM0Mi00MzQ0LWE2MWQtYmUzYWI1YjllZDJjIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiI2QTNadmJpbCt0YkhjSXJhSWl0dWtjUVVMSWtPQnRUNG5rOHg3Z2pIZlBpUTh1VkZKckdyS1pkd2tEMTVpOEdxIn0= dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action 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-dev] [PATCH 2/3] net/vdpa_virtio_pci: introduce vdpa sample driver 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: , X-List-Received-Date: Mon, 12 Feb 2018 15:36:16 -0000 SGkgTWF4aW1lLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE1heGlt ZSBDb3F1ZWxpbiBbbWFpbHRvOm1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tXQ0KPiBTZW50OiBU aHVyc2RheSwgRmVicnVhcnkgOCwgMjAxOCA1OjA5IFBNDQo+IFRvOiBXYW5nLCBYaWFvIFcgPHhp YW8udy53YW5nQGludGVsLmNvbT47IGRldkBkcGRrLm9yZw0KPiBDYzogVGFuLCBKaWFuZmVuZyA8 amlhbmZlbmcudGFuQGludGVsLmNvbT47IEJpZSwgVGl3ZWkgPHRpd2VpLmJpZUBpbnRlbC5jb20+ Ow0KPiB5bGl1QGZyaWRheWxpbnV4Lm9yZzsgTGlhbmcsIEN1bm1pbmcgPGN1bm1pbmcubGlhbmdA aW50ZWwuY29tPjsgRGFseSwgRGFuDQo+IDxkYW4uZGFseUBpbnRlbC5jb20+OyBXYW5nLCBaaGlo b25nIDx6aGlob25nLndhbmdAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIIDIvM10g bmV0L3ZkcGFfdmlydGlvX3BjaTogaW50cm9kdWNlIHZkcGEgc2FtcGxlIGRyaXZlcg0KPiANCj4g SGkgWGlhbywNCj4gDQo+IE9uIDAyLzA4LzIwMTggMDM6MjMgQU0sIFdhbmcsIFhpYW8gVyB3cm90 ZToNCj4gPiBIaSBNYXhpbWUsDQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4gPj4gRnJvbTogTWF4aW1lIENvcXVlbGluIFttYWlsdG86bWF4aW1lLmNvcXVlbGluQHJlZGhh dC5jb21dDQo+ID4+IFNlbnQ6IFR1ZXNkYXksIEZlYnJ1YXJ5IDYsIDIwMTggMTA6MjQgUE0NCj4g Pj4gVG86IFdhbmcsIFhpYW8gVyA8eGlhby53LndhbmdAaW50ZWwuY29tPjsgZGV2QGRwZGsub3Jn DQo+ID4+IENjOiBUYW4sIEppYW5mZW5nIDxqaWFuZmVuZy50YW5AaW50ZWwuY29tPjsgQmllLCBU aXdlaQ0KPiA8dGl3ZWkuYmllQGludGVsLmNvbT47DQo+ID4+IHlsaXVAZnJpZGF5bGludXgub3Jn OyBMaWFuZywgQ3VubWluZyA8Y3VubWluZy5saWFuZ0BpbnRlbC5jb20+OyBEYWx5LCBEYW4NCj4g Pj4gPGRhbi5kYWx5QGludGVsLmNvbT47IFdhbmcsIFpoaWhvbmcgPHpoaWhvbmcud2FuZ0BpbnRl bC5jb20+DQo+ID4+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggMi8zXSBuZXQvdmRwYV92aXJ0aW9fcGNp OiBpbnRyb2R1Y2UgdmRwYSBzYW1wbGUgZHJpdmVyDQo+ID4+DQo+ID4+IEhpIFhpYW8sDQo+ID4+ DQo+ID4+IE9uIDAyLzA0LzIwMTggMDM6NTUgUE0sIFhpYW8gV2FuZyB3cm90ZToNCj4gPj4+IFRo aXMgZHJpdmVyIGlzIGEgcmVmZXJlbmNlIHNhbXBsZSBvZiBtYWtpbmcgdkRQQSBkZXZpY2UgZHJp dmVyIGJhc2VkDQo+ID4+PiBvbiB2aG9zdCBsaWIsIHRoaXMgZHJpdmVyIHVzZXMgYSBzdGFuZGFy ZCB2aXJ0aW8tbmV0IFBDSSBkZXZpY2UgYXMNCj4gPj4+IHZEUEEgZGV2aWNlLCBpdCBjYW4gc2Vy dmUgYXMgYSBiYWNrZW5kIGZvciBhIHZpcnRpby1uZXQgcGNpIGRldmljZQ0KPiA+Pj4gaW4gbmVz dGVkIFZNLg0KPiA+Pj4NCj4gPj4+IFRoZSBrZXkgZHJpdmVyIG9wcyBpbXBsZW1lbnRlZCBhcmU6 DQo+ID4+Pg0KPiA+Pj4gKiB2ZHBhX3ZpcnRpb19lbmdfaW5pdA0KPiA+Pj4gTWFwcGluZyB2aXJ0 aW8gcGNpIGRldmljZSB3aXRoIFZGSU8gaW50byB1c2Vyc3BhY2UsIGFuZCByZWFkIGRldmljZQ0K PiA+Pj4gY2FwYWJpbGl0eSBhbmQgaW50aWFsaXplIGludGVybmFsIGRhdGEuDQo+ID4+Pg0KPiA+ Pj4gKiB2ZHBhX3ZpcnRpb19lbmdfdW5pbml0DQo+ID4+PiBSZWxlYXNlIHRoZSBtYXBwZWQgZGV2 aWNlLg0KPiA+Pj4NCj4gPj4+ICogdmRwYV92aXJ0aW9faW5mb19xdWVyeQ0KPiA+Pj4gRGV2aWNl IGNhcGFiaWxpdHkgcmVwb3J0aW5nLCBlLmcuIHF1ZXVlIG51bWJlciwgZmVhdHVyZXMuDQo+ID4+ Pg0KPiA+Pj4gKiB2ZHBhX3ZpcnRpb19kZXZfY29uZmlnDQo+ID4+PiBXaXRoIHRoZSBndWVzdCB2 aXJ0aW8gaW5mb3JtYXRpb24gcHJvdmlkZWVkIGJ5IHZob3N0IGxpYiwgdGhpcw0KPiA+Pj4gZnVu Y3Rpb24gY29uZmlndXJlcyBkZXZpY2UgYW5kIElPTU1VIHRvIHNldCB1cCB2aG9zdCBkYXRhcGF0 aCwNCj4gPj4+IHdoaWNoIGluY2x1ZGVzOiBSeC9UeCB2cmluZywgVkZJTyBpbnRlcnJ1cHQsIGtp Y2sgcmVsYXkuDQo+ID4+Pg0KPiA+Pj4gKiB2ZHBhX3ZpcnRpb19kZXZfY2xvc2UNCj4gPj4+IFVu c2V0IHRoZSBzdHVmZiB0aGF0IGFyZSBjb25maWd1cmVkIHByZXZpb3VzbHkgYnkgZGV2X2NvbmYu DQo+ID4+Pg0KPiA+Pj4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgdGhlIHZpcnRpbyBkZXZpY2Ugc3Vw cG9ydHMNCj4gVklSVElPX0ZfSU9NTVVfUExBVEZPUk0NCj4gPj4+ICwgYmVjYXVzZSB0aGUgYnVm ZmVyIGFkZHJlc3Mgd3JpdHRlbiBpbiBkZXNjIGlzIElPVkEuDQo+ID4+Pg0KPiA+Pj4gQmVjYXVz ZSB2RFBBIGRyaXZlciBuZWVkcyB0byBzZXQgdXAgTVNJLVggdmVjdG9yIHRvIGludGVycnVwdCB0 aGUgZ3Vlc3QsDQo+ID4+PiBvbmx5IHZmaW8tcGNpIGlzIHN1cHBvcnRlZCBjdXJyZW50bHkuDQo+ ID4+Pg0KPiA+Pj4gU2lnbmVkLW9mZi1ieTogWGlhbyBXYW5nPHhpYW8udy53YW5nQGludGVsLmNv bT4NCj4gPj4+IC0tLQ0KPiA+Pj4gICAgY29uZmlnL2NvbW1vbl9iYXNlICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICA2ICsNCj4gPj4+ICAgIGNvbmZpZy9jb21tb25fbGludXhh cHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArDQo+ID4+PiAgICBkcml2ZXJz L25ldC9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKw0KPiA+ Pj4gICAgZHJpdmVycy9uZXQvdmRwYV92aXJ0aW9fcGNpL01ha2VmaWxlICAgICAgICAgICAgICAg fCAgIDMxICsNCj4gPj4+ICAgIC4uLi9uZXQvdmRwYV92aXJ0aW9fcGNpL3J0ZV9ldGhfdmRwYV92 aXJ0aW9fcGNpLmMgIHwgMTUyNw0KPiA+PiArKysrKysrKysrKysrKysrKysrKw0KPiA+Pj4gICAg Li4uL3J0ZV92ZHBhX3ZpcnRpb19wY2lfdmVyc2lvbi5tYXAgICAgICAgICAgICAgICAgfCAgICA0 ICsNCj4gPj4+ICAgIG1rL3J0ZS5hcHAubWsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgMSArDQo+ID4+PiAgICA3IGZpbGVzIGNoYW5nZWQsIDE1NzEgaW5zZXJ0aW9u cygrKQ0KPiA+Pj4gICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbmV0L3ZkcGFfdmlydGlv X3BjaS9NYWtlZmlsZQ0KPiA+Pj4gICAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+IGRyaXZlcnMvbmV0 L3ZkcGFfdmlydGlvX3BjaS9ydGVfZXRoX3ZkcGFfdmlydGlvX3BjaS5jDQo+ID4+PiAgICBjcmVh dGUgbW9kZSAxMDA2NDQNCj4gPj4gZHJpdmVycy9uZXQvdmRwYV92aXJ0aW9fcGNpL3J0ZV92ZHBh X3ZpcnRpb19wY2lfdmVyc2lvbi5tYXANCj4gPj4NCj4gPj4gSXMgdGhlcmUgYSBzcGVjaWZpYyBj b25zdHJhaW50IHRoYXQgbWFrZXMgeW91IGV4cG9zZSBQQ0kgZnVuY3Rpb25zIGFuZA0KPiA+PiBk dXBsaWNhdGUgYSBsb3Qgb2YgdmZpbyBjb2RlIGludG8gdGhlIGRyaXZlcj8NCj4gPg0KPiA+IFRo ZSBleGlzdGluZyB2ZmlvIGNvZGUgZG9lc24ndCBmaXQgVkRQQSB3ZWxsLCB0aGlzIHZEUEEgZHJp dmVyIG5lZWRzIHRvDQo+IHByb2dyYW0gSU9NTVUgZm9yIGEgdkRQQSBkZXZpY2Ugd2l0aCBhIFZN J3MgbWVtb3J5IHRhYmxlLg0KPiA+IFdoaWxlIHRoZSBlYWwvdmZpbyB1c2VzIGEgc3RydWN0IHZm aW9fY2ZnIHRvIHRha2VzIGFsbCByZWd1bGFyIGRldmljZXMgYW5kIGFkZA0KPiB0aGVtIHRvIGEg c2luZ2xlIHZmaW9fY29udGFpbmVyLCBhbmQgcHJvZ3JhbSBJT01NVSB3aXRoIERQREsgcHJvY2Vz cydzDQo+IG1lbW9yeSB0YWJsZS4NCj4gPg0KPiA+IFRoaXMgZHJpdmVyIGRvaW5nIFBDSSBWRklP IGluaXRpYWxpemF0aW9uIGl0c2VsZiBjYW4gYXZvaWQgYWZmZWN0aW5nIHRoZSBnbG9iYWwNCj4g dmZpb19jZmcgc3RydWN0dXJlLg0KPiANCj4gT2ssIEkgZ2V0IGl0Lg0KPiBTbyBJIHRoaW5rIHdo YXQgeW91IGhhdmUgdG8gZG8gaXMgdG8gZXh0ZW5kIGVhbC92ZmlvIGZvciB0aGlzIGNhc2UuDQo+ IE9yIGF0IGxlYXN0LCBoYXZlIGEgdmRwYSBsYXllciB0byBwZXJmb3JtIHRoaXMsIGVsc2UgZXZl cnkgb2ZmbG9hZA0KPiBkcml2ZXIgd2lsbCBoYXZlIHRvIGR1cGxpY2F0ZSB0aGUgY29kZS4NCg0K SSB0aGluayBJIG5lZWQgdG8gZXh0ZW5kIGVhbC92ZmlvIHRvIHByb3ZpZGUgY29udGFpbmVyIGJh c2VkIEFQSXMsIHN1Y2ggYXMgY3JlYXRpbmcgY29udGFpbmVyLA0KdmZpbyBncm91cCBmZCBiaW5k aW5nIHdpdGggY29udGFpbmVyLCBETUFSIHByb2dyYW1taW5nLCBldGMuDQoNCj4gDQo+ID4+DQo+ ID4+IFdvdWxkbid0IGl0IGJlIGJldHRlciAoaWYgcG9zc2libGUpIHRvIHVzZSBSVEVfUE1EX1JF R0lTVEVSX1BDSSgpICYgY28uDQo+ID4+IHRvIGJlbmVmaXQgZnJvbSBhbGwgdGhlIGV4aXN0aW5n IGluZnJhc3RydWN0dXJlPw0KPiA+DQo+ID4gUlRFX1BNRF9SRUdJU1RFUl9QQ0koKSAmIGNvIHdp bGwgbWFrZSB0aGlzIGRyaXZlciBhcyBQQ0kgZHJpdmVyIChwaHlzaWNhbA0KPiBkZXZpY2UpLCB0 aGVuIHRoaXMgd2lsbCBjb25mbGljdCB3aXRoIHRoZSB2aXJ0aW9fcG1kLg0KPiA+IFNvIEkgbWFr ZSB2RFBBIGRldmljZSBkcml2ZXIgYXMgYSB2ZGV2IGRyaXZlci4NCj4gDQo+IFllcywgYnV0IGl0 IGlzIGEgUENJIGRldmljZSwgbm90IGEgdmlydHVhbCBkZXZpY2UuIFlvdSBoYXZlIHRvIGV4dGVu ZA0KPiB0aGUgRUFMIHRvIHN1cHBvcnQgdGhpcyBuZXcgY2xhc3Mgb2YgZGV2aWNlcy9kcml2ZXJz LiBUaGluayBvZiBpdCBhcyBpbg0KPiBrZXJuZWwgd2hlbiBhIE5JQyBkZXZpY2UgY2FuIGJlIGVp dGhlciBiaW5kZWQgdG8gaXRzIE5JQyBkcml2ZXIsIFZGSU8gb3INCj4gVUlPLg0KPiANCj4gSWYg SSBsb29rIGF0IHBhdGNoIDMsIHlvdSBoYXZlIHRvIHNldCAtLW5vLXBjaSwgb3IgYXQgbGVhc3Qg SSB0aGluayB0bw0KPiBibGFja2xpc3QgdGhlIFZpcnRpbyBkZXZpY2UuDQo+IA0KPiBJIHdvbmRl ciBpZiByZWFsIHZEUEEgY2FyZHMgd2lsbCBzdXBwb3J0IGVpdGhlciB2RFBBIG1vZGUgb3Igb3Ig YmVoYXZlDQo+IGxpa2UgYSByZWd1bGFyIE5JQywgbGlrZSB0aGUgVmlydGlvIGNhc2UgaW4geW91 ciBleGFtcGxlLg0KPiBJZiB0aGlzIGlzIHRoZSBjYXNlLCBtYXliZSB0aGUgdkRQQSBjb2RlIGZv ciBhIE5JQyBjb3VsZCBiZSBpbiB0aGUgc2FtZQ0KPiBkcml2ZXIgYXMgdGhlICJOSUMiIG1vZGUu DQo+IEEgbmV3IHN0cnVjdCBydGVfcGNpX2RyaXZlciBkcml2ZXIgZmxhZyBjb3VsZCBiZSBpbnRy b2R1Y2VkIHRvIHNwZWNpZnkNCj4gdGhhdCB0aGUgZHJpdmVyIHN1cHBvcnRzIHZEUEEuDQo+IFRo ZW4sIGluIEVBTCBhcmd1bWVudHMsIGlmIGEgdmhvc3QgdmRldiBzcGVjaWZpZXMgaXQgd2FudHMg VmlydGlvIGRldmljZQ0KPiBhdCBQQ0kgYWRkciAwMDowMTowMCBhcyBvZmZsb2FkLCB0aGUgUENJ IGxheWVyIGNvdWxkIHByb2JlIHRoaXMgZGV2aWNlDQo+IGluICJ2ZHBhIiBtb2RlLg0KDQpDb25z aWRlcmluZyB0aGF0IHdlIGNvdWxkIGhhdmUgYSBwb29sIG9mIHZEUEEgZGV2aWNlcywgd2UgbmVl ZCB0byBoYXZlIGEgcG9ydCBzdXBwb3J0aW5nIHBvcnQgcmVwcmVzZW50b3IsDQppdCBkZWZpbmVz IGNvbnRyb2wgZG9tYWluIHRvIHdoaWNoIHRoZXNlIHZEUEEgZGV2aWNlcyBiZWxvbmcgdG8sIHdl IGNhbiBoYXZlIGEgdmRldiBwb3J0IGZvciB0aGlzDQpwdXJwb3NlIGFuZCB0aGlzIHZkZXYgaGVs cHMgdG8gcmVnaXN0ZXIgdkRQQSBwb3J0cyBieSBwb3J0LXJlcHJlc2VudG9yIGxpYnJhcnkgKHBh dGNoIHN1Ym1pdHRlZCkuDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKy0t LS0tLSsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB2ZGV2IHwNCistLS0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfC0tLS0tLXwNCnxhcHB8LS1yZWdpc3RlciBy ZXByZXNlbnRvciBwb3J0LS0+fGJyb2tlcnwtLT5hZGQgcG9ydCB3aXRoIHZEUEEgZGV2aWNlIDAv MS8yLi4uDQorLS0tKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICstLS0tLS0rDQoNCkkg cGxhbiB0byBzdWJtaXQgdmRwYSBkcml2ZXIgcGF0Y2ggZm9yIGEgcmVhbCB2RFBBIGNhcmQsIHRo YXQgY2FyZCB3aWxsIGhhdmUgZGlmZmVyZW50IHN1YiBkZXZpY2VfaWQvdmVuZG9yX2lkLA0Kc28g d2Ugd29uJ3QgaGF2ZSBjb25mbGljdCBpc3N1ZSBvbiB0aGF0IGRyaXZlci4NCg0KPiANCj4gQWxz bywgSSBkb24ndCBrbm93IGlmIHRoaXMgd2lsbCBiZSBwb3NzaWJsZSB3aXRoIHJlYWwgdkRQQSBj YXJkcywgYnV0IHdlDQo+IGNvdWxkIGhhdmUgdGhlIGFwcGxpY2F0aW9uIGRvaW5nIHBhY2tldCBz d2l0Y2hpbmcgYmV0d2VlbiB2aG9zdC11c2VyDQo+IHZkZXYgYW5kIHRoZSBWaXJ0aW8gZGV2aWNl LiBBbmQgYXQgc29tZSBwb2ludCwgYXQgcnVudGltZSwgc3dpdGNoIGludG8NCj4gdkRQQSBtb2Rl LiBUaGlzIHVzZS1jYXNlIHdvdWxkIGJlIG11Y2ggZWFzaWVyIHRvIGltcGxlbWVudCBpZiB2RFBB DQo+IHJlbGllZCBvbiBleGlzdGluZyBQQ0kgbGF5ZXIuDQoNCkluIHZEUEEgbW9kZSwgZWFjaCB2 aG9zdC11c2VyIGRhdGFwYXRoIGlzIHBlcmZvcm1lZCBieSBhIHZEUEEgZGV2aWNlLA0KSWYgc3dp dGNob3ZlciB0byBub3JtYWwgU1cgcGFja2V0IHN3aXRjaGluZywgaXQgd2lsbCBiZSB0eXBpY2Fs bHkgbWFueSB2aG9zdC11c2VyIHBvcnRzIGFuZCBvbmUgdXBsaW5rIHBvcnQuDQoNClRoYW5rcywN ClhpYW8NCg0KPiANCj4gSSBtYXkgYmUgbm90IHZlcnkgY2xlYXIsIGRvbid0IGhlc2l0YXRlIHRv IGFzayBxdWVzdGlvbnMuDQo+IEJ1dCBnZW5lcmFsbHksIEkgdGhpbmsgdkRQQSBoYXMgdG8gZml0 IGluIGV4aXN0aW5nIERQREsgYXJjaGl0ZWN0dXJlLA0KPiBhbmQgbm90IHRyeSB0byBsaXZlIG91 dHNpZGUgb2YgaXQuDQo+IA0KPiBUaGFua3MsDQo+IE1heGltZQ0KPiA+Pg0KPiA+PiBNYXhpbWUN Cj4gPg0KPiA+IFRoYW5rcyBmb3IgdGhlIGNvbW1lbnRzLA0KPiA+IFhpYW8NCj4gPg0K