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 9FB599B2881 for ; Thu, 3 Nov 2022 13:01:11 +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=JDuY5ezN DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1667476870; 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=MRla5Jx7B3b6K5eK+3vGls3v50zlZMblv0IPrff+ht8=; b=JDuY5ezN//+I02whrqSS9zc1tBlSon9Ie3o7E5IF7WcrRFZKtv7fDr/mF2vlmCn3yHY9Bl 1IuUXZExedEs0BaMcWVJRPElYRMxqIhwXqL8GLCtLSLngqCVfwkFoLewPj2sxApk9UcBnr TmQIkUp4AGRfVarlH3BFpHLURvlPFfI= Received: from mail-ed1-f72.google.com (mail-ed1-f72.google.com [209.85.208.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-591-zKd-K6uLMCyjls42vVDK9g-1; Thu, 03 Nov 2022 08:01:08 -0400 X-MC-Unique: zKd-K6uLMCyjls42vVDK9g-1 Received: by mail-ed1-f72.google.com with SMTP id r12-20020a05640251cc00b00463699c95aeso1185502edd.18 for ; Thu, 03 Nov 2022 05:01:08 -0700 (PDT) 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=MRla5Jx7B3b6K5eK+3vGls3v50zlZMblv0IPrff+ht8=; b=g/HKaSsWNfZYLy685CH5wcHXKxdGJReeNNuSnevHl1HJ/SOw5t8IsXfvQb/j5lK01x F5GBM56WcrqXz1emKC6XqVwFtTz/kwcFXybOHmqRAp4PEOIpma7bg3itc8N1xG8rb5O1 Z4eWBwAbaqmtnt9KH0pbCEegz2/I7gag1YEgsg/b6wYBa8fC/Of2M10Dvi2IQd9yXJ/S HP1Rrzq5VaUFHNXADFGIhncJeyxrz+2Tr57MMCbE1lI3IbMcrbqmj3Mvjm78nkIcK2BH 2Z2UZPWQJKBoIZv5zwUxmfcCkIwXpsMFOxO7heOrCIcUolONzdAWsZx1F0JQAz5QWNbH TdMw== X-Gm-Message-State: ACrzQf0HrQ2ziFRq0aBoS2W/m0kdc7uRTAsLLYWvV7VF4gI2LWWUYuqR RQ6cuW7ajffs4z5r9m/IiB5LhyjVvPS27jq93RFrnu17yEm7qafD/cJGQGej+QBFqYY126H+hgW nRL3lE0keC+vx62fXv3AN X-Received: by 2002:a05:6402:5107:b0:462:3014:3d73 with SMTP id m7-20020a056402510700b0046230143d73mr29858721edd.177.1667476867348; Thu, 03 Nov 2022 05:01:07 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7Cz/CvU8MVfpquOd46TGi6PWkPT77h30qL4B6emE8rASk7LRjOgORcCcMtIYBJhwrJ1DS22w== X-Received: by 2002:a05:6402:5107:b0:462:3014:3d73 with SMTP id m7-20020a056402510700b0046230143d73mr29858676edd.177.1667476866969; Thu, 03 Nov 2022 05:01:06 -0700 (PDT) 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 o1-20020a170906860100b007ad96726c42sm415866ejx.91.2022.11.03.05.01.04 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 03 Nov 2022 05:01:06 -0700 (PDT) From: Jesper Dangaard Brouer X-Google-Original-From: Jesper Dangaard Brouer Message-ID: Date: Thu, 3 Nov 2022 13:01:03 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.3.1 To: =?UTF-8?Q?Toke_H=c3=b8iland-J=c3=b8rgensen?= , Stanislav Fomichev References: <20221027200019.4106375-1-sdf@google.com> <635bfc1a7c351_256e2082f@john.notmuch> <20221028110457.0ba53d8b@kernel.org> <635c62c12652d_b1ba208d0@john.notmuch> <20221028181431.05173968@kernel.org> <5aeda7f6bb26b20cb74ef21ae9c28ac91d57fae6.camel@siemens.com> <875yg057x1.fsf@toke.dk> <77b115a0-bbba-48eb-89bd-3078b5fb7eeb@linux.dev> <0c00ba33-f37b-dfe6-7980-45920ffa273b@linux.dev> <48ba6e77-1695-50b3-b27f-e82750ee70bb@redhat.com> <87iljx2ey4.fsf@toke.dk> <87cza43nlu.fsf@toke.dk> In-Reply-To: <87cza43nlu.fsf@toke.dk> 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: 6ASOJ26UNWB45ZFINDSTZSP4T3W43WDT X-Message-ID-Hash: 6ASOJ26UNWB45ZFINDSTZSP4T3W43WDT 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, Jesper Dangaard Brouer , Martin KaFai Lau , "Bezdeka, Florian" , "kuba@kernel.org" , "john.fastabend@gmail.com" , "alexandr.lobakin@intel.com" , "anatoly.burakov@intel.com" , "song@kernel.org" , "Deric, Nemanja" , "andrii@kernel.org" , "Kiszka, Jan" , "magnus.karlsson@gmail.com" , "willemb@google.com" , "ast@kernel.org" , "yhs@fb.com" , "kpsingh@kernel.org" , "daniel@iogearbox.net" , "bpf@vger.kernel.org" , "mtahhan@redhat.com" , "xdp-hints@xdp-project.net" , "netdev@vger.kernel.org" , "jolsa@kernel.org" , "haoluo@google.com" X-Mailman-Version: 3.3.5 Precedence: list Subject: [xdp-hints] Re: [RFC bpf-next 0/5] xdp: hints via kfuncs List-Id: XDP hardware hints design discussion Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: DQpPbiAwMy8xMS8yMDIyIDAxLjA5LCBUb2tlIEjDuGlsYW5kLUrDuHJnZW5zZW4gd3JvdGU6DQo+ IFN0YW5pc2xhdiBGb21pY2hldiA8c2RmQGdvb2dsZS5jb20+IHdyaXRlczoNCj4gDQo+PiBPbiBX ZWQsIE5vdiAyLCAyMDIyIGF0IDM6MDIgUE0gVG9rZSBIw7hpbGFuZC1Kw7hyZ2Vuc2VuIDx0b2tl QHJlZGhhdC5jb20+IHdyb3RlOg0KPj4+DQo+Pj4gSmVzcGVyIERhbmdhYXJkIEJyb3VlciA8amJy b3VlckByZWRoYXQuY29tPiB3cml0ZXM6DQo+Pj4NCj4+Pj4gT24gMDEvMTEvMjAyMiAxOC4wNSwg TWFydGluIEthRmFpIExhdSB3cm90ZToNCj4+Pj4+IE9uIDEwLzMxLzIyIDY6NTkgUE0sIFN0YW5p c2xhdiBGb21pY2hldiB3cm90ZToNCj4+Pj4+PiBPbiBNb24sIE9jdCAzMSwgMjAyMiBhdCAzOjU3 IFBNIE1hcnRpbiBLYUZhaSBMYXUNCj4+Pj4+PiA8bWFydGluLmxhdUBsaW51eC5kZXY+IHdyb3Rl Og0KPj4+Pj4+Pg0KPj4+Pj4+PiBPbiAxMC8zMS8yMiAxMDowMCBBTSwgU3RhbmlzbGF2IEZvbWlj aGV2IHdyb3RlOg0KPj4+Pj4+Pj4+IDIuIEFGX1hEUCBwcm9ncmFtcyB3b24ndCBiZSBhYmxlIHRv IGFjY2VzcyB0aGUgbWV0YWRhdGEgd2l0aG91dA0KPj4+Pj4+Pj4+IHVzaW5nIGENCj4+Pj4+Pj4+ PiBjdXN0b20gWERQIHByb2dyYW0gdGhhdCBjYWxscyB0aGUga2Z1bmNzIGFuZCBwdXRzIHRoZSBk YXRhIGludG8gdGhlDQo+Pj4+Pj4+Pj4gbWV0YWRhdGEgYXJlYS4gV2UgY291bGQgc29sdmUgdGhp cyB3aXRoIHNvbWUgY29kZSBpbiBsaWJ4ZHAsDQo+Pj4+Pj4+Pj4gdGhvdWdoOyBpZg0KPj4+Pj4+ Pj4+IHRoaXMgY29kZSBjYW4gYmUgbWFkZSBnZW5lcmljIGVub3VnaCAoc28gaXQganVzdCBkdW1w cyB0aGUgYXZhaWxhYmxlDQo+Pj4+Pj4+Pj4gbWV0YWRhdGEgZnVuY3Rpb25zIGZyb20gdGhlIHJ1 bm5pbmcga2VybmVsIGF0IGxvYWQgdGltZSksIGl0IG1heSBiZQ0KPj4+Pj4+Pj4+IHBvc3NpYmxl IHRvIG1ha2UgaXQgZ2VuZXJpYyBlbm91Z2ggdGhhdCBpdCB3aWxsIGJlIGZvcndhcmQtY29tcGF0 aWJsZQ0KPj4+Pj4+Pj4+IHdpdGggbmV3IHZlcnNpb25zIG9mIHRoZSBrZXJuZWwgdGhhdCBhZGQg bmV3IGZpZWxkcywgd2hpY2ggc2hvdWxkDQo+Pj4+Pj4+Pj4gYWxsZXZpYXRlIEZsb3JpYW4ncyBj b25jZXJuIGFib3V0IGtlZXBpbmcgdGhpbmdzIGluIHN5bmMuDQo+Pj4+Pj4+Pg0KPj4+Pj4+Pj4g R29vZCBwb2ludC4gSSBoYWQgdG8gY29udmVydCB0byBhIGN1c3RvbSBwcm9ncmFtIHRvIHVzZSB0 aGUga2Z1bmNzIDotKA0KPj4+Pj4+Pj4gQnV0IHlvdXIgc3VnZ2VzdGlvbiBzb3VuZHMgZ29vZDsg bWF5YmUgbGlieGRwIGNhbiBhY2NlcHQgc29tZSBleHRyYQ0KPj4+Pj4+Pj4gaW5mbyBhYm91dCBh dCB3aGljaCBvZmZzZXQgdGhlIHVzZXIgd291bGQgbGlrZSB0byBwbGFjZSB0aGUgbWV0YWRhdGEN Cj4+Pj4+Pj4+IGFuZCB0aGUgbGlicmFyeSBjYW4gZ2VuZXJhdGUgdGhlIHJlcXVpcmVkIGJ5dGVj b2RlPw0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+PiAzLiBJdCB3aWxsIG1ha2UgaXQgaGFyZGVyIHRvIGNv bnN1bWUgdGhlIG1ldGFkYXRhIHdoZW4gYnVpbGRpbmcNCj4+Pj4+Pj4+PiBTS0JzLiBJDQo+Pj4+ Pj4+Pj4gdGhpbmsgdGhlIENQVU1BUCBhbmQgdmV0aCB1c2UgY2FzZXMgYXJlIGFsc28gcXVpdGUg aW1wb3J0YW50LCBhbmQgdGhhdA0KPj4+Pj4+Pj4+IHdlIHdhbnQgbWV0YWRhdGEgdG8gYmUgYXZh aWxhYmxlIGZvciBidWlsZGluZyBTS0JzIGluIHRoaXMgcGF0aC4gTWF5YmUNCj4+Pj4+Pj4+PiB0 aGlzIGNhbiBiZSByZXNvbHZlZCBieSBoYXZpbmcgYSBjb252ZW5pZW50IGtmdW5jIGZvciB0aGlz IHRoYXQgY2FuIGJlDQo+Pj4+Pj4+Pj4gdXNlZCBmb3IgcHJvZ3JhbXMgZG9pbmcgc3VjaCByZWRp cmVjdHMuIEUuZy4sIHlvdSBjb3VsZCBqdXN0IGNhbGwNCj4+Pj4+Pj4+PiB4ZHBfY29weV9tZXRh ZGF0YV9mb3Jfc2tiKCkgYmVmb3JlIGRvaW5nIHRoZSBicGZfcmVkaXJlY3QsIGFuZCB0aGF0DQo+ Pj4+Pj4+Pj4gd291bGQgcmVjdXJzaXZlbHkgZXhwYW5kIGludG8gYWxsIHRoZSBrZnVuYyBjYWxs cyBuZWVkZWQgdG8gZXh0cmFjdA0KPj4+Pj4+Pj4+IHRoZQ0KPj4+Pj4+Pj4+IG1ldGFkYXRhIHN1 cHBvcnRlZCBieSB0aGUgU0tCIHBhdGg/DQo+Pj4+Pj4+Pg0KPj4+Pj4+Pj4gU28gdGhpcyB4ZHBf Y29weV9tZXRhZGF0YV9mb3Jfc2tiIHdpbGwgY3JlYXRlIGEgbWV0YWRhdGEgbGF5b3V0IHRoYXQN Cj4+Pj4+Pj4NCj4+Pj4+Pj4gQ2FuIHRoZSB4ZHBfY29weV9tZXRhZGF0YV9mb3Jfc2tiIGJlIHdy aXR0ZW4gYXMgYSBicGYgcHJvZyBpdHNlbGY/DQo+Pj4+Pj4+IE5vdCBzdXJlIHdoZXJlIGlzIHRo ZSBiZXN0IHBvaW50IHRvIHNwZWNpZnkgdGhpcyBwcm9nIHRob3VnaC4NCj4+Pj4+Pj4gU29tZWhv dyBkdXJpbmcNCj4+Pj4+Pj4gYnBmX3hkcF9yZWRpcmVjdF9tYXA/DQo+Pj4+Pj4+IG9yIHRoaXMg cHJvZyBiZWxvbmdzIHRvIHRoZSB0YXJnZXQgY3B1bWFwIGFuZCB0aGUgeGRwIHByb2cNCj4+Pj4+ Pj4gcmVkaXJlY3RpbmcgdG8gdGhpcw0KPj4+Pj4+PiBjcHVtYXAgaGFzIHRvIHdyaXRlIHRoZSBt ZXRhIGxheW91dCBpbiBhIHdheSB0aGF0IHRoZSBjcHVtYXAgaXMNCj4+Pj4+Pj4gZXhwZWN0aW5n Pw0KPj4+Pj4+DQo+Pj4+Pj4gV2UncmUgcHJvYmFibHkgaW50ZXJlc3RlZCBpbiB0cmlnZ2VyaW5n IGl0IGZyb20gdGhlIHBsYWNlcyB3aGVyZSB4ZHANCj4+Pj4+PiBmcmFtZXMgY2FuIGV2ZW50dWFs bHkgYmUgY29udmVydGVkIGludG8gc2ticz8NCj4+Pj4+PiBTbyBmb3IgcGxhaW4gJ3JldHVybiBY RFBfUEFTUycgYW5kIHRoaW5ncyBsaWtlIGJwZl9yZWRpcmVjdC9ldGM/IChJT1csDQo+Pj4+Pj4g YW55dGhpbmcgdGhhdCdzIG5vdCBYRFBfRFJPUCAvIEFGX1hEUCByZWRpcmVjdCkuDQo+Pj4+Pj4g V2UgY2FuIHByb2JhYmx5IG1ha2UgaXQgbWFnaWNhbGx5IHdvcmssIGFuZCBjYW4gZ2VuZXJhdGUN Cj4+Pj4+PiBrZXJuZWwtZGlnZXN0aWJsZSBtZXRhZGF0YSB3aGVuZXZlciBkYXRhID09IGRhdGFf bWV0YSwgYnV0IHRoZQ0KPj4+Pj4+IHF1ZXN0aW9uIC0gc2hvdWxkIHdlPw0KPj4+Pj4+IChuZWVk IHRvIG1ha2Ugc3VyZSB3ZSB3b24ndCByZWdyZXNzIGFueSBleGlzdGluZyBjYXNlcyB0aGF0IGFy ZSBub3QNCj4+Pj4+PiByZWx5aW5nIG9uIHRoZSBtZXRhZGF0YSkNCj4+Pj4+DQo+Pj4+PiBJbnN0 ZWFkIG9mIGhhdmluZyBzb21lIGtlcm5lbC1kaWdlc3RpYmxlIG1ldGEgZGF0YSwgaG93IGFib3V0 IGNhbGxpbmcNCj4+Pj4+IGFub3RoZXIgYnBmIHByb2cgdG8gaW5pdGlhbGl6ZSB0aGUgc2tiIGZp ZWxkcyBmcm9tIHRoZSBtZXRhIGFyZWEgYWZ0ZXINCj4+Pj4+IF9feGRwX2J1aWxkX3NrYl9mcm9t X2ZyYW1lKCkgaW4gdGhlIGNwdW1hcCwgc28NCj4+Pj4+IHJ1bl94ZHBfc2V0X3NrYl9maWxlZHNf ZnJvbV9tZXRhZGF0YSgpIG1heSBiZSBhIGJldHRlciBuYW1lLg0KPj4+Pj4NCj4+Pj4NCj4+Pj4g SSB2ZXJ5IG11Y2ggbGlrZSB0aGlzIGlkZWEgb2YgY2FsbGluZyBhbm90aGVyIGJwZiBwcm9nIHRv IGluaXRpYWxpemUgdGhlDQo+Pj4+IFNLQiBmaWVsZHMgZnJvbSB0aGUgbWV0YSBhcmVhLiAoQXMg YSByZW1pbmRlciwgZGF0YSBuZWVkIHRvIGNvbWUgZnJvbQ0KPj4+PiBtZXRhIGFyZWEsIGJlY2F1 c2UgYXQgdGhpcyBwb2ludCB0aGUgaGFyZHdhcmUgUlgtZGVzYyBpcyBvdXQtb2Ytc2NvcGUpLg0K Pj4+PiBJJ20gb25ib2FyZCB3aXRoIHhkcF9jb3B5X21ldGFkYXRhX2Zvcl9za2IoKSBwb3B1bGF0 aW5nIHRoZSBtZXRhIGFyZWEuDQo+Pj4+DQo+Pj4+IFdlIGNvdWxkIGludm9rZSB0aGlzIEJQRi1w cm9nIGluc2lkZSBfX3hkcF9idWlsZF9za2JfZnJvbV9mcmFtZSgpLg0KPj4+Pg0KPj4+PiBXZSBt aWdodCBuZWVkIGEgbmV3IEJQRl9QUk9HX1RZUEVfWERQMlNLQiBhcyB0aGlzIG5ldyBCUEYtcHJv Zw0KPj4+PiBydW5feGRwX3NldF9za2JfZmllbGRzX2Zyb21fbWV0YWRhdGEoKSB3b3VsZCBuZWVk IGJvdGggeGRwX2J1ZmYgKyBTS0IgYXMNCj4+Pj4gY29udGV4dCBpbnB1dHMuIFJpZ2h0PyAgKE5v dCBzdXJlLCBpZiB0aGlzIGlzIGFjY2VwdGFibGUgd2l0aCB0aGUgQlBGDQo+Pj4+IG1haW50YWlu ZXJzIG5ldyBydWxlcykNCj4+Pj4NCj4+Pj4+IFRoZSB4ZHBfcHJvZ0ByeCBzZXRzIHRoZSBtZXRh IGRhdGEgYW5kIHRoZW4gcmVkaXJlY3QuICBJZiB0aGUNCj4+Pj4+IHhkcF9wcm9nQHJ4IGNhbiBh bHNvIHNwZWNpZnkgYSB4ZHAgcHJvZyB0byBpbml0aWFsaXplIHRoZSBza2IgZmllbGRzDQo+Pj4+ PiBmcm9tIHRoZSBtZXRhIGFyZWEsIHRoZW4gdGhlcmUgaXMgbm8gbmVlZCB0byBoYXZlIGEga2Z1 bmMgdG8gZW5mb3JjZSBhDQo+Pj4+PiBrZXJuZWwtZGlnZXN0aWJsZSBsYXlvdXQuICBOb3Qgc3Vy ZSB3aGF0IGlzIGEgZ29vZCB3YXkgdG8gc3BlY2lmeSB0aGlzDQo+Pj4+PiB4ZHBfcHJvZyB0aG91 Z2guLi4NCj4+Pj4NCj4+Pj4gVGhlIGNoYWxsZW5nZSBvZiBydW5uaW5nIHRoaXMgKEJQRl9QUk9H X1RZUEVfWERQMlNLQikgQlBGLXByb2cgaW5zaWRlDQo+Pj4+IF9feGRwX2J1aWxkX3NrYl9mcm9t X2ZyYW1lKCkgaXMgdGhhdCBpdCBuZWVkIHRvIGtub3cgaG93dG8gZGVjb2RlIHRoZQ0KPj4+PiBt ZXRhIGFyZWEgZm9yIGV2ZXJ5IGRldmljZSBkcml2ZXIgb3IgWERQLXByb2cgcG9wdWxhdGluZyB0 aGlzIChhcyB2ZXRoDQo+Pj4+IGFuZCBjcHVtYXAgY2FuIGdldCByZWRpcmVjdGVkIHBhY2tldHMg ZnJvbSBtdWx0aXBsZSBkZXZpY2UgZHJpdmVycykuDQo+Pj4NCj4+PiBJZiB3ZSBoYXZlIHRoZSBo ZWxwZXIgdG8gY29weSB0aGUgZGF0YSAib3V0IG9mIiB0aGUgZHJpdmVycywgd2h5IGRvIHdlDQo+ Pj4gbmVlZCBhIHNlY29uZCBCUEYgcHJvZ3JhbSB0byBjb3B5IGRhdGEgdG8gdGhlIFNLQj8NCj4+ Pg0KDQpJTUhPIHRoZSBzZWNvbmQgQlBGIHByb2dyYW0gdG8gcG9wdWxhdGUgdGhlIFNLQiBpcyBu ZWVkZWQgdG8gYWRkDQpmbGV4aWJpbGl0eSBhbmQgZXh0ZW5zaWJpbGl0eS4NCg0KTXkgZW5kLWdv YWwgaGVyZSBpcyB0byBzcGVlZHVwIHBhY2tldCBwYXJzaW5nLg0KVGhpcyBCUEYtcHJvZyBzaG91 bGQgKGluIHRpbWUpIGJlIGFibGUgdG8gdXBkYXRlIHNrYi0+dHJhbnNwb3J0X2hlYWRlcg0KYW5k IHNrYi0+bmV0d29ya19oZWFkZXIuICBBcyBJIG1lbnRpb25lZCBiZWZvcmUsIEhXIFJYLWhhc2gg YWxyZWFkeSB0ZWxsDQp1cyB0aGUgTDMgYW5kIEw0IHByb3RvY29scyBhbmQgaW4tbW9zdC1jYXNl cyBoZWFkZXItbGVuLiAgRXZlbiB3aXRob3V0DQpIVy1oaW50cywgdGhlIFhEUC1wcm9nIGxpa2Vs eSBoYXZlIHBhcnNlZCB0aGUgcGFja2V0IG9uY2UuIFRoaXMgcGFyc2UNCmluZm9ybWF0aW9uIGlz IGxvc3QgdG9kYXksIGFuZCByZWRvbmUgYnkgbmV0c3RhY2suIFdoYXQgYWJvdXQgc3RvcmluZw0K dGhpcyBoZWFkZXIgcGFyc2UgaW5mbyBpbiBtZXRhIGRhdGEgYW5kIHJlLXVzZSBpbiB0aGlzIG5l dyBYRFAyU0tCIGhvb2s/DQoNClRoZSByZWFzb24gZm9yIHN1Z2dlc3RpbmcgdGhpcyBCUEYtcHJv ZyB0byBiZSBhIGNhbGxiYWNrLCBhc3NvY2lhdGVkDQp3aXRoIHRoZSBuZXRfZGV2aWNlLCB3ZXJl IHRoYXQgSFcgaXMgZ29pbmcgdG8gZGlmZmVyIG9uIHdoYXQgSFcgaGludHMNCnRoYXQgSFcgc3Vw cG9ydC4gIFRodXMsIHdlIGNhbiBhdm9pZCBhIGdlbmVyaWMgQy1mdW5jdGlvbiB0aGF0IG5lZWQg dG8NCmNoZWNrIGZvciBhbGwgdGhlIHBvc3NpYmxlIGhpbnRzLCBhbmQgaW5zdGVhZCBoYXZlIGEg QlBGLXByb2cgdGhhdCBvbmx5DQpjb250YWlucyB0aGUgY29kZSB0aGF0IGlzIHJlbGV2YW50IGZv ciB0aGlzIG5ldF9kZXZpY2UuDQoNCg0KPj4+IEkuZS4sIHRoZSBYRFAgcHJvZ3JhbSBjYWxscyB4 ZHBfY29weV9tZXRhZGF0YV9mb3Jfc2tiKCk7IHRoaXMgaW52b2tlcw0KPj4+IGVhY2ggb2YgdGhl IGtmdW5jcyBuZWVkZWQgZm9yIHRoZSBtZXRhZGF0YSB1c2VkIGJ5IFNLQnMsIGFsbCBvZiB3aGlj aA0KPj4+IGdldCB1bnJvbGxlZC4gVGhlIGhlbHBlciB0YWtlcyB0aGUgb3V0cHV0IG9mIHRoZXNl IG1ldGFkYXRhLWV4dHJhY3RpbmcNCj4+PiBrZnVuY3MgYW5kIHN0b3JlcyBpdCAic29tZXdoZXJl Ii4gVGhpcyAic29tZXdoZXJlIiBjb3VsZCB3ZWxsIGJlIHRoZQ0KPj4+IG1ldGFkYXRhIGFyZWE7 IGJ1dCBpbiBhbnkgY2FzZSwgc2luY2UgaXQncyBoaWRkZW4gYXdheSBpbnNpZGUgYSBoZWxwZXIN Cj4+PiAob3Iga2Z1bmMpIGZyb20gdGhlIGNhbGxpbmcgWERQIHByb2dyYW0ncyBQb1YsIHRoZSBo ZWxwZXIgY2FuIGp1c3Qgc3Rhc2gNCj4+PiBhbGwgdGhlIGRhdGEgaW4gYSBmaXhlZCBmb3JtYXQs IHdoaWNoIF9feGRwX2J1aWxkX3NrYl9mcm9tX2ZyYW1lKCkgY2FuDQo+Pj4gdGhlbiBqdXN0IHJl YWQgc3RhdGljYWxseS4gV2UgY291bGQgZXZlbiBtYWtlIHRoaXMgZm9ybWF0IG1hdGNoIHRoZQ0K Pj4+IGZpZWxkIGxheW91dCBvZiBzdHJ1Y3Qgc2tfYnVmZiwgc28gYWxsIHdlIGhhdmUgdG8gZG8g aXMgbWVtY3B5IGENCj4+PiBjb250aWd1b3VzIGNodW5rIG9mIG1lbW9yeSB3aGVuIGJ1aWxkaW5n IHRoZSBTS0IuDQo+Pg0KPj4gKzENCg0KU29ycnksIEkgdGhpbmsgdGhpcyAiaGlkaW5nIiBsYXlv dXQgdHJpY2sgaXMgZ29pbmcgaW4gYSB3cm9uZyBkaXJlY3Rpb24uDQoNCkltYWdpbmUgdGhlIHVz ZS1jYXNlIG9mIGNwdW1hcCByZWRpcmVjdC4gIFRoZSBwaHlzaWNhbCBkZXZpY2UgWERQLXByb2cN CmNhbGxzIHhkcF9jb3B5X21ldGFkYXRhX2Zvcl9za2IoKSB0byBleHRyYWN0IGluZm8gZnJvbSBS WC1kZXNjLCB0aGVuIGl0DQpjYWxscyByZWRpcmVjdCBpbnRvIGNwdW1hcC4gIE9uIHJlbW90ZSBD UFUsIHRoZSB4ZHBfZnJhbWUgaXMgcGlja2VkIHVwLA0KYW5kIHRoZW4gSSB3YW50IHRvIHJ1biBh bm90aGVyIFhEUC1wcm9nIHRoYXQgd2FudCB0byBsb29rIGF0IHRoZXNlDQpIVy1oaW50cywgYW5k IHRoZW4gbGlrZWx5IGNhbGwgWERQX1BBU1Mgd2hpY2ggY3JlYXRlcyB0aGUgU0tCLCBhbHNvDQp1 c2luZyB0aGVzZSBIVy1oaW50cy4gIEkgdGFrZSBpdCwgaXQgd291bGQgbm90IGJlIHBvc3NpYmxl IHdoZW4gdXNpbmcNCnRoZSB4ZHBfY29weV9tZXRhZGF0YV9mb3Jfc2tiKCkgaGVscGVyPw0KDQo+ Pg0KPj4gSSdtIGN1cnJlbnRseSBkb2luZyBleGFjdGx5IHdoYXQgeW91J3JlIHN1Z2dlc3Rpbmcg KG1pbnVzIG1hdGNoaW5nIHNrYiBsYXlvdXQpOg0KPj4NCj4+IHN0cnVjdCB4ZHBfdG9fc2tiX21l dGFkYXRhIHsNCj4+ICAgIHUzMiBtYWdpYzsgLy8gcmFuZG9taXplZCBhdCBib290DQo+PiAgICAu Li4gc2tiLWNvbnN1bWFibGUtbWV0YWRhdGEgaW4gZml4ZWQgZm9ybWF0DQo+PiB9IF9fcmFuZG9t aXplX2xheW91dDsNCj4+DQo+PiBicGZfeGRwX2NvcHlfbWV0YWRhdGFfZm9yX3NrYigpIGRvZXMg YnBmX3hkcF9hZGp1c3RfbWV0YShjdHgsDQo+PiAtc2l6ZW9mKHN0cnVjdCB4ZHBfdG9fc2tiX21l dGFkYXRhKSkgYW5kIHRoZW4gY2FsbHMgYSBidW5jaCBvZiBrZnVuY3MNCj4+IHRvIGZpbGwgaW4g dGhlIGFjdHVhbCBkYXRhLg0KPj4NCj4+IFRoZW4sIGF0IF9feGRwX2J1aWxkX3NrYl9mcm9tX2Zy YW1lIHRpbWUsIEknbSBoYXZpbmcgYSByZWd1bGFyIGtlcm5lbA0KPj4gQyBjb2RlIHRoYXQgcGFy c2VzIHRoYXQgJ3N0cnVjdCB4ZHBfdG9fc2tiX21ldGFkYXRhJy4NCj4+IChUbyBiZSBwcmVjaXNl LCBJJ20gdHJ5aW5nIHRvIHBhcnNlIHRoZSBtZXRhZGF0YSBmcm9tDQo+PiBza2JfbWV0YWRhdGFf c2V0OyBpdCdzIGNhbGxlZCBmcm9tIF9feGRwX2J1aWxkX3NrYl9mcm9tX2ZyYW1lLCBidXQgbm90 DQo+PiAxMDAlIHN1cmUgdGhhdCdzIHRoZSByaWdodCBwbGFjZSkuDQo+PiAoSSBhbHNvIHJhbmRv bWl6ZSB0aGUgbGF5b3V0IGFuZCBtYWdpYyB0byBtYWtlIHN1cmUgdXNlcnNwYWNlIGRvZXNuJ3QN Cj4+IGRlcGVuZCBvbiBpdCBiZWNhdXNlIG5vdGhpbmcgc3RvcHMgdGhpcyBwYWNrZXQgdG8gYmUg cm91dGVkIGludG8geHNrDQo+PiBzb2NrZXQuLikNCj4gDQo+IEFoLCBuaWNlIHRyaWNrIHdpdGgg X19yYW5kb21pemVfbGF5b3V0IC0gSSBhZ3JlZSB3ZSBuZWVkIHRvIGRvIHNvbWV0aGluZw0KPiB0 byBwcmV2ZW50IHVzZXJzcGFjZSBmcm9tIGluYWR2ZXJ0ZW50bHkgc3RhcnRpbmcgdG8gcmVseSBv biB0aGlzLCBhbmQNCj4gdGhpcyBzZWVtcyBsaWtlIGEgZ3JlYXQgc29sdXRpb24hDQoNClNvcnJ5 LCBJIGRpc2FncmVlIHdoZXJlIHRoaXMgaXMgZ29pbmcuICBXaHkgZG8gYWxsIG9mIGEgc3VkZGVu IHdhbnQgdG8NCnByZXZlbnQgdXNlcnNwYWNlIChlLmcuIEFGX1hEUCkgZnJvbSB1c2luZyB0aGlz IGRhdGE/IT8NCg0KVGhlIGhvbGUgZXhlcmNpc2Ugc3RhcnRlZCB3aXRoIHdhbnRpbmcgdG8gcHJv dmlkZSBBRl9YRFAgd2l0aCB0aGVzZQ0KSFctaGludHMuIFRoZSBoaW50cyBhIHN0YW5kYXJkIEFG X1hEUCB1c2VyIHdhbnRzIGlzIGxpa2VseSB2ZXJ5IHNpbWlsYXINCnRvIHdoYXQgdGhlIFNLQiB1 c2VyIHdhbnRzLiAgV2h5IGRvIHRoZSBBRl9YRFAgdXNlciBuZWVkIHRvIG9wZW4gY29kZSB0aGlz Pw0KDQpUaGUgQlRGLUlEIHNjaGVtZSBwcmVjaXNlbHkgYWxsb3dzIHVzIHRvIGV4cG9zZSB0aGlz IGxheW91dCB0bw0KdXNlcnNwYWNlLCBhbmQgYXQgdGhlIHNhbWUgdGltZSBoYXZlIGZyZWVkb20g dG8gY2hhbmdlIHRoaXMgaW4ga2VybmVsDQpzcGFjZSwgYXMgdXNlcnNwYWNlIG11c3QgZGVjb2Rl IHRoZSBCVEYtbGF5b3V0IGJlZm9yZSByZWFkaW5nIHRoaXMuDQpJIHdhcyBob3BpbmcgeGRwX2Nv cHlfbWV0YWRhdGFfZm9yX3NrYigpIGNvdWxkIHNpbXBseSB1c2UgdGhlIEJURi1JRA0Kc2NoZW1l LCB3aXRoIHRoZSBCVEYtSUQgb2Ygc3RydWN0IHhkcF9oaW50c19yeF9jb21tb24sIGlzIHRvIHRv byBtdWNoIHRvDQphc2sgZm9yPyAgWW91IGNhbiBqdXN0IGNvbnNpZGVyIHRoZSBCVEYtSUQgYXMg dGhlIG1hZ2ljIG51bWJlciwgYXMgaXQNCndpbGwgYmUgbW9yZS1vci1sZXNzIHJhbmRvbSBwZXIg a2VybmVsIGJ1aWxkIChhbmQgbW9kdWxlIGxvYWQgb3JkZXIpLg0KDQo+IExvb2sgZm9yd2FyZCB0 byBzZWVpbmcgd2hhdCB0aGUgd2hvbGUgdGhpbmcgbG9va3MgbGlrZSBpbiBhIG1vcmUNCj4gY29t cGxldGUgZm9ybSA6KQ0KDQpJJ20gc29ydCBvZiBvbi1ib2FyZCB3aXRoIHRoZSBrZnVuY3MgYW5k IHVucm9sbC10cmlja3MsIGlmIEkgY2FuIHNlZQ0Kc29tZSBkcml2ZXIgY29kZSB0aGF0IGhhbmRs ZXMgdGhlIGlzc3VlcyBvZiBnZXR0aW5nIEhXIHNldHVwIHN0YXRlDQpleHBvc2VkIG5lZWRlZCB0 byBkZWNvZGUgdGhlIFJYLWRlc2MgZm9ybWF0Lg0KDQpJIHNlbnNlIHRoYXQgSSBteXNlbGYsIGhh dmVuJ3QgYmVlbiBnb29kIGVub3VnaCB0byBleHBsYWluL2NvbnZleSB0aGUNCkJURi1JRCBzY2hl bWUuICBOZXh0IHdlZWssIEkgd2lsbCBjb2RlIHNvbWUgZXhhbXBsZXMgdGhhdCBkZW1vIGhvdw0K QlRGLUlEcyBjYW4gYmUgdXNlZCBmcm9tIEJQRi1wcm9ncywgZXZlbiBhcyBhIGNvbW11bmljYXRp b24gY2hhbm5lbA0KYmV0d2VlbiBkaWZmZXJlbnQgQlBGLXByb2dzIChlLmcuIGRydiBYRFAtcHJv ZyAtPiBjcHVtYXAgWERQLXByb2cgLT4NClRDLUJQRikuDQoNCi0tSmVzcGVyDQoNCg==