From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: passt.top; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: passt.top; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=Oa0XH6Hm; dkim-atps=neutral Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by passt.top (Postfix) with ESMTPS id 85EF45A004E for ; Tue, 28 Jan 2025 17:51:34 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1738083093; 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=rboJfVxLlAbl2p+2/ud8/N7Cynxru4+mLw79GAjRHYA=; b=Oa0XH6HmWPzU2cG8ieXJbrXvKfbxAzHYsT/rX1iEQ9oBwq2Ki3zHmODOyPEL2z02a6XfSF 0S+5dIAhIFLvKcZxuRRjPI/HKjh1VF7+DJ7uFUrfUTXe34IFWX70oIWf9LXsAykURKw0Ja dqOpfHfMsjQxx7OGFo6u8q1L3ZLeQRQ= Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-451-eVaZZmEzOzGNaIxjPlu8aQ-1; Tue, 28 Jan 2025 11:51:32 -0500 X-MC-Unique: eVaZZmEzOzGNaIxjPlu8aQ-1 X-Mimecast-MFC-AGG-ID: eVaZZmEzOzGNaIxjPlu8aQ Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-46799aa9755so160604861cf.0 for ; Tue, 28 Jan 2025 08:51:32 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738083092; x=1738687892; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=rboJfVxLlAbl2p+2/ud8/N7Cynxru4+mLw79GAjRHYA=; b=bhamXi8IDpy+04PAurH6u/UBm7QyKEIsvOTzVDLMGwLbf5PfwQLWJ1qhmKXBNOuTgC tKbFxeSXKDSaFxBRMVsK3SclDMGh+PLhbUwYDaHM/8CIS6YWJuu6nzxRJAC4NGBzZRkl yeRbDVBCgVdOk5NKX6wM4ts/ioR9dJYgtx4dfDA2k7wVyF9K+jeK6YqCPzpC3rurQSvX 3aw0WEGIwFEfisGofKLtzEqHxntEzcGhQzDrptQ4oTKDD1s4dN7ePg5mmUEkZsatQMYS OvQrL05yHRMvPvotGap2Dy23hBlAPB6zHbqKV62qGsl3ubnFtfl8jN17P3K+sCGQYFFb HE6w== X-Forwarded-Encrypted: i=1; AJvYcCWYP8aUIU9DAB3+sB3ttnfb1A8OleuuOCn+OWNOHKr8+ECIylRUmcv2JTQGDJLy+pPYwGCJzAorv9Q=@passt.top X-Gm-Message-State: AOJu0YyXEHYTrgz4I5SrEJGzEIiNaE0JlZh07z3igeRlVO6knIdU5uHT S2DMBbb9rsG3t5J/823EfLmluVWD28u8/CQuZSVQLk3TIZeYJoChqUIzril7F0aiJ0aE6jaGNwv +o/Y73qfsx1U716a/KkE7AhtkuT3U2Z3UKnux0kcOxZ246Xqt6g== X-Gm-Gg: ASbGncumQeIGq3TdR10Elzg6FqdmcEMv7BYTdiFHKotfYmrnSUwAHfY3bFd85xdQi+/ yjDQcXClGB2PybuvNCdz23vumLHcQ7A9q94QWUMkk63r+bhwoC7bInmk3dDmNlIka7ABt43w5Jk EoAdEyCTv6c/rA6Ad5aJvIbWfCz1ExAtTFJs3iL9xdKNZ0jdzf79ZszwevG9qPinbCs0BKVPFLP Or6VAcqjjx8NKJDhwyrgCrgA+vEbf9cSTuMA+gyRPg8flGuozMXDj20uNoPWj9Q4zP6zspp8u1U EJ8= X-Received: by 2002:a05:622a:199b:b0:46c:728c:8862 with SMTP id d75a77b69052e-46e12ab5b44mr741513521cf.31.1738083091562; Tue, 28 Jan 2025 08:51:31 -0800 (PST) X-Google-Smtp-Source: AGHT+IFWMOKu3lU0YUt5wBrqc9F1Vb18MZCLlzXjmORmdWniXRd2yyciy6lpkjhypCkXKu8l02olUQ== X-Received: by 2002:a05:622a:199b:b0:46c:728c:8862 with SMTP id d75a77b69052e-46e12ab5b44mr741512991cf.31.1738083091058; Tue, 28 Jan 2025 08:51:31 -0800 (PST) Received: from [10.0.0.215] ([24.225.235.209]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-46fc968abc1sm6680311cf.58.2025.01.28.08.51.29 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Jan 2025 08:51:30 -0800 (PST) Message-ID: <415dde0a-2272-45d2-8fa8-473fe7637a78@redhat.com> Date: Tue, 28 Jan 2025 11:51:29 -0500 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [net,v3] tcp: correct handling of extreme memory squeeze To: Eric Dumazet References: <20250127231304.1465565-1-jmaloy@redhat.com> From: Jon Maloy In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: U3EG2d_EV5eGR1jrVu-Cp9A20S9TjEE-GGThB8diR2c_1738083092 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: 34EEPSJY37M65PLZTDLBHUGLAHT2ZWEK X-Message-ID-Hash: 34EEPSJY37M65PLZTDLBHUGLAHT2ZWEK X-MailFrom: jmaloy@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: netdev@vger.kernel.org, davem@davemloft.net, kuba@kernel.org, passt-dev@passt.top, sbrivio@redhat.com, lvivier@redhat.com, dgibson@redhat.com, memnglong8.dong@gmail.com, kerneljasonxing@gmail.com, ncardwell@google.com, eric.dumazet@gmail.com X-Mailman-Version: 3.3.8 Precedence: list List-Id: Development discussion and patches for passt Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: DQoNCk9uIDIwMjUtMDEtMjggMTA6MDQsIEVyaWMgRHVtYXpldCB3cm90ZToNCj4gT24gVHVlLCBK YW4gMjgsIDIwMjUgYXQgMTI6MTPigK9BTSA8am1hbG95QHJlZGhhdC5jb20+IHdyb3RlOg0KPj4N Cj4+IEZyb206IEpvbiBNYWxveSA8am1hbG95QHJlZGhhdC5jb20+DQo+Pg0KPj4gVGVzdGluZyB3 aXRoIGlwZXJmMyB1c2luZyB0aGUgInBhc3RhIiBwcm90b2NvbCBzcGxpY2VyIGhhcyByZXZlYWxl ZA0KPj4gYSBidWcgaW4gdGhlIHdheSB0Y3AgaGFuZGxlcyB3aW5kb3cgYWR2ZXJ0aXNpbmcgaW4g ZXh0cmVtZSBtZW1vcnkNCj4+IHNxdWVlemUgc2l0dWF0aW9ucy4NCj4+DQo+PiBVbmRlciBtZW1v cnkgcHJlc3N1cmUsIGEgc29ja2V0IGVuZHBvaW50IG1heSB0ZW1wb3JhcmlseSBhZHZlcnRpc2UN Cj4+IGEgemVyby1zaXplZCB3aW5kb3csIGJ1dCB0aGlzIGlzIG5vdCBzdG9yZWQgYXMgcGFydCBv ZiB0aGUgc29ja2V0IGRhdGEuDQo+PiBUaGUgcmVhc29uaW5nIGJlaGluZCB0aGlzIGlzIHRoYXQg aXQgaXMgY29uc2lkZXJlZCBhIHRlbXBvcmFyeSBzZXR0aW5nDQo+PiB3aGljaCBzaG91bGRuJ3Qg aW5mbHVlbmNlIGFueSBmdXJ0aGVyIGNhbGN1bGF0aW9ucy4NCj4+DQo+PiBIb3dldmVyLCBpZiB3 ZSBoYXBwZW4gdG8gc3RhbGwgYXQgYW4gdW5mb3J0dW5hdGUgdmFsdWUgb2YgdGhlIGN1cnJlbnQN Cj4+IHdpbmRvdyBzaXplLCB0aGUgYWxnb3JpdGhtIHNlbGVjdGluZyBhIG5ldyB2YWx1ZSB3aWxs IGNvbnNpc3RlbnRseSBmYWlsDQo+PiB0byBhZHZlcnRpc2UgYSBub24temVybyB3aW5kb3cgb25j ZSB3ZSBoYXZlIGZyZWVkIHVwIGVub3VnaCBtZW1vcnkuDQo+PiBUaGlzIG1lYW5zIHRoYXQgdGhp cyBzaWRlJ3Mgbm90aW9uIG9mIHRoZSBjdXJyZW50IHdpbmRvdyBzaXplIGlzDQo+PiBkaWZmZXJl bnQgZnJvbSB0aGUgb25lIGxhc3QgYWR2ZXJ0aXNlZCB0byB0aGUgcGVlciwgY2F1c2luZyB0aGUg bGF0dGVyDQo+PiB0byBub3Qgc2VuZCBhbnkgZGF0YSB0byByZXNvbHZlIHRoZSBzaXR1dGlvbi4N Cj4+DQo+PiBUaGUgcHJvYmxlbSBvY2N1cnMgb24gdGhlIGlwZXJmMyBzZXJ2ZXIgc2lkZSwgYW5k IHRoZSBzb2NrZXQgaW4gcXVlc3Rpb24NCj4+IGlzIGEgY29tcGxldGVseSByZWd1bGFyIHNvY2tl dCB3aXRoIHRoZSBkZWZhdWx0IHNldHRpbmdzIGZvciB0aGUNCj4+IGZlZG9yYTQwIGtlcm5lbC4g V2UgZG8gbm90IHVzZSBTT19QRUVLIG9yIFNPX1JDVkJVRiBvbiB0aGUgc29ja2V0Lg0KPj4NCj4+ IFRoZSBmb2xsb3dpbmcgZXhjZXJwdCBvZiBhIGxvZ2dpbmcgc2Vzc2lvbiwgd2l0aCBvd24gY29t bWVudHMgYWRkZWQsDQo+PiBzaG93cyBtb3JlIGluIGRldGFpbCB3aGF0IGlzIGhhcHBlbmluZzoN Cj4+DQo+PiAvLyAgICAgICAgICAgICAgdGNwX3Y0X3JjdigtPikNCj4+IC8vICAgICAgICAgICAg ICAgIHRjcF9yY3ZfZXN0YWJsaXNoZWQoLT4pDQo+PiBbNTIwMTwtPjM5MjIyXTogICAgID09PT0g QWN0aXZhdGluZyBsb2cgQCBuZXQvaXB2NC90Y3BfaW5wdXQuYy90Y3BfZGF0YV9xdWV1ZSgpLzUy NTcgPT09PQ0KPj4gWzUyMDE8LT4zOTIyMl06ICAgICB0Y3BfZGF0YV9xdWV1ZSgtPikNCj4+IFs1 MjAxPC0+MzkyMjJdOiAgICAgICAgRFJPUFBJTkcgc2tiIFsyNjU2MDAxNjAuLjI2NTY2NTY0MF0s IHJlYXNvbjogU0tCX0RST1BfUkVBU09OX1BST1RPX01FTQ0KPj4gICAgICAgICAgICAgICAgICAg ICAgICAgW3Jjdl9ueHQgMjY1NjAwMTYwLCByY3Zfd25kIDI2MjE0NCwgc250X2FjayAyNjU0Njky MDAsIHdpbl9ub3cgMTMxMTg0XQ0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgW2NvcGllZF9z ZXEgMjU5OTA5MzkyLT4yNjAwMzQzNjAgKDEyNDk2OCksIHVucmVhZCA1NTY1ODAwLCBxbGVuIDg1 LCBvZm9xIDBdDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICBbT0ZPIHF1ZXVlOiBnYXA6IDY1 NDgwLCBsZW46IDBdDQo+PiBbNTIwMTwtPjM5MjIyXTogICAgIHRjcF9kYXRhX3F1ZXVlKDwtKQ0K Pj4gWzUyMDE8LT4zOTIyMl06ICAgICBfX3RjcF90cmFuc21pdF9za2IoLT4pDQo+PiAgICAgICAg ICAgICAgICAgICAgICAgICAgW3RwLT5yY3Zfd3VwOiAyNjU0NjkyMDAsIHRwLT5yY3Zfd25kOiAy NjIxNDQsIHRwLT5yY3Zfbnh0IDI2NTYwMDE2MF0NCj4+IFs1MjAxPC0+MzkyMjJdOiAgICAgICB0 Y3Bfc2VsZWN0X3dpbmRvdygtPikNCj4+IFs1MjAxPC0+MzkyMjJdOiAgICAgICAgIChpbmV0X2Nz ayhzayktPmljc2tfYWNrLnBlbmRpbmcgJiBJQ1NLX0FDS19OT01FTSkgPyAtLT4gVFJVRQ0KPj4g ICAgICAgICAgICAgICAgICAgICAgICAgIFt0cC0+cmN2X3d1cDogMjY1NDY5MjAwLCB0cC0+cmN2 X3duZDogMjYyMTQ0LCB0cC0+cmN2X254dCAyNjU2MDAxNjBdDQo+PiAgICAgICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuaW5nIDANCj4+IFs1MjAxPC0+MzkyMjJdOiAgICAgICB0Y3Bfc2VsZWN0 X3dpbmRvdyg8LSkNCj4+IFs1MjAxPC0+MzkyMjJdOiAgICAgICBBRFZFUlRJU0lORyBXSU4gMCwg QUNLX1NFUTogMjY1NjAwMTYwDQo+PiBbNTIwMTwtPjM5MjIyXTogICAgIFtfX3RjcF90cmFuc21p dF9za2IoPC0pDQo+PiBbNTIwMTwtPjM5MjIyXTogICB0Y3BfcmN2X2VzdGFibGlzaGVkKDwtKQ0K Pj4gWzUyMDE8LT4zOTIyMl06IHRjcF92NF9yY3YoPC0pDQo+Pg0KPj4gLy8gUmVjZWl2ZSBxdWV1 ZSBpcyBhdCA4NSBidWZmZXJzIGFuZCB3ZSBhcmUgb3V0IG9mIG1lbW9yeS4NCj4+IC8vIFdlIGRy b3AgdGhlIGluY29taW5nIGJ1ZmZlciwgYWx0aG91Z2ggaXQgaXMgaW4gc2VxdWVuY2UsIGFuZCBk ZWNpZGUNCj4+IC8vIHRvIHNlbmQgYW4gYWR2ZXJ0aXNlbWVudCB3aXRoIGEgd2luZG93IG9mIHpl cm8uDQo+PiAvLyBXZSBkb24ndCB1cGRhdGUgdHAtPnJjdl93bmQgYW5kIHRwLT5yY3Zfd3VwIGFj Y29yZGluZ2x5LCB3aGljaCBtZWFucw0KPj4gLy8gd2UgdW5jb25kaXRpb25hbGx5IHNocmluayB0 aGUgd2luZG93Lg0KPj4NCj4+IFs1MjAxPC0+MzkyMjJdOiB0Y3BfcmVjdm1zZ19sb2NrZWQoLT4p DQo+PiBbNTIwMTwtPjM5MjIyXTogICBfX3RjcF9jbGVhbnVwX3JidWYoLT4pIHRwLT5yY3Zfd3Vw OiAyNjU0NjkyMDAsIHRwLT5yY3Zfd25kOiAyNjIxNDQsIHRwLT5yY3Zfbnh0IDI2NTYwMDE2MA0K Pj4gWzUyMDE8LT4zOTIyMl06ICAgICBbbmV3X3dpbiA9IDAsIHdpbl9ub3cgPSAxMzExODQsIDIg KiB3aW5fbm93ID0gMjYyMzY4XQ0KPj4gWzUyMDE8LT4zOTIyMl06ICAgICBbbmV3X3dpbiA+PSAo MiAqIHdpbl9ub3cpID8gLS0+IHRpbWVfdG9fYWNrID0gMF0NCj4+IFs1MjAxPC0+MzkyMjJdOiAg ICAgTk9UIGNhbGxpbmcgdGNwX3NlbmRfYWNrKCkNCj4+ICAgICAgICAgICAgICAgICAgICAgIFt0 cC0+cmN2X3d1cDogMjY1NDY5MjAwLCB0cC0+cmN2X3duZDogMjYyMTQ0LCB0cC0+cmN2X254dCAy NjU2MDAxNjBdDQo+PiBbNTIwMTwtPjM5MjIyXTogICBfX3RjcF9jbGVhbnVwX3JidWYoPC0pDQo+ PiAgICAgICAgICAgICAgICAgICAgW3Jjdl9ueHQgMjY1NjAwMTYwLCByY3Zfd25kIDI2MjE0NCwg c250X2FjayAyNjU0NjkyMDAsIHdpbl9ub3cgMTMxMTg0XQ0KPj4gICAgICAgICAgICAgICAgICAg IFtjb3BpZWRfc2VxIDI2MDA0MDQ2NC0+MjYwMDQwNDY0ICgwKSwgdW5yZWFkIDU1NTk2OTYsIHFs ZW4gODUsIG9mb3EgMF0NCj4+ICAgICAgICAgICAgICAgICAgICByZXR1cm5pbmcgNjEwNCBieXRl cw0KPj4gWzUyMDE8LT4zOTIyMl06IHRjcF9yZWN2bXNnX2xvY2tlZCg8LSkNCj4+DQo+PiAvLyBB ZnRlciBlYWNoIHJlYWQsIHRoZSBhbGdvcml0aG0gZm9yIGNhbGN1bGF0aW5nIHRoZSBuZXcgcmVj ZWl2ZQ0KPj4gLy8gd2luZG93IGluIF9fdGNwX2NsZWFudXBfcmJ1ZigpIGZpbmRzIGl0IGlzIHRv byBzbWFsbCB0byBhZHZlcnRpc2UNCj4+IC8vIG9yIHRvIHVwZGF0ZSB0cC0+cmN2X3duZC4NCj4+ IC8vIE1lYW53aGlsZSwgdGhlIHBlZXIgdGhpbmtzIHRoZSB3aW5kb3cgaXMgemVybywgYW5kIHdp bGwgbm90IHNlbmQNCj4+IC8vIGFueSBtb3JlIGRhdGEgdG8gdHJpZ2dlciBhbiB1cGRhdGUgZnJv bSB0aGUgaW50ZXJydXB0IG1vZGUgc2lkZS4NCj4+DQo+PiBbNTIwMTwtPjM5MjIyXTogdGNwX3Jl Y3Ztc2dfbG9ja2VkKC0+KQ0KPj4gWzUyMDE8LT4zOTIyMl06ICAgX190Y3BfY2xlYW51cF9yYnVm KC0+KSB0cC0+cmN2X3d1cDogMjY1NDY5MjAwLCB0cC0+cmN2X3duZDogMjYyMTQ0LCB0cC0+cmN2 X254dCAyNjU2MDAxNjANCj4+IFs1MjAxPC0+MzkyMjJdOiAgICAgW25ld193aW4gPSAyNjIxNDQs IHdpbl9ub3cgPSAxMzExODQsIDIgKiB3aW5fbm93ID0gMjYyMzY4XQ0KPj4gWzUyMDE8LT4zOTIy Ml06ICAgICBbbmV3X3dpbiA+PSAoMiAqIHdpbl9ub3cpID8gLS0+IHRpbWVfdG9fYWNrID0gMF0N Cj4+IFs1MjAxPC0+MzkyMjJdOiAgICAgTk9UIGNhbGxpbmcgdGNwX3NlbmRfYWNrKCkNCj4+ICAg ICAgICAgICAgICAgICAgICAgIFt0cC0+cmN2X3d1cDogMjY1NDY5MjAwLCB0cC0+cmN2X3duZDog MjYyMTQ0LCB0cC0+cmN2X254dCAyNjU2MDAxNjBdDQo+PiBbNTIwMTwtPjM5MjIyXTogICBfX3Rj cF9jbGVhbnVwX3JidWYoPC0pDQo+PiAgICAgICAgICAgICAgICAgICAgW3Jjdl9ueHQgMjY1NjAw MTYwLCByY3Zfd25kIDI2MjE0NCwgc250X2FjayAyNjU0NjkyMDAsIHdpbl9ub3cgMTMxMTg0XQ0K Pj4gICAgICAgICAgICAgICAgICAgIFtjb3BpZWRfc2VxIDI2MDA5OTg0MC0+MjYwMTcxNTM2ICg3 MTY5NiksIHVucmVhZCA1NDI4NjI0LCBxbGVuIDgzLCBvZm9xIDBdDQo+PiAgICAgICAgICAgICAg ICAgICAgcmV0dXJuaW5nIDEzMTA3MiBieXRlcw0KPj4gWzUyMDE8LT4zOTIyMl06IHRjcF9yZWN2 bXNnX2xvY2tlZCg8LSkNCj4+DQo+PiAvLyBUaGUgYWJvdmUgcGF0dGVybiByZXBlYXRzIGFnYWlu IGFuZCBhZ2Fpbiwgc2luY2Ugbm90aGluZyBjaGFuZ2VzDQo+PiAvLyBiZXR3ZWVuIHRoZSByZWFk cy4NCj4+DQo+PiBbLi4uXQ0KPj4NCj4+IFs1MjAxPC0+MzkyMjJdOiB0Y3BfcmVjdm1zZ19sb2Nr ZWQoLT4pDQo+PiBbNTIwMTwtPjM5MjIyXTogICBfX3RjcF9jbGVhbnVwX3JidWYoLT4pIHRwLT5y Y3Zfd3VwOiAyNjU0NjkyMDAsIHRwLT5yY3Zfd25kOiAyNjIxNDQsIHRwLT5yY3Zfbnh0IDI2NTYw MDE2MA0KPj4gWzUyMDE8LT4zOTIyMl06ICAgICBbbmV3X3dpbiA9IDI2MjE0NCwgd2luX25vdyA9 IDEzMTE4NCwgMiAqIHdpbl9ub3cgPSAyNjIzNjhdDQo+PiBbNTIwMTwtPjM5MjIyXTogICAgIFtu ZXdfd2luID49ICgyICogd2luX25vdykgPyAtLT4gdGltZV90b19hY2sgPSAwXQ0KPj4gWzUyMDE8 LT4zOTIyMl06ICAgICBOT1QgY2FsbGluZyB0Y3Bfc2VuZF9hY2soKQ0KPj4gICAgICAgICAgICAg ICAgICAgICAgW3RwLT5yY3Zfd3VwOiAyNjU0NjkyMDAsIHRwLT5yY3Zfd25kOiAyNjIxNDQsIHRw LT5yY3Zfbnh0IDI2NTYwMDE2MF0NCj4+IFs1MjAxPC0+MzkyMjJdOiAgIF9fdGNwX2NsZWFudXBf cmJ1Zig8LSkNCj4+ICAgICAgICAgICAgICAgICAgICBbcmN2X254dCAyNjU2MDAxNjAsIHJjdl93 bmQgMjYyMTQ0LCBzbnRfYWNrIDI2NTQ2OTIwMCwgd2luX25vdyAxMzExODRdDQo+PiAgICAgICAg ICAgICAgICAgICAgW2NvcGllZF9zZXEgMjY1NjAwMTYwLT4yNjU2MDAxNjAgKDApLCB1bnJlYWQg MCwgcWxlbiAwLCBvZm9xIDBdDQo+PiAgICAgICAgICAgICAgICAgICAgcmV0dXJuaW5nIDU0Njcy IGJ5dGVzDQo+PiBbNTIwMTwtPjM5MjIyXTogdGNwX3JlY3Ztc2dfbG9ja2VkKDwtKQ0KPj4NCj4+ IC8vIFRoZSByZWNlaXZlIHF1ZXVlIGlzIGVtcHR5LCBidXQgbm8gbmV3IGFkdmVydGlzZW1lbnQg aGFzIGJlZW4gc2VudC4NCj4+IC8vIFRoZSBwZWVyIHN0aWxsIHRoaW5rcyB0aGUgcmVjZWl2ZSB3 aW5kb3cgaXMgemVybywgYW5kIHNlbmRzIG5vdGhpbmcuDQo+PiAvLyBXZSBoYXZlIGVuZGVkIHVw IGluIGEgZGVhZGxvY2sgc2l0dWF0aW9uLg0KPiANCj4gVGhpcyBzby1jYWxsZWQgJ2RlYWRsb2Nr JyBvbmx5IG9jY3VycyBpZiBhIHJlbW90ZSBUQ1Agc3RhY2sgaXMgdW5hYmxlDQo+IHRvIHNlbmQg d2luMCBwcm9iZXMuDQo+IA0KPiBJbiB0aGlzIGNhc2UsIHNlbmRpbmcgc29tZSBBQ0sgd2lsbCBu b3QgaGVscCByZWxpYWJseSBpZiB0aGVzZSBBQ0sgZ2V0IGxvc3QuDQo+IA0KPiBJIGZpbmQgdGhl IGRlc2NyaXB0aW9uIHRyaWVzIHZlcnkgaGFyZCB0byBoaWRlIGEgYnVnIGluIGFub3RoZXIgc3Rh Y2ssDQo+IGZvciBzb21lIHJlYXNvbi4NCg0KSSBjbGVhcmx5IHN0YXRlZCBpbiBhIHByZXZpb3Vz IGNvbW1lbnQgdGhhdCB0aGlzIHdhcyB0aGUgY2FzZSwgYW5kIHRoYXQNCml0IGhhcyBiZWVuIGZp eGVkIG5vdy4gTXkgcmVhc29uIGZvciBwb3N0aW5nIHRoaXMgaXMgYmVjYXVzZSBJIHN0aWxsDQp0 aGluayB0aGlzIGlzIGEgYnVnLCBqdXN0IGFzIEkgdGhpbmsgdGhlIHdheSB3ZSB1c2UgcmN2X3Nz dGhyZXNoIGluIA0KX3RjcF9zZWxlY3Qpd2luZG93KCkgaXMgYSBidWcgdGhhdCBldmVudHVhbGx5 IHNob3VsZCBiZSBmaXhlZC4NCg0KPiANCj4gV2hlbiB1bmRlciBtZW1vcnkgc3RyZXNzLCBub3Qg c2VuZGluZyBhbiBvcGVuaW5nIEFDSyBhcyBmYXN0IGFzIHBvc3NpYmxlLA0KPiBnaXZpbmcgdGlt ZSBmb3IgdGhlIGhvc3QgdG8gcmVjb3ZlciBmcm9tIHRoaXMgbWVtb3J5IHN0cmVzcyB3YXMgYWxz byBhDQo+IHNlbnNpYmxlIHRoaW5nIHRvIGRvLg0KPiANCj4gUmV2aWV3ZWQtYnk6IEVyaWMgRHVt YXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4NCj4gDQo+IFRoYW5rcyBmb3IgdGhlIGZpeC4NCj4g DQoNCg==