From 873fde5e33a362f5fe48bcbcc21c485a72c902cf Mon Sep 17 00:00:00 2001
From: luochaolun
Date: Sat, 24 Feb 2024 22:11:07 +0800
Subject: [PATCH] 'mod_openssl'
---
public/openssl/CA.pl | 239 ++++++++++++++++++
public/openssl/HashInfo.txt | Bin 2318 -> 0 bytes
public/openssl/OpenSSL License.txt | 126 ---------
public/openssl/PEM/ca-cert.srl | 1 +
public/openssl/PEM/ca-key.pem | 16 ++
public/openssl/PEM/ca-req.pem | 11 +
public/openssl/PEM/cert.pem | 11 +
public/openssl/PEM/client.pem | 52 ++++
public/openssl/PEM/demoSRP/srp_verifier.txt | 6 +
.../openssl/PEM/demoSRP/srp_verifier.txt.attr | 1 +
public/openssl/PEM/dsa-ca.pem | 47 ++++
public/openssl/PEM/dsa-pca.pem | 47 ++++
public/openssl/PEM/dsa1024.pem | 9 +
public/openssl/PEM/dsa512.pem | 6 +
public/openssl/PEM/dsap.pem | 6 +
public/openssl/PEM/pca-cert.srl | 1 +
public/openssl/PEM/pca-key.pem | 16 ++
public/openssl/PEM/pca-req.pem | 11 +
public/openssl/PEM/privkey.pem | 16 ++
public/openssl/PEM/req.pem | 11 +
public/openssl/PEM/rsa8192.pem | 99 ++++++++
public/openssl/PEM/s1024key.pem | 15 ++
public/openssl/PEM/s1024req.pem | 11 +
public/openssl/PEM/s512-key.pem | 9 +
public/openssl/PEM/s512-req.pem | 8 +
public/openssl/PEM/server.pem | 47 ++++
public/openssl/PEM/server.srl | 1 +
public/openssl/PEM/server2.pem | 52 ++++
public/openssl/PEM/testCA.pem | 8 +
public/openssl/ReadMe.txt | 59 -----
public/openssl/capi.dll | Bin 0 -> 72192 bytes
public/openssl/dasync.dll | Bin 0 -> 49152 bytes
public/openssl/legacy.dll | Bin 0 -> 172032 bytes
public/openssl/libcrypto-3-x64.dll | Bin 0 -> 6342144 bytes
public/openssl/libeay32.dll | Bin 1374208 -> 0 bytes
public/openssl/libssl-3-x64.dll | Bin 0 -> 1171456 bytes
public/openssl/loader_attic.dll | Bin 0 -> 84992 bytes
public/openssl/openssl.exe | Bin 535552 -> 763904 bytes
public/openssl/ossltest.dll | Bin 0 -> 50688 bytes
public/openssl/p_minimal.dll | Bin 0 -> 32768 bytes
public/openssl/p_test.dll | Bin 0 -> 39424 bytes
public/openssl/padlock.dll | Bin 0 -> 65024 bytes
public/openssl/progs.pl | 218 ++++++++++++++++
public/openssl/ssleay32.dll | Bin 337920 -> 0 bytes
public/openssl/tsget.pl | 200 +++++++++++++++
45 files changed, 1175 insertions(+), 185 deletions(-)
create mode 100644 public/openssl/CA.pl
delete mode 100644 public/openssl/HashInfo.txt
delete mode 100644 public/openssl/OpenSSL License.txt
create mode 100644 public/openssl/PEM/ca-cert.srl
create mode 100644 public/openssl/PEM/ca-key.pem
create mode 100644 public/openssl/PEM/ca-req.pem
create mode 100644 public/openssl/PEM/cert.pem
create mode 100644 public/openssl/PEM/client.pem
create mode 100644 public/openssl/PEM/demoSRP/srp_verifier.txt
create mode 100644 public/openssl/PEM/demoSRP/srp_verifier.txt.attr
create mode 100644 public/openssl/PEM/dsa-ca.pem
create mode 100644 public/openssl/PEM/dsa-pca.pem
create mode 100644 public/openssl/PEM/dsa1024.pem
create mode 100644 public/openssl/PEM/dsa512.pem
create mode 100644 public/openssl/PEM/dsap.pem
create mode 100644 public/openssl/PEM/pca-cert.srl
create mode 100644 public/openssl/PEM/pca-key.pem
create mode 100644 public/openssl/PEM/pca-req.pem
create mode 100644 public/openssl/PEM/privkey.pem
create mode 100644 public/openssl/PEM/req.pem
create mode 100644 public/openssl/PEM/rsa8192.pem
create mode 100644 public/openssl/PEM/s1024key.pem
create mode 100644 public/openssl/PEM/s1024req.pem
create mode 100644 public/openssl/PEM/s512-key.pem
create mode 100644 public/openssl/PEM/s512-req.pem
create mode 100644 public/openssl/PEM/server.pem
create mode 100644 public/openssl/PEM/server.srl
create mode 100644 public/openssl/PEM/server2.pem
create mode 100644 public/openssl/PEM/testCA.pem
delete mode 100644 public/openssl/ReadMe.txt
create mode 100644 public/openssl/capi.dll
create mode 100644 public/openssl/dasync.dll
create mode 100644 public/openssl/legacy.dll
create mode 100644 public/openssl/libcrypto-3-x64.dll
delete mode 100644 public/openssl/libeay32.dll
create mode 100644 public/openssl/libssl-3-x64.dll
create mode 100644 public/openssl/loader_attic.dll
create mode 100644 public/openssl/ossltest.dll
create mode 100644 public/openssl/p_minimal.dll
create mode 100644 public/openssl/p_test.dll
create mode 100644 public/openssl/padlock.dll
create mode 100644 public/openssl/progs.pl
delete mode 100644 public/openssl/ssleay32.dll
create mode 100644 public/openssl/tsget.pl
diff --git a/public/openssl/CA.pl b/public/openssl/CA.pl
new file mode 100644
index 0000000..b0af7d9
--- /dev/null
+++ b/public/openssl/CA.pl
@@ -0,0 +1,239 @@
+#!/usr/bin/env perl
+# Copyright 2000-2021 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the Apache License 2.0 (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+#
+# Wrapper around the ca to make it easier to use
+#
+# WARNING: do not edit!
+# Generated by makefile from apps\CA.pl.in
+
+use strict;
+use warnings;
+
+my $verbose = 1;
+my @OPENSSL_CMDS = ("req", "ca", "pkcs12", "x509", "verify");
+
+my $openssl = $ENV{'OPENSSL'} // "openssl";
+$ENV{'OPENSSL'} = $openssl;
+my $OPENSSL_CONFIG = $ENV{"OPENSSL_CONFIG"} // "";
+
+# Command invocations.
+my $REQ = "$openssl req $OPENSSL_CONFIG";
+my $CA = "$openssl ca $OPENSSL_CONFIG";
+my $VERIFY = "$openssl verify";
+my $X509 = "$openssl x509";
+my $PKCS12 = "$openssl pkcs12";
+
+# Default values for various configuration settings.
+my $CATOP = "./demoCA";
+my $CAKEY = "cakey.pem";
+my $CAREQ = "careq.pem";
+my $CACERT = "cacert.pem";
+my $CACRL = "crl.pem";
+my $DAYS = "-days 365";
+my $CADAYS = "-days 1095"; # 3 years
+my $EXTENSIONS = "-extensions v3_ca";
+my $POLICY = "-policy policy_anything";
+my $NEWKEY = "newkey.pem";
+my $NEWREQ = "newreq.pem";
+my $NEWCERT = "newcert.pem";
+my $NEWP12 = "newcert.p12";
+
+# Commandline parsing
+my %EXTRA;
+my $WHAT = shift @ARGV || "";
+@ARGV = parse_extra(@ARGV);
+my $RET = 0;
+
+# Split out "-extra-CMD value", and return new |@ARGV|. Fill in
+# |EXTRA{CMD}| with list of values.
+sub parse_extra
+{
+ foreach ( @OPENSSL_CMDS ) {
+ $EXTRA{$_} = '';
+ }
+
+ my @result;
+ while ( scalar(@_) > 0 ) {
+ my $arg = shift;
+ if ( $arg !~ m/-extra-([a-z0-9]+)/ ) {
+ push @result, $arg;
+ next;
+ }
+ $arg =~ s/-extra-//;
+ die("Unknown \"-${arg}-extra\" option, exiting")
+ unless scalar grep { $arg eq $_ } @OPENSSL_CMDS;
+ $EXTRA{$arg} .= " " . shift;
+ }
+ return @result;
+}
+
+
+# See if reason for a CRL entry is valid; exit if not.
+sub crl_reason_ok
+{
+ my $r = shift;
+
+ if ($r eq 'unspecified' || $r eq 'keyCompromise'
+ || $r eq 'CACompromise' || $r eq 'affiliationChanged'
+ || $r eq 'superseded' || $r eq 'cessationOfOperation'
+ || $r eq 'certificateHold' || $r eq 'removeFromCRL') {
+ return 1;
+ }
+ print STDERR "Invalid CRL reason; must be one of:\n";
+ print STDERR " unspecified, keyCompromise, CACompromise,\n";
+ print STDERR " affiliationChanged, superseded, cessationOfOperation\n";
+ print STDERR " certificateHold, removeFromCRL";
+ exit 1;
+}
+
+# Copy a PEM-format file; return like exit status (zero means ok)
+sub copy_pemfile
+{
+ my ($infile, $outfile, $bound) = @_;
+ my $found = 0;
+
+ open IN, $infile || die "Cannot open $infile, $!";
+ open OUT, ">$outfile" || die "Cannot write to $outfile, $!";
+ while () {
+ $found = 1 if /^-----BEGIN.*$bound/;
+ print OUT $_ if $found;
+ $found = 2, last if /^-----END.*$bound/;
+ }
+ close IN;
+ close OUT;
+ return $found == 2 ? 0 : 1;
+}
+
+# Wrapper around system; useful for debugging. Returns just the exit status
+sub run
+{
+ my $cmd = shift;
+ print "====\n$cmd\n" if $verbose;
+ my $status = system($cmd);
+ print "==> $status\n====\n" if $verbose;
+ return $status >> 8;
+}
+
+
+if ( $WHAT =~ /^(-\?|-h|-help)$/ ) {
+ print STDERR <${CATOP}/index.txt";
+ close OUT;
+ open OUT, ">${CATOP}/crlnumber";
+ print OUT "01\n";
+ close OUT;
+ # ask user for existing CA certificate
+ print "CA certificate filename (or enter to create)\n";
+ my $FILE;
+ $FILE = "" unless defined($FILE = );
+ $FILE =~ s{\R$}{};
+ if ($FILE ne "") {
+ copy_pemfile($FILE,"${CATOP}/private/$CAKEY", "PRIVATE");
+ copy_pemfile($FILE,"${CATOP}/$CACERT", "CERTIFICATE");
+ } else {
+ print "Making CA certificate ...\n";
+ $RET = run("$REQ -new -keyout ${CATOP}/private/$CAKEY"
+ . " -out ${CATOP}/$CAREQ $EXTRA{req}");
+ $RET = run("$CA -create_serial"
+ . " -out ${CATOP}/$CACERT $CADAYS -batch"
+ . " -keyfile ${CATOP}/private/$CAKEY -selfsign"
+ . " $EXTENSIONS"
+ . " -infiles ${CATOP}/$CAREQ $EXTRA{ca}") if $RET == 0;
+ print "CA certificate is in ${CATOP}/$CACERT\n" if $RET == 0;
+ }
+} elsif ($WHAT eq '-pkcs12' ) {
+ my $cname = $ARGV[0];
+ $cname = "My Certificate" unless defined $cname;
+ $RET = run("$PKCS12 -in $NEWCERT -inkey $NEWKEY"
+ . " -certfile ${CATOP}/$CACERT -out $NEWP12"
+ . " -export -name \"$cname\" $EXTRA{pkcs12}");
+ print "PKCS #12 file is in $NEWP12\n" if $RET == 0;
+} elsif ($WHAT eq '-xsign' ) {
+ $RET = run("$CA $POLICY -infiles $NEWREQ $EXTRA{ca}");
+} elsif ($WHAT eq '-sign' ) {
+ $RET = run("$CA $POLICY -out $NEWCERT"
+ . " -infiles $NEWREQ $EXTRA{ca}");
+ print "Signed certificate is in $NEWCERT\n" if $RET == 0;
+} elsif ($WHAT eq '-signCA' ) {
+ $RET = run("$CA $POLICY -out $NEWCERT"
+ . " $EXTENSIONS -infiles $NEWREQ $EXTRA{ca}");
+ print "Signed CA certificate is in $NEWCERT\n" if $RET == 0;
+} elsif ($WHAT eq '-signcert' ) {
+ $RET = run("$X509 -x509toreq -in $NEWREQ -signkey $NEWREQ"
+ . " -out tmp.pem $EXTRA{x509}");
+ $RET = run("$CA $POLICY -out $NEWCERT"
+ . "-infiles tmp.pem $EXTRA{ca}") if $RET == 0;
+ print "Signed certificate is in $NEWCERT\n" if $RET == 0;
+} elsif ($WHAT eq '-verify' ) {
+ my @files = @ARGV ? @ARGV : ( $NEWCERT );
+ foreach my $file (@files) {
+ # -CAfile quoted for VMS, since the C RTL downcases all unquoted
+ # arguments to C programs
+ my $status = run("$VERIFY \"-CAfile\" ${CATOP}/$CACERT $file $EXTRA{verify}");
+ $RET = $status if $status != 0;
+ }
+} elsif ($WHAT eq '-crl' ) {
+ $RET = run("$CA -gencrl -out ${CATOP}/crl/$CACRL $EXTRA{ca}");
+ print "Generated CRL is in ${CATOP}/crl/$CACRL\n" if $RET == 0;
+} elsif ($WHAT eq '-revoke' ) {
+ my $cname = $ARGV[0];
+ if (!defined $cname) {
+ print "Certificate filename is required; reason optional.\n";
+ exit 1;
+ }
+ my $reason = $ARGV[1];
+ $reason = " -crl_reason $reason"
+ if defined $reason && crl_reason_ok($reason);
+ $RET = run("$CA -revoke \"$cname\"" . $reason . $EXTRA{ca});
+} else {
+ print STDERR "Unknown arg \"$WHAT\"\n";
+ print STDERR "Use -help for help.\n";
+ exit 1;
+}
+
+exit $RET;
diff --git a/public/openssl/HashInfo.txt b/public/openssl/HashInfo.txt
deleted file mode 100644
index d9b55ddecc174f25135231351bc116fef2c20342..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 2318
zcmb8wO^W135Cz~|8+?a3!BA4Eeq@>fgBRX-W1pZTwZPEWhS|(q-sAUW^iWMPHW-mr
zQfBBy#ETc9FMmI^m-c&G+HzPT76Vy0y7oI`Xga`&agO7-D;9g$(665sg`MPOiDT
z<^3U;$JjYtb4@uPa&pR>r&z&0W}UkYzhlnj@LT)2{h0fE7Caq;GbWZL_HeKLUmklr
z&E5AJVFr$eqwY(=!@L|zsv%*cMvljo)9
zwe_8$zsEnsB|hO?UbFY+E%!r@9{YPgSvnWT*iAvPf9K#7>+wxwGP`7N2@;$kQOQzf
z_+GPMTym~@xH$x&vXM1@&V8-<-Ey{cv`dg6c#r)QL>beWsOR8pK~n{K5t$5O?YW1o
zhUfk-O7-FUnw>2t*IXi#177E>A=erl+*Gw_Lw#rl#@;<#^K=XfW~`_7G1p71{!bT(
zWy(A1ON~6r^N_neXIu6tl)l#N;7-ImV~6K|>jHfx_iHf3N@udWbq276dtRwrhv5x_
zeBw`E%Keo0?+SSA0%}r`Io4CRg;u>$T?g3(Q*L5cY4s>JX_<0W@b2lc3&y-7vax3%
zGOVd6RZYQ|a_L|lrt|2%^rpJ9rFhCZ<-g|2nmFd3IW#@CPsd!V#IZ5Bq03-u|Sioa%8Y1WKU
zYmDfgnpxs0Pv8C$nCA3ry3U;?8q%-wvV+fa?r0d6%xb2YLSrncM+_$1U1^U!P(3QM
z(wd3kZTjK!5M*b1i_%q5<+j{Y33g3Ed5MEwbZuz`W=%@-0xmm|(V|&S;(MwJzSHN}6jyw!o|sjq-lP{ZOFc~)XBfsu
vePi+b^$VgGYufs@=@a_VSy-;f)Tplh_
diff --git a/public/openssl/OpenSSL License.txt b/public/openssl/OpenSSL License.txt
deleted file mode 100644
index 57b7925..0000000
--- a/public/openssl/OpenSSL License.txt
+++ /dev/null
@@ -1,126 +0,0 @@
-
- LICENSE ISSUES
- ==============
-
- The OpenSSL toolkit stays under a dual license, i.e. both the conditions of
- the OpenSSL License and the original SSLeay license apply to the toolkit.
- See below for the actual license texts. Actually both licenses are BSD-style
- Open Source licenses. In case of any license issues related to OpenSSL
- please contact openssl-core@openssl.org.
-
- OpenSSL License
- ---------------
-
-/* ====================================================================
- * Copyright (c) 1998-2016 The OpenSSL Project. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. All advertising materials mentioning features or use of this
- * software must display the following acknowledgment:
- * "This product includes software developed by the OpenSSL Project
- * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
- *
- * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
- * endorse or promote products derived from this software without
- * prior written permission. For written permission, please contact
- * openssl-core@openssl.org.
- *
- * 5. Products derived from this software may not be called "OpenSSL"
- * nor may "OpenSSL" appear in their names without prior written
- * permission of the OpenSSL Project.
- *
- * 6. Redistributions of any form whatsoever must retain the following
- * acknowledgment:
- * "This product includes software developed by the OpenSSL Project
- * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
- *
- * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- * ====================================================================
- *
- * This product includes cryptographic software written by Eric Young
- * (eay@cryptsoft.com). This product includes software written by Tim
- * Hudson (tjh@cryptsoft.com).
- *
- */
-
- Original SSLeay License
- -----------------------
-
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to. The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code. The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * "This product includes cryptographic software written by
- * Eric Young (eay@cryptsoft.com)"
- * The word 'cryptographic' can be left out if the rouines from the library
- * being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- * the apps directory (application code) you must include an acknowledgement:
- * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed. i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
diff --git a/public/openssl/PEM/ca-cert.srl b/public/openssl/PEM/ca-cert.srl
new file mode 100644
index 0000000..2c7456e
--- /dev/null
+++ b/public/openssl/PEM/ca-cert.srl
@@ -0,0 +1 @@
+07
diff --git a/public/openssl/PEM/ca-key.pem b/public/openssl/PEM/ca-key.pem
new file mode 100644
index 0000000..4e74249
--- /dev/null
+++ b/public/openssl/PEM/ca-key.pem
@@ -0,0 +1,16 @@
+-----BEGIN PRIVATE KEY-----
+MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAL4tQNyKy4U2zX6l
+IZvORB1edmwMwIgSB4cgoFECrG5pixzYxKauZkAwKG9/+L4DB8qXRjfXWcvafcOU
+DlYpRROykJ7wGkiqmqbZyrxY8DWjk5ZZQXiSuhYOAJB+Fyfb11JZV6+CvBQX/1g+
+vhJr39Gmp6oAesoYrj90ecozClmnAgMBAAECgYA3j6sSg+5f9hnldUMzbPjTh8Sb
+XsJlPrc6UFrmMBzGiUleXSpe9Dbla+x0XvQCN4pwMvAN4nnWp/f0Su5BV/9Y93nb
+im5ijGNrfN9i6QrnqGCr+MMute+4E8HR2pCScX0mBLDDf40SmDvMzCaxtd21keyr
+9DqHgInQZNEi6NKlkQJBAPCbUTFg6iQ6VTCQ8CsEf5q2xHhuTK23fJ999lvWVxN7
+QsvWb9RP9Ng34HVtvB7Pl6P7FyHLQYiDJhhvYR0L0+kCQQDKV/09Kt6Wjf5Omp1I
+wd3A+tFnipdqnPw+qNHGjevv0hYiEIWQOYbx00zXgaX+WN/pzV9eeNN2XAxlNJ++
+dxcPAkBrzeuPKFFAcjKBVC+H1rgl5gYZv7Hzk+buv02G0H6rZ+sB0c7BXiHiTwbv
+Fn/XfkP/YR14Ms3mEH0dLaphjU8hAkEAh3Ar/rRiN04mCcEuRFQXtaNtZSv8PA2G
+Pf7MI2Y9pdHupLCAZlBLRjTUO2/5hu1AO4QPMPIZQSFN3rRBtMCL+wJAMp/m2hvI
+TmtbMp/IrKGfma09e3yFiCmoNn7cHLJ7jLvXcacV2XNzpr9YHfBxiZo0g9FqZKvv
+PZoQ5B2XJ7bhTQ==
+-----END PRIVATE KEY-----
diff --git a/public/openssl/PEM/ca-req.pem b/public/openssl/PEM/ca-req.pem
new file mode 100644
index 0000000..84c6dbb
--- /dev/null
+++ b/public/openssl/PEM/ca-req.pem
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBmzCCAQQCAQAwWzELMAkGA1UEBhMCQVUxEzARBgNVBAgMClF1ZWVuc2xhbmQx
+GjAYBgNVBAoMEUNyeXB0U29mdCBQdHkgTHRkMRswGQYDVQQDDBJUZXN0IENBICgx
+MDI0IGJpdCkwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAL4tQNyKy4U2zX6l
+IZvORB1edmwMwIgSB4cgoFECrG5pixzYxKauZkAwKG9/+L4DB8qXRjfXWcvafcOU
+DlYpRROykJ7wGkiqmqbZyrxY8DWjk5ZZQXiSuhYOAJB+Fyfb11JZV6+CvBQX/1g+
+vhJr39Gmp6oAesoYrj90ecozClmnAgMBAAGgADANBgkqhkiG9w0BAQsFAAOBgQCo
+2jE7J1SNV7kyRm9m8CoPw8xYsuVcVFxPheBymYp8BlO0/rSdYygRjobpYnLVRUPZ
+pV792wzT1Rp4sXfZWO10lkFY4yi0pH2cdK2RX7qedibV1Xu9vt/yYANFBKVpA4dy
+PRyTQwi3In1N8hdfddpYR8f5MIUYRe5poFMIJcf8JA==
+-----END CERTIFICATE REQUEST-----
diff --git a/public/openssl/PEM/cert.pem b/public/openssl/PEM/cert.pem
new file mode 100644
index 0000000..de4a77a
--- /dev/null
+++ b/public/openssl/PEM/cert.pem
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBoDCCAUoCAQAwDQYJKoZIhvcNAQEEBQAwYzELMAkGA1UEBhMCQVUxEzARBgNV
+BAgTClF1ZWVuc2xhbmQxGjAYBgNVBAoTEUNyeXB0U29mdCBQdHkgTHRkMSMwIQYD
+VQQDExpTZXJ2ZXIgdGVzdCBjZXJ0ICg1MTIgYml0KTAeFw05NzA5MDkwMzQxMjZa
+Fw05NzEwMDkwMzQxMjZaMF4xCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0
+YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxFzAVBgNVBAMT
+DkVyaWMgdGhlIFlvdW5nMFEwCQYFKw4DAgwFAANEAAJBALVEqPODnpI4rShlY8S7
+tB713JNvabvn6Gned7zylwLLiXQAo/PAT6mfdWPTyCX9RlId/Aroh1ou893BA32Q
+sggwDQYJKoZIhvcNAQEEBQADQQCU5SSgapJSdRXJoX+CpCvFy+JVh9HpSjCpSNKO
+19raHv98hKAUJuP9HyM+SUsffO6mAIgitUaqW8/wDMePhEC3
+-----END CERTIFICATE-----
diff --git a/public/openssl/PEM/client.pem b/public/openssl/PEM/client.pem
new file mode 100644
index 0000000..e7a47a7
--- /dev/null
+++ b/public/openssl/PEM/client.pem
@@ -0,0 +1,52 @@
+subject= C = UK, O = OpenSSL Group, OU = FOR TESTING PURPOSES ONLY, CN = Test Client Cert
+issuer= C = UK, O = OpenSSL Group, OU = FOR TESTING PURPOSES ONLY, CN = OpenSSL Test Intermediate CA
+-----BEGIN CERTIFICATE-----
+MIID5zCCAs+gAwIBAgIJALnu1NlVpZ6yMA0GCSqGSIb3DQEBBQUAMHAxCzAJBgNV
+BAYTAlVLMRYwFAYDVQQKDA1PcGVuU1NMIEdyb3VwMSIwIAYDVQQLDBlGT1IgVEVT
+VElORyBQVVJQT1NFUyBPTkxZMSUwIwYDVQQDDBxPcGVuU1NMIFRlc3QgSW50ZXJt
+ZWRpYXRlIENBMB4XDTExMTIwODE0MDE0OFoXDTIxMTAxNjE0MDE0OFowZDELMAkG
+A1UEBhMCVUsxFjAUBgNVBAoMDU9wZW5TU0wgR3JvdXAxIjAgBgNVBAsMGUZPUiBU
+RVNUSU5HIFBVUlBPU0VTIE9OTFkxGTAXBgNVBAMMEFRlc3QgQ2xpZW50IENlcnQw
+ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC0ranbHRLcLVqN+0BzcZpY
++yOLqxzDWT1LD9eW1stC4NzXX9/DCtSIVyN7YIHdGLrIPr64IDdXXaMRzgZ2rOKs
+lmHCAiFpO/ja99gGCJRxH0xwQatqAULfJVHeUhs7OEGOZc2nWifjqKvGfNTilP7D
+nwi69ipQFq9oS19FmhwVHk2wg7KZGHI1qDyG04UrfCZMRitvS9+UVhPpIPjuiBi2
+x3/FZIpL5gXJvvFK6xHY63oq2asyzBATntBgnP4qJFWWcvRx24wF1PnZabxuVoL2
+bPnQ/KvONDrw3IdqkKhYNTul7jEcu3OlcZIMw+7DiaKJLAzKb/bBF5gm/pwW6As9
+AgMBAAGjgY8wgYwwDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCBeAwLAYJYIZI
+AYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQW
+BBSZHKyLoTh7Mb409Zn/mK1ceSDAjDAfBgNVHSMEGDAWgBQ2w2yI55X+sL3szj49
+hqshgYfa2jANBgkqhkiG9w0BAQUFAAOCAQEAD0mL7PtPYgCEuDyOQSbLpeND5hVS
+curxQdGnrJ6Acrhodb7E9ccATokeb0PLx6HBLQUicxhTZIQ9FbO43YkQcOU6C3BB
+IlwskqmtN6+VmrQzNolHCDzvxNZs9lYL2VbGPGqVRyjZeHpoAlf9cQr8PgDb4d4b
+vUx2KAhHQvV2nkmYvKyXcgnRuHggumF87mkxidriGAEFwH4qfOqetUg64WyxP7P2
+QLipm04SyQa7ONtIApfVXgHcE42Py4/f4arzCzMjKe3VyhGkS7nsT55X/fWgTaRm
+CQPkO+H94P958WTvQDt77bQ+D3IvYaVvfil8n6HJMOJfFT0LJuSUbpSXJg==
+-----END CERTIFICATE-----
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpQIBAAKCAQEAtK2p2x0S3C1ajftAc3GaWPsji6scw1k9Sw/XltbLQuDc11/f
+wwrUiFcje2CB3Ri6yD6+uCA3V12jEc4GdqzirJZhwgIhaTv42vfYBgiUcR9McEGr
+agFC3yVR3lIbOzhBjmXNp1on46irxnzU4pT+w58IuvYqUBavaEtfRZocFR5NsIOy
+mRhyNag8htOFK3wmTEYrb0vflFYT6SD47ogYtsd/xWSKS+YFyb7xSusR2Ot6Ktmr
+MswQE57QYJz+KiRVlnL0cduMBdT52Wm8blaC9mz50PyrzjQ68NyHapCoWDU7pe4x
+HLtzpXGSDMPuw4miiSwMym/2wReYJv6cFugLPQIDAQABAoIBAAZOyc9MhIwLSU4L
+p4RgQvM4UVVe8/Id+3XTZ8NsXExJbWxXfIhiqGjaIfL8u4vsgRjcl+v1s/jo2/iT
+KMab4o4D8gXD7UavQVDjtjb/ta79WL3SjRl2Uc9YjjMkyq6WmDNQeo2NKDdafCTB
+1uzSJtLNipB8Z53ELPuHJhxX9QMHrMnuha49riQgXZ7buP9iQrHJFhImBjSzbxJx
+L+TI6rkyLSf9Wi0Pd3L27Ob3QWNfNRYNSeTE+08eSRChkur5W0RuXAcuAICdQlCl
+LBvWO/LmmvbzCqiDcgy/TliSb6CGGwgiNG7LJZmlkYNj8laGwalNlYZs3UrVv6NO
+Br2loAECgYEA2kvCvPGj0Dg/6g7WhXDvAkEbcaL1tSeCxBbNH+6HS2UWMWvyTtCn
+/bbD519QIdkvayy1QjEf32GV/UjUVmlULMLBcDy0DGjtL3+XpIhLKWDNxN1v1/ai
+1oz23ZJCOgnk6K4qtFtlRS1XtynjA+rBetvYvLP9SKeFrnpzCgaA2r0CgYEA0+KX
+1ACXDTNH5ySX3kMjSS9xdINf+OOw4CvPHFwbtc9aqk2HePlEsBTz5I/W3rKwXva3
+NqZ/bRqVVeZB/hHKFywgdUQk2Uc5z/S7Lw70/w1HubNTXGU06Ngb6zOFAo/o/TwZ
+zTP1BMIKSOB6PAZPS3l+aLO4FRIRotfFhgRHOoECgYEAmiZbqt8cJaJDB/5YYDzC
+mp3tSk6gIb936Q6M5VqkMYp9pIKsxhk0N8aDCnTU+kIK6SzWBpr3/d9Ecmqmfyq7
+5SvWO3KyVf0WWK9KH0abhOm2BKm2HBQvI0DB5u8sUx2/hsvOnjPYDISbZ11t0MtK
+u35Zy89yMYcSsIYJjG/ROCUCgYEAgI2P9G5PNxEP5OtMwOsW84Y3Xat/hPAQFlI+
+HES+AzbFGWJkeT8zL2nm95tVkFP1sggZ7Kxjz3w7cpx7GX0NkbWSE9O+T51pNASV
+tN1sQ3p5M+/a+cnlqgfEGJVvc7iAcXQPa3LEi5h2yPR49QYXAgG6cifn3dDSpmwn
+SUI7PQECgYEApGCIIpSRPLAEHTGmP87RBL1smurhwmy2s/pghkvUkWehtxg0sGHh
+kuaqDWcskogv+QC0sVdytiLSz8G0DwcEcsHK1Fkyb8A+ayiw6jWJDo2m9+IF4Fww
+1Te6jFPYDESnbhq7+TLGgHGhtwcu5cnb4vSuYXGXKupZGzoLOBbv1Zw=
+-----END RSA PRIVATE KEY-----
diff --git a/public/openssl/PEM/demoSRP/srp_verifier.txt b/public/openssl/PEM/demoSRP/srp_verifier.txt
new file mode 100644
index 0000000..50a52c1
--- /dev/null
+++ b/public/openssl/PEM/demoSRP/srp_verifier.txt
@@ -0,0 +1,6 @@
+# This is a file that will be filled by the openssl srp routine.
+# You can initialize the file with additional groups, these are
+# records starting with an I followed by the g and N values and the id.
+# The exact values ... you have to dig this out from the source of srp.c
+# or srp_vfy.c
+# The last value of an I is used as the default group for new users.
diff --git a/public/openssl/PEM/demoSRP/srp_verifier.txt.attr b/public/openssl/PEM/demoSRP/srp_verifier.txt.attr
new file mode 100644
index 0000000..8f7e63a
--- /dev/null
+++ b/public/openssl/PEM/demoSRP/srp_verifier.txt.attr
@@ -0,0 +1 @@
+unique_subject = yes
diff --git a/public/openssl/PEM/dsa-ca.pem b/public/openssl/PEM/dsa-ca.pem
new file mode 100644
index 0000000..3ce8dc6
--- /dev/null
+++ b/public/openssl/PEM/dsa-ca.pem
@@ -0,0 +1,47 @@
+-----BEGIN DSA PRIVATE KEY-----
+MIIBugIBAAKBgQCnP26Fv0FqKX3wn0cZMJCaCR3aajMexT2GlrMV4FMuj+BZgnOQ
+PnUxmUd6UvuF5NmmezibaIqEm4fGHrV+hktTW1nPcWUZiG7OZq5riDb77Cjcwtel
+u+UsOSZL2ppwGJU3lRBWI/YV7boEXt45T/23Qx+1pGVvzYAR5HCVW1DNSQIVAPcH
+Me36bAYD1YWKHKycZedQZmVvAoGATd9MA6aRivUZb1BGJZnlaG8w42nh5bNdmLso
+hkj83pkEP1+IDJxzJA0gXbkqmj8YlifkYofBe3RiU/xhJ6h6kQmdtvFNnFQPWAbu
+SXQHzlV+I84W9srcWmEBfslxtU323DQph2j2XiCTs9v15AlsQReVkusBtXOlan7Y
+Mu0OArgCgYAapll6iqz9XrZFlk2GCVcB+KihxWnH7IuHvSLw9YUrJahcBHmbpvt4
+94lF4gC5w3WPM+vXJofbusk4GoQEEsQNMDaah4m49uUqAylOVFJJJXuirVJ+o+0T
+tOFDITEAl+YZZariXOD7tdOSOl9RLMPC6+daHKS9e68u3enxhqnDGQIUB78dhW77
+J6zsFbSEHaQGUmfSeoM=
+-----END DSA PRIVATE KEY-----
+-----BEGIN CERTIFICATE REQUEST-----
+MIICVjCCAhMCAQAwUjELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUx
+ITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDELMAkGA1UEAwwCQ0Ew
+ggG2MIIBKwYHKoZIzjgEATCCAR4CgYEApz9uhb9Bail98J9HGTCQmgkd2mozHsU9
+hpazFeBTLo/gWYJzkD51MZlHelL7heTZpns4m2iKhJuHxh61foZLU1tZz3FlGYhu
+zmaua4g2++wo3MLXpbvlLDkmS9qacBiVN5UQViP2Fe26BF7eOU/9t0MftaRlb82A
+EeRwlVtQzUkCFQD3BzHt+mwGA9WFihysnGXnUGZlbwKBgE3fTAOmkYr1GW9QRiWZ
+5WhvMONp4eWzXZi7KIZI/N6ZBD9fiAyccyQNIF25Kpo/GJYn5GKHwXt0YlP8YSeo
+epEJnbbxTZxUD1gG7kl0B85VfiPOFvbK3FphAX7JcbVN9tw0KYdo9l4gk7Pb9eQJ
+bEEXlZLrAbVzpWp+2DLtDgK4A4GEAAKBgBqmWXqKrP1etkWWTYYJVwH4qKHFacfs
+i4e9IvD1hSslqFwEeZum+3j3iUXiALnDdY8z69cmh9u6yTgahAQSxA0wNpqHibj2
+5SoDKU5UUkkle6KtUn6j7RO04UMhMQCX5hllquJc4Pu105I6X1Esw8Lr51ocpL17
+ry7d6fGGqcMZoAAwCwYJYIZIAWUDBAMCAzAAMC0CFCp7rUwGJNtxK6Aqo6k6US+S
+KP8sAhUAyfSi8Zs3QAvkJoFG0IMRaq8M03I=
+-----END CERTIFICATE REQUEST-----
+-----BEGIN CERTIFICATE-----
+MIIDMDCCAuygAwIBAgIBAjALBglghkgBZQMEAwIwUzELMAkGA1UEBhMCQVUxEzAR
+BgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5
+IEx0ZDEMMAoGA1UEAwwDUENBMCAXDTE2MDExMzIxNDE0OVoYDzMwMTUwNTE2MjE0
+MTQ5WjBSMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UE
+CgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMQswCQYDVQQDDAJDQTCCAbYwggEr
+BgcqhkjOOAQBMIIBHgKBgQCnP26Fv0FqKX3wn0cZMJCaCR3aajMexT2GlrMV4FMu
+j+BZgnOQPnUxmUd6UvuF5NmmezibaIqEm4fGHrV+hktTW1nPcWUZiG7OZq5riDb7
+7Cjcwtelu+UsOSZL2ppwGJU3lRBWI/YV7boEXt45T/23Qx+1pGVvzYAR5HCVW1DN
+SQIVAPcHMe36bAYD1YWKHKycZedQZmVvAoGATd9MA6aRivUZb1BGJZnlaG8w42nh
+5bNdmLsohkj83pkEP1+IDJxzJA0gXbkqmj8YlifkYofBe3RiU/xhJ6h6kQmdtvFN
+nFQPWAbuSXQHzlV+I84W9srcWmEBfslxtU323DQph2j2XiCTs9v15AlsQReVkusB
+tXOlan7YMu0OArgDgYQAAoGAGqZZeoqs/V62RZZNhglXAfioocVpx+yLh70i8PWF
+KyWoXAR5m6b7ePeJReIAucN1jzPr1yaH27rJOBqEBBLEDTA2moeJuPblKgMpTlRS
+SSV7oq1SfqPtE7ThQyExAJfmGWWq4lzg+7XTkjpfUSzDwuvnWhykvXuvLt3p8Yap
+wxmjUDBOMB0GA1UdDgQWBBTMZcORcBEVlqO/CD4pf4V6N1NM1zAfBgNVHSMEGDAW
+gBTGjwJ33uvjSa20RNrMKWoGptOLdDAMBgNVHRMEBTADAQH/MAsGCWCGSAFlAwQD
+AgMxADAuAhUA4V6MrHufG8R79E+AtVO02olPxK8CFQDkZyo/TWpavsUBRDJbCeD9
+jgjIkA==
+-----END CERTIFICATE-----
diff --git a/public/openssl/PEM/dsa-pca.pem b/public/openssl/PEM/dsa-pca.pem
new file mode 100644
index 0000000..a51a06e
--- /dev/null
+++ b/public/openssl/PEM/dsa-pca.pem
@@ -0,0 +1,47 @@
+-----BEGIN DSA PRIVATE KEY-----
+MIIBvAIBAAKBgQCnP26Fv0FqKX3wn0cZMJCaCR3aajMexT2GlrMV4FMuj+BZgnOQ
+PnUxmUd6UvuF5NmmezibaIqEm4fGHrV+hktTW1nPcWUZiG7OZq5riDb77Cjcwtel
+u+UsOSZL2ppwGJU3lRBWI/YV7boEXt45T/23Qx+1pGVvzYAR5HCVW1DNSQIVAPcH
+Me36bAYD1YWKHKycZedQZmVvAoGATd9MA6aRivUZb1BGJZnlaG8w42nh5bNdmLso
+hkj83pkEP1+IDJxzJA0gXbkqmj8YlifkYofBe3RiU/xhJ6h6kQmdtvFNnFQPWAbu
+SXQHzlV+I84W9srcWmEBfslxtU323DQph2j2XiCTs9v15AlsQReVkusBtXOlan7Y
+Mu0OArgCgYEApu25HkB1b4gKMIV7aLGNSIknMzYgrB7o1kQxeDf34dDVRM9OZ8tk
+umz6tl+iUcNe5EoxdsYV1IXSddjOi08LOLsZq7AQlNnKvbtlmMDULpqkZJD0bO7A
+29nisJfKy1URqABLw5DgfcPh1ZLXtmDfUgJvmjgTmvTPT2j9TPjq7RUCFQDNvrBz
+6TicfImU7UFRn9h00j0lJQ==
+-----END DSA PRIVATE KEY-----
+-----BEGIN CERTIFICATE REQUEST-----
+MIICWDCCAhUCAQAwUzELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUx
+ITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEMMAoGA1UEAwwDUENB
+MIIBtzCCASsGByqGSM44BAEwggEeAoGBAKc/boW/QWopffCfRxkwkJoJHdpqMx7F
+PYaWsxXgUy6P4FmCc5A+dTGZR3pS+4Xk2aZ7OJtoioSbh8YetX6GS1NbWc9xZRmI
+bs5mrmuINvvsKNzC16W75Sw5JkvamnAYlTeVEFYj9hXtugRe3jlP/bdDH7WkZW/N
+gBHkcJVbUM1JAhUA9wcx7fpsBgPVhYocrJxl51BmZW8CgYBN30wDppGK9RlvUEYl
+meVobzDjaeHls12YuyiGSPzemQQ/X4gMnHMkDSBduSqaPxiWJ+Rih8F7dGJT/GEn
+qHqRCZ228U2cVA9YBu5JdAfOVX4jzhb2ytxaYQF+yXG1TfbcNCmHaPZeIJOz2/Xk
+CWxBF5WS6wG1c6Vqftgy7Q4CuAOBhQACgYEApu25HkB1b4gKMIV7aLGNSIknMzYg
+rB7o1kQxeDf34dDVRM9OZ8tkumz6tl+iUcNe5EoxdsYV1IXSddjOi08LOLsZq7AQ
+lNnKvbtlmMDULpqkZJD0bO7A29nisJfKy1URqABLw5DgfcPh1ZLXtmDfUgJvmjgT
+mvTPT2j9TPjq7RWgADALBglghkgBZQMEAwIDMAAwLQIVAPA6/jxCT1D2HgzE4iZR
+AEup/C7YAhRPLTQvQnAiS5FRrA+8SwBLvDAsaw==
+-----END CERTIFICATE REQUEST-----
+-----BEGIN CERTIFICATE-----
+MIIDMDCCAu6gAwIBAgIBATALBglghkgBZQMEAwIwUzELMAkGA1UEBhMCQVUxEzAR
+BgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5
+IEx0ZDEMMAoGA1UEAwwDUENBMCAXDTE2MDExMzIxNDE0OVoYDzMwMTUwNTE2MjE0
+MTQ5WjBTMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UE
+CgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMQwwCgYDVQQDDANQQ0EwggG3MIIB
+KwYHKoZIzjgEATCCAR4CgYEApz9uhb9Bail98J9HGTCQmgkd2mozHsU9hpazFeBT
+Lo/gWYJzkD51MZlHelL7heTZpns4m2iKhJuHxh61foZLU1tZz3FlGYhuzmaua4g2
+++wo3MLXpbvlLDkmS9qacBiVN5UQViP2Fe26BF7eOU/9t0MftaRlb82AEeRwlVtQ
+zUkCFQD3BzHt+mwGA9WFihysnGXnUGZlbwKBgE3fTAOmkYr1GW9QRiWZ5WhvMONp
+4eWzXZi7KIZI/N6ZBD9fiAyccyQNIF25Kpo/GJYn5GKHwXt0YlP8YSeoepEJnbbx
+TZxUD1gG7kl0B85VfiPOFvbK3FphAX7JcbVN9tw0KYdo9l4gk7Pb9eQJbEEXlZLr
+AbVzpWp+2DLtDgK4A4GFAAKBgQCm7bkeQHVviAowhXtosY1IiSczNiCsHujWRDF4
+N/fh0NVEz05ny2S6bPq2X6JRw17kSjF2xhXUhdJ12M6LTws4uxmrsBCU2cq9u2WY
+wNQumqRkkPRs7sDb2eKwl8rLVRGoAEvDkOB9w+HVkte2YN9SAm+aOBOa9M9PaP1M
++OrtFaNQME4wHQYDVR0OBBYEFMaPAnfe6+NJrbRE2swpagam04t0MB8GA1UdIwQY
+MBaAFMaPAnfe6+NJrbRE2swpagam04t0MAwGA1UdEwQFMAMBAf8wCwYJYIZIAWUD
+BAMCAy8AMCwCFFhdz4fzQo9BBF20U1CHldYTi/D7AhQydDnDMj21y+U1UhDZJrvh
+lnt88g==
+-----END CERTIFICATE-----
diff --git a/public/openssl/PEM/dsa1024.pem b/public/openssl/PEM/dsa1024.pem
new file mode 100644
index 0000000..082dec3
--- /dev/null
+++ b/public/openssl/PEM/dsa1024.pem
@@ -0,0 +1,9 @@
+-----BEGIN DSA PARAMETERS-----
+MIIBHgKBgQCnP26Fv0FqKX3wn0cZMJCaCR3aajMexT2GlrMV4FMuj+BZgnOQPnUx
+mUd6UvuF5NmmezibaIqEm4fGHrV+hktTW1nPcWUZiG7OZq5riDb77Cjcwtelu+Us
+OSZL2ppwGJU3lRBWI/YV7boEXt45T/23Qx+1pGVvzYAR5HCVW1DNSQIVAPcHMe36
+bAYD1YWKHKycZedQZmVvAoGATd9MA6aRivUZb1BGJZnlaG8w42nh5bNdmLsohkj8
+3pkEP1+IDJxzJA0gXbkqmj8YlifkYofBe3RiU/xhJ6h6kQmdtvFNnFQPWAbuSXQH
+zlV+I84W9srcWmEBfslxtU323DQph2j2XiCTs9v15AlsQReVkusBtXOlan7YMu0O
+Arg=
+-----END DSA PARAMETERS-----
diff --git a/public/openssl/PEM/dsa512.pem b/public/openssl/PEM/dsa512.pem
new file mode 100644
index 0000000..5f86d1a
--- /dev/null
+++ b/public/openssl/PEM/dsa512.pem
@@ -0,0 +1,6 @@
+-----BEGIN DSA PARAMETERS-----
+MIGdAkEAnRtpjibb8isRcBmG9hnI+BnyGFOURgbQYlAzSwI8UjADizv5X9EkBk97
+TLqqQJv9luQ3M7stWtdaEUBmonZ9MQIVAPtT71C0QJIxVoZTeuiLIppJ+3GPAkEA
+gz6I5cWJc847bAFJv7PHnwrqRJHlMKrZvltftxDXibeOdPvPKR7rqCxUUbgQ3qDO
+L8wka5B33qJoplISogOdIA==
+-----END DSA PARAMETERS-----
diff --git a/public/openssl/PEM/dsap.pem b/public/openssl/PEM/dsap.pem
new file mode 100644
index 0000000..d4dfdb3
--- /dev/null
+++ b/public/openssl/PEM/dsap.pem
@@ -0,0 +1,6 @@
+-----BEGIN DSA PARAMETERS-----
+MIGcAkEA+ZiKEvZmc9MtnaFZh4NiZ3oZS4J1PHvPrm9MXj5ntVheDPkdmBDTncya
+GAJcMjwsyB/GvLDGd6yGCw/8eF+09wIVAK3VagOxGd/Q4Af5NbxR5FB7CXEjAkA2
+t/q7HgVLi0KeKvcDG8BRl3wuy7bCvpjgtWiJc/tpvcuzeuAayH89UofjAGueKjXD
+ADiRffvSdhrNw5dkqdql
+-----END DSA PARAMETERS-----
diff --git a/public/openssl/PEM/pca-cert.srl b/public/openssl/PEM/pca-cert.srl
new file mode 100644
index 0000000..2c7456e
--- /dev/null
+++ b/public/openssl/PEM/pca-cert.srl
@@ -0,0 +1 @@
+07
diff --git a/public/openssl/PEM/pca-key.pem b/public/openssl/PEM/pca-key.pem
new file mode 100644
index 0000000..c6ad0e9
--- /dev/null
+++ b/public/openssl/PEM/pca-key.pem
@@ -0,0 +1,16 @@
+-----BEGIN PRIVATE KEY-----
+MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALYYjjtpLs/lfkPF
+xAFZ4V3He5mZFbsEakK9bA2fQaryreRwyfhbXbDJHyBV+c4xI5fbmmVd2t/us4k4
+rMhGsBtL89SqCEHhPJpLFywiQVmJTAjANYrWkZK5uR/++YmZyzuLfPHLButuK6cF
+GKXw3NNToxjYooMf0mad2rPX3cKTAgMBAAECgYBvrJ+Nz/Pli9jjt2V9bqHH4Y7r
+o/avuwVv6Ltbn0+mhy4d6w3yQhYzVSTBr/iDe59YglUt1WFl8/4nKZrNOIzHJlav
+Sw4hd3fYBHxbT+DgZMQ9ikjHECWRdDffrnlTLsSJAcxnpMJBPe3dKCRDMUrqWUvB
+IIKaxyqmXJms5Y/wAQJBAPFL9NMKJcWBftMKXCasxsV0ZGjgqHGZODYjtGFN9jJO
+6AbZrxfCcapTWG4RCC2o/EDEMN8aArEhfdrYY3lhXGsCQQDBMRzFevkD7SYXTw5G
+NA/gJOAsFMYbt7tebcCRsHT7t3ymVfO2QwK7ZF0f/SYvi7cMAPraHvO7s3kFdGTB
+kDx5AkAHBICASsFCdzurA5gef9PgFjx9WFtNwnkCChPK6KuKVwUkfdw7wqnvnDDs
+Mo6cVVfQwmPxeR4u7JxuavCprQ01AkEAp5ZGAh1J9Jj9CQ1AMbAp8WOrvzGKJTM9
+641Dll4/LLif/d7j2kDJFuvaSMyeGnKVqGkVMq/U+QeYPR4Z5TuM6QJAWK05qFed
+wYgTZyVN0MY53ZOMAIWwjz0cr24TvDfmsZqIvguGL616GKQZKdKDZQyQHg+dCzqJ
+HgIoacuFDKz5CA==
+-----END PRIVATE KEY-----
diff --git a/public/openssl/PEM/pca-req.pem b/public/openssl/PEM/pca-req.pem
new file mode 100644
index 0000000..5a8c5cb
--- /dev/null
+++ b/public/openssl/PEM/pca-req.pem
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBnDCCAQUCAQAwXDELMAkGA1UEBhMCQVUxEzARBgNVBAgMClF1ZWVuc2xhbmQx
+GjAYBgNVBAoMEUNyeXB0U29mdCBQdHkgTHRkMRwwGgYDVQQDDBNUZXN0IFBDQSAo
+MTAyNCBiaXQpMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2GI47aS7P5X5D
+xcQBWeFdx3uZmRW7BGpCvWwNn0Gq8q3kcMn4W12wyR8gVfnOMSOX25plXdrf7rOJ
+OKzIRrAbS/PUqghB4TyaSxcsIkFZiUwIwDWK1pGSubkf/vmJmcs7i3zxywbrbiun
+BRil8NzTU6MY2KKDH9Jmndqz193CkwIDAQABoAAwDQYJKoZIhvcNAQELBQADgYEA
+eJdCB0nHnFK0hek4biAxX0GuJXkknuUy46NKEhv3GBwt4gtO29bfkbQTGOsBBKNs
+KptlnkItscOXY+0lSva9K3XlwD9do7k2IZFtXJVayZVw1GcKybIY0l7B6kcSxG7T
+f3CsO+ifdrsJKtyoZNs96lBMrtXyGybt3mgQNdZauQU=
+-----END CERTIFICATE REQUEST-----
diff --git a/public/openssl/PEM/privkey.pem b/public/openssl/PEM/privkey.pem
new file mode 100644
index 0000000..02f3498
--- /dev/null
+++ b/public/openssl/PEM/privkey.pem
@@ -0,0 +1,16 @@
+-----BEGIN PRIVATE KEY-----
+MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAMo7DFNMqywUA1O/
+qvWqCOm6rGrUAcR+dKsSXw6y2qiKO7APDDyotc0b4Mxwqjga98npex2RBIwUoCGJ
+iEmMXo/a8RbXVUZ+ZwcAX7PC+XeXVC5qoajaBBkd2MvYmib/2PqnNrgvhHsUL5dO
+xhC7cRqxLM/g45k3Yyw+nGa+WkTdAgMBAAECgYBMBT5w4dVG0I8foGFnz+9hzWab
+Ee9IKjE5TcKmB93ilXQyjrWO5+zPmbc7ou6aAKk9IaPCTY1kCyzW7pho7Xdt+RFq
+TgVXGZZfqtixO7f2/5oqZAkd00eOn9ZrhBpVMu4yXbbDvhDyFe4/oy0HGDjRUhxa
+Lf6ZlBuTherxm4eFkQJBAPBQwRs9UtqaMAQlagA9pV5UsQjV1WT4IxDURMPfXgCd
+ETNkB6pP0SmxQm5xhv9N2HY1UtoWpug9s0OU5IJB15sCQQDXbfbjiujNbuOxCFNw
+68JZaCFVdNovyOWORkpenQLNEjVkmTCS9OayK09ADEYtsdpUGKeF+2EYBNkFr5px
+CajnAkBMYI4PNz1HBuwt1SpMa0tMoMQnV7bbwVV7usskKbC5pzHZUHhzM6z5gEHp
+0iEisT4Ty7zKXZqsgzefSgoaMAzzAkEAoCIaUhtwXzwdPfvNYnOs3J6doJMimECB
++lbfcyLM8TimvadtRt+KGEg/OYGmLNM2UiqdY+duzdbUpvhYGcwvYwJAQvaoi9z2
+CkiwSs/PFrLaNlfLJmXRsUBzmiWYoh6+IQJJorEXz7ewI72ee9RBO4s746cgUFwH
+Ri+qO+HhZFUBqQ==
+-----END PRIVATE KEY-----
diff --git a/public/openssl/PEM/req.pem b/public/openssl/PEM/req.pem
new file mode 100644
index 0000000..5537df6
--- /dev/null
+++ b/public/openssl/PEM/req.pem
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBlzCCAVcCAQAwXjELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUx
+ITAfBgNVBAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEXMBUGA1UEAxMORXJp
+YyB0aGUgWW91bmcwge8wgaYGBSsOAwIMMIGcAkEA+ZiKEvZmc9MtnaFZh4NiZ3oZ
+S4J1PHvPrm9MXj5ntVheDPkdmBDTncyaGAJcMjwsyB/GvLDGd6yGCw/8eF+09wIV
+AK3VagOxGd/Q4Af5NbxR5FB7CXEjAkA2t/q7HgVLi0KeKvcDG8BRl3wuy7bCvpjg
+tWiJc/tpvcuzeuAayH89UofjAGueKjXDADiRffvSdhrNw5dkqdqlA0QAAkEAtUSo
+84OekjitKGVjxLu0HvXck29pu+foad53vPKXAsuJdACj88BPqZ91Y9PIJf1GUh38
+CuiHWi7z3cEDfZCyCKAAMAkGBSsOAwIbBQADLwAwLAIUTg8amKVBE9oqC5B75dDQ
+Chy3LdQCFHKodGEj3LjuTzdm/RTe2KZL9Uzf
+-----END CERTIFICATE REQUEST-----
diff --git a/public/openssl/PEM/rsa8192.pem b/public/openssl/PEM/rsa8192.pem
new file mode 100644
index 0000000..83d962f
--- /dev/null
+++ b/public/openssl/PEM/rsa8192.pem
@@ -0,0 +1,99 @@
+-----BEGIN RSA PRIVATE KEY-----
+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
+-----END RSA PRIVATE KEY-----
diff --git a/public/openssl/PEM/s1024key.pem b/public/openssl/PEM/s1024key.pem
new file mode 100644
index 0000000..19e0403
--- /dev/null
+++ b/public/openssl/PEM/s1024key.pem
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXgIBAAKBgQCzEfU8E+ZGTGtHXV5XhvM2Lg32fXUIjydXb34BGVPX6oN7+aNV
+S9eWayvW/+9/vUb0aCqilJrpFesgItV2T8VhhjOE++XUz46uNpcMU7wHMEAXUufP
+pztpFm8ZEk2tFKvadkSSoN8lb11juvZVkSkPlB65pFhSe4QKSp6J4HrkYwIDAQAB
+AoGBAKy8jvb0Lzby8q11yNLf7+78wCVdYi7ugMHcYA1JVFK8+zb1WfSm44FLQo/0
+dSChAjgz36TTexeLODPYxleJndjVcOMVzsLJjSM8dLpXsTS4FCeMbhw2s2u+xqKY
+bbPWfk+HOTyJjfnkcC5Nbg44eOmruq0gSmBeUXVM5UntlTnxAkEA7TGCA3h7kx5E
+Bl4zl2pc3gPAGt+dyfk5Po9mGJUUXhF5p2zueGmYWW74TmOWB1kzt4QRdYMzFePq
+zfDNXEa1CwJBAMFErdY0xp0UJ13WwBbUTk8rujqQdHtjw0klhpbuKkjxu2hN0wwM
+6p0D9qxF7JHaghqVRI0fAW/EE0OzdHMR9QkCQQDNR26dMFXKsoPu+vItljj/UEGf
+QG7gERiQ4yxaFBPHgdpGo0kT31eh9x9hQGDkxTe0GNG/YSgCRvm8+C3TMcKXAkBD
+dhGn36wkUFCddMSAM4NSJ1VN8/Z0y5HzCmI8dM3VwGtGMUQlxKxwOl30LEQzdS5M
+0SWojNYXiT2gOBfBwtbhAkEAhafl5QEOIgUz+XazS/IlZ8goNKdDVfYgK3mHHjvv
+nY5G+AuGebdNkXJr4KSWxDcN+C2i47zuj4QXA16MAOandA==
+-----END RSA PRIVATE KEY-----
diff --git a/public/openssl/PEM/s1024req.pem b/public/openssl/PEM/s1024req.pem
new file mode 100644
index 0000000..bb75e7e
--- /dev/null
+++ b/public/openssl/PEM/s1024req.pem
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBojCCAQsCAQAwZDELMAkGA1UEBhMCQVUxEzARBgNVBAgTClF1ZWVuc2xhbmQx
+GjAYBgNVBAoTEUNyeXB0U29mdCBQdHkgTHRkMSQwIgYDVQQDExtTZXJ2ZXIgdGVz
+dCBjZXJ0ICgxMDI0IGJpdCkwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALMR
+9TwT5kZMa0ddXleG8zYuDfZ9dQiPJ1dvfgEZU9fqg3v5o1VL15ZrK9b/73+9RvRo
+KqKUmukV6yAi1XZPxWGGM4T75dTPjq42lwxTvAcwQBdS58+nO2kWbxkSTa0Uq9p2
+RJKg3yVvXWO69lWRKQ+UHrmkWFJ7hApKnongeuRjAgMBAAEwDQYJKoZIhvcNAQEE
+BQADgYEAStHlk4pBbwiNeQ2/PKTPPXzITYC8Gn0XMbrU94e/6JIKiO7aArq9Espq
+nrBSvC14dHcNl6NNvnkEKdQ7hAkcACfBbnOXA/oQvMBd4GD78cH3k0jVDoVUEjil
+frLfWlckW6WzpTktt0ZPDdAjJCmKVh0ABHimi7Bo9FC3wIGIe5M=
+-----END CERTIFICATE REQUEST-----
diff --git a/public/openssl/PEM/s512-key.pem b/public/openssl/PEM/s512-key.pem
new file mode 100644
index 0000000..0e3ff2d
--- /dev/null
+++ b/public/openssl/PEM/s512-key.pem
@@ -0,0 +1,9 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIBPAIBAAJBAJ+zw4Qnlf8SMVIPFe9GEcStgOY2Ww/dgNdhjeD8ckUJNP5VZkVD
+TGiXav6ooKXfX3j/7tdkuD8Ey2//Kv7+ue0CAwEAAQJAN6W31vDEP2DjdqhzCDDu
+OA4NACqoiFqyblo7yc2tM4h4xMbC3Yx5UKMN9ZkCtX0gzrz6DyF47bdKcWBzNWCj
+gQIhANEoojVt7hq+SQ6MCN6FTAysGgQf56Q3TYoJMoWvdiXVAiEAw3e3rc+VJpOz
+rHuDo6bgpjUAAXM+v3fcpsfZSNO6V7kCIQCtbVjanpUwvZkMI9by02oUk9taki3b
+PzPfAfNPYAbCJQIhAJXNQDWyqwn/lGmR11cqY2y9nZ1+5w3yHGatLrcDnQHxAiEA
+vnlEGo8K85u+KwIOimM48ZG8oTk7iFdkqLJR1utT3aU=
+-----END RSA PRIVATE KEY-----
diff --git a/public/openssl/PEM/s512-req.pem b/public/openssl/PEM/s512-req.pem
new file mode 100644
index 0000000..ea314be
--- /dev/null
+++ b/public/openssl/PEM/s512-req.pem
@@ -0,0 +1,8 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBGzCBxgIBADBjMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFuZDEa
+MBgGA1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxIzAhBgNVBAMTGlNlcnZlciB0ZXN0
+IGNlcnQgKDUxMiBiaXQpMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJ+zw4Qnlf8S
+MVIPFe9GEcStgOY2Ww/dgNdhjeD8ckUJNP5VZkVDTGiXav6ooKXfX3j/7tdkuD8E
+y2//Kv7+ue0CAwEAATANBgkqhkiG9w0BAQQFAANBAAB+uQi+qwn6qRSHB8EUTvsm
+5TNTHzYDeN39nyIbZNX2s0se3Srn2Bxft5YCwD3moFZ9QoyDHxE0h6qLX5yjD+8=
+-----END CERTIFICATE REQUEST-----
diff --git a/public/openssl/PEM/server.pem b/public/openssl/PEM/server.pem
new file mode 100644
index 0000000..b380759
--- /dev/null
+++ b/public/openssl/PEM/server.pem
@@ -0,0 +1,47 @@
+-----BEGIN CERTIFICATE-----
+MIIDJTCCAg2gAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE2MDExNDIyMjk0NloYDzIxMTYwMTE1MjIyOTQ2WjAZMRcwFQYDVQQD
+DA5zZXJ2ZXIuZXhhbXBsZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+ANVdYGrf/GHuSKqMEUhDpW22Ul2qmEmxYZI1sfw6BCUMbXn/tNXJ6VwcO+Crs7h9
+o95tveDd11q/FEcRQl6mgtBhwX/dE0bmCYUHDvLU/Bpk0gqtIKsga5bwrczEGVNV
+3AEdpLPvirRJU12KBRzx3OFEv8XX4ncZV1yXC3XuiENxD8pswbSyUKd3RmxYDxG/
+8XYkWq45QrdRZynh0FUwbxfkkeqt+CjCQ2+iZKn7nZiSYkg+6w1PgkqK/z9y7pa1
+rqHBmLrvfZB1bf9aUp6r9cB+0IdD24UHBw99OHr90dPuZR3T6jlqhzfuStPgDW71
+cKzCvfFu85KVXqnwoWWVk40CAwEAAaN9MHswHQYDVR0OBBYEFMDnhL/oWSczELBS
+T1FSLwbWwHrNMB8GA1UdIwQYMBaAFHB/Lq6DaFmYBCMqzes+F80k3QFJMAkGA1Ud
+EwQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwGQYDVR0RBBIwEIIOc2VydmVyLmV4
+YW1wbGUwDQYJKoZIhvcNAQELBQADggEBAHvTBEN1ig8RrsT716Ginv4gGNX0LzGI
+RrZ1jO7lm5emuaPNYJpGw0iX5Zdo91qGNXPZaZ75X3S55pQTActq3OPEBOll2pyk
+iyjz+Zp/v5cfRZLlBbFW5gv2R94eibYr4U3fSn4B0yPcl4xH/l/HzJhGDsSDW8qK
+8VIJvmvsPwmL0JMCv+FR59F+NFYZdND/KCXet59WUpF9ICmFCoBEX3EyJXEPwhbi
+X2sdPzJbCjx0HLli8e0HUKNttLQxCsBTRGo6iISLLamwN47mGDa9miBADwGSiz2q
+YeeuLO02zToHhnQ6KbPXOrQAqcL1kngO4g+j/ru+4AZThFkdkGnltvk=
+-----END CERTIFICATE-----
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDVXWBq3/xh7kiq
+jBFIQ6VttlJdqphJsWGSNbH8OgQlDG15/7TVyelcHDvgq7O4faPebb3g3ddavxRH
+EUJepoLQYcF/3RNG5gmFBw7y1PwaZNIKrSCrIGuW8K3MxBlTVdwBHaSz74q0SVNd
+igUc8dzhRL/F1+J3GVdclwt17ohDcQ/KbMG0slCnd0ZsWA8Rv/F2JFquOUK3UWcp
+4dBVMG8X5JHqrfgowkNvomSp+52YkmJIPusNT4JKiv8/cu6Wta6hwZi6732QdW3/
+WlKeq/XAftCHQ9uFBwcPfTh6/dHT7mUd0+o5aoc37krT4A1u9XCswr3xbvOSlV6p
+8KFllZONAgMBAAECggEADLTt7A+A2Vg2jamf0dztejY0e42QWjstI2b9PZc67fXq
+gyx+WYkX07t+uWegYWliG/oPJ9guXiIpE/5sJHToL37S5kmFP2CtynVcJ4wVo4DD
+nY0n9+kLX0bgIuS+2V6wpoRcbbbjXM9NHrH8kfe5ftT4UtEDlLI2qLX6IcDd7p4u
+OYjILChR8GSGTw96yIy2Ws/1Uq9PMw64JoT4RcK5QqnkcPMDFRH1SeLOL+zXP2c4
+nEl9yOy3HauZKxwl/Ry/XK1s3DdjopIAU29ut+hAuMiTb06kzZnumL9NoplKoZtU
+otw/gVcCKhT+Ep+p6i8InLF0XEME8A0qUR0niWebgQKBgQD6vkxR49B8ZZQrzjw4
+XKs1lI9cP7cgPiuWlDHMNjYou3WbOaGrMeScvbB1Ldh9A8pjAhxlw8AaV/xs4qcA
+trmVmSISVMVyc1wSGlJXWi2nUzTNs9OE3vj22SyStihf8UUZtWwX2b5Y4JrYhA/V
++ThGGqHR03oLNLShNLtJc2c7YQKBgQDZ1nkibEyrepexw/fnwkw61IJKq9wRIh1G
+PREakhbe9wU5ie0knuf9razt7awzQiwFmlixmWqsM7UEtLuXNnNPciwdrKhhbvrd
+vD/rkbIEHEPllIhFlDtOzn3hRBWTzWmXFjpou/2LvHTSbVis4IYVZymTp2jb1ZLs
+7VbiG9JTrQKBgQDc6n75g1szzpdehQT/r33U5j/syeJBUSU8NPMu9fB/sLHsgjlT
+SNEf2+y1QSBE/Or6kmiMrIv7advn30W+Vj9qc5HWTsPrk4HiHTjA553jl2alebN5
+lK4LZspjtIQcC8mS3goPdXPEgJdM/gWpwzr2YQ6DfOxBJT2j7n64NyoT4QKBgH7/
+yx+GhCx1DHtXBPDZFhg2TL+78lEK0oZgk9gp06up2CHzh44SFq6O0oLkTcCUk5Ww
+poTkLIy4mJBlzfgahp+KsK2cO46SZS9g0ONFzcMXt33hWpE2Gl2XhUwPpYTF/QlY
+rDTjZK5S8Mi9dzVSsNlJi7PJphiEK2R1+nFYRwcBAoGBANWoIG85jpXAOnq/Kcgx
+Rl3YivR0Ke6r1tFlP58rT7X3EkiboXyQl5vLIFCAwUte6RGrLl1dy3Qyh80B9ySL
+Jx6vj42CK7vgv6A96TuVYhnXTnEI6ZvwAQ2VGaw4BizhjALs/kdSE/og9aSCs3ws
+KQypwAFz0tbHxaNag/bSAN0J
+-----END PRIVATE KEY-----
diff --git a/public/openssl/PEM/server.srl b/public/openssl/PEM/server.srl
new file mode 100644
index 0000000..8a0f05e
--- /dev/null
+++ b/public/openssl/PEM/server.srl
@@ -0,0 +1 @@
+01
diff --git a/public/openssl/PEM/server2.pem b/public/openssl/PEM/server2.pem
new file mode 100644
index 0000000..a3927cf
--- /dev/null
+++ b/public/openssl/PEM/server2.pem
@@ -0,0 +1,52 @@
+subject= C = UK, O = OpenSSL Group, OU = FOR TESTING PURPOSES ONLY, CN = Test Server Cert #2
+issuer= C = UK, O = OpenSSL Group, OU = FOR TESTING PURPOSES ONLY, CN = OpenSSL Test Intermediate CA
+-----BEGIN CERTIFICATE-----
+MIID6jCCAtKgAwIBAgIJALnu1NlVpZ60MA0GCSqGSIb3DQEBBQUAMHAxCzAJBgNV
+BAYTAlVLMRYwFAYDVQQKDA1PcGVuU1NMIEdyb3VwMSIwIAYDVQQLDBlGT1IgVEVT
+VElORyBQVVJQT1NFUyBPTkxZMSUwIwYDVQQDDBxPcGVuU1NMIFRlc3QgSW50ZXJt
+ZWRpYXRlIENBMB4XDTExMTIwODE0MDE0OFoXDTIxMTAxNjE0MDE0OFowZzELMAkG
+A1UEBhMCVUsxFjAUBgNVBAoMDU9wZW5TU0wgR3JvdXAxIjAgBgNVBAsMGUZPUiBU
+RVNUSU5HIFBVUlBPU0VTIE9OTFkxHDAaBgNVBAMME1Rlc3QgU2VydmVyIENlcnQg
+IzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrdi7j9yctG+L4EjBy
+gjPmEqZzOJEQba26MoQGzglU7e5Xf59Rb/hgVQuKAoiZe7/R8rK4zJ4W7iXdXw0L
+qBpyG8B5aGKeI32w+A9TcBApoXXL2CrYQEQjZwUIpLlYBIi2NkJj3nVkq5dgl1gO
+ALiQ+W8jg3kzg5Ec9rimp9r93N8wsSL3awsafurmYCvOf7leHaMP1WJ/zDRGUNHG
+/WtDjXc8ZUG1+6EXU9Jc2Fs+2Omf7fcN0l00AK/wPg8OaNS0rKyGq9JdIT9FRGV1
+bXe/rx58FaE5CItdwCSYhJvF/O95LWQoxJXye5bCFLmvDTEyVq9FMSCptfsmbXjE
+ZGsXAgMBAAGjgY8wgYwwDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCBeAwLAYJ
+YIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1Ud
+DgQWBBR52UaWWTKzZGDH/X4mWNcuqeQVazAfBgNVHSMEGDAWgBQ2w2yI55X+sL3s
+zj49hqshgYfa2jANBgkqhkiG9w0BAQUFAAOCAQEANBW+XYLlHBqVY/31ie+3gRlS
+LPfy4SIqn0t3RJjagT29MXprblBO2cbMO8VGjkQdKGpmMXjxbht2arOOUXRHX4n/
+XTyn/QHEf0bcwIITMReO3DZUPAEw8hSjn9xEOM0IRVOCP+mH5fi74QzzQaZVCyYg
+5VtLKdww/+sc0nCbKl2KWgDluriH0nfVx95qgW3mg9dhXRr0zmf1w2zkBHYpARYL
+Dew6Z8EE4tS3HJu8/qM6meWzNtrfonQ3eiiMxjZBxzV46jchBwa2z9XYhP6AmpPb
+oeTSzcQNbWsxaGYzWo46oLDUZmJOwSBawbS31bZNMCoPIY6ukoesCzFSsUKZww==
+-----END CERTIFICATE-----
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEA63Yu4/cnLRvi+BIwcoIz5hKmcziREG2tujKEBs4JVO3uV3+f
+UW/4YFULigKImXu/0fKyuMyeFu4l3V8NC6gachvAeWhiniN9sPgPU3AQKaF1y9gq
+2EBEI2cFCKS5WASItjZCY951ZKuXYJdYDgC4kPlvI4N5M4ORHPa4pqfa/dzfMLEi
+92sLGn7q5mArzn+5Xh2jD9Vif8w0RlDRxv1rQ413PGVBtfuhF1PSXNhbPtjpn+33
+DdJdNACv8D4PDmjUtKyshqvSXSE/RURldW13v68efBWhOQiLXcAkmISbxfzveS1k
+KMSV8nuWwhS5rw0xMlavRTEgqbX7Jm14xGRrFwIDAQABAoIBAHLsTPihIfLnYIE5
+x4GsQQ5zXeBw5ITDM37ktwHnQDC+rIzyUl1aLD1AZRBoKinXd4lOTqLZ4/NHKx4A
+DYr58mZtWyUmqLOMmQVuHXTZBlp7XtYuXMMNovQwjQlp9LicBeoBU6gQ5PVMtubD
+F4xGF89Sn0cTHW3iMkqTtQ5KcR1j57OcJO0FEb1vPvk2MXI5ZyAatUYE7YacbEzd
+rg02uIwx3FqNSkuSI79uz4hMdV5TPtuhxx9nTwj9aLUhXFeZ0mn2PVgVzEnnMoJb
++znlsZDgzDlJqdaD744YGWh8Z3OEssB35KfzFcdOeO6yH8lmv2Zfznk7pNPT7LTb
+Lae9VgkCgYEA92p1qnAB3NtJtNcaW53i0S5WJgS1hxWKvUDx3lTB9s8X9fHpqL1a
+E94fDfWzp/hax6FefUKIvBOukPLQ6bYjTMiFoOHzVirghAIuIUoMI5VtLhwD1hKs
+Lr7l/dptMgKb1nZHyXoKHRBthsy3K4+udsPi8TzMvYElgEqyQIe/Rk0CgYEA86GL
+8HC6zLszzKERDPBxrboRmoFvVUCTQDhsfj1M8aR3nQ8V5LkdIJc7Wqm/Ggfk9QRf
+rJ8M2WUMlU5CNnCn/KCrKzCNZIReze3fV+HnKdbcXGLvgbHPrhnz8yYehUFG+RGq
+bVyDWRU94T38izy2s5qMYrMJWZEYyXncSPbfcPMCgYAtaXfxcZ+V5xYPQFARMtiX
+5nZfggvDoJuXgx0h3tK/N2HBfcaSdzbaYLG4gTmZggc/jwnl2dl5E++9oSPhUdIG
+3ONSFUbxsOsGr9PBvnKd8WZZyUCXAVRjPBzAzF+whzQNWCZy/5htnz9LN7YDI9s0
+5113Q96cheDZPFydZY0hHQKBgQDVbEhNukM5xCiNcu+f2SaMnLp9EjQ4h5g3IvaP
+5B16daw/Dw8LzcohWboqIxeAsze0GD/D1ZUJAEd0qBjC3g+a9BjefervCjKOzXng
+38mEUm+6EwVjJSQcjSmycEs+Sr/kwr/8i5WYvU32+jk4tFgMoC+o6tQe/Uesf68k
+z/dPVwKBgGbF7Vv1/3SmhlOy+zYyvJ0CrWtKxH9QP6tLIEgEpd8x7YTSuCH94yok
+kToMXYA3sWNPt22GbRDZ+rcp4c7HkDx6I6vpdP9aQEwJTp0EPy0sgWr2XwYmreIQ
+NFmkk8Itn9EY2R9VBaP7GLv5kvwxDdLAnmwGmzVtbmaVdxCaBwUk
+-----END RSA PRIVATE KEY-----
diff --git a/public/openssl/PEM/testCA.pem b/public/openssl/PEM/testCA.pem
new file mode 100644
index 0000000..dcb710a
--- /dev/null
+++ b/public/openssl/PEM/testCA.pem
@@ -0,0 +1,8 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBBzCBsgIBADBNMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFuZDEX
+MBUGA1UEChMOTWluY29tIFB0eSBMdGQxEDAOBgNVBAMTB1RFU1QgQ0EwXDANBgkq
+hkiG9w0BAQEFAANLADBIAkEAzW9brgA8efT2ODB+NrsflJZj3KKqKsm4OrXTRqfL
+VETj1ws/zCXl42XJAxdWQMCP0liKfc9Ut4xi1qCVI7N07wIDAQABoAAwDQYJKoZI
+hvcNAQEEBQADQQBjZZ42Det9Uw0AFwJy4ufUEy5Cv74pxBp5SZnljgHY+Az0Hs2S
+uNkIegr2ITX5azKi9nOkg9ZmsmGG13FIjiC/
+-----END CERTIFICATE REQUEST-----
diff --git a/public/openssl/ReadMe.txt b/public/openssl/ReadMe.txt
deleted file mode 100644
index dd72f75..0000000
--- a/public/openssl/ReadMe.txt
+++ /dev/null
@@ -1,59 +0,0 @@
-=============================================================================
-OpenSSL v1.0.2q Precompiled Binaries for Win32
------------------------------------------------------------------------------
-
- *** Release Information ***
-
-Release Date: Nov 22, 2018
-
-Author: Frederik A. Winkelsdorf (opendec.wordpress.com)
- for the Indy Project (www.indyproject.org)
-
-Requirements: Indy 10.5.5+ (SVN Version or Delphi 2009 and newer)
-
-Dependencies: The libraries have no noteworthy dependencies
-
-Installation: Copy both DLL files into your application directory
-
-Supported OS: Windows 2000 up to Windows 10
-
------------------------------------------------------------------------------
-
- *** Legal Disclaimer ***
-
-THIS SOFTWARE IS PROVIDED BY ITS AUTHOR AND THE INDY PROJECT "AS IS" AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-OpenSSL license terms are provided in the file "OpenSSL License.txt".
-
-PLEASE CHECK IF YOU NEED TO COMPLY WITH EXPORT RESTRICTIONS FOR CRYPTOGRAPHIC
-SOFTWARE AND/OR PATENTS.
-
------------------------------------------------------------------------------
-
- *** Build Information Win32 ***
-
-Built with: Microsoft Visual C++ 2008 Express Edition
- The Netwide Assembler (NASM) v2.11.08 Win32
- Strawberry Perl v5.22.0.1 Win32 Portable
- Windows PowerShell
- FinalBuilder 7
-
-Commands: perl configure VC-WIN32
- ms\do_nasm
- adjusted ms\ntdll.mak (replaced "/MD" with "/MT")
- adjusted ms\version32.rc (Indy Information inserted)
- nmake -f ms\ntdll.mak
- nmake -f ms\ntdll.mak test
- editbin.exe /rebase:base=0x11000000 libeay32.dll
- editbin.exe /rebase:base=0x12000000 ssleay32.dll
-
-=============================================================================
\ No newline at end of file
diff --git a/public/openssl/capi.dll b/public/openssl/capi.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b888ec74647aab3428db59240c387df0c7a1969e
GIT binary patch
literal 72192
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
Lh-lzn)WH7(Uk6I3
literal 0
HcmV?d00001
diff --git a/public/openssl/dasync.dll b/public/openssl/dasync.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ba568b54f0701d67ef1829b7f5f23fcd3195e9c5
GIT binary patch
literal 49152
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\pq;y52n;3%10X(XXQ4Yk*j
z6!bh*Go%IInCfLl!cM)wcSEHIgec7r4ZduFcnlw?*(Pc20nhk2gCBqs|6~xVKourZ
zh2y~_UZYV6luDR+iA1dg{~%CI<|WKpiI`xCR9+%kE5SdA5}kR8RINm8u!Mz|=&Y6C
zA4CZ&FJaM2#05*F@e)?81pgpP^yDSdv=Z^b66w4|Ppt(1AWHP(CDOGL3BeKrc!_>m
z3I0Kp7{p5q&`Pv|_L#qurFqF#y(}*{h~&!I+)7OlvW9+{i}&fxbZL)Mb?{AuEFsjd
zcZP_Klr6tqO&U~7Z-ILIYqaH3-?O{s8?^eBz{@y9S{rwvuEj-9A-UG1!^=|RtXZnl
z3T>dKF0DQqsyqE5na#Jw>!w5!n+AbS7AJ16uziZ{8ha`fMd=bI464joVb
zu`#@FNuEEdww)%Dgc#1`IZm=O^OYWkDPGXPv$)!!;`-=;#}B$Br5%=Zvx3evf6)ZF!h8vdznz
zK6k-_Ilbo1pLt!NJqHMH;9>lPG2_T7kjKjto>tudwK-JVB8R&A7zl8BQ>rlbaSr@o
z{s4!{XDX0%Ayf)U3%V;_8zesQm{Xl{*s0E94$tb9D3#+`gV-2uFIVHHsEeQJh7NkU<5&&ZSITjg8iNw?fQ
z`PT2s&e#h(U+_E!&Wr=m?IZkmC&qzkPV}7V4umx;)2kpq32*1GxLz~s-L%5Dv-L_@Lw&D(?Te1%v5JG2z^~z{DVg5cylo6*
zptD1E`pY_|
zX{9>TKFimL
zPLzzKGo9+}2RbiJT6u>~XL>z46YA61kLnx%Iv>4jHFzu3wqHFuQ8JRw0aWK8(79sh
zJum5W4yZ?GE6_a3tdJ`HJ
zN2u6A{_Wkn9N|P@L}t^;j~8t(yy0%t@tB-Scqrh2?H@KDrvu|WyUu~uy#0kV+=IHY
zn9!4Ib%Fsm+;r>ZoB-6S=nQBtnqS;Mx_jZU5NWNv3b
zd7#|}2~DOd$AZvX%)NK(gyx158rp7yRHjj#6G7#eWP6NG<=Aj4L)&eT%t2J=B#>G7
z*|U3fGAGs}Gth1WWR5aZol`((#g89+uG2ZG9-V=98>G`pbxs4FpKU+XO{a58Jv!0)
zM7s^rIe_Y%1v+=Px~5F0b6Pz*QBvr0kj_M^a}MZS-tJ%D>vYblM`xhj2I;g=oq3@1
z%jBD~bUNqMqchNMgLL+zI$fYMzUJdsbUO3u(HUsBK{`!T=OWN~?D?-x>U6s5(HUsB
zK{`8Aor^)|zL9Ux0r1On=D%Yp>=kn(ouWd>!A2S=T%;v;>95pi=Kzt
zE`}ZOW^KjaPf@EjSUZxb(JX?&Q^d#3MQAcg@lJ-9FUsavd{+
z`osaB{=_RgYZfV$9@%N+|&8gE6ZAnld+
z|2;w{4KbnsX`#)QyA_-^F6PdlZOVwZ5t#rhK^r1Sp|l0sEVs&>Hf|>@pe^s6_ukcM
zLwqTewm^gBjuWSiE3y@|ZNC2xh%j-%jYsq;ls2@vkY1K(>q<(T2GUMk@$45mX$Vb)
zk``#GLDG0j?FrJBrhknNOOS@ZRVZnJW*Q`o8~SvR7Jmui1f(Mn8^T(lqy^e&kTh??vmO%=+QLur+>EmA|Z;(?sNKh!hgMmJRW)WR#HCo}JKuhFSqP6Y`+eue1
zz4CiP15R?VM@`UyMR>#9B(|pZ$XzxCl6|7?s-c8QpKT$XYMVg$phL`!Vry!Z+_7+i
z1%JM5)n9qt8$RjC%2dEBhr$LgrH$D+0Ke8?HVV&f$x(m-
z>jRo6>P9(~=0KYb(#(e*Q$X|1TZ)$IG*8m4aVX7!mK&s*yU5c(^Qik@o~P41B^u3v
z_8X*``*5>BbMC9p(EMzY
zX{1i`oMi=$C5y5O%cj
zA-){X8;mEG9L6mexQi0-Yk~OPqtnjE@6IgLbiUMi4xHye3v(cP{B|5Iw7`st;`s?n
z_YxHEppI&mLA@nT%`vIt5|x3cq@pLWmWP%ndG^Vk9kOSSUF|4)K9KuV4)GS5DXJ=W
zJ78DG$H{#@up9Rxs49CZjeF%j2Znf8T|kjjxmy{&n^3}T-0$CzD0>bVH^_a;hIk)J
zq5!Gf?E`#ILZf3*s6RPs
z{S?v^^`}Oyp8}Vn{?1YBr|_hx-x9Tc3POtdtx@ZzP@||nEo%J~P!#p|j9Nd14MqLw
zQR}DRps2rJ)cPp|DC!>&wSEfpiTVdct)BvUqJGFXjQ>yp&xi8S59DqKNf9VaCo-mH
zwLS;cNe_1k=BY+kK)dX5;JXdtID1au=8pLx&N2?IQ
zGQmr8BY06@OyFg01TPAL3A_e0f)@q61YU`a;6=eLftRHbyeN<*@aoqHUKF$vc$pf(
zivm;vug;C&MZqY6S9&9OQMjo=IeNH}p~w+ww>ln;5VF||3xe>GaWAP9MTbbW)$wRS
zP!(91wq!vzkS0+Oh>ED=q5jYin6MB0ezS2WX%K~as0g=RPz>0X3(0ozIw_zd>V)Bm
ztdqhvqE1+i$T}%FBkDwxkF1kIFrrSh*T_04(8BBNSiedNr-&+HC?l(+poypwRxYwi
z3XO;=VWJ|dqyUH@6ZR#NObT;|I$<0l>!e_Ys1uewvQ7$C@H#qOcHK_=Q1gZzLEM+Np72>AofWQUpjgAY&00b@&QgmEsq%Uyc9FK+zjpqd}(B=Q(hm1Lrw#o&)DO
zaGnF_IdGl>=Q(hm1Lrw#o&)DO&~h9oNy8c)_Su^_=A%codvMPV*!wFj#Tju1I#kAH
z_u6o}%wnuF^0s>uC%q}y{gbYE2fug$P6AN(C>~mjgp8K*_^*(JVureu0y)M|SK&U^
zOIrRPBuMKnS%_~LU(RsH>Z7v68kw6l18(mDY8o${mvZE5)1Go8dq+
zAW)(BYb+e83yxMD-PtYv9c1p-u9S*g;)#C^cTc-l>5Zy=0uOAysFot*7IiZP!WF5M
zwV}}X01A?)EB>!6o~!2}FCE)r^Tbb~M+D8!q&wcTOdP48n#bSu}O8K<>n}eO6!co;m*>#yQHpm61FdMgUc+flVcRO
zKZbby-wa=wqWYs0h8mMXLBrI8w^c!6EU5$~)oX1E8YE9$=d?$WvuG2U5B
zahJugw7=KYxsNT%H+$z|r*T=#45@1o$fEi))%RHu$^)x-@35-cZl%~MXF%eIukpl0
zJk~(p-E2Z_dv{Sb$((5~*Ua{ZQt`j07K|)qSh+x6w=u|Y^9(8^fp>nh^
zY27}xl6@*LY3&_~P0GYqfnp`=BR-gsCtIK>zH4Yk7eQF%89uka%6+`G^tg|s>OTI!
z-Kok{?D%Wf4F~&4>*D048(ax|@}dla2`h}3$ny05C-?DAIy`!RFXUbIdvAEpec0kY
z(McK>MaJ~~PmO$6yzyIrR{#&4Ut|9!^i$ohcvG&xsf7x7GCm1+$h8B~Mz|@hf{jEP
zl13uQq-E4gN%q-DDpX`Qre2A(b7l;IPM$EO`y_I+k5wwLPf
z!sY@!wThrrAUR{pQlIpgU-fI!A~Pr+BiVb}?{Ya{84NhU$#n@`%nr1LZGRgItf*z@!V&c$$oDmkJx(?L))>b03Z!Hr^jx^PHv~wB5Lj_
zN~#;2UMCFh+MV6&>K-uoKe{kuOWUftl%*(7I0y7Al18on`%5@|;{(-d^o#H622=pp
zypFb20W7-)vPXj7rl_(hwDJ~zkFcNm-hE+5+iQ5oWE^m)$8%K7pML99k3(CFXo;><
zZ8x@U4EFVpHYsY#ZT#^!*FH&0k}nxbZ)&_9H$}ZVhu?lP5;wQ+NB6OKY55ZXpsbeF
zhnA+z!Vdn}?RAH8mTt*U%u(AoJ?&1mLEm_HPG+0hIXO!YP$~|ky5uWLy)7s6qT2B}
z=oye2qv@ucjc)TV4!qc^?_POf!eT{btDwLPi5Z{y{<(&J4$e+665lPXy^
zs->KcQ!~JR@P*mv{IM|GWt~E;Og~&;a@mZPKg}>0I?OZ}uEhWK_#cP=JMdpmfzEM)
zZZAIkGid2ijgFTs0WZL~3yI`YZMn5=t51HT@6t_WbVNn_Stg*dYXqo^ej_Tw-n07fV#Iz4egdj5__&~r-w
ziM{s;Bv^YCh9Z!f$dWl$N-{|15oRe#F-zv57AeVQ!FxL1)A4S@yX{*fLG-Kp
zl%-o-(m9RwTd(^kct;RzQsVkg+s_>qWay@ys4Z
zeOVbk*_%7lJA4;YkWE*%5dDk9sPT6+>V4F0>bW@oHLtV!1x@EqklL%D2MHE0(uh)AoOYTv%35bmr`jcK?WdkAfLvEYJg79Dp7*VpCcg^twg~9BHtsJ
zz!70jqP%8w7li9ULq?ZuE}2|>p8_L11@}DM^CYucfI6h4VtzBbsYWTOfNqNFUPCv}
z5`H^fGp&oO-aWehJ-&wXD@^|~!4XaWYytcINnAkxY(TH2>~}{|e<{I)5htgb$0_0#(MYynT}
z?_UNGZ|(pNV`B)gz}P}b$)IXB}hMB#G}040(4*o4#Jj~
znv$r2X(P#h8N($K4l%U9&C_8XXI;P$2;w@qqzB-lb1eeg^#qsQ19;lFyQ^Fxs@g;T
zL%S~Y0ih*|tp)o{;UYA*(<~W)`q*br3+*qrThs6k?b-reQxv>gY>GC|uNa!EgYAqHRzWy7|rR*rX92U^O8|QHCt9Y-1ADB^Z$l^lX!bPmX(i{F+J;{Mh}6AU|xV
z#+$n}8b6*PJe$XlA`K$=(HH1~A9ur$~OhhQdwo1BVj_
z`SI`7EyfSsKE6O8#dvus9_962Q6cQ(VzQ5`MWY2PEH~Hu&&kF{`8vF@L3lBsjv_X{
z2SmB#D&mPZ#Y*;(;IbP5C&TADa)eSW1*CUQYpT=++ePANW&}TmZLerIh4Y33q9Y
zlq9dg`x|(F1Mfb(`|w_c_bR+sME2J9`ciL|$WdK}qX)ZWe@h#~E%KK)x+I<=67>DM3-{dffZu&-AW
z@;d!wPXzrZ0`zP4wWm&hH2Vq|_3Z02kF^vBH2D*}2IwdI3VX}asYNtQzXpNm$D^SPVPC{y!ehmWAk4HiOz)<=z
zIiSh^SS0<`;8;WUQ=>o3e*W>%7NcLcchd-@u%B6Yl-GAd#ju|z;U<;hN1Uh;f_m7`
z{G-jWpUFXZ8}LZ>6F+zb``MFt;!Syh+%JO5Isu-rpJIqgHk6zQOetbM^Q>7?SXVQw
zs~OhT0&8o*dph0`v>R%Jg~hqMEn;DXekD8-)Gv_Mkbk?Kl&GGHg&A?(-oEvFO@
z?Eo(9ZK%B&O7@mB_}w1@`li|2FG)BJ*jpiLYI1lI{%vont3~bYk(B~_RHONGQT^M0
z5}wWD#|s)nw7=0nSJ>ZB`;$TTm-FMb?*shM?C(Q5Kcd-Ru%Vv)y@YCO5snD``0U|G
zenjkHPe+%%={a;e@ddjBTW2**%
z`hPq^zkVy1^hHr!zZQ`F;SB9{nE1#SGGvPJu$GL$Z#5KoP_c7nrS4
zk^4+ro1k|gfzbS&0@M)d@6tQs4a`PJHArti4Fc%>2#<6cJ