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 778841FF16F for ; Tue, 30 Sep 2025 10:44:42 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 7D9592028; Tue, 30 Sep 2025 10:44:48 +0200 (CEST) Date: Tue, 30 Sep 2025 10:44:11 +0200 From: Fabian =?iso-8859-1?q?Gr=FCnbichler?= To: Proxmox Backup Server development discussion References: <20250929151759.844346-1-c.ebner@proxmox.com> In-Reply-To: <20250929151759.844346-1-c.ebner@proxmox.com> MIME-Version: 1.0 User-Agent: astroid/0.17.0 (https://github.com/astroidmail/astroid) Message-Id: <1759221679.xvpl4bbm4p.astroid@yuna.none> X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1759221834080 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.048 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] fix #6566: backup: api: conditionally drop group and snapshot locks 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" T24gU2VwdGVtYmVyIDI5LCAyMDI1IDU6MTcgcG0sIENocmlzdGlhbiBFYm5lciB3cm90ZToKPiBU byBndWFyYW50ZWUgY29uc2lzdGVuY3kgYnkgcG9zc2libGUgY29uY3VycmVudCBvcGVyYXRpb25z LCB0aGUKPiBiYWNrdXAgcHJvdG9jb2wgbG9ja3MgdGhlIGJhY2t1cCBncm91cCwgdGhlIHByZXZp b3VzIGJhY2t1cAo+IHNuYXBzaG90IChpZiBhbnkpIGFuZCBob2xkcyBhIGxvY2sgZm9yIHRoZSBu ZXdseSBjcmVhdGVkIGJhY2t1cAo+IHNuYXBzaG90LiBBbGwgb2YgdGhlc2UgYXJlIGN1cnJlbnRs eSBzdG9yZWQgaW4gdGhlIGJhY2t1cCB3b3JrZXIKPiB0YXNrLCBvbmx5IHJlbGVhc2VkIG9uIGl0 cyBkZXN0cnVjdGlvbi4KPiAKPiBUaGUgYmFja3VwIEFQSSBob3dldmVyIHNpZ25hbHMgYSBzdWNj ZXNzZnVsIGJhY2t1cCB2aWEgdGhlIHJldHVybgo+IHN0YXR1cyBvZiB0aGUgYGZpbmlzaGAgY2Fs bCwgd2hpbGUgc3RpbGwgaG9sZGluZyB0aGUgbG9ja3MuCj4gVGhlcmVmb3JlLCBhbiBpbW1lZGlh dGUgc3Vic2VxdWVudCBiYWNrdXAgb2YgdGhlIGNsaWVudCB0byB0aGUgc2FtZQo+IGdyb3VwIGNh biBmYWlsIGJlY2F1c2UgdGhlIGxvY2tzIGNhbm5vdCBiZSBhY3F1aXJlZCB1bnRpbCB0aGUgcHJl dmlvdXMKPiBiYWNrdXAgdGFzayBpcyBjb21wbGV0ZWx5IGRlc3Ryb3llZCwgd2hpY2ggY2FuIGhv d2V2ZXIgb3V0bGl2ZSB0aGUKPiBgZmluaXNoYCByZXR1cm4gZm9yIHNvbWUgdGltZS4gVGhpcyBt YW5pZmVzdHMgaW4gZS5nLiBhIHB1c2ggc3luYyBqb2IKPiBmYWlsaW5nLgo+IAo+IFRvIGZpeCB0 aGlzLCBzdG9yZSB0aGUgbG9jayBndWFyZHMgaW5zaWRlIHRoZSBSUEMgZW52aXJvbm1lbnRzIHNo YXJlZAo+IHN0YXRlIGluc3RlYWQsIGFsbG93aW5nIHRvIHNlbGVjdGl2ZWx5IGRyb3AgdGhlIGxv Y2tzIG9uIHN1Y2Nlc3NmdWwKPiBiYWNrdXAgZmluaXNoLiBPbiBlcnJvciwgaG9sZCB0aGUgbG9j a3MgdW50aWwgdGhlIGNsZWFudXAgd2FzCj4gc3VjY2Vzc2Z1bC4KPiAKPiBJbW1lZGlhdGUgdmVy aWZpY2F0aW9uIG9mIG5ldyBzbmFwc2hvdHMgYWxyZWFkeSBkb3duZ3JhZGVkIHRoZSBsb2NrCj4g YnkgZHJvcHBpbmcgdGhlIGV4Y2x1c2l2ZSBsb2NrIGFuZCBnZXR0aW5nIGEgc2hhcmVkIGxvY2su IFNpbmNlIHRoZQo+IGRyb3BwaW5nIGlzIG5vdyBhbHJlYWR5IGhhbmRsZWQgYnkgdGhlIGZpbmlz aCBjYWxsLCBvbmx5IGdhdGhlcmluZwo+IHRoZSBzaGFyZWQgbG9jayBpcyByZXF1aXJlZC4gV2hp bGUgdGhlcmUgaXMgbm93IGEgbGFyZ2VyIHRpbWUgd2luZG93Cj4gZm9yIGNvbmN1cnJlbnQgcHJ1 bmVzLCB0aGUgdW5kZXJseWluZyBwb3NzaWJsZSByYWNlIGJldHdlZW4KPiB2ZXJpZmljYXRpb24g YW5kIHBydW5lIHJlbWFpbnMgaW4gcGxhY2UuCj4gCj4gRml4ZXM6IGh0dHBzOi8vYnVnemlsbGEu cHJveG1veC5jb20vc2hvd19idWcuY2dpP2lkPTY1NjYKPiBTaWduZWQtb2ZmLWJ5OiBDaHJpc3Rp YW4gRWJuZXIgPGMuZWJuZXJAcHJveG1veC5jb20+CgpSZXZpZXdlZC1ieTogRmFiaWFuIEdyw7xu YmljaGxlciA8Zi5ncnVlbmJpY2hsZXJAcHJveG1veC5jb20+CgppdCBzaG91bGQgYmUgdmVyeSBy YXJlIHRoYXQgYSBzbmFwc2hvdCBpcyBhdHRlbXB0ZWQgdG8gYmUgcmVtb3ZlZCByaWdodAphcyBp dCB3YXMgY3JlYXRlZCwgc28gdGhlIHNsaWdodGx5IGluY3JlYXNlZCByYWNlIHdpbmRvdyB0aGVy ZSBzaG91bGQgYmUKb2theS4KCmRpZCB5b3UgdGVzdCB0aGlzIHdpdGggdnpkdW1wJ3MgYHByb3Rl Y3RlZGAgb3B0aW9uIGFuZCB2ZXJpZnkgYWZ0ZXIKY29tcGxldGlvbj8KCj4gLS0tCj4gQ2hhbmdl cyBzaW5jZSB2ZXJzaW9uIDE6Cj4gLSByZWJhc2VkIG9udG8gY3VycmVudCBtYXN0ZXIKPiAKPiAg c3JjL2FwaTIvYmFja3VwL2Vudmlyb25tZW50LnJzIHwgMzggKysrKysrKysrKysrKysrKysrKysr KysrKysrKystLS0tLQo+ICBzcmMvYXBpMi9iYWNrdXAvbW9kLnJzICAgICAgICAgfCAxOCArKysr KysrKystLS0tLS0tCj4gIDIgZmlsZXMgY2hhbmdlZCwgNDMgaW5zZXJ0aW9ucygrKSwgMTMgZGVs ZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL3NyYy9hcGkyL2JhY2t1cC9lbnZpcm9ubWVudC5y cyBiL3NyYy9hcGkyL2JhY2t1cC9lbnZpcm9ubWVudC5ycwo+IGluZGV4IGFjZTMwNWQ3ZS4uZmEx NDQ0YWIxIDEwMDY0NAo+IC0tLSBhL3NyYy9hcGkyL2JhY2t1cC9lbnZpcm9ubWVudC5ycwo+ICsr KyBiL3NyYy9hcGkyL2JhY2t1cC9lbnZpcm9ubWVudC5ycwo+IEBAIC05Niw2ICs5NiwyNyBAQCBz dHJ1Y3QgU2hhcmVkQmFja3VwU3RhdGUgewo+ICAgICAga25vd25fY2h1bmtzOiBLbm93bkNodW5r c01hcCwKPiAgICAgIGJhY2t1cF9zaXplOiB1NjQsIC8vIHN1bXMgdXAgc2l6ZSBvZiBhbGwgZmls ZXMKPiAgICAgIGJhY2t1cF9zdGF0OiBVcGxvYWRTdGF0aXN0aWMsCj4gKyAgICBiYWNrdXBfbG9j a19ndWFyZHM6IEJhY2t1cExvY2tHdWFyZHMsCj4gK30KPiArCj4gK3B1YiBzdHJ1Y3QgQmFja3Vw TG9ja0d1YXJkcyB7Cj4gKyAgICBwcmV2aW91c19zbmFwc2hvdDogT3B0aW9uPEJhY2t1cExvY2tH dWFyZD4sCj4gKyAgICBncm91cDogT3B0aW9uPEJhY2t1cExvY2tHdWFyZD4sCj4gKyAgICBzbmFw c2hvdDogT3B0aW9uPEJhY2t1cExvY2tHdWFyZD4sCj4gK30KPiArCj4gK2ltcGwgQmFja3VwTG9j a0d1YXJkcyB7Cj4gKyAgICBwdWIoY3JhdGUpIGZuIG5ldygKPiArICAgICAgICBwcmV2aW91c19z bmFwc2hvdDogT3B0aW9uPEJhY2t1cExvY2tHdWFyZD4sCj4gKyAgICAgICAgZ3JvdXA6IEJhY2t1 cExvY2tHdWFyZCwKPiArICAgICAgICBzbmFwc2hvdDogQmFja3VwTG9ja0d1YXJkLAo+ICsgICAg KSAtPiBTZWxmIHsKPiArICAgICAgICBTZWxmIHsKPiArICAgICAgICAgICAgcHJldmlvdXNfc25h cHNob3QsCj4gKyAgICAgICAgICAgIGdyb3VwOiBTb21lKGdyb3VwKSwKPiArICAgICAgICAgICAg c25hcHNob3Q6IFNvbWUoc25hcHNob3QpLAo+ICsgICAgICAgIH0KPiArICAgIH0KPiAgfQo+ICAK PiAgaW1wbCBTaGFyZWRCYWNrdXBTdGF0ZSB7Cj4gQEAgLTE0MCw2ICsxNjEsNyBAQCBpbXBsIEJh Y2t1cEVudmlyb25tZW50IHsKPiAgICAgICAgICBkYXRhc3RvcmU6IEFyYzxEYXRhU3RvcmU+LAo+ ICAgICAgICAgIGJhY2t1cF9kaXI6IEJhY2t1cERpciwKPiAgICAgICAgICBub19jYWNoZTogYm9v bCwKPiArICAgICAgICBiYWNrdXBfbG9ja19ndWFyZHM6IEJhY2t1cExvY2tHdWFyZHMsCj4gICAg ICApIC0+IFJlc3VsdDxTZWxmLCBFcnJvcj4gewo+ICAgICAgICAgIGxldCBzdGF0ZSA9IFNoYXJl ZEJhY2t1cFN0YXRlIHsKPiAgICAgICAgICAgICAgZmluaXNoZWQ6IEJhY2t1cFN0YXRlOjpBY3Rp dmUsCj4gQEAgLTE1MCw2ICsxNzIsNyBAQCBpbXBsIEJhY2t1cEVudmlyb25tZW50IHsKPiAgICAg ICAgICAgICAga25vd25fY2h1bmtzOiBIYXNoTWFwOjpuZXcoKSwKPiAgICAgICAgICAgICAgYmFj a3VwX3NpemU6IDAsCj4gICAgICAgICAgICAgIGJhY2t1cF9zdGF0OiBVcGxvYWRTdGF0aXN0aWM6 Om5ldygpLAo+ICsgICAgICAgICAgICBiYWNrdXBfbG9ja19ndWFyZHMsCj4gICAgICAgICAgfTsK PiAgCj4gICAgICAgICAgbGV0IGJhY2tlbmQgPSBkYXRhc3RvcmUuYmFja2VuZCgpPzsKPiBAQCAt NzE5LDYgKzc0Miw4IEBAIGltcGwgQmFja3VwRW52aXJvbm1lbnQgewo+ICAgICAgICAgICAgICAg ICAgKTsKPiAgICAgICAgICAgICAgfQo+ICAgICAgICAgIH0KPiArICAgICAgICAvLyBkcm9wIHBy ZXZpb3VzIHNuYXBzaG90IGxvY2sKPiArICAgICAgICBzdGF0ZS5iYWNrdXBfbG9ja19ndWFyZHMu cHJldmlvdXNfc25hcHNob3QudGFrZSgpOwo+ICAKPiAgICAgICAgICBsZXQgc3RhdHMgPSBzZXJk ZV9qc29uOjp0b192YWx1ZShzdGF0ZS5iYWNrdXBfc3RhdCk/Owo+ICAKPiBAQCAtNzQ0LDEzICs3 NjksMTcgQEAgaW1wbCBCYWNrdXBFbnZpcm9ubWVudCB7Cj4gICAgICAgICAgLy8gbWFya3MgdGhl IGJhY2t1cCBhcyBzdWNjZXNzZnVsCj4gICAgICAgICAgc3RhdGUuZmluaXNoZWQgPSBCYWNrdXBT dGF0ZTo6RmluaXNoZWQ7Cj4gIAo+ICsgICAgICAgIC8vIGRyb3Agc25hcHNob3QgYW5kIGdyb3Vw IGxvY2sgb25seSBoZXJlIHNvIGFueSBlcnJvciBhYm92ZSB3aWxsIGxlYWQgdG8KPiArICAgICAg ICAvLyB0aGUgbG9ja3Mgc3RpbGwgYmVpbmcgaGVsZCBpbiB0aGUgZW52IGZvciB0aGUgYmFja3Vw IGNsZWFudXAuCj4gKyAgICAgICAgc3RhdGUuYmFja3VwX2xvY2tfZ3VhcmRzLnNuYXBzaG90LnRh a2UoKTsKPiArICAgICAgICBzdGF0ZS5iYWNrdXBfbG9ja19ndWFyZHMuZ3JvdXAudGFrZSgpOwo+ ICsKPiAgICAgICAgICBPaygoKSkKPiAgICAgIH0KPiAgCj4gICAgICAvLy8gSWYgdmVyaWZ5LW5l dyBpcyBzZXQgb24gdGhlIGRhdGFzdG9yZSwgdGhpcyB3aWxsIHJ1biBhIG5ldyB2ZXJpZnkgdGFz awo+IC0gICAgLy8vIGZvciB0aGUgYmFja3VwLiBJZiBub3QsIHRoaXMgd2lsbCByZXR1cm4gYW5k IGFsc28gZHJvcCB0aGUgcGFzc2VkIGxvY2sKPiAtICAgIC8vLyBpbW1lZGlhdGVseS4KPiAtICAg IHB1YiBmbiB2ZXJpZnlfYWZ0ZXJfY29tcGxldGUoJnNlbGYsIGV4Y2xfc25hcF9sb2NrOiBCYWNr dXBMb2NrR3VhcmQpIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKPiArICAgIC8vLyBmb3IgdGhlIGJh Y2t1cC4gSWYgbm90LCB0aGlzIHdpbGwgcmV0dXJuLgo+ICsgICAgcHViIGZuIHZlcmlmeV9hZnRl cl9jb21wbGV0ZSgmc2VsZikgLT4gUmVzdWx0PCgpLCBFcnJvcj4gewo+ICAgICAgICAgIHNlbGYu ZW5zdXJlX2ZpbmlzaGVkKCk/Owo+ICAKPiAgICAgICAgICBpZiAhc2VsZi5kYXRhc3RvcmUudmVy aWZ5X25ldygpIHsKPiBAQCAtNzU4LDggKzc4Nyw3IEBAIGltcGwgQmFja3VwRW52aXJvbm1lbnQg ewo+ICAgICAgICAgICAgICByZXR1cm4gT2soKCkpOwo+ICAgICAgICAgIH0KPiAgCj4gLSAgICAg ICAgLy8gRG93bmdyYWRlIHRvIHNoYXJlZCBsb2NrLCB0aGUgYmFja3VwIGl0c2VsZiBpcyBmaW5p c2hlZAo+IC0gICAgICAgIGRyb3AoZXhjbF9zbmFwX2xvY2spOwo+ICsgICAgICAgIC8vIEdldCBz aGFyZWQgbG9jaywgdGhlIGJhY2t1cCBpdHNlbGYgaXMgZmluaXNoZWQKPiAgICAgICAgICBsZXQg c25hcF9sb2NrID0gc2VsZi5iYWNrdXBfZGlyLmxvY2tfc2hhcmVkKCkud2l0aF9jb250ZXh0KHx8 IHsKPiAgICAgICAgICAgICAgZm9ybWF0ISgKPiAgICAgICAgICAgICAgICAgICJ3aGlsZSB0cnlp bmcgdG8gdmVyaWZ5IHNuYXBzaG90ICd7Oj99JyBhZnRlciBjb21wbGV0aW9uIiwKPiBkaWZmIC0t Z2l0IGEvc3JjL2FwaTIvYmFja3VwL21vZC5ycyBiL3NyYy9hcGkyL2JhY2t1cC9tb2QucnMKPiBp bmRleCA4YTA3NmEyYjAuLjI0NmIwOTQ2ZCAxMDA2NDQKPiAtLS0gYS9zcmMvYXBpMi9iYWNrdXAv bW9kLnJzCj4gKysrIGIvc3JjL2FwaTIvYmFja3VwL21vZC5ycwo+IEBAIC0xNDQsNyArMTQ0LDcg QEAgZm4gdXBncmFkZV90b19iYWNrdXBfcHJvdG9jb2woCj4gICAgICAgICAgfTsKPiAgCj4gICAg ICAgICAgLy8gbG9jayBiYWNrdXAgZ3JvdXAgdG8gb25seSBhbGxvdyBvbmUgYmFja3VwIHBlciBn cm91cCBhdCBhIHRpbWUKPiAtICAgICAgICBsZXQgKG93bmVyLCBfZ3JvdXBfZ3VhcmQpID0gZGF0 YXN0b3JlLmNyZWF0ZV9sb2NrZWRfYmFja3VwX2dyb3VwKAo+ICsgICAgICAgIGxldCAob3duZXIs IGdyb3VwX2d1YXJkKSA9IGRhdGFzdG9yZS5jcmVhdGVfbG9ja2VkX2JhY2t1cF9ncm91cCgKPiAg ICAgICAgICAgICAgYmFja3VwX2dyb3VwLmJhY2t1cF9ucygpLAo+ICAgICAgICAgICAgICBiYWNr dXBfZ3JvdXAuYXNfcmVmKCksCj4gICAgICAgICAgICAgICZhdXRoX2lkLAo+IEBAIC0xODMsNyAr MTgzLDcgQEAgZm4gdXBncmFkZV90b19iYWNrdXBfcHJvdG9jb2woCj4gIAo+ICAgICAgICAgIGxl dCBiYWNrdXBfZGlyID0gYmFja3VwX2dyb3VwLmJhY2t1cF9kaXIoYmFja3VwX2Rpcl9hcmcudGlt ZSk/Owo+ICAKPiAtICAgICAgICBsZXQgX2xhc3RfZ3VhcmQgPSBpZiBsZXQgU29tZShsYXN0KSA9 ICZsYXN0X2JhY2t1cCB7Cj4gKyAgICAgICAgbGV0IGxhc3RfZ3VhcmQgPSBpZiBsZXQgU29tZShs YXN0KSA9ICZsYXN0X2JhY2t1cCB7Cj4gICAgICAgICAgICAgIGlmIGJhY2t1cF9kaXIuYmFja3Vw X3RpbWUoKSA8PSBsYXN0LmJhY2t1cF9kaXIuYmFja3VwX3RpbWUoKSB7Cj4gICAgICAgICAgICAg ICAgICBiYWlsISgiYmFja3VwIHRpbWVzdGFtcCBpcyBvbGRlciB0aGFuIGxhc3QgYmFja3VwLiIp Owo+ICAgICAgICAgICAgICB9Cj4gQEAgLTIxMCw2ICsyMTAsMTIgQEAgZm4gdXBncmFkZV90b19i YWNrdXBfcHJvdG9jb2woCj4gICAgICAgICAgICAgIGF1dGhfaWQudG9fc3RyaW5nKCksCj4gICAg ICAgICAgICAgIHRydWUsCj4gICAgICAgICAgICAgIG1vdmUgfHdvcmtlcnwgYXN5bmMgbW92ZSB7 Cj4gKyAgICAgICAgICAgICAgICAvLyBLZWVwIGZsb2NrIGZvciB0aGUgYmFja3VwIHJ1bnRpbWUg Ynkgc3RvcmluZyBndWFyZHMgaW4gYmFja3VwIGVudiBzaGFyZWQgc3RhdGUuCj4gKyAgICAgICAg ICAgICAgICAvLyBEcm9wIHRoZW0gb24gc3VjY2Vzc2Z1bCBiYWNrdXAgZmluaXNoIG9yIHdoZW4g ZHJvcHBpbmcgdGhlIGVudiBhZnRlciBjbGVhbnVwIGluCj4gKyAgICAgICAgICAgICAgICAvLyBj YXNlIG9mIGVycm9ycy4gVGhlIGZvcm1lciBpcyByZXF1aXJlZCBmb3IgaW1tZWRpYXRlIHN1YnNl cXVlbnQgYmFja3VwcyAoZS5nLgo+ICsgICAgICAgICAgICAgICAgLy8gZHVyaW5nIGEgcHVzaCBz eW5jKSB0byBiZSBhYmxlIHRvIGxvY2sgdGhlIGdyb3VwIGFuZCBzbmFwc2hvdHMuCj4gKyAgICAg ICAgICAgICAgICBsZXQgYmFja3VwX2xvY2tfZ3VhcmRzID0gQmFja3VwTG9ja0d1YXJkczo6bmV3 KGxhc3RfZ3VhcmQsIGdyb3VwX2d1YXJkLCBzbmFwX2d1YXJkKTsKPiArCj4gICAgICAgICAgICAg ICAgICBsZXQgbXV0IGVudiA9IEJhY2t1cEVudmlyb25tZW50OjpuZXcoCj4gICAgICAgICAgICAg ICAgICAgICAgZW52X3R5cGUsCj4gICAgICAgICAgICAgICAgICAgICAgYXV0aF9pZCwKPiBAQCAt MjE3LDYgKzIyMyw3IEBAIGZuIHVwZ3JhZGVfdG9fYmFja3VwX3Byb3RvY29sKAo+ICAgICAgICAg ICAgICAgICAgICAgIGRhdGFzdG9yZSwKPiAgICAgICAgICAgICAgICAgICAgICBiYWNrdXBfZGly LAo+ICAgICAgICAgICAgICAgICAgICAgIG5vX2NhY2hlLAo+ICsgICAgICAgICAgICAgICAgICAg IGJhY2t1cF9sb2NrX2d1YXJkcywKPiAgICAgICAgICAgICAgICAgICk/Owo+ICAKPiAgICAgICAg ICAgICAgICAgIGVudi5kZWJ1ZyA9IGRlYnVnOwo+IEBAIC0yNzEsMTEgKzI3OCw2IEBAIGZuIHVw Z3JhZGVfdG9fYmFja3VwX3Byb3RvY29sKAo+ICAgICAgICAgICAgICAgICAgICAgIH0pOwo+ICAg ICAgICAgICAgICAgICAgbGV0IG11dCBhYm9ydF9mdXR1cmUgPSBhYm9ydF9mdXR1cmUubWFwKHxf fCBFcnIoZm9ybWF0X2VyciEoInRhc2sgYWJvcnRlZCIpKSk7Cj4gIAo+IC0gICAgICAgICAgICAg ICAgLy8ga2VlcCBmbG9jayB1bnRpbCB0YXNrIGVuZHMKPiAtICAgICAgICAgICAgICAgIGxldCBf Z3JvdXBfZ3VhcmQgPSBfZ3JvdXBfZ3VhcmQ7Cj4gLSAgICAgICAgICAgICAgICBsZXQgc25hcF9n dWFyZCA9IHNuYXBfZ3VhcmQ7Cj4gLSAgICAgICAgICAgICAgICBsZXQgX2xhc3RfZ3VhcmQgPSBf bGFzdF9ndWFyZDsKPiAtCj4gICAgICAgICAgICAgICAgICBsZXQgcmVzID0gc2VsZWN0ISB7Cj4g ICAgICAgICAgICAgICAgICAgICAgcmVxID0gcmVxX2Z1dCA9PiByZXEsCj4gICAgICAgICAgICAg ICAgICAgICAgYWJydCA9IGFib3J0X2Z1dHVyZSA9PiBhYnJ0LAo+IEBAIC0yOTMsNyArMjk1LDcg QEAgZm4gdXBncmFkZV90b19iYWNrdXBfcHJvdG9jb2woCj4gICAgICAgICAgICAgICAgICB9Cj4g IAo+ICAgICAgICAgICAgICAgICAgbGV0IHZlcmlmeSA9IHxlbnY6IEJhY2t1cEVudmlyb25tZW50 fCB7Cj4gLSAgICAgICAgICAgICAgICAgICAgaWYgbGV0IEVycihlcnIpID0gZW52LnZlcmlmeV9h ZnRlcl9jb21wbGV0ZShzbmFwX2d1YXJkKSB7Cj4gKyAgICAgICAgICAgICAgICAgICAgaWYgbGV0 IEVycihlcnIpID0gZW52LnZlcmlmeV9hZnRlcl9jb21wbGV0ZSgpIHsKPiAgICAgICAgICAgICAg ICAgICAgICAgICAgZW52LmxvZyhmb3JtYXQhKAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgImJhY2t1cCBmaW5pc2hlZCwgYnV0IHN0YXJ0aW5nIHRoZSByZXF1ZXN0ZWQgdmVyaWZ5IHRh c2sgZmFpbGVkOiB7fSIsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnIKPiAtLSAK PiAyLjQ3LjMKPiAKPiAKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwo+IHBicy1kZXZlbCBtYWlsaW5nIGxpc3QKPiBwYnMtZGV2ZWxAbGlzdHMucHJv eG1veC5jb20KPiBodHRwczovL2xpc3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0 aW5mby9wYnMtZGV2ZWwKPiAKPiAKPiAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpwYnMtZGV2ZWwgbWFpbGluZyBsaXN0CnBicy1kZXZlbEBsaXN0cy5w cm94bW94LmNvbQpodHRwczovL2xpc3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0 aW5mby9wYnMtZGV2ZWwK