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 5A2CF9F7816 for ; Thu, 23 Mar 2023 09:51:49 +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=NwCrm250 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1679561508; 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=j5gzYRXzVkiLOcSv37gdQPBZach6Z3N054lQ3FIqJMg=; b=NwCrm250Efw6SOBDKFEFvbgSWE4hQnHTdYr+wfbTrffsHaVcEc3BhGZZcMkRs1xP6h9yH6 PH6cOUvS59U1X3qq5eWd7hQHt9d82Sn7RHrZvUvdR5eDpZFnSpg8D+6ITMBvbVFtNxouDE PcxUlPBaC9zDokcfK67OMKD6UVRymh0= Received: from mail-ed1-f70.google.com (mail-ed1-f70.google.com [209.85.208.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-453-Qxl80FkuP3yaJNNQK0WLiw-1; Thu, 23 Mar 2023 04:51:47 -0400 X-MC-Unique: Qxl80FkuP3yaJNNQK0WLiw-1 Received: by mail-ed1-f70.google.com with SMTP id ev6-20020a056402540600b004bc2358ac04so31627588edb.21 for ; Thu, 23 Mar 2023 01:51:46 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679561506; 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=j5gzYRXzVkiLOcSv37gdQPBZach6Z3N054lQ3FIqJMg=; b=q4aaInAghybFIWyo+Vpu4qhkrpK7rqSgbs9gQMsewvS7yGT1imJ7jco4FCeJc3WR1j Y//a/OaT2LD4SqXLVLsZS4OPZzfc0E9PuPv37mdDBiQ+c67DA1vnMrCXoVVQsp1U9610 HhuJxM4cRfHTmHsa8vjVqucHkBy/BDge6CYwe/6GxMsKB/pL5JhKX5S4PqjMAVz3fBLF KePiFF4f75YbvnzeIV2JJQktW3bqVw5N/nXJChE0r6FWybJRiLgGnyt3Dre4a1RlmEBF SMO9tLKWkXjm67obJZJC/8ksvW0DC123aWo84Da5z3cY3AHjPLF0m2YSSOOUQeAiq3bX 5OJg== X-Gm-Message-State: AO0yUKWrN0vw7toWLeqx610DsewxXL4Q5GhouIBTMDjdya/OhUTltL1Q uHiW6NpuzL3llgnFew9kvLXQIpgGr5m5uDodD7lbd78TUtzeBRulaJ/ILNeuJXRbSr9PyYBxi8x 4ubr9gPBGbYcfx/1WONZY X-Received: by 2002:aa7:cb87:0:b0:4fc:154:3fda with SMTP id r7-20020aa7cb87000000b004fc01543fdamr10115412edt.4.1679561505962; Thu, 23 Mar 2023 01:51:45 -0700 (PDT) X-Google-Smtp-Source: AK7set9ArOW5k1PgG9N2RSTMxnzGIZveA0mr+cYVpJ89mRrFw1sLL8uekgGPY0/WSR1hHofSGeufVA== X-Received: by 2002:aa7:cb87:0:b0:4fc:154:3fda with SMTP id r7-20020aa7cb87000000b004fc01543fdamr10115390edt.4.1679561505647; Thu, 23 Mar 2023 01:51:45 -0700 (PDT) Received: from [192.168.42.100] (194-45-78-10.static.kviknet.net. [194.45.78.10]) by smtp.gmail.com with ESMTPSA id m10-20020a50998a000000b004e48f8df7e2sm8935019edb.72.2023.03.23.01.51.44 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 23 Mar 2023 01:51:45 -0700 (PDT) From: Jesper Dangaard Brouer X-Google-Original-From: Jesper Dangaard Brouer Message-ID: Date: Thu, 23 Mar 2023 09:51:43 +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 , Alexei Starovoitov References: <167940634187.2718137.10209374282891218398.stgit@firesoul> <167940643669.2718137.4624187727245854475.stgit@firesoul> <080640fc-5835-26f1-2b20-ff079bd59182@redhat.com> 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: OUUISYX4EX7ZMBZCYZVEYNHY3SIC7YFJ X-Message-ID-Hash: OUUISYX4EX7ZMBZCYZVEYNHY3SIC7YFJ 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, bpf , Network Development , Martin KaFai Lau , Alexei Starovoitov , Daniel Borkmann , Alexander Lobakin , Larysa Zaremba , xdp-hints@xdp-project.net, anthony.l.nguyen@intel.com, "Song, Yoong Siang" , "Ong, Boon Leong" , intel-wired-lan , Paolo Abeni , Jesse Brandeburg , Jakub Kicinski , Eric Dumazet , John Fastabend , Jesper Dangaard Brouer , "David S. Miller" X-Mailman-Version: 3.3.8 Precedence: list Subject: [xdp-hints] Re: [PATCH bpf-next V2 3/6] selftests/bpf: xdp_hw_metadata RX hash return code info List-Id: XDP hardware hints design discussion Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: DQpPbiAyMi8wMy8yMDIzIDIwLjMzLCBTdGFuaXNsYXYgRm9taWNoZXYgd3JvdGU6DQo+IE9uIFdl ZCwgTWFyIDIyLCAyMDIzIGF0IDEyOjMw4oCvUE0gQWxleGVpIFN0YXJvdm9pdG92DQo+IDxhbGV4 ZWkuc3Rhcm92b2l0b3ZAZ21haWwuY29tPiB3cm90ZToNCj4+DQo+PiBPbiBXZWQsIE1hciAyMiwg MjAyMyBhdCAxMjoyM+KAr1BNIFN0YW5pc2xhdiBGb21pY2hldiA8c2RmQGdvb2dsZS5jb20+IHdy b3RlOg0KPj4+DQo+Pj4gT24gV2VkLCBNYXIgMjIsIDIwMjMgYXQgMTI6MTfigK9QTSBBbGV4ZWkg U3Rhcm92b2l0b3YNCj4+PiA8YWxleGVpLnN0YXJvdm9pdG92QGdtYWlsLmNvbT4gd3JvdGU6DQo+ Pj4+DQo+Pj4+IE9uIFdlZCwgTWFyIDIyLCAyMDIzIGF0IDEyOjAw4oCvUE0gU3RhbmlzbGF2IEZv bWljaGV2IDxzZGZAZ29vZ2xlLmNvbT4gd3JvdGU6DQo+Pj4+Pg0KPj4+Pj4gT24gV2VkLCBNYXIg MjIsIDIwMjMgYXQgOTowN+KAr0FNIEFsZXhlaSBTdGFyb3ZvaXRvdg0KPj4+Pj4gPGFsZXhlaS5z dGFyb3ZvaXRvdkBnbWFpbC5jb20+IHdyb3RlOg0KPj4+Pj4+DQo+Pj4+Pj4gT24gV2VkLCBNYXIg MjIsIDIwMjMgYXQgOTowNeKAr0FNIEplc3BlciBEYW5nYWFyZCBCcm91ZXINCj4+Pj4+PiA8amJy b3VlckByZWRoYXQuY29tPiB3cm90ZToNCj4+Pj4+Pj4NCj4+Pj4+Pj4NCj4+Pj4+Pj4NCj4+Pj4+ Pj4gT24gMjEvMDMvMjAyMyAxOS40NywgU3RhbmlzbGF2IEZvbWljaGV2IHdyb3RlOg0KPj4+Pj4+ Pj4gT24gVHVlLCBNYXIgMjEsIDIwMjMgYXQgNjo0N+KAr0FNIEplc3BlciBEYW5nYWFyZCBCcm91 ZXINCj4+Pj4+Pj4+IDxicm91ZXJAcmVkaGF0LmNvbT4gd3JvdGU6DQo+Pj4+Pj4+Pj4NCj4+Pj4+ Pj4+PiBXaGVuIGRyaXZlciBkZXZlbG9wZXJzIGFkZCBYRFAtaGludHMga2Z1bmNzIGZvciBSWCBo YXNoIGl0IGlzDQo+Pj4+Pj4+Pj4gcHJhY3RpY2FsIHRvIHByaW50IHRoZSByZXR1cm4gY29kZSBp biBicGZfcHJpbnRrIHRyYWNlIHBpcGUgbG9nLg0KPj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4gUHJpbnQg aGFzaCB2YWx1ZSBhcyBhIGhleCB2YWx1ZSwgYm90aCBBRl9YRFAgdXNlcnNwYWNlIGFuZCBicGZf cHJvZywNCj4+Pj4+Pj4+PiBhcyB0aGlzIG1ha2VzIGl0IGVhc2llciB0byBzcG90IHBvb3IgcXVh bGl0eSBoYXNoZXMuDQo+Pj4+Pj4+Pj4NCj4+Pj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBKZXNwZXIg RGFuZ2FhcmQgQnJvdWVyIDxicm91ZXJAcmVkaGF0LmNvbT4NCj4+Pj4+Pj4+PiAtLS0NCj4+Pj4+ Pj4+PiAgICAuLi4vdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3hkcF9od19tZXRhZGF0YS5j ICB8ICAgIDkgKysrKysrLS0tDQo+Pj4+Pj4+Pj4gICAgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMv YnBmL3hkcF9od19tZXRhZGF0YS5jICAgICAgfCAgICA1ICsrKystDQo+Pj4+Pj4+Pj4gICAgMiBm aWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQ0KPj4+Pj4+Pj4+ DQo+Pj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9n cy94ZHBfaHdfbWV0YWRhdGEuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy94 ZHBfaHdfbWV0YWRhdGEuYw0KPj4+Pj4+Pj4+IGluZGV4IDQwYzE3YWRiZjQ4My4uY2UwNzAxMGU0 ZDQ4IDEwMDY0NA0KPj4+Pj4+Pj4+IC0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9w cm9ncy94ZHBfaHdfbWV0YWRhdGEuYw0KPj4+Pj4+Pj4+ICsrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2Vs ZnRlc3RzL2JwZi9wcm9ncy94ZHBfaHdfbWV0YWRhdGEuYw0KPj4+Pj4+Pj4+IEBAIC03NywxMCAr NzcsMTMgQEAgaW50IHJ4KHN0cnVjdCB4ZHBfbWQgKmN0eCkNCj4+Pj4+Pj4+PiAgICAgICAgICAg ICAgICAgICBtZXRhLT5yeF90aW1lc3RhbXAgPSAwOyAvKiBVc2VkIGJ5IEFGX1hEUCBhcyBub3Qg YXZhaWwgc2lnbmFsICovDQo+Pj4+Pj4+Pj4gICAgICAgICAgIH0NCj4+Pj4+Pj4+Pg0KPj4+Pj4+ Pj4+IC0gICAgICAgaWYgKCFicGZfeGRwX21ldGFkYXRhX3J4X2hhc2goY3R4LCAmbWV0YS0+cnhf aGFzaCkpDQo+Pj4+Pj4+Pj4gLSAgICAgICAgICAgICAgIGJwZl9wcmludGsoInBvcHVsYXRlZCBy eF9oYXNoIHdpdGggJXUiLCBtZXRhLT5yeF9oYXNoKTsNCj4+Pj4+Pj4+PiAtICAgICAgIGVsc2UN Cj4+Pj4+Pj4+PiArICAgICAgIHJldCA9IGJwZl94ZHBfbWV0YWRhdGFfcnhfaGFzaChjdHgsICZt ZXRhLT5yeF9oYXNoKTsNCj4+Pj4+Pj4+PiArICAgICAgIGlmIChyZXQgPj0gMCkgew0KPj4+Pj4+ Pj4+ICsgICAgICAgICAgICAgICBicGZfcHJpbnRrKCJwb3B1bGF0ZWQgcnhfaGFzaCB3aXRoIDB4 JTA4WCIsIG1ldGEtPnJ4X2hhc2gpOw0KPj4+Pj4+Pj4+ICsgICAgICAgfSBlbHNlIHsNCj4+Pj4+ Pj4+PiArICAgICAgICAgICAgICAgYnBmX3ByaW50aygicnhfaGFzaCBub3QtYXZhaWwgZXJybm86 JWQiLCByZXQpOw0KPj4+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgIG1ldGEtPnJ4X2hhc2ggPSAw OyAvKiBVc2VkIGJ5IEFGX1hEUCBhcyBub3QgYXZhaWwgc2lnbmFsICovDQo+Pj4+Pj4+Pj4gKyAg ICAgICB9DQo+Pj4+Pj4+Pj4NCj4+Pj4+Pj4+PiAgICAgICAgICAgcmV0dXJuIGJwZl9yZWRpcmVj dF9tYXAoJnhzaywgY3R4LT5yeF9xdWV1ZV9pbmRleCwgWERQX1BBU1MpOw0KPj4+Pj4+Pj4+ICAg IH0NCj4+Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3hk cF9od19tZXRhZGF0YS5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3hkcF9od19tZXRh ZGF0YS5jDQo+Pj4+Pj4+Pj4gaW5kZXggNDAwYmZlMTlhYmZlLi5mM2VjMDdjY2RjOTUgMTAwNjQ0 DQo+Pj4+Pj4+Pj4gLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3hkcF9od19tZXRh ZGF0YS5jDQo+Pj4+Pj4+Pj4gKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3hkcF9o d19tZXRhZGF0YS5jDQo+Pj4+Pj4+Pj4gQEAgLTMsNiArMyw5IEBADQo+Pj4+Pj4+Pj4gICAgLyog UmVmZXJlbmNlIHByb2dyYW0gZm9yIHZlcmlmeWluZyBYRFAgbWV0YWRhdGEgb24gcmVhbCBIVy4g RnVuY3Rpb25hbCB0ZXN0DQo+Pj4+Pj4+Pj4gICAgICogb25seSwgZG9lc24ndCB0ZXN0IHRoZSBw ZXJmb3JtYW5jZS4NCj4+Pj4+Pj4+PiAgICAgKg0KPj4+Pj4+Pj4+ICsgKiBCUEYtcHJvZyBicGZf cHJpbnRrIGluZm8gb3V0b3V0IGNhbiBiZSBhY2Nlc3MgdmlhDQo+Pj4+Pj4+Pj4gKyAqIC9zeXMv a2VybmVsL2RlYnVnL3RyYWNpbmcvdHJhY2VfcGlwZQ0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+IHMvb3V0 b3V0L291dHB1dC8NCj4+Pj4+Pj4+DQo+Pj4+Pj4+DQo+Pj4+Pj4+IEZpeGVkIGluIFYzDQo+Pj4+ Pj4+DQo+Pj4+Pj4+PiBCdXQgbGV0J3MgbWF5YmUgZHJvcCBpdD8gSWYgeW91IHdhbnQgdG8gbWFr ZSBpdCBtb3JlIHVzYWJsZSwgbGV0J3MNCj4+Pj4+Pj4+IGhhdmUgYSBzZXBhcmF0ZSBwYXRjaCB0 byBlbmFibGUgdHJhY2luZyBhbmQgcGVyaW9kaWNhbGx5IGR1bXAgaXQgdG8NCj4+Pj4+Pj4+IHRo ZSBjb25zb2xlIGluc3RlYWQgKGFzIHByZXZpb3VzbHkgZGlzY3Vzc2VkKS4NCj4+Pj4+Pj4NCj4+ Pj4+Pj4gQ2F0J2luZyAvc3lzL2tlcm5lbC9kZWJ1Zy90cmFjaW5nL3RyYWNlX3BpcGUgd29yayBm b3IgbWUgcmVnYXJkbGVzcyBvZg0KPj4+Pj4+PiBzZXR0aW5nIGluDQo+Pj4+Pj4+IC9zeXMva2Vy bmVsL2RlYnVnL3RyYWNpbmcvZXZlbnRzL2JwZl90cmFjZS9icGZfdHJhY2VfcHJpbnRrL2VuYWJs ZQ0KPj4+Pj4+Pg0KPj4+Pj4+PiBXZSBsaWtlbHkgbmVlZCBhIGZvbGxvd3VwIHBhdGNoIHRoYXQg YWRkcyBhIEJQRiBjb25maWcgc3dpdGNoIHRoYXQgY2FuDQo+Pj4+Pj4+IGRpc2FibGUgYnBmX3By aW50ayBjYWxscywgYmVjYXVzZSB0aGlzIGFkZHMgb3ZlcmhlYWQgYW5kIHRodXMgYWZmZWN0cw0K Pj4+Pj4+PiB0aGUgdGltZXN0YW1wcy4NCj4+Pj4+Pg0KPj4+Pj4+IE5vLiBUaGlzIGlzIGJ5IGRl c2lnbi4NCj4+Pj4+PiBEbyBub3QgdXNlIGJwZl9wcmludGsqIGluIHByb2R1Y3Rpb24uDQoNCkkg ZnVsbHkgYWdyZWUgZG8gbm90IHVzZSBicGZfcHJpbnRrIGluICpwcm9kdWN0aW9uKi4NCg0KPj4+ Pj4NCj4+Pj4+IEJ1dCB0aGF0J3Mgbm90IGZvciB0aGUgcHJvZHVjdGlvbj8geGRwX2h3X21ldGFk YXRhIGlzIGEgc21hbGwgdG9vbCB0bw0KPj4+Pj4gdmVyaWZ5IHRoYXQgdGhlIG1ldGFkYXRhIGJl aW5nIGR1bXBlZCBpcyBjb3JyZWN0IChkdXJpbmcgdGhlDQo+Pj4+PiBkZXZlbG9wbWVudCkuDQo+ Pj4+PiBXZSBoYXZlIGEgcHJvcGVyIChsZXNzIHZlcmJvc2UpIHNlbGZ0ZXN0IGluDQo+Pj4+PiB7 cHJvZ3MscHJvZ190ZXN0c30veGRwX21ldGFkYXRhLmMgKG92ZXIgdmV0aCkuDQo+Pj4+PiBUaGlz IHhkcF9od19tZXRhZGF0YSB3YXMgc3VwcG9zZWQgdG8gYmUgdXNlZCBmb3IgcnVubmluZyBpdCBh Z2FpbnN0DQo+Pj4+PiB0aGUgcmVhbCBoYXJkd2FyZSwgc28gaGF2aW5nIGFzIG11Y2ggZGVidWdn aW5nIGF0IGhhbmQgYXMgcG9zc2libGUNCj4+Pj4+IHNlZW1zIGhlbHBmdWw/IChhdCBsZWFzdCBp dCB3YXMgaGVscGZ1bCB0byBtZSB3aGVuIHBsYXlpbmcgd2l0aCBtbHg0KQ0KDQpNeSBleHBlcmll bmNlIHdoZW4gZGV2ZWxvcGluZyB0aGVzZSBrZnVuY3MgZm9yIGlnYyAocmVhbCBoYXJkd2FyZSks IHRoaXMNCiJ0b29sIiB4ZHBfaHdfbWV0YWRhdGEgd2FzIHN1cGVyIGhlbHBmdWwsIGJlY2F1c2Ug aXQgd2FzIHZlcnkgdmVyYm9zZQ0KKGFuZCBJIHdhcyBqdWdnbGluZyByZWFkaW5nIGNoaXAgcmVn aXN0ZXJzIEJFL0xFIGFuZCBzZWUgcGF0Y2gxIGEgYnVnZ3kNCmltcGxlbWVudGF0aW9uIGZvciBS WC1oYXNoKS4NCg0KQXMgSSB3cm90ZSBpbiBjb3Zlci1sZXR0ZXIsIEkgcmVjb21tZW5kIG90aGVy IGRyaXZlciBkZXZlbG9wZXJzIHRvIGRvDQp0aGUgc2FtZSwgYmVjYXVzZSBpdCByZWFsbHkgaGVs cCBzcGVlZCB1cCB0aGUgZGV2ZWxvcG1lbnQuIEluIHRoZW9yeQ0KeGRwX2h3X21ldGFkYXRhIGRv ZXNuJ3QgYmVsb25nIGluIHNlbGZ0ZXN0cyBkaXJlY3RvcnkgYW5kIElNSE8gaXQgc2hvdWxkDQpo YXZlIGJlZW4gcGxhY2VkIGluIHNhbXBsZXMvYnBmLywgYnV0IGdpdmVuIHRoZSByZWxhdGlvbnNo aXAgd2l0aCByZWFsDQpzZWxmdGVzdCB7cHJvZ3MscHJvZ190ZXN0c30veGRwX21ldGFkYXRhLmMg SSB0aGluayBpdCBtYWtlcyBzZW5zZSB0bw0Ka2VlcCBoZXJlLg0KDQoNCj4+Pj4NCj4+Pj4gVGhl IG9ubHkgdXNlIG9mIGJwZl9wcmludGsgaXMgZm9yIGRlYnVnZ2luZyBvZiBicGYgcHJvZ3MgdGhl bXNlbHZlcy4NCj4+Pj4gSXQgc2hvdWxkIG5vdCBiZSB1c2VkIGluIGFueSB0b29sLg0KPj4+DQo+ Pj4gSG1tLCBnb29kIHBvaW50LiBJIGd1ZXNzIGl0IGFsc28gbWVhbnMgd2Ugd29uJ3QgaGF2ZSB0 byBtZXNzIHdpdGgNCj4+PiBlbmFibGluZy9kdW1waW5nIGZ0cmFjZSAoYW5kIGRvbid0IG5lZWQg dGhpcyBjb21tZW50IGFib3V0IGNhdCdpbmcgdGhlDQo+Pj4gZmlsZSkuDQo+Pj4gSmVzcGVyLCBt YXliZSB3ZSBjYW4gaW5zdGVhZCBwYXNzIHRoZSBzdGF0dXMgb2YgdGhvc2UNCj4+PiBicGZfeGRw X21ldGFkYXRhX3h4eCBrZnVuY3MgdmlhICdzdHJ1Y3QgeGRwX21ldGEnPyBBbmQgZHVtcCB0aGlz IGluZm8NCj4+PiBmcm9tIHRoZSB1c2Vyc3BhY2UgaWYgbmVlZGVkLg0KPj4NCj4+IFRoZXJlIGFy ZSBzbyBtYW55IG90aGVyIHdheXMgZm9yIGJwZiBwcm9nIHRvIGNvbW11bmljYXRlIHdpdGggdXNl ciBzcGFjZS4NCj4+IFVzZSByaW5nYnVmLCBwZXJmX2V2ZW50IGJ1ZmZlciwgZ2xvYmFsIHZhcnMs IG1hcHMsIGV0Yy4NCj4+IHRyYWNlX3BpcGUgaXMgZGVidWcgb25seSBiZWNhdXNlIGl0J3MgZ2xv YmFsIGFuZCB3aWxsIGNvbmZsaWN0IHdpdGgNCj4+IGFsbCBvdGhlciBkZWJ1ZyBzZXNzaW9ucy4N Cg0KSSB3YW50IHRvIGhpZ2hsaWdodCBhYm92ZSBwYXJhZ3JhcGg6IEl0IGlzIHZlcnkgdHJ1ZSBm b3IgcHJvZHVjdGlvbg0KY29kZS4gKEFueW9uZSBHb29nbGluZyB0aGlzIHBheSBhdHRlbnRpb24g dG8gYWJvdmUgcGFyYWdyYXBoKS4NCg0KPiANCj4g8J+RjSBtYWtlcyBzZW5zZSwgdHkhIGhvcGVm dWxseSB3ZSB3b24ndCBoYXZlIHRvIGFkZCBhIHNlcGFyYXRlIGNoYW5uZWwNCj4gZm9yIHRob3Nl IGFuZCBjYW4gKGFiKXVzZSB0aGUgbWV0YWRhdGEgYXJlYS4NCj4gDQoNClByb3Bvc2VkIHNvbHV0 aW9uOiBIb3cgYWJvdXQgZGVmYXVsdCBkaXNhYmxpbmcgdGhlIGJwZl9wcmludGsncyB2aWEgYSAN Cm1hY3JvIGRlZmluZSwgYW5kIHRoZW4gZHJpdmVyIGRldmVsb3BlciBjYW4gbWFudWFsbHkgcmVl bmFibGUgdGhlbSANCmVhc2lseSB2aWEgYSBzaW5nbGUgZGVmaW5lLCB0byBlbmFibGUgYSBkZWJ1 Z2dpbmcgbW9kZS4NCg0KSSB3YXMgb25seSB3YXRjaGluZyAvc3lzL2tlcm5lbC9kZWJ1Zy90cmFj aW5nL3RyYWNlX3BpcGUgd2hlbiBJIHdhcyANCmRlYnVnZ2luZyBhIGRyaXZlciBpc3N1ZS4gIFRo dXMsIGFuIGV4dHJhIHN0ZXAgb2YgbW9kaWZ5aW5nIGEgc2luZ2xlIA0KZGVmaW5lIGluIEJQRiBz ZWVtcyBlYXNpZXIsIHRoYW4gaW5zdHJ1bWVudGluZyBteSBkcml2ZXIgd2l0aCBwcmludGsuDQoN Ci0tSmVzcGVyDQoNCg==