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 passt.top (Postfix) with ESMTP id BCCCD5A026F for ; Fri, 15 Mar 2024 16:21:41 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1710516100; 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=zuP8taD8hy23WJn+l0V8h5ue9TyiEl4U9JW6Y49pE2w=; b=ASCNXiacRMcVtj8ayCj3b9oYM4kTuAE48GiY8D0TxBsQDtUxSTL6WJVlUJXYRTXC86RmHp 3niplO2wCRRBfVEFbEW1oqMb5JuWjuc7lmNAPmqdEs6xk12FGPEImtfF8pD9fj4r1hws+Q WezSerCZVYHMXO6DX5XopvTTifKpg3s= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-649-95p9m5YGM2egLgUgqEVOFA-1; Fri, 15 Mar 2024 11:21:39 -0400 X-MC-Unique: 95p9m5YGM2egLgUgqEVOFA-1 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-41330261f8cso10317045e9.0 for ; Fri, 15 Mar 2024 08:21:39 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710516098; x=1711120898; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=By4HS9nfybB8OGZgwQKt4g27kROEToI1sF0ZEjM4vnw=; b=sGgRsCxAcK9hXczSEoPDM0IdgKWNv+TD9eZdL9XQVQjb7GsbYmgxdlpol5x+02214m mw5f8aaKBmOrv3G34exyNkSEcGTZeg8eMvemXJ0W3uZBF5GNham2cvxmrMdQdFv9yxCA 9Ju1DQVND2bJWIAWSI2M+Wkv1GAaR6qqlRSnEUurKohag/Ysn5mMUSkeFzOH2nINZvA4 WXr+uyszh4c4EFaeH6UOda88BeE01SOsoCDDgkk+3uL4P1xFymKrqL/vm0jH5JLFALjZ TjbC5N/bjmd37oDCOaojeO9mG3uDKjrrIu1LyBRgE5TXFpOvRC2RxaQ3iVsf0zxoGWGo fICg== X-Gm-Message-State: AOJu0YxsHjAWSZYv+dH9yljh5S/jMLh2dut8wZiN5127vhDjL/kutJPz J+76L0rU2Y/gAjlyoWN8hHUUxyA5LFU6w334DO7x9un38P6Qc8JjLmEEeB6OFxVeoAvoU6Ny/WX mXKBQQfr3CBp6K2ajlxbgI45EVpfgd1YK0xEfmrQggHAPqk3f0w== X-Received: by 2002:a05:600c:4f0f:b0:413:ee48:9686 with SMTP id l15-20020a05600c4f0f00b00413ee489686mr4380938wmq.25.1710516098149; Fri, 15 Mar 2024 08:21:38 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHXrKjHh4NXHzUCviAEJyLTywOvjY/p4aGA6ogt2dk7NcoNEDAUugGc2bsIewAkMg1sDjpVRw== X-Received: by 2002:a05:600c:4f0f:b0:413:ee48:9686 with SMTP id l15-20020a05600c4f0f00b00413ee489686mr4380915wmq.25.1710516097707; Fri, 15 Mar 2024 08:21:37 -0700 (PDT) Received: from [192.168.188.25] ([80.243.52.135]) by smtp.gmail.com with ESMTPSA id m36-20020a05600c3b2400b00412b6fbb9b5sm9358209wms.8.2024.03.15.08.21.37 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 15 Mar 2024 08:21:37 -0700 (PDT) Message-ID: <00c225a9-5d6a-4c47-b16b-51c0ae3d04bc@redhat.com> Date: Fri, 15 Mar 2024 16:21:36 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] netlink: Don't try to get further datagrams in nl_route_dup() on NLMSG_DONE To: Stefano Brivio References: <20240315112432.382212-1-sbrivio@redhat.com> <2772fc43-252a-4dea-96fb-454d615f9d40@redhat.com> <20240315155250.237cb94f@elisabeth> <20240315161705.638c347d@elisabeth> From: Paul Holzinger In-Reply-To: <20240315161705.638c347d@elisabeth> 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: 24UNTCPKIZXW4325LT67Y3H5ED5DOUHK X-Message-ID-Hash: 24UNTCPKIZXW4325LT67Y3H5ED5DOUHK X-MailFrom: pholzing@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: passt-dev@passt.top, Martin Pitt , David Gibson 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: DQpPbiAxNS8wMy8yMDI0IDE2OjE3LCBTdGVmYW5vIEJyaXZpbyB3cm90ZToNCj4gT24gRnJpLCAx NSBNYXIgMjAyNCAxNTo1Mjo1MCArMDEwMA0KPiBTdGVmYW5vIEJyaXZpbyA8c2JyaXZpb0ByZWRo YXQuY29tPiB3cm90ZToNCj4NCj4+IE9uIEZyaSwgMTUgTWFyIDIwMjQgMTQ6MTE6NDAgKzAxMDAN Cj4+IFBhdWwgSG9semluZ2VyIDxwaG9semluZ0ByZWRoYXQuY29tPiB3cm90ZToNCj4+DQo+Pj4g T24gMTUvMDMvMjAyNCAxMjoyNCwgU3RlZmFubyBCcml2aW8gd3JvdGU6DQo+Pj4+IE1hcnRpbiBy ZXBvcnRzIHRoYXQsIHdpdGggRmVkb3JhIExpbnV4IGtlcm5lbCB2ZXJzaW9uDQo+Pj4+IGtlcm5l bC1jb3JlLTYuOS4wLTAucmMwLjIwMjQwMzEzZ2l0YjA1NDY3NzZhZDNmLjQuZmM0MS54ODZfNjQs DQo+Pj4+IGluY2x1ZGluZyBjb21taXQgODdkMzgxOTczZTQ5ICgiZ2VuZXRsaW5rOiBmaXQgTkxN U0dfRE9ORSBpbnRvIHNhbWUNCj4+Pj4gcmVhZCgpIGFzIGZhbWlsaWVzIiksIHBhc3RhIGRvZXNu J3QgZXhpdCBvbmNlIHRoZSBuZXR3b3JrIG5hbWVzcGFjZQ0KPj4+PiBpcyBnb25lLg0KPj4+Pg0K Pj4+PiBBY3R1YWxseSwgcGFzdGEgaXMgY29tcGxldGVseSBub24tZnVuY3Rpb25hbCwgYXQgbGVh c3Qgd2l0aCBkZWZhdWx0DQo+Pj4+IG9wdGlvbnMsIGJlY2F1c2Ugbmxfcm91dGVfZHVwKCksIHdo aWNoIGR1cGxpY2F0ZXMgcm91dGVzIGZyb20gdGhlDQo+Pj4+IHBhcmVudCBuYW1lc3BhY2UgaW50 byB0aGUgdGFyZ2V0IG5hbWVzcGFjZSBhdCBzdGFydC11cCwgaXMgc3R1Y2sgb24NCj4+Pj4gYSBz ZWNvbmQgcmVjZWl2ZSBvcGVyYXRpb24gZm9yIFJUTV9HRVRST1VURS4NCj4+Pj4NCj4+Pj4gSG93 ZXZlciwgd2l0aCB0aGF0IGNvbW1pdCwgdGhlIGtlcm5lbCBpcyBub3cgYWJsZSB0byBmaXQgdGhl IHdob2xlDQo+Pj4+IHJlc3BvbnNlLCBpbmNsdWRpbmcgdGhlIE5MTVNHX0RPTkUgbWVzc2FnZSwg aW50byBhIHNpbmdsZSBkYXRhZ3JhbSwNCj4+Pj4gc28gbm8gZnVydGhlciBtZXNzYWdlcyB3aWxs IGJlIHJlY2VpdmVkLg0KPj4+Pg0KPj4+PiBJdCB0dXJucyBvdXQgdGhhdCBjb21taXQgNGQ2ZTlk MDgxNmUyICgibmV0bGluazogQWx3YXlzIHByb2Nlc3MgYWxsDQo+Pj4+IHJlc3BvbnNlcyB0byBh IG5ldGxpbmsgcmVxdWVzdCIpIGFjY2lkZW50YWxseSByZWxpZWQgb24gdGhlIGZhY3QgdGhhdA0K Pj4+PiB3ZSB3b3VsZCBhbHdheXMgZ2V0IGF0IGxlYXN0IHR3byBkYXRhZ3JhbXMgYXMgYSByZXNw b25zZSB0bw0KPj4+PiBSVE1fR0VUUk9VVEUuDQo+Pj4+DQo+Pj4+IFRoYXQgaXMsIHRoZSB0ZXN0 IHRvIGNoZWNrIGlmIHdlIGV4cGVjdCBhbm90aGVyIGRhdGFncmFtLCBpcyBiYXNlZA0KPj4+PiBv biB0aGUgJ3N0YXR1cycgdmFyaWFibGUsIHdoaWNoIGlzIDAgaWYgd2UganVzdCBwYXJzZWQgTkxN U0dfRE9ORSwNCj4+Pj4gYnV0IHdlJ2xsIGFsc28gZXhwZWN0IGFub3RoZXIgZGF0YWdyYW0gaWYg TkxNU0dfT0sgb24gdGhlIGxhc3QNCj4+Pj4gbWVzc2FnZSBpcyBmYWxzZS4gQnV0IE5MTVNHX09L IHdpdGggYSB6ZXJvIGxlbmd0aCBpcyBhbHdheXMgZmFsc2UuDQo+Pj4+DQo+Pj4+IFRoZSBwcm9i bGVtIGlzIHRoYXQgd2UgZG9uJ3QgZGlzdGluZ3Vpc2ggaWYgc3RhdHVzIGlzIHplcm8gYmVjYXVz ZQ0KPj4+PiB3ZSBnb3QgYSBOTE1TR19ET05FIG1lc3NhZ2UsIG9yIGJlY2F1c2Ugd2UgcHJvY2Vz c2VkIGFsbCB0aGUNCj4+Pj4gYXZhaWxhYmxlIGRhdGFncmFtIGJ5dGVzLg0KPj4+Pg0KPj4+PiBJ bnRyb2R1Y2UgYW4gZXhwbGljaXQgY2hlY2sgb24gTkxNU0dfRE9ORS4gV2Ugc2hvdWxkIHByb2Jh Ymx5DQo+Pj4+IHJlZmFjdG9yIHRoaXMgc2xpZ2h0bHksIGZvciBleGFtcGxlIGJ5IGludHJvZHVj aW5nIGEgc3BlY2lhbCByZXR1cm4NCj4+Pj4gY29kZSBmcm9tIG5sX3N0YXR1cygpLCBidXQgdGhp cyBpcyBwcm9iYWJseSB0aGUgbGVhc3QgaW52YXNpdmUgZml4DQo+Pj4+IGZvciB0aGUgaXNzdWUg YXQgaGFuZC4NCj4+Pj4NCj4+Pj4gUmVwb3J0ZWQtYnk6IE1hcnRpbiBQaXR0IDxtcGl0dEByZWRo YXQuY29tPg0KPj4+PiBMaW5rOiBodHRwczovL2dpdGh1Yi5jb20vY29udGFpbmVycy9wb2RtYW4v aXNzdWVzLzIyMDUyDQo+Pj4+IEZpeGVzOiA0ZDZlOWQwODE2ZTIgKCJuZXRsaW5rOiBBbHdheXMg cHJvY2VzcyBhbGwgcmVzcG9uc2VzIHRvIGEgbmV0bGluayByZXF1ZXN0IikNCj4+Pj4gU2lnbmVk LW9mZi1ieTogU3RlZmFubyBCcml2aW8gPHNicml2aW9AcmVkaGF0LmNvbT4NClRlc3RlZC1ieTog UGF1bCBIb2x6aW5nZXIgPHBob2x6aW5nQHJlZGhhdC5jb20+DQo+Pj4+IC0tLQ0KPj4+PiAgICBu ZXRsaW5rLmMgfCAzICsrLQ0KPj4+PiAgICAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pDQo+Pj4+DQo+Pj4+IGRpZmYgLS1naXQgYS9uZXRsaW5rLmMgYi9uZXRs aW5rLmMNCj4+Pj4gaW5kZXggOWU3Y2NjYi4uMjBkZTliMyAxMDA2NDQNCj4+Pj4gLS0tIGEvbmV0 bGluay5jDQo+Pj4+ICsrKyBiL25ldGxpbmsuYw0KPj4+PiBAQCAtNTI1LDcgKzUyNSw4IEBAIGlu dCBubF9yb3V0ZV9kdXAoaW50IHNfc3JjLCB1bnNpZ25lZCBpbnQgaWZpX3NyYywNCj4+Pj4gICAg CQl9DQo+Pj4+ICAgIAl9DQo+Pj4+ICAgIA0KPj4+PiAtCWlmICghTkxNU0dfT0sobmgsIHN0YXR1 cykgfHwgc3RhdHVzID4gMCkgew0KPj4+PiArCWlmIChuaC0+bmxtc2dfdHlwZSAhPSBOTE1TR19E T05FICYmDQo+Pj4+ICsJICAgICghTkxNU0dfT0sobmgsIHN0YXR1cykgfHwgc3RhdHVzID4gMCkp IHsNCj4+Pj4gICAgCQkvKiBQcm9jZXNzIGFueSByZW1haW5pbmcgZGF0YWdyYW1zIGluIGEgZGlm ZmVyZW50DQo+Pj4+ICAgIAkJICogYnVmZmVyIHNvIHdlIGRvbid0IG92ZXJ3cml0ZSB0aGUgZmly c3Qgb25lLg0KPj4+PiAgICAJCSAqLw0KPj4+IEkgd2FzIGFib3V0IHRvIGFkZCBteSB0ZXN0ZWQt Ynkgd2hlbiBJIG5vdGljZWQgYSB3ZWlyZCB0aGluZywgYnV0IHRoYXQNCj4+PiBoYXBwZW5zIG9u bHkgb24gdGhlIG5ldyBrZXJuZWwgYXMgd2VsbDoNCj4+Pg0KPj4+IE9uIHRoZSBob3N0ICQgaXAg cm91dGUgZGVmYXVsdCB2aWEgMTkyLjE2OC4xMjIuMSBkZXYgZW5wMXMwIHByb3RvIGRoY3ANCj4+ PiBzcmMgMTkyLjE2OC4xMjIuOTIgbWV0cmljIDEwMCAxOTIuMTY4LjEyMi4wLzI0IGRldiBlbnAx czAgcHJvdG8ga2VybmVsDQo+Pj4gc2NvcGUgbGluayBzcmMgMTkyLjE2OC4xMjIuOTIgbWV0cmlj IDEwMCAuL3Bhc3RhIC0tY29uZmlnLW5ldCBpcCByb3V0ZQ0KPj4+IGRlZmF1bHQgdmlhIDE5Mi4x NjguMTIyLjEgZGV2IGVucDFzMCBwcm90byBkaGNwIG1ldHJpYyAxMDANCj4+PiAxOTIuMTY4LjEy Mi4wLzI0IGRldiBlbnAxczAgcHJvdG8ga2VybmVsIHNjb3BlIGxpbmsgc3JjIDE5Mi4xNjguMTIy LjkyDQo+Pj4gMTkyLjE2OC4xMjIuMC8yNCBkZXYgZW5wMXMwIHByb3RvIGtlcm5lbCBzY29wZSBs aW5rIG1ldHJpYyAxMDAgSXQgc2VlbXMNCj4+PiB3ZSBub3cgaGF2ZSB0aGUgc2FtZSBsb2NhbCBy b3V0ZSBkdXBsaWNhdGVkIGZvciBzb21lIHJlYXNvbj8NCj4+IEkgY2FuIHJlcHJvZHVjZSB0aGlz LCBpdCBsb29rcyByYXRoZXIgd2VpcmQgYXQgdGhlIG1vbWVudC4gTGV0J3Mgc2F5IEkNCj4+IGhh dmUgdHdvIElQdjQgcm91dGVzIG9uIHRoZSBob3N0Og0KPj4NCj4+ICQgaXAgcm8gc2gNCj4+IGRl ZmF1bHQgdmlhIDg4LjE5OC4wLjE2MSBkZXYgZXRoMCBwcm90byBkaGNwIHNyYyA4OC4xOTguMC4x NjQgbWV0cmljIDEwMA0KPj4gODguMTk4LjAuMTYwLzI3IGRldiBldGgwIHByb3RvIGtlcm5lbCBz Y29wZSBsaW5rIHNyYyA4OC4xOTguMC4xNjQgbWV0cmljIDEwMA0KPj4NCj4+IGlmIEkgc3RvcCBw YXN0YSBhZnRlciBpdCByZS1jcmVhdGVzIHRoZSBkZWZhdWx0IHJvdXRlIChhbmQgbm90IHRoZQ0K Pj4gc3VibmV0IG9uZSwgeWV0KSwgc2F5LCBhdCB0aGlzIHBvaW50ICh0aGUgbWVzc2FnZSB3aXRo IHBhZGRpbmcgY29uZnVzZXMNCj4+IHN0cmFjZSBzbyB3ZSBkb24ndCBnZXQgdGhlIGZ1bGwgZGVj b2RpbmcsIGJ1dCBpdCdzIHZhbGlkKToNCj4+DQo+PiByZWN2ZnJvbSg1LCBbW3tubG1zZ19sZW49 NjgsIG5sbXNnX3R5cGU9UlRNX05FV1JPVVRFLCBubG1zZ19mbGFncz1OTE1fRl9NVUxUSXxOTE1f Rl9EVU1QX0ZJTFRFUkVELCBubG1zZ19zZXE9MTMsIG5sbXNnX3BpZD0yODM0MX0sIHtydG1fZmFt aWx5PUFGX0lORVQsIHJ0bV9kc3RfbGVuPTAsIHJ0bV9zcmNfbGVuPTAsIHJ0bV90b3M9MCwgcnRt X3RhYmxlPVJUX1RBQkxFX01BSU4sIHJ0bV9wcm90b2NvbD1SVFBST1RfREhDUCwgcnRtX3Njb3Bl PVJUX1NDT1BFX1VOSVZFUlNFLCBydG1fdHlwZT1SVE5fVU5JQ0FTVCwgcnRtX2ZsYWdzPTB9LCBb W3tubGFfbGVuPTgsIG5sYV90eXBlPVJUQV9UQUJMRX0sIFJUX1RBQkxFX01BSU5dLCBbe25sYV9s ZW49OCwgbmxhX3R5cGU9UlRBX1BSSU9SSVRZfSwgMTAwXSwgW3tubGFfbGVuPTgsIG5sYV90eXBl PVJUQV9QUkVGU1JDfSwgaW5ldF9hZGRyKCI4OC4xOTguMC4xNjQiKV0sIFt7bmxhX2xlbj04LCBu bGFfdHlwZT1SVEFfR0FURVdBWX0sIGluZXRfYWRkcigiODguMTk4LjAuMTYxIildLCBbe25sYV9s ZW49OCwgbmxhX3R5cGU9UlRBX09JRn0sIGlmX25hbWV0b2luZGV4KCJldGgwIildXV0sIFt7bmxt c2dfbGVuPTY4LCBubG1zZ190eXBlPVJUTV9ORVdST1VURSwgbmxtc2dfZmxhZ3M9TkxNX0ZfTVVM VEl8TkxNX0ZfRFVNUF9GSUxURVJFRCwgbmxtc2dfc2VxPTEzLCBubG1zZ19waWQ9MjgzNDF9LCB7 cnRtX2ZhbWlseT1BRl9JTkVULCBydG1fZHN0X2xlbj0yNywgcnRtX3NyY19sZW49MCwgcnRtX3Rv cz0wLCBydG1fdGFibGU9UlRfVEFCTEVfTUFJTiwgcnRtX3Byb3RvY29sPVJUUFJPVF9LRVJORUws IHJ0bV9zY29wZT1SVF9TQ09QRV9MSU5LLCBydG1fdHlwZT1SVE5fVU5JQ0FTVCwgcnRtX2ZsYWdz PTB9LCBbW3tubGFfbGVuPTgsIG5sYV90eXBlPVJUQV9UQUJMRX0sIFJUX1RBQkxFX01BSU5dLCBb e25sYV9sZW49OCwgbmxhX3R5cGU9UlRBX0RTVH0sIGluZXRfYWRkcigiODguMTk4LjAuMTYwIild LA0KPiAgIFt7bmxhX2xlbj04LCBubGFfdHlwZT1SVEFfUFJJT1JJVFl9LCAxMDBdLCBbe25sYV9s ZW49OCwgbmxhX3R5cGU9UlRBX1BSRUZTUkN9LCBpbmV0X2FkZHIoIjg4LjE5OC4wLjE2NCIpXSwg W3tubGFfbGVuPTgsIG5sYV90eXBlPVJUQV9PSUZ9LCBpZl9uYW1ldG9pbmRleCgiZXRoMCIpXV1d LCBbe25sbXNnX2xlbj0yMCwgbmxtc2dfdHlwZT1OTE1TR19ET05FLCBubG1zZ19mbGFncz1OTE1f Rl9NVUxUSXxOTE1fRl9EVU1QX0ZJTFRFUkVELCBubG1zZ19zZXE9MTMsIG5sbXNnX3BpZD0yODM0 MX0sIDBdXSwgNjU1MzYsIDAsIE5VTEwsIE5VTEwpID0gMTU2DQo+PiBzZW5kdG8oNywgW3tubG1z Z19sZW49NjgsIG5sbXNnX3R5cGU9MHgxOCAvKiBOTE1TR18/Pz8gKi8sIG5sbXNnX2ZsYWdzPU5M TV9GX1JFUVVFU1R8TkxNX0ZfTVVMVEl8TkxNX0ZfQUNLfDB4NDAwLCBubG1zZ19zZXE9MTQsIG5s bXNnX3BpZD0wfSwgIlx4MDJceDAwXHgwMFx4MDBceGZlXHgxMFx4MDBceDAxXHgwMFx4MDBceDAw XHgwMFx4MDhceDAwXHgwZlx4MDBceGZlXHgwMFx4MDBceDAwXHgwOFx4MDBceDA2XHgwMFx4NjRc eDAwXHgwMFx4MDBceDA4XHgwMFx4MDBceDAwIi4uLl0sIDY4LCAwLCBOVUxMLCAwKSA9IDY4DQo+ Pg0KPj4gSSBzZWUgdGhhdCB0aGUga2VybmVsIGFscmVhZHkgY3JlYXRlZCBib3RoIGluIHRoZSB0 YXJnZXQgbmFtZXNwYWNlOg0KPj4NCj4+ICMgaXAgcm8gc2gNCj4+IGRlZmF1bHQgdmlhIDg4LjE5 OC4wLjE2MSBkZXYgZXRoMCBwcm90byBkaGNwIG1ldHJpYyAxMDANCj4+IDg4LjE5OC4wLjE2MC8y NyBkZXYgZXRoMCBwcm90byBrZXJuZWwgc2NvcGUgbGluayBzcmMgODguMTk4LjAuMTY0DQo+IEFo LCBubywgdGhlIGlzc3VlIGlzIHByZS1leGlzdGluZywgeW91IGNhbiBhY3R1YWxseSBzZWUgdGhl IHNhbWUgb24gYW4NCj4gb2xkZXIga2VybmVsLCB3aXRob3V0IHRoaXMgcGF0Y2guIFRoZSBzdWJu ZXQgcm91dGUgaXMgYWRkZWQNCj4gYXV0b25vbW91c2x5IGJ5IHRoZSBrZXJuZWwgYWZ0ZXIgd2Ug YWRkIHRoZSBhZGRyZXNzIHZpYSBSVE1fTkVXQUREUg0KPiB3aXRoIGEgaWZhX3ByZWZpeGxlbiA8 IDMyIGF0dHJpYnV0ZS4NCj4NCj4gVGhlbiB3ZSBhZGQgaXQgImFnYWluIiB2aWEgUlRNX05FV1JP VVRFLg0KPg0KPiBXZSBjb3VsZCBwcm9iYWJseSBhdm9pZCB0aGUgY3JlYXRpb24gb2YgYW55IHJv dXRlIG9uIFJUTV9ORVdBRERSIGdpdmluZw0KPiAzMiBvciAxMjggYXMgcHJlZml4IGxlbmd0aCwg YmVjYXVzZSBhbnl3YXkgd2UnbGwgZXhwbGljaXRseSBjb3B5IHRoZQ0KPiBzdWJuZXQgcm91dGUg bGF0ZXIsIGJ1dCB0aGF0IG5lZWRzIGEgYml0IG1vcmUgcG9uZGVyaW5nIC0tIEknZCBzYXkgaXQn cw0KPiBiZXlvbmQgdGhlIHNjb3BlIG9mIHRoaXMgY2hhbmdlLg0KPg0KWWVzLCBhZ3JlZWQuIFRo aXMgZml4IGxvb2tzIGNvcnJlY3QgYW5kIGZpeGVzIHRoZSBoYW5nIHdoaWNoIGlzIHRoZSBtb3N0 IA0KaW1wb3J0YW50IHRoaW5nLg0K