From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zhao1, Wei" Subject: Re: [PATCH v2 1/2] net/i40e: fix clear xstats bug in vf port Date: Fri, 22 Sep 2017 07:51:14 +0000 Message-ID: References: <20170829022806.68101-1-wei.zhao1@intel.com> <9e09b6bb-1df3-590f-0f9c-9d94606985c5@intel.com> <8c4a5650-946b-0112-358f-346b74d42aba@intel.com> <0df9305d-409c-e137-9a3a-349292c63ecb@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: "Wu, Jingjing" To: "Yigit, Ferruh" , "dev@dpdk.org" Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 265402C01 for ; Fri, 22 Sep 2017 09:51:17 +0200 (CEST) In-Reply-To: Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGksICBGZXJydWgNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBZaWdp dCwgRmVycnVoDQo+IFNlbnQ6IEZyaWRheSwgU2VwdGVtYmVyIDIyLCAyMDE3IDU6MDEgQU0NCj4g VG86IFpoYW8xLCBXZWkgPHdlaS56aGFvMUBpbnRlbC5jb20+OyBkZXZAZHBkay5vcmcNCj4gQ2M6 IFd1LCBKaW5namluZyA8amluZ2ppbmcud3VAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW2Rw ZGstZGV2XSBbUEFUQ0ggdjIgMS8yXSBuZXQvaTQwZTogZml4IGNsZWFyIHhzdGF0cyBidWcgaW4g dmYNCj4gcG9ydA0KPiANCj4gT24gOS8yMS8yMDE3IDc6MTYgUE0sIEZlcnJ1aCBZaWdpdCB3cm90 ZToNCj4gPiBPbiA5LzIxLzIwMTcgNDoxMSBBTSwgWmhhbzEsIFdlaSB3cm90ZToNCj4gPj4gSGnv vIxGZXJydWgNCj4gPj4NCj4gPj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+PiBG cm9tOiBZaWdpdCwgRmVycnVoDQo+ID4+PiBTZW50OiBUaHVyc2RheSwgU2VwdGVtYmVyIDE0LCAy MDE3IDk6MzEgUE0NCj4gPj4+IFRvOiBaaGFvMSwgV2VpIDx3ZWkuemhhbzFAaW50ZWwuY29tPjsg ZGV2QGRwZGsub3JnDQo+ID4+PiBDYzogV3UsIEppbmdqaW5nIDxqaW5namluZy53dUBpbnRlbC5j b20+DQo+ID4+PiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggdjIgMS8yXSBuZXQvaTQw ZTogZml4IGNsZWFyIHhzdGF0cw0KPiA+Pj4gYnVnIGluIHZmIHBvcnQNCj4gPj4+DQo+ID4+PiBP biA5LzEvMjAxNyAzOjMwIEFNLCBaaGFvMSwgV2VpIHdyb3RlOg0KPiA+Pj4+IEhpLCAgRmVycnVo DQo+ID4+Pj4NCj4gPj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+Pj4gRnJv bTogWWlnaXQsIEZlcnJ1aA0KPiA+Pj4+PiBTZW50OiBGcmlkYXksIFNlcHRlbWJlciAxLCAyMDE3 IDEyOjU0IEFNDQo+ID4+Pj4+IFRvOiBaaGFvMSwgV2VpIDx3ZWkuemhhbzFAaW50ZWwuY29tPjsg ZGV2QGRwZGsub3JnDQo+ID4+Pj4+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2MiAx LzJdIG5ldC9pNDBlOiBmaXggY2xlYXIgeHN0YXRzDQo+ID4+Pj4+IGJ1ZyBpbiB2ZiBwb3J0DQo+ ID4+Pj4+DQo+ID4+Pj4+IE9uIDgvMjkvMjAxNyAzOjI4IEFNLCBXZWkgWmhhbyB3cm90ZToNCj4g Pj4+Pj4+IFRoZXJlIGlzIGEgYnVnIGluIHZmIGNsZWFyIHhzdGF0cyBjb21tYW5kLCBpdCBkbyBu b3QgcmVjb3JkIHRoZQ0KPiA+Pj4+Pj4gc3RhdGljcyBkYXRhIGluIG9mZnNldCBzdHJ1Y3QgbWVt YmVyLlNvLCB2ZiBuZWVkIHRvIGtlZXAgcmVjb3JkDQo+ID4+Pj4+PiBvZiB4c3RhdHMgZGF0YSBm cm9tIHBmIGFuZCB1cGRhdGUgdGhlIHN0YXRpY3MgYWNjb3JkaW5nIHRvIG9mZnNldC4NCj4gPj4+ Pj4+DQo+ID4+Pj4+PiBGaXhlczogZGE2MWNkMDg0OTc2NiAoImk0MGV2ZjogYWRkIGV4dGVuZGVk IHN0YXRzIikNCj4gPj4+Pj4+DQo+ID4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBXZWkgWmhhbyA8d2Vp LnpoYW8xQGludGVsLmNvbT4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiAtLS0NCj4gPj4+Pj4+DQo+ID4+ Pj4+PiBDaGFuZ2VzIGluIHYyOg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+ICBmaXggcGF0Y2ggbG9nIGNo ZWNrIHdhcm5pbmcuDQo+ID4+Pj4+PiAtLS0NCj4gPj4+Pj4+ICBhcHAvdGVzdC1wbWQvY29uZmln LmMgICAgICAgICAgICAgfCAgNiArKy0tDQo+ID4+Pj4+PiAgZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldl92Zi5jIHwgNjQNCj4gPj4+Pj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLQ0KPiA+Pj4+Pj4gIDIgZmlsZXMgY2hhbmdlZCwgNjcgaW5zZXJ0aW9ucygrKSwg MyBkZWxldGlvbnMoLSkNCj4gPj4+Pj4+DQo+ID4+Pj4+PiBkaWZmIC0tZ2l0IGEvYXBwL3Rlc3Qt cG1kL2NvbmZpZy5jIGIvYXBwL3Rlc3QtcG1kL2NvbmZpZy5jIGluZGV4DQo+ID4+Pj4+PiAzYWUz ZTFjLi4xNDEzMWQ2IDEwMDY0NA0KPiA+Pj4+Pj4gLS0tIGEvYXBwL3Rlc3QtcG1kL2NvbmZpZy5j DQo+ID4+Pj4+PiArKysgYi9hcHAvdGVzdC1wbWQvY29uZmlnLmMNCj4gPj4+Pj4+IEBAIC0yMDMs OCArMjAzLDEwIEBAIG5pY19zdGF0c19kaXNwbGF5KHBvcnRpZF90IHBvcnRfaWQpDQo+ID4+Pj4+ PiAgCWlmIChkaWZmX2N5Y2xlcyA+IDApDQo+ID4+Pj4+PiAgCQlkaWZmX2N5Y2xlcyA9IHByZXZf Y3ljbGVzW3BvcnRfaWRdIC0gZGlmZl9jeWNsZXM7DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gLQlkaWZm X3BrdHNfcnggPSBzdGF0cy5pcGFja2V0cyAtIHByZXZfcGt0c19yeFtwb3J0X2lkXTsNCj4gPj4+ Pj4+IC0JZGlmZl9wa3RzX3R4ID0gc3RhdHMub3BhY2tldHMgLSBwcmV2X3BrdHNfdHhbcG9ydF9p ZF07DQo+ID4+Pj4+PiArCWRpZmZfcGt0c19yeCA9IChzdGF0cy5pcGFja2V0cyA+IHByZXZfcGt0 c19yeFtwb3J0X2lkXSkgPw0KPiA+Pj4+Pj4gKwkJKHN0YXRzLmlwYWNrZXRzIC0gcHJldl9wa3Rz X3J4W3BvcnRfaWRdKSA6IDA7DQo+ID4+Pj4+PiArCWRpZmZfcGt0c190eCA9IChzdGF0cy5vcGFj a2V0cyA+IHByZXZfcGt0c190eFtwb3J0X2lkXSkgPw0KPiA+Pj4+Pj4gKwkJKHN0YXRzLm9wYWNr ZXRzIC0gcHJldl9wa3RzX3R4W3BvcnRfaWRdKSA6IDA7DQo+ID4+Pj4+DQo+ID4+Pj4+IEkgZ3Vl c3MgdGhpcyB0ZXN0cG1kIHVwZGF0ZSBpcyBub3QgZGlyZWN0bHkgcmVsYXRlZCB0byB0aGlzIHBh dGNoLA0KPiA+Pj4+PiBidXQgdG8gcHJvdGVjdCB0ZXN0cG1kIGFnYWluc3QgdmFsdWUgb3ZlcmZs b3c/IENhbiB0aGlzIGJlIGFub3RoZXINCj4gcGF0Y2g/DQo+ID4+Pj4NCj4gPj4+PiBOb25vbm8s IHRoaXMgY29kZSBjaGFuZ2UgaXMgZGlyZWN0bHkgcmVsYXRlZCB0byB0aGlzIHBhdGNoLCBpZiB3 ZQ0KPiA+Pj4+IGRvIG5vdCBkbyB0aGlzIGNvZGUgY2hhbmdlLCB0aGUgZGlmZl9wa3RzX3J4IGFu ZCBkaWZmX3BrdHNfdHgNCj4gPj4+PiBzdGF0aXN0aWMgZGF0YSB3aWxsDQo+ID4+PiBiZSB3cm9u ZyAgd2hlbiB0aGUgZmlyc3QgdGltZSBhZnRlciBjbGVhciB4c3RhdHMgY29tbWFuZC4NCj4gPj4+ DQo+ID4+PiBJZiB0aGlzIHRlc3RwbWQgY29kZSBpcyBvbmx5IHdyb25nIGZvciBpNDBlIHZmIGFm dGVyIHRoaXMgcGF0Y2gsDQo+ID4+PiBwZXJoYXBzIHNvbWV0aGluZyBlbHNlIGlzIHdyb25nPyBQ ZXJoYXBzIHdlIHNob3VsZCB1cGRhdGUgaTQwZSB2Zg0KPiBzdGF0cy4NCj4gPj4+DQo+ID4+PiBP UiwgaWYgdGhpcyBjb2RlIGlzIGFscmVhZHkgd3JvbmcsIGxldHMgbW92ZSBpdCB0byBpdHMgb3du IHBhdGNoLg0KPiA+Pj4NCj4gPj4NCj4gPj4gQSBuZXcgcGF0Y2ggd2lsbCBiZSBjb21taXQgbGF0 ZXIuDQo+ID4+DQo+ID4+Pj4NCj4gPj4+Pj4NCj4gPj4+Pj4gPC4uLj4NCj4gPj4+Pj4NCj4gPj4+ Pj4+ICBzdGF0aWMgaW50DQo+ID4+Pj4+PiAgaTQwZXZmX2dldF9zdGF0aXN0aWNzKHN0cnVjdCBy dGVfZXRoX2RldiAqZGV2LCBzdHJ1Y3QNCj4gPj4+Pj4+IHJ0ZV9ldGhfc3RhdHMNCj4gPj4+Pj4+ ICpzdGF0cykgIHsNCj4gPj4+Pj4+ICAJaW50IHJldDsNCj4gPj4+Pj4+ICAJc3RydWN0IGk0MGVf ZXRoX3N0YXRzICpwc3RhdHMgPSBOVUxMOw0KPiA+Pj4+Pj4gKwlzdHJ1Y3QgaTQwZV92ZiAqdmYg PSBJNDBFVkZfREVWX1BSSVZBVEVfVE9fVkYoZGV2LQ0KPiA+ZGF0YS0NCj4gPj4+Pj4+IGRldl9w cml2YXRlKTsNCj4gPj4+Pj4+ICsJc3RydWN0IGk0MGVfdnNpICp2c2kgPSAmdmYtPnZzaTsNCj4g Pj4+Pj4+DQo+ID4+Pj4+PiAgCXJldCA9IGk0MGV2Zl91cGRhdGVfc3RhdHMoZGV2LCAmcHN0YXRz KTsNCj4gPj4+Pj4+ICAJaWYgKHJldCAhPSAwKQ0KPiA+Pj4+Pj4gIAkJcmV0dXJuIDA7DQo+ID4+ Pj4+Pg0KPiA+Pj4+Pj4gKwlpNDBldmZfdXBkYXRlX3ZzaV9zdGF0cyh2c2ksIHBzdGF0cyk7DQo+ ID4+Pj4+DQo+ID4+Pj4+IEJ1dCBub3QgaGF2aW5nIHRoaXMgcHJldmlvdXNseSBtZWFucyBhbGwg VkYgc3RhdHMgd2VyZSB3cm9uZw0KPiA+Pj4+PiBwcmV2aW91c2x5LCBub3Qgb25seSBleHRlbmRl ZCBvbmVzLCBhbHNvIGJhc2ljIG9uZXMuIEFuZCBub3Qgbm90DQo+ID4+Pj4+IHdyb25nIHdpdGgg c21hbGwgZGlmZmVyZW5jZSwgdGhpcyBzaG91bGQgZ2l2ZSBhIGJpZyBkaWZmZXJlbmNlIGluIHRo ZQ0KPiBzdGF0cy4NCj4gPj4+Pj4NCj4gPj4+Pj4gSSBhbSBzdXNwaWNpb3VzIGFib3V0IHRoaXMg cGFydCwgYmVjYXVzZSBpZiB0aGlzIGlzIHRoZSBjYXNlLCBJDQo+ID4+Pj4+IHdvdWxkIGV4cGVj dCB0aGlzIHNob3VsZCBiZSBkZXRlY3RlZCBlYXJsaWVyLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBJIGhh dmUgbm90IHRyYWNlZCB0aGUgY29kZSwgYnV0IGlzIHRoZXJlIGFueSBjaGFuY2UgdGhhdA0KPiA+ Pj4gImV0aF9zdGF0c19vZmZzZXQiDQo+ID4+Pj4+IGhhcyBiZWVuIHVzZWQgYnkgb3RoZXIgZW5k IG9mIHRoZSBhZG1pbiBjb21tYW5kPw0KPiA+Pj4+DQo+ID4+Pj4gVG8gYmUgZnJhbmtseSBzcGVh a2luZywgdGhpcyBidWcgaXMgZmlyc3RseSBkaXNjb3ZlcmVkIGJ5IGEgYmlnIHVzZXIuDQo+ID4+ Pj4gVGhpcyBidWcgb25seSBhcHBlYXIgYWZ0ZXIgdXNlIENMSSAiY2xlYXIgcG9ydCB4c3RhdHMg MCIuIFNvIGl0IGlzDQo+ID4+Pj4gbm90IGVhc3kgdG8NCj4gPj4+IGRldGVjdCB0aGlzIGJ1Zy4N Cj4gPj4+PiBBZnRlciB1c2luZyB0aGlzIGZpeCBwYXRjaCAsdGhlIGJpZyB1c2VyIHdobyByZXBv cnQgdGhpcyBpc3N1ZSBoYXMNCj4gPj4+PiBmZWVkIGJhY2sgaXQNCj4gPj4+IHdvcmsgd2VsbCBu b3cuDQo+ID4+Pj4gVGhlIHJvb3QgY2F1c2UgaXMgbm90IHNvIGNvbXBsaWNhdGVkLCB3aGVuIHRo ZSBwZiB3aGljaCBhZG1pbiB0aGlzDQo+ID4+Pj4gdmYgaXMgaW4ga2VybmVsIHN0YXRlLCBEUERL IGNhbiBub3QgR2l2ZSBwZiB0aGUgaW5mbyB0byBjbGVhciBhbmQNCj4gPj4+PiB1cGRhdGUgb2Zm c2V0IGNvbW1hbmQsIHNvIHZmIGNhbiBvbmx5IGtlZXAgcmVjb3JkIHRoZSBvZmZzZXQgZGF0YQ0K PiA+Pj4+IGluIERQREsgVkYNCj4gPj4+IHBvcnQgbG9jYWxseS4NCj4gPj4+DQo+ID4+PiBQbGVh c2UgaGVscCBtZSB1bmRlcnN0YW5kIHRoaXMuDQo+ID4+Pg0KPiA+Pj4gMS0gVGhlIHByb2JsZW0g eW91IGFyZSBmaXhpbmcgb25seSBzZWVuIHdpdGggTGludXggUEYsIHdpdGggRFBESyBQRg0KPiA+ Pj4geW91IGRvbid0IHNlZSB0aGUgcHJvYmxlbSwgY29ycmVjdD8gSWYgc28gdGhpcyBzaG91bGQg YmUgcGFydCBvZiBjb21taXQNCj4gbG9nLg0KPiA+Pj4NCj4gPj4+IDItIEFzIEkgY2hlY2tlZCB0 aGUgTGludXggZHJpdmVyIGNvZGUsIGl0IGRvZXMgc2FtZSB0aGluZyB3aXRoIERQREs6DQo+ID4+ PiBhKSBpbiBQRiBzaWRlLCByZWFkIGZyb20gcmVnaXN0ZXJzDQo+ID4+PiBiKSByZW1vdmVkIHZz aS0+ZXRoX3N0YXRzX29mZnNldHMgZnJvbSByZWFkIHZhbHVlcw0KPiA+Pj4gYykgc2V0IHZzaS0+ ZXRoX3N0YXRzDQo+ID4+PiBTbyB2c2ktPmV0aF9zdGF0cyBzaG91bGQgYmUgdmFsaWQsIGNhbiB5 b3UgcGxlYXNlIGVsYWJvcmF0ZSB0aGUNCj4gPj4+IGlzc3VlIHdpdGggTGludXggUEYuDQo+ID4+ Pg0KPiA+Pj4gMy0gVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGk0MGV2Zl91cGRhdGVfdnNpX3N0YXRz KCksIHdoaWNoIHJlbW92ZXMNCj4gPj4+IHZzaS0+ZXRoX3N0YXRzX29mZnNldCBmcm9tIHN0YXRz IHJlY2VpdmVkIGZyb20gUEYuDQo+ID4+PiBCdXQgZm9yIERQREsgUEYgY2FzZSwgdGhlIHN0YXRz IHJlY2VpdmVkIGZyb20gUEYgYXJlIGFscmVhZHkgcmVtb3Zlcw0KPiA+Pj4gdnNpLT5ldGhfc3Rh dHNfb2Zmc2V0LCB3b24ndCB0aGlzIHdpbGwgYmUgYSBkdXBsaWNhdGUsIGFuZCBnaXZlDQo+ID4+ PiB2c2ktPndyb25nDQo+ID4+PiB2YWx1ZXMgZm9yIHRoZSBEUERLIFBGIGNhc2UgPw0KPiA+Pj4N Cj4gPj4+IDQtIElzIFZGIHN0YXRzIHJlZ2lzdGVycywgcmVzZXQgb24gcmVhZD8gSSBtZWFuIHRo ZSByZWNlaXZlZCBzdGF0cw0KPiA+Pj4gdmFsdWVzIHZpYQ0KPiA+Pj4gaTQwZXZmX3VwZGF0ZV9z dGF0cygpIGFyZSB2YWx1ZXMgZnJvbSBwcmV2aW91cyByZWFkLCBvciBjdW11bGF0aXZlDQo+IHZh bHVlcz8NCj4gPj4+DQo+ID4+DQo+ID4+IFRoaXMgcGF0Y2ggb25seSBmaXggdmYgcG9ydCBjbGVh ciB4c3RhdHMgZXJyb3IsIGJlY2F1c2UgcGYgaGFzIG5vIHN1Y2gNCj4gcHJvYmxlbS4NCj4gPj4g VG8gdW5kZXJzdGFuZCB0aGlzIHBhdGNoICwgeW91IGNhbiBjb21wYXJlIHRoZSBkaWZmZXJlbmNl IGJldHdlZW4gcGYNCj4gPj4gYW5kIHZmIENvZGUgd2hlbiBwb2Nlc3MgY2xlYXIgeHN0YXRzIGNv bW1hbmQuIFlvdSB3aWxsIGZpbmQgcGYgaGFzIGENCj4gPj4gcmVjb3JkIHNjaGVtZSB3aGVuIFJl Y2VpdmUgY2xlYXIgeHN0YXRzIGNvbW1hbmQuIFdoYXQgdmYgZGlkIGlzIHRoZQ0KPiBzYW1lIGFz IHBmLg0KPiA+DQo+ID4gSGkgV2VpLA0KPiA+DQo+ID4gVGhpcyBpcyBub3QgaGVscGluZyBtdWNo IDopIFBsZWFzZSBiYXJlIHdpdGggbWUgYW5kIGxldCBtZSB0cnkgYWdhaW4uDQo+ID4NCj4gPiBB cyBmYXIgYXMgSSB1bmRlcnN0YW5kIHlvdSBhcmUgYmFzZWxpbmluZyBzdGF0cyBpbiBWRi4NCj4g Pg0KPiA+IDEpIElzIHRoaXMgcHJvYmxlbSBvbmx5IHNlZW4gd2l0aCBMaW51eCBQRj8NCj4gPg0K PiA+IDIpIElmIHRoaXMgaXMgc2VlbiBvbmx5IGluIExpbnV4IFBGLCBpcyBpdCBiZWNhdXNlIG9m IFsxXT8NCj4gPg0KPiA+IDMpIERQREsgUEYgYWxyZWFkeSBzZW5kcyB0aGUgYmFzZWxpbmVkIHN0 YXRzLCB3b24ndCB0aGlzIGNhdXNlDQo+ID4gZHVwbGljYXRlZCBiYXNlbGluaW5nIGZvciBEUERL IFBGIGNhc2UgYW5kIGdpdmUgd3JvbmcgdmFsdWVzLg0KPiA+DQo+ID4gNCkgV2h5IGJlbG93IFsy XSBpcyByZXF1aXJlZCwgaXMgaXQgYmVjYXVzZSBvZiBbMV0/DQo+ID4NCj4gPg0KPiA+IFsxXQ0K PiA+IHZmLT52c2kgdHlwZSBpcyAic3RydWN0IGk0MGVfdnNpIiwgYW5kIHRoaXMgc3RydWN0dXJl IGlzIG5vdCBiaW5hcnkNCj4gPiBjb21wYXRpYmxlIGJldHdlZW4gTGludXggYW5kIERQREssIHNv IHlvdSBjYW4ndCB1c2UgdGhpcyBzdHJ1Y3QgdG8NCj4gPiBjb21tdW5pY2F0ZSBiZXR3ZWVuIExp bnV4IFBGIGFuZCBEUERLIFZGLg0KPiA+DQo+ID4gSWYgdGhpcyBpcyB0aGUgY2FzZSwgY2FuIHVw ZGF0aW5nIERQREsgInN0cnVjdCBpNDBlX3ZzaSIgYmUgbG9uZyB0ZXJtDQo+ID4gZml4IHRvIHRo aXMgcHJvYmxlbT8NCj4gDQo+IEFoYSEsIEkgZ290IGl0LCB0aGlzIGlzIG5vdGhpbmcgcmVsYXRl ZCB0byBiZWluZyBiaW5hcnkgY29tcGF0aWJsZSBldGMuLg0KPiANCj4gSSB3YXMgdGhpbmtpbmcg UEYgYW5kIFZGIHNoYXJpbmcgdGhlIHZzaSBpbmZvcm1hdGlvbiwgYnV0IG5vIHRoZXkgY2FuJ3Qs IHRoZXkNCj4gYXJlIGluIHR3byBkaWZmZXJlbnQgY29udGV4dC4gU28gdGhlcmUgaXMgbm8gd2F5 IFZGIGNhbiB1cGRhdGUNCj4gdnNpLT5vZmZzZXQgaW4gUEYgKHVubGVzcyB0aGVyZSBpcyBhbiBh cSBmb3IgaXQpLCBzbyB0aGUgYmFzZWxpbmluZyBkb25lDQo+IGluIFBGIGlzIHVzZWxlc3Mgc2lu Y2UgUEYgdnNpLT5vZmZzZXQgaXMgYWx3YXlzIHplcm8uIEFuZCB5b3UgbmVlZCB0byBiYXNlbGlu ZQ0KPiBhZ2FpbiBpbiBWRi4NCj4gDQo+IFNvIGFuc3dlciB0byBteSBxdWVzdGlvbnMsIHRoaXMg aXMgcHJvYmxlbSBmb3IgYm90aCBQRnMgYW5kIGRvdWJsZQ0KPiBiYXNlbGluaW5nIGlzIG5vdCBw cm9ibGVtIGJlY2F1c2UgUEYgb25lIGhhcyBubyBlZmZlY3QuDQo+IFBsZWFzZSBjb3JyZWN0IG1l IGlmIEkgYW0gd3JvbmcgOikNCg0KQ29uZ3JhdHVsYXRpb24gdG8geW91LCB5b3UgaGF2ZSBnb3Qg dGhlIGZpbmFsIGFuc3dlciENCg0KDQo+IA0KPiA+DQo+ID4NCj4gPiBUaGFua3MsDQo+ID4gZmVy cnVoDQo+ID4NCj4gPiA8Li4uPg0KPiA+Pj4+Pj4gLTEwMjUsNyArMTA4Myw3IEBAIGk0MGV2Zl9k ZXZfeHN0YXRzX3Jlc2V0KHN0cnVjdCBydGVfZXRoX2Rldg0KPiAqZGV2KQ0KPiA+Pj4+Pj4gIAlp NDBldmZfdXBkYXRlX3N0YXRzKGRldiwgJnBzdGF0cyk7DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gIAkv KiBzZXQgc3RhdHMgb2Zmc2V0IGJhc2Ugb24gY3VycmVudCB2YWx1ZXMgKi8NCj4gPj4+Pj4+IC0J dmYtPnZzaS5ldGhfc3RhdHNfb2Zmc2V0ID0gdmYtPnZzaS5ldGhfc3RhdHM7DQo+ID4+Pj4+PiAr CXZmLT52c2kuZXRoX3N0YXRzX29mZnNldCA9ICpwc3RhdHM7DQo+ID4NCj4gPiBbMl0gPC0tLS0t DQo+ID4NCj4gPiA8Li4uPg0KPiA+DQoNCg==