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 1qqCPz-008YKc-Tw for pgsql-odbc@arkaria.postgresql.org; Tue, 10 Oct 2023 13:05:00 +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 1qqCPw-007q1e-Qx for pgsql-odbc@arkaria.postgresql.org; Tue, 10 Oct 2023 13:04:57 +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 1qqCPw-007q1V-5c for pgsql-odbc@lists.postgresql.org; Tue, 10 Oct 2023 13:04:57 +0000 Received: from pgintl.fastcrypt.com ([149.56.129.164]) by makus.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1qqCPt-000xHj-0R for pgsql-odbc@postgresql.org; Tue, 10 Oct 2023 13:04:54 +0000 Received: from mail-ed1-f54.google.com (mail-ed1-f54.google.com [209.85.208.54]) by pgintl.fastcrypt.com (Postfix) with ESMTPSA id 7616120156 for ; Tue, 10 Oct 2023 09:04:50 -0400 (EDT) Received: by mail-ed1-f54.google.com with SMTP id 4fb4d7f45d1cf-536071e79deso12292340a12.1 for ; Tue, 10 Oct 2023 06:04:50 -0700 (PDT) X-Gm-Message-State: AOJu0YzmI0tRRos1xcxlUl6v4HGe6PJFXT+oX99ih4+kJN6sJoDUQHnm fLKdmFLa3fBDZ4tm0g3hPCT/jwrBtHPLHDfx7BY= X-Google-Smtp-Source: AGHT+IHkNONykf0I1EbtMkkVDFVKoireQLPzgU0qXzAsgIXbmOoCOUUB2Y7DYfCPcH2pG7MfDYlYOasX8625/PEexr0= X-Received: by 2002:aa7:d413:0:b0:522:d801:7d07 with SMTP id z19-20020aa7d413000000b00522d8017d07mr13363196edq.10.1696943089222; Tue, 10 Oct 2023 06:04:49 -0700 (PDT) MIME-Version: 1.0 References: <755f8640.2ea4.18b17fd0ce5.Coremail.lzwp0521@163.com> In-Reply-To: <755f8640.2ea4.18b17fd0ce5.Coremail.lzwp0521@163.com> From: Dave Cramer Date: Tue, 10 Oct 2023 09:04:31 -0400 X-Gmail-Original-Message-ID: Message-ID: Subject: =?UTF-8?Q?Re=3A_=5BPATCH=5D_Allow_catalogname_=28database=29_and_procnam?= =?UTF-8?Q?e_=EF=BC=88no_under_public_schema=29_enumeration_with_SQLProcedures?= To: =?UTF-8?B?5YiY5bqE?= Cc: pgsql-odbc@postgresql.org Content-Type: multipart/related; boundary="00000000000009f7f506075c5a65" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000009f7f506075c5a65 Content-Type: multipart/alternative; boundary="00000000000009f7f406075c5a64" --00000000000009f7f406075c5a64 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hello, Thanks for the patch, however it does not apply cleanly using patch or git apply Can you provide a PR postgresql-interfaces/psqlodbc (github.com) and add tests please ? Dave Cramer www.postgres.rocks On Tue, 10 Oct 2023 at 01:09, =E5=88=98=E5=BA=84 wrote: > hello=EF=BC=81 > > > The attached patch fixed SQLProcedures two bug: > > 1. make enumeration of databases (catalogs in ODBC speak) work. > > 2. make enumeration of procedurename (procname in ODBC speak) work. > > > > Step: > > 1. login postgres > > 2. create schem named schem1 > > 3. set search_path TO schem1 > > 4. create procedure named genre_insert_data > > 5. with odbc application=EF=BC=88retcode =3D SQLProcedures (hstmt, N= ULL, 0, > NULL, 0, (SQLCHAR *)"genre_insert_data", strlen("genre_insert_data"));=EF= =BC=89to > get the genre_insert_data(step 4) > > 6. the result is empty. > > 7. After the patch is compiled using the attached patch, then run the = odbc > application=EF=BC=88step 5=EF=BC=89, The result is shown below: > > > > > > --00000000000009f7f406075c5a64 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello,

Thanks for the = patch, however it does not apply cleanly using patch or git apply

Can you provide=C2=A0a PR=C2=A0postgresql-interfaces/psqlodbc (github.co= m)=C2=A0and add tests please ?


Dave Cr= amer
www.postgres.rocks

On Tue, = 10 Oct 2023 at 01:09, =E5=88=98=E5=BA=84 <lzwp0521@163.com> wrote:

hello=EF=BC=81


The attached patch fixed=C2=A0 SQLProcedures two bug:

1.=C2= =A0 make enumeration of databases (catalogs in ODBC speak) work.

2.=C2=A0= make enumeration of procedurename (procname=C2=A0 in ODBC speak) work.

=

<= br>


Step:

=C2=A0 =C2=A01.=C2=A0 login postgres

=C2=A0 =C2=A02.= =C2=A0 create schem named=C2=A0 schem1=C2=A0

=C2=A0 =C2=A03.=C2=A0 set se= arch_path TO schem1

=C2=A0 =C2=A04.=C2=A0 create procedure named genre_in= sert_data

=C2=A0 =C2=A05.=C2=A0 with odbc application=EF=BC=88retcode =3D= =C2=A0 SQLProcedures (hstmt, NULL, 0, NULL, 0, (SQLCHAR *)"genre_inser= t_data", strlen("genre_insert_data"));=EF=BC=89to get the ge= nre_insert_data(step 4)

=C2=A0 =C2=A06.=C2=A0 the result is empty.

=C2=A0 =C2=A0=
=C2=A0 =C2=A07. After the patch is = compiled using the=C2=A0attached patch, then run the odbc application=EF=BC=88step 5=EF= =BC=89,=C2=A0The result is shown below:
=C2=A0=C2=A0=C2=A0 =C2=A0


<= /div>

<= /div>
=C2= =A0=C2=A0
--00000000000009f7f406075c5a64-- --00000000000009f7f506075c5a65 Content-Type: image/png; name="image.png" Content-Disposition: inline; filename="image.png" Content-Transfer-Encoding: base64 Content-ID: <18b19af930acb971f161> X-Attachment-Id: 18b19af930acb971f161 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 --00000000000009f7f506075c5a65 Content-Type: image/png; name="image.png" Content-Disposition: inline; filename="image.png" Content-Transfer-Encoding: base64 Content-ID: <18b19af930bcb971f162> X-Attachment-Id: 18b19af930bcb971f162 iVBORw0KGgoAAAANSUhEUgAAAXoAAAB6CAYAAACx15gkAAAabklEQVR4Ae1d3ZmDOAy8QlLPFrO9 pJU8XQHXQDrZHnKfjGVGsmwgIeEn87DfArYlWRqNhUPCP5fL5cE/+oAYIAaIgfNi4B8G97zBZWwZ W2KAGBAMxET/e3v8/f3lv9vjl1U/73rejQHB3P36+Hm3npb8g2H+9/b3uP2enMS2xkQLKwe83iT6 +/Xno+TWA+7P9T4uPIYMfh+3siDdH9efdYDftAXJwNhxeRgb/2Bx/Lk+7sXGZYtnU6YArWWLXL/9 xrHDMWKTm8Om1Z/Ytgt7fh7XO8RPk/r39kg5IfFc286EkayzFz+15cn/Ia6JiThXnvTxnBwK4/BG fd2Kfi9En8gOiEucNNgmCYlVzc/jem0Q3EInxoGQRWVcTIxdmKhJ1+/j1iADGTfLt12ZHVt6ROHa Rl+us0DOAXmzj9jW8FlzzMK4zpMTE73ELVXQSvgr6jZ4czGaZ/O8+Bk9ar/TR0zM8+UrcQnjoPF4 0//lFX0C+nWspDE5BTRaveJ1Mb7Vhtfz2EKEFdllOSJb2rwOdFIaG1TQou9+fVxv2jaSt7HR2yLj YMG5oH7fhnaYYyER0GfaHMB6Mn3bXFv8uOD8fn0itsbXuhDn+Zg2VymL/uzn2w2IXq5jbIPzpp0d fZJgqu8PFm2btI7owcZx7J/FQi+OU20YO+kr+hBnfnyxp8ZRc35lzDj/kmNeX3De9DXKxXiJzSYO R8eEy02NU8R14hP0BZ6jvzy/+DivfP4U0f/h1kQxyFaZtjLotQ1ODFc5cUwGfQHx/T4QPLTZRBV5 og9IBftmZ+v+pqnM81ymbBn0oQ451iQCvcU3GSiiG0Hg2815RybOJ40BW6o2AKlrszHSxTiyX+SP xGLHDXaqP20swC6x0+ivZRbfSD/0U3SO8S1+6+jzhFrGgH/SNUf06ZreoUVtfvyy8wprxkdtWb+3 MR7J5zPmV+mSuTl9NrbEhMWzxqPGrlk4e9i9XB5hHJp4VJ2v/X+O6KOKwwMNAdRryxOMJl+2OXC8 Jj3K906S/oV4MwGr83W8jvHnrUBU+hypoLw/V8F05hgDyQVVdKPMni1VG8jKckplqj5B21+NrcqS /704YEylr9im9uCxb9Pzlp2tuKstqkPkhH8Bmet2jbc5HN+SG1yP5PXiB/pCope5d+YX5VjyO/rM j2/Z423Hfr4N7D4mJlzs/Pxw7nKMPvTnLX5BH73h+LhE752Nzum1ecf781YgpB+Sy5QO7Cu2Sf+w CnUgwnngMerHY5Wt4PJtLRl4XY9bY/1csZ9vU1nyf0mbyMQ56LHIwTY99/6d0ift2icRW3TnIn2Q 6GUx1zs1/N8aOzOW2ZYm8UZzU/vLWFfRa3vCmdha2/iUPoy16pD/PrbYz7f1xvXaMO54LGOi88hv PVtUd8dnYTHgZeLcI7sQyy1+UVve9H89ok/bJSP4BFTldqbbNiTHFAilPVWiunWTErL1Yay9tTLB ejoQVqbZ8tGKLwfJtHWuGbt8gLsy+7aYBQnlIiDxuh43262+OrYYByQ7O87O17al+GpCpMQbicq0 ia0z7bT65tqFRC9jxnOxI96iQtnu2JOC+rp1vTk3K7dvi/Wt+iEcM6Wv2W51iGyb7y1f2XFq2/Df tonMsvhvhYkwTrWdZe5Tdh6f6HMCagWkSavAFsC02jR5c3txmt9rV1nlvzhcK61xkUmgSQ7XNgCh 2IG2+fOmLf35JVAWW0aSGgAsZNECvk1gBH5XJvoTqzdzPc9fKx1p0+PiQ9Dfa0e56D+R0/L1VBvI NB/G5mRQvPi2NtF3bAFdInfEGMw/+WQk9kI+ab7+uh8Xn6dFHz7f0PhKbMNFw9mZfBDFDHye5Lhx 4fygT2mXa5F8xUevHeSZnJqKO9hexQJk+rhjPvi2d2GiFb+kT/Pd5UPXTvENzLHEQf39pv/LK/o3 GaIJ4P8PjvbEGSeVH/sd58Mi8inAnN+nzxH6Ir8I0TlyWDT+wzlI247PN02i12oq2uv7eOBhBawq B4K+8aHi8cH5UZwhxvAOifgivk6AgZjoTzCxj5IE/UUyIAaIgR1jgES/4+BwseJdCTFADKyBARI9 iZ6VGDFADJwcAyT6kwd4jWqAMlhVEgPHxgCJnkTPao4YIAZOjgES/ckDzErs2JUY48f4rYEBEj2J ntUcMUAMnBwDJPqTB3iNaoAyWFUSA8fGAImeRM9qjhggBk6OARL9yQPMSuzYlRjjx/itgQESPYme 1RwxQAycHAMk+pMHeI1qgDJYVRIDx8YAiZ5Ez2qOGCAGTo4BEv3JA8xK7NiVGOPH+K2BARI9iZ7V HDFADJwcA8cievnNcL6wgUl58qRco4KjDN4JIAZqojcvYIB3Nu4huTYn+s6rCyf803x13MQ4DBaP mbyvYIAY/F78xEQP75AUcOzmNXWbEv3wyr7xPZ8/j+v1d3Z1zST73iR7hZzXHEsMfi8GJ4m+eunu 7+1xv17Hl3LjVgreDeB1qVp7LwQ2be79sCDTvBDYk35w3rSzp69VYXff8zksAuHrF8F+bd/Nwtma K6/PXsCniLj5cumWjxOOb4/bPb/Y3ecR4sm1CZErxv7wheQ4Jr/Q2mAQ2k2OiY29fO/kUdOW1rx5 fTXMRZicJHoJWA0KR8YpSLKtcX9cf4ZV044btjzGahhXVmkDeQK6ckdRyyx79NIPgR6do9wCpJ4+ tMsdG7tcW5Gdrwd9xR/x/Cdkedk8f2tCREny0jXBQojDRtxT/14eNdq6hcigK8ZgJ8cEa037O3k0 w5aXfMocWJwDMdHnVT9VB0imGvhCxABWH1wkO9+GgZI21CfHqtOPE5nahsdql7bpecvOlj60yx/j fHzb5fIYKjeoqNCWy+URJxn4L5DJZPhC/0S4VhxH+YBtmDsBnkIMRjIRuy3cT+XthC3E9mexHRO9 gicAS7WVo30iwKgc36Zj5P+SNkwCPBY50bnqn6sP+/njZ+3McsIk8zp4vrhSOR1h9HDsMSh9Pcal Typk4C65h8FI5lyix34Rdju2nC5u0fx3dG09or/Ut4Djlo+0tbYu7DgLANsmZFkq+gSiEcymTRwc JUFyvJVp9fVW2c6HsS5ZKltY0X8tgT+1R9/dAm1s3RhSiTEeFxu2b4Xdl/PIyp+fb71cZNtSP65I 9Lqf1/gQqazuQ/u4CEx8UCtAy1st/oOiBMpGW5voJ/SZhPGAEtDq9syYcOL0ri268OSxZu5dfV4/ z5cCfPP+Cb9jQTJpj/S/P/FhLOSJ5EuIMehj2uF6yjG8S5A2PEe8tnIa5DVtQTk8fnshVBM9nf52 p08mO2PwvTEQkpzaEnkjPtIdSIvY36iXOfHeIo5ET/B+L6nuMfYbEL19kGDB3cce/Uebwnwm0RMY ITBYYb23wqJ/6d9PYoBET6In0RMDxMDJMXAsot/gtvblVfeINp8c9C/HdI/+Ic64WHVwWRO9AKY8 WQKPM3aEfCxxNgbzU3uZG9v8sdjsAR/fbMM7cZafruE3u4+73RQTPXzqLo8Nmkextkymd4J5al4J 7PhB1e/jNufpiC1tnpoT289TBb4NZ8Nz8Pd763swxyW/byqCJom+eh699yNHAja9G/Ak2HrmVsjG tCGZ2mfzzXP0HtjB+ao/aibyYQGsQGLmAItjtutafnDKPn/fnLuMU1/ero9r+pEr9U3nR9RI3rsi 78VfmHLfyTA/TlblyrtxNuSfVPJS8LGiP+6iNkn0VUWfCEgJByduvwFnxw1fNIqBIm0gzxBqLbM8 Y5wJ9EeJLTpHudovfYO3pQ/n44+HOQzkC+OT3M78kr/GJLHPKXfmXuYz+qCZbNK3twiVufs58bxa sNf2VYq/x0vH71Iw+CKp2LQdzprYK7Z15sQ+mxcfMdFrJSn/PehapOIBiv18GwbeVcKJSFWnHycy tQ2PRV50HpFfTx/a1TsWXfjtQ28njo3s0jn0bCnjxsUAk81+XhDECW3g8eaJNntBUUwoRjB2G+BM 7Ubs6TX+P87iFhN9RJAKOCGgqN2DEPv5NpUl/5e0FfJrEDsmB+qfqw/7TR2j/N4c0GaRieezxgVE 78ehzCm72X4M0pcYp4IL7gZ83DGWHgN4PmtcgDOQT6I/DqlHC/B6RH/2HzVLn038FJKot2DG7Rnj aEw4SRxzLsnl9uw1uUq/IAFd4koSljsdHc//JVYmHh/2yzN79KO9Hh9y/kGcga9I9CT6MaGEnHTb B6trAUypUI77o2aJUHV+fv+/Nb9C2Bko/nxyXED07gM78yE1JOdIGMcG6aHnkXICqvKp+GAO4fag jpvEy7o4S4VJwbzk7oK5qM38P3LkRr6oK/qNDDl0MtNnmwOZ+OFiTgy0MUCiJ0mTpIkBYuDkGCDR nzzArHLaVQ59Q998CwZI9CR6VnPEADFwcgwci+j9B5knD863VBuc57Er69M8kXNifqmJ3n3qv6vH 9rYMRPILPAq5pS1c4FiBEgMVBl5ecBbm9Mv6PhjDmOjhC1EyGf6oWX7+XR4zU98sBAWr1mNXrYzf /uP3MvEuzOmX9e2J6NNztEpuYthX/6jZbfxdHgOKzo+MST99Drn6cTL//QI+o3w2Qn3qC1OAmeo7 EuY5esBLxmPzx/N6eduSOUVExU64080cITsBLVuEIEtO+C8M9mxpzaHYMcqdXZzCWOvrmTmdc3vU 1xk35c83ti+v6JNjAGDFOPstPnsn0PlGX/dHxmqZZStJ7MAvZUXn4Zc7xi8gJVKRcbiQlfm4Cib3 k8RNQfX6cBzKLP3GuYyVwJO2oC4eV7fwu1osJP4hDh2+ShxHnMg8EikWnHfwkvSM35q139zWO9JW 3sJ1xG6xqWXrcP33FhA9fIPX2CJEXubj5XbmJ7ZM+HLMKy+3dd7ztRsT+GWWvmDcFviMiV4rUPnv g9Iy3AcQ+/k2BJBZwfOKrDr9OJGpbXisINA2PY8IvKcP7fLHZT75d+id/qFyGyuK2s4RxAUgz9ri beP5vsl+SXx6mO/hxeExkeI78wHmFBK9163nOgc9Bzn+2/Op6sd+JQcdCWcZJa9QZu+45+vL5dHM 6Ql9U+P2Q/QRQarDWs6OnKZyfJvKkv9L2hDMeCxyonPVP1cf9vPHMO8EqBssOn4OaEs5bhA9Atnr 5Pl5CHxuLHtY8m0os+Ask2B0vmY+gO5FRK/jZC6poIS7id78ZJzMKZpDlrkq0XtbvD/z3Vb10+sz xh2b6L/gR80KyBSkStIuuAK4WRW989kWAKDOuDpcyy9Ddee2NpTswv+97QTbZmz0RBSdhyTZkRna V/urIthIt+aKkel1+3OnS+SGcxj6VXYYXU5WarP6TN72cjrLDfXNGGfiNmljZPfya/HWTceZ3VVV AqHbPj6wSo65ffzwwn8g6Z7yAZn2w5K8f5nl+baunT1bWo43IMsfuMAcE0giW2Rc6iegGqoXA5Bn bGnZyOv7uwNI+IWqdU6MPOYxH1t4KTjLJBCdoxy0oyUT+/SOYXyqcCPdmiswN+EKwwOiA2RV7TK2 NQcZC7IruS37YYznkGZOqywYi/omx+n4D/6vif6DyrdY2ahzeTVAn23ns3RH0CM35uv+FvcdxoRE v8OgkFi3I9Y9+N5+mLfwboB4JvEHGCDRB07ZQ7LThu8m++3jL1uN8BQZHh/mDuMMc1gnD0j0JHpW QMQAMXByDByL6OXDD/1Q5+SB2b6iW6eS4DzoR2JgewzURA+fJFdfWNiaXDcjev+15vGWtnqOdmsf Uf/hq1N8aqP7lAljffhYf2oRjIke9uAEdPjo0KcMC/VsRvSwIu/BBib4eRPcvIR+KDBYTED+EftP YX+S6Kvn0Vs/LCQBwLsBv8XSez7WtLmnDECmec7VE25wfr9exw+U0J6evikgeT3SP8kb7TaPxKX+ t8ft7n7eQfW8YovK4P+nwB8WEyv7cvkXpiypyfjdFFor++YT/qeOAU+TRF9V9EJc4Y801d8yGwE6 fPodVybSNpKkXVhqmWWP3hNudI5yC0h7+myShSDxerJc8dMwP6nC4JuQyV/jufXni7aUOc2wm323 WQxS/AHfi+LgsLRoLDER5u+X+jAmenyUCithcZIAF7Z2ijOlMsW+2M+3obNNReuqXj9OZKoOPFa7 tE3PW3bi/OQYx6Ft0bHXq310vj2bvV29uatc/t+GoDf3+7BtMxZLJO7CNZvH5nixiIk+Ikh1rhKa nuv/iOBUjm/TMfJ/SRuSLB6LnOhc9c/Vh/1ax15P6Tfcfdxu7lbb95dztas39yL3eKBiQr4aM+7N E0OvYsiOX4/o3Q901VsUurVhDbi4cTbAna0bIUnYmhF9pjJHQjWkaWVafd624NwTN8gO92OlP7xc ofbLuK2z2BbQzbFBrHbgnxATXbtI8sTy+lhekejX+jDWPeWTiHLY0jEfxupLGfI2jG9rbjFJkqVF YnxEctHtcYfoq7sK0ZX6z/0w1s29Swjrg4EJ9gafJvwu2KMHvOsPBC7CJzHzpVt9fezWRE+gPA0U W61nx/cWBvr6aV9zUeonNv1D/yAGSPSrkO1wux0+jUSiJ5mvgjESFxIXj5fhgUTPJCQREwPEwMkx QKI/eYBZ+SyrfOgv+uuMGCDRk+hZzREDxMDJMUCiP3mAz1idcE6suomBZRgg0ZPoWc0RA8TAyTFA oj95gFn5LKt86C/664wYINGT6FnNEQPEwMkxQKI/eYDPWJ1wTqy6iYFlGCDRk+hZzREDxMDJMUCi P3mAWfksq3zoL/rrjBgg0ZPoWc0RA8TAyTFAoj95gM9YnXBOrLqJgWUYINGT6FnNEQPEwMkxQKI/ eYBZ+SyrfOgv+uuMGCDRk+hZzREDxMDJMbA50Q+vWhve9sQ36bCaOmM1xTkR11tjoEH08l5VfdXe Z95pKoT/DNHLW51uvwTS1kCifmKQGNgvBgKi9y8n/nlcr79vv7Uj0e8XJExgxoYYODYGaqKXF2ff r4+f1p4VvrwY++H12/VxvcsdQX4pcnqdXucF2ZfLo0n05kXe8JJl1JfvPswdQWtca168/vbFnGRx bLJg/I4bv5rohUBvrQpetnTGrRzzMuxE5rJAjH3Ktkoi5ca4TLAx0YssR+7OtqLDEPX0OIL2uKBl 7Bg7YmAZBpYRva/2cVEwRD+QcyHh0paNw3E9ojdVef7MAO8iLpdH0YFEP2McgbIMKPQX/UUMHBcD NdF7MvcEikSLhF3IfKymCwmXtieIHvWhLfm46MC23hywH4+5XUMMEANfgIGa6C+9D2PHbRlZ3YVk y754IfMG0be2fLKTZeum3jKy+qKKIiR62D6KxqRrXAyY4F+Q4E38c+5fhf+A6KXqFoJtPF4phK5t WG1PEf29/2Es6iyLh4DRbcOYNmkHe0zbxLi0sMDiw4Q47m0pY8fYEQN9DDSIvj9osVPLIrCyXFYl X1WVLMYd8UF8EAMJAyR6AoFkQAwQAyfHwGeI/uROZKXJOzVigBjYMwZI9FyEWM29AQP//vvfo/W3 Z0KgbedcsGKihw84y7db35AMBNU5QfVUXLf+HGdlzLdIXq4/5R/mH/32AgaaRG+eYHlBwVxQx49J DkQ4PCETfWGq83TQCzY3bUEywCeO8k84lKeR8Nu87umfoQ9827djp5k3ypQxLVvkuvv2cIkBjpEn p9wcSr+OTW/rI7btwh55vDiIz+9teJR45mO5JHoWMW/LlSfyc/dE75+vH5/d7z3v/xrIYqK3z/Qb uxKZIzn8Pm4N0pJxsxbRrsyOLVNED4vA6MvX/LUKoHdO9BK39CupSvgTyUai3wGmJmK0Cm4PomM5 0SegX8fn7JHQsGLE6+KMVhte9z9OVpFdliOypyqrNFa/CwAknAnletO28Td4jI3eFhkHJJme79c5 +rZm8GVxAn3NfnmeqA/7en3oC9/WG+f7Phtb42v4Ep3oNm0QB2kT/dnPtxtU9HJdfav93Pn92sBg R58sbKrvr/kdClfRg43j2D+LBfRxPibRk+j3tJA8RfTxvr2tMm212GsbABFW0UBEJUnv9+HXNaGt dqjoA1LBvjlx9TfsTWWek3TKlkEf6pBjJRHQ6wlAdCNh+XZz3pGJ80ljwJaqDRLOtdkYKfFG9ov8 cYGy4wY71Z82FmCX2Gn01zKLb6Qf+ik6x/gWv3X04WJY+oNvyjVH9Om63qFFbZGMS/ODWO7Rx/6y uGGftf3xHNFHlaZPJEzqXltOsIhcyzYHjtekR/klSTNApH8h3kzAShw6Xsf489YPpVX6HKmgvD9X 1XbmOCugohtl9myp2iBpspxSmapP0PZXY6uy5H8vDhhT6Su2qT147Nv0vGVnK+5qi+oQOeFfQOa6 XeNtDscPclnRt/zL6zHu3uuX4xJ9L+l6bVMkMpfop3R4IpL+YRU6M8Bit8rEYyEbtMW3IRn12qRf qx3l+36+DfUtaRPdSsJ4rPq0Tc/VF3P1aT+xKS0G0Z2LxAKJXhZzvVPD/62xYyxJ9KMvtiA26rT+ X4/o3Q+J1bf3rVv/waCookfikfZUierWzYIfXzNBnyKRFtG7+ZktH634MpmYts41Y5cSkf7vyrTb HkZfi6xFbq+t22711bFtvc7RjrPztW0pvkrmiYxHMjVtC+y0+hD4Vrfth0QvY8ZzsSPeokLZwzGJ vvaJ9TPbP+mPFYk+E4lWQJq0QFzNLQNN3jx2fCpFEnJM+Nox0q6V1riQpH6lchvai8wZRJ8IsbKl P79ERsUWb7OQxXyS0Hl2Zco8In3mevaNVr9PE31/7n6Lpvha4tqKg4u5+TA2L7Y6P9/WXbBa+pxf jI2K0fR/JPYhDsv352UciZ5Ernm8h//Lid4kxfuDmarVLtm/34Y9BKptw7CItInr2/2zdP6e6JeO H/qT6J/zWxvnlPeKb5pEr9VU/ITNh52O1Zi/U/jwwvOKszn2w7hZgg3E2AqFBYl+x7FegouT9I2J /iSTI7Ey2bbCAIme2NsKe5FeEj0XtcZjhkzUKGF4jbg4IgZI9CR6Ej0xQAycHAMk+pMH+IjVB21m 1UwMrIsBEj2JntUcMUAMnBwD/wNFEK0FD7aSdAAAAABJRU5ErkJggg== --00000000000009f7f506075c5a65 Content-Type: image/png; name="image.png" Content-Disposition: inline; filename="image.png" Content-Transfer-Encoding: base64 Content-ID: <> X-Attachment-Id: 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 --00000000000009f7f506075c5a65--