Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1peBDT-0002hM-SY for pgsql-hackers@arkaria.postgresql.org; Mon, 20 Mar 2023 08:50:08 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1peBDR-0008RZ-Px for pgsql-hackers@arkaria.postgresql.org; Mon, 20 Mar 2023 08:50:05 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1peBDR-0008RN-3Z for pgsql-hackers@lists.postgresql.org; Mon, 20 Mar 2023 08:50:05 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by makus.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1peBDN-0007lT-8Y for pgsql-hackers@lists.postgresql.org; Mon, 20 Mar 2023 08:50:04 +0000 Received: from [192.168.43.15] (ppp222-109.dialup.corbina.ru [213.234.222.109]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mail.postgrespro.ru (Postfix) with ESMTPSA id 60B6021CD48A; Mon, 20 Mar 2023 11:49:57 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mail; t=1679302198; bh=JuRRREQHNM9syjaOBZT5T77euHbBS1abvNlFqDWCpMA=; h=Date:Subject:From:To:Cc:References:In-Reply-To; b=MCRauGYKgb3SWaftHqFQQD+iHeuWzFat+y8YULsd0aaZQn4Q72BQckDUdiEJRT0WL XyjoNygs87t63BB+SJmvLsdu7i8Nco4rIiN0u/J/GSWFaRquzeie+nNV2O9X4H+p57 BWVZFUO0D1yy6Xk8p/1BEvwsAJwoWB4+tkIHrjUE= Content-Type: multipart/mixed; boundary="------------4Rfb027JwtKV6Ua3kyx65k8x" Message-ID: Date: Mon, 20 Mar 2023 11:49:55 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: Re: psql: Add role's membership options to the \du+ command From: Pavel Luzanov To: "David G. Johnston" Cc: David Zhang , "pgsql-hackers@lists.postgresql.org" References: <01620d6b-9efe-b199-b619-8450d865ec83@postgrespro.ru> <94ce7392-fa90-bc1c-4dc2-677161bbff58@postgrespro.ru> <20824093-d94f-e5d6-b611-8cec7fc6e95e@postgrespro.ru> <42678ca5-f3c6-db1b-e0c5-c63c3ce8997e@postgrespro.ru> Content-Language: en-US, ru-RU In-Reply-To: <42678ca5-f3c6-db1b-e0c5-c63c3ce8997e@postgrespro.ru> 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. --------------4Rfb027JwtKV6Ua3kyx65k8x Content-Type: multipart/alternative; boundary="------------gfkOrr0GAVunynHzV0L8pHKY" --------------gfkOrr0GAVunynHzV0L8pHKY Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 10.03.2023 15:06, Pavel Luzanov wrote: > I missed the comment at the beginning of the file about version 9.2. I > will return the version check for rolbypassrls. >> +         >> +        Shown within each row, in newline-separated format, are the >> memberships granted to >> +        the role.  The presentation includes both the name of the >> grantor >> +        as well as the membership permissions (in an abbreviated format: >> +        a for admin option, i >> for inherit option, >> +        s for set option.) The word >> empty is printed in >> +        the case that none of those permissions are granted. >> +        See the > linkend="sql-grant">GRANT command for their >> meaning. >> +         >> +         >> +        If the form \dg+ is used the comment >> attached to the role is shown. >>           > > Thanks. I will replace the description with this one. > >> I would suggest tweaking the test output to include regress_du_admin >> and also to make regress_du_admin a CREATEROLE role with LOGIN. > > Ok. Please review the attached version 4 with the changes discussed. ----- Pavel Luzanov --------------gfkOrr0GAVunynHzV0L8pHKY Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit
On 10.03.2023 15:06, Pavel Luzanov wrote:
I missed the comment at the beginning of the file about version 9.2. I will return the version check for rolbypassrls.


+        <para>
+        Shown within each row, in newline-separated format, are the memberships granted to
+        the role.  The presentation includes both the name of the grantor
+        as well as the membership permissions (in an abbreviated format:
+        <literal>a</literal> for admin option, <literal>i</literal> for inherit option,
+        <literal>s</literal> for set option.) The word <literal>empty</literal> is printed in
+        the case that none of those permissions are granted.
+        See the <link linkend="sql-grant"><command>GRANT</command></link> command for their meaning.
+        </para>
+        <para>
+        If the form <literal>\dg+</literal> is used the comment attached to the role is shown.
         </para>

Thanks. I will replace the description with this one.


I would suggest tweaking the test output to include regress_du_admin and also to make regress_du_admin a CREATEROLE role with LOGIN.

Ok.

Please review the attached version 4 with the changes discussed.

-----
Pavel Luzanov
--------------gfkOrr0GAVunynHzV0L8pHKY-- --------------4Rfb027JwtKV6Ua3kyx65k8x Content-Type: text/x-patch; charset=UTF-8; name="v4-0001-psql-show-membership-options-in-the-du-command.patch" Content-Disposition: attachment; filename*0="v4-0001-psql-show-membership-options-in-the-du-command.patch" Content-Transfer-Encoding: base64 RnJvbSBiNjdjZGYyMjk5YjYwNTNlZDI0NzI1NGM4YmU0ZWRkZTQ3MmVmZGFlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXZlbCBMdXphbm92IDxwLmx1emFub3ZAcG9zdGdy ZXNwcm8ucnU+CkRhdGU6IE1vbiwgMjAgTWFyIDIwMjMgMTE6Mjg6MzEgKzAzMDAKU3ViamVj dDogW1BBVENIIHY0XSBwc3FsOiBzaG93IG1lbWJlcnNoaXAgb3B0aW9ucyBpbiB0aGUgXGR1 IGNvbW1hbmQKCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sICAgICB8IDMw ICsrKysrKysrKysrKy0tLQogc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICB8 IDYxICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9wc3FsLm91dCB8IDU1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3Jj L3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwgICAgICB8IDMwICsrKysrKysrKysrKysrKwog NCBmaWxlcyBjaGFuZ2VkLCAxNTAgaW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sIGIvZG9jL3NyYy9z Z21sL3JlZi9wc3FsLXJlZi5zZ21sCmluZGV4IDdiOGFlOWZhYzMuLjAzZTdkYTkzZGUgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbAorKysgYi9kb2Mvc3Jj L3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKQEAgLTE3MjcsOSArMTcyNywxOCBAQCBJTlNFUlQg SU5UTyB0YmwxIFZBTFVFUyAoJDEsICQyKSBcYmluZCAnZmlyc3QgdmFsdWUnICdzZWNvbmQg dmFsdWUnIFxnCiAgICAgICAgIDxsaXRlcmFsPlM8L2xpdGVyYWw+IG1vZGlmaWVyIHRvIGlu Y2x1ZGUgc3lzdGVtIHJvbGVzLgogICAgICAgICBJZiA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+cGF0dGVybjwvcmVwbGFjZWFibGU+IGlzIHNwZWNpZmllZCwKICAgICAgICAg b25seSB0aG9zZSByb2xlcyB3aG9zZSBuYW1lcyBtYXRjaCB0aGUgcGF0dGVybiBhcmUgbGlz dGVkLgotICAgICAgICBJZiB0aGUgZm9ybSA8bGl0ZXJhbD5cZGcrPC9saXRlcmFsPiBpcyB1 c2VkLCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCi0gICAgICAgIGlzIHNob3duIGFib3V0IGVh Y2ggcm9sZTsgY3VycmVudGx5IHRoaXMgYWRkcyB0aGUgY29tbWVudCBmb3IgZWFjaAotICAg ICAgICByb2xlLgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDxwYXJhPgorICAgICAgICBT aG93biB3aXRoaW4gZWFjaCByb3csIGluIG5ld2xpbmUtc2VwYXJhdGVkIGZvcm1hdCwgYXJl IHRoZSBtZW1iZXJzaGlwcyBncmFudGVkIHRvCisgICAgICAgIHRoZSByb2xlLiAgVGhlIHBy ZXNlbnRhdGlvbiBpbmNsdWRlcyBib3RoIHRoZSBuYW1lIG9mIHRoZSBncmFudG9yCisgICAg ICAgIGFzIHdlbGwgYXMgdGhlIG1lbWJlcnNoaXAgcGVybWlzc2lvbnMgKGluIGFuIGFiYnJl dmlhdGVkIGZvcm1hdDoKKyAgICAgICAgPGxpdGVyYWw+YTwvbGl0ZXJhbD4gZm9yIGFkbWlu IG9wdGlvbiwgPGxpdGVyYWw+aTwvbGl0ZXJhbD4gZm9yIGluaGVyaXQgb3B0aW9uLAorICAg ICAgICA8bGl0ZXJhbD5zPC9saXRlcmFsPiBmb3Igc2V0IG9wdGlvbi4pIFRoZSB3b3JkIDxs aXRlcmFsPmVtcHR5PC9saXRlcmFsPiBpcyBwcmludGVkIGluCisgICAgICAgIHRoZSBjYXNl IHRoYXQgbm9uZSBvZiB0aG9zZSBwZXJtaXNzaW9ucyBhcmUgZ3JhbnRlZC4KKyAgICAgICAg U2VlIHRoZSA8bGluayBsaW5rZW5kPSJzcWwtZ3JhbnQiPjxjb21tYW5kPkdSQU5UPC9jb21t YW5kPjwvbGluaz4gY29tbWFuZCBmb3IgdGhlaXIgbWVhbmluZy4KKyAgICAgICAgPC9wYXJh PgorICAgICAgICA8cGFyYT4KKyAgICAgICAgSWYgdGhlIGZvcm0gPGxpdGVyYWw+XGRnKzwv bGl0ZXJhbD4gaXMgdXNlZCB0aGUgY29tbWVudCBhdHRhY2hlZCB0byB0aGUgcm9sZSBpcyBz aG93bi4KICAgICAgICAgPC9wYXJhPgogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgPC92 YXJsaXN0ZW50cnk+CkBAIC0xOTY5LDkgKzE5NzgsMTggQEAgSU5TRVJUIElOVE8gdGJsMSBW QUxVRVMgKCQxLCAkMikgXGJpbmQgJ2ZpcnN0IHZhbHVlJyAnc2Vjb25kIHZhbHVlJyBcZwog ICAgICAgICA8bGl0ZXJhbD5TPC9saXRlcmFsPiBtb2RpZmllciB0byBpbmNsdWRlIHN5c3Rl bSByb2xlcy4KICAgICAgICAgSWYgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBh dHRlcm48L3JlcGxhY2VhYmxlPiBpcyBzcGVjaWZpZWQsCiAgICAgICAgIG9ubHkgdGhvc2Ug cm9sZXMgd2hvc2UgbmFtZXMgbWF0Y2ggdGhlIHBhdHRlcm4gYXJlIGxpc3RlZC4KLSAgICAg ICAgSWYgdGhlIGZvcm0gPGxpdGVyYWw+XGR1KzwvbGl0ZXJhbD4gaXMgdXNlZCwgYWRkaXRp b25hbCBpbmZvcm1hdGlvbgotICAgICAgICBpcyBzaG93biBhYm91dCBlYWNoIHJvbGU7IGN1 cnJlbnRseSB0aGlzIGFkZHMgdGhlIGNvbW1lbnQgZm9yIGVhY2gKLSAgICAgICAgcm9sZS4K KyAgICAgICAgPC9wYXJhPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgU2hvd24gd2l0aGlu IGVhY2ggcm93LCBpbiBuZXdsaW5lLXNlcGFyYXRlZCBmb3JtYXQsIGFyZSB0aGUgbWVtYmVy c2hpcHMgZ3JhbnRlZCB0bworICAgICAgICB0aGUgcm9sZS4gIFRoZSBwcmVzZW50YXRpb24g aW5jbHVkZXMgYm90aCB0aGUgbmFtZSBvZiB0aGUgZ3JhbnRvcgorICAgICAgICBhcyB3ZWxs IGFzIHRoZSBtZW1iZXJzaGlwIHBlcm1pc3Npb25zIChpbiBhbiBhYmJyZXZpYXRlZCBmb3Jt YXQ6CisgICAgICAgIDxsaXRlcmFsPmE8L2xpdGVyYWw+IGZvciBhZG1pbiBvcHRpb24sIDxs aXRlcmFsPmk8L2xpdGVyYWw+IGZvciBpbmhlcml0IG9wdGlvbiwKKyAgICAgICAgPGxpdGVy YWw+czwvbGl0ZXJhbD4gZm9yIHNldCBvcHRpb24uKSBUaGUgd29yZCA8bGl0ZXJhbD5lbXB0 eTwvbGl0ZXJhbD4gaXMgcHJpbnRlZCBpbgorICAgICAgICB0aGUgY2FzZSB0aGF0IG5vbmUg b2YgdGhvc2UgcGVybWlzc2lvbnMgYXJlIGdyYW50ZWQuCisgICAgICAgIFNlZSB0aGUgPGxp bmsgbGlua2VuZD0ic3FsLWdyYW50Ij48Y29tbWFuZD5HUkFOVDwvY29tbWFuZD48L2xpbms+ IGNvbW1hbmQgZm9yIHRoZWlyIG1lYW5pbmcuCisgICAgICAgIDwvcGFyYT4KKyAgICAgICAg PHBhcmE+CisgICAgICAgIElmIHRoZSBmb3JtIDxsaXRlcmFsPlxkdSs8L2xpdGVyYWw+IGlz IHVzZWQgdGhlIGNvbW1lbnQgYXR0YWNoZWQgdG8gdGhlIHJvbGUgaXMgc2hvd24uCiAgICAg ICAgIDwvcGFyYT4KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgIDwvdmFybGlzdGVudHJ5 PgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwv ZGVzY3JpYmUuYwppbmRleCA5OWUyOGY2MDdlLi45ZjdiNzMyNmU5IDEwMDY0NAotLS0gYS9z cmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpA QCAtMzYzMSwyNCArMzYzMSw0MiBAQCBkZXNjcmliZVJvbGVzKGNvbnN0IGNoYXIgKnBhdHRl cm4sIGJvb2wgdmVyYm9zZSwgYm9vbCBzaG93U3lzdGVtKQogCXByaW50ZlBRRXhwQnVmZmVy KCZidWYsCiAJCQkJCSAgIlNFTEVDVCByLnJvbG5hbWUsIHIucm9sc3VwZXIsIHIucm9saW5o ZXJpdCxcbiIKIAkJCQkJICAiICByLnJvbGNyZWF0ZXJvbGUsIHIucm9sY3JlYXRlZGIsIHIu cm9sY2FubG9naW4sXG4iCi0JCQkJCSAgIiAgci5yb2xjb25ubGltaXQsIHIucm9sdmFsaWR1 bnRpbCxcbiIKLQkJCQkJICAiICBBUlJBWShTRUxFQ1QgYi5yb2xuYW1lXG4iCi0JCQkJCSAg IiAgICAgICAgRlJPTSBwZ19jYXRhbG9nLnBnX2F1dGhfbWVtYmVycyBtXG4iCi0JCQkJCSAg IiAgICAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGIgT04gKG0ucm9sZWlkID0gYi5v aWQpXG4iCi0JCQkJCSAgIiAgICAgICAgV0hFUkUgbS5tZW1iZXIgPSByLm9pZCkgYXMgbWVt YmVyb2YiKTsKKwkJCQkJICAiICByLnJvbGNvbm5saW1pdCwgci5yb2x2YWxpZHVudGlsLCBy LnJvbHJlcGxpY2F0aW9uLFxuIik7CiAKLQlpZiAodmVyYm9zZSkKLQl7Ci0JCWFwcGVuZFBR RXhwQnVmZmVyU3RyKCZidWYsICJcbiwgcGdfY2F0YWxvZy5zaG9ial9kZXNjcmlwdGlvbihy Lm9pZCwgJ3BnX2F1dGhpZCcpIEFTIGRlc2NyaXB0aW9uIik7Ci0JCW5jb2xzKys7Ci0JfQot CWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICJcbiwgci5yb2xyZXBsaWNhdGlvbiIpOwor CWlmIChwc2V0LnN2ZXJzaW9uID49IDE2MDAwMCkKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIo JmJ1ZiwKKwkJCQkJCQkgIiAgKFNFTEVDVCBwZ19jYXRhbG9nLnN0cmluZ19hZ2coXG4iCisJ CQkJCQkJICIgICAgcGdfY2F0YWxvZy5mb3JtYXQoJyVJIGZyb20gJUkgKCVzKScsXG4iCisJ CQkJCQkJICIgICAgICBiLnJvbG5hbWUsIG0uZ3JhbnRvcjo6cGdfY2F0YWxvZy5yZWdyb2xl OjpwZ19jYXRhbG9nLnRleHQsXG4iCisJCQkJCQkJICIgICAgICBwZ19jYXRhbG9nLnJlZ2V4 cF9yZXBsYWNlKFxuIgorCQkJCQkJCSAiICAgICAgICBwZ19jYXRhbG9nLmNvbmNhdF93cygn LCAnLFxuIgorCQkJCQkJCSAiICAgICAgICAgIENBU0UgV0hFTiBtLmFkbWluX29wdGlvbiBU SEVOICdhJyBFTkQsXG4iCisJCQkJCQkJICIgICAgICAgICAgQ0FTRSBXSEVOIG0uaW5oZXJp dF9vcHRpb24gVEhFTiAnaScgRU5ELFxuIgorCQkJCQkJCSAiICAgICAgICAgIENBU0UgV0hF TiBtLnNldF9vcHRpb24gVEhFTiAncycgRU5EKSxcbiIKKwkJCQkJCQkgIiAgICAgICdeJCcs ICdlbXB0eScpXG4iCisJCQkJCQkJICIgICAgKSwgRSdcXG4nXG4iCisJCQkJCQkJICIgICAg T1JERVIgQlkgYi5yb2xuYW1lLCBtLmdyYW50b3I6OnBnX2NhdGFsb2cucmVncm9sZTo6cGdf Y2F0YWxvZy50ZXh0KVxuIgorCQkJCQkJCSAiICBGUk9NIHBnX2NhdGFsb2cucGdfYXV0aF9t ZW1iZXJzIG1cbiIKKwkJCQkJCQkgIiAgICAgICBKT0lOIHBnX2NhdGFsb2cucGdfcm9sZXMg YiBPTiAobS5yb2xlaWQgPSBiLm9pZClcbiIKKwkJCQkJCQkgIiAgV0hFUkUgbS5tZW1iZXIg PSByLm9pZCkgYXMgbWVtYmVyb2YiKTsKKwllbHNlCisJCWFwcGVuZFBRRXhwQnVmZmVyU3Ry KCZidWYsCisJCQkJCQkJICIgIEFSUkFZKFNFTEVDVCBiLnJvbG5hbWVcbiIKKwkJCQkJCQkg IiAgICAgICAgRlJPTSBwZ19jYXRhbG9nLnBnX2F1dGhfbWVtYmVycyBtXG4iCisJCQkJCQkJ ICIgICAgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBiIE9OIChtLnJvbGVpZCA9IGIu b2lkKVxuIgorCQkJCQkJCSAiICAgICAgICBXSEVSRSBtLm1lbWJlciA9IHIub2lkKSBhcyBt ZW1iZXJvZiIpOwogCiAJaWYgKHBzZXQuc3ZlcnNpb24gPj0gOTA1MDApCiAJewogCQlhcHBl bmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiXG4sIHIucm9sYnlwYXNzcmxzIik7CiAJfQogCisJ aWYgKHZlcmJvc2UpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiXG4sIHBn X2NhdGFsb2cuc2hvYmpfZGVzY3JpcHRpb24oci5vaWQsICdwZ19hdXRoaWQnKSBBUyBkZXNj cmlwdGlvbiIpOworCQluY29scysrOworCX0KKwogCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZi dWYsICJcbkZST00gcGdfY2F0YWxvZy5wZ19yb2xlcyByXG4iKTsKIAogCWlmICghc2hvd1N5 c3RlbSAmJiAhcGF0dGVybikKQEAgLTM3MDEsMTMgKzM3MTksNiBAQCBkZXNjcmliZVJvbGVz KGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSwgYm9vbCBzaG93U3lzdGVtKQog CQlpZiAoc3RyY21wKFBRZ2V0dmFsdWUocmVzLCBpLCA1KSwgInQiKSAhPSAwKQogCQkJYWRk X3JvbGVfYXR0cmlidXRlKCZidWYsIF8oIkNhbm5vdCBsb2dpbiIpKTsKIAotCQlpZiAoc3Ry Y21wKFBRZ2V0dmFsdWUocmVzLCBpLCAodmVyYm9zZSA/IDEwIDogOSkpLCAidCIpID09IDAp Ci0JCQlhZGRfcm9sZV9hdHRyaWJ1dGUoJmJ1ZiwgXygiUmVwbGljYXRpb24iKSk7Ci0KLQkJ aWYgKHBzZXQuc3ZlcnNpb24gPj0gOTA1MDApCi0JCQlpZiAoc3RyY21wKFBRZ2V0dmFsdWUo cmVzLCBpLCAodmVyYm9zZSA/IDExIDogMTApKSwgInQiKSA9PSAwKQotCQkJCWFkZF9yb2xl X2F0dHJpYnV0ZSgmYnVmLCBfKCJCeXBhc3MgUkxTIikpOwotCiAJCWNvbm5zID0gYXRvaShQ UWdldHZhbHVlKHJlcywgaSwgNikpOwogCQlpZiAoY29ubnMgPj0gMCkKIAkJewpAQCAtMzcz NSwxMCArMzc0NiwyMCBAQCBkZXNjcmliZVJvbGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJv b2wgdmVyYm9zZSwgYm9vbCBzaG93U3lzdGVtKQogCiAJCXByaW50VGFibGVBZGRDZWxsKCZj b250LCBhdHRyW2ldLCBmYWxzZSwgZmFsc2UpOwogCi0JCXByaW50VGFibGVBZGRDZWxsKCZj b250LCBQUWdldHZhbHVlKHJlcywgaSwgOCksIGZhbHNlLCBmYWxzZSk7CisJCWlmIChzdHJj bXAoUFFnZXR2YWx1ZShyZXMsIGksIDgpLCAidCIpID09IDApCisJCQlhZGRfcm9sZV9hdHRy aWJ1dGUoJmJ1ZiwgXygiUmVwbGljYXRpb24iKSk7CisKKwkJcHJpbnRUYWJsZUFkZENlbGwo JmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCA5KSwgZmFsc2UsIGZhbHNlKTsKKworCQlpZiAo cHNldC5zdmVyc2lvbiA+PSA5MDUwMCkKKwkJCWlmIChzdHJjbXAoUFFnZXR2YWx1ZShyZXMs IGksIDEwKSwgInQiKSA9PSAwKQorCQkJCWFkZF9yb2xlX2F0dHJpYnV0ZSgmYnVmLCBfKCJC eXBhc3MgUkxTIikpOwogCiAJCWlmICh2ZXJib3NlKQotCQkJcHJpbnRUYWJsZUFkZENlbGwo JmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCA5KSwgZmFsc2UsIGZhbHNlKTsKKwkJCWlmIChw c2V0LnN2ZXJzaW9uID49IDkwNTAwKQorCQkJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQ UWdldHZhbHVlKHJlcywgaSwgMTEpLCBmYWxzZSwgZmFsc2UpOworCQkJZWxzZQorCQkJCXBy aW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgMTApLCBmYWxzZSwg ZmFsc2UpOwogCX0KIAl0ZXJtUFFFeHBCdWZmZXIoJmJ1Zik7CiAKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3BzcWwub3V0CmluZGV4IGMwMGUyODM2MWMuLmIwNDE5MjI0MTAgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9wc3FsLm91dApAQCAtNjYwNywzICs2NjA3LDU4IEBAIGNyb3Nz LWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogIm5vLnN1Y2guZGF0 YWJhc2UiLiJuby5zdWNoLnNjaGVtCiBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBu b3QgaW1wbGVtZW50ZWQ6ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJu by5zdWNoLmRhdGEudHlwZSIKIFxkWCAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2No ZW1hIi4ibm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNzIgogY3Jvc3MtZGF0YWJhc2UgcmVm ZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1 Y2guc2NoZW1hIi4ibm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNzIgorLS0gY2hlY2sgXGR1 CitDUkVBVEUgUk9MRSByZWdyZXNzX2R1X3JvbGUwOworQ1JFQVRFIFJPTEUgcmVncmVzc19k dV9yb2xlMTsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfZHVfcm9sZTI7CitDUkVBVEUgUk9MRSBy ZWdyZXNzX2R1X2FkbWluIExPR0lOIENSRUFURVJPTEU7CitDT01NRU5UIE9OIFJPTEUgcmVn cmVzc19kdV9yb2xlMCBJUyAnRGVzY3JpcHRpb24gZm9yIHJlZ3Jlc3NfZHVfcm9sZTAnOwor Q09NTUVOVCBPTiBST0xFIHJlZ3Jlc3NfZHVfcm9sZTEgSVMgJ0Rlc2NyaXB0aW9uIGZvciBy ZWdyZXNzX2R1X3JvbGUxJzsKK0NPTU1FTlQgT04gUk9MRSByZWdyZXNzX2R1X3JvbGUyIElT ICdEZXNjcmlwdGlvbiBmb3IgcmVncmVzc19kdV9yb2xlMic7CitDT01NRU5UIE9OIFJPTEUg cmVncmVzc19kdV9hZG1pbiBJUyAnRGVzY3JpcHRpb24gZm9yIHJlZ3Jlc3NfZHVfYWRtaW4n OworR1JBTlQgcmVncmVzc19kdV9yb2xlMCBUTyByZWdyZXNzX2R1X2FkbWluIFdJVEggQURN SU4gVFJVRTsKK0dSQU5UIHJlZ3Jlc3NfZHVfcm9sZTEgVE8gcmVncmVzc19kdV9hZG1pbiBX SVRIIEFETUlOIFRSVUU7CitHUkFOVCByZWdyZXNzX2R1X3JvbGUyIFRPIHJlZ3Jlc3NfZHVf YWRtaW4gV0lUSCBBRE1JTiBUUlVFOworR1JBTlQgcmVncmVzc19kdV9yb2xlMCBUTyByZWdy ZXNzX2R1X3JvbGUxIFdJVEggQURNSU4gVFJVRSwgIElOSEVSSVQgVFJVRSwgIFNFVCBUUlVF ICBHUkFOVEVEIEJZIHJlZ3Jlc3NfZHVfYWRtaW47CitHUkFOVCByZWdyZXNzX2R1X3JvbGUw IFRPIHJlZ3Jlc3NfZHVfcm9sZTIgV0lUSCBBRE1JTiBUUlVFLCAgSU5IRVJJVCBGQUxTRSwg U0VUIEZBTFNFIEdSQU5URUQgQlkgcmVncmVzc19kdV9hZG1pbjsKK0dSQU5UIHJlZ3Jlc3Nf ZHVfcm9sZTEgVE8gcmVncmVzc19kdV9yb2xlMiBXSVRIIEFETUlOIFRSVUUgLCBJTkhFUklU IEZBTFNFLCBTRVQgVFJVRSAgR1JBTlRFRCBCWSByZWdyZXNzX2R1X2FkbWluOworR1JBTlQg cmVncmVzc19kdV9yb2xlMCBUTyByZWdyZXNzX2R1X3JvbGUxIFdJVEggQURNSU4gRkFMU0Us IElOSEVSSVQgVFJVRSwgIFNFVCBGQUxTRSBHUkFOVEVEIEJZIHJlZ3Jlc3NfZHVfcm9sZTE7 CitHUkFOVCByZWdyZXNzX2R1X3JvbGUwIFRPIHJlZ3Jlc3NfZHVfcm9sZTIgV0lUSCBBRE1J TiBGQUxTRSwgSU5IRVJJVCBUUlVFICwgU0VUIFRSVUUgIEdSQU5URUQgQlkgcmVncmVzc19k dV9yb2xlMTsKK0dSQU5UIHJlZ3Jlc3NfZHVfcm9sZTAgVE8gcmVncmVzc19kdV9yb2xlMSBX SVRIIEFETUlOIEZBTFNFLCBJTkhFUklUIEZBTFNFLCBTRVQgVFJVRSAgR1JBTlRFRCBCWSBy ZWdyZXNzX2R1X3JvbGUyOworR1JBTlQgcmVncmVzc19kdV9yb2xlMCBUTyByZWdyZXNzX2R1 X3JvbGUyIFdJVEggQURNSU4gRkFMU0UsIElOSEVSSVQgRkFMU0UsIFNFVCBGQUxTRSBHUkFO VEVEIEJZIHJlZ3Jlc3NfZHVfcm9sZTI7CitcZHUgcmVncmVzc19kdV9hZG1pbnxyZWdyZXNz X2R1X3JvbGUqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg cm9sZXMKKyAgICBSb2xlIG5hbWUgICAgIHwgIEF0dHJpYnV0ZXMgIHwgICAgICAgICAgICAg ICAgICAgIE1lbWJlciBvZiAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19kdV9hZG1pbiB8IENyZWF0ZSByb2xlICB8IHJl Z3Jlc3NfZHVfcm9sZTAgZnJvbSBwYWwgKGEsIGksIHMpICAgICAgICAgICAgICsKKyAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgcmVncmVzc19kdV9yb2xlMSBmcm9tIHBh bCAoYSwgaSwgcykgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgfCByZWdyZXNzX2R1X3JvbGUyIGZyb20gcGFsIChhLCBpLCBzKQorIHJlZ3Jlc3Nf ZHVfcm9sZTAgfCBDYW5ub3QgbG9naW4gfCAKKyByZWdyZXNzX2R1X3JvbGUxIHwgQ2Fubm90 IGxvZ2luIHwgcmVncmVzc19kdV9yb2xlMCBmcm9tIHJlZ3Jlc3NfZHVfYWRtaW4gKGEsIGks IHMpKworICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCByZWdyZXNzX2R1X3Jv bGUwIGZyb20gcmVncmVzc19kdV9yb2xlMSAoaSkgICAgICArCisgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICB8IHJlZ3Jlc3NfZHVfcm9sZTAgZnJvbSByZWdyZXNzX2R1X3Jv bGUyIChzKQorIHJlZ3Jlc3NfZHVfcm9sZTIgfCBDYW5ub3QgbG9naW4gfCByZWdyZXNzX2R1 X3JvbGUwIGZyb20gcmVncmVzc19kdV9hZG1pbiAoYSkgICAgICArCisgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICB8IHJlZ3Jlc3NfZHVfcm9sZTAgZnJvbSByZWdyZXNzX2R1 X3JvbGUxIChpLCBzKSAgICsKKyAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwg cmVncmVzc19kdV9yb2xlMCBmcm9tIHJlZ3Jlc3NfZHVfcm9sZTIgKGVtcHR5KSAgKworICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCByZWdyZXNzX2R1X3JvbGUxIGZyb20g cmVncmVzc19kdV9hZG1pbiAoYSwgcykKKworXGR1KyByZWdyZXNzX2R1X2FkbWlufHJlZ3Jl c3NfZHVfcm9sZSoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTGlzdCBvZiByb2xlcworICAgIFJvbGUgbmFtZSAgICAgfCAgQXR0cmli dXRlcyAgfCAgICAgICAgICAgICAgICAgICAgTWVtYmVyIG9mICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgRGVzY3JpcHRpb24gICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg cmVncmVzc19kdV9hZG1pbiB8IENyZWF0ZSByb2xlICB8IHJlZ3Jlc3NfZHVfcm9sZTAgZnJv bSBwYWwgKGEsIGksIHMpICAgICAgICAgICAgICt8IERlc2NyaXB0aW9uIGZvciByZWdyZXNz X2R1X2FkbWluCisgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8IHJlZ3Jlc3Nf ZHVfcm9sZTEgZnJvbSBwYWwgKGEsIGksIHMpICAgICAgICAgICAgICt8IAorICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgfCByZWdyZXNzX2R1X3JvbGUyIGZyb20gcGFsIChh LCBpLCBzKSAgICAgICAgICAgICAgfCAKKyByZWdyZXNzX2R1X3JvbGUwIHwgQ2Fubm90IGxv Z2luIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgRGVzY3JpcHRpb24gZm9yIHJlZ3Jlc3NfZHVfcm9sZTAKKyByZWdyZXNzX2R1X3JvbGUx IHwgQ2Fubm90IGxvZ2luIHwgcmVncmVzc19kdV9yb2xlMCBmcm9tIHJlZ3Jlc3NfZHVfYWRt aW4gKGEsIGksIHMpK3wgRGVzY3JpcHRpb24gZm9yIHJlZ3Jlc3NfZHVfcm9sZTEKKyAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgcmVncmVzc19kdV9yb2xlMCBmcm9tIHJl Z3Jlc3NfZHVfcm9sZTEgKGkpICAgICAgK3wgCisgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICB8IHJlZ3Jlc3NfZHVfcm9sZTAgZnJvbSByZWdyZXNzX2R1X3JvbGUyIChzKSAg ICAgICB8IAorIHJlZ3Jlc3NfZHVfcm9sZTIgfCBDYW5ub3QgbG9naW4gfCByZWdyZXNzX2R1 X3JvbGUwIGZyb20gcmVncmVzc19kdV9hZG1pbiAoYSkgICAgICArfCBEZXNjcmlwdGlvbiBm b3IgcmVncmVzc19kdV9yb2xlMgorICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg fCByZWdyZXNzX2R1X3JvbGUwIGZyb20gcmVncmVzc19kdV9yb2xlMSAoaSwgcykgICArfCAK KyAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgcmVncmVzc19kdV9yb2xlMCBm cm9tIHJlZ3Jlc3NfZHVfcm9sZTIgKGVtcHR5KSAgK3wgCisgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICB8IHJlZ3Jlc3NfZHVfcm9sZTEgZnJvbSByZWdyZXNzX2R1X2FkbWlu IChhLCBzKSAgICB8IAorCitEUk9QIFJPTEUgcmVncmVzc19kdV9yb2xlMDsKK0RST1AgUk9M RSByZWdyZXNzX2R1X3JvbGUxOworRFJPUCBST0xFIHJlZ3Jlc3NfZHVfcm9sZTI7CitEUk9Q IFJPTEUgcmVncmVzc19kdV9hZG1pbjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3BzcWwuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwKaW5kZXggOTYx NzgzZDZlYS4uOWRjMWRhNDMyZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv cHNxbC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwKQEAgLTE4MTUs MyArMTgxNSwzMyBAQCBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7CiBcZFAgIm5vLnN1Y2gu ZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gucGFydGl0aW9uZWQucmVsYXRp b24iCiBcZFQgIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gu ZGF0YS50eXBlIgogXGRYICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJu by5zdWNoLmV4dGVuZGVkLnN0YXRpc3RpY3MiCisKKy0tIGNoZWNrIFxkdQorQ1JFQVRFIFJP TEUgcmVncmVzc19kdV9yb2xlMDsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfZHVfcm9sZTE7CitD UkVBVEUgUk9MRSByZWdyZXNzX2R1X3JvbGUyOworQ1JFQVRFIFJPTEUgcmVncmVzc19kdV9h ZG1pbiBMT0dJTiBDUkVBVEVST0xFOworQ09NTUVOVCBPTiBST0xFIHJlZ3Jlc3NfZHVfcm9s ZTAgSVMgJ0Rlc2NyaXB0aW9uIGZvciByZWdyZXNzX2R1X3JvbGUwJzsKK0NPTU1FTlQgT04g Uk9MRSByZWdyZXNzX2R1X3JvbGUxIElTICdEZXNjcmlwdGlvbiBmb3IgcmVncmVzc19kdV9y b2xlMSc7CitDT01NRU5UIE9OIFJPTEUgcmVncmVzc19kdV9yb2xlMiBJUyAnRGVzY3JpcHRp b24gZm9yIHJlZ3Jlc3NfZHVfcm9sZTInOworQ09NTUVOVCBPTiBST0xFIHJlZ3Jlc3NfZHVf YWRtaW4gSVMgJ0Rlc2NyaXB0aW9uIGZvciByZWdyZXNzX2R1X2FkbWluJzsKKworR1JBTlQg cmVncmVzc19kdV9yb2xlMCBUTyByZWdyZXNzX2R1X2FkbWluIFdJVEggQURNSU4gVFJVRTsK K0dSQU5UIHJlZ3Jlc3NfZHVfcm9sZTEgVE8gcmVncmVzc19kdV9hZG1pbiBXSVRIIEFETUlO IFRSVUU7CitHUkFOVCByZWdyZXNzX2R1X3JvbGUyIFRPIHJlZ3Jlc3NfZHVfYWRtaW4gV0lU SCBBRE1JTiBUUlVFOworCitHUkFOVCByZWdyZXNzX2R1X3JvbGUwIFRPIHJlZ3Jlc3NfZHVf cm9sZTEgV0lUSCBBRE1JTiBUUlVFLCAgSU5IRVJJVCBUUlVFLCAgU0VUIFRSVUUgIEdSQU5U RUQgQlkgcmVncmVzc19kdV9hZG1pbjsKK0dSQU5UIHJlZ3Jlc3NfZHVfcm9sZTAgVE8gcmVn cmVzc19kdV9yb2xlMiBXSVRIIEFETUlOIFRSVUUsICBJTkhFUklUIEZBTFNFLCBTRVQgRkFM U0UgR1JBTlRFRCBCWSByZWdyZXNzX2R1X2FkbWluOworR1JBTlQgcmVncmVzc19kdV9yb2xl MSBUTyByZWdyZXNzX2R1X3JvbGUyIFdJVEggQURNSU4gVFJVRSAsIElOSEVSSVQgRkFMU0Us IFNFVCBUUlVFICBHUkFOVEVEIEJZIHJlZ3Jlc3NfZHVfYWRtaW47CitHUkFOVCByZWdyZXNz X2R1X3JvbGUwIFRPIHJlZ3Jlc3NfZHVfcm9sZTEgV0lUSCBBRE1JTiBGQUxTRSwgSU5IRVJJ VCBUUlVFLCAgU0VUIEZBTFNFIEdSQU5URUQgQlkgcmVncmVzc19kdV9yb2xlMTsKK0dSQU5U IHJlZ3Jlc3NfZHVfcm9sZTAgVE8gcmVncmVzc19kdV9yb2xlMiBXSVRIIEFETUlOIEZBTFNF LCBJTkhFUklUIFRSVUUgLCBTRVQgVFJVRSAgR1JBTlRFRCBCWSByZWdyZXNzX2R1X3JvbGUx OworR1JBTlQgcmVncmVzc19kdV9yb2xlMCBUTyByZWdyZXNzX2R1X3JvbGUxIFdJVEggQURN SU4gRkFMU0UsIElOSEVSSVQgRkFMU0UsIFNFVCBUUlVFICBHUkFOVEVEIEJZIHJlZ3Jlc3Nf ZHVfcm9sZTI7CitHUkFOVCByZWdyZXNzX2R1X3JvbGUwIFRPIHJlZ3Jlc3NfZHVfcm9sZTIg V0lUSCBBRE1JTiBGQUxTRSwgSU5IRVJJVCBGQUxTRSwgU0VUIEZBTFNFIEdSQU5URUQgQlkg cmVncmVzc19kdV9yb2xlMjsKKworXGR1IHJlZ3Jlc3NfZHVfYWRtaW58cmVncmVzc19kdV9y b2xlKgorXGR1KyByZWdyZXNzX2R1X2FkbWlufHJlZ3Jlc3NfZHVfcm9sZSoKKworRFJPUCBS T0xFIHJlZ3Jlc3NfZHVfcm9sZTA7CitEUk9QIFJPTEUgcmVncmVzc19kdV9yb2xlMTsKK0RS T1AgUk9MRSByZWdyZXNzX2R1X3JvbGUyOworRFJPUCBST0xFIHJlZ3Jlc3NfZHVfYWRtaW47 Ci0tIAoyLjM0LjEKCg== --------------4Rfb027JwtKV6Ua3kyx65k8x--