Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wTnRJ-000l5J-05 for pgsql-hackers@arkaria.postgresql.org; Sun, 31 May 2026 21:11:22 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wTnRG-0081lD-0x for pgsql-hackers@arkaria.postgresql.org; Sun, 31 May 2026 21:11:18 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wTnRF-0081l5-2Y for pgsql-hackers@lists.postgresql.org; Sun, 31 May 2026 21:11:18 +0000 Received: from mail-106116.protonmail.ch ([79.135.106.116]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1wTnRD-00000000XRY-0hOn for pgsql-hackers@lists.postgresql.org; Sun, 31 May 2026 21:11:17 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=scottray.io; s=protonmail; t=1780261873; x=1780521073; bh=BCqvDWLVUzsK/QB2qWM95I8WwQoG6GkuIJSUTXTsA24=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=UhfRxRNEAhTZTsMi3dAkk1ZCb1BhrlMmJ7sGpWaYohnXsoOT8dmDhCfscG5xJhHpx MtpucnYIViRcNkt4FRlmhkS1JqSuKvRBbW4JcQmhpJQFrG7hjqLVDc1XMmuICeIiqN ZWqyaWNSP/gSMW+Yjt53iV14hloP9wwOjW8I/pzXIySp2td+3SWVvUfyhCXNf/lAK4 mLJ7IKAYutAHtpvsxpAUtLmMWnHVREubkko0aiPebOs5XN2xmPGepP1K7LPQ6LtsG0 4yXf4Z0LFeBTr/rIQo1QhQ8blBFIc1HjpbchGFMgJjgoSFCR263SO8VeQvXF5OueqS A/E7VcmGpGELw== Date: Sun, 31 May 2026 21:11:07 +0000 To: JoongHyuk Shin From: Scott Ray Cc: Fujii Masao , Michael Paquier , pgsql-hackers@lists.postgresql.org Subject: Re: [PATCH] Don't call ereport(ERROR) from recovery target GUC assign hooks Message-ID: In-Reply-To: References: Feedback-ID: 189710061:user:proton X-Pm-Message-ID: 8ea698d1a66ef1fd6e4ffb1a9431e6fa263fd93a MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha512; boundary="------b0f83de8a11fe77178bc425095a95f5b651ad8d774588577b006f1d162e83ca1"; charset=utf-8 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------b0f83de8a11fe77178bc425095a95f5b651ad8d774588577b006f1d162e83ca1 Content-Type: multipart/mixed;boundary=---------------------a968328b26e0c0f3a1875aede36ac154 -----------------------a968328b26e0c0f3a1875aede36ac154 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain;charset=utf-8 Thanks for the patch. I've attached v1-0001 (atop v4) addressing the UX and test-coverage items below. Happy to rework or fold in however you prefer. 1. There's a configuration trap in master and in this branch that could be prevented using something very similar to CheckRecoveryTargetConflicts to check pending GUCs: psql -c "ALTER SYSTEM SET recovery_target_xid TO '700'" psql -c "ALTER SYSTEM SET recovery_target_time TO '2026-01-01 00:00:00= '" pg_ctl reload The log shows: LOG: received SIGHUP, reloading configuration files LOG: parameter "recovery_target_xid" cannot be changed without restar= ting the server LOG: parameter "recovery_target_time" cannot be changed without resta= rting the server LOG: configuration file "postgresql.auto.conf" contains errors; unaff= ected changes were applied pg_settings shows: postgres=3D# SELECT name, setting, pending_restart FROM pg_settings WHERE name LIKE 'recovery_target%' AND pending_restart; name | setting | pending_restart ---------------------+---------+----------------- recovery_target_time | | t recovery_target_xid | | t The db runs fine until the next restart, maybe hours later: FATAL: multiple recovery targets specified DETAIL: At most one of "recovery_target", "recovery_target_lsn", "recovery_target_name", "recovery_target_time", "recovery_target_xid" can be set. Is it worth a follow-up to report the conflict early and loud? 2. There's an opportunity to provide a better UX by reporting which flags were set and what the values were, so that the user doesn't have to search config files or other logs to find this info. For instance, in the postgresql.auto.conf scenario above, instead of: DETAIL: At most one of "recovery_target", "recovery_target_lsn", "recovery_target_name", "recovery_target_time", "recovery_target_xid" can be set. The operator could see: DETAIL: The following recovery target parameters are set: "recovery_target_time" =3D "2026-01-01 00:00:00", "recovery_target_xid" =3D "700". HINT: At most one of "recovery_target", "recovery_target_lsn", "recovery_target_name", "recovery_target_time", "recovery_target_xid" can be set. 3. 003_recovery_targets.pl:339 currently tests recovery_target_xid's cleared-then-set behavior. The patch adds the same coverage for the other four recovery_target_* GUCs. -- Scott Ray -----------------------a968328b26e0c0f3a1875aede36ac154 Content-Type: application/octet-stream; filename="v1-0001-Report-set-parameters-on-recovery_target-conflict.patch"; name="v1-0001-Report-set-parameters-on-recovery_target-conflict.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v1-0001-Report-set-parameters-on-recovery_target-conflict.patch"; name="v1-0001-Report-set-parameters-on-recovery_target-conflict.patch" RnJvbSBjNjEyODRjODI0NDI5Nzc4YWQ4ZjEyM2UyMjg2MjkzMWQ0MWEyYTZkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTY290dCBSYXkgPHNjb3R0QHNjb3R0cmF5LmlvPgpEYXRlOiBT dW4sIDMxIE1heSAyMDI2IDEzOjEyOjI5IC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2MV0gUmVwb3J0 IHNldCBwYXJhbWV0ZXJzIG9uIHJlY292ZXJ5X3RhcmdldCBjb25mbGljdDsgZXhwYW5kCiB0ZXN0 cwoKdjQgb2YgIkRvbid0IGNhbGwgZXJlcG9ydChFUlJPUikgZnJvbSByZWNvdmVyeSB0YXJnZXQg R1VDIGFzc2lnbgpob29rcyIgcHJvZHVjZXMgYSBGQVRBTCB3aXRoIGFuIGVycmRldGFpbCB0aGF0 IGxpc3RzIGFsbCBmaXZlCnJlY292ZXJ5X3RhcmdldF8qIEdVQ3MgcmVnYXJkbGVzcyBvZiB3aGlj aCB0aGUgb3BlcmF0b3IgYWN0dWFsbHkKc2V0LCBhbmQgZXhlcmNpc2VzIG9ubHkgcmVjb3Zlcnlf dGFyZ2V0X3hpZCBpbiB0aGUgY2xlYXJlZC10aGVuLXNldApkaXJlY3Rpb24uCgpUaGlzIHBhdGNo IG1ha2VzIENoZWNrUmVjb3ZlcnlUYXJnZXRDb25mbGljdHMoKSByZXBvcnQgdGhlIG5hbWVzCmFu ZCB2YWx1ZXMgb2YgdGhlIEdVQ3MgdGhhdCBhcmUgYWN0dWFsbHkgbm9uLWVtcHR5IGluIGVycmRl dGFpbCwKbW92aW5nIHRoZSAiYXQgbW9zdCBvbmUgb2YgW2xpc3RdIiBlbnVtZXJhdGlvbiB0byBl cnJoaW50LiAgVGhlCmZpdmUgaGFuZC13cml0dGVuIEdldENvbmZpZ09wdGlvbigpIGNhbGxzIGNv bGxhcHNlIGludG8gYSBsb29wIG92ZXIKYSBzdGF0aWMgdGFyZ2V0X25hbWVzW10gYXJyYXksIHNv IGFkZGluZyBhIHNpeHRoIHJlY292ZXJ5X3RhcmdldF8qCkdVQyByZXF1aXJlcyBvbmx5IHVwZGF0 aW5nIHRoZSBhcnJheTsgYm90aCBlcnJvciBtZXNzYWdlcyBhcmUKZGVyaXZlZCBmcm9tIGl0LgoK VGhlIFRBUCB0ZXN0IGdhaW5zIGZvdXIgY2xlYXJlZC10aGVuLXNldCBjYXNlcyBjb3ZlcmluZyB0 aW1lLCBuYW1lLApsc24sIGFuZCB0aGUgYmFyZSByZWNvdmVyeV90YXJnZXQsIG1pcnJvcmluZyB0 aGUgZXhpc3RpbmcgeGlkIGNhc2UuCkEgbmV3IGxpa2UoKSBhc3NlcnRpb24gdmVyaWZpZXMgdGhh dCB0aGUgZXJyZGV0YWlsIG5hbWVzIHdoaWNoIEdVQ3MKYXJlIHNldCBhbmQgdGhlaXIgdmFsdWVz LgoKQXBwbGllcyBhdG9wIHY0LgoKRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQUNT ZGpmUFVhNFV2S2pBRGdPRVJYb3hOWW1DZzJtcXFpcUtraUprNm1YNkU0cWdWRndAbWFpbC5nbWFp bC5jb20KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVjb3ZlcnkuYyAgIHwg NjEgKysrKysrKysrKysrLS0tLS0tLS0tCiBzcmMvdGVzdC9yZWNvdmVyeS90LzAwM19yZWNvdmVy eV90YXJnZXRzLnBsIHwgNDAgKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgNzYgaW5z ZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94 bG9ncmVjb3ZlcnkuYwppbmRleCAxMjUzYmVkMTA1OC4uZTQ4ZTIxNjMxYjIgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jCisrKyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jCkBAIC0xMTY3LDQxICsxMTY3LDUyIEBA IHZhbGlkYXRlUmVjb3ZlcnlQYXJhbWV0ZXJzKHZvaWQpCiAgKiBhc3NpZ24gaG9va3MgbXVzdCBu ZXZlciBmYWlsLiAgTW92aW5nIHRoZSBjaGVjayBoZXJlIGtlZXBzIHRoZSBhc3NpZ24gaG9va3MK ICAqIGNvbnRyYWN0LWNvbXBsaWFudC4KICAqCi0gKiBJZiBhIGZ1dHVyZSBwYXRjaCBhZGRzIGEg c2l4dGggcmVjb3ZlcnlfdGFyZ2V0XyogR1VDLCBib3RoIHRoaXMgbGlzdCBhbmQKLSAqIHRoZSBl cnJkZXRhaWwgYmVsb3cgbXVzdCBiZSB1cGRhdGVkLgorICogSWYgYSBmdXR1cmUgcGF0Y2ggYWRk cyBhIHNpeHRoIHJlY292ZXJ5X3RhcmdldF8qIEdVQywgYWRkIGl0cyBuYW1lIHRvCisgKiB0YXJn ZXRfbmFtZXMgYmVsb3c7IGJvdGggZXJyb3IgbWVzc2FnZXMgYXJlIGRlcml2ZWQgZnJvbSB0aGF0 IGFycmF5LgogICovCiBzdGF0aWMgdm9pZAogQ2hlY2tSZWNvdmVyeVRhcmdldENvbmZsaWN0cyh2 b2lkKQogeworCXN0YXRpYyBjb25zdCBjaGFyICpjb25zdCB0YXJnZXRfbmFtZXNbXSA9IHsKKwkJ InJlY292ZXJ5X3RhcmdldCIsCisJCSJyZWNvdmVyeV90YXJnZXRfbHNuIiwKKwkJInJlY292ZXJ5 X3RhcmdldF9uYW1lIiwKKwkJInJlY292ZXJ5X3RhcmdldF90aW1lIiwKKwkJInJlY292ZXJ5X3Rh cmdldF94aWQiLAorCX07CisJU3RyaW5nSW5mb0RhdGEgc2V0X3RhcmdldHM7CisJU3RyaW5nSW5m b0RhdGEgYWxsX3RhcmdldHM7CiAJaW50CQkJbnRhcmdldHMgPSAwOwotCWNvbnN0IGNoYXIgKnZh bDsKLQotCS8qIG1pc3Npbmdfb2s9ZmFsc2UgZ3VhcmFudGVlcyB2YWwgaXMgbm9uLU5VTEwuICov Ci0JdmFsID0gR2V0Q29uZmlnT3B0aW9uKCJyZWNvdmVyeV90YXJnZXQiLCBmYWxzZSwgZmFsc2Up OwotCWlmICh2YWxbMF0gIT0gJ1wwJykKLQkJbnRhcmdldHMrKzsKLQl2YWwgPSBHZXRDb25maWdP cHRpb24oInJlY292ZXJ5X3RhcmdldF9sc24iLCBmYWxzZSwgZmFsc2UpOwotCWlmICh2YWxbMF0g IT0gJ1wwJykKLQkJbnRhcmdldHMrKzsKLQl2YWwgPSBHZXRDb25maWdPcHRpb24oInJlY292ZXJ5 X3RhcmdldF9uYW1lIiwgZmFsc2UsIGZhbHNlKTsKLQlpZiAodmFsWzBdICE9ICdcMCcpCi0JCW50 YXJnZXRzKys7Ci0JdmFsID0gR2V0Q29uZmlnT3B0aW9uKCJyZWNvdmVyeV90YXJnZXRfdGltZSIs IGZhbHNlLCBmYWxzZSk7Ci0JaWYgKHZhbFswXSAhPSAnXDAnKQotCQludGFyZ2V0cysrOwotCXZh bCA9IEdldENvbmZpZ09wdGlvbigicmVjb3ZlcnlfdGFyZ2V0X3hpZCIsIGZhbHNlLCBmYWxzZSk7 Ci0JaWYgKHZhbFswXSAhPSAnXDAnKQotCQludGFyZ2V0cysrOworCisJaW5pdFN0cmluZ0luZm8o JnNldF90YXJnZXRzKTsKKwlpbml0U3RyaW5nSW5mbygmYWxsX3RhcmdldHMpOworCisJZm9yIChp bnQgaSA9IDA7IGkgPCBsZW5ndGhvZih0YXJnZXRfbmFtZXMpOyBpKyspCisJeworCQkvKiBtaXNz aW5nX29rPWZhbHNlIGd1YXJhbnRlZXMgdmFsIGlzIG5vbi1OVUxMLiAqLworCQljb25zdCBjaGFy ICp2YWwgPSBHZXRDb25maWdPcHRpb24odGFyZ2V0X25hbWVzW2ldLCBmYWxzZSwgZmFsc2UpOwor CisJCWlmIChpID4gMCkKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmFsbF90YXJnZXRzLCAi LCAiKTsKKwkJYXBwZW5kU3RyaW5nSW5mbygmYWxsX3RhcmdldHMsICJcIiVzXCIiLCB0YXJnZXRf bmFtZXNbaV0pOworCisJCWlmICh2YWxbMF0gIT0gJ1wwJykKKwkJeworCQkJaWYgKG50YXJnZXRz ID4gMCkKKwkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZzZXRfdGFyZ2V0cywgIiwgIik7CisJ CQlhcHBlbmRTdHJpbmdJbmZvKCZzZXRfdGFyZ2V0cywgIlwiJXNcIiA9IFwiJXNcIiIsCisJCQkJ CQkJIHRhcmdldF9uYW1lc1tpXSwgdmFsKTsKKwkJCW50YXJnZXRzKys7CisJCX0KKwl9CiAKIAlp ZiAobnRhcmdldHMgPiAxKQogCQllcmVwb3J0KEZBVEFMLAogCQkJCShlcnJjb2RlKEVSUkNPREVf SU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAogCQkJCSBlcnJtc2coIm11bHRpcGxlIHJlY292ZXJ5 IHRhcmdldHMgc3BlY2lmaWVkIiksCi0JCQkJIGVycmRldGFpbCgiQXQgbW9zdCBvbmUgb2YgXCJy ZWNvdmVyeV90YXJnZXRcIiwgIgotCQkJCQkJICAgIlwicmVjb3ZlcnlfdGFyZ2V0X2xzblwiLCAi Ci0JCQkJCQkgICAiXCJyZWNvdmVyeV90YXJnZXRfbmFtZVwiLCAiCi0JCQkJCQkgICAiXCJyZWNv dmVyeV90YXJnZXRfdGltZVwiLCAiCi0JCQkJCQkgICAiXCJyZWNvdmVyeV90YXJnZXRfeGlkXCIg Y2FuIGJlIHNldC4iKSkpOworCQkJCSBlcnJkZXRhaWwoIlRoZSBmb2xsb3dpbmcgcmVjb3Zlcnkg dGFyZ2V0IHBhcmFtZXRlcnMgYXJlIHNldDogJXMuIiwKKwkJCQkJCSAgIHNldF90YXJnZXRzLmRh dGEpLAorCQkJCSBlcnJoaW50KCJBdCBtb3N0IG9uZSBvZiAlcyBjYW4gYmUgc2V0LiIsIGFsbF90 YXJnZXRzLmRhdGEpKSk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNvdmVyeS90 LzAwM19yZWNvdmVyeV90YXJnZXRzLnBsIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMDNfcmVjb3Zl cnlfdGFyZ2V0cy5wbAppbmRleCA1OTc5NjYzYjBhYi4uM2U2OGMwMTk2OGIgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlY292ZXJ5L3QvMDAzX3JlY292ZXJ5X3RhcmdldHMucGwKKysrIGIvc3JjL3Rl c3QvcmVjb3ZlcnkvdC8wMDNfcmVjb3ZlcnlfdGFyZ2V0cy5wbApAQCAtMjgyLDYgKzI4MiwxNCBA QCBsaWtlKAogCXFyL211bHRpcGxlIHJlY292ZXJ5IHRhcmdldHMgc3BlY2lmaWVkLywKIAknZXhw ZWN0ZWQgZXJyb3IgbWVzc2FnZSBsb2dnZWQgd2l0aG91dCByZWNvdmVyeS5zaWduYWwnKTsKIAor IyBPcmRlcmluZyBpbiB0aGUgZXJyZGV0YWlsIGZvbGxvd3MgdGFyZ2V0X25hbWVzW10gaW4gQ2hl Y2tSZWNvdmVyeVRhcmdldENvbmZsaWN0czoKKyMgcmVjb3ZlcnlfdGFyZ2V0LCByZWNvdmVyeV90 YXJnZXRfbHNuLCByZWNvdmVyeV90YXJnZXRfbmFtZSwKKyMgcmVjb3ZlcnlfdGFyZ2V0X3RpbWUs IHJlY292ZXJ5X3RhcmdldF94aWQuCitsaWtlKAorCSRsb2dmaWxlX25vX3NpZ25hbCwKKwlxci9h cmUgc2V0OiAicmVjb3ZlcnlfdGFyZ2V0X25hbWUiID0gIlteIl0rIiwgInJlY292ZXJ5X3Rhcmdl dF90aW1lIiA9ICJbXiJdKyIvLAorCSdlcnJkZXRhaWwgbmFtZXMgd2hpY2ggcmVjb3ZlcnlfdGFy Z2V0XyogR1VDcyBhcmUgc2V0IGFuZCB0aGVpciB2YWx1ZXMnKTsKKwogIyBTYW1lLUdVQyBsYXN0 LXdpbnMgKG9uZSBzb3VyY2Ugb2YgdHJ1dGggZm9yIHRoZSBHVUMncyB2YWx1ZSk6IGFzc2lnbmlu ZyBhCiAjIHJlY292ZXJ5X3RhcmdldF8qIEdVQyBhbmQgdGhlbiBhc3NpZ25pbmcgdGhlIHNhbWUg R1VDIHRvIGFuIGVtcHR5IHN0cmluZwogIyBsZWF2ZXMgbm8gdGFyZ2V0IHNldCBhbmQgcmVjb3Zl cnkgcHJvY2VlZHMgdG8gdGhlIGVuZCBvZiBXQUwuICBUaGlzIGlzIHRoZQpAQCAtMzU4LDYgKzM2 NiwzOCBAQCBpcygkY291bnRfeGlkX2NsZWFyX3NldCwgIjIwMDAiLAogCSdyZWNvdmVyeV90YXJn ZXRfeGlkIGhvbm9yZWQgd2hlbiBjbGVhcmVkIHRoZW4gc2V0Jyk7CiAkbm9kZV94aWRfY2xlYXJf c2V0LT50ZWFyZG93bl9ub2RlOwogCit0ZXN0X3JlY292ZXJ5X3N0YW5kYnlfd2l0aF9vcHRpb25z KAorCSdyZWNvdmVyeV90YXJnZXRfdGltZSBjbGVhcmVkIHRoZW4gc2V0JywKKwknc3RhbmRieV90 aW1lX2NsZWFyX3NldCcsCisJJG5vZGVfcHJpbWFyeSwKKwkiLWMgcmVjb3ZlcnlfdGFyZ2V0X3Rp bWU9IC1jIHJlY292ZXJ5X3RhcmdldF90aW1lPSRyZWNvdmVyeV90aW1lX3QiLAorCSIzMDAwIiwK KwkkbHNuMyk7CisKK3Rlc3RfcmVjb3Zlcnlfc3RhbmRieV93aXRoX29wdGlvbnMoCisJJ3JlY292 ZXJ5X3RhcmdldF9uYW1lIGNsZWFyZWQgdGhlbiBzZXQnLAorCSdzdGFuZGJ5X25hbWVfY2xlYXJf c2V0JywKKwkkbm9kZV9wcmltYXJ5LAorCSItYyByZWNvdmVyeV90YXJnZXRfbmFtZT0gLWMgcmVj b3ZlcnlfdGFyZ2V0X25hbWU9JHJlY292ZXJ5X25hbWUiLAorCSI0MDAwIiwKKwkkbHNuNCk7CisK K3Rlc3RfcmVjb3Zlcnlfc3RhbmRieV93aXRoX29wdGlvbnMoCisJJ3JlY292ZXJ5X3RhcmdldF9s c24gY2xlYXJlZCB0aGVuIHNldCcsCisJJ3N0YW5kYnlfbHNuX2NsZWFyX3NldCcsCisJJG5vZGVf cHJpbWFyeSwKKwkiLWMgcmVjb3ZlcnlfdGFyZ2V0X2xzbj0gLWMgcmVjb3ZlcnlfdGFyZ2V0X2xz bj0kcmVjb3ZlcnlfbHNuIiwKKwkiNTAwMCIsCisJJGxzbjUpOworCit0ZXN0X3JlY292ZXJ5X3N0 YW5kYnlfd2l0aF9vcHRpb25zKAorCSdyZWNvdmVyeV90YXJnZXQgY2xlYXJlZCB0aGVuIHNldCcs CisJJ3N0YW5kYnlfaW1tZWRpYXRlX2NsZWFyX3NldCcsCisJJG5vZGVfcHJpbWFyeSwKKwkiLWMg cmVjb3ZlcnlfdGFyZ2V0PSAtYyByZWNvdmVyeV90YXJnZXQ9aW1tZWRpYXRlIiwKKwkiMTAwMCIs CisJJGxzbjEpOworCiAjIEludmFsaWQgcmVjb3ZlcnlfdGFyZ2V0X3RpbWVsaW5lIHRlc3RzCiBt eSAoJHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkbm9kZV9wcmltYXJ5LT5wc3FsKCdwb3N0 Z3JlcycsCiAJIkFMVEVSIFNZU1RFTSBTRVQgcmVjb3ZlcnlfdGFyZ2V0X3RpbWVsaW5lIFRPICdi b2d1cyciKTsKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== -----------------------a968328b26e0c0f3a1875aede36ac154-- --------b0f83de8a11fe77178bc425095a95f5b651ad8d774588577b006f1d162e83ca1 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: ProtonMail wrsEARYKAG0Fgmoco90JENJWjBT/u5s7RRQAAAAAABwAIHNhbHRAbm90YXRp b25zLm9wZW5wZ3Bqcy5vcmcc1HJDyktumySRHx0ZakS5k5t/7BFLbXPb8sqx dAQdIhYhBHp15mAbLriqt8a+vNJWjBT/u5s7AABkPQEA/Zas8DEUNTgnWcsX f3Jhyf7N1lPH9PvgrUIIUfuph1cBANqAeBoxBltUMUS99qSXCaPAqq1/C2+e 4OJu+GKuo0MM =HGN1 -----END PGP SIGNATURE----- --------b0f83de8a11fe77178bc425095a95f5b651ad8d774588577b006f1d162e83ca1--