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 BDABB1FF15C for ; Wed, 30 Oct 2024 10:45:57 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 24076139ED; Wed, 30 Oct 2024 10:46:02 +0100 (CET) MIME-Version: 1.0 In-Reply-To: References: <20240904141155.350454-1-h.laimer@proxmox.com> <20240904141155.350454-7-h.laimer@proxmox.com> <1728907148.brs6f9l2g5.astroid@yuna.none> From: Fabian =?utf-8?q?Gr=C3=BCnbichler?= To: Proxmox Backup Server development discussion Date: Wed, 30 Oct 2024 10:45:48 +0100 Message-ID: <173028154854.67540.16822496705877753621@yuna.proxmox.com> User-Agent: alot/0.10 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.047 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 v12 06/26] datastore: add helper for checking if a removable datastore is available 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" UXVvdGluZyBIYW5uZXMgTGFpbWVyICgyMDI0LTEwLTI5IDE1OjA0OjI1KQo+IE9uIE1vbiBPY3Qg MTQsIDIwMjQgYXQgMzo0MiBQTSBDRVNULCBGYWJpYW4gR3LDvG5iaWNobGVyIHdyb3RlOgo+ID4g T24gU2VwdGVtYmVyIDQsIDIwMjQgNDoxMSBwbSwgSGFubmVzIExhaW1lciB3cm90ZToKPiA+ID4g Q28tYXV0aG9yZWQtYnk6IFdvbGZnYW5nIEJ1bWlsbGVyIDx3LmJ1bWlsbGVyQHByb3htb3guY29t Pgo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBIYW5uZXMgTGFpbWVyIDxoLmxhaW1lckBwcm94bW94LmNv bT4KPiA+ID4gLS0tCj4gPiA+ICBwYnMtYXBpLXR5cGVzL3NyYy9tYWludGVuYW5jZS5ycyB8ICAy ICsrCj4gPiA+ICBwYnMtZGF0YXN0b3JlL3NyYy9kYXRhc3RvcmUucnMgICB8IDU4ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrCj4gPiA+ICBwYnMtZGF0YXN0b3JlL3NyYy9saWIucnMg ICAgICAgICB8ICAyICstCj4gPiA+ICBzcmMvYmluL3Byb3htb3gtYmFja3VwLXByb3h5LnJzICB8 ICA1ICsrLQo+ID4gPiAgNCBmaWxlcyBjaGFuZ2VkLCA2NSBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQo+ID4gPiAKPiA+ID4gZGlmZiAtLWdpdCBhL3Bicy1hcGktdHlwZXMvc3JjL21haW50 ZW5hbmNlLnJzIGIvcGJzLWFwaS10eXBlcy9zcmMvbWFpbnRlbmFuY2UucnMKPiA+ID4gaW5kZXgg ZmQ0ZDM0MTYuLjlmNTEyOTJlIDEwMDY0NAo+ID4gPiAtLS0gYS9wYnMtYXBpLXR5cGVzL3NyYy9t YWludGVuYW5jZS5ycwo+ID4gPiArKysgYi9wYnMtYXBpLXR5cGVzL3NyYy9tYWludGVuYW5jZS5y cwo+ID4gPiBAQCAtODIsNiArODIsOCBAQCBpbXBsIE1haW50ZW5hbmNlTW9kZSB7Cj4gPiA+ICAg ICAgLy8vIHRhc2sgZmluaXNoZXMsIHNvIGFsbCBvcGVuIGZpbGVzIGFyZSBjbG9zZWQuCj4gPiA+ ICAgICAgcHViIGZuIGlzX29mZmxpbmUoJnNlbGYpIC0+IGJvb2wgewo+ID4gPiAgICAgICAgICBz ZWxmLnR5ID09IE1haW50ZW5hbmNlVHlwZTo6T2ZmbGluZQo+ID4gPiArICAgICAgICAgICAgfHwg c2VsZi50eSA9PSBNYWludGVuYW5jZVR5cGU6OlVubW91bnQKPiA+ID4gKyAgICAgICAgICAgIHx8 IHNlbGYudHkgPT0gTWFpbnRlbmFuY2VUeXBlOjpEZWxldGUKPiA+ID4gICAgICB9Cj4gPiA+ICAK PiA+ID4gICAgICBwdWIgZm4gY2hlY2soJnNlbGYsIG9wZXJhdGlvbjogT3B0aW9uPE9wZXJhdGlv bj4pIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKPiA+ID4gZGlmZiAtLWdpdCBhL3Bicy1kYXRhc3Rv cmUvc3JjL2RhdGFzdG9yZS5ycyBiL3Bicy1kYXRhc3RvcmUvc3JjL2RhdGFzdG9yZS5ycwo+ID4g PiBpbmRleCBmYjM3YmQ1YS4uMjlmOThiMzcgMTAwNjQ0Cj4gPiA+IC0tLSBhL3Bicy1kYXRhc3Rv cmUvc3JjL2RhdGFzdG9yZS5ycwo+ID4gPiArKysgYi9wYnMtZGF0YXN0b3JlL3NyYy9kYXRhc3Rv cmUucnMKPiA+ID4gQEAgLTEsNSArMSw2IEBACj4gPiA+ICB1c2Ugc3RkOjpjb2xsZWN0aW9uczo6 e0hhc2hNYXAsIEhhc2hTZXR9Owo+ID4gPiAgdXNlIHN0ZDo6aW86OntzZWxmLCBXcml0ZX07Cj4g PiA+ICt1c2Ugc3RkOjpvczo6dW5peDo6ZmZpOjpPc1N0ckV4dDsKPiA+ID4gIHVzZSBzdGQ6Om9z Ojp1bml4Ojppbzo6QXNSYXdGZDsKPiA+ID4gIHVzZSBzdGQ6OnBhdGg6OntQYXRoLCBQYXRoQnVm fTsKPiA+ID4gIHVzZSBzdGQ6OnN5bmM6OntBcmMsIExhenlMb2NrLCBNdXRleH07Cj4gPiA+IEBA IC0xNCw2ICsxNSw3IEBAIHVzZSBwcm94bW94X3NjaGVtYTo6QXBpVHlwZTsKPiA+ID4gIHVzZSBw cm94bW94X3N5czo6ZXJyb3I6OlN5c0Vycm9yOwo+ID4gPiAgdXNlIHByb3htb3hfc3lzOjpmczo6 e2ZpbGVfcmVhZF9vcHRpb25hbF9zdHJpbmcsIHJlcGxhY2VfZmlsZSwgQ3JlYXRlT3B0aW9uc307 Cj4gPiA+ICB1c2UgcHJveG1veF9zeXM6OmZzOjp7bG9ja19kaXJfbm9ibG9jaywgRGlyTG9ja0d1 YXJkfTsKPiA+ID4gK3VzZSBwcm94bW94X3N5czo6bGludXg6OnByb2Nmczo6TW91bnRJbmZvOwo+ ID4gPiAgdXNlIHByb3htb3hfc3lzOjpwcm9jZXNzX2xvY2tlcjo6UHJvY2Vzc0xvY2tTaGFyZWRH dWFyZDsKPiA+ID4gIHVzZSBwcm94bW94X3dvcmtlcl90YXNrOjpXb3JrZXJUYXNrQ29udGV4dDsK PiA+ID4gIAo+ID4gPiBAQCAtNDYsNiArNDgsNTIgQEAgcHViIGZuIGNoZWNrX2JhY2t1cF9vd25l cihvd25lcjogJkF1dGhpZCwgYXV0aF9pZDogJkF1dGhpZCkgLT4gUmVzdWx0PCgpLCBFcnJvcj4K PiA+ID4gICAgICBPaygoKSkKPiA+ID4gIH0KPiA+ID4gIAo+ID4gPiArLy8vIGNoZWNrIGlmIGEg cmVtb3ZhYmxlIGRhdGFzdG9yZSBpcyBjdXJyZW50bHkgYXZhaWxhYmxlL21vdW50ZWQgYnkKPiA+ ID4gKy8vLyBjb21wYXJpbmcgdGhlIGBzdF9yZGV2YCB2YWx1ZXMgb2YgYC9kZXYvZGlzay9ieS11 dWlkLzx1dWlkPmAgYW5kIHRoZSBzb3VyY2UgZGV2aWNlIGluCj4gPiA+ICsvLy8gL3Byb2Mvc2Vs Zi9tb3VudGluZm8KPiA+Cj4gPiBjaGVjayBpZiBhICpyZW1vdmFibGUqIGRhdGFzdG9yZSBpcyAu Lgo+ID4KPiAKPiBUaGUgaWRlYSB3YXMgdG8gYmUgYWJsZSB0byB3b3JrIHdpdGggbm9ybWFsIGFu ZCByZW1vdmFibGUgZGF0YXN0b3JlcyB0aGUKPiBzYW1lIHdheSB0aHJvdWdob3V0IHRoZSBjb2Rl YmFzZSwgbm90IGhhdmluZyB0aGlzIHdvdWxkIG1lYW4gaGF2aW5nIHRvCj4gZGlzZ2luZ3Vpc2gg YmV0d2VlbiB0aGVtIHdoZW4gdXNpbmcgZGF0YXN0b3Jlcy4KCndoaWNoIHlvdSBhbHJlYWR5IGRv IGluIHBhcnRzLCBidXQKIAo+IEl0IG1pZ2h0IG1ha2Ugc2Vuc2UgdG8gYWRkIGEgY2hlY2sgZm9y IHRoZSBleGlzdGFuY2Ugb24gYC5jaHVua3MvYCwgc28KPiB0aGlzIHdvdWxkbid0IGRvIG5vdGhp bmcgZm9yIG5vcm1hbCBkYXRhc3RvcmVzLgoKSSBkb24ndCBtaW5kIHRoaXMgaGVscGVyIHdvcmtp bmcgZm9yIGJvdGgsIEkganVzdCBjYXJlIGFib3V0IGl0cyBpbnRlbmRlZCB1c2UKY2FzZSBhbmQg c2VtYW50aWNzIGJlaW5nIGNsZWFyIDopCgo+ID4gPiArcHViIGZuIGlzX2RhdGFzdG9yZV9hdmFp bGFibGUoY29uZmlnOiAmRGF0YVN0b3JlQ29uZmlnKSAtPiBib29sIHsKPiA+ID4gKyAgICB1c2Ug bml4OjpzeXM6OnN0YXQ6OlNGbGFnOwo+ID4gPiArCj4gPiA+ICsgICAgbGV0IHV1aWQgPSBtYXRj aCBjb25maWcuYmFja2luZ19kZXZpY2UuYXNfZGVyZWYoKSB7Cj4gPiA+ICsgICAgICAgIFNvbWUo ZGV2KSA9PiBkZXYsCj4gPiA+ICsgICAgICAgIE5vbmUgPT4gcmV0dXJuIHRydWUsCj4gPgo+ID4g cmV0dXJucyB0cnVlIGlmIG5vdCBhIHJlbW92YWJsZSBkYXRhc3RvcmU/Cj4gPgo+ID4gPiArICAg IH07Cj4gPiA+ICsKPiA+ID4gKyAgICBsZXQgU29tZShzdG9yZV9tb3VudF9wb2ludCkgPSBjb25m aWcuZ2V0X21vdW50X3BvaW50KCkgZWxzZSB7Cj4gPiA+ICsgICAgICAgIHJldHVybiB0cnVlOwo+ ID4KPiA+IHNhbWUgaGVyZS4gYWxzbyBzZWUgZnVydGhlciBiZWxvdyAtIHRoaXMgc2hvdWxkIGVp dGhlciBiZSByZW1vdmFibGUKPiA+IGRhdGFzdG9yZSBzcGVjaWZpYywgaW4gd2hpY2ggY2FzZSBp dCBjb3VsZCB0YWtlIHV1aWQgYW5kIG1vdW50cG9pbnQgYXMKPiA+IHBhcmFtZXRlcnMsIG9yIGl0 IGNvdWxkIHRha2UgYW55IERhdGFTdG9yZUNvbmZpZywgdGhlbiB0aGUgZG9jIGNvbW1lbnQKPiA+ IHNob3VsZCByZWZsZWN0IHRoYXQgYW5kIGNsZWFybHkgZGVzY3JpYmUgdGhlIHNlbWFudGljcy4u Cj4gPgo+IAo+IHllcywgSSdsbCB1cGRhdGUgdGhlIGRvY3MKPiAKPiA+ID4gKyAgICB9Owo+ID4g PiArICAgIGxldCBzdG9yZV9tb3VudF9wb2ludCA9IFBhdGg6Om5ldygmc3RvcmVfbW91bnRfcG9p bnQpOwo+ID4gPiArCj4gPiA+ICsgICAgbGV0IGRldl9ub2RlID0gbWF0Y2ggbml4OjpzeXM6OnN0 YXQ6OnN0YXQoZm9ybWF0ISgiL2Rldi9kaXNrL2J5LXV1aWQve3V1aWR9IikuYXNfc3RyKCkpIHsK PiA+ID4gKyAgICAgICAgT2soc3RhdCkgaWYgU0ZsYWc6OmZyb21fYml0c190cnVuY2F0ZShzdGF0 LnN0X21vZGUpID09IFNGbGFnOjpTX0lGQkxLID0+IHN0YXQuc3RfcmRldiwKPiA+ID4gKyAgICAg ICAgXyA9PiByZXR1cm4gZmFsc2UsCj4gPgo+ID4gc2hvdWxkbid0IHRoaXMgZGlmZmVyZW50aWF0 ZSBiZXR3ZWVuOgo+ID4gLSBzdGF0IGZhaWxlZCB3aXRoIEVOT0VOVAo+ID4gLSBzdGF0IGZhaWxl ZCBmb3Igb3RoZXIgcmVhc29ucwo+ID4gLSBzdGF0IHdvcmtlZCBidXQgcmVzdWx0IGlzIG5vdCBh cyBleHBlY3RlZAo+ID4KPiA+ID8KPiA+Cj4gCj4gSSBndWVzcyBpdCBjb21lcyBkb3duIHRvIHdl dGhlciB3ZSB3YW50IHRvIGRpZmZlcmFudGlhdGUgYmV0d2VlbiwgIml0IGlzCj4gbm90IHRoZXJl IiBvciAid2UgY2FuJ3QgY2hlY2sgaWYgaXQgaXMgdGhlcmUiLiBTaW5jZSB0aGlzIHVzZWQgbW9z dGx5Cj4gZG9uZSBpbiB0aGUgYmFja2dyb3VuZCBhbmQgcXVpdGUgZnJlcXVlbnRseSwgSSBvcHRl ZCBmb3IgdHJlYXRpbmcgdGhlCj4gdHdvIGNhc2VzIHRoZSBzYW1lLgoKSSBkb24ndCByZWFsbHkg c2VlIGhvdyB0aGUgZnJlcXVlbmN5IG9mIGNhbGxzIG1ha2VzIGEgZGlmZmVyZW5jZSBmb3Igd2hl dGhlcgp0aGlzIHNob3VsZCBkaWZmZXJlbnRpYXRlIGJldHdlZW4gYW4gZXJyb3IgYW5kIGFuIGV4 cGVjdGVkIHN0YXRlLi4gaXQgY2FuIGJlCm9rYXkgdG8gbWFwIGVycm9ycyB0byAibm90IGF2YWls YWJsZSIgaWYgd2UgZG9uJ3QgZXZlciB3YW50IHRvIGRpZmZlcmVudGlhdGUsCmJ1dCB0aGVuIHRo aXMgc2hvdWxkIGJlIGNsZWFybHkgY29tbXVuaWNhdGVkIDspCgo+IAo+ID4gYWxzbywgdGhhdCBj b2RlIChjb250aW51ZWQgYmVsb3cgYXQgKEEpKQo+ID4KPiA+ID4gKyAgICB9Owo+ID4gPiArCj4g PiA+ICsgICAgbGV0IE9rKG1vdW50X2luZm8pID0gTW91bnRJbmZvOjpyZWFkKCkgZWxzZSB7Cj4g PiA+ICsgICAgICAgIHJldHVybiBmYWxzZTsKPiA+Cj4gPiBzaG91bGRuJ3QgdGhpcyBiZSBhbiBl cnJvcj8KPiA+Cj4gCj4gLi4uIHNhbWUgaGVyZQo+IAo+ID4gPiArICAgIH07Cj4gPiA+ICsKPiA+ ID4gKyAgICBmb3IgKF8sIGVudHJ5KSBpbiBtb3VudF9pbmZvIHsKPiA+ID4gKyAgICAgICAgbGV0 IFNvbWUoc291cmNlKSA9IGVudHJ5Lm1vdW50X3NvdXJjZSBlbHNlIHsKPiA+ID4gKyAgICAgICAg ICAgIGNvbnRpbnVlOwo+ID4gPiArICAgICAgICB9Owo+ID4gPiArCj4gPiA+ICsgICAgICAgIGlm IGVudHJ5Lm1vdW50X3BvaW50ICE9IHN0b3JlX21vdW50X3BvaW50IHx8ICFzb3VyY2UuYXNfYnl0 ZXMoKS5zdGFydHNfd2l0aChiIi8iKSB7Cj4gPiA+ICsgICAgICAgICAgICBjb250aW51ZTsKPiA+ ID4gKyAgICAgICAgfQo+ID4gPiArCj4gPiA+ICsgICAgICAgIGlmIGxldCBPayhzdGF0KSA9IG5p eDo6c3lzOjpzdGF0OjpzdGF0KHNvdXJjZS5hc19vc19zdHIoKSkgewo+ID4gPiArICAgICAgICAg ICAgbGV0IHNmbGFnID0gU0ZsYWc6OmZyb21fYml0c190cnVuY2F0ZShzdGF0LnN0X21vZGUpOwo+ ID4gPiArCj4gPiA+ICsgICAgICAgICAgICBpZiBzZmxhZyA9PSBTRmxhZzo6U19JRkJMSyAmJiBz dGF0LnN0X3JkZXYgPT0gZGV2X25vZGUgewo+ID4gPiArICAgICAgICAgICAgICAgIHJldHVybiB0 cnVlOwo+ID4gPiArICAgICAgICAgICAgfQo+ID4KPiA+IChBKSBhbmQgdGhpcyBjb2RlIGNvdWxk IGdvIGludG8gYSBoZWxwZXIuLgo+ID4KPiAKPiB5dXAsIEknbGwgZG8gdGhhdAo+IAo+ID4gPiAr ICAgICAgICB9Cj4gPiA+ICsgICAgfQo+ID4gPiArCj4gPiA+ICsgICAgZmFsc2UKPiA+ID4gK30K PiA+ID4gKwo+ID4gPiAgLy8vIERhdGFzdG9yZSBNYW5hZ2VtZW50Cj4gPiA+ICAvLy8KPiA+ID4g IC8vLyBBIERhdGFzdG9yZSBjYW4gc3RvcmUgc2V2ZXJhbHMgYmFja3VwcywgYW5kIHByb3ZpZGVz IHRoZQo+ID4gPiBAQCAtMTU1LDYgKzIwMywxMiBAQCBpbXBsIERhdGFTdG9yZSB7Cj4gPiA+ICAg ICAgICAgICAgICB9Cj4gPiA+ICAgICAgICAgIH0KPiA+ID4gIAo+ID4gPiArICAgICAgICBpZiBj b25maWcuYmFja2luZ19kZXZpY2UuaXNfc29tZSgpICYmICFpc19kYXRhc3RvcmVfYXZhaWxhYmxl KCZjb25maWcpIHsKPiA+ID4gKyAgICAgICAgICAgIGxldCBtdXQgZGF0YXN0b3JlX2NhY2hlID0g REFUQVNUT1JFX01BUC5sb2NrKCkudW53cmFwKCk7Cj4gPiA+ICsgICAgICAgICAgICBkYXRhc3Rv cmVfY2FjaGUucmVtb3ZlKCZjb25maWcubmFtZSk7Cj4gPiA+ICsgICAgICAgICAgICBiYWlsISgi UmVtb3ZhYmxlIERhdGFzdG9yZSBpcyBub3QgbW91bnRlZCIpOwo+ID4gPiArICAgICAgICB9Cj4g Pgo+ID4gc28gaGVyZSB0aGUgaGVscGVyIGlzIG9ubHkgY2FsbGVkIGZvciByZW1vdmFibGUgZGF0 YXN0b3Jlcy4uCj4gPgo+IAo+IHRoZSB0aGluZyB3ZSBkbyBoZXJlIGlzIG9ubHkgcmVsZXZhbnQg Zm9yIHJlbW92YWJsZSBkYXRhc3RvcmVzLCBzbyBpZgo+IHdlIHdvdWxkIGFsc28gbmVlZCB0byBk cm9wIGNhY2hlIGVudHJpZXMgZm9yIG5vbi1yZW1vdmFibGUgZGF0YXN0b3JlcywKPiB3ZSBjb3Vs ZCBkcm9wIHRoZSBpcy1yZW1vdmFibGUgY2hlY2ssIHllcy4KCnRoZSBmaXJzdCB0aGluZyBpc19k YXRhc3RvcmVfYXZhaWxhYmxlIGRvZXMgaXMgY2hlY2sgd2hldGhlciBhIGJhY2tpbmcgZGV2aWNl CmlzIHNldCwgYW5kIHJldHVybiB0cnVlIG90aGVyd2lzZS4uIHNvIHRoZSBleHRyYSBjb25kaXRp b24gaGVyZSBkb2Vzbid0IHJlYWxseQptYWtlIHNlbnNlLCBpdCdzIGp1c3QgY2hlY2tlZCB0d2lj ZSBpbiBjYXNlIG9mIGEgcmVtb3ZhYmxlIGRhdGFzdG9yZS4uCgo+IAo+ID4gPiArCj4gPiA+ICAg ICAgICAgIGxldCBtdXQgZGF0YXN0b3JlX2NhY2hlID0gREFUQVNUT1JFX01BUC5sb2NrKCkudW53 cmFwKCk7Cj4gPiA+ICAgICAgICAgIGxldCBlbnRyeSA9IGRhdGFzdG9yZV9jYWNoZS5nZXQobmFt ZSk7Cj4gPiA+ICAKPiA+ID4gQEAgLTI1OCw2ICszMTIsMTAgQEAgaW1wbCBEYXRhU3RvcmUgewo+ ID4gPiAgICAgICkgLT4gUmVzdWx0PEFyYzxTZWxmPiwgRXJyb3I+IHsKPiA+ID4gICAgICAgICAg bGV0IG5hbWUgPSBjb25maWcubmFtZS5jbG9uZSgpOwo+ID4gPiAgCj4gPiA+ICsgICAgICAgIGlm ICFpc19kYXRhc3RvcmVfYXZhaWxhYmxlKCZjb25maWcpIHsKPiA+ID4gKyAgICAgICAgICAgIGJh aWwhKCJEYXRhc3RvcmUgaXMgbm90IGF2YWlsYWJsZSIpCj4gPiA+ICsgICAgICAgIH0KPiA+Cj4g PiBidXQgaGVyZSBpdCBpcyBjYWxsZWQgZm9yIGFsbCBkYXRhc3RvcmVzCj4gPgo+IAo+IC4uLiBo ZXJlIHdoYXQgdGhpcyBjaGVjayBndWFyZHMgaXMgcmVsZXZhbnQgZm9yIGJvdGggbm9ybWFsIGFu ZAo+IHJlbW92YWJsZS4gSW4gbXkgaGVhZCB0aGlzIG1hZGUgc2Vuc2UsIEkgaG9wZSBpdCBhbHNv IGRvZXMgb3V0c2lkZSA6KSAKPiAKCnllcywgSSBqdXN0IHdhbnRlZCB0byBwb2ludCBvdXQgdGhh dCBpdCBkb2Vzbid0IHJlYWxseSBtYWtlIHNlbnNlLiBhIGNhbGwgZm9yIGEKcmVndWxhciBkYXRh c3RvcmUgd2lsbCBhbHdheXMgcmV0dXJuIHRydWUsIHNvIGd1YXJkaW5nIGl0IGJ5IHdoZXRoZXIg YSBiYWNraW5nCmRldmljZSBpcyBzZXQgZG9lc24ndCBtYWtlIHNlbnNlIHdpdGggdGhlIGN1cnJl bnQgaW1wbGVtZW50YXRpb24uIGVpdGhlciBhbGwKY2FsbHMgc2hvdWxkIGJlIG1hZGUgdW5jb25k aXRpb25hbCAoc2luY2UgaXQncyBhIG5vcCBmb3IgcmVndWxhciBkYXRhc3RvcmVzCmFueXdheSks IG9yIGFsbCBjYWxscyBzaG91bGQgYmUgbWFkZSBjb25kaXRpb25hbCBhbmQgaXQgc2hvdWxkIG9u bHkgYmUgY2FsbGVkCmZvciByZW1vdmFibGUgZGF0YXN0b3Jlcy4gdGhlbiBhbGwgdGhlIHJlZHVu ZGFudCBjaGVja3Mgd2l0aGluIGNhbiBiZSBkcm9wcGVkLgphIG1peCBvZiBib3RoIGlzIGp1c3Qg Y29uZnVzaW5nLgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCnBicy1kZXZlbCBtYWlsaW5nIGxpc3QKcGJzLWRldmVsQGxpc3RzLnByb3htb3guY29tCmh0 dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3Bicy1kZXZl bAo=