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 63AAB1FF187 for ; Mon, 3 Nov 2025 23:00:49 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 41F752775F; Mon, 3 Nov 2025 23:01:03 +0100 (CET) From: Aaron Lauterer To: pve-devel@lists.proxmox.com Date: Mon, 3 Nov 2025 23:00:17 +0100 Message-ID: <20251103220024.2488005-3-a.lauterer@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251103220024.2488005-1-a.lauterer@proxmox.com> References: <20251103220024.2488005-1-a.lauterer@proxmox.com> MIME-Version: 1.0 X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1762207212054 X-SPAM-LEVEL: Spam detection results: 0 AWL -1.011 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 KAM_MAILER 2 Automated Mailer Tag Left in Email SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pve-devel] [PATCH cluster v2 2/3] RRD: fetch data from old rrd file if present and needed X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox VE development discussion Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" T25lIHNpZGUgZWZmZWN0IG9mIHRoZSBSUkQgbWlncmF0aW9uIGlzIHRoYXQgTUFYIHNwaWtlcyBh cmUgZmxhdHRlbmVkCmR1ZSB0byB0aGUgbmV3IG1vcmUgZmluZSBncmFpbmVkIHJlc29sdXRpb24u CgpJZiB3ZSByZXF1ZXN0IFJSRCBkYXRhIHRoYXQgd2FzIHN0aWxsIGNvdmVyZWQgaW4gdGhlIG9s ZCBycmQgZmlsZSwgd2UKY2FuIGZldGNoIHRob3NlIGRhdGEgZnJvbSB0aGVyZSBhbmQgdGhlbiBh cHBlbmQgbmV3ZXIgZGF0YSBmcm9tIHRoZSBuZXcKUlJEIGZpbGVzLiBUaGlzIHdheSwgd2Ugc3Rp bGwgaGF2ZSB0aGUgb2xkZXIgbW9yZSBjb2Fyc2UgcmVzb2x1dGlvbiBmb3IKdGhlIG9sZCBkYXRh IGFuZCBrZWVwIHNwaWtlcyBwcmVzZW50LgoKT2xkIFJSRCBmaWxlcyBjYW4gYmUgZWl0aGVyIGlu IHtycmR9Lm9sZCBvciBqdXN0IHtycmR9IHdpdGhvdXQgdGhlIC5vbGQKc3VmZml4LiBUaGlzIGRl cGVuZHMgb24gaWYgdGhlIHJyZCBtaWdyYXRpb24gdG9vbCBoYXMgYmVlbiBydW4gb24gdGhlCmhv c3Qgb3Igbm90LgoKT25lIHNpZGUgZWZmZWN0IG9mIHRoaXMgbW9yZSBkeW5hbWljIGFwcHJvYWNo IGlzIHRoYXQgdGhlIHN0ZXAgc2l6ZQpkZXRlcm1pbmVkIGJ5IFJSRHM6OmZldGNoIHdpbGwgbm90 IG1hdGNoIHVwIGluIG1hbnkgc2l0dWF0aW9ucy4KVGhlcmVmb3JlIHdlIGRyb3AgdGhlIGNoZWNr IGZvciB0aGUgc3RlcCBzaXplIQoKRm9yIGV4YW1wbGUsIGlmIHdlIGNob29zZSBZZWFyIGFzIHRo ZSB0aW1lIGZyYW1lLCBidXQgdGhlIG5ldyBmaWxlIG9ubHkKaGFzIGEgbXVjaCBzaG9ydGVyIGFt b3VuZCBvZiBkYXRhIHByZXNlbnQsIFJSRHM6OmZldGNoIHdpbGwgdXNlIGEKc21hbGxlciBzdGVw IHNpemUsIGlmIGl0IGNhbiBzdGlsbCBjb3ZlciB0aGUgcmVxdWVzdGVkIGRhdGEgd2l0aCBpdC4K ClZpc3VhbGx5IHRoaXMgd2lsbCByZXN1bHQgaW4gdmVyeSBzbWFsbCBzdGVwIHNpemVzLCB0aGF0 IHNob3VsZCBnZXQKd2lkZXIgb25jZSB3ZSBnZXQgbW9yZSBvciBhbGwgZGF0YSBmcm9tIHRoZSBu ZXcgUlJEIGZpbGVzLCB3aGVyZSBpdApuZWVkcyB0byB0aGVuIHN3aXRjaCB0byB0aGUgbG9uZ2Vy IHN0ZXAgc2l6ZXMgdG8gY292ZXIgdGhlIHJlcXVlc3RlZAp0aW1lIGZyYW1lLgoKRm9yIHRoZSBQ TkcgZ2VuZXJhdGlvbiB3ZSByZWx5IG9uIHJyZHMgZ3JhcGhpbmcgZnVuY3Rpb25hbGl0eSB3aGlj aCBjYW4KYWxzbyBoYW5kbGUgbXVsdGlwbGUgZGF0YSBsaW5lcy4gV2l0aCB0aGUgd2F5IHdlIGdl bmVyYXRlIHRoZSBkYXRhIGxpbmUgZnJvbQp0aGUgb2xkIGxpbmUsIGl0IHNob3VsZCBsb29rIGxp a2Ugb25lIGxpbmUuCgpTaWduZWQtb2ZmLWJ5OiBBYXJvbiBMYXV0ZXJlciA8YS5sYXV0ZXJlckBw cm94bW94LmNvbT4KUmV2aWV3ZWQtYnk6IExhdXJlbsibaXUgTGVhaHUtVmzEg2R1Y3UgPGwubGVh aHUtdmxhZHVjdUBwcm94bW94LmNvbT4KVGVzdGVkLWJ5OiBMYXVyZW7Im2l1IExlYWh1LVZsxINk dWN1IDxsLmxlYWh1LXZsYWR1Y3VAcHJveG1veC5jb20+Ci0tLQogc3JjL1BWRS9SUkQucG0gfCAx NTQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDExOSBpbnNlcnRpb25zKCspLCAzNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmMvUFZFL1JSRC5wbSBiL3NyYy9QVkUvUlJELnBtCmluZGV4IDkzMjE5MWQuLjQyZTAw NDkgMTAwNjQ0Ci0tLSBhL3NyYy9QVkUvUlJELnBtCisrKyBiL3NyYy9QVkUvUlJELnBtCkBAIC03 LDYgKzcsMzIgQEAgdXNlIFJSRHM7CiAKIHVzZSBQVkU6OlRvb2xzOwogCitteSAkZ2V0X3JyZF9k YXRhID0gc3ViIHsKKyAgICBteSAoJHJyZCwgJGNmLCAkaXNfbm9kZSwgJHJlc28sICRhcmdzLCAk cmVzKSA9IEBfOworICAgIG15ICgkc3RhcnQsICRzdGVwLCAkbmFtZXMsICRkYXRhKSA9IFJSRHM6 OmZldGNoKCRycmQsICRjZiwgQCRhcmdzKTsKKworICAgIG15ICRlcnIgPSBSUkRzOjplcnJvcjsK KyAgICBkaWUgIlJSRCBlcnJvcjogJGVyclxuIiBpZiAkZXJyOworCisgICAgbXkgJGZpZWxkcyA9 IHNjYWxhcihAJG5hbWVzKTsKKyAgICBmb3IgbXkgJGxpbmUgKEAkZGF0YSkgeworICAgICAgICBt eSAkZW50cnkgPSB7ICd0aW1lJyA9PiAkc3RhcnQgfTsKKyAgICAgICAgJHN0YXJ0ICs9ICRzdGVw OworICAgICAgICBmb3IgKG15ICRpID0gMDsgJGkgPCAkZmllbGRzOyAkaSsrKSB7CisgICAgICAg ICAgICBteSAkbmFtZSA9ICRuYW1lcy0+WyRpXTsKKyAgICAgICAgICAgIGlmIChkZWZpbmVkKG15 ICR2YWwgPSAkbGluZS0+WyRpXSkpIHsKKyAgICAgICAgICAgICAgICAkZW50cnktPnskbmFtZX0g PSAkdmFsOworICAgICAgICAgICAgICAgICRlbnRyeS0+e21lbWF2YWlsYWJsZX0gPSAkdmFsCisg ICAgICAgICAgICAgICAgICAgIGlmICRpc19ub2RlICYmICRuYW1lIGVxICdtZW1mcmVlJyAmJiAh ZXhpc3RzKCRlbnRyeS0+e21lbWF2YWlsYWJsZX0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAg ICAgICAgICAgICAgICAjIGxlYXZlIGVtcHR5IGZpZWxkcyB1bmRlZmluZWQKKyAgICAgICAgICAg ICAgICAjIG1heWJlIG1ha2UgdGhpcyBjb25maWd1cmFibGU/CisgICAgICAgICAgICB9CisgICAg ICAgIH0KKyAgICAgICAgcHVzaCBAJHJlcywgJGVudHJ5OworICAgIH0KK307CisKIHN1YiBjcmVh dGVfcnJkX2RhdGEgewogICAgIG15ICgkcnJkbmFtZSwgJHRpbWVmcmFtZSwgJGNmKSA9IEBfOwog CkBAIC0zMyw1NCArNTksNzEgQEAgc3ViIGNyZWF0ZV9ycmRfZGF0YSB7CiAgICAgICAgIGRlY2Fk ZSA9PiBbODY0MDAgKiA3LCA1NzBdLCAjIDEgd2VlayByZXNvbHV0aW9uLCAxMCB5ZWFycwogICAg IH07CiAKKyAgICBteSAkaXNfbm9kZSA9ICEhKCRycmRuYW1lID1+IC9ecHZlLW5vZGUvKTsKKyAg ICAkY2YgPSAiQVZFUkFHRSIgaWYgISRjZjsKKyAgICBteSAkcmVzID0gW107CisKICAgICBpZiAo JHJyZG5hbWUgPX4gL15wdmUyLykgewogICAgICAgICAkc2V0dXAgPSAkc2V0dXBfcHZlMjsKICAg ICAgICAgJHRpbWVmcmFtZSA9ICJ5ZWFyIiBpZiAkdGltZWZyYW1lIGVxICJkZWNhZGUiOyAjIHdl IG9ubHkgc3RvcmUgdXAgdG8gb25lIHllYXIgaW4gdGhlIG9sZCBmb3JtYXQKICAgICB9Ci0gICAg bXkgJGlzX25vZGUgPSAhISgkcnJkbmFtZSA9fiAvXnB2ZS1ub2RlLyk7CiAKICAgICBteSAoJHJl c28sICRjb3VudCkgPSBAeyAkc2V0dXAtPnskdGltZWZyYW1lfSB9OwogICAgIG15ICRjdGltZSA9 ICRyZXNvICogaW50KHRpbWUoKSAvICRyZXNvKTsKICAgICBteSAkcmVxX3N0YXJ0ID0gJGN0aW1l IC0gJHJlc28gKiAkY291bnQ7CiAKLSAgICAkY2YgPSAiQVZFUkFHRSIgaWYgISRjZjsKLQotICAg IG15IEBhcmdzID0gKAotICAgICAgICAiLXMiID0+ICRyZXFfc3RhcnQsCi0gICAgICAgICItZSIg PT4gJGN0aW1lIC0gMSwKLSAgICAgICAgIi1yIiA9PiAkcmVzbywKLSAgICApOwotCi0gICAgbXkg JHNvY2tldCA9ICIvdmFyL3J1bi9ycmRjYWNoZWQuc29jayI7Ci0gICAgcHVzaCBAYXJncywgIi0t ZGFlbW9uIiA9PiAidW5peDokc29ja2V0IiBpZiAtUyAkc29ja2V0OwotCi0gICAgbXkgKCRzdGFy dCwgJHN0ZXAsICRuYW1lcywgJGRhdGEpID0gUlJEczo6ZmV0Y2goJHJyZCwgJGNmLCBAYXJncyk7 Ci0KLSAgICBteSAkZXJyID0gUlJEczo6ZXJyb3I7Ci0gICAgZGllICJSUkQgZXJyb3I6ICRlcnJc biIgaWYgJGVycjsKLQotICAgIGRpZSAiZ290IHdyb25nIHRpbWUgcmVzb2x1dGlvbiAoJHN0ZXAg IT0gJHJlc28pXG4iCi0gICAgICAgIGlmICRzdGVwICE9ICRyZXNvOworICAgIG15ICRsYXN0X29s ZDsKKyAgICAjIGNoZWNrIGlmIHdlIGhhdmUgb2xkIHJyZCBmaWxlIGFuZCBpZiB0aGUgc3RhcnQg cG9pbnQgaXMgc3RpbGwgY292ZXJlZCBieQorICAgICMgaXQsIGZldGNoIHRoYXQgZGF0YSBmcm9t IGl0IGZvciBhbnkgZGF0YSBub3QgYXZhaWxhYmxlIGluIHRoZSBvbGQgZmlsZSB3ZQorICAgICMg d2lsbCBmZXRjaCBpdCBmcm9tIHRoZSBuZXcgZmlsZS4KKyAgICBpZiAoJHJyZG5hbWUgPX4gL3B2 ZS0oPzx0eXBlPm5vZGV8dm18c3RvcmFnZSktWzAtOV0qXC5bMC05XSpcLyg/PHJlc291cmNlPi4q KS8pIHsKKyAgICAgICAgbXkgJG9sZF9ycmQgPSAiJHtycmRkaXJ9L3B2ZTItJCt7dHlwZX0vJCt7 cmVzb3VyY2V9IjsKKyAgICAgICAgbXkgJG9sZF9leGlzdHMgPSAwOworCisgICAgICAgICMgd2Ug Y2FuIGhhdmUgYWxyZWFkeSBtaWdyYXRlZCBycmQgZmlsZXMgdGhhdCBoYXZlIHRoZSAub2xkIHN1 ZmZpeCB0b28KKyAgICAgICAgaWYgKC1lICRvbGRfcnJkKSB7CisgICAgICAgICAgICAkb2xkX2V4 aXN0cyA9IDE7CisgICAgICAgIH0gZWxzaWYgKC1lICIke29sZF9ycmR9Lm9sZCIpIHsKKyAgICAg ICAgICAgICRvbGRfZXhpc3RzID0gMTsKKyAgICAgICAgICAgICRvbGRfcnJkID0gIiR7b2xkX3Jy ZH0ub2xkIjsKKyAgICAgICAgfQogCi0gICAgbXkgJHJlcyA9IFtdOwotICAgIG15ICRmaWVsZHMg PSBzY2FsYXIoQCRuYW1lcyk7Ci0gICAgZm9yIG15ICRsaW5lIChAJGRhdGEpIHsKLSAgICAgICAg bXkgJGVudHJ5ID0geyAndGltZScgPT4gJHN0YXJ0IH07Ci0gICAgICAgICRzdGFydCArPSAkc3Rl cDsKLSAgICAgICAgZm9yIChteSAkaSA9IDA7ICRpIDwgJGZpZWxkczsgJGkrKykgewotICAgICAg ICAgICAgbXkgJG5hbWUgPSAkbmFtZXMtPlskaV07Ci0gICAgICAgICAgICBpZiAoZGVmaW5lZCht eSAkdmFsID0gJGxpbmUtPlskaV0pKSB7Ci0gICAgICAgICAgICAgICAgJGVudHJ5LT57JG5hbWV9 ID0gJHZhbDsKLSAgICAgICAgICAgICAgICAkZW50cnktPnttZW1hdmFpbGFibGV9ID0gJHZhbAot ICAgICAgICAgICAgICAgICAgICBpZiAkaXNfbm9kZSAmJiAkbmFtZSBlcSAnbWVtZnJlZScgJiYg IWV4aXN0cygkZW50cnktPnttZW1hdmFpbGFibGV9KTsKKyAgICAgICAgaWYgKCRvbGRfZXhpc3Rz KSB7CisgICAgICAgICAgICAkbGFzdF9vbGQgPSBSUkRzOjpsYXN0KCRvbGRfcnJkKTsKKyAgICAg ICAgICAgIGlmICgkcmVxX3N0YXJ0IDwgJGxhc3Rfb2xkKSB7CisgICAgICAgICAgICAgICAgbXkg KCRyZXNvX29sZCwgJGNvdW50X29sZCkgPSBAeyAkc2V0dXBfcHZlMi0+eyR0aW1lZnJhbWV9IH07 CisgICAgICAgICAgICAgICAgbXkgJGN0aW1lX29sZCA9ICRyZXNvX29sZCAqIGludCh0aW1lKCkg LyAkcmVzb19vbGQpOworICAgICAgICAgICAgICAgIG15ICRyZXFfc3RhcnRfb2xkID0gJGN0aW1l X29sZCAtICRyZXNvX29sZCAqICRjb3VudF9vbGQ7CisgICAgICAgICAgICAgICAgbXkgJGFyZ3Mg PSBbXTsKKyAgICAgICAgICAgICAgICBwdXNoKEAkYXJncywgIi1zIiA9PiAkcmVxX3N0YXJ0X29s ZCk7CisgICAgICAgICAgICAgICAgcHVzaChAJGFyZ3MsICItZSIgPT4gJGxhc3Rfb2xkKTsKKyAg ICAgICAgICAgICAgICBwdXNoKEAkYXJncywgIi1yIiA9PiAkcmVzb19vbGQpOworCisgICAgICAg ICAgICAgICAgbXkgJHNvY2tldCA9ICIvdmFyL3J1bi9ycmRjYWNoZWQuc29jayI7CisgICAgICAg ICAgICAgICAgcHVzaCBAJGFyZ3MsICItLWRhZW1vbiIgPT4gInVuaXg6JHNvY2tldCIgaWYgLVMg JHNvY2tldDsKKworICAgICAgICAgICAgICAgICRnZXRfcnJkX2RhdGEtPigkb2xkX3JyZCwgJGNm LCAkaXNfbm9kZSwgJHJlc29fb2xkLCAkYXJncywgJHJlcyk7CiAgICAgICAgICAgICB9IGVsc2Ug ewotICAgICAgICAgICAgICAgICMgbGVhdmUgZW1wdHkgZmllbGRzIHVuZGVmaW5lZAotICAgICAg ICAgICAgICAgICMgbWF5YmUgbWFrZSB0aGlzIGNvbmZpZ3VyYWJsZT8KKyAgICAgICAgICAgICAg ICAkbGFzdF9vbGQgPSB1bmRlZjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICBw dXNoIEAkcmVzLCAkZW50cnk7CiAgICAgfQogCisgICAgbXkgJGFyZ3MgPSBbXTsKKyAgICBpZiAo JGxhc3Rfb2xkKSB7CisgICAgICAgIHB1c2goQCRhcmdzLCAiLXMiID0+ICRsYXN0X29sZCk7Cisg ICAgfSBlbHNlIHsKKyAgICAgICAgcHVzaChAJGFyZ3MsICItcyIgPT4gJHJlcV9zdGFydCk7Cisg ICAgfQorCisgICAgcHVzaChAJGFyZ3MsICItZSIgPT4gJGN0aW1lIC0gMSk7CisgICAgcHVzaChA JGFyZ3MsICItciIgPT4gJHJlc28pOworCisgICAgbXkgJHNvY2tldCA9ICIvdmFyL3J1bi9ycmRj YWNoZWQuc29jayI7CisgICAgcHVzaCBAJGFyZ3MsICItLWRhZW1vbiIgPT4gInVuaXg6JHNvY2tl dCIgaWYgLVMgJHNvY2tldDsKKworICAgICRnZXRfcnJkX2RhdGEtPigkcnJkLCAkY2YsICRpc19u b2RlLCAkcmVzbywgJGFyZ3MsICRyZXMpOworCiAgICAgcmV0dXJuICRyZXM7CiB9CiAKQEAgLTEy Niw2ICsxNjksMzMgQEAgc3ViIGNyZWF0ZV9ycmRfZ3JhcGggewogICAgIH0KIAogICAgIG15ICgk cmVzbywgJGNvdW50KSA9IEB7ICRzZXR1cC0+eyR0aW1lZnJhbWV9IH07CisgICAgbXkgJGN0aW1l ID0gJHJlc28gKiBpbnQodGltZSgpIC8gJHJlc28pOworICAgIG15ICRyZXFfc3RhcnQgPSAkY3Rp bWUgLSAkcmVzbyAqICRjb3VudDsKKworICAgIG15ICRsYXN0X29sZDsKKyAgICBteSAkb2xkX3Jy ZDsKKyAgICBteSAkb2xkX2V4aXN0cyA9IDA7CisgICAgbXkgJHVzZV9vbGQ7CisgICAgIyBjaGVj ayBpZiB3ZSBoYXZlIG9sZCBycmQgZmlsZSBhbmQgaWYgdGhlIHN0YXJ0IHBvaW50IGlzIHN0aWxs IGNvdmVyZWQKKyAgICAjIGJ5IGl0CisgICAgaWYgKCRycmRuYW1lID1+IC9wdmUtKD88dHlwZT5u b2RlfHZtfHN0b3JhZ2UpLVswLTldKlwuWzAtOV0qXC8oPzxyZXNvdXJjZT4uKikvKSB7CisgICAg ICAgICRvbGRfcnJkID0gIiR7cnJkZGlyfS9wdmUyLSQre3R5cGV9LyQre3Jlc291cmNlfSI7CisK KyAgICAgICAgIyB3ZSBjYW4gaGF2ZSBhbHJlYWR5IG1pZ3JhdGVkIHJyZCBmaWxlcyB0aGF0IGhh dmUgdGhlIC5vbGQgc3VmZml4IHRvbworICAgICAgICBpZiAoLWUgJG9sZF9ycmQpIHsKKyAgICAg ICAgICAgICRvbGRfZXhpc3RzID0gMTsKKyAgICAgICAgfSBlbHNpZiAoLWUgIiR7b2xkX3JyZH0u b2xkIikgeworICAgICAgICAgICAgJG9sZF9leGlzdHMgPSAxOworICAgICAgICAgICAgJG9sZF9y cmQgPSAiJHtvbGRfcnJkfS5vbGQiOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCRvbGRfZXhp c3RzKSB7CisgICAgICAgICAgICAkbGFzdF9vbGQgPSBSUkRzOjpsYXN0KCRvbGRfcnJkKTsKKyAg ICAgICAgICAgIGlmICgkcmVxX3N0YXJ0IDwgJGxhc3Rfb2xkKSB7CisgICAgICAgICAgICAgICAg JHVzZV9vbGQgPSAxOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQogCiAgICAgbXkg QGFyZ3MgPSAoCiAgICAgICAgICItLWltZ2Zvcm1hdCIgPT4gIlBORyIsCkBAIC0xNDcsMTMgKzIx NywyNyBAQCBzdWIgY3JlYXRlX3JyZF9ncmFwaCB7CiAgICAgbXkgJGkgPSAwOwogICAgIGZvcmVh Y2ggbXkgJGlkIChAaWRzKSB7CiAgICAgICAgIG15ICRjb2wgPSAkY29sZGVmWyRpKytdIHx8IGRp ZSAiZml4bWU6IG5vIGNvbG9yIGRlZmluaXRpb24iOwotICAgICAgICBwdXNoIEBhcmdzLCAiREVG OiR7aWR9PSRycmQ6JHtpZH06JGNmIjsKICAgICAgICAgbXkgJGRhdGFpZCA9ICRpZDsKKyAgICAg ICAgbXkgJGxpbmVkZWYgPSAiREVGOiR7ZGF0YWlkfT0kcnJkOiR7aWR9OiRjZiI7CisgICAgICAg ICRsaW5lZGVmID0gIiR7bGluZWRlZn06c3RhcnQ9JHtsYXN0X29sZH0iIGlmICR1c2Vfb2xkOyAj IGF2b2lkIGV2ZW50dWFsIG92ZXJsYXAKKworICAgICAgICBwdXNoIEBhcmdzLCAiJHtsaW5lZGVm fSI7CisKICAgICAgICAgaWYgKCRpZCBlcSAnY3B1JyB8fCAkaWQgZXEgJ2lvd2FpdCcpIHsKLSAg ICAgICAgICAgIHB1c2ggQGFyZ3MsICJDREVGOiR7aWR9X3Blcj0ke2lkfSwxMDAsKiI7CisgICAg ICAgICAgICBwdXNoIEBhcmdzLCAiQ0RFRjoke2RhdGFpZH1fcGVyPSR7aWR9LDEwMCwqIjsKICAg ICAgICAgICAgICRkYXRhaWQgPSAiJHtpZH1fcGVyIjsKICAgICAgICAgfQogICAgICAgICBwdXNo IEBhcmdzLCAiTElORTI6JHtkYXRhaWR9JHtjb2x9OiR7aWR9IjsKKworICAgICAgICBpZiAoJHVz ZV9vbGQpIHsKKyAgICAgICAgICAgIG15ICRkYXRhaWQgPSAiJHtpZH1vbGQiOworICAgICAgICAg ICAgcHVzaCBAYXJncywgIkRFRjoke2RhdGFpZH09JG9sZF9ycmQ6JHtpZH06JHtjZn0iOworICAg ICAgICAgICAgaWYgKCRpZCBlcSAnY3B1JyB8fCAkaWQgZXEgJ2lvd2FpdCcpIHsKKyAgICAgICAg ICAgICAgICBwdXNoIEBhcmdzLCAiQ0RFRjoke2RhdGFpZH1fcGVyPSR7ZGF0YWlkfSwxMDAsKiI7 CisgICAgICAgICAgICAgICAgJGRhdGFpZCA9ICIke2RhdGFpZH1fcGVyIjsKKyAgICAgICAgICAg IH0KKyAgICAgICAgICAgIHB1c2ggQGFyZ3MsICJMSU5FMjoke2RhdGFpZH0ke2NvbH0iOworICAg ICAgICB9CiAgICAgfQogCiAgICAgcHVzaCBAYXJncywgJy0tZnVsbC1zaXplLW1vZGUnOwotLSAK Mi40Ny4zCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CnB2ZS1kZXZlbCBtYWlsaW5nIGxpc3QKcHZlLWRldmVsQGxpc3RzLnByb3htb3guY29tCmh0dHBz Oi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3B2ZS1kZXZlbAo=