From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mail.toke.dk (Postfix) with ESMTPS id 170F69F411F for ; Fri, 10 Mar 2023 12:09:40 +0100 (CET) Authentication-Results: mail.toke.dk; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=QzPEHWi4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1678446579; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=DhY8swEzic3BRDeOn962HpEZAqi31b2QHSaYbuhFPi4=; b=QzPEHWi4NbFQ3+BhZO4E/p8X3vNa6+EJYWtoQp3OiZT5nDme4+7/1guLCwJBpgt5GPM/a2 5BY+hlLJiidCXyMcp9E2O2ELmI2eOuOIUDutLxqgP5GcDZr9lpY1riNwtISDHRM9xxGZ5Q I3FdxEIqHWvzb08Ux2FaqHL7ebX3Q+Y= Received: from mail-ed1-f71.google.com (mail-ed1-f71.google.com [209.85.208.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-649-zE6nfWU1N5q8hraoY5_Hgg-1; Fri, 10 Mar 2023 06:09:37 -0500 X-MC-Unique: zE6nfWU1N5q8hraoY5_Hgg-1 Received: by mail-ed1-f71.google.com with SMTP id b1-20020aa7dc01000000b004ad062fee5eso7142977edu.17 for ; Fri, 10 Mar 2023 03:09:37 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678446577; h=content-transfer-encoding:in-reply-to:references:to :content-language:subject:cc:user-agent:mime-version:date:message-id :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=DhY8swEzic3BRDeOn962HpEZAqi31b2QHSaYbuhFPi4=; b=R3TnEGcPpPq6mNMAF54ZKPeqpxPjUJDP5WvGyzcmECEs9d7DSvvsNPAqVuEiDGmaR2 LGrIfJU1T/53IzKZiKZJV9MktTyXW6S8sJESGo3Qx8CCyMRjVnMptu9Sg61NNLdCR+72 vUAK6sWD2EYgUO2RbCOF4nrxPfOGGxVpyLoZpde+sqpK5De17hPhv6STCIgMPCIi9rXW XN6orF4QLCrylfpe7CbMd9iXcMNQI/M/3MSVg3VU+7Y5C3aPFLaDIOzCLAuq7M9rh42v l5nIwbYncLoPaeAxhRM1jca2FXYrPvYf6o8eVyXuecs2ZCw7eL6NB+HmCshe5ndrcM1F dRxw== X-Gm-Message-State: AO0yUKWVRCaiKkAiVP6Jm/C/Rr7vnhrtP5PM2mT4TbN7mD6nTGEicbxh pelVA1HgEyXg9fpMEaaygASzeCuDfF/S7F/G4lF7TNc4NHFAKwTG1cCgUm0dgBM1fc88OWOoQLV AomaI+BIoj9WoBNY2grBK X-Received: by 2002:a17:907:8b98:b0:8b1:76dd:f5f6 with SMTP id tb24-20020a1709078b9800b008b176ddf5f6mr32247173ejc.50.1678446576711; Fri, 10 Mar 2023 03:09:36 -0800 (PST) X-Google-Smtp-Source: AK7set/IyvTr/Bz1Ili6wk+haaqEFH3ago1D6Su/6s/njVzf8eMW5dU9LSJc0q3rNiYMu1f8SAd0kw== X-Received: by 2002:a17:907:8b98:b0:8b1:76dd:f5f6 with SMTP id tb24-20020a1709078b9800b008b176ddf5f6mr32247147ejc.50.1678446576360; Fri, 10 Mar 2023 03:09:36 -0800 (PST) Received: from [192.168.42.100] (nat-cgn9-185-107-15-52.static.kviknet.net. [185.107.15.52]) by smtp.gmail.com with ESMTPSA id qp17-20020a170907207100b008df7d2e122dsm830136ejb.45.2023.03.10.03.09.33 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 10 Mar 2023 03:09:35 -0800 (PST) From: Jesper Dangaard Brouer X-Google-Original-From: Jesper Dangaard Brouer Message-ID: <3c70e01d-f685-e341-64f8-8eb4e8bd46fc@redhat.com> Date: Fri, 10 Mar 2023 12:09:32 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 To: Stanislav Fomichev , Jesper Dangaard Brouer References: <874jrcklvf.fsf@toke.dk> <878rgjjipq.fsf@toke.dk> In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 Message-ID-Hash: 4RGVZBHPNURUJSQACO5GLHVSY72MPJ5G X-Message-ID-Hash: 4RGVZBHPNURUJSQACO5GLHVSY72MPJ5G X-MailFrom: jbrouer@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: brouer@redhat.com, Magnus Karlsson , =?UTF-8?Q?Toke_H=c3=b8iland-J=c3=b8rgensen?= , lsf-pc@lists.linux-foundation.org, bpf@vger.kernel.org, "xdp-hints@xdp-project.net" X-Mailman-Version: 3.3.8 Precedence: list Subject: [xdp-hints] Re: [LSF/MM/BPF TOPIC] XDP metadata for TX List-Id: XDP hardware hints design discussion Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: DQoNCk9uIDA5LzAzLzIwMjMgMTkuMDQsIFN0YW5pc2xhdiBGb21pY2hldiB3cm90ZToNCj4gT24g VHVlLCBNYXIgNywgMjAyMyBhdCAxMTozMuKAr0FNIEplc3BlciBEYW5nYWFyZCBCcm91ZXINCj4+ DQo+PiBPbiAwMy8wMy8yMDIzIDA4LjQyLCBNYWdudXMgS2FybHNzb24gd3JvdGU6DQo+Pj4gT24g TW9uLCAyNyBGZWIgMjAyMyBhdCAyMToxNiwgU3RhbmlzbGF2IEZvbWljaGV2IDxzZGZAZ29vZ2xl LmNvbT4gd3JvdGU6DQo+Pj4+IE9uIE1vbiwgRmViIDI3LCAyMDIzIGF0IDY6MTcgQU0gVG9rZSBI w7hpbGFuZC1Kw7hyZ2Vuc2VuIDx0b2tlQGtlcm5lbC5vcmc+IHdyb3RlOg0KPj4+Pj4gU3Rhbmlz bGF2IEZvbWljaGV2IDxzZGZAZ29vZ2xlLmNvbT4gd3JpdGVzOg0KPj4+Pj4+IE9uIFRodSwgRmVi IDIzLCAyMDIzIGF0IDM6MjIgUE0gVG9rZSBIw7hpbGFuZC1Kw7hyZ2Vuc2VuIDx0b2tlQGtlcm5l bC5vcmc+IHdyb3RlOg0KPj4+Pj4+Pg0KPj4+Pj4+PiBTdGFuaXNsYXYgRm9taWNoZXYgPHNkZkBn b29nbGUuY29tPiB3cml0ZXM6DQo+Pj4+Pj4+DQo+Pj4+Pj4+PiBJJ2QgbGlrZSB0byBkaXNjdXNz IGEgcG90ZW50aWFsIGZvbGxvdyB1cCBmb3IgdGhlIHByZXZpb3VzICJYRFAgUlgNCj4+Pj4+Pj4+ IG1ldGFkYXRhIiBzZXJpZXMgWzBdLg0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+IE5vdyB0aGF0IHdlIGNh biBhY2Nlc3MgKGEgc3Vic2V0IG9mKSBwYWNrZXQgbWV0YWRhdGEgYXQgUlgsIEknZCBsaWtlIHRv DQo+Pj4+Pj4+PiBleHBsb3JlIHRoZSBvcHRpb25zIHdoZXJlIHdlIGNhbiBleHBvcnQgc29tZSBv ZiB0aGF0IG1ldGFkYXRhIG9uIFRYLiBBbmQNCj4+Pj4+Pj4+IGFsc28gd2hldGhlciBpdCBtaWdo dCBiZSBwb3NzaWJsZSB0byBhY2Nlc3Mgc29tZSBvZiB0aGUgVFggY29tcGxldGlvbg0KPj4+Pj4+ Pj4gbWV0YWRhdGEgKHRoaW5ncyBsaWtlIFRYIHRpbWVzdGFtcCkuDQo+Pj4+Pj4+Pg0KPj4NCj4+ IElNSE8gaXQgbWFrZXMgc2Vuc2UgdG8gc2VlIFRYIG1ldGFkYXRhIGFzIHR3byBzZXBhcmF0ZSBv cGVyYXRpb25zLg0KPj4NCj4+ICAgICgxKSBNZXRhZGF0YSB3cml0dGVuIGludG8gdGhlIFRYIGRl c2NyaXB0b3IuDQo+PiAgICAoMikgTWV0YWRhdGEgcmVhZCB3aGVuIHByb2Nlc3NpbmcgVFggY29t cGxldGlvbi4NCj4+DQo+PiBUaGVzZSBvcGVyYXRpb25zIGhhcHBlbiBhdCB0d28gZGlmZmVyZW50 IHBvaW50cyBpbiB0aW1lLiBUaHVzIGxpa2VseQ0KPj4gbmVlZCBkaWZmZXJlbnQgQlBGIGhvb2tz LiAgIEhhdmluZyBCUEYtcHJvZ3MgcnVubmluZyBhdCBlYWNoIG9mIHRoZXNlDQo+PiBwb2ludHMg aW4gdGltZSwgd2lsbCBhbGxvdyB1cyB0byBlLmcuIGltcGxlbWVudCBCUUwgKHdoaWNoIGlzIHJl bGV2YW50DQo+PiB0byBYRFAgcXVldWluZyBlZmZvcnQpLg0KPiANCj4gSSBndWVzcyBmb3IgKDIp IHRoZSBxdWVzdGlvbiBoZXJlIGlzOiBpcyBpdCB3b3J0aCBoYXZpbmcgYSBzZXBhcmF0ZQ0KPiBo b29rPyBPciB3aWxsIGEgc2ltcGxlIHRyYWNlZXBvaW50IGFzIFRva2Ugc3VnZ2VzdGVkIGJlIGVu b3VnaD8gRm9yDQo+IEJRTCBwdXJwb3Nlcywgd2UgY2FuIHN0aWxsIGF0dGFjaCBhIHByb2cgdG8g dGhhdCB0cmFjZXBvaW50LCByaWdodD8NCj4gDQoNClllcywgc2VlIGJlbG93LCBJJ20gaG9waW5n IGZvciAoMikgd2UgY2FuIGF2b2lkIHNlcGFyYXRlIGhvb2ssIGFuZA0KbGV2ZXJhZ2UgeGRwX3Jl dHVybl9mcmFtZSgpIHNvbWVob3cuDQoNCkZvciAoMSkgIndyaXRlIGludG8gdGhlIFRYIGRlc2Ny aXB0b3IiIGl0IGhhcHBlbnMgc28gbGF0ZSBpdCB0aGUgVFgNCnBhdGgsIHRoYXQgSSBkb24ndCB0 aGluayB3ZSBjYW4gYXZvaWQgYSBkcml2ZXIgVFggaG9vay4gIEV2ZW4gaWYgd2UgY29tZQ0KdXAg d2l0aCBhIGNvbW1vbiBzdHJ1Y3QgdGhhdCBkcml2ZXJzIGNhbiBjb25zdW1lIGhpbnRzIGZyb20s IHdlIHdpbGwNCnN0aWxsIG5lZWQgdG8gbW9kaWZ5IHRoZSBkcml2ZXJzIHRvIGRvIHRoZSB0cmFu c2xhdGlvbiBpbnRvIHRoZSBoYXJkd2FyZQ0Kc3BlY2lmaWMgVFggZGVzYyBmb3JtYXQuICBJZiB3 ZSBoYXZlIHRvIG1vZGlmeSB0aGUgZHJpdmVycyBhbnlob3csIHRoZW4NCmFkZGluZyBhIFRYIEJQ Ri1ob29rIHdvdWxkIGxpa2VseSBiZSB3b3J0aHdoaWxlIHRvIHRoZSBmbGV4aWJpbGl0eSB0aGlz DQpjcmVhdGVzLg0KDQoNCj4+Pj4+Pj4+IEknbSBjdXJyZW50bHkgdHJ5aW5nIHRvIHVuZGVyc3Rh bmQgd2hldGhlciB0aGUgc2FtZSBhcHByb2FjaCBJJ3ZlIHVzZWQNCj4+Pj4+Pj4+IG9uIFJYIGNv dWxkIHdvcmsgYXQgVFguIEJ5IE1heSBJIHBsYW4gdG8gaGF2ZSBhIGJ1bmNoIG9mIG9wdGlvbnMg bGFpZA0KPj4+Pj4+Pj4gb3V0IChjdXJyZW50bHkgY29uc2lkZXJpbmcgWFNLIHR4L2NvbXBsIHBy b2dyYW1zIGFuZCBYRFAgdHgvY29tcGwNCj4+Pj4+Pj4+IHByb2dyYW1zKSBzbyB3ZSBoYXZlIHNv bWV0aGluZyB0byBkaXNjdXNzLg0KPj4+Pj4+Pg0KPj4+Pj4+PiBJJ3ZlIGJlZW4gbG9va2luZyBh dCB3YXlzIG9mIGdldHRpbmcgYSBUWC1jb21wbGV0aW9uIGhvb2sgZm9yIHRoZSBYRFANCj4+Pj4+ Pj4gcXVldWVpbmcgc3R1ZmYgYXMgd2VsbC4gRm9yIHRoYXQsIEkgdGhpbmsgaXQgY291bGQgd29y ayB0byBqdXN0IGhvb2sNCj4+Pj4+Pj4gaW50byB4ZHBfcmV0dXJuX2ZyYW1lKCksIGJ1dCBpZiB5 b3Ugd2FudCB0byBhY2Nlc3MgaGFyZHdhcmUgbWV0YWRhdGENCj4+Pj4+Pj4gaXQnbGwgb2J2aW91 c2x5IGhhdmUgdG8gYmUgaW4gdGhlIGRyaXZlci4gQSBob29rIGluIHRoZSBkcml2ZXIgY291bGQN Cj4+Pj4+Pj4gY2VydGFpbmx5IGJlIHVzZWQgZm9yIHRoZSBxdWV1ZWluZyByZXR1cm4gYXMgd2Vs bCwgdGhvdWdoLCB3aGljaCBtYXkNCj4+Pj4+Pj4gaGVscCBtYWtpbmcgaXQgd29ydGggdGhlIHRy b3VibGUgOikNCj4+Pj4+Pg0KPj4+Pj4+IFllYWgsIEknZCBsaWtlIHRvIGdldCB0byBjb21wbGV0 aW9uIGRlc2NyaXB0b3JzIGlkZWFsbHk7IHNvIG5vdGhpbmcNCj4+Pj4+PiBiZXR0ZXIgdGhhbiBh IGRyaXZlciBob29rIGNvbWVzIHRvIG1pbmQgc28gZmFyIDotKA0KPj4NCj4+IEFzIFRva2UgbWVu dGlvbnMsIEknbSBhbHNvIGhvcGluZyB3ZSBjb3VsZCBsZXZlcmFnZSBvciBleHRlbmQgdGhlDQo+ PiB4ZHBfcmV0dXJuX2ZyYW1lKCkgY2FsbC4gIE9yIGltcGxpY2l0bHkgYWRkIHRoZSAiaG9vayIg YXQgdGhlIGV4aXN0aW5nDQo+PiB4ZHBfcmV0dXJuX2ZyYW1lKCkgY2FsbC4gVGhpcyBpcyBhYm91 dCBvcGVyYXRpb24gKDIpICpyZWFkaW5nKiBzb21lDQo+PiBtZXRhZGF0YSBhdCBUWCBjb21wbGV0 aW9uIHRpbWUuDQo+IA0KPiBBY2ssIG5vdGVkLCB0aHguIEFsdGhvdWdoLCBhdCBsZWFzdCBmb3Ig bWx4NWVfZnJlZV94ZHBzcV9kZXNjLCBJIGRvbid0DQo+IHNlZSBpdCBiZWluZyBjYWxsZWQgZm9y IHRoZSBhZl94ZHAgdHggcGF0aC4gQnV0IG1heWJlIHRoYXQncyBzb21ldGhpbmcNCj4gd2UgY2Fu IGFtZW5kIGluIGEgY291cGxlIG9mIHBsYWNlcyAoc28geGRwX3JldHVybl9mcmFtZSB3b3VsZCBo YW5kbGUNCj4gbW9zdCB4ZHAgY2FzZXMsIGFuZCBzb21lIG5ldyB0YmQgZnVuYyBmb3IgYWZfeGRw IHR4KT8NCj4gDQoNCkxvb2tpbmcgYXQgbWx4NWVfZnJlZV94ZHBzcV9kZXNjKCkgaXQgaGF2ZSBz d2l0Y2ggaGFuZGxpbmcgdGhlIGRpZmZlcmVudCANCmZyYW1lIHR5cGVzLiAgSXQgd291bGRuJ3Qg YmUgbXVjaCB3b3JrIHRvIGFzIHlvdSBzYXkgdG8gYW1lbmQgY29kZSBhbmQgDQphZGQgZS5nLiBh IHRyYWNlcG9pbnQvaG9vayBjYXRjaGluZyBtb3JlIGZyYW1lIHR5cGVzIChib3RoIHhkcCBhbmQg YWZfeGRwKS4NCg0KPj4gQ2FuIHRoaXMgYmUgbWFwcGVkIHRvIHRoZSBSWC1rZnVuY3MgYXBwcm9h Y2goPyksIGJ5IGRyaXZlciBleHRlbmRpbmcNCj4+IChjYWxsL3N0cnVjdHMpIHdpdGggcG9pbnRl ciB0byBUWC1kZXNjICsgYWRhcHRvciBpbmZvIGFuZCBCUEYtcHJvZy9ob29rDQo+PiBkb2luZyBU WC1rZnVuY3MgY2FsbHMgaW50byBkcml2ZXIgKHRoYXQga25vd3MgaG93IHRvIGV4dHJhY3QgY29t cGxldGlvbg0KPj4gZGF0YSkuDQo+IA0KPiBZZWFoLCB0aGF0IHNlZW1zIGxpa2UgYSBuYXR1cmFs IHRoaW5nIHRvIGRvIGhlcmUuDQoNCkdyZWF0LiBJIGhvcGUgZHJpdmVycyB3aWxsIG5vIGhhdmUg aGlkZGVuIG9yIGZyZWVkIHRoZSBUWCBjb21wbGV0aW9uDQpkZXNjcmlwdG9yIGJlZm9yZSBvdXIg QlBGLXByb2cgd2lsbCBnZXQgYSBjaGFuY2UgdG8gcmVhZCB0aGlzIGRhdGEuDQoNCj4+DQo+PiBb Li4uXQ0KPj4+Pj4gV2VsbCwgdG8gbWUgWERQX1JFRElSRUNUIGlzIHRoZSBtb3N0IGludGVyZXN0 aW5nIG9uZSAoc2VlIGFib3ZlKS4gSQ0KPj4+Pj4gdGhpbmsgd2UgY291bGQgZXZlbiBkcm9wIHRo ZSBYRFBfVFggY2FzZSBhbmQgb25seSBkbyB0aGlzIGZvcg0KPj4+Pj4gWERQX1JFRElSRUNULCBz aW5jZSBYRFBfVFggaXMgYmFzaWNhbGx5IGEgc3BlY2lhbC1jYXNlIG9wdGltaXNhdGlvbi4NCj4+ Pj4+IEkuZS4sIGl0J3MgcG9zc2libGUgdG8gWERQX1JFRElSRUNUIGJhY2sgdG8gdGhlIHNhbWUg ZGV2aWNlLCB0aGUgZnJhbWVzDQo+Pj4+PiB3aWxsIGp1c3QgdGFrZSBhIHNsaWdodCBkZXRvdXIg dXAgdGhyb3VnaCB0aGUgc3RhY2s7IGJ1dCB0aGF0IGNvdWxkIGFsc28NCj4+Pj4+IGJlIGEgZ29v ZCB0aGluZyBpZiBpdCBtZWFucyB3ZSdsbCBoYXZlIHRvIGRvIGxlc3Mgc3VyZ2VyeSB0byB0aGUg ZHJpdmVycw0KPj4+Pj4gdG8gaW1wbGVtZW50IHRoaXMgZm9yIHR3byBwYXRocy4NCj4+Pj4+DQo+ Pj4+PiBJdCBkb2VzIGhhdmUgdGhlIHNhbWUgY2hhbGxlbmdlIGFzIHlvdSBvdXRsaW5lZCBhYm92 ZSwgdGhvdWdoOiBBdCB0aGF0DQo+Pj4+PiBwb2ludCB0aGUgVFggZGVzY3JpcHRvciBwcm9iYWJs eSBkb2Vzbid0IGV4aXN0LCBzbyB0aGUgZHJpdmVyIE5ETyB3aWxsDQo+Pj4+PiBoYXZlIHRvIGRv IHNvbWV0aGluZyBlbHNlIHdpdGggdGhlIGRhdGE7IGJ1dCBtYXliZSB3ZSBjYW4gc29sdmUgdGhh dA0KPj4+Pj4gd2l0aG91dCBtb3ZpbmcgdGhlIGhvb2sgaW50byB0aGUgZHJpdmVyIGl0c2VsZiBz b21laG93Pw0KPj4+Pg0KPj4+PiBBaCwgb2ssIHllYWgsIEkgd2FzIHB1dHRpbmcgWERQX1RYIC8g WERQX1JFRElSRUNUIHVuZGVyIHRoZSBzYW1lDQo+Pj4+ICJ0cmFuc21pdCBzb21ldGhpbmcgb3V0 IG9mIHhkcF9yeCBob29rIiB1bWJyZWxsYS4gV2UgY2FuIG1heWJlIGNvbWUgdXANCj4+Pj4gd2l0 aCBhIHNrYi1saWtlLXByaXZhdGUgbWV0YWRhdGEgbGF5b3V0IChhcyB3ZSd2ZSBkaXNjdXNzZWQg cHJldmlvdXNseQ0KPj4+PiBmb3Igc2tiKSBoZXJlIGFzIHdlbGw/IEJ1dCBub3Qgc3VyZSBpdCB3 b3VsZCBzb2x2ZSBhbGwgdGhlIHByb2JsZW1zPw0KPj4NCj4+IFRoaXMgaXMgb3BlcmF0aW9uICgx KSB3cml0aW5nIG1ldGFkYXRhIGludG8gdGhlIFRYIGRlc2NyaXB0b3IuDQo+PiBJbiB0aGlzIGNh c2Ugd2UgaGF2ZSBhIG1ldGFkYXRhIG1hcHBpbmcgcHJvYmxlbSwgZnJvbSBSWCBvbiBvbmUgZGV2 aWNlDQo+PiBkcml2ZXIgdG8gVFggb24gYW5vdGhlciBkZXZpY2UgZHJpdmVyLiBBcyB5b3Ugc2F5 LCB3ZSBhbHNvIG5lZWQgdG8gbWFwDQo+PiB0aGlzIFNLQnMsIHdoaWNoIGhhdmUgYSBmYWlybHkg c3RhdGljIHNldCBvZiBtZXRhZGF0YS4NCj4+DQo+PiBGb3IgdGhlIG1vc3QgY29tbW9uIG1ldGFk YXRhIG9mZmxvYWRzIChsaWtlIFRYLWNoZWNrc3VtLCBUWC12bGFuKSBJDQo+PiB0aGluayBpdCBt YWtlcyBzZW5zZSB0byBzdG9yZSB0aG9zZSBpbiB4ZHBfZnJhbWUgYXJlYSAodXNlIGZvciBTS0IN Cj4+IG1hcHBpbmcpIGFuZCByZS11c2UgdGhlc2Ugd2hlbiBhdCBUWCB3cml0aW5nIGludG8gdGhl IFRYIGRlc2NyaXB0b3IuDQo+IA0KPiBbLi5dDQo+IA0KPj4gQlVUIHRoZXJlIGFyZSBhbHNvIG1l dGFkYXRhIFRYIG9mZmxvYWRzIG9mZmxvYWRzLCBsaWtlIGFza2luZyBmb3IgYQ0KPj4gc3BlY2lm aWMgTGF1bmNoLVRpbWUgZm9yIGF0IHBhY2tldCwgdGhhdCBuZWVkcyBhIG1vcmUgZmxleGlibGUg YXBwcm9hY2guDQo+IA0KPiBXaHkgY2FuJ3QgdGhlc2UgZ28gaW50byB0aGUgc2FtZSAiY29tbW9u IiB4ZHBfZnJhbWUgYXJlYT8NCj4gDQoNCkZvciBzZXZlcmFsIHJlYXNvbnM6DQoNCiAgMS4gVGhl ICJjb21tb24iIGFyZWEgaW4geGRwX2ZyYW1lIHdpbGwgYmUgc2l6ZSBjb25zdHJhaW5lZC4NCg0K ICAyLiBUaGUgTGF1bmNoLVRpbWUgZm9yIGEgcGFja2V0IGlzIG5vdCBzb21ldGhpbmcgd2UgKnJl YWQqIGZyb20gdGhlIFJYDQogICAgIGRlc2NyaXB0b3IsIHRodXMgaGF2aW5nIHJvb20gdG8gc3Rv cmUgaXQgaW4gY29tbW9uIGFyZWEgc2VlbXMNCiAgICAgc3RyYW5nZS4NCg0KICAzLiBUaGUgTGF1 bmNoLVRpbWUgZm9yIGEgcGFja2V0IGlzIHNvbWV0aGluZyB3ZSBsaWtlbHkgY2FsY3VsYXRlIG9u IHRoZQ0KICAgICBmbHkgYmFzZWQgb24gInRpbWUgcXVldWUiIHN0YXRlIGF0IG91ciBUWC1ob29r IGVncmVzcy4gU2VlIFRDLUJQRg0KICAgICBjb2RlIGV4YW1wbGUgZm9yIEZRLXBhY2luZyBoZXJl WzFdLg0KDQogIDQuIFdlIGxpa2VseSBuZWVkIGEgWERQIHF1ZXVlaW5nIGxheWVyIChUb2tlJ3Mg d29yaykgdG8gaGFuZGxlIHRoZSBIVw0KICAgICBsaW1pdGF0aW9ucyBvZiBMYXVuY2gtVGltZSBm ZWF0dXJlLCBhcyBIVyBpdCBsaW1pdGVkIGhvdyBmYXIgaW4gdGhlDQogICAgIGZ1dHVyZSB3ZSBj YW4gc2NoZWR1bGUgZGF0YSAoZm9yIGNoaXBzIGkyMTAgYW5kIGkyMjUgc2VlWzJdKS4NCg0KWzFd IA0KaHR0cHM6Ly9naXRodWIuY29tL3hkcC1wcm9qZWN0L2JwZi1leGFtcGxlcy9ibG9iL21hc3Rl ci90cmFmZmljLXBhY2luZy1lZHQvZWR0X3BhY2VyX3ZsYW4uYw0KDQpbMl0gDQpodHRwczovL2dp dGh1Yi5jb20veGRwLXByb2plY3QveGRwLXByb2plY3QvYmxvYi9tYXN0ZXIvYXJlYXMvdHNuL2Nv ZGUwMV9mb2xsb3dfcWRpc2NfVFNOX29mZmxvYWQub3JnDQoNCj4+Pj4gSSdtIHRoaW5raW5nIG9m IGFuIGFmX3hkcCBjYXNlIHdoZXJlIGl0IHdhbnRzIHRvIHByb2dyYW0gc29tZXRoaW5nDQo+Pj4+ IHNpbWlsYXIgdG8gdHNvL2VuY2FwL3R1bm5lbGluZyBvZmZsb2FkIChhc3N1bWluZyBhZl94ZHAg d2lsbCBnZXQgNGsrDQo+Pj4+IHN1cHBvcnQpIG9yIGEgY2hlY2tzdW0gb2ZmbG9hZC4gRXhwb3Np bmcgYWNjZXNzIHRvIHRoZSBkcml2ZXIgdHggaG9va3MNCj4+Pj4gc2VlbXMgbGlrZSB0aGUgZWFz aWVzdCB3YXkgdG8gZ2V0IHRoZXJlPw0KPj4+Pg0KPj4+Pj4+IC0gQUZfWERQIFRYIC0gdGhpcyBv bmUgbmVlZHMgc29tZXRoaW5nIGRlZXAgaW4gdGhlIGRyaXZlciAoZHVlIHRvIHR4DQo+Pj4+Pj4g emMpIHRvIHBvcHVsYXRlIHRoZSBkZXNjcmlwdG9ycz8NCj4+Pj4+DQo+Pj4+PiBZZWFoLCB0aGlz IG9uZSBpcyBhIGJpdCBtb3JlIGNoYWxsZW5naW5nLCBidXQgaGF2aW5nIGEgd2F5IHRvIHByb2Nl c3MNCj4+Pj4+IEFGX1hEUCBmcmFtZXMgaW4gdGhlIGtlcm5lbCBiZWZvcmUgdGhleSdyZSBzZW50 IG91dCB3b3VsZCBiZSBnb29kIGluIGFueQ0KPj4+Pj4gY2FzZSAoZm9yIHRoaW5ncyBsaWtlIHBv bGljaW5nIHdoYXQgcGFja2V0cyBhbiBBRl9YRFAgYXBwbGljYXRpb24gY2FuDQo+Pj4+PiBzZW5k IGluIGEgY2xvdWQgZGVwbG95bWVudCwgZm9yIGluc3RhbmNlKS4gV291bGQgYmUgYmVzdCBpZiB3 ZSBjb3VsZA0KPj4+Pj4gY29uc29saWRhdGUgdGhlIFhEUF9SRURJUkVDVCBhbmQgQUZfWERQIHBh dGhzLCBJIHN1cHBvc2UuLi4NCj4+Pj4+DQo+Pg0KPj4gSSBhZ3JlZSwgaXQgd291bGQgYmUgYmVz dCBpZiB3ZSBjYW4gY29uc29saWRhdGUgdGhlIFhEUF9SRURJUkVDVCBhbmQNCj4+IEFGX1hEUCBw YXRocywgZWxzZSB3ZSBoYXZlIHRvIHJlLWltcGxlbWVudCB0aGUgc2FtZSBmb3IgQUZfWERQIHht aXQgcGF0aA0KPj4gKGFuZCBtYWludGFpbiBib3RoIHBhdGhzKS4gSSBhbHNvIGFncmVlIHRoYXQg YmVpbmcgYWJsZSB0byBwb2xpY2Ugd2hhdA0KPj4gcGFja2V0cyBhbiBBRl9YRFAgYXBwbGljYXRp b24gY2FuIHNlbmQgaXMgYSB1c2VmdWwgZmVhdHVyZSAoZS5nLiBjbG91ZA0KPj4gZGVwbG95bWVu dHMpLg0KPj4NCj4+IExvb2tpbmcgZm9yd2FyZCB0byBjb2xsYWJvcmF0ZSBvbiB0aGlzIHdvcmsh DQo+PiAtLUplc3Blcg0KPiANCj4gVGhhbmsgeW91IGZvciB0aGUgY29tbWVudHMhIFNvIGl0IGxv b2tzIGxpa2UgdHdvIHRoaW5ncyB3ZSBwb3RlbnRpYWxseQ0KPiBuZWVkIHRvIGRvL2FncmVlIHVw b246DQo+DQo+IDEuIFVzZXItZmFjaW5nIEFQSS4gT25lIGhvb2sgKyB0cmFjZXBvaW50IHZzIHR3 byBob29rcyAoYW5kIGF0IHdoYXQNCj4gbGV2ZWw6IGFmX3hkcCB2cyB4ZHApLiBJJ2xsIHRyeSB0 byBmb2N1cyBvbiB0aGF0IGZpcnN0ICh3YWl0aW5nIGZvcg0KPiBhZl94ZHAgcGF0Y2hlcyB0aGF0 IE1hZ251cyBtZW50aW9uZWQpLg0KPg0KDQpZZXMsIEkgdGhpbmsgd2UgbmVlZCB0byBkaWcgaW50 byB0aGUgY29kZSBhbmQgdG8gZmlndXJlIG91dCB3aGF0IG9wdGlvbnMgDQphcmUgZG9hYmxlLiAg QmFsYW5jaW5nIHRoZSBmdXR1cmUgbWFpbnRlbmFuY2UgY29zdC4NCg0KPiAyLiBQb3RlbnRpYWxs eSBpbnRlcm5hbCByZWZhY3RvcmluZyB0byBjb25zb2xpZGF0ZSBYRFBfUkVESVJFQ1QrQUZfWERQ DQo+IChzZWVtcyBsaWtlIHNvbWV0aGluZyB3ZSBzaG91bGQgYmUgYWJsZSB0byBkaXNjdXNzIGFz IHdlIGdvOyBha2ENCj4gaW1wbGVtZW50YXRpb24gZGV0YWlscykNCj4gDQoNClNvdW5kcyBsaWtl IHdlIGhhdmUgYSBwbGFuIGdvaW5nIGZvcndhcmQgOi0pDQoNCi0tSmVzcGVyDQoNCg==