From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id B19DE69861 for ; Sun, 13 Mar 2022 07:44:41 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id A015331A99 for ; Sun, 13 Mar 2022 07:44:11 +0100 (CET) Received: from mail02.cetsi.fr (mail02.cetsi.fr [91.151.64.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS id 1122531A90 for ; Sun, 13 Mar 2022 07:44:10 +0100 (CET) Received: from CYLNEXC01.cyllene.corp (unknown [10.0.250.28]) by mail02.cetsi.fr (Postfix) with ESMTP id CC73A4050BE1; Sun, 13 Mar 2022 07:44:00 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 mail02.cetsi.fr CC73A4050BE1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groupe-cyllene.com; s=dkim; t=1647153840; bh=WOnaWbAZUGzNYh4r7CvH05bY3SbGy9PVI1F3r+wmYRY=; h=From:To:CC:Subject:Date:References:In-Reply-To:From; b=Gq48FvIgnzOOjXP3Ye5eiRsAW7Odv/RIZfASojplAC7WIOHciIgWTbTpchCqvaeCi sM+r9AON+lIuB5Jbz2FYWcbyCN499j5ox/vObBj05yAWiNC70Sv+hLY5jWjC7mMkAs CYWq3nMzmiVPD7Aq+GHvtVz9MNkUArSc3kFwV/9g= Received: from CYLNEXC01.cyllene.corp (10.0.250.28) by CYLNEXC01.cyllene.corp (10.0.250.28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.18; Sun, 13 Mar 2022 07:43:58 +0100 Received: from FRA01-PR2-obe.outbound.protection.outlook.com (10.0.250.254) by CYLNEXC01.cyllene.corp (10.0.250.28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.18 via Frontend Transport; Sun, 13 Mar 2022 07:43:58 +0100 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kZ2gL+oGRYpGZrx/J+x4KeA5F3H81xTAZEjPxSjXMhXwNt8FDWKkIO45KecywTfUDMP2bibQ4CDL7TUTJOigfOoFOpfrDJIcPTc/4r4fS8W2b30Dz+FsH6hAA/rXYnSoDRPWdsIShfTOyA7X81IbzaNMThMXUn4sYv64nbTAK6OKR8hdjAfWqb0jXvBx+U//yuh5rNuVi+hJUaSxQOaiEF2W+9PVJMgbvtFiZjWSog1bKzjWUj3/r1ipYiOE5144wANP5xnqD2t8LoYkc3gFGswYRq2pVLjLVmclbeGET0iyh9rcmj/r84f8Pr8ALsFyunCTAPJPe2MfBasR//G3Bg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=WOnaWbAZUGzNYh4r7CvH05bY3SbGy9PVI1F3r+wmYRY=; b=G7pfCQramPYchaFsvrOAae1D0qOhDkqIwCDRjxxQEQj8DjKBCtFkzkbzyIGH6jUha37SkLJpuTCBHm/yeVEOwGVJ9hGY3D4wVzjh3w5AjF7RIMIu07xHh4NJzzi+dKx0DyxT9DTqn0wnADe/AY0HKOd3zs4euCNW3geiS4CBlJp7LNJTs9h7o3hjjswBttl3BqFkboNZeBKopGDnADTf2XkoUiApvfV2n0wd5h5EpE5SzJLlQ2ZAhXJk3WHd2tjPP0mKp4ukUYGn9LdqqrO5SmnxgjLiH8JUIoltjE8vh0P1aFFq0zhy8igaZ0eG6ZJL5i0YYT67+vMPe2D20iaR9Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=groupe-cyllene.com; dmarc=pass action=none header.from=groupe-cyllene.com; dkim=pass header.d=groupe-cyllene.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=groupecyllene.onmicrosoft.com; s=selector2-groupecyllene-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WOnaWbAZUGzNYh4r7CvH05bY3SbGy9PVI1F3r+wmYRY=; b=zIeiPFtBTVc1tv6065pO86WKtL7waXLiLc18/Tqer7GmwrzTDzhlcSZnsc0BOLZxuAQCIkLtCTimFZl1CgkN4jWL7vRkBiR3BQlUohT9QsPkwUVyagtP3LAjCyMdTdmajsX/mrAByGV6IYsQ0EDQLvfcu2laOeDAPft/r3Fd3h8= Received: from MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:32::17) by MRXP264MB0887.FRAP264.PROD.OUTLOOK.COM (2603:10a6:500:1d::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.18; Sun, 13 Mar 2022 06:44:01 +0000 Received: from MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM ([fe80::d574:a660:4b9a:bcbf]) by MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM ([fe80::d574:a660:4b9a:bcbf%9]) with mapi id 15.20.5061.026; Sun, 13 Mar 2022 06:44:01 +0000 From: "DERUMIER, Alexandre" To: "w.bumiller@proxmox.com" CC: "pve-devel@lists.proxmox.com" Thread-Topic: is somebody working on nftables ? (I had scalability problem with big host) Thread-Index: AQHYNSPxy1hlBzn+nUm/LEXDYoKykqy59SsAgALr/gA= Date: Sun, 13 Mar 2022 06:44:01 +0000 Message-ID: <2ada4db30883bca2c86c480d2a18aeac2ee58e6b.camel@groupe-cyllene.com> References: <16f278a1d6bb851691aee8314be2c6752a7b54b1.camel@groupe-cyllene.com> <20220311100650.7y46vqsiovjzl7xt@wobu-vie.proxmox.com> In-Reply-To: <20220311100650.7y46vqsiovjzl7xt@wobu-vie.proxmox.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.42.4 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=groupe-cyllene.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a121c451-42a7-449e-f096-08da04bcdbd3 x-ms-traffictypediagnostic: MRXP264MB0887:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: aKCiqZLWJbXhttp5X3VhvRMzBaDbmIYlm8o9ZG67VeycLfYM0vF3SvtNUOSYL0JyMLqMFNL5U+5VsH+y2AjAgtijbWvwkqMojfiNKLFTMV1354NaHxktBiHl1nBVcdSXV5/FBZ3VV1PK18jDYQUto7IoZNkEo45mAl/svri686g/Kic7kPf/Qrh/lG8ByeN1cjxMXWA4XRLf7BLXE8Tva23MJpGw7U6J6/RtGRbudoZtkeEeoxir/xQACOXKju7/VAO4aplg22IE39/6PfBaUdeM+Ygck5BZBa9S5RJQg1UsvK67P6qoBKpO0QFcNMw4I2Kp4NiuhUkKh4k4NYZdrupznQmpSkcu9gxDesHmqSScGXGYF65e8G+N6MbCHAXtefcEFY6q5iNNCOe4hlDuXCFPujKLZimfZVSRCtPfsW6ROzp6qOPMJjzBDpHDZwm7WVECbYiurHP7ROiZFJdD3WlDkyD3M765fL2n7wcBKZgokL5et2Oj23Q+uoBUqCCFoBqXATUN+BQ5yJ0KgyG6+35BbGK6FBFVI8ThoyaX9GdGIdHNCVx1dckdE5ucjqrX8+d2jGQp3ydgFGcGCcFwVlomFiJSBOqrNClAeMjMWIPwnRQmrD6iRfhYrl3lPncx6khBOx4cU4EIwwvpcFK+HNV9mkj/BBBivEcxsZMoF2dtMSqBxE5zT3VCuCshr/R0vxP4O7YNPh5viNmtC0jJwl04svplT2N6eaPQQ+LeS/O8VkmIg0+3MsEHdujD2Eq+N38HcYbEnQUhdPv5AJgaoTfRq15WkMFNcNjbni/pb1Y= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(13230001)(4636009)(136003)(366004)(396003)(376002)(346002)(39830400003)(86362001)(2906002)(38070700005)(8676002)(316002)(36756003)(6916009)(8936002)(5660300002)(966005)(6486002)(83380400001)(6512007)(2616005)(6506007)(91956017)(508600001)(76116006)(66574015)(66946007)(64756008)(84970400001)(26005)(66556008)(66476007)(66446008)(186003)(4326008)(71200400001)(38100700002)(122000001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Q2o0V1p1U0RqaWV2UVZKT3pvOU1oNmFFRDVLaTVpRlpDUFJJYUl0NWF6bkFJ?= =?utf-8?B?TmREUFEyRHpaY2FjTmlRL2g5VkREK3VTU0orTnkxckZacGpraWpwa08zeVpO?= =?utf-8?B?MG9wU3g5OG51N1c1dUhveTU1a0ZYRnkzeUppOTh6TmNiN0YvY1piL09JQ3d5?= =?utf-8?B?TjRhM2FnMCszeGkyM2ZRYlFlWDdBeUU5Mi9vVGlsdzlROHphblBoaSs4T0tS?= =?utf-8?B?eEJTUE5mb3BET1p1NUt4bmtOaS8vMWJhSTJ0MzlIaUZwNU84TUxlZWRTNC8z?= =?utf-8?B?TmdaVmhxaXd1UjFpbk9CRnFvdHk2Y1BCZFpSaHpZajB3VHkyMHgrWEdjWG96?= =?utf-8?B?eTZZZml0ZzZWSCtjMGV4bVRRTUt0SXR1OFVRd0xXajhBLzdJNUN3YnpRcHdm?= =?utf-8?B?SHZTc2NZeDlzZlJYRWNVYnlGWjE0RmV4YU1uU3RzRnZja2Rwb0xVVWhtK2Nv?= =?utf-8?B?d3lnRWkraEVlYnVsK0JFV2ZPbDVmRndVOWFBdWIvWnlzWGpuWjhOdCtEb0M0?= =?utf-8?B?VzZyYlloR2laS0ZUdG5uTTREUE10dk9pN3BVeWdrT1Y4YlNwT2p6cnMvb0hi?= =?utf-8?B?MUlRS01VTUVGbmovejRjYXoyN2JuNE5HZktsbktRNkF6L1BOYVdOUHREOXpw?= =?utf-8?B?OTNJTVIzSWw3Ni9iYWVGTEtTTCtuYzRFN1V3WVZucEVmaGQ3SnZBUGNKRnQ3?= =?utf-8?B?bWZoUmR4QWhjVFdqbnpmMzFFemlGOVNweFFQYnlZMEZXSG1Yem9EVFVvOVJX?= =?utf-8?B?NjZmSG1jV0R3Qi82TjJUMFZvYi80bEJzV3FaWGphM2gxbkp3cUFnMUVxMFFZ?= =?utf-8?B?em9BZWtyS1c1VExGeVo0TzQwMXVDRk5iNHlFOHBsRUJlaWovK2dON1N1QUhp?= =?utf-8?B?VHVDekNlZ3dnVGlKOTBrNDkrcWVKVG9yR0E2QXAyVmwzTU5NeEl4K2o3N3o5?= =?utf-8?B?dnlqTmZ0aE5kbHZSaHB3RlhUbU9JWTBTemdkaVl5bmN0U1VObS9oQ2hUeDU5?= =?utf-8?B?TkFkdzJieDhNVElOUWEveEpQQStDbndSSnl6Y2tQQ1Vhb2x2L3BUbXEwbG5T?= =?utf-8?B?UVZPZk5oYkdEMGliUllIUG9aYndYMnZaVXhJSTk5eHVnYUxRSEVZOFY0czZ0?= =?utf-8?B?ZE0zWE1CTWpWV1p0aUMvS1dKMU9oaXVFY2FVTjlCeEM2YUlNUGUyMzQ3RDRW?= =?utf-8?B?RUtRaXVtUkJXSW1iVG5BZUkydDZ5am0zSDdFbE42TVpxVS91NlROQnN2eVNP?= =?utf-8?B?V1FtbUNtc3hBNUdLaHpyZmpNTUlRSU4vN0x4T2VQM0pBM0x4ZEJ3S0kxd3Av?= =?utf-8?B?M0ZQZlVzK211VW5VWkZTdDlPNVNyMDJQL2d6WmlaNDgzb1dZbG9Mcy9yNEVq?= =?utf-8?B?TmgzU2wzMHIzeDFSZVVNcThoY09SbXlHbk9xcHFrdG1qQUZmNUxUVldQaXQz?= =?utf-8?B?cGljbmM2VGx3eUdkYzZ4M2ExRVRvMjhRci9lT0ttZmlaWDZzU05uSEN2V0Y2?= =?utf-8?B?QWl1cFFhSVNCanpxL1RnUnRWYit0Z2lXZ3Q3eHZXckgwUk9MMDBNTjN3SE5u?= =?utf-8?B?ejRjb2RMekZJU2VCQkpZN1lnYjZNQ014cTN5T0c4amJJMkUwdUVlMWw0czVH?= =?utf-8?B?cnhqRmp3NWJOeWdsSUxOSHJ1QklPTFlUaVM5UHZrSzhzYXdGYnFIdVdmR1p2?= =?utf-8?B?anNnTytWek5kY1hCZldyWlcvTCtXQTlseGdTcnZmUG5xbXVjVXR3STdXd3Zh?= =?utf-8?B?QW9NNWs3K29iZzFucHZDVVdvTWJpUGtGVWRqN0Y1TTF2bXp4M09wL2g5cStK?= =?utf-8?B?eDVHcTVmUzk4OWxYQjFTOXlWeWFBb2g1VS9TSW9xViticlJhdFRCem9lcFJv?= =?utf-8?B?Wmc2R2xoOFVyZFVBMmZ1WFhjb0hSUEZqeVZVNEhQMEYrbHhYeUh5aXp6djNt?= =?utf-8?B?YVVKUWZNWmlRNVpzYXp6YWloNTZxdFF4VkJFblF5dDZUVzRUL3NXK2Z5ZGJa?= =?utf-8?B?SzB4MDZ1dVgvbkRBU1ptczVXMFVOTnJTeFpRVUJFUDkrTDV2KzQzUzNBZ3F2?= =?utf-8?B?bHB2UjBxVUxYSUdQM0pZWWxjMENCeWhKaWxKS2ZCM3lHQUZ0TzcxOWFTbXRG?= =?utf-8?B?MDNodVN6cEJySVBBeUV0WjQ5QW1yNUVGdVlDRlA2elR3NUptNEcva1NXOTV3?= =?utf-8?B?S3grOHZMcUF4czM4OVlrNlZMTlN5MFNUWnp6UHQrQ1o5czNpMkhCaGVSQzdz?= =?utf-8?B?VXhUSzZkbHBYc1ErODNzeFlIdGhVSTRySUlVRXNsYWV6KzhUalNRM2FoZ254?= =?utf-8?B?SWFSTGF5L0JySkYyRzlFMXBmZ25DYThSVkwxWXhuRU1Ha0hUMS9OQT09?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: a121c451-42a7-449e-f096-08da04bcdbd3 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Mar 2022 06:44:01.4497 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: ee11ccf7-112c-4284-848b-f229745e715b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: OggbGscrAJIgJdyeoez2VO/TRg/mL5+lPXB1u1aGzDGr0QzIrtbUl/hrBppq+CD49K/GmWgOzSbNGbrl6hV9UXhaTsMHx0QBedUYJ30RiOrluThS9eqtVMPup2iKsx8P X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRXP264MB0887 X-OriginatorOrg: groupe-cyllene.com X-SPAM-LEVEL: Spam detection results: 0 AWL 0.022 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain KAM_SHORT 0.001 Use of a URL Shortener for very short URL SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record T_SCC_BODY_TEXT_LINE -0.01 - URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [groupecyllene.onmicrosoft.com, x.com, cetsi.fr, groupe-cyllene.com] Subject: Re: [pve-devel] is somebody working on nftables ? (I had scalability problem with big host) X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Mar 2022 06:44:41 -0000 VGhhbmtzIFdvbGZnYW5nICENCg0KSSdsbCBkbyBtb3JlIHRlc3RzIG15IHNpZGUgdG9vIHdpdGjC oGRpZmZlcmVudHMgc2V0dXAsDQpyb3V0ZWQsYnJpZGdlZCxtYXF1ZXJhZGUsLi4uDQoNCkknbCBh bHNvIHRyeSB0byBzZWUgaWYgd2UgeW91IGNhbiBhIGNvbm50cmFjayB6b25lIGZvciBlYWNoIHZt LA0KaXQgY291bGQgYmUgZWFzaWVyIHRvIG1pZ3JhdGUgc3BlY2lmaWMgY29ubnRyYWNrIGVudHJp ZXMgd2hlbiBsaXZlDQptaWdyYXRpbmcgdGhlIHZtLg0KKGl0J3MgYWxzbyBzZWVtIHBvc3NpYmxl IHRvIGNoZWNrIGRpcmVjdGlvbiB3aXRoIGN0IHByb3BlcnRpZXMpDQoNCkknbSBkb2luZyBhIDQg ZGF5cyBwcm94bW94IHRyYWluaW5nIG5leHQgd2Vlaywgc28gSSdsbCB3b3JrIG9uIG5mdGFibGVz DQphZ2FpbiBpbiAyIHdlZWtzLg0KDQpJJ2xsIGtlZXAgeW91IGluIHRvdWNoLg0KDQpUaGFua3Mg YWdhaW4gIQ0KDQoNCg0KTGUgdmVuZHJlZGkgMTEgbWFycyAyMDIyIMOgIDExOjA2ICswMTAwLCBX b2xmZ2FuZyBCdW1pbGxlciBhIMOpY3JpdMKgOg0KPiBPbiBGcmksIE1hciAxMSwgMjAyMiBhdCAw ODo0MjoyOUFNICswMDAwLCBERVJVTUlFUiwgQWxleGFuZHJlIHdyb3RlOg0KPiA+IEhpLA0KPiA+ IEkgd291bGQgbGlrZSB0byBrbm93biBpZiBzb21lYm9keSBpcyBhbHJlYWR5IHdvcmtpbmcgb24g bmZ0YWJsZXMgPw0KPiANCj4gTm90IGFjdGl2ZWx5IGluIHRoZSBwdmUgY29kZS4gSSBvbmx5IGhh dmUgYSBmZXcgZGlmZmVyZW50IHZhcmlhbnRzIG9mDQo+IHBvc3NpYmxlIG5mdCBydWxlc2V0cyBh cm91bmQgYnV0IHRoZXJlJ3MgYWx3YXlzIGJlZW4gc29tZXRoaW5nDQo+IG1pc3NpbmcsDQo+IGV2 ZW4gd2l0aCBicmlkZ2UgY29ubnRyYWNrLg0KPiANCj4gUGFydGljdWxhcmx5LCBJIGFsd2F5cyBm ZWx0IGxpa2UgdGhlcmUncyBzdXBwb3NlZCB0byBiZSBhbiBlYXN5IHdheQ0KPiB0bw0KPiBnZXQg cmlkIG9mIHRoZSBmdy1icmlkZ2VzIChhcyB5b3Ugbm90ZWQgYmVsb3csIHRob3NlIGFyZSBhIHJl YWwgcGFpbg0KPiBvbg0KPiBiaWcgc2V0dXBzLi4uIHRob3VnaCBJIGhhdmVuJ3QgZXZlbiBoYWQg c3VjaCBsYXJnZSBzZXR1cHMgb24gbXkgbWluZA0KPiB0YmguLi4pDQo+IA0KPiA+IA0KPiA+IFJl Y2VudGx5LCBJIGhhZCBzY2FsaWJpdHkgcHJvYmxlbSB3aXRoIGJpZyBob3N0cyB3aXRoIGEgbG9m IG9mIHZtcw0KPiA+IGludGVyZmFjZXMuDQo+ID4gDQo+ID4gVGhpcyB3YXMgYW4gaG9zdCB3aXRo IDUwMHZtcyB3aXRoIDMgaW50ZXJmYWNlcyBieSB2bXMuwqAgKHNvIDE1MDANCj4gPiB0YXANCj4g PiBpbnRlcmZhY2VzICsgMTUwMCBmd2JyICsgMTUwMCApDQo+ID4gVGhlIHByb2JsZW1zOg0KPiA+ IA0KPiA+IC0gZWJ0YWJsZXMtcmVzdG9yZS1sZWdhY3kgaXMgbm90IGFibGUgdG8gaW1wb3J0IGJp ZyBydWxlc2V0LiAoc2VlbQ0KPiA+IHRvDQo+ID4gd29ya3Mgd2l0aCBlYnRhYmxlcy1yZXN0b3Jl LW5mdCkuDQo+ID4gaHR0cHM6Ly9hbnRpcGhpc2hpbmcuY2V0c2kuZnIvcHJveHkvdjM/aT1TSFYw WTFKWlFqTnlja0pGYTNkVVFpYmxoRg0KPiA+IDVZY1VxdGlXQ2FLX3JpMGtrJnI9VDBobk1sVXlW RWd3Tm1sbWRIYzFOUXFlVFExcExRVk5uNFVQTEpuMlc2ZTlIaDUNCj4gPiAwZXBIeGN4SkFHQ3JJ SHZLQjFzb3VoWlhCMjY1YlNreWRFZk51UWcmZj1WM3AwZUZsUU9VWjRjemgyZW5wSlM2eTlBDQo+ ID4gdFFvSFYwSHlHYTJLT2J2OUY2b3loZE9QU0lOWXNSQllOemtwN3VZJnU9aHR0cHMlM0EvL2J1 Z3ppbGxhLnByb3htbw0KPiA+IHguY29tL3Nob3dfYnVnLmNnaSUzRmlkJTNEMzkwOSZrPVpWZDAN Cj4gPiANCj4gPiAtIHB2ZS1maXJld2FsbCBydWxlIGdlbmVyYXRpb24gdGFrZSAxMDAlIGNwdSBm b3IgNXMgKG9uIGEgbmV3IGVweWMNCj4gPiBzZXJ2ZXIgM2doeiksIGlwdGFibGVzLXNhdmUvcmVz dG9yZSBpcyBzbG93IHRvbyAoYnV0IHdvcmtpbmcpLiBXaXRoDQo+ID4gdGhlDQo+ID4gMTBzIGlu dGVydmFsIG9mIHB2ZS1maXJld2FsbCBydW5uaW5nLCBJIGhhdmUgYWxtb3N0IGFsbCB0aGUgdGhl DQo+ID4gdGltZQ0KPiA+IHRoZSBwdmUtZmlyZXdhbGwgcHJvY2VzcyBydW5uaW5nIGF0IDEwMCUu DQo+IA0KPiBUaGF0IHNlZW1zIGF3ZnVsIDotKQ0KPiBJJ20gc3VyZSB0aGVyZSBhcmUgd2F5cyB0 byBpbXByb3ZlIHRoaXMgZXZlbiBub3cgKGhhdmUgYmV0dGVyIGNoZWNrcw0KPiBmb3INCj4gd2hl dGhlciBpdCdzIGV2ZW4gbmVjZXNzYXJ5IHRvIHVwZGF0ZSB0aGUgcnVsZXNldCBpbiB0aGUgZmly c3QNCj4gcGxhY2UuLi4pDQo+IA0KPiBPdGhlciB0aGFuIHRoYXQsIGlmIHdlIGRlc2lnbiB0aGUg bmZ0YWJsZXMgcnVsZXMgY2FyZWZ1bGx5IGVub3VnaCwgYW4NCj4gbmZ0YWJsZXMgdmVyc2lvbiB3 b3VsZCBpbiB0aGVvcnkgYmUgYWJsZSB0byBhcHBseSBvbmx5IHBhcnRpYWwNCj4gY2hhbmdlcy4N Cj4gQnV0IHdlJ2QgYWxzbyBuZWVkIGFuIGVmZmljaWVudCB3YXkgdG8gZmlndXJlIG91dCB3aGF0 IHRvIGNoYW5nZS4NCj4gDQo+IE1vcmUgaWRlYXMgYXJlIG1vbml0b3JpbmcgdGhlIC9ldGMvcHZl L2ZpcmV3YWxsIGNvbnRlbnRzIGFuZCBwZXJoYXBzDQo+IHRlYWNoIHBteGNmcyB0byBzdXBwb3J0 IGNoYW5nZSBub3RpZmljYXRpb25zIHZpYSBgcG9sbGAgb24gdGhlDQo+IGRpcmVjdG9yeQ0KPiBh bmQvb3IgaXRzIGZpbGVzLi4uIChldmVuIGhpZ2ggbGV2ZWwgZnVzZSBoYXMgc3VwcG9ydCBmb3Ig dGhpcw0KPiBBRkFJQ1QsDQo+IHdvdWxkIG5lZWQgdG8gcGxheSBhcm91bmQgd2l0aCBpdCkNCj4g DQo+ID4gDQo+ID4gLSB3aXRoIHRoZSBjdXJyZW50IDEgZndiciBmb3IgZWFjaCBpbnRlcmZhY2Vz LCB3aGVuIGEgYnJvYWRjYXN0DQo+ID4gKGxpa2UNCj4gPiBhcnApIGlzIGdvaW5nIHRvIHRoZSBt YWluIGJyaWRnZSwgdGhlIHBhY2tldCBpcyBkdXBsaWNhdGVkL2ZvcndhcmQNCj4gPiBvbg0KPiA+ IGVhY2ggZndici4gVGhlIGN1cnJlbnQgYXJwIGZvcndhcmRpbmcgb25seSB1c2UgMSBrc29mdGly cWQgd2l0aCBhDQo+ID4gc2xvdw0KPiA+IGNwdSBwYXRoIChJIGhhdmUgY2hlY2sgd2l0aCAicGVy ZiByZWNvcmQpLiB3aXRoIGEgbG90IG9mIGZ3YnIsIEkNCj4gPiBoYWQgYSANCj4gPiAxMDAlIGtz b2Z0aXJxZCB3aXRoIHBhY2tldCBsb3NzLiAoMjAwIG9yaWdpbmFsIGFycCByZXF1ZXN0L1MgKiA1 MDANCj4gPiBmd2JyDQo+ID4gPSA+MTAwMDAwIGFycCByZXF1ZXN0L3MgdG8gaGFuZGxlKQ0KPiAN Cj4gQUZBSUNUIHdlIG5lZWQgdGhlbSBtb3N0bHkgc28gdGhhdCBmb3IgYWxsIHBhY2tldCBwYXRo cyB3ZSBjYW4gdGVsbA0KPiB3aGljaCBWTSB0aGUgcGFja2V0IGlzIGdvaW5nIHRvL2NvbWluZyBm cm9tLg0KPiBQYXJ0aWN1bGFybHkgd2l0aCBuZnRhYmxlcyBhIGJ1bmNoIG9mIGluL291dCBpbnRl cmZhY2UgaW5mb3JtYXRpb24gaXMNCj4gc2ltcGx5IG1pc3Npbmcgb3RoZXJ3aXNlLiBPciB1c2Vk IHRvLCBJIGd1ZXNzIGl0J3MgdGltZSB0byBjaGVjaw0KPiBhZ2Fpbi4NCj4gDQo+ID4gSSBoYXZl IGxvb2tlZCBhdCBuZnRhYmxlcywgSSB0aGluayB0aGF0IGV2ZXJ5dGhpbmcgaXMgcmVhZHkgaW4N Cj4gPiBrZXJuZWwNCj4gPiBub3cuKGxhc3QgbWlzc2luZyBwYXJ0IHdpdGggYnJpZGdlIGNvbm50 cmFjayBmcm9tIGtlcm5lbCA1LjMpDQo+ID4gDQo+ID4gDQo+ID4gSGVyZSBhIGJhc2ljIGV4YW1w bGUsIHdpdGggY29ubnRyYWNrIGF0IGJyaWRnZSBsZXZlbCBhbmQgdm1hcA0KPiA+IGZlYXR1cmUN Cj4gPiB0byBtYXRjaCB0byBpbnRlcmZhY2UuDQo+ID4gDQo+ID4gDQo+ID4gDQo+ID4gIyEvdXNy L3NiaW4vbmZ0IC1mDQo+ID4gDQo+ID4gZmx1c2ggcnVsZXNldA0KPiA+IA0KPiA+IHRhYmxlIGlu ZXQgZmlsdGVyIHsNCj4gPiDCoMKgwqDCoMKgwqDCoCBjaGFpbiBpbnB1dCB7DQo+ID4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHR5cGUgZmlsdGVyIGhvb2sgaW5wdXQgcHJpb3JpdHkg MDsNCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcG9saWN5IGFjY2VwdDsNCj4g PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbG9nIGZsYWdzIGFsbCBwcmVmaXggImhv c3QgaW4iDQo+ID4gwqDCoMKgwqDCoMKgwqAgfQ0KPiA+IMKgwqDCoMKgwqDCoMKgIGNoYWluIGZv cndhcmQgew0KPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0eXBlIGZpbHRlciBo b29rIGZvcndhcmQgcHJpb3JpdHkgMDsNCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgcG9saWN5IGFjY2VwdDsNCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbG9n IGZsYWdzIGFsbCBwcmVmaXggImhvc3QgZm9yd2FyZCAocm91dGluZykiDQo+ID4gwqDCoMKgwqDC oMKgwqAgfQ0KPiA+IMKgwqDCoMKgwqDCoMKgIA0KPiA+IMKgwqDCoMKgwqDCoMKgIGNoYWluIG91 dHB1dCB7DQo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0eXBlIGZpbHRlciBob29r IG91dHB1dCBwcmlvcml0eSAwOw0KPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcG9s aWN5IGFjY2VwdDsNCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGxvZyBmbGFncyBh bGwgcHJlZml4ICJob3N0IG91dHB1dCINCj4gPiDCoMKgwqDCoMKgwqDCoCB9DQo+ID4gfQ0KPiA+ IA0KPiA+IHRhYmxlIGJyaWRnZSBmaWx0ZXIgew0KPiA+IMKgwqDCoMKgwqDCoMKgIGNoYWluIGZv cndhcmQgew0KPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0eXBlIGZpbHRlciBo b29rIGZvcndhcmQgcHJpb3JpdHkgMDsgcG9saWN5IGFjY2VwdDsNCj4gPiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgY3Qgc3RhdGUgZXN0YWJsaXNoZWQscmVsYXRlZCBhY2NlcHQNCj4g PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbG9nIGZsYWdzIGFsbCBwcmVmaXggImJy aWRnZSBmb3J3YXJkIg0KPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpaWZuYW1l IHZtYXAgeyB0YXAxMDBpMCA6IGp1bXAgdGFwMTAwaTAtb3V0ICwNCj4gPiB0YXAxMDVpMA0KPiA+ IDoganVtcCB0YXAxMDVpMC1vdXQgfQ0KPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBvaWZuYW1lIHZtYXAgeyB0YXAxMDBpMCA6IGp1bXAgdGFwMTAwaTAtaW4gLA0KPiA+IHRhcDEw NWkwIDoNCj4gPiBqdW1wIHRhcDEwNWkwLWluIH0NCj4gDQo+IE9uZSBpc3N1ZSBJIHNlZSB0aG91 Z2ggaXMgdGhhdCB0aGlzIHNpbXBseSB3b24ndCBiZSBleGVjdXRlZCBmb3INCj4gKnJvdXRlZCog Vk1zLCBzbyB3ZSdkIGVpdGhlciBuZWVkIHRvIG1haW50YWluIHRoZSBzYW1lIHJ1bGVzZXQgaW4g dGhlDQo+IGZpbHRlciBmb3J3YXJkICsgdGhlIGJyaWRnZSBmb3J3YXJkIGNoYWlucywgb3IgcmVx dWlyZSByb3V0ZWQgdnMNCj4gYnJpZGdlZA0KPiBzZXR1cHMgdG8gYmUgbWFya2VkIHNvbWVob3cu Li4NCj4gVW5mb3J0dW5hdGVseSB3ZSBjYW4ndCBzaGFyZSBjaGFpbnMgYWNyb3NzIHRhYmxlcyA6 fA0KPiANCj4gQWx0aG91Z2ggcGVyaGFwcyBzb21lIHJ1bGVzIGNvdWxkIGJlIG1vdmVkIHRvIHRo ZSAnbmV0ZGV2JyBjaGFpbnMuLi4NCj4gKGF0IGxlYXN0IHdlIHByb2JhYmx5IHdhbnQgdG8gZG8g TUFDIGZpbHRlcmluZyBpbiB0aGVyZSwgc28gaXQNCj4gaGFwcGVucw0KPiBlYXJseSBhbmQgaW5k ZXBlbmRlbnQgZnJvbSB0aGUgcmVzdCBvZiB0aGUgZmxvdykuDQo+IA0KPiA+IEFsc28sIEkgdGhp bmsgd2UgY291bGQgYXZvaWQgdGhlIHVzZSB0aGUgZndiciBmb3Igc29tZSBjYXNlcy4NCj4gPiAN Cj4gPiBBRkFJSywgdGhlIGZ3YnIgaXMgb25seSBuZWVkwqAgZm9yIGhvc3QtPnZtLCBiZWNhdXNl IHdpdGhvdXQgZndiciwNCj4gPiB3ZQ0KPiA+IG9ubHkgaGF2ZSB0aGUgcGFja2V0IGluIGhvc3Qg b3V0cHV0IGNoYWluIChvciBmb3J3YXJkIGZvciByb3V0aW5nDQo+ID4gc2V0dXApLCB3aXRob3V0 IHRoZSBkZXN0aW5hdGlvbiB0YXAgaW50ZXJmYWNlIChvbmx5IHRoZSBkZXN0aW5hdGlvbg0KPiA+ IGJyaWRnZSBhbmQgZGVzdGluYXRpb24gaXApDQo+ID4gDQo+ID4gZXg6IHJvdXRlZCBzZXR1cCA6 MTAuMy45NC4xMS0tLS0tPjEwLjMuOTQuMSh2bWJyMCktLS0NCj4gPiAodm1icjEpMTkyLjE2OC4w LjEtLS0tLXZtKDE5Mi4xNjguMC4xMCkNCj4gPiANCj4gPiDCoGtlcm5lbDogWzI4MzQxLjM2MTc3 Nl0gZm9yd2FyZCBob3N0SU49ZXRoMCBPVVQ9dm1icjENCj4gPiBNQUNTUkM9ZjI6NDI6Y2Y6MjM6 MTI6ODggTUFDRFNUPTI0OjhhOjA3OjlhOjJhOmYyIE1BQ1BST1RPPTA4MDANCj4gPiBTUkM9MTAu My45NC4xMSBEU1Q9MTkyLjE2OC4wLjEwIExFTj04NCBUT1M9MHgwMCBQUkVDPTB4MDAgVFRMPTYz DQo+ID4gSUQ9MzkzNTUgREYgUFJPVE89SUNNUCBUWVBFPTggQ09ERT0wIElEPTQ4NDIzIFNFUT0x IA0KPiA+IA0KPiA+IA0KPiA+IHdpdGggdGhlIGZ3YnIsIHdlIGNhbiBtYXRjaCB0aGUgcGFja2V0 IHR3aWNlLCBpbiB0aGUgaG9zdA0KPiA+IG91dHB1dC9mb3J3YXJkLCBhbmQgaW4gdGhlIGJyaWRn ZSBmb3J3YXJkLg0KPiA+IA0KPiA+IEknbSBub3QgYWJsZSB0byByZXByb2R1Y2UgdGhpcyB3aXRo IG5mdGFibGVzIDooDQo+ID4gDQo+ID4gDQo+ID4gSSBzZWUgMSBwb3NzaWJsZSBjbGVhbiB3b3Jr YXJvdW5kOg0KPiA+IA0KPiA+IMKgLSBEb24ndCBzZXR1cCBpcCBhZGRyZXNzIG9uIHRoZSBicmlk Z2UgZGlyZWN0bHksIGJ1dCBpbnN0ZWFkLCBvbiBhDQo+ID4gdmV0aCBwYWlyLiBMaWtlIHRoaXMs IHdlIHNlZSB2ZXRoIHNvdXJjZSAmJiB0YXAgZGVzdGluYXRpb24gaXMNCj4gPiBicmlkZ2UNCj4g PiBmb3J3YXJkLiDCoA0KPiA+IA0KPiA+IChzb21lIHVzZXJzIGhhZCBwcm9ibGVtIGF0IGhldHpu ZXIgd2l0aCBmd2JyIGJyaWRnZSBzZW5kaW5nIHBhY2tldHMNCj4gPiB3aXRoIHRoZWlyIG93biBt YWMsIHRoaXMgc2hvdWxkIGF2b2lkIHRoaXMgYnVnKQ0KPiA+IA0KPiA+IEJ1dCBmb3IgdXNlcnMg dGhhdCBtZWFuIG1hbnVhbCBuZXR3b3JrIGNvbmZpZyBjaGFuZ2Ugb3IgbWF5YmUgc29tZQ0KPiA+ IGlmdXBkb3duMiB0cmlja3Mgb3IgY29uZmlnIGF1dG8gcmV3cml0ZS4NCj4gPiDCoCANCj4gDQo+ IFllYWggdGhhdCdzIGEgcHJvYmxlbS4NCj4gDQo+ID4gDQo+ID4gZXg6IHJvdXRlZCBzZXR1cA0K PiA+IA0KPiA+IGJyaWRnZSBmb3J3YXJkIElOPXZldGhfaG9zdCBPVVQ9dGFwMTAwaTAgTUFDU1JD PTlhOmNkOjkwOmY4OmY1OjNlDQo+ID4gTUFDRFNUPTA0OjA1OmRmOjEyOjg1OjU1IE1BQ1BST1RP PTA4MDAgU1JDPTEwLjMuOTQuMTENCj4gPiBEU1Q9MTkyLjE2OC4wLjEwDQo+ID4gTEVOPTg0IFRP Uz0weDAwIFBSRUM9MHgwMCBUVEw9NjMgSUQ9MTAzMzMgREYgUFJPVE89SUNNUCBUWVBFPTgNCj4g PiBDT0RFPTANCj4gPiBJRD00NjMwNiBTRVE9MSANCj4gPiANCj4gPiANCj4gPiANCj4gPiBJIGRv bid0IGtub3duIGlmIGl0J3MgcG9zc2libGUgdG8gZ2V0IHRoZSBmd2JyIHRyaWNrcyB3b3JraW5n LCBidXQNCj4gPiBpdA0KPiA+IHRoaXMgY2FzZToNCj4gPiDCoC0ga2VlcCBhIGZ3YnIgYnJpZGdl LCBidXQgb25seSAxIGJ5IHZtYnIgd2hlcmUgYW4gaXAgaXMgc2V0dXAgKG9yDQo+ID4gZm9yDQo+ ID4gb3BlbnN3aXRjaCB0b28pLiBtb3JlIHRyYW5zcGFyZW50IHRvIGltcGxlbWVudCBhdCB2bSBz dGFydC9zdG9wLg0KPiA+IChidXQgd2Ugc3RpbGwgbmVlZCB0byBtYXRjaCB0aGUgcGFja2V0IHR3 aWNlKQ0KPiANCj4gVGhhdCBtYXkgYWN0dWFsbHkgd29yayBmb3IgYm90aCBicmlkZ2VkICYgcm91 dGVkIHNldHVwcyBldmVuLCBhbmQNCj4gdHJhZmZpYyB3b3VsZCBnbyB0aHJvdWdoIHJlZ2FyZGxl c3Mgb2Ygd2hldGhlciB0aGUgdm0gY29tbXVuaWNhdGVzDQo+IHdpdGgNCj4gdGhlIGhvc3Qgb3Ig d2l0aCB0aGUgb3V0c2lkZS4gQW5kIHRoZSBob3N0IGlucHV0IGNoYWluIHdvdWxkIHN0aWxsDQo+ IGdldA0KPiB0cmlnZ2VyZWQgbm9ybWFsbHkgYXMgd2VsbC4NCj4gSG93ZXZlciwgSSd2ZSBoaXQg aXNzdWVzIHdpdGggbWFzcXVlcmFkaW5nIHRoZXJlIGZvciBzb21lIHJlYXNvbg0KPiAod2hlcmUN Cj4gc2ltcGx5IHRoZSBwcmVzZW5jZSBvZiBhICdicmlkZ2UgZmlsdGVyIGZvcndhcmQnIGNoYWlu IGNhdXNlZA0KPiBtYXNxdWVyYWRpbmcgdG8ganVzdCBzdG9wIHdvcmtpbmcgZGVzcGl0ZSB0aGUg bWFzcXVlcmFkaW5nIHJ1bGUgYmVpbmcNCj4gaGl0LCBJJ2xsIG5lZWQgdG8gaW52ZXN0aWdhdGUg dGhpcyBmdXJ0aGVyLg0KPiANCj4gPiANCj4gPiBGb3Igb3RoZXIgY2FzZXMgKHB1cmUgYnJpZGdp bmcpLCBJIHRoaW5rIHdlIGRvbid0IG5lZWQgZndiciBhdCBhbGwuDQo+ID4gVGhpcyBzaG91bGQg YXZvaWQgZXh0cmEgY3B1IGN5Y2xlLCBhbmQgbWFrZSBuZXR3b3JrIHRocm91Z2hwdXQNCj4gPiBm YXN0ZXINCj4gPiB0b28uDQo+ID4gDQo+ID4gDQo+ID4gQW55IG9waW5pb24gYWJvdXQgdGhpcyA/ IGRvZXMgc29tZWJvZHkgYWxyZWFkeSBoYXZlIGRvbmUgdGVzdCB3aXRoDQo+ID4gbmZ0YWJsZXMg Pw0KPiANCg0K