AW: German "umlaut insensitive" query

<[email protected]> Mon, 23 Sep 2019 05:57:19 +0000
Newsgroups gmane.comp.db.postgresql.sql
Message-ID <242EFA74EBC4CE45AD34310EEB2145E70E49A6BB@DLDEFFMIMP03EXC.intra.dlr.de>
------=_NextPart_000_0021_01D571E4.8587A840
Content-Type: multipart/alternative;
	boundary="----=_NextPart_001_0022_01D571E4.8587A840"


------=_NextPart_001_0022_01D571E4.8587A840
Content-Type: text/plain;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable

Thanks for the quick answer. I am looking forward to the new PostgresSQL =
version. Thanks

=20

Jakob

=20

Von: Jonathan S. Katz [mailto:[email protected]]=20
Gesendet: Freitag, 20. September 2019 14:17
An: Witczak, Jakob
Cc: [email protected]
Betreff: Re: German "umlaut insensitive" query

=20

=20

On Sep 20, 2019, at 4:36 AM, <[email protected]> =
<[email protected]> wrote:

=20

Hi,

=20

i found an entry from 2004, where it is about the German Umlaute and i =
have the same problem.

 <https://www.postgresql.org/message-id/4135E7F5.4070002%40stroetgen.de> =
https://www.postgresql.org/message-id/4135E7F5.4070002%40stroetgen.de

=20

I also found this article:

 =
<https://dba.stackexchange.com/questions/195502/postgres-collate-example-=
in-select> =
https://dba.stackexchange.com/questions/195502/postgres-collate-example-i=
n-select

=20

Are there other possibilities today (for example COLLATE) besides =
replace() to process the German Umlaute?

In the long term, we also want to use it for other countries.

=20

There is a feature in the upcoming PostgreSQL 12 release that

allows for accent insensitive queries:

=20

https://www.postgresql.org/docs/12/collation.html#COLLATION-NONDETERMINIS=
TIC

=20

This is part of PostgreSQL=E2=80=99s support for ICU collations.

=20

Thanks,

=20

Jonathan


------=_NextPart_001_0022_01D571E4.8587A840
Content-Type: text/html;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
xmlns=3D"http://www.w3.org/TR/REC-html40"><head><meta =
http-equiv=3DContent-Type content=3D"text/html; charset=3Dutf-8"><meta =
name=3DGenerator content=3D"Microsoft Word 14 (filtered =
medium)"><style><!--
/* Font Definitions */
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
span.E-MailFormatvorlage17
	{mso-style-type:personal-reply;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]--></head><body lang=3DDE link=3Dblue =
vlink=3Dpurple style=3D'word-wrap: break-word;-webkit-nbsp-mode: =
space;-webkit-line-break: after-white-space'><div =
class=3DWordSection1><p class=3DMsoNormal><span lang=3DEN-US =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>Thanks for the quick answer. I am looking forward to the new =
PostgresSQL version. </span><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>Thanks<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>Jakob<o:p></o:p></span></p><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><div><div =
style=3D'border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm =
0cm 0cm'><p class=3DMsoNormal><b><span =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif"'>Von:</span><=
/b><span style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif"'> =
Jonathan S. Katz [mailto:[email protected]] =
<br><b>Gesendet:</b> Freitag, 20. September 2019 14:17<br><b>An:</b> =
Witczak, Jakob<br><b>Cc:</b> [email protected]<br><b>Betreff:</b> =
Re: German &quot;umlaut insensitive&quot; =
query<o:p></o:p></span></p></div></div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><div><blockquote =
style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><div><p =
class=3DMsoNormal>On Sep 20, 2019, at 4:36 AM, &lt;<a =
href=3D"mailto:[email protected]">[email protected]</a>&gt; &lt;<a =
href=3D"mailto:[email protected]">[email protected]</a>&gt; =
wrote:<o:p></o:p></p></div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><div><div><p =
class=3DMsoNormal><span lang=3DEN-US =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif"'>Hi,</span><=
span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p>=
</span></p></div><div><p class=3DMsoNormal><span lang=3DEN-US =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif"'>&nbsp;</spa=
n><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p>=
</span></p></div><div><p class=3DMsoNormal><span lang=3DEN-US =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif"'>i found an =
entry from 2004, where it is about the German Umlaute and i have the =
same problem.</span><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p>=
</span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif"'><a =
href=3D"https://www.postgresql.org/message-id/4135E7F5.4070002%40stroetge=
n.de" id=3DLPlnk721696><span lang=3DEN-US =
style=3D'color:purple'>https://www.postgresql.org/message-id/4135E7F5.407=
0002%40stroetgen.de</span></a><o:p></o:p></span></p></div><div><p =
class=3DMsoNormal><span lang=3DEN-US =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif"'>&nbsp;</spa=
n><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p>=
</span></p></div><div><p class=3DMsoNormal><span lang=3DEN-US =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif"'>I also =
found this article:</span><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p>=
</span></p></div><div><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif"'><a =
href=3D"https://dba.stackexchange.com/questions/195502/postgres-collate-e=
xample-in-select" id=3DLPNoLP171326><span lang=3DEN-US =
style=3D'color:purple'>https://dba.stackexchange.com/questions/195502/pos=
tgres-collate-example-in-select</span></a><o:p></o:p></span></p></div><di=
v><p class=3DMsoNormal><span lang=3DEN-US =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif"'>&nbsp;</spa=
n><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p>=
</span></p></div><div><p class=3DMsoNormal><span lang=3DEN-US =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif"'>Are there =
other possibilities today (for example COLLATE) besides replace() to =
process the German Umlaute?</span><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p>=
</span></p></div><div><p class=3DMsoNormal><span lang=3DEN-US =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif"'>In the =
long term, we also want to use it for other countries.</span><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif"'><o:p></o:p>=
</span></p></div></div></blockquote><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>There is a feature in the upcoming PostgreSQL 12 =
release that<o:p></o:p></p></div><div><p class=3DMsoNormal>allows for =
accent insensitive queries:<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal><a =
href=3D"https://www.postgresql.org/docs/12/collation.html#COLLATION-NONDE=
TERMINISTIC">https://www.postgresql.org/docs/12/collation.html#COLLATION-=
NONDETERMINISTIC</a><o:p></o:p></p></div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><div><p class=3DMsoNormal>This is =
part of PostgreSQL=E2=80=99s support for ICU =
collations.<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>Thanks,<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>Jonathan<o:p></o:p></p></div></div></body></html>
------=_NextPart_001_0022_01D571E4.8587A840--

------=_NextPart_000_0021_01D571E4.8587A840
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIaETCCA8Mw
ggKroAMCAQICAQEwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNVBAYTAkRFMSswKQYDVQQKDCJULVN5
c3RlbXMgRW50ZXJwcmlzZSBTZXJ2aWNlcyBHbWJIMR8wHQYDVQQLDBZULVN5c3RlbXMgVHJ1c3Qg
Q2VudGVyMSUwIwYDVQQDDBxULVRlbGVTZWMgR2xvYmFsUm9vdCBDbGFzcyAyMB4XDTA4MTAwMTEw
NDAxNFoXDTMzMTAwMTIzNTk1OVowgYIxCzAJBgNVBAYTAkRFMSswKQYDVQQKDCJULVN5c3RlbXMg
RW50ZXJwcmlzZSBTZXJ2aWNlcyBHbWJIMR8wHQYDVQQLDBZULVN5c3RlbXMgVHJ1c3QgQ2VudGVy
MSUwIwYDVQQDDBxULVRlbGVTZWMgR2xvYmFsUm9vdCBDbGFzcyAyMIIBIjANBgkqhkiG9w0BAQEF
AAOCAQ8AMIIBCgKCAQEAql/aG1/oc5Hl2lz0ouZH5fNoVWAFHQKks5tZ8x6KrzSt/A3C2UgZ7mmP
ySD8IaoHGe2wXKxlx1/tAnx7fC0b1rq5gMIYghaE+mawCMZUI4HkzblJP/ZPbjdIKDgPxb7naHD9
OZdN0seYkVCqxESzI305R+lSYtYSk163MZZCBft2px6j9cL86XrFbKlxT+rLeLxgr8fe9NnLvn4z
pW6Ug/A0+iGr6o5yoD+k3jBb74ZNapVbQ0SoEBUc5QFXxZjx5gYokaogxbdTJlFDsgsRlVjhwA92
2cCNfIHzcnCeb/4ajtlfNcaybzR8vkhP4lo519ideJ6fhj4DXhmLRKLVxwIDAQABo0IwQDAPBgNV
HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUv1kgNgB5oKAia4zV8mHSuCzL
gkowDQYJKoZIhvcNAQELBQADggEBADEDomELH3TocjbGbflNnvoiqOGBVs/Nu5/qq5EZOK+qfBVN
87ajjaX0jvZEqafoIZWtPgBiFojwArr8YSPmM5swems2YnutBCOEWGXi2yuK5yVTN2JTX7zaAWIp
oqYnceY6In7Bbx2VcCBKBzTf6v8VgOW613rYW3V8BXopR35AqDETd81AO7RRR3ouEeNHEd6dZtCL
1VRm+oNV6nzCKYkb6W+zzuIFhMkvPniFYm7JX8F4Y3RYwEgYDJk566TMGrV5Wo0VnNgUDfZ6B1fH
IoMFLTybJSY9GLOpQ3zIyKtkjw6jv5wbnTDb2tAZLqo88fszgHbkza0ZTwUnjhOhbsIwggUSMIID
+qADAgECAgkA4wvV+K8l2YEwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNVBAYTAkRFMSswKQYDVQQK
DCJULVN5c3RlbXMgRW50ZXJwcmlzZSBTZXJ2aWNlcyBHbWJIMR8wHQYDVQQLDBZULVN5c3RlbXMg
VHJ1c3QgQ2VudGVyMSUwIwYDVQQDDBxULVRlbGVTZWMgR2xvYmFsUm9vdCBDbGFzcyAyMB4XDTE2
MDIyMjEzMzgyMloXDTMxMDIyMjIzNTk1OVowgZUxCzAJBgNVBAYTAkRFMUUwQwYDVQQKEzxWZXJl
aW4genVyIEZvZXJkZXJ1bmcgZWluZXMgRGV1dHNjaGVuIEZvcnNjaHVuZ3NuZXR6ZXMgZS4gVi4x
EDAOBgNVBAsTB0RGTi1QS0kxLTArBgNVBAMTJERGTi1WZXJlaW4gQ2VydGlmaWNhdGlvbiBBdXRo
b3JpdHkgMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMtg1/9moUHN0vqHl4pzq5lN
6mc5WqFggEcVToyVsuXPztNXS43O+FZsFVV2B+pG/cgDRWM+cNSrVICxI5y+NyipCf8FXRgPxJiZ
N7Mg9mZ4F4fCnQ7MSjLnFp2uDo0peQcAIFTcFV9Kltd4tjTTwXS1nem/wHdN6r1ZB+BaL2w8pQDc
Nb1lDY9/Mm3yWmpLYgHurDg0WUU2SQXaeMpqbVvAgWsRzNI8qIv4cRrKO+KA3Ra0Z3qLNupOkSk9
s1FcragMvp0049ENF4N1xDkesJQLEvHVaY4l9Lg9K7/AjsMeO6W/VRCrKq4Xl14zzsjz9AkH4wKG
MUZrAcUQDBHHWekCAwEAAaOCAXQwggFwMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUk+PYMiba
1fFKpZFK4OpL4qIMz+EwHwYDVR0jBBgwFoAUv1kgNgB5oKAia4zV8mHSuCzLgkowEgYDVR0TAQH/
BAgwBgEB/wIBAjAzBgNVHSAELDAqMA8GDSsGAQQBga0hgiwBAQQwDQYLKwYBBAGBrSGCLB4wCAYG
Z4EMAQICMEwGA1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9wa2kwMzM2LnRlbGVzZWMuZGUvcmwvVGVs
ZVNlY19HbG9iYWxSb290X0NsYXNzXzIuY3JsMIGGBggrBgEFBQcBAQR6MHgwLAYIKwYBBQUHMAGG
IGh0dHA6Ly9vY3NwMDMzNi50ZWxlc2VjLmRlL29jc3ByMEgGCCsGAQUFBzAChjxodHRwOi8vcGtp
MDMzNi50ZWxlc2VjLmRlL2NydC9UZWxlU2VjX0dsb2JhbFJvb3RfQ2xhc3NfMi5jZXIwDQYJKoZI
hvcNAQELBQADggEBAIcL/z4Cm2XIVi3WO5qYi3FP2ropqiH5Ri71sqQPrhE4eTizDnS6dl2e6BiC
lmLbTDPo3flq3zK9LExHYFV/53RrtCyD2HlrtrdNUAtmB7Xts5et6u5/MOaZ/SLick0+hFvu+c+Z
6n/XUjkurJgARH5pO7917tALOxrN5fcPImxHhPalR6D90Bo0fa3SPXez7vTXTf/D6OWST1k+kEcQ
SrCFWMBvf/iu7QhCnh7U3xQuTY+8npTD5+32GPg8SecmqKc22CzeIs2LgtjZeOJVEqM7h0S2EQvV
DFKvaYwPBt/QolOLV5h7z/0HJPT8vcP9SpIClxvyt7bPZYoaorVyGTkwggWsMIIElKADAgECAgcb
Y7rQHiw9MA0GCSqGSIb3DQEBCwUAMIGVMQswCQYDVQQGEwJERTFFMEMGA1UEChM8VmVyZWluIHp1
ciBGb2VyZGVydW5nIGVpbmVzIERldXRzY2hlbiBGb3JzY2h1bmdzbmV0emVzIGUuIFYuMRAwDgYD
VQQLEwdERk4tUEtJMS0wKwYDVQQDEyRERk4tVmVyZWluIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
IDIwHhcNMTYwNTI0MTEzODQwWhcNMzEwMjIyMjM1OTU5WjCBjTELMAkGA1UEBhMCREUxRTBDBgNV
BAoMPFZlcmVpbiB6dXIgRm9lcmRlcnVuZyBlaW5lcyBEZXV0c2NoZW4gRm9yc2NodW5nc25ldHpl
cyBlLiBWLjEQMA4GA1UECwwHREZOLVBLSTElMCMGA1UEAwwcREZOLVZlcmVpbiBHbG9iYWwgSXNz
dWluZyBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ07eRxH3h+Gy8Zp1xCeOdfZ
ojDbchwFfylfS2jxrRnWTOFrG7ELf6Gr4HuLi9gtzm6IOhDuV+UefwRRNuu6cG1joL6WLkDh0YNM
Zj0cZGnlm6Stcq5oOVGHecwX064vXWNxSzl660Knl5BpBb+Q/6RAcL0D57+eGIgfn5mITQ5HjUhf
ZZkQ0tkqSe3BuS0dnxLLFdM/fx5ULzquk1enfnjK1UriGuXtQX1TX8izKvWKMKztFwUkP7agCwf9
TRqaA1KgNpzeJIdl5Of6x5ZzJBTN0OgbaJ4YWa52fvfRCng8h0uwN89Tyjo4EPPLR22MZD08WkVK
usqAfLjz56dMTM0CAwEAAaOCAgUwggIBMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQD
AgEGMCkGA1UdIAQiMCAwDQYLKwYBBAGBrSGCLB4wDwYNKwYBBAGBrSGCLAEBBDAdBgNVHQ4EFgQU
azqYi/nyU4na4K2yMh4JH+iqO3QwHwYDVR0jBBgwFoAUk+PYMiba1fFKpZFK4OpL4qIMz+EwgY8G
A1UdHwSBhzCBhDBAoD6gPIY6aHR0cDovL2NkcDEucGNhLmRmbi5kZS9nbG9iYWwtcm9vdC1nMi1j
YS9wdWIvY3JsL2NhY3JsLmNybDBAoD6gPIY6aHR0cDovL2NkcDIucGNhLmRmbi5kZS9nbG9iYWwt
cm9vdC1nMi1jYS9wdWIvY3JsL2NhY3JsLmNybDCB3QYIKwYBBQUHAQEEgdAwgc0wMwYIKwYBBQUH
MAGGJ2h0dHA6Ly9vY3NwLnBjYS5kZm4uZGUvT0NTUC1TZXJ2ZXIvT0NTUDBKBggrBgEFBQcwAoY+
aHR0cDovL2NkcDEucGNhLmRmbi5kZS9nbG9iYWwtcm9vdC1nMi1jYS9wdWIvY2FjZXJ0L2NhY2Vy
dC5jcnQwSgYIKwYBBQUHMAKGPmh0dHA6Ly9jZHAyLnBjYS5kZm4uZGUvZ2xvYmFsLXJvb3QtZzIt
Y2EvcHViL2NhY2VydC9jYWNlcnQuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQCBeEWkTqR/DlXwCbFq
PnjMaDWpHPOVnj/z+N9rOHeJLI21rT7H8pTNoAauusyosa0zCLYkhmI2THhuUPDVbmCNT1IxQ5dG
dfBi5G5mUcFCMWdQ5UnnOR7Ln8qGSN4IFP8VSytmm6A4nwDO/afr0X9XLchMX9wQEZc+lgQCXISo
KTlslPwQkgZ7nu7YRrQbtQMMONncsKk/cQYLsgMHM8KNSGMlJTx6e1du94oFOO+4oK4v9NsH1VuE
GMGpuEvObJAaguS5Pfp38dIfMwK/U+d2+dwmJUFvL6Yb+qQTkPp8ftkLYF3sv8pBoGH7EUkp2Kgt
dRXYShjqFu9VNCIaE40GMIIFvjCCBKagAwIBAgIMIYNXDZ73R/EtAflTMA0GCSqGSIb3DQEBCwUA
MIGNMQswCQYDVQQGEwJERTFFMEMGA1UECgw8VmVyZWluIHp1ciBGb2VyZGVydW5nIGVpbmVzIERl
dXRzY2hlbiBGb3JzY2h1bmdzbmV0emVzIGUuIFYuMRAwDgYDVQQLDAdERk4tUEtJMSUwIwYDVQQD
DBxERk4tVmVyZWluIEdsb2JhbCBJc3N1aW5nIENBMB4XDTE5MDgyNjEzMDcxMFoXDTIyMDgyNTEz
MDcxMFowZTELMAkGA1UEBhMCREUxPjA8BgNVBAoMNURldXRzY2hlcyBaZW50cnVtIGZ1ZXIgTHVm
dC0gdW5kIFJhdW1mYWhydCBlLlYuIChETFIpMRYwFAYDVQQDDA1KYWtvYiBXaXRjemFrMIIBIjAN
BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAj8LeoHD1vhyiJ5PHWr25cjs/aeyOEn7/gzS450ln
tIF5DOdqnbmkX2Ux13/yheAX5Yc62zNcv4dbghRmQ6Mla64LNn8LUYo8jFlCxHp/r4ItzxElqOYL
7VYIA9b1ph1b2qJVToboqDez6X+ZUKO6CwZEH/zF4rR1y1Ni3jh0z7+DUQeLZeRgR0LAkrsu6JyB
X/pZbscsCnGP+Kp5dLmvbuhKdsto7QV0NcwC+QzuoGOyX6trTewRA5NABPfwsccaD72X65jASWhb
Fa9QD7l9p32XIv4tWcReVuEqlEu0iAbA3oCtl2gGPxIH/UF2RdKYe+Mi7L7OqaTdsZ2M+WO5wQID
AQABo4ICQzCCAj8wPgYDVR0gBDcwNTAPBg0rBgEEAYGtIYIsAQEEMBAGDisGAQQBga0hgiwBAQQE
MBAGDisGAQQBga0hgiwCAQQEMAkGA1UdEwQCMAAwDgYDVR0PAQH/BAQDAgUgMBMGA1UdJQQMMAoG
CCsGAQUFBwMEMB0GA1UdDgQWBBRYRYw6vsryz0STmlP5bfywLDp0qzAfBgNVHSMEGDAWgBRrOpiL
+fJTidrgrbIyHgkf6Ko7dDAfBgNVHREEGDAWgRRKYWtvYi5XaXRjemFrQGRsci5kZTCBjQYDVR0f
BIGFMIGCMD+gPaA7hjlodHRwOi8vY2RwMS5wY2EuZGZuLmRlL2Rmbi1jYS1nbG9iYWwtZzIvcHVi
L2NybC9jYWNybC5jcmwwP6A9oDuGOWh0dHA6Ly9jZHAyLnBjYS5kZm4uZGUvZGZuLWNhLWdsb2Jh
bC1nMi9wdWIvY3JsL2NhY3JsLmNybDCB2wYIKwYBBQUHAQEEgc4wgcswMwYIKwYBBQUHMAGGJ2h0
dHA6Ly9vY3NwLnBjYS5kZm4uZGUvT0NTUC1TZXJ2ZXIvT0NTUDBJBggrBgEFBQcwAoY9aHR0cDov
L2NkcDEucGNhLmRmbi5kZS9kZm4tY2EtZ2xvYmFsLWcyL3B1Yi9jYWNlcnQvY2FjZXJ0LmNydDBJ
BggrBgEFBQcwAoY9aHR0cDovL2NkcDIucGNhLmRmbi5kZS9kZm4tY2EtZ2xvYmFsLWcyL3B1Yi9j
YWNlcnQvY2FjZXJ0LmNydDANBgkqhkiG9w0BAQsFAAOCAQEAdXpgqPWXZzMqi91fj9PLuiUFjiO3
BVAAwqHA/EPLef80URe8psgRK86OAHjIPgZXrhSDdT5UJqVmExroCA1hLKAFlAEWp0OWqsbxbt89
tdArcPL62i6iHzT2AiXh5miBx8EDBIiLlI57lO0fRS15Yaua0XMi7V1QkrExHo8ahA1dpD1vb4gV
1KXIpYeHwxb5i5benVayGP7WBq7VIkNbF5/y7nL53X75zYyxcc0X9MJlzFwvr6sCJ/ynBI/pRc80
inIOP5SC9CkhLpHkVWUzwQU5g78QdIZSMudqBJY+iei6tK/eUsoKCr1gs7P7h+k2MhGmBS3FRntr
G8SlN6FKPzCCBb4wggSmoAMCAQICDCGDVxO+3YXBB7eLlDANBgkqhkiG9w0BAQsFADCBjTELMAkG
A1UEBhMCREUxRTBDBgNVBAoMPFZlcmVpbiB6dXIgRm9lcmRlcnVuZyBlaW5lcyBEZXV0c2NoZW4g
Rm9yc2NodW5nc25ldHplcyBlLiBWLjEQMA4GA1UECwwHREZOLVBLSTElMCMGA1UEAwwcREZOLVZl
cmVpbiBHbG9iYWwgSXNzdWluZyBDQTAeFw0xOTA4MjYxMzA3MTZaFw0yMjA4MjUxMzA3MTZaMGUx
CzAJBgNVBAYTAkRFMT4wPAYDVQQKDDVEZXV0c2NoZXMgWmVudHJ1bSBmdWVyIEx1ZnQtIHVuZCBS
YXVtZmFocnQgZS5WLiAoRExSKTEWMBQGA1UEAwwNSmFrb2IgV2l0Y3phazCCASIwDQYJKoZIhvcN
AQEBBQADggEPADCCAQoCggEBAJi+Z3DCexGFYm9mWe/V498ilA3zzeCFjMXob5Nn5sHIHuHVy9Cu
imVTA8iE1Yet0wtBXibpnX9qEV5YkvSyTOaYJ5b/pLQoU2Z6idizr0ylfZws5vHotav/BYG2z/tK
rPHkBgMv0IVOcUvcFWvYPiN8waqhKzTBFG5N4RklVnJpAty/rGeSH/sncU+BnEgu+ELPGR3GzJle
oPB50cvt3u5vlG38Bu4nmw/THP5duPer9aLc/hgv6WxIlP9fBEr/rulN+QaRS2W4mCOOLOsLHJmY
SukD9VNCt35Gr+BCaXWuwjWsTZZZjeA1KMHYrCzmwMQKxu5yfBFFhUkQd2xG4DMCAwEAAaOCAkMw
ggI/MD4GA1UdIAQ3MDUwDwYNKwYBBAGBrSGCLAEBBDAQBg4rBgEEAYGtIYIsAQEEBDAQBg4rBgEE
AYGtIYIsAgEEBDAJBgNVHRMEAjAAMA4GA1UdDwEB/wQEAwIGwDATBgNVHSUEDDAKBggrBgEFBQcD
BDAdBgNVHQ4EFgQUImN8hkISrZean3uaG082Q5PbvRQwHwYDVR0jBBgwFoAUazqYi/nyU4na4K2y
Mh4JH+iqO3QwHwYDVR0RBBgwFoEUSmFrb2IuV2l0Y3pha0BkbHIuZGUwgY0GA1UdHwSBhTCBgjA/
oD2gO4Y5aHR0cDovL2NkcDEucGNhLmRmbi5kZS9kZm4tY2EtZ2xvYmFsLWcyL3B1Yi9jcmwvY2Fj
cmwuY3JsMD+gPaA7hjlodHRwOi8vY2RwMi5wY2EuZGZuLmRlL2Rmbi1jYS1nbG9iYWwtZzIvcHVi
L2NybC9jYWNybC5jcmwwgdsGCCsGAQUFBwEBBIHOMIHLMDMGCCsGAQUFBzABhidodHRwOi8vb2Nz
cC5wY2EuZGZuLmRlL09DU1AtU2VydmVyL09DU1AwSQYIKwYBBQUHMAKGPWh0dHA6Ly9jZHAxLnBj
YS5kZm4uZGUvZGZuLWNhLWdsb2JhbC1nMi9wdWIvY2FjZXJ0L2NhY2VydC5jcnQwSQYIKwYBBQUH
MAKGPWh0dHA6Ly9jZHAyLnBjYS5kZm4uZGUvZGZuLWNhLWdsb2JhbC1nMi9wdWIvY2FjZXJ0L2Nh
Y2VydC5jcnQwDQYJKoZIhvcNAQELBQADggEBAFokhn9VwJqv074ZcvwdyrMTd+nodJOoiZHcuq8t
fwHNnX5d6osGTgKE6aa79kgDu1X3zmfDzUb2mlahb1Rk210Otx+XGjvojYAkq9sGYS1x5e9eTxqM
fccDz05vXv5H4QKZfQytL77ifVZwGJYm7N6gGW/3SzzDT1hjHIq3MzO54/8Fn1pgwGFsKjgacZpF
8aC08CkiZ9gcGBMTFkDaJ4jzVYWXbguYbcjPLFORwEJWIAujqcRdQUdIZsZ0h5LvMabo4GFrK7Jh
4O7e8vgvI/tKjOKA4tTiiasZz3v1JedQECrf8W7JJb+U9O0TXNA2qYAQhnNk4m3lODQTygxmVX0x
ggQ7MIIENwIBATCBnjCBjTELMAkGA1UEBhMCREUxRTBDBgNVBAoMPFZlcmVpbiB6dXIgRm9lcmRl
cnVuZyBlaW5lcyBEZXV0c2NoZW4gRm9yc2NodW5nc25ldHplcyBlLiBWLjEQMA4GA1UECwwHREZO
LVBLSTElMCMGA1UEAwwcREZOLVZlcmVpbiBHbG9iYWwgSXNzdWluZyBDQQIMIYNXE77dhcEHt4uU
MAkGBSsOAwIaBQCgggJxMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8X
DTE5MDkyMzA1NTcxOFowIwYJKoZIhvcNAQkEMRYEFJds0AtrSEJ7NAN279V+2ufRYZdXMIGrBgkq
hkiG9w0BCQ8xgZ0wgZowCwYJYIZIAWUDBAEqMAsGCWCGSAFlAwQBFjAKBggqhkiG9w0DBzALBglg
hkgBZQMEAQIwDgYIKoZIhvcNAwICAgCAMAcGBSsOAwIHMA0GCCqGSIb3DQMCAgFAMA0GCCqGSIb3
DQMCAgEoMAcGBSsOAwIaMAsGCWCGSAFlAwQCAzALBglghkgBZQMEAgIwCwYJYIZIAWUDBAIBMIGv
BgkrBgEEAYI3EAQxgaEwgZ4wgY0xCzAJBgNVBAYTAkRFMUUwQwYDVQQKDDxWZXJlaW4genVyIEZv
ZXJkZXJ1bmcgZWluZXMgRGV1dHNjaGVuIEZvcnNjaHVuZ3NuZXR6ZXMgZS4gVi4xEDAOBgNVBAsM
B0RGTi1QS0kxJTAjBgNVBAMMHERGTi1WZXJlaW4gR2xvYmFsIElzc3VpbmcgQ0ECDCGDVw2e90fx
LQH5UzCBsQYLKoZIhvcNAQkQAgsxgaGggZ4wgY0xCzAJBgNVBAYTAkRFMUUwQwYDVQQKDDxWZXJl
aW4genVyIEZvZXJkZXJ1bmcgZWluZXMgRGV1dHNjaGVuIEZvcnNjaHVuZ3NuZXR6ZXMgZS4gVi4x
EDAOBgNVBAsMB0RGTi1QS0kxJTAjBgNVBAMMHERGTi1WZXJlaW4gR2xvYmFsIElzc3VpbmcgQ0EC
DCGDVw2e90fxLQH5UzANBgkqhkiG9w0BAQEFAASCAQAn4gYdeBzqxN29PQLicv2MNikNUCQ6mS2r
TY/021ikMnTQMP75emaIqGJHKlsXTLqfKzXkyxFmlGRiuWtmnSkStWzA1Z98uf821Lhz/7zNSO2t
XzXwnXFU7kp2od9xX3zRekCadbVivqjs1srw9NY9lT6Ylvz4UOA2IPuxEHtLX0KEmrC6G6JOncfu
67ajmfr9MhlrDiKK0+TqSFFRTSeFPnAEa/2+JYJ0spya0FUzas0b+LpDPhZ5g+mKnjILrt/eTank
ezdTFgoTvh7Qra1cbM0PXWDvbkUXNtBuHzhlg/AQNUu3rXyHFKju71L2l9MC44r3bdjtK1ojKmIG
k/xIAAAAAAAA

------=_NextPart_000_0021_01D571E4.8587A840--