From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Kurakin, Ilia" Subject: Re: [PATCH v5] ether: add support for vtune task tracing Date: Mon, 24 Jul 2017 12:33:45 +0000 Message-ID: References: <1500311700-5298-1-git-send-email-ilia.kurakin@intel.com> <1500454485-11156-1-git-send-email-ilia.kurakin@intel.com> <20170724092738.GA11211@jerin> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: "dev@dpdk.org" , "Ananyev, Konstantin" , "Wiles, Keith" , "Galanov, Dmitry" To: Jerin Jacob Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id 4EA1F377E for ; Mon, 24 Jul 2017 14:33:52 +0200 (CEST) In-Reply-To: <20170724092738.GA11211@jerin> 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" SGkgSmVyaW4sDQoNClRoYW5rIHlvdSBmb3IgeW91ciBjb21tZW50cy4NCg0KPiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKZXJpbiBKYWNvYiBbbWFpbHRvOmplcmluLmphY29i QGNhdml1bW5ldHdvcmtzLmNvbV0NCj4gU2VudDogTW9uZGF5LCBKdWx5IDI0LCAyMDE3IDEyOjI4 IFBNDQo+IFRvOiBLdXJha2luLCBJbGlhIDxpbGlhLmt1cmFraW5AaW50ZWwuY29tPg0KPiBDYzog ZGV2QGRwZGsub3JnOyBBbmFueWV2LCBLb25zdGFudGluIDxrb25zdGFudGluLmFuYW55ZXZAaW50 ZWwuY29tPjsNCj4gV2lsZXMsIEtlaXRoIDxrZWl0aC53aWxlc0BpbnRlbC5jb20+OyBHYWxhbm92 LCBEbWl0cnkNCj4gPGRtaXRyeS5nYWxhbm92QGludGVsLmNvbT4NCj4gU3ViamVjdDogUmU6IFtQ QVRDSCB2NV0gZXRoZXI6IGFkZCBzdXBwb3J0IGZvciB2dHVuZSB0YXNrIHRyYWNpbmcNCj4gDQo+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRGF0ZTogV2VkLCAxOSBKdWwgMjAxNyAx MTo1NDo0NSArMDMwMA0KPiA+IEZyb206IGlsaWEua3VyYWtpbkBpbnRlbC5jb20NCj4gPiBUbzog ZGV2QGRwZGsub3JnDQo+ID4gQ0M6IGplcmluLmphY29iQGNhdml1bW5ldHdvcmtzLmNvbSwga29u c3RhbnRpbi5hbmFueWV2QGludGVsLmNvbSwNCj4gPiBrZWl0aC53aWxlc0BpbnRlbC5jb20sIGRt aXRyeS5nYWxhbm92QGludGVsLmNvbSwgSWxpYSBLdXJha2luDQo+ID4gPGlsaWEua3VyYWtpbkBp bnRlbC5jb20+DQo+ID4gU3ViamVjdDogW1BBVENIIHY1XSBldGhlcjogYWRkIHN1cHBvcnQgZm9y IHZ0dW5lIHRhc2sgdHJhY2luZw0KPiA+IFgtTWFpbGVyOiBnaXQtc2VuZC1lbWFpbCAyLjcuNA0K PiA+DQo+ID4gRnJvbTogSWxpYSBLdXJha2luIDxpbGlhLmt1cmFraW5AaW50ZWwuY29tPg0KPiA+ DQo+ID4gVGhlIHBhdGNoIGFkZHMgdHJhY2luZyBvZiBsb29wIGl0ZXJhdGlvbnMgdGhhdCB5aWVs ZGVkIG5vIHBhY2tldHMgaW4gYQ0KPiA+IERQREsgYXBwbGljYXRpb24uIEl0IGlzIHVzaW5nIElU VCB0YXNrIEFQSToNCj4gPiAgICAgaHR0cHM6Ly9zb2Z0d2FyZS5pbnRlbC5jb20vZW4tdXMvbm9k ZS81NDQyMDYNCj4gPg0KPiA+IFdlIHN1cHBvc2UgdGhlIGZsb3cgb2YgdXNpbmcgdGhpcyB0cmFj aW5nIHdvdWxkIGFzc3VtZSB0aGUgdXNlciBoYXMNCj4gPiBJVFQgbGliIGFuZCBoZWFkZXIgb24g bWFjaGluZSBhbmQgcmUtYnVpbGQgRFBESyB3aXRoIGFkZGl0aW9uYWwgbWFrZQ0KPiBwYXJhbWV0 ZXJzOg0KPiA+DQo+ID4gICAgIG1ha2UgRVhUUkFfQ0ZMQUdTPS1JPHBhdGggdG8gaXR0bm90aWZ5 Lmg+DQo+ID4gICAgICAgICAgRVhUUkFfTERMSUJTPSItTDxwYXRoIHRvIGxpYml0dG5vdGlmeS5h PiAtbGl0dG5vdGlmeSINCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IElsaWEgS3VyYWtpbiA8aWxp YS5rdXJha2luQGludGVsLmNvbT4NCj4gDQo+IEZvdW5kIGEgY2hlY2twYXRjaCBpc3N1ZS4NCj4g DQo+IOKenCBbbWFzdGVyXVtkcGRrLm9yZ10gJCAuL2RldnRvb2xzL2NoZWNrcGF0Y2hlcy5zaA0K PiANCj4gIyMjIGV0aGVyOiBhZGQgc3VwcG9ydCBmb3IgdnR1bmUgdGFzayB0cmFjaW5nDQo+IA0K PiBFUlJPUjpTUEFDSU5HOiBuZWVkIGNvbnNpc3RlbnQgc3BhY2luZyBhcm91bmQgJyonIChjdHg6 V3hWKQ0KPiAjMTczOiBGSUxFOiBsaWIvbGlicnRlX2V0aGVyL3J0ZV9ldGhkZXZfcHJvZmlsZS5j OjU5Og0KPiArCV9faXR0X2RvbWFpbiAqZG9tYWluc1tSVEVfTUFYX1FVRVVFU19QRVJfUE9SVF07 DQo+ICAJICAgICAgICAgICAgIF4NCj4gDQo+IEVSUk9SOlNQQUNJTkc6IG5lZWQgY29uc2lzdGVu dCBzcGFjaW5nIGFyb3VuZCAnKicgKGN0eDpXeFYpDQo+ICMxNzc6IEZJTEU6IGxpYi9saWJydGVf ZXRoZXIvcnRlX2V0aGRldl9wcm9maWxlLmM6NjM6DQo+ICsJX19pdHRfc3RyaW5nX2hhbmRsZSAq aGFuZGxlc1tSVEVfTUFYX1FVRVVFU19QRVJfUE9SVF07DQo+ICAJICAgICAgICAgICAgICAgICAg ICBeDQo+IA0KPiB0b3RhbDogMiBlcnJvcnMsIDAgd2FybmluZ3MsIDI3OCBsaW5lcyBjaGVja2Vk DQo+IA0KPiAwLzEgdmFsaWQgcGF0Y2gNCg0KSSBzdXBwb3NlIHRoaXMgaXMgYSBtaXN0YWtlIGlu IHRoZSBjaGVja3BhdGNoIHNjcmlwdCwgc2luY2UgaGVyZSBJIHVzZSAiKiIgYXMgYSBwb2ludGVy Lg0KUHJvYmFibHkgdGhlIHNjcmlwdCBjb25zaWRlcnMgIioiIGFzIG11bHRpcGxpY2F0aW9uIHNp Z24uDQoNCj4gDQo+IA0KPiA+DQo+ID4gLS0tDQo+ID4NCj4gPiAtVjIgY2hhbmdlOg0KPiA+ICAg ICBJVFQgdGFza3MgY29sbGVjdGlvbiBpcyBtb3ZlZCB0byByeCBjYWxsYmFjaw0KPiA+DQo+ID4g LVYzIGNoYW5nZToNCj4gPiAgICAgcnRlX2V0aGRldl9wcm9maWxlLmMgY3JlYXRlZCwgYWxsIHBy b2ZpbGUgc3BlY2lmaWMgY29kZSBtb3ZlZCB0aGVyZS4NCj4gPg0KPiA+ICAgICBBZGRlZCBnZW5l cmljIHByb2ZpbGUgZnVuY3Rpb24NCj4gPg0KPiA+IC1WNCBjaGFuZ2U6DQo+ID4gICAgIGNoZWNr cGF0Y2ggaXNzdWVzIGZpeGVkDQo+ID4NCj4gPiAgICAgQWRkZWQgZG9jdW1lbnRhdGlvbiB0b3Bp Yw0KPiA+DQo+ID4gLVY1IGNoYW5nZToNCj4gPiAgICAgRG9jdW1lbnRhdGlvbiBmaXhlcw0KPiA+ DQo+ID4NCj4gPiAgY29uZmlnL2NvbW1vbl9iYXNlICAgICAgICAgICAgICAgICAgICB8ICAgMSAr DQo+ID4gIGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9wcm9maWxlX2FwcC5yc3QgfCAgMzQgKysrKysr KysNCj4gPiAgbGliL2xpYnJ0ZV9ldGhlci9NYWtlZmlsZSAgICAgICAgICAgICB8ICAgMSArDQo+ ID4gIGxpYi9saWJydGVfZXRoZXIvcnRlX2V0aGRldi5jICAgICAgICAgfCAgIDQgKw0KPiA+ICBs aWIvbGlicnRlX2V0aGVyL3J0ZV9ldGhkZXZfcHJvZmlsZS5jIHwgMTU2DQo+ID4gKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ICBsaWIvbGlicnRlX2V0aGVyL3J0ZV9ldGhk ZXZfcHJvZmlsZS5oIHwgIDUyICsrKysrKysrKysrKw0KPiA+ICA2IGZpbGVzIGNoYW5nZWQsIDI0 OCBpbnNlcnRpb25zKCspDQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIvbGlicnRlX2V0aGVy L3J0ZV9ldGhkZXZfcHJvZmlsZS5jDQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIvbGlicnRl X2V0aGVyL3J0ZV9ldGhkZXZfcHJvZmlsZS5oDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvY29uZmln L2NvbW1vbl9iYXNlIGIvY29uZmlnL2NvbW1vbl9iYXNlIGluZGV4DQo+ID4gOGFlNmU5Mi4uZGRh NTFkYiAxMDA2NDQNCj4gPiAtLS0gYS9jb25maWcvY29tbW9uX2Jhc2UNCj4gPiArKysgYi9jb25m aWcvY29tbW9uX2Jhc2UNCj4gPiBAQCAtMTM2LDYgKzEzNiw3IEBAIENPTkZJR19SVEVfTUFYX1FV RVVFU19QRVJfUE9SVD0xMDI0DQo+ID4gIENPTkZJR19SVEVfTElCUlRFX0lFRUUxNTg4PW4NCj4g PiAgQ09ORklHX1JURV9FVEhERVZfUVVFVUVfU1RBVF9DTlRSUz0xNg0KPiA+ICBDT05GSUdfUlRF X0VUSERFVl9SWFRYX0NBTExCQUNLUz15DQo+ID4gK0NPTkZJR19SVEVfRVRIREVWX1BST0ZJTEVf SVRUX1dBU1RFRF9SWF9JVEVSQVRJT05TPW4NCj4gPg0KPiA+ICAjDQo+ID4gICMgVHVybiBvZmYg VHggcHJlcGFyYXRpb24gc3RhZ2UNCj4gPiBkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy9wcm9nX2d1 aWRlL3Byb2ZpbGVfYXBwLnJzdA0KPiA+IGIvZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3Byb2ZpbGVf YXBwLnJzdA0KPiA+IGluZGV4IDU0YjU0NmEuLjU5MGNiNzIgMTAwNjQ0DQo+ID4gLS0tIGEvZG9j L2d1aWRlcy9wcm9nX2d1aWRlL3Byb2ZpbGVfYXBwLnJzdA0KPiA+ICsrKyBiL2RvYy9ndWlkZXMv cHJvZ19ndWlkZS9wcm9maWxlX2FwcC5yc3QNCj4gPiBAQCAtNTksNiArNTksNDAgQEAgUmVmZXIg dG8gdGhlDQo+ID4gIGZvciBkZXRhaWxzIGFib3V0IGFwcGxpY2F0aW9uIHByb2ZpbGluZy4NCj4g Pg0KPiA+DQo+ID4gK1Byb2ZpbGluZyB3YXN0ZWQgaXRlcmF0aW9ucyB3aXRoIElUVA0KPiA+ICt+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4NCj4gPiArDQo+ID4gK0l0ZXJhdGlv bnMgdGhhdCB5aWVsZGVkIG5vIFJYIHBhY2tldHMgKHdhc3RlZCBsb29wIGl0ZXJhdGlvbnMpIGNh biBiZQ0KPiA+ICthbmFseXplZCB1c2luZyBJbnRlbMKuIFZUdW5lXCA6c3VwOmBUTWAgQW1wbGlm aWVyLiBUaGlzIHByb2ZpbGluZw0KPiA+ICtlbXBsb3lzIHRoZSBgSW5zdHJ1bWVudGF0aW9uIGFu ZCBUcmFjaW5nIFRlY2hub2xvZ3kgKElUVCkgQVBJDQo+ID4gKzxodHRwczovL3NvZnR3YXJlLmlu dGVsLmNvbS9lbi11cy9ub2RlLzU0NDE5NT5gXw0KPiA+ICtmZWF0dXJlIG9mIFZUdW5lIEFtcGxp ZmllciBhbmQgcmVxdWlyZXMgb25seSByZWNvbmZpZ3VyaW5nIG9mIERQREsNCj4gPiArbGlicmFy eSwgbm8gY2hhbmdlcyBpbiBhIERQREsgYXBwbGljYXRpb24gYXJlIG5lZWRlZC4NCj4gPiArDQo+ ID4gK1RvIHRyYWNlIHdhc3RlZCBpdGVyYXRpb25zIG9uIFJYIHF1ZXVlcywgZmlyc3QgcmVjb25m aWd1cmUgRFBESyB3aXRoDQo+ID4gK2BgQ09ORklHX1JURV9FVEhERVZfUlhUWF9DQUxMQkFDS1Ng YCBhbmQNCj4gPiArYGBDT05GSUdfUlRFX0VUSERFVl9QUk9GSUxFX0lUVF9XQVNURURfUlhfSVRF UkFUSU9OU2BgIGVuYWJsZWQuDQo+ID4gKw0KPiA+ICtUaGVuIHJlYnVpbGQgRFBESywgc3BlY2lm eWluZyBwYXRocyB0byB0aGUgSVRUIGhlYWRlciBhbmQgbGlicmFyeSwNCj4gPiArd2hpY2ggY2Fu IGJlIGZvdW5kIGluIGFueSBWVHVuZSBBbXBsaWZpZXIgZGlzdHJpYnV0aW9uIGluIHRoZQ0KPiA+ ICsqaW5jbHVkZSogYW5kICpsaWIqIGRpcmVjdG9yaWVzIHJlc3BlY3RpdmVseToNCj4gPiArDQo+ ID4gKy4uIGNvZGUtYmxvY2s6OiBjb25zb2xlDQo+ID4gKw0KPiA+ICsgICAgbWFrZSBFWFRSQV9D RkxBR1M9LUk8cGF0aCB0byBpdHRub3RpZnkuaD4gXA0KPiA+ICsgICAgICAgICBFWFRSQV9MRExJ QlM9Ii1MPHBhdGggdG8gbGliaXR0bm90aWZ5LmE+IC1saXR0bm90aWZ5Ig0KPiA+ICsNCj4gPiAr RmluYWxseSwgdG8gc2VlIHdhc3RlZCBpdGVyYXRpb25zIGluIHlvdXIgcGVyZm9ybWFuY2UgYW5h bHlzaXMNCj4gPiArcmVzdWx0cywgc2VsZWN0IHRoZSAqIkFuYWx5emUgdXNlciB0YXNrcywgZXZl bnRzLCBhbmQgY291bnRlcnMiKg0KPiA+ICtjaGVja2JveCBpbiB0aGUgKiJBbmFseXNpcyBUeXBl IiogdGFiIHdoZW4gY29uZmlndXJpbmcgYW5hbHlzaXMgdmlhIFZUdW5lDQo+IEFtcGxpZmllciBH VUkuDQo+ID4gK0FsdGVybmF0aXZlbHksIHdoZW4gcnVubmluZyBWVHVuZSBBbXBsaWZpZXIgdmlh IGNvbW1hbmQgbGluZSwgc3BlY2lmeQ0KPiA+ICtgYC1rbm9iIGVuYWJsZS11c2VyLXRhc2tzPXRy dWVgYCBvcHRpb24uDQo+ID4gKw0KPiA+ICtDb2xsZWN0ZWQgcmVnaW9ucyBvZiB3YXN0ZWQgaXRl cmF0aW9ucyB3aWxsIGJlIG1hcmtlZCBvbiBWVHVuZQ0KPiA+ICtBbXBsaWZpZXIncyB0aW1lbGlu ZSBhcyBJVFQgdGFza3MuIFRoZXNlIElUVCB0YXNrcyBoYXZlIHByZWRlZmluZWQNCj4gPiArbmFt ZXMsIGNvbnRhaW5pbmcgRXRoZXJuZXQgZGV2aWNlIGFuZCBSWCBxdWV1ZSBpZGVudGlmaWVycy4N Cj4gDQo+IERvY3VtZW50YXRpb24gY2hhbmdlcyBjb3VsZCBtb3ZlIHRvIGRpZmZlcmVudCBwYXRj aCBmb3IgYmV0dGVyIHJldmlldy4NCj4gDQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfZXRo ZXIvcnRlX2V0aGRldl9wcm9maWxlLmgNCj4gPiBiL2xpYi9saWJydGVfZXRoZXIvcnRlX2V0aGRl dl9wcm9maWxlLmgNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAu LjFlYjcyYmQNCj4gPiArLyoqDQo+ID4gKyAqIEluaXRpYWxpemF0aW9uIG9mIHByb2ZpbGluZyBS WCBxdWV1ZXMgZm9yIHRoZSBFdGhlcm5ldCBkZXZpY2UuDQo+ID4gKyAqIEltcGxlbWVudGF0aW9u IG9mIHRoaXMgZnVuY3Rpb24gZGVwZW5kcyBvbiBjaG9zZW4gcHJvZmlsaW5nDQo+ID4gK21ldGhv ZCwNCj4gPiArICogZGVmaW5lZCBpbiBjb25maWdzLg0KPiA+ICsgKg0KPiA+ICsgKiBAcGFyYW0g cG9ydF9pZA0KPiA+ICsgKiAgVGhlIHBvcnQgaWRlbnRpZmllciBvZiB0aGUgRXRoZXJuZXQgZGV2 aWNlLg0KPiA+ICsgKiBAcGFyYW0gZGV2DQo+ID4gKyAqICBQb2ludGVyIHRvIHN0cnVjdCBydGVf ZXRoX2RldiBjb3JyZXNwb25kaW5nIHRvIGdpdmVuIHBvcnRfaWQuDQo+ID4gKyAqLw0KPiA+ICt2 b2lkDQo+ID4gK3J0ZV9ldGhfcHJvZmlsZV9yeF9pbml0KHVpbnQ4X3QgcG9ydF9pZCwgc3RydWN0 IHJ0ZV9ldGhfZGV2ICpkZXYpOw0KPiANCj4gYmV0dGVyIHRvIHByZWZpeCBfXyBmb3IgaW50ZXJu YWwgZnVuY3Rpb24oaS5lIF9fcnRlX2V0aF9wcm9maWxlX3J4X2luaXQpDQo+IA0KPiBXaXRoIGFi b3ZlIHN1Z2dlc3RlZCBjaGFuZ2VzOg0KPiANCj4gQWNrZWQtYnk6IEplcmluIEphY29iIDxqZXJp bi5qYWNvYkBjYXZpdW1uZXR3b3Jrcy5jb20+DQo+IA0KPiANCj4gPiArDQo+ID4gKyNlbmRpZg0K PiA+IC0tDQo+ID4gMi43LjQNCj4gPg0KPiA+DQo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiBKb2ludCBT dG9jayBDb21wYW55IEludGVsIEEvTw0KPiA+IFJlZ2lzdGVyZWQgbGVnYWwgYWRkcmVzczogS3J5 bGF0c2t5IEhpbGxzIEJ1c2luZXNzIFBhcmssDQo+ID4gMTcgS3J5bGF0c2theWEgU3RyLiwgQmxk ZyA0LCBNb3Njb3cgMTIxNjE0LCBSdXNzaWFuIEZlZGVyYXRpb24NCj4gPg0KPiA+IFRoaXMgZS1t YWlsIGFuZCBhbnkgYXR0YWNobWVudHMgbWF5IGNvbnRhaW4gY29uZmlkZW50aWFsIG1hdGVyaWFs IGZvcg0KPiA+IHRoZSBzb2xlIHVzZSBvZiB0aGUgaW50ZW5kZWQgcmVjaXBpZW50KHMpLiBBbnkg cmV2aWV3IG9yIGRpc3RyaWJ1dGlvbg0KPiA+IGJ5IG90aGVycyBpcyBzdHJpY3RseSBwcm9oaWJp dGVkLiBJZiB5b3UgYXJlIG5vdCB0aGUgaW50ZW5kZWQNCj4gPiByZWNpcGllbnQsIHBsZWFzZSBj b250YWN0IHRoZSBzZW5kZXIgYW5kIGRlbGV0ZSBhbGwgY29waWVzLg0KPiANCj4gUmVtb3ZlIHN1 Y2ggbm90aWNlIHdoZW4gc2VuZCB0byBwdWJsaWMgbWFpbGluZyBsaXN0Lg0KDQoKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KSm9pbnQgU3RvY2sgQ29tcGFueSBJbnRlbCBBL08KUmVnaXN0ZXJlZCBsZWdhbCBhZGRyZXNz OiBLcnlsYXRza3kgSGlsbHMgQnVzaW5lc3MgUGFyaywKMTcgS3J5bGF0c2theWEgU3RyLiwgQmxk ZyA0LCBNb3Njb3cgMTIxNjE0LApSdXNzaWFuIEZlZGVyYXRpb24KClRoaXMgZS1tYWlsIGFuZCBh bnkgYXR0YWNobWVudHMgbWF5IGNvbnRhaW4gY29uZmlkZW50aWFsIG1hdGVyaWFsIGZvcgp0aGUg c29sZSB1c2Ugb2YgdGhlIGludGVuZGVkIHJlY2lwaWVudChzKS4gQW55IHJldmlldyBvciBkaXN0 cmlidXRpb24KYnkgb3RoZXJzIGlzIHN0cmljdGx5IHByb2hpYml0ZWQuIElmIHlvdSBhcmUgbm90 IHRoZSBpbnRlbmRlZApyZWNpcGllbnQsIHBsZWFzZSBjb250YWN0IHRoZSBzZW5kZXIgYW5kIGRl bGV0ZSBhbGwgY29waWVzLgo=