From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 556A61B48D; Tue, 9 Oct 2018 12:22:48 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Oct 2018 03:22:47 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,360,1534834800"; d="scan'208";a="239757113" Received: from pgsmsx102.gar.corp.intel.com ([10.221.44.80]) by orsmga004.jf.intel.com with ESMTP; 09 Oct 2018 03:22:45 -0700 Received: from pgsmsx109.gar.corp.intel.com (10.221.44.109) by PGSMSX102.gar.corp.intel.com (10.221.44.80) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 9 Oct 2018 18:22:44 +0800 Received: from pgsmsx103.gar.corp.intel.com ([169.254.2.13]) by PGSMSX109.gar.corp.intel.com ([169.254.14.29]) with mapi id 14.03.0319.002; Tue, 9 Oct 2018 18:22:44 +0800 From: "Zhao1, Wei" To: Ilya Maximets , "Zhang, Qi Z" , "dev@dpdk.org" CC: "Lu, Wenzhuo" , "Ananyev, Konstantin" , Laurent Hardy , "stable@dpdk.org" , Thomas Monjalon , "Yigit, Ferruh" Thread-Topic: [dpdk-dev] [PATCH] net/ixgbe: fix busy polling while fiber link update Thread-Index: AQHUSRgNQX2uzJKLekeq5MEAlIUV2aTrsTgAgAAVKwCAAAaSgIAOiIUAgBJruQCACiBBcA== Date: Tue, 9 Oct 2018 10:22:43 +0000 Message-ID: References: <20180831123824eucas1p1cd2981c716c4764703e24c3eeb4d33c7~P_GOOSRuf0867908679eucas1p1K@eucas1p1.samsung.com> <039ED4275CED7440929022BC67E706115327FA5E@SHSMSX103.ccr.corp.intel.com> <20180910150708eucas1p220c16857c4277b311ddc000b9337d9cb~TEk8KngQJ1365413654eucas1p2a@eucas1p2.samsung.com> <039ED4275CED7440929022BC67E7061153284304@SHSMSX103.ccr.corp.intel.com> <20180912080338eucas1p1bfdacb30aa969cd607ccf99f64d6bf80~TmFveK2Dy2157121571eucas1p1U@eucas1p1.samsung.com> <039ED4275CED7440929022BC67E7061153284408@SHSMSX103.ccr.corp.intel.com> <039ED4275CED7440929022BC67E706115329F90B@SHSMSX103.ccr.corp.intel.com> <20181003074105eucas1p19452a3d3d788e58be6eaab36295775a6~aCVDfgCVZ0655806558eucas1p1H@eucas1p1.samsung.com> In-Reply-To: <20181003074105eucas1p19452a3d3d788e58be6eaab36295775a6~aCVDfgCVZ0655806558eucas1p1H@eucas1p1.samsung.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.400.15 dlp-reaction: no-action x-originating-ip: [172.30.20.205] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH] net/ixgbe: fix busy polling while fiber link update 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: Tue, 09 Oct 2018 10:22:49 -0000 SEksDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2IFttYWlsdG86 ZGV2LWJvdW5jZXNAZHBkay5vcmddIE9uIEJlaGFsZiBPZiBJbHlhIE1heGltZXRzDQo+IFNlbnQ6 IFdlZG5lc2RheSwgT2N0b2JlciAzLCAyMDE4IDM6NDMgUE0NCj4gVG86IFpoYW5nLCBRaSBaIDxx aS56LnpoYW5nQGludGVsLmNvbT47IGRldkBkcGRrLm9yZw0KPiBDYzogTHUsIFdlbnpodW8gPHdl bnpodW8ubHVAaW50ZWwuY29tPjsgQW5hbnlldiwgS29uc3RhbnRpbg0KPiA8a29uc3RhbnRpbi5h bmFueWV2QGludGVsLmNvbT47IExhdXJlbnQgSGFyZHkNCj4gPGxhdXJlbnQuaGFyZHlANndpbmQu Y29tPjsgRGFpLCBXZWkgPHdlaS5kYWlAaW50ZWwuY29tPjsNCj4gc3RhYmxlQGRwZGsub3JnOyBU aG9tYXMgTW9uamFsb24gPHRob21hc0Btb25qYWxvbi5uZXQ+OyBZaWdpdCwgRmVycnVoDQo+IDxm ZXJydWgueWlnaXRAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0hd IG5ldC9peGdiZTogZml4IGJ1c3kgcG9sbGluZyB3aGlsZSBmaWJlciBsaW5rDQo+IHVwZGF0ZQ0K PiANCj4gT24gMjEuMDkuMjAxOCAxNzoyNSwgWmhhbmcsIFFpIFogd3JvdGU6DQo+ID4NCj4gPg0K PiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBkZXYgW21haWx0bzpk ZXYtYm91bmNlc0BkcGRrLm9yZ10gT24gQmVoYWxmIE9mIFpoYW5nLCBRaSBaDQo+ID4+IFNlbnQ6 IFdlZG5lc2RheSwgU2VwdGVtYmVyIDEyLCAyMDE4IDQ6MjkgUE0NCj4gPj4gVG86IElseWEgTWF4 aW1ldHMgPGkubWF4aW1ldHNAc2Ftc3VuZy5jb20+OyBkZXZAZHBkay5vcmcNCj4gPj4gQ2M6IEx1 LCBXZW56aHVvIDx3ZW56aHVvLmx1QGludGVsLmNvbT47IEFuYW55ZXYsIEtvbnN0YW50aW4NCj4g Pj4gPGtvbnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb20+OyBMYXVyZW50IEhhcmR5DQo+ID4+IDxs YXVyZW50LmhhcmR5QDZ3aW5kLmNvbT47IERhaSwgV2VpIDx3ZWkuZGFpQGludGVsLmNvbT47DQo+ ID4+IHN0YWJsZUBkcGRrLm9yZw0KPiA+PiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0hd IG5ldC9peGdiZTogZml4IGJ1c3kgcG9sbGluZyB3aGlsZQ0KPiA+PiBmaWJlciBsaW5rIHVwZGF0 ZQ0KPiA+Pg0KPiA+Pg0KPiA+Pg0KPiA+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4g Pj4+IEZyb206IElseWEgTWF4aW1ldHMgW21haWx0bzppLm1heGltZXRzQHNhbXN1bmcuY29tXQ0K PiA+Pj4gU2VudDogV2VkbmVzZGF5LCBTZXB0ZW1iZXIgMTIsIDIwMTggNDowNSBQTQ0KPiA+Pj4g VG86IFpoYW5nLCBRaSBaIDxxaS56LnpoYW5nQGludGVsLmNvbT47IGRldkBkcGRrLm9yZw0KPiA+ Pj4gQ2M6IEx1LCBXZW56aHVvIDx3ZW56aHVvLmx1QGludGVsLmNvbT47IEFuYW55ZXYsIEtvbnN0 YW50aW4NCj4gPj4+IDxrb25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29tPjsgTGF1cmVudCBIYXJk eQ0KPiA+Pj4gPGxhdXJlbnQuaGFyZHlANndpbmQuY29tPjsgRGFpLCBXZWkgPHdlaS5kYWlAaW50 ZWwuY29tPjsNCj4gPj4+IHN0YWJsZUBkcGRrLm9yZw0KPiA+Pj4gU3ViamVjdDogUmU6IFtkcGRr LWRldl0gW1BBVENIXSBuZXQvaXhnYmU6IGZpeCBidXN5IHBvbGxpbmcgd2hpbGUNCj4gPj4+IGZp YmVyIGxpbmsgdXBkYXRlDQo+ID4+Pg0KPiA+Pj4gT24gMTIuMDkuMjAxOCAwOTo0OSwgWmhhbmcs IFFpIFogd3JvdGU6DQo+ID4+Pj4NCj4gPj4+Pg0KPiA+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiA+Pj4+PiBGcm9tOiBJbHlhIE1heGltZXRzIFttYWlsdG86aS5tYXhpbWV0c0Bz YW1zdW5nLmNvbV0NCj4gPj4+Pj4gU2VudDogTW9uZGF5LCBTZXB0ZW1iZXIgMTAsIDIwMTggMTE6 MDkgUE0NCj4gPj4+Pj4gVG86IFpoYW5nLCBRaSBaIDxxaS56LnpoYW5nQGludGVsLmNvbT47IGRl dkBkcGRrLm9yZw0KPiA+Pj4+PiBDYzogTHUsIFdlbnpodW8gPHdlbnpodW8ubHVAaW50ZWwuY29t PjsgQW5hbnlldiwgS29uc3RhbnRpbg0KPiA+Pj4+PiA8a29uc3RhbnRpbi5hbmFueWV2QGludGVs LmNvbT47IExhdXJlbnQgSGFyZHkNCj4gPj4+Pj4gPGxhdXJlbnQuaGFyZHlANndpbmQuY29tPjsg RGFpLCBXZWkgPHdlaS5kYWlAaW50ZWwuY29tPjsNCj4gPj4+Pj4gc3RhYmxlQGRwZGsub3JnDQo+ ID4+Pj4+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSF0gbmV0L2l4Z2JlOiBmaXggYnVz eSBwb2xsaW5nIHdoaWxlDQo+ID4+Pj4+IGZpYmVyIGxpbmsgdXBkYXRlDQo+ID4+Pj4+DQo+ID4+ Pj4+IE9uIDA0LjA5LjIwMTggMDk6MDgsIFpoYW5nLCBRaSBaIHdyb3RlOg0KPiA+Pj4+Pj4gSGkg SWx5YToNCj4gPj4+Pj4+DQo+ID4+Pj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4g Pj4+Pj4+PiBGcm9tOiBkZXYgW21haWx0bzpkZXYtYm91bmNlc0BkcGRrLm9yZ10gT24gQmVoYWxm IE9mIElseWENCj4gPj4+Pj4+PiBNYXhpbWV0cw0KPiA+Pj4+Pj4+IFNlbnQ6IEZyaWRheSwgQXVn dXN0IDMxLCAyMDE4IDg6NDAgUE0NCj4gPj4+Pj4+PiBUbzogZGV2QGRwZGsub3JnDQo+ID4+Pj4+ Pj4gQ2M6IEx1LCBXZW56aHVvIDx3ZW56aHVvLmx1QGludGVsLmNvbT47IEFuYW55ZXYsIEtvbnN0 YW50aW4NCj4gPj4+Pj4+PiA8a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNvbT47IExhdXJlbnQg SGFyZHkNCj4gPj4+Pj4+PiA8bGF1cmVudC5oYXJkeUA2d2luZC5jb20+OyBEYWksIFdlaSA8d2Vp LmRhaUBpbnRlbC5jb20+OyBJbHlhDQo+ID4+Pj4+Pj4gTWF4aW1ldHMgPGkubWF4aW1ldHNAc2Ft c3VuZy5jb20+OyBzdGFibGVAZHBkay5vcmcNCj4gPj4+Pj4+PiBTdWJqZWN0OiBbZHBkay1kZXZd IFtQQVRDSF0gbmV0L2l4Z2JlOiBmaXggYnVzeSBwb2xsaW5nIHdoaWxlDQo+ID4+Pj4+Pj4gZmli ZXIgbGluayB1cGRhdGUNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IElmIHRoZSBtdWx0aXNwZWVkIGZp YmVyIGxpbmsgaXMgaW4gRE9XTiBzdGF0ZSwgaXhnYmVfc2V0dXBfbGluaw0KPiA+Pj4+Pj4+IGNv dWxkIHRha2UgYXJvdW5kIGEgc2Vjb25kIG9mIGJ1c3kgcG9sbGluZy4gVGhpcyBpcyBoaWdobHkN Cj4gPj4+Pj4+PiBpbmNvbnZlbmllbnQgZm9yIHRoZSBjYXNlIHdoZXJlIHNpbmdsZSB0aHJlYWQg cGVyaW9kaWNhbGx5DQo+ID4+Pj4+Pj4gY2hlY2tzIHRoZSBsaW5rDQo+ID4+PiBzdGF0dXNlcy4N Cj4gPj4+Pj4+PiBGb3IgZXhhbXBsZSwgT1ZTIG1haW4gdGhyZWFkIHBlcmlvZGljYWxseSB1cGRh dGVzIHRoZSBsaW5rDQo+ID4+Pj4+Pj4gc3RhdHVzZXMgYW5kIGhhbmdzIGZvciBhIHJlYWxseSBs b25nIHRpbWUgYnVzeSB3YWl0aW5nIG9uDQo+ID4+Pj4+Pj4gaXhnYmVfc2V0dXBfbGluaygpIGZv ciBhIERPV04gZmliZXIgcG9ydHMuIEZvciBjYXNlIHdpdGggMyBkb3duDQo+ID4+Pj4+Pj4gcG9y dHMgaXQgaGFuZ3MgZm9yIGEgMyBzZWNvbmRzIGFuZCB1bmFibGUgdG8gZG8gYW55dGhpbmcNCj4g Pj4+Pj4+PiBpbmNsdWRpbmcNCj4gPj4gcGFja2V0IHByb2Nlc3NpbmcuDQo+ID4+Pj4+Pj4gRml4 IHRoYXQgYnkgc2hpZnRpbmcgdGhhdCB3b3JrYXJvdW5kIHRvIGEgc2VwYXJhdGUgdGhyZWFkIGJ5 DQo+ID4+Pj4+Pj4gYWxhcm0gaGFuZGxlciB0aGF0IHdpbGwgdHJ5IHRvIHNldCB1cCBsaW5rIGlm IGl0IGlzIERPV04uDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gRG9lcyB0aGF0IG1lYW4gd2Ugd2lsbCBi bG9jayB0aGUgaW50ZXJydXB0IHRocmVhZCBmb3IgMyBzZWNvbmRzPw0KPiA+Pj4+Pg0KPiA+Pj4+ PiBUaHJlZSB0aW1lcyBmb3Igb25lIHNlY29uZC4gT3RoZXIgd29yayBjb3VsZCBiZSBzY2hlZHVs ZWQgYmV0d2Vlbi4NCj4gPj4+Pj4gSU1ITywgaXQncyBtdWNoIGJldHRlciB0aGFuIGJsb2NraW5n IHVzdWFsIGNhbGxlciBmb3IgMyBzZWNvbmRzLg0KPiA+Pj4+Pg0KPiA+Pj4+Pj4gQWxzbywgY2Fu IHdlIGd1YXJhbnRlZSB0aGVyZSB3aWxsIG5vdCBiZSBhbnkgcmFjZSBjb25kaXRpb24gaWYgd2UN Cj4gPj4+Pj4+IGNhbGwNCj4gPj4+Pj4gaXhnYmVfc2V0dXBfbGluayBhdCBhbm90aGVyIHRocmVh ZCwgdGhlIGJhc2UgY29kZSBBUEkgaXMgbm90DQo+ID4+Pj4+IGFzc3VtZWQgdG8gYmUgdGhyZWFk LXNhZmUgYXMgSSBrbm93Lg0KPiA+Pj4+Pg0KPiA+Pj4+PiBUaGUgb25seSB1c2VyIG9mICdpeGdi ZV9zZXR1cF9saW5rJyBpcyAnaXhnYmVfZGV2X3N0YXJ0JywgYnV0IGl0DQo+ID4+Pj4+IGNvdWxk IGJlIGNhbGxlZCBvbmx5IGlmIGRldmljZSBzdG9wcGVkLiAnaXhnYmVfZGV2X3N0b3AnIGNhbmNl bHMNCj4gPj4+Pj4gdGhlDQo+ID4+IGFsYXJtLg0KPiA+Pj4+PiBSYWNlIHdpdGggJ2xpbmtfdXBk YXRlJyBhdm9pZGVkIGJ5DQo+ICdJWEdCRV9GTEFHX05FRURfTElOS19DT05GSUcnDQo+ID4+IGZs YWcuDQo+ID4+Pj4NCj4gPj4+PiBJIGd1ZXNzLCBpdCcgbm90IG9ubHkgYWJvdXQgd2hlbiBpeGdi X3NldHVwX2xpbmsgcmFjZSB3aXRoIGl0c2VsZiwNCj4gPj4+PiBidXQgYWxzbw0KPiA+Pj4gd2hl biBpdCByYWNlIHdpdGggb3RoZXIgQVBJcy4NCj4gPj4+PiBBbHNvIHRoZSBjb25jZXJuIGlzLCBl dmVuIGluIGN1cnJlbnQgdmVyc2lvbiwgd2UgY2FuIHByb3ZlIHRoZXJlIGlzDQo+ID4+Pj4gbm8g aXNzdWUsDQo+ID4+PiBob3cgY2FuIHdlIGd1YXJhbnRlZSB3ZSBhcmUgc2FmZSBmb3IgZnV0dXJl IGJhc2UgY29kZSB1cGRhdGU/IEl0J3MNCj4gPj4+IG5vdCBkZXNpZ25lZCBhcyB0aHJlYWQtc2Fm ZS4NCj4gPj4+PiBGb3IgbXkgb3B0aW9uLCB0aGUgY2hhbmdlIGlzIHJpc2t5Lg0KPiA+Pj4NCj4g Pj4+IEluIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gaW50ZXJydXB0IGhhbmRsZXIgYWxyZWFkeSBj YWxscyB0aGUNCj4gPj4+ICdpeGdiZV9kZXZfbGlua191cGRhdGUnIHdoaWNoIHN1YnNlcXVlbnRs eSBjYWxscyAnaXhnYmVfc2V0dXBfbGluaycNCj4gPj4+IGluIG91ciBjYXNlIGlmIExTQyBpbnRl cnJ1cHRzIGVuYWJsZWQuIFNvLCBteSBjaGFuZ2UgbWFrZXMgdGhlDQo+ID4+PiBkcml2ZXIgZXZl biBzYWZlciBieSBtb3ZpbmcgJ2l4Z2JlX3NldHVwX2xpbmsnIHRvIHRoZSBzYW1lIGludGVycnVw dA0KPiB0aHJlYWQuDQo+ID4+PiBPdGhlcndpc2UgdHdvIHRocmVhZHMgKGludGVycnVwdHMgaGFu ZGxlciBhbmQgdGhlIGxpbmsgc3RhdHVzDQo+ID4+PiBjaGVja2luZw0KPiA+Pj4gdGhyZWFkKSBj b3VsZCBjYWxsICdpeGdiZV9zZXR1cF9saW5rJyBzaW11bHRhbmVvdXNseS4NCj4gPj4NCj4gPj4g T2ssIHlvdSBhcmUgcmlnaHQsIHNlZW1zIHRoZSBjb25jZXJuIEkgaGF2ZSBpcyBhbHJlYWR5IGV4 aXN0ICwgeW91cg0KPiA+PiBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgbmV3IGlzc3VlLg0KPiA+ PiBTbyBJIGhhdmUgbm8gb2JqZWN0aW9uIGlmIHRoaXMgd2lsbCBmaXggc29tZSBpc3N1ZS4NCj4g Pj4gQnV0IGxldCdzIGNoZWNrIGlmIGFueSBpeGdiZSBleHBlcnRzIHdpbGwgY29tbWVudC4NCj4g Pj4NCj4gPj4gUmVnYXJkcw0KPiA+PiBRaQ0KPiA+Pg0KPiA+Pj4NCj4gPj4+Pg0KPiA+Pj4+IEJ0 dywgc2luY2UgaXhnYmUgc3VwcG9ydCBMU0MsIGl0IGlzIG5vdCBuZWNlc3NhcnkgZm9yICJzaW5n bGUNCj4gPj4+PiB0aHJlYWQNCj4gPj4+IHBlcmlvZGljYWxseSBjaGVja3MgdGhlIGxpbmsgc3Rh dHVzZXMiLCByaWdodD8NCj4gPj4+DQo+ID4+PiBJbiBjdXJyZW50IGltcGxlbWVudGF0aW9uIGl0 IHdpbGwgdGFrZSBhdCBsZWFzdCA1IHNlY29uZHMgKDQgKyAxKQ0KPiA+Pj4gZm9yIHRoZSBpbnRl cnJ1cHQgaGFuZGxlciB0byBkZXRlY3QgRE9XTiBsaW5rIHN0YXRlIGZvciBpeGdiZQ0KPiA+Pj4g bXVsdGlzcGVlZCBmaWJlci4gVGhpcyBpcyB0b28gbXVjaCBmb3IgbWFueSByZWFsIHdvcmxkIGNh c2VzLg0KPiA+Pj4NCj4gPj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IFJlZ2FyZHMN Cj4gPj4+Pj4+IFFpDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gRml4ZXM6IGMxMmQy MmY2NWIxMyAoIm5ldC9peGdiZTogZW5zdXJlIGxpbmsgc3RhdHVzIGlzIHVwZGF0ZWQiKQ0KPiA+ Pj4+Pj4+IENDOiBzdGFibGVAZHBkay5vcmcNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IFNpZ25lZC1v ZmYtYnk6IElseWEgTWF4aW1ldHMgPGkubWF4aW1ldHNAc2Ftc3VuZy5jb20+DQo+ID4NCj4gPiBS ZXZpZXdlZC1ieTogUWkgWmhhbmcgPHFpLnouemhhbmdAaW50ZWwuY29tPg0KPiANCj4gSGkuDQo+ IElzIHRoZXJlIGFueSBjaGFuY2UgZm9yIHRoaXMgdG8gYmUgbWVyZ2VkIGluIGEgbmVhciBmdXR1 cmU/DQo+IA0KPiBTaXR1YXRpb24gYmVjb21lcyBldmVuIHdvcnNlLiBSZWNlbnRseSBhY2NlcHRl ZCBjb21taXQgYjI4MTVjNDFiZDBiDQo+ICgibmV0L2l4Z2JlOiB3YWl0IGxvbmdlciBmb3IgbGlu ayBhZnRlciBmaWJlciBNQUMgc2V0dXAiKSBpbmNyZWFzZXMgdGhlIHRpbWUgb2YNCj4gdGhlIHRo cmVhZCBoYW5nIGJ1c3kgd2FpdGluZyB1cCB0bw0KPiAxLjUgc2Vjb25kcyBwZXIgcG9ydCBvbiBl YWNoIGxpbmsgc3RhdGUgY2hlY2suDQo+IA0KPiBCZXN0IHJlZ2FyZHMsIElseWEgTWF4aW1ldHMu DQoNCldlIGFyZSByZXZpZXcgdGhpcyBwYXRjaCBub3csIGFuZCBmZWVkYmFjayB0byB5b3UgQVNB UCwgU09SUlkuDQoNCg==