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 2D3981FF16B for ; Tue, 9 Sep 2025 10:37:03 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 0B4DB2973; Tue, 9 Sep 2025 10:35:57 +0200 (CEST) From: Daniel Kral To: pve-devel@lists.proxmox.com Date: Tue, 9 Sep 2025 10:33:45 +0200 Message-ID: <20250909083539.39675-9-d.kral@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20250909083539.39675-1-d.kral@proxmox.com> References: <20250909083539.39675-1-d.kral@proxmox.com> MIME-Version: 1.0 X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1757406920590 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.015 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 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 ha-manager v2 08/18] rules: make plugins register transformers instead of plugin_transform 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" UmVwbGFjZXMgdGhlIHJ1bGUgcGx1Z2lucycgcGx1Z2luX3RyYW5zZm9ybSguLi4pIG1ldGhvZCBi eSBhCnJlZ2lzdGVyX3RyYW5zZm9ybSguLi4pIGNhbGwgZm9yIGVhY2ggZGVjbGFyZWQgcnVsZSB0 cmFuc2Zvcm1lciB0byBtYWtlCnRoZWlyIGludGVyZmFjZSBtb3JlIHNpbWlsYXIgdG8gdGhlIG9u ZSBmb3IgcnVsZSBwbHVnaW4gY2hlY2tzLgoKU2lnbmVkLW9mZi1ieTogRGFuaWVsIEtyYWwgPGQu a3JhbEBwcm94bW94LmNvbT4KUmV2aWV3ZWQtYnk6IE1pY2hhZWwgS8O2cHBsIDxtLmtvZXBwbEBw cm94bW94LmNvbT4KVGVzdGVkLWJ5OiBNaWNoYWVsIEvDtnBwbCA8bS5rb2VwcGxAcHJveG1veC5j b20+Ci0tLQpubyBjaGFuZ2VzIHNpbmNlIHYxCgogc3JjL1BWRS9IQS9SdWxlcy5wbSAgICAgICAg ICAgICAgICAgIHwgODUgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQogc3JjL1BWRS9IQS9S dWxlcy9SZXNvdXJjZUFmZmluaXR5LnBtIHwgMjIgKysrLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA3 MSBpbnNlcnRpb25zKCspLCAzNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvUFZFL0hB L1J1bGVzLnBtIGIvc3JjL1BWRS9IQS9SdWxlcy5wbQppbmRleCBjODFiMTUyNS4uYTA3NWZlYWMg MTAwNjQ0Ci0tLSBhL3NyYy9QVkUvSEEvUnVsZXMucG0KKysrIGIvc3JjL1BWRS9IQS9SdWxlcy5w bQpAQCAtMzIsNiArMzIsMTIgQEAgdGhlIGZlYXNpYmlsaXR5IGJldHdlZW4gcnVsZXMgb2YgdGhl IHNhbWUgdHlwZSBhbmQgYW5kIGJldHdlZW4gcnVsZXMgb2YKIGRpZmZlcmVudCB0eXBlcywgYW5k IHBydW5lIHRoZSBydWxlIHNldCBpbiBzdWNoIGEgd2F5LCB0aGF0IGl0IGJlY29tZXMgZmVhc2li bGUKIGFnYWluLCB3aGlsZSBtaW5pbWl6aW5nIHRoZSBhbW91bnQgb2YgcnVsZXMgdGhhdCBuZWVk IHRvIGJlIHBydW5lZC4KIAorTW9yZSBzbywgdGhlIHJ1bGVzIGdpdmVuIGJ5IHRoZSBjb25maWcg ZmlsZSBtaWdodCBub3QgYmUgaW4gdGhlIGJlc3QgZm9ybWF0IHRvCitiZSB1c2VkIGludGVybmFs bHkgb3IgZG9lcyBub3QgY29udGFpbiB0aGUgaW1wbGljaXRseSBzdGF0ZWQgcnVsZXMsIHdoaWNo IGFyZQoraW5kdWNlZCBieSB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gZGlmZmVyZW50IHJ1bGVz LiBUaGVyZWZvcmUsIHRoaXMgcGFja2FnZQorYWxzbyBwcm92aWRlcyB0aGUgY2FwYWJpbGl0eSB0 byBDPEw8cmVnaXN0ZXIgdHJhbnNmb3Jtc3wvUkVHSVNURVJJTkcgVFJBTlNGT1JNUz4+Cit0byBp bXBsZW1lbnQgdGhlc2UgaW50ZXJuYWwgcnVsZSB0cmFuc2Zvcm1hdGlvbnMuCisKIFRoaXMgcGFj a2FnZXMgaW5oZXJpdHMgaXRzIGNvbmZpZy1yZWxhdGVkIG1ldGhvZHMgZnJvbSBDPEw8UFZFOjpT ZWN0aW9uQ29uZmlnPj4KIGFuZCB0aGVyZWZvcmUgcnVsZSBwbHVnaW5zIG5lZWQgdG8gaW1wbGVt ZW50IG1ldGhvZHMgZnJvbSB0aGVyZSBhcyB3ZWxsLgogCkBAIC05MCw2ICs5NiwyOCBAQCBhbmQg YmxhbWVzIHRoZXNlIGVycm9ycyBvbiB0aGUgSTxjb21tZW50PiBwcm9wZXJ0eToKICAgICAgICAg fQogICAgICk7CiAKKz1oZWFkMiBSRUdJU1RFUklORyBUUkFOU0ZPUk1TCisKK1J1bGUgdHJhbnNm b3JtcyBhcmUgdXNlZCBmb3IgdHJhbnNmb3JtaW5nIHRoZSBydWxlIHNldCBpbiBzdWNoIGEgd2F5 IHRoYXQKK3RoZSBydWxlcyBwcm92aWRlZCBieSB0aGUgcnVsZXMgY29uZmlnIGFyZSBlYXNpZXIg dG8gd29yayB3aXRoIChmb3IgZXhhbXBsZSwKK3RyYW5zZm9ybWluZyBydWxlcyBpbnRvIGVxdWl2 YWxlbnQgZm9ybXMpIG9yIG1ha2UgdGhlIHJ1bGUgc2V0IG1vcmUgY29tcGxldGUKKyhlLmcuIGV4 cGxpY2l0bHkgY3JlYXRlIHNlbWFudGljYWxseSBpbXBsaWNpdCBydWxlcykuCisKK0M8TDw8IFJl Z2lzdGVyaW5nIHRyYW5zZm9ybXN8LyRjbGFzcy0+cmVnaXN0ZXJfdHJhbnNmb3JtKC4uLikgPj4+ IGlzIHRoZSBzYW1lCithcyBmb3IgcmVnaXN0ZXJpbmcgY2hlY2tzLiBGb2xsb3dpbmcgdXAgb24g dGhlIGV4YW1wbGUgZnJvbSB0aGF0IHNlY3Rpb24sIHRoZQorZm9sbG93aW5nIGV4YW1wbGUgc2hv d3MgYSBwb3NzaWJsZSBydWxlIHBsdWdpbidzIHRyYW5zZm9ybSwgd2hpY2ggcmVtb3ZlcyB0aGUK K0k8Y29tbWVudD4gcHJvcGVydHkgZnJvbSBlYWNoIHJ1bGU6CisKKyAgICBfX1BBQ0tBR0VfXy0+ cmVnaXN0ZXJfdHJhbnNmb3JtZXIoCisgICAgICAgIHN1YiB7CisgICAgICAgICAgICBteSAoJHJ1 bGVzLCAkYXJncykgPSBAXzsKKworICAgICAgICAgICAgZm9yIG15ICRydWxlaWQgKGtleXMgJGFy Z3MtPntjdXN0b21fcnVsZXN9LT4lKikgeworICAgICAgICAgICAgICAgIGRlbGV0ZSAkcnVsZXMt PntpZHN9LT57JHJ1bGVpZH0tPntjb21tZW50fTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor ICAgICk7CisKID1oZWFkMSBNRVRIT0RTCiAKID1jdXQKQEAgLTI0NiwxMCArMjc0LDExIEBAIHN1 YiBzZXRfcnVsZV9kZWZhdWx0cyA6IHByb3RvdHlwZSgkJCkgewogICAgIH0KIH0KIAotIyBSdWxl IGNoZWNrcyBkZWZpbml0aW9uIGFuZCBtZXRob2RzCisjIFJ1bGUgY2hlY2tzIGFuZCB0cmFuc2Zv cm1zIGRlZmluaXRpb24gYW5kIG1ldGhvZHMKIAogbXkgJHR5cGVzID0gW107CiBteSAkY2hlY2tk ZWY7CitteSAkdHJhbnNmb3JtZGVmOwogCiBzdWIgcmVnaXN0ZXIgewogICAgIG15ICgkY2xhc3Mp ID0gQF87CkBAIC0yNzksNiArMzA4LDIzIEBAIHN1YiByZWdpc3Rlcl9jaGVjayA6IHByb3RvdHlw ZSgkJCQpIHsKICAgICBdOwogfQogCis9aGVhZDMgJGNsYXNzLT5yZWdpc3Rlcl90cmFuc2Zvcm0o Li4uKQorCis9aGVhZDMgJGNsYXNzLT5yZWdpc3Rlcl90cmFuc2Zvcm0oJHRyYW5zZm9ybV9mdW5j KQorCitVc2VkIHRvIHJlZ2lzdGVyIHJ1bGUgdHJhbnNmb3JtZXJzIGZvciBhIHJ1bGUgcGx1Z2lu LgorCis9Y3V0CisKK3N1YiByZWdpc3Rlcl90cmFuc2Zvcm0gOiBwcm90b3R5cGUoJCQpIHsKKyAg ICBteSAoJGNsYXNzLCAkdHJhbnNmb3JtX2Z1bmMpID0gQF87CisKKyAgICBteSAkdHlwZSA9IGV2 YWwgeyAkY2xhc3MtPnR5cGUoKSB9OworICAgICR0eXBlID0gJ2dsb2JhbCcgaWYgJEA7CisKKyAg ICBwdXNoICR0cmFuc2Zvcm1kZWYtPnskdHlwZX0tPkAqLCAkdHJhbnNmb3JtX2Z1bmM7Cit9CisK ID1oZWFkMyAkY2xhc3MtPmdldF9wbHVnaW5fY2hlY2tfYXJndW1lbnRzKC4uLikKIAogPWhlYWQz ICRjbGFzcy0+Z2V0X3BsdWdpbl9jaGVja19hcmd1bWVudHMoJHJ1bGVzKQpAQCAtMjg3LDYgKzMz Myw3IEBAIEI8T1BUSU9OQUw6PiBDYW4gYmUgaW1wbGVtZW50ZWQgaW4gdGhlIEk8cnVsZSBwbHVn aW4+LgogCiBSZXR1cm5zIGEgaGFzaCwgdXN1YWxseSBzdWJzZXRzIG9mIHJ1bGVzIHJlbGV2YW50 IHRvIHRoZSBwbHVnaW4sIHdoaWNoIGFyZQogcGFzc2VkIHRvIHRoZSBwbHVnaW4ncyBDPEw8PCBy ZWdpc3RlcmVkIGNoZWNrc3wvJGNsYXNzLT5yZWdpc3Rlcl9jaGVjayguLi4pID4+PgorYW5kIEM8 TDw8IHJlZ2lzdGVyZWQgdHJhbnNmb3Jtc3wvJGNsYXNzLT5yZWdpc3Rlcl90cmFuc2Zvcm0oLi4u KSA+Pj4KIHNvIHRoYXQgdGhlIGNyZWF0aW9uIG9mIHRoZXNlIGNhbiBiZSBzaGFyZWQgaW5iZXR3 ZWVuIHJ1bGUgY2hlY2sKIGltcGxlbWVudGF0aW9ucy4KIApAQCAtMzYwLDE4ICs0MDcsNiBAQCBz dWIgY2hlY2tfZmVhc2liaWxpdHkgOiBwcm90b3R5cGUoJCQkKSB7CiAgICAgcmV0dXJuICRnbG9i YWxfZXJyb3JzOwogfQogCi09aGVhZDMgJGNsYXNzLT5wbHVnaW5fdHJhbnNmb3JtKCRydWxlcykK LQotQjxPUFRJT05BTDo+IENhbiBiZSBpbXBsZW1lbnRlZCBpbiB0aGUgSTxydWxlIHBsdWdpbj4u Ci0KLU1vZGlmaWVzIHRoZSBDPCRydWxlcz4gdG8gYSBwbHVnaW4tc3BlY2lmaWMgY2Fub25pY2Fs IGZvcm0uCi0KLT1jdXQKLQotc3ViIHBsdWdpbl90cmFuc2Zvcm0gOiBwcm90b3R5cGUoJCQpIHsK LSAgICBteSAoJGNsYXNzLCAkcnVsZXMpID0gQF87Ci19Ci0KID1oZWFkMyAkY2xhc3MtPnRyYW5z Zm9ybSgkcnVsZXMsICRub2RlcykKIAogTW9kaWZpZXMgQzwkcnVsZXM+IHRvIGNvbnRhaW4gb25s eSBmZWFzaWJsZSBydWxlcy4KQEAgLTM4MCw3ICs0MTUsOSBAQCBDPCRub2Rlcz4gaXMgYSBsaXN0 IG9mIHRoZSBjb25maWd1cmVkIGNsdXN0ZXIgbm9kZXMuCiAKIFRoaXMgaXMgZG9uZSBieSBydW5u aW5nIGFsbCBjaGVja3MsIHdoaWNoIHdlcmUgcmVnaXN0ZXJlZCB3aXRoCiBDPEw8PCByZWdpc3Rl cl9jaGVjaygpfC8kY2xhc3MtPnJlZ2lzdGVyX2NoZWNrKC4uLikgPj4+IGFuZCByZW1vdmluZyBh bnkKLXJ1bGUsIHdoaWNoIG1ha2VzIHRoZSBydWxlIHNldCBpbmZlYXNpYmxlLgorcnVsZSwgd2hp Y2ggbWFrZXMgdGhlIHJ1bGUgc2V0IGluZmVhc2libGUsIGFuZCBhZnRlcndhcmRzIHJ1bm5pbmcg YWxsCit0cmFuc2Zvcm1zIG9uIHRoZSBmZWFzaWJsZSBydWxlIHNldCwgd2hpY2ggd2VyZSByZWdp c3RlcmVkIHdpdGgKK0M8TDw8IHJlZ2lzdGVyX3RyYW5zZm9ybSgpfC8kY2xhc3MtPnJlZ2lzdGVy X3RyYW5zZm9ybSguLi4pID4+Pi4KIAogUmV0dXJucyBhIGxpc3Qgb2YgbWVzc2FnZXMgd2l0aCB0 aGUgcmVhc29ucyB3aHkgcnVsZXMgd2VyZSByZW1vdmVkLgogCkBAIC00MDUsMTMgKzQ0MiwxMyBA QCBzdWIgdHJhbnNmb3JtIDogcHJvdG90eXBlKCQkJCkgewogICAgICAgICB9CiAgICAgfQogCi0g ICAgZm9yIG15ICR0eXBlIChAJHR5cGVzKSB7Ci0gICAgICAgIG15ICRwbHVnaW4gPSAkY2xhc3Mt Pmxvb2t1cCgkdHlwZSk7Ci0gICAgICAgIGV2YWwgeyAkcGx1Z2luLT5wbHVnaW5fdHJhbnNmb3Jt KCRydWxlcykgfTsKLSAgICAgICAgbmV4dCBpZiAkQDsgIyBwbHVnaW4gZG9lc24ndCBpbXBsZW1l bnQgcGx1Z2luX3RyYW5zZm9ybSguLi4pCi0gICAgfQorICAgIGZvciBteSAkdHlwZSAoQCR0eXBl cywgJ2dsb2JhbCcpIHsKKyAgICAgICAgZm9yIG15ICR0cmFuc2Zvcm0gKCR0cmFuc2Zvcm1kZWYt PnskdHlwZX0tPkAqKSB7CisgICAgICAgICAgICBteSAkZ2xvYmFsX2FyZ3MgPSAkY2xhc3MtPmdl dF9jaGVja19hcmd1bWVudHMoJHJ1bGVzKTsKIAotICAgICRjbGFzcy0+Z2xvYmFsX3RyYW5zZm9y bSgkcnVsZXMpOworICAgICAgICAgICAgJHRyYW5zZm9ybS0+KCRydWxlcywgJGdsb2JhbF9hcmdz KTsKKyAgICAgICAgfQorICAgIH0KIAogICAgIHJldHVybiAkbWVzc2FnZXM7CiB9CkBAIC03NTAs MTYgKzc4NywxNCBAQCBzdWIgY3JlYXRlX2ltcGxpY2l0X3Bvc2l0aXZlX3Jlc291cmNlX2FmZmlu aXR5X25vZGVfYWZmaW5pdHlfcnVsZXMgewogICAgIH0KIH0KIAotc3ViIGdsb2JhbF90cmFuc2Zv cm0gewotICAgIG15ICgkY2xhc3MsICRydWxlcykgPSBAXzsKLQotICAgIG15ICRhcmdzID0gJGNs YXNzLT5nZXRfY2hlY2tfYXJndW1lbnRzKCRydWxlcyk7CitfX1BBQ0tBR0VfXy0+cmVnaXN0ZXJf dHJhbnNmb3JtKHN1YiB7CisgICAgbXkgKCRydWxlcywgJGFyZ3MpID0gQF87CiAKICAgICBjcmVh dGVfaW1wbGljaXRfcG9zaXRpdmVfcmVzb3VyY2VfYWZmaW5pdHlfbm9kZV9hZmZpbml0eV9ydWxl cygKICAgICAgICAgJHJ1bGVzLAogICAgICAgICAkYXJncy0+e3Bvc2l0aXZlX3J1bGVzfSwKICAg ICAgICAgJGFyZ3MtPntub2RlX2FmZmluaXR5X3J1bGVzfSwKICAgICApOwotfQorfSk7CiAKIDE7 CmRpZmYgLS1naXQgYS9zcmMvUFZFL0hBL1J1bGVzL1Jlc291cmNlQWZmaW5pdHkucG0gYi9zcmMv UFZFL0hBL1J1bGVzL1Jlc291cmNlQWZmaW5pdHkucG0KaW5kZXggOTQ3ZTE1ODAuLmYyZDU3Y2U2 IDEwMDY0NAotLS0gYS9zcmMvUFZFL0hBL1J1bGVzL1Jlc291cmNlQWZmaW5pdHkucG0KKysrIGIv c3JjL1BWRS9IQS9SdWxlcy9SZXNvdXJjZUFmZmluaXR5LnBtCkBAIC0yOTgsNiArMjk4LDEyIEBA IHN1YiBtZXJnZV9jb25uZWN0ZWRfcG9zaXRpdmVfcmVzb3VyY2VfYWZmaW5pdHlfcnVsZXMgewog ICAgIH0KIH0KIAorX19QQUNLQUdFX18tPnJlZ2lzdGVyX3RyYW5zZm9ybShzdWIgeworICAgIG15 ICgkcnVsZXMsICRhcmdzKSA9IEBfOworCisgICAgbWVyZ2VfY29ubmVjdGVkX3Bvc2l0aXZlX3Jl c291cmNlX2FmZmluaXR5X3J1bGVzKCRydWxlcywgJGFyZ3MtPntwb3NpdGl2ZV9ydWxlc30pOwor fSk7CisKICMgcmV0cmlldmUgdGhlIGV4aXN0aW5nIG5lZ2F0aXZlIHJlc291cmNlIGFmZmluaXR5 IHJlbGF0aW9uc2hpcHMgZm9yIGFueSBvZiB0aGUKICMgJHJlc291cmNlcyBpbiB0aGUgJG5lZ2F0 aXZlX3J1bGVzOyByZXR1cm5zIGEgaGFzaCBtYXAsIHdoZXJlIHRoZSBrZXlzIGFyZSB0aGUKICMg cmVzb3VyY2VzIHRvIGJlIHNlcGFyYXRlZCBmcm9tIGFuZCB0aGUgdmFsdWVzIGFyZSBzdWJzZXRz IG9mIHRoZSAkcmVzb3VyY2VzCkBAIC0zODEsMjMgKzM4NywxNyBAQCBzdWIgY3JlYXRlX2ltcGxp Y2l0X25lZ2F0aXZlX3Jlc291cmNlX2FmZmluaXR5X3J1bGVzIHsKICAgICB9CiB9CiAKLXN1YiBw bHVnaW5fdHJhbnNmb3JtIHsKLSAgICBteSAoJGNsYXNzLCAkcnVsZXMpID0gQF87CisjIG11c3Qg Y29tZSBhZnRlciBtZXJnaW5nIGNvbm5lY3RlZCBwb3NpdGl2ZSBydWxlcywgYmVjYXVzZSBvZiB0 aGlzIGhlbHBlcnMKKyMgYXNzdW1wdGlvbnMgYWJvdXQgcmVzb3VyY2Ugc2V0cyBhbmQgaW50ZXIt cmVzb3VyY2UgYWZmaW5pdHkgY29uc2lzdGVuY3kKK19fUEFDS0FHRV9fLT5yZWdpc3Rlcl90cmFu c2Zvcm0oc3ViIHsKKyAgICBteSAoJHJ1bGVzLCAkYXJncykgPSBAXzsKIAotICAgIG15ICRhcmdz ID0gJGNsYXNzLT5nZXRfcGx1Z2luX2NoZWNrX2FyZ3VtZW50cygkcnVsZXMpOwotCi0gICAgbWVy Z2VfY29ubmVjdGVkX3Bvc2l0aXZlX3Jlc291cmNlX2FmZmluaXR5X3J1bGVzKCRydWxlcywgJGFy Z3MtPntwb3NpdGl2ZV9ydWxlc30pOwotCi0gICAgJGFyZ3MgPSAkY2xhc3MtPmdldF9wbHVnaW5f Y2hlY2tfYXJndW1lbnRzKCRydWxlcyk7Ci0KLSAgICAjIG11c3QgY29tZSBhZnRlciBtZXJnaW5n IGNvbm5lY3RlZCBwb3NpdGl2ZSBydWxlcywgYmVjYXVzZSBvZiB0aGlzIGhlbHBlcnMKLSAgICAj IGFzc3VtcHRpb25zIGFib3V0IHJlc291cmNlIHNldHMgYW5kIGludGVyLXJlc291cmNlIGFmZmlu aXR5IGNvbnNpc3RlbmN5CiAgICAgY3JlYXRlX2ltcGxpY2l0X25lZ2F0aXZlX3Jlc291cmNlX2Fm ZmluaXR5X3J1bGVzKAogICAgICAgICAkcnVsZXMsCiAgICAgICAgICRhcmdzLT57cG9zaXRpdmVf cnVsZXN9LAogICAgICAgICAkYXJncy0+e25lZ2F0aXZlX3J1bGVzfSwKICAgICApOwotfQorfSk7 CiAKID1oZWFkMSBSRVNPVVJDRSBBRkZJTklUWSBSVUxFIEhFTFBFUlMKIAotLSAKMi40Ny4zCgoK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCnB2ZS1kZXZl bCBtYWlsaW5nIGxpc3QKcHZlLWRldmVsQGxpc3RzLnByb3htb3guY29tCmh0dHBzOi8vbGlzdHMu cHJveG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3B2ZS1kZXZlbAo=