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 CFA759E4006 for ; Wed, 25 Jan 2023 16:10:42 +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=YFS7p11M DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1674659440; 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=V250dp57YvGpsXo8e5z0OqUiYsupt7OECDxcc0HcLsM=; b=YFS7p11MLVxCzJx/QawVVABUbIxPs9YR7DHgEhsyjBHOcekqyEgbWjsqhndRH340LyJvU8 mBNAaao5KWbOMgWAmQWEM/JoEY4KNDo37odqTyW2/yEh3zzX7Zsj9R/sRvUTH8tC7fa9Z0 1VYrvnwL3zsnmYlIVJIi56jsABHpkfw= Received: from mail-ed1-f69.google.com (mail-ed1-f69.google.com [209.85.208.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-543-hgursWbDO6mqtsFAye8wAw-1; Wed, 25 Jan 2023 10:10:37 -0500 X-MC-Unique: hgursWbDO6mqtsFAye8wAw-1 Received: by mail-ed1-f69.google.com with SMTP id m7-20020a056402510700b00488d1fcdaebso13024994edd.9 for ; Wed, 25 Jan 2023 07:10:37 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=V250dp57YvGpsXo8e5z0OqUiYsupt7OECDxcc0HcLsM=; b=rHyXcF8+7K8Gz907ZH7mPK6/GdmCcjPb0JDsBnMWSNwKN5Fo05Zjn4tqFr7LKlyPy0 KZ8Uoy4ij9JPtJiPOrLvcJl1AqqsydD3SRTLdc7OtEAvXXeNqxrvblWeUaDMGvo/hAeH 5BfXZd1pMR4fy0fuCBO9i0/drcZLZqcocAKwLer82OcMd0MInGd1frJRnlad9s3xoVlE hU/XgPTKYTcB8u8DCiKvmMGj0JzzwC4vaBBnYQshrV8sjcudQUfAC8YSYrngdoEqdGXD KKzBQKMMEwLPWmVj8yJGDAPGZpPc3RaJynaAC8bBneLTGXqOItqYvbnqjZzcnUjWcGr+ TjdQ== X-Gm-Message-State: AFqh2ko+IO7/6hV08f4bBbKRBpMdymWiCpGXfDC/5V19sNfAztxztIla +8DQjLy7gv9Z6zhN/t/cLHKxZGhI/U6FXl1b+dXganBGZAWIqc/tQNVdhOLsqYgNoSJ4/k4NM1o JPjgbjpYMk1Nw6ePrG9DW X-Received: by 2002:a05:6402:524f:b0:49e:910:5706 with SMTP id t15-20020a056402524f00b0049e09105706mr47037708edd.2.1674659436028; Wed, 25 Jan 2023 07:10:36 -0800 (PST) X-Google-Smtp-Source: AMrXdXv9mD/nNbis0WE/I3tSCVhhJAQmz3Rn4k9HQBDL67wovPMOLXC1R45lFvlBjEtRRY5PLFM19w== X-Received: by 2002:a05:6402:524f:b0:49e:910:5706 with SMTP id t15-20020a056402524f00b0049e09105706mr47037641edd.2.1674659435478; Wed, 25 Jan 2023 07:10:35 -0800 (PST) Received: from [192.168.41.200] (83-90-141-187-cable.dk.customer.tdc.net. [83.90.141.187]) by smtp.gmail.com with ESMTPSA id fw19-20020a170907501300b0085a958808c6sm2481916ejc.7.2023.01.25.07.10.33 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 25 Jan 2023 07:10:34 -0800 (PST) From: Jesper Dangaard Brouer X-Google-Original-From: Jesper Dangaard Brouer Message-ID: Date: Wed, 25 Jan 2023 16:10:32 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.6.0 To: sdf@google.com, Jesper Dangaard Brouer References: <20230119221536.3349901-1-sdf@google.com> <20230119221536.3349901-18-sdf@google.com> <71be95ee-b522-b3db-105a-0f25d8dc52cb@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: XUHFD56SU64OZBPAKH4MS7AMZHWVY2MY X-Message-ID-Hash: XUHFD56SU64OZBPAKH4MS7AMZHWVY2MY 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@vger.kernel.org, ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org, martin.lau@linux.dev, song@kernel.org, yhs@fb.com, john.fastabend@gmail.com, kpsingh@kernel.org, haoluo@google.com, jolsa@kernel.org, David Ahern , Jakub Kicinski , Willem de Bruijn , Anatoly Burakov , Alexander Lobakin , Magnus Karlsson , Maryam Tahhan , xdp-hints@xdp-project.net, netdev@vger.kernel.org, =?UTF-8?Q?Toke_H=c3=b8iland-J=c3=b8rgensen?= X-Mailman-Version: 3.3.8 Precedence: list Subject: [xdp-hints] Re: [PATCH bpf-next v8 17/17] selftests/bpf: Simple program to dump XDP RX metadata List-Id: XDP hardware hints design discussion Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: DQpPbiAyNC8wMS8yMDIzIDE5LjQ4LCBzZGZAZ29vZ2xlLmNvbSB3cm90ZToNCj4gT24gMDEvMjQs IFN0YW5pc2xhdiBGb21pY2hldiB3cm90ZToNCj4+IE9uIFR1ZSwgSmFuIDI0LCAyMDIzIGF0IDc6 MjYgQU0gSmVzcGVyIERhbmdhYXJkIEJyb3Vlcg0KPj4gPGpicm91ZXJAcmVkaGF0LmNvbT4gd3Jv dGU6DQo+PiA+DQo+PiA+DQo+PiA+IFRlc3RpbmcgdGhpcyBvbiBtbHg1IGFuZCBJJ20gbm90IGdl dHRpbmcgdGhlIFJYLXRpbWVzdGFtcC4NCj4+ID4gU2VlIGNvbW1hbmQgZGV0YWlscyBiZWxvdy4N Cj4gDQo+PiBDQydlZCBUb2tlIHNpbmNlIEkndmUgbmV2ZXIgdGVzdGVkIG1seDUgbXlzZWxmLg0K Pj4gSSB3YXMgcHJldHR5IGNsb3NlIHRvIGdldHRpbmcgdGhlIHNldHVwIGxhdGUgbGFzdCB3ZWVr LCBsZXQgbWUgdHJ5IHRvDQo+PiBzZWUgd2hldGhlciBpdCdzIHJlYWR5IG9yIG5vdC4NCj4gDQo+ PiA+IE9uIDE5LzAxLzIwMjMgMjMuMTUsIFN0YW5pc2xhdiBGb21pY2hldiB3cm90ZToNCj4+ID4g PiBUbyBiZSB1c2VkIGZvciB2ZXJpZmljYXRpb24gb2YgZHJpdmVyIGltcGxlbWVudGF0aW9ucy4g Tm90ZSB0aGF0DQo+PiA+ID4gdGhlIHNrYiBwYXRoIGlzIGdvbmUgZnJvbSB0aGUgc2VyaWVzLCBi dXQgSSdtIHN0aWxsIGtlZXBpbmcgdGhlDQo+PiA+ID4gaW1wbGVtZW50YXRpb24gZm9yIGFueSBw b3NzaWJsZSBmdXR1cmUgd29yay4NCj4+ID4gPg0KPj4gPiA+ICQgeGRwX2h3X21ldGFkYXRhIDxp Zm5hbWU+DQo+PiA+DQo+PiA+IHN1ZG8gLi94ZHBfaHdfbWV0YWRhdGEgbWx4NXAxDQo+PiA+DQo+ PiA+IE91dHB1dDoNCj4+ID4gWy4uLmN1dCAuLi5dDQo+PiA+IG9wZW4gYnBmIHByb2dyYW0uLi4N Cj4+ID4gbG9hZCBicGYgcHJvZ3JhbS4uLg0KPj4gPiBwcmVwYXJlIHNrYiBlbmRwb2ludC4uLg0K Pj4gPiBYWFggdGltZXN0YW1waW5nX2VuYWJsZSgpOiBzZXRzb2Nrb3B0KFNPX1RJTUVTVEFNUElO RykgcmV0OjANCj4+ID4gcHJlcGFyZSB4c2sgbWFwLi4uDQo+PiA+IG1hcFswXSA9IDMNCj4+ID4g bWFwWzFdID0gNA0KPj4gPiBtYXBbMl0gPSA1DQo+PiA+IG1hcFszXSA9IDYNCj4+ID4gbWFwWzRd ID0gNw0KPj4gPiBtYXBbNV0gPSA4DQo+PiA+IGF0dGFjaCBicGYgcHJvZ3JhbS4uLg0KPj4gPiBw b2xsOiAwICgwKQ0KPj4gPiBwb2xsOiAwICgwKQ0KPj4gPiBwb2xsOiAwICgwKQ0KPj4gPiBwb2xs OiAxICgwKQ0KPj4gPiB4c2tfcmluZ19jb25zX19wZWVrOiAxDQo+PiA+IDB4MTgyMTc4ODogcnhf ZGVzY1swXS0+YWRkcj0xMDAwMDAwMDAwMDgwMDAgYWRkcj04MTAwIGNvbXBfYWRkcj04MDAwDQo+ PiA+IHJ4X3RpbWVzdGFtcDogMA0KPj4gPiByeF9oYXNoOiAyNzczMzU1ODA3DQo+PiA+IDB4MTgy MTc4ODogY29tcGxldGUgaWR4PTggYWRkcj04MDAwDQo+PiA+IHBvbGw6IDAgKDApDQo+PiA+DQo+ PiA+IFRoZSB0cmFjZV9waXBlOg0KPj4gPg0KPj4gPiAkIHN1ZG8gY2F0IC9zeXMva2VybmVsL2Rl YnVnL3RyYWNpbmcvdHJhY2VfcGlwZQ0KPj4gPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgPGlkbGU+ LTDCoMKgwqDCoMKgwqAgWzAwNV0gLi5zMi7CoCAyNzIyLjg4NDc2MjogYnBmX3RyYWNlX3ByaW50 azoNCj4+ID4gZm9yd2FyZGluZyBVRFA6OTA5MSB0byBBRl9YRFANCj4+ID7CoMKgwqDCoMKgwqDC oMKgwqDCoMKgIDxpZGxlPi0wwqDCoMKgwqDCoMKgIFswMDVdIC4uczIuwqAgMjcyMi44ODQ3NzE6 IGJwZl90cmFjZV9wcmludGs6DQo+PiA+IHBvcHVsYXRlZCByeF9oYXNoIHdpdGggMjc3MzM1NTgw Nw0KPj4gPg0KPj4gPg0KPj4gPiA+IE9uIHRoZSBvdGhlciBtYWNoaW5lOg0KPj4gPiA+DQo+PiA+ ID4gJCBlY2hvIC1uIHhkcCB8IG5jIC11IC1xMSA8dGFyZ2V0PiA5MDkxICMgZm9yIEFGX1hEUA0K Pj4gPg0KPj4gPiBGaXhpbmcgdGhlIHNvdXJjZS1wb3J0IHRvIHNlZSBpZiBSWC1oYXNoIHJlbWFp bnMgdGhlIHNhbWUuDQo+PiA+DQo+PiA+wqDCoCAkIGVjaG8geGRwIHwgbmMgLS1zb3VyY2UtcG9y dD0yMDAwIC0tdWRwIDE5OC4xOC4xLjEgOTA5MQ0KPj4gPg0KPj4gPiA+ICQgZWNobyAtbiBza2Ig fCBuYyAtdSAtcTEgPHRhcmdldD4gOTA5MiAjIGZvciBza2INCj4+ID4gPg0KPj4gPiA+IFNhbXBs ZSBvdXRwdXQ6DQo+PiA+ID4NCj4+ID4gPsKgwqDCoCAjIHhkcA0KPj4gPiA+wqDCoMKgIHhza19y aW5nX2NvbnNfX3BlZWs6IDENCj4+ID4gPsKgwqDCoCAweDE5ZjkwOTA6IHJ4X2Rlc2NbMF0tPmFk ZHI9MTAwMDAwMDAwMDA4MDAwIGFkZHI9ODEwMCANCj4+IGNvbXBfYWRkcj04MDAwDQo+PiA+ID7C oMKgwqAgcnhfdGltZXN0YW1wX3N1cHBvcnRlZDogMQ0KPj4gPiA+wqDCoMKgIHJ4X3RpbWVzdGFt cDogMTY2Nzg1MDA3NTA2Mzk0ODgyOQ0KPj4gPiA+wqDCoMKgIDB4MTlmOTA5MDogY29tcGxldGUg aWR4PTggYWRkcj04MDAwDQo+PiA+DQo+PiA+IHhza19yaW5nX2NvbnNfX3BlZWs6IDENCj4+ID4g MHgxODIxNzg4OiByeF9kZXNjWzBdLT5hZGRyPTEwMDAwMDAwMDAwODAwMCBhZGRyPTgxMDAgY29t cF9hZGRyPTgwMDANCj4+ID4gcnhfdGltZXN0YW1wOiAwDQo+PiA+IHJ4X2hhc2g6IDI3NzMzNTU4 MDcNCj4+ID4gMHgxODIxNzg4OiBjb21wbGV0ZSBpZHg9OCBhZGRyPTgwMDANCj4+ID4NCj4+ID4g SXQgZG9lc24ndCBsb29rIGxpa2UgaGFyZHdhcmUgUlgtdGltZXN0YW1wcyBhcmUgZ2V0dGluZyBl bmFibGVkLg0KPj4gPg0KPj4gPiBbLi4uIGN1dCB0byByZWxldmFudCBjb2RlIC4uLl0NCj4+ID4N Cj4+ID4gPiBkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3hkcF9od19t ZXRhZGF0YS5jIA0KPj4gYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYveGRwX2h3X21ldGFk YXRhLmMNCj4+ID4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4gPiA+IGluZGV4IDAwMDAwMDAw MDAwMC4uMDAwOGYwZjIzOWU4DQo+PiA+ID4gLS0tIC9kZXYvbnVsbA0KPj4gPiA+ICsrKyBiL3Rv b2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi94ZHBfaHdfbWV0YWRhdGEuYw0KPj4gPiA+IEBAIC0w LDAgKzEsNDAzIEBADQo+PiA+IFsuLi5dDQo+PiA+DQo+PiA+ID4gK3N0YXRpYyB2b2lkIHRpbWVz dGFtcGluZ19lbmFibGUoaW50IGZkLCBpbnQgdmFsKQ0KPj4gPiA+ICt7DQo+PiA+ID4gK8KgwqDC oMKgIGludCByZXQ7DQo+PiA+ID4gKw0KPj4gPiA+ICvCoMKgwqDCoCByZXQgPSBzZXRzb2Nrb3B0 KGZkLCBTT0xfU09DS0VULCBTT19USU1FU1RBTVBJTkcsICZ2YWwsIA0KPj4gc2l6ZW9mKHZhbCkp Ow0KPj4gPiA+ICvCoMKgwqDCoCBpZiAocmV0IDwgMCkNCj4+ID4gPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGVycm9yKC0xLCBlcnJubywgInNldHNvY2tvcHQoU09fVElNRVNUQU1QSU5HKSIp Ow0KPj4gPiA+ICt9DQo+PiA+ID4gKw0KPj4gPiA+ICtpbnQgbWFpbihpbnQgYXJnYywgY2hhciAq YXJndltdKQ0KPj4gPiA+ICt7DQo+PiA+IFsuLi5dDQo+PiA+DQo+PiA+ID4gK8KgwqDCoMKgIHBy aW50ZigicHJlcGFyZSBza2IgZW5kcG9pbnQuLi5cbiIpOw0KPj4gPiA+ICvCoMKgwqDCoCBzZXJ2 ZXJfZmQgPSBzdGFydF9zZXJ2ZXIoQUZfSU5FVDYsIFNPQ0tfREdSQU0sIE5VTEwsIDkwOTIsIA0K Pj4gMTAwMCk7DQo+PiA+ID4gK8KgwqDCoMKgIGlmIChzZXJ2ZXJfZmQgPCAwKQ0KPj4gPiA+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZXJyb3IoLTEsIGVycm5vLCAic3RhcnRfc2VydmVyIik7 DQo+PiA+ID4gK8KgwqDCoMKgIHRpbWVzdGFtcGluZ19lbmFibGUoc2VydmVyX2ZkLA0KPj4gPiA+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgU09GX1RJ TUVTVEFNUElOR19TT0ZUV0FSRSB8DQo+PiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBTT0ZfVElNRVNUQU1QSU5HX1JBV19IQVJEV0FSRSk7DQo+ PiA+ID4gKw0KPj4gPg0KPj4gPiBJIGRvbid0IHRoaW5rIHRoaXMgdGltZXN0YW1waW5nX2VuYWJs ZSgpIHdpdGggdGhlc2UgZmxhZ3MgYXJlIGVub3VnaCB0bw0KPj4gPiBlbmFibGUgaGFyZHdhcmUg dGltZXN0YW1waW5nLg0KPiANCj4gWWVhaCwgYWdyZWVkLCBsb29rcyBsaWtlIHRoYXQncyB0aGUg aXNzdWUuIHRpbWVzdGFtcGluZ19lbmFibGUoKSBoYXMNCj4gYmVlbiB1c2VkIGZvciB0aGUgeGRw LT5za2IgcGF0aCB0aGF0IEkndmUgZXZlbnR1YWxseSByZW1vdmVkIGZyb20gdGhlDQo+IHNlcmll cywgc28gaXQncyBtb3N0bHkgYSBub29wIGhlcmUuLg0KPiANCj4gTWF5YmUgeW91IGNhbiB0cnkg dGhlIGZvbGxvd2luZyBiZWZvcmUgSSBzZW5kIGEgcHJvcGVyIHBhdGNoPw0KDQpZZXMsIGJlbG93 IHBhdGNoIGZpeGVkIHRoZSBpc3N1ZSwgdGh4Lg0KDQpOb3cgSSBnZXQgSFcgdGltZXN0YW1wcywg cGx1cyBJIGFkZGVkIHNvbWUgc29mdHdhcmUgQ0xPQ0tfVEFJIHRpbWVzdGFtcHMNCnRvIGNvbXBh cmUgYWdhaW5zdC4NCg0KT3V0cHV0IGlzIG5vdzoNCg0KICBwb2xsOiAxICgwKQ0KICB4c2tfcmlu Z19jb25zX19wZWVrOiAxDQogIDB4ZjY0Nzg4OiByeF9kZXNjWzBdLT5hZGRyPTEwMDAwMDAwMDAw ODAwMCBhZGRyPTgxMDAgY29tcF9hZGRyPTgwMDANCiAgcnhfaGFzaDogMzY5Nzk2MTA2OQ0KICBy eF90aW1lc3RhbXA6ICAxNjc0NjU3NjcyMTQyMjE0NzczIChzZWM6MTY3NDY1NzY3Mi4xNDIyKQ0K ICBYRFAgUlgtdGltZTogICAxNjc0NjU3NzA5NTYxNzc0ODc2IChzZWM6MTY3NDY1NzcwOS41NjE4 KSBkZWx0YSBzZWM6MzcuNDE5Ng0KICBBRl9YRFAgdGltZTogICAxNjc0NjU3NzA5NTYxODcxMDM0 IChzZWM6MTY3NDY1NzcwOS41NjE5KSBkZWx0YSANCnNlYzowLjAwMDEgKDk2LjE1OCB1c2VjKQ0K ICAweGY2NDc4ODogY29tcGxldGUgaWR4PTggYWRkcj04MDAwDQoNCk15IE5JQyBoYXJkd2FyZSBj bG9jayBpcyBjbGVhcmx5IG5vdCBzeW5jZWQgd2l0aCBzeXN0ZW0gdGltZSwgYXMgYWJvdmUgDQpk ZWx0YSBzYXkgMzcuNCBzZWNvbmRzIGJldHdlZW4gSFcgYW5kIFhEUCB0aW1lc3RhbXBzICh1c2lu ZyANCmJwZl9rdGltZV9nZXRfdGFpX25zKCkpLg0KDQpUaW1lIGJldHdlZW4gWERQIGFuZCBBRl9Y RFAgd2FrZXVwIGlzIHJlcG9ydGVkIHRvIGJlIDk2IHVzZWMsIHdoaWNoIGlzIA0KYWxzbyBoaWdo ZXIgdGhhbiBJIGV4cGVjdGVkLiAgQXMgZXhwbGFpbmVkIGluIFsxXSB0aGlzIGlzIGNhdXNlZCBi eSBDUFUgDQpzbGVlcCBzdGF0ZXMuDQoNCk15IC9kZXYvY3B1X2RtYV9sYXRlbmN5IHdhcyBzZXQg dG8gMjAwMDAwMDAwMC4gIEFwcGx5aW5nIHR1bmVkLWFkbSANCnByb2ZpbGUgbGF0ZW5jeS1wZXJm b3JtYW5jZSB0aGlzIHZhbHVlIGNoYW5nZSB0byAyLg0KDQogICQgc3VkbyBoZXhkdW1wIC0tZm9y bWF0ICciJWRcbiInIC9kZXYvY3B1X2RtYV9sYXRlbmN5DQogIDIwMDAwMDAwMDANCiAgJCBzdWRv IGhleGR1bXAgLS1mb3JtYXQgJyIlZFxuIicgL2Rldi9jcHVfZG1hX2xhdGVuY3kNCiAgMg0KDQpO b3cgdGhlIHRpbWUgYmV0d2VlbiBYRFAgYW5kIEFGX1hEUCB3YWtldXAgaXMgcmVkdWNlZCB0byBh cHByb3ggMTIgdXNlYy4NCg0KICByeF90aW1lc3RhbXA6ICAxNjc0NjU5MjA2MzQ0OTc3NTQ0IChz ZWM6MTY3NDY1OTIwNi4zNDUwKQ0KICBYRFAgUlgtdGltZTogICAxNjc0NjU5MjQzNzc2MDg3NzY1 IChzZWM6MTY3NDY1OTI0My43NzYxKSBkZWx0YSBzZWM6MzcuNDMxMQ0KICBBRl9YRFAgdGltZTog ICAxNjc0NjU5MjQzNzc2MDk5ODQxIChzZWM6MTY3NDY1OTI0My43NzYxKSBkZWx0YSANCnNlYzow LjAwMDAgKDEyLjA3NiB1c2VjKQ0KDQoNClsxXSANCmh0dHBzOi8vZ2l0aHViLmNvbS94ZHAtcHJv amVjdC9icGYtZXhhbXBsZXMvdHJlZS9tYXN0ZXIvQUZfWERQLWludGVyYWN0aW9uDQoNCj4gZGlm ZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi94ZHBfaHdfbWV0YWRhdGEuYyAN Cj4gYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYveGRwX2h3X21ldGFkYXRhLmMNCj4gaW5k ZXggMDAwOGYwZjIzOWU4Li5kY2VkZGIxN2ZiYzkgMTAwNjQ0DQo+IC0tLSBhL3Rvb2xzL3Rlc3Rp bmcvc2VsZnRlc3RzL2JwZi94ZHBfaHdfbWV0YWRhdGEuYw0KPiArKysgYi90b29scy90ZXN0aW5n L3NlbGZ0ZXN0cy9icGYveGRwX2h3X21ldGFkYXRhLmMNCj4gQEAgLTI0LDYgKzI0LDcgQEANCj4g IMKgI2luY2x1ZGUgPGxpbnV4L25ldF90c3RhbXAuaD4NCj4gIMKgI2luY2x1ZGUgPGxpbnV4L3Vk cC5oPg0KPiAgwqAjaW5jbHVkZSA8bGludXgvc29ja2lvcy5oPg0KPiArI2luY2x1ZGUgPGxpbnV4 L25ldF90c3RhbXAuaD4NCj4gIMKgI2luY2x1ZGUgPHN5cy9tbWFuLmg+DQo+ICDCoCNpbmNsdWRl IDxuZXQvaWYuaD4NCj4gIMKgI2luY2x1ZGUgPHBvbGwuaD4NCj4gQEAgLTI3OCwxMyArMjc5LDM3 IEBAIHN0YXRpYyBpbnQgcnhxX251bShjb25zdCBjaGFyICppZm5hbWUpDQo+IA0KPiAgwqDCoMKg wqAgcmV0ID0gaW9jdGwoZmQsIFNJT0NFVEhUT09MLCAmaWZyKTsNCj4gIMKgwqDCoMKgIGlmIChy ZXQgPCAwKQ0KPiAtwqDCoMKgwqDCoMKgwqAgZXJyb3IoLTEsIGVycm5vLCAic29ja2V0Iik7DQo+ ICvCoMKgwqDCoMKgwqDCoCBlcnJvcigtMSwgZXJybm8sICJpb2N0bChTSU9DRVRIVE9PTCkiKTsN Cj4gDQo+ICDCoMKgwqDCoCBjbG9zZShmZCk7DQo+IA0KPiAgwqDCoMKgwqAgcmV0dXJuIGNoLnJ4 X2NvdW50ICsgY2guY29tYmluZWRfY291bnQ7DQo+ICDCoH0NCj4gDQo+ICtzdGF0aWMgdm9pZCBo d3RzdGFtcF9lbmFibGUoY29uc3QgY2hhciAqaWZuYW1lKQ0KPiArew0KPiArwqDCoMKgIHN0cnVj dCBod3RzdGFtcF9jb25maWcgY2ZnID0gew0KPiArwqDCoMKgwqDCoMKgwqAgLnJ4X2ZpbHRlciA9 IEhXVFNUQU1QX0ZJTFRFUl9BTEwsDQo+ICsNCj4gK8KgwqDCoCB9Ow0KPiArDQo+ICvCoMKgwqAg c3RydWN0IGlmcmVxIGlmciA9IHsNCj4gK8KgwqDCoMKgwqDCoMKgIC5pZnJfZGF0YSA9ICh2b2lk ICopJmNmZywNCj4gK8KgwqDCoCB9Ow0KPiArwqDCoMKgIHN0cmNweShpZnIuaWZyX25hbWUsIGlm bmFtZSk7DQo+ICvCoMKgwqAgaW50IGZkLCByZXQ7DQo+ICsNCj4gK8KgwqDCoCBmZCA9IHNvY2tl dChBRl9VTklYLCBTT0NLX0RHUkFNLCAwKTsNCj4gK8KgwqDCoCBpZiAoZmQgPCAwKQ0KPiArwqDC oMKgwqDCoMKgwqAgZXJyb3IoLTEsIGVycm5vLCAic29ja2V0Iik7DQo+ICsNCj4gK8KgwqDCoCBy ZXQgPSBpb2N0bChmZCwgU0lPQ1NIV1RTVEFNUCwgJmlmcik7DQo+ICvCoMKgwqAgaWYgKHJldCA8 IDApDQo+ICvCoMKgwqDCoMKgwqDCoCBlcnJvcigtMSwgZXJybm8sICJpb2N0bChTSU9DU0hXVFNU QU1QKSIpOw0KPiArDQo+ICvCoMKgwqAgY2xvc2UoZmQpOw0KPiArfQ0KPiArDQo+ICDCoHN0YXRp YyB2b2lkIGNsZWFudXAodm9pZCkNCj4gIMKgew0KPiAgwqDCoMKgwqAgTElCQlBGX09QVFMoYnBm X3hkcF9hdHRhY2hfb3B0cywgb3B0cyk7DQo+IEBAIC0zNDEsNiArMzY2LDggQEAgaW50IG1haW4o aW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkNCj4gDQo+ICDCoMKgwqDCoCBwcmludGYoInJ4cTogJWRc biIsIHJ4cSk7DQo+IA0KPiArwqDCoMKgIGh3dHN0YW1wX2VuYWJsZShpZm5hbWUpOw0KPiArDQo+ ICDCoMKgwqDCoCByeF94c2sgPSBtYWxsb2Moc2l6ZW9mKHN0cnVjdCB4c2spICogcnhxKTsNCj4g IMKgwqDCoMKgIGlmICghcnhfeHNrKQ0KPiAgwqDCoMKgwqDCoMKgwqDCoCBlcnJvcigtMSwgRU5P TUVNLCAibWFsbG9jIik7DQo+IA0KPiANCg0K