From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mail.toke.dk; spf=pass smtp.mailfrom=; dkim=pass header.d=herbertland.com; arc=none (Message is not ARC signed); dmarc=pass (Used From Domain Record) header.from=herbertland.com policy.dmarc=reject Received: from mail-lj1-x22c.google.com (mail-lj1-x22c.google.com [IPv6:2a00:1450:4864:20::22c]) by mail.toke.dk (Postfix) with ESMTPS id 3F7E1662A5F for ; Wed, 10 Sep 2025 16:06:37 +0200 (CEST) Received: by mail-lj1-x22c.google.com with SMTP id 38308e7fff4ca-336d2b0ea8dso53407321fa.3 for ; Wed, 10 Sep 2025 07:06:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=herbertland.com; s=google; t=1757513196; x=1758117996; darn=lists.bufferbloat.net; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=cVYZ2Ry16prqpyz/SlP7G1hcn7U7xhZlkWAnfpu/2tU=; b=c9goeHNtf0Cp4VsDfzb2UF1pp/4Ye9kBX+7S1UOw9YAfu16l1RgviBMexLsC+OlTCF qexK5BCwhWnS/Aj+bpVXA+Ne04xhRXIC6L7CH47EhcDZupZ2Cn9KyhQiDnI7EkBN3piC OwKwEIikkgdm8bIL7FkRQ6g/0/rl34J2lgmCJRVo9LsLXHIPmagkW4+hapX1/A6O5WXG PeTxmeM8qUx5F/ezJ83RG+g2B9+m6MPtciVfHTU3+A0E9NDhtg5zud7iJFhH9uUjdIgZ rvEeACeXBiSNt0rI13DcV0WcHAuFKCYGxp4Qwp52+k6sT6sFLLopyA+0JQ1rSwVQgy16 gwSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757513196; x=1758117996; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=cVYZ2Ry16prqpyz/SlP7G1hcn7U7xhZlkWAnfpu/2tU=; b=ZqkY1enJR14xbgY7C1hIBDTKW5LYfuMzQ07c0EPUo9e4z6KJuzsPUogt12+n4DhJj2 jNqwko16tOPTVGqHOlc93bKf+TrNaaXPyIGp89W/51DXBxjrJZkKqBF30yIELmlrFWo9 rFbQuIuDuBIhEMXULXuXBV1nH0BWLcitJCruSFryFzO1KL9VV20QHKwminrrOR75MZJj U2CTivpLpLa2c1Hrtd+slpMzsQNk+gXH/qJVIxbYrE+f95AqLu8EBTnbbBZpQyHq+Yce M8241lV34cnRY+1DhxhVtVwZ4noKjKINiI5HEhmB9/FTKgNXhZ4B09NYjUooG56/+HTg kU5A== X-Forwarded-Encrypted: i=1; AJvYcCXDvWU+gjhUzKZspHttujXfzDWOIBHXz9yOlJayXN3aDehHXDNo1/6MD/46W0UxwnQhUa5ZUA==@lists.bufferbloat.net X-Gm-Message-State: AOJu0YzuenjWVumoYm19Zoq/oFMni24L/RRtvH79E713B8A23cmzuE0w nnElRwGSqbFy5qgndmkaRByeK9tJRhbOtrp6Agf5h6hVYy4sat0bhvCy+p3ouhHqcpLqN6T2RPA 2Bnhoy342yir12Vm9Wv4n6LxZ+1vEWFBXg8MRBILi X-Gm-Gg: ASbGncu53yiHERPmhH+nRfIYbWWqxsJqzeas81S5jHiclXP+QxCquAThrdLEbYC8rzj e0Nic6qx/lAR956SJ8vjUpitmR/7fCOev7pkKgMnknshgpX0G1wYQ3cvHS5+CaTl6LKA6MbaEkL VHZNsXAoUQ/9i0kaOzcxjplHiAnJvMj0/uADzMEYmVbykeQ1IivIx2YgkSwYGeEnZP3Z+nWoG75 d99AEtezzjG9vgbWCA3AJOMZh/JNQChVd/Ne+v6 X-Google-Smtp-Source: AGHT+IGoLKrrEM8sEsBMJPlLfYsb6tqZLVKbgZAlpoJwyqgyelnDel2SR5P4OOYyCCgs7UqIEMMhfdH5ATpHTj6oolM= X-Received: by 2002:a05:651c:3255:10b0:337:e8cf:e501 with SMTP id 38308e7fff4ca-33b537e757cmr52368821fa.33.1757513196162; Wed, 10 Sep 2025 07:06:36 -0700 (PDT) MIME-Version: 1.0 References: <1757449551.421420786@apps.rackspace.com> In-Reply-To: From: Tom Herbert Date: Wed, 10 Sep 2025 09:06:23 -0500 X-Gm-Features: Ac12FXxxj2OIHjvyf4RiOraScoNhVYEbspnGUrugdG4irxsd2dgHMTz1GRQON3Q Message-ID: To: BeckW@telekom.de Cc: Frantisek Borsik , dpreed@deepplum.com, cake@lists.bufferbloat.net, codel@lists.bufferbloat.net, bloat@lists.bufferbloat.net, rpm@lists.bufferbloat.net, xdp2@lists.linux.dev X-MailFrom: tom@herbertland.com X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation Message-ID-Hash: V4EPJHJRNDFAG3XW44SWL4SAU7D4ZD4V X-Message-ID-Hash: V4EPJHJRNDFAG3XW44SWL4SAU7D4ZD4V X-Mailman-Approved-At: Wed, 10 Sep 2025 16:17:05 +0200 Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 3.3.10 X-Mailman-Version: 3.3.10 Precedence: list Subject: [Codel] Re: [Bloat] Re: [Cake] Re: XDP2 is here - from one and only Tom Herbert (almost to the date, 10 years after XDP was released) List-Id: CoDel AQM discussions Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Q2MgWERQMiBsaXN0DQoNCk9uIFdlZCwgU2VwIDEwLCAyMDI1LCA2OjU54oCvQU0gVG9tIEhlcmJl cnQgPHRvbUBoZXJiZXJ0bGFuZC5jb20+IHdyb3RlOg0KDQo+DQo+DQo+IE9uIFdlZCwgU2VwIDEw LCAyMDI1LCAxOjU04oCvQU0gPEJlY2tXQHRlbGVrb20uZGU+IHdyb3RlOg0KPg0KPj4gSW50ZXJl c3Rpbmcgd29yayEgT25lIHByb2JsZW0gb2YgUDQgaXMgdGhhdCB0aGUgbmV0d29ya2luZyBoYXJk d2FyZQ0KPj4gdmFyaWVzIHNvIG11Y2ggaW4gbnVtYmVyIG9mIHJlc291cmNlcyAocXVldWVzLCBz Y2hlZHVsZXJzLCBwb2xpY2VycywNCj4+IGNvdW50ZXJzLCB0YWJsZSBtZW1vcnkpIHRoYXQgdGhl IGNvZGUgaW5ldml0YWJseSBiZWNvbWVzIHRpZWQgdG8gYSBjZXJ0YWluDQo+PiBzeXN0ZW0uDQo+ PiBJdCB3aWxsIGJlIGRpZmZpY3VsdCB0byBhYnN0cmFjdCB0aGUgcGVjdWxpYXJpdGllcyBvZiBz eXN0ZW1zIC0tIGVnDQo+PiBCcm9hZGNvbSA4ODgwMCB2cyBsaW51eCBrZXJuZWwgLS0gaW4gYSBn b29kIHdheS4NCj4+DQo+DQo+IEhpIFdvbGZnYW5nDQo+DQo+Pg0KPiBZZXMsIHRoZSBub24tcG9y dGFiaWxpdHkgb2YgUDQgY29kZSBiZXR3ZWVuIGRpZmZlcmVudCBhcmNoaXRlY3R1cmVzIGhhcw0K PiBiZWVuIHJhaXNlZCBhcyBhbiBpc3N1ZS4gSSBiZWxpZXZlIHRoaXMgaXMgc3Vic2V0IG9mIHRo ZSBnZW5lcmFsIHByb2JsZW0NCj4gdGhhdCB3ZSBuZWVkIHRvIGRlYWwgd2l0aCBkaWZmZXJpbmcg cmVzb3VyY2UgY29uc3RyYWludHMgYWNyb3NzIHRhcmdldHMNCj4gKGxpa2UgZGlmZmVyZW50IG1l bW9yeSByZXNvdXJjZXMsIGhhcmR3YXJlIGFjY2VsZXJhdG9ycywgdGFibGUgc2l6ZXMsIGV0Yw0K PiApLiBJdCBzaG91bGQgYmUgYSBwcm9ibGVtIG9mIHJlc291cmNlIGNvbnN0cmFpbnRzLCBhbmQg bm90IGRpZmZlcmVuY2VzIGluDQo+IGNvcmUgZnVuY3Rpb25hbGl0eSBzdXBwb3J0ZWQgYnkgdGhl IHRhcmdldHMNCj4NCj4gSSB0aGluayB0aGVyZSdzIHRocmVlIHBvc3NpYmlsaXRpZXM6DQo+DQo+ IDEpIFdlIGNyZWF0ZSBhbiBpbWFnZSBhbmQgYXR0ZW1wdCB0byByZXNvbHZlIHRoZSByZXNvdXJj ZSBjb25zdHJhaW50cyBhdA0KPiBydW50aW1lIChsb2FkIHRpbWUpLiBEZXRlcm1pbmUgdGhlIHJl c291cmNlcyBhbmQgcnVuIHdpdGggdGhvc2UuIEl0J3MNCj4gcG9zc2libGUgdGhhdCBhIEhXIGNv bmZpZ3VyYXRpb24gZG9lc24ndCBoYXZlIHN1ZmZpY2llbnQgcmVzb3VyY2VzIHRvIG1lZXQNCj4g dGhlIHByb2dyYW1tZXIncyByZXF1aXJlbWVudHMgaW4gd2hpY2ggY2FzZSB3ZSBtYXkgaGF2ZSB0 byBpbmZvcm0gdGhlIHVzZXINCj4gdGhlIHByb2dyYW0gY2FuJ3QgcnVuIChlLmcuaWYgdGhlIHBy b2dyYW1tZXIgd2FudHMgbGluZSByYXRlIGVuY3J5cHRpb24sDQo+IGJ1dCB0aGVyZSdzIG5vIEhX IGFjY2VsZXJhdG9ycyB0aGVuIHRoZSBwcm9ncmFtIHJlcXVpcmVtZW50cyBjYW4ndCBiZSBtZXQN Cj4gYW5kIHRoZSBwcm9ncmFtIGNhbid0IHJ1biBvbiB0aGF0IHRhcmdldCkuDQo+IDIpIFJlY29t cGlsZSB0aGUgYmFja2VuZCB0byB0aGUgZGlmZmVyZW50IHRhcmdldHMuIFRoaXMgaXMgbmVlZGVk IHdoZW4gdGhlDQo+IGV4ZWN1dGFibGUgaXMgaW5jb21wYXRpYmxlIGJldHdlZW4gdGFyZ2V0cy4g VGhlIGdvYWwgaXMgdG8gc3RpbGwgYmUNCj4gdHJhbnNwYXJlbnQgdG8gdGhlIHVzZXIsIGJ1dCB3 ZSBzdGlsbCBuZWVkIHRvIG1lZXQgdGhlIHJlcXVpcmVtZW50IG9mIHRoZQ0KPiBhcHBsaWNhdGlv bi4NCj4gMykgQ2hhbmdlIHRoZSBzb3VyY2UgY29kZSBpZiB0aGUgaGFyZHdhcmUgcGVjdWxpYXJp dGllcyBhcmUgbm90DQo+IHRyYW5zcGFyZW50IHRvIHByb2dyYW0gc291cmNlLiBPYnZpb3VzbHks IHRoaXMgaXMgdGhlIGxlYXN0IHByZWZlcnJlZA0KPiBvcHRpb24sIGJ1dCBpZiB0aGVyZSdzIG5v IGFsdGVybmF0aXZlIHRoZW4gdGhlIGdvYWwgaGVyZSB3b3VsZCBiZSB0bw0KPiBpc29sYXRlIHRo ZSB0YXJnZXQgc3BlY2lmaWMgY29kZSBhcyBtdWNoIGFzIHBvc3NpYmxlLiBIb3BlZnVsbHksIHRo ZSB2YXN0DQo+IG1ham9yaXR5IG9mIHByb2dyYW0gY29kZSBpcyB0YXJnZXQgYWdub3N0aWMgYW5k IHRoZXJlJ3MganVzdCBhIGxpdHRsZSBnbHVlDQo+IGNvZGUgZm9yIGVhY2ggdGFyZ2V0Lg0KPg0K PiBUb20NCj4NCj4NCj4NCj4+IFdvbGZnYW5nDQo+Pg0KPj4gLS0tLS1VcnNwcsO8bmdsaWNoZSBO YWNocmljaHQtLS0tLQ0KPj4gVm9uOiBUb20gSGVyYmVydCB2aWEgQmxvYXQgPGJsb2F0QGxpc3Rz LmJ1ZmZlcmJsb2F0Lm5ldD4NCj4+IEdlc2VuZGV0OiBEaWVuc3RhZywgOS4gU2VwdGVtYmVyIDIw MjUgMjM6MzcNCj4+IEFuOiBGcmFudGlzZWsgQm9yc2lrIDxmcmFudGlzZWsuYm9yc2lrQGdtYWls LmNvbT4NCj4+IENjOiBEYXZpZCBQLiBSZWVkIDxkcHJlZWRAZGVlcHBsdW0uY29tPjsgQ2FrZSBM aXN0IDwNCj4+IGNha2VAbGlzdHMuYnVmZmVyYmxvYXQubmV0PjsgY29kZWxAbGlzdHMuYnVmZmVy YmxvYXQubmV0OyBibG9hdCA8DQo+PiBibG9hdEBsaXN0cy5idWZmZXJibG9hdC5uZXQ+OyBKZXJl bXkgQXVzdGluIHZpYSBScG0gPA0KPj4gcnBtQGxpc3RzLmJ1ZmZlcmJsb2F0Lm5ldD4NCj4+IEJl dHJlZmY6IFtCbG9hdF0gUmU6IFtDYWtlXSBSZTogWERQMiBpcyBoZXJlIC0gZnJvbSBvbmUgYW5k IG9ubHkgVG9tDQo+PiBIZXJiZXJ0IChhbG1vc3QgdG8gdGhlIGRhdGUsIDEwIHllYXJzIGFmdGVy IFhEUCB3YXMgcmVsZWFzZWQpDQo+Pg0KPj4gT24gVHVlLCBTZXAgOSwgMjAyNSwgNTowM+KAr1BN IEZyYW50aXNlayBCb3JzaWsgPGZyYW50aXNlay5ib3JzaWtAZ21haWwuY29tDQo+PiA+DQo+PiB3 cm90ZToNCj4+DQo+PiA+IFRoYW5rcyBhIGxvdCwgRGF2aWQuDQo+PiA+DQo+PiA+IEkgaGF2ZSBh c2tlZCBUb20gaWYgaGUgd2FudHMgdG8gam9pbiB1cyBhbmQgaGUgc2hvdWxkIGJlIGhlcmUgdG8g Y2hhdA0KPj4gPiB3aXRoIHVzIG5vdy4NCj4+ID4NCj4+ID4gQWxsIHRoZSBiZXN0LA0KPj4gPg0K Pj4gPiBGcmFuaw0KPj4gPg0KPj4gPiBGcmFudGlzZWsgKEZyYW5rKSBCb3JzaWsNCj4+ID4NCj4+ ID4NCj4+ID4gKkluIGxvdmluZyBtZW1vcnkgb2YgRGF2ZSBUw6RodDogKjE5NjUtMjAyNQ0KPj4g Pg0KPj4gPiBodHRwczovL2RldTAxLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91 cmw9aHR0cHMlM0ElMkYlMkZsaWJyDQo+PiA+IGVxb3MuaW8lMkYyMDI1JTJGMDQlMkYwMSUyRmlu LWxvdmluZy1tZW1vcnktb2YtZGF2ZSUyRiZkYXRhPTA1JTdDMDIlN0MNCj4+ID4gQmVja1clNDB0 ZWxla29tLmRlJTdDMjk5ZDY0YjliNzZiNGQ0Y2Y4OGIwOGRkZjAzOWUxMDUlN0NiZGU0ZGZmYzRi NjA0Yw0KPj4gPiBmNjhiMDRhNWVlYjI1ZjVjNGYlN0MwJTdDMCU3QzYzODkzMDg1MzYwOTI3Njcw MiU3Q1Vua25vd24lN0NUV0ZwYkdac2IzDQo+PiA+IGQ4ZXlKRmJYQjBlVTFoY0draU9uUnlkV1Vz SWxZaU9pSXdMakF1TURBd01DSXNJbEFpT2lKWGFXNHpNaUlzSWtGT0lqb2kNCj4+ID4gVFdGcGJD SXNJbGRVSWpveWZRJTNEJTNEJTdDMCU3QyU3QyU3QyZzZGF0YT1UQUE2TmRFa0IzS1FRdDhVaEtx czNaS3VMag0KPj4gPiBON0E5aDlKOUZBak5SRER1VSUzRCZyZXNlcnZlZD0wDQo+PiA+DQo+PiA+ DQo+PiA+IGh0dHBzOi8vZGV1MDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3Vy bD1odHRwcyUzQSUyRiUyRnd3dy4NCj4+ID4gbGlua2VkaW4uY29tJTJGaW4lMkZmcmFudGlzZWti b3JzaWsmZGF0YT0wNSU3QzAyJTdDQmVja1clNDB0ZWxla29tLmRlJQ0KPj4gPiA3QzI5OWQ2NGI5 Yjc2YjRkNGNmODhiMDhkZGYwMzllMTA1JTdDYmRlNGRmZmM0YjYwNGNmNjhiMDRhNWVlYjI1ZjVj NGYlDQo+PiA+IDdDMCU3QzAlN0M2Mzg5MzA4NTM2MDkyOTcwMzElN0NVbmtub3duJTdDVFdGcGJH WnNiM2Q4ZXlKRmJYQjBlVTFoY0draU8NCj4+ID4gblJ5ZFdVc0lsWWlPaUl3TGpBdU1EQXdNQ0lz SWxBaU9pSlhhVzR6TWlJc0lrRk9Jam9pVFdGcGJDSXNJbGRVSWpveWZRJQ0KPj4gPiAzRCUzRCU3 QzAlN0MlN0MlN0Mmc2RhdGE9dWNMN1UlMkZRODFrczA5blZFR1ViZSUyRkZxMXJoSk5MYWVnaWN2 JTJGTENWDQo+PiA+IGNJbGclM0QmcmVzZXJ2ZWQ9MA0KPj4gPg0KPj4gPiBTaWduYWwsIFRlbGVn cmFtLCBXaGF0c0FwcDogKzQyMTkxOTQxNjcxNA0KPj4gPg0KPj4gPiBpTWVzc2FnZSwgbW9iaWxl OiArNDIwNzc1MjMwODg1DQo+PiA+DQo+PiA+IFNreXBlOiBjYXNpb2E1MzAyY2ENCj4+ID4NCj4+ ID4gZnJhbnRpc2VrLmJvcnNpa0BnbWFpbC5jb20NCj4+ID4NCj4+ID4NCj4+ID4gT24gVHVlLCBT ZXAgOSwgMjAyNSBhdCAxMDoyNeKAr1BNIERhdmlkIFAuIFJlZWQgPGRwcmVlZEBkZWVwcGx1bS5j b20+DQo+PiB3cm90ZToNCj4+ID4NCj4+ID4gPiBIaSBGcmFuayAtDQo+PiA+ID4NCj4+ID4gPg0K Pj4gPiA+DQo+PiA+ID4gSSB0aGluayBpdCBpcyBpbnRlcmVzdGluZyBhcyBhIGNvbmNlcHQuIEEg cHJvamVjdCBJIGFtIGFkdmlzaW5nIGhhcw0KPj4gPiA+IGJlZW4gdXNpbmcgRFBESyB2ZXJ5IGVm ZmVjdGl2ZWx5IHRvIGdldCByaWQgb2YgdGhlIGh1Z2UgcGF0aCBhbmQNCj4+ID4gPiBsb2NraW5n DQo+PiA+IGRlbGF5cw0KPj4gPiA+IGluIHRoZSBjdXJyZW50IExpbnV4IG5ldHdvcmsgc3RhY2su IFhEUDIgY291bGQgYmUgc3VwcG9ydGVkIGluIGENCj4+ID4gPiByaW5nMw0KPj4gPiA+ICh1c2Vy KSBhZGRyZXNzIHNwYWNlLCBhY2hpZXZpbmcgYSBzaW1pbGFyIHJlc3VsdC4NCj4+ID4NCj4+DQo+ PiBISSBEYXZpZCwNCj4+DQo+PiBUaGUgaWRlYSBpcyB5b3UgY291bGQgd3JpdGUgdGhlIGNvZGUg aW4gWERQMiBhbmQgaXQgd291bGQgYmUgY29tcGlsZWQgdG8NCj4+IERQREsgb3IgZUJQRiBhbmQg dGhlIGNvbXBpbGVyIHdvdWxkIGhhbmRsZSB0aGUgb3B0aW1pemF0aW9ucy4NCj4+DQo+Pg0KPj4g PiA+DQo+PiA+ID4NCj4+ID4gPg0KPj4gPiA+IEJ1dCBJIGRvbid0IHRoaW5rIFhEUDIgaXMgZ29p bmcgdGhhdCBkaXJlY3Rpb24gLSBzbyBpdCBtYXkgYmUNCj4+ID4gPiBzdHVja2ludG8gdGhlIG1l c3Mgb2Yga2VybmVsIHNwYWNlIG5ldHdvcmtpbmcuIEFkZGluZyBlQlBGIG9ubHkgaGFzDQo+PiA+ ID4gbWFkZSB0aGlzIG1vcmUNCj4+ID4gb2YNCj4+ID4gPiBhIG1lc3MsIGJ5IHRoZSB3YXkgKGFu ZCBhZGRpbmcgYSBuZXcgImNvbXBpbGVyIiB0aGF0IG5lZWRzIHRvIGJlDQo+PiA+ID4gdmVyaXJp ZWQgYXMgc2FmZSBmb3IgdGhlIGtlcm5lbCkuDQo+Pg0KPj4NCj4+IFRoaW5rIG9mIFhEUDIgYXMg dGhlIGdlbmVyYWxpemF0aW9uIG9mIFhEUCB0byBnbyBiZXlvbmQganVzdCB0aGUga2VybmVsLg0K Pj4gVGhlIGlkZWEgaXMgdGhhdCB0aGUgdXNlciB3cml0ZXMgdGhlaXIgZGF0YXBhdGggY29kZSBv bmNlIGFuZCB0aGV5DQo+PiBjb21waWxlIGl0IHRvIHJ1biBpbiB3aGF0ZXZlciB0YXJnZXRzIHRo ZXkgaGF2ZS0tIERQREssIFA0LCBvdGhlcg0KPj4gcHJvZ3JhbW1hYmxlIGhhcmR3YXJlLCBhbmQg eWVzIFhEUC9lQlBGLiBJdCdzIHJlYWxseSBub3QgbGltaXRlZCB0byBrZXJuZWwNCj4+IG5ldHdv cmtpbmcuDQo+Pg0KPj4gQXMgZm9yIHRoZSBuYW1lIFhEUDIsIHdoZW4gd2UgY3JlYXRlZCBYRFAs IGVYcHJlc3MgRGF0YVBhdGgsIG15IHZpc2lvbg0KPj4gd2FzIHRoYXQgaXQgd291bGQgYmUgaW1w bGVtZW50YXRpb24gYWdub3N0aWMuIGVCUEYgd2FzIHRoZSBmaXJzdA0KPj4gaW5zdGFudGlhdGlv biBmb3IgcHJhY3RpY2FsaXR5LCBidXQgbm93IHRlbiB5ZWFycyBsYXRlciBJIHRoaW5rIHdlIGNh bg0KPj4gcmVhbGl6ZSB0aGUgaW5pdGlhbCB2aXNpb24uDQo+Pg0KPj4gVG9tDQo+Pg0KPj4NCj4+ DQo+PiA+DQo+PiA+ID4gSSB3aWxsIGJlIHdhdGNoaW5nIGhvdyB0aGlzIGV2b2x2ZXMuDQo+PiA+ ID4NCj4+ID4gPg0KPj4gPiA+DQo+PiA+ID4gRGF2aWQNCj4+ID4gPg0KPj4gPiA+DQo+PiA+ID4N Cj4+ID4gPiBPbiBUdWVzZGF5LCBTZXB0ZW1iZXIgOSwgMjAyNSAwNjozMiwgIkZyYW50aXNlayBC b3JzaWsiIDwNCj4+ID4gPiBmcmFudGlzZWsuYm9yc2lrQGdtYWlsLmNvbT4gc2FpZDoNCj4+ID4g Pg0KPj4gPiA+ID4gSGVsbG8gdG8gYWxsLA0KPj4gPiA+ID4NCj4+ID4gPiA+IExvb2tzIGludGVy ZXN0aW5nOg0KPj4gPiA+ID4NCj4+ID4gPg0KPj4gPiBodHRwczovL2RldTAxLnNhZmVsaW5rcy5w cm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cHMlM0ElMkYlMkZtZWRpDQo+PiA+IHVtLmNv bSUyRiU0MHRvbV84NDkxMiUyRnhkcDItdGhpcy1jaGFuZ2VzLWV2ZXJ5dGhpbmctYXQtbGVhc3Qt Zm9yLWFpLW0NCj4+ID4gbC1pbmZyYXN0cnVjdHVyZS04NTBjMWJhODI3NzEmZGF0YT0wNSU3QzAy JTdDQmVja1clNDB0ZWxla29tLmRlJTdDMjk5ZA0KPj4gPiA2NGI5Yjc2YjRkNGNmODhiMDhkZGYw MzllMTA1JTdDYmRlNGRmZmM0YjYwNGNmNjhiMDRhNWVlYjI1ZjVjNGYlN0MwJTdDDQo+PiA+IDAl N0M2Mzg5MzA4NTM2MDkzMDg5NTAlN0NVbmtub3duJTdDVFdGcGJHWnNiM2Q4ZXlKRmJYQjBlVTFo Y0draU9uUnlkV1UNCj4+ID4gc0lsWWlPaUl3TGpBdU1EQXdNQ0lzSWxBaU9pSlhhVzR6TWlJc0lr Rk9Jam9pVFdGcGJDSXNJbGRVSWpveWZRJTNEJTNEJQ0KPj4gPiA3QzAlN0MlN0MlN0Mmc2RhdGE9 UlRMSFRWRlI1NDBDOFBzcjczdWl1UnZreDFzU3lqbWxVSUlDRUhGajBIQSUzRCZyZXNlDQo+PiA+ IHJ2ZWQ9MA0KPj4gPiA+ID4NCj4+ID4gPiA+DQo+PiA+ID4gPiBBbGwgdGhlIGJlc3QsDQo+PiA+ ID4gPg0KPj4gPiA+ID4gRnJhbmsNCj4+ID4gPiA+DQo+PiA+ID4gPiBGcmFudGlzZWsgKEZyYW5r KSBCb3JzaWsNCj4+ID4gPiA+DQo+PiA+ID4gPg0KPj4gPiA+ID4gKkluIGxvdmluZyBtZW1vcnkg b2YgRGF2ZSBUw6RodDogKjE5NjUtMjAyNQ0KPj4gPiA+ID4NCj4+ID4gPiA+IGh0dHBzOi8vZGV1 MDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRg0K Pj4gPiA+ID4gbGlicmVxb3MuaW8lMkYyMDI1JTJGMDQlMkYwMSUyRmluLWxvdmluZy1tZW1vcnkt b2YtZGF2ZSUyRiZkYXRhPTA1DQo+PiA+ID4gPiAlN0MwMiU3Q0JlY2tXJTQwdGVsZWtvbS5kZSU3 QzI5OWQ2NGI5Yjc2YjRkNGNmODhiMDhkZGYwMzllMTA1JTdDYmQNCj4+ID4gPiA+IGU0ZGZmYzRi NjA0Y2Y2OGIwNGE1ZWViMjVmNWM0ZiU3QzAlN0MwJTdDNjM4OTMwODUzNjA5MzIzMDI3JTdDVW5r bg0KPj4gPiA+ID4gb3duJTdDVFdGcGJHWnNiM2Q4ZXlKRmJYQjBlVTFoY0draU9uUnlkV1VzSWxZ aU9pSXdMakF1TURBd01DSXNJbEFpDQo+PiA+ID4gPiBPaUpYYVc0ek1pSXNJa0ZPSWpvaVRXRnBi Q0lzSWxkVUlqb3lmUSUzRCUzRCU3QzAlN0MlN0MlN0Mmc2RhdGE9OTgNCj4+ID4gPiA+IG11c1VD TVRaUjRJRCUyQm82R1l4V09YOTlhaVlCc3BCVWRoJTJCTlYxZnp3YyUzRCZyZXNlcnZlZD0wDQo+ PiA+ID4gPg0KPj4gPiA+ID4NCj4+ID4gPiA+IGh0dHBzOi8vZGV1MDEuc2FmZWxpbmtzLnByb3Rl Y3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRg0KPj4gPiA+ID4gd3d3Lmxpbmtl ZGluLmNvbSUyRmluJTJGZnJhbnRpc2VrYm9yc2lrJmRhdGE9MDUlN0MwMiU3Q0JlY2tXJTQwdGVs DQo+PiA+ID4gPiBla29tLmRlJTdDMjk5ZDY0YjliNzZiNGQ0Y2Y4OGIwOGRkZjAzOWUxMDUlN0Ni ZGU0ZGZmYzRiNjA0Y2Y2OGIwNGENCj4+ID4gPiA+IDVlZWIyNWY1YzRmJTdDMCU3QzAlN0M2Mzg5 MzA4NTM2MDkzMzQyMzklN0NVbmtub3duJTdDVFdGcGJHWnNiM2Q4ZQ0KPj4gPiA+ID4geUpGYlhC MGVVMWhjR2tpT25SeWRXVXNJbFlpT2lJd0xqQXVNREF3TUNJc0lsQWlPaUpYYVc0ek1pSXNJa0ZP SWpvDQo+PiA+ID4gPiBpVFdGcGJDSXNJbGRVSWpveWZRJTNEJTNEJTdDMCU3QyU3QyU3QyZzZGF0 YT0wckQ0N3pGZUxWVjFZRHFNYzVTTzANCj4+ID4gPiA+IHhHV0VPVHJFM0ZPWXYwbU9xR0YlMkZX NCUzRCZyZXNlcnZlZD0wDQo+PiA+ID4gPg0KPj4gPiA+ID4gU2lnbmFsLCBUZWxlZ3JhbSwgV2hh dHNBcHA6ICs0MjE5MTk0MTY3MTQNCj4+ID4gPiA+DQo+PiA+ID4gPiBpTWVzc2FnZSwgbW9iaWxl OiArNDIwNzc1MjMwODg1DQo+PiA+ID4gPg0KPj4gPiA+ID4gU2t5cGU6IGNhc2lvYTUzMDJjYQ0K Pj4gPiA+ID4NCj4+ID4gPiA+IGZyYW50aXNlay5ib3JzaWtAZ21haWwuY29tDQo+PiA+ID4gPiBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPj4gPiA+ID4g Q2FrZSBtYWlsaW5nIGxpc3QgLS0gY2FrZUBsaXN0cy5idWZmZXJibG9hdC5uZXQgVG8gdW5zdWJz Y3JpYmUNCj4+ID4gPiA+IHNlbmQgYW4gZW1haWwgdG8gY2FrZS1sZWF2ZUBsaXN0cy5idWZmZXJi bG9hdC5uZXQNCj4+ID4gPiA+DQo+PiA+ID4NCj4+ID4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18NCj4+ID4gQ2FrZSBtYWlsaW5nIGxpc3QgLS0gY2FrZUBs aXN0cy5idWZmZXJibG9hdC5uZXQgVG8gdW5zdWJzY3JpYmUgc2VuZCBhbg0KPj4gPiBlbWFpbCB0 byBjYWtlLWxlYXZlQGxpc3RzLmJ1ZmZlcmJsb2F0Lm5ldA0KPj4gPg0KPj4gX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4+IEJsb2F0IG1haWxpbmcgbGlz dCAtLSBibG9hdEBsaXN0cy5idWZmZXJibG9hdC5uZXQgVG8gdW5zdWJzY3JpYmUgc2VuZCBhbg0K Pj4gZW1haWwgdG8gYmxvYXQtbGVhdmVAbGlzdHMuYnVmZmVyYmxvYXQubmV0DQo+Pg0KPg0K