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 1vnLlM-005abw-2q for pgsql-hackers@arkaria.postgresql.org; Tue, 03 Feb 2026 19:08:37 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vnLlL-006wqt-2z for pgsql-hackers@arkaria.postgresql.org; Tue, 03 Feb 2026 19:08:35 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vnLlL-006wqk-1H for pgsql-hackers@lists.postgresql.org; Tue, 03 Feb 2026 19:08:35 +0000 Received: from lahtoruutu.iki.fi ([185.185.170.37]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1vnLlI-00000000P89-0d9o for pgsql-hackers@lists.postgresql.org; Tue, 03 Feb 2026 19:08:34 +0000 Received: from [10.0.2.15] (unknown [130.41.208.2]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange x25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: hlinnaka) by lahtoruutu.iki.fi (Postfix) with ESMTPSA id 4f5CgV0JqKz49Px3; Tue, 03 Feb 2026 21:08:21 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iki.fi; s=lahtoruutu; t=1770145703; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=pH15LJ6HujUKiv/vqZa/tWuu5sY6Ou6msmK37Yh5uRw=; b=CIJC1L0Dp/5ZZ6+Vt3VY3ggr5TpzwMhse0/AEf6Ow+JybS/nhUMHaJH/j9IgjJcIOudUsA u46Tsblt36VRYihN8fDUOAQoNMUa/Ygu0+8wo3BWNo/QgTLe7r8idLCOTj7zG5jiNQztmW 8IY+teMz5C8TsdmbD3aXdUpyoBofBTSei3ot5RLMt/hXRo7m5fAykWoyhkfLQ3SATfMY41 eaRTPYvVmqabxwB9InRUB542bw5RMqOuQf5GBmS+b8BaHK0c2wCOPQe3fdXh0szq2TQ7JW 49uZi9aV5brr3az0kHUJy3WLHRLNP5aqBwXuGjE8pyF1UD+MZUnz6Hw63CUeVQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=iki.fi; s=lahtoruutu; t=1770145703; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=pH15LJ6HujUKiv/vqZa/tWuu5sY6Ou6msmK37Yh5uRw=; b=Qe68SuZqdYHDGDlx7aeqO0+WvW8vs9sfAv2dxa/503F6n8KGtoMpLVFKnAIo69umMA4XwA kOj9bcLLVxBdAk7d2GgHKHWUNsOsoM81YC0FVcgaLtnu3+A28MxRndTe8ZmwlThZmnSwBu BmEird2zN9JNDReQ4ghtMTXptWy0sqFWG12XWI2P00SxsHtQP+uNcui2OiZne5E9eQSwUo FhvoqlSnClrwA2bgXPI7zfEvBhcibSRruRHdOBbBkH1E5ya6KRQUUqvRq1Ou1g3omx8pli Elhth6x9rB5QrbQUiTt6ysvE2Y40TyBWzf5Lqt3tztkhG7rK7is/SWqV96ZnRg== ARC-Seal: i=1; a=rsa-sha256; d=iki.fi; s=lahtoruutu; cv=none; t=1770145703; b=BGDngbPEhfzsIU5JvDDqy/L4gl+Gb33iHpUjbL9i3bTe+7O/sDhRrvouNkbou6qTB0b1Zb +0+8LdeQ4gexb0TvdLXFqY7BJVwUSXPapUo2DX9c2avMssJCzqltemtfkX38EpgMSoiOZz difxZfwh0twGoGxBjzRGsuPdWqyNXcH5Ae//daeCXgjSFH3A5KBGNbRtCWWU0NJY4NsP/u RnU31u83g9E7C/EK0yTdDGTm+/JDUlNJH6SJAuewgI7vEF+iNivdOLimhWOY1nCpU8y+Hp qMRDB3EILZuQVu9Me9BfAfdBiajFmM62vtBxOfB1vdrsd+9XG6MLuZYoTx9nKQ== ARC-Authentication-Results: i=1; ORIGINATING; auth=pass smtp.auth=hlinnaka smtp.mailfrom=hlinnaka@iki.fi Content-Type: multipart/mixed; boundary="------------KjmE1CkfuyC9nKt0FNBYUjRa" Message-ID: Date: Tue, 3 Feb 2026 21:08:21 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [Patch] add new parameter to pg_replication_origin_session_setup To: Amit Kapila , "Hayato Kuroda (Fujitsu)" Cc: shveta malik , "pgsql-hackers@lists.postgresql.org" , "Zhijie Hou (Fujitsu)" , Doruk Yilmaz References: Content-Language: en-US From: Heikki Linnakangas In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------KjmE1CkfuyC9nKt0FNBYUjRa Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit The new error message is not great: postgres=# select pg_replication_origin_session_setup('myorigin', 12345678); ERROR: could not find replication state slot for replication origin with OID 1 which was acquired by 12345678 Firstly, replication origin is not an OID. Secondly, it's a little confusing because the "replication state slot" is in fact present. However, it's currently inactive, i.e. not "acquired" by the given PID. I propose to change that to: postgres=# select pg_replication_origin_session_setup('myorigin', 12345678); ERROR: replication origin with ID 1 is not active for PID 12345678 That's more in line with this neighboring message: ERROR: replication origin with ID 1 is already active for PID 701228 I also wonder if the error code is appropriate. That error uses ERRCODE_OBJECT_IN_USE, but if the problem is that the origin is currently *not* active, that seems backwards. I didn't change that in the attached patch, but it's something to think about. The second patch rearranges the if-else statements to check those conditions. I found the current logic hard to follow, this makes them feel more natural, in my opinion at least. It has one user-visible effect: If you call the function with acquired_pid != 0 and the origin has no state slot, *and* there are no free slots, you previously got this error: postgres=# select pg_replication_origin_session_setup('other', 123); ERROR: could not find free replication state slot for replication origin with ID 2 HINT: Increase "max_active_replication_origins" and try again. Now you get this: postgres=# select pg_replication_origin_session_setup('other', 123); ERROR: cannot use PID 123 for inactive replication origin with ID 2 Both error messages are more or less appropriate in that situation, but I think the new behavior is slightly better. The fact that the origin is inactive feels like the bigger problem here. - Heikki --------------KjmE1CkfuyC9nKt0FNBYUjRa Content-Type: text/x-patch; charset=UTF-8; name="0001-Improve-error-message.patch" Content-Disposition: attachment; filename="0001-Improve-error-message.patch" Content-Transfer-Encoding: base64 RnJvbSAyMzNlNTRiMGI0ZGJkYWE4NDkxMGZiN2NjNDUzODc3MzkxODY1ODM5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZWlra2kgTGlubmFrYW5nYXMgPGhlaWtraS5saW5u YWthbmdhc0Bpa2kuZmk+CkRhdGU6IFR1ZSwgMyBGZWIgMjAyNiAyMDozMzoyMyArMDIwMApT dWJqZWN0OiBbUEFUQ0ggMS8yXSBJbXByb3ZlIGVycm9yIG1lc3NhZ2UKCi0gVXNlIHRoZSBz YW1lIHdvcmRpbmdzIGFuZCB0ZXJtcyBhcyB0aGUgbmVpZ2hib3JpbmcgbWVzc2FnZXMKLSBV c2UgJ2N1cnN0YXRlLT5yb2lkZW50JyBpbnN0ZWFkIG9mICdub2RlJy4gV2UndmUgY2hlY2tl ZCB0aGF0IHRoZXkncmUKICBlcXVhbCwgYnV0IGxldCdzIGJlIGNvbnNpc3RlbnQgd2l0aCB0 aGUgbmVpZ2hib3JpbmcgZXJlcG9ydHMoKS4KLS0tCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL29yaWdpbi5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRp b25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL2xvZ2ljYWwvb3JpZ2luLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dp Y2FsL29yaWdpbi5jCmluZGV4IGMzMjcxYTZmZDBlLi5lYzA0MGEwMzlkMyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9vcmlnaW4uYworKysgYi9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL29yaWdpbi5jCkBAIC0xMTk3LDggKzExOTcs OCBAQCByZXBsb3JpZ2luX3Nlc3Npb25fc2V0dXAoUmVwbE9yaWdpbklkIG5vZGUsIGludCBh Y3F1aXJlZF9ieSkKIAkJewogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUoRVJS Q09ERV9PQkpFQ1RfSU5fVVNFKSwKLQkJCQkJIGVycm1zZygiY291bGQgbm90IGZpbmQgcmVw bGljYXRpb24gc3RhdGUgc2xvdCBmb3IgcmVwbGljYXRpb24gb3JpZ2luIHdpdGggT0lEICV1 IHdoaWNoIHdhcyBhY3F1aXJlZCBieSAlZCIsCi0JCQkJCQkJbm9kZSwgYWNxdWlyZWRfYnkp KSk7CisJCQkJCSBlcnJtc2coInJlcGxpY2F0aW9uIG9yaWdpbiB3aXRoIElEICVkIGlzIG5v dCBhY3RpdmUgZm9yIFBJRCAlZCIsCisJCQkJCQkJY3Vyc3RhdGUtPnJvaWRlbnQsIGFjcXVp cmVkX2J5KSkpOwogCQl9CiAKIAkJLyoKLS0gCjIuNDcuMwoK --------------KjmE1CkfuyC9nKt0FNBYUjRa Content-Type: text/x-patch; charset=UTF-8; name="0002-Rearrange-the-checks-in-replorigin_session_setup.patch" Content-Disposition: attachment; filename*0="0002-Rearrange-the-checks-in-replorigin_session_setup.patch" Content-Transfer-Encoding: base64 RnJvbSA1N2IyZTc4OWI0MDI5N2JhMjk5YWYwNjg4MmJkNDA3NjU4NjMwMGRhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZWlra2kgTGlubmFrYW5nYXMgPGhlaWtraS5saW5u YWthbmdhc0Bpa2kuZmk+CkRhdGU6IFR1ZSwgMyBGZWIgMjAyNiAyMDoyOTo1NCArMDIwMApT dWJqZWN0OiBbUEFUQ0ggMi8yXSBSZWFycmFuZ2UgdGhlIGNoZWNrcyBpbiByZXBsb3JpZ2lu X3Nlc3Npb25fc2V0dXAoKQoKTWFrZXMgaXQgZWFzaWVyIHRvIGZvbGxvdyB0aGUgbG9naWMu Ci0tLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9vcmlnaW4uYyB8IDczICsr KysrKysrKysrKystLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQxIGluc2VydGlvbnMo KyksIDMyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvb3JpZ2luLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L29yaWdpbi5jCmluZGV4IGVjMDQwYTAzOWQzLi5jYjE4YjRiNjY4NiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9vcmlnaW4uYworKysgYi9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL29yaWdpbi5jCkBAIC0xMTg1LDU1ICsxMTg1LDY0 IEBAIHJlcGxvcmlnaW5fc2Vzc2lvbl9zZXR1cChSZXBsT3JpZ2luSWQgbm9kZSwgaW50IGFj cXVpcmVkX2J5KQogCQlpZiAoY3Vyc3RhdGUtPnJvaWRlbnQgIT0gbm9kZSkKIAkJCWNvbnRp bnVlOwogCi0JCWVsc2UgaWYgKGN1cnN0YXRlLT5hY3F1aXJlZF9ieSAhPSAwICYmIGFjcXVp cmVkX2J5ID09IDApCisJCWlmIChhY3F1aXJlZF9ieSA9PSAwKQogCQl7Ci0JCQllcmVwb3J0 KEVSUk9SLAotCQkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9JTl9VU0UpLAotCQkJCQkg ZXJybXNnKCJyZXBsaWNhdGlvbiBvcmlnaW4gd2l0aCBJRCAlZCBpcyBhbHJlYWR5IGFjdGl2 ZSBmb3IgUElEICVkIiwKLQkJCQkJCQljdXJzdGF0ZS0+cm9pZGVudCwgY3Vyc3RhdGUtPmFj cXVpcmVkX2J5KSkpOworCQkJLyogV2l0aCBhY3F1aXJlZF9ieSA9PSAwLCB3ZSBuZWVkIHRo ZSBvcmlnaW4gdG8gYmUgZnJlZSAqLworCQkJaWYgKGN1cnN0YXRlLT5hY3F1aXJlZF9ieSAh PSAwKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVD VF9JTl9VU0UpLAorCQkJCQkJIGVycm1zZygicmVwbGljYXRpb24gb3JpZ2luIHdpdGggSUQg JWQgaXMgYWxyZWFkeSBhY3RpdmUgZm9yIFBJRCAlZCIsCisJCQkJCQkJCWN1cnN0YXRlLT5y b2lkZW50LCBjdXJzdGF0ZS0+YWNxdWlyZWRfYnkpKSk7CisKKwkJCWlmIChjdXJzdGF0ZS0+ cmVmY291bnQgPiAwKQorCQkJeworCQkJCS8qCisJCQkJICogVGhlIG9yaWdpbiBpcyBpbiB1 c2UsIGJ1dCBQSUQgaXMgbm90IHJlY29yZGVkLiBUaGlzIGNhbgorCQkJCSAqIGhhcHBlbiBp ZiB0aGUgcHJvY2VzcyB0aGF0IG9yaWdpbmFsbHkgYWNxdWlyZWQgdGhlIG9yaWdpbgorCQkJ CSAqIGV4aXRlZCB3aXRob3V0IHJlbGVhc2luZyBpdC4gVG8gZW5zdXJlIGNvcnJlY3RuZXNz LCBvdGhlcgorCQkJCSAqIHByb2Nlc3NlcyBjYW5ub3QgYWNxdWlyZSB0aGUgb3JpZ2luIHVu dGlsIGFsbCBwcm9jZXNzZXMKKwkJCQkgKiBjdXJyZW50bHkgdXNpbmcgaXQgaGF2ZSByZWxl YXNlZCBpdC4KKwkJCQkgKi8KKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUo RVJSQ09ERV9PQkpFQ1RfSU5fVVNFKSwKKwkJCQkJCSBlcnJtc2coInJlcGxpY2F0aW9uIG9y aWdpbiB3aXRoIElEICVkIGlzIGFscmVhZHkgYWN0aXZlIGluIGFub3RoZXIgcHJvY2VzcyIs CisJCQkJCQkJCWN1cnN0YXRlLT5yb2lkZW50KSkpOworCQkJfQogCQl9Ci0KLQkJZWxzZSBp ZiAoY3Vyc3RhdGUtPmFjcXVpcmVkX2J5ICE9IGFjcXVpcmVkX2J5KQorCQllbHNlCiAJCXsK LQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCShlcnJjb2RlKEVSUkNPREVfT0JKRUNUX0lOX1VT RSksCi0JCQkJCSBlcnJtc2coInJlcGxpY2F0aW9uIG9yaWdpbiB3aXRoIElEICVkIGlzIG5v dCBhY3RpdmUgZm9yIFBJRCAlZCIsCi0JCQkJCQkJY3Vyc3RhdGUtPnJvaWRlbnQsIGFjcXVp cmVkX2J5KSkpOworCQkJLyoKKwkJCSAqIFdpdGggYWNxdWlyZWRfYnkgIT0gMCwgd2UgbmVl ZCB0aGUgb3JpZ2luIHRvIGJlIGFjdGl2ZSBieSB0aGUKKwkJCSAqIGdpdmVuIFBJRAorCQkJ ICovCisJCQlpZiAoY3Vyc3RhdGUtPmFjcXVpcmVkX2J5ICE9IGFjcXVpcmVkX2J5KQorCQkJ CWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9JTl9VU0Up LAorCQkJCQkJIGVycm1zZygicmVwbGljYXRpb24gb3JpZ2luIHdpdGggSUQgJWQgaXMgbm90 IGFjdGl2ZSBmb3IgUElEICVkIiwKKwkJCQkJCQkJY3Vyc3RhdGUtPnJvaWRlbnQsIGFjcXVp cmVkX2J5KSkpOwogCQl9CiAKLQkJLyoKLQkJICogVGhlIG9yaWdpbiBpcyBpbiB1c2UsIGJ1 dCBQSUQgaXMgbm90IHJlY29yZGVkLiBUaGlzIGNhbiBoYXBwZW4gaWYKLQkJICogdGhlIHBy b2Nlc3MgdGhhdCBvcmlnaW5hbGx5IGFjcXVpcmVkIHRoZSBvcmlnaW4gZXhpdGVkIHdpdGhv dXQKLQkJICogcmVsZWFzaW5nIGl0LiBUbyBlbnN1cmUgY29ycmVjdG5lc3MsIG90aGVyIHBy b2Nlc3NlcyBjYW5ub3QgYWNxdWlyZQotCQkgKiB0aGUgb3JpZ2luIHVudGlsIGFsbCBwcm9j ZXNzZXMgY3VycmVudGx5IHVzaW5nIGl0IGhhdmUgcmVsZWFzZWQgaXQuCi0JCSAqLwotCQll bHNlIGlmIChjdXJzdGF0ZS0+YWNxdWlyZWRfYnkgPT0gMCAmJiBjdXJzdGF0ZS0+cmVmY291 bnQgPiAwKQotCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJKGVycmNvZGUoRVJSQ09ERV9PQkpF Q1RfSU5fVVNFKSwKLQkJCQkJIGVycm1zZygicmVwbGljYXRpb24gb3JpZ2luIHdpdGggSUQg JWQgaXMgYWxyZWFkeSBhY3RpdmUgaW4gYW5vdGhlciBwcm9jZXNzIiwKLQkJCQkJCQljdXJz dGF0ZS0+cm9pZGVudCkpKTsKLQogCQkvKiBvaywgZm91bmQgc2xvdCAqLwogCQlzZXNzaW9u X3JlcGxpY2F0aW9uX3N0YXRlID0gY3Vyc3RhdGU7CiAJCWJyZWFrOwogCX0KIAotCi0JaWYg KHNlc3Npb25fcmVwbGljYXRpb25fc3RhdGUgPT0gTlVMTCAmJiBmcmVlX3Nsb3QgPT0gLTEp Ci0JCWVyZXBvcnQoRVJST1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9DT05GSUdVUkFUSU9O X0xJTUlUX0VYQ0VFREVEKSwKLQkJCQkgZXJybXNnKCJjb3VsZCBub3QgZmluZCBmcmVlIHJl cGxpY2F0aW9uIHN0YXRlIHNsb3QgZm9yIHJlcGxpY2F0aW9uIG9yaWdpbiB3aXRoIElEICVk IiwKLQkJCQkJCW5vZGUpLAotCQkJCSBlcnJoaW50KCJJbmNyZWFzZSBcIm1heF9hY3RpdmVf cmVwbGljYXRpb25fb3JpZ2luc1wiIGFuZCB0cnkgYWdhaW4uIikpKTsKLQllbHNlIGlmIChz ZXNzaW9uX3JlcGxpY2F0aW9uX3N0YXRlID09IE5VTEwpCisJaWYgKHNlc3Npb25fcmVwbGlj YXRpb25fc3RhdGUgPT0gTlVMTCkKIAl7Ci0JCWlmIChhY3F1aXJlZF9ieSkKKwkJaWYgKGFj cXVpcmVkX2J5ICE9IDApCiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJD T0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKIAkJCQkJIGVycm1zZygi Y2Fubm90IHVzZSBQSUQgJWQgZm9yIGluYWN0aXZlIHJlcGxpY2F0aW9uIG9yaWdpbiB3aXRo IElEICVkIiwKIAkJCQkJCQlhY3F1aXJlZF9ieSwgbm9kZSkpKTsKIAogCQkvKiBpbml0aWFs aXplIG5ldyBzbG90ICovCisJCWlmIChmcmVlX3Nsb3QgPT0gLTEpCisJCQllcmVwb3J0KEVS Uk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0NPTkZJR1VSQVRJT05fTElNSVRfRVhDRUVE RUQpLAorCQkJCQkgZXJybXNnKCJjb3VsZCBub3QgZmluZCBmcmVlIHJlcGxpY2F0aW9uIHN0 YXRlIHNsb3QgZm9yIHJlcGxpY2F0aW9uIG9yaWdpbiB3aXRoIElEICVkIiwKKwkJCQkJCQlu b2RlKSwKKwkJCQkJIGVycmhpbnQoIkluY3JlYXNlIFwibWF4X2FjdGl2ZV9yZXBsaWNhdGlv bl9vcmlnaW5zXCIgYW5kIHRyeSBhZ2Fpbi4iKSkpOworCiAJCXNlc3Npb25fcmVwbGljYXRp b25fc3RhdGUgPSAmcmVwbGljYXRpb25fc3RhdGVzW2ZyZWVfc2xvdF07CiAJCUFzc2VydCgh WExvZ1JlY1B0cklzVmFsaWQoc2Vzc2lvbl9yZXBsaWNhdGlvbl9zdGF0ZS0+cmVtb3RlX2xz bikpOwogCQlBc3NlcnQoIVhMb2dSZWNQdHJJc1ZhbGlkKHNlc3Npb25fcmVwbGljYXRpb25f c3RhdGUtPmxvY2FsX2xzbikpOwotLSAKMi40Ny4zCgo= --------------KjmE1CkfuyC9nKt0FNBYUjRa--