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.94.2) (envelope-from ) id 1rb64K-00D9Z0-4d for pgsql-hackers@arkaria.postgresql.org; Fri, 16 Feb 2024 21:48:28 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rb64I-00522X-Ms for pgsql-hackers@arkaria.postgresql.org; Fri, 16 Feb 2024 21:48:26 +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.94.2) (envelope-from ) id 1rb64I-00522O-B9 for pgsql-hackers@lists.postgresql.org; Fri, 16 Feb 2024 21:48:26 +0000 Received: from mail-roabra01olkn2094.outbound.protection.outlook.com ([40.92.96.94] helo=BRA01-ROA-obe.outbound.protection.outlook.com) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rb64E-007ZRj-Mf for pgsql-hackers@postgresql.org; Fri, 16 Feb 2024 21:48:25 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZI/JAjagl0MdHzIWkRlS2Tx0aaOYNUjY/cgyjSL2cYiB8y16wzYNWnKtHvCPKc+RLQvLTgj1QUq8zdLptI79OGyHpVX2hMlnkYuAwvhjMKuL2nIhovXPGhOGSrQPRkfYlChRh9GJfnwKnUOUgYEPRBfb0uwDEAnXamTuu41LxcskSyKaBzvg/5ygeLoHpiBk1WwOkvJUSeGwHJMijd7gZH8Anons5zNDumCMMu0v9n55nhL2Amb9VZlmPTFZ9HLtoBoNBhZiW9c7Bj65n4bYnQoRd9GM4Ffo1eokocOvvGoRDjc99+uIPVKEgAEudBpOTaqFpylSw5kAkcAK9VqJ/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=AcXVSMVp1O0LdKT5etQRTgkBMk3QGh9lzuH7FSBHn5c=; b=jTWT93l1VTSOo+9EiKh/4w4CbBnVGCzHiCu1w5L/FcRlbQmlVf5elN3QiarJ3fJ6itAOdHC31bJ3QYSLOjx6nCwgna9Mhg/iQPB2En4MHWvz8Qb3TdlU9HCTUrnIbDZiBKx3UGWgYJ04aJlFOplho5ACXghZwyTroOt4S8ZGIWWDs+kZ0zclw1/Kni3fj5EPUk8UztClMUToqD0YZJ/KKM5LUsXjnaM08kTFb3brFML5CHuAPKARPXIrZ8gTPXc7P3SK+UKYzx7nbybFJr+2rMemOlZCF7/uGov7XWfBTBWxsXhkznNss9UJR499MLL15NCOKydspKldee25/HvR/w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from CP8P284MB2496.BRAP284.PROD.OUTLOOK.COM (2603:10d6:103:2dc::11) by CP5P284MB1791.BRAP284.PROD.OUTLOOK.COM (2603:10d6:103:f4::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.31; Fri, 16 Feb 2024 21:48:16 +0000 Received: from CP8P284MB2496.BRAP284.PROD.OUTLOOK.COM ([fe80::ce6:bf75:3d4a:97cf]) by CP8P284MB2496.BRAP284.PROD.OUTLOOK.COM ([fe80::ce6:bf75:3d4a:97cf%6]) with mapi id 15.20.7292.029; Fri, 16 Feb 2024 21:48:16 +0000 From: Maiquel Grassi To: Jim Jones , Pavel Luzanov , Nathan Bossart CC: Erik Wienhold , "pgsql-hackers@postgresql.org" Subject: RE: Psql meta-command conninfo+ Thread-Topic: Psql meta-command conninfo+ Thread-Index: AQHaWRQuU7L2MD2CX0quiO/hLxQK8bD9n9eAgAAOagCAABlrgoAABsOAgAABrYCAAAkRMoAAAaIAgABfmwKAAJe3AIAAHVoLgAAnEwCAADA+O4ABA4CAgAA4UGOAASa0gIAFGF5sgAMAW4CAAhkLZoAAKvw7gADbloCAAIliAQ== Date: Fri, 16 Feb 2024 21:48:16 +0000 Message-ID: References: <20240206215022.GA3452@nathanxps13> <852cabef-f596-4826-9a54-d3f75d9a6cc8@postgrespro.ru> <49edac91-d47f-4cac-ae12-d51cabbd87c9@postgrespro.ru> <49635a5b-3d32-4f05-8ce4-c55c70181888@uni-muenster.de> <8a93f6c0-795f-4260-a5fd-07ccbddbc88f@uni-muenster.de> In-Reply-To: <8a93f6c0-795f-4260-a5fd-07ccbddbc88f@uni-muenster.de> Accept-Language: pt-BR, en-US Content-Language: pt-BR X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [o3meF9OchCamz4Jt1FYVURRYve2ATgPy4WIkY6DCLIF+nDdzLbv4qOF9pDWuJYAV] x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CP8P284MB2496:EE_|CP5P284MB1791:EE_ x-ms-office365-filtering-correlation-id: fa52d19d-c02c-495e-6eae-08dc2f38fb4d x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ZAml2k8XpgheVqHB39XSKIUP9EfLtF1SOZp7ZRcDYSefgbkj0cpSAEUVQgfnrmGXAZ/l+UBU3EhoBgdYR4ioJwVsbhiR30Ax5Uq7CDy4QVj6+wqrfqT8LZpmdnB464HPDwtRTF7hWM4YWWk26tNuukOOxhYr5S5h+8eV68ktw6j5HHCMV+23inOYy+eXyQEIk1j+SY5Pcy2X09a6MyMOgzFJZrCrmoPcTsOkG1CwK6i8D6XaYXJD/VgGAIk8jibtysBw4gNVjE6onWebcSvFRqqvonVYX/XFIheiYSiwIQ6Yj3+Cv4unyfLPLspIjR0hEs0SKpA0Zc2rViroBZcc6Cp5yW9kodY9rqPyHCvtV78Q85A6buefvT57OT13DKdIrgBsgVZwAzz/BHhGOSGEAd/JM1hFbqqG7qYJGeSPPaCZvUYBzUdKjaBkbTY24ktHr6FVe5uLbSLL8bJXbxSBk1cXSrLFnwbQuB+kX1DeT+TE0mz68PtOIQr28qbzybEvu11sCfIor8O/13Ouuz2KpaMM4ehRUTH2GlMTlXtaEv/3Cbe6DHSsW0NAQiPwd7jt2XU5Ufm06MfmCAun9jDZxg/JKBJ0qw/0Ws93oWOuhGA24HCnxaJ7yX1GokJIrS0C x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?u5D3mtoY5XR21vb8PrvAWPyJXVMU5jnRSiJDRIQSNmRulYvZoyUn87Ynbj?= =?iso-8859-1?Q?13Hf0Ol/aNuQyUAp5m+ESALFnWBved5YbQ4F1tIp9LAzelwWwSlnLXU7dZ?= =?iso-8859-1?Q?EL5b3+4JO3nPT740uwFd2NFYc4l6I0nPReUbyxxcSMEOfr8J0KNrZrtqnx?= =?iso-8859-1?Q?lSrencp2hKbrkDSVIM88twdyQd1lQBKK375rb7Lq+s7q5zDZbRHIxHsUzi?= =?iso-8859-1?Q?8RXa6ihTcRx1l5egfCA5X+6qR1z95tiF6W8g8PFulpGlIrD1Evi2IMUtlE?= =?iso-8859-1?Q?XWlWFoJoRhqjqIB90H/wiEz70CouEos9l5vl5whVVm0NuneBunrT4ZRskl?= =?iso-8859-1?Q?2VcZ7H0z7FN1r1tJYq9I2Hrn8OZYosVETTM3OlS+gtWLVsBhR9/mapx1AN?= =?iso-8859-1?Q?YWgQYs/RVTVCfA9QnyKg42/tnu7t6rxO6TobLdAkpn0eLBwxYARbvHGb1+?= =?iso-8859-1?Q?L5gj+9qV61Hsif+NNRp98zNhDNz3gp6fW9ld9Kre+/F89N8tP7LkKB6r63?= =?iso-8859-1?Q?s2QQuH8pYrqLKPcgMGoYQTZXSNuGfy/ehV3Q4LZEr0gZncYwNesVTVOZ6W?= =?iso-8859-1?Q?XGyACVCyhHFu+ohDt8UrfmcFpooF61OkQ/9C++uukIE/gZlHaEVGvnJ8Vd?= =?iso-8859-1?Q?VsIMx/PYGrMLZ+nqelIGOqYg5z2H2xK6IlQVtT5TjE0BMcRSx9ZAUZb9jM?= =?iso-8859-1?Q?0tZzr1FGl2hP1d3aPU4DHM8M5D7oNLDvyPWdHgTJ2/HkS6/u/tekoPdmb0?= =?iso-8859-1?Q?hZrrItVycW5V8Sfwjcm5f5bdiGwnh8Ljqw4EcVCTKLHperoHOL9D684HQB?= =?iso-8859-1?Q?dyGPSuTbMzfiDTSblv+H5qjJ3/WeRO9DFAttZ35e7E8GPjM6rz2G/eqX7f?= =?iso-8859-1?Q?+j4TWkfUIByP1/TXxtqFpJOb/wH/w2HqizfsgEQldi6ZSKgX30+bG3Tu5M?= =?iso-8859-1?Q?YoI6dqO7YAWfG8+VrWtJevrPdh1LBQF+xYcVo5n5snztbf7gbXftHfgez/?= =?iso-8859-1?Q?Rs0BeOmMRGq3rCrJ1ntU9XNMsu474hWIPrEcV0zi7b8OvHbpK5wgffgUkc?= =?iso-8859-1?Q?JYShNznmAiJCeMYexmVPzDpzn6cCJR5x7GuryXzZhgqovwtA9hVAfIC35R?= =?iso-8859-1?Q?K+4JRjU1hwICqY0XM59OgSYMY5NEllXZ2Oqq1hKa15r2PEF0wHKmJjhHYc?= =?iso-8859-1?Q?qEZ84wgtXtAWrUdA4b1fn5UW+fpi+pA3KwaasEATXqCrEOCHcEFIIvMDXD?= =?iso-8859-1?Q?aVQhxf2dUvJkLegFSf4wsS7IIE/yjuG/G6LIUX2u/5KjRIDaEyxkeQbTLI?= =?iso-8859-1?Q?ZOkiNPKCMffpseZjskNGtQ89p9JgLfftt0Yh1rxXLCAdYXI=3D?= Content-Type: multipart/mixed; boundary="_004_CP8P284MB2496093A2E465801D5B8134BEC4C2CP8P284MB2496BRAP_" MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-7dc52.templateTenant X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CP8P284MB2496.BRAP284.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: fa52d19d-c02c-495e-6eae-08dc2f38fb4d X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Feb 2024 21:48:16.0211 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CP5P284MB1791 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_004_CP8P284MB2496093A2E465801D5B8134BEC4C2CP8P284MB2496BRAP_ Content-Type: multipart/alternative; boundary="_000_CP8P284MB2496093A2E465801D5B8134BEC4C2CP8P284MB2496BRAP_" --_000_CP8P284MB2496093A2E465801D5B8134BEC4C2CP8P284MB2496BRAP_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi! >7) -h 0.0.0.0 - As you mentioned, this is one of the cases where host >and "server address" differ. > I am not sure if it is an issue. Perhaps the other reviewers might >have an opinion on it >$ /usr/local/postgres-dev/bin/psql -x -U postgres -h 0.0.0.0 -c >"\conninfo+" -c "\conninfo" >Current Connection Information >-[ RECORD 1 ]------+----------------------- >Database | postgres >Authenticated User | postgres >System User | >Current User | postgres >Session User | postgres >Backend PID | 404395 >Server Address | 127.0.0.1 >Server Port | 5432 >Client Address | 127.0.0.1 >Client Port | 54806 >Socket Directory | >Host | 0.0.0.0 >Encryption | SSL >Protocol | TLSv1.3 >Cipher | TLS_AES_256_GCM_SHA384 >Compression | off I believe we don't actually have a problem here. To me, this makes sense. I'm not a Networking expert, but from my standpoint, any string or IP accepted by the "host" parameter of psql, pointing to "127.0.0.1" or to "::= 1", is correct. I see it as a convention (would need to revisit Tanenbaum's books haha), and I don't think there's a need to modify it. But as you mentioned, if som= eone with more Networking knowledge could weigh in, a suggestion would be welcom= e. >I'm not sure of the impact of this change in the existing \conninfo - at >least the cfbot and "make -j check-world" didn't complain. >I'll take a closer look at it as soon we have test cases. This type of modification, in principle, does not generate errors as we are only changing the display on screen of the strings already previously s= tored. >To keep it consistent with the other options, we might wanna use "+ is >appended" instead of "+ is specified" or "+ is given" It seems to me that "appended" sounds good. I opted for it. Following your suggestion, and merging this with the existing previous ideas from the documentation, I've created a provisional prototype of the column descriptions. At a later stage, I'll place the descriptions correctly by removing placeholders (blah blah blah). Along with this, I'll evaluate an iteration suggested by Nathan Bossart, who also proposed changes. Thank you for your work. Regards, Maiquel Grassi. --_000_CP8P284MB2496093A2E465801D5B8134BEC4C2CP8P284MB2496BRAP_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable

H= i!

>7) -h 0.0.0.0 - As you mentioned, this is one of the cases where host >and "server address" differ.
>   I am not sure if it is an issue. Perhaps the other reviewe= rs might
>have an opinion on it

>$ /usr/local/postgres-dev/bin/psql -x -U postgr= es -h 0.0.0.0 -c
>"\conninfo+" -c "\conninfo"
>Current Connection Information
>-[ RECORD 1 ]------+-----------------------
>Database           | = postgres
>Authenticated User | postgres
>System User        |
>Current User       | postgres
>Session User       | postgres
>Backend PID        | 404395
>Server Address     | 127.0.0.1
>Server Port        | 5432
>Client Address     | 127.0.0.1
>Client Port        | 54806
>Socket Directory   |
>Host           &= nbsp;   | 0.0.0.0
>Encryption         | SSL
>Protocol           | = TLSv1.3
>Cipher           = ;  | TLS_AES_256_GCM_SHA384
>Compression        | off

I believe we don't actually have a problem here. To me, this makes sense. I'm not a Networking expert, but from my standpoint, any string or IP
accepted by the "host" parameter of psql, pointing to "127.0= .0.1" or to "::1", is correct.
I see it as a convention (would need to revisit Tanenbaum's books haha), and I don't think there's a need to modify it. But as you mentioned, if som= eone
with more Networking knowledge could weigh in, a suggestion would be welcom= e.

>I'm not sure of the impact of this change in the existing \conninfo - a= t
>least the cfbot and "make -j check-world" didn't complain. >I'll take a closer look at it as soon we have test cases.

This type of modification, in principle, does not generate errors as we
are only changing the display on screen of the strings already previously s= tored.

>To keep it consistent with the other options, we might wanna use "= + is
>appended" instead of "+ is specified" or "+ is give= n"

It seems to me that "appended" sounds good. I opted for it.
Following your suggestion, and merging this with the existing
previous ideas from the documentation, I've created a provisional
prototype of the column descriptions. At a later stage, I'll place the
descriptions correctly by removing placeholders (blah blah blah).
Along with this, I'll evaluate an iteration suggested by Nathan Bossart,

= who also proposed changes.

Thank you for your work.

Regards,
Maiquel Grassi.

--_000_CP8P284MB2496093A2E465801D5B8134BEC4C2CP8P284MB2496BRAP_-- --_004_CP8P284MB2496093A2E465801D5B8134BEC4C2CP8P284MB2496BRAP_ Content-Type: application/octet-stream; name="v17-0001-psql-meta-command-conninfo-plus.patch" Content-Description: v17-0001-psql-meta-command-conninfo-plus.patch Content-Disposition: attachment; filename="v17-0001-psql-meta-command-conninfo-plus.patch"; size=11708; creation-date="Fri, 16 Feb 2024 21:36:14 GMT"; modification-date="Fri, 16 Feb 2024 21:42:26 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbCBiL2RvYy9zcmMvc2dt bC9yZWYvcHNxbC1yZWYuc2dtbAppbmRleCBjYzdkNzk3Li4xMDczMmIyIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wc3Fs LXJlZi5zZ21sCkBAIC0xMDI5LDExICsxMDI5LDk2IEBAIElOU0VSVCBJTlRPIHRibDEgVkFMVUVT ICgkMSwgJDIpIFxiaW5kICdmaXJzdCB2YWx1ZScgJ3NlY29uZCB2YWx1ZScgXGcKICAgICAgIDwv dmFybGlzdGVudHJ5PgogCiAgICAgICA8dmFybGlzdGVudHJ5IGlkPSJhcHAtcHNxbC1tZXRhLWNv bW1hbmQtY29ubmluZm8iPgotICAgICAgICA8dGVybT48bGl0ZXJhbD5cY29ubmluZm88L2xpdGVy YWw+PC90ZXJtPgorICAgICAgICA8dGVybT48bGl0ZXJhbD5cY29ubmluZm9bK108L2xpdGVyYWw+ PC90ZXJtPgogICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgIDxwYXJhPgogICAgICAgICBPdXRw dXRzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50IGRhdGFiYXNlIGNvbm5lY3Rpb24uCisg ICAgICAgIFdoZW4gbm8gPGxpdGVyYWw+KzwvbGl0ZXJhbD4gaXMgYXBwZW5kZWQsIGl0IHNpbXBs eSBwcmludHMKKyAgICAgICAgYSB0ZXh0dWFsIChzdHJpbmcpIGRlc2NyaXB0aW9uIG9mIGEgZmV3 IGNvbm5lY3Rpb24gb3B0aW9ucy4KKyAgICAgICAgV2hlbiA8bGl0ZXJhbD4rPC9saXRlcmFsPiBp cyBnaXZlbiwgbW9yZSBjb21wbGV0ZSBpbmZvcm1hdGlvbgorICAgICAgICBpcyBkaXNwbGF5ZWQg YXMgYSB0YWJsZSBjb250YWluaW5nIHRoZSBmb2xsb3dpbmcgY29sdW1ucy4KICAgICAgICAgPC9w YXJhPgorCisgICAgICAgIDxwYXJhPgorICAgICAgICBHZW5lcmFsIGNvbHVtbnM6CisgICAgICAg IDwvcGFyYT4KKworICAgICAgICA8cGFyYT4KKyAgICAgICAgPGxpdGVyYWw+RGF0YWJhc2U6PC9s aXRlcmFsPiBibGFoIGJsYWggYmxhaAorICAgICAgICA8L3BhcmE+CisKKyAgICAgICAgPHBhcmE+ CisgICAgICAgIDxsaXRlcmFsPkF1dGhlbnRpY2F0ZWQgVXNlcjo8L2xpdGVyYWw+IGJsYWggYmxh aCBibGFoCisgICAgICAgIDwvcGFyYT4KKworICAgICAgICA8cGFyYT4KKyAgICAgICAgPGxpdGVy YWw+U3lzdGVtIFVzZXI6PC9saXRlcmFsPiBibGFoIGJsYWggYmxhaAorICAgICAgICA8L3BhcmE+ CisKKyAgICAgICAgPHBhcmE+CisgICAgICAgIDxsaXRlcmFsPkN1cnJlbnQgVXNlcjo8L2xpdGVy YWw+IGJsYWggYmxhaCBibGFoCisgICAgICAgIDwvcGFyYT4KKworICAgICAgICA8cGFyYT4KKyAg ICAgICAgPGxpdGVyYWw+U2Vzc2lvbiBVc2VyOjwvbGl0ZXJhbD4gYmxhaCBibGFoIGJsYWgKKyAg ICAgICAgPC9wYXJhPgorCisgICAgICAgIDxwYXJhPgorICAgICAgICA8bGl0ZXJhbD5CYWNrZW5k IFBJRDo8L2xpdGVyYWw+IGJsYWggYmxhaCBibGFoCisgICAgICAgIDwvcGFyYT4KKworICAgICAg ICA8cGFyYT4KKyAgICAgICAgPGxpdGVyYWw+U2VydmVyIEFkZHJlc3M6PC9saXRlcmFsPiBibGFo IGJsYWggYmxhaAorICAgICAgICA8L3BhcmE+CisKKyAgICAgICAgPHBhcmE+CisgICAgICAgIDxs aXRlcmFsPlNlcnZlciBQb3J0OjwvbGl0ZXJhbD4gYmxhaCBibGFoIGJsYWgKKyAgICAgICAgPC9w YXJhPgorCisgICAgICAgIDxwYXJhPgorICAgICAgICA8bGl0ZXJhbD5DbGllbnQgQWRkcmVzczo8 L2xpdGVyYWw+IGJsYWggYmxhaCBibGFoCisgICAgICAgIDwvcGFyYT4KKworICAgICAgICA8cGFy YT4KKyAgICAgICAgPGxpdGVyYWw+Q2xpZW50IFBvcnQ6PC9saXRlcmFsPiBibGFoIGJsYWggYmxh aAorICAgICAgICA8L3BhcmE+CisKKyAgICAgICAgPHBhcmE+CisgICAgICAgIDxsaXRlcmFsPlNv Y2tldCBEaXJlY3Rvcnk6PC9saXRlcmFsPiBibGFoIGJsYWggYmxhaAorICAgICAgICA8L3BhcmE+ CisKKyAgICAgICAgPHBhcmE+CisgICAgICAgIDxsaXRlcmFsPkhvc3Q6PC9saXRlcmFsPiBibGFo IGJsYWggYmxhaAorICAgICAgICA8L3BhcmE+CisKKyAgICAgICAgPHBhcmE+CisgICAgICAgIFRM UyAoU1NMKSBhdXRoZW50aWNhdGlvbiBjb2x1bW5zOgorICAgICAgICA8L3BhcmE+CisKKyAgICAg ICAgPHBhcmE+CisgICAgICAgIDxsaXRlcmFsPkVuY3J5cHRpb246PC9saXRlcmFsPiBibGFoIGJs YWggYmxhaAorICAgICAgICA8L3BhcmE+CisKKyAgICAgICAgPHBhcmE+CisgICAgICAgIDxsaXRl cmFsPlByb3RvY29sOjwvbGl0ZXJhbD4gYmxhaCBibGFoIGJsYWgKKyAgICAgICAgPC9wYXJhPgor CisgICAgICAgIDxwYXJhPgorICAgICAgICA8bGl0ZXJhbD5DaXBoZXI6PC9saXRlcmFsPiBibGFo IGJsYWggYmxhaAorICAgICAgICA8L3BhcmE+CisKKyAgICAgICAgPHBhcmE+CisgICAgICAgIDxs aXRlcmFsPkNvbXByZXNzaW9uOjwvbGl0ZXJhbD4gYmxhaCBibGFoIGJsYWgKKyAgICAgICAgPC9w YXJhPgorCisgICAgICAgIDxwYXJhPgorICAgICAgICBHU1MgYXV0aGVudGljYXRpb24gY29sdW1u OgorICAgICAgICA8L3BhcmE+CisKKyAgICAgICAgPHBhcmE+CisgICAgICAgIDxsaXRlcmFsPkdT U0FQSTo8L2xpdGVyYWw+IGJsYWggYmxhaCBibGFoCisgICAgICAgIDwvcGFyYT4KKwogICAgICAg ICA8L2xpc3RpdGVtPgogICAgICAgPC92YXJsaXN0ZW50cnk+CiAKZGlmZiAtLWdpdCBhL3NyYy9i aW4vcHNxbC9jb21tYW5kLmMgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5jCmluZGV4IDVjOTA2ZTQu LmNiNTQyOWYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKKysrIGIvc3JjL2Jp bi9wc3FsL2NvbW1hbmQuYwpAQCAtNjgsNyArNjgsOCBAQCBzdGF0aWMgYmFja3NsYXNoUmVzdWx0 IGV4ZWNfY29tbWFuZF9DKFBzcWxTY2FuU3RhdGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVfYnJh bgogc3RhdGljIGJhY2tzbGFzaFJlc3VsdCBleGVjX2NvbW1hbmRfY29ubmVjdChQc3FsU2NhblN0 YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCk7CiBzdGF0aWMgYmFja3NsYXNoUmVz dWx0IGV4ZWNfY29tbWFuZF9jZChQc3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZl X2JyYW5jaCwKIAkJCQkJCQkJCSAgIGNvbnN0IGNoYXIgKmNtZCk7Ci1zdGF0aWMgYmFja3NsYXNo UmVzdWx0IGV4ZWNfY29tbWFuZF9jb25uaW5mbyhQc3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsIGJv b2wgYWN0aXZlX2JyYW5jaCk7CitzdGF0aWMgYmFja3NsYXNoUmVzdWx0IGV4ZWNfY29tbWFuZF9j b25uaW5mbyhQc3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCwKKwkJ CQkJCQkJCQkJIGNvbnN0IGNoYXIgKmNtZCk7CiBzdGF0aWMgYmFja3NsYXNoUmVzdWx0IGV4ZWNf Y29tbWFuZF9jb3B5KFBzcWxTY2FuU3RhdGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVfYnJhbmNo KTsKIHN0YXRpYyBiYWNrc2xhc2hSZXN1bHQgZXhlY19jb21tYW5kX2NvcHlyaWdodChQc3FsU2Nh blN0YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCk7CiBzdGF0aWMgYmFja3NsYXNo UmVzdWx0IGV4ZWNfY29tbWFuZF9jcm9zc3RhYnZpZXcoUHNxbFNjYW5TdGF0ZSBzY2FuX3N0YXRl LCBib29sIGFjdGl2ZV9icmFuY2gpOwpAQCAtMzE3LDggKzMxOCw4IEBAIGV4ZWNfY29tbWFuZChj b25zdCBjaGFyICpjbWQsCiAJCXN0YXR1cyA9IGV4ZWNfY29tbWFuZF9jb25uZWN0KHNjYW5fc3Rh dGUsIGFjdGl2ZV9icmFuY2gpOwogCWVsc2UgaWYgKHN0cmNtcChjbWQsICJjZCIpID09IDApCiAJ CXN0YXR1cyA9IGV4ZWNfY29tbWFuZF9jZChzY2FuX3N0YXRlLCBhY3RpdmVfYnJhbmNoLCBjbWQp OwotCWVsc2UgaWYgKHN0cmNtcChjbWQsICJjb25uaW5mbyIpID09IDApCi0JCXN0YXR1cyA9IGV4 ZWNfY29tbWFuZF9jb25uaW5mbyhzY2FuX3N0YXRlLCBhY3RpdmVfYnJhbmNoKTsKKwllbHNlIGlm IChzdHJjbXAoY21kLCAiY29ubmluZm8iKSA9PSAwIHx8IHN0cmNtcChjbWQsICJjb25uaW5mbysi KSA9PSAwKQorCQlzdGF0dXMgPSBleGVjX2NvbW1hbmRfY29ubmluZm8oc2Nhbl9zdGF0ZSwgYWN0 aXZlX2JyYW5jaCwgY21kKTsKIAllbHNlIGlmIChwZ19zdHJjYXNlY21wKGNtZCwgImNvcHkiKSA9 PSAwKQogCQlzdGF0dXMgPSBleGVjX2NvbW1hbmRfY29weShzY2FuX3N0YXRlLCBhY3RpdmVfYnJh bmNoKTsKIAllbHNlIGlmIChzdHJjbXAoY21kLCAiY29weXJpZ2h0IikgPT0gMCkKQEAgLTY0Myw0 NyArNjQ0LDgwIEBAIGV4ZWNfY29tbWFuZF9jZChQc3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsIGJv b2wgYWN0aXZlX2JyYW5jaCwgY29uc3QgY2hhciAqY21kKQogfQogCiAvKgotICogXGNvbm5pbmZv IC0tIGRpc3BsYXkgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnQgY29ubmVjdGlvbgorICog XGNvbm5pbmZvLCBcY29ubmluZm8rIC0tIGRpc3BsYXkgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1 cnJlbnQgY29ubmVjdGlvbgogICovCiBzdGF0aWMgYmFja3NsYXNoUmVzdWx0Ci1leGVjX2NvbW1h bmRfY29ubmluZm8oUHNxbFNjYW5TdGF0ZSBzY2FuX3N0YXRlLCBib29sIGFjdGl2ZV9icmFuY2gp CitleGVjX2NvbW1hbmRfY29ubmluZm8oUHNxbFNjYW5TdGF0ZSBzY2FuX3N0YXRlLCBib29sIGFj dGl2ZV9icmFuY2gsIGNvbnN0IGNoYXIgKmNtZCkKIHsKKwlib29sCQlzdWNjZXNzID0gdHJ1ZTsK KwogCWlmIChhY3RpdmVfYnJhbmNoKQogCXsKIAkJY2hhcgkgICAqZGIgPSBQUWRiKHBzZXQuZGIp OworCQlib29sCQlzaG93X3ZlcmJvc2U7CisKKwkJc2hvd192ZXJib3NlID0gc3RyY2hyKGNtZCwg JysnKSA/IHRydWUgOiBmYWxzZTsKIAotCQlpZiAoZGIgPT0gTlVMTCkKLQkJCXByaW50ZihfKCJZ b3UgYXJlIGN1cnJlbnRseSBub3QgY29ubmVjdGVkIHRvIGEgZGF0YWJhc2UuXG4iKSk7CisJCS8q CisJCSAqIFxjb25uaW5mbysKKwkJICovCisJCWlmIChzaG93X3ZlcmJvc2UpCisJCQlzdWNjZXNz ID0gbGlzdENvbm5lY3Rpb25JbmZvcm1hdGlvbigpOworCisJCS8qCisJCSAqIFxjb25uaW5mbwor CQkgKi8KIAkJZWxzZQogCQl7Ci0JCQljaGFyCSAgICpob3N0ID0gUFFob3N0KHBzZXQuZGIpOwot CQkJY2hhcgkgICAqaG9zdGFkZHIgPSBQUWhvc3RhZGRyKHBzZXQuZGIpOworCQkJUEdyZXN1bHQg ICAqcmVzOworCQkJUFFFeHBCdWZmZXJEYXRhIGJ1ZjsKIAotCQkJaWYgKGlzX3VuaXhzb2NrX3Bh dGgoaG9zdCkpCi0JCQl7Ci0JCQkJLyogaG9zdGFkZHIgb3ZlcnJpZGVzIGhvc3QgKi8KLQkJCQlp ZiAoaG9zdGFkZHIgJiYgKmhvc3RhZGRyKQotCQkJCQlwcmludGYoXygiWW91IGFyZSBjb25uZWN0 ZWQgdG8gZGF0YWJhc2UgXCIlc1wiIGFzIHVzZXIgXCIlc1wiIG9uIGFkZHJlc3MgXCIlc1wiIGF0 IHBvcnQgXCIlc1wiLlxuIiksCi0JCQkJCQkgICBkYiwgUFF1c2VyKHBzZXQuZGIpLCBob3N0YWRk ciwgUFFwb3J0KHBzZXQuZGIpKTsKLQkJCQllbHNlCi0JCQkJCXByaW50ZihfKCJZb3UgYXJlIGNv bm5lY3RlZCB0byBkYXRhYmFzZSBcIiVzXCIgYXMgdXNlciBcIiVzXCIgdmlhIHNvY2tldCBpbiBc IiVzXCIgYXQgcG9ydCBcIiVzXCIuXG4iKSwKLQkJCQkJCSAgIGRiLCBQUXVzZXIocHNldC5kYiks IGhvc3QsIFBRcG9ydChwc2V0LmRiKSk7Ci0JCQl9CisJCQlpbml0UFFFeHBCdWZmZXIoJmJ1Zik7 CisKKwkJCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkJICAiU0VMRUNUXG4iCisJCQkJ CQkJICAiICBpbmV0X3NlcnZlcl9hZGRyKCk7Iik7CisKKwkJCXJlcyA9IFBTUUxleGVjKGJ1Zi5k YXRhKTsKKworCQkJdGVybVBRRXhwQnVmZmVyKCZidWYpOworCisJCQlpZiAoIXJlcykKKwkJCQly ZXR1cm4gUFNRTF9DTURfRVJST1I7CiAJCQllbHNlCiAJCQl7Ci0JCQkJaWYgKGhvc3RhZGRyICYm ICpob3N0YWRkciAmJiBzdHJjbXAoaG9zdCwgaG9zdGFkZHIpICE9IDApCi0JCQkJCXByaW50Zihf KCJZb3UgYXJlIGNvbm5lY3RlZCB0byBkYXRhYmFzZSBcIiVzXCIgYXMgdXNlciBcIiVzXCIgb24g aG9zdCBcIiVzXCIgKGFkZHJlc3MgXCIlc1wiKSBhdCBwb3J0IFwiJXNcIi5cbiIpLAotCQkJCQkJ ICAgZGIsIFBRdXNlcihwc2V0LmRiKSwgaG9zdCwgaG9zdGFkZHIsIFBRcG9ydChwc2V0LmRiKSk7 CisJCQkJY2hhcgkgICAqaG9zdCA9IFBRaG9zdChwc2V0LmRiKTsKKwkJCQljaGFyCSAgICpob3N0 YWRkciA9IFBRaG9zdGFkZHIocHNldC5kYik7CisKKwkJCQlpZiAoaXNfdW5peHNvY2tfcGF0aCho b3N0KSkKKwkJCQl7CisJCQkJCS8qIGhvc3RhZGRyIG92ZXJyaWRlcyBob3N0ICovCisJCQkJCWlm IChob3N0YWRkciAmJiAqaG9zdGFkZHIpCisJCQkJCQlwcmludGYoXygiWW91IGFyZSBjb25uZWN0 ZWQgdG8gZGF0YWJhc2UgXCIlc1wiIGFzIHVzZXIgXCIlc1wiIG9uIGFkZHJlc3MgXCIlc1wiIGF0 IHBvcnQgXCIlc1wiLlxuIiksCisJCQkJCQkJICAgZGIsIFBRdXNlcihwc2V0LmRiKSwgUFFnZXR2 YWx1ZShyZXMsIDAsIDApLCBQUXBvcnQocHNldC5kYikpOworCQkJCQllbHNlCisJCQkJCQlwcmlu dGYoXygiWW91IGFyZSBjb25uZWN0ZWQgdG8gZGF0YWJhc2UgXCIlc1wiIGFzIHVzZXIgXCIlc1wi IHZpYSBzb2NrZXQgaW4gXCIlc1wiIGF0IHBvcnQgXCIlc1wiLlxuIiksCisJCQkJCQkJICAgZGIs IFBRdXNlcihwc2V0LmRiKSwgaG9zdCwgUFFwb3J0KHBzZXQuZGIpKTsKKwkJCQl9CiAJCQkJZWxz ZQotCQkJCQlwcmludGYoXygiWW91IGFyZSBjb25uZWN0ZWQgdG8gZGF0YWJhc2UgXCIlc1wiIGFz IHVzZXIgXCIlc1wiIG9uIGhvc3QgXCIlc1wiIGF0IHBvcnQgXCIlc1wiLlxuIiksCi0JCQkJCQkg ICBkYiwgUFF1c2VyKHBzZXQuZGIpLCBob3N0LCBQUXBvcnQocHNldC5kYikpOworCQkJCXsKKwkJ CQkJaWYgKGhvc3RhZGRyICYmICpob3N0YWRkciAmJiBzdHJjbXAoaG9zdCwgaG9zdGFkZHIpICE9 IDApCisJCQkJCQlwcmludGYoXygiWW91IGFyZSBjb25uZWN0ZWQgdG8gZGF0YWJhc2UgXCIlc1wi IGFzIHVzZXIgXCIlc1wiIG9uIGhvc3QgXCIlc1wiIChhZGRyZXNzIFwiJXNcIikgYXQgcG9ydCBc IiVzXCIuXG4iKSwKKwkJCQkJCQkgICBkYiwgUFF1c2VyKHBzZXQuZGIpLCBob3N0LCBQUWdldHZh bHVlKHJlcywgMCwgMCksIFBRcG9ydChwc2V0LmRiKSk7CisJCQkJCWVsc2UKKwkJCQkJCXByaW50 ZihfKCJZb3UgYXJlIGNvbm5lY3RlZCB0byBkYXRhYmFzZSBcIiVzXCIgYXMgdXNlciBcIiVzXCIg b24gaG9zdCBcIiVzXCIgYXQgcG9ydCBcIiVzXCIuXG4iKSwKKwkJCQkJCQkgICBkYiwgUFF1c2Vy KHBzZXQuZGIpLCBob3N0LCBQUXBvcnQocHNldC5kYikpOworCQkJCX0KKwkJCQlQUWNsZWFyKHJl cyk7CisJCQkJcHJpbnRTU0xJbmZvKCk7CisJCQkJcHJpbnRHU1NJbmZvKCk7CiAJCQl9Ci0JCQlw cmludFNTTEluZm8oKTsKLQkJCXByaW50R1NTSW5mbygpOwogCQl9CiAJfQorCWVsc2UKKwkJaWdu b3JlX3NsYXNoX29wdGlvbnMoc2Nhbl9zdGF0ZSk7CiAKLQlyZXR1cm4gUFNRTF9DTURfU0tJUF9M SU5FOworCXJldHVybiBzdWNjZXNzID8gUFNRTF9DTURfU0tJUF9MSU5FIDogUFNRTF9DTURfRVJS T1I7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9i aW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IGI2YTRlYjEuLjJlZjNkYjAgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC0y Niw2ICsyNiw3IEBACiAjaW5jbHVkZSAiZmVfdXRpbHMvbWJwcmludC5oIgogI2luY2x1ZGUgImZl X3V0aWxzL3ByaW50LmgiCiAjaW5jbHVkZSAiZmVfdXRpbHMvc3RyaW5nX3V0aWxzLmgiCisjaW5j bHVkZSAibGlicHEvcHFjb21tLmgiCiAjaW5jbHVkZSAic2V0dGluZ3MuaCIKICNpbmNsdWRlICJ2 YXJpYWJsZXMuaCIKIApAQCAtOTAxLDYgKzkwMiw5MSBAQCBlcnJvcl9yZXR1cm46CiAJcmV0dXJu IGZhbHNlOwogfQogCisvKgorICogbGlzdENvbm5lY3Rpb25JbmZvcm1hdGlvbgorICoKKyAqIGZv ciBcY29ubmluZm8rCisgKi8KK2Jvb2wKK2xpc3RDb25uZWN0aW9uSW5mb3JtYXRpb24odm9pZCkK K3sKKwlQR3Jlc3VsdCAgICpyZXM7CisJUFFFeHBCdWZmZXJEYXRhIGJ1ZjsKKwlwcmludFF1ZXJ5 T3B0IG15b3B0ID0gcHNldC5wb3B0OworCisJY2hhcgkgICAqaG9zdCA9IFBRaG9zdChwc2V0LmRi KTsKKwljaGFyCSAgICpob3N0YWRkciA9IFBRaG9zdGFkZHIocHNldC5kYik7CisJY29uc3QgY2hh ciAqcHJvdG9jb2w7CisJY29uc3QgY2hhciAqY2lwaGVyOworCWNvbnN0IGNoYXIgKmNvbXByZXNz aW9uOworCisJaW5pdFBRRXhwQnVmZmVyKCZidWYpOworCisJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1 ZiwKKwkJCQkJICAiU0VMRUNUXG4iCisJCQkJCSAgIiAgcGdfY2F0YWxvZy5jdXJyZW50X2RhdGFi YXNlKCkgQVMgXCJEYXRhYmFzZVwiLFxuIgorCQkJCQkgICIgICclcycgQVMgXCJBdXRoZW50aWNh dGVkIFVzZXJcIixcbiIsCisJCQkJCSAgUFF1c2VyKHBzZXQuZGIpKTsKKwlpZiAocHNldC5zdmVy c2lvbiA+PSAxNjAwMDApCisJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkgICIgIHBn X2NhdGFsb2cuc3lzdGVtX3VzZXIoKSBBUyBcIlN5c3RlbSBVc2VyXCIsXG4iKTsKKwlhcHBlbmRQ UUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkgICIgIHBnX2NhdGFsb2cuY3VycmVudF91c2VyKCkgQVMg XCJDdXJyZW50IFVzZXJcIixcbiIKKwkJCQkJICAiICBwZ19jYXRhbG9nLnNlc3Npb25fdXNlcigp IEFTIFwiU2Vzc2lvbiBVc2VyXCIsXG4iCisJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19iYWNrZW5k X3BpZCgpIEFTIFwiQmFja2VuZCBQSURcIixcbiIKKwkJCQkJICAiICBwZ19jYXRhbG9nLmluZXRf c2VydmVyX2FkZHIoKSBBUyBcIlNlcnZlciBBZGRyZXNzXCIsXG4iCisJCQkJCSAgIiAgcGdfY2F0 YWxvZy5jdXJyZW50X3NldHRpbmcoJ3BvcnQnKSBBUyBcIlNlcnZlciBQb3J0XCIsXG4iCisJCQkJ CSAgIiAgcGdfY2F0YWxvZy5pbmV0X2NsaWVudF9hZGRyKCkgQVMgXCJDbGllbnQgQWRkcmVzc1wi LFxuIgorCQkJCQkgICIgIHBnX2NhdGFsb2cuaW5ldF9jbGllbnRfcG9ydCgpIEFTIFwiQ2xpZW50 IFBvcnRcIixcbiIpOworCWlmIChpc191bml4c29ja19wYXRoKGhvc3QpICYmICEoaG9zdGFkZHIg JiYgKmhvc3RhZGRyKSkKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCSAgIiAgJyVz JyBBUyBcIlNvY2tldCBEaXJlY3RvcnlcIixcbiIsCisJCQkJCQkgIGhvc3QpOworCWVsc2UKKwkJ YXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCSAgIiAgTlVMTCBBUyBcIlNvY2tldCBEaXJl Y3RvcnlcIixcbiIpOworCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCSAgIiAgQ0FTRVxu IgorCQkJCQkgICIgICAgV0hFTlxuIgorCQkJCQkgICIgICAgICBwZ19jYXRhbG9nLmluZXRfc2Vy dmVyX2FkZHIoKSBJUyBOVUxMXG4iCisJCQkJCSAgIiAgICAgIEFORCBwZ19jYXRhbG9nLmluZXRf Y2xpZW50X2FkZHIoKSBJUyBOVUxMXG4iCisJCQkJCSAgIiAgICBUSEVOIE5VTExcbiIKKwkJCQkJ ICAiICAgIEVMU0UgJyVzJ1xuIgorCQkJCQkgICIgIEVORCBBUyBcIkhvc3RcIlxuIiwKKwkJCQkJ ICBob3N0KTsKKwlpZiAoUFFzc2xJblVzZShwc2V0LmRiKSkKKwl7CisJCXByb3RvY29sID0gUFFz c2xBdHRyaWJ1dGUocHNldC5kYiwgInByb3RvY29sIik7CisJCWNpcGhlciA9IFBRc3NsQXR0cmli dXRlKHBzZXQuZGIsICJjaXBoZXIiKTsKKwkJY29tcHJlc3Npb24gPSBQUXNzbEF0dHJpYnV0ZShw c2V0LmRiLCAiY29tcHJlc3Npb24iKTsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJ CSAgIiAgLCdTU0wnIEFTIFwiRW5jcnlwdGlvblwiLFxuIgorCQkJCQkJICAiICAnJXMnIEFTIFwi UHJvdG9jb2xcIixcbiIKKwkJCQkJCSAgIiAgJyVzJyBBUyBcIkNpcGhlclwiLFxuIgorCQkJCQkJ ICAiICAnJXMnIEFTIFwiQ29tcHJlc3Npb25cIlxuIiwKKwkJCQkJCSAgcHJvdG9jb2wgPyBwcm90 b2NvbCA6IF8oInVua25vd24iKSwKKwkJCQkJCSAgY2lwaGVyID8gY2lwaGVyIDogXygidW5rbm93 biIpLAorCQkJCQkJICAoY29tcHJlc3Npb24gJiYgc3RyY21wKGNvbXByZXNzaW9uLCAib2ZmIikg IT0gMCkgPyBfKCJvbiIpIDogXygib2ZmIikpOworCX0KKwlpZiAoUFFnc3NFbmNJblVzZShwc2V0 LmRiKSkKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCSAgIiAgLCdHU1NBUEknIEFT IFwiRW5jcnlwdGlvblwiXG4iKTsKKwlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkgICIg IDsiKTsKKworCXJlcyA9IFBTUUxleGVjKGJ1Zi5kYXRhKTsKKwl0ZXJtUFFFeHBCdWZmZXIoJmJ1 Zik7CisJaWYgKCFyZXMpCisJCXJldHVybiBmYWxzZTsKKworCW15b3B0LnRpdGxlID0gXygiQ3Vy cmVudCBDb25uZWN0aW9uIEluZm9ybWF0aW9uIik7CisJbXlvcHQudHJhbnNsYXRlX2hlYWRlciA9 IHRydWU7CisKKwlwcmludFF1ZXJ5KHJlcywgJm15b3B0LCBwc2V0LnF1ZXJ5Rm91dCwgZmFsc2Us IHBzZXQubG9nZmlsZSk7CisKKwlQUWNsZWFyKHJlcyk7CisJcmV0dXJuIHRydWU7Cit9CiAKIC8q CiAgKiBsaXN0QWxsRGJzCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaCBiL3Ny Yy9iaW4vcHNxbC9kZXNjcmliZS5oCmluZGV4IDI3M2Y5NzQuLjhhNGU4M2YgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oCkBA IC02NCw2ICs2NCw5IEBAIGV4dGVybiBib29sIGxpc3RUU0RpY3Rpb25hcmllcyhjb25zdCBjaGFy ICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpOwogLyogXGRGdCAqLwogZXh0ZXJuIGJvb2wgbGlzdFRT VGVtcGxhdGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSk7CiAKKy8qIFxjb25u aW5mbyAqLworZXh0ZXJuIGJvb2wgbGlzdENvbm5lY3Rpb25JbmZvcm1hdGlvbih2b2lkKTsKKwog LyogXGwgKi8KIGV4dGVybiBib29sIGxpc3RBbGxEYnMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9v bCB2ZXJib3NlKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2hlbHAuYyBiL3NyYy9iaW4v cHNxbC9oZWxwLmMKaW5kZXggNGU3OWE4MS4uMmM1NDI2ZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9w c3FsL2hlbHAuYworKysgYi9zcmMvYmluL3BzcWwvaGVscC5jCkBAIC0zMTAsNyArMzEwLDcgQEAg c2xhc2hVc2FnZSh1bnNpZ25lZCBzaG9ydCBpbnQgcGFnZXIpCiAJZWxzZQogCQlIRUxQMCgiICBc XGNbb25uZWN0XSB7W0RCTkFNRXwtIFVTRVJ8LSBIT1NUfC0gUE9SVHwtXSB8IGNvbm5pbmZvfVxu IgogCQkJICAiICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3QgdG8gbmV3IGRhdGFiYXNl IChjdXJyZW50bHkgbm8gY29ubmVjdGlvbilcbiIpOwotCUhFTFAwKCIgIFxcY29ubmluZm8gICAg ICAgICAgICAgIGRpc3BsYXkgaW5mb3JtYXRpb24gYWJvdXQgY3VycmVudCBjb25uZWN0aW9uXG4i KTsKKwlIRUxQMCgiICBcXGNvbm5pbmZvWytdICAgICAgICAgICBkaXNwbGF5IGluZm9ybWF0aW9u IGFib3V0IGN1cnJlbnQgY29ubmVjdGlvblxuIik7CiAJSEVMUDAoIiAgXFxlbmNvZGluZyBbRU5D T0RJTkddICAgc2hvdyBvciBzZXQgY2xpZW50IGVuY29kaW5nXG4iKTsKIAlIRUxQMCgiICBcXHBh c3N3b3JkIFtVU0VSTkFNRV0gICBzZWN1cmVseSBjaGFuZ2UgdGhlIHBhc3N3b3JkIGZvciBhIHVz ZXJcbiIpOwogCUhFTFAwKCJcbiIpOwo= --_004_CP8P284MB2496093A2E465801D5B8134BEC4C2CP8P284MB2496BRAP_--