From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (unknown [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 4A26A1FF141 for ; Fri, 16 Jan 2026 17:56:32 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id CA8CD1E331; Fri, 16 Jan 2026 17:56:17 +0100 (CET) Message-ID: <035958cb-e9f6-4511-af7b-2269a99f5522@proxmox.com> Date: Fri, 16 Jan 2026 17:56:13 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: =?UTF-8?Q?Fabian_Gr=C3=BCnbichler?= , Proxmox Backup Server development discussion References: <20260102160750.285157-1-s.rufinatscha@proxmox.com> <20260102160750.285157-3-s.rufinatscha@proxmox.com> <1768385575.9kaf9dmuhn.astroid@yuna.none> <13d6a203-415d-45ff-b4bb-149903d08f94@proxmox.com> <176857922498.137827.16978965567100463552@yuna.proxmox.com> Content-Language: en-US From: Samuel Rufinatscha In-Reply-To: <176857922498.137827.16978965567100463552@yuna.proxmox.com> X-SPAM-LEVEL: Spam detection results: 0 AWL -0.286 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 POISEN_SPAM_PILL 0.1 Meta: its spam POISEN_SPAM_PILL_1 0.1 random spam to be learned in bayes POISEN_SPAM_PILL_3 0.1 random spam to be learned in bayes 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 URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [proxmox.com] Subject: Re: [pbs-devel] [PATCH proxmox-backup v3 2/4] pbs-config: cache verified API token secrets 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" T24gMS8xNi8yNiA0OjU5IFBNLCBGYWJpYW4gR3LDvG5iaWNobGVyIHdyb3RlOgo+IFF1b3Rpbmcg U2FtdWVsIFJ1ZmluYXRzY2hhICgyMDI2LTAxLTE2IDE2OjEzOjE3KQo+PiBPbiAxLzE0LzI2IDEx OjQ0IEFNLCBGYWJpYW4gR3LDvG5iaWNobGVyIHdyb3RlOgo+Pj4gT24gSmFudWFyeSAyLCAyMDI2 IDU6MDcgcG0sIFNhbXVlbCBSdWZpbmF0c2NoYSB3cm90ZToKPj4+PiBDdXJyZW50bHksIGV2ZXJ5 IHRva2VuLWJhc2VkIEFQSSByZXF1ZXN0IHJlYWRzIHRoZSB0b2tlbi5zaGFkb3cgZmlsZSBhbmQK Pj4+PiBydW5zIHRoZSBleHBlbnNpdmUgcGFzc3dvcmQgaGFzaCB2ZXJpZmljYXRpb24gZm9yIHRo ZSBnaXZlbiB0b2tlbgo+Pj4+IHNlY3JldC4gVGhpcyBzaG93cyB1cCBhcyBhIGhvdHNwb3QgaW4g L3N0YXR1cyBwcm9maWxpbmcgKHNlZQo+Pj4+IGJ1ZyAjNzAxNyBbMV0pLgo+Pj4+Cj4+Pj4gVGhp cyBwYXRjaCBpbnRyb2R1Y2VzIGFuIGluLW1lbW9yeSBjYWNoZSBvZiBzdWNjZXNzZnVsbHkgdmVy aWZpZWQgdG9rZW4KPj4+PiBzZWNyZXRzLiBTdWJzZXF1ZW50IHJlcXVlc3RzIGZvciB0aGUgc2Ft ZSB0b2tlbitzZWNyZXQgY29tYmluYXRpb24gb25seQo+Pj4+IHBlcmZvcm0gYSBjb21wYXJpc29u IHVzaW5nIG9wZW5zc2w6Om1lbWNtcDo6ZXEgYW5kIGF2b2lkIHJlLXJ1bm5pbmcgdGhlCj4+Pj4g cGFzc3dvcmQgaGFzaC4gVGhlIGNhY2hlIGlzIHVwZGF0ZWQgd2hlbiBhIHRva2VuIHNlY3JldCBp cyBzZXQgYW5kCj4+Pj4gY2xlYXJlZCB3aGVuIGEgdG9rZW4gaXMgZGVsZXRlZC4gTm90ZSwgdGhp cyBkb2VzIE5PVCBpbmNsdWRlIG1hbnVhbAo+Pj4+IGNvbmZpZyBjaGFuZ2VzLCB3aGljaCB3aWxs IGJlIGNvdmVyZWQgaW4gYSBzdWJzZXF1ZW50IHBhdGNoLgo+Pj4+Cj4+Pj4gVGhpcyBwYXRjaCBp cyBwYXJ0IG9mIHRoZSBzZXJpZXMgd2hpY2ggZml4ZXMgYnVnICM3MDE3IFsxXS4KPj4+Pgo+Pj4+ IFsxXSBodHRwczovL2J1Z3ppbGxhLnByb3htb3guY29tL3Nob3dfYnVnLmNnaT9pZD03MDE3Cj4+ Pj4KPj4+PiBTaWduZWQtb2ZmLWJ5OiBTYW11ZWwgUnVmaW5hdHNjaGEgPHMucnVmaW5hdHNjaGFA cHJveG1veC5jb20+Cj4+Pj4gLS0tCj4gCj4gWy4uXQo+IAo+Pj4+ICsKPj4+PiArLy8gVHJpZXMg dG8gbWF0Y2ggdGhlIGdpdmVuIHRva2VuIHNlY3JldCBhZ2FpbnN0IHRoZSBjYWNoZWQgc2VjcmV0 Lgo+Pj4+ICsvLyBDaGVja3MgdGhlIGdlbmVyYXRpb24gYmVmb3JlIGFuZCBhZnRlciB0aGUgY29u c3RhbnQtdGltZSBjb21wYXJlIHRvIGF2b2lkIGEKPj4+PiArLy8gVE9DVE9VIHdpbmRvdy4gSWYg YW5vdGhlciBwcm9jZXNzIHJvdGF0ZXMvZGVsZXRlcyBhIHRva2VuIHdoaWxlIHdlJ3JlIHZhbGlk YXRpbmcKPj4+PiArLy8gdGhlIGNhY2hlZCBzZWNyZXQsIHRoZSBnZW5lcmF0aW9uIHdpbGwgY2hh bmdlLCBhbmQgd2UKPj4+PiArLy8gbXVzdCBub3QgdHJ1c3QgdGhlIGNhY2hlIGZvciB0aGlzIHJl cXVlc3QuCj4+Pj4gK2ZuIGNhY2hlX3RyeV9zZWNyZXRfbWF0Y2hlcyh0b2tlbmlkOiAmQXV0aGlk LCBzZWNyZXQ6ICZzdHIpIC0+IGJvb2wgewo+Pj4+ICsgICAgbGV0IFNvbWUoY2FjaGUpID0gVE9L RU5fU0VDUkVUX0NBQ0hFLnRyeV9yZWFkKCkgZWxzZSB7Cj4+Pj4gKyAgICAgICAgcmV0dXJuIGZh bHNlOwo+Pj4+ICsgICAgfTsKPj4+PiArICAgIGxldCBTb21lKGVudHJ5KSA9IGNhY2hlLnNlY3Jl dHMuZ2V0KHRva2VuaWQpIGVsc2Ugewo+Pj4+ICsgICAgICAgIHJldHVybiBmYWxzZTsKPj4+PiAr ICAgIH07Cj4+Pj4gKwo+Pj4+ICsgICAgbGV0IGNhY2hlX2dlbiA9IGNhY2hlLnNoYXJlZF9nZW47 Cj4+Pj4gKwo+Pj4+ICsgICAgbGV0IFNvbWUoZ2VuMSkgPSB0b2tlbl9zaGFkb3dfc2hhcmVkX2dl bigpIGVsc2Ugewo+Pj4+ICsgICAgICAgIHJldHVybiBmYWxzZTsKPj4+PiArICAgIH07Cj4+Pj4g KyAgICBpZiBnZW4xICE9IGNhY2hlX2dlbiB7Cj4+Pj4gKyAgICAgICAgcmV0dXJuIGZhbHNlOwo+ Pj4+ICsgICAgfQo+Pj4+ICsKPj4+PiArICAgIGxldCBlcSA9IG9wZW5zc2w6Om1lbWNtcDo6ZXEo ZW50cnkuc2VjcmV0LmFzX2J5dGVzKCksIHNlY3JldC5hc19ieXRlcygpKTsKPj4+Cj4+PiBzaG91 bGQgd2UgaW52YWxpZGF0ZSB0aGUgY2FjaGUgaGVyZSBmb3IgdGhpcyBwYXJ0aWN1bGFyIGF1dGhp ZCBpbiBjYXNlCj4+PiBvZiBhIG1pc21hdGNoLCB0byBhdm9pZCBtYWtpbmcgYnJ1dGUgZm9yY2lu ZyB0b28gZWFzeS9jaGVhcD8KPj4+Cj4+Cj4+IFdlIGFyZSBub3QgZG9pbmcgYSBjaGVhcCByZWpl Y3QsIGluIG1pc21hdGNoIHdlIGRvIHN0aWxsIGZhbGwgdGhyb3VnaCB0bwo+PiB2ZXJpZnlfY3J5 cHRfcHcoKS4gRXZpY3Rpbmcgb24gbWlzbWF0Y2ggY291bGQgaG93ZXZlciBlbmFibGUgY2FjaGUK Pj4gdGhyYXNoaW5nIHdoZXJlIHdyb25nIHNlY3JldHMgZm9yIGEga25vd24gdG9rZW5pZCB3b3Vs ZCBldmljdCBjYWNoZWQKPj4gZW50cmllcy4gU28gSSB0aGluayB3ZSBzaG91bGQgbm90IGludmFs aWRhdGUgaGVyZSBvbiBtaXNtYXRjaC4KPiAKPiBmb3Jnb3QgdGhpcyBwYXJ0IGhlcmUsIHNvcnJ5 LiB5b3UgYXJlIHJpZ2h0LCB0aGlzICpzaG91bGQqIGJlIG9rYXkuIEkgZG8gdGhpbmsKPiB0aGUg c2Vjb25kIGdlbmVyYXRpb24gY2hlY2sgdGhlcmUgc2VydmVzIG5vIHB1cnBvc2UgdGhvdWdoLiB0 aGUgdG9rZW4gY29uZmlnCj4gY2FuIGNoYW5nZSBhdCBhbnkgcG9pbnQgYWZ0ZXIgd2UndmUgdmFs aWRhdGVkIHRoZSBzZWNyZXQgdXNpbmcgdGhlIG9sZCBzdGF0ZSwKPiB0aGVyZSBpcyBub3RoaW5n IHdlIGNhbiBkbyBhYm91dCB0aGF0LCBhbmQgaXQncyB0b3RhbGx5IGZpbmUgdG8gYWNjZXB0IGEg dG9rZW4KPiB0aGF0IGlzIG1vZGlmaWVkIGF0IGV4YWN0bHkgdGhlIHNhbWUgbW9tZW50LCBldmVu IGlmIHRoYXQgc2FtZSB0b2tlbiB3b3VsZG4ndAo+IGJlIHZhbGlkIDIgc2Vjb25kcyBsYXRlci4u Cj4gCj4gdGhlcmUgaGFzIHRvIGJlIGEgcG9pbnQgd2hlcmUgd2UgaGF2ZSB0byBzYXkgInRoaXMg dG9rZW4gaXMgdmFsaWQiLCBhbmQgYXQgdGhlCj4gcG9pbnQgb2YgbWVtY21wIGhlcmUgd2UgaGF2 ZSBhbHJlYWR5Ogo+IC0gdmVyaWZpZWQgd2UgZG9uJ3QgbmVlZCB0byByZWxvYWQgdGhlIGZpbGUK PiAtIHZlcmlmaWVkIHdlIGRpZG4ndCBoYXZlIGFueSBBUEkgY2hhbmdlcyB0byB0aGUgdG9rZW4g Y29uZmlnCj4gLSB2ZXJpZmllZCB0aGF0IHRoZSBzZWNyZXQgbWF0Y2hlcyB3aGF0IHdlIGhhdmUg Y2FjaGVkCj4gCj4gcmVkb2luZyB0aGUgZmlyc3QgdHdvIGNoYW5nZXMgYWZ0ZXIgdGhhdCBwb2lu dCBkb2Vzbid0IHByb3RlY3QgdXMgYWdhaW5zdAo+IGNoYW5nZXMgYWZ0ZXJ3YXJkcyBlaXRoZXIs IHNvIHdlIG1pZ2h0IGFzIHdlbGwgbm90IGRvIHRoYXQgZXh0cmEgd29yayB0aGF0Cj4gZG9lc24n dCBnaXZlIHVzIGFueSBleHRyYSBzYWZldHkgZ3VhcmFudGVlcyBhbnl3YXkuLgoKQWdyZWVkLCB0 aGUgc2Vjb25kIGdlbmVyYXRpb24gY2hlY2sgb25seSBuYXJyb3dzIGRvd24gYSB2ZXJ5IHNtYWxs IAp3aW5kb3cgYXJvdW5kIG1lbWNtcCAodHJpZWQgdG8gYXZvaWQgdGhlIFRPQ1RPVSBhdCB0aGlz IHBvaW50KSwgYnV0IGFzIAp5b3Ugc2FpZCwgaXQgZG9lc27igJl0IHByb3ZpZGUgYSBzdHJvbmcg YWRkaXRpb25hbCBndWFyYW50ZWUgYW5kIGlzIAp1bm5lY2Vzc2FyeS4gV2lsbCByZW1vdmUhCgo+ IAo+Pgo+Pj4+ICsgICAgbGV0IFNvbWUoZ2VuMikgPSB0b2tlbl9zaGFkb3dfc2hhcmVkX2dlbigp IGVsc2Ugewo+Pj4+ICsgICAgICAgIHJldHVybiBmYWxzZTsKPj4+PiArICAgIH07Cj4+Pj4gKwo+ Pj4+ICsgICAgZXEgJiYgZ2VuMiA9PSBjYWNoZV9nZW4KPj4+PiArfQo+Pj4+ICsKPj4+PiArZm4g YXBwbHlfYXBpX211dGF0aW9uKHRva2VuaWQ6ICZBdXRoaWQsIG5ld19zZWNyZXQ6IE9wdGlvbjwm c3RyPikgewo+Pj4+ICsgICAgLy8gU2lnbmFsIGNhY2hlIGludmFsaWRhdGlvbiB0byBvdGhlciBw cm9jZXNzZXMgKGJlc3QtZWZmb3J0KS4KPj4+PiArICAgIGxldCBuZXdfc2hhcmVkX2dlbiA9IGJ1 bXBfdG9rZW5fc2hhZG93X3NoYXJlZF9nZW4oKTsKPj4+PiArCj4+Pj4gKyAgICBsZXQgbXV0IGNh Y2hlID0gVE9LRU5fU0VDUkVUX0NBQ0hFLndyaXRlKCk7Cj4gCj4gYmVjYXVzZSBJIG1lbnRpb25l ZCBzd2l0Y2hpbmcgdGhvc2UgdHdvIGFyb3VuZCAtIHRoaXMgYWN0dWFsbHkgcmVxdWlyZXMgbW9y ZQo+IHRob3VnaHQgSSB0aGluay4uCj4gCj4gcmlnaHQgbm93LCBjYWxsaW5nIGFwcGx5X2FwaV9t dXRhdGlvbiBoYXBwZW5zIHVuZGVyIGEgbG9jaywgYnV0IHRoZXJlIGFyZSBvdGhlcgo+IGNhbGxz IHRoYXQgYnVtcCB0aGUgZ2VuZXJhdGlvbiwgc28gdGhpcyBpcyBhY3R1YWxseSByYWN5IGhlcmUu IE9UT0gsIGJ1bXBpbmcKPiB0aGUgZ2VuZXJhdGlvbiBiZWZvcmUgbG9ja2luZyB0aGUgY2FjaGUg bWVhbnMgZmFzdGVyIGNhY2hlIGludmFsaWRhdGlvbi4uCgpZZXMsIEkgZmF2b3JlZCB0byBidW1w IHRoZSBnZW4gYmVmb3JlIHRoZSB3cml0ZSBsb2NrIGZvciBmYXN0ZXIgY2FjaGUKaW52YWxpZGF0 aW9uIC8gZm9yIGJldHRlciBzZWN1cml0eS4KPiAKPiBtYXliZSB3ZSBzaG91bGQgcmUtdmVyaWZ5 IHRoZSBnZW5lcmF0aW9uIGFmdGVyIG9idGFpbmluZyB0aGUgbG9jaz8gYW5kIG1heWJlCj4gbWFr ZSBhcHBseV9hcGlfbXV0YXRpb24gY29uc3VtZSB0aGUgc2hhZG93IGNvbmZpZyBmaWxlIGxvY2ss IHRvIGVuc3VyZSBpdCdzCj4gb25seSBjYWxsZWQgd2hpbGUgdGhhdCBsb2NrIGlzIGJlaW5nIGhl bGQ/CgpBZ3JlZSwgSSB0aGluayB3ZSBzaG91bGQgcmUtdmVyaWZ5IHRoZSBnZW5lcmF0aW9uIGFm dGVyIHRoZSB3cml0ZSBsb2NrLgpBbHNvIGFncmVlLCBJIHRoaW5rIHdlIHNob3VsZCBwYXNzIHRo ZSBmaWxlIGxvY2sgZG93bi4gR29vZCBpZGVhISA6KQpUaGlzIHNob3VsZCBtYWtlIGl0IG1vcmUg cm9idXN0LgoKPiAKPj4+PiArCj4+Pj4gKyAgICAvLyBJZiB3ZSBjYW5ub3QgcmVhZC9idW1wIHRo ZSBzaGFyZWQgZ2VuZXJhdGlvbiwgd2UgY2Fubm90IHNhZmVseSB0cnVzdCB0aGUgY2FjaGUuCj4+ Pj4gKyAgICBsZXQgU29tZShnZW4pID0gbmV3X3NoYXJlZF9nZW4gZWxzZSB7Cj4+Pj4gKyAgICAg ICAgaW52YWxpZGF0ZV9jYWNoZV9zdGF0ZSgmbXV0IGNhY2hlKTsKPj4+PiArICAgICAgICBjYWNo ZS5zaGFyZWRfZ2VuID0gMDsKPj4+PiArICAgICAgICByZXR1cm47Cj4+Pj4gKyAgICB9Owo+Pj4+ ICsKPj4+PiArICAgIC8vIFVwZGF0ZSB0byB0aGUgcG9zdC1tdXRhdGlvbiBnZW5lcmF0aW9uLgo+ Pj4+ICsgICAgY2FjaGUuc2hhcmVkX2dlbiA9IGdlbjsKPj4+PiArCj4+Pj4gKyAgICAvLyBBcHBs eSB0aGUgbmV3IG11dGF0aW9uLgo+Pj4+ICsgICAgbWF0Y2ggbmV3X3NlY3JldCB7Cj4+Pj4gKyAg ICAgICAgU29tZShzZWNyZXQpID0+IHsKPj4+PiArICAgICAgICAgICAgY2FjaGUuc2VjcmV0cy5p bnNlcnQoCj4+Pj4gKyAgICAgICAgICAgICAgICB0b2tlbmlkLmNsb25lKCksCj4+Pj4gKyAgICAg ICAgICAgICAgICBDYWNoZWRTZWNyZXQgewo+Pj4+ICsgICAgICAgICAgICAgICAgICAgIHNlY3Jl dDogc2VjcmV0LnRvX293bmVkKCksCj4+Pj4gKyAgICAgICAgICAgICAgICB9LAo+Pj4+ICsgICAg ICAgICAgICApOwo+Pj4+ICsgICAgICAgIH0KPj4+PiArICAgICAgICBOb25lID0+IHsKPj4+PiAr ICAgICAgICAgICAgY2FjaGUuc2VjcmV0cy5yZW1vdmUodG9rZW5pZCk7Cj4+Pj4gKyAgICAgICAg fQo+Pj4+ICsgICAgfQo+Pj4+ICt9Cj4+Pj4gKwo+Pj4+ICsvLy8gR2V0IHRoZSBjdXJyZW50IHNo YXJlZCBnZW5lcmF0aW9uLgo+Pj4+ICtmbiB0b2tlbl9zaGFkb3dfc2hhcmVkX2dlbigpIC0+IE9w dGlvbjx1c2l6ZT4gewo+Pj4+ICsgICAgY3JhdGU6OkNvbmZpZ1ZlcnNpb25DYWNoZTo6bmV3KCkK Pj4+PiArICAgICAgICAub2soKQo+Pj4+ICsgICAgICAgIC5tYXAofGN2Y3wgY3ZjLnRva2VuX3No YWRvd19nZW5lcmF0aW9uKCkpCj4+Pj4gK30KPj4+PiArCj4+Pj4gKy8vLyBCdW1wIGFuZCByZXR1 cm4gdGhlIG5ldyBzaGFyZWQgZ2VuZXJhdGlvbi4KPj4+PiArZm4gYnVtcF90b2tlbl9zaGFkb3df c2hhcmVkX2dlbigpIC0+IE9wdGlvbjx1c2l6ZT4gewo+Pj4+ICsgICAgY3JhdGU6OkNvbmZpZ1Zl cnNpb25DYWNoZTo6bmV3KCkKPj4+PiArICAgICAgICAub2soKQo+Pj4+ICsgICAgICAgIC5tYXAo fGN2Y3wgY3ZjLmluY3JlYXNlX3Rva2VuX3NoYWRvd19nZW5lcmF0aW9uKCkgKyAxKQo+Pj4+ICt9 Cj4+Pj4gKwo+Pj4+ICsvLy8gSW52YWxpZGF0ZXMgdGhlIGNhY2hlIHN0YXRlIGFuZCBvbmx5IGtl ZXBzIHRoZSBzaGFyZWQgZ2VuZXJhdGlvbi4KPj4+Cj4+PiBib3RoIGNhbGxzIHRvIHRoaXMgYWN0 dWFsbHkgc2V0IHRoZSBjYWNoZWQgZ2VuZXJhdGlvbiB0byBzb21lIHZhbHVlCj4+PiByaWdodCBh ZnRlciwgc28gbWF5YmUgdGhpcyBzaG91bGQgdGFrZSBhIGdlbmVyYXRpb24gZGlyZWN0bHkgYW5k IHNldCBpdD8KPj4+Cj4+Cj4+IHBhdGNoIDMvNCBkb2VzbuKAmXQgYWx3YXlzIHVwZGF0ZSB0aGUg Z2VuIG9uIGNhY2hlIGludmFsaWRhdGlvbgo+PiAoc2hhZG93X210aW1lX2xlbigpIGVycm9yIGJy YW5jaCBpbiBhcHBseV9hcGlfbXV0YXRpb24pIGJ1dCBtb3N0IG90aGVyCj4+IGNhbGwgc2l0ZXMg ZG8uIEFncmVlZCB0aGlzIGNhbiBiZSByZWZhY3RvcmVkLCBtYXliZToKPj4KPj4gZm4gaW52YWxp ZGF0ZV9jYWNoZV9zdGF0ZShjYWNoZTogJm11dCBBcGlUb2tlblNlY3JldENhY2hlKSB7Cj4+ICAg ICAgIGNhY2hlLnNlY3JldHMuY2xlYXIoKTsKPj4gICAgICAgLy8gY2xlYXIgb3RoZXIgY2FjaGUg ZmllbGRzIChtdGltZS9sZW4vbGFzdF9jaGVja2VkKSBhcyBuZWVkZWQKPj4gfQo+Pgo+PiBmbiBp bnZhbGlkYXRlX2NhY2hlX3N0YXRlX2FuZF9zZXRfZ2VuKGNhY2hlOiAmbXV0IEFwaVRva2VuU2Vj cmV0Q2FjaGUsCj4+IGdlbjogdXNpemUpIHsKPj4gICAgICAgaW52YWxpZGF0ZV9jYWNoZV9zdGF0 ZShjYWNoZSk7Cj4+ICAgICAgIGNhY2hlLnNoYXJlZF9nZW4gPSBnZW47Cj4+IH0KPj4KPj4gV2Ug Y291bGQgYWxzbyBkbyBhIHNpbmdsZSBoZWxwZXIgd2l0aCBPcHRpb248dXNpemU+IGJ1dCB0d28g aGVscGVycyBtYWtlCj4+IHRoZSBjYWxsIHNpdGVzIG1vcmUgZXhwbGljaXQuCj4+Cj4+Pj4gK2Zu IGludmFsaWRhdGVfY2FjaGVfc3RhdGUoY2FjaGU6ICZtdXQgQXBpVG9rZW5TZWNyZXRDYWNoZSkg ewo+Pj4+ICsgICAgY2FjaGUuc2VjcmV0cy5jbGVhcigpOwo+Pj4+ICt9Cj4+Pj4gLS0gCj4+Pj4g Mi40Ny4zCj4+Pj4KPj4+Pgo+Pj4+Cj4+Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KPj4+PiBwYnMtZGV2ZWwgbWFpbGluZyBsaXN0Cj4+Pj4gcGJzLWRl dmVsQGxpc3RzLnByb3htb3guY29tCj4+Pj4gaHR0cHM6Ly9saXN0cy5wcm94bW94LmNvbS9jZ2kt YmluL21haWxtYW4vbGlzdGluZm8vcGJzLWRldmVsCj4+Pj4KPj4+Cj4+Pgo+Pj4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4+IHBicy1kZXZlbCBtYWls aW5nIGxpc3QKPj4+IHBicy1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQo+Pj4gaHR0cHM6Ly9saXN0 cy5wcm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vcGJzLWRldmVsCj4+Cj4+CgoK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCnBicy1kZXZl bCBtYWlsaW5nIGxpc3QKcGJzLWRldmVsQGxpc3RzLnByb3htb3guY29tCmh0dHBzOi8vbGlzdHMu cHJveG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3Bicy1kZXZlbAo=