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 C0F111FF15C for ; Wed, 30 Oct 2024 14:45:05 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 2AB0D19F32; Wed, 30 Oct 2024 14:45:09 +0100 (CET) Message-ID: <0aad0af8-6533-4e4b-81aa-ff9bbc59d762@proxmox.com> Date: Wed, 30 Oct 2024 14:44:34 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: Proxmox Backup Server development discussion , =?UTF-8?Q?Fabian_Gr=C3=BCnbichler?= References: <20241018084242.144010-1-c.ebner@proxmox.com> <20241018084242.144010-32-c.ebner@proxmox.com> <1729851453.pzm55i1ley.astroid@yuna.none> Content-Language: en-US, de-DE From: Christian Ebner In-Reply-To: <1729851453.pzm55i1ley.astroid@yuna.none> X-SPAM-LEVEL: Spam detection results: 0 AWL -0.372 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_ASCII_DIVIDERS 0.8 Email that uses ascii formatting dividers and possible spam tricks 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 v5 proxmox-backup 31/31] server: sync job: use delete stats provided by the api 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" T24gMTAvMjUvMjQgMTI6MTcsIEZhYmlhbiBHcsO8bmJpY2hsZXIgd3JvdGU6Cj4gT24gT2N0b2Jl ciAxOCwgMjAyNCAxMDo0MiBhbSwgQ2hyaXN0aWFuIEVibmVyIHdyb3RlOgo+PiBVc2UgdGhlIEFQ SSBleHBvc2VkIGFkZGl0aW9uYWwgZGVsZXRlIHN0YXRpc3RpY3MgdG8gZ2VuZXJhdGUgdGhlCj4+ IHRhc2sgbG9nIG91dHB1dCBmb3Igc3luYyBqb2JzIGluIHB1c2ggZGlyZWN0aW9uIGluc3RlYWQg b2YgZmV0Y2hpbmcgdGhlCj4+IGNvbnRlbnRzIGJlZm9yZSBhbmQgYWZ0ZXIgZGVsZXRpbmcuCj4+ Cj4+IERldGVjdCBvbGRlciBhcGkgdmVyc2lvbnMgb2YgdGhlIHRhcmdldCBzZXJ2ZXIgZm9yIGZh bGxiYWNrLgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gRWJuZXIgPGMuZWJuZXJAcHJv eG1veC5jb20+Cj4+IC0tLQo+PiBjaGFuZ2VzIHNpbmNlIHZlcnNpb24gNDoKPj4gLSBubyBjaGFu Z2VzCj4+Cj4+IGNoYW5nZXMgc2luY2UgdmVyc2lvbiAzOgo+PiAtIGZldGNoIHRhcmdldCBhcGkg dmVyc2lvbiB0byByZW1haW4gYmFja3dhcmRzIGNvbXBhdGlibGUKPj4KPj4gICBzcmMvc2VydmVy L3B1c2gucnMgfCAxMjYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t LS0tCj4+ICAgMSBmaWxlIGNoYW5nZWQsIDgyIGluc2VydGlvbnMoKyksIDQ0IGRlbGV0aW9ucygt KQo+Pgo+PiBkaWZmIC0tZ2l0IGEvc3JjL3NlcnZlci9wdXNoLnJzIGIvc3JjL3NlcnZlci9wdXNo LnJzCj4+IGluZGV4IGJmNjA0NTIxNC4uYTkxNWI2OTY0IDEwMDY0NAo+PiAtLS0gYS9zcmMvc2Vy dmVyL3B1c2gucnMKPj4gKysrIGIvc3JjL3NlcnZlci9wdXNoLnJzCj4+IEBAIC04LDExICs4LDEy IEBAIHVzZSBhbnlob3c6OntiYWlsLCBmb3JtYXRfZXJyLCBFcnJvcn07Cj4+ICAgdXNlIGZ1dHVy ZXM6OnN0cmVhbTo6e3NlbGYsIFN0cmVhbUV4dCwgVHJ5U3RyZWFtRXh0fTsKPj4gICB1c2UgdG9r aW86OnN5bmM6Om1wc2M7Cj4+ICAgdXNlIHRva2lvX3N0cmVhbTo6d3JhcHBlcnM6OlJlY2VpdmVy U3RyZWFtOwo+PiAtdXNlIHRyYWNpbmc6OmluZm87Cj4+ICt1c2UgdHJhY2luZzo6e2luZm8sIHdh cm59Owo+PiAgIAo+PiAgIHVzZSBwYnNfYXBpX3R5cGVzOjp7Cj4+IC0gICAgcHJpbnRfc3RvcmVf YW5kX25zLCBBdXRoaWQsIEJhY2t1cERpciwgQmFja3VwR3JvdXAsIEJhY2t1cE5hbWVzcGFjZSwg Q3J5cHRNb2RlLCBHcm91cEZpbHRlciwKPj4gLSAgICBHcm91cExpc3RJdGVtLCBOYW1lc3BhY2VM aXN0SXRlbSwgT3BlcmF0aW9uLCBSYXRlTGltaXRDb25maWcsIFJlbW90ZSwgU25hcHNob3RMaXN0 SXRlbSwKPj4gKyAgICBwcmludF9zdG9yZV9hbmRfbnMsIEFwaVZlcnNpb24sIEFwaVZlcnNpb25J bmZvLCBBdXRoaWQsIEJhY2t1cERpciwgQmFja3VwR3JvdXAsCj4+ICsgICAgQmFja3VwR3JvdXBE ZWxldGVTdGF0cywgQmFja3VwTmFtZXNwYWNlLCBDcnlwdE1vZGUsIEdyb3VwRmlsdGVyLCBHcm91 cExpc3RJdGVtLAo+PiArICAgIE5hbWVzcGFjZUxpc3RJdGVtLCBPcGVyYXRpb24sIFJhdGVMaW1p dENvbmZpZywgUmVtb3RlLCBTbmFwc2hvdExpc3RJdGVtLAo+PiAgICAgICBQUklWX1JFTU9URV9E QVRBU1RPUkVfQkFDS1VQLCBQUklWX1JFTU9URV9EQVRBU1RPUkVfTU9ESUZZLCBQUklWX1JFTU9U RV9EQVRBU1RPUkVfUFJVTkUsCj4+ICAgfTsKPj4gICB1c2UgcGJzX2NsaWVudDo6e0JhY2t1cFJl cG9zaXRvcnksIEJhY2t1cFdyaXRlciwgSHR0cENsaWVudCwgTWVyZ2VkQ2h1bmtJbmZvLCBVcGxv YWRPcHRpb25zfTsKPj4gQEAgLTQxLDYgKzQyLDggQEAgcHViKGNyYXRlKSBzdHJ1Y3QgUHVzaFRh cmdldCB7Cj4+ICAgICAgIG5zOiBCYWNrdXBOYW1lc3BhY2UsCj4+ICAgICAgIC8vIEh0dHAgY2xp ZW50IHRvIGNvbm5lY3QgdG8gcmVtb3RlCj4+ICAgICAgIGNsaWVudDogSHR0cENsaWVudCwKPj4g KyAgICAvLyBBcGkgdmVyc2lvbiByZXBvcnRlZCBieSB0aGUgdGFyZ2V0Cj4+ICsgICAgYXBpX3Zl cnNpb246IE9wdGlvbjxBcGlWZXJzaW9uPiwKPj4gICB9Cj4+ICAgCj4+ICAgLy8vIFBhcmFtZXRl cnMgZm9yIGEgcHVzaCBvcGVyYXRpb24KPj4gQEAgLTEwNiw2ICsxMDksNyBAQCBpbXBsIFB1c2hQ YXJhbWV0ZXJzIHsKPj4gICAgICAgICAgICAgICByZXBvLAo+PiAgICAgICAgICAgICAgIG5zOiBy ZW1vdGVfbnMsCj4+ICAgICAgICAgICAgICAgY2xpZW50LAo+PiArICAgICAgICAgICAgYXBpX3Zl cnNpb246IE5vbmUsCj4+ICAgICAgICAgICB9Owo+PiAgICAgICAgICAgbGV0IGdyb3VwX2ZpbHRl ciA9IGdyb3VwX2ZpbHRlci51bndyYXBfb3JfZGVmYXVsdCgpOwo+PiAgIAo+PiBAQCAtMTI0LDYg KzEyOCwxNyBAQCBpbXBsIFB1c2hQYXJhbWV0ZXJzIHsKPj4gICAgICAgZm4gbWFwX3RvX3Rhcmdl dCgmc2VsZiwgbmFtZXNwYWNlOiAmQmFja3VwTmFtZXNwYWNlKSAtPiBSZXN1bHQ8QmFja3VwTmFt ZXNwYWNlLCBFcnJvcj4gewo+PiAgICAgICAgICAgbmFtZXNwYWNlLm1hcF9wcmVmaXgoJnNlbGYu c291cmNlLm5zLCAmc2VsZi50YXJnZXQubnMpCj4+ICAgICAgIH0KPj4gKwo+PiArICAgIC8vIEZl dGNoIGFuZCBzZXQgdGhlIGFwaSB2ZXJzaW9uIGluZm8gZm9yIHRoZSB0YXJnZXQKPj4gKyAgICBw dWIoY3JhdGUpIGFzeW5jIGZuIGZldGNoX3RhcmdldF9hcGlfdmVyc2lvbl9pbmZvKCZtdXQgc2Vs ZikgLT4gUmVzdWx0PCgpLCBFcnJvcj4gewo+PiArICAgICAgICBsZXQgYXBpX3BhdGggPSAiYXBp Mi9qc29uL3ZlcnNpb24iOwo+PiArICAgICAgICBsZXQgbXV0IHJlc3VsdCA9IHNlbGYudGFyZ2V0 LmNsaWVudC5nZXQoYXBpX3BhdGgsIE5vbmUpLmF3YWl0PzsKPj4gKyAgICAgICAgbGV0IGRhdGEg PSByZXN1bHRbImRhdGEiXS50YWtlKCk7Cj4+ICsgICAgICAgIGxldCB2ZXJzaW9uX2luZm86IEFw aVZlcnNpb25JbmZvID0gc2VyZGVfanNvbjo6ZnJvbV92YWx1ZShkYXRhKT87Cj4+ICsgICAgICAg IHNlbGYudGFyZ2V0LmFwaV92ZXJzaW9uID0gU29tZShBcGlWZXJzaW9uOjp0cnlfZnJvbSh2ZXJz aW9uX2luZm8pPyk7Cj4gCj4gaWYgdGhlIGV4cGVjdGF0aW9uIGlzIHRoYXQgdGhpcyBhbHdheXMg d29ya3MsIHNob3VsZCB3ZSBkbyBpdCB3aGVuCj4gaW5pdGlhbGl6aW5nIHRoZSBQdXNoUGFyYW1l dGVycyBhbmQgbm90IHdyYXAgaXQgaW4gYW4gT3B0aW9uPwoKT2theSwgZHJvcHBlZCB0aGUgT3B0 aW9uIHdyYXBwZXIgaGVyZSBhbmQgYWRhcHRlZCB0aGUgClB1c2hQYXJhbWV0ZXJzOjpuZXcoKSBt ZXRob2QgYWNjb3JkaW5nbHkgdG8gYWx3YXlzIGFzeW5jIGZldGNoIHRoZSAKdmVyc2lvbi4gVGhp cyBleHRyYSBBUEkgY2FsbCBldmVuIHdoZW4gYHJlbW92ZV92YW5pc2hlZGAgaXMgbm90IHNldCBh bmQgCnRoZXJlZm9yZSB0aGUgcmVtb3RlIGFwaSB2ZXJzaW9uIGlzIG5vdCByZXF1aXJlZCBkb2Vz IG5vdCBodXJ0LgoKPiAKPj4gKwo+PiArICAgICAgICBPaygoKSkKPj4gKyAgICB9Cj4+ICAgfQo+ PiAgIAo+PiAgIC8vIENoZWNrIGlmIHRoZSBqb2IgdXNlciBnaXZlbiBpbiB0aGUgcHVzaCBwYXJh bWV0ZXJzIGhhcyB0aGUgcHJvdmlkZWQgcHJpdnMgb24gdGhlIHJlbW90ZQo+PiBAQCAtMTY3LDcg KzE4Miw3IEBAIGFzeW5jIGZuIGZldGNoX3RhcmdldF9uYW1lc3BhY2VzKHBhcmFtczogJlB1c2hQ YXJhbWV0ZXJzKSAtPiBSZXN1bHQ8VmVjPEJhY2t1cE5hCj4+ICAgYXN5bmMgZm4gcmVtb3ZlX3Rh cmdldF9uYW1lc3BhY2UoCj4+ICAgICAgIHBhcmFtczogJlB1c2hQYXJhbWV0ZXJzLAo+PiAgICAg ICBuYW1lc3BhY2U6ICZCYWNrdXBOYW1lc3BhY2UsCj4+IC0pIC0+IFJlc3VsdDwoKSwgRXJyb3I+ IHsKPj4gKykgLT4gUmVzdWx0PEJhY2t1cEdyb3VwRGVsZXRlU3RhdHMsIEVycm9yPiB7Cj4+ICAg ICAgIGlmIG5hbWVzcGFjZS5pc19yb290KCkgewo+PiAgICAgICAgICAgYmFpbCEoImNhbm5vdCBy ZW1vdmUgcm9vdCBuYW1lc3BhY2UgZnJvbSB0YXJnZXQiKTsKPj4gICAgICAgfQo+PiBAQCAtMTgx LDE0ICsxOTYsMjMgQEAgYXN5bmMgZm4gcmVtb3ZlX3RhcmdldF9uYW1lc3BhY2UoCj4+ICAgICAg ICk7Cj4+ICAgCj4+ICAgICAgIGxldCB0YXJnZXRfbnMgPSBwYXJhbXMubWFwX3RvX3RhcmdldChu YW1lc3BhY2UpPzsKPj4gLSAgICBsZXQgYXJncyA9IHNlcmRlX2pzb246Ompzb24hKHsKPj4gKyAg ICBsZXQgbXV0IGFyZ3MgPSBzZXJkZV9qc29uOjpqc29uISh7Cj4+ICAgICAgICAgICAibnMiOiB0 YXJnZXRfbnMubmFtZSgpLAo+PiAgICAgICAgICAgImRlbGV0ZS1ncm91cHMiOiB0cnVlLAo+PiAg ICAgICB9KTsKPj4gICAKPj4gLSAgICBwYXJhbXMudGFyZ2V0LmNsaWVudC5kZWxldGUoJmFwaV9w YXRoLCBTb21lKGFyZ3MpKS5hd2FpdD87Cj4+ICsgICAgaWYgbGV0IFNvbWUodmVyc2lvbikgPSAm cGFyYW1zLnRhcmdldC5hcGlfdmVyc2lvbiB7Cj4+ICsgICAgICAgIGlmIHZlcnNpb24uaXNfbWlu X3JlcXVpcmVkKEFwaVZlcnNpb246Om5ldygzLCAyLCA4KSkgewo+IAo+IG1pc3NlZCBhIHZlcnNp b24gYWxyZWFkeSA7KSBtaWdodCBtYWtlIHNlbnNlIHRvIGVpdGhlciBtb3ZlIHRoaXMgdXAgYXMg YQo+IGNvbnN0YW50LCBvciBldmVuIGFkZCBhIHNvcnQgb2Ygc3VwcG9ydHNfZmVhdHVyZSguLikg dG8gQXBpVmVyc2lvbiA/CgpZZXMsIEkgZGlkIGZvbGxvdyB5b3VyIHN1Z2dlc3Rpb24gYW5kIGFk ZGVkIGEgYHN1cHBvcnRzX2ZlYXR1cmVgIGluc3RlYWQgCm9mIHRoZSBgaXNfbWluX3JlcXVpcmVk YCBtZXRob2QuIFRoYXQgaXMgd2F5IG1vcmUgZXJnb25vbWljIGFuZCBhbGxvd3MgCnRvIGFwcGVu ZCBuZXcgZmVhdHVyZSBzdHJpbmdzIHdpdGhvdXQgaXNzdWVzIGF0IGNlcnRhaW4gY29tbWl0cy4K Cj4gCj4gaW4gYW55IGNhc2UsIHNvbWV0aGluZyBsaWtlIHRoaXMgc2hvdWxkIGJlIGNhbGxlZCBv dXQgc29tZXdoZXJlCj4gcHJvbWluZW50bHkgc28gdGhhdCBpdCBjYW4gYmUgYWRhcHRlZC9idW1w ZWQgaWYgbmVlZCBiZSB3aGVuIGFwcGx5aW5nCj4gCj4+ICsgICAgICAgICAgICBhcmdzWyJpZ25v cmUtcHJvdGVjdGVkIl0gPSBzZXJkZV9qc29uOjp0b192YWx1ZSh0cnVlKT87Cj4+ICsgICAgICAg IH0KPj4gKyAgICB9Cj4+ICAgCj4+IC0gICAgT2soKCkpCj4+ICsgICAgbGV0IG11dCByZXN1bHQg PSBwYXJhbXMudGFyZ2V0LmNsaWVudC5kZWxldGUoJmFwaV9wYXRoLCBTb21lKGFyZ3MpKS5hd2Fp dD87Cj4+ICsgICAgbGV0IGRhdGEgPSByZXN1bHRbImRhdGEiXS50YWtlKCk7Cj4+ICsgICAgbGV0 IGRlbGV0ZV9zdGF0czogQmFja3VwR3JvdXBEZWxldGVTdGF0cyA9Cj4+ICsgICAgICAgIHNlcmRl X2pzb246OmZyb21fdmFsdWUoZGF0YSkudW53cmFwX29yX2Vsc2UofF98IEJhY2t1cEdyb3VwRGVs ZXRlU3RhdHM6OmRlZmF1bHQoKSk7Cj4gCj4gYW5kIHRoaXMgaGVyZSBzaG91bGQgb25seSBiZSBk b25lIGlmIHRoZSBBcGlWZXJzaW9uIGlzIHRvbyBvbGQsIGVsc2UgaXQKPiBtYXNrcyBkZXNlcmlh bGl6YXRpb24gcHJvYmxlbXMuLgoKVHJ1ZSwgbWFkZSB0aGUgdW53cmFwX29yX2RlZmF1bHQgY29u ZGl0aW9uYWxseSBoZXJlIGFuZCB0aGUgb3RoZXIgCm1lbnRpb25zIGJlbG93LgoKPiAKPj4gKwo+ PiArICAgIE9rKGRlbGV0ZV9zdGF0cykKPj4gICB9Cj4+ICAgCj4+ICAgLy8gRmV0Y2ggdGhlIGxp c3Qgb2YgZ3JvdXBzIGZvdW5kIG9uIHRhcmdldCBpbiBnaXZlbiBuYW1lc3BhY2UKPj4gQEAgLTIy OSw3ICsyNTMsNyBAQCBhc3luYyBmbiByZW1vdmVfdGFyZ2V0X2dyb3VwKAo+PiAgICAgICBwYXJh bXM6ICZQdXNoUGFyYW1ldGVycywKPj4gICAgICAgbmFtZXNwYWNlOiAmQmFja3VwTmFtZXNwYWNl LAo+PiAgICAgICBiYWNrdXBfZ3JvdXA6ICZCYWNrdXBHcm91cCwKPj4gLSkgLT4gUmVzdWx0PCgp LCBFcnJvcj4gewo+PiArKSAtPiBSZXN1bHQ8QmFja3VwR3JvdXBEZWxldGVTdGF0cywgRXJyb3I+ IHsKPj4gICAgICAgY2hlY2tfbnNfcmVtb3RlX2RhdGFzdG9yZV9wcml2cyhwYXJhbXMsIG5hbWVz cGFjZSwgUFJJVl9SRU1PVEVfREFUQVNUT1JFX1BSVU5FKQo+PiAgICAgICAgICAgLm1hcF9lcnIo fGVycnwgZm9ybWF0X2VyciEoIlBydW5pbmcgcmVtb3RlIGRhdGFzdG9yZSBjb250ZW50cyBub3Qg YWxsb3dlZCAtIHtlcnJ9IikpPzsKPj4gICAKPj4gQEAgLTI0MiwxNCArMjY2LDIzIEBAIGFzeW5j IGZuIHJlbW92ZV90YXJnZXRfZ3JvdXAoCj4+ICAgICAgICAgICAiYmFja3VwLWlkIjogYmFja3Vw X2dyb3VwLmlkLAo+PiAgICAgICAgICAgImJhY2t1cC10eXBlIjogYmFja3VwX2dyb3VwLnR5LAo+ PiAgICAgICB9KTsKPj4gKwo+PiArICAgIGlmIGxldCBTb21lKHZlcnNpb24pID0gJnBhcmFtcy50 YXJnZXQuYXBpX3ZlcnNpb24gewo+PiArICAgICAgICBpZiB2ZXJzaW9uLmlzX21pbl9yZXF1aXJl ZChBcGlWZXJzaW9uOjpuZXcoMywgMiwgOCkpIHsKPiAKPiBzYW1lIGhlcmUKPiAKPj4gKyAgICAg ICAgICAgIGFyZ3NbImlnbm9yZS1wcm90ZWN0ZWQiXSA9IHNlcmRlX2pzb246OnRvX3ZhbHVlKHRy dWUpPzsKPj4gKyAgICAgICAgfQo+PiArICAgIH0KPj4gICAgICAgaWYgIW5hbWVzcGFjZS5pc19y b290KCkgewo+PiAgICAgICAgICAgbGV0IHRhcmdldF9ucyA9IHBhcmFtcy5tYXBfdG9fdGFyZ2V0 KG5hbWVzcGFjZSk/Owo+PiAgICAgICAgICAgYXJnc1sibnMiXSA9IHNlcmRlX2pzb246OnRvX3Zh bHVlKHRhcmdldF9ucy5uYW1lKCkpPzsKPj4gICAgICAgfQo+PiAgIAo+PiAtICAgIHBhcmFtcy50 YXJnZXQuY2xpZW50LmRlbGV0ZSgmYXBpX3BhdGgsIFNvbWUoYXJncykpLmF3YWl0PzsKPj4gKyAg ICBsZXQgbXV0IHJlc3VsdCA9IHBhcmFtcy50YXJnZXQuY2xpZW50LmRlbGV0ZSgmYXBpX3BhdGgs IFNvbWUoYXJncykpLmF3YWl0PzsKPj4gKyAgICBsZXQgZGF0YSA9IHJlc3VsdFsiZGF0YSJdLnRh a2UoKTsKPj4gKyAgICBsZXQgZGVsZXRlX3N0YXRzOiBCYWNrdXBHcm91cERlbGV0ZVN0YXRzID0K Pj4gKyAgICAgICAgc2VyZGVfanNvbjo6ZnJvbV92YWx1ZShkYXRhKS51bndyYXBfb3JfZWxzZSh8 X3wgQmFja3VwR3JvdXBEZWxldGVTdGF0czo6ZGVmYXVsdCgpKTsKPiAKPiBhbmQgaGVyZQo+IAo+ PiAgIAo+PiAtICAgIE9rKCgpKQo+PiArICAgIE9rKGRlbGV0ZV9zdGF0cykKPj4gICB9Cj4+ICAg Cj4+ICAgLy8gQ2hlY2sgaWYgdGhlIG5hbWVzcGFjZSBpcyBhbHJlYWR5IHByZXNlbnQgb24gdGhl IHRhcmdldCwgY3JlYXRlIGl0IG90aGVyd2lzZQo+PiBAQCAtMjk4LDYgKzMzMSw3IEBAIGFzeW5j IGZuIGNoZWNrX29yX2NyZWF0ZV90YXJnZXRfbmFtZXNwYWNlKAo+PiAgIC8vLyBQdXNoIGNvbnRl bnRzIG9mIHNvdXJjZSBkYXRhc3RvcmUgbWF0Y2hlZCBieSBnaXZlbiBwdXNoIHBhcmFtZXRlcnMg dG8gdGFyZ2V0Lgo+PiAgIHB1YihjcmF0ZSkgYXN5bmMgZm4gcHVzaF9zdG9yZShtdXQgcGFyYW1z OiBQdXNoUGFyYW1ldGVycykgLT4gUmVzdWx0PFN5bmNTdGF0cywgRXJyb3I+IHsKPj4gICAgICAg bGV0IG11dCBlcnJvcnMgPSBmYWxzZTsKPj4gKyAgICBwYXJhbXMuZmV0Y2hfdGFyZ2V0X2FwaV92 ZXJzaW9uX2luZm8oKS5hd2FpdD87Cj4+ICAgCj4+ICAgICAgIC8vIEdlbmVyYXRlIGxpc3Qgb2Yg c291cmNlIG5hbWVzcGFjZXMgdG8gcHVzaCB0byB0YXJnZXQsIGxpbWl0ZWQgYnkgbWF4LWRlcHRo Cj4+ICAgICAgIGxldCBtdXQgbmFtZXNwYWNlcyA9IHBhcmFtcy5zb3VyY2UubGlzdF9uYW1lc3Bh Y2VzKCZtdXQgcGFyYW1zLm1heF9kZXB0aCkuYXdhaXQ/Owo+PiBAQCAtMzY1LDkgKzM5OSwyNSBA QCBwdWIoY3JhdGUpIGFzeW5jIGZuIHB1c2hfc3RvcmUobXV0IHBhcmFtczogUHVzaFBhcmFtZXRl cnMpIC0+IFJlc3VsdDxTeW5jU3RhdHMsCj4+ICAgICAgICAgICAgICAgaWYgc3luY2VkX25hbWVz cGFjZXMuY29udGFpbnMoJnRhcmdldF9uYW1lc3BhY2UpIHsKPj4gICAgICAgICAgICAgICAgICAg Y29udGludWU7Cj4+ICAgICAgICAgICAgICAgfQo+PiAtICAgICAgICAgICAgaWYgbGV0IEVycihl cnIpID0gcmVtb3ZlX3RhcmdldF9uYW1lc3BhY2UoJnBhcmFtcywgJnRhcmdldF9uYW1lc3BhY2Up LmF3YWl0IHsKPj4gLSAgICAgICAgICAgICAgICBpbmZvISgiZmFpbGVkIHRvIHJlbW92ZSB2YW5p c2hlZCBuYW1lc3BhY2Uge3RhcmdldF9uYW1lc3BhY2V9IC0ge2Vycn0iKTsKPj4gLSAgICAgICAg ICAgICAgICBjb250aW51ZTsKPj4gKyAgICAgICAgICAgIG1hdGNoIHJlbW92ZV90YXJnZXRfbmFt ZXNwYWNlKCZwYXJhbXMsICZ0YXJnZXRfbmFtZXNwYWNlKS5hd2FpdCB7Cj4+ICsgICAgICAgICAg ICAgICAgT2soZGVsZXRlX3N0YXRzKSA9PiB7Cj4+ICsgICAgICAgICAgICAgICAgICAgIHN0YXRz LmFkZChTeW5jU3RhdHM6OmZyb20oUmVtb3ZlZFZhbmlzaGVkU3RhdHMgewo+PiArICAgICAgICAg ICAgICAgICAgICAgICAgc25hcHNob3RzOiBkZWxldGVfc3RhdHMucmVtb3ZlZF9zbmFwc2hvdHMo KSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwczogZGVsZXRlX3N0YXRzLnJlbW92 ZWRfZ3JvdXBzKCksCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VzOiAxLAo+ PiArICAgICAgICAgICAgICAgICAgICB9KSk7Cj4gCj4gc2hvdWxkIHdlIG1heWJlIHByaW50IGEg d2FybmluZyBvbmNlIGF0IHRoZSBzdGFydCBvZiBzeW5jIGlmIHRoZQo+IEFwaVZlcnNpb24gaXMg dG9vIG9sZCwgc28gdGhhdCB1c2VycyBrbm93IHRoYXQgdGhlc2Ugc3RhdHMgYXJlCj4gaW5jb21w bGV0ZT8KClllcywgYWRkZWQgdGhlIHdhcm5pbmcgaW4gY2FzZSBvZiB1bnN1cHBvcnRlZCBmZWF0 dXJlIGFuZCAKcmVtb3ZlX3ZhbmlzaGVkIGZsYWcgc2V0LgoKPiAKPiBiZWNhdXNlIGluIHRoYXQg Y2FzZSBpZiBubyBzbmFwc2hvdHMvZ3JvdXBzIHdlcmUgcHJvdGVjdGVkLCB3ZSdsbCBnZXQgYQo+ IGRlZmF1bHQgQmFja3VwR3JvdXBEZWxldGVTdGF0cyBoZXJlLCBzbyB3ZSBhY3R1YWxseSBsYWNr IHRoZSBpbmZvcm1hdGlvbgo+IGFib3V0IHJlbW92ZWQgc25hcHNob3RzIGFuZCBncm91cHMuLgo+ IAo+PiArICAgICAgICAgICAgICAgICAgICBpZiBkZWxldGVfc3RhdHMucHJvdGVjdGVkX3NuYXBz aG90cygpID4gMCB7Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICB3YXJuISgKPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAia2VwdCB7cHJvdGVjdGVkX2NvdW50fSBwcm90ZWN0ZWQg c25hcHNob3RzIG9mIG5hbWVzcGFjZSAne3RhcmdldF9uYW1lc3BhY2V9JyIsCj4+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkX2NvdW50ID0gZGVsZXRlX3N0YXRzLnByb3Rl Y3RlZF9zbmFwc2hvdHMoKSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICk7Cj4+ICsgICAg ICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKPj4gKyAgICAgICAgICAgICAgICAgICAgfQo+ PiArICAgICAgICAgICAgICAgIH0KPj4gKyAgICAgICAgICAgICAgICBFcnIoZXJyKSA9PiB7Cj4+ ICsgICAgICAgICAgICAgICAgICAgIHdhcm4hKCJmYWlsZWQgdG8gcmVtb3ZlIHZhbmlzaGVkIG5h bWVzcGFjZSB7dGFyZ2V0X25hbWVzcGFjZX0gLSB7ZXJyfSIpOwo+PiArICAgICAgICAgICAgICAg ICAgICBjb250aW51ZTsKPj4gKyAgICAgICAgICAgICAgICB9Cj4+ICAgICAgICAgICAgICAgfQo+ PiAgICAgICAgICAgICAgIGluZm8hKCJyZW1vdmVkIHZhbmlzaGVkIG5hbWVzcGFjZSB7dGFyZ2V0 X25hbWVzcGFjZX0iKTsKPj4gICAgICAgICAgIH0KPj4gQEAgLTQ0OSwzOCArNDk5LDI2IEBAIHB1 YihjcmF0ZSkgYXN5bmMgZm4gcHVzaF9uYW1lc3BhY2UoCj4+ICAgCj4+ICAgICAgICAgICAgICAg aW5mbyEoImRlbGV0ZSB2YW5pc2hlZCBncm91cCAne3RhcmdldF9ncm91cH0nIik7Cj4+ICAgCj4+ IC0gICAgICAgICAgICBsZXQgY291bnRfYmVmb3JlID0gbWF0Y2ggZmV0Y2hfdGFyZ2V0X2dyb3Vw cyhwYXJhbXMsIG5hbWVzcGFjZSkuYXdhaXQgewo+PiAtICAgICAgICAgICAgICAgIE9rKHNuYXBz aG90cykgPT4gc25hcHNob3RzLmxlbigpLAo+PiAtICAgICAgICAgICAgICAgIEVycihfZXJyKSA9 PiAwLCAvLyBpZ25vcmUgZXJyb3JzCj4+IC0gICAgICAgICAgICB9Owo+PiAtCj4+IC0gICAgICAg ICAgICBpZiBsZXQgRXJyKGVycikgPSByZW1vdmVfdGFyZ2V0X2dyb3VwKHBhcmFtcywgbmFtZXNw YWNlLCAmdGFyZ2V0X2dyb3VwKS5hd2FpdCB7Cj4+IC0gICAgICAgICAgICAgICAgaW5mbyEoIntl cnJ9Iik7Cj4+IC0gICAgICAgICAgICAgICAgZXJyb3JzID0gdHJ1ZTsKPj4gLSAgICAgICAgICAg ICAgICBjb250aW51ZTsKPj4gLSAgICAgICAgICAgIH0KPj4gLQo+PiAtICAgICAgICAgICAgbGV0 IG11dCBjb3VudF9hZnRlciA9IG1hdGNoIGZldGNoX3RhcmdldF9ncm91cHMocGFyYW1zLCBuYW1l c3BhY2UpLmF3YWl0IHsKPj4gLSAgICAgICAgICAgICAgICBPayhzbmFwc2hvdHMpID0+IHNuYXBz aG90cy5sZW4oKSwKPj4gLSAgICAgICAgICAgICAgICBFcnIoX2VycikgPT4gMCwgLy8gaWdub3Jl IGVycm9ycwo+PiAtICAgICAgICAgICAgfTsKPj4gLQo+PiAtICAgICAgICAgICAgbGV0IGRlbGV0 ZWRfZ3JvdXBzID0gaWYgY291bnRfYWZ0ZXIgPiAwIHsKPj4gLSAgICAgICAgICAgICAgICBpbmZv ISgia2VwdCBzb21lIHByb3RlY3RlZCBzbmFwc2hvdHMgb2YgZ3JvdXAgJ3t0YXJnZXRfZ3JvdXB9 JyIpOwo+PiAtICAgICAgICAgICAgICAgIDAKPj4gLSAgICAgICAgICAgIH0gZWxzZSB7Cj4+IC0g ICAgICAgICAgICAgICAgMQo+PiAtICAgICAgICAgICAgfTsKPj4gLQo+PiAtICAgICAgICAgICAg aWYgY291bnRfYWZ0ZXIgPiBjb3VudF9iZWZvcmUgewo+PiAtICAgICAgICAgICAgICAgIGNvdW50 X2FmdGVyID0gY291bnRfYmVmb3JlOwo+PiArICAgICAgICAgICAgbWF0Y2ggcmVtb3ZlX3Rhcmdl dF9ncm91cChwYXJhbXMsIG5hbWVzcGFjZSwgJnRhcmdldF9ncm91cCkuYXdhaXQgewo+PiArICAg ICAgICAgICAgICAgIE9rKGRlbGV0ZV9zdGF0cykgPT4gewo+PiArICAgICAgICAgICAgICAgICAg ICBpZiBkZWxldGVfc3RhdHMucHJvdGVjdGVkX3NuYXBzaG90cygpID4gMCB7Cj4+ICsgICAgICAg ICAgICAgICAgICAgICAgICB3YXJuISgKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAi a2VwdCB7cHJvdGVjdGVkX2NvdW50fSBwcm90ZWN0ZWQgc25hcHNob3RzIG9mIGdyb3VwICd7dGFy Z2V0X2dyb3VwfSciLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZF9j b3VudCA9IGRlbGV0ZV9zdGF0cy5wcm90ZWN0ZWRfc25hcHNob3RzKCksCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICApOwo+PiArICAgICAgICAgICAgICAgICAgICB9Cj4+ICsgICAgICAgICAg ICAgICAgICAgIHN0YXRzLmFkZChTeW5jU3RhdHM6OmZyb20oUmVtb3ZlZFZhbmlzaGVkU3RhdHMg ewo+PiArICAgICAgICAgICAgICAgICAgICAgICAgc25hcHNob3RzOiBkZWxldGVfc3RhdHMucmVt b3ZlZF9zbmFwc2hvdHMoKSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwczogZGVs ZXRlX3N0YXRzLnJlbW92ZWRfZ3JvdXBzKCksCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICBu YW1lc3BhY2VzOiAwLAo+PiArICAgICAgICAgICAgICAgICAgICB9KSk7Cj4gCj4gc2FtZSBoZXJl Cj4gCj4+ICsgICAgICAgICAgICAgICAgfQo+PiArICAgICAgICAgICAgICAgIEVycihlcnIpID0+ IHsKPj4gKyAgICAgICAgICAgICAgICAgICAgaW5mbyEoImZhaWxlZCB0byBkZWxldGUgdmFuaXNo ZWQgZ3JvdXAgLSB7ZXJyfSIpOwo+PiArICAgICAgICAgICAgICAgICAgICBlcnJvcnMgPSB0cnVl Owo+PiArICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKPj4gKyAgICAgICAgICAgICAgICB9 Cj4+ICAgICAgICAgICAgICAgfQo+PiAtCj4+IC0gICAgICAgICAgICBzdGF0cy5hZGQoU3luY1N0 YXRzOjpmcm9tKFJlbW92ZWRWYW5pc2hlZFN0YXRzIHsKPj4gLSAgICAgICAgICAgICAgICBzbmFw c2hvdHM6IGNvdW50X2JlZm9yZSAtIGNvdW50X2FmdGVyLAo+PiAtICAgICAgICAgICAgICAgIGdy b3VwczogZGVsZXRlZF9ncm91cHMsCj4+IC0gICAgICAgICAgICAgICAgbmFtZXNwYWNlczogMCwK Pj4gLSAgICAgICAgICAgIH0pKTsKPj4gICAgICAgICAgIH0KPj4gICAgICAgfQo+PiAgIAo+PiAt LSAKPj4gMi4zOS41Cj4+Cj4+Cj4+Cj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCj4+IHBicy1kZXZlbCBtYWlsaW5nIGxpc3QKPj4gcGJzLWRldmVsQGxp c3RzLnByb3htb3guY29tCj4+IGh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWls bWFuL2xpc3RpbmZvL3Bicy1kZXZlbAo+Pgo+Pgo+Pgo+IAo+IAo+IF9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gcGJzLWRldmVsIG1haWxpbmcgbGlzdAo+ IHBicy1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQo+IGh0dHBzOi8vbGlzdHMucHJveG1veC5jb20v Y2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3Bicy1kZXZlbAo+IAo+IAoKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpwYnMtZGV2ZWwgbWFpbGluZyBsaXN0 CnBicy1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQpodHRwczovL2xpc3RzLnByb3htb3guY29tL2Nn aS1iaW4vbWFpbG1hbi9saXN0aW5mby9wYnMtZGV2ZWwK