From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id E9E41D250 for ; Wed, 29 Mar 2017 11:11:20 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=intel.com; i=@intel.com; q=dns/txt; s=intel; t=1490778681; x=1522314681; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=Gz5vdTgbWdYm6QPa0Md0tLEDVMmBzFpliB6AvPAleqk=; b=j6PHHO8CayiF54EVEecuNPkuBejf1dG3TakbNROD276NC7C82LiBPEnG TAzOcmUZGVswZtOk6KF646c0XZgwVA==; Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 29 Mar 2017 02:11:19 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.36,240,1486454400"; d="scan'208";a="80515941" Received: from irsmsx103.ger.corp.intel.com ([163.33.3.157]) by orsmga005.jf.intel.com with ESMTP; 29 Mar 2017 02:11:18 -0700 Received: from irsmsx155.ger.corp.intel.com (163.33.192.3) by IRSMSX103.ger.corp.intel.com (163.33.3.157) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 29 Mar 2017 10:11:17 +0100 Received: from irsmsx108.ger.corp.intel.com ([169.254.11.239]) by irsmsx155.ger.corp.intel.com ([169.254.14.202]) with mapi id 14.03.0319.002; Wed, 29 Mar 2017 10:11:17 +0100 From: "Iremonger, Bernard" To: "Lu, Wenzhuo" , "dev@dpdk.org" , "Xing, Beilei" , "Wu, Jingjing" CC: "Zhang, Helin" , "Stroe, Laura" Thread-Topic: [dpdk-dev] [PATCH v2 1/3] net/i40e: add QinQ wrapper function Thread-Index: AQHSo/Pz+gjfqGqUz0Gp/Nvtnk8ouaGp3QIAgABB8rCAAB0yQIAAuMwAgACYJJA= Date: Wed, 29 Mar 2017 09:11:16 +0000 Message-ID: <8CEF83825BEC744B83065625E567D7C224D4C433@IRSMSX108.ger.corp.intel.com> References: <1488552491-20432-1-git-send-email-bernard.iremonger@intel.com> <1490287113-8895-2-git-send-email-bernard.iremonger@intel.com> <6A0DE07E22DDAD4C9103DF62FEBC09093B5838C3@shsmsx102.ccr.corp.intel.com> <8CEF83825BEC744B83065625E567D7C224D4BA5E@IRSMSX108.ger.corp.intel.com> <8CEF83825BEC744B83065625E567D7C224D4BD11@IRSMSX108.ger.corp.intel.com> <6A0DE07E22DDAD4C9103DF62FEBC09093B583F29@shsmsx102.ccr.corp.intel.com> In-Reply-To: <6A0DE07E22DDAD4C9103DF62FEBC09093B583F29@shsmsx102.ccr.corp.intel.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZDY3MzgwMDMtNzkyMy00YzBmLWFkMjUtMjY4MWZiZDI0NjYzIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE2LjUuOS4zIiwiVHJ1c3RlZExhYmVsSGFzaCI6Iml1R3ZkQTkwZHNFSlpNdCt2d2xXeXhvYnVKeVZwOFB0OEhMMjBHVTZzdG89In0= x-ctpclassification: CTP_IC x-originating-ip: [163.33.239.180] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v2 1/3] net/i40e: add QinQ wrapper function 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: Wed, 29 Mar 2017 09:11:21 -0000 SGkgV2Vuemh1bywNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBMdSwg V2Vuemh1bw0KPiBTZW50OiBXZWRuZXNkYXksIE1hcmNoIDI5LCAyMDE3IDE6NTMgQU0NCj4gVG86 IElyZW1vbmdlciwgQmVybmFyZCA8YmVybmFyZC5pcmVtb25nZXJAaW50ZWwuY29tPjsgZGV2QGRw ZGsub3JnOw0KPiBYaW5nLCBCZWlsZWkgPGJlaWxlaS54aW5nQGludGVsLmNvbT47IFd1LCBKaW5n amluZyA8amluZ2ppbmcud3VAaW50ZWwuY29tPg0KPiBDYzogWmhhbmcsIEhlbGluIDxoZWxpbi56 aGFuZ0BpbnRlbC5jb20+OyBTdHJvZSwgTGF1cmENCj4gPGxhdXJhLnN0cm9lQGludGVsLmNvbT4N Cj4gU3ViamVjdDogUkU6IFtkcGRrLWRldl0gW1BBVENIIHYyIDEvM10gbmV0L2k0MGU6IGFkZCBR aW5RIHdyYXBwZXIgZnVuY3Rpb24NCj4gDQo+IEhpIEJlcm5hcmQsDQo+IA0KPiA+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogSXJlbW9uZ2VyLCBCZXJuYXJkDQo+ID4gU2Vu dDogVHVlc2RheSwgTWFyY2ggMjgsIDIwMTcgOToyMyBQTQ0KPiA+IFRvOiBJcmVtb25nZXIsIEJl cm5hcmQ7IEx1LCBXZW56aHVvOyBkZXZAZHBkay5vcmc7IFhpbmcsIEJlaWxlaTsgV3UsDQo+ID4g SmluZ2ppbmcNCj4gPiBDYzogWmhhbmcsIEhlbGluOyBTdHJvZSwgTGF1cmENCj4gPiBTdWJqZWN0 OiBSRTogW2RwZGstZGV2XSBbUEFUQ0ggdjIgMS8zXSBuZXQvaTQwZTogYWRkIFFpblEgd3JhcHBl cg0KPiA+IGZ1bmN0aW9uDQo+ID4NCj4gPiBIaSBXZW56aHVvLA0KPiA+DQo+ID4gPHNuaXA+DQo+ ID4NCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+IEZyb206IGRldiBb bWFpbHRvOmRldi1ib3VuY2VzQGRwZGsub3JnXSBPbiBCZWhhbGYgT2YgQmVybmFyZA0KPiA+ID4g PiBJcmVtb25nZXINCj4gPiA+ID4gPiBTZW50OiBGcmlkYXksIE1hcmNoIDI0LCAyMDE3IDEyOjM5 IEFNDQo+ID4gPiA+ID4gVG86IGRldkBkcGRrLm9yZzsgWGluZywgQmVpbGVpOyBXdSwgSmluZ2pp bmcNCj4gPiA+ID4gPiBDYzogWmhhbmcsIEhlbGluOyBJcmVtb25nZXIsIEJlcm5hcmQ7IFN0cm9l LCBMYXVyYQ0KPiA+ID4gPiA+IFN1YmplY3Q6IFtkcGRrLWRldl0gW1BBVENIIHYyIDEvM10gbmV0 L2k0MGU6IGFkZCBRaW5RIHdyYXBwZXINCj4gPiA+ID4gPiBmdW5jdGlvbg0KPiA+ID4gPiA+DQo+ ID4gPiA+ID4gQWRkIGk0MGVfZGV2X2Nsb3VkX2ZpbHRlcl9xaW5xIGZ1bmN0aW9uLCBhbmQgY2Fs bCBpdCBmcm9tDQo+ID4gPiA+ID4gaTQwZV9kZXZfY29uc2lzdGVudF90dW5uZWxfZmlsdGVyX3Nl dCBmdW5jdGlvbi4NCj4gPiA+ID4gPiBSZXBsYWNlIGZpbHRlciAweDEgd2l0aCBRaW5RIGZpbHRl ci4NCj4gPiA+ID4gQmV0dGVyIG5vdCB1c2UgMHgxIGhlcmUuIE1heWJlIGl0IHNob3VsZCBiZSBj aGFuZ2UgdG8gb3V0ZXIgSVAgZmlsdGVyPw0KPiA+ID4gT2ssIEkgd2lsbCBjaGFuZ2UgdG8gb3V0 IElQIGZpbHRlci4NCj4gPiA+ID4gQW5kIHNlZW1zIGJldHRlciB0byBhZGQgbW9yZSBleHBsYW5h dGlvbiBhYm91dCB3aGF0J3MgUWluUSBmaWx0ZXINCj4gaGVyZS4NCj4gPiA+IE9rLCBJIHdpbGwg YWRkIHNvbWUgaW5mb3JtYXRpb24uDQo+ID4gPiA+DQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICsv KiBDcmVhdGUgYSBRaW5RIGNsb3VkIGZpbHRlcg0KPiA+ID4gPiA+ICsgKg0KPiA+ID4gPiA+ICsg KiBUaGUgRm9ydHZpbGxlIE5JQyBoYXMgbGltaXRlZCByZXNvdXJjZXMgZm9yIHR1bm5lbCBmaWx0 ZXJzLA0KPiA+ID4gPiA+ICsgKiBzbyB3ZSBjYW4gb25seSByZXVzZSBleGlzdGluZyBmaWx0ZXJz Lg0KPiA+ID4gPiA+ICsgKg0KPiA+ID4gPiA+ICsgKiBJbiBzdGVwIDEgd2UgZGVmaW5lIHdoaWNo IEZpZWxkIFZlY3RvciBmaWVsZHMgY2FuIGJlIHVzZWQNCj4gPiA+ID4gPiArZm9yDQo+ID4gPiA+ ID4gKyAqIGZpbHRlciB0eXBlcy4NCj4gPiA+ID4gPiArICogQXMgd2UgZG8gbm90IGhhdmUgdGhl IGlubmVyIHRhZyBkZWZpbmVkIGFzIGEgZmllbGQsDQo+ID4gPiA+ID4gKyAqIHdlIGhhdmUgdG8g ZGVmaW5lIGl0IGZpcnN0LCBieSByZXVzaW5nIG9uZSBvZiBMMSBlbnRyaWVzLg0KPiA+ID4gPiA+ ICsgKg0KPiA+ID4gPiA+ICsgKiBJbiBzdGVwIDIgd2UgYXJlIHJlcGxhY2luZyBvbmUgb2YgZXhp c3RpbmcgZmlsdGVyIHR5cGVzIHdpdGgNCj4gPiA+ID4gPiArICogYSBuZXcgb25lIGZvciBRaW5R Lg0KPiA+ID4gPiA+ICsgKiBBcyB3ZSByZXVzaW5nIEwxIGFuZCByZXBsYWNpbmcgTDIsIHNvbWUg b2YgdGhlIGRlZmF1bHQNCj4gPiA+ID4gPiArZmlsdGVyDQo+ID4gPiA+ID4gKyAqIHR5cGVzIHdp bGwgZGlzYXBwZWFyLHdoaWNoIGRlcGVuZHMgb24gTDEgYW5kIEwyIGVudHJpZXMgd2UgcmV1c2Uu DQo+ID4gPiA+ID4gKyAqDQo+ID4gPiA+ID4gKyAqIFN0ZXAgMTogQ3JlYXRlIEwxIGZpbHRlciBv ZiBvdXRlciB2bGFuICgxMmIpICsgaW5uZXIgdmxhbg0KPiA+ID4gPiA+ICsoMTJiKQ0KPiA+ID4g PiA+ICsgKg0KPiA+ID4gPiA+ICsgKiAxLglDcmVhdGUgTDEgZmlsdGVyIG9mIG91dGVyIHZsYW4g KDEyYikgd2hpY2ggd2lsbCBiZSBpbiB1c2UNCj4gPiA+ID4gPiArICoJCWxhdGVyIHdoZW4gd2Ug ZGVmaW5lIHRoZSBjbG91ZCBmaWx0ZXIuDQo+ID4gPiA+ID4gKyAqCWEuCVZhbGlkX2ZsYWdzLnJl cGxhY2VfY2xvdWQgPSAwDQo+ID4gPiA+ID4gKyAqCWIuCU9sZF9maWx0ZXIgPSAxMCAoU3RhZ19J bm5lcl9WbGFuKQ0KPiA+ID4gPiA+ICsgKgljLglOZXdfZmlsdGVyID0gMHgxMA0KPiA+ID4gPiA+ ICsgKglkLglUUiBiaXQgPSAweGZmIChvcHRpb25hbCwgbm90IHVzZWQgaGVyZSkNCj4gPiA+ID4g PiArICoJZS4JQnVmZmVyIMOi4oKs4oCcIDIgZW50cmllczoNCj4gPiA+ID4gPiArICoJCWkuCUJ5 dGUwID0gOCAob3V0ZXIgdmxhbiBGViBpbmRleCkuIEJ5dGUxID0wIChyc3YpDQo+ID4gQnl0ZSAy LQ0KPiA+ID4gPiA+IDMgPSAweDBmZmYNCj4gPiA+ID4gPiArICoJCWlpLglCeXRlMCA9IDM3IChp bm5lciB2bGFuIEZWIGluZGV4KS4gQnl0ZTEgPTANCj4gKHJzdikNCj4gPiBCeXRlDQo+ID4gPiA+ ID4gMi0zID0gMHgwZmZmDQo+ID4gPiA+ID4gKyAqDQo+ID4gPiA+ID4gKyAqIFN0ZXAgMjoNCj4g PiA+ID4gPiArICogMi4JQ3JlYXRlIGNsb3VkIGZpbHRlciB1c2luZyB0d28gTDEgZmlsdGVycyBl bnRyaWVzOiBzdGFnIGFuZA0KPiA+ID4gPiA+ICsgKgkJbmV3IGZpbHRlcihvdXRlciB2bGFuKyBp bm5lciB2bGFuKQ0KPiA+ID4gPiA+ICsgKglhLglWYWxpZF9mbGFncy5yZXBsYWNlX2Nsb3VkID0g MQ0KPiA+ID4gPiA+ICsgKgliLglPbGRfZmlsdGVyID0gMSAoaW5zdGVhZCBvZiBvdXRlciBJUCkN Cj4gPiA+ID4gPiArICoJYy4JTmV3X2ZpbHRlciA9IDB4MTANCj4gPiA+ID4gPiArICoJZC4JQnVm ZmVyIMOi4oKs4oCcIDIgZW50cmllczoNCj4gPiA+ID4gPiArICoJCWkuCUJ5dGUwID0gMHg4MCB8 IDcgKHZhbGlkIHwgU3RhZykuIEJ5dGUxMyA9IDAgKHJzdikNCj4gPiA+ID4gPiArICoJCWlpLglC eXRlOCA9IDB4ODAgfCAweDEwICh2YWxpZCB8IG5ldyBsMSBmaWx0ZXINCj4gPiBzdGVwMSkuDQo+ ID4gPiA+ID4gQnl0ZTktMTEgPSAwIChyc3YpDQo+ID4gPiA+ID4gKyAqLw0KPiA+ID4gPiA+ICtz dGF0aWMgaW50DQo+ID4gPiA+ID4gK2k0MGVfZGV2X2Nsb3VkX2ZpbHRlcl9xaW5xKHN0cnVjdCBp NDBlX3BmICpwZikgew0KPiA+ID4gPiBJcyBpdCBiZXR0ZXIgdG8gY2hhbmdlIHRoZSBmdW5jdGlv biBuYW1lIHRvDQo+ID4gPiA+IGk0MGVfZGV2X2NyZWF0ZV9jbG91ZF9maWx0ZXJfcWlucT8NCj4g Pg0KPiA+IE9rLCBob3cgYWJvdXQgaTQwZV9jbG91ZF9maWx0ZXJfcWlucV9jcmVhdGUoKT8NCj4g PiBJdCBpcyBtb3JlIGluIGxpbmUgd2l0aCB0aGUgZXhpc3RpbmcgY29kZS4NCj4gSXQncyBmaW5l IHRvIG1lOikNCj4gDQo+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvaTQwZS9pNDBlX2V0aGRldi5oDQo+ID4gPiA+ID4gYi9kcml2ZXJzL25ldC9pNDBlL2k0 MGVfZXRoZGV2LmggaW5kZXggOTM0YzY3OS4uMDIwYzVhMiAxMDA2NDQNCj4gPiA+ID4gPiAtLS0g YS9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmgNCj4gPiA+ID4gPiArKysgYi9kcml2ZXJz L25ldC9pNDBlL2k0MGVfZXRoZGV2LmgNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAvKioNCj4gPiA+ ID4gPiArICogZmlsdGVyIHR5cGUgb2YgdHVubmVsaW5nIHBhY2tldCAgKi8gI2RlZmluZQ0KPiA+ ID4gPiA+ICtFVEhfVFVOTkVMX0ZJTFRFUl9PTUFDICAweDAxIC8qKjwgZmlsdGVyIGJ5IG91dGVy IE1BQw0KPiA+ID4gYWRkcg0KPiA+ID4gPiAqLw0KPiA+ID4gPiA+ICsjZGVmaW5lIEVUSF9UVU5O RUxfRklMVEVSX09JUCAgIDB4MDIgLyoqPCBmaWx0ZXIgYnkgb3V0ZXIgSVAgQWRkcg0KPiAqLw0K PiA+ID4gPiA+ICsjZGVmaW5lIEVUSF9UVU5ORUxfRklMVEVSX1RFTklEIDB4MDQgLyoqPCBmaWx0 ZXIgYnkgdGVuYW50IElEDQo+ID4gPiA+ID4gKyovICNkZWZpbmUgRVRIX1RVTk5FTF9GSUxURVJf SU1BQyAgMHgwOCAvKio8IGZpbHRlciBieSBpbm5lcg0KPiA+ID4gPiA+ICtNQUMgYWRkcg0KPiA+ ID4gPiAqLw0KPiA+ID4gPiA+ICsjZGVmaW5lIEVUSF9UVU5ORUxfRklMVEVSX0lWTEFOIDB4MTAg LyoqPCBmaWx0ZXIgYnkgaW5uZXIgVkxBTg0KPiA+ID4gPiA+ICtJRA0KPiA+ID4gKi8NCj4gPiA+ ID4gPiArI2RlZmluZSBFVEhfVFVOTkVMX0ZJTFRFUl9JSVAgICAweDIwIC8qKjwgZmlsdGVyIGJ5 IGlubmVyIElQIGFkZHINCj4gKi8NCj4gPiA+ID4gU2VlbXMgbm90IG5lY2Vzc2FyeSB0byByZWRl ZmluZSB0aGVzZSBtYWNyb3MuDQo+ID4gPiA+DQo+ID4gPiA+ID4gKyNkZWZpbmUgRVRIX1RVTk5F TF9GSUxURVJfT1ZMQU4gMHg0MCAvKio8IGZpbHRlciBieSBvdXRlcg0KPiBWTEFODQo+ID4gPiA+ ID4gK0lEDQo+ID4gPiA+ICovDQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICsjZGVmaW5lIEk0MEVf VFVOTkVMX0ZJTFRFUl9JTUFDX0lWTEFODQo+ID4gPiAoRVRIX1RVTk5FTF9GSUxURVJfSU1BQw0K PiA+ID4gPiB8IFwNCj4gPiA+ID4gPiArCQkJCQlFVEhfVFVOTkVMX0ZJTFRFUl9JVkxBTikNCj4g PiA+ID4gPiArI2RlZmluZSBJNDBFX1RVTk5FTF9GSUxURVJfSU1BQ19JVkxBTl9URU5JRA0KPiA+ ID4gPiA+IChFVEhfVFVOTkVMX0ZJTFRFUl9JTUFDIHwgXA0KPiA+ID4gPiA+ICsJCQkJCUVUSF9U VU5ORUxfRklMVEVSX0lWTEFODQo+IHwgXA0KPiA+ID4gPiA+ICsJCQkJCUVUSF9UVU5ORUxfRklM VEVSX1RFTklEKQ0KPiA+ID4gPiA+ICsjZGVmaW5lIEk0MEVfVFVOTkVMX0ZJTFRFUl9JTUFDX1RF TklEDQo+ID4gPiAoRVRIX1RVTk5FTF9GSUxURVJfSU1BQw0KPiA+ID4gPiB8IFwNCj4gPiA+ID4g PiArCQkJCQlFVEhfVFVOTkVMX0ZJTFRFUl9URU5JRCkNCj4gPiA+ID4gPiArI2RlZmluZSBJNDBF X1RVTk5FTF9GSUxURVJfT01BQ19URU5JRF9JTUFDDQo+ID4gPiA+ID4gKEVUSF9UVU5ORUxfRklM VEVSX09NQUMgfCBcDQo+ID4gPiA+ID4gKwkJCQkJRVRIX1RVTk5FTF9GSUxURVJfVEVOSUQNCj4g fCBcDQo+ID4gPiA+ID4gKwkJCQkJRVRIX1RVTk5FTF9GSUxURVJfSU1BQykNCj4gPiA+ID4gSSBk b24ndCB0aGluayBpdCdzIG5lY2Vzc2FyeSB0aGUgcmVkZWZpbmUgdGhlc2UgbWFjcm9zIGVpdGhl ci4NCj4gPiA+ID4gTWF5YmUgd2Ugb25seSBuZWVkIHRvIGFkZCBJNDBFX1RVTk5FTF9GSUxURVJf Q1VTVE9NX1FJTlEuDQo+ID4gPg0KPiA+ID4gSSB3aWxsIGNoZWNrIHRoaXMuDQo+ID4NCj4gPiBU aGVzZSBhcmUgbm93IHVzZWQgaW4gdGhlIGk0MGVfZXRoZGV2IGNvZGUgcmVwbGFjaW5nIFJURV8q IG1hY3Jvcy4NCj4gSSB0aGluayB0aGVzZSBtYWNyb3MgYXJlIG5vdCBOSUMgc3BlY2lmaWMuIEJl dHRlciBkZWZpbmUgdGhlbSBpbiBSVEUuIEJ1dCBpZiBpdCdzDQo+IG5vdCB0aGUgZ29vZCB0aW1l IHRvIGFkZCB0aGVtIHRvIFJURSwgbWF5YmUgdGhlIGNvbmNlcm4gb2YgQUJJIGNoYW5nZS4gV2UN Cj4gbmVlZCBvbmx5IGRlZmluZSBFVEhfVFVOTkVMX0ZJTFRFUl9PVkxBTiBhbmQNCj4gSTQwRV9U VU5ORUxfRklMVEVSX09NQUNfVEVOSURfSU1BQyBoZXJlLg0KDQpJZiBJIGp1c3QgZGVmaW5lIHRo ZSBhYm92ZSBmaWx0ZXJzLCB0aGVuIHRoZSBmb2xsb3dpbmcgc3dpdGNoIHN0YXRlbWVudCBoYXMg bWl4ZWQgUlRFIGFuZCBJNDBFIG1hY3JvcywgaXQgc2VlbXMgY2xlYW5lciB0byBtZSB0byB1c2Ug YWxsICBJNDBFIG1hY3Jvcy4gSSBjYW4gY2hhbmdlIGJhY2sgdG8gbWl4ZWQgbWFjcm9zIGlmIHlv dSB0aGluayBpdCBpcyBiZXR0ZXIuDQoNCnN0YXRpYyBpbnQNCmk0MGVfZGV2X2dldF9maWx0ZXJf dHlwZSh1aW50MTZfdCBmaWx0ZXJfdHlwZSwgdWludDE2X3QgKmZsYWcpDQp7DQoJc3dpdGNoIChm aWx0ZXJfdHlwZSkgew0KCWNhc2UgSTQwRV9UVU5ORUxfRklMVEVSX0lNQUNfSVZMQU46DQoJCSpm bGFnID0gSTQwRV9BUUNfQUREX0NMT1VEX0ZJTFRFUl9JTUFDX0lWTEFOOw0KCQlicmVhazsNCglj YXNlIEk0MEVfVFVOTkVMX0ZJTFRFUl9JTUFDX0lWTEFOX1RFTklEOg0KCQkqZmxhZyA9IEk0MEVf QVFDX0FERF9DTE9VRF9GSUxURVJfSU1BQ19JVkxBTl9URU5fSUQ7DQoJCWJyZWFrOw0KCWNhc2Ug STQwRV9UVU5ORUxfRklMVEVSX0NVU1RPTV9RSU5ROg0KCQkqZmxhZyA9IEk0MEVfQVFDX0FERF9D TE9VRF9GSUxURVJfQ1VTVE9NX1FJTlE7DQoJCWJyZWFrOw0KCWNhc2UgSTQwRV9UVU5ORUxfRklM VEVSX0lNQUNfVEVOSUQ6DQoJCSpmbGFnID0gSTQwRV9BUUNfQUREX0NMT1VEX0ZJTFRFUl9JTUFD X1RFTl9JRDsNCgkJYnJlYWs7DQoJY2FzZSBJNDBFX1RVTk5FTF9GSUxURVJfT01BQ19URU5JRF9J TUFDOg0KCQkqZmxhZyA9IEk0MEVfQVFDX0FERF9DTE9VRF9GSUxURVJfT01BQ19URU5fSURfSU1B QzsNCgkJYnJlYWs7DQoJY2FzZSBFVEhfVFVOTkVMX0ZJTFRFUl9JTUFDOg0KCQkqZmxhZyA9IEk0 MEVfQVFDX0FERF9DTE9VRF9GSUxURVJfSU1BQzsNCgkJYnJlYWs7DQoJY2FzZSBFVEhfVFVOTkVM X0ZJTFRFUl9PSVA6DQoJCSpmbGFnID0gSTQwRV9BUUNfQUREX0NMT1VEX0ZJTFRFUl9PSVA7DQoJ CWJyZWFrOw0KCWNhc2UgRVRIX1RVTk5FTF9GSUxURVJfSUlQOg0KCQkqZmxhZyA9IEk0MEVfQVFD X0FERF9DTE9VRF9GSUxURVJfSUlQOw0KCQlicmVhazsNCglkZWZhdWx0Og0KCQlQTURfRFJWX0xP RyhFUlIsICJpbnZhbGlkIHR1bm5lbCBmaWx0ZXIgdHlwZSIpOw0KCQlyZXR1cm4gLUVJTlZBTDsN Cgl9DQoNCglyZXR1cm4gMDsNCj4gDQo+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiArI2RlZmluZSBJ NDBFX1RVTk5FTF9GSUxURVJfQ1VTVE9NX1FJTlENCj4gPiA+ID4gKEVUSF9UVU5ORUxfRklMVEVS X09NQUMNCj4gPiA+ID4gPiB8IFwNCj4gPiA+ID4gPiArCQkJCQlFVEhfVFVOTkVMX0ZJTFRFUl9P VkxBTg0KPiB8DQo+ID4gPiA+ID4gRVRIX1RVTk5FTF9GSUxURVJfSVZMQU4pDQo+ID4gPiA+ID4g Kw0KPiA+ID4gPiA+ICsvKioNCj4gPiA+ID4gPiAgICogVHVubmVsaW5nIFBhY2tldCBmaWx0ZXIg Y29uZmlndXJhdGlvbi4NCj4gPiA+ID4gPiAgICovDQo+ID4gPiA+ID4gIHN0cnVjdCBpNDBlX3R1 bm5lbF9maWx0ZXJfY29uZiB7DQo+ID4gPiA+ID4gLS0NCj4gPiA+ID4gPiAyLjEwLjENCj4gPiA+ DQo+ID4gPiBUaGFua3MgZm9yIHRoZSByZXZpZXcuDQo+ID4gPg0KPiA+ID4gUmVnYXJkcywNCj4g PiA+DQo+ID4gPiBCZXJuYXJkLg0KDQpSZWdhcmRzLA0KDQpCZXJuYXJkLg0KDQo=