From mboxrd@z Thu Jan 1 00:00:00 1970 From: Raslan Darawsheh Subject: Re: [PATCH v6 3/3] app/testpmd: set packet dump based on verbosity level Date: Thu, 18 Oct 2018 08:47:36 +0000 Message-ID: References: <1538897848-1693-1-git-send-email-rasland@mellanox.com> <1539789731-18409-1-git-send-email-rasland@mellanox.com> <1539789731-18409-3-git-send-email-rasland@mellanox.com> <8CEF83825BEC744B83065625E567D7C260D1292F@IRSMSX107.ger.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: Thomas Monjalon , "dev@dpdk.org" , Shahaf Shuler , "Xueming(Steven) Li" , Ori Kam , "jerin.jacob@caviumnetworks.com" , "david.marchand@6wind.com" To: Ferruh Yigit , "Iremonger, Bernard" , "Wu, Jingjing" Return-path: Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10054.outbound.protection.outlook.com [40.107.1.54]) by dpdk.org (Postfix) with ESMTP id 32A601B109 for ; Thu, 18 Oct 2018 10:47:38 +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" WW91IGFyZSByaWdodCBhYm91dCB0aGF0IG15IG1pc3Rha2UuIA0KDQpLaW5kZXN0IHJlZ2FyZHMs DQpSYXNsYW4gRGFyYXdzaGVoDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJv bTogRmVycnVoIFlpZ2l0IDxmZXJydWgueWlnaXRAaW50ZWwuY29tPg0KPiBTZW50OiBUaHVyc2Rh eSwgT2N0b2JlciAxOCwgMjAxOCAxMTozNCBBTQ0KPiBUbzogUmFzbGFuIERhcmF3c2hlaCA8cmFz bGFuZEBtZWxsYW5veC5jb20+OyBJcmVtb25nZXIsIEJlcm5hcmQNCj4gPGJlcm5hcmQuaXJlbW9u Z2VyQGludGVsLmNvbT47IFd1LCBKaW5namluZyA8amluZ2ppbmcud3VAaW50ZWwuY29tPg0KPiBD YzogVGhvbWFzIE1vbmphbG9uIDx0aG9tYXNAbW9uamFsb24ubmV0PjsgZGV2QGRwZGsub3JnOyBT aGFoYWYNCj4gU2h1bGVyIDxzaGFoYWZzQG1lbGxhbm94LmNvbT47IFh1ZW1pbmcoU3RldmVuKSBM aQ0KPiA8eHVlbWluZ2xAbWVsbGFub3guY29tPjsgT3JpIEthbSA8b3Jpa2FAbWVsbGFub3guY29t PjsNCj4gamVyaW4uamFjb2JAY2F2aXVtbmV0d29ya3MuY29tOyBkYXZpZC5tYXJjaGFuZEA2d2lu ZC5jb20NCj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIIHY2IDMvM10gYXBwL3Rlc3Rw bWQ6IHNldCBwYWNrZXQgZHVtcA0KPiBiYXNlZCBvbiB2ZXJib3NpdHkgbGV2ZWwNCj4gDQo+IE9u IDEwLzE4LzIwMTggOToxOSBBTSwgUmFzbGFuIERhcmF3c2hlaCB3cm90ZToNCj4gPiBIaSwNCj4g Pg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBGZXJydWggWWln aXQgPGZlcnJ1aC55aWdpdEBpbnRlbC5jb20+DQo+ID4+IFNlbnQ6IFdlZG5lc2RheSwgT2N0b2Jl ciAxNywgMjAxOCA3OjMzIFBNDQo+ID4+IFRvOiBJcmVtb25nZXIsIEJlcm5hcmQgPGJlcm5hcmQu aXJlbW9uZ2VyQGludGVsLmNvbT47IFJhc2xhbg0KPiA+PiBEYXJhd3NoZWggPHJhc2xhbmRAbWVs bGFub3guY29tPjsgV3UsIEppbmdqaW5nDQo+ID4+IDxqaW5namluZy53dUBpbnRlbC5jb20+DQo+ ID4+IENjOiBUaG9tYXMgTW9uamFsb24gPHRob21hc0Btb25qYWxvbi5uZXQ+OyBkZXZAZHBkay5v cmc7IFNoYWhhZg0KPiA+PiBTaHVsZXIgPHNoYWhhZnNAbWVsbGFub3guY29tPjsgWHVlbWluZyhT dGV2ZW4pIExpDQo+ID4+IDx4dWVtaW5nbEBtZWxsYW5veC5jb20+OyBPcmkgS2FtIDxvcmlrYUBt ZWxsYW5veC5jb20+Ow0KPiA+PiBqZXJpbi5qYWNvYkBjYXZpdW1uZXR3b3Jrcy5jb207IGRhdmlk Lm1hcmNoYW5kQDZ3aW5kLmNvbQ0KPiA+PiBTdWJqZWN0OiBSZTogW1BBVENIIHY2IDMvM10gYXBw L3Rlc3RwbWQ6IHNldCBwYWNrZXQgZHVtcCBiYXNlZCBvbg0KPiA+PiB2ZXJib3NpdHkgbGV2ZWwN Cj4gPj4NCj4gPj4gT24gMTAvMTcvMjAxOCA1OjI0IFBNLCBJcmVtb25nZXIsIEJlcm5hcmQgd3Jv dGU6DQo+ID4+PiBIaSBSYXNsYW4sDQo+ID4+Pg0KPiA+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQo+ID4+Pj4gRnJvbTogUmFzbGFuIERhcmF3c2hlaCBbbWFpbHRvOnJhc2xhbmRAbWVs bGFub3guY29tXQ0KPiA+Pj4+IFNlbnQ6IFdlZG5lc2RheSwgT2N0b2JlciAxNywgMjAxOCA0OjIy IFBNDQo+ID4+Pj4gVG86IFd1LCBKaW5namluZyA8amluZ2ppbmcud3VAaW50ZWwuY29tPg0KPiA+ Pj4+IENjOiB0aG9tYXNAbW9uamFsb24ubmV0OyBkZXZAZHBkay5vcmc7IHNoYWhhZnNAbWVsbGFu b3guY29tOw0KPiA+Pj4+IHJhc2xhbmRAbWVsbGFub3guY29tOyB4dWVtaW5nbEBtZWxsYW5veC5j b207DQo+IG9yaWthQG1lbGxhbm94LmNvbTsNCj4gPj4+PiBqZXJpbi5qYWNvYkBjYXZpdW1uZXR3 b3Jrcy5jb207IGRhdmlkLm1hcmNoYW5kQDZ3aW5kLmNvbTsNCj4gPj4gSXJlbW9uZ2VyLA0KPiA+ Pj4+IEJlcm5hcmQgPGJlcm5hcmQuaXJlbW9uZ2VyQGludGVsLmNvbT47IFlpZ2l0LCBGZXJydWgN Cj4gPj4+PiA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT4NCj4gPj4+PiBTdWJqZWN0OiBbUEFUQ0gg djYgMy8zXSBhcHAvdGVzdHBtZDogc2V0IHBhY2tldCBkdW1wIGJhc2VkIG9uDQo+ID4+Pj4gdmVy Ym9zaXR5IGxldmVsDQo+ID4+Pj4NCj4gPj4+PiB3aGVuIGNoYW5naW5nIHZlcmJvc2l0eSBsZXZl bCBpdCB3aWxsIGNvbmZpZ3VyZSByeC90eCBjYWxsYmFja3MgdG8NCj4gPj4+PiBkdW1wIHBhY2tl dHMgYmFzZWQgb24gdGhlIHZlcmJvc2l0eSB2YWx1ZSBhcyBmb2xsb3dpbmc6DQo+ID4+Pj4gICAg IDEtIGR1bXAgb25seSByZWNlaXZlZCBwYWNrZXRzOg0KPiA+Pj4+ICAgICAgICB0ZXN0cG1kPiBz ZXQgdmVyYm9zZSAxDQo+ID4+Pj4gICAgIDItIGR1bXAgb25seSBzZW50IHBhY2tldHM6DQo+ID4+ Pj4gICAgICAgIHRlc3RwbWQ+IHNldCB2ZXJib3NlIDINCj4gPj4+PiAgICAgMy0gZHVtcCBzZW50 IGFuZCByZWNlaXZlZCBwYWNrZXRzOg0KPiA+Pj4+ICAgICAgICB0ZXN0cG1kPiBzZXQgdmVyYm9z ZSAoYW55IG51bWJlciA+IDIpDQo+ID4+Pj4gICAgIDQtIGRpc2FibGUgZHVtcA0KPiA+Pj4+ICAg ICAgICB0ZXN0cG1kPiBzZXQgdmVyYm9zZSAwDQo+ID4+Pj4NCj4gPj4+PiBTaWduZWQtb2ZmLWJ5 OiBSYXNsYW4gRGFyYXdzaGVoIDxyYXNsYW5kQG1lbGxhbm94LmNvbT4NCj4gPj4+PiBBY2tlZC1i eTogQmVybmFyZCBJcmVtb25nZXIgPGJlcm5hcmQuaXJlbW9uZ2VyQGludGVsLmNvbT4NCj4gPj4+ Pg0KPiA+Pj4+IC0tLQ0KPiA+Pj4+IGNoYW5nZXMgaW4gdjY6DQo+ID4+Pj4gCWFkZCBkb2N1bWVu dGF0aW9uIGZvciB0aGUgcGFja2V0IGR1bXANCj4gPj4+PiAtLS0NCj4gPj4+PiAtLS0NCj4gPj4+ PiAgYXBwL3Rlc3QtcG1kL2NvbmZpZy5jICAgICAgICAgICAgICAgICAgICAgICB8IDI1DQo+ICsr KysrKysrKysrKysrKysrKysrKysrKysNCj4gPj4+PiAgYXBwL3Rlc3QtcG1kL3Rlc3RwbWQuYyAg ICAgICAgICAgICAgICAgICAgICB8ICA0ICsrLS0NCj4gPj4+PiAgYXBwL3Rlc3QtcG1kL3Rlc3Rw bWQuaCAgICAgICAgICAgICAgICAgICAgICB8ICAxICsNCj4gPj4+PiAgZG9jL2d1aWRlcy90ZXN0 cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdCB8ICA2ICsrKysrLQ0KPiA+Pj4+ICA0IGZpbGVz IGNoYW5nZWQsIDMzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pDQo+ID4+Pj4NCj4gPj4+ PiBkaWZmIC0tZ2l0IGEvYXBwL3Rlc3QtcG1kL2NvbmZpZy5jIGIvYXBwL3Rlc3QtcG1kL2NvbmZp Zy5jIGluZGV4DQo+ID4+Pj4gNTVmZWM3Zi4uMTY5NjYyMyAxMDA2NDQNCj4gPj4+PiAtLS0gYS9h cHAvdGVzdC1wbWQvY29uZmlnLmMNCj4gPj4+PiArKysgYi9hcHAvdGVzdC1wbWQvY29uZmlnLmMN Cj4gPj4+PiBAQCAtNTAsNiArNTAsNyBAQA0KPiA+Pj4+ICAjZW5kaWYNCj4gPj4+PiAgI2luY2x1 ZGUgPHJ0ZV9ncm8uaD4NCj4gPj4+PiAgI2luY2x1ZGUgPGNtZGxpbmVfcGFyc2VfZXRoZXJhZGRy Lmg+DQo+ID4+Pj4gKyNpbmNsdWRlIDxydGVfY29uZmlnLmg+DQo+ID4+Pj4NCj4gPj4+PiAgI2lu Y2x1ZGUgInRlc3RwbWQuaCINCj4gPj4+Pg0KPiA+Pj4+IEBAIC0yNzczLDExICsyNzc0LDM1IEBA IHJlbW92ZV90eF9kdW1wX2NhbGxiYWNrcyhwb3J0aWRfdA0KPiBwb3J0aWQpDQo+ID4+IH0NCj4g Pj4+Pg0KPiA+Pj4+ICB2b2lkDQo+ID4+Pj4gK2NvbmZpZ3VyZV9yeHR4X2R1bXBfY2FsbGJhY2tz KHVpbnQxNl90IHZlcmJvc2UpIHsNCj4gPj4+PiArCXBvcnRpZF90IHBvcnRpZDsNCj4gPj4+PiAr DQo+ID4+Pj4gKyNpZm5kZWYgUlRFX0VUSERFVl9SWFRYX0NBTExCQUNLUw0KPiA+Pj4+ICsJCVRF U1RQTURfTE9HKEVSUiwgInNldHRpbmcgcnh0eCBjYWxsYmFja3MgaXMgbm90DQo+ID4+IGVuYWJs ZWRcbiIpOw0KPiA+Pj4+ICsJCXJldHVybjsNCj4gPj4+PiArI2VuZGlmDQo+ID4+Pj4gKw0KPiA+ Pj4+ICsJUlRFX0VUSF9GT1JFQUNIX0RFVihwb3J0aWQpDQo+ID4+Pj4gKwl7DQo+ID4+Pj4gKwkJ aWYgKHZlcmJvc2UgPT0gMSB8fCB2ZXJib3NlID4gMikNCj4gPj4+PiArCQkJYWRkX3J4X2R1bXBf Y2FsbGJhY2tzKHBvcnRpZCk7DQo+ID4+Pj4gKwkJZWxzZQ0KPiA+Pj4+ICsJCQlyZW1vdmVfcnhf ZHVtcF9jYWxsYmFja3MocG9ydGlkKTsNCj4gPj4+PiArCQlpZiAodmVyYm9zZSA+PSAyKQ0KPiA+ Pj4+ICsJCQlhZGRfdHhfZHVtcF9jYWxsYmFja3MocG9ydGlkKTsNCj4gPj4+PiArCQllbHNlDQo+ ID4+Pj4gKwkJCXJlbW92ZV90eF9kdW1wX2NhbGxiYWNrcyhwb3J0aWQpOw0KPiA+Pj4+ICsJfQ0K PiA+Pj4+ICt9DQo+ID4+Pj4gKw0KPiA+Pj4+ICt2b2lkDQo+ID4+Pj4gIHNldF92ZXJib3NlX2xl dmVsKHVpbnQxNl90IHZiX2xldmVsKSAgew0KPiA+Pj4+ICAJcHJpbnRmKCJDaGFuZ2UgdmVyYm9z ZSBsZXZlbCBmcm9tICV1IHRvICV1XG4iLA0KPiA+Pj4+ICAJICAgICAgICh1bnNpZ25lZCBpbnQp IHZlcmJvc2VfbGV2ZWwsICh1bnNpZ25lZCBpbnQpIHZiX2xldmVsKTsNCj4gPj4+PiAgCXZlcmJv c2VfbGV2ZWwgPSB2Yl9sZXZlbDsNCj4gPj4+PiArCWNvbmZpZ3VyZV9yeHR4X2R1bXBfY2FsbGJh Y2tzKHZlcmJvc2VfbGV2ZWwpOw0KPiA+Pj4+ICB9DQo+ID4+Pj4NCj4gPj4+PiAgdm9pZA0KPiA+ Pj4+IGRpZmYgLS1naXQgYS9hcHAvdGVzdC1wbWQvdGVzdHBtZC5jIGIvYXBwL3Rlc3QtcG1kL3Rl c3RwbWQuYyBpbmRleA0KPiA+Pj4+IDVkYmJmNzguLjNjNDI5MjQgMTAwNjQ0DQo+ID4+Pj4gLS0t IGEvYXBwL3Rlc3QtcG1kL3Rlc3RwbWQuYw0KPiA+Pj4+ICsrKyBiL2FwcC90ZXN0LXBtZC90ZXN0 cG1kLmMNCj4gPj4+PiBAQCAtMTk4OCw3ICsxOTg4LDcgQEAgc3RhcnRfcG9ydChwb3J0aWRfdCBw aWQpDQo+ID4+Pj4gIAkJCQkJcmV0dXJuIC0xOw0KPiA+Pj4+ICAJCQkJfQ0KPiA+Pj4+ICAJCQl9 DQo+ID4+Pj4gLQ0KPiA+Pj4+ICsJCQljb25maWd1cmVfcnh0eF9kdW1wX2NhbGxiYWNrcygwKTsN Cj4gPj4+PiAgCQkJcHJpbnRmKCJDb25maWd1cmluZyBQb3J0ICVkIChzb2NrZXQgJXUpXG4iLCBw aSwNCj4gPj4+PiAgCQkJCQlwb3J0LT5zb2NrZXRfaWQpOw0KPiA+Pj4+ICAJCQkvKiBjb25maWd1 cmUgcG9ydCAqLw0KPiA+Pj4+IEBAIC0yMDg3LDcgKzIwODcsNyBAQCBzdGFydF9wb3J0KHBvcnRp ZF90IHBpZCkNCj4gPj4+PiAgCQkJCXJldHVybiAtMTsNCj4gPj4+PiAgCQkJfQ0KPiA+Pj4+ICAJ CX0NCj4gPj4+PiAtDQo+ID4+Pj4gKwkJY29uZmlndXJlX3J4dHhfZHVtcF9jYWxsYmFja3ModmVy Ym9zZV9sZXZlbCk7DQo+ID4+Pj4gIAkJLyogc3RhcnQgcG9ydCAqLw0KPiA+Pj4+ICAJCWlmIChy dGVfZXRoX2Rldl9zdGFydChwaSkgPCAwKSB7DQo+ID4+Pj4gIAkJCXByaW50ZigiRmFpbCB0byBz dGFydCBwb3J0ICVkXG4iLCBwaSk7IGRpZmYgLS1naXQNCj4gPj4gYS9hcHAvdGVzdC0NCj4gPj4+ PiBwbWQvdGVzdHBtZC5oIGIvYXBwL3Rlc3QtcG1kL3Rlc3RwbWQuaCBpbmRleCBjMDdiZWU4Li4z ZGE3MjhjDQo+ID4+IDEwMDY0NA0KPiA+Pj4+IC0tLSBhL2FwcC90ZXN0LXBtZC90ZXN0cG1kLmgN Cj4gPj4+PiArKysgYi9hcHAvdGVzdC1wbWQvdGVzdHBtZC5oDQo+ID4+Pj4gQEAgLTc3Nyw2ICs3 NzcsNyBAQCB2b2lkIGFkZF9yeF9kdW1wX2NhbGxiYWNrcyhwb3J0aWRfdCBwb3J0aWQpOw0KPiA+ Pj4+IHZvaWQgcmVtb3ZlX3J4X2R1bXBfY2FsbGJhY2tzKHBvcnRpZF90IHBvcnRpZCk7ICB2b2lk DQo+ID4+Pj4gYWRkX3R4X2R1bXBfY2FsbGJhY2tzKHBvcnRpZF90IHBvcnRpZCk7ICB2b2lkDQo+ ID4+Pj4gcmVtb3ZlX3R4X2R1bXBfY2FsbGJhY2tzKHBvcnRpZF90IHBvcnRpZCk7DQo+ID4+Pj4g K3ZvaWQgY29uZmlndXJlX3J4dHhfZHVtcF9jYWxsYmFja3ModWludDE2X3QgdmVyYm9zZSk7DQo+ ID4+Pj4NCj4gPj4+PiAgLyoNCj4gPj4+PiAgICogV29yay1hcm91bmQgb2YgYSBjb21waWxhdGlv biBlcnJvciB3aXRoIElDQyBvbiBpbnZvY2F0aW9ucyBvZg0KPiA+Pj4+IHRoZSBkaWZmIC0tZ2l0 IGEvZG9jL2d1aWRlcy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdA0KPiA+Pj4+IGIv ZG9jL2d1aWRlcy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdA0KPiA+Pj4+IGluZGV4 IGNhMDYwZTEuLjYwODU1YzYgMTAwNjQ0DQo+ID4+Pj4gLS0tIGEvZG9jL2d1aWRlcy90ZXN0cG1k X2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdA0KPiA+Pj4+ICsrKyBiL2RvYy9ndWlkZXMvdGVzdHBt ZF9hcHBfdWcvdGVzdHBtZF9mdW5jcy5yc3QNCj4gPj4+PiBAQCAtNDQ5LDcgKzQ0OSwxMSBAQCBT ZXQgdGhlIGRlYnVnIHZlcmJvc2l0eSBsZXZlbDo6DQo+ID4+Pj4NCj4gPj4+PiAgICAgdGVzdHBt ZD4gc2V0IHZlcmJvc2UgKGxldmVsKQ0KPiA+Pj4+DQo+ID4+Pj4gLUN1cnJlbnRseSB0aGUgb25s eSBhdmFpbGFibGUgbGV2ZWxzIGFyZSAwIChzaWxlbnQgZXhjZXB0IGZvcg0KPiA+Pj4+IGVycm9y KSBhbmQgMSAoZnVsbHkgdmVyYm9zZSkuDQo+ID4+Pj4gK0F2YWlsYWJsZSBsZXZlbHMgYXJlIGFz IGZvbGxvd2luZzoNCj4gPj4+PiArKiBgYDBgYCBzaWxlbnQgZXhjZXB0IGZvciBlcnJvci4NCj4g Pj4+PiArKiBgYDFgYCBmdWxseSB2ZXJib3NlIGV4Y2VwdCBmb3IgVHggcGFja2V0cy4NCj4gPj4+ PiArKiBgYDJgYCBmdWxseSB2ZXJib3NlIGV4Y2VwdCBmb3IgUnggcGFja2V0cy4NCj4gPj4+PiAr KiBgYD4gMmBgIGZ1bGx5IHZlcmJvc2UuDQo+ID4+Pj4NCj4gPj4+DQo+ID4+PiBUaGUgaHRtbCBv dXRwdXQgaXMgcHJvYmFibHkgbm90IHdoYXQgeW91IGludGVuZGVkOg0KPiA+Pj4NCj4gPj4+IEF2 YWlsYWJsZSBsZXZlbHMgYXJlIGFzIGZvbGxvd2luZzogKiAwIHNpbGVudCBleGNlcHQgZm9yIGVy cm9yLiAqIDENCj4gPj4+IGZ1bGx5IHZlcmJvc2UNCj4gPj4gZXhjZXB0IGZvciBUeCBwYWNrZXRz LiAqIDIgZnVsbHkgdmVyYm9zZSBleGNlcHQgZm9yIFJ4IHBhY2tldHMuICogPiAyDQo+ID4+IGZ1 bGx5IHZlcmJvc2UuDQo+ID4+Pg0KPiA+Pj4gQSBibGFuayBsaW5lIGlzIG5lZWRlZCBiZXR3ZWVu IGVhY2ggbGluZS4NCj4gPj4NCj4gPj4gWW91IGEgcmlnaHQsIG91dHB1dCBpcyBicm9rZW4uIEkg dXBkYXRlZCBpbiB0aGUgdHJlZSwganVzdCBvbmUgYmxhbmsNCj4gPj4gbGluZSBiZWZvcmUgbGlz dCBzZWVtcyBkaWQgdGhlIHdvcmsuDQo+ID4+IFJhc2xhbiBjYW4geW91IHBsZWFzZSBjb25maXJt IHRoZSBsYXRlc3QgZG9jIGluIHRoZSB0cmVlPw0KPiA+DQo+ID4gSSBzZWUgaXQncyBtZXJnZWQg aW4gZHBkay1uZXh0L21hc3RlciBidXQsIGl0IGRvZXNuJ3QgaGF2ZSB0aGUgbWlzc2luZyBibGFu aw0KPiBsaW5lcy4NCj4gDQo+IEluIHJlcG8gaXQgaXM6DQo+IA0KPiAiDQo+ICBBdmFpbGFibGUg bGV2ZWxzIGFyZSBhcyBmb2xsb3dpbmc6DQo+IA0KPiANCj4gDQo+IA0KPiANCj4gDQo+IA0KPiAg KiBgYDBgYCBzaWxlbnQgZXhjZXB0IGZvciBlcnJvci4NCj4gICogYGAxYGAgZnVsbHkgdmVyYm9z ZSBleGNlcHQgZm9yIFR4IHBhY2tldHMuDQo+ICAqIGBgMmBgIGZ1bGx5IHZlcmJvc2UgZXhjZXB0 IGZvciBSeCBwYWNrZXRzLg0KPiAgKiBgYD4gMmBgIGZ1bGx5IHZlcmJvc2UuDQo+ICINCj4gDQo+ IEluIG9yaWdpbmFsIHBhdGNoOg0KPiAiDQo+ICArQXZhaWxhYmxlIGxldmVscyBhcmUgYXMgZm9s bG93aW5nOg0KPiAgKyogYGAwYGAgc2lsZW50IGV4Y2VwdCBmb3IgZXJyb3IuDQo+ICArKiBgYDFg YCBmdWxseSB2ZXJib3NlIGV4Y2VwdCBmb3IgVHggcGFja2V0cy4NCj4gICsqIGBgMmBgIGZ1bGx5 IHZlcmJvc2UgZXhjZXB0IGZvciBSeCBwYWNrZXRzLg0KPiAgKyogYGA+IDJgYCBmdWxseSB2ZXJi b3NlLg0KPiAiDQo+IA0KPiBQbGVhc2UsIGNvbXBpbGUgYm90aCBhbmQgb2JzZXJ2ZSB0aGUgZGlm ZmVyZW5jZS4NCj4gDQo+ID4NCj4gPj4NCj4gPj4+DQo+ID4+Pj4gIHNldCBsb2cNCj4gPj4+PiAg fn5+fn5+fg0KPiA+Pj4+IC0tDQo+ID4+Pj4gMi43LjQNCj4gPj4+DQo+ID4+PiBSZWdhcmRzLA0K PiA+Pj4NCj4gPj4+IEJlcm5hcmQuDQo+ID4+Pg0KPiA+Pj4NCj4gPg0KPiA+DQo+ID4gS2luZGVz dCByZWdhcmRzLA0KPiA+IFJhc2xhbiBEYXJhd3NoZWgNCj4gPg0KDQo=