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 1rYrJI-000T99-HX for pgsql-hackers@arkaria.postgresql.org; Sat, 10 Feb 2024 17:38:41 +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 1rYrJH-00GoFx-2w for pgsql-hackers@arkaria.postgresql.org; Sat, 10 Feb 2024 17:38:39 +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.94.2) (envelope-from ) id 1rYrJG-00GoFp-GV for pgsql-hackers@lists.postgresql.org; Sat, 10 Feb 2024 17:38:38 +0000 Received: from mail-cpzbra01olkn20801.outbound.protection.outlook.com ([2a01:111:f403:2c1f::801] helo=BRA01-CPZ-obe.outbound.protection.outlook.com) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rYrJ8-0064y5-Ou for pgsql-hackers@postgresql.org; Sat, 10 Feb 2024 17:38:36 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iVQzlY9Q2B8ftAD/xPfu8U5g7bEKypw9OISPN0wVcSAVgkTQag2Zgc7PhyUBO3EyDU1c5YDmckiBvuyheZVP8LM1FY8Aq3o6Zrz9X5RyTWLfWxKLVUuTZjlOXHuffal6+rFlGEU9m79nS7ULe/WoUnokU/Bg7BaBf1Bb1vOu0WhaSUiWcILVxNJ4Tk5cZQirZ3ItsKG4Y1mqkP11Xb1M41mVfFd5lSHQVy1wx2aDmMRZkitHEFBNnVPMtKDnwjE1LhdTLNPfRGlG3xUjGo1ZmDdJVvNL1M7493cu5ydxx+JkXIyIyi4NPlwlkWd38wfYw9AwNNuHNr3NNOmyoNr0kw== 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=gjXTImE0hgm9MEEV/tonbPMkmWKGKBSAni8j4dtNPBc=; b=gwTMZGeK5gf2UaTmI8erEd4+xv3aig5ypC+3PcON4LZptIuAHldlQ7iA4VMQ+HBux46TcTJHEDr/LFUSOxGWmEU0azyYcAw6mIMbyrlIRIv+/z/EC9SdWEvl6ghTh+llYMSS6U1XJDZrKvHB8mwTQcH2MErii0A3m1FzHLooo/U2ZBZWnpDMU+7KWWt6CD+68C6stdbTvLLYfz+svT230l/xnE1nPlOn7xSLJuUSVwC3To9K0La9u2aw71rUNssbxK/qGbWiyNsebHp2tJFC8Ym3yeN97KLE9EQ3EGMeG/7kzOQd+2JT+eGN59n9U6xiLdIR1E6bNn7mT01Ntbf8oA== 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 ROAP284MB1908.BRAP284.PROD.OUTLOOK.COM (2603:10d6:10:89::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7270.35; Sat, 10 Feb 2024 17:38:23 +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.7270.033; Sat, 10 Feb 2024 17:38:23 +0000 From: Maiquel Grassi To: Alvaro Herrera CC: Erik Wienhold , Jim Jones , Pavel Luzanov , Nathan Bossart , "pgsql-hackers@postgresql.org" Subject: RE: Psql meta-command conninfo+ Thread-Topic: Psql meta-command conninfo+ Thread-Index: AQHaWRQuU7L2MD2CX0quiO/hLxQK8bD9n9eAgAAOagCAABlrgoAABsOAgAABrYCAAAkRMoAAAaIAgABfmwKAAJe3AIAAHVoLgAAnEwCAADA+O4ABA4CAgABCa76AAE2sAIAAENYAgAAZLj6AAMw/gIACCupl Date: Sat, 10 Feb 2024 17:38:23 +0000 Message-ID: References: <202402091019.y3psh2m7sqbv@alvherre.pgsql> In-Reply-To: <202402091019.y3psh2m7sqbv@alvherre.pgsql> 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: [4r9i0zDvMyfG/UKNQsuA1TBVFmBcN7giAQ98Khe6hHf+Rn7XLs4Pq9axrmvX4LRr] x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CP8P284MB2496:EE_|ROAP284MB1908:EE_ x-ms-office365-filtering-correlation-id: c4736473-a779-45d5-c066-08dc2a5f148d x-ms-exchange-slblob-mailprops: gMiuAN0LASIUVF5NKub+Y6EqoaCJZdexvTp3KEANMTspTTodoVZbJ6v0izdRdCOVihwADR/9TXqvdPEJlNbvwY+EUN6i1WFdGtsr7TaZKaKSar5LgLlkw2R7NWeleCnd3fOFgkD1ht220x2JTg6Yd3QzHQj4TIrpTZH6RjhUjKoxLdMMAg2Jly47q5gzmI6QTaex8zlaxxM+n+CDzKC+9fy/Csm23R29BVERh1eIsex6RgTrvOWVHEFIlNvDUE7BbO0zWunVOg4KPAwQZ3sTsRO5YnkINHZ9gjltGxOI2lswhSBDYNoBVCmN1vGeR+TXhz36YUKWLdZpTs2ABx0wqnYZsxbeu6sRQF9bEA0f+gt9TIOM7+gg5RXVaT31ySdp8rGkLTOREJljIplH16erLzz2w8+j6mYSv6ugFX5qVwK52D3JWeA05O/x9Gx/gyjVbnvl42LnbQZgc9iFCoqZayBbJXKL9fhxEpb8I7GGUmgQZxfhfOTDmseuw669nroYRGUdrs4mLYfbsSr2L9aLuu3V75m9vvNbrazGOhSY3cXR/mNixgGOF8m1+4AEnsTx9o3YhkfzxAUy9soGj9RwVDyhYsGkW7kl6+12yVDkQjfyaDM9KTdiv6VMVysGPGCO+e82IJwtLyhnClFN7D3CqLucR9IdIBJq4bAs1ou7Jz/xHUyN7cKgsrMovbL8KYs0H354NtYKpjpobKOlFK0iPA== x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 90qCbxtYnU/Sd5emd6TaZ3DUnt+QuysHcJ/0m9JDS4kDY/BolFYlVsoBByBuDLgO+VJHzK9Svs3hj9jAeZ0z67Kf2dw8kA1g8BYqmE+rUAL/Y+OFYSFAEPpLeZVtyeB97NjyRhJDo9lIN8wTgzxkze/DZGyaTYYxn5AMVolSvOzgCoauTDi2rSZsgkiL8yaLHxuEuK3eKqk8HtjKAsn56uOzUrAhRsZpa7t7j542lt1SHsV9G0LY/aTwpjrlEWonnIAieuZH5DD+HNXkBDVrMDr8aM1ejgheNcAZR3sk4PQWdDQN18LwQj9uTgFhodbSJczykxOBo2rFe1ne4zC/1kV4V+uSHF8eViRV8fjGzVo6e7dGZBH8zqPCH2VpBe145Ypv45anKjplSrGf7GujYZaohYW7PoxUNIs9dDUZ5etXozkPZrO6lq8AFfYhDaERxAkGoEmmyp2jvibjSxbfA5QOwegcIfxOw283V3LLMVewD29lRyxMw75Y60n2+KCWZYg1zS5E78OByk/y/tDT6cGa3w04bQ8nTyuofF8r4ueUSZkUDYqyKZ5wZyM4b+Yx1Jc9JRKRLtOsHzViBiKQz5K+S2G0CX3TKp/p9Raes1ieLnK8xKLN/1Pd3ty3cJt+ x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?FDxTlV70AEOMPrGhI2PiCyDornOeqaRyeaOi0MCMcZmfE9kFCuL7w03vl4?= =?iso-8859-1?Q?rk+yLkLTJQkkICFxxFS3v0Ni8jl1pxHMtsMH3wJye0H8vZGMtUDUPhcnfZ?= =?iso-8859-1?Q?DuebTwzmWJ6W//LSe28rYy7Gw4beHIq0+Vv9fgmTKkzFuKS1RmghFgv45E?= =?iso-8859-1?Q?yzcziaB7O3MQBqH0hwuMck0T0rHWfuIP8/I6yCG4i+lukS36TAIEU5wogy?= =?iso-8859-1?Q?D585bhBzkfJ82uOyYpE/mQcyBDQ/OQ5ISQawqa1U8YP4YTEwbeutGhwbbv?= =?iso-8859-1?Q?qa7ktKZPfb9IfM50ux9VdM/Mx1qzwtBJ4GVERAlL1V4QX0bguTh4Y+QUd1?= =?iso-8859-1?Q?naN6VkKzgN8SRRLWe/48sOx5B4Mq6n4y+Ic9jCe+KhIXdps9CpPhai3dL1?= =?iso-8859-1?Q?GThBpgQjQ0cLprcZOJtdZEwmHTMSHvwfJcQX5p3PQy9wfnI7m5SXTHA7QM?= =?iso-8859-1?Q?CqAcoC6acygPhxdcmp3GIKvLYQXvAdXtY9oEEanMDECPnfCKcG65z87aWr?= =?iso-8859-1?Q?ioDA3UqTjwf2nXJ3sWAGKUbYCVS2gTtxxPWou6kFKbZkN+PiGxzuDvZkdY?= =?iso-8859-1?Q?IjjDfuTn+D4pa5OyuQOI1CwqOLGM5KzRTyNDPqlvO/1EEkq4eLaWVphuId?= =?iso-8859-1?Q?6oDcSmZwFVvqXgqcGKMI8GCKBwTzwLLeEJvFbyuY1rDInIh5ocfJYBMcIH?= =?iso-8859-1?Q?6gJAJ57phY1UEDIk7bn1Cwn2iWCwvZD3PLv9Ah+tdOTbT/T6GuagV2cXV5?= =?iso-8859-1?Q?rWYfmS5anfgI03qEQVi+q/mUKVq0/mCiMtBx1zk5wGI+RUrYD296e3JV3+?= =?iso-8859-1?Q?P7g3xDeIfw8LN9bUUY8jGvprQz7bq7GT66mDeUbtVo7Le1Ca+XLxpNm5Fs?= =?iso-8859-1?Q?8sOz1Nn9cJFa9I2NrIHxYPCDqArgW4p1iowKUUVsBACFQYHlMPQGb9nDMg?= =?iso-8859-1?Q?1+qRQKdIdCSUaGvuhXieWv0g8RzyXnasoMZ+ThFCwRJwXdlrgJY+tvt41u?= =?iso-8859-1?Q?qZl74wTy1mxvUnKrLbUQPODd3bD5pNws2/GUnX6h0AbuYbpoWPj1gUoLCd?= =?iso-8859-1?Q?tHh0LKJndvJLFaDl8h75SJzxfoFZsg9q7V63vqwSrMXYoqhkAHhIPEys1W?= =?iso-8859-1?Q?V99eGCy4Jz2CY7sIwLabEUOYsxfj3VRA6MbeO6VJi/VjfQUoO7BxARQDPm?= =?iso-8859-1?Q?E3w4JGLczqC5HB6uUX3eJiDPou8ZMlOpy1jxtsChM0YfKy5M0QVHzJ3yJz?= =?iso-8859-1?Q?FkGQvkrQeTVM1YAu2st5gXpVVi7zyGlVwswOuyEFY4oAnEIH2MAsSEv5vT?= =?iso-8859-1?Q?hh5Ex9o0HjnfykN6ylrzPmVr95YB37nDtOY3E5SvwnuOiHg=3D?= Content-Type: multipart/mixed; boundary="_004_CP8P284MB24967BCC7B831598BA42B22EEC4A2CP8P284MB2496BRAP_" 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: c4736473-a779-45d5-c066-08dc2a5f148d X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Feb 2024 17:38:23.4562 (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: ROAP284MB1908 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_004_CP8P284MB24967BCC7B831598BA42B22EEC4A2CP8P284MB2496BRAP_ Content-Type: multipart/alternative; boundary="_000_CP8P284MB24967BCC7B831598BA42B22EEC4A2CP8P284MB2496BRAP_" --_000_CP8P284MB24967BCC7B831598BA42B22EEC4A2CP8P284MB2496BRAP_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable >Database | postgres >[...] >Host | 127.0.0.1 >Encryption | SSL >Protocol | PQsslAttribute(protocol) >Cipher | PQsslAttribute(cipher) >Compression | PQsslAttribute(compression) > >When GSS, like this > >Database | postgres >[...] >Host | 127.0.0.1 >Encryption | GSS --//-- Hi PgHackers, Columns were added for SSL and GSS. For SSL, I conducted some tests as follows. For GSS, I will perform them and intend to provide a sample here in the next interaction. If anyone can and wants to test GSSAPI as well, I appreciate it. [postgres@localhost bin]$ ./psql -h localhost -p 5432 -x psql (17devel) Type "help" for help. postgres=3D# \conninfo You are connected to database "postgres" as user "postgres" on host "localh= ost" (address "::1") at port "5432". postgres=3D# \conninfo+ Current Connection Information -[ RECORD 1 ]------+---------- Database | postgres Authenticated User | postgres System User | Current User | postgres Session User | postgres Backend PID | 15809 Server Address | ::1 Server Port | 5432 Client Address | ::1 Client Port | 56890 Socket Directory | Host | localhost postgres=3D# \q [postgres@localhost bin]$ ./psql -h localhost -p 5433 -x psql (17devel, server 15.6) SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, com= pression: off) Type "help" for help. postgres=3D# \conninfo You are connected to database "postgres" as user "postgres" on host "localh= ost" (address "::1") at port "5433". SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, com= pression: off) postgres=3D# \conninfo+ Current Connection Information -[ RECORD 1 ]------+---------------------------- Database | postgres Authenticated User | postgres Current User | postgres Session User | postgres Backend PID | 15811 Server Address | ::1 Server Port | 5433 Client Address | ::1 Client Port | 40622 Socket Directory | Host | localhost Encryption | SSL Protocol | TLSv1.2 Cipher | ECDHE-RSA-AES256-GCM-SHA384 Compression | off Regards, Maiquel Grassi. --_000_CP8P284MB24967BCC7B831598BA42B22EEC4A2CP8P284MB2496BRAP_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable

= >Database &n= bsp;         | postgres
>[...]
>Host           &= nbsp;   | 127.0.0.1
>Encryption         | SSL
>Protocol           | = PQsslAttribute(protocol)
>Cipher           = ;  | PQsslAttribute(cipher)
>Compression        | PQsslAttribute(= compression)
>
>When GSS, like this
>
>Database           | = postgres
>[...]
>Host           &= nbsp;   | 127.0.0.1
>Encryption         | GSS

--//--

Hi PgHackers,

Columns were added for SSL and GSS.

For SSL, I conducted so= me tests as follows. For GSS, I will perform
them and intend to provide a sample here in the next interaction.


If anyone can and wants to test GSSAPI as well, I appreciate it.

[postgres@localhost bin]$ ./psql -h localhost -p 5432 -x

psql (17devel)
Type "help" for help.

postgres=3D# \conninfo
You are connected to database "postgres&q= uot; as user "postgres" on host "localhost" (address &q= uot;::1") at port "5432".
postgres=3D# \conninfo+
Current Connection Information
-[ RECORD 1 ]------+----------
Database           | = postgres
Authenticated User | postgres
System User        |
Current User       | postgres
Session User   &= nbsp;   | postgres
Backend PID        | 15809=
Server Address     | ::1
Server Port        | 5432<= /span>
Client Address     | ::1
Client Port        | 56890=
Socket Directory   |
Host            =   | localhost

postgres=3D# \q
[postgres@localhost bin]$ ./psql -h localhost = -p 5433 -x
psql (17devel, server 15.6)
SSL connection (protocol: TLSv1.2, cipher: ECD= HE-RSA-AES256-GCM-SHA384, compression: off)
Type "help" for help.

postgres=3D# \conninfo
You are connected to database "postgres&q= uot; as user "postgres" on host "localhost" (address &q= uot;::1") at port "5433".
SSL connection (protocol: TLSv1.2, cipher: ECD= HE-RSA-AES256-GCM-SHA384, compression: off)
postgres=3D# \conninfo+
Current Connection Information
-[ RECORD 1 ]------+--------------------------= --
Database           | = postgres
Authenticated User | postgres
Current User       | postgres
Session User       | postgres
Backend PID        | 15811=
Server Address     | ::1
Server Port        | 5433<= /span>
Client Address     | ::1
Client Port   &n= bsp;    | 40622
Socket Directory   |
Host            =   | localhost
Encryption         | SSL
Protocol           | = TLSv1.2
Cipher     =         | ECDHE-RSA-AES256-GCM-SHA384
Compression   &n= bsp;    | off

Regards,
Maiquel Grassi.
--_000_CP8P284MB24967BCC7B831598BA42B22EEC4A2CP8P284MB2496BRAP_-- --_004_CP8P284MB24967BCC7B831598BA42B22EEC4A2CP8P284MB2496BRAP_ Content-Type: application/octet-stream; name="v13-0001-psql-meta-command-conninfo-plus.patch" Content-Description: v13-0001-psql-meta-command-conninfo-plus.patch Content-Disposition: attachment; filename="v13-0001-psql-meta-command-conninfo-plus.patch"; size=9688; creation-date="Sat, 10 Feb 2024 17:34:44 GMT"; modification-date="Sat, 10 Feb 2024 17:38:14 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbCBiL2RvYy9zcmMvc2dt bC9yZWYvcHNxbC1yZWYuc2dtbAppbmRleCBjYzdkNzk3Li40ZTg2YWQ5IDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wc3Fs LXJlZi5zZ21sCkBAIC0xMDI5LDEwICsxMDI5LDE0IEBAIElOU0VSVCBJTlRPIHRibDEgVkFMVUVT ICgkMSwgJDIpIFxiaW5kICdmaXJzdCB2YWx1ZScgJ3NlY29uZCB2YWx1ZScgXGcKICAgICAgIDwv dmFybGlzdGVudHJ5PgogCiAgICAgICA8dmFybGlzdGVudHJ5IGlkPSJhcHAtcHNxbC1tZXRhLWNv bW1hbmQtY29ubmluZm8iPgotICAgICAgICA8dGVybT48bGl0ZXJhbD5cY29ubmluZm88L2xpdGVy YWw+PC90ZXJtPgorICAgICAgICA8dGVybT48bGl0ZXJhbD5cY29ubmluZm9bK108L2xpdGVyYWw+ PC90ZXJtPgogICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgIDxwYXJhPgogICAgICAgICBPdXRw dXRzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50IGRhdGFiYXNlIGNvbm5lY3Rpb24uCisg ICAgICAgIFdoZW4gbm8gPGxpdGVyYWw+KzwvbGl0ZXJhbD4gaXMgc3BlY2lmaWVkLCBpdCBzaW1w bHkgcHJpbnRzCisgICAgICAgIGEgdGV4dHVhbCBkZXNjcmlwdGlvbiBvZiBhIGZldyBjb25uZWN0 aW9uIG9wdGlvbnMuCisgICAgICAgIFdoZW4gPGxpdGVyYWw+KzwvbGl0ZXJhbD4gaXMgZ2l2ZW4s IG1vcmUgY29tcGxldGUgaW5mb3JtYXRpb24KKyAgICAgICAgaXMgZGlzcGxheWVkIGFzIGEgdGFi bGUuCiAgICAgICAgIDwvcGFyYT4KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgIDwvdmFybGlz dGVudHJ5PgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYyBiL3NyYy9iaW4vcHNx bC9jb21tYW5kLmMKaW5kZXggNWM5MDZlNC4uMDhhYWE1NyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9w c3FsL2NvbW1hbmQuYworKysgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5jCkBAIC02OCw3ICs2OCw4 IEBAIHN0YXRpYyBiYWNrc2xhc2hSZXN1bHQgZXhlY19jb21tYW5kX0MoUHNxbFNjYW5TdGF0ZSBz Y2FuX3N0YXRlLCBib29sIGFjdGl2ZV9icmFuCiBzdGF0aWMgYmFja3NsYXNoUmVzdWx0IGV4ZWNf Y29tbWFuZF9jb25uZWN0KFBzcWxTY2FuU3RhdGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVfYnJh bmNoKTsKIHN0YXRpYyBiYWNrc2xhc2hSZXN1bHQgZXhlY19jb21tYW5kX2NkKFBzcWxTY2FuU3Rh dGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVfYnJhbmNoLAogCQkJCQkJCQkJICAgY29uc3QgY2hh ciAqY21kKTsKLXN0YXRpYyBiYWNrc2xhc2hSZXN1bHQgZXhlY19jb21tYW5kX2Nvbm5pbmZvKFBz cWxTY2FuU3RhdGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVfYnJhbmNoKTsKK3N0YXRpYyBiYWNr c2xhc2hSZXN1bHQgZXhlY19jb21tYW5kX2Nvbm5pbmZvKFBzcWxTY2FuU3RhdGUgc2Nhbl9zdGF0 ZSwgYm9vbCBhY3RpdmVfYnJhbmNoLAorCQkJCQkJCQkJCQkgY29uc3QgY2hhciAqY21kKTsKIHN0 YXRpYyBiYWNrc2xhc2hSZXN1bHQgZXhlY19jb21tYW5kX2NvcHkoUHNxbFNjYW5TdGF0ZSBzY2Fu X3N0YXRlLCBib29sIGFjdGl2ZV9icmFuY2gpOwogc3RhdGljIGJhY2tzbGFzaFJlc3VsdCBleGVj X2NvbW1hbmRfY29weXJpZ2h0KFBzcWxTY2FuU3RhdGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVf YnJhbmNoKTsKIHN0YXRpYyBiYWNrc2xhc2hSZXN1bHQgZXhlY19jb21tYW5kX2Nyb3NzdGFidmll dyhQc3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCk7CkBAIC0zMTcs OCArMzE4LDggQEAgZXhlY19jb21tYW5kKGNvbnN0IGNoYXIgKmNtZCwKIAkJc3RhdHVzID0gZXhl Y19jb21tYW5kX2Nvbm5lY3Qoc2Nhbl9zdGF0ZSwgYWN0aXZlX2JyYW5jaCk7CiAJZWxzZSBpZiAo c3RyY21wKGNtZCwgImNkIikgPT0gMCkKIAkJc3RhdHVzID0gZXhlY19jb21tYW5kX2NkKHNjYW5f c3RhdGUsIGFjdGl2ZV9icmFuY2gsIGNtZCk7Ci0JZWxzZSBpZiAoc3RyY21wKGNtZCwgImNvbm5p bmZvIikgPT0gMCkKLQkJc3RhdHVzID0gZXhlY19jb21tYW5kX2Nvbm5pbmZvKHNjYW5fc3RhdGUs IGFjdGl2ZV9icmFuY2gpOworCWVsc2UgaWYgKHN0cmNtcChjbWQsICJjb25uaW5mbyIpID09IDAg fHwgc3RyY21wKGNtZCwgImNvbm5pbmZvKyIpID09IDApCisJCXN0YXR1cyA9IGV4ZWNfY29tbWFu ZF9jb25uaW5mbyhzY2FuX3N0YXRlLCBhY3RpdmVfYnJhbmNoLCBjbWQpOwogCWVsc2UgaWYgKHBn X3N0cmNhc2VjbXAoY21kLCAiY29weSIpID09IDApCiAJCXN0YXR1cyA9IGV4ZWNfY29tbWFuZF9j b3B5KHNjYW5fc3RhdGUsIGFjdGl2ZV9icmFuY2gpOwogCWVsc2UgaWYgKHN0cmNtcChjbWQsICJj b3B5cmlnaHQiKSA9PSAwKQpAQCAtNjQzLDQ3ICs2NDQsNjYgQEAgZXhlY19jb21tYW5kX2NkKFBz cWxTY2FuU3RhdGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVfYnJhbmNoLCBjb25zdCBjaGFyICpj bWQpCiB9CiAKIC8qCi0gKiBcY29ubmluZm8gLS0gZGlzcGxheSBpbmZvcm1hdGlvbiBhYm91dCB0 aGUgY3VycmVudCBjb25uZWN0aW9uCisgKiBcY29ubmluZm8sIFxjb25uaW5mbysgLS0gZGlzcGxh eSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY3VycmVudCBjb25uZWN0aW9uCiAgKi8KIHN0YXRpYyBi YWNrc2xhc2hSZXN1bHQKLWV4ZWNfY29tbWFuZF9jb25uaW5mbyhQc3FsU2NhblN0YXRlIHNjYW5f c3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCkKK2V4ZWNfY29tbWFuZF9jb25uaW5mbyhQc3FsU2Nh blN0YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCwgY29uc3QgY2hhciAqY21kKQog eworCWJvb2wJCXN1Y2Nlc3MgPSB0cnVlOworCiAJaWYgKGFjdGl2ZV9icmFuY2gpCiAJewogCQlj aGFyCSAgICpkYiA9IFBRZGIocHNldC5kYik7CisJCWJvb2wJCXNob3dfdmVyYm9zZTsKKworCQlz aG93X3ZlcmJvc2UgPSBzdHJjaHIoY21kLCAnKycpID8gdHJ1ZSA6IGZhbHNlOworCisJCS8qCisJ CSAqIFxjb25uaW5mbysKKwkJICovCisJCWlmIChzaG93X3ZlcmJvc2UpCisJCQlzdWNjZXNzID0g bGlzdENvbm5lY3Rpb25JbmZvcm1hdGlvbigpOwogCi0JCWlmIChkYiA9PSBOVUxMKQotCQkJcHJp bnRmKF8oIllvdSBhcmUgY3VycmVudGx5IG5vdCBjb25uZWN0ZWQgdG8gYSBkYXRhYmFzZS5cbiIp KTsKKwkJLyoKKwkJICogXGNvbm5pbmZvCisJCSAqLwogCQllbHNlCiAJCXsKLQkJCWNoYXIJICAg Kmhvc3QgPSBQUWhvc3QocHNldC5kYik7Ci0JCQljaGFyCSAgICpob3N0YWRkciA9IFBRaG9zdGFk ZHIocHNldC5kYik7Ci0KLQkJCWlmIChpc191bml4c29ja19wYXRoKGhvc3QpKQotCQkJewotCQkJ CS8qIGhvc3RhZGRyIG92ZXJyaWRlcyBob3N0ICovCi0JCQkJaWYgKGhvc3RhZGRyICYmICpob3N0 YWRkcikKLQkJCQkJcHJpbnRmKF8oIllvdSBhcmUgY29ubmVjdGVkIHRvIGRhdGFiYXNlIFwiJXNc IiBhcyB1c2VyIFwiJXNcIiBvbiBhZGRyZXNzIFwiJXNcIiBhdCBwb3J0IFwiJXNcIi5cbiIpLAot CQkJCQkJICAgZGIsIFBRdXNlcihwc2V0LmRiKSwgaG9zdGFkZHIsIFBRcG9ydChwc2V0LmRiKSk7 Ci0JCQkJZWxzZQotCQkJCQlwcmludGYoXygiWW91IGFyZSBjb25uZWN0ZWQgdG8gZGF0YWJhc2Ug XCIlc1wiIGFzIHVzZXIgXCIlc1wiIHZpYSBzb2NrZXQgaW4gXCIlc1wiIGF0IHBvcnQgXCIlc1wi LlxuIiksCi0JCQkJCQkgICBkYiwgUFF1c2VyKHBzZXQuZGIpLCBob3N0LCBQUXBvcnQocHNldC5k YikpOwotCQkJfQorCQkJaWYgKGRiID09IE5VTEwpCisJCQkJcHJpbnRmKF8oIllvdSBhcmUgY3Vy cmVudGx5IG5vdCBjb25uZWN0ZWQgdG8gYSBkYXRhYmFzZS5cbiIpKTsKIAkJCWVsc2UKIAkJCXsK LQkJCQlpZiAoaG9zdGFkZHIgJiYgKmhvc3RhZGRyICYmIHN0cmNtcChob3N0LCBob3N0YWRkcikg IT0gMCkKLQkJCQkJcHJpbnRmKF8oIllvdSBhcmUgY29ubmVjdGVkIHRvIGRhdGFiYXNlIFwiJXNc IiBhcyB1c2VyIFwiJXNcIiBvbiBob3N0IFwiJXNcIiAoYWRkcmVzcyBcIiVzXCIpIGF0IHBvcnQg XCIlc1wiLlxuIiksCi0JCQkJCQkgICBkYiwgUFF1c2VyKHBzZXQuZGIpLCBob3N0LCBob3N0YWRk ciwgUFFwb3J0KHBzZXQuZGIpKTsKKwkJCQljaGFyCSAgICpob3N0ID0gUFFob3N0KHBzZXQuZGIp OworCQkJCWNoYXIJICAgKmhvc3RhZGRyID0gUFFob3N0YWRkcihwc2V0LmRiKTsKKworCQkJCWlm IChpc191bml4c29ja19wYXRoKGhvc3QpKQorCQkJCXsKKwkJCQkJLyogaG9zdGFkZHIgb3ZlcnJp ZGVzIGhvc3QgKi8KKwkJCQkJaWYgKGhvc3RhZGRyICYmICpob3N0YWRkcikKKwkJCQkJCXByaW50 ZihfKCJZb3UgYXJlIGNvbm5lY3RlZCB0byBkYXRhYmFzZSBcIiVzXCIgYXMgdXNlciBcIiVzXCIg b24gYWRkcmVzcyBcIiVzXCIgYXQgcG9ydCBcIiVzXCIuXG4iKSwKKwkJCQkJCQkgICBkYiwgUFF1 c2VyKHBzZXQuZGIpLCBob3N0YWRkciwgUFFwb3J0KHBzZXQuZGIpKTsKKwkJCQkJZWxzZQorCQkJ CQkJcHJpbnRmKF8oIllvdSBhcmUgY29ubmVjdGVkIHRvIGRhdGFiYXNlIFwiJXNcIiBhcyB1c2Vy IFwiJXNcIiB2aWEgc29ja2V0IGluIFwiJXNcIiBhdCBwb3J0IFwiJXNcIi5cbiIpLAorCQkJCQkJ CSAgIGRiLCBQUXVzZXIocHNldC5kYiksIGhvc3QsIFBRcG9ydChwc2V0LmRiKSk7CisJCQkJfQog CQkJCWVsc2UKLQkJCQkJcHJpbnRmKF8oIllvdSBhcmUgY29ubmVjdGVkIHRvIGRhdGFiYXNlIFwi JXNcIiBhcyB1c2VyIFwiJXNcIiBvbiBob3N0IFwiJXNcIiBhdCBwb3J0IFwiJXNcIi5cbiIpLAot CQkJCQkJICAgZGIsIFBRdXNlcihwc2V0LmRiKSwgaG9zdCwgUFFwb3J0KHBzZXQuZGIpKTsKKwkJ CQl7CisJCQkJCWlmIChob3N0YWRkciAmJiAqaG9zdGFkZHIgJiYgc3RyY21wKGhvc3QsIGhvc3Rh ZGRyKSAhPSAwKQorCQkJCQkJcHJpbnRmKF8oIllvdSBhcmUgY29ubmVjdGVkIHRvIGRhdGFiYXNl IFwiJXNcIiBhcyB1c2VyIFwiJXNcIiBvbiBob3N0IFwiJXNcIiAoYWRkcmVzcyBcIiVzXCIpIGF0 IHBvcnQgXCIlc1wiLlxuIiksCisJCQkJCQkJICAgZGIsIFBRdXNlcihwc2V0LmRiKSwgaG9zdCwg aG9zdGFkZHIsIFBRcG9ydChwc2V0LmRiKSk7CisJCQkJCWVsc2UKKwkJCQkJCXByaW50ZihfKCJZ b3UgYXJlIGNvbm5lY3RlZCB0byBkYXRhYmFzZSBcIiVzXCIgYXMgdXNlciBcIiVzXCIgb24gaG9z dCBcIiVzXCIgYXQgcG9ydCBcIiVzXCIuXG4iKSwKKwkJCQkJCQkgICBkYiwgUFF1c2VyKHBzZXQu ZGIpLCBob3N0LCBQUXBvcnQocHNldC5kYikpOworCQkJCX0KKwkJCQlwcmludFNTTEluZm8oKTsK KwkJCQlwcmludEdTU0luZm8oKTsKIAkJCX0KLQkJCXByaW50U1NMSW5mbygpOwotCQkJcHJpbnRH U1NJbmZvKCk7CiAJCX0KIAl9CisJZWxzZQorCQlpZ25vcmVfc2xhc2hfb3B0aW9ucyhzY2FuX3N0 YXRlKTsKIAotCXJldHVybiBQU1FMX0NNRF9TS0lQX0xJTkU7CisJcmV0dXJuIHN1Y2Nlc3MgPyBQ U1FMX0NNRF9TS0lQX0xJTkUgOiBQU1FMX0NNRF9FUlJPUjsKIH0KIAogLyoKZGlmZiAtLWdpdCBh L3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKaW5kZXgg YjZhNGViMS4uMmVmM2RiMCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysr IGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJm ZV91dGlscy9tYnByaW50LmgiCiAjaW5jbHVkZSAiZmVfdXRpbHMvcHJpbnQuaCIKICNpbmNsdWRl ICJmZV91dGlscy9zdHJpbmdfdXRpbHMuaCIKKyNpbmNsdWRlICJsaWJwcS9wcWNvbW0uaCIKICNp bmNsdWRlICJzZXR0aW5ncy5oIgogI2luY2x1ZGUgInZhcmlhYmxlcy5oIgogCkBAIC05MDEsNiAr OTAyLDkxIEBAIGVycm9yX3JldHVybjoKIAlyZXR1cm4gZmFsc2U7CiB9CiAKKy8qCisgKiBsaXN0 Q29ubmVjdGlvbkluZm9ybWF0aW9uCisgKgorICogZm9yIFxjb25uaW5mbysKKyAqLworYm9vbAor bGlzdENvbm5lY3Rpb25JbmZvcm1hdGlvbih2b2lkKQoreworCVBHcmVzdWx0ICAgKnJlczsKKwlQ UUV4cEJ1ZmZlckRhdGEgYnVmOworCXByaW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBvcHQ7CisK KwljaGFyCSAgICpob3N0ID0gUFFob3N0KHBzZXQuZGIpOworCWNoYXIJICAgKmhvc3RhZGRyID0g UFFob3N0YWRkcihwc2V0LmRiKTsKKwljb25zdCBjaGFyICpwcm90b2NvbDsKKwljb25zdCBjaGFy ICpjaXBoZXI7CisJY29uc3QgY2hhciAqY29tcHJlc3Npb247CisKKwlpbml0UFFFeHBCdWZmZXIo JmJ1Zik7CisKKwlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkgICJTRUxFQ1RcbiIKKwkJ CQkJICAiICBwZ19jYXRhbG9nLmN1cnJlbnRfZGF0YWJhc2UoKSBBUyBcIkRhdGFiYXNlXCIsXG4i CisJCQkJCSAgIiAgJyVzJyBBUyBcIkF1dGhlbnRpY2F0ZWQgVXNlclwiLFxuIiwKKwkJCQkJICBQ UXVzZXIocHNldC5kYikpOworCWlmIChwc2V0LnN2ZXJzaW9uID49IDE2MDAwMCkKKwkJYXBwZW5k UFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCSAgIiAgcGdfY2F0YWxvZy5zeXN0ZW1fdXNlcigpIEFT IFwiU3lzdGVtIFVzZXJcIixcbiIpOworCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCSAg IiAgcGdfY2F0YWxvZy5jdXJyZW50X3VzZXIoKSBBUyBcIkN1cnJlbnQgVXNlclwiLFxuIgorCQkJ CQkgICIgIHBnX2NhdGFsb2cuc2Vzc2lvbl91c2VyKCkgQVMgXCJTZXNzaW9uIFVzZXJcIixcbiIK KwkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2JhY2tlbmRfcGlkKCkgQVMgXCJCYWNrZW5kIFBJRFwi LFxuIgorCQkJCQkgICIgIHBnX2NhdGFsb2cuaW5ldF9zZXJ2ZXJfYWRkcigpIEFTIFwiU2VydmVy IEFkZHJlc3NcIixcbiIKKwkJCQkJICAiICBwZ19jYXRhbG9nLmN1cnJlbnRfc2V0dGluZygncG9y dCcpIEFTIFwiU2VydmVyIFBvcnRcIixcbiIKKwkJCQkJICAiICBwZ19jYXRhbG9nLmluZXRfY2xp ZW50X2FkZHIoKSBBUyBcIkNsaWVudCBBZGRyZXNzXCIsXG4iCisJCQkJCSAgIiAgcGdfY2F0YWxv Zy5pbmV0X2NsaWVudF9wb3J0KCkgQVMgXCJDbGllbnQgUG9ydFwiLFxuIik7CisJaWYgKGlzX3Vu aXhzb2NrX3BhdGgoaG9zdCkgJiYgIShob3N0YWRkciAmJiAqaG9zdGFkZHIpKQorCQlhcHBlbmRQ UUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJICAiICAnJXMnIEFTIFwiU29ja2V0IERpcmVjdG9yeVwi LFxuIiwKKwkJCQkJCSAgaG9zdCk7CisJZWxzZQorCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAor CQkJCQkJICAiICBOVUxMIEFTIFwiU29ja2V0IERpcmVjdG9yeVwiLFxuIik7CisJYXBwZW5kUFFF eHBCdWZmZXIoJmJ1ZiwKKwkJCQkJICAiICBDQVNFXG4iCisJCQkJCSAgIiAgICBXSEVOXG4iCisJ CQkJCSAgIiAgICAgIHBnX2NhdGFsb2cuaW5ldF9zZXJ2ZXJfYWRkcigpIElTIE5VTExcbiIKKwkJ CQkJICAiICAgICAgQU5EIHBnX2NhdGFsb2cuaW5ldF9jbGllbnRfYWRkcigpIElTIE5VTExcbiIK KwkJCQkJICAiICAgIFRIRU4gTlVMTFxuIgorCQkJCQkgICIgICAgRUxTRSAnJXMnXG4iCisJCQkJ CSAgIiAgRU5EIEFTIFwiSG9zdFwiXG4iLAorCQkJCQkgIGhvc3QpOworCWlmIChQUXNzbEluVXNl KHBzZXQuZGIpKQorCXsKKwkJcHJvdG9jb2wgPSBQUXNzbEF0dHJpYnV0ZShwc2V0LmRiLCAicHJv dG9jb2wiKTsKKwkJY2lwaGVyID0gUFFzc2xBdHRyaWJ1dGUocHNldC5kYiwgImNpcGhlciIpOwor CQljb21wcmVzc2lvbiA9IFBRc3NsQXR0cmlidXRlKHBzZXQuZGIsICJjb21wcmVzc2lvbiIpOwor CQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJICAiICAsJ1NTTCcgQVMgXCJFbmNyeXB0 aW9uXCIsXG4iCisJCQkJCQkgICIgICclcycgQVMgXCJQcm90b2NvbFwiLFxuIgorCQkJCQkJICAi ICAnJXMnIEFTIFwiQ2lwaGVyXCIsXG4iCisJCQkJCQkgICIgICclcycgQVMgXCJDb21wcmVzc2lv blwiXG4iLAorCQkJCQkJICBwcm90b2NvbCA/IHByb3RvY29sIDogXygidW5rbm93biIpLAorCQkJ CQkJICBjaXBoZXIgPyBjaXBoZXIgOiBfKCJ1bmtub3duIiksCisJCQkJCQkgIChjb21wcmVzc2lv biAmJiBzdHJjbXAoY29tcHJlc3Npb24sICJvZmYiKSAhPSAwKSA/IF8oIm9uIikgOiBfKCJvZmYi KSk7CisJfQorCWlmIChQUWdzc0VuY0luVXNlKHBzZXQuZGIpKQorCQlhcHBlbmRQUUV4cEJ1ZmZl cigmYnVmLAorCQkJCQkJICAiICAsJ0dTU0FQSScgQVMgXCJFbmNyeXB0aW9uXCJcbiIpOworCWFw cGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCSAgIiAgOyIpOworCisJcmVzID0gUFNRTGV4ZWMo YnVmLmRhdGEpOworCXRlcm1QUUV4cEJ1ZmZlcigmYnVmKTsKKwlpZiAoIXJlcykKKwkJcmV0dXJu IGZhbHNlOworCisJbXlvcHQudGl0bGUgPSBfKCJDdXJyZW50IENvbm5lY3Rpb24gSW5mb3JtYXRp b24iKTsKKwlteW9wdC50cmFuc2xhdGVfaGVhZGVyID0gdHJ1ZTsKKworCXByaW50UXVlcnkocmVz LCAmbXlvcHQsIHBzZXQucXVlcnlGb3V0LCBmYWxzZSwgcHNldC5sb2dmaWxlKTsKKworCVBRY2xl YXIocmVzKTsKKwlyZXR1cm4gdHJ1ZTsKK30KIAogLyoKICAqIGxpc3RBbGxEYnMKZGlmZiAtLWdp dCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmgKaW5k ZXggMjczZjk3NC4uOGE0ZTgzZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmgK KysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmgKQEAgLTY0LDYgKzY0LDkgQEAgZXh0ZXJuIGJv b2wgbGlzdFRTRGljdGlvbmFyaWVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSk7 CiAvKiBcZEZ0ICovCiBleHRlcm4gYm9vbCBsaXN0VFNUZW1wbGF0ZXMoY29uc3QgY2hhciAqcGF0 dGVybiwgYm9vbCB2ZXJib3NlKTsKIAorLyogXGNvbm5pbmZvICovCitleHRlcm4gYm9vbCBsaXN0 Q29ubmVjdGlvbkluZm9ybWF0aW9uKHZvaWQpOworCiAvKiBcbCAqLwogZXh0ZXJuIGJvb2wgbGlz dEFsbERicyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpOwogCmRpZmYgLS1naXQg YS9zcmMvYmluL3BzcWwvaGVscC5jIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwppbmRleCA0ZTc5YTgx Li4yYzU0MjZkIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvaGVscC5jCisrKyBiL3NyYy9iaW4v cHNxbC9oZWxwLmMKQEAgLTMxMCw3ICszMTAsNyBAQCBzbGFzaFVzYWdlKHVuc2lnbmVkIHNob3J0 IGludCBwYWdlcikKIAllbHNlCiAJCUhFTFAwKCIgIFxcY1tvbm5lY3RdIHtbREJOQU1FfC0gVVNF UnwtIEhPU1R8LSBQT1JUfC1dIHwgY29ubmluZm99XG4iCiAJCQkgICIgICAgICAgICAgICAgICAg ICAgICAgICAgY29ubmVjdCB0byBuZXcgZGF0YWJhc2UgKGN1cnJlbnRseSBubyBjb25uZWN0aW9u KVxuIik7Ci0JSEVMUDAoIiAgXFxjb25uaW5mbyAgICAgICAgICAgICAgZGlzcGxheSBpbmZvcm1h dGlvbiBhYm91dCBjdXJyZW50IGNvbm5lY3Rpb25cbiIpOworCUhFTFAwKCIgIFxcY29ubmluZm9b K10gICAgICAgICAgIGRpc3BsYXkgaW5mb3JtYXRpb24gYWJvdXQgY3VycmVudCBjb25uZWN0aW9u XG4iKTsKIAlIRUxQMCgiICBcXGVuY29kaW5nIFtFTkNPRElOR10gICBzaG93IG9yIHNldCBjbGll bnQgZW5jb2RpbmdcbiIpOwogCUhFTFAwKCIgIFxccGFzc3dvcmQgW1VTRVJOQU1FXSAgIHNlY3Vy ZWx5IGNoYW5nZSB0aGUgcGFzc3dvcmQgZm9yIGEgdXNlclxuIik7CiAJSEVMUDAoIlxuIik7Cg== --_004_CP8P284MB24967BCC7B831598BA42B22EEC4A2CP8P284MB2496BRAP_--