Re: How to test a build of the FIPS provider
Kenneth Goldman <kgoldman-r/[email protected]> Thu, 26 Mar 2026 18:50:57 +0000
| Newsgroups | gmane.comp.encryption.openssl.user |
|---|---|
| Message-ID | <SJ0PR15MB52787DE3EDD3BFEAA9D17D81F256A@SJ0PR15MB5278.namprd15.prod.outlook.com> |
------=_NextPart_000_004A_01DCBD2F.F2F494E0
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_004B_01DCBD2F.F2F494E0"
------=_NextPart_001_004B_01DCBD2F.F2F494E0
Content-Type: text/plain; charset="UTF-8"
Getting back to this, I followed the instructions below.
> openssl list -providers
Providers:
base
name: OpenSSL Base Provider
version: 3.6.1
status: active
fips
name: OpenSSL FIPS Provider
version: 3.6.1
status: active
How do I ensure that the program uses the fips module? I try:
provider = OSSL_PROVIDER_load(NULL, "fips");
irc = EVP_set_default_properties(NULL, "provider=fips");
sha = EVP_MD_fetch(NULL, HASHALG, "fips=yes");
sha = EVP_MD_fetch(NULL, HASHALG, "provider=fips");
All of these seem successful, but this NULL is also successful, so
how do ensure that the fips module is being used?
sha = EVP_MD_fetch(NULL, HASHALG, NULL);
Even though I have a base provider (see above), base fails, with
or without the OSSL_PROVIDER_load() or OSSL_PROVIDER_load() calls.
sha = EVP_MD_fetch(NULL, HASHALG, "provider=base");
On 1/28/2026 6:26 PM, Ken Goldman wrote:
On 1/19/2026 6:49 PM, Ken Goldman wrote:
Fedora 42, x86 - I built openssl 3.6.1 with enable-fips and got fips.so
I'd like to test it locally, as non-root, but not install it in the system
area. Are there instructions for this?
I want to test the EVP API, not TLS or the command line.
For the record, here are working instructions, creating
a fips build in myopenssl:
./config -shared --prefix=/home/kgold/myopenssl --libdir=lib --
openssldir=/home/kgold/myopenssl -Wl,-rpath,$HOME/myopenssl/lib --debug zlib
enable-fips
make
creates
./providers/libfips.a
./providers/fips.so
make install
installs to myopenssl directory
make test
make install_fips
creates
/home/kgold/myopenssl/lib/ossl-modules/fips.so
/home/kgold/myopenssl/fipsmodule.cnf
openssl.cnf
add
.pragma includedir:/home/myopenssl/
uncomment
.include fipsmodule.cnf
comment
#default = default_sect
add
base = default_sect
fips = fips_sect
in default_sect, uncomment
activate = 1
fipsmodule.cnf
add
module = /home/myopenssl/lib/ossl-modules/fips.so
LNFLAGS += -L/home/myopenssl/lib -Wl,-rpath=/home/myopenssl/lib -lcrypto
Test with
openssl list -providers
Providers:
base
name: OpenSSL Base Provider
version: 3.6.1
status: active
fips
name: OpenSSL FIPS Provider
version: 3.6.1
status: active
--
Work 1-914-945-2415
--
You received this message because you are subscribed to the Google Groups "openssl-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openssl-users+unsubscribe-MCmKBN63+Bmbup2nOX2J7Q@public.gmane.org
To view this discussion visit https://groups.google.com/a/openssl.org/d/msgid/openssl-users/SJ0PR15MB52787DE3EDD3BFEAA9D17D81F256A%40SJ0PR15MB5278.namprd15.prod.outlook.com.
------=_NextPart_001_004B_01DCBD2F.F2F494E0
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; charset=3Dus-ascii"=
>
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version 16.0.19725.2=
0058">
<TITLE>Re: How to test a build of the FIPS provider</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->
<P DIR=3DLTR><SPAN LANG=3D"en-us"><FONT FACE=3D"Aptos">Getting back to this=
, I followed the instructions below.<BR>
<BR>
> openssl list -providers<BR>
Providers:<BR>
base<BR>
name: OpenSSL Base Provider<BR>
version: 3.6.1<BR>
status: active<BR>
fips<BR>
name: OpenSSL FIPS Provider<BR>
version: 3.6.1<BR>
status: active<BR>
<BR>
How do I ensure that the program uses the fips module? I try:<BR>
<BR>
provider =3D OSSL_PROVIDER_load(NULL, "fips&qu=
ot;);<BR>
irc =3D EVP_set_default_properties(NULL, "prov=
ider=3Dfips");<BR>
sha =3D EVP_MD_fetch(NULL, HASHALG, "fips=3Dye=
s");<BR>
sha =3D EVP_MD_fetch(NULL, HASHALG, "provider=
=3Dfips");<BR>
<BR>
All of these seem successful, but this NULL is also successful, so<BR>
how do ensure that the fips module is being used?<BR>
<BR>
sha =3D EVP_MD_fetch(NULL, HASHALG, NULL);<BR>
<BR>
Even though I have a base provider (see above), base fails, with<BR>
or without the OSSL_PROVIDER_load() or OSSL_PROVIDER_load() calls.<BR>
<BR>
sha =3D EVP_MD_fetch(NULL, HASHALG, "provider=
=3Dbase");<BR>
<BR>
<BR>
<BR>
On 1/28/2026 6:26 PM, Ken Goldman wrote:<BR>
</FONT></SPAN></P>
<P DIR=3DLTR><SPAN LANG=3D"en-us"><FONT FACE=3D"Aptos">On 1/19/2026 6:49 PM=
, Ken Goldman wrote:<BR>
</FONT></SPAN></P>
<P DIR=3DLTR><SPAN LANG=3D"en-us"><FONT FACE=3D"Aptos">Fedora 42, x86 - I b=
uilt openssl 3.6.1 with enable-fips and got fips.so<BR>
<BR>
I'd like to test it locally, as non-root, but not install it in the system =
area. Are there instructions for this?<BR>
<BR>
I want to test the EVP API, not TLS or the command line. </FONT></SPAN></P>
<BR>
<P DIR=3DLTR><SPAN LANG=3D"en-us"><FONT FACE=3D"Aptos">For the record, here=
are working instructions, creating<BR>
a fips build in myopenssl:<BR>
<BR>
./config -shared --prefix=3D/home/kgold/myopenssl --libdir=3Dlib -- openssl=
dir=3D/home/kgold/myopenssl -Wl,-rpath,$HOME/myopenssl/lib --debug zlib ena=
ble-fips<BR>
make<BR>
creates<BR>
./providers/libfips.a<BR>
./providers/fips.so<BR>
make install<BR>
installs to myopenssl directory<BR>
make test<BR>
make install_fips<BR>
creates<BR>
/home/kgold/myopenssl/lib/ossl-modules/fips.s=
o<BR>
/home/kgold/myopenssl/fipsmodule.cnf<BR>
<BR>
openssl.cnf<BR>
add<BR>
.pragma includedir:</FONT>=
</SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN LANG=
=3D"en-us"><I><FONT FACE=3D"Aptos">/home/myopenssl/</FONT></I></SPAN><SPAN =
LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"></SPAN><SPAN LANG=3D"en-us"><FON=
T FACE=3D"Aptos"><BR>
uncomment<BR>
.include fipsmodule.cnf<BR=
>
comment<BR>
#default =3D default_sect<=
BR>
add<BR>
base =3D default_sect<BR>
fips =3D fips_sect<BR>
in default_sect, uncomment<BR>
activate =3D 1<BR>
<BR>
fipsmodule.cnf<BR>
add<BR>
module =3D /home/myopenssl=
/lib/ossl-modules/fips.so<BR>
<BR>
LNFLAGS +=3D -L/home/myopenssl/lib -Wl,-rpath=3D/home/myopenssl/lib -lcrypt=
o<BR>
<BR>
Test with<BR>
openssl list -providers<BR>
<BR>
Providers:<BR>
base<BR>
name: OpenSSL Base Provider<BR>
version: 3.6.1<BR>
status: active<BR>
fips<BR>
name: OpenSSL FIPS Provider<BR>
version: 3.6.1<BR>
status: active<BR>
</FONT></SPAN></P>
<BR>
<BR>
<P DIR=3DLTR><SPAN LANG=3D"en-us"><FONT FACE=3D"Aptos">--</FONT></SPAN></P>
<P DIR=3DLTR><SPAN LANG=3D"en-us"><FONT FACE=3D"Aptos">Work 1-914-945-2415<=
/FONT></SPAN></P>
<BR>
</BODY>
</HTML>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;openssl-users" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:openssl-users+unsubscribe-MCmKBN63+BlAfugRpC6u6w@public.gmane.org">openssl-us=
[email protected]</a>.<br />
To view this discussion visit <a href=3D"https://groups.google.com/a/openss=
l.org/d/msgid/openssl-users/SJ0PR15MB52787DE3EDD3BFEAA9D17D81F256A%40SJ0PR1=
5MB5278.namprd15.prod.outlook.com?utm_medium=3Demail&utm_source=3Dfooter">h=
ttps://groups.google.com/a/openssl.org/d/msgid/openssl-users/SJ0PR15MB52787=
DE3EDD3BFEAA9D17D81F256A%40SJ0PR15MB5278.namprd15.prod.outlook.com</a>.<br =
/>
------=_NextPart_001_004B_01DCBD2F.F2F494E0--
------=_NextPart_000_004A_01DCBD2F.F2F494E0
Content-Type: application/pkcs7-signature;
name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="smime.p7s"
MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCD74w
ggOWMIICfqADAgECAhALkxw61jln6mcjv8OvmvRLMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYT
AlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAi
BgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBHMjAeFw0xMzA4MDExMjAwMDBaFw0zODAx
MTUxMjAwMDBaMGUxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsT
EHd3dy5kaWdpY2VydC5jb20xJDAiBgNVBAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBHMjCC
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANnnKC9SPzZySYiTNPP4ah4xVICfrVRBtUff
lqjUr4AtuQrPdf2JpX0k+uMiDCu8lRcLM78ZTUEGkAC9DE0Q/ge15xxuIlUxZZe90xfSHmLz2+ps
UIw/hAyWz7fLA+DKbaEUTBuJ3e0AsFJ8r5FssTgT0ekSCMAAsBwrEdp3cDabrs55h9yCcOYJdHBV
aa+jaJ+/3bZ5s/KdcClV9Kv/lWHzyUBvHdG+k7vTiCq7nb9yWlZxOz/U89EK/ijvo+7Zma8D049g
t/KSobG9iYkfMM3Dpi5iM64WAndEWueBCjynRC55uD8EvFygh+Ebr1GOzews+vj+bfA6fKqL5GeV
MY0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFM7D
SrmZVfK422C/qX69VrWXNqfWMA0GCSqGSIb3DQEBCwUAA4IBAQDKpVWM48hBbmknp3UR7zyGNm/S
ncZ4OB1plqKSaS44bJt9BNSJpbExN4rJIcyrbM2LHJrWv0jSMmbBisDzLzrvwOPUkYbRUOMD23N3
b0o5U+3eJse1fa8rQtF1YuNKKwLHUEvgaeKWbA5EZhBEj60F6/h5rKYb6Dc0nVPJYaqiUq9KcBaG
wjrIsRNwNtjP7vQKNNVbTP0HnKK62QFyXPNNwd0OsRwNxGO+rfQU+4nsokEOTMzIV0DQbgOqzQyO
iZmZbPA8MK8432+8o74pICerdP8TInjel1JVHoO1VCAD7q7AT1beN8zDf6oEJ7vTd7hi2xd8nCgi
E3Nszyb1iinnMIIFuTCCBKGgAwIBAgIQASu7Eqn87N5HcHzaT6j+AzANBgkqhkiG9w0BAQsFADBl
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwHhcNMjQwODA4MDAw
MDAwWhcNMzQwODA3MjM1OTU5WjBsMQswCQYDVQQGEwJVUzE0MDIGA1UEChMrSW50ZXJuYXRpb25h
bCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbjEnMCUGA1UEAxMeSUJNIENlcnRpZmljYXRp
b24gQXV0aG9yaXR5IEc3MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA3sDwfjeJoQil
VqmC+x1wE0J/8eeeGRGU50FkfOAW3b9uaFLJEg1iOVHrkx3Dpf3RaGU0Ejbb+JtwkxgAoDeLiuct
lGaPI6PeBQEZATUQ2Cf+3aXTnvFqJcrwo0gl6sEtBzr0zGTUhTxbxk2Pbes6aL23YMmoehj6lR4F
7riNqVuhEu4dFxbfd46lHNnGaQxjiqQ7j+bDBm77kbdOlcrpmeJ+1L5Gl5/Mw01/yvdlQ8jHYlfM
Lxd1f46Cd5zseQabrOE3NBmAl3pYlWNAvwZa6s3NgfHktI+3lUadXzZwjBSrPtKqR1q0qaEPbTDM
I9zo+UK/7PkVr+rRtzz2fB9W45iZojx/SC7/bCpO8nl6OAWLZl+EHuYFIxx3Ab2bCitwoIOEEksZ
ObzDF8jGhtU6kePN8pEU0f4esq0chKGYYcIbJysnWCHQ4EeHKLqJSziTAjfqWnNgd/499DLk+TRf
xd3qiJHMP/FAaAM3e82YL8uxGBSQGTDhLHThiYbP5izYMydJ3l4TlWStCnu+jnaUyCoP9dnA8gGk
qm3yvmDIDBKq9haUn3ihQzH9c2HvN+Wf2gyfFED9RWTo7koMYlBA7/pvJYERwR7469x4UnZFizQt
zpi9t430UW9dnKETa0YvRUVkONg5KZo/XZfs8HY/FstgjuIkFyScT/CPI5mRhlMCAwEAAaOCAVww
ggFYMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFHVK+TRBSCXdRgoTmhE7O5s21VlGMB8G
A1UdIwQYMBaAFM7DSrmZVfK422C/qX69VrWXNqfWMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAU
BggrBgEFBQcDBAYIKwYBBQUHAwIweQYIKwYBBQUHAQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8v
b2NzcC5kaWdpY2VydC5jb20wQwYIKwYBBQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNv
bS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RHMi5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2Ny
bDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0QXNzdXJlZElEUm9vdEcyLmNybDARBgNVHSAECjAIMAYG
BFUdIAAwDQYJKoZIhvcNAQELBQADggEBAKLlxfZqCW0YlJv/Ialn09bwIKeN+YVMQIqhGnw3XKjS
ngAD0HPQfyUtFt6jA9NJ92cZXUlwbwX5+jTOPePLrx6hiPeN8xcHBc+ybHb6C7ueIt0DQ7S7du/u
biS0CSoM9LyGcIXJ/Leyh1YqBzplxmt6eA573aSLnx4pcgB/27Sb2YUtcLFXWmHgMiDVrtxE5Ozr
nU6TpXM83J3N4J6Ee2x/G2D9I8N8yz7uNnFDFI2LlIOpXJEiw3m0c28kmZpcFrXVV8MbIFvAyCAq
SmTKXtk0rzwMe65KTZRDVOSMDegc0gMWSFXTmi0czrqDacX+QL4rlUhcujVp0BLLy6IpL2YwggZj
MIIES6ADAgECAhAMBDoHrjClI1AA5JSGPgDEMA0GCSqGSIb3DQEBCwUAMGwxCzAJBgNVBAYTAlVT
MTQwMgYDVQQKEytJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uMScw
JQYDVQQDEx5JQk0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgRzcwHhcNMjUwNTE5MDAwMDAwWhcN
MjYwNTE4MjM1OTU5WjCBvjEXMBUGA1UEYRMOTlRSVVMrTlktMzAwNTkxCzAJBgNVBAYTAlVTMREw
DwYDVQQIEwhOZXcgWW9yazEPMA0GA1UEBxMGQXJtb25rMTQwMgYDVQQKEytJbnRlcm5hdGlvbmFs
IEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uMRAwDgYDVQQEEwdHb2xkbWFuMRAwDgYDVQQq
EwdLZW5uZXRoMRgwFgYDVQQDEw9LZW5uZXRoIEdvbGRtYW4wggEiMA0GCSqGSIb3DQEBAQUAA4IB
DwAwggEKAoIBAQCm/akt6vmEkJoHtQ829o7ib3fRt/+QaOZazorL9VIK/FzxleFnXFayeALSwhm+
aCFGBPtJCoj6sCx48VvR3Q0mQ8I/9mz1JPFHIcQdjaQCXOZWkjai3RqJYru9ij0VKXOtAXssH0Wp
EilSXMWVk6iM/iuTBNzJ5ESRYo1DhWwcpQywBU/vE90VysPvfJf3H1C/ChT+lm8Dn1dClbjDhYnn
38xhLp75TX11diZb9lWzYFBgbaYusjJoE4b1vGQ1nogYf8ngP6h5GudPvO0MZGzdkn39sVLsmYYu
0LNPr84a9zOD8K+hi4Qq38KvBqS9eFCZKOQ4ie2QVPdXDjsZbBYRAgMBAAGjggGsMIIBqDAfBgNV
HSMEGDAWgBR1Svk0QUgl3UYKE5oROzubNtVZRjAdBgNVHQ4EFgQUTKxsRNMTE0npUoGWKbb0f/ys
VykwHgYDVR0RBBcwFYETa2dvbGRtYW5AdXMuaWJtLmNvbTAUBgNVHSAEDTALMAkGB2eBDAEFAwEw
DgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMEMIGLBgNVHR8EgYMwgYAwPqA8oDqG
OGh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9JQk1DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5RzcuY3Js
MD6gPKA6hjhodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vSUJNQ2VydGlmaWNhdGlvbkF1dGhvcml0
eUc3LmNybDB9BggrBgEFBQcBAQRxMG8wJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0
LmNvbTBHBggrBgEFBQcwAoY7aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0lCTUNlcnRpZmlj
YXRpb25BdXRob3JpdHlHNy5jcnQwDQYJKoZIhvcNAQELBQADggIBAFwJOVX6Gn+uEC5rVwTTzSDI
h8vR+wf40JE2geBtaEmbfv6vcM+7mLfzy30cHMJsg3luMbqEB81MjRSjXvMSzMsvN7rUt9n3OLhf
9b/AE27oFpDLq30gs87y9Qaj1Z/qcJKyUy1O8wiecN3kJNUrucBejtBz5YGNcbdfrrBH/N4XGvmT
8+EttDct8EvfOWhXU88w2l52x/RyYAuwmovlYgFRbXVDXYN9y3gxgZlYWDOCB2/V6Wb8CwKrNYFL
gwwFoiYr0KXS8ibn6I7/Osqlgrkp0/yXly7f5swk2XLl6RvM+2WH7J526rA/f+W+oK4fMMhY+MCS
AqYkAhdlzM02cRhaB5RoGg0HZzWAYccISUd6LvPjkD2v3z8o6EfH1VlzUbnaAg4jkZxSdkQWVY04
hl5zJ+ASZT+RE0uh85t835Z5ZDIG3ZSH5p+PNAcedyAe3C3wgUOwqwkLV6K4bTGZpTAI7kyGvjFE
mKA5N5x78zdEMYYsOOZDR0+tzHG1p7JdkxN2cq042VLKFv7mBmP/zomDlnCSIqgrjGbpvgtIwovk
heQgUBnMnFUJ/EEOU+RqFAzhpTk069cBxOGd0TGxJFhCOOeYvN04PIwH6y3zD9C6n2UZ4hRQyv3N
JykaOe8kh6gelnGo/0a8Kvp6/xm+ZSYhaKVzHdifWONpDKb9Q8cQMYID2TCCA9UCAQEwgYAwbDEL
MAkGA1UEBhMCVVMxNDAyBgNVBAoTK0ludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29y
cG9yYXRpb24xJzAlBgNVBAMTHklCTSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBHNwIQDAQ6B64w
pSNQAOSUhj4AxDANBglghkgBZQMEAgEFAKCCAikwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAc
BgkqhkiG9w0BCQUxDxcNMjYwMzI2MTg1MDU1WjAvBgkqhkiG9w0BCQQxIgQgSR8GhZYODm95oJ09
jgyV6zra5NpufHfFcXK3Tb+9eH0wgZEGCSsGAQQBgjcQBDGBgzCBgDBsMQswCQYDVQQGEwJVUzE0
MDIGA1UEChMrSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbjEnMCUG
A1UEAxMeSUJNIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEc3AhAMBDoHrjClI1AA5JSGPgDEMIGT
BgkqhkiG9w0BCQ8xgYUwgYIwCwYJYIZIAWUDBAEqMAsGCWCGSAFlAwQBFjAKBggqhkiG9w0DBzAL
BglghkgBZQMEAQIwDgYIKoZIhvcNAwICAgCAMA0GCCqGSIb3DQMCAgFAMAsGCWCGSAFlAwQCATAL
BglghkgBZQMEAgMwCwYJYIZIAWUDBAICMAcGBSsOAwIaMIGTBgsqhkiG9w0BCRACCzGBg6CBgDBs
MQswCQYDVQQGEwJVUzE0MDIGA1UEChMrSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBD
b3Jwb3JhdGlvbjEnMCUGA1UEAxMeSUJNIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEc3AhAMBDoH
rjClI1AA5JSGPgDEMA0GCSqGSIb3DQEBAQUABIIBAJbauCqC9Mfsz2MHzwrJEAVW9xmeAhtH7QJN
mAxqTyxRXlas77W/xn3yWNA0UI7zuJ/ms2br5WLs0S8h9gh8sv6cUXsG2tbat0kjzGGMntzb38ss
YkgdZhu2NpYsnuQoco0kxbocfFpFCmbM1EhWP6jMWIRbVEqPEt3epV9RLUbrahQZXcPdFdYm+bpq
ny5C1MKW9bLK+/4V+Xy5+H/kcj3k/Tsskw0Lum1RlYvjeDA2yVjDM+O1Qal+i/+yZoxgPnyZhYEq
rz9QgDUWj/C26yqrxRCrvaEM/ipR0qKxFc08SPsDGz5VXE/sJI1lhqS4f+1pHbLAbv/Z9W7+Wpv4
6IgAAAAAAAA=
------=_NextPart_000_004A_01DCBD2F.F2F494E0--