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 0E94D1FF136 for ; Mon, 26 Jan 2026 14:20:15 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id E898ADBE1; Mon, 26 Jan 2026 14:20:35 +0100 (CET) Message-ID: <5aea0de2-2cc1-4c30-a609-2cdb1a2497a6@proxmox.com> Date: Mon, 26 Jan 2026 14:20:30 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: Christian Ebner , Proxmox Backup Server development discussion References: <20260123154147.222215-1-r.obkircher@proxmox.com> <20260123154147.222215-10-r.obkircher@proxmox.com> <767de04e-3f23-4cf3-8ad8-45d4c2d4013f@proxmox.com> Content-Language: en-US, de-AT From: Robert Obkircher In-Reply-To: <767de04e-3f23-4cf3-8ad8-45d4c2d4013f@proxmox.com> X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1769433567213 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.053 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 v4 proxmox-backup 09/11] datastore: use u64 instead of usize for fidx writer content size 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" Ck9uIDEvMjYvMjYgMTI6MzgsIENocmlzdGlhbiBFYm5lciB3cm90ZToKPiBOb3Qgc3VyZSBhYm91 dCB0aGVzZSBjaGFuZ2VzLCBtYXliZSBvdGhlciBkZXZzIGhhdmUgYSBzdHJvbmdlcgo+IG9waW5p b24gb24gdGhpcyBvbmUuCj4KPiBJZiB3ZSBkbyB3YW50IHRvIGFkYXB0IHRoaXMsIHRoZW4gSU1I TyB0aGlzIHNob3VsZCBob3dldmVyIGJlIGRvbmUKPiB0aHJvdWdob3V0IHRoZSB3aG9sZSBjb2Rl YmFzZSwgZm9yIHRoZSBkeW5hbWljIGluZGV4IGFzIHdlbGwuClRoZSBkeW5hbWljIHJlYWRlci93 cml0ZXIgYW5kIHRoZSBGaXhlZEluZGV4UmVhZGVyIGFscmVhZHkgdXNlIHU2NCBmb3IKY29udGVu dApzaXplIGFuZCBvZmZzZXRzLiBUaGUgQVBJIG9ubHkgc3VwcG9ydHMgNCBNaUIgY2h1bmtzIGFu eXdheSwgc28gaXQKc2hvdWxkbid0IG1hdHRlcgppZiB3ZSBrZWVwIHVzaW5nIHUzMiB0aGVyZS4K CkZpeGVkSW5kZXhSZWFkZXIgc3RpbGwgY2FzdHMgdGhlIGNodW5rX3NpemUgZnJvbSB1NjQgdG8g dXNpemUgYW5kCmJhY2suIEkgcGxhbm5lZAp0byBjaGFuZ2UgdGhpcyB3aGlsZSBhZGRpbmcgMTZr YiBwYWdlIHNpemUgc3VwcG9ydCB0byB0aGUgUmVhZGVycwooIzcyNDQpIGFuZCBJCmFsc2/CoCB3 YW50ZWQgdG8gYWRkIGFuIGlzX3Bvd2VyX29mX3R3byBjaGVjaywgYmVjYXVzZSB0aGUgbW9kdWxv CmNvbXB1dGF0aW9uCmluIGNodW5rX2Zyb21fb2Zmc2V0IHJlbGllcyBvbiB0aGF0Lgo+IMKgCj4K Pgo+IE9uIDEvMjMvMjYgNDo0MyBQTSwgUm9iZXJ0IE9ia2lyY2hlciB3cm90ZToKPj4gVGhpcyBp cyBjbG9zZXIgdG8gd2hhdCB0aGUgZmlsZSBmb3JtYXQgc3VwcG9ydHMuCj4+Cj4+IFNpZ25lZC1v ZmYtYnk6IFJvYmVydCBPYmtpcmNoZXIgPHIub2JraXJjaGVyQHByb3htb3guY29tPgo+PiAtLS0K Pj4gwqAgcGJzLWRhdGFzdG9yZS9zcmMvZGF0YXN0b3JlLnJzwqDCoCB8wqAgNiArLS0KPj4gwqAg cGJzLWRhdGFzdG9yZS9zcmMvZml4ZWRfaW5kZXgucnMgfCA2OQo+PiArKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLQo+PiDCoCBzcmMvYXBpMi9iYWNrdXAvZW52aXJvbm1lbnQucnPCoMKg IHzCoCA2ICstLQo+PiDCoCBzcmMvYXBpMi9iYWNrdXAvbW9kLnJzwqDCoMKgwqDCoMKgwqDCoMKg wqAgfMKgIDIgKy0KPj4gwqAgNCBmaWxlcyBjaGFuZ2VkLCA0MiBpbnNlcnRpb25zKCspLCA0MSBk ZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL3Bicy1kYXRhc3RvcmUvc3JjL2RhdGFzdG9y ZS5ycwo+PiBiL3Bicy1kYXRhc3RvcmUvc3JjL2RhdGFzdG9yZS5ycwo+PiBpbmRleCA1NmRmY2U2 ZS4uODc3MGQ5NDIgMTAwNjQ0Cj4+IC0tLSBhL3Bicy1kYXRhc3RvcmUvc3JjL2RhdGFzdG9yZS5y cwo+PiArKysgYi9wYnMtZGF0YXN0b3JlL3NyYy9kYXRhc3RvcmUucnMKPj4gQEAgLTY5NSwxMSAr Njk1LDExIEBAIGltcGwgRGF0YVN0b3JlIHsKPj4gwqDCoMKgwqDCoCBwdWIgZm4gY3JlYXRlX2Zp eGVkX3dyaXRlcjxQOiBBc1JlZjxQYXRoPj4oCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAmc2VsZiwK Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIGZpbGVuYW1lOiBQLAo+PiAtwqDCoMKgwqDCoMKgwqAgc2l6 ZTogT3B0aW9uPHVzaXplPiwKPj4gLcKgwqDCoMKgwqDCoMKgIGNodW5rX3NpemU6IHVzaXplLAo+ PiArwqDCoMKgwqDCoMKgwqAgc2l6ZTogT3B0aW9uPHU2ND4sCj4+ICvCoMKgwqDCoMKgwqDCoCBj aHVua19zaXplOiB1MzIsCj4KPiBxdWVzdGlvbjogaXMgdGhpcyBpbnRlbnRpb25hbGx5IHNldCB0 byB1MzIgaW5zdGVhZCBvZiB1NjQgbGlrZSBmb3IKPiBvdGhlciBjaHVuayBzaXplcyBpbiB0aGlz IHBhdGNoPyBTaG91bGQgYmUgY29uc2lzdGVudCAuLi7CoApJJ2xsIGNoYW5nZSBpdCB0byB1NjQu Cj4KPj4gwqDCoMKgwqDCoCApIC0+IFJlc3VsdDxGaXhlZEluZGV4V3JpdGVyLCBFcnJvcj4gewo+ PiDCoMKgwqDCoMKgwqDCoMKgwqAgbGV0IGZ1bGxfcGF0aCA9Cj4+IHNlbGYuaW5uZXIuY2h1bmtf c3RvcmUucmVsYXRpdmVfcGF0aChmaWxlbmFtZS5hc19yZWYoKSk7Cj4+IC3CoMKgwqDCoMKgwqDC oCBGaXhlZEluZGV4V3JpdGVyOjpjcmVhdGUoZnVsbF9wYXRoLCBzaXplLCBjaHVua19zaXplKQo+ PiArwqDCoMKgwqDCoMKgwqAgRml4ZWRJbmRleFdyaXRlcjo6Y3JlYXRlKGZ1bGxfcGF0aCwgc2l6 ZSwgY2h1bmtfc2l6ZS5pbnRvKCkpCj4+IMKgwqDCoMKgwqAgfQo+PiDCoCDCoMKgwqDCoMKgIHB1 YiBmbiBvcGVuX2ZpeGVkX3JlYWRlcjxQOiBBc1JlZjxQYXRoPj4oCj4+IGRpZmYgLS1naXQgYS9w YnMtZGF0YXN0b3JlL3NyYy9maXhlZF9pbmRleC5ycwo+PiBiL3Bicy1kYXRhc3RvcmUvc3JjL2Zp eGVkX2luZGV4LnJzCj4+IGluZGV4IDA1NmFlMDdiLi5jMjg4ODM3MiAxMDA2NDQKPj4gLS0tIGEv cGJzLWRhdGFzdG9yZS9zcmMvZml4ZWRfaW5kZXgucnMKPj4gKysrIGIvcGJzLWRhdGFzdG9yZS9z cmMvZml4ZWRfaW5kZXgucnMKPj4gQEAgLTIxNCw4ICsyMTQsOCBAQCBwdWIgc3RydWN0IEZpeGVk SW5kZXhXcml0ZXIgewo+PiDCoMKgwqDCoMKgIGZpbGU6IEZpbGUsCj4+IMKgwqDCoMKgwqAgZmls ZW5hbWU6IFBhdGhCdWYsCj4+IMKgwqDCoMKgwqAgdG1wX2ZpbGVuYW1lOiBQYXRoQnVmLAo+PiAt wqDCoMKgIGNodW5rX3NpemU6IHVzaXplLAo+PiAtwqDCoMKgIHNpemU6IHVzaXplLAo+PiArwqDC oMKgIGNodW5rX3NpemU6IHU2NCwKPj4gK8KgwqDCoCBzaXplOiB1NjQsCj4+IMKgwqDCoMKgwqAg aW5kZXhfbGVuZ3RoOiB1c2l6ZSwKPj4gwqDCoMKgwqDCoCBpbmRleF9jYXBhY2l0eTogdXNpemUs Cj4+IMKgwqDCoMKgwqAgaW5kZXg6ICptdXQgdTgsCj4+IEBAIC0yNDgsOCArMjQ4LDggQEAgaW1w bCBGaXhlZEluZGV4V3JpdGVyIHsKPj4gwqDCoMKgwqDCoCAvLyBSZXF1aXJlcyBvYnRhaW5pbmcg YSBzaGFyZWQgY2h1bmsgc3RvcmUgbG9jayBiZWZvcmVoYW5kCj4+IMKgwqDCoMKgwqAgcHViIGZu IGNyZWF0ZSgKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGZ1bGxfcGF0aDogaW1wbCBJbnRvPFBhdGhC dWY+LAo+PiAtwqDCoMKgwqDCoMKgwqAga25vd25fc2l6ZTogT3B0aW9uPHVzaXplPiwKPj4gLcKg wqDCoMKgwqDCoMKgIGNodW5rX3NpemU6IHVzaXplLAo+PiArwqDCoMKgwqDCoMKgwqAga25vd25f c2l6ZTogT3B0aW9uPHU2ND4sCj4+ICvCoMKgwqDCoMKgwqDCoCBjaHVua19zaXplOiB1NjQsCj4+ IMKgwqDCoMKgwqAgKSAtPiBSZXN1bHQ8U2VsZiwgRXJyb3I+IHsKPj4gwqDCoMKgwqDCoMKgwqDC oMKgIGxldCBmdWxsX3BhdGggPSBmdWxsX3BhdGguaW50bygpOwo+PiDCoMKgwqDCoMKgwqDCoMKg wqAgbGV0IG11dCB0bXBfcGF0aCA9IGZ1bGxfcGF0aC5jbG9uZSgpOwo+PiBAQCAtMjg3LDEwICsy ODcsMTMgQEAgaW1wbCBGaXhlZEluZGV4V3JpdGVyIHsKPj4gwqAgwqDCoMKgwqDCoMKgwqDCoMKg IGZpbGUud3JpdGVfYWxsKCZidWZmZXIpPzsKPj4gwqAgLcKgwqDCoMKgwqDCoMKgIGxldCAoaW5k ZXhfbGVuZ3RoLCBpbmRleF9jYXBhY2l0eSkgPSBrbm93bl9zaXplCj4+IC3CoMKgwqDCoMKgwqDC oMKgwqDCoMKgIC5tYXAofHN8IHMuZGl2X2NlaWwoY2h1bmtfc2l6ZSkpCj4+IC3CoMKgwqDCoMKg wqDCoMKgwqDCoMKgIC5tYXAofGxlbnwgKGxlbiwgbGVuKSkKPj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgLnVud3JhcF9vcigoMCwgU2VsZjo6SU5JVElBTF9DQVBBQ0lUWSkpOwo+PiArwqDCoMKg wqDCoMKgwqAgbGV0IChpbmRleF9sZW5ndGgsIGluZGV4X2NhcGFjaXR5KSA9IG1hdGNoIGtub3du X3NpemUgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBTb21lKHMpID0+IHsKPj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBsZXQgbGVuID0gcy5kaXZfY2VpbChjaHVua19zaXpl KS50cnlfaW50bygpPzsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAobGVuLCBs ZW4pCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqAgTm9uZSA9PiAoMCwgU2VsZjo6SU5JVElBTF9DQVBBQ0lUWSksCj4+ICvCoMKgwqDCoMKgwqDC oCB9Owo+PiDCoCDCoMKgwqDCoMKgwqDCoMKgwqAgbGV0IGluZGV4X3NpemUgPSBpbmRleF9jYXBh Y2l0eSAqIDMyOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgbml4Ojp1bmlzdGQ6OmZ0cnVuY2F0ZSgm ZmlsZSwgKGhlYWRlcl9zaXplICsgaW5kZXhfc2l6ZSkKPj4gYXMgaTY0KT87Cj4+IEBAIC0zNzYs MTMgKzM3OSwxMyBAQCBpbXBsIEZpeGVkSW5kZXhXcml0ZXIgewo+PiDCoMKgwqDCoMKgIC8vLyBU aGUgc2l6ZSBhbHNvIGJlY29tZXMgZml4ZWQgYXMgc29vbiBhcyBpdCBpcyBubyBsb25nZXIKPj4g ZGl2aXNpYmxlCj4+IMKgwqDCoMKgwqAgLy8vIGJ5IHRoZSBibG9jayBzaXplLCB0byBlbnN1cmUg dGhhdCBvbmx5IHRoZSBsYXN0IGJsb2NrIGNhbiBiZQo+PiDCoMKgwqDCoMKgIC8vLyBzbWFsbGVy Lgo+PiAtwqDCoMKgIGZuIGdyb3dfdG9fc2l6ZSgmbXV0IHNlbGYsIHJlcXVlc3RlZF9zaXplOiB1 c2l6ZSkgLT4KPj4gUmVzdWx0PCgpLCBFcnJvcj4gewo+PiArwqDCoMKgIGZuIGdyb3dfdG9fc2l6 ZSgmbXV0IHNlbGYsIHJlcXVlc3RlZF9zaXplOiB1NjQpIC0+IFJlc3VsdDwoKSwKPj4gRXJyb3I+ IHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGlmIHNlbGYuc2l6ZSA8IHJlcXVlc3RlZF9zaXplIHsK Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgIXNlbGYuZ3Jvd2FibGVfc2l6ZSB7Cj4+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYmFpbCEoInJlZnVzaW5nIHRvIHJl c2l6ZSBmcm9tIHt9IHRvCj4+IHtyZXF1ZXN0ZWRfc2l6ZX0iLCBzZWxmLnNpemUpOwo+PiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGxldCBu ZXdfbGVuID0gcmVxdWVzdGVkX3NpemUuZGl2X2NlaWwoc2VsZi5jaHVua19zaXplKTsKPj4gLcKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgbmV3X2xlbiAqIHNlbGYuY2h1bmtfc2l6ZSAhPSByZXF1 ZXN0ZWRfc2l6ZSB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGxldCBuZXdfbGVuID0KPj4g cmVxdWVzdGVkX3NpemUuZGl2X2NlaWwoc2VsZi5jaHVua19zaXplKS50cnlfaW50bygpPzsKPj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgbmV3X2xlbiBhcyB1NjQgKiBzZWxmLmNodW5rX3Np emUgIT0gcmVxdWVzdGVkX3NpemUgewo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIC8vIG5vdCBhIGZ1bGwgY2h1bmssIHNvIHRoaXMgbXVzdCBiZSB0aGUgbGFzdCBvbmUKPj4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzZWxmLmdyb3dhYmxlX3NpemUgPSBm YWxzZTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzZWxmLnNldF9pbmRl eF9jYXBhY2l0eV9vcl91bm1hcChuZXdfbGVuKT87Cj4+IEBAIC00NjMsMTIgKzQ2NiwxMCBAQCBp bXBsIEZpeGVkSW5kZXhXcml0ZXIgewo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgT2soaW5kZXhfY3N1 bSkKPj4gwqDCoMKgwqDCoCB9Cj4+IMKgIC3CoMKgwqAgZm4gY2hlY2tfY2h1bmtfYWxpZ25tZW50 KCZzZWxmLCBvZmZzZXQ6IHVzaXplLCBjaHVua19sZW46Cj4+IHVzaXplKSAtPiBSZXN1bHQ8dXNp emUsIEVycm9yPiB7Cj4+IC3CoMKgwqDCoMKgwqDCoCBpZiBvZmZzZXQgPCBjaHVua19sZW4gewo+ PiArwqDCoMKgIGZuIGNoZWNrX2NodW5rX2FsaWdubWVudCgmc2VsZiwgb2Zmc2V0OiB1NjQsIGNo dW5rX2xlbjogdTY0KQo+PiAtPiBSZXN1bHQ8dXNpemUsIEVycm9yPiB7Cj4+ICvCoMKgwqDCoMKg wqDCoCBsZXQgU29tZShwb3MpID0gb2Zmc2V0LmNoZWNrZWRfc3ViKGNodW5rX2xlbikgZWxzZSB7 Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJhaWwhKCJnb3QgY2h1bmsgd2l0aCBzbWFs bCBvZmZzZXQgKHt9IDwge30iLCBvZmZzZXQsCj4+IGNodW5rX2xlbik7Cj4+IC3CoMKgwqDCoMKg wqDCoCB9Cj4+IC0KPj4gLcKgwqDCoMKgwqDCoMKgIGxldCBwb3MgPSBvZmZzZXQgLSBjaHVua19s ZW47Cj4+ICvCoMKgwqDCoMKgwqDCoCB9Owo+PiDCoCDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgb2Zm c2V0ID4gc2VsZi5zaXplIHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYmFpbCEoImNo dW5rIGRhdGEgZXhjZWVkcyBzaXplICh7fSA+PSB7fSkiLCBvZmZzZXQsCj4+IHNlbGYuc2l6ZSk7 Cj4+IEBAIC00OTAsNyArNDkxLDcgQEAgaW1wbCBGaXhlZEluZGV4V3JpdGVyIHsKPj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgYmFpbCEoImdvdCB1bmFsaWduZWQgY2h1bmsgKHBvcyA9IHt9 KSIsIHBvcyk7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4+IMKgIC3CoMKgwqDCoMKgwqDCoCBP ayhwb3MgLyBzZWxmLmNodW5rX3NpemUpCj4+ICvCoMKgwqDCoMKgwqDCoCBPaygocG9zIC8gc2Vs Zi5jaHVua19zaXplKSBhcyB1c2l6ZSkKPj4gwqDCoMKgwqDCoCB9Cj4+IMKgIMKgwqDCoMKgwqAg Zm4gYWRkX2RpZ2VzdCgmbXV0IHNlbGYsIGluZGV4OiB1c2l6ZSwgZGlnZXN0OiAmW3U4OyAzMl0p Cj4+IC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKPj4gQEAgLTUyNCwxMiArNTI1LDEyIEBAIGltcGwg Rml4ZWRJbmRleFdyaXRlciB7Cj4+IMKgwqDCoMKgwqAgLy8vIElmIHRoaXMgd3JpdGVyIGhhcyBi ZWVuIGNyZWF0ZWQgd2l0aG91dCBhIGZpeGVkIHNpemUsIHRoZQo+PiDCoMKgwqDCoMKgIC8vLyBp bmRleCBjYXBhY2l0eSBhbmQgY29udGVudCBzaXplIGFyZSBpbmNyZWFzZWQgYXV0b21hdGljYWxs eQo+PiDCoMKgwqDCoMKgIC8vLyB1bnRpbCBhbiBpbmNvbXBsZXRlIGNodW5rIGlzIGVuY291bnRl cmVkLgo+PiAtwqDCoMKgIHB1YiBmbiBhZGRfY2h1bmsoJm11dCBzZWxmLCBzdGFydDogdTY0LCBz aXplOiB1MzIsIGRpZ2VzdDoKPj4gJlt1ODsgMzJdKSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7Cj4+ IC3CoMKgwqDCoMKgwqDCoCBsZXQgU29tZShlbmQpID0gc3RhcnQuY2hlY2tlZF9hZGQoc2l6ZS5p bnRvKCkpIGVsc2Ugewo+PiArwqDCoMKgIHB1YiBmbiBhZGRfY2h1bmsoJm11dCBzZWxmLCBzdGFy dDogdTY0LCBzaXplOiB1NjQsIGRpZ2VzdDoKPj4gJlt1ODsgMzJdKSAtPiBSZXN1bHQ8KCksIEVy cm9yPiB7Cj4+ICvCoMKgwqDCoMKgwqDCoCBsZXQgU29tZShlbmQpID0gc3RhcnQuY2hlY2tlZF9h ZGQoc2l6ZSkgZWxzZSB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJhaWwhKCJhZGRf Y2h1bms6IHN0YXJ0IGFuZCBzaXplIGFyZSB0b28gbGFyZ2U6Cj4+IHtzdGFydH0re3NpemV9Iik7 Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCB9Owo+PiAtwqDCoMKgwqDCoMKgwqAgc2VsZi5ncm93X3Rv X3NpemUoZW5kIGFzIHVzaXplKT87Cj4+IC3CoMKgwqDCoMKgwqDCoCBsZXQgaWR4ID0gc2VsZi5j aGVja19jaHVua19hbGlnbm1lbnQoZW5kIGFzIHVzaXplLCBzaXplIGFzCj4+IHVzaXplKT87Cj4+ ICvCoMKgwqDCoMKgwqDCoCBzZWxmLmdyb3dfdG9fc2l6ZShlbmQpPzsKPj4gK8KgwqDCoMKgwqDC oMKgIGxldCBpZHggPSBzZWxmLmNoZWNrX2NodW5rX2FsaWdubWVudChlbmQsIHNpemUpPzsKPj4g wqDCoMKgwqDCoMKgwqDCoMKgIHNlbGYuYWRkX2RpZ2VzdChpZHgsIGRpZ2VzdCkKPj4gwqDCoMKg wqDCoCB9Cj4+IMKgIEBAIC01MzgsNyArNTM5LDcgQEAgaW1wbCBGaXhlZEluZGV4V3JpdGVyIHsK Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYmFpbCEoInJldXNpbmcgdGhlIGluZGV4IGlz IG9ubHkgc3VwcG9ydGVkIHdpdGgga25vd24KPj4gaW5wdXQgc2l6ZSIpOwo+PiDCoMKgwqDCoMKg wqDCoMKgwqAgfQo+PiDCoCAtwqDCoMKgwqDCoMKgwqAgaWYgc2VsZi5jaHVua19zaXplICE9IHJl YWRlci5jaHVua19zaXplIHsKPj4gK8KgwqDCoMKgwqDCoMKgIGlmIE9rKHNlbGYuY2h1bmtfc2l6 ZSkgIT0gcmVhZGVyLmNodW5rX3NpemUudHJ5X2ludG8oKSB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGJhaWwhKCJjYW4ndCByZXVzZSBmaWxlIHdpdGggZGlmZmVyZW50IGNodW5rIHNp emUiKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4gwqAgQEAgLTU2MCw3ICs1NjEsNyBAQCBt b2QgdGVzdHMgewo+PiDCoMKgwqDCoMKgIHVzZSBzdGQ6OmVudjsKPj4gwqDCoMKgwqDCoCB1c2Ug c3RkOjpmczsKPj4gwqAgLcKgwqDCoCBjb25zdCBDUzogdXNpemUgPSA0MDk2Owo+PiArwqDCoMKg IGNvbnN0IENTOiB1NjQgPSA0MDk2Owo+PiDCoCDCoMKgwqDCoMKgICNbdGVzdF0KPj4gwqDCoMKg wqDCoCBmbiB0ZXN0X2VtcHR5KCkgewo+PiBAQCAtNjA2LDcgKzYwNyw3IEBAIG1vZCB0ZXN0cyB7 Cj4+IMKgIMKgwqDCoMKgwqDCoMKgwqDCoCBsZXQgaW5pdGlhbCA9IEZpeGVkSW5kZXhXcml0ZXI6 OklOSVRJQUxfQ0FQQUNJVFk7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBsZXQgc3RlcHMgPSBbMSwg MiwgaW5pdGlhbCwgaW5pdGlhbCArIDEsIDUgKiBpbml0aWFsLCAxMAo+PiAqIGluaXRpYWwgKyAx XTsKPj4gLcKgwqDCoMKgwqDCoMKgIGxldCBleHBlY3RlZCA9IHRlc3RfZGF0YShzdGVwcy5sYXN0 KCkudW53cmFwKCkgKiBDUyk7Cj4+ICvCoMKgwqDCoMKgwqDCoCBsZXQgZXhwZWN0ZWQgPSB0ZXN0 X2RhdGEoKnN0ZXBzLmxhc3QoKS51bndyYXAoKSBhcyB1NjQgKiBDUyk7Cj4+IMKgIMKgwqDCoMKg wqDCoMKgwqDCoCBsZXQgbXV0IGJlZ2luID0gMDsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGZvciBj aHVua19jb3VudCBpbiBzdGVwcyB7Cj4+IEBAIC02MjMsNyArNjI0LDcgQEAgbW9kIHRlc3RzIHsK Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIHcuY2xvc2UoKS51bndyYXAoKTsKPj4gwqDCoMKgwqDCoMKg wqDCoMKgIGRyb3Aodyk7Cj4+IMKgIC3CoMKgwqDCoMKgwqDCoCBsZXQgc2l6ZSA9IGV4cGVjdGVk LmxlbigpICogQ1M7Cj4+ICvCoMKgwqDCoMKgwqDCoCBsZXQgc2l6ZSA9IGV4cGVjdGVkLmxlbigp IGFzIHU2NCAqIENTOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgY2hlY2tfd2l0aF9yZWFkZXIoJnBh dGgsIHNpemUsICZleHBlY3RlZCk7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBjb21wYXJlX3RvX2tu b3duX3NpemVfd3JpdGVyKCZwYXRoLCBzaXplLCAmZXhwZWN0ZWQpOwo+PiDCoMKgwqDCoMKgIH0K Pj4gQEAgLTYzNCw3ICs2MzUsNyBAQCBtb2QgdGVzdHMgewo+PiDCoMKgwqDCoMKgwqDCoMKgwqAg bGV0IHBhdGggPSBkaXIuam9pbigidGVzdF9ncm93X3RvX21pc2FsaWduZWRfc2l6ZSIpOwo+PiDC oMKgwqDCoMKgwqDCoMKgwqAgbGV0IG11dCB3ID0gRml4ZWRJbmRleFdyaXRlcjo6Y3JlYXRlKCZw YXRoLCBOb25lLAo+PiBDUykudW53cmFwKCk7Cj4+IMKgIC3CoMKgwqDCoMKgwqDCoCBsZXQgc2l6 ZSA9IChGaXhlZEluZGV4V3JpdGVyOjpJTklUSUFMX0NBUEFDSVRZICsgNDIpICoKPj4gQ1MgLSAx OyAvLyBsYXN0IGlzIG5vdCBmdWxsCj4+ICvCoMKgwqDCoMKgwqDCoCBsZXQgc2l6ZSA9IChGaXhl ZEluZGV4V3JpdGVyOjpJTklUSUFMX0NBUEFDSVRZIGFzIHU2NCArCj4+IDQyKSAqIENTIC0gMTsg Ly8gbGFzdCBpcyBub3QgZnVsbAo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgbGV0IGV4cGVjdGVkID0g dGVzdF9kYXRhKHNpemUpOwo+PiDCoCDCoMKgwqDCoMKgwqDCoMKgwqAgdy5ncm93X3RvX3NpemUo c2l6ZSkudW53cmFwKCk7Cj4+IEBAIC02NzcsOCArNjc4LDggQEAgbW9kIHRlc3RzIHsKPj4gwqDC oMKgwqDCoCBzdHJ1Y3QgVGVzdENodW5rIHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGRpZ2VzdDog W3U4OyAzMl0sCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBpbmRleDogdXNpemUsCj4+IC3CoMKgwqDC oMKgwqDCoCBzaXplOiB1c2l6ZSwKPj4gLcKgwqDCoMKgwqDCoMKgIGVuZDogdXNpemUsCj4+ICvC oMKgwqDCoMKgwqDCoCBzaXplOiB1NjQsCj4+ICvCoMKgwqDCoMKgwqDCoCBlbmQ6IHU2NCwKPj4g wqDCoMKgwqDCoCB9Cj4+IMKgIMKgwqDCoMKgwqAgaW1wbCBUZXN0Q2h1bmsgewo+PiBAQCAtNjkx LDcgKzY5Miw3IEBAIG1vZCB0ZXN0cyB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4+IMKgwqDC oMKgwqAgfQo+PiDCoCAtwqDCoMKgIGZuIHRlc3RfZGF0YShzaXplOiB1c2l6ZSkgLT4gVmVjPFRl c3RDaHVuaz4gewo+PiArwqDCoMKgIGZuIHRlc3RfZGF0YShzaXplOiB1NjQpIC0+IFZlYzxUZXN0 Q2h1bms+IHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgICgwLi5zaXplLmRpdl9jZWlsKENTKSkKPj4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLm1hcCh8aW5kZXh8IHsKPj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBsZXQgbXV0IGRpZ2VzdCA9IFswdTg7IDMyXTsKPj4gQEAg LTcwNiwyNCArNzA3LDI0IEBAIG1vZCB0ZXN0cyB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgfTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBUZXN0 Q2h1bmsgewo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGln ZXN0LAo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW5kZXgsCj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbmRleDogaW5kZXggYXMg dXNpemUsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzaXpl LAo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZW5kOiBpbmRleCAq IENTICsgc2l6ZSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGVu ZDogaW5kZXggYXMgdTY0ICogQ1MgKyBzaXplLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIH0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfSkKPj4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgLmNvbGxlY3QoKQo+PiDCoMKgwqDCoMKgIH0KPj4gwqAgLcKgwqDC oCBmbiBjaGVja193aXRoX3JlYWRlcihwYXRoOiAmUGF0aCwgc2l6ZTogdXNpemUsIGNodW5rczoK Pj4gJltUZXN0Q2h1bmtdKSB7Cj4+ICvCoMKgwqAgZm4gY2hlY2tfd2l0aF9yZWFkZXIocGF0aDog JlBhdGgsIHNpemU6IHU2NCwgY2h1bmtzOgo+PiAmW1Rlc3RDaHVua10pIHsKPj4gwqDCoMKgwqDC oMKgwqDCoMKgIGxldCByZWFkZXIgPSBGaXhlZEluZGV4UmVhZGVyOjpvcGVuKHBhdGgpLnVud3Jh cCgpOwo+PiAtwqDCoMKgwqDCoMKgwqAgYXNzZXJ0X2VxIShzaXplIGFzIHU2NCwgcmVhZGVyLmlu ZGV4X2J5dGVzKCkpOwo+PiArwqDCoMKgwqDCoMKgwqAgYXNzZXJ0X2VxIShzaXplLCByZWFkZXIu aW5kZXhfYnl0ZXMoKSk7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBhc3NlcnRfZXEhKGNodW5rcy5s ZW4oKSwgcmVhZGVyLmluZGV4X2NvdW50KCkpOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgZm9yIGMg aW4gY2h1bmtzIHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXNzZXJ0X2VxISgmYy5k aWdlc3QsCj4+IHJlYWRlci5pbmRleF9kaWdlc3QoYy5pbmRleCkudW53cmFwKCkpOwo+PiDCoMKg wqDCoMKgwqDCoMKgwqAgfQo+PiDCoMKgwqDCoMKgIH0KPj4gwqAgLcKgwqDCoCBmbiBjb21wYXJl X3RvX2tub3duX3NpemVfd3JpdGVyKGZpbGU6ICZQYXRoLCBzaXplOiB1c2l6ZSwKPj4gY2h1bmtz OiAmW1Rlc3RDaHVua10pIHsKPj4gK8KgwqDCoCBmbiBjb21wYXJlX3RvX2tub3duX3NpemVfd3Jp dGVyKGZpbGU6ICZQYXRoLCBzaXplOiB1NjQsCj4+IGNodW5rczogJltUZXN0Q2h1bmtdKSB7Cj4+ IMKgwqDCoMKgwqDCoMKgwqDCoCBsZXQgbXV0IHBhdGggPSBmaWxlLnRvX3BhdGhfYnVmKCk7Cj4+ IMKgwqDCoMKgwqDCoMKgwqDCoCBwYXRoLnNldF9leHRlbnNpb24oInJlZmVyZW5jZSIpOwo+PiDC oMKgwqDCoMKgwqDCoMKgwqAgbGV0IG11dCB3ID0gRml4ZWRJbmRleFdyaXRlcjo6Y3JlYXRlKCZw YXRoLCBTb21lKHNpemUpLAo+PiBDUykudW53cmFwKCk7Cj4+IGRpZmYgLS1naXQgYS9zcmMvYXBp Mi9iYWNrdXAvZW52aXJvbm1lbnQucnMKPj4gYi9zcmMvYXBpMi9iYWNrdXAvZW52aXJvbm1lbnQu cnMKPj4gaW5kZXggMDRjNWJmODQuLjdkNDlkNDdjIDEwMDY0NAo+PiAtLS0gYS9zcmMvYXBpMi9i YWNrdXAvZW52aXJvbm1lbnQucnMKPj4gKysrIGIvc3JjL2FwaTIvYmFja3VwL2Vudmlyb25tZW50 LnJzCj4+IEBAIC02Nyw3ICs2Nyw3IEBAIHN0cnVjdCBEeW5hbWljV3JpdGVyU3RhdGUgewo+PiDC oCBzdHJ1Y3QgRml4ZWRXcml0ZXJTdGF0ZSB7Cj4+IMKgwqDCoMKgwqAgbmFtZTogU3RyaW5nLAo+ PiDCoMKgwqDCoMKgIGluZGV4OiBGaXhlZEluZGV4V3JpdGVyLAo+PiAtwqDCoMKgIHNpemU6IE9w dGlvbjx1c2l6ZT4sCj4+ICvCoMKgwqAgc2l6ZTogT3B0aW9uPHU2ND4sCj4+IMKgwqDCoMKgwqAg Y2h1bmtfc2l6ZTogdTMyLAo+PiDCoMKgwqDCoMKgIGNodW5rX2NvdW50OiB1NjQsCj4+IMKgwqDC oMKgwqAgc21hbGxfY2h1bmtfY291bnQ6IHVzaXplLCAvLyBhbGxvdyAwLi4xIHNtYWxsIGNodW5r cyAobGFzdAo+PiBjaHVuayBtYXkgYmUgc21hbGxlcikKPj4gQEAgLTM0OSw3ICszNDksNyBAQCBp bXBsIEJhY2t1cEVudmlyb25tZW50IHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgICZzZWxmLAo+PiDC oMKgwqDCoMKgwqDCoMKgwqAgaW5kZXg6IEZpeGVkSW5kZXhXcml0ZXIsCj4+IMKgwqDCoMKgwqDC oMKgwqDCoCBuYW1lOiBTdHJpbmcsCj4+IC3CoMKgwqDCoMKgwqDCoCBzaXplOiBPcHRpb248dXNp emU+LAo+PiArwqDCoMKgwqDCoMKgwqAgc2l6ZTogT3B0aW9uPHU2ND4sCj4+IMKgwqDCoMKgwqDC oMKgwqDCoCBjaHVua19zaXplOiB1MzIsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBpbmNyZW1lbnRh bDogYm9vbCwKPj4gwqDCoMKgwqDCoCApIC0+IFJlc3VsdDx1c2l6ZSwgRXJyb3I+IHsKPj4gQEAg LTQ0Miw3ICs0NDIsNyBAQCBpbXBsIEJhY2t1cEVudmlyb25tZW50IHsKPj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4gwqAgLcKgwqDCoMKg wqDCoMKgIGRhdGEuaW5kZXguYWRkX2NodW5rKG9mZnNldCwgc2l6ZSwgZGlnZXN0KT87Cj4+ICvC oMKgwqDCoMKgwqDCoCBkYXRhLmluZGV4LmFkZF9jaHVuayhvZmZzZXQsIHNpemUuaW50bygpLCBk aWdlc3QpPzsKPj4gwqAgwqDCoMKgwqDCoMKgwqDCoMKgIGRhdGEuY2h1bmtfY291bnQgKz0gMTsK Pj4gwqAgZGlmZiAtLWdpdCBhL3NyYy9hcGkyL2JhY2t1cC9tb2QucnMgYi9zcmMvYXBpMi9iYWNr dXAvbW9kLnJzCj4+IGluZGV4IGMyODIyYzE4Li41NDQ0NWVmYSAxMDA2NDQKPj4gLS0tIGEvc3Jj L2FwaTIvYmFja3VwL21vZC5ycwo+PiArKysgYi9zcmMvYXBpMi9iYWNrdXAvbW9kLnJzCj4+IEBA IC00ODAsNyArNDgwLDcgQEAgZm4gY3JlYXRlX2ZpeGVkX2luZGV4KAo+PiDCoMKgwqDCoMKgIGxl dCBlbnY6ICZCYWNrdXBFbnZpcm9ubWVudCA9IHJwY2Vudi5hc19yZWYoKTsKPj4gwqAgwqDCoMKg wqDCoCBsZXQgbmFtZSA9IHJlcXVpcmVkX3N0cmluZ19wYXJhbSgmcGFyYW0sCj4+ICJhcmNoaXZl LW5hbWUiKT8udG9fb3duZWQoKTsKPj4gLcKgwqDCoCBsZXQgc2l6ZSA9Cj4+IHBhcmFtWyJzaXpl Il0uYXNfdTY0KCkubWFwKHVzaXplOjp0cnlfZnJvbSkudHJhbnNwb3NlKCk/Owo+PiArwqDCoMKg IGxldCBzaXplID0gcGFyYW1bInNpemUiXS5hc191NjQoKTsKPj4gwqDCoMKgwqDCoCBsZXQgcmV1 c2VfY3N1bSA9IHBhcmFtWyJyZXVzZS1jc3VtIl0uYXNfc3RyKCk7Cj4+IMKgIMKgwqDCoMKgwqAg bGV0IGFyY2hpdmVfbmFtZSA9IG5hbWUuY2xvbmUoKTsKPgoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCnBicy1kZXZlbCBtYWlsaW5nIGxpc3QKcGJzLWRl dmVsQGxpc3RzLnByb3htb3guY29tCmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9t YWlsbWFuL2xpc3RpbmZvL3Bicy1kZXZlbAo=