From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 831661FF16B for ; Fri, 7 Nov 2025 10:41:27 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id BFD53CBD7; Fri, 7 Nov 2025 10:42:07 +0100 (CET) Message-ID: <4305c05f-7ce5-4d5c-9875-a97ae78daaa4@proxmox.com> Date: Fri, 7 Nov 2025 10:41:32 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: Christian Ebner To: Proxmox Backup Server development discussion , Nicolas Frey References: <20251106161316.528349-1-n.frey@proxmox.com> <20251106161316.528349-6-n.frey@proxmox.com> <7995aa0b-73b0-4099-b22d-9c455ca6c2db@proxmox.com> Content-Language: en-US, de-DE In-Reply-To: <7995aa0b-73b0-4099-b22d-9c455ca6c2db@proxmox.com> X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1762508473592 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.045 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: Re: [pbs-devel] [PATCH proxmox-backup v2 2/4] api: verify: determine the number of threads to use with {read, verify}-threads X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Backup Server development discussion Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" T24gMTEvNy8yNSAxMDozMSBBTSwgQ2hyaXN0aWFuIEVibmVyIHdyb3RlOgo+IHNvbWUgc21hbGwg aXNzdWVzIGlubGluZQo+IAo+IE9uIDExLzYvMjUgNToxMyBQTSwgTmljb2xhcyBGcmV5IHdyb3Rl Ogo+PiB1c2UgcHJldmlvdXNseSBpbnRyb2R1Y2VkIHtyZWFkLHZlcmlmeX0tdGhyZWFkcyBpbiBB UEksIHdoZXJlIGRlZmF1bHQKPj4gdmFsdWVzIG1hdGNoIHRoZSBvbmVzIG9mIHRoZSBzY2hlbWEg ZGVmaW5pdGlvbi4KPj4KPj4gU2lnbmVkLW9mZi1ieTogTmljb2xhcyBGcmV5IDxuLmZyZXlAcHJv eG1veC5jb20+Cj4+IC0tLQo+PiDCoCBzcmMvYXBpMi9hZG1pbi9kYXRhc3RvcmUucnPCoMKgwqAg fCAxOCArKysrKysrKysrKysrKystLS0KPj4gwqAgc3JjL2FwaTIvYmFja3VwL2Vudmlyb25tZW50 LnJzIHzCoCAyICstCj4+IMKgIHNyYy9iYWNrdXAvdmVyaWZ5LnJzwqDCoMKgwqDCoMKgwqDCoMKg wqAgfCAxOSArKysrKysrKysrKysrKysrLS0tCj4+IMKgIHNyYy9zZXJ2ZXIvdmVyaWZ5X2pvYi5y c8KgwqDCoMKgwqDCoCB8wqAgNyArKysrKystCj4+IMKgIDQgZmlsZXMgY2hhbmdlZCwgMzggaW5z ZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL3NyYy9hcGkyL2Fk bWluL2RhdGFzdG9yZS5ycyBiL3NyYy9hcGkyL2FkbWluL2RhdGFzdG9yZS5ycwo+PiBpbmRleCA2 ZTI2OWVmOS4uZmRlNGMyNDcgMTAwNjQ0Cj4+IC0tLSBhL3NyYy9hcGkyL2FkbWluL2RhdGFzdG9y ZS5ycwo+PiArKysgYi9zcmMvYXBpMi9hZG1pbi9kYXRhc3RvcmUucnMKPj4gQEAgLTQ1LDcgKzQ1 LDggQEAgdXNlIHBic19hcGlfdHlwZXM6OnsKPj4gwqDCoMKgwqDCoCBCQUNLVVBfVFlQRV9TQ0hF TUEsIENBVEFMT0dfTkFNRSwgQ0xJRU5UX0xPR19CTE9CX05BTUUsIAo+PiBEQVRBU1RPUkVfU0NI RU1BLAo+PiDCoMKgwqDCoMKgIElHTk9SRV9WRVJJRklFRF9CQUNLVVBTX1NDSEVNQSwgTUFYX05B TUVTUEFDRV9ERVBUSCwgCj4+IE5TX01BWF9ERVBUSF9TQ0hFTUEsIFBSSVZfREFUQVNUT1JFX0FV RElULAo+PiDCoMKgwqDCoMKgIFBSSVZfREFUQVNUT1JFX0JBQ0tVUCwgUFJJVl9EQVRBU1RPUkVf TU9ESUZZLCAKPj4gUFJJVl9EQVRBU1RPUkVfUFJVTkUsIFBSSVZfREFUQVNUT1JFX1JFQUQsCj4+ IC3CoMKgwqAgUFJJVl9EQVRBU1RPUkVfVkVSSUZZLCBQUklWX1NZU19NT0RJRlksIFVQSUQsIFVQ SURfU0NIRU1BLCAKPj4gVkVSSUZJQ0FUSU9OX09VVERBVEVEX0FGVEVSX1NDSEVNQSwKPj4gK8Kg wqDCoCBQUklWX0RBVEFTVE9SRV9WRVJJRlksIFBSSVZfU1lTX01PRElGWSwgUkVBRF9USFJFQURT X1NDSEVNQSwgCj4+IFVQSUQsIFVQSURfU0NIRU1BLAo+PiArwqDCoMKgIFZFUklGSUNBVElPTl9P VVREQVRFRF9BRlRFUl9TQ0hFTUEsIFZFUklGWV9USFJFQURTX1NDSEVNQSwKPj4gwqAgfTsKPj4g wqAgdXNlIHBic19jbGllbnQ6OnB4YXI6OntjcmVhdGVfdGFyLCBjcmVhdGVfemlwfTsKPj4gwqAg dXNlIHBic19jb25maWc6OkNhY2hlZFVzZXJJbmZvOwo+PiBAQCAtNjc1LDYgKzY3NiwxNCBAQCBw dWIgYXN5bmMgZm4gc3RhdHVzKAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHNjaGVtYTogTlNfTUFYX0RFUFRIX1NDSEVNQSwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBvcHRpb25hbDogdHJ1ZSwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg fSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgInJlYWQtdGhyZWFkcyI6IHsKPj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzY2hlbWE6IFJFQURfVEhSRUFEU19TQ0hFTUEsCj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgb3B0aW9uYWw6IHRydWUsCj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIH0sCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJ2ZXJpZnkt dGhyZWFkcyI6IHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzY2hlbWE6IFZF UklGWV9USFJFQURTX1NDSEVNQSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBv cHRpb25hbDogdHJ1ZSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfSwKPj4gwqDCoMKgwqDC oMKgwqDCoMKgIH0sCj4+IMKgwqDCoMKgwqAgfSwKPj4gwqDCoMKgwqDCoCByZXR1cm5zOiB7Cj4+ IEBAIC02ODgsNyArNjk3LDcgQEAgcHViIGFzeW5jIGZuIHN0YXR1cygKPj4gwqAgKV0KPj4gwqAg Ly8vIFZlcmlmeSBiYWNrdXBzLgo+PiDCoCAvLy8KPj4gLS8vLyBUaGlzIGZ1bmN0aW9uIGNhbiB2 ZXJpZnkgYSBzaW5nbGUgYmFja3VwIHNuYXBzaG90LCBhbGwgYmFja3VwIAo+PiBmcm9tIGEgYmFj a3VwIGdyb3VwLAo+PiArLy8vIFRoaXMgZnVuY3Rpb24gY2FuIHZlcmlmeSBhIHNpbmdsZSBiYWNr dXAgc25hcHNob3QsIGFsbCBiYWNrdXBzIAo+PiBmcm9tIGEgYmFja3VwIGdyb3VwLAo+IAo+IG5p dDogdGhpcyBpcyBhbiB1bnJlbGF0ZWQgY2hhbmdlLCBwbGVhc2UgcHV0IHRoaXMgaW50byBhIGRl ZGljYXRlZCBjb21taXQKPiAKPj4gwqAgLy8vIG9yIGFsbCBiYWNrdXBzIGluIHRoZSBkYXRhc3Rv cmUuCj4+IMKgICNbYWxsb3coY2xpcHB5Ojp0b29fbWFueV9hcmd1bWVudHMpXQo+PiDCoCBwdWIg Zm4gdmVyaWZ5KAo+PiBAQCAtNzAwLDYgKzcwOSw4IEBAIHB1YiBmbiB2ZXJpZnkoCj4+IMKgwqDC oMKgwqAgaWdub3JlX3ZlcmlmaWVkOiBPcHRpb248Ym9vbD4sCj4+IMKgwqDCoMKgwqAgb3V0ZGF0 ZWRfYWZ0ZXI6IE9wdGlvbjxpNjQ+LAo+PiDCoMKgwqDCoMKgIG1heF9kZXB0aDogT3B0aW9uPHVz aXplPiwKPj4gK8KgwqDCoCByZWFkX3RocmVhZHM6IE9wdGlvbjx1c2l6ZT4sCj4+ICvCoMKgwqAg dmVyaWZ5X3RocmVhZHM6IE9wdGlvbjx1c2l6ZT4sCj4+IMKgwqDCoMKgwqAgcnBjZW52OiAmbXV0 IGR5biBScGNFbnZpcm9ubWVudCwKPj4gwqAgKSAtPiBSZXN1bHQ8VmFsdWUsIEVycm9yPiB7Cj4+ IMKgwqDCoMKgwqAgbGV0IGF1dGhfaWQ6IEF1dGhpZCA9IHJwY2Vudi5nZXRfYXV0aF9pZCgpLnVu d3JhcCgpLnBhcnNlKCk/Owo+PiBAQCAtNzc5LDcgKzc5MCw4IEBAIHB1YiBmbiB2ZXJpZnkoCj4+ IMKgwqDCoMKgwqDCoMKgwqDCoCBhdXRoX2lkLnRvX3N0cmluZygpLAo+PiDCoMKgwqDCoMKgwqDC oMKgwqAgdG9fc3Rkb3V0LAo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgbW92ZSB8d29ya2VyfCB7Cj4+ IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGxldCB2ZXJpZnlfd29ya2VyID0gVmVyaWZ5V29ya2Vy OjpuZXcod29ya2VyLmNsb25lKCksIAo+PiBkYXRhc3RvcmUpPzsKPj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqAgbGV0IHZlcmlmeV93b3JrZXIgPQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIFZlcmlmeVdvcmtlcjo6bmV3KHdvcmtlci5jbG9uZSgpLCBkYXRhc3RvcmUsIAo+PiBy ZWFkX3RocmVhZHMsIHZlcmlmeV90aHJlYWRzKT87Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGxldCBmYWlsZWRfZGlycyA9IGlmIGxldCBTb21lKGJhY2t1cF9kaXIpID0gYmFja3VwX2Rp ciB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbGV0IG11dCByZXMgPSBW ZWM6Om5ldygpOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICF2ZXJp Znlfd29ya2VyLnZlcmlmeV9iYWNrdXBfZGlyKAo+PiBkaWZmIC0tZ2l0IGEvc3JjL2FwaTIvYmFj a3VwL2Vudmlyb25tZW50LnJzIGIvc3JjL2FwaTIvYmFja3VwLyAKPj4gZW52aXJvbm1lbnQucnMK Pj4gaW5kZXggMGZhZjZjOGUuLjA2Njk2Yzc4IDEwMDY0NAo+PiAtLS0gYS9zcmMvYXBpMi9iYWNr dXAvZW52aXJvbm1lbnQucnMKPj4gKysrIGIvc3JjL2FwaTIvYmFja3VwL2Vudmlyb25tZW50LnJz Cj4+IEBAIC03OTUsNyArNzk1LDcgQEAgaW1wbCBCYWNrdXBFbnZpcm9ubWVudCB7Cj4+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1vdmUgfHdvcmtlcnwgewo+PiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHdvcmtlci5sb2dfbWVzc2FnZSgiQXV0b21hdGljYWxseSB2ZXJp ZnlpbmcgbmV3bHkgCj4+IGFkZGVkIHNuYXBzaG90Iik7Cj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgbGV0IHZlcmlmeV93b3JrZXIgPSBWZXJpZnlXb3JrZXI6Om5ldyh3b3JrZXIu Y2xvbmUoKSwgCj4+IGRhdGFzdG9yZSk/Owo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGxldCB2ZXJpZnlfd29ya2VyID0gVmVyaWZ5V29ya2VyOjpuZXcod29ya2VyLmNsb25lKCks IAo+PiBkYXRhc3RvcmUsIE5vbmUsIE5vbmUpPzsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBpZiAhdmVyaWZ5X3dvcmtlci52ZXJpZnlfYmFja3VwX2Rpcl93aXRoX2xvY2so Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAmYmFja3VwX2Rp ciwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHdvcmtlci51 cGlkKCkuY2xvbmUoKSwKPj4gZGlmZiAtLWdpdCBhL3NyYy9iYWNrdXAvdmVyaWZ5LnJzIGIvc3Jj L2JhY2t1cC92ZXJpZnkucnMKPj4gaW5kZXggOTEwYTNlZDUuLmYzY2JlNGQ2IDEwMDY0NAo+PiAt LS0gYS9zcmMvYmFja3VwL3ZlcmlmeS5ycwo+PiArKysgYi9zcmMvYmFja3VwL3ZlcmlmeS5ycwo+ PiBAQCAtMzIsNiArMzIsOCBAQCBwdWIgc3RydWN0IFZlcmlmeVdvcmtlciB7Cj4+IMKgwqDCoMKg wqAgdmVyaWZpZWRfY2h1bmtzOiBBcmM8TXV0ZXg8SGFzaFNldDxbdTg7IDMyXT4+PiwKPj4gwqDC oMKgwqDCoCBjb3JydXB0X2NodW5rczogQXJjPE11dGV4PEhhc2hTZXQ8W3U4OyAzMl0+Pj4sCj4+ IMKgwqDCoMKgwqAgYmFja2VuZDogRGF0YXN0b3JlQmFja2VuZCwKPj4gK8KgwqDCoCByZWFkX3Ro cmVhZHM6IHVzaXplLAo+PiArwqDCoMKgIHZlcmlmeV90aHJlYWRzOiB1c2l6ZSwKPj4gwqAgfQo+ PiDCoCBzdHJ1Y3QgSW5kZXhWZXJpZnlTdGF0ZSB7Cj4+IEBAIC00NCwxMCArNDYsMTMgQEAgc3Ry dWN0IEluZGV4VmVyaWZ5U3RhdGUgewo+PiDCoCB9Cj4+IMKgIGltcGwgVmVyaWZ5V29ya2VyIHsK Pj4gLcKgwqDCoCAvLy8gQ3JlYXRlcyBhIG5ldyBWZXJpZnlXb3JrZXIgZm9yIGEgZ2l2ZW4gdGFz ayB3b3JrZXIgYW5kIAo+PiBkYXRhc3RvcmUuCj4+ICvCoMKgwqAgLy8vIENyZWF0ZXMgYSBuZXcg VmVyaWZ5V29ya2VyIGZvciBhIGdpdmVuIHRhc2sgd29ya2VyIGFuZCAKPj4gZGF0YXN0b3JlLiBc Cj4+ICvCoMKgwqAgLy8vIERlZmF1bHQgdmFsdWVzIGZvciByZWFkX3RocmVhZHM6IDEsIHZlcmlm eV90aHJlYWRzOiA0Cj4gCj4gaXMgdGhpcyBiYWNrc2xhc2ggaW50ZW50aW9uYWw/IEFsc28sIEkg ZG9uJ3QgdGhpbmsgd2Ugc2hvdWxkIGV4cGxpY2l0bHkgCj4gZG9jdW1lbnQgdGhlIGRlZmF1bHRz IGhlcmUuCj4gCj4+IMKgwqDCoMKgwqAgcHViIGZuIG5ldygKPj4gwqDCoMKgwqDCoMKgwqDCoMKg IHdvcmtlcjogQXJjPGR5biBXb3JrZXJUYXNrQ29udGV4dD4sCj4+IMKgwqDCoMKgwqDCoMKgwqDC oCBkYXRhc3RvcmU6IEFyYzxEYXRhU3RvcmU+LAo+PiArwqDCoMKgwqDCoMKgwqAgcmVhZF90aHJl YWRzOiBPcHRpb248dXNpemU+LAo+PiArwqDCoMKgwqDCoMKgwqAgdmVyaWZ5X3RocmVhZHM6IE9w dGlvbjx1c2l6ZT4sCj4+IMKgwqDCoMKgwqAgKSAtPiBSZXN1bHQ8U2VsZiwgRXJyb3I+IHsKPj4g wqDCoMKgwqDCoMKgwqDCoMKgIGxldCBiYWNrZW5kID0gZGF0YXN0b3JlLmJhY2tlbmQoKT87Cj4+ IMKgwqDCoMKgwqDCoMKgwqDCoCBPayhTZWxmIHsKPj4gQEAgLTU4LDYgKzYzLDggQEAgaW1wbCBW ZXJpZnlXb3JrZXIgewo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvLyBzdGFydCB3aXRo IDY0IGNodW5rcyBzaW5jZSB3ZSBhc3N1bWUgdGhlcmUgYXJlIGZldyAKPj4gY29ycnVwdCBvbmVz Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvcnJ1cHRfY2h1bmtzOiAKPj4gQXJjOjpu ZXcoTXV0ZXg6Om5ldyhIYXNoU2V0Ojp3aXRoX2NhcGFjaXR5KDY0KSkpLAo+PiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBiYWNrZW5kLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZWFk X3RocmVhZHM6IHJlYWRfdGhyZWFkcy51bndyYXBfb3IoMSksCj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHZlcmlmeV90aHJlYWRzOiB2ZXJpZnlfdGhyZWFkcy51bndyYXBfb3IoNCksCj4+IMKg wqDCoMKgwqDCoMKgwqDCoCB9KQo+PiDCoMKgwqDCoMKgIH0KPj4gQEAgLTEwMSw3ICsxMDgsNyBA QCBpbXBsIFZlcmlmeVdvcmtlciB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZlcmlm aWVkX2NodW5rczogQXJjOjpjbG9uZSgmc2VsZi52ZXJpZmllZF9jaHVua3MpLAo+PiDCoMKgwqDC oMKgwqDCoMKgwqAgfSk7Cj4+IC3CoMKgwqDCoMKgwqDCoCBsZXQgZGVjb2Rlcl9wb29sID0gUGFy YWxsZWxIYW5kbGVyOjpuZXcoInZlcmlmeSBjaHVuayAKPj4gZGVjb2RlciIsIDQsIHsKPj4gK8Kg wqDCoMKgwqDCoMKgIGxldCBkZWNvZGVyX3Bvb2wgPSBQYXJhbGxlbEhhbmRsZXI6Om5ldygidmVy aWZ5IGNodW5rIAo+PiBkZWNvZGVyIiwgc2VsZi52ZXJpZnlfdGhyZWFkcywgewo+PiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBsZXQgdmVyaWZ5X3N0YXRlID0gQXJjOjpjbG9uZSgmdmVyaWZ5 X3N0YXRlKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbW92ZSB8KGNodW5rLCBkaWdl c3QsIHNpemUpOiAoRGF0YUJsb2IsIFt1ODsgMzJdLCB1NjQpfCB7Cj4+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgbGV0IGNodW5rX2NyeXB0X21vZGUgPSBtYXRjaCBjaHVuay5j cnlwdF9tb2RlKCkgewo+PiBAQCAtMTYzLDcgKzE3MCwxMyBAQCBpbXBsIFZlcmlmeVdvcmtlciB7 Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC5kYXRhc3RvcmUKPj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgLmdldF9jaHVua3NfaW5fb3JkZXIoJippbmRleCwgc2tpcF9jaHVuaywg Y2hlY2tfYWJvcnQpPzsKPj4gLcKgwqDCoMKgwqDCoMKgIGxldCByZWFkZXJfcG9vbCA9IFBhcmFs bGVsSGFuZGxlcjo6bmV3KCJyZWFkIGNodW5rcyIsIDQsIHsKPj4gK8KgwqDCoMKgwqDCoMKgIGxv Zzo6aW5mbyEoCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICLCoCB1c2luZyB7fSByZWFkIGFu ZCB7fSB2ZXJpZnkgdGhyZWFkKHMpIiwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2VsZi5y ZWFkX3RocmVhZHMsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNlbGYudmVyaWZ5X3RocmVh ZHMsCj4+ICvCoMKgwqDCoMKgwqDCoCApOwoKYWxzbywgZm9yZ290IHRvIG1lbnRpb24gdGhhdCB0 aGlzIG5vdyBzaG93cyB1cCBmb3IgZWFjaCBpbmRleCBmaWxlIGJlaW5nIAp2ZXJpZmllZC4gVGhp cyBzaG91bGQgYmUgbW92ZWQgdG8gb25seSBiZSBsb2dnZWQgb25jZSBhdCB0aGUgc3RhcnQgb2Yg CnRoZSB2ZXJpZmljYXRpb24gam9iLgoKPj4gKwo+PiArwqDCoMKgwqDCoMKgwqAgbGV0IHJlYWRl cl9wb29sID0gUGFyYWxsZWxIYW5kbGVyOjpuZXcoInJlYWQgY2h1bmtzIiwgCj4+IHNlbGYucmVh ZF90aHJlYWRzLCB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGxldCBkZWNvZGVyX3Bv b2wgPSBkZWNvZGVyX3Bvb2wuY2hhbm5lbCgpOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBsZXQgdmVyaWZ5X3N0YXRlID0gQXJjOjpjbG9uZSgmdmVyaWZ5X3N0YXRlKTsKPj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgbGV0IGJhY2tlbmQgPSBzZWxmLmJhY2tlbmQuY2xvbmUoKTsK Pj4gZGlmZiAtLWdpdCBhL3NyYy9zZXJ2ZXIvdmVyaWZ5X2pvYi5ycyBiL3NyYy9zZXJ2ZXIvdmVy aWZ5X2pvYi5ycwo+PiBpbmRleCBjODc5MjE3NC4uZTBiMDMxNTUgMTAwNjQ0Cj4+IC0tLSBhL3Ny Yy9zZXJ2ZXIvdmVyaWZ5X2pvYi5ycwo+PiArKysgYi9zcmMvc2VydmVyL3ZlcmlmeV9qb2IucnMK Pj4gQEAgLTQxLDcgKzQxLDEyIEBAIHB1YiBmbiBkb192ZXJpZmljYXRpb25fam9iKAo+PiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIE5vbmUgPT4gRGVmYXVsdDo6ZGVmYXVsdCgp LAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Owo+PiAtwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBsZXQgdmVyaWZ5X3dvcmtlciA9IFZlcmlmeVdvcmtlcjo6bmV3KHdvcmtlci5jbG9uZSgp LCAKPj4gZGF0YXN0b3JlKT87Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGxldCB2ZXJpZnlf d29ya2VyID0gVmVyaWZ5V29ya2VyOjpuZXcoCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgd29ya2VyLmNsb25lKCksCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg ZGF0YXN0b3JlLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZlcmlmaWNhdGlv bl9qb2IucmVhZF90aHJlYWRzLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZl cmlmaWNhdGlvbl9qb2IudmVyaWZ5X3RocmVhZHMsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg ICk/Owo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBsZXQgcmVzdWx0ID0gdmVyaWZ5X3dv cmtlci52ZXJpZnlfYWxsX2JhY2t1cHMoCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgd29ya2VyLnVwaWQoKSwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBucywKPiAKPiAKPiAKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwo+IHBicy1kZXZlbCBtYWlsaW5nIGxpc3QKPiBwYnMtZGV2ZWxAbGlzdHMucHJv eG1veC5jb20KPiBodHRwczovL2xpc3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0 aW5mby9wYnMtZGV2ZWwKPiAKPiAKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KcGJzLWRldmVsIG1haWxpbmcgbGlzdApwYnMtZGV2ZWxAbGlzdHMucHJv eG1veC5jb20KaHR0cHM6Ly9saXN0cy5wcm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGlu Zm8vcGJzLWRldmVsCg==