Index: doc/v1.html ================================================================== --- doc/v1.html +++ doc/v1.html @@ -102,11 +102,11 @@ This procedure modifies the version variables used by the package
downloader client so that a specific version will be used. The
versionId argument must consist only of hexadecimal characters.



-Public API Procedure "::PackageDownloader::resetCookieAndLoginSimple" (from "pkgd.eagle")
+Public API Procedure "::PackageDownloader::resetCookieAndLoginSimple" (from "pkgd.eagle")

This procedure resets the currently configured login cookie, if
any, and then attempts to login using the configured package
repository server API key -OR- using the public access account.
@@ -113,11 +113,11 @@ Upon success, it will set the login cookie to the one from the
raw response data. Upon failure, a script error will be raised.
There are no arguments.



-Public API Procedure "::PackageDownloader::resetCookieAndLogin" (from "pkgd.eagle")
+Public API Procedure "::PackageDownloader::resetCookieAndLogin" (from "pkgd.eagle")

    Required argument "userName"
    Required argument "password"
@@ -131,19 +131,19 @@ server user with at least Fossil Check-Out (o) permissions on the
package file server. The password argument must be the plaintext
password that is associated with the specified user name.



-Public API Procedure "::PackageDownloader::logoutAndResetCookie" (from "pkgd.eagle")
+Public API Procedure "::PackageDownloader::logoutAndResetCookie" (from "pkgd.eagle")

This procedure attempts to logout using the currently configured
login cookie, if any, and then resets the login cookie. There
are no arguments. This procedure may raise a script error.



-Public API Procedure "::PackageDownloader::checkForHigherVersion" (from "pkgd.eagle")
+Public API Procedure "::PackageDownloader::checkForHigherVersion" (from "pkgd.eagle")

    Required argument "language"
    Required argument "version"
@@ -169,11 +169,11 @@ directory on the package file server and may be an empty string.
The usePgp argument should be non-zero when an OpenPGP signature
file needs to be downloaded and verified for the downloaded file.



-Public API Procedure "::PackageDownloader::downloadFiles" (from "pkgd.eagle")
+Public API Procedure "::PackageDownloader::downloadFiles" (from "pkgd.eagle")

    Required argument "language"
    Required argument "version"
@@ -304,11 +304,11 @@ that will receive a modified platform name, if applicable. Upon
failure, a script error will be raised. The return value is
undefined.



-Internal API Procedure "::PackageDownloader::maybeResetCookieAndLoginSimple" (from "pkgd.eagle")
+Internal API Procedure "::PackageDownloader::maybeResetCookieAndLoginSimple" (from "pkgd.eagle")

This procedure attempts to login using the configured package
repository server API key -OR- using the public access account,
if not already logged in. Upon success, it will set the login
@@ -516,33 +516,36 @@ There are no arguments. The return value is non-zero if it appears
that CLR applications should be runnable locally; otherwise, the
return value is zero.



-Private Procedure "::PackageDownloader::getPackageFile" (from "pkgd.eagle")
+Private Procedure "::PackageDownloader::getPackageFile" (from "pkgd.eagle")

    Required argument "uri"
+ +    Optional argument "allowHtml" with default value "false"

This procedure issues a request to an HTTP(S) server. It returns
the raw response data verbatim. It may raise a script error. It
will always use the currently configured HTTP(S) login cookie, if
any; therefore, it should really only be used for requests to the
package file server. The uri argument is the fully qualified URI
-to request.
+to request. The allowHtml argument should be non-zero if raw HTML
+should be allowed in the response data.



-Private Procedure "::PackageDownloader::getDownloadVarNamePrefix" (from "pkgd.eagle")
+Private Procedure "::PackageDownloader::getDownloadVarNamePrefix" (from "pkgd.eagle")

This procedure returns the prefix for fully qualified variable
names that MAY be present in the global namespace. There are
no arguments.



-Private Procedure "::PackageDownloader::getUniqueTempDirectory" (from "pkgd.eagle")
+Private Procedure "::PackageDownloader::getUniqueTempDirectory" (from "pkgd.eagle")

    Optional argument "prefix" with default value ""

@@ -550,11 +553,53 @@ more files may be saved. The prefix argument is a prefix for the
directory name and it may be an empty string. There is no attempt
to actually create the resulting directory.



-Private Procedure "::PackageDownloader::guessPackageNameFromFileNames" (from "pkgd.eagle")
+Private Procedure "::PackageDownloader::createInterp" (from "pkgd.eagle")
+
+ +    Required argument "varName"
+ +

+This procedure creates a new interpreter, which may be "safe", and
+places a reference to it in a variable in the context of the caller
+identified by the varName argument. The created interpreter has a
+fully functioning [package] command ensemble; all other commands do
+nothing and return nothing. This procedure may raise script errors.
+



+ +Private Procedure "::PackageDownloader::getIfNeededVersions" (from "pkgd.eagle")
+
+ +    Required argument "interp"
+ +    Required argument "fileName"
+ +

+This procedure evaluates a script file and attempts to determine the
+list of new [package ifneeded] scripts added by it. When successful
+it returns a list-of-lists. Each element of the outer list contains
+a package name and the list of its versions in descending order; in
+the event of failure, empty lists may be returned for the outer list
+or for a list of versions. The interp argument is the interp to use
+when evaluating the file specified by the fileName argument. This
+procedure may raise script errors.
+



+ +Private Procedure "::PackageDownloader::extractVersionsFromFile" (from "pkgd.eagle")
+
+ +    Required argument "fileName"
+ +

+This procedure attempts to extract a package version information
+from the specified file. The fileName argument is the local file
+name to read. This procedure may raise script errors.
+



+ +Private Procedure "::PackageDownloader::guessPackageNameFromFileNames" (from "pkgd.eagle")

    Required argument "language"
    Required argument "fileNames"
@@ -567,11 +612,11 @@ must be the list of file names to be downloaded. The package name,
if one can be detected, is returned; otherwise, an empty string will
be returned.



-Private Procedure "::PackageDownloader::downloadAllPlatforms" (from "pkgd.eagle")
+Private Procedure "::PackageDownloader::downloadAllPlatforms" (from "pkgd.eagle")

    Required argument "language"
    Required argument "version"
@@ -595,11 +640,11 @@ The fileNames argument is the list of file names to be downloaded.
The usePgp argument should be non-zero when an OpenPGP signature
needs to be verified for the downloaded file.



-Private Procedure "::PackageDownloader::downloadOneUriToFile" (from "pkgd.eagle")
+Private Procedure "::PackageDownloader::downloadOneUriToFile" (from "pkgd.eagle")

    Required argument "localFileName"
    Required argument "uri"
@@ -615,11 +660,11 @@ The uri argument is the URI to download. The usePgp argument should
be non-zero when the OpenPGP signature file needs to be verified for
the downloaded file. The return value is undefined.



-Private Procedure "::PackageDownloader::downloadOneFile" (from "pkgd.eagle")
+Private Procedure "::PackageDownloader::downloadOneFile" (from "pkgd.eagle")

    Required argument "language"
    Required argument "version"
@@ -687,20 +732,20 @@ This procedure returns the fully qualified name of the directory
where temporary files should be written. The envVarName argument
is an optional extra environment variable to check (first).



-Public API Procedure "::PackageRepository::openPgpMustBeInstalled" (from "pkgr.eagle")
+Public API Procedure "::PackageRepository::openPgpMustBeInstalled" (from "pkgr.eagle")

This procedure attempts to verify that a configured implementation
of OpenPGP is installed locally. There are no arguments. Script
errors are raised if any problems are found. The return value is
undefined.



-Public API Procedure "::PackageRepository::verifyOpenPgpSignature" (from "pkgr.eagle")
+Public API Procedure "::PackageRepository::verifyOpenPgpSignature" (from "pkgr.eagle")

    Required argument "fileName"

@@ -710,11 +755,11 @@ not be raised by this procedure. The fileName argument must be
the fully qualified path and file name of the OpenPGP signature
file to verify.



-Public API Procedure "::PackageRepository::createOpenPgpSignature" (from "pkgr.eagle")
+Public API Procedure "::PackageRepository::createOpenPgpSignature" (from "pkgr.eagle")

    Required argument "fileName"

@@ -723,11 +768,11 @@ signature is created successfully. A script error should not be
raised by this procedure. The fileName argument must be the fully
qualified path and file name of the file to be signed.



-Public API Procedure "::PackageRepository::getUniqueSuffix" (from "pkgr.eagle")
+Public API Procedure "::PackageRepository::getUniqueSuffix" (from "pkgr.eagle")

    Optional argument "paranoia" with default value "1"

@@ -738,11 +783,11 @@ global namespace. The paranoia argument represents the relative
level of paranoia required by the caller; the higher this level,
the more uniqueness is required.



-Public API Procedure "::PackageRepository::useServerId" (from "pkgr.eagle")
+Public API Procedure "::PackageRepository::useServerId" (from "pkgr.eagle")

    Optional argument "serverId" with default value ""

@@ -751,11 +796,11 @@ backend repository servers may be used. The serverId argument
must consist only of alphanumeric characters and it must begin
with a letter.



-Public API Procedure "::PackageRepository::maybeReadSettingsFiles" (from "pkgr.eagle")
+Public API Procedure "::PackageRepository::maybeReadSettingsFiles" (from "pkgr.eagle")

    Required argument "script"

@@ -764,11 +809,11 @@ masked. The script argument must be the fully qualified path
and file name for the primary package repository client script
file.



-Public API Procedure "::PackageRepository::getPackageFromRepository" (from "pkgr.eagle")
+Public API Procedure "::PackageRepository::getPackageFromRepository" (from "pkgr.eagle")

    Required argument "package"
    Required argument "version"
@@ -806,11 +851,11 @@ OpenPGP installation directory was successfully detected and added
to the PATH -OR- detecting and adding it was not necessary because
it already appeared to be available for use.



-Internal API Procedure "::PackageRepository::createHarpyCertificate" (from "pkgr.eagle")
+Internal API Procedure "::PackageRepository::createHarpyCertificate" (from "pkgr.eagle")

    Required argument "fileName"

@@ -821,11 +866,11 @@ fully qualified path and file name of the file to be signed. This
procedure assumes that the Harpy package for Eagle is installed and
ready for use (i.e. it can find a valid license certificate).



-Internal API Procedure "::PackageRepository::importOpenPgpKeyFile" (from "pkgr.eagle")
+Internal API Procedure "::PackageRepository::importOpenPgpKeyFile" (from "pkgr.eagle")

    Required argument "fileName"
    Required argument "varName"
@@ -839,11 +884,11 @@ to import. This procedure is only intended to be used from the
"pkgr_setup.eagle" tool script and may go away in later versions
of this package.



-Internal API Procedure "::PackageRepository::getApiKeys" (from "pkgr.eagle")
+Internal API Procedure "::PackageRepository::getApiKeys" (from "pkgr.eagle")

    Optional argument "prefix" with default value ""
    Optional argument "prefixOnly" with default value "false"
@@ -856,11 +901,11 @@ that are already configured. The prefixOnly argument should be
non-zero to exclude any API keys other than those based on the
prefix specified by the caller.



-Internal API Procedure "::PackageRepository::verifyMetadataLanguage" (from "pkgr.eagle")
+Internal API Procedure "::PackageRepository::verifyMetadataLanguage" (from "pkgr.eagle")

    Required argument "language"

@@ -867,11 +912,11 @@ This procedure verifies the language specified by the caller. The
language argument must be an empty string -OR- the literal string
"Eagle" or "Tcl". This procedure may raise script errors.



-Internal API Procedure "::PackageRepository::verifyServerId" (from "pkgr.eagle")
+Internal API Procedure "::PackageRepository::verifyServerId" (from "pkgr.eagle")

    Required argument "serverId"

@@ -878,19 +923,19 @@ This procedure verifies that the specified value is indeed a valid
server identifier. The serverId argument is the value to verify.
This procedure may raise script errors.



-Internal API Procedure "::PackageRepository::getSubmitBaseUri" (from "pkgr.eagle")
+Internal API Procedure "::PackageRepository::getSubmitBaseUri" (from "pkgr.eagle")

This procedure returns the base URI for the package repository
server endpoint that is used to submit packages. There are no
arguments.



-Internal API Procedure "::PackageRepository::getResponseCodeFromRawData" (from "pkgr.eagle")
+Internal API Procedure "::PackageRepository::getResponseCodeFromRawData" (from "pkgr.eagle")

    Required argument "data"

@@ -897,11 +942,11 @@ This procedure attempts to extract the lookup code from the raw
HTTP response data. The data argument is the raw HTTP response
data. An empty string is returned if no lookup code is available.



-Internal API Procedure "::PackageRepository::getResponseResultFromRawData" (from "pkgr.eagle")
+Internal API Procedure "::PackageRepository::getResponseResultFromRawData" (from "pkgr.eagle")

    Required argument "data"

@@ -908,11 +953,11 @@ This procedure attempts to extract the lookup result from the raw
HTTP response data. The data argument is the raw HTTP response
data. An empty string is returned if no lookup result is available.



-Internal API Procedure "::PackageRepository::isResponseCodeOk" (from "pkgr.eagle")
+Internal API Procedure "::PackageRepository::isResponseCodeOk" (from "pkgr.eagle")

    Required argument "code"

@@ -919,27 +964,27 @@ This procedure returns non-zero if the specified lookup response
code indicates success. The code argument is the extracted HTTP
lookup response code.



-Internal API Procedure "::PackageRepository::makeTclReady" (from "pkgr.eagle")
+Internal API Procedure "::PackageRepository::makeTclReady" (from "pkgr.eagle")

This procedure is designed for Eagle. It attempts to load the
"best" native Tcl library. It may raise any number of script
errors. There are no arguments.



-Internal API Procedure "::PackageRepository::eagleMustBeReady" (from "pkgr.eagle")
+Internal API Procedure "::PackageRepository::eagleMustBeReady" (from "pkgr.eagle")

This procedure, which may only be used from a native Tcl script,
checks if Garuda and Eagle are loaded and ready. If not, a script
error is raised. There are no arguments.



-Internal API Procedure "::PackageRepository::makeEagleReady" (from "pkgr.eagle")
+Internal API Procedure "::PackageRepository::makeEagleReady" (from "pkgr.eagle")

This procedure is designed for native Tcl. It attempts to load
the Garuda package and gain access to Eagle. It may raise any
number of script errors. There are no arguments.
@@ -1024,35 +1069,35 @@ This procedure returns a unique temporary file name. A script
error is raised if this task cannot be accomplished. There are
no arguments.



-Private Procedure "::PackageRepository::getOpenPgpPassphraseFile" (from "pkgr.eagle")
+Private Procedure "::PackageRepository::getOpenPgpPassphraseFile" (from "pkgr.eagle")

This procedure returns the name of the file containing the OpenPGP
passphrase. This procedure is only used when creating an OpenPGP
signature. There are no arguments.



-Private Procedure "::PackageRepository::getLookupVarNamePrefix" (from "pkgr.eagle")
+Private Procedure "::PackageRepository::getLookupVarNamePrefix" (from "pkgr.eagle")

This procedure returns the prefix for fully qualified variable
names that MAY be present in the global namespace. There are
no arguments.



-Private Procedure "::PackageRepository::getLookupBaseUri" (from "pkgr.eagle")
+Private Procedure "::PackageRepository::getLookupBaseUri" (from "pkgr.eagle")

This procedure returns the base URI for the package repository
server endpoint that is used to lookup packages. There are no
arguments.



-Private Procedure "::PackageRepository::getLookupUri" (from "pkgr.eagle")
+Private Procedure "::PackageRepository::getLookupUri" (from "pkgr.eagle")

    Required argument "apiKeys"
    Required argument "package"
@@ -1069,11 +1114,11 @@ looked up -OR- an empty string for any available version. There
are no HTTP requests issued by this procedure; it simply returns
the URI to use.



-Private Procedure "::PackageRepository::getIfNeededVersion" (from "pkgr.eagle")
+Private Procedure "::PackageRepository::getIfNeededVersion" (from "pkgr.eagle")

    Required argument "package"
    Required argument "version"
@@ -1085,11 +1130,11 @@ the name of the package, it cannot be an empty string. The
version argument is the specific version being looked up -OR- an
empty string for any available version.



-Private Procedure "::PackageRepository::packageRequirementToVersion" (from "pkgr.eagle")
+Private Procedure "::PackageRepository::packageRequirementToVersion" (from "pkgr.eagle")

    Required argument "requirement"

@@ -1098,11 +1143,11 @@ returned, if appropriate (i.e. any version should be allowed).
The requirement argument must be a package specification that
conforms to TIP #268.



-Private Procedure "::PackageRepository::getLookupData" (from "pkgr.eagle")
+Private Procedure "::PackageRepository::getLookupData" (from "pkgr.eagle")

    Required argument "apiKeys"
    Required argument "package"
@@ -1119,11 +1164,11 @@ empty string for any available version. This procedure may raise
script errors. All line-endings are normalized to Unix-style;
therefore, all script signatures must assume this.



-Private Procedure "::PackageRepository::isValidPackageName" (from "pkgr.eagle")
+Private Procedure "::PackageRepository::isValidPackageName" (from "pkgr.eagle")

    Required argument "name"
    Optional argument "emptyOk" with default value "false"
@@ -1133,11 +1178,11 @@ valid package name. The emptyOk argument can be non-zero if the
caller wishes to permit an empty string. This procedure is shared
with the server.



-Private Procedure "::PackageRepository::isValidPackageRequirement" (from "pkgr.eagle")
+Private Procedure "::PackageRepository::isValidPackageRequirement" (from "pkgr.eagle")

    Required argument "requirement"
    Required argument "rangeOk"
@@ -1156,11 +1201,11 @@ considered to be valid by the caller. The rangeOk argument should
be non-zero if the version range syntax is allowed; this argument is
ignored for Eagle because it requires TIP #268 support.



-Private Procedure "::PackageRepository::extractAndVerifyLookupMetadata" (from "pkgr.eagle")
+Private Procedure "::PackageRepository::extractAndVerifyLookupMetadata" (from "pkgr.eagle")

    Required argument "result"
    Required argument "varName"
@@ -1174,27 +1219,27 @@ of the immediate caller, that should receive the extracted package
lookup metadata. The caller argument must be an empty string -OR-
the literal string "handler".



-Private Procedure "::PackageRepository::tclMustBeReady" (from "pkgr.eagle")
+Private Procedure "::PackageRepository::tclMustBeReady" (from "pkgr.eagle")

This procedure, which may only be used from an Eagle script, checks
if a native Tcl library is loaded and ready. If not, a script error
is raised. There are no arguments.



-Private Procedure "::PackageRepository::eagleHasSecurity" (from "pkgr.eagle")
+Private Procedure "::PackageRepository::eagleHasSecurity" (from "pkgr.eagle")

This procedure returns non-zero if the current script is being
evaluated in Eagle with signed-only script security enabled.
There are no arguments.



-Private Procedure "::PackageRepository::processLookupMetadata" (from "pkgr.eagle")
+Private Procedure "::PackageRepository::processLookupMetadata" (from "pkgr.eagle")

    Required argument "varName"

@@ -1212,11 +1257,11 @@ is the name of an array variable in the call frame of the
immediate caller, that contains the package lookup metadata. This
procedure may raise script errors.



-Private Procedure "::PackageRepository::isPackagePresent" (from "pkgr.eagle")
+Private Procedure "::PackageRepository::isPackagePresent" (from "pkgr.eagle")

    Required argument "package"
    Required argument "version"
@@ -1227,11 +1272,11 @@ sought, it cannot be an empty string. The version argument must be
a specific version -OR- a package specification that conforms to TIP
#268.



-Private Procedure "::PackageRepository::isPackageAvailable" (from "pkgr.eagle")
+Private Procedure "::PackageRepository::isPackageAvailable" (from "pkgr.eagle")

    Required argument "package"
    Required argument "version"
@@ -1242,11 +1287,11 @@ sought, it cannot be an empty string. The version argument must be
a specific version -OR- a package specification that conforms to TIP
#268.



-Private Procedure "::PackageRepository::canDownloadPackage" (from "pkgr.eagle")
+Private Procedure "::PackageRepository::canDownloadPackage" (from "pkgr.eagle")

    Required argument "package"

@@ -1254,49 +1299,49 @@ downloaded, i.e. because it is not required for the downloading
process itself to be functional, etc. The package argument is
the name of the package to check.



-Private Procedure "::PackageRepository::setupPackageUnknownHandler" (from "pkgr.eagle")
+Private Procedure "::PackageRepository::setupPackageUnknownHandler" (from "pkgr.eagle")

This procedure performs initial setup of the package repository
client, using the current configuration parameters. There are
no arguments. It may load the Garuda package when evaluated in
native Tcl. It may load a native Tcl library when evaluated in
Eagle. It may install the [package unknown] hook.



-Private Procedure "::PackageRepository::isPackageUnknownHandlerHooked" (from "pkgr.eagle")
+Private Procedure "::PackageRepository::isPackageUnknownHandlerHooked" (from "pkgr.eagle")

This procedure returns non-zero if the [package unknown] handler
has already been hooked by the package repository client. There
are no arguments.



-Private Procedure "::PackageRepository::hookPackageUnknownHandler" (from "pkgr.eagle")
+Private Procedure "::PackageRepository::hookPackageUnknownHandler" (from "pkgr.eagle")

This procedure attempts to hook the [package unknown] handler. It
will raise a script error if this has already been done. The old
[package unknown] handler is saved and will be used by the new one
as part of the overall package loading process. There are no
arguments.



-Private Procedure "::PackageRepository::unhookPackageUnknownHandler" (from "pkgr.eagle")
+Private Procedure "::PackageRepository::unhookPackageUnknownHandler" (from "pkgr.eagle")

This procedure attempts to unhook the [package unknown] handler.
It will raise a script error if the [package unknown] handler is
not hooked. The old [package unknown] handler is restored and
the saved [package unknown] handler is cleared. There are no
arguments.



-Private Procedure "::PackageRepository::runSavedPackageUnknownHandler" (from "pkgr.eagle")
+Private Procedure "::PackageRepository::runSavedPackageUnknownHandler" (from "pkgr.eagle")

    Required argument "package"
    Required argument "version"
@@ -1305,11 +1350,11 @@ The procedure runs the saved [package unknown] handler. Any script
errors are raised to the caller. The package and version arguments
are passed in from the current [package unknown] handler verbatim.



-Private Procedure "::PackageRepository::packageUnknownHandler" (from "pkgr.eagle")
+Private Procedure "::PackageRepository::packageUnknownHandler" (from "pkgr.eagle")

    Required argument "package"
    Optional argument "version" with default value ""
@@ -1322,11 +1367,11 @@ that conforms to TIP #268. This version argument must be optional
here, because Eagle does not add a version argument when one is
not explicitly supplied to the [package require] sub-command.



-Private Procedure "::PackageRepository::maybeReadApiKeysFile" (from "pkgr.eagle")
+Private Procedure "::PackageRepository::maybeReadApiKeysFile" (from "pkgr.eagle")

This procedure evaluates a package repository client API keys
script file, if it has been configured -AND- actually exists.
Any script errors raised are not masked. The evaluated script
@@ -1333,11 +1378,11 @@ file should (normally) modify the "::pkgr_api_keys" variable
in order to add API keys for use with the package repository
client.



-Private Procedure "::PackageRepository::setupRepositoryOpenPgpVars" (from "pkgr.eagle")
+Private Procedure "::PackageRepository::setupRepositoryOpenPgpVars" (from "pkgr.eagle")

    Required argument "force"

@@ -1345,11 +1390,11 @@ parameters used to interact with the OpenPGP implementation.
If the force argument is non-zero, any existing values will be
overwritten and set back to their default values.



-Private Procedure "::PackageRepository::setupPackageUnknownVars" (from "pkgr.eagle")
+Private Procedure "::PackageRepository::setupPackageUnknownVars" (from "pkgr.eagle")

    Required argument "force"

Index: doc/v1.html.asc ================================================================== --- doc/v1.html.asc +++ doc/v1.html.asc @@ -1,18 +1,18 @@ -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Eagle Package Repository -iQIcBAABCAAGBQJdwu/jAAoJEFAslq9JXcLZjZUQALbHoBLr356sM6h+gBnbg0vt -ZDzoJXXNN1B5kB/lXMQF3E0UD3h698SXcpv9+G/j+e1Xrkie+iKFRKM2DSinmsO0 -FG3Vdug5V8HHgYBUpdY6N255yZciQ2vU6kk3kNOnrdMqrNFz4Qmew4Udi9ooEu6D -c+YqvHnq4bjU76PelhLFzsVxKZlwsz8FRmQMZudDh6gThS43YDyvBXvo8/s3dU5T -CEPNNZxioOQaJUaeV/br4NwMoZLhJK0/qkLJfTtqiXeLO4+nObTW05ujJmt6Tjg4 -aSv6nZQzYQOxJOfqkzd0gDU2wxaQbSQg1zUEZ+GApk2LCsG7Qdj0WCGvPgHAk6N2 -UahSve5iIdLXTUe0yIU/s4xPTnwtj/MPzn0mmj4NpokSyOcheRvHQbOBnoyM8sZ1 -K8bXXpNHmBM6E5D29x4dZ0+QXIhPERQtfJZLXVfivISUh/BlmY9qzzEyhxuLwROA -qYNVaycO0Fd2LACMtXRMvdfe8zDOgBbHO7WPka1fNPY01cPVAjih2SmnVbCCSy0v -u4kdJBSK5wsKb4zfuru/EhpIxNG29+/PxodAWWYJQbKZeS1OrKukbd7l9luOEarK -issXMU7uMWjH4/jzGj4obPir/84NH75YuuN8OZONlIaaMyyk37aLjmVSbBBSDrIT -zheb6fqVVO+xA8rNBCdU -=h2Cf +iQIcBAABCAAGBQJefmnwAAoJEFAslq9JXcLZB3gP/0zEqRwXUTgNEijRCVDY7rpo +/lasyz4Oksyd1aqUI6jFppt2NTc6Z3SFx3FCNESEBItLHHspeUMux5pme5PeKKCE +m9hLvCAvt33LsQ03MHHnBD3A6ZI+aaVZTYRjUyCxUuxDy4Ma7t7P8pihpnvng3RE +Q4T8ioHJLczJ3ni5SfDfkZjY1sdjTklc7w8azKl1eaDXdfYMbTrELi6KVon5jnh6 +I50UpY3Eb0zoLW5UlXs4MU9eToJ0Ffj5yBqctw/SR8G0prVq1ZasnIW2fHHtnA/Z +G+dtKudcxaoRUirJkrBUOVwe0aVbPaEFdjbeUZW+ko4LUv4QWG4P0Inai+P+wScA +NrM/dFo7stF8zHh1zS2l1EuUcOjUX/JLOvZV/BV/Fg8oBUdDsH2JpirA8flcbOV/ +aSoPIvf47JhXytpIBuMKmHzjqPfiQ8RddbO2VK6FBaFRLGfSN25iqr69kO8XtiuE +GEdcE9yE9pYoV9XPOfuA1Ci9hufNtBWzHXRuY3+ux4ondrpNVONSui4TTDFP67BC +/Fdun2BotIj7lq4lipOyfpFXia2TYcLe44kAuR5RE+PfFj6GzoKWMM83jQscFPFT +v1/nbTj8N9L9/eFiiIC4iiewhkDIcZ4/Wi2CaEmVzjgBV8s00cVayzYoLcKv+fPT +BsSejAX1W2pmq9ixxPPn +=T8DD -----END PGP SIGNATURE-----