From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anton Ivanov Subject: Re: BUG:af_packet fails to TX TSO frames Date: Thu, 12 Oct 2017 16:57:11 +0100 Message-ID: <27c7ae97-c838-37b7-99c3-9bc4b0d6e69f@kot-begemot.co.uk> References: <844d6e0f-6ee7-74bc-b961-faa77b240303@cambridgegreys.com> <23ace6d6-afa7-9a3a-aa61-1245ee6c0498@kot-begemot.co.uk> <1e9c4f8b-2eb6-24cf-764f-b0a98aa0d044@kot-begemot.co.uk> <40e87e75-742f-3542-b79e-1e7fee9b4485@cambridgegreys.com> <2f973588-e193-86c1-a645-7a158b17ebdc@cambridgegreys.com> <529ff560-8230-c799-2948-fae711de382e@kot-begemot.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Cc: Network Development , David Miller , user-mode-linux-devel@lists.sourceforge.net To: Willem de Bruijn Return-path: In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: user-mode-linux-devel-bounces@lists.sourceforge.net List-Id: netdev.vger.kernel.org QWxzbyBjb25maXJtZWQgdXNpbmcgbXkgVU1MIHBhdGNoc2V0LiBUaGlzIGlzIGluc2lkZSB0aGUg VU1MIGd1ZXN0LgoKcm9vdEBibGlua3k6fiMgaXBlcmYgLWMgMTkyLjE2OC45OC4xCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpDbGll bnQgY29ubmVjdGluZyB0byAxOTIuMTY4Ljk4LjEsIFRDUCBwb3J0IDUwMDEKVENQIHdpbmRvdyBz aXplOsKgIDQxNCBLQnl0ZSAoZGVmYXVsdCkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClvCoCAzXSBsb2NhbCAxOTIuMTY4Ljk4LjE0 NiBwb3J0IDM2NzQ0IGNvbm5lY3RlZCB3aXRoIDE5Mi4xNjguOTguMSBwb3J0IDUwMDEKWyBJRF0g SW50ZXJ2YWzCoMKgwqDCoMKgwqAgVHJhbnNmZXLCoMKgwqDCoCBCYW5kd2lkdGgKW8KgIDNdwqAg MC4wLTEwLjAgc2VjwqAgNC41MiBHQnl0ZXPCoCAzLjg5IEdiaXRzL3NlYwoKVGhpcyBpcyBHU08g b24gYSByYXcgc29ja2V0IFZpcnR1YWwgTklDIHRvIGhvc3QuIE5vcm1hbCBzcGVlZCB3aXRob3V0 IApHU08gb24gc2FtZSBtYWNoaW5lIGlzIH4gNTAwLgoKU28gZm9yIHRoZSB0aW1lIGJlaW5nIEkg Y2FuIHR1cm4gb2ZmIFRTTyBmb3IgYW55dGhpbmcgYnV0IHY0IGluIHRoZSBVc2VyIApNb2RlIExp bnV4IHBhdGNoc2V0IChkZWNsYXJlIHRoZSBndWVzdCBOSUMgYXMgVFNPVjQgY2FwYWJsZSBvbmx5 KSBhbmQgCmVuYWJsZSBpdCBvbmNlIHRoZSBob3N0IGtlcm5lbCBpcyBmaXhlZC4gQWx0ZXJuYXRp dmVseSwgdGhlcmUgaXMgdGhlIApyYXRoZXIgdWdseSBhcHByb2FjaCBvZiB1c2luZyBtdWx0aXBs ZSBGRHMgLSBvbmUgZm9yIHY0LCBvbmUgZm9yIHY2LCBvbmUgCmZvci4uLgoKQS4KCk9uIDEwLzEy LzE3IDE2OjQ0LCBBbnRvbiBJdmFub3Ygd3JvdGU6Cj4gRm91bmQgaXQuCj4KPiBUd28gYnVncyBj YW5jZWxpbmcgZWFjaCBvdGhlci4KPiBUaGUgYmluZCBzZXF1ZW5jZSBpbjrCoCBwc29ja190eHJp bmdfdm5ldC5jIGlzIHdyb25nLgo+Cj4gSXQgZG9lcyB0aGUgZm9sbG93aW5nIGFkZHIuc2xsX3By b3RvY29sID3CoMKgwqAgaHRvbnMoRVRIX1BfSVApOwo+IGJlZm9yZSBjYWxsaW5nIGJpbmQuCj4K PiBJZiB5b3Ugc2V0IGFkZHIuc2xsX3Byb3RvY29sIHRvIEVUSF9QX0FMTCB3aGVyZSBpdCBzaG91 bGQgaGF2ZSBiZWVuIGluIAo+IHRoZSBmaXJzdCBwbGFjZSB0aGUgdGVzdCBwcm9ncmFtIGJsb3dz IHVwIHdpdGggLUVOT0JVRlMKPgo+IEkgdGhpbmsgd2hhdCBpcyBoYXBwZW5pbmcgaXMgdGhhdCB0 aGlzIHZhbHVlIGlzIHRha2VuIGludG8gYWNjb3VudCAKPiB3aGVuIGxvb2tpbmcgYXQgIndoYXQg c2hvdWxkIEkgdXNlIHRvIHNlZ21lbnQgaXQgd2l0aCIgaW4gCj4gc2tiX21hY19nc29fc2VnbWVu dCB3aGljaCBpcyBpbnZva2VkIGF0IHRoZSBlbmQgb2YgdGhlIHZlcmlmaWNhdGlvbiAKPiBjaGFp biB3aGljaCBzdGFydHMgaW4gcGFja2V0X2RpcmVjdF94bWl0IGluIGFmX3BhY2tldC5jCj4KPiBJ IGhhdmUgbm90IHRyaWVkIHRoZSBvdGhlciB0ZXN0IGNhc2VzIGxpa2Ugc2V0dGluZyBpdCB0byBF VEhfUF9JUCBhbmQgCj4gZ2l2aW5nIGl0IElQdjYgdHJhZmZpYyBvciB0aGUgb3Bwb3NpdGUsIGJ1 dCBteSBndWVzcyBpcyB0aGF0IHRoZXNlIAo+IHdpbGwgZmFpbCB0b28gaWYgdGhleSBuZWVkIEdT TyB0byBiZSBhcHBsaWVkLgo+Cj4gQS4KPgo+IE9uIDEwLzEyLzE3IDE1OjEyLCBBbnRvbiBJdmFu b3Ygd3JvdGU6Cj4+Cj4+Cj4+IE9uIDEwLzEyLzE3IDE0OjM5LCBXaWxsZW0gZGUgQnJ1aWpuIHdy b3RlOgo+Pj4+IElmIEkgcHJvZHVjZSBhIHJlYWwgdm5ldCBmcmFtZSBvdXQgb2YgYSBsaXZlIGtl cm5lbCBmcmFtZSB1c2luZwo+Pj4+IHZpcnRpb19uZXRfaGRyX2Zyb21fc2tiKCkgYW5kIHRyeSB0 byBzZW5kIGl0IGl0IGZhaWxzIG9uIHRoZSBjaGVjayBpbgo+Pj4+IGFmX3BhY2tldCwgd2hpbGUg c3VjY2VlZGluZyBmb3IgdGFwLiBJZiBJIHJlbW92ZSB0aGUgYWZfcGFja2V0IAo+Pj4+IGNoZWNr IHRoZQo+Pj4+IGZyYW1lIGlzIGFjY2VwdGVkIGJ5IHRoZSBoYXJkd2FyZSB0b28uCj4+Pj4KPj4+ PiBJZiBJIHByb2R1Y2UgaXQgYSBzeW50aGV0aWMgZnJhbWUgKyB2bmV0IGhlYWRlciB1c2luZyB0 aGUgdGVzdCAKPj4+PiBwcm9ncmFtIC0gaXQKPj4+PiB3b3Jrcy4gR28gZmlndXJlLgo+Pj4gQmVz aWRlcyBsb29raW5nIGF0IHRoZSByYXcgZnJhbWUgYnl0ZXMsIGFsc28gY29tcGFyZSB0aGUgc2V0 dXAKPj4+IG9mIHZpcnRpb19uZXRfaGVhZGVyLCBhcyB3ZWxsIGFzIHRoZSB0Y3AgY2hlY2tzdW0g ZmllbGQuIFRoZSBzdGFjawo+Pj4gZXhwZWN0cyB0aGUgcHNldWRvIGhlYWRlciB0byBoYXZlIGFs cmVhZHkgYmVlbiBjYWxjdWxhdGVkLgo+Pgo+PiBJIGFtIGZlZWRpbmcgaXQgYSBza2Igd2hpY2gg aXMgY29taW5nIHVwIGluIHRoZSB0eCByb3V0aW5lIG9mIGEgVXNlciAKPj4gTW9kZSBMaW51eCBk ZXZpY2Ugd2hpY2ggaXMgbWFya2VkIGFzIE5FVElGX0ZfSFdfQ1NVTSBhbmQgU0cgLSB0aGF0IAo+ PiByZXN1bHRzIGluIGEgc2tiIHdpdGggY3N1bS1lZCBoZWFkZXJzLCBib2R5IHNldCB1cCBmb3Ig Q1NVTV9QQVJUSUFMIAo+PiBhbmQgbXVsdGlwbGUgZnJhZ21lbnRzIChhbHdheXMgYXQgbGVhc3Qg MSBtb3JlIGZyYWcgYmVzaWRlcyB0aGUgVENQIAo+PiBoZWFkKS4KPj4KPj4gVGhhdCBoYXMgZXZl cnl0aGluZyBpbiBvcmRlciBhcyBleHBlY3RlZCBieSB2aXJ0aW9fbmV0X2hkcl9mcm9tX3NrYiAK Pj4gYW5kIHRoaXMgaXMgd2hhdCBJIHVzZSB0byBnZW5lcmF0ZSB0aGUgdm5ldCBoZWFkZXIuIEl0 IHdvcmtzIAo+PiBjb3JyZWN0bHkgZm9yIGNzdW0gYW5kIEdSTyB3aXRoIGFmX3BhY2tldCBhbmQg aXQgd29ya3MgY29ycmVjdGx5IGZvciAKPj4gZXZlcnl0aGluZyB1c2luZyBhIHRhcCBkZXZpY2Uu IEl0IGZhaWxzIG9ubHkgb24gR1NPICsgYWZfcGFja2V0IFRYLgo+Pgo+PiBXaGF0IEkgYW0gZG9p bmcgaXMgdGhlIHNhbWUgdGhpbmcgdmlydGlvX25ldCBkb2VzIC0gaXQganVzdCB0YWtlcyB0aGUg Cj4+IG91dHB1dCBvZiB2aXJ0aW9fbmV0X2hkcl9mcm9tX3NrYiBhbmQgZG9lcyBub3RoaW5nIG1v cmUuIFRoZXJlIHNob3VsZCAKPj4gYmUgbm8gbmVlZCB0byBkbyBhbnl0aGluZyBtb3JlIDooCj4+ Cj4+IEl0IHNob3VsZCBqdXN0IHdvcmsuCj4+Cj4+IFVubGVzcyB0aGVyZSBpcyBhIGdyZW1saW4g c29tZXdoZXJlIGluIHRoZSBtYWNoaW5lcnkgYW5kIHRoYXQgZ3JlbWxpbiAKPj4gbmVlZHMgc29t ZSBsaWdodCB0byBiZSBmbHVzaGVkIG91dC4KPj4+Cj4+Pj4gSSBhbSBnb2luZyB0byBjb250aW51 ZSBkaWdnaW5nIGludG8gaXQuCj4+Pj4KPj4+PiBBdCB0aGUgdmVyeSBsZWFzdCBJIG5vdyBoYXZl IGEgcG9zaXRpdmUgdGVzdCBjYXNlIHdoaWNoIHVzZXMgdGhlIHNhbWUKPj4+PiBzZW1hbnRpY3Mg YXMgbXkgY29kZSBzbyBJIGhhdmUgc29tZXRoaW5nIHRvIGNvbXBhcmUgdG8uCj4+PiBHbGFkIHRv IGhlYXIgdGhhdCB0aGUgdGVzdCBpcyBoZWxwZnVsLiBJIHdyb3RlIGl0IGJlY2F1c2UgSQo+Pj4g aGF2ZSBydW4gaW50byB0aGVzZSBleGFjdCBzYW1lIGlzc3VlcyBpbiB0aGUgcGFzdC4KPj4KPj4g SXQgaXMuIEkgaGF2ZSBjaGFuZ2VzIHJlYWR5IGZvciBpdCBzbyBpdCBhbHNvIHN1cHBvcnRzIHZl Y3RvciBJTywgCj4+IG5lZWQgdG8gZmluaXNoIGZpZ2h0aW5nIHdpdGggaXQuCj4+Cj4+IEEuCj4+ Cj4+Pgo+Pgo+CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQ2hlY2sgb3V0IHRoZSB2aWJyYW50IHRl Y2ggY29tbXVuaXR5IG9uIG9uZSBvZiB0aGUgd29ybGQncyBtb3N0CmVuZ2FnaW5nIHRlY2ggc2l0 ZXMsIFNsYXNoZG90Lm9yZyEgaHR0cDovL3NkbS5saW5rL3NsYXNoZG90Cl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClVzZXItbW9kZS1saW51eC1kZXZlbCBt YWlsaW5nIGxpc3QKVXNlci1tb2RlLWxpbnV4LWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldApo dHRwczovL2xpc3RzLnNvdXJjZWZvcmdlLm5ldC9saXN0cy9saXN0aW5mby91c2VyLW1vZGUtbGlu dXgtZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sog-mx-1.v43.ch3.sourceforge.com ([172.29.43.191] helo=mx.sourceforge.net) by sfs-ml-3.v29.ch3.sourceforge.com with esmtps (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.89) (envelope-from ) id 1e2frQ-0001ID-8l for user-mode-linux-devel@lists.sourceforge.net; Thu, 12 Oct 2017 15:57:24 +0000 Received: from ivanoab5.miniserver.com ([78.31.111.25] helo=www.kot-begemot.co.uk) by sog-mx-1.v43.ch3.sourceforge.com with esmtps (TLSv1:AES128-SHA:128) (Exim 4.76) id 1e2frO-0004WM-TQ for user-mode-linux-devel@lists.sourceforge.net; Thu, 12 Oct 2017 15:57:24 +0000 From: Anton Ivanov References: <844d6e0f-6ee7-74bc-b961-faa77b240303@cambridgegreys.com> <23ace6d6-afa7-9a3a-aa61-1245ee6c0498@kot-begemot.co.uk> <1e9c4f8b-2eb6-24cf-764f-b0a98aa0d044@kot-begemot.co.uk> <40e87e75-742f-3542-b79e-1e7fee9b4485@cambridgegreys.com> <2f973588-e193-86c1-a645-7a158b17ebdc@cambridgegreys.com> <529ff560-8230-c799-2948-fae711de382e@kot-begemot.co.uk> Message-ID: <27c7ae97-c838-37b7-99c3-9bc4b0d6e69f@kot-begemot.co.uk> Date: Thu, 12 Oct 2017 16:57:11 +0100 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US Subject: Re: [uml-devel] BUG:af_packet fails to TX TSO frames List-Id: The user-mode Linux development list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: user-mode-linux-devel-bounces@lists.sourceforge.net To: Willem de Bruijn Cc: Network Development , David Miller , user-mode-linux-devel@lists.sourceforge.net QWxzbyBjb25maXJtZWQgdXNpbmcgbXkgVU1MIHBhdGNoc2V0LiBUaGlzIGlzIGluc2lkZSB0aGUg VU1MIGd1ZXN0LgoKcm9vdEBibGlua3k6fiMgaXBlcmYgLWMgMTkyLjE2OC45OC4xCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpDbGll bnQgY29ubmVjdGluZyB0byAxOTIuMTY4Ljk4LjEsIFRDUCBwb3J0IDUwMDEKVENQIHdpbmRvdyBz aXplOsKgIDQxNCBLQnl0ZSAoZGVmYXVsdCkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClvCoCAzXSBsb2NhbCAxOTIuMTY4Ljk4LjE0 NiBwb3J0IDM2NzQ0IGNvbm5lY3RlZCB3aXRoIDE5Mi4xNjguOTguMSBwb3J0IDUwMDEKWyBJRF0g SW50ZXJ2YWzCoMKgwqDCoMKgwqAgVHJhbnNmZXLCoMKgwqDCoCBCYW5kd2lkdGgKW8KgIDNdwqAg MC4wLTEwLjAgc2VjwqAgNC41MiBHQnl0ZXPCoCAzLjg5IEdiaXRzL3NlYwoKVGhpcyBpcyBHU08g b24gYSByYXcgc29ja2V0IFZpcnR1YWwgTklDIHRvIGhvc3QuIE5vcm1hbCBzcGVlZCB3aXRob3V0 IApHU08gb24gc2FtZSBtYWNoaW5lIGlzIH4gNTAwLgoKU28gZm9yIHRoZSB0aW1lIGJlaW5nIEkg Y2FuIHR1cm4gb2ZmIFRTTyBmb3IgYW55dGhpbmcgYnV0IHY0IGluIHRoZSBVc2VyIApNb2RlIExp bnV4IHBhdGNoc2V0IChkZWNsYXJlIHRoZSBndWVzdCBOSUMgYXMgVFNPVjQgY2FwYWJsZSBvbmx5 KSBhbmQgCmVuYWJsZSBpdCBvbmNlIHRoZSBob3N0IGtlcm5lbCBpcyBmaXhlZC4gQWx0ZXJuYXRp dmVseSwgdGhlcmUgaXMgdGhlIApyYXRoZXIgdWdseSBhcHByb2FjaCBvZiB1c2luZyBtdWx0aXBs ZSBGRHMgLSBvbmUgZm9yIHY0LCBvbmUgZm9yIHY2LCBvbmUgCmZvci4uLgoKQS4KCk9uIDEwLzEy LzE3IDE2OjQ0LCBBbnRvbiBJdmFub3Ygd3JvdGU6Cj4gRm91bmQgaXQuCj4KPiBUd28gYnVncyBj YW5jZWxpbmcgZWFjaCBvdGhlci4KPiBUaGUgYmluZCBzZXF1ZW5jZSBpbjrCoCBwc29ja190eHJp bmdfdm5ldC5jIGlzIHdyb25nLgo+Cj4gSXQgZG9lcyB0aGUgZm9sbG93aW5nIGFkZHIuc2xsX3By b3RvY29sID3CoMKgwqAgaHRvbnMoRVRIX1BfSVApOwo+IGJlZm9yZSBjYWxsaW5nIGJpbmQuCj4K PiBJZiB5b3Ugc2V0IGFkZHIuc2xsX3Byb3RvY29sIHRvIEVUSF9QX0FMTCB3aGVyZSBpdCBzaG91 bGQgaGF2ZSBiZWVuIGluIAo+IHRoZSBmaXJzdCBwbGFjZSB0aGUgdGVzdCBwcm9ncmFtIGJsb3dz IHVwIHdpdGggLUVOT0JVRlMKPgo+IEkgdGhpbmsgd2hhdCBpcyBoYXBwZW5pbmcgaXMgdGhhdCB0 aGlzIHZhbHVlIGlzIHRha2VuIGludG8gYWNjb3VudCAKPiB3aGVuIGxvb2tpbmcgYXQgIndoYXQg c2hvdWxkIEkgdXNlIHRvIHNlZ21lbnQgaXQgd2l0aCIgaW4gCj4gc2tiX21hY19nc29fc2VnbWVu dCB3aGljaCBpcyBpbnZva2VkIGF0IHRoZSBlbmQgb2YgdGhlIHZlcmlmaWNhdGlvbiAKPiBjaGFp biB3aGljaCBzdGFydHMgaW4gcGFja2V0X2RpcmVjdF94bWl0IGluIGFmX3BhY2tldC5jCj4KPiBJ IGhhdmUgbm90IHRyaWVkIHRoZSBvdGhlciB0ZXN0IGNhc2VzIGxpa2Ugc2V0dGluZyBpdCB0byBF VEhfUF9JUCBhbmQgCj4gZ2l2aW5nIGl0IElQdjYgdHJhZmZpYyBvciB0aGUgb3Bwb3NpdGUsIGJ1 dCBteSBndWVzcyBpcyB0aGF0IHRoZXNlIAo+IHdpbGwgZmFpbCB0b28gaWYgdGhleSBuZWVkIEdT TyB0byBiZSBhcHBsaWVkLgo+Cj4gQS4KPgo+IE9uIDEwLzEyLzE3IDE1OjEyLCBBbnRvbiBJdmFu b3Ygd3JvdGU6Cj4+Cj4+Cj4+IE9uIDEwLzEyLzE3IDE0OjM5LCBXaWxsZW0gZGUgQnJ1aWpuIHdy b3RlOgo+Pj4+IElmIEkgcHJvZHVjZSBhIHJlYWwgdm5ldCBmcmFtZSBvdXQgb2YgYSBsaXZlIGtl cm5lbCBmcmFtZSB1c2luZwo+Pj4+IHZpcnRpb19uZXRfaGRyX2Zyb21fc2tiKCkgYW5kIHRyeSB0 byBzZW5kIGl0IGl0IGZhaWxzIG9uIHRoZSBjaGVjayBpbgo+Pj4+IGFmX3BhY2tldCwgd2hpbGUg c3VjY2VlZGluZyBmb3IgdGFwLiBJZiBJIHJlbW92ZSB0aGUgYWZfcGFja2V0IAo+Pj4+IGNoZWNr IHRoZQo+Pj4+IGZyYW1lIGlzIGFjY2VwdGVkIGJ5IHRoZSBoYXJkd2FyZSB0b28uCj4+Pj4KPj4+ PiBJZiBJIHByb2R1Y2UgaXQgYSBzeW50aGV0aWMgZnJhbWUgKyB2bmV0IGhlYWRlciB1c2luZyB0 aGUgdGVzdCAKPj4+PiBwcm9ncmFtIC0gaXQKPj4+PiB3b3Jrcy4gR28gZmlndXJlLgo+Pj4gQmVz aWRlcyBsb29raW5nIGF0IHRoZSByYXcgZnJhbWUgYnl0ZXMsIGFsc28gY29tcGFyZSB0aGUgc2V0 dXAKPj4+IG9mIHZpcnRpb19uZXRfaGVhZGVyLCBhcyB3ZWxsIGFzIHRoZSB0Y3AgY2hlY2tzdW0g ZmllbGQuIFRoZSBzdGFjawo+Pj4gZXhwZWN0cyB0aGUgcHNldWRvIGhlYWRlciB0byBoYXZlIGFs cmVhZHkgYmVlbiBjYWxjdWxhdGVkLgo+Pgo+PiBJIGFtIGZlZWRpbmcgaXQgYSBza2Igd2hpY2gg aXMgY29taW5nIHVwIGluIHRoZSB0eCByb3V0aW5lIG9mIGEgVXNlciAKPj4gTW9kZSBMaW51eCBk ZXZpY2Ugd2hpY2ggaXMgbWFya2VkIGFzIE5FVElGX0ZfSFdfQ1NVTSBhbmQgU0cgLSB0aGF0IAo+ PiByZXN1bHRzIGluIGEgc2tiIHdpdGggY3N1bS1lZCBoZWFkZXJzLCBib2R5IHNldCB1cCBmb3Ig Q1NVTV9QQVJUSUFMIAo+PiBhbmQgbXVsdGlwbGUgZnJhZ21lbnRzIChhbHdheXMgYXQgbGVhc3Qg MSBtb3JlIGZyYWcgYmVzaWRlcyB0aGUgVENQIAo+PiBoZWFkKS4KPj4KPj4gVGhhdCBoYXMgZXZl cnl0aGluZyBpbiBvcmRlciBhcyBleHBlY3RlZCBieSB2aXJ0aW9fbmV0X2hkcl9mcm9tX3NrYiAK Pj4gYW5kIHRoaXMgaXMgd2hhdCBJIHVzZSB0byBnZW5lcmF0ZSB0aGUgdm5ldCBoZWFkZXIuIEl0 IHdvcmtzIAo+PiBjb3JyZWN0bHkgZm9yIGNzdW0gYW5kIEdSTyB3aXRoIGFmX3BhY2tldCBhbmQg aXQgd29ya3MgY29ycmVjdGx5IGZvciAKPj4gZXZlcnl0aGluZyB1c2luZyBhIHRhcCBkZXZpY2Uu IEl0IGZhaWxzIG9ubHkgb24gR1NPICsgYWZfcGFja2V0IFRYLgo+Pgo+PiBXaGF0IEkgYW0gZG9p bmcgaXMgdGhlIHNhbWUgdGhpbmcgdmlydGlvX25ldCBkb2VzIC0gaXQganVzdCB0YWtlcyB0aGUg Cj4+IG91dHB1dCBvZiB2aXJ0aW9fbmV0X2hkcl9mcm9tX3NrYiBhbmQgZG9lcyBub3RoaW5nIG1v cmUuIFRoZXJlIHNob3VsZCAKPj4gYmUgbm8gbmVlZCB0byBkbyBhbnl0aGluZyBtb3JlIDooCj4+ Cj4+IEl0IHNob3VsZCBqdXN0IHdvcmsuCj4+Cj4+IFVubGVzcyB0aGVyZSBpcyBhIGdyZW1saW4g c29tZXdoZXJlIGluIHRoZSBtYWNoaW5lcnkgYW5kIHRoYXQgZ3JlbWxpbiAKPj4gbmVlZHMgc29t ZSBsaWdodCB0byBiZSBmbHVzaGVkIG91dC4KPj4+Cj4+Pj4gSSBhbSBnb2luZyB0byBjb250aW51 ZSBkaWdnaW5nIGludG8gaXQuCj4+Pj4KPj4+PiBBdCB0aGUgdmVyeSBsZWFzdCBJIG5vdyBoYXZl IGEgcG9zaXRpdmUgdGVzdCBjYXNlIHdoaWNoIHVzZXMgdGhlIHNhbWUKPj4+PiBzZW1hbnRpY3Mg YXMgbXkgY29kZSBzbyBJIGhhdmUgc29tZXRoaW5nIHRvIGNvbXBhcmUgdG8uCj4+PiBHbGFkIHRv IGhlYXIgdGhhdCB0aGUgdGVzdCBpcyBoZWxwZnVsLiBJIHdyb3RlIGl0IGJlY2F1c2UgSQo+Pj4g aGF2ZSBydW4gaW50byB0aGVzZSBleGFjdCBzYW1lIGlzc3VlcyBpbiB0aGUgcGFzdC4KPj4KPj4g SXQgaXMuIEkgaGF2ZSBjaGFuZ2VzIHJlYWR5IGZvciBpdCBzbyBpdCBhbHNvIHN1cHBvcnRzIHZl Y3RvciBJTywgCj4+IG5lZWQgdG8gZmluaXNoIGZpZ2h0aW5nIHdpdGggaXQuCj4+Cj4+IEEuCj4+ Cj4+Pgo+Pgo+CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQ2hlY2sgb3V0IHRoZSB2aWJyYW50IHRl Y2ggY29tbXVuaXR5IG9uIG9uZSBvZiB0aGUgd29ybGQncyBtb3N0CmVuZ2FnaW5nIHRlY2ggc2l0 ZXMsIFNsYXNoZG90Lm9yZyEgaHR0cDovL3NkbS5saW5rL3NsYXNoZG90Cl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClVzZXItbW9kZS1saW51eC1kZXZlbCBt YWlsaW5nIGxpc3QKVXNlci1tb2RlLWxpbnV4LWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldApo dHRwczovL2xpc3RzLnNvdXJjZWZvcmdlLm5ldC9saXN0cy9saXN0aW5mby91c2VyLW1vZGUtbGlu dXgtZGV2ZWwK