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 1rYMHv-00FZqa-9k for pgsql-hackers@arkaria.postgresql.org; Fri, 09 Feb 2024 08:31:12 +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 1rYMHu-00787o-Bh for pgsql-hackers@arkaria.postgresql.org; Fri, 09 Feb 2024 08:31:10 +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 1rYMHt-00787g-Pp for pgsql-hackers@lists.postgresql.org; Fri, 09 Feb 2024 08:31:10 +0000 Received: from mail-roabra01olkn20801.outbound.protection.outlook.com ([2a01:111:f403:2c1e::801] helo=BRA01-ROA-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 1rYMHn-005r7e-Ne for pgsql-hackers@postgresql.org; Fri, 09 Feb 2024 08:31:08 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IsQdf4zsrtJvIqIkPSebRlQfn0l81n9tYpXmRTMokNEuJiKY4ZZKwDBJN3si9D/+p5p0+YtCZRLgTwiYdrkNgDTs+yP08sxz1vHEI6+y0ZKAnNjIHhM1dAunEHB/jbj9gg6F9ptG0631m+Chh0uMUy5mitbp8d/SWJMuLG1Lda/dZRh4NUoWJW6g3sNVmKb1bP3XQ6jvWWATFVxNZug15gsDA8STqCT97d4v8AGfFoybbjbEacLASIj+8nPzJzdvvS+lXjR96ZruqhkHwVRIPwlYS2Hhw2JZTl0f2P6umiuj/pgHX2pjAotnkV/0xJMlGPcdK/EwoBMGyxZWkX1gsg== 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=dWrB8qjrpMTSOfaWUspLCqskY1iZqUJ+BIDwkypPWlI=; b=VSr5QIXLdGzN46DhuCbe/zTbvWlpCmBA12Lvd9KA27Tf5nARgrXOFR/CWesTIGaul+9LzVt87txXG8ytInvG5nn6tbR65c/N6Dkx1yFhYyCoSJSBdcnWegKdkc5OZ3rI25aZNZS2Xq3CwbVVBBcLbPhejryRUV6u8FNNHOkQ06sKO77jOcuFIvcNRaa7lidgM93MTwZLhKRe/xX93zDw4kVkSAdqefhV/2x4Wekinh55qpC75nyXXoTTTYu0hywntiHwYJXC7u7rHH13IC3WdxXSo/OCcKEc5fLX+mD8Zr1mVXt7NI0iLCVURoJ8JNBmi2wDmFR0LtXzwb56qbbKSg== 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 CP8P284MB2245.BRAP284.PROD.OUTLOOK.COM (2603:10d6:103:1e8::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7270.24; Fri, 9 Feb 2024 08:30:56 +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.025; Fri, 9 Feb 2024 08:30:55 +0000 From: Maiquel Grassi To: Nathan Bossart CC: Jim Jones , Erik Wienhold , Pavel Luzanov , "pgsql-hackers@postgresql.org" Subject: RE: Psql meta-command conninfo+ Thread-Topic: Psql meta-command conninfo+ Thread-Index: AQHaWRQuU7L2MD2CX0quiO/hLxQK8bD9n9eAgAAOagCAABlrgoAABsOAgAABrYCAAAkRMoAAAaIAgABfmwKAAJe3AIAAHVoLgAAnEwCAADA+O4ABA4CAgABCa76AAE2sAIAAENYAgAAxdACAAB6uhIAAFZOAgABaTAA= Date: Fri, 9 Feb 2024 08:30:54 +0000 Message-ID: References: <852cabef-f596-4826-9a54-d3f75d9a6cc8@postgrespro.ru> <47dcfd6f-d1d8-4a13-9bc5-b43ee9bd534f@uni-muenster.de> <20240209024155.GA659389@nathanxps13> In-Reply-To: <20240209024155.GA659389@nathanxps13> 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: [WvDWeg2VWxwxQ6zolXj7DoMNMwiqid9o] x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CP8P284MB2496:EE_|CP8P284MB2245:EE_ x-ms-office365-filtering-correlation-id: dca483a4-fea7-459d-1658-08dc29496eee x-ms-exchange-slblob-mailprops: gMiuAN0LASJ3zsw18NzQ1hSgvVbkXYFL6WjVd8M4S6o8DjGigczEq2CXERXc4LVudLs7l0FDGRbf6OWgNltVucf0i9VsrNXwFxhTe4JB4LJvIHoXZrh/6s4P/z3I2FA8vkRWVct7QsUl1/1X+wlgOT5qoW4PfKWVCv1P9L9Vn/6IHgeJVT7WX9bvJIhP0Iv2NwPiwyW4nmIxVDw5FAWsK5cT4Kzu43KbF5XSM55FxkRdI/bTNoxVMrHZxHadEoYdLOi1aZy24Gj6U8WjvQgh5ZvmJli3QwNcNr8AKu1STyDc1mMi0xNk2l34LwC2/zl83SoVvngDv+QTTytTXnY+QaKnSjxpwtbw++efu6wtgMWqv2dEqCLjXBItaQrbMZ23UAxCKS4iX/7JWaE68WbxW3gvyB2DzvSHxGl3ZUfnZV0bAcnmrv/6Z8GiUI5k03d5Q0kBQhhQnLkJQlkh5t8h93ZGOF/tvbnsRaogZGtZ3WzdAx1/WzRn34plaOD7WtBxBq+Z5a2Qua4IM4zRaNa4RBrySG9E8ZZzkQf3cVfSdHF3w3xq5SDKb3reSb/RldPfAiVdI/Ta5RpYJDlW6580NTp4lhJHIxr3TY/h0tI5S0qyG52x5EnhoV2BqhiDr3uFX71t4bgv4epJgVG7kze+46vJ/A6vXQr/4R9xk6dyqBukx8b3z9d7DiP6ynQtpKjpG28wqTJNb3LJN4O4poxiHg== x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: NmEYutXTV1IsgFMDosGNx16D8oeCB8nQpoEh7J4navedTnTd/epfmm+BLiM7kABc4OxIDX9ddHZPP9zDXUCmh43oT5IW6Pe+EBaPGcXQBzwR0A9ErWL3pa9L0g2tTPZephBBCo9LynTqygneB2OX4aL+zFc/HHdPaQK71vHQitAqJVtwLLug7p/Pka2D/cSTp+RZcGyLJ9BV+Wvb4SpblX9SdNWmX88HpwqW0rfjGYHtDclh/ZouYjQexW8PG988ZcmmjTve9k+rGI020E+Ke21LWmw/N7IalN8oNVYLEARhhBDnPY+tKPIsEiH7rxXK6B9QbFhPuO4HWKTqPvjpSgckm8V3fYuq69j7wyWwm3C+m/7mXl0zY1bGnDlKR5QHkxVR4R8Kc1QGOHkUHrr2kZYVm2tpKxIRJbv0Iy7b/8F52gGVWqF/vvhCsngoWBDUEeeV20ZJlNd566ZjeEKZQpc2XBaQCeq1+4TqtoPyyWxlN/jFvVvJ4fotXoyvr/4G/GVXPZuizdp1qUS+F09G3j2XeVSEuo0fNNqYl8hisGUHHtxqP4DC0BSSROJC8GY+MsdI8IojMz4N95srwHmY0iCMH7s7xkp71H7jvRZu/TbJFSEZ62cKdb0WSt65FrjV x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?jl+GmDUPahWHDYwm5PBv3k6tCfMPGZUREUzNLUkl4TcIigIWLVwIxjhbJ3?= =?iso-8859-1?Q?x8LVDlU0HSkwVWnkc9CINkQNj8Rdn+h0sylRodBfj4p02tFPJLrQKF1tbp?= =?iso-8859-1?Q?c4fSXZGzoep4+ptUYGEFCwd7SqflMLw6MxQkWLv6D2jIduoEeuldgt9/cn?= =?iso-8859-1?Q?pVE89KJ4+ZKSdQi4wXUKqC7WZadp6KAFLgrzvPy8kCpk/Gy3ESQ4R/eWpB?= =?iso-8859-1?Q?CUKXYuDo34KCPYgFcOvcAF58Y95wkiTdDetqRQPfDTdOSj/15kRKDkNpJZ?= =?iso-8859-1?Q?0VwZP6g7wwMW+BgWZmxmSV6TpPNIykzTsfcvLERjBgvMI99JMpRE+hd4mN?= =?iso-8859-1?Q?bVZf1oCBXgdrX+eklj/fXkgyatoNdk1anGEN6qTM6sDy6XXP9T/6p3aGok?= =?iso-8859-1?Q?iUJKOYtJg7U6nKeHzoQYEWxRBCQPjcVtKdMunJ9zloR7B6YZhvLWnJOwl1?= =?iso-8859-1?Q?0kQ0kk100VtZ9q8nvmHfP66sgXyXqNSjz9sJTTcfUi9bcNq1Qv2CTOQnIF?= =?iso-8859-1?Q?9ocB7hWgjwOZwHn9Gpj+xEsrJqsOgzhRKuvqS5VLVqyptfgi+7bvgJIkw2?= =?iso-8859-1?Q?j98NRY3ZhW8jJaNUgB+9PxCy/SHHXyteSa3SaXG1ZvxJW9XU1l+Dz7xo2f?= =?iso-8859-1?Q?8POtFjtxCjCODnWQYPnATfpS4E4n3evISEgG6CXFnS4FDygmV+zrSoLCA9?= =?iso-8859-1?Q?DGVWozQe/QkGb890EeWHpT3lQ5Fy+2eja3gIUdOIYog8IS6ge0RfdsaviZ?= =?iso-8859-1?Q?K5VZlC06T3WrBKZscLHCXBuD+kCCRqLqP/5A9khPzlj7e27PyzdB5zgqNh?= =?iso-8859-1?Q?pjeGWDzSAs5F/y83gu2/KTTGf+DGljzyy7KkvSX0W8hQhoujCGuBdhBfzg?= =?iso-8859-1?Q?TkBTuPvNBnICDWNtJMJ6aPbzEpXawice+6YBinhElPJ7HEmm4mXeSd7R8s?= =?iso-8859-1?Q?GQHwn57KotM3TXH1v+M83ogzFZ8MOtvpqYi5EGH3o5ZADy4oosVJxfYlU/?= =?iso-8859-1?Q?MMUBVt2Xt7CD1KUnKT3OL87e+tYXRaHroewDJb/suFTd1YtfrjTMJpQ4g+?= =?iso-8859-1?Q?PxrH7TdXAeOWe75DqE0OTSX/D6Hp3abigyd7Gbtc/B27PymL4LV21ggdju?= =?iso-8859-1?Q?B8Y7AUHp6GfOoEvx7PIxgPY91+ArXxXvo9EQXVkj86rP+wAn2gPBXCMPrr?= =?iso-8859-1?Q?pGSnC5QWgQV4ZBYRrrc2cvpBOsQSPZWrtGes6jhWMBiTlXl5cUETrKneOu?= =?iso-8859-1?Q?RUhI/rGhxxhFfx2AorWA=3D=3D?= Content-Type: multipart/mixed; boundary="_005_CP8P284MB24960077EA004AD1258EDE40EC4B2CP8P284MB2496BRAP_" MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-0f7b9.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: dca483a4-fea7-459d-1658-08dc29496eee X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Feb 2024 08:30:54.9636 (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: CP8P284MB2245 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_005_CP8P284MB24960077EA004AD1258EDE40EC4B2CP8P284MB2496BRAP_ Content-Type: multipart/alternative; boundary="_000_CP8P284MB24960077EA004AD1258EDE40EC4B2CP8P284MB2496BRAP_" --_000_CP8P284MB24960077EA004AD1258EDE40EC4B2CP8P284MB2496BRAP_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable >Sorry if this has been brought up, but I noticed that some of the >information is listed below the result set: > > postgres=3D# \conninfo+ > Current Connection Information > -[ RECORD 1 ]------+--------- > Database | postgres > Authenticated User | nathan > System User | > Current User | nathan > Session User | nathan > Session PID | 659410 > Server Version | 17devel > Server Address | ::1 > Server Port | 5432 > Client Address | ::1 > Client Port | 59886 > Socket Directory | > Host | ::1 > SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384,= compression: off) >Shouldn't we move this information into the result set? Separately, does >the server version really belong here? I'm not sure I would consider that >to be connection information. --//-- Hi Nathan, The "Server Version" information is closely related to the connection. Howe= ver, it does seem to be an element that does not belong to this set. I removed t= his column and left only what is truly connection info. Regarding the functions "printSSLInfo()" and "printGSSInfo()", I agree that= we should include them in the returned dataset (as two additional columns). A = good argument is that this will make more sense when using \x (Expanded display)= . However, they are declared and defined within the "command.c" file. To make calls to "printSSLInfo()" and "printGSSInfo()" within "describe.c", we woul= d need to move their declarations to a new header and create a new C file. I belie= ve something like "ssl_gss_info.h" and "ssl_gss_info.c". I'm not sure, but at = first glance, this is what occurs to me. Do you have any better or more concise suggestio= ns for resolving this? Regards, Maiquel Grassi. --_000_CP8P284MB24960077EA004AD1258EDE40EC4B2CP8P284MB2496BRAP_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
>Sorry if this has been brought up, but= I noticed that some of the

>information is listed = below the result set:
>
  >      postgres=3D# \conninfo+
  >    Current Connection Information
  >      -[ RECORD 1 ]------+---------
  >     Database      =      | postgres
  >      Authenticated User | nathan
  >      System User    &nb= sp;   |
  >      Current User    &n= bsp;  | nathan
  >      Session User    &n= bsp;  | nathan
  >     Session PID     &nb= sp;  | 659410
  >      Server Version    = | 17devel
  >      Server Address    = | ::1
  >      Server Port    &nb= sp;   | 5432
  >      Client Address    = | ::1
  >      Client Port    &nb= sp;   | 59886
  >      Socket Directory   |
  >      Host     &nbs= p;         | ::1

  >      SSL connection (protocol: TLSv1.3, cip= her: TLS_AES_256_GCM_SHA384, compression: off)

>Shouldn't we move this information into the result set?  Separatel= y, does
>the server version really belong here?  I'm not sure I would consi= der that
>to be connection information.

--//--

Hi Nathan,


The "Server Version" information is closely related to the connec= tion. However,
it does seem to be an element that does not belong to this set. I removed t= his
column and left only what is truly connection info.

Regarding the functions= "printSSLInfo()" and "printGSSInfo()", I agree that we=
should include them in the returned dataset (as two additional columns). A = good
argument is that this will make more sense when using \x (Expanded display)= .
However, they are declared and defined within the "command.c" fil= e. To make
calls to "printSSLInfo()" and "printGSSInfo()" within &= quot;describe.c", we would need
to move their declarations to a new header and create a new C file. I belie= ve
something like "ssl_gss_info.h" and "ssl_gss_info.c". I= 'm not sure, but at first glance,
this is what occurs to me. Do you have any better or more concise suggestio= ns
for resolving this?

Regards,
Maiquel Grassi.

--_000_CP8P284MB24960077EA004AD1258EDE40EC4B2CP8P284MB2496BRAP_-- --_005_CP8P284MB24960077EA004AD1258EDE40EC4B2CP8P284MB2496BRAP_ Content-Type: application/octet-stream; name="v11-0001-psql-meta-command-conninfo-plus.patch" Content-Description: v11-0001-psql-meta-command-conninfo-plus.patch Content-Disposition: attachment; filename="v11-0001-psql-meta-command-conninfo-plus.patch"; size=8989; creation-date="Fri, 09 Feb 2024 08:09:08 GMT"; modification-date="Fri, 09 Feb 2024 08:28:20 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 bC9jb21tYW5kLmMKaW5kZXggNWM5MDZlNC4uMmM0ZWE3NCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9w 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 b3B5cmlnaHQiKSA9PSAwKQpAQCAtNjQzLDQ3ICs2NDQsNzAgQEAgZXhlY19jb21tYW5kX2NkKFBz cWxTY2FuU3RhdGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVfYnJhbmNoLCBjb25zdCBjaGFyICpj bWQpCiB9CiAKIC8qCi0gKiBcY29ubmluZm8gLS0gZGlzcGxheSBpbmZvcm1hdGlvbiBhYm91dCB0 aGUgY3VycmVudCBjb25uZWN0aW9uCisgKiBcY29ubmluZm8sIFxjb25uaW5mbysgLS0gZGlzcGxh eSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY3VycmVudCBjb25uZWN0aW9uCiAgKi8KIHN0YXRpYyBi YWNrc2xhc2hSZXN1bHQKLWV4ZWNfY29tbWFuZF9jb25uaW5mbyhQc3FsU2NhblN0YXRlIHNjYW5f c3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCkKK2V4ZWNfY29tbWFuZF9jb25uaW5mbyhQc3FsU2Nh blN0YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCwgY29uc3QgY2hhciAqY21kKQog eworCWJvb2wJCXN1Y2Nlc3MgPSB0cnVlOworCiAJaWYgKGFjdGl2ZV9icmFuY2gpCiAJewogCQlj aGFyCSAgICpkYiA9IFBRZGIocHNldC5kYik7CisJCWJvb2wJCXNob3dfdmVyYm9zZTsKIAotCQlp ZiAoZGIgPT0gTlVMTCkKLQkJCXByaW50ZihfKCJZb3UgYXJlIGN1cnJlbnRseSBub3QgY29ubmVj dGVkIHRvIGEgZGF0YWJhc2UuXG4iKSk7Ci0JCWVsc2UKKwkJc2hvd192ZXJib3NlID0gc3RyY2hy KGNtZCwgJysnKSA/IHRydWUgOiBmYWxzZTsKKworCQkvKgorCQkgKiBcY29ubmluZm8rCisJCSAq LworCQlpZiAoc2hvd192ZXJib3NlKQogCQl7Ci0JCQljaGFyCSAgICpob3N0ID0gUFFob3N0KHBz ZXQuZGIpOwotCQkJY2hhcgkgICAqaG9zdGFkZHIgPSBQUWhvc3RhZGRyKHBzZXQuZGIpOworCQkJ c3VjY2VzcyA9IGxpc3RDb25uZWN0aW9uSW5mb3JtYXRpb24oKTsKKwkJCXByaW50U1NMSW5mbygp OworCQkJcHJpbnRHU1NJbmZvKCk7CisJCX0KIAotCQkJaWYgKGlzX3VuaXhzb2NrX3BhdGgoaG9z dCkpCi0JCQl7Ci0JCQkJLyogaG9zdGFkZHIgb3ZlcnJpZGVzIGhvc3QgKi8KLQkJCQlpZiAoaG9z dGFkZHIgJiYgKmhvc3RhZGRyKQotCQkJCQlwcmludGYoXygiWW91IGFyZSBjb25uZWN0ZWQgdG8g ZGF0YWJhc2UgXCIlc1wiIGFzIHVzZXIgXCIlc1wiIG9uIGFkZHJlc3MgXCIlc1wiIGF0IHBvcnQg XCIlc1wiLlxuIiksCi0JCQkJCQkgICBkYiwgUFF1c2VyKHBzZXQuZGIpLCBob3N0YWRkciwgUFFw b3J0KHBzZXQuZGIpKTsKLQkJCQllbHNlCi0JCQkJCXByaW50ZihfKCJZb3UgYXJlIGNvbm5lY3Rl ZCB0byBkYXRhYmFzZSBcIiVzXCIgYXMgdXNlciBcIiVzXCIgdmlhIHNvY2tldCBpbiBcIiVzXCIg YXQgcG9ydCBcIiVzXCIuXG4iKSwKLQkJCQkJCSAgIGRiLCBQUXVzZXIocHNldC5kYiksIGhvc3Qs IFBRcG9ydChwc2V0LmRiKSk7Ci0JCQl9CisJCS8qCisJCSAqIFxjb25uaW5mbworCQkgKi8KKwkJ ZWxzZQorCQl7CisJCQlpZiAoZGIgPT0gTlVMTCkKKwkJCQlwcmludGYoXygiWW91IGFyZSBjdXJy ZW50bHkgbm90IGNvbm5lY3RlZCB0byBhIGRhdGFiYXNlLlxuIikpOwogCQkJZWxzZQogCQkJewot CQkJCWlmIChob3N0YWRkciAmJiAqaG9zdGFkZHIgJiYgc3RyY21wKGhvc3QsIGhvc3RhZGRyKSAh PSAwKQotCQkJCQlwcmludGYoXygiWW91IGFyZSBjb25uZWN0ZWQgdG8gZGF0YWJhc2UgXCIlc1wi IGFzIHVzZXIgXCIlc1wiIG9uIGhvc3QgXCIlc1wiIChhZGRyZXNzIFwiJXNcIikgYXQgcG9ydCBc IiVzXCIuXG4iKSwKLQkJCQkJCSAgIGRiLCBQUXVzZXIocHNldC5kYiksIGhvc3QsIGhvc3RhZGRy LCBQUXBvcnQocHNldC5kYikpOworCQkJCWNoYXIJICAgKmhvc3QgPSBQUWhvc3QocHNldC5kYik7 CisJCQkJY2hhcgkgICAqaG9zdGFkZHIgPSBQUWhvc3RhZGRyKHBzZXQuZGIpOworCisJCQkJaWYg KGlzX3VuaXhzb2NrX3BhdGgoaG9zdCkpCisJCQkJeworCQkJCQkvKiBob3N0YWRkciBvdmVycmlk ZXMgaG9zdCAqLworCQkJCQlpZiAoaG9zdGFkZHIgJiYgKmhvc3RhZGRyKQorCQkJCQkJcHJpbnRm KF8oIllvdSBhcmUgY29ubmVjdGVkIHRvIGRhdGFiYXNlIFwiJXNcIiBhcyB1c2VyIFwiJXNcIiBv biBhZGRyZXNzIFwiJXNcIiBhdCBwb3J0IFwiJXNcIi5cbiIpLAorCQkJCQkJCSAgIGRiLCBQUXVz ZXIocHNldC5kYiksIGhvc3RhZGRyLCBQUXBvcnQocHNldC5kYikpOworCQkJCQllbHNlCisJCQkJ CQlwcmludGYoXygiWW91IGFyZSBjb25uZWN0ZWQgdG8gZGF0YWJhc2UgXCIlc1wiIGFzIHVzZXIg XCIlc1wiIHZpYSBzb2NrZXQgaW4gXCIlc1wiIGF0IHBvcnQgXCIlc1wiLlxuIiksCisJCQkJCQkJ ICAgZGIsIFBRdXNlcihwc2V0LmRiKSwgaG9zdCwgUFFwb3J0KHBzZXQuZGIpKTsKKwkJCQl9CiAJ CQkJZWxzZQotCQkJCQlwcmludGYoXygiWW91IGFyZSBjb25uZWN0ZWQgdG8gZGF0YWJhc2UgXCIl c1wiIGFzIHVzZXIgXCIlc1wiIG9uIGhvc3QgXCIlc1wiIGF0IHBvcnQgXCIlc1wiLlxuIiksCi0J CQkJCQkgICBkYiwgUFF1c2VyKHBzZXQuZGIpLCBob3N0LCBQUXBvcnQocHNldC5kYikpOworCQkJ CXsKKwkJCQkJaWYgKGhvc3RhZGRyICYmICpob3N0YWRkciAmJiBzdHJjbXAoaG9zdCwgaG9zdGFk ZHIpICE9IDApCisJCQkJCQlwcmludGYoXygiWW91IGFyZSBjb25uZWN0ZWQgdG8gZGF0YWJhc2Ug XCIlc1wiIGFzIHVzZXIgXCIlc1wiIG9uIGhvc3QgXCIlc1wiIChhZGRyZXNzIFwiJXNcIikgYXQg cG9ydCBcIiVzXCIuXG4iKSwKKwkJCQkJCQkgICBkYiwgUFF1c2VyKHBzZXQuZGIpLCBob3N0LCBo b3N0YWRkciwgUFFwb3J0KHBzZXQuZGIpKTsKKwkJCQkJZWxzZQorCQkJCQkJcHJpbnRmKF8oIllv dSBhcmUgY29ubmVjdGVkIHRvIGRhdGFiYXNlIFwiJXNcIiBhcyB1c2VyIFwiJXNcIiBvbiBob3N0 IFwiJXNcIiBhdCBwb3J0IFwiJXNcIi5cbiIpLAorCQkJCQkJCSAgIGRiLCBQUXVzZXIocHNldC5k YiksIGhvc3QsIFBRcG9ydChwc2V0LmRiKSk7CisJCQkJfQorCQkJCXByaW50U1NMSW5mbygpOwor CQkJCXByaW50R1NTSW5mbygpOwogCQkJfQotCQkJcHJpbnRTU0xJbmZvKCk7Ci0JCQlwcmludEdT U0luZm8oKTsKIAkJfQogCX0KKwllbHNlCisJCWlnbm9yZV9zbGFzaF9vcHRpb25zKHNjYW5fc3Rh dGUpOwogCi0JcmV0dXJuIFBTUUxfQ01EX1NLSVBfTElORTsKKwlyZXR1cm4gc3VjY2VzcyA/IFBT UUxfQ01EX1NLSVBfTElORSA6IFBTUUxfQ01EX0VSUk9SOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCBi NmE0ZWIxLi4zNDQ2NjRiIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysg Yi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImZl X3V0aWxzL21icHJpbnQuaCIKICNpbmNsdWRlICJmZV91dGlscy9wcmludC5oIgogI2luY2x1ZGUg ImZlX3V0aWxzL3N0cmluZ191dGlscy5oIgorI2luY2x1ZGUgImxpYnBxL3BxY29tbS5oIgogI2lu Y2x1ZGUgInNldHRpbmdzLmgiCiAjaW5jbHVkZSAidmFyaWFibGVzLmgiCiAKQEAgLTkwMSw2ICs5 MDIsNjkgQEAgZXJyb3JfcmV0dXJuOgogCXJldHVybiBmYWxzZTsKIH0KIAorLyoKKyAqIGxpc3RD b25uZWN0aW9uSW5mb3JtYXRpb24KKyAqCisgKiBmb3IgXGNvbm5pbmZvKworICovCitib29sCits aXN0Q29ubmVjdGlvbkluZm9ybWF0aW9uKHZvaWQpCit7CisJUEdyZXN1bHQgICAqcmVzOworCVBR RXhwQnVmZmVyRGF0YSBidWY7CisJcHJpbnRRdWVyeU9wdCBteW9wdCA9IHBzZXQucG9wdDsKKwor CWNoYXIJICAgKmhvc3QgPSBQUWhvc3QocHNldC5kYik7CisJY2hhcgkgICAqaG9zdGFkZHIgPSBQ UWhvc3RhZGRyKHBzZXQuZGIpOworCisJaW5pdFBRRXhwQnVmZmVyKCZidWYpOworCisJcHJpbnRm UFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJICAiU0VMRUNUXG4iCisJCQkJCSAgIiAgcGdfY2F0YWxv Zy5jdXJyZW50X2RhdGFiYXNlKCkgQVMgXCJEYXRhYmFzZVwiLFxuIgorCQkJCQkgICIgICclcycg QVMgXCJBdXRoZW50aWNhdGVkIFVzZXJcIixcbiIsCisJCQkJCSAgUFF1c2VyKHBzZXQuZGIpKTsK KwlpZiAocHNldC5zdmVyc2lvbiA+PSAxNjAwMDApCisJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYs CisJCQkJCQkgICIgIHBnX2NhdGFsb2cuc3lzdGVtX3VzZXIoKSBBUyBcIlN5c3RlbSBVc2VyXCIs XG4iKTsKKwlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkgICIgIHBnX2NhdGFsb2cuY3Vy cmVudF91c2VyKCkgQVMgXCJDdXJyZW50IFVzZXJcIixcbiIKKwkJCQkJICAiICBwZ19jYXRhbG9n LnNlc3Npb25fdXNlcigpIEFTIFwiU2Vzc2lvbiBVc2VyXCIsXG4iCisJCQkJCSAgIiAgcGdfY2F0 YWxvZy5wZ19iYWNrZW5kX3BpZCgpIEFTIFwiU2Vzc2lvbiBQSURcIixcbiIKKwkJCQkJICAiICBw Z19jYXRhbG9nLmluZXRfc2VydmVyX2FkZHIoKSBBUyBcIlNlcnZlciBBZGRyZXNzXCIsXG4iCisJ CQkJCSAgIiAgcGdfY2F0YWxvZy5jdXJyZW50X3NldHRpbmcoJ3BvcnQnKSBBUyBcIlNlcnZlciBQ b3J0XCIsXG4iCisJCQkJCSAgIiAgcGdfY2F0YWxvZy5pbmV0X2NsaWVudF9hZGRyKCkgQVMgXCJD bGllbnQgQWRkcmVzc1wiLFxuIgorCQkJCQkgICIgIHBnX2NhdGFsb2cuaW5ldF9jbGllbnRfcG9y dCgpIEFTIFwiQ2xpZW50IFBvcnRcIixcbiIpOworCWlmIChpc191bml4c29ja19wYXRoKGhvc3Qp ICYmICEoaG9zdGFkZHIgJiYgKmhvc3RhZGRyKSkKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwK KwkJCQkJCSAgIiAgJyVzJyBBUyBcIlNvY2tldCBEaXJlY3RvcnlcIixcbiIsCisJCQkJCQkgIGhv c3QpOworCWVsc2UKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCSAgIiAgTlVMTCBB UyBcIlNvY2tldCBEaXJlY3RvcnlcIixcbiIpOworCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJ CQkJCSAgIiAgQ0FTRVxuIgorCQkJCQkgICIgICAgV0hFTlxuIgorCQkJCQkgICIgICAgICBwZ19j YXRhbG9nLmluZXRfc2VydmVyX2FkZHIoKSBJUyBOVUxMXG4iCisJCQkJCSAgIiAgICAgIEFORCBw Z19jYXRhbG9nLmluZXRfY2xpZW50X2FkZHIoKSBJUyBOVUxMXG4iCisJCQkJCSAgIiAgICBUSEVO IE5VTExcbiIKKwkJCQkJICAiICAgIEVMU0UgJyVzJ1xuIgorCQkJCQkgICIgIEVORCBBUyBcIkhv c3RcIjsiLAorCQkJCQkgIGhvc3QpOworCisJcmVzID0gUFNRTGV4ZWMoYnVmLmRhdGEpOworCXRl cm1QUUV4cEJ1ZmZlcigmYnVmKTsKKwlpZiAoIXJlcykKKwkJcmV0dXJuIGZhbHNlOworCisJbXlv cHQudGl0bGUgPSBfKCJDdXJyZW50IENvbm5lY3Rpb24gSW5mb3JtYXRpb24iKTsKKwlteW9wdC50 cmFuc2xhdGVfaGVhZGVyID0gdHJ1ZTsKKworCXByaW50UXVlcnkocmVzLCAmbXlvcHQsIHBzZXQu cXVlcnlGb3V0LCBmYWxzZSwgcHNldC5sb2dmaWxlKTsKKworCVBRY2xlYXIocmVzKTsKKwlyZXR1 cm4gdHJ1ZTsKK30KIAogLyoKICAqIGxpc3RBbGxEYnMKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNx bC9kZXNjcmliZS5oIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmgKaW5kZXggMjczZjk3NC4uOGE0 ZTgzZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmgKKysrIGIvc3JjL2Jpbi9w c3FsL2Rlc2NyaWJlLmgKQEAgLTY0LDYgKzY0LDkgQEAgZXh0ZXJuIGJvb2wgbGlzdFRTRGljdGlv bmFyaWVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSk7CiAvKiBcZEZ0ICovCiBl eHRlcm4gYm9vbCBsaXN0VFNUZW1wbGF0ZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJi b3NlKTsKIAorLyogXGNvbm5pbmZvICovCitleHRlcm4gYm9vbCBsaXN0Q29ubmVjdGlvbkluZm9y bWF0aW9uKHZvaWQpOworCiAvKiBcbCAqLwogZXh0ZXJuIGJvb2wgbGlzdEFsbERicyhjb25zdCBj aGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwv aGVscC5jIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwppbmRleCA0ZTc5YTgxLi4yYzU0MjZkIDEwMDY0 NAotLS0gYS9zcmMvYmluL3BzcWwvaGVscC5jCisrKyBiL3NyYy9iaW4vcHNxbC9oZWxwLmMKQEAg LTMxMCw3ICszMTAsNyBAQCBzbGFzaFVzYWdlKHVuc2lnbmVkIHNob3J0IGludCBwYWdlcikKIAll bHNlCiAJCUhFTFAwKCIgIFxcY1tvbm5lY3RdIHtbREJOQU1FfC0gVVNFUnwtIEhPU1R8LSBQT1JU fC1dIHwgY29ubmluZm99XG4iCiAJCQkgICIgICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVj dCB0byBuZXcgZGF0YWJhc2UgKGN1cnJlbnRseSBubyBjb25uZWN0aW9uKVxuIik7Ci0JSEVMUDAo IiAgXFxjb25uaW5mbyAgICAgICAgICAgICAgZGlzcGxheSBpbmZvcm1hdGlvbiBhYm91dCBjdXJy ZW50IGNvbm5lY3Rpb25cbiIpOworCUhFTFAwKCIgIFxcY29ubmluZm9bK10gICAgICAgICAgIGRp c3BsYXkgaW5mb3JtYXRpb24gYWJvdXQgY3VycmVudCBjb25uZWN0aW9uXG4iKTsKIAlIRUxQMCgi ICBcXGVuY29kaW5nIFtFTkNPRElOR10gICBzaG93IG9yIHNldCBjbGllbnQgZW5jb2RpbmdcbiIp OwogCUhFTFAwKCIgIFxccGFzc3dvcmQgW1VTRVJOQU1FXSAgIHNlY3VyZWx5IGNoYW5nZSB0aGUg cGFzc3dvcmQgZm9yIGEgdXNlclxuIik7CiAJSEVMUDAoIlxuIik7Cg== --_005_CP8P284MB24960077EA004AD1258EDE40EC4B2CP8P284MB2496BRAP_ Content-Type: application/octet-stream; name="v11-0001-psql-meta-command-conninfo-plus.patch" Content-Description: v11-0001-psql-meta-command-conninfo-plus.patch Content-Disposition: attachment; filename="v11-0001-psql-meta-command-conninfo-plus.patch"; size=8989; creation-date="Fri, 09 Feb 2024 08:29:27 GMT"; modification-date="Fri, 09 Feb 2024 08:30:20 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 bC9jb21tYW5kLmMKaW5kZXggNWM5MDZlNC4uMmM0ZWE3NCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9w 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 b3B5cmlnaHQiKSA9PSAwKQpAQCAtNjQzLDQ3ICs2NDQsNzAgQEAgZXhlY19jb21tYW5kX2NkKFBz cWxTY2FuU3RhdGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVfYnJhbmNoLCBjb25zdCBjaGFyICpj bWQpCiB9CiAKIC8qCi0gKiBcY29ubmluZm8gLS0gZGlzcGxheSBpbmZvcm1hdGlvbiBhYm91dCB0 aGUgY3VycmVudCBjb25uZWN0aW9uCisgKiBcY29ubmluZm8sIFxjb25uaW5mbysgLS0gZGlzcGxh eSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY3VycmVudCBjb25uZWN0aW9uCiAgKi8KIHN0YXRpYyBi YWNrc2xhc2hSZXN1bHQKLWV4ZWNfY29tbWFuZF9jb25uaW5mbyhQc3FsU2NhblN0YXRlIHNjYW5f c3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCkKK2V4ZWNfY29tbWFuZF9jb25uaW5mbyhQc3FsU2Nh blN0YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCwgY29uc3QgY2hhciAqY21kKQog eworCWJvb2wJCXN1Y2Nlc3MgPSB0cnVlOworCiAJaWYgKGFjdGl2ZV9icmFuY2gpCiAJewogCQlj aGFyCSAgICpkYiA9IFBRZGIocHNldC5kYik7CisJCWJvb2wJCXNob3dfdmVyYm9zZTsKIAotCQlp ZiAoZGIgPT0gTlVMTCkKLQkJCXByaW50ZihfKCJZb3UgYXJlIGN1cnJlbnRseSBub3QgY29ubmVj dGVkIHRvIGEgZGF0YWJhc2UuXG4iKSk7Ci0JCWVsc2UKKwkJc2hvd192ZXJib3NlID0gc3RyY2hy KGNtZCwgJysnKSA/IHRydWUgOiBmYWxzZTsKKworCQkvKgorCQkgKiBcY29ubmluZm8rCisJCSAq LworCQlpZiAoc2hvd192ZXJib3NlKQogCQl7Ci0JCQljaGFyCSAgICpob3N0ID0gUFFob3N0KHBz ZXQuZGIpOwotCQkJY2hhcgkgICAqaG9zdGFkZHIgPSBQUWhvc3RhZGRyKHBzZXQuZGIpOworCQkJ c3VjY2VzcyA9IGxpc3RDb25uZWN0aW9uSW5mb3JtYXRpb24oKTsKKwkJCXByaW50U1NMSW5mbygp OworCQkJcHJpbnRHU1NJbmZvKCk7CisJCX0KIAotCQkJaWYgKGlzX3VuaXhzb2NrX3BhdGgoaG9z dCkpCi0JCQl7Ci0JCQkJLyogaG9zdGFkZHIgb3ZlcnJpZGVzIGhvc3QgKi8KLQkJCQlpZiAoaG9z dGFkZHIgJiYgKmhvc3RhZGRyKQotCQkJCQlwcmludGYoXygiWW91IGFyZSBjb25uZWN0ZWQgdG8g ZGF0YWJhc2UgXCIlc1wiIGFzIHVzZXIgXCIlc1wiIG9uIGFkZHJlc3MgXCIlc1wiIGF0IHBvcnQg XCIlc1wiLlxuIiksCi0JCQkJCQkgICBkYiwgUFF1c2VyKHBzZXQuZGIpLCBob3N0YWRkciwgUFFw b3J0KHBzZXQuZGIpKTsKLQkJCQllbHNlCi0JCQkJCXByaW50ZihfKCJZb3UgYXJlIGNvbm5lY3Rl ZCB0byBkYXRhYmFzZSBcIiVzXCIgYXMgdXNlciBcIiVzXCIgdmlhIHNvY2tldCBpbiBcIiVzXCIg YXQgcG9ydCBcIiVzXCIuXG4iKSwKLQkJCQkJCSAgIGRiLCBQUXVzZXIocHNldC5kYiksIGhvc3Qs IFBRcG9ydChwc2V0LmRiKSk7Ci0JCQl9CisJCS8qCisJCSAqIFxjb25uaW5mbworCQkgKi8KKwkJ ZWxzZQorCQl7CisJCQlpZiAoZGIgPT0gTlVMTCkKKwkJCQlwcmludGYoXygiWW91IGFyZSBjdXJy ZW50bHkgbm90IGNvbm5lY3RlZCB0byBhIGRhdGFiYXNlLlxuIikpOwogCQkJZWxzZQogCQkJewot CQkJCWlmIChob3N0YWRkciAmJiAqaG9zdGFkZHIgJiYgc3RyY21wKGhvc3QsIGhvc3RhZGRyKSAh PSAwKQotCQkJCQlwcmludGYoXygiWW91IGFyZSBjb25uZWN0ZWQgdG8gZGF0YWJhc2UgXCIlc1wi IGFzIHVzZXIgXCIlc1wiIG9uIGhvc3QgXCIlc1wiIChhZGRyZXNzIFwiJXNcIikgYXQgcG9ydCBc IiVzXCIuXG4iKSwKLQkJCQkJCSAgIGRiLCBQUXVzZXIocHNldC5kYiksIGhvc3QsIGhvc3RhZGRy LCBQUXBvcnQocHNldC5kYikpOworCQkJCWNoYXIJICAgKmhvc3QgPSBQUWhvc3QocHNldC5kYik7 CisJCQkJY2hhcgkgICAqaG9zdGFkZHIgPSBQUWhvc3RhZGRyKHBzZXQuZGIpOworCisJCQkJaWYg KGlzX3VuaXhzb2NrX3BhdGgoaG9zdCkpCisJCQkJeworCQkJCQkvKiBob3N0YWRkciBvdmVycmlk ZXMgaG9zdCAqLworCQkJCQlpZiAoaG9zdGFkZHIgJiYgKmhvc3RhZGRyKQorCQkJCQkJcHJpbnRm KF8oIllvdSBhcmUgY29ubmVjdGVkIHRvIGRhdGFiYXNlIFwiJXNcIiBhcyB1c2VyIFwiJXNcIiBv biBhZGRyZXNzIFwiJXNcIiBhdCBwb3J0IFwiJXNcIi5cbiIpLAorCQkJCQkJCSAgIGRiLCBQUXVz ZXIocHNldC5kYiksIGhvc3RhZGRyLCBQUXBvcnQocHNldC5kYikpOworCQkJCQllbHNlCisJCQkJ CQlwcmludGYoXygiWW91IGFyZSBjb25uZWN0ZWQgdG8gZGF0YWJhc2UgXCIlc1wiIGFzIHVzZXIg XCIlc1wiIHZpYSBzb2NrZXQgaW4gXCIlc1wiIGF0IHBvcnQgXCIlc1wiLlxuIiksCisJCQkJCQkJ ICAgZGIsIFBRdXNlcihwc2V0LmRiKSwgaG9zdCwgUFFwb3J0KHBzZXQuZGIpKTsKKwkJCQl9CiAJ CQkJZWxzZQotCQkJCQlwcmludGYoXygiWW91IGFyZSBjb25uZWN0ZWQgdG8gZGF0YWJhc2UgXCIl c1wiIGFzIHVzZXIgXCIlc1wiIG9uIGhvc3QgXCIlc1wiIGF0IHBvcnQgXCIlc1wiLlxuIiksCi0J CQkJCQkgICBkYiwgUFF1c2VyKHBzZXQuZGIpLCBob3N0LCBQUXBvcnQocHNldC5kYikpOworCQkJ CXsKKwkJCQkJaWYgKGhvc3RhZGRyICYmICpob3N0YWRkciAmJiBzdHJjbXAoaG9zdCwgaG9zdGFk ZHIpICE9IDApCisJCQkJCQlwcmludGYoXygiWW91IGFyZSBjb25uZWN0ZWQgdG8gZGF0YWJhc2Ug XCIlc1wiIGFzIHVzZXIgXCIlc1wiIG9uIGhvc3QgXCIlc1wiIChhZGRyZXNzIFwiJXNcIikgYXQg cG9ydCBcIiVzXCIuXG4iKSwKKwkJCQkJCQkgICBkYiwgUFF1c2VyKHBzZXQuZGIpLCBob3N0LCBo b3N0YWRkciwgUFFwb3J0KHBzZXQuZGIpKTsKKwkJCQkJZWxzZQorCQkJCQkJcHJpbnRmKF8oIllv dSBhcmUgY29ubmVjdGVkIHRvIGRhdGFiYXNlIFwiJXNcIiBhcyB1c2VyIFwiJXNcIiBvbiBob3N0 IFwiJXNcIiBhdCBwb3J0IFwiJXNcIi5cbiIpLAorCQkJCQkJCSAgIGRiLCBQUXVzZXIocHNldC5k YiksIGhvc3QsIFBRcG9ydChwc2V0LmRiKSk7CisJCQkJfQorCQkJCXByaW50U1NMSW5mbygpOwor CQkJCXByaW50R1NTSW5mbygpOwogCQkJfQotCQkJcHJpbnRTU0xJbmZvKCk7Ci0JCQlwcmludEdT U0luZm8oKTsKIAkJfQogCX0KKwllbHNlCisJCWlnbm9yZV9zbGFzaF9vcHRpb25zKHNjYW5fc3Rh dGUpOwogCi0JcmV0dXJuIFBTUUxfQ01EX1NLSVBfTElORTsKKwlyZXR1cm4gc3VjY2VzcyA/IFBT UUxfQ01EX1NLSVBfTElORSA6IFBTUUxfQ01EX0VSUk9SOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCBi NmE0ZWIxLi4zNDQ2NjRiIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysg Yi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImZl X3V0aWxzL21icHJpbnQuaCIKICNpbmNsdWRlICJmZV91dGlscy9wcmludC5oIgogI2luY2x1ZGUg ImZlX3V0aWxzL3N0cmluZ191dGlscy5oIgorI2luY2x1ZGUgImxpYnBxL3BxY29tbS5oIgogI2lu Y2x1ZGUgInNldHRpbmdzLmgiCiAjaW5jbHVkZSAidmFyaWFibGVzLmgiCiAKQEAgLTkwMSw2ICs5 MDIsNjkgQEAgZXJyb3JfcmV0dXJuOgogCXJldHVybiBmYWxzZTsKIH0KIAorLyoKKyAqIGxpc3RD b25uZWN0aW9uSW5mb3JtYXRpb24KKyAqCisgKiBmb3IgXGNvbm5pbmZvKworICovCitib29sCits aXN0Q29ubmVjdGlvbkluZm9ybWF0aW9uKHZvaWQpCit7CisJUEdyZXN1bHQgICAqcmVzOworCVBR RXhwQnVmZmVyRGF0YSBidWY7CisJcHJpbnRRdWVyeU9wdCBteW9wdCA9IHBzZXQucG9wdDsKKwor CWNoYXIJICAgKmhvc3QgPSBQUWhvc3QocHNldC5kYik7CisJY2hhcgkgICAqaG9zdGFkZHIgPSBQ UWhvc3RhZGRyKHBzZXQuZGIpOworCisJaW5pdFBRRXhwQnVmZmVyKCZidWYpOworCisJcHJpbnRm UFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJICAiU0VMRUNUXG4iCisJCQkJCSAgIiAgcGdfY2F0YWxv Zy5jdXJyZW50X2RhdGFiYXNlKCkgQVMgXCJEYXRhYmFzZVwiLFxuIgorCQkJCQkgICIgICclcycg QVMgXCJBdXRoZW50aWNhdGVkIFVzZXJcIixcbiIsCisJCQkJCSAgUFF1c2VyKHBzZXQuZGIpKTsK KwlpZiAocHNldC5zdmVyc2lvbiA+PSAxNjAwMDApCisJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYs CisJCQkJCQkgICIgIHBnX2NhdGFsb2cuc3lzdGVtX3VzZXIoKSBBUyBcIlN5c3RlbSBVc2VyXCIs XG4iKTsKKwlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkgICIgIHBnX2NhdGFsb2cuY3Vy cmVudF91c2VyKCkgQVMgXCJDdXJyZW50IFVzZXJcIixcbiIKKwkJCQkJICAiICBwZ19jYXRhbG9n LnNlc3Npb25fdXNlcigpIEFTIFwiU2Vzc2lvbiBVc2VyXCIsXG4iCisJCQkJCSAgIiAgcGdfY2F0 YWxvZy5wZ19iYWNrZW5kX3BpZCgpIEFTIFwiU2Vzc2lvbiBQSURcIixcbiIKKwkJCQkJICAiICBw Z19jYXRhbG9nLmluZXRfc2VydmVyX2FkZHIoKSBBUyBcIlNlcnZlciBBZGRyZXNzXCIsXG4iCisJ CQkJCSAgIiAgcGdfY2F0YWxvZy5jdXJyZW50X3NldHRpbmcoJ3BvcnQnKSBBUyBcIlNlcnZlciBQ b3J0XCIsXG4iCisJCQkJCSAgIiAgcGdfY2F0YWxvZy5pbmV0X2NsaWVudF9hZGRyKCkgQVMgXCJD bGllbnQgQWRkcmVzc1wiLFxuIgorCQkJCQkgICIgIHBnX2NhdGFsb2cuaW5ldF9jbGllbnRfcG9y dCgpIEFTIFwiQ2xpZW50IFBvcnRcIixcbiIpOworCWlmIChpc191bml4c29ja19wYXRoKGhvc3Qp ICYmICEoaG9zdGFkZHIgJiYgKmhvc3RhZGRyKSkKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwK KwkJCQkJCSAgIiAgJyVzJyBBUyBcIlNvY2tldCBEaXJlY3RvcnlcIixcbiIsCisJCQkJCQkgIGhv c3QpOworCWVsc2UKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCSAgIiAgTlVMTCBB UyBcIlNvY2tldCBEaXJlY3RvcnlcIixcbiIpOworCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJ CQkJCSAgIiAgQ0FTRVxuIgorCQkJCQkgICIgICAgV0hFTlxuIgorCQkJCQkgICIgICAgICBwZ19j YXRhbG9nLmluZXRfc2VydmVyX2FkZHIoKSBJUyBOVUxMXG4iCisJCQkJCSAgIiAgICAgIEFORCBw Z19jYXRhbG9nLmluZXRfY2xpZW50X2FkZHIoKSBJUyBOVUxMXG4iCisJCQkJCSAgIiAgICBUSEVO IE5VTExcbiIKKwkJCQkJICAiICAgIEVMU0UgJyVzJ1xuIgorCQkJCQkgICIgIEVORCBBUyBcIkhv c3RcIjsiLAorCQkJCQkgIGhvc3QpOworCisJcmVzID0gUFNRTGV4ZWMoYnVmLmRhdGEpOworCXRl cm1QUUV4cEJ1ZmZlcigmYnVmKTsKKwlpZiAoIXJlcykKKwkJcmV0dXJuIGZhbHNlOworCisJbXlv cHQudGl0bGUgPSBfKCJDdXJyZW50IENvbm5lY3Rpb24gSW5mb3JtYXRpb24iKTsKKwlteW9wdC50 cmFuc2xhdGVfaGVhZGVyID0gdHJ1ZTsKKworCXByaW50UXVlcnkocmVzLCAmbXlvcHQsIHBzZXQu cXVlcnlGb3V0LCBmYWxzZSwgcHNldC5sb2dmaWxlKTsKKworCVBRY2xlYXIocmVzKTsKKwlyZXR1 cm4gdHJ1ZTsKK30KIAogLyoKICAqIGxpc3RBbGxEYnMKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNx bC9kZXNjcmliZS5oIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmgKaW5kZXggMjczZjk3NC4uOGE0 ZTgzZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmgKKysrIGIvc3JjL2Jpbi9w c3FsL2Rlc2NyaWJlLmgKQEAgLTY0LDYgKzY0LDkgQEAgZXh0ZXJuIGJvb2wgbGlzdFRTRGljdGlv bmFyaWVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSk7CiAvKiBcZEZ0ICovCiBl eHRlcm4gYm9vbCBsaXN0VFNUZW1wbGF0ZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJi b3NlKTsKIAorLyogXGNvbm5pbmZvICovCitleHRlcm4gYm9vbCBsaXN0Q29ubmVjdGlvbkluZm9y bWF0aW9uKHZvaWQpOworCiAvKiBcbCAqLwogZXh0ZXJuIGJvb2wgbGlzdEFsbERicyhjb25zdCBj aGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwv aGVscC5jIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwppbmRleCA0ZTc5YTgxLi4yYzU0MjZkIDEwMDY0 NAotLS0gYS9zcmMvYmluL3BzcWwvaGVscC5jCisrKyBiL3NyYy9iaW4vcHNxbC9oZWxwLmMKQEAg LTMxMCw3ICszMTAsNyBAQCBzbGFzaFVzYWdlKHVuc2lnbmVkIHNob3J0IGludCBwYWdlcikKIAll bHNlCiAJCUhFTFAwKCIgIFxcY1tvbm5lY3RdIHtbREJOQU1FfC0gVVNFUnwtIEhPU1R8LSBQT1JU fC1dIHwgY29ubmluZm99XG4iCiAJCQkgICIgICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVj dCB0byBuZXcgZGF0YWJhc2UgKGN1cnJlbnRseSBubyBjb25uZWN0aW9uKVxuIik7Ci0JSEVMUDAo IiAgXFxjb25uaW5mbyAgICAgICAgICAgICAgZGlzcGxheSBpbmZvcm1hdGlvbiBhYm91dCBjdXJy ZW50IGNvbm5lY3Rpb25cbiIpOworCUhFTFAwKCIgIFxcY29ubmluZm9bK10gICAgICAgICAgIGRp c3BsYXkgaW5mb3JtYXRpb24gYWJvdXQgY3VycmVudCBjb25uZWN0aW9uXG4iKTsKIAlIRUxQMCgi ICBcXGVuY29kaW5nIFtFTkNPRElOR10gICBzaG93IG9yIHNldCBjbGllbnQgZW5jb2RpbmdcbiIp OwogCUhFTFAwKCIgIFxccGFzc3dvcmQgW1VTRVJOQU1FXSAgIHNlY3VyZWx5IGNoYW5nZSB0aGUg cGFzc3dvcmQgZm9yIGEgdXNlclxuIik7CiAJSEVMUDAoIlxuIik7Cg== --_005_CP8P284MB24960077EA004AD1258EDE40EC4B2CP8P284MB2496BRAP_--