From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <pve-devel-bounces@lists.proxmox.com> Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 3CFDC1FF172 for <inbox@lore.proxmox.com>; Wed, 23 Apr 2025 15:59:19 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 048811C442; Wed, 23 Apr 2025 15:59:13 +0200 (CEST) From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com> To: pve-devel@lists.proxmox.com Date: Wed, 23 Apr 2025 15:59:03 +0200 Message-Id: <20250423135904.716443-3-f.gruenbichler@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250423135904.716443-1-f.gruenbichler@proxmox.com> References: <20250423135904.716443-1-f.gruenbichler@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.046 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 storage 2/3] fix #6338: rbd: use image-/snap-spec consistently X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com> List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe> List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/> List-Post: <mailto:pve-devel@lists.proxmox.com> List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help> List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe> Reply-To: Proxmox VE development discussion <pve-devel@lists.proxmox.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com> dGhpcyBpcyB0aGUgcmVjb21tZW5kZWQgd2F5IHVwc3RyZWFtIHRvIHBhc3MgdGhpcyBpbmZvcm1h dGlvbiwgYW5kIGFsbCBjb21tYW5kcwoob3RoZXIgdGhhbiB0aG9zZSBub3Qgb3BlcmF0aW5nIG9u IGltYWdlcy9zbmFwc2hvdHMpIGNvbnN1bWUgdGhlbSAocmJkKDgpKToKCj4gICAgICAgaW1hZ2Ut c3BlYyAgICAgIGlzIFtwb29sLW5hbWUvW25hbWVzcGFjZS1uYW1lL11daW1hZ2UtbmFtZQo+ICAg ICAgIHNuYXAtc3BlYyAgICAgICBpcyBbcG9vbC1uYW1lL1tuYW1lc3BhY2UtbmFtZS9dXWltYWdl LW5hbWVAc25hcC1uYW1lCj4gWy4uXQo+IFlvdSBtYXkgc3BlY2lmeSBlYWNoIG5hbWUgaW5kaXZp ZHVhbGx5LCB1c2luZyAtLXBvb2wsIC0tbmFtZXNwYWNlLCAtLWltYWdlLAo+IGFuZCAtLXNuYXAg b3B0aW9ucywgYnV0IHRoaXMgaXMgZGlzY291cmFnZWQgaW4gZmF2b3Igb2YgdGhlIGFib3ZlIHNw ZWMKPiBzeW50YXguCgpXZSBhbHJlYWR5IGhhZCBhIGZldyBwbGFjZXMgY2FsbGluZyBgZ2V0X3Ji ZF9wYXRoYCBwcmV2aW91c2x5ICh3aGljaCBtZWFudApwYXNzaW5nIHRoZSBwb29sIGFuZCBuYW1l c3BhY2UgaW5mb3JtYXRpb24gdHdpY2UgdG8gQ2VwaCkuCgpJdCBhbHNvIGFsbG93cyB1cyB0byBy ZXBsYWNlIHRoZSBjdXN0b20gaW1wb3J0IGFuZCB1bm1hcCBoYW5kbGluZyB3aXRoIGp1c3QKY3Vz dG9tIGBsc2AgaGFuZGxpbmcsIHJlZHVjaW5nIHRoZSB3b3JrYXJvdW5kcyBpbiByYmRfY21kLgoK Rml4ZXM6ICM2MzM4ICwgYmVjYXVzZSBgcmJkIGltcG9ydGAgZG9lc24ndCBoYW5kbGUgYSBzZXBh cmF0ZSBgLS1uYW1lc3BhY2UgLi5gCmF0IGFsbC4uCgpTaWduZWQtb2ZmLWJ5OiBGYWJpYW4gR3LD vG5iaWNobGVyIDxmLmdydWVuYmljaGxlckBwcm94bW94LmNvbT4KLS0tCndlIGNvdWxkIHByb2Jh Ymx5IHN3aXRjaCBzb21lIG1vcmUgb25seS10ZWNobmljYWxseS1wdWJsaWMgc3VicyBvdmVyIHRv CnRha2UgYSBzcGVjIGluc3RlYWQgb2YgaW1hZ2UgbmFtZSBvciBpbWFnZSArIHNuYXBzaG90IG5h bWUsIGlmIGRlc2lyZWQuLgoKYWx0ZXJuYXRpdmVseSwgd2UgY291bGQgYWxzbyBqdXN0IHNwZWNp YWwgY2FzZSB0aGUgaW1wb3J0IGNhbGwsIGFuZC9vciBjb252aW5jZQp1cHN0cmVhbSB0byBpbXBs ZW1lbnQgLS1uYW1lc3BhY2UgaGFuZGxpbmcgdGhlcmUgYXMgd2VsbCBvciBzZW5kIGEgcGF0Y2gg ZG9pbmcKdGhhdCB0aGVpciB3YXkuLgoKIHNyYy9QVkUvU3RvcmFnZS9SQkRQbHVnaW4ucG0gfCAx MzMgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2 OSBpbnNlcnRpb25zKCspLCA2NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvUFZFL1N0 b3JhZ2UvUkJEUGx1Z2luLnBtIGIvc3JjL1BWRS9TdG9yYWdlL1JCRFBsdWdpbi5wbQppbmRleCA4 YzY3YTM3Li4zYmI1ODA3IDEwMDY0NAotLS0gYS9zcmMvUFZFL1N0b3JhZ2UvUkJEUGx1Z2luLnBt CisrKyBiL3NyYy9QVkUvU3RvcmFnZS9SQkRQbHVnaW4ucG0KQEAgLTg5LDIyICs4OSwxNyBAQCBt eSAkcmJkX2NtZCA9IHN1YiB7CiAgICAgbXkgKCRzY2ZnLCAkc3RvcmVpZCwgJG9wLCBAb3B0aW9u cykgPSBAXzsKIAogICAgIG15ICRjbWRfb3B0aW9uID0gUFZFOjpDZXBoQ29uZmlnOjpjZXBoX2Nv bm5lY3Rfb3B0aW9uKCRzY2ZnLCAkc3RvcmVpZCk7Ci0gICAgbXkgJHBvb2wgPSAgJHNjZmctPntw b29sfSA/ICRzY2ZnLT57cG9vbH0gOiAncmJkJzsKIAogICAgIG15ICRjbWQgPSBbJy91c3IvYmlu L3JiZCddOwotICAgIGlmICgkb3AgZXEgJ2ltcG9ydCcpIHsKLQlwdXNoICRjbWQtPkAqLCAnLS1k ZXN0LXBvb2wnLCAkcG9vbDsKLSAgICB9IGVsc2UgeworICAgICMgYGxzYCBkb2Vzbid0IHRha2Ug YW4gaW1hZ2Utc3BlYywgb3RoZXJ3aXNlIHBvb2wgYW5kIG5hbWVzcGFjZSBzaG91bGQgYmUgc3Bl Y2lmaWVkIHRoZXJlCisgICAgaWYgKCRvcCBlcSAnbHMnKSB7CisJbXkgJHBvb2wgPSAkc2NmZy0+ e3Bvb2x9ID8gJHNjZmctPntwb29sfSA6ICdyYmQnOwogCXB1c2ggJGNtZC0+QCosICctcCcsICRw b29sOworCWlmIChkZWZpbmVkKCRzY2ZnLT57bmFtZXNwYWNlfSkpIHsKKwkgICAgcHVzaCBAJGNt ZCwgJy0tbmFtZXNwYWNlJywgJGNmZy0+e25hbWVzcGFjZX07CisJfQogICAgIH0KIAotICAgIGlm IChkZWZpbmVkKG15ICRuYW1lc3BhY2UgPSAkc2NmZy0+e25hbWVzcGFjZX0pKSB7Ci0JIyBzb21l IHN1YmNvbW1hbmRzIHdpbGwgZmFpbCBpZiB0aGUgLS1uYW1lc3BhY2UgcGFyYW1ldGVyIGlzIHBy ZXNlbnQKLQlteSAkbm9fbmFtZXNwYWNlX3BhcmFtZXRlciA9IHsKLQkgICAgdW5tYXAgPT4gMSwK LQl9OwotCXB1c2ggQCRjbWQsICctLW5hbWVzcGFjZScsICIkbmFtZXNwYWNlIiBpZiAhJG5vX25h bWVzcGFjZV9wYXJhbWV0ZXItPnskb3B9OwotICAgIH0KICAgICBwdXNoIEAkY21kLCAnLWMnLCAk Y21kX29wdGlvbi0+e2NlcGhfY29uZn0gaWYgKCRjbWRfb3B0aW9uLT57Y2VwaF9jb25mfSk7CiAg ICAgcHVzaCBAJGNtZCwgJy1tJywgJGNtZF9vcHRpb24tPnttb25faG9zdH0gaWYgKCRjbWRfb3B0 aW9uLT57bW9uX2hvc3R9KTsKICAgICBwdXNoIEAkY21kLCAnLS1hdXRoX3N1cHBvcnRlZCcsICRj bWRfb3B0aW9uLT57YXV0aF9zdXBwb3J0ZWR9IGlmICgkY21kX29wdGlvbi0+e2F1dGhfc3VwcG9y dGVkfSk7CkBAIC0xNDQsOSArMTM5LDExIEBAIG15ICRrcmJkX2ZlYXR1cmVfdXBkYXRlID0gc3Vi IHsKICAgICBteSAkdG9fZGlzYWJsZSA9IGpvaW4oJywnLCBncmVwIHsgICRhY3RpdmVfZmVhdHVy ZXMtPnskX30gfSBAZGlzYWJsZSk7CiAgICAgbXkgJHRvX2VuYWJsZSAgPSBqb2luKCcsJywgZ3Jl cCB7ICEkYWN0aXZlX2ZlYXR1cmVzLT57JF99IH0gQGVuYWJsZSApOwogCisgICAgbXkgJGltYWdl X3NwZWMgPSBnZXRfcmJkX3BhdGgoJHNjZmcsICRuYW1lKTsKKwogICAgIGlmICgkdG9fZGlzYWJs ZSkgewogCXByaW50ICJkaXNhYmxlIFJCRCBpbWFnZSBmZWF0dXJlcyB0aGlzIGtlcm5lbCBSQkQg ZHJpdmVycyBpcyBub3QgY29tcGF0aWJsZSB3aXRoOiAkdG9fZGlzYWJsZVxuIjsKLQlteSAkY21k ID0gJHJiZF9jbWQtPigkc2NmZywgJHN0b3JlaWQsICdmZWF0dXJlJywgJ2Rpc2FibGUnLCAkbmFt ZSwgJHRvX2Rpc2FibGUpOworCW15ICRjbWQgPSAkcmJkX2NtZC0+KCRzY2ZnLCAkc3RvcmVpZCwg J2ZlYXR1cmUnLCAnZGlzYWJsZScsICRpbWFnZV9zcGVjLCAkdG9fZGlzYWJsZSk7CiAJcnVuX3Ji ZF9jb21tYW5kKAogCSAgICAkY21kLAogCSAgICBlcnJtc2cgPT4gImNvdWxkIG5vdCBkaXNhYmxl IGtyYmQtaW5jb21wYXRpYmxlIGltYWdlIGZlYXR1cmVzICckdG9fZGlzYWJsZScgZm9yIHJiZCBp bWFnZTogJG5hbWUiLApAQCAtMTU1LDcgKzE1Miw3IEBAIG15ICRrcmJkX2ZlYXR1cmVfdXBkYXRl ID0gc3ViIHsKICAgICBpZiAoJHRvX2VuYWJsZSkgewogCXByaW50ICJlbmFibGUgUkJEIGltYWdl IGZlYXR1cmVzIHRoaXMga2VybmVsIFJCRCBkcml2ZXJzIHN1cHBvcnRzOiAkdG9fZW5hYmxlXG4i OwogCWV2YWwgewotCSAgICBteSAkY21kID0gJHJiZF9jbWQtPigkc2NmZywgJHN0b3JlaWQsICdm ZWF0dXJlJywgJ2VuYWJsZScsICRuYW1lLCAkdG9fZW5hYmxlKTsKKwkgICAgbXkgJGNtZCA9ICRy YmRfY21kLT4oJHNjZmcsICRzdG9yZWlkLCAnZmVhdHVyZScsICdlbmFibGUnLCAkaW1hZ2Vfc3Bl YywgJHRvX2VuYWJsZSk7CiAJICAgIHJ1bl9yYmRfY29tbWFuZCgKIAkJJGNtZCwKIAkJZXJybXNn ID0+ICJjb3VsZCBub3QgZW5hYmxlIGtyYmQtY29tcGF0aWJsZSBpbWFnZSBmZWF0dXJlcyAnJHRv X2VuYWJsZScgZm9yIHJiZCBpbWFnZTogJG5hbWUiLApAQCAtMjM0LDkgKzIzMSw5IEBAIHN1YiBy YmRfbHMgewogfQogCiBzdWIgcmJkX2xzX3NuYXAgewotICAgIG15ICgkc2NmZywgJHN0b3JlaWQs ICRuYW1lKSA9IEBfOworICAgIG15ICgkc2NmZywgJHN0b3JlaWQsICRpbWFnZV9zcGVjKSA9IEBf OwogCi0gICAgbXkgJGNtZCA9ICRyYmRfY21kLT4oJHNjZmcsICRzdG9yZWlkLCAnc25hcCcsICds cycsICRuYW1lLCAnLS1mb3JtYXQnLCAnanNvbicpOworICAgIG15ICRjbWQgPSAkcmJkX2NtZC0+ KCRzY2ZnLCAkc3RvcmVpZCwgJ3NuYXAnLCAnbHMnLCAkaW1hZ2Vfc3BlYywgJy0tZm9ybWF0Jywg J2pzb24nKTsKIAogICAgIG15ICRyYXcgPSAnJzsKICAgICBydW5fcmJkX2NvbW1hbmQoJGNtZCwg ZXJybXNnID0+ICJyYmQgZXJyb3IiLCBlcnJmdW5jID0+IHN1YiB7fSwgb3V0ZnVuYyA9PiBzdWIg eyAkcmF3IC49IHNoaWZ0OyB9KTsKQEAgLTI0NCw5ICsyNDEsOSBAQCBzdWIgcmJkX2xzX3NuYXAg ewogICAgIG15ICRsaXN0OwogICAgIGlmICgkcmF3ID1+IG0vXihcWy4qXF0pJC9zKSB7ICMgdW50 YWludAogCSRsaXN0ID0gZXZhbCB7IEpTT046OmRlY29kZV9qc29uKCQxKSB9OwotCWRpZSAiaW52 YWxpZCBKU09OIG91dHB1dCBmcm9tICdyYmQgc25hcCBscyAkbmFtZSc6ICRAXG4iIGlmICRAOwor CWRpZSAiaW52YWxpZCBKU09OIG91dHB1dCBmcm9tICdyYmQgc25hcCBscyAkaW1hZ2Vfc3BlYyc6 ICRAXG4iIGlmICRAOwogICAgIH0gZWxzZSB7Ci0JZGllICJnb3QgdW5leHBlY3RlZCBkYXRhIGZy b20gJ3JiZCBzbmFwIGxzICRuYW1lJzogJyRyYXcnXG4iOworCWRpZSAiZ290IHVuZXhwZWN0ZWQg ZGF0YSBmcm9tICdyYmQgc25hcCBscyAkaW1hZ2Vfc3BlYyc6ICckcmF3J1xuIjsKICAgICB9CiAK ICAgICAkbGlzdCA9IFtdIGlmICFkZWZpbmVkKCRsaXN0KTsKQEAgLTI2OSwxMSArMjY2LDkgQEAg c3ViIHJiZF92b2x1bWVfaW5mbyB7CiAgICAgbXkgKCRzY2ZnLCAkc3RvcmVpZCwgJHZvbG5hbWUs ICRzbmFwKSA9IEBfOwogCiAgICAgbXkgJGNtZCA9IHVuZGVmOworICAgIG15ICRzcGVjID0gZ2V0 X3JiZF9wYXRoKCRzY2ZnLCAkdm9sbmFtZSwgJHNuYXApOwogCi0gICAgbXkgQG9wdGlvbnMgPSAo J2luZm8nLCAkdm9sbmFtZSwgJy0tZm9ybWF0JywgJ2pzb24nKTsKLSAgICBpZiAoJHNuYXApIHsK LQlwdXNoIEBvcHRpb25zLCAnLS1zbmFwJywgJHNuYXA7Ci0gICAgfQorICAgIG15IEBvcHRpb25z ID0gKCdpbmZvJywgJHNwZWMsICctLWZvcm1hdCcsICdqc29uJyk7CiAKICAgICAkY21kID0gJHJi ZF9jbWQtPigkc2NmZywgJHN0b3JlaWQsIEBvcHRpb25zKTsKIApAQCAtMzAwLDcgKzI5NSw4IEBA IHN1YiByYmRfdm9sdW1lX2luZm8gewogc3ViIHJiZF92b2x1bWVfZHUgewogICAgIG15ICgkc2Nm ZywgJHN0b3JlaWQsICR2b2xuYW1lKSA9IEBfOwogCi0gICAgbXkgQG9wdGlvbnMgPSAoJ2R1Jywg JHZvbG5hbWUsICctLWZvcm1hdCcsICdqc29uJyk7CisgICAgbXkgJHNwZWMgPSBnZXRfcmJkX3Bh dGgoJHNjZmcsICR2b2xuYW1lKTsKKyAgICBteSBAb3B0aW9ucyA9ICgnZHUnLCAkc3BlYywgJy0t Zm9ybWF0JywgJ2pzb24nKTsKICAgICBteSAkY21kID0gJHJiZF9jbWQtPigkc2NmZywgJHN0b3Jl aWQsIEBvcHRpb25zKTsKIAogICAgIG15ICRyYXcgPSAnJzsKQEAgLTQ3MSwxNCArNDY3LDEzIEBA IHN1YiBwYXRoIHsKIAogICAgIG15ICRjbWRfb3B0aW9uID0gUFZFOjpDZXBoQ29uZmlnOjpjZXBo X2Nvbm5lY3Rfb3B0aW9uKCRzY2ZnLCAkc3RvcmVpZCk7CiAgICAgbXkgKCR2dHlwZSwgJG5hbWUs ICR2bWlkKSA9ICRjbGFzcy0+cGFyc2Vfdm9sbmFtZSgkdm9sbmFtZSk7Ci0gICAgJG5hbWUgLj0g J0AnLiRzbmFwbmFtZSBpZiAkc25hcG5hbWU7CiAKICAgICBpZiAoJHNjZmctPntrcmJkfSkgewot CW15ICRyYmRfZGV2X3BhdGggPSBnZXRfcmJkX2Rldl9wYXRoKCRzY2ZnLCAkc3RvcmVpZCwgJG5h bWUpOworCW15ICRyYmRfZGV2X3BhdGggPSBnZXRfcmJkX2Rldl9wYXRoKCRzY2ZnLCAkc3RvcmVp ZCwgJG5hbWUsICRzbmFwbmFtZSk7CiAJcmV0dXJuICgkcmJkX2Rldl9wYXRoLCAkdm1pZCwgJHZ0 eXBlKTsKICAgICB9CiAKLSAgICBteSAkcmJkX3BhdGggPSBnZXRfcmJkX3BhdGgoJHNjZmcsICRu YW1lKTsKKyAgICBteSAkcmJkX3BhdGggPSBnZXRfcmJkX3BhdGgoJHNjZmcsICRuYW1lLCAkc25h cG5hbWUpOwogICAgIG15ICRwYXRoID0gInJiZDoke3JiZF9wYXRofSI7CiAKICAgICAkcGF0aCAu PSAiOmNvbmY9JGNtZF9vcHRpb24tPntjZXBoX2NvbmZ9IiBpZiAkY21kX29wdGlvbi0+e2NlcGhf Y29uZn07CkBAIC01NjAsOCArNTU1LDkgQEAgc3ViIGNyZWF0ZV9iYXNlIHsKICAgICBteSAodW5k ZWYsIHVuZGVmLCB1bmRlZiwgJHByb3RlY3RlZCkgPSByYmRfdm9sdW1lX2luZm8oJHNjZmcsICRz dG9yZWlkLCAkbmV3bmFtZSwgJHNuYXApOwogCiAgICAgaWYgKCEkcHJvdGVjdGVkKXsKLQlteSAk Y21kID0gJHJiZF9jbWQtPigkc2NmZywgJHN0b3JlaWQsICdzbmFwJywgJ3Byb3RlY3QnLCAkbmV3 bmFtZSwgJy0tc25hcCcsICRzbmFwKTsKLQlydW5fcmJkX2NvbW1hbmQoJGNtZCwgZXJybXNnID0+ ICJyYmQgcHJvdGVjdCAkbmV3bmFtZSBzbmFwICckc25hcCcgZXJyb3IiKTsKKwlteSAkc25hcF9z cGVjID0gZ2V0X3JiZF9wYXRoKCRzY2ZnLCAkbmV3bmFtZSwgJHNuYXApOworCW15ICRjbWQgPSAk cmJkX2NtZC0+KCRzY2ZnLCAkc3RvcmVpZCwgJ3NuYXAnLCAncHJvdGVjdCcsICRzbmFwX3NwZWMp OworCXJ1bl9yYmRfY29tbWFuZCgkY21kLCBlcnJtc2cgPT4gInJiZCBwcm90ZWN0ICckc25hcF9z cGVjJyBlcnJvciIpOwogICAgIH0KIAogICAgIHJldHVybiAkbmV3dm9sbmFtZTsKQEAgLTU4OCw4 ICs1ODQsOSBAQCBzdWIgY2xvbmVfaW1hZ2UgewogCW15ICh1bmRlZiwgdW5kZWYsIHVuZGVmLCAk cHJvdGVjdGVkKSA9IHJiZF92b2x1bWVfaW5mbygkc2NmZywgJHN0b3JlaWQsICR2b2xuYW1lLCAk c25hcG5hbWUpOwogCiAJaWYgKCEkcHJvdGVjdGVkKSB7Ci0JICAgIG15ICRjbWQgPSAkcmJkX2Nt ZC0+KCRzY2ZnLCAkc3RvcmVpZCwgJ3NuYXAnLCAncHJvdGVjdCcsICR2b2xuYW1lLCAnLS1zbmFw JywgJHNuYXBuYW1lKTsKLQkgICAgcnVuX3JiZF9jb21tYW5kKCRjbWQsIGVycm1zZyA9PiAicmJk IHByb3RlY3QgJHZvbG5hbWUgc25hcCAkc25hcG5hbWUgZXJyb3IiKTsKKwkgICAgbXkgJHNuYXBf c3BlYyA9IGdldF9yYmRfcGF0aCgkc2NmZywgJHZvbG5hbWUsICRzbmFwbmFtZSk7CisJICAgIG15 ICRjbWQgPSAkcmJkX2NtZC0+KCRzY2ZnLCAkc3RvcmVpZCwgJ3NuYXAnLCAncHJvdGVjdCcsICRz bmFwX3NwZWMpOworCSAgICBydW5fcmJkX2NvbW1hbmQoJGNtZCwgZXJybXNnID0+ICJyYmQgcHJv dGVjdCAnJHNuYXBfc3BlYycgZXJyb3IiKTsKIAl9CiAgICAgfQogCkBAIC01OTcsOCArNTk0LDcg QEAgc3ViIGNsb25lX2ltYWdlIHsKICAgICAkbmV3dm9sID0gJG5hbWUgaWYgbGVuZ3RoKCRzbmFw bmFtZSk7CiAKICAgICBteSBAb3B0aW9ucyA9ICgKLQlnZXRfcmJkX3BhdGgoJHNjZmcsICRiYXNl bmFtZSksCi0JJy0tc25hcCcsICRzbmFwLAorCWdldF9yYmRfcGF0aCgkc2NmZywgJGJhc2VuYW1l LCAkc25hcCksCiAgICAgKTsKICAgICBwdXNoIEBvcHRpb25zLCAoJy0tZGF0YS1wb29sJywgJHNj ZmctPnsnZGF0YS1wb29sJ30pIGlmICRzY2ZnLT57J2RhdGEtcG9vbCd9OwogCkBAIC02MjMsNyAr NjE5LDcgQEAgc3ViIGFsbG9jX2ltYWdlIHsKICAgICApOwogICAgIHB1c2ggQG9wdGlvbnMsICgn LS1kYXRhLXBvb2wnLCAkc2NmZy0+eydkYXRhLXBvb2wnfSkgaWYgJHNjZmctPnsnZGF0YS1wb29s J307CiAKLSAgICBteSAkY21kID0gJHJiZF9jbWQtPigkc2NmZywgJHN0b3JlaWQsICdjcmVhdGUn LCBAb3B0aW9ucywgJG5hbWUpOworICAgIG15ICRjbWQgPSAkcmJkX2NtZC0+KCRzY2ZnLCAkc3Rv cmVpZCwgJ2NyZWF0ZScsIEBvcHRpb25zLCBnZXRfcmJkX3BhdGgoJHNjZmcsICRuYW1lKSk7CiAg ICAgcnVuX3JiZF9jb21tYW5kKCRjbWQsIGVycm1zZyA9PiAicmJkIGNyZWF0ZSAnJG5hbWUnIGVy cm9yIik7CiAKICAgICByZXR1cm4gJG5hbWU7CkBAIC02MzUsMjIgKzYzMSwyMyBAQCBzdWIgZnJl ZV9pbWFnZSB7CiAgICAgbXkgKCR2dHlwZSwgJG5hbWUsICR2bWlkLCB1bmRlZiwgdW5kZWYsIHVu ZGVmKSA9CiAJJGNsYXNzLT5wYXJzZV92b2xuYW1lKCR2b2xuYW1lKTsKIAotCi0gICAgbXkgJHNu YXBzID0gcmJkX2xzX3NuYXAoJHNjZmcsICRzdG9yZWlkLCAkbmFtZSk7CisgICAgbXkgJGltYWdl X3NwZWMgPSBnZXRfcmJkX3BhdGgoJHNjZmcsICRuYW1lKTsKKyAgICBteSAkc25hcHMgPSByYmRf bHNfc25hcCgkc2NmZywgJHN0b3JlaWQsICRpbWFnZV9zcGVjKTsKICAgICBmb3JlYWNoIG15ICRz bmFwIChrZXlzICUkc25hcHMpIHsKIAlpZiAoJHNuYXBzLT57JHNuYXB9LT57cHJvdGVjdGVkfSkg ewotCSAgICBteSAkY21kID0gJHJiZF9jbWQtPigkc2NmZywgJHN0b3JlaWQsICdzbmFwJywgJ3Vu cHJvdGVjdCcsICRuYW1lLCAnLS1zbmFwJywgJHNuYXApOwotCSAgICBydW5fcmJkX2NvbW1hbmQo JGNtZCwgZXJybXNnID0+ICJyYmQgdW5wcm90ZWN0ICRuYW1lIHNuYXAgJyRzbmFwJyBlcnJvciIp OworCSAgICBteSAkc25hcF9zcGVjID0gZ2V0X3JiZF9wYXRoKCRzY2ZnLCAkbmFtZSwgJHNuYXAp OworCSAgICBteSAkY21kID0gJHJiZF9jbWQtPigkc2NmZywgJHN0b3JlaWQsICdzbmFwJywgJ3Vu cHJvdGVjdCcsICRzbmFwX3NwZWMpOworCSAgICBydW5fcmJkX2NvbW1hbmQoJGNtZCwgZXJybXNn ID0+ICJyYmQgdW5wcm90ZWN0ICRzbmFwX3NwZWMgZXJyb3IiKTsKIAl9CiAgICAgfQogCiAgICAg JGNsYXNzLT5kZWFjdGl2YXRlX3ZvbHVtZSgkc3RvcmVpZCwgJHNjZmcsICR2b2xuYW1lKTsKIAot ICAgIG15ICRjbWQgPSAkcmJkX2NtZC0+KCRzY2ZnLCAkc3RvcmVpZCwgJ3NuYXAnLCAncHVyZ2Un LCAgJG5hbWUpOwotICAgIHJ1bl9yYmRfY29tbWFuZCgkY21kLCBlcnJtc2cgPT4gInJiZCBzbmFw IHB1cmdlICckbmFtZScgZXJyb3IiKTsKKyAgICBteSAkY21kID0gJHJiZF9jbWQtPigkc2NmZywg JHN0b3JlaWQsICdzbmFwJywgJ3B1cmdlJywgICRpbWFnZV9zcGVjKTsKKyAgICBydW5fcmJkX2Nv bW1hbmQoJGNtZCwgZXJybXNnID0+ICJyYmQgc25hcCBwdXJnZSAnJGltYWdlX3NwZWMnIGVycm9y Iik7CiAKLSAgICAkY21kID0gJHJiZF9jbWQtPigkc2NmZywgJHN0b3JlaWQsICdybScsICRuYW1l KTsKLSAgICBydW5fcmJkX2NvbW1hbmQoJGNtZCwgZXJybXNnID0+ICJyYmQgcm0gJyRuYW1lJyBl cnJvciIpOworICAgICRjbWQgPSAkcmJkX2NtZC0+KCRzY2ZnLCAkc3RvcmVpZCwgJ3JtJywgJGlt YWdlX3NwZWMpOworICAgIHJ1bl9yYmRfY29tbWFuZCgkY21kLCBlcnJtc2cgPT4gInJiZCBybSAn JGltYWdlX3NwZWMnIGVycm9yIik7CiAKICAgICByZXR1cm4gdW5kZWY7CiB9CkBAIC03MjUsMjAg KzcyMiwxOCBAQCBzdWIgZGVhY3RpdmF0ZV9zdG9yYWdlIHsKIHN1YiBtYXBfdm9sdW1lIHsKICAg ICBteSAoJGNsYXNzLCAkc3RvcmVpZCwgJHNjZmcsICR2b2xuYW1lLCAkc25hcG5hbWUpID0gQF87 CiAKLSAgICBteSAoJHZ0eXBlLCAkaW1nX25hbWUsICR2bWlkKSA9ICRjbGFzcy0+cGFyc2Vfdm9s bmFtZSgkdm9sbmFtZSk7CisgICAgbXkgKCR2dHlwZSwgJG5hbWUsICR2bWlkKSA9ICRjbGFzcy0+ cGFyc2Vfdm9sbmFtZSgkdm9sbmFtZSk7CiAKLSAgICBteSAkbmFtZSA9ICRpbWdfbmFtZTsKLSAg ICAkbmFtZSAuPSAnQCcuJHNuYXBuYW1lIGlmICRzbmFwbmFtZTsKLQotICAgIG15ICRrZXJuZWxk ZXYgPSBnZXRfcmJkX2Rldl9wYXRoKCRzY2ZnLCAkc3RvcmVpZCwgJG5hbWUpOworICAgIG15ICRr ZXJuZWxkZXYgPSBnZXRfcmJkX2Rldl9wYXRoKCRzY2ZnLCAkc3RvcmVpZCwgJG5hbWUsICRzbmFw bmFtZSk7CiAKICAgICByZXR1cm4gJGtlcm5lbGRldiBpZiAtYiAka2VybmVsZGV2OyAjIGFscmVh ZHkgbWFwcGVkCiAKICAgICAjIGZlYXR1cmVzIGNhbiBvbmx5IGJlIGVuYWJsZWQvZGlzYWJsZWQg Zm9yIGltYWdlLCBub3QgZm9yIHNuYXBzaG90IQotICAgICRrcmJkX2ZlYXR1cmVfdXBkYXRlLT4o JHNjZmcsICRzdG9yZWlkLCAkaW1nX25hbWUpOworICAgICRrcmJkX2ZlYXR1cmVfdXBkYXRlLT4o JHNjZmcsICRzdG9yZWlkLCAkbmFtZSk7CiAKLSAgICBteSAkY21kID0gJHJiZF9jbWQtPigkc2Nm ZywgJHN0b3JlaWQsICdtYXAnLCAkbmFtZSk7Ci0gICAgcnVuX3JiZF9jb21tYW5kKCRjbWQsIGVy cm1zZyA9PiAiY2FuJ3QgbWFwIHJiZCB2b2x1bWUgJG5hbWUiKTsKKyAgICBteSAkc3BlYyA9IGdl dF9yYmRfcGF0aCgkc2NmZywgJG5hbWUsICRzbmFwbmFtZSk7CisgICAgbXkgJGNtZCA9ICRyYmRf Y21kLT4oJHNjZmcsICRzdG9yZWlkLCAnbWFwJywgJHNwZWMpOworICAgIHJ1bl9yYmRfY29tbWFu ZCgkY21kLCBlcnJtc2cgPT4gImNhbid0IG1hcCByYmQgdm9sdW1lICckc3BlYyciKTsKIAogICAg IHJldHVybiAka2VybmVsZGV2OwogfQpAQCAtNzQ3LDkgKzc0Miw4IEBAIHN1YiB1bm1hcF92b2x1 bWUgewogICAgIG15ICgkY2xhc3MsICRzdG9yZWlkLCAkc2NmZywgJHZvbG5hbWUsICRzbmFwbmFt ZSkgPSBAXzsKIAogICAgIG15ICgkdnR5cGUsICRuYW1lLCAkdm1pZCkgPSAkY2xhc3MtPnBhcnNl X3ZvbG5hbWUoJHZvbG5hbWUpOwotICAgICRuYW1lIC49ICdAJy4kc25hcG5hbWUgaWYgJHNuYXBu YW1lOwogCi0gICAgbXkgJGtlcm5lbGRldiA9IGdldF9yYmRfZGV2X3BhdGgoJHNjZmcsICRzdG9y ZWlkLCAkbmFtZSk7CisgICAgbXkgJGtlcm5lbGRldiA9IGdldF9yYmRfZGV2X3BhdGgoJHNjZmcs ICRzdG9yZWlkLCAkbmFtZSwgJHNuYXBuYW1lKTsKIAogICAgIGlmICgtYiAka2VybmVsZGV2KSB7 CiAJbXkgJGNtZCA9ICRyYmRfY21kLT4oJHNjZmcsICRzdG9yZWlkLCAndW5tYXAnLCAka2VybmVs ZGV2KTsKQEAgLTc5MSw4ICs3ODUsMTAgQEAgc3ViIHZvbHVtZV9yZXNpemUgewogCiAgICAgbXkg KCR2dHlwZSwgJG5hbWUsICR2bWlkKSA9ICRjbGFzcy0+cGFyc2Vfdm9sbmFtZSgkdm9sbmFtZSk7 CiAKLSAgICBteSAkY21kID0gJHJiZF9jbWQtPigkc2NmZywgJHN0b3JlaWQsICdyZXNpemUnLCAn LS1zaXplJywgaW50KGNlaWwoJHNpemUvMTAyNC8xMDI0KSksICRuYW1lKTsKLSAgICBydW5fcmJk X2NvbW1hbmQoJGNtZCwgZXJybXNnID0+ICJyYmQgcmVzaXplICckdm9sbmFtZScgZXJyb3IiKTsK KyAgICBteSAkaW1hZ2Vfc3BlYyA9IGdldF9yYmRfcGF0aCgkc2NmZywgJHZvbG5hbWUpOworICAg ICRzaXplID0gaW50KGNlaWwoJHNpemUvMTAyNC8xMDI0KSk7CisgICAgbXkgJGNtZCA9ICRyYmRf Y21kLT4oJHNjZmcsICRzdG9yZWlkLCAncmVzaXplJywgJy0tc2l6ZScsICRzaXplLCAkaW1hZ2Vf c3BlYyk7CisgICAgcnVuX3JiZF9jb21tYW5kKCRjbWQsIGVycm1zZyA9PiAicmJkIHJlc2l6ZSAn JGltYWdlX3NwZWMnIGVycm9yIik7CiAgICAgcmV0dXJuIHVuZGVmOwogfQogCkBAIC04MDEsOCAr Nzk3LDkgQEAgc3ViIHZvbHVtZV9zbmFwc2hvdCB7CiAKICAgICBteSAoJHZ0eXBlLCAkbmFtZSwg JHZtaWQpID0gJGNsYXNzLT5wYXJzZV92b2xuYW1lKCR2b2xuYW1lKTsKIAotICAgIG15ICRjbWQg PSAkcmJkX2NtZC0+KCRzY2ZnLCAkc3RvcmVpZCwgJ3NuYXAnLCAnY3JlYXRlJywgJy0tc25hcCcs ICRzbmFwLCAkbmFtZSk7Ci0gICAgcnVuX3JiZF9jb21tYW5kKCRjbWQsIGVycm1zZyA9PiAicmJk IHNuYXBzaG90ICckdm9sbmFtZScgZXJyb3IiKTsKKyAgICBteSAkc25hcF9zcGVjID0gZ2V0X3Ji ZF9wYXRoKCRzY2ZnLCAkbmFtZSwgJHNuYXApOworICAgIG15ICRjbWQgPSAkcmJkX2NtZC0+KCRz Y2ZnLCAkc3RvcmVpZCwgJ3NuYXAnLCAnY3JlYXRlJywgJHNuYXBfc3BlYyk7CisgICAgcnVuX3Ji ZF9jb21tYW5kKCRjbWQsIGVycm1zZyA9PiAicmJkIHNuYXBzaG90ICckc25hcF9zcGVjJyBlcnJv ciIpOwogICAgIHJldHVybiB1bmRlZjsKIH0KIApAQCAtODExLDggKzgwOCw5IEBAIHN1YiB2b2x1 bWVfc25hcHNob3Rfcm9sbGJhY2sgewogCiAgICAgbXkgKCR2dHlwZSwgJG5hbWUsICR2bWlkKSA9 ICRjbGFzcy0+cGFyc2Vfdm9sbmFtZSgkdm9sbmFtZSk7CiAKLSAgICBteSAkY21kID0gJHJiZF9j bWQtPigkc2NmZywgJHN0b3JlaWQsICdzbmFwJywgJ3JvbGxiYWNrJywgJy0tc25hcCcsICRzbmFw LCAkbmFtZSk7Ci0gICAgcnVuX3JiZF9jb21tYW5kKCRjbWQsIGVycm1zZyA9PiAicmJkIHNuYXBz aG90ICR2b2xuYW1lIHRvICckc25hcCcgZXJyb3IiKTsKKyAgICBteSAkc25hcF9zcGVjID0gZ2V0 X3JiZF9wYXRoKCRzY2ZnLCAkbmFtZSwgJHNuYXApOworICAgIG15ICRjbWQgPSAkcmJkX2NtZC0+ KCRzY2ZnLCAkc3RvcmVpZCwgJ3NuYXAnLCAncm9sbGJhY2snLCAkc25hcF9zcGVjKTsKKyAgICBy dW5fcmJkX2NvbW1hbmQoJGNtZCwgZXJybXNnID0+ICJyYmQgc25hcHNob3Qgcm9sbGJhY2sgdG8g JyRzbmFwX3NwZWMnIGVycm9yIik7CiB9CiAKIHN1YiB2b2x1bWVfc25hcHNob3RfZGVsZXRlIHsK QEAgLTgyMywxNCArODIxLDE2IEBAIHN1YiB2b2x1bWVfc25hcHNob3RfZGVsZXRlIHsKICAgICBt eSAoJHZ0eXBlLCAkbmFtZSwgJHZtaWQpID0gJGNsYXNzLT5wYXJzZV92b2xuYW1lKCR2b2xuYW1l KTsKIAogICAgIG15ICh1bmRlZiwgdW5kZWYsIHVuZGVmLCAkcHJvdGVjdGVkKSA9IHJiZF92b2x1 bWVfaW5mbygkc2NmZywgJHN0b3JlaWQsICRuYW1lLCAkc25hcCk7CisgICAgbXkgJHNuYXBfc3Bl YyA9IGdldF9yYmRfcGF0aCgkc2NmZywgJHZvbG5hbWUsICRzbmFwKTsKKwogICAgIGlmICgkcHJv dGVjdGVkKXsKLQlteSAkY21kID0gJHJiZF9jbWQtPigkc2NmZywgJHN0b3JlaWQsICdzbmFwJywg J3VucHJvdGVjdCcsICRuYW1lLCAnLS1zbmFwJywgJHNuYXApOwotCXJ1bl9yYmRfY29tbWFuZCgk Y21kLCBlcnJtc2cgPT4gInJiZCB1bnByb3RlY3QgJG5hbWUgc25hcCAnJHNuYXAnIGVycm9yIik7 CisJbXkgJGNtZCA9ICRyYmRfY21kLT4oJHNjZmcsICRzdG9yZWlkLCAnc25hcCcsICd1bnByb3Rl Y3QnLCAkc25hcF9zcGVjKTsKKwlydW5fcmJkX2NvbW1hbmQoJGNtZCwgZXJybXNnID0+ICJyYmQg dW5wcm90ZWN0ICckc25hcF9zcGVjJyBlcnJvciIpOwogICAgIH0KIAotICAgIG15ICRjbWQgPSAk cmJkX2NtZC0+KCRzY2ZnLCAkc3RvcmVpZCwgJ3NuYXAnLCAncm0nLCAnLS1zbmFwJywgJHNuYXAs ICRuYW1lKTsKKyAgICBteSAkY21kID0gJHJiZF9jbWQtPigkc2NmZywgJHN0b3JlaWQsICdzbmFw JywgJ3JtJywgJHNuYXBfc3BlYyk7CiAKLSAgICBydW5fcmJkX2NvbW1hbmQoJGNtZCwgZXJybXNn ID0+ICJyYmQgc25hcHNob3QgJyR2b2xuYW1lJyBlcnJvciIpOworICAgIHJ1bl9yYmRfY29tbWFu ZCgkY21kLCBlcnJtc2cgPT4gInJiZCBzbmFwc2hvdCBkZWxldGUgJyRzbmFwX3NwZWMnIGVycm9y Iik7CiAKICAgICByZXR1cm4gdW5kZWY7CiB9CkBAIC04OTAsNyArODkwLDkgQEAgc3ViIHZvbHVt ZV9leHBvcnQgewogCiAgICAgbXkgKCRzaXplKSA9ICRjbGFzcy0+dm9sdW1lX3NpemVfaW5mbygk c2NmZywgJHN0b3JlaWQsICR2b2xuYW1lKTsKICAgICBQVkU6OlN0b3JhZ2U6OlBsdWdpbjo6d3Jp dGVfY29tbW9uX2hlYWRlcigkZmgsICRzaXplKTsKLSAgICBteSAkY21kID0gJHJiZF9jbWQtPigk c2NmZywgJHN0b3JlaWQsICdleHBvcnQnLCAnLS1leHBvcnQtZm9ybWF0JywgJzEnLCAkdm9sbmFt ZSwgJy0nKTsKKworICAgIG15ICRzbmFwX3NwZWMgPSBnZXRfcmJkX3BhdGgoJHNjZmcsICR2b2xu YW1lLCAkc25hcHNob3QpOworICAgIG15ICRjbWQgPSAkcmJkX2NtZC0+KCRzY2ZnLCAkc3RvcmVp ZCwgJ2V4cG9ydCcsICctLWV4cG9ydC1mb3JtYXQnLCAnMScsICRzbmFwX3NwZWMsICctJyk7CiAg ICAgcnVuX3JiZF9jb21tYW5kKAogCSRjbWQsCiAJZXJybXNnID0+ICdjb3VsZCBub3QgZXhwb3J0 IGltYWdlJywKQEAgLTkzOCw4ICs5NDAsOSBAQCBzdWIgdm9sdW1lX2ltcG9ydCB7CiAgICAgbXkg KCRzaXplKSA9IFBWRTo6U3RvcmFnZTo6UGx1Z2luOjpyZWFkX2NvbW1vbl9oZWFkZXIoJGZoKTsK ICAgICAkc2l6ZSA9IFBWRTo6U3RvcmFnZTo6Q29tbW9uOjphbGlnbl9zaXplX3VwKCRzaXplLCAx MDI0KSAvIDEwMjQ7CiAKKyAgICBteSAkaW1hZ2Vfc3BlYyA9IGdldF9yYmRfcGF0aCgkc2NmZywg JHZvbG5hbWUpOwogICAgIGV2YWwgewotCW15ICRjbWQgPSAkcmJkX2NtZC0+KCRzY2ZnLCAkc3Rv cmVpZCwgJ2ltcG9ydCcsICctLWV4cG9ydC1mb3JtYXQnLCAnMScsICctJywgJHZvbG5hbWUpOwor CW15ICRjbWQgPSAkcmJkX2NtZC0+KCRzY2ZnLCAkc3RvcmVpZCwgJ2ltcG9ydCcsICctLWV4cG9y dC1mb3JtYXQnLCAnMScsICctJywgJGltYWdlX3NwZWMpOwogCXJ1bl9yYmRfY29tbWFuZCgKIAkg ICAgJGNtZCwKIAkgICAgZXJybXNnID0+ICdjb3VsZCBub3QgaW1wb3J0IGltYWdlJywKQEAgLTk3 NiwxMSArOTc5LDEzIEBAIHN1YiByZW5hbWVfdm9sdW1lIHsKICAgICBkaWUgInRhcmdldCB2b2x1 bWUgJyR7dGFyZ2V0X3ZvbG5hbWV9JyBhbHJlYWR5IGV4aXN0c1xuIgogCWlmIHJiZF92b2x1bWVf ZXhpc3RzKCRzY2ZnLCAkc3RvcmVpZCwgJHRhcmdldF92b2xuYW1lKTsKIAotICAgIG15ICRjbWQg PSAkcmJkX2NtZC0+KCRzY2ZnLCAkc3RvcmVpZCwgJ3JlbmFtZScsICRzb3VyY2VfaW1hZ2UsICR0 YXJnZXRfdm9sbmFtZSk7CisgICAgbXkgJHNvdXJjZV9zcGVjID0gZ2V0X3JiZF9wYXRoKCRzY2Zn LCAkc291cmNlX3ZvbG5hbWUpOworICAgIG15ICR0YXJnZXRfc3BlYyA9IGdldF9yYmRfcGF0aCgk c2NmZywgJHRhcmdldF92b2xuYW1lKTsKKyAgICBteSAkY21kID0gJHJiZF9jbWQtPigkc2NmZywg JHN0b3JlaWQsICdyZW5hbWUnLCAkc291cmNlX3NwZWMsICR0YXJnZXRfc3BlYyk7CiAKICAgICBy dW5fcmJkX2NvbW1hbmQoCiAJJGNtZCwKLQllcnJtc2cgPT4gImNvdWxkIG5vdCByZW5hbWUgaW1h Z2UgJyR7c291cmNlX2ltYWdlfScgdG8gJyR7dGFyZ2V0X3ZvbG5hbWV9JyIsCisJZXJybXNnID0+ ICJjb3VsZCBub3QgcmVuYW1lIGltYWdlICcke3NvdXJjZV9zcGVjfScgdG8gJyR7dGFyZ2V0X3Nw ZWN9JyIsCiAgICAgKTsKIAogICAgIGV2YWwgeyAkY2xhc3MtPnVubWFwX3ZvbHVtZSgkc3RvcmVp ZCwgJHNjZmcsICRzb3VyY2Vfdm9sbmFtZSk7IH07Ci0tIAoyLjM5LjUKCgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KcHZlLWRldmVsIG1haWxpbmcgbGlz dApwdmUtZGV2ZWxAbGlzdHMucHJveG1veC5jb20KaHR0cHM6Ly9saXN0cy5wcm94bW94LmNvbS9j Z2ktYmluL21haWxtYW4vbGlzdGluZm8vcHZlLWRldmVsCg==