From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 750341FF15F for ; Mon, 4 Nov 2024 17:02:49 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 54BFE10A5A; Mon, 4 Nov 2024 17:02:58 +0100 (CET) Date: Mon, 4 Nov 2024 17:02:21 +0100 From: Gabriel Goller To: Fabian =?utf-8?Q?Gr=C3=BCnbichler?= Message-ID: References: <20241018090909.103952-1-g.goller@proxmox.com> <20241018090909.103952-2-g.goller@proxmox.com> <1730717237.hc5rhqwdje.astroid@yuna.none> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1730717237.hc5rhqwdje.astroid@yuna.none> User-Agent: NeoMutt/20241002-35-39f9a6 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.042 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 1/3] fix #3786: api: add resync-corrupt option to sync jobs 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 Cc: 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" T24gMDQuMTEuMjAyNCAxMjo1MSwgRmFiaWFuIEdyw7xuYmljaGxlciB3cm90ZToKPnRoaXMgZG9l c24ndCByZWFsbHkgZG8gd2hhdCBpdCBzYXlzIG9uIHRoZSB0aW4sIHNlZSBiZWxvdy4KPgo+T24g T2N0b2JlciAxOCwgMjAyNCAxMTowOSBhbSwgR2FicmllbCBHb2xsZXIgd3JvdGU6Cj4+IFtzbmlw XQo+PiBkaWZmIC0tZ2l0IGEvcGJzLWRhdGFzdG9yZS9zcmMvYmFja3VwX2luZm8ucnMgYi9wYnMt ZGF0YXN0b3JlL3NyYy9iYWNrdXBfaW5mby5ycwo+PiBpbmRleCA0MTRlYzg3OGQwMWEuLmM4NmZi Yjc1NjhhYiAxMDA2NDQKPj4gLS0tIGEvcGJzLWRhdGFzdG9yZS9zcmMvYmFja3VwX2luZm8ucnMK Pj4gKysrIGIvcGJzLWRhdGFzdG9yZS9zcmMvYmFja3VwX2luZm8ucnMKPj4gQEAgLTgsNyArOCw4 IEBAIHVzZSBhbnlob3c6OntiYWlsLCBmb3JtYXRfZXJyLCBFcnJvcn07Cj4+ICB1c2UgcHJveG1v eF9zeXM6OmZzOjp7bG9ja19kaXJfbm9ibG9jaywgcmVwbGFjZV9maWxlLCBDcmVhdGVPcHRpb25z fTsKPj4KPj4gIHVzZSBwYnNfYXBpX3R5cGVzOjp7Cj4+IC0gICAgQXV0aGlkLCBCYWNrdXBOYW1l c3BhY2UsIEJhY2t1cFR5cGUsIEdyb3VwRmlsdGVyLCBCQUNLVVBfREFURV9SRUdFWCwgQkFDS1VQ X0ZJTEVfUkVHRVgsCj4+ICsgICAgQXV0aGlkLCBCYWNrdXBOYW1lc3BhY2UsIEJhY2t1cFR5cGUs IEdyb3VwRmlsdGVyLCBTbmFwc2hvdFZlcmlmeVN0YXRlLCBWZXJpZnlTdGF0ZSwKPj4gKyAgICBC QUNLVVBfREFURV9SRUdFWCwgQkFDS1VQX0ZJTEVfUkVHRVgsCj4+ICB9Owo+PiAgdXNlIHBic19j b25maWc6OntvcGVuX2JhY2t1cF9sb2NrZmlsZSwgQmFja3VwTG9ja0d1YXJkfTsKPj4KPj4gQEAg LTU4Myw2ICs1ODQsMTYgQEAgaW1wbCBCYWNrdXBEaXIgewo+Pgo+PiAgICAgICAgICBPaygoKSkK Pj4gICAgICB9Cj4+ICsKPj4gKyAgICAvLy8gTG9hZCB0aGUgdmVyaWZ5IHN0YXRlIGZyb20gdGhl IG1hbmlmZXN0Lgo+PiArICAgIHB1YiBmbiB2ZXJpZnlfc3RhdGUoJnNlbGYpIC0+IFJlc3VsdDxW ZXJpZnlTdGF0ZSwgYW55aG93OjpFcnJvcj4gewo+PiArICAgICAgICBzZWxmLmxvYWRfbWFuaWZl c3QoKS5hbmRfdGhlbih8KG0sIF8pfCB7Cj4+ICsgICAgICAgICAgICBsZXQgdmVyaWZ5ID0gbS51 bnByb3RlY3RlZFsidmVyaWZ5X3N0YXRlIl0uY2xvbmUoKTsKPj4gKyAgICAgICAgICAgIHNlcmRl X2pzb246OmZyb21fdmFsdWU6OjxTbmFwc2hvdFZlcmlmeVN0YXRlPih2ZXJpZnkpCj4+ICsgICAg ICAgICAgICAgICAgLm1hcCh8c3ZzfCBzdnMuc3RhdGUpCj4+ICsgICAgICAgICAgICAgICAgLm1h cF9lcnIoSW50bzo6aW50bykKPj4gKyAgICAgICAgfSkKPj4gKyAgICB9Cj4KPndvdWxkbid0IGl0 IG1ha2UgbW9yZSBzZW5zZSB0byBoYXZlIHRoaXMgYXMgYSBnZXR0ZXIgZm9yIGFuIG9wdGlvbmFs Cj5TbmFwc2hvdFZlcmlmeVN0YXRlIG9uIHRoZSBCYWNrdXBNYW5pZmVzdD8KPgo+dGhlbiBpdCBj b3VsZCBnbyBpbnRvIGl0cyBvd24gY29tbWl0LCBvdGhlciBjYWxsIHNpdGVzIHRoYXQgbG9hZCB0 aGUKPnZlcmlmeSBzdGF0ZSBmcm9tIGEgbWFuaWZlc3QgY291bGQgYmUgYWRhcHRlZCB0byBpdCwg YW5kIHRoZW4gdGhpcwo+Y29tbWl0IGNhbiBhbHNvIHN0YXJ0IHVzaW5nIGl0PwoKWW91J3JlIHJp Z2h0IHRoZSBCYWNrdXBNYW5pZmVzdCBpcyBsb2FkZWQgaGVyZSB0d2ljZSBhY3R1YWxseS4gU28g SQpjb3VsZCBtb3ZlIHRoaXMgZnVuY3Rpb24gdG8gYSBnZXR0ZXIgaW4gQmFja3VwTWFuaWZlc3Qg YW5kIHRoZW4gbW92ZSB0aGUKY29uc3RydWN0aW9uIG9mIGl0IChzcmMvc2VydmVyL3B1bGwucnM6 Mzk2KToKCiAgICAgbGV0IG1hbmlmZXN0ID0gQmFja3VwTWFuaWZlc3Q6OnRyeV9mcm9tKHRtcF9t YW5pZmVzdF9ibG9iKT87Cgp1cCB0byAoc3JjL3NlcnZlci9wdWxsLnJzOjM2NSkuIEFuZCBpbnN0 ZWFkIG9mIGhhdmluZyB0aGUgdHJ5X2Jsb2NrIHRvCnRyeSByZWFkIGZyb20gdGhlIG1hbmlmZXN0 IGp1c3QgY2FsbCBCYWNrdXBNYW5pZmVzdDo6dHJ5X2Zyb20uCgpJJ2xsIHNlZSBpZiBJIGNhbiBt YWtlIHRoaXMgd29yay4uLgoKPmFsc28gc2VlIHRoZSBjb21tZW50IGZ1cnRoZXIgYmVsb3cgYWJv dXQgaG93IHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uCj5pcyB2ZXJ5IG5vaXN5IGlmIHNuYXBz aG90cyBhcmUgbmV3bHkgc3luY2VkIGFzIG9wcG9zZWQgdG8gcmVzeW5jZWQuLgo+Cj4+ICB9Cj4+ Cj4+ICBpbXBsIEFzUmVmPHBic19hcGlfdHlwZXM6OkJhY2t1cE5hbWVzcGFjZT4gZm9yIEJhY2t1 cERpciB7Cj4+IGRpZmYgLS1naXQgYS9zcmMvYXBpMi9jb25maWcvc3luYy5ycyBiL3NyYy9hcGky L2NvbmZpZy9zeW5jLnJzCj4+IGluZGV4IDZmZGM2OWE5ZTY0NS4uZmE5ZGI5MmYzZDExIDEwMDY0 NAo+PiAtLS0gYS9zcmMvYXBpMi9jb25maWcvc3luYy5ycwo+PiArKysgYi9zcmMvYXBpMi9jb25m aWcvc3luYy5ycwo+PiBbc25pcF0KPj4gZGlmZiAtLWdpdCBhL3NyYy9zZXJ2ZXIvcHVsbC5ycyBi L3NyYy9zZXJ2ZXIvcHVsbC5ycwo+PiBpbmRleCAzMTE3ZjdkMmM5NjAuLmIyZGQxNWQ5ZDZkYiAx MDA2NDQKPj4gLS0tIGEvc3JjL3NlcnZlci9wdWxsLnJzCj4+ICsrKyBiL3NyYy9zZXJ2ZXIvcHVs bC5ycwo+PiBAQCAtNywxMiArNywxNCBAQCB1c2Ugc3RkOjpzeW5jOjp7QXJjLCBNdXRleH07Cj4+ ICB1c2Ugc3RkOjp0aW1lOjpTeXN0ZW1UaW1lOwo+Pgo+PiAgdXNlIGFueWhvdzo6e2JhaWwsIGZv cm1hdF9lcnIsIEVycm9yfTsKPj4gK3VzZSBub206OmNvbWJpbmF0b3I6OnZlcmlmeTsKPgo+SSB0 aGluayB0aGlzIHNudWNrIGluIDspCgpPb3BzLCBteSBmYXVsdCA6KQoKPj4gW3NuaXBdCj4+IEBA IC0xNzUsOSArMTgyLDEwIEBAIGFzeW5jIGZuIHB1bGxfaW5kZXhfY2h1bmtzPEk6IEluZGV4Rmls ZT4oCj4+ICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5jb25kX3RvdWNoX2NodW5rKCZpbmZv LmRpZ2VzdCwgZmFsc2UpCj4+ICAgICAgICAgICAgICAgICAgfSk/Owo+PiAgICAgICAgICAgICAg ICAgIGlmIGNodW5rX2V4aXN0cyB7Cj4+IC0gICAgICAgICAgICAgICAgICAgIC8vaW5mbyEoImNo dW5rIHt9IGV4aXN0cyB7fSIsIHBvcywgaGV4OjplbmNvZGUoZGlnZXN0KSk7Cj4+ICsgICAgICAg ICAgICAgICAgICAgIC8vaW5mbyEoImNodW5rIGV4aXN0cyB7fSIsIGhleDo6ZW5jb2RlKGluZm8u ZGlnZXN0KSk7Cj4KPnRoaXMKPgo+PiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gT2s6Ojxf LCBFcnJvcj4oKCkpOwo+PiAgICAgICAgICAgICAgICAgIH0KPj4gKwo+Cj5hbmQgdGhpcyBhcyB3 ZWxsPwoKWWVwLCByZW1vdmVkIGJvdGgsIHRoYW5rcyBmb3IgdGhlIGhlYWRzLXVwIQoKPj4gW3Nu aXBdCj4+IEBAIC0zMjUsMTMgKzMzMywxNSBAQCBhc3luYyBmbiBwdWxsX3NpbmdsZV9hcmNoaXZl PCdhPigKPj4gIC8vLyAtIChSZSlkb3dubG9hZCB0aGUgbWFuaWZlc3QKPj4gIC8vLyAtLSBpZiBp dCBtYXRjaGVzLCBvbmx5IGRvd25sb2FkIGxvZyBhbmQgdHJlYXQgc25hcHNob3QgYXMgYWxyZWFk eSBzeW5jZWQKPj4gIC8vLyAtIEl0ZXJhdGUgb3ZlciByZWZlcmVuY2VkIGZpbGVzCj4+IC0vLy8g LS0gaWYgZmlsZSBhbHJlYWR5IGV4aXN0cywgdmVyaWZ5IGNvbnRlbnRzCj4+ICsvLy8gLS0gaWYg ZmlsZSBhbHJlYWR5IGV4aXN0cywgdmVyaWZ5IGNvbnRlbnRzIG9yIHB1bGwgYWdhaW4gaWYgbGFz dAo+PiArLy8vICAgICB2ZXJpZmljYXRpb24gZmFpbGVkIGFuZCBgcmVzeW5jX2NvcnJ1cHRgIGlz IHRydWUKPj4gIC8vLyAtLSBpZiBub3QsIHB1bGwgaXQgZnJvbSB0aGUgcmVtb3RlCj4+ICAvLy8g LSBEb3dubG9hZCBsb2cgaWYgbm90IGFscmVhZHkgZXhpc3RpbmcKPj4gIGFzeW5jIGZuIHB1bGxf c25hcHNob3Q8J2E+KAo+PiAgICAgIHJlYWRlcjogQXJjPGR5biBTeW5jU291cmNlUmVhZGVyICsg J2E+LAo+PiAgICAgIHNuYXBzaG90OiAmJ2EgcGJzX2RhdGFzdG9yZTo6QmFja3VwRGlyLAo+PiAg ICAgIGRvd25sb2FkZWRfY2h1bmtzOiBBcmM8TXV0ZXg8SGFzaFNldDxbdTg7IDMyXT4+PiwKPj4g KyAgICByZXN5bmNfY29ycnVwdDogYm9vbCwKPj4gICkgLT4gUmVzdWx0PFN5bmNTdGF0cywgRXJy b3I+IHsKPj4gICAgICBsZXQgbXV0IHN5bmNfc3RhdHMgPSBTeW5jU3RhdHM6OmRlZmF1bHQoKTsK Pj4gICAgICBsZXQgbXV0IG1hbmlmZXN0X25hbWUgPSBzbmFwc2hvdC5mdWxsX3BhdGgoKTsKPj4g QEAgLTM1Miw2ICszNjIsMTQgQEAgYXN5bmMgZm4gcHVsbF9zbmFwc2hvdDwnYT4oCj4+ICAgICAg ICAgIHJldHVybiBPayhzeW5jX3N0YXRzKTsKPj4gICAgICB9Cj4+Cj4KPkkgdGhpbmsgdGhpcyBw YXJ0IGhlcmUgaXMgc29tZXdoYXQgd3Jvbmcgb3JkZXJpbmcgd2lzZSwgb3IgYXQgbGVhc3QsCj51 bm5lY2Vzc2FyaWx5IGV4cGVuc2l2ZS4uCj4KPmlmIHJlc3luY19jb3JydXB0IGlzIGVuYWJsZWQs IHdlIHdhbnQgdG8gKGluIHRoaXMgb3JkZXIhKQo+LSBjaGVjayB0aGUgbG9jYWwgc25hcHNob3Qg Zm9yIGNvcnJ1cHRpb24sIGlmIGl0IGV4aXN0cwo+LSBpZiBpdCBpcyBjb3JydXB0LCB3ZSBwcm9j ZWVkIHdpdGggcmVzeW5jaW5nCj4tIGlmIG5vdCwgd2Ugb25seSBwcm9jZWVkIHdpdGggcmVzeW5j aW5nIGlmIGl0IGlzIHRoZSBsYXN0IHNuYXBzaG90IGluCj4gIHRoaXMgZ3JvdXAsIGFuZCByZXR1 cm4gZWFybHkgb3RoZXJ3aXNlCj4KPnRoYXQgd2F5LCB3ZSBhdm9pZCByZWRvd25sb2FkaW5nIGFs bCB0aGUgbWFuaWZlc3RzLi4gYnV0IHNlZSBmdXJ0aGVyCj5iZWxvdyBmb3IgYW5vdGhlciBpc3N1 ZSB3aXRoIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uLi4KPgo+PiArICAgIGxldCBtdXN0X3Jl c3luY19leGlzdGluZyA9IHJlc3luY19jb3JydXB0Cj4+ICsgICAgICAgICYmIHNuYXBzaG90Cj4+ ICsgICAgICAgICAgICAudmVyaWZ5X3N0YXRlKCkKPj4gKyAgICAgICAgICAgIC5pbnNwZWN0X2Vy cih8ZXJyfCB7Cj4+ICsgICAgICAgICAgICAgICAgdHJhY2luZzo6ZXJyb3IhKCJGYWlsZWQgdG8g Y2hlY2sgdmVyaWZpY2F0aW9uIHN0YXRlIG9mIHNuYXBzaG90OiB7ZXJyOj99IikKPgo+MjAyNC0x MS0wNFQxMjozNDo1NyswMTowMDogRmFpbGVkIHRvIGNoZWNrIHZlcmlmaWNhdGlvbiBzdGF0ZSBv ZiBzbmFwc2hvdDogdW5hYmxlIHRvIGxvYWQgYmxvYiAnIi90YW5rL3Bicy9ucy9mb29iYXIvbnMv dGVzdC9ucy9hbm90aGVyX3Rlc3Qvdm0vOTAwLzIwMjMtMDQtMDZUMTQ6MzY6MDBaL2luZGV4Lmpz b24uYmxvYiInIC0gTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeSAob3MgZXJyb3IgMikKPgo+dGhp cyBzZWVtcyB0byBiZSB2ZXJ5IG5vaXN5IGZvciBuZXdseSBzeW5jZWQgc25hcHNob3RzLCBiZWNh dXNlIHRoZQo+aGVscGVyIGlzIGltcGxlbWVudGVkIG9uIEJhY2t1cEluZm8gaW5zdGVhZCBvZiBv biBCYWNrdXBNYW5pZmVzdC4uCgpUcnVlLCBidXQgSSB0aGluayB0aGlzIGlzIG1vc3RseSBiZWNh dXNlIG5ldyBiYWNrdXBzIGRvbid0IGhhdmUgYQp2ZXJpZnlfc3RhdGUgeWV0IChhbmQgdGhhdCBk b2Vzbid0IG5lY2Vzc2FyaWx5IG1lYW4gPT0gYmFkKS4gUmVtb3ZlZCB0aGUKbG9nIGxpbmUgYXMg aXQncyBzaWxseSBhbnl3YXkgOikKCj4+ICsgICAgICAgICAgICB9KQo+PiArICAgICAgICAgICAg LmlzX29rX2FuZCh8c3RhdGV8IHN0YXRlID09IFZlcmlmeVN0YXRlOjpGYWlsZWQpOwo+PiArCj4+ ICAgICAgaWYgbWFuaWZlc3RfbmFtZS5leGlzdHMoKSB7Cj4+ICAgICAgICAgIGxldCBtYW5pZmVz dF9ibG9iID0gcHJveG1veF9sYW5nOjp0cnlfYmxvY2shKHsKPj4gICAgICAgICAgICAgIGxldCBt dXQgbWFuaWZlc3RfZmlsZSA9IHN0ZDo6ZnM6OkZpbGU6Om9wZW4oJm1hbmlmZXN0X25hbWUpLm1h cF9lcnIofGVycnwgewo+PiBbc25pcF0KPj4gQEAgLTUyOCw2ICs1NTQsMTAgQEAgYXN5bmMgZm4g cHVsbF9ncm91cCgKPj4gICAgICAgICAgLmVudW1lcmF0ZSgpCj4+ICAgICAgICAgIC5maWx0ZXIo fCYocG9zLCByZWYgZGlyKXwgewo+PiAgICAgICAgICAgICAgc291cmNlX3NuYXBzaG90cy5pbnNl cnQoZGlyLnRpbWUpOwo+PiArICAgICAgICAgICAgLy8gSWYgcmVzeW5jX2NvcnJ1cHQgaXMgc2V0 LCB3ZSBnbyB0aHJvdWdoIGFsbCB0aGUgcmVtb3RlIHNuYXBzaG90cwo+PiArICAgICAgICAgICAg aWYgcGFyYW1zLnJlc3luY19jb3JydXB0IHsKPj4gKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1 ZTsKPj4gKyAgICAgICAgICAgIH0KPgo+YWx0ZXJuYXRpdmVseSwgd2UgY291bGQgY2hlY2sgdGhl IGxvY2FsIG1hbmlmZXN0IGhlcmUsIGFuZCBvbmx5IGluY2x1ZGUKPmV4aXN0aW5nIHNuYXBzaG90 cyB3aXRoIGEgZmFpbGVkIHZlcmlmaWNhdGlvbiBzdGF0ZSwgdGhlIGxhc3Qgb25lIGFuZAo+bmV3 IG9uZXM/IHRoYXQgd2F5LCB3ZSdkIGdldCBtb3JlIG1lYW5pbmdmdWwgcHJvZ3Jlc3Mgc3RhdHMg YXMgd2VsbC4uCgpUaGF0J3MgdHJ1ZSwgdGhhdCB3b3VsZCBiZSBjbGVhbmVyLiBUaGUgZG93bnNp ZGUgaXMgdGhhdCB3ZSB3b3VsZCBoYXZlCm9wZW4vcGFyc2UgdGhlIEJhY2t1cE1hbmlmZXN0IHR3 aWNlLgoKSSBjb3VsZCB3cml0ZSBzb21ldGhpbmcgbGlrZToKCiAgICAgaWYgcGFyYW1zLnJlc3lu Y19jb3JydXB0IHsKICAgICAgICBsZXQgbG9jYWxfZGlyID0gcGFyYW1zLnRhcmdldC5zdG9yZS5i YWNrdXBfZGlyKHRhcmdldF9ucy5jbG9uZSgpLCBkaXIuY2xvbmUoKSk7CiAgICAgICAgaWYgbGV0 IE9rKGRpcikgPSBsb2NhbF9kaXIgewogICAgICAgICAgIGxldCB2ZXJpZnlfc3RhdGUgPSBkaXIu dmVyaWZ5X3N0YXRlKCk7IAogICAgICAgICAgIGlmIHZlcmlmeV9zdGF0ZSA9PSBTb21lKFZlcmlm eVN0YXRlOjpGYWlsZWQpIHsKICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAg fQogICAgICAgIH0KICAgICB9Cgo+YmVjYXVzZSByaWdodCBub3csIHRoaXMgd2lsbCBub3Qgb25s eSByZXN5bmMgZXhpc3RpbmcgY29ycnVwdCBzbmFwc2hvdHMsCj5idXQgYWxzbyBvbmVzIHRoYXQg aGF2ZSBiZWVuIHBydW5lZCBsb2NhbGx5LCBidXQgbm90IG9uIHRoZSBzb3VyY2UKPihpLmUuLCB0 aGUgb3RoZXIgcHJvcG9zZWQgImZpeGluZyIgc3luYyBtb2RlIHRoYXQgc3luY3MgIm1pc3Npbmci Cj5vbGQgc25hcHNob3RzLCBub3QganVzdCBjb3JydXB0IG9uZXMpLgoKSSdtIHRvbyBzdHVwaWQg dG8gZmluZCB0aGUgbWFpbCB3aGVyZSB0aGlzIHdhcyBtZW50aW9uZWQvZGlzY3Vzc2VkLCBJJ20K cXVpdGUgc3VyZSB3ZSBzYWlkIHRvIGp1c3QgcHVsbCBib3RoLCBhbmQgdGhlbiBtYXliZSBzZXBh cmF0ZSB0aGVtIGluIGEKZnV0dXJlIGl0ZXJhdGlvbi9mZWF0dXJlLiBCdXQgbm93IHRoYXQgSSB0 aGluayBhYm91dCB0aGUgZmxhZyBpcyBuYW1lZApgcmVzeW5jX2NvcnJ1cHRgIHNvIEknZCBleHBl Y3QgaXQgdG8gb25seSBwdWxsIGluIHRoZSBjb3JydXB0IHNuYXBzaG90cy4KCkkgYWN0dWFsbHkg YWdyZWUgd2l0aCB0aGlzIGNoYW5nZSwgaXQgcHJvYmFibHkgaXMgYWxzbyBtb3JlIHBlcmZvcm1h bnQKKHJlYWRpbmcgYmFja3VwX21hbmlmZXN0IHR3aWNlIGlzIHByb2JhYmx5IGZhc3RlciB0aGFu IHB1bGxpbmcgbG90cyBvZgp1bm5lZWRlZCBtYW5pZmVzdHMgZnJvbSB0aGUgcmVtb3RlKS4KCj4+ ICAgICAgICAgICAgICBpZiBsYXN0X3N5bmNfdGltZSA+IGRpci50aW1lIHsKPj4gICAgICAgICAg ICAgICAgICBhbHJlYWR5X3N5bmNlZF9za2lwX2luZm8udXBkYXRlKGRpci50aW1lKTsKPj4gICAg ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cj4+IEBAIC01NjYsNyArNTk2LDEzIEBAIGFzeW5j IGZuIHB1bGxfZ3JvdXAoCj4+ICAgICAgICAgICAgICAuc291cmNlCj4+ICAgICAgICAgICAgICAu cmVhZGVyKHNvdXJjZV9uYW1lc3BhY2UsICZmcm9tX3NuYXBzaG90KQo+PiAgICAgICAgICAgICAg LmF3YWl0PzsKPj4gLSAgICAgICAgbGV0IHJlc3VsdCA9IHB1bGxfc25hcHNob3RfZnJvbShyZWFk ZXIsICZ0b19zbmFwc2hvdCwgZG93bmxvYWRlZF9jaHVua3MuY2xvbmUoKSkuYXdhaXQ7Cj4+ICsg ICAgICAgIGxldCByZXN1bHQgPSBwdWxsX3NuYXBzaG90X2Zyb20oCj4+ICsgICAgICAgICAgICBy ZWFkZXIsCj4+ICsgICAgICAgICAgICAmdG9fc25hcHNob3QsCj4+ICsgICAgICAgICAgICBkb3du bG9hZGVkX2NodW5rcy5jbG9uZSgpLAo+PiArICAgICAgICAgICAgcGFyYW1zLnJlc3luY19jb3Jy dXB0LAo+PiArICAgICAgICApCj4+ICsgICAgICAgIC5hd2FpdDsKPj4KPj4gICAgICAgICAgcHJv Z3Jlc3MuZG9uZV9zbmFwc2hvdHMgPSBwb3MgYXMgdTY0ICsgMTsKPj4gICAgICAgICAgaW5mbyEo InBlcmNlbnRhZ2UgZG9uZToge3Byb2dyZXNzfSIpOwoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCnBicy1kZXZlbCBtYWlsaW5nIGxpc3QKcGJzLWRldmVs QGxpc3RzLnByb3htb3guY29tCmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWls bWFuL2xpc3RpbmZvL3Bicy1kZXZlbAo=