From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Xing, Beilei" Subject: Re: [PATCH v6 6/8] net/i40e: add FDIR support for GTP-C and GTP-U Date: Fri, 29 Sep 2017 13:14:22 +0000 Message-ID: <94479800C636CB44BD422CB454846E0132038FF4@SHSMSX101.ccr.corp.intel.com> References: <1506565054-67690-1-git-send-email-beilei.xing@intel.com> <1506662342-18966-1-git-send-email-beilei.xing@intel.com> <1506662342-18966-7-git-send-email-beilei.xing@intel.com> <94479800C636CB44BD422CB454846E0132038E8C@SHSMSX101.ccr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: "Wu, Jingjing" , "Chilikin, Andrey" , "dev@dpdk.org" To: Sean Harte Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id D85AB2661 for ; Fri, 29 Sep 2017 15:14:27 +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" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBTZWFuIEhhcnRlIFttYWlsdG86 c2VhbmJoQGdtYWlsLmNvbV0NCj4gU2VudDogRnJpZGF5LCBTZXB0ZW1iZXIgMjksIDIwMTcgNjox MCBQTQ0KPiBUbzogWGluZywgQmVpbGVpIDxiZWlsZWkueGluZ0BpbnRlbC5jb20+DQo+IENjOiBX dSwgSmluZ2ppbmcgPGppbmdqaW5nLnd1QGludGVsLmNvbT47IENoaWxpa2luLCBBbmRyZXkNCj4g PGFuZHJleS5jaGlsaWtpbkBpbnRlbC5jb20+OyBkZXZAZHBkay5vcmcNCj4gU3ViamVjdDogUmU6 IFtkcGRrLWRldl0gW1BBVENIIHY2IDYvOF0gbmV0L2k0MGU6IGFkZCBGRElSIHN1cHBvcnQgZm9y IEdUUC1DDQo+IGFuZCBHVFAtVQ0KPiANCj4gT24gMjkgU2VwdGVtYmVyIDIwMTcgYXQgMTA6MzMs IFhpbmcsIEJlaWxlaSA8YmVpbGVpLnhpbmdAaW50ZWwuY29tPiB3cm90ZToNCj4gPg0KPiA+DQo+ ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZyb206IFNlYW4gSGFydGUgW21h aWx0bzpzZWFuYmhAZ21haWwuY29tXQ0KPiA+PiBTZW50OiBGcmlkYXksIFNlcHRlbWJlciAyOSwg MjAxNyA0OjE1IFBNDQo+ID4+IFRvOiBYaW5nLCBCZWlsZWkgPGJlaWxlaS54aW5nQGludGVsLmNv bT4NCj4gPj4gQ2M6IFd1LCBKaW5namluZyA8amluZ2ppbmcud3VAaW50ZWwuY29tPjsgQ2hpbGlr aW4sIEFuZHJleQ0KPiA+PiA8YW5kcmV5LmNoaWxpa2luQGludGVsLmNvbT47IGRldkBkcGRrLm9y Zw0KPiA+PiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggdjYgNi84XSBuZXQvaTQwZTog YWRkIEZESVIgc3VwcG9ydCBmb3INCj4gPj4gR1RQLUMgYW5kIEdUUC1VDQo+ID4+DQo+ID4+IE9u IDI5IFNlcHRlbWJlciAyMDE3IGF0IDA2OjE5LCBCZWlsZWkgWGluZyA8YmVpbGVpLnhpbmdAaW50 ZWwuY29tPg0KPiB3cm90ZToNCj4gPj4gPiBUaGlzIHBhdGNoIGFkZHMgRkRJUiBzdXBwb3J0IGZv ciBHVFAtQyBhbmQgR1RQLVUuIFRoZSBpbnB1dCBzZXQgb2YNCj4gPj4gPiBHVFAtQyBhbmQgR1RQ LVUgaXMgVEVJRC4NCj4gPj4gPg0KPiA+PiA+IFNpZ25lZC1vZmYtYnk6IEJlaWxlaSBYaW5nIDxi ZWlsZWkueGluZ0BpbnRlbC5jb20+DQo+ID4+ID4gLS0tDQo+ID4+ID4gIGRyaXZlcnMvbmV0L2k0 MGUvaTQwZV9ldGhkZXYuaCB8ICAzMCArKysrKw0KPiA+PiA+ICBkcml2ZXJzL25ldC9pNDBlL2k0 MGVfZmRpci5jICAgfCAyMDANCj4gKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQ0KPiA+ PiA+ICBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZmxvdy5jICAgfCAyNjMNCj4gPj4gKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0NCj4gPj4gPiAgMyBmaWxlcyBjaGFuZ2Vk LCAzOTYgaW5zZXJ0aW9ucygrKSwgOTcgZGVsZXRpb25zKC0pDQo+ID4+DQo+ID4+IDxzbmlwPg0K PiA+Pg0KPiA+PiA+IEBAIC0xMTczLDEwICsxMTk2LDY5IEBAIGk0MGVfZmxvd19mZGlyX2NvbnN0 cnVjdF9wa3Qoc3RydWN0DQo+IGk0MGVfcGYNCj4gPj4gKnBmLA0KPiA+PiA+DQo+IHJ0ZV9jcHVf dG9fYmVfMTYoRVRIRVJfVFlQRV9BUlApKQ0KPiA+PiA+ICAgICAgICAgICAgICAgICAgICAgICAg IHBheWxvYWQgKz0gc2l6ZW9mKHN0cnVjdCBhcnBfaGRyKTsNCj4gPj4gPiAgICAgICAgICAgICAg ICAgc2V0X2lkeCA9IEk0MEVfRkxYUExEX0wyX0lEWDsNCj4gPj4gPiAtICAgICAgICAgICAgICAg YnJlYWs7DQo+ID4+ID4gLSAgICAgICBkZWZhdWx0Og0KPiA+PiA+IC0gICAgICAgICAgICAgICBQ TURfRFJWX0xPRyhFUlIsICJ1bmtub3duIHBjdHlwZSAldS4iLA0KPiBmZGlyX2lucHV0LT5wY3R5 cGUpOw0KPiA+PiA+IC0gICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4gPj4gPiArICAg ICAgIH0gZWxzZSBpZiAoZmRpcl9pbnB1dC0+Zmxvd19leHQuY3VzdG9taXplZF9wY3R5cGUpIHsN Cj4gPj4gPiArICAgICAgICAgICAgICAgLyogSWYgY3VzdG9taXplZCBwY3R5cGUgaXMgdXNlZCAq Lw0KPiA+PiA+ICsgICAgICAgICAgICAgICBjdXNfcGN0eXBlID0NCj4gaTQwZV9mbG93X2ZkaXJf ZmluZF9jdXN0b21pemVkX3BjdHlwZShwZiwgcGN0eXBlKTsNCj4gPj4gPiArICAgICAgICAgICAg ICAgaWYgKGN1c19wY3R5cGUtPmluZGV4ID09IEk0MEVfQ1VTVE9NSVpFRF9HVFBDDQo+IHx8DQo+ ID4+ID4gKyAgICAgICAgICAgICAgICAgICBjdXNfcGN0eXBlLT5pbmRleCA9PQ0KPiBJNDBFX0NV U1RPTUlaRURfR1RQVV9JUFY0IHx8DQo+ID4+ID4gKyAgICAgICAgICAgICAgICAgICBjdXNfcGN0 eXBlLT5pbmRleCA9PQ0KPiBJNDBFX0NVU1RPTUlaRURfR1RQVV9JUFY2IHx8DQo+ID4+ID4gKyAg ICAgICAgICAgICAgICAgICBjdXNfcGN0eXBlLT5pbmRleCA9PQ0KPiBJNDBFX0NVU1RPTUlaRURf R1RQVSkgew0KPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHVkcCA9IChzdHJ1Y3QgdWRw X2hkciAqKShyYXdfcGt0ICsgbGVuKTsNCj4gPj4gPiArICAgICAgICAgICAgICAgICAgICAgICB1 ZHAtPmRncmFtX2xlbiA9DQo+ID4+ID4gKw0KPiA+PiA+ICsgcnRlX2NwdV90b19iZV8xNihJNDBF X0ZESVJfVURQX0RFRkFVTFRfTEVOKTsNCj4gPj4gPiArDQo+ID4+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgZ3RwID0gKHN0cnVjdCBydGVfZmxvd19pdGVtX2d0cCAqKQ0KPiA+PiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKCh1bnNpZ25lZCBjaGFyICopdWRwICsNCj4gc2l6 ZW9mKHN0cnVjdCB1ZHBfaGRyKSk7DQo+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgZ3Rw LT52X3B0X3Jzdl9mbGFncyA9IDB4MzA7DQo+ID4+DQo+ID4+IDB4MzAgaXNuJ3QgdmFsaWQgZm9y IEdUUC1DLCB0aGUgc2VxdWVuY2UgbnVtYmVyIG11c3QgYmUgcHJlc2VudCBpbg0KPiA+PiBHVFAt QyBzbyBpdCB3aWxsIGJlIDB4MzIgb3IgbW9yZS4gSXMgdGhpcyBieXRlIGFjdHVhbGx5IG1hdGNo ZWQNCj4gPj4gYWdhaW5zdCBieSB0aGUgZGV2aWNlIHVzaW5nIHRoZSBHVFAgcGN0eXBlcz8NCj4g Pg0KPiA+IFdlIGNvbnN0cnVjdCBwYWNrZXRzIGFuZCBzZW5kIHRoZSBwYWNrZXQgdG8gSFcgIHRv IGNyZWF0ZSBmbG93DQo+ID4gZGlyZWN0b3IgcnVsZSBmb3IgR1RQLUMgYW5kIEdUUC1VLiBBY3R1 YWxseSBJIGRpZG7igJl0IGdldCBlcnJvciBpbmZvDQo+ID4gd2l0aCAweDMwLiBBbmQgaW4gbXkg dGVzdCwgR1RQLUMgcGFja2V0cyBjYW4gaGl0ICBHVFAtQyBwY3R5cGUgcnVsZS4gV2lsbA0KPiB0 cnkgMHgzMiBsYXRlci4NCj4gPg0KPiA+Pg0KPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAg IGd0cC0+bXNnX2xlbiA9DQo+ID4+ID4gKw0KPiBydGVfY3B1X3RvX2JlXzE2KEk0MEVfRkRJUl9H VFBfREVGQVVMVF9MRU4pOw0KPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGd0cC0+dGVp ZCA9DQo+IGZkaXJfaW5wdXQtPmZsb3cuZ3RwX2Zsb3cudGVpZDsNCj4gPj4gPiArICAgICAgICAg ICAgICAgICAgICAgICBndHAtPm1zZ190eXBlID0gMHgxOw0KPiA+Pg0KPiA+PiBXaHkgdXNlIHRo aXMgdmFsdWU/DQo+ID4NCj4gPiBKdXN0IGZvciBjb25zdHJ1Y3RpbmcgYSBHVFAgcGFja2V0IHRv IGNyZWF0ZSBhIGZkaXIgcnVsZSBmb3Igb25lIHBjdHlwZSwgY2FuDQo+IHVzZSBvdGhlciB2YWx1 ZXMgZXhjZXB0IDB4RkYuDQo+ID4NCj4gPj4NCj4gPj4gPiArDQo+ID4+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgaWYgKGN1c19wY3R5cGUtPmluZGV4ID09DQo+IEk0MEVfQ1VTVE9NSVpFRF9H VFBDKQ0KPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWRwLT5kc3RfcG9y dCA9DQo+ID4+ID4gKyBydGVfY3B1X3RvX2JlXzE2KDIxMjMpOw0KPiA+Pg0KPiA+PiBUaGlzIHdp bGwgb25seSBtYXRjaCBoYWxmIG9mIEdUUC1DIG1lc3NhZ2VzLiBHVFAtQyBtZXNzYWdlcyBoYXZl IGENCj4gPj4gVURQIHBvcnQgZGVzdGluYXRpb24gb2YgMjEyMywgb3IgYSBVRFAgc291cmNlIHBv cnQgb2YgMjEyMy4gVG8gbWF0Y2gNCj4gPj4gYWxsIEdUUC1DIHBhY2tldHMgeW91IG5lZWQgdG8g bG9vayBhdCBib3RoLg0KPiA+DQo+ID4gWWVzLiBCdXQgdGhlIEdUUCBwcm9maWxlIGZvciBpNDBl IGRpZG4ndCBzdXBwb3J0IHJlc3BvbnNlIG1lc3NhZ2UuDQo+IA0KPiBUaGF0J3Mgbm90IGNsZWFy IHRvIGEgdXNlciBvZiB0aGUgcnRlX2Zsb3cgQVBJDQoNCkkgd2lsbCBjbGFyaWZ5IHNvbWUgbGlt aXRhdGlvbiBpbiBwYXJzaW5nIGZ1bmN0aW9uIGRlc2NyaXB0aW9uLg0KDQo+IA0KPiA+DQo+ID4+ DQo+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgZWxzZQ0KPiA+PiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdWRwLT5kc3RfcG9ydCA9DQo+ID4+ID4gKyBydGVfY3B1X3Rv X2JlXzE2KDIxNTIpOw0KPiA+PiA+ICsNCj4gPj4gPiArICAgICAgICAgICAgICAgICAgICAgICBp ZiAoY3VzX3BjdHlwZS0+aW5kZXggPT0NCj4gSTQwRV9DVVNUT01JWkVEX0dUUFVfSVBWNCkgew0K PiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3RwLT5tc2dfdHlwZSA9IDB4 RkY7DQo+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndHBfaXB2NCA9IChz dHJ1Y3QgaXB2NF9oZHIgKikNCj4gPj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKCh1bnNpZ25lZCBjaGFyICopZ3RwICsNCj4gPj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3QNCj4gPj4gPiArIHJ0ZV9mbG93 X2l0ZW1fZ3RwKSk7DQo+ID4+DQo+ID4+IFRoaXMgaXMgb25seSB2YWxpZCBpZiB2X3B0X3Jzdl9m bGFncyBpcyAweDMwLiBHVFAtVSBwYWNrZXRzIGFyZQ0KPiA+PiBhbGxvd2VkIHRvIGhhdmUgYSBz ZXF1ZW5jZSBudW1iZXIsIHdoaWNoIGFkZHMgYW4gZXh0cmEgNCBieXRlcyB0byB0aGUNCj4gR1RQ IGhlYWRlci4NCj4gPg0KPiA+IEZvciB0aGUgR1RQIHByb2ZpbGUsIHRoZXJlJ3JlIDQgcGN0eXBl cyBmb3IgR1RQIHBhY2tldHM6IEdUUEMsIEdUUFUsDQo+IEdUUElQVjQsIGFuZCBHVFBJUFY2Lg0K PiA+IEhXIHBhcnNlIHdoaWNoIHBjdHlwZSB0aGUgR1RQIHBhY2tldHMgYmVsb25nZSB0by4NCj4g PiBXZSBjb25zdHJ1Y3QgcGFja2V0IHRvIGNyZWF0ZSBhIGZkaXIgcnVsZSBmb3Igb25lIHBjdHlw ZSwgYWZ0ZXIgdGhhdCwNCj4gPiBhbGwgcGFja2V0cyB3aG9zZSBwY3R5cGUgbWF0Y2hlcyB0aGUg cnVsZSdzIHBjdHlwZSB3aWxsIGhpdCB0aGUgcnVsZS4NCj4gDQo+IE15IHBvaW50IGlzIHRoYXQg eW91IGNhbiBvbmx5IGFzc3VtZSB0aGUgaW5uZXIgSVAgaGVhZGVyIHN0YXJ0cyBhdCBhbiBvZmZz ZXQNCj4gb2Ygc2l6ZW9mKHN0cnVjdCBydGVfZmxvd19pdGVtX2d0cCkgaWYgdl9wdF9yc3ZfZmxh Z3MgaXMgZXhhY3RseSAweDMwLiBJZiB5b3UNCj4gbWF0Y2ggb25seSB0aG9zZSBwYWNrZXRzIHRo ZW4gc29tZSBHVFAtVSBwYWNrZXRzIHdpbGwgbm90IGJlIG1hdGNoZWQuDQo+IFRoYXQgc2hvdWxk IGJlIGNsZWFyIHRvIGEgdXNlciBvZiB0aGUgcnRlX2Zsb3cgQVBJLg0KPiANCj4gPg0KPiA+Pg0K PiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3RwX2lwdjQtPnZlcnNpb25f aWhsID0NCj4gPj4gPiArDQo+IEk0MEVfRkRJUl9JUF9ERUZBVUxUX1ZFUlNJT05fSUhMOw0KPiA+ PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3RwX2lwdjQtPm5leHRfcHJvdG9f aWQgPQ0KPiBJUFBST1RPX0lQOw0KPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZ3RwX2lwdjQtPnRvdGFsX2xlbmd0aCA9DQo+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJ0ZV9jcHVfdG9fYmVfMTYoDQo+ID4+ID4gKw0KPiBJNDBFX0ZE SVJfSU5ORVJfSVBfREVGQVVMVF9MRU4pOw0KPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGF5bG9hZCA9ICh1bnNpZ25lZCBjaGFyDQo+ICopZ3RwX2lwdjQgKw0KPiA+PiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yoc3RydWN0DQo+ IGlwdjRfaGRyKTsNCj4gPj4gPiArICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGN1 c19wY3R5cGUtPmluZGV4ID09DQo+ID4+ID4gKw0KPiBJNDBFX0NVU1RPTUlaRURfR1RQVV9JUFY2 KSB7DQo+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndHAtPm1zZ190eXBl ID0gMHhGRjsNCj4gPj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd0cF9pcHY2 ID0gKHN0cnVjdCBpcHY2X2hkciAqKQ0KPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoKHVuc2lnbmVkIGNoYXIgKilndHAgKw0KPiA+PiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdA0KPiA+PiA+ICsgcnRl X2Zsb3dfaXRlbV9ndHApKTsNCj4gPj4NCj4gPj4gVGhpcyBpcyBvbmx5IHZhbGlkIGlmIHZfcHRf cnN2X2ZsYWdzIGlzIDB4MzAuIEdUUC1VIHBhY2tldHMgYXJlDQo+ID4+IGFsbG93ZWQgdG8gaGF2 ZSBhIHNlcXVlbmNlIG51bWJlciwgd2hpY2ggYWRkcyBhbiBleHRyYSA0IGJ5dGVzIHRvIHRoZQ0K PiBHVFAgaGVhZGVyLg0KPiA+DQo+ID4gU2FtZSB3aXRoIGFib3ZlLg0KPiA+DQo+ID4+DQo+ID4+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndHBfaXB2Ni0+dnRjX2Zsb3cgPQ0K PiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydGVfY3B1X3Rv X2JlXzMyKA0KPiA+PiA+ICsNCj4gSTQwRV9GRElSX0lQdjZfREVGQVVMVF9WVENfRkxPVyB8DQo+ ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCA8 PA0KPiBJNDBFX0ZESVJfSVB2Nl9UQ19PRkZTRVQpKTsNCj4gPj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGd0cF9pcHY2LT5wcm90byA9DQo+IElQUFJPVE9fTk9ORTsNCj4gPj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd0cF9pcHY2LT5wYXlsb2FkX2xlbiA9 DQo+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ0ZV9jcHVf dG9fYmVfMTYoDQo+ID4+ID4gKw0KPiBJNDBFX0ZESVJfSU5ORVJfSVB2Nl9ERUZBVUxUX0xFTik7 DQo+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndHBfaXB2Ni0+aG9wX2xp bWl0cyA9DQo+ID4+ID4gKw0KPiBJNDBFX0ZESVJfSVB2Nl9ERUZBVUxUX0hPUF9MSU1JVFM7DQo+ ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXlsb2FkID0gKHVuc2lnbmVk IGNoYXINCj4gKilndHBfaXB2NiArDQo+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3QNCj4gaXB2Nl9oZHIpOw0KPiA+PiA+ICsgICAgICAg ICAgICAgICAgICAgICAgIH0gZWxzZQ0KPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcGF5bG9hZCA9ICh1bnNpZ25lZCBjaGFyICopZ3RwICsNCj4gPj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdA0KPiBydGVfZmxvd19p dGVtX2d0cCk7DQo+ID4+ID4gKyAgICAgICAgICAgICAgIH0NCj4gPj4gPiArICAgICAgIH0gZWxz ZSB7DQo+ID4+ID4gKyAgICAgICAgICAgICAgIFBNRF9EUlZfTE9HKEVSUiwgInVua25vd24gcGN0 eXBlICV1LiIsDQo+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkaXJfaW5wdXQt PnBjdHlwZSk7DQo+ID4+ID4gKyAgICAgICAgICAgICAgIHJldHVybiAtMTsNCj4gPj4gPiAgICAg ICAgIH0NCj4gPj4gPg0KPiA+PiA+ICAgICAgICAgLyogZmlsbCB0aGUgZmxleGJ5dGVzIHRvIHBh eWxvYWQgKi8NCj4gPj4NCj4gPj4gPHNuaXA+DQo=