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 024AB1FF165 for ; Thu, 6 Nov 2025 12:21:44 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 510CB144DA; Thu, 6 Nov 2025 12:22:25 +0100 (CET) Message-ID: <48b1a0a9-314f-4d4d-b2ed-1e3444d6dced@proxmox.com> Date: Thu, 6 Nov 2025 12:22:18 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: Christian Ebner , Proxmox Backup Server development discussion References: <20251105155129.517430-1-n.frey@proxmox.com> <20251105155129.517430-4-n.frey@proxmox.com> <685be513-ba3e-4c78-9ed1-8ff7861aaad0@proxmox.com> <8f047692-43b3-4ec0-8b19-17729172d860@proxmox.com> From: Nicolas Frey Content-Language: en-US In-Reply-To: <8f047692-43b3-4ec0-8b19-17729172d860@proxmox.com> X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1762428119478 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.773 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 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 2/4] api: verify: use worker-threads to determine the number of threads to use 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" T24gMTEvNi8yNSAxMDozMiBBTSwgQ2hyaXN0aWFuIEVibmVyIHdyb3RlOgo+IE9uIDExLzYvMjUg MTA6MjIgQU0sIE5pY29sYXMgRnJleSB3cm90ZToKPj4gT24gMTEvNi8yNSAxMDowOCBBTSwgQ2hy aXN0aWFuIEVibmVyIHdyb3RlOgo+Pj4gUGxlYXNlIGFkZCBhIHNob3J0IGNvbW1pdCBtZXNzYWdl IGRlc2NyaWJpbmcgd2hhdCB0aGUgd29ya2VyIHRocmVhZHMKPj4+IGNvdmVyLCBlLmcuIHRoYXQg dGhpcyBwYXJhbWV0ZXIgY29udHJvbHMgdGhlIG51bWJlciBvZiByZWFkZXIgYW5kCj4+PiBjaHVu ayB2ZXJpZmljYXRpb24gdGhyZWFkcy4KPj4+Cj4+PiBXaGF0IHRyaXBwZWQgbWUgb3ZlciBqdXN0 IG5vdzoKPj4+IElzIHRoaXMgaW50ZW50aW9uYWxseSBub3QgaW5jcmVhc2luZyB0aGUgbnVtYmVy IG9mIGNodW5rIHZlcmlmaWNhdGlvbgo+Pj4gdGhyZWFkcz8gT3Igd2FzIHRoYXQgb3Zlcmxvb2tl ZD8gRnJvbSB0aGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyIEkKPj4+IHN1c3BlY3RlZCB0aGlzIHRv IGFjdCBvbiBib3RoLCByZWFkaW5nIGFuZCB2ZXJpZnlpbmcuIElmIHRoaXMgaXMgbm90Cj4+PiB0 aGUgY2FzZSwgbWF5YmUgdGhlIHBhcmFtZXRlciBzaG91bGQgZ2V0IHJlbmFtZWQgdG8gYSBtb3Jl IHRlbGxpbmcKPj4+IGBwYXJhbGxlbC1jaHVuay1yZWFkZXJzYCBpbnN0ZWFkPwo+Pgo+PiBJIHdh c24ndCBzdXJlIGlmIHRoZSBudW1iZXIgb2YgdGhyZWFkcyBmb3IgdmVyaWZpY2F0aW9uIHNob3Vs ZCBiZQo+PiBjb250cm9sbGVkIHZpYSB0aGlzIGFzIHdlbGwsIGFzIHRoZSBvcmlnaW5hbCBwYXRj aCBvbmx5IGFkZGVkIGEgbmV3Cj4+IHRocmVhZCBwb29sIGZvciByZWFkaW5nLCB3aGVyZWFzIHRo ZSB2ZXJpZmljYXRpb24gcG9vbCB3YXMgYWxyZWFkeQo+PiBpbXBsZW1lbnRlZC4KPj4gSSBwb2lu dGVkIHRoaXMgb3V0IGluIHRoZSBjb3ZlciBsZXR0ZXIsIHRob3VnaCBpdCBtaWdodCBoYXZlIGJl ZW4KPj4gYmV0dGVyIHRvIHB1dCB0aGlzIGhlcmUgdG9vOgo+Pgo+PiBUaGUgbnVtYmVyIG9mIGB3 b3JrZXItdGhyZWFkc2Agb25seSBjb250cm9scyB0aGUgdGhyZWFkIHBvb2wgZm9yCj4+IHJlYWRp bmcsIHRob3VnaCBpZiBpdCBtYWtlcyBzZW5zZSB0byByZXVzZSB0aGlzIGZvciB0aGUgdmVyaWZp Y2F0aW9uCj4+IHBvb2wsIGl0IGNvdWxkIGJlIGFkanVzdGVkIHRvIGRvIHNvIHRvby4KPj4KPj4g SSB0aGluayBpdCBtYWtlcyBzZW5zZSB0byB1c2UgaXQgdG8gY29udHJvbCB0aGUgbnVtYmVyIG9m IHRocmVhZHMgb2YKPj4gYm90aC4gVGhhbmtzIGZvciB0aGUgZmVlZGJhY2ssIEknbGwgYWRqdXN0 IGl0IGFsb25nIHdpdGggdGhlIG90aGVyCj4+IHByb3Bvc2VkIGNoYW5nZXMgaW4gYSB2MiEKPiAK PiBXZWxsLCB0aGF0IHdhcyBqdXN0IGFuIHVuaW5mb3JtZWQgYXNzdW1wdGlvbiBmcm9tIG15IHNp ZGUgd2hlbiByZWFkaW5nCj4gdGhlIHBhcmFtZXRlciBuYW1lIChhbmQgSSBkaWQgbm90IHJlLXJl YWQgdGhlIGNvdmVyIGxldHRlciB0b2RheSBhZnRlcgo+IGhhdmluZyBsb29rZWQgYXQgdGhpcyBx dWlja2x5IHllc3RlcmRheSwgc29ycnkgZm9yIHRoYXQpLgoKVGhhdCBtYWtlcyBzZW5zZSwgdGhl IHBhcmFtZXRlciBuYW1lIGRvZXMgbm90IGFjY3VyYXRlbHkgZGVzY3JpYmUgdGhlCmZ1bmN0aW9u IGl0IHNlcnZlcyBoZXJlIGFueXdheSwgc28gdGhhdCBzaG91bGQgaGF2ZSBiZWVuIG5hbWVkIGEg Yml0CmJldHRlci4KCj4gCj4gQnV0IG1heWJlIHlvdSBjYW4gYWxzbyBldmFsdWF0ZSBpZiBpdCBh Y3R1YWxseSBtYWtlcyBzZW5zZSB0byBjb250cm9sCj4gYm90aCBieSB0aGUgc2FtZSBwYXJhbWV0 ZXIsIG9yIGlmIGl0IG9ubHkgbWFrZXMgc2Vuc2UgdG8gZS5nLiBpbmNyZWFzZQo+IHRoZSBudW1i ZXIgb2YgdmVyaWZpY2F0aW9uIHRhc2tzIChubyBwb2ludCBmb3IgdGhhdCBpZiB0aGUgSU8gcmVt YWlucwo+IHRoZSBib3R0bGVuZWNrKSwgb3IgaWYgaXQgd291bGQgbWFrZSBzZW5zZSB0byBoYXZl IGVpdGhlciAyIHBhcmFtZXRlcnMKPiBvciBjb3VwbGUgdGhlbSBieSBzb21lIHByb3BvcnRpb25h bGl0eSBjb25zdGFudC4KPiAKCkkgaGFkIGFuIGlkZWEgYWxvbmcgdGhlIGxpbmVzIG9mOgoKc2Vs Zi53b3JrZXJfdGhyZWFkcy5tdWwoMikuY2xhbXAoNCwgMzIpLAoKdGhvdWdoIHRoZSBwcm9wb3J0 aW9uYWxpdHkgZmFjdG9yIHNob3VsZCBiZSB0ZXN0ZWQgdG8gZGV0ZXJtaW5lIHdoYXQKd291bGQg YWN0dWFsbHkgYmUgc2Vuc2libGUgaGVyZSBhbmQgb2YgY291cnNlIGJlIGRvY3VtZW50ZWQgYWNj b3JkaW5nbHkuCgpJIGFsc28gdGhvdWdodCBhIG1pbmltdW0gb2YgNCB0aHJlYWRzIGZvciB2ZXJp ZmljYXRpb24gbWFrZXMgc2Vuc2UsIGFzCndoZW4gdGhlIGRlZmF1bHQgdmFsdWUgb2YgMSB0aHJl YWQgaXMgdXNlZCwgaXQgaGFzIHNvbWV3aGF0IHRoZSBzYW1lCmJlaGF2aW9yIGFzIGJlZm9yZSBh ZGRpbmcgdGhlIHJlYWQgdGhyZWFkIHBvb2wgKGkuZS4gMSB0aHJlYWQgZm9yCnJlYWRpbmcsIDQg dGhyZWFkcyBmb3IgdmVyaWZpY2F0aW9uKSBhbmQgd291bGQgc2NhbGUgc29tZXdoYXQKYWNjb3Jk aW5nbHkuIFRoZSB0aHJlYWRzIHNob3VsZCBhbHNvIGNsYW1wZWQgdG8gYSBtYXggb2YgMzIgdG8g cmVzcGVjdAp0aGUgY29uc3RyYWludHMgb2YgdGhlIHNjaGVtYSBhbHNvIHN0YXRpbmcgMzIgYXMg YSBtYXguCgpXaGF0IGRvIHlvdSB0aGluaz8KCj4+IMKgID4KPj4+IGZ1cnRoZXIgY29tbWVudCBp bmxpbmUKPj4+IE9uIDExLzUvMjUgNDo1MSBQTSwgTmljb2xhcyBGcmV5IHdyb3RlOgo+Pj4+IFNp Z25lZC1vZmYtYnk6IE5pY29sYXMgRnJleSA8bi5mcmV5QHByb3htb3guY29tPgo+Pj4+IC0tLQo+ Pj4+IMKgwqAgc3JjL2FwaTIvYWRtaW4vZGF0YXN0b3JlLnJzwqDCoMKgIHwgMTMgKysrKysrKysr KystLQo+Pj4+IMKgwqAgc3JjL2FwaTIvYmFja3VwL2Vudmlyb25tZW50LnJzIHzCoCAyICstCj4+ Pj4gwqDCoCBzcmMvYmFja3VwL3ZlcmlmeS5yc8KgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCA1ICsr KystCj4+Pj4gwqDCoCBzcmMvc2VydmVyL3ZlcmlmeV9qb2IucnPCoMKgwqDCoMKgwqAgfMKgIDMg KystCj4+Pj4gwqDCoCA0IGZpbGVzIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDUgZGVsZXRp b25zKC0pCj4+Pj4KPj4+PiBkaWZmIC0tZ2l0IGEvc3JjL2FwaTIvYWRtaW4vZGF0YXN0b3JlLnJz IGIvc3JjL2FwaTIvYWRtaW4vCj4+Pj4gZGF0YXN0b3JlLnJzCj4+Pj4gaW5kZXggZDE5MmVlMzku LjY5YTA5MDgxIDEwMDY0NAo+Pj4+IC0tLSBhL3NyYy9hcGkyL2FkbWluL2RhdGFzdG9yZS5ycwo+ Pj4+ICsrKyBiL3NyYy9hcGkyL2FkbWluL2RhdGFzdG9yZS5ycwo+Pj4+IEBAIC02NzcsNiArNjc3 LDE0IEBAIHB1YiBhc3luYyBmbiBzdGF0dXMoCj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHNjaGVtYTogTlNfTUFYX0RFUFRIX1NDSEVNQSwKPj4+PiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgb3B0aW9uYWw6IHRydWUsCj4+Pj4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCB9LAo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJ3b3Jr ZXItdGhyZWFkcyI6IHsKPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRlc2Ny aXB0aW9uOiAiU2V0IHRoZSBudW1iZXIgb2Ygd29ya2VyIHRocmVhZHMgdG8KPj4+PiB1c2UgZm9y IHRoZSBqb2IiLAo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdHlwZTogSW50 ZWdlciwKPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG9wdGlvbmFsOiB0cnVl LAo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbWluaW11bTogMSwKPj4+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1heGltdW06IDMyLAo+Pj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGVmYXVsdDogMSwKPj4+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCB9LAo+Pj4KPj4+IEFzIG1lbnRpb25lZCBvbiB0aGUgcGJzLWFwaS10eXBlcyBwYXRj aCwgdGhpcyBzaG91bGQgcmV1c2UgdGhlIHNhbWUKPj4+IHNjaGVtYSBhcyAod2lsbCBiZSkgZGVm aW5lZCB0aGVyZSwgc28gdGhpcyBkb2VzIG5vdCBiZSB0byBiZSByZS0KPj4+IGRlZmluZWQgYW5k IHN0YXlzIGluIHN5bmMuCj4+Pgo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0sCj4+Pj4gwqDC oMKgwqDCoMKgIH0sCj4+Pj4gwqDCoMKgwqDCoMKgIHJldHVybnM6IHsKPj4+PiBAQCAtNjkwLDcg KzY5OCw3IEBAIHB1YiBhc3luYyBmbiBzdGF0dXMoCj4+Pj4gwqDCoCApXQo+Pj4+IMKgwqAgLy8v IFZlcmlmeSBiYWNrdXBzLgo+Pj4+IMKgwqAgLy8vCj4+Pj4gLS8vLyBUaGlzIGZ1bmN0aW9uIGNh biB2ZXJpZnkgYSBzaW5nbGUgYmFja3VwIHNuYXBzaG90LCBhbGwgYmFja3VwCj4+Pj4gZnJvbSBh IGJhY2t1cCBncm91cCwKPj4+PiArLy8vIFRoaXMgZnVuY3Rpb24gY2FuIHZlcmlmeSBhIHNpbmds ZSBiYWNrdXAgc25hcHNob3QsIGFsbCBiYWNrdXBzCj4+Pj4gZnJvbSBhIGJhY2t1cCBncm91cCwK Pj4+PiDCoMKgIC8vLyBvciBhbGwgYmFja3VwcyBpbiB0aGUgZGF0YXN0b3JlLgo+Pj4+IMKgwqAg I1thbGxvdyhjbGlwcHk6OnRvb19tYW55X2FyZ3VtZW50cyldCj4+Pj4gwqDCoCBwdWIgZm4gdmVy aWZ5KAo+Pj4+IEBAIC03MDIsNiArNzEwLDcgQEAgcHViIGZuIHZlcmlmeSgKPj4+PiDCoMKgwqDC oMKgwqAgaWdub3JlX3ZlcmlmaWVkOiBPcHRpb248Ym9vbD4sCj4+Pj4gwqDCoMKgwqDCoMKgIG91 dGRhdGVkX2FmdGVyOiBPcHRpb248aTY0PiwKPj4+PiDCoMKgwqDCoMKgwqAgbWF4X2RlcHRoOiBP cHRpb248dXNpemU+LAo+Pj4+ICvCoMKgwqAgd29ya2VyX3RocmVhZHM6IE9wdGlvbjx1c2l6ZT4s Cj4+Pgo+Pj4gdGhpcyBjb3VsZCBiZSBhIHBsYWluIGB1c2l6ZWAgYWxyZWFkeSwgc28gaXQgZG9l cyBub3QgbmVlZCB0byBiZQo+Pj4gdW53cmFwcGVkIGZvciBlYWNoIHBhcmFsbGVsIHdvcmtlciBp bnN0YW50aWF0aW9uLiBUaGUgdW53cmFwcGluZyBhbmQKPj4+IHNldHRpbmcgdG8gZGVmYXVsdCBj YW4gYWxyZWFkeSBoYXBwZW4gaW4gdGhlIGNvbnN0cnVjdG9yLgo+Pj4KPj4+PiDCoMKgwqDCoMKg wqAgcnBjZW52OiAmbXV0IGR5biBScGNFbnZpcm9ubWVudCwKPj4+PiDCoMKgICkgLT4gUmVzdWx0 PFZhbHVlLCBFcnJvcj4gewo+Pj4+IMKgwqDCoMKgwqDCoCBsZXQgYXV0aF9pZDogQXV0aGlkID0g cnBjZW52LmdldF9hdXRoX2lkKCkudW53cmFwKCkucGFyc2UoKT87Cj4+Pj4gQEAgLTc4MSw3ICs3 OTAsNyBAQCBwdWIgZm4gdmVyaWZ5KAo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIGF1dGhfaWQu dG9fc3RyaW5nKCksCj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgdG9fc3Rkb3V0LAo+Pj4+IMKg wqDCoMKgwqDCoMKgwqDCoMKgIG1vdmUgfHdvcmtlcnwgewo+Pj4+IC3CoMKgwqDCoMKgwqDCoMKg wqDCoMKgIGxldCB2ZXJpZnlfd29ya2VyID0gVmVyaWZ5V29ya2VyOjpuZXcod29ya2VyLmNsb25l KCksCj4+Pj4gZGF0YXN0b3JlKT87Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbGV0IHZl cmlmeV93b3JrZXIgPSBWZXJpZnlXb3JrZXI6Om5ldyh3b3JrZXIuY2xvbmUoKSwKPj4+PiBkYXRh c3RvcmUsIHdvcmtlcl90aHJlYWRzKT87Cj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBsZXQgZmFpbGVkX2RpcnMgPSBpZiBsZXQgU29tZShiYWNrdXBfZGlyKSA9Cj4+Pj4gYmFja3Vw X2RpciB7Cj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGxldCBtdXQg cmVzID0gVmVjOjpuZXcoKTsKPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgaWYgIXZlcmlmeV93b3JrZXIudmVyaWZ5X2JhY2t1cF9kaXIoCj4+Pj4gZGlmZiAtLWdpdCBh L3NyYy9hcGkyL2JhY2t1cC9lbnZpcm9ubWVudC5ycyBiL3NyYy9hcGkyL2JhY2t1cC8KPj4+PiBl bnZpcm9ubWVudC5ycwo+Pj4+IGluZGV4IDBlOGVhYjFiLi41ZTZhNzNiOSAxMDA2NDQKPj4+PiAt LS0gYS9zcmMvYXBpMi9iYWNrdXAvZW52aXJvbm1lbnQucnMKPj4+PiArKysgYi9zcmMvYXBpMi9i YWNrdXAvZW52aXJvbm1lbnQucnMKPj4+PiBAQCAtODEyLDcgKzgxMiw3IEBAIGltcGwgQmFja3Vw RW52aXJvbm1lbnQgewo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbW92ZSB8d29y a2VyfCB7Cj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHdvcmtlci5s b2dfbWVzc2FnZSgiQXV0b21hdGljYWxseSB2ZXJpZnlpbmcgbmV3bHkKPj4+PiBhZGRlZCBzbmFw c2hvdCIpOwo+Pj4+IMKgwqAgLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBsZXQgdmVy aWZ5X3dvcmtlciA9Cj4+Pj4gVmVyaWZ5V29ya2VyOjpuZXcod29ya2VyLmNsb25lKCksIGRhdGFz dG9yZSk/Owo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbGV0IHZlcmlmeV93 b3JrZXIgPQo+Pj4+IFZlcmlmeVdvcmtlcjo6bmV3KHdvcmtlci5jbG9uZSgpLCBkYXRhc3RvcmUs IE5vbmUpPzsKPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgIXZl cmlmeV93b3JrZXIudmVyaWZ5X2JhY2t1cF9kaXJfd2l0aF9sb2NrKAo+Pj4+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICZiYWNrdXBfZGlyLAo+Pj4+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHdvcmtlci51cGlkKCkuY2xv bmUoKSwKPj4+PiBkaWZmIC0tZ2l0IGEvc3JjL2JhY2t1cC92ZXJpZnkucnMgYi9zcmMvYmFja3Vw L3ZlcmlmeS5ycwo+Pj4+IGluZGV4IDdmOTFmMzhjLi5lMTFkYmE4ZSAxMDA2NDQKPj4+PiAtLS0g YS9zcmMvYmFja3VwL3ZlcmlmeS5ycwo+Pj4+ICsrKyBiL3NyYy9iYWNrdXAvdmVyaWZ5LnJzCj4+ Pj4gQEAgLTMyLDYgKzMyLDcgQEAgcHViIHN0cnVjdCBWZXJpZnlXb3JrZXIgewo+Pj4+IMKgwqDC oMKgwqDCoCB2ZXJpZmllZF9jaHVua3M6IEFyYzxNdXRleDxIYXNoU2V0PFt1ODsgMzJdPj4+LAo+ Pj4+IMKgwqDCoMKgwqDCoCBjb3JydXB0X2NodW5rczogQXJjPE11dGV4PEhhc2hTZXQ8W3U4OyAz Ml0+Pj4sCj4+Pj4gwqDCoMKgwqDCoMKgIGJhY2tlbmQ6IERhdGFzdG9yZUJhY2tlbmQsCj4+Pj4g K8KgwqDCoCB3b3JrZXJfdGhyZWFkczogT3B0aW9uPHVzaXplPiwKPj4+Cj4+PiAuLi4gcGxhaW4g YHVzaXplYCBoZXJlCj4+Pgo+Pj4+IMKgwqAgfQo+Pj4+IMKgwqAgwqAgaW1wbCBWZXJpZnlXb3Jr ZXIgewo+Pj4+IEBAIC0zOSw2ICs0MCw3IEBAIGltcGwgVmVyaWZ5V29ya2VyIHsKPj4+PiDCoMKg wqDCoMKgwqAgcHViIGZuIG5ldygKPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoCB3b3JrZXI6IEFy YzxkeW4gV29ya2VyVGFza0NvbnRleHQ+LAo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRhdGFz dG9yZTogQXJjPERhdGFTdG9yZT4sCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHdvcmtlcl90aHJlYWRz OiBPcHRpb248dXNpemU+LAo+Pj4+IMKgwqDCoMKgwqDCoCApIC0+IFJlc3VsdDxTZWxmLCBFcnJv cj4gewo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIGxldCBiYWNrZW5kID0gZGF0YXN0b3JlLmJh Y2tlbmQoKT87Cj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgT2soU2VsZiB7Cj4+Pj4gQEAgLTQ5 LDYgKzUxLDcgQEAgaW1wbCBWZXJpZnlXb3JrZXIgewo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgLy8gc3RhcnQgd2l0aCA2NCBjaHVua3Mgc2luY2Ugd2UgYXNzdW1lIHRoZXJlIGFy ZSBmZXcKPj4+PiBjb3JydXB0IG9uZXMKPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IGNvcnJ1cHRfY2h1bmtzOgo+Pj4+IEFyYzo6bmV3KE11dGV4OjpuZXcoSGFzaFNldDo6d2l0aF9j YXBhY2l0eSg2NCkpKSwKPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJhY2tlbmQs Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgd29ya2VyX3RocmVhZHMsCj4+Pgo+Pj4gdW53 cmFwX29yKDQpIGhlcmUuLi4gb3IgZXZlbiBkZWZpbmUgYSBjb25zdGFudCBmb3IgdGhlIGRlZmF1 bHQgdmFsdWUsCj4+PiBhbHRob3VnaCBpZiBpdCBpcyBwbGFjZWQgaGVyZSwgaXQgd2lsbCBvbmx5 IG9jY3VyIG9uY2UuCj4+Pgo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0pCj4+Pj4gwqDCoMKg wqDCoMKgIH0KPj4+PiDCoMKgIEBAIC0yMjAsNyArMjIzLDcgQEAgaW1wbCBWZXJpZnlXb3JrZXIg ewo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLmRhdGFzdG9yZQo+Pj4+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLmdldF9jaHVua3NfaW5fb3JkZXIoJippbmRleCwgc2tp cF9jaHVuaywKPj4+PiBjaGVja19hYm9ydCk/Owo+Pj4+IMKgwqAgLcKgwqDCoMKgwqDCoMKgIGxl dCByZWFkZXJfcG9vbCA9IFBhcmFsbGVsSGFuZGxlcjo6bmV3KCJyZWFkIGNodW5rcyIsCj4+Pj4g NCwgewo+Pj4+ICvCoMKgwqDCoMKgwqDCoCBsZXQgcmVhZGVyX3Bvb2wgPSBQYXJhbGxlbEhhbmRs ZXI6Om5ldygicmVhZCBjaHVua3MiLAo+Pj4+IHNlbGYud29ya2VyX3RocmVhZHMudW53cmFwX29y KDQpLCB7Cj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBsZXQgZGVjb2Rlcl9wb29s ID0gZGVjb2Rlcl9wb29sLmNoYW5uZWwoKTsKPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGxldCBkYXRhc3RvcmUgPSBBcmM6OmNsb25lKCZzZWxmLmRhdGFzdG9yZSk7Cj4+Pj4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBsZXQgY29ycnVwdF9jaHVua3MgPSBBcmM6OmNsb25l KCZzZWxmLmNvcnJ1cHRfY2h1bmtzKTsKPj4+PiBkaWZmIC0tZ2l0IGEvc3JjL3NlcnZlci92ZXJp Znlfam9iLnJzIGIvc3JjL3NlcnZlci92ZXJpZnlfam9iLnJzCj4+Pj4gaW5kZXggYzg3OTIxNzQu LjlkNzkwYjA3IDEwMDY0NAo+Pj4+IC0tLSBhL3NyYy9zZXJ2ZXIvdmVyaWZ5X2pvYi5ycwo+Pj4+ ICsrKyBiL3NyYy9zZXJ2ZXIvdmVyaWZ5X2pvYi5ycwo+Pj4+IEBAIC00MSw3ICs0MSw4IEBAIHB1 YiBmbiBkb192ZXJpZmljYXRpb25fam9iKAo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBOb25lID0+IERlZmF1bHQ6OmRlZmF1bHQoKSwKPj4+PiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIH07Cj4+Pj4gwqDCoCAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBsZXQg dmVyaWZ5X3dvcmtlciA9IFZlcmlmeVdvcmtlcjo6bmV3KHdvcmtlci5jbG9uZSgpLAo+Pj4+IGRh dGFzdG9yZSk/Owo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGxldCB2ZXJpZnlfd29ya2Vy ID0KPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFZlcmlmeVdvcmtlcjo6bmV3 KHdvcmtlci5jbG9uZSgpLCBkYXRhc3RvcmUsCj4+Pj4gdmVyaWZpY2F0aW9uX2pvYi53b3JrZXJf dGhyZWFkcyk/Owo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbGV0IHJlc3VsdCA9 IHZlcmlmeV93b3JrZXIudmVyaWZ5X2FsbF9iYWNrdXBzKAo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCB3b3JrZXIudXBpZCgpLAo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBucywKPj4+Cj4+Cj4gCgoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCnBicy1kZXZlbCBtYWlsaW5nIGxpc3QKcGJzLWRl dmVsQGxpc3RzLnByb3htb3guY29tCmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9t YWlsbWFuL2xpc3RpbmZvL3Bicy1kZXZlbAo=