From 6b4001526dc0def4cf92cfe2d41e450c2d48ed00 Mon Sep 17 00:00:00 2001 From: themighty1 Date: Wed, 8 Dec 2021 13:00:52 +0300 Subject: [PATCH] update to work with PageSigner v3 --- .gitmodules | 3 + README | 31 + README.md | 93 - package-lock.json | 2156 ++++++++++++++++++++++ package.json | 17 + pagesigner | 1 + pgsg-node.js | 237 +++ src/APIexamples/bfx_README.md | 24 - src/APIexamples/bitfinexAPI.py | 54 - src/auditee/auditor.py | 161 -- src/auditee/notarize.py | 412 ----- src/auditee/oracles.py | 205 -- src/auditee/parse-pgsg.py | 104 -- src/auditee/python/pyasn1-0.1.7.tar.gz | Bin 68120 -> 0 bytes src/auditee/python/requests-2.3.0.tar.gz | Bin 429521 -> 0 bytes src/auditee/python/rsa-3.1.4.tar.gz | Bin 36181 -> 0 bytes src/auditee/python/slowaes/__init__.py | 0 src/auditee/python/slowaes/slowaes.py | 656 ------- src/shared/__init__.py | 2 - src/shared/pubkeys.txt | 209 --- src/shared/tlsn_common.py | 187 -- src/shared/tlsn_ssl.py | 1191 ------------ src/shared/tlsnotary.ini | 22 - 23 files changed, 2445 insertions(+), 3320 deletions(-) create mode 100644 .gitmodules create mode 100644 README delete mode 100644 README.md create mode 100644 package-lock.json create mode 100644 package.json create mode 160000 pagesigner create mode 100755 pgsg-node.js delete mode 100644 src/APIexamples/bfx_README.md delete mode 100644 src/APIexamples/bitfinexAPI.py delete mode 100644 src/auditee/auditor.py delete mode 100644 src/auditee/notarize.py delete mode 100644 src/auditee/oracles.py delete mode 100644 src/auditee/parse-pgsg.py delete mode 100644 src/auditee/python/pyasn1-0.1.7.tar.gz delete mode 100644 src/auditee/python/requests-2.3.0.tar.gz delete mode 100644 src/auditee/python/rsa-3.1.4.tar.gz delete mode 100644 src/auditee/python/slowaes/__init__.py delete mode 100644 src/auditee/python/slowaes/slowaes.py delete mode 100644 src/shared/__init__.py delete mode 100644 src/shared/pubkeys.txt delete mode 100644 src/shared/tlsn_common.py delete mode 100644 src/shared/tlsn_ssl.py delete mode 100644 src/shared/tlsnotary.ini diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..d786571 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "pagesigner"] + path = pagesigner + url = https://github.com/tlsnotary/pagesigner diff --git a/README b/README new file mode 100644 index 0000000..e1de7ff --- /dev/null +++ b/README @@ -0,0 +1,31 @@ +pgsg-node.js allows you to run PageSigner with nodejs >= v.15.0 + +Clone this repo with: +git clone --recurse-submodules https://github.com/tlsnotary/pagesigner-cli +Install dependencies by running inside the pagesigner-cli directory: +npm ci + + +NB! You must supply the file with HTTP headers with --headers path/to/headers +The most basic headers file looks like this: + +GET /r/worldnews/ HTTP/1.1 +Host: www.reddit.com <---first /r/n +<---second /r/n + +As shown above, there are two carriage returns '/r/n/r/n' after the last header's last letter. + + + + +Usage: ./pgsg-node.js [arguments] + +where is one of notarize, verify + +Examples: + +./pgsg-node.js notarize example.com --headers headers.txt +Notarize example.com using HTTP headers from headers.txt + +./pgsg-node.js verify imported.pgsg +Verify a Pagesigner session from imported.pgsg. This will create a session directory with the decrypted cleartext and the copy of the pgsg file. \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index 7e3d6b8..0000000 --- a/README.md +++ /dev/null @@ -1,93 +0,0 @@ -UPDATE November 2021. pagesigner-browserless is not yet available for PageSigner v3. When it becomes available, this repo will be changed accordingly. - -UPDATE October 2020. This repository works only for pre-v2 PageSigner. You will have to set up your own oracle server and modify the values in /src/shared/tlsnotary.ini as well as change the pubkeys in /src/shared/pubkeys.txt. Also the server being notarized must support TLS 1.0 or TLS 1.1. - - - - -# Browserless PageSigner # - -A set of tools to create and use PageSigner format notarization files. - -Three scripts are currently provided: (1) notarize.py (2) auditor.py (3) parse-pgsg.py - -* notarize - generate notarizations of webpages -* auditor - check the validity of a pgsg file and extract the html from it -* parse-pgsg - currently, just extracts the DER certificates from the file for verification. - -More details on each below. - -## 1. notarize.py ## - -Intended to be run as a script. -Use the script notarize.py in src/auditee -Usage: -``` -python notarize.py [-e headers_file] [-a] www.reddit.com/r/all -``` -(no need for https, assumed) - -### Important notes on usage ### - -* HTTP request headers: -e option allows you to specify an **absolute** file path to a file that -contains a set of http headers in json (not including a GET). Request types other than GET have not yet -been implemented. - -* Configure the notary: if necessary, edit the \[Notary\] section of the `src/shared/tlsnotary.ini` config file with -the appropriate server IP and port. Do *not* edit the remaining fields unless you know what you are doing. - -Note that currently the settings are for the main tlsnotarygroup1 pagesigner oracle. This should work fine. -Bear in mind that this oracle server rate currently limits on a per-IP basis; for high frequency runs this may cause notarization to fail. - -* The -a option: this flag allows you to request a check of the oracle status via AWS queries. -If this check completes successfully (note that it will run *twice*: one for the main oracle server, then again for the signing server which holds the notarizing private key). -The recommendation is to use this check periodically, but not for every run. The reason is (a) because the oracle check takes time (a few seconds) -and also to avoid swamping AWS with queries. For example, in a bash script you could configure this option to be applied to 1 out of 10 queries. - -Please see the pagesigner-oracles repo for details on the setup of the oracle server on Amazon AWS. - -* Verifying the certificate: the main disadvantage of operating outside the browser is we can't -directly reuse the browser's certificate store. For now, you can find the file pubkey1 in the -session directory, which prints the pubkey of the certificate used in hex format, and manually compare it -with that reported in your browser for the same website. Note, however, that this is a **RSA** certificate, -so you will have to make sure that you connect to the site (in the browser) with an RSA key-exchange ciphersuite. -A less clunky way of achieving this sanity check is sought. - -## 2. auditor.py ## - -Use this to extract html and examine it, in cases where import into the PageSigner addon is not possible. - -Usage and output: - -``` -python auditor.py myfile.pgsg -Notary pubkey OK -Processing data for server: incapsula.com -Notary signature OK -Commitment hash OK -HTML decryption with correct HMACs OK. -Audit passed! You can read the html at: fullpathtohtml and check the server certificate with the data provided in: fullpathtodomainfile -``` - -If any of the above checks do not pass, the notarization file is **definitely** invalid. -Note that the oracle's pubkey is embedded into the code; if you don't use the tlsnotarygroup1 oracle, you'll have to change it. -To complete the checking, you should compare the contents of the created `domain_data.txt` file with the certificate public key that your browser shows for that domain. - -## 3. parse-pgsg.py ## - -For now this is a bare-bones script that merely outputs the certificates found in the pgsg file (which are the same -certificates that were passed over the wire during the audit) into a series of DER encoded files 0.der, 1.der ... and fullcert.der. -Note that 0.der should be the certificate of the site itself. - -Usage: -``` -python parse-pgsg.py myfile.pgsg -``` - -If you want to check their contents, it can be easily done with openssl: - -``` -openssl x509 -in 0.der -inform der -text -noout -fingerprint -``` - -This will show you cert fingerprints, common name etc, expiration date etc. diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..aeca648 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,2156 @@ +{ + "name": "pagesigner-cli", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "dependencies": { + "@peculiar/webcrypto": "^1.2.3", + "bigint-crypto-utils": "^2.5.3", + "bytestreamjs": "1.0.29", + "cbor-js": "^0.1.0", + "cose-js": "^0.8.2", + "fast-sha256": "^1.3.0", + "libsodium-wrappers-sumo": "^0.7.9", + "node-fetch": "2.6.6", + "pkijs": "^2.2.1", + "simple-js-ec-math": "^2.0.1", + "tweetnacl": "^1.0.3", + "universal-dom-parser": "0.0.3" + } + }, + "node_modules/@cto.af/textdecoder": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/@cto.af/textdecoder/-/textdecoder-0.0.0.tgz", + "integrity": "sha512-sJpx3F5xcVV/9jNYJQtvimo4Vfld/nD3ph+ZWtQzZ03Zo8rJC7QKQTRcIGS13Rcz80DwFNthCWMrd58vpY4ZAQ==", + "engines": { + "node": ">=4.9.1" + } + }, + "node_modules/@peculiar/asn1-schema": { + "version": "2.0.44", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.0.44.tgz", + "integrity": "sha512-uaCnjQ9A9WwQSMuDJcNOCYEPXTahgKbFMvI7eMOMd8lXgx0J1eU7F3BoMsK5PFxa3dVUxjSQbaOjfgGoeHGgoQ==", + "dependencies": { + "@types/asn1js": "^2.0.2", + "asn1js": "^2.1.1", + "pvtsutils": "^1.2.1", + "tslib": "^2.3.0" + } + }, + "node_modules/@peculiar/json-schema": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", + "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@peculiar/webcrypto": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.2.3.tgz", + "integrity": "sha512-q7wDfZy3k/tpnsYB23/MyyDkjn6IdHh8w+xwoVMS5cu6CjVoFzngXDZEOOuSE4zus2yO6ciQhhHxd4XkLpwVnQ==", + "dependencies": { + "@peculiar/asn1-schema": "^2.0.44", + "@peculiar/json-schema": "^1.1.12", + "pvtsutils": "^1.2.1", + "tslib": "^2.3.1", + "webcrypto-core": "^1.4.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/@types/asn1js": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/asn1js/-/asn1js-2.0.2.tgz", + "integrity": "sha512-t4YHCgtD+ERvH0FyxvNlYwJ2ezhqw7t+Ygh4urQ7dJER8i185JPv6oIM3ey5YQmGN6Zp9EMbpohkjZi9t3UxwA==" + }, + "node_modules/abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" + }, + "node_modules/acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", + "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", + "dependencies": { + "acorn": "^6.0.1", + "acorn-walk": "^6.0.1" + } + }, + "node_modules/acorn-walk": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", + "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/aes-cbc-mac": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/aes-cbc-mac/-/aes-cbc-mac-1.0.1.tgz", + "integrity": "sha512-F1U0qNBNyrW82LRdQvYWKOpljZFnJ9LBUGWNCzCBTC3/+Fki77KgDrfJ+rBVlCpcmMT3jDEGhG61RMVeyHAKog==" + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" + }, + "node_modules/array-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=" + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/asn1js": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-2.1.1.tgz", + "integrity": "sha512-t9u0dU0rJN4ML+uxgN6VM2Z4H5jWIYm0w8LsZLzMJaQsgL3IJNbxHgmbWDvJAwspyHpDFuzUaUFh4c05UB4+6g==", + "dependencies": { + "pvutils": "^1.0.17" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/bcrypt-pbkdf/node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "node_modules/bigint-crypto-utils": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/bigint-crypto-utils/-/bigint-crypto-utils-2.5.3.tgz", + "integrity": "sha512-Hp+3Q+Kt18Z0csxGuwxz1axAXxCT8eK/F5MX+bfw8ioB+R0rUZPXG5LeUXKX9j6Ljndwjq4fsTLz94yGmrtmdA==" + }, + "node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + }, + "node_modules/bytestreamjs": { + "version": "1.0.29", + "resolved": "https://registry.npmjs.org/bytestreamjs/-/bytestreamjs-1.0.29.tgz", + "integrity": "sha512-Mri3yqoo9YvdaSvD5OYl4Rdu9zCBJInW/Ez31sdlNY4ikMy//EvTTmidfLcs0e+NBvKVEpPzYvJAesjgMdjnZg==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "node_modules/cbor": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-7.0.6.tgz", + "integrity": "sha512-rgt2RFogHGDLFU5r0kSfyeBc+de55DwYHP73KxKsQxsR5b0CYuQPH6AnJaXByiohpLdjQqj/K0SFcOV+dXdhSA==", + "dependencies": { + "@cto.af/textdecoder": "^0.0.0", + "nofilter": "^2.0.3" + }, + "engines": { + "node": ">=10.18.0" + }, + "peerDependencies": { + "bignumber.js": "^9.0.1" + }, + "peerDependenciesMeta": { + "bignumber.js": { + "optional": true + } + } + }, + "node_modules/cbor-js": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cbor-js/-/cbor-js-0.1.0.tgz", + "integrity": "sha1-yAzmEg84fo+qdDcN/aIdlluPx/k=" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "node_modules/cose-js": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/cose-js/-/cose-js-0.8.2.tgz", + "integrity": "sha512-hqKe6HrOg64bMhrk1wrio4a2KgwGvX6XvhkPmQ3tc/uBLxIGu5OrTkB0ESn86ptXp6o4/jMI1KOBKNcNshNRMQ==", + "dependencies": { + "aes-cbc-mac": "^1.0.1", + "any-promise": "^1.3.0", + "cbor": "^7.0.6", + "elliptic": "^6.4.0", + "node-hkdf-sync": "^1.0.0", + "node-rsa": "^1.1.1" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + }, + "node_modules/cssstyle": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz", + "integrity": "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==", + "dependencies": { + "cssom": "0.3.x" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/data-urls": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", + "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", + "dependencies": { + "abab": "^2.0.0", + "whatwg-mimetype": "^2.2.0", + "whatwg-url": "^7.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/domexception": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", + "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", + "dependencies": { + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "engines": { + "node": "> 0.1.90" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "node_modules/fast-sha256": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-sha256/-/fast-sha256-1.3.0.tgz", + "integrity": "sha512-n11RGP/lrWEFI/bWdygLxhI+pVeo1ZYIVwvvPkW7azl/rOy+F3HYRZ2K5zeE9mmkhQppyv9sQFx0JM9UabnpPQ==" + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "dependencies": { + "whatwg-encoding": "^1.0.1" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "node_modules/jsdom": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-14.1.0.tgz", + "integrity": "sha512-O901mfJSuTdwU2w3Sn+74T+RnDVP+FuV5fH8tcPWyqrseRAb0s5xOtPgCFiPOtLcyK7CLIJwPyD83ZqQWvA5ng==", + "dependencies": { + "abab": "^2.0.0", + "acorn": "^6.0.4", + "acorn-globals": "^4.3.0", + "array-equal": "^1.0.0", + "cssom": "^0.3.4", + "cssstyle": "^1.1.1", + "data-urls": "^1.1.0", + "domexception": "^1.0.1", + "escodegen": "^1.11.0", + "html-encoding-sniffer": "^1.0.2", + "nwsapi": "^2.1.3", + "parse5": "5.1.0", + "pn": "^1.1.0", + "request": "^2.88.0", + "request-promise-native": "^1.0.5", + "saxes": "^3.1.9", + "symbol-tree": "^3.2.2", + "tough-cookie": "^2.5.0", + "w3c-hr-time": "^1.0.1", + "w3c-xmlserializer": "^1.1.2", + "webidl-conversions": "^4.0.2", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^7.0.0", + "ws": "^6.1.2", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/libsodium-sumo": { + "version": "0.7.9", + "resolved": "https://registry.npmjs.org/libsodium-sumo/-/libsodium-sumo-0.7.9.tgz", + "integrity": "sha512-DcfJ57zlSlcmQU4s8KOX78pT0zKx5S9RLi0oyDuoIgm4K95+VNSaOidK/y9lUK4lxft14PtTPjoBy8tmLk1TDQ==" + }, + "node_modules/libsodium-wrappers-sumo": { + "version": "0.7.9", + "resolved": "https://registry.npmjs.org/libsodium-wrappers-sumo/-/libsodium-wrappers-sumo-0.7.9.tgz", + "integrity": "sha512-XLgLkqY973PngrRElbjOH0y7bJKYEfMWVpWPmW5iuhBjO6zXvHYQWtN52MVEeie/h98ZXN1Aw9BE+GzxQVAfLg==", + "dependencies": { + "libsodium-sumo": "^0.7.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + }, + "node_modules/mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "dependencies": { + "mime-db": "1.51.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "node_modules/node-fetch": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", + "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/node-hkdf-sync": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-hkdf-sync/-/node-hkdf-sync-1.0.0.tgz", + "integrity": "sha1-ZX15hkHAA/kQN7aKNZXgW+c22Zo=", + "dependencies": { + "vows": "0.5.13" + }, + "engines": { + "node": ">= 0.6.5" + } + }, + "node_modules/node-rsa": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/node-rsa/-/node-rsa-1.1.1.tgz", + "integrity": "sha512-Jd4cvbJMryN21r5HgxQOpMEqv+ooke/korixNNK3mGqfGJmy0M77WDDzo/05969+OkMy3XW1UuZsSmW9KQm7Fw==", + "dependencies": { + "asn1": "^0.2.4" + } + }, + "node_modules/nofilter": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-2.0.3.tgz", + "integrity": "sha512-FbuXC+lK+GU2+63D1kC1ETiZo+Z7SIi7B+mxKTCH1byrh6WFvfBCN/wpherFz0a0bjGd7EKTst/cz0yLeNngug==", + "dependencies": { + "@cto.af/textdecoder": "^0.0.0" + }, + "engines": { + "node": ">=10.18" + } + }, + "node_modules/nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "engines": { + "node": "*" + } + }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/parse5": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", + "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==" + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "node_modules/pkijs": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/pkijs/-/pkijs-2.2.1.tgz", + "integrity": "sha512-EzMnN5uwMPggjhQap+MeMG7pSc/1zQcc7GxW+NjJ2RLXgyoxpm7CakELlHtLK5KwKdiMpC6FtbYd13MNY88x6g==", + "dependencies": { + "asn1js": "^2.1.1", + "bytestreamjs": "^1.0.29", + "pvutils": "^1.0.17" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", + "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==" + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pvtsutils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.2.1.tgz", + "integrity": "sha512-Q867jEr30lBR2YSFFLZ0/XsEvpweqH6Kj096wmlRAFXrdRGPCNq2iz9B5Tk085EZ+OBZyYAVA5UhPkjSHGrUzQ==", + "dependencies": { + "tslib": "^2.3.1" + } + }, + "node_modules/pvutils": { + "version": "1.0.17", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.0.17.tgz", + "integrity": "sha512-wLHYUQxWaXVQvKnwIDWFVKDJku9XDCvyhhxoq8dc5MFdIlRenyPI9eSfEtcvgHgD7FlvCyGAlWgOzRnZD99GZQ==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request-promise-core": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", + "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", + "dependencies": { + "lodash": "^4.17.19" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/request-promise-native": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", + "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", + "dependencies": { + "request-promise-core": "1.1.4", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/saxes": { + "version": "3.1.11", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz", + "integrity": "sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==", + "dependencies": { + "xmlchars": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/simple-js-ec-math": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/simple-js-ec-math/-/simple-js-ec-math-2.0.1.tgz", + "integrity": "sha512-dtvRYEFWKr2MnIw7yKXmVat1BolRT/Q8iHrz5IMPrtXNZTAmcky/V0li3iabhRWKMBmfnuUZsNgBrl8EEj6+Qg==" + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sshpk/node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "node_modules/stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/universal-dom-parser": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/universal-dom-parser/-/universal-dom-parser-0.0.3.tgz", + "integrity": "sha512-0OUonJDqD4wjA1i7Jtv9uwBEUZFm+4xPSAN1pmS6kv5nl6PVuE/nt00MQSoP2m20aOwgF2LdTv5BBKASdUxbTg==", + "dependencies": { + "jsdom": "^14.0.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/vows": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/vows/-/vows-0.5.13.tgz", + "integrity": "sha1-9v2e6cNtPyC9ZoBFXP+AkMSynN4=", + "dependencies": { + "eyes": ">=0.1.6" + }, + "bin": { + "vows": "bin/vows" + }, + "engines": { + "node": ">=0.2.6" + } + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz", + "integrity": "sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==", + "dependencies": { + "domexception": "^1.0.1", + "webidl-conversions": "^4.0.2", + "xml-name-validator": "^3.0.0" + } + }, + "node_modules/webcrypto-core": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.4.0.tgz", + "integrity": "sha512-HY3Zo0GcRIQUUDnlZ/shGjN+4f7LVMkdJZoGPog+oHhJsJdMz6iM8Za5xZ0t6qg7Fx/JXXz+oBv2J2p982hGTQ==", + "dependencies": { + "@peculiar/asn1-schema": "^2.0.44", + "@peculiar/json-schema": "^1.1.12", + "asn1js": "^2.1.1", + "pvtsutils": "^1.2.0", + "tslib": "^2.3.1" + } + }, + "node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + }, + "node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ws": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", + "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + } + }, + "dependencies": { + "@cto.af/textdecoder": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/@cto.af/textdecoder/-/textdecoder-0.0.0.tgz", + "integrity": "sha512-sJpx3F5xcVV/9jNYJQtvimo4Vfld/nD3ph+ZWtQzZ03Zo8rJC7QKQTRcIGS13Rcz80DwFNthCWMrd58vpY4ZAQ==" + }, + "@peculiar/asn1-schema": { + "version": "2.0.44", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.0.44.tgz", + "integrity": "sha512-uaCnjQ9A9WwQSMuDJcNOCYEPXTahgKbFMvI7eMOMd8lXgx0J1eU7F3BoMsK5PFxa3dVUxjSQbaOjfgGoeHGgoQ==", + "requires": { + "@types/asn1js": "^2.0.2", + "asn1js": "^2.1.1", + "pvtsutils": "^1.2.1", + "tslib": "^2.3.0" + } + }, + "@peculiar/json-schema": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", + "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@peculiar/webcrypto": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.2.3.tgz", + "integrity": "sha512-q7wDfZy3k/tpnsYB23/MyyDkjn6IdHh8w+xwoVMS5cu6CjVoFzngXDZEOOuSE4zus2yO6ciQhhHxd4XkLpwVnQ==", + "requires": { + "@peculiar/asn1-schema": "^2.0.44", + "@peculiar/json-schema": "^1.1.12", + "pvtsutils": "^1.2.1", + "tslib": "^2.3.1", + "webcrypto-core": "^1.4.0" + } + }, + "@types/asn1js": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/asn1js/-/asn1js-2.0.2.tgz", + "integrity": "sha512-t4YHCgtD+ERvH0FyxvNlYwJ2ezhqw7t+Ygh4urQ7dJER8i185JPv6oIM3ey5YQmGN6Zp9EMbpohkjZi9t3UxwA==" + }, + "abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" + }, + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==" + }, + "acorn-globals": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", + "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", + "requires": { + "acorn": "^6.0.1", + "acorn-walk": "^6.0.1" + } + }, + "acorn-walk": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", + "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==" + }, + "aes-cbc-mac": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/aes-cbc-mac/-/aes-cbc-mac-1.0.1.tgz", + "integrity": "sha512-F1U0qNBNyrW82LRdQvYWKOpljZFnJ9LBUGWNCzCBTC3/+Fki77KgDrfJ+rBVlCpcmMT3jDEGhG61RMVeyHAKog==" + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" + }, + "array-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=" + }, + "asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1js": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-2.1.1.tgz", + "integrity": "sha512-t9u0dU0rJN4ML+uxgN6VM2Z4H5jWIYm0w8LsZLzMJaQsgL3IJNbxHgmbWDvJAwspyHpDFuzUaUFh4c05UB4+6g==", + "requires": { + "pvutils": "^1.0.17" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "^0.14.3" + }, + "dependencies": { + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + } + } + }, + "bigint-crypto-utils": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/bigint-crypto-utils/-/bigint-crypto-utils-2.5.3.tgz", + "integrity": "sha512-Hp+3Q+Kt18Z0csxGuwxz1axAXxCT8eK/F5MX+bfw8ioB+R0rUZPXG5LeUXKX9j6Ljndwjq4fsTLz94yGmrtmdA==" + }, + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + }, + "bytestreamjs": { + "version": "1.0.29", + "resolved": "https://registry.npmjs.org/bytestreamjs/-/bytestreamjs-1.0.29.tgz", + "integrity": "sha512-Mri3yqoo9YvdaSvD5OYl4Rdu9zCBJInW/Ez31sdlNY4ikMy//EvTTmidfLcs0e+NBvKVEpPzYvJAesjgMdjnZg==" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "cbor": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-7.0.6.tgz", + "integrity": "sha512-rgt2RFogHGDLFU5r0kSfyeBc+de55DwYHP73KxKsQxsR5b0CYuQPH6AnJaXByiohpLdjQqj/K0SFcOV+dXdhSA==", + "requires": { + "@cto.af/textdecoder": "^0.0.0", + "nofilter": "^2.0.3" + } + }, + "cbor-js": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cbor-js/-/cbor-js-0.1.0.tgz", + "integrity": "sha1-yAzmEg84fo+qdDcN/aIdlluPx/k=" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cose-js": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/cose-js/-/cose-js-0.8.2.tgz", + "integrity": "sha512-hqKe6HrOg64bMhrk1wrio4a2KgwGvX6XvhkPmQ3tc/uBLxIGu5OrTkB0ESn86ptXp6o4/jMI1KOBKNcNshNRMQ==", + "requires": { + "aes-cbc-mac": "^1.0.1", + "any-promise": "^1.3.0", + "cbor": "^7.0.6", + "elliptic": "^6.4.0", + "node-hkdf-sync": "^1.0.0", + "node-rsa": "^1.1.1" + } + }, + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + }, + "cssstyle": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz", + "integrity": "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==", + "requires": { + "cssom": "0.3.x" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-urls": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", + "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", + "requires": { + "abab": "^2.0.0", + "whatwg-mimetype": "^2.2.0", + "whatwg-url": "^7.0.0" + } + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "domexception": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", + "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", + "requires": { + "webidl-conversions": "^4.0.2" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "requires": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "fast-sha256": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-sha256/-/fast-sha256-1.3.0.tgz", + "integrity": "sha512-n11RGP/lrWEFI/bWdygLxhI+pVeo1ZYIVwvvPkW7azl/rOy+F3HYRZ2K5zeE9mmkhQppyv9sQFx0JM9UabnpPQ==" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "html-encoding-sniffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "requires": { + "whatwg-encoding": "^1.0.1" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "jsdom": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-14.1.0.tgz", + "integrity": "sha512-O901mfJSuTdwU2w3Sn+74T+RnDVP+FuV5fH8tcPWyqrseRAb0s5xOtPgCFiPOtLcyK7CLIJwPyD83ZqQWvA5ng==", + "requires": { + "abab": "^2.0.0", + "acorn": "^6.0.4", + "acorn-globals": "^4.3.0", + "array-equal": "^1.0.0", + "cssom": "^0.3.4", + "cssstyle": "^1.1.1", + "data-urls": "^1.1.0", + "domexception": "^1.0.1", + "escodegen": "^1.11.0", + "html-encoding-sniffer": "^1.0.2", + "nwsapi": "^2.1.3", + "parse5": "5.1.0", + "pn": "^1.1.0", + "request": "^2.88.0", + "request-promise-native": "^1.0.5", + "saxes": "^3.1.9", + "symbol-tree": "^3.2.2", + "tough-cookie": "^2.5.0", + "w3c-hr-time": "^1.0.1", + "w3c-xmlserializer": "^1.1.2", + "webidl-conversions": "^4.0.2", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^7.0.0", + "ws": "^6.1.2", + "xml-name-validator": "^3.0.0" + } + }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "libsodium-sumo": { + "version": "0.7.9", + "resolved": "https://registry.npmjs.org/libsodium-sumo/-/libsodium-sumo-0.7.9.tgz", + "integrity": "sha512-DcfJ57zlSlcmQU4s8KOX78pT0zKx5S9RLi0oyDuoIgm4K95+VNSaOidK/y9lUK4lxft14PtTPjoBy8tmLk1TDQ==" + }, + "libsodium-wrappers-sumo": { + "version": "0.7.9", + "resolved": "https://registry.npmjs.org/libsodium-wrappers-sumo/-/libsodium-wrappers-sumo-0.7.9.tgz", + "integrity": "sha512-XLgLkqY973PngrRElbjOH0y7bJKYEfMWVpWPmW5iuhBjO6zXvHYQWtN52MVEeie/h98ZXN1Aw9BE+GzxQVAfLg==", + "requires": { + "libsodium-sumo": "^0.7.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + }, + "mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" + }, + "mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "requires": { + "mime-db": "1.51.0" + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "node-fetch": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", + "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", + "requires": { + "whatwg-url": "^5.0.0" + }, + "dependencies": { + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + } + } + }, + "node-hkdf-sync": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-hkdf-sync/-/node-hkdf-sync-1.0.0.tgz", + "integrity": "sha1-ZX15hkHAA/kQN7aKNZXgW+c22Zo=", + "requires": { + "vows": "0.5.13" + } + }, + "node-rsa": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/node-rsa/-/node-rsa-1.1.1.tgz", + "integrity": "sha512-Jd4cvbJMryN21r5HgxQOpMEqv+ooke/korixNNK3mGqfGJmy0M77WDDzo/05969+OkMy3XW1UuZsSmW9KQm7Fw==", + "requires": { + "asn1": "^0.2.4" + } + }, + "nofilter": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-2.0.3.tgz", + "integrity": "sha512-FbuXC+lK+GU2+63D1kC1ETiZo+Z7SIi7B+mxKTCH1byrh6WFvfBCN/wpherFz0a0bjGd7EKTst/cz0yLeNngug==", + "requires": { + "@cto.af/textdecoder": "^0.0.0" + } + }, + "nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "parse5": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", + "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==" + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "pkijs": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/pkijs/-/pkijs-2.2.1.tgz", + "integrity": "sha512-EzMnN5uwMPggjhQap+MeMG7pSc/1zQcc7GxW+NjJ2RLXgyoxpm7CakELlHtLK5KwKdiMpC6FtbYd13MNY88x6g==", + "requires": { + "asn1js": "^2.1.1", + "bytestreamjs": "^1.0.29", + "pvutils": "^1.0.17" + } + }, + "pn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", + "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==" + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "pvtsutils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.2.1.tgz", + "integrity": "sha512-Q867jEr30lBR2YSFFLZ0/XsEvpweqH6Kj096wmlRAFXrdRGPCNq2iz9B5Tk085EZ+OBZyYAVA5UhPkjSHGrUzQ==", + "requires": { + "tslib": "^2.3.1" + } + }, + "pvutils": { + "version": "1.0.17", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.0.17.tgz", + "integrity": "sha512-wLHYUQxWaXVQvKnwIDWFVKDJku9XDCvyhhxoq8dc5MFdIlRenyPI9eSfEtcvgHgD7FlvCyGAlWgOzRnZD99GZQ==" + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "request-promise-core": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", + "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", + "requires": { + "lodash": "^4.17.19" + } + }, + "request-promise-native": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", + "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", + "requires": { + "request-promise-core": "1.1.4", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "saxes": { + "version": "3.1.11", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz", + "integrity": "sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==", + "requires": { + "xmlchars": "^2.1.1" + } + }, + "simple-js-ec-math": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/simple-js-ec-math/-/simple-js-ec-math-2.0.1.tgz", + "integrity": "sha512-dtvRYEFWKr2MnIw7yKXmVat1BolRT/Q8iHrz5IMPrtXNZTAmcky/V0li3iabhRWKMBmfnuUZsNgBrl8EEj6+Qg==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "dependencies": { + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + } + } + }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "requires": { + "punycode": "^2.1.0" + } + }, + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "universal-dom-parser": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/universal-dom-parser/-/universal-dom-parser-0.0.3.tgz", + "integrity": "sha512-0OUonJDqD4wjA1i7Jtv9uwBEUZFm+4xPSAN1pmS6kv5nl6PVuE/nt00MQSoP2m20aOwgF2LdTv5BBKASdUxbTg==", + "requires": { + "jsdom": "^14.0.0" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vows": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/vows/-/vows-0.5.13.tgz", + "integrity": "sha1-9v2e6cNtPyC9ZoBFXP+AkMSynN4=", + "requires": { + "eyes": ">=0.1.6" + } + }, + "w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "requires": { + "browser-process-hrtime": "^1.0.0" + } + }, + "w3c-xmlserializer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz", + "integrity": "sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==", + "requires": { + "domexception": "^1.0.1", + "webidl-conversions": "^4.0.2", + "xml-name-validator": "^3.0.0" + } + }, + "webcrypto-core": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.4.0.tgz", + "integrity": "sha512-HY3Zo0GcRIQUUDnlZ/shGjN+4f7LVMkdJZoGPog+oHhJsJdMz6iM8Za5xZ0t6qg7Fx/JXXz+oBv2J2p982hGTQ==", + "requires": { + "@peculiar/asn1-schema": "^2.0.44", + "@peculiar/json-schema": "^1.1.12", + "asn1js": "^2.1.1", + "pvtsutils": "^1.2.0", + "tslib": "^2.3.1" + } + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "requires": { + "iconv-lite": "0.4.24" + } + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + }, + "whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + }, + "ws": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", + "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..8c81da1 --- /dev/null +++ b/package.json @@ -0,0 +1,17 @@ +{ + "type": "module", + "dependencies": { + "@peculiar/webcrypto": "^1.2.3", + "bigint-crypto-utils": "^2.5.3", + "bytestreamjs": "1.0.29", + "cbor-js": "^0.1.0", + "cose-js": "^0.8.2", + "fast-sha256": "^1.3.0", + "libsodium-wrappers-sumo": "^0.7.9", + "node-fetch": "2.6.6", + "pkijs": "^2.2.1", + "simple-js-ec-math": "^2.0.1", + "tweetnacl": "^1.0.3", + "universal-dom-parser": "0.0.3" + } +} diff --git a/pagesigner b/pagesigner new file mode 160000 index 0000000..fe6a75e --- /dev/null +++ b/pagesigner @@ -0,0 +1 @@ +Subproject commit fe6a75e41f9b655579132eed6766a6d140c8f965 diff --git a/pgsg-node.js b/pgsg-node.js new file mode 100755 index 0000000..cbe445b --- /dev/null +++ b/pgsg-node.js @@ -0,0 +1,237 @@ +#!/usr/bin/env node + +import {int2ba, ba2int, assert, b64decode, b64encode} from './pagesigner/core/utils.js' +import {parse_certs} from './pagesigner/core/verifychain.js'; +import {verifyNotary, getURLFetcherDoc} from './pagesigner/core/oracles.js'; +import {FirstTimeSetup} from './pagesigner/core/FirstTimeSetup.js'; +import {globals} from './pagesigner/core/globals.js'; + +import * as Path from 'path' +import {fileURLToPath} from 'url' +// __dirname is the directory where we are located +const __dirname = Path.dirname(fileURLToPath(import.meta.url)) +// this workaround allows to require() from ES6 modules, which is not allowed by default +import { createRequire } from 'module' +const require = createRequire(import.meta.url) + +const pkijs = require("pkijs"); +const { Crypto } = require("@peculiar/webcrypto"); +const crypto = new Crypto(); +global.crypto = crypto; +pkijs.setEngine("newEngine", crypto, new pkijs.CryptoEngine({ name: "", crypto: crypto, subtle: crypto.subtle })) + +global.CBOR = require('cbor-js') +import * as COSE from './pagesigner/core/third-party/coseverify.js' +global.COSE = COSE +// replace browser's fetch +import fetch from 'node-fetch' +global.fetch = fetch +const http = require('http'); +// keepAliveAgent tells fetch to reuse the same source port +global.keepAliveAgent = new http.Agent({keepAlive: true}); +// replace browser's DOMParser +import DOMParser from 'universal-dom-parser' +global.DOMParser = DOMParser +const fs = require('fs') +global.fs = fs +global.sodium= require('libsodium-wrappers-sumo'); +global.nacl = require('tweetnacl') +global.ECSimple = require('simple-js-ec-math') +global.bcuNode = require('bigint-crypto-utils') +global.fastsha256 = require('fast-sha256'); + +// this must be imported dynamically after global.bcuNode becomes available +const TLSNotarySession = (await import('./pagesigner/core/TLSNotarySession.js')).TLSNotarySession; +const Main = (await import('./pagesigner/core/Main.js')).Main; + +// always return 0 when browser calls performance.now() +global.performance = {'now':function(){return 0;}}; +// when browser asks for a resource URL, return a full path +global.chrome = {'extension':{'getURL': (url) => Path.join(__dirname, 'pagesigner', url)}} + +// override some methods of Socket +import {Socket} from './pagesigner/core/Socket.js'; +const net = require('net'); +class SocketNode extends Socket{ + constructor(server, port){ + super(server, port) + this.sock = new net.Socket(); + const that = this + this.sock.on('data', function(d) { + that.buffer = Buffer.concat([that.buffer, d]) + }); + } + async connect(){ + await this.sock.connect(this.port, this.name); + setTimeout(function() { + if (! this.wasClosed) this.close(); + }, this.lifeTime); + return 'ready'; + } + async send(d) { + var data = new Buffer.from(d) + this.sock.write(data); + } + async close() { + this.sock.destroy() + } +} +global.SocketNode = SocketNode + +// a drop-in replacement for HTML WebWorker +const { Worker, parentPort } = require('worker_threads'); +class mWorker extends Worker{ + constructor(url){ + super(url) + this.onmessage = function(){} + this.on('message', function(msg){ + this.onmessage(msg) + }) + } +} +global.Worker = mWorker + +// original parseAndAssemble is called with relative paths, we convert them into absolute paths +import './pagesigner/core/twopc/circuits/casmbundle.js' +CASM.parseAndAssembleOld = CASM.parseAndAssemble +CASM.parseAndAssemble = function(file){ + const fullpath = Path.join(__dirname, 'pagesigner', 'core', 'twopc', 'circuits', file) + return CASM.parseAndAssembleOld(fullpath) +} + + +async function createNewSession(host, request, response, date, pgsg, is_imported=false){ + const suffix = is_imported ? "_imported" : "" + const sessDir = Path.join(__dirname, 'saved_sessions', date + "_" + host + suffix) + fs.mkdirSync(sessDir, { recursive: true }); + fs.writeFileSync(Path.join(sessDir, "request"), request) + fs.writeFileSync(Path.join(sessDir, "response"), response) + fs.writeFileSync(Path.join(sessDir, date+".pgsg"), Buffer.from(JSON.stringify(pgsg))) + return sessDir +} + + +function showUsage(){ + console.log("Usage: ./pgsg-node.js [options] \r\n") + console.log("where is one of notarize, verify\r\n") + console.log("Examples:\r\n") + console.log("./pgsg-node.js notarize example.com --headers headers.txt") + console.log("Notarize example.com using HTTP headers from headers.txt\r\n") + console.log("./pgsg-node.js verify imported.pgsg") + console.log("Verify a Pagesigner session from imported.pgsg. This will create a session directory with the decrypted cleartext and a copy of the pgsg file.\r\n") + console.log("\r\n") + process.exit(0) +} + +async function setupNotary(){ + const m = new Main(); + if (globals.useNotaryNoSandbox){ + return await m.queryNotaryNoSandbox(globals.defaultNotaryIP); + } else { + const cacheDir = Path.join(__dirname, 'cache') + const tnPath = Path.join(cacheDir, 'trustedNotary') + if (fs.existsSync(tnPath)) { + // load notary from disk + const obj = JSON.parse(fs.readFileSync(tnPath)) + obj['URLFetcherDoc'] = b64decode(obj['URLFetcherDoc']) + console.log('Using cached notary from ', tnPath) + console.log('Notary IP address: ', obj.IP); + return obj + } else { + // fetch and verify the URLFetcher doc + const URLFetcherDoc = await getURLFetcherDoc(globals.defaultNotaryIP); + const trustedPubkeyPEM = await verifyNotary(URLFetcherDoc); + assert(trustedPubkeyPEM != undefined); + const obj = { + 'IP': globals.defaultNotaryIP, + 'pubkeyPEM': trustedPubkeyPEM, + 'URLFetcherDoc': URLFetcherDoc + }; + // save the notary to disk + const objSave = { + 'IP': obj.IP, + 'pubkeyPEM': obj.pubkeyPEM, + 'URLFetcherDoc': b64encode(obj.URLFetcherDoc) + } + fs.writeFileSync(tnPath, Buffer.from(JSON.stringify(objSave))) + return obj + } + } +} + +async function main (){ + const argv = process.argv + if (argv[2] === 'notarize') { + if (argv.length !== 6 || (argv.length == 6 && argv[4] !== '--headers')){ + showUsage(); + } + + const cacheDir = Path.join(__dirname, 'cache') + if (! fs.existsSync(cacheDir)) {fs.mkdirSync(cacheDir)}; + const psPath = Path.join(cacheDir, 'parsedCircuits') + const gbPath = Path.join(cacheDir, 'gatesBlob') + + let circuits + if (fs.existsSync(psPath)) { + // load cached serialized circuits + circuits = JSON.parse(fs.readFileSync(psPath)) + } else { + // run first time setup + circuits = await new FirstTimeSetup().start(); + for (const [k, v] of Object.entries(circuits)) { + circuits[k]['gatesBlob'] = b64encode(circuits[k]['gatesBlob']) + } + fs.writeFileSync(psPath, Buffer.from(JSON.stringify(circuits))) + } + for (const [k, v] of Object.entries(circuits)) { + circuits[k]['gatesBlob'] = b64decode(circuits[k]['gatesBlob']) + } + + // prepare root store certificates + const rootStorePath = Path.join(__dirname, 'pagesigner', 'core', 'third-party', 'certs.txt') + await parse_certs(fs.readFileSync(rootStorePath).toString()); + + var server = argv[3] + var headersfile = Path.join(__dirname, argv[5]) + var headers = fs.readFileSync(headersfile).toString().replace(/\n/g, '\r\n') + + const m = new Main(); + m.trustedOracle = await setupNotary(); + // start the actual notarization + const session = new TLSNotarySession( + server, 443, headers, m.trustedOracle, globals.sessionOptions, circuits, null); + const obj = await session.start(); + obj['title'] = 'PageSigner notarization file'; + obj['version'] = 6; + if (! globals.useNotaryNoSandbox){ + obj['URLFetcher attestation'] = m.trustedOracle.URLFetcherDoc; + } + const [host, request, response, date] = await m.verifyPgsgV6(obj); + const serializedPgsg = m.serializePgsg(obj); + const sessDir = await createNewSession(host, request, response, date, serializedPgsg) + console.log('Session was saved in ', sessDir) + process.exit(0) + } + + else if (argv[2] === 'verify') { + if (argv.length !== 4){ + showUsage() + } + const pgsgBuf = fs.readFileSync(argv[3]) + const serializedPgsg = JSON.parse(pgsgBuf) + const m = new Main(); + const pgsg = m.deserializePgsg(serializedPgsg); + // prepare root store certificates + const rootStorePath = Path.join(__dirname, 'pagesigner', 'core', 'third-party', 'certs.txt') + await parse_certs(fs.readFileSync(rootStorePath).toString()); + const [host, request, response, date] = await m.verifyPgsgV6(pgsg); + const sessDir = await createNewSession(host, request, response, date, serializedPgsg, true) + console.log('The imported session was verified and saved in ', sessDir) + process.exit(0) + } + + else { + showUsage() + } +} +main() \ No newline at end of file diff --git a/src/APIexamples/bfx_README.md b/src/APIexamples/bfx_README.md deleted file mode 100644 index 2f975de..0000000 --- a/src/APIexamples/bfx_README.md +++ /dev/null @@ -1,24 +0,0 @@ -HOW TO USE: -=========== - -First, you need an API key and API secret from Bitfinex, -available on the website. These are alphanumeric strings. -Write them as the first two lines in a file anywhere on disk. -Then, run the script as: - - python bitfinexAPI.py absolute-path-to-APIkeyfile absolute-path-to-new-headers-file - -where the first argument is the full path for the API key file you created earlier, -and the second argument is a new file location in which the headers can be stored -(it can be anywhere, but make sure it's the **absolute** path). - -For now, the script will record a proof of the balance of the account owner, which -can be found in `src/auditee/sessions//commit/html-1`. The data is seen -at the bottom of the file in json. - -This script is designed so it can be called from a shell script or similar, perhaps -at regular intervals. Usage is up to your imagination. - -Notes -===== -Still primitive. See the TODOs in the Python script, and read the API docs on bitfinex.com. \ No newline at end of file diff --git a/src/APIexamples/bitfinexAPI.py b/src/APIexamples/bitfinexAPI.py deleted file mode 100644 index a271d0c..0000000 --- a/src/APIexamples/bitfinexAPI.py +++ /dev/null @@ -1,54 +0,0 @@ -from __future__ import print_function -import requests -import json -import base64 -import hashlib -import time -import hmac -import sys -from subprocess import check_output -def build_headers(header_file, bfx_data): - - payloadObject = { - 'request':bfx_data['call'], - #nonce must be strictly increasing - 'nonce':str(long(time.time()*1000000)), - 'options':{} - } - payload_json = json.dumps(payloadObject) - payload = base64.b64encode(payload_json) - m = hmac.new(bfx_data['secret'], payload, hashlib.sha384) - m = m.hexdigest() - headers = { - 'X-BFX-APIKEY' : bfx_data['key'], - 'X-BFX-PAYLOAD' : payload, - 'X-BFX-SIGNATURE' : m - } - with open(header_file,'wb') as f: - f.write(json.dumps(headers)) - - -def run_pagesigner(header_file, bfx_data): - url = bfx_data['url']+bfx_data['call'] - #TODO tidy up file paths - r = check_output(['python','../auditee/notarize.py','-e',header_file,url]) - #TODO flag success/failure - print ("PageSigner notarization output: \n", r) - -if __name__ == "__main__": - bitfinexURLroot = 'api.bitfinex.com' - #TODO: the first obvious extension is to - #add other API queries other than balance - bitfinexURLAPIcall = '/v1/balances' - if len(sys.argv) != 3: - print ("wrong args, see bfx_README.md") - exit(1) - #TODO use optparse or similar, make input more flexible, including file paths - #and other options - with open(sys.argv[1],'rb') as f: - bitfinexKey = f.readline().rstrip() - bitfinexSecret = f.readline().rstrip() - bfx_data = {'url': bitfinexURLroot, 'call': bitfinexURLAPIcall, - 'key':bitfinexKey, 'secret': bitfinexSecret} - build_headers(sys.argv[2], bfx_data) - run_pagesigner(sys.argv[2], bfx_data) \ No newline at end of file diff --git a/src/auditee/auditor.py b/src/auditee/auditor.py deleted file mode 100644 index 0df588a..0000000 --- a/src/auditee/auditor.py +++ /dev/null @@ -1,161 +0,0 @@ -#!/usr/bin/env python -from __future__ import print_function - -from base64 import b64decode, b64encode -from hashlib import md5, sha1, sha256 -from os.path import join -from oracles import oracle_modulus -import binascii, hmac, os, platform, tarfile -import random, re, sys, time, zipfile - -#file system setup. -data_dir = os.path.dirname(os.path.realpath(__file__)) -sys.path.append(os.path.dirname(data_dir)) -install_dir = os.path.dirname(os.path.dirname(data_dir)) -sessions_dir = join(data_dir, 'sessions') -time_str = time.strftime('%d-%b-%Y-%H-%M-%S', time.gmtime()) -current_session_dir = join(sessions_dir, time_str) -os.makedirs(current_session_dir) - -global_tlsver = bytearray('\x03\x02') -global_use_gzip = True -global_use_slowaes = False -global_use_paillier = False -oracle_ba_modulus = None -oracle_int_modulus = None - -def extract_audit_data(audit_filename): - audit_data = {} - with open(audit_filename,'rb') as f: - header = f.read(29) - if header != 'tlsnotary notarization file\n\n': - raise Exception("Invalid file format") - version = f.read(2) - if version != '\x00\x02': - raise Exception("Incompatible file version") - audit_data['cipher_suite'] = shared.ba2int(f.read(2)) - audit_data['client_random'] = f.read(32) - audit_data['server_random'] = f.read(32) - audit_data['pms1'] = f.read(24) - audit_data['pms2'] = f.read(24) - audit_data['certs_len'] = shared.ba2int(f.read(3)) - audit_data['certs'] = f.read(audit_data['certs_len']) - audit_data['tlsver'] = f.read(2) - audit_data['initial_tlsver'] = f.read(2) - response_len = shared.ba2int(f.read(8)) - audit_data['response'] = f.read(response_len) - IV_len = shared.ba2int(f.read(2)) - if IV_len not in [258,16]: - print ("IV length was: ", IV_len) - raise Exception("Wrong IV format in audit file") - audit_data['IV'] = f.read(IV_len) - audit_data['oracle_modulus_len'] = f.read(2) #TODO can check this - audit_data['signature'] = f.read(len(oracle_ba_modulus)) - audit_data['commit_hash'] = f.read(32) - audit_data['oracle_modulus'] = f.read(512) - if audit_data['oracle_modulus'] != oracle_ba_modulus: - print ("file mod was: ", binascii.hexlify(audit_data['oracle_modulus'])) - print ("actual was: ", binascii.hexlify(oracle_ba_modulus)) - raise Exception("Unrecognized oracle") - audit_data['audit_time'] = f.read(4) - return audit_data - -#unpack and check validity of Python modules -def first_run_check(modname,modhash): - if not modhash: return - mod_dir = join(data_dir, 'python', modname) - if not os.path.exists(mod_dir): - print ('Extracting '+modname + '.tar.gz...') - with open(join(data_dir, 'python', modname+'.tar.gz'), 'rb') as f: tarfile_data = f.read() - if md5(tarfile_data).hexdigest() != modhash: - raise Exception ('Wrong hash') - os.chdir(join(data_dir, 'python')) - tar = tarfile.open(join(data_dir, 'python', modname+'.tar.gz'), 'r:gz') - tar.extractall() - tar.close() - -if __name__ == "__main__": - audit_filename = sys.argv[1] - #for md5 hash, see https://pypi.python.org/pypi// - modules_to_load = {'rsa-3.1.4':'b6b1c80e1931d4eba8538fd5d4de1355',\ - 'pyasn1-0.1.7':'2cbd80fcd4c7b1c82180d3d76fee18c8',\ - 'slowaes':'','requests-2.3.0':'7449ffdc8ec9ac37bbcd286003c80f00'} - for x,h in modules_to_load.iteritems(): - first_run_check(x,h) - sys.path.append(join(data_dir, 'python', x)) - - import rsa - import pyasn1 - import requests - from pyasn1.type import univ - from pyasn1.codec.der import encoder, decoder - from slowaes import AESModeOfOperation - import shared - oracle_ba_modulus = bytearray('').join(map(chr,oracle_modulus)) - oracle_int_modulus = shared.ba2int(oracle_ba_modulus) - - shared.load_program_config() - - if int(shared.config.get("General","gzip_disabled")) == 1: - global_use_gzip = False - - audit_data = extract_audit_data(audit_filename) - #1. Verify notary pubkey - done in extract_audit_data - print ('Notary pubkey OK') - #2. Verify signature - #First, extract the cert in DER form from the notarization file - #Then, extract from the cert the modulus and server name (common name field) - #To do this, we need to initialise the TLSNClientSession - audit_session = shared.TLSNClientSession(ccs=audit_data['cipher_suite'],tlsver=audit_data['initial_tlsver']) - first_cert_len = shared.ba2int(audit_data['certs'][:3]) - server_mod, server_exp = audit_session.extract_mod_and_exp(certDER=audit_data['certs'][3:3+first_cert_len], sn=True) - print ('Processing data for server: ', audit_session.server_name) - data_to_be_verified = audit_data['commit_hash'] + audit_data['pms2'] + shared.bi2ba(server_mod) + audit_data['audit_time'] - data_to_be_verified = sha256(data_to_be_verified).digest() - if not shared.verify_signature(data_to_be_verified, audit_data['signature'],oracle_int_modulus): - print ('Audit FAILED. Signature is not verified.') - exit() - print ('Notary signature OK') - #3. Verify commitment hash. - if not sha256(audit_data['response']).digest() == audit_data['commit_hash']: - print ('Audit FAILED. Commitment hash does not match encrypted server response.') - exit() - print ('Commitment hash OK') - #4 Decrypt html and check for mac errors. - audit_session.unexpected_server_app_data_count = shared.ba2int(audit_data['response'][0]) - audit_session.tlsver = audit_data['tlsver'] - audit_session.client_random = audit_data['client_random'] - audit_session.server_random = audit_data['server_random'] - audit_session.pms1 = audit_data['pms1'] - audit_session.pms2 = audit_data['pms2'] - audit_session.p_auditee = shared.tls_10_prf('master secret'+audit_session.client_random+audit_session.server_random, - first_half=audit_session.pms1)[0] - audit_session.p_auditor = shared.tls_10_prf('master secret'+audit_session.client_random+audit_session.server_random, - second_half=audit_session.pms2)[1] - audit_session.set_master_secret_half() - audit_session.do_key_expansion() - audit_session.store_server_app_data_records(audit_data['response'][1:]) - audit_session.IV_after_finished = (map(ord,audit_data['IV'][:256]),ord(audit_data['IV'][256]), \ - ord(audit_data['IV'][257])) if audit_data['cipher_suite'] in [4,5] else audit_data['IV'] - plaintext, bad_mac = audit_session.process_server_app_data_records(is_for_auditor=True) - if bad_mac: - print ('Audit FAILED. Decrypted data has bad HMACs.') - print ('HTML decryption with correct HMACs OK.') - plaintext = shared.dechunk_http(plaintext) - plaintext = shared.gunzip_http(plaintext) - #5 Display html + success. - with open(join(current_session_dir,'audited.html'),'wb') as f: - f.write(plaintext) - #print out the info about the domain - n_hexlified = binascii.hexlify(shared.bi2ba(server_mod)) - #pubkey in the format 09 56 23 .... - n_write = " ".join(n_hexlified[i:i+2] for i in range(0, len(n_hexlified), 2)) - with open(join(current_session_dir,'domain_data.txt'), 'wb') as f: - f.write('Server name: '+audit_session.server_name + '\n\n'+'Server pubkey:' + '\n\n' + n_write+'\n') - - print ("Audit passed! You can read the html at: ", - join(current_session_dir,'audited.html'), - 'and check the server certificate with the data provided in ', - join(current_session_dir,'domain_data.txt')) - - diff --git a/src/auditee/notarize.py b/src/auditee/notarize.py deleted file mode 100644 index e3b9893..0000000 --- a/src/auditee/notarize.py +++ /dev/null @@ -1,412 +0,0 @@ -#!/usr/bin/env python -from __future__ import print_function - -from base64 import b64decode, b64encode -from hashlib import md5, sha1, sha256 -from os.path import join -import binascii, hmac, os, platform, tarfile -import Queue, random, re, shutil, signal, sys, time -import SimpleHTTPServer, socket, threading, zipfile -import string, json -from optparse import OptionParser -from oracles import check_oracle, oracle, oracle_modulus -try: import wingdbstub -except: pass - -#file system setup. -data_dir = os.path.dirname(os.path.realpath(__file__)) -sys.path.append(os.path.dirname(data_dir)) -install_dir = os.path.dirname(os.path.dirname(data_dir)) -sessions_dir = join(data_dir, 'sessions') -time_str = time.strftime('%d-%b-%Y-%H-%M-%S', time.gmtime()) -current_session_dir = join(sessions_dir, time_str) -os.makedirs(current_session_dir) - -#Globals -audit_no = 0 #we may be auditing multiple URLs. This var keeps track of how many -#successful audits there were so far and is used to index html files audited. -#Default values from the config file. Will be overridden after configfile is parsed -global_tlsver = bytearray('\x03\x02') -global_use_gzip = True -global_use_slowaes = False -global_use_paillier = False -random_uid = '' - -def probe_server_modulus(server): - probe_session = shared.TLSNClientSession(server, tlsver=global_tlsver) - print ('ssl port is: ', probe_session.ssl_port) - tls_sock = shared.create_sock(probe_session.server_name,probe_session.ssl_port) - probe_session.start_handshake(tls_sock) - server_mod, server_exp = probe_session.extract_mod_and_exp() - tls_sock.close() - return shared.bi2ba(server_mod) - - -def start_audit(server_name, headers, server_modulus): - global global_tlsver - global global_use_gzip - global global_use_slowaes - tlsn_session = shared.TLSNClientSession(server_name, tlsver=global_tlsver) - tlsn_session.server_modulus = shared.ba2int(server_modulus) - tlsn_session.server_mod_length = shared.bi2ba(len(server_modulus)) - print ('Preparing encrypted pre-master secret') - prepare_pms(tlsn_session) - - for i in range(10): - try: - print ('Performing handshake with server') - tls_sock = shared.create_sock(tlsn_session.server_name,tlsn_session.ssl_port) - tlsn_session.start_handshake(tls_sock) - retval = negotiate_crippled_secrets(tlsn_session, tls_sock) - if not retval == 'success': - raise shared.TLSNSSLError('Failed to negotiate secrets: '+retval) - #TODO: cert checking; how to do it for browserless mode? - #======================================================== - #before sending any data to server compare this connection's cert to the - #one which FF already validated earlier - #if sha256(tlsn_session.server_certificate.asn1cert).hexdigest() != certhash: - # raise Exception('Certificate mismatch') - #======================================================== - print ('Getting data from server') - response = make_tlsn_request(headers,tlsn_session,tls_sock) - #prefix response with number of to-be-ignored records, - #note: more than 256 unexpected records will cause a failure of audit. Just as well! - response = shared.bi2ba(tlsn_session.unexpected_server_app_data_count,fixed=1) + response - break - except shared.TLSNSSLError: - shared.ssl_dump(tlsn_session) - raise - except Exception as e: - print ('Exception caught while getting data from server, retrying...', e) - if i == 9: - raise Exception('Notarization failed') - continue - - global audit_no - audit_no += 1 #we want to increase only after server responded with data - sf = str(audit_no) - - commit_hash, pms2, signature, audit_time = commit_session(tlsn_session, response,sf) - with open(join(current_session_dir,'sigfile'+sf),'wb') as f: - f.write(signature) - with open(join(current_session_dir,'commit_hash_pms2_servermod'+sf),'wb') as f: - f.write(commit_hash+pms2+shared.bi2ba(tlsn_session.server_modulus)) - - msg = sha256(commit_hash+pms2+shared.bi2ba(tlsn_session.server_modulus)+audit_time).digest() - oracle_ba_modulus = bytearray('').join(map(chr,oracle_modulus)) - oracle_int_modulus = shared.ba2int(oracle_ba_modulus) - if not shared.verify_signature(msg, signature, oracle_int_modulus): - raise Exception("Notarization FAILED, notary signature invalid.") - - print ('Verified OK') - audit_data = 'tlsnotary notarization file\n\n' - audit_data += '\x00\x02' #2 version bytes - audit_data += shared.bi2ba(tlsn_session.chosen_cipher_suite,fixed=2) # 2 bytes - audit_data += tlsn_session.client_random + tlsn_session.server_random # 64 bytes - audit_data += tlsn_session.pms1 + pms2 #48 bytes - audit_data += shared.bi2ba(len(tlsn_session.server_certificate.certs),fixed=3) - audit_data += tlsn_session.server_certificate.certs - audit_data += tlsn_session.tlsver #2 bytes - audit_data += tlsn_session.initial_tlsver #2 bytes - audit_data += shared.bi2ba(len(response),fixed=8) #8 bytes - audit_data += response #note that it includes unexpected pre-request app data, 10s of kB - IV = tlsn_session.IV_after_finished if tlsn_session.chosen_cipher_suite in [47,53] \ - else shared.rc4_state_to_bytearray(tlsn_session.IV_after_finished) - audit_data += shared.bi2ba(len(IV),fixed=2) #2 bytes - audit_data += IV #16 bytes or 258 bytes for RC4. - audit_data += shared.bi2ba(len(oracle_ba_modulus),fixed=2) - audit_data += signature #512 bytes RSA PKCS 1 v1.5 padding - audit_data += commit_hash #32 bytes sha256 hash - audit_data += oracle_ba_modulus - audit_data += audit_time - - with open(join(current_session_dir,sf+".pgsg"),"wb") as f: - f.write(audit_data) - - #for later verification, write out the server modulus in hex - #(e.g. to be compared against what's in browser) - n_hexlified = binascii.hexlify(shared.bi2ba(tlsn_session.server_modulus)) - #pubkey in the format 09 56 23 .... - n_write = " ".join(n_hexlified[i:i+2] for i in range(0, len(n_hexlified), 2)) - with open(join(current_session_dir,'pubkey'+sf), 'wb') as f: f.write(n_write) - - print ("\n\n NOTARIZATION SUCCEEDED. \n ", - "You can pass the file(s) " , join(current_session_dir, "1.pgsg"), - " to an auditor for verification, or import into the PageSigner extension.") - - rv = decrypt_html(pms2, tlsn_session, sf) - html_paths = b64encode(rv[1]) - return True - -#Because there is a 1 in ? chance that the encrypted PMS will contain zero bytes in its -#padding, we first try the encrypted PMS with a reliable site and see if it gets rejected. -def prepare_pms(tlsn_session): - n = shared.bi2ba(tlsn_session.server_modulus) - rs_choice = random.choice(shared.reliable_sites.keys()) - for i in range(10): #keep trying until reliable site check succeeds - try: - pms_session = shared.TLSNClientSession(rs_choice,shared.reliable_sites[rs_choice][0], ccs=53, tlsver=global_tlsver) - if not pms_session: - raise Exception("Client session construction failed in prepare_pms") - tls_sock = shared.create_sock(pms_session.server_name,pms_session.ssl_port) - pms_session.start_handshake(tls_sock) - reply = send_and_recv('rcr_rsr_rsname_n', - pms_session.client_random+pms_session.server_random+rs_choice[:5]+n) - if reply[0] != 'success': - raise Exception ('Failed to receive a reply for rcr_rsr_rsname_n:') - if not reply[1]=='rrsapms_rhmac_rsapms': - raise Exception ('bad reply. Expected rrsapms_rhmac_rsapms:') - reply_data = reply[2] - rrsapms2 = reply_data[:256] - pms_session.p_auditor = reply_data[256:304] - rsapms2 = reply_data[304:] - response = pms_session.complete_handshake(tls_sock,rrsapms2) - tls_sock.close() - if not response: - print ("PMS trial failed") - continue - #judge success/fail based on whether a properly encoded - #Change Cipher Spec record is returned by the server (we could - #also check the server finished, but it isn't necessary) - if not response.count(shared.TLSRecord(shared.chcis,f='\x01', tlsver=global_tlsver).serialized): - print ("PMS trial failed, retrying. (",binascii.hexlify(response),")") - continue - tlsn_session.auditee_secret = pms_session.auditee_secret - tlsn_session.auditee_padding_secret = pms_session.auditee_padding_secret - tlsn_session.enc_second_half_pms = shared.ba2int(rsapms2) - tlsn_session.set_enc_first_half_pms() - tlsn_session.set_encrypted_pms() - return - except shared.TLSNSSLError: - shared.ssl_dump(pms_session,fn='preparepms_ssldump') - shared.ssl_dump(tlsn_session) - raise - #except Exception,e: - # print ('Exception caught in prepare_pms, retrying...', e) - # continue - raise Exception ('Could not prepare PMS with ', rs_choice, ' after 10 tries. Please '+\ - 'double check that you are using a valid public key modulus for this site; '+\ - 'it may have expired.') - -def send_and_recv (cmd, dat,timeout=5): - headers = {'Request':cmd,"Data":b64encode(dat),"UID":random_uid} - url = 'http://'+shared.config.get("Notary","server_name")+":"+shared.config.get("Notary","server_port") - r = requests.head(url,headers=headers) - r_response_headers = r.headers #case insensitive dict - received_cmd, received_dat = (r_response_headers['response'],r_response_headers['data']) - return ('success', received_cmd, b64decode(received_dat)) - -#reconstruct correct http headers -#for passing to TLSNotary custom ssl session -#TODO not yet implemented in browserless mode; should -#add standard headers, esp. gzip according to prefs -def parse_headers(headers): - header_lines = headers.split('\r\n') #no new line issues; it was constructed like that - server = header_lines[1].split(':')[1].strip() - if not global_use_gzip: - modified_headers = '\r\n'.join([x for x in header_lines if 'gzip' not in x]) - else: - modified_headers = '\r\n'.join(header_lines) - return (server,modified_headers) - - -def negotiate_crippled_secrets(tlsn_session, tls_sock): - '''Negotiate with auditor in order to create valid session keys - (except server mac is garbage as auditor withholds it)''' - assert tlsn_session.handshake_hash_md5 - assert tlsn_session.handshake_hash_sha - tlsn_session.set_auditee_secret() - cs_cr_sr_hmacms_verifymd5sha = chr(tlsn_session.chosen_cipher_suite) + tlsn_session.client_random + \ - tlsn_session.server_random + tlsn_session.p_auditee[:24] + tlsn_session.handshake_hash_md5 + \ - tlsn_session.handshake_hash_sha - reply = send_and_recv('cs_cr_sr_hmacms_verifymd5sha',cs_cr_sr_hmacms_verifymd5sha) - if reply[0] != 'success': - raise Exception ('Failed to receive a reply for cs_cr_sr_hmacms_verifymd5sha:') - if not reply[1]=='hmacms_hmacek_hmacverify': - raise Exception ('bad reply. Expected hmacms_hmacek_hmacverify but got', reply[1]) - reply_data = reply[2] - expanded_key_len = shared.tlsn_cipher_suites[tlsn_session.chosen_cipher_suite][-1] - if len(reply_data) != 24+expanded_key_len+12: - raise Exception('unexpected reply length in negotiate_crippled_secrets') - hmacms = reply_data[:24] - hmacek = reply_data[24:24 + expanded_key_len] - hmacverify = reply_data[24 + expanded_key_len:24 + expanded_key_len+12] - tlsn_session.set_master_secret_half(half=2,provided_p_value = hmacms) - tlsn_session.p_master_secret_auditor = hmacek - tlsn_session.do_key_expansion() - tlsn_session.send_client_finished(tls_sock,provided_p_value=hmacverify) - sha_digest2,md5_digest2 = tlsn_session.set_handshake_hashes(server=True) - reply = send_and_recv('verify_md5sha2',md5_digest2+sha_digest2) - if reply[0] != 'success': - raise Exception("Failed to receive a reply for verify_md5sha2") - if not reply[1]=='verify_hmac2': - raise Exception("bad reply. Expected verify_hmac2:") - if not tlsn_session.check_server_ccs_finished(provided_p_value = reply[2]): - raise Exception ("Could not finish handshake with server successfully. Audit aborted") - return 'success' - -def make_tlsn_request(headers,tlsn_session,tls_sock): - '''Send TLS request including http headers and receive server response.''' - try: - tlsn_session.build_request(tls_sock,headers) - response = shared.recv_socket(tls_sock) #not handshake flag means we wait on timeout - if not response: - raise Exception ("Received no response to request, cannot continue audit.") - tlsn_session.store_server_app_data_records(response) - except shared.TLSNSSLError: - shared.ssl_dump(tlsn_session) - raise - - tls_sock.close() - #we return the full record set, not only the response to our request - return tlsn_session.unexpected_server_app_data_raw + response - -def commit_session(tlsn_session,response,sf): - '''Commit the encrypted server response and other data to auditor''' - commit_dir = join(current_session_dir, 'commit') - if not os.path.exists(commit_dir): os.makedirs(commit_dir) - #Serialization of RC4 'IV' requires concatenating the box,x,y elements of the RC4 state tuple - IV = shared.rc4_state_to_bytearray(tlsn_session.IV_after_finished) \ - if tlsn_session.chosen_cipher_suite in [4,5] else tlsn_session.IV_after_finished - stuff_to_be_committed = {'response':response,'IV':IV, - 'cs':str(tlsn_session.chosen_cipher_suite), - 'pms_ee':tlsn_session.pms1,'domain':tlsn_session.server_name, - 'certificate.der':tlsn_session.server_certificate.asn1cert, - 'origtlsver':tlsn_session.initial_tlsver, 'tlsver':tlsn_session.tlsver} - for k,v in stuff_to_be_committed.iteritems(): - with open(join(commit_dir,k+sf),'wb') as f: f.write(v) - commit_hash = sha256(response).digest() - reply = send_and_recv('commit_hash',commit_hash) - #TODO: changed response from webserver - if reply[0] != 'success': - raise Exception ('Failed to receive a reply') - if not reply[1]=='pms2': - raise Exception ('bad reply. Expected pms2') - return (commit_hash, reply[2][:24], reply[2][24:536], reply[2][536:540] ) - - -def decrypt_html(pms2, tlsn_session,sf): - '''Receive correct server mac key and then decrypt server response (html), - (includes authentication of response). Submit resulting html for browser - for display (optionally render by stripping http headers).''' - print ("\nStarting decryption of content, may take a few seconds...") - try: - tlsn_session.auditor_secret = pms2[:tlsn_session.n_auditor_entropy] - tlsn_session.set_auditor_secret() - tlsn_session.set_master_secret_half() #without arguments sets the whole MS - tlsn_session.do_key_expansion() #also resets encryption connection state - except shared.TLSNSSLError: - shared.ssl_dump(tlsn_session) - raise - #either using slowAES or a RC4 ciphersuite - try: - plaintext,bad_mac = tlsn_session.process_server_app_data_records() - except shared.TLSNSSLError: - shared.ssl_dump(tlsn_session) - raise - if bad_mac: - raise Exception("ERROR! Audit not valid! Plaintext is not authenticated.") - return decrypt_html_stage2(plaintext, tlsn_session, sf) - - -def decrypt_html_stage2(plaintext, tlsn_session, sf): - plaintext = shared.dechunk_http(plaintext) - if global_use_gzip: - plaintext = shared.gunzip_http(plaintext) - #write a session dump for checking even in case of success - with open(join(current_session_dir,'session_dump'+sf),'wb') as f: f.write(tlsn_session.dump()) - commit_dir = join(current_session_dir, 'commit') - html_path = join(commit_dir,'html-'+sf) - with open(html_path,'wb') as f: f.write('\xef\xbb\xbf'+plaintext) #see "Byte order mark" - if not int(shared.config.get("General","prevent_render")): - html_path = join(commit_dir,'forbrowser-'+sf+'.html') - with open(html_path,'wb') as f: - f.write('\r\n\r\n'.join(plaintext.split('\r\n\r\n')[1:])) - print ("Decryption complete.") - return ('success',html_path) - -def get_headers(hpath): - #assumed in json format - with open(hpath,'rb') as f: - json_headers = json.loads(f.read()) - print (json_headers) - headers_as_string = '' - for h in json_headers: - headers_as_string += bytearray(h,'utf-8') +':'+bytearray(json_headers[h],'utf-8')+' \r\n' - return headers_as_string - -#unpack and check validity of Python modules -def first_run_check(modname,modhash): - if not modhash: return - mod_dir = join(data_dir, 'python', modname) - if not os.path.exists(mod_dir): - print ('Extracting '+modname + '.tar.gz...') - with open(join(data_dir, 'python', modname+'.tar.gz'), 'rb') as f: tarfile_data = f.read() - if md5(tarfile_data).hexdigest() != modhash: - raise Exception ('Wrong hash') - os.chdir(join(data_dir, 'python')) - tar = tarfile.open(join(data_dir, 'python', modname+'.tar.gz'), 'r:gz') - tar.extractall() - tar.close() - -if __name__ == "__main__": - #for md5 hash, see https://pypi.python.org/pypi// - modules_to_load = {'rsa-3.1.4':'b6b1c80e1931d4eba8538fd5d4de1355',\ - 'pyasn1-0.1.7':'2cbd80fcd4c7b1c82180d3d76fee18c8',\ - 'slowaes':'','requests-2.3.0':'7449ffdc8ec9ac37bbcd286003c80f00'} - for x,h in modules_to_load.iteritems(): - first_run_check(x,h) - sys.path.append(join(data_dir, 'python', x)) - - import rsa - import pyasn1 - import requests - from pyasn1.type import univ - from pyasn1.codec.der import encoder, decoder - from slowaes import AESModeOfOperation - import shared - shared.load_program_config() - shared.import_reliable_sites(join(install_dir,'src','shared')) - random_uid = ''.join(random.choice(string.ascii_lowercase+string.digits) for x in range(10)) - #override default config values - if int(shared.config.get("General","tls_11")) == 0: - global_tlsver = bytearray('\x03\x01') - if int(shared.config.get("General","decrypt_with_slowaes")) == 1: - global_use_slowaes = True - if int(shared.config.get("General","gzip_disabled")) == 1: - global_use_gzip = False - if int(shared.config.get("General","use_paillier_scheme")) == 1: - global_use_paillier = True - - parser = OptionParser(usage='usage: %prog [options] url', - description='Automated notarization of the response to an https' - + ' request made to the url \'url\' , with https:// omitted.' - ) - parser.add_option('-e', '--header-file', action="store", type="string", dest='header_path', - help='if specified, the path to the file containing the HTTP headers to' - +' be used in the request, in json format.') - parser.add_option('-a', '--aws-query-check', action='store_true', dest='awscheck', - help='if set, %prog will perform a check of the PageSigner AWS oracle to verify it.' - + 'This takes a few seconds.') - (options, args) = parser.parse_args() - if len(args) != 1: - parser.error('Need a url to notarize') - exit(1) - - url_raw = args[0] - if options.awscheck: - check_oracle(oracle) - host = url_raw.split('/')[0] - url = '/'.join(url_raw.split('/')[1:]) - print ('using host', host) - server_mod = probe_server_modulus(host) - headers = "GET" + " /" + url + " HTTP/1.1" + "\r\n" + "Host: " + host + "\r\n" - x = get_headers(options.header_path) if options.header_path else '' - headers += x + "\r\n" - - if start_audit(host, headers, server_mod): - print ('successfully finished') - exit(0) - else: - print ('failed to complete notarization') - exit(1) diff --git a/src/auditee/oracles.py b/src/auditee/oracles.py deleted file mode 100644 index 1dac306..0000000 --- a/src/auditee/oracles.py +++ /dev/null @@ -1,205 +0,0 @@ -import re -from xml.dom import minidom -import urllib2 -from base64 import b64decode,b64encode - - -snapshotID = 'snap-03bae56722ceec3f0' -imageID = 'ami-1f447c65' - -oracle_modulus = [186,187,68,57,92,215,243,62,188,248,16,13,3,29,40,217,208,206,78,13,202,184,82,121,26,51,203,41,169,11,4,102,228,127,110,117,170,48,210,212,160,51,175,246,110,178,43,106,94,255,69,0,217,91,225,7,84,133,193,43,177,254,75,191,109,50,212,190,177,61,64,230,188,105,56,252,40,3,91,190,117,1,52,30,210,137,136,13,216,110,83,21,164,56,248,215,33,159,129,149,85,236,130,194,79,227,184,135,133,61,85,201,243,225,121,233,36,84,207,218,86,68,99,21,150,252,28,220,4,93,81,57,214,94,147,56,234,236,0,178,93,39,48,143,21,120,241,33,73,239,185,255,255,79,112,194,72,226,84,158,182,96,159,33,111,57,212,27,23,133,223,152,101,240,98,181,94,38,147,195,187,245,226,158,11,102,91,91,47,146,178,65,180,73,176,209,32,27,99,183,254,161,115,38,186,31,132,165,252,189,226,72,152,219,177,52,47,178,121,45,30,143,78,142,223,133,112,136,72,165,166,225,18,62,249,119,157,198,68,114,69,199,32,121,201,72,159,13,37,66,160,210,83,163,131,128,54,178,219,5,74,94,214,244,43,123,140,156,192,89,120,211,61,192,76,70,176,122,247,198,21,220,79,212,200,192,88,126,200,115,71,102,66,92,102,60,179,213,125,123,86,195,67,204,71,222,249,46,242,179,11,111,12,158,91,189,215,72,190,15,165,11,102,51,1,91,116,127,31,12,55,193,249,170,15,231,13,189,60,73,8,239,238,18,44,131,78,190,164,46,41,169,139,43,230,105,2,170,231,202,203,126,74,202,172,112,217,194,26,202,140,71,183,45,239,213,254,213,139,27,95,163,172,27,176,189,233,59,181,49,225,220,125,90,182,120,183,236,62,100,170,130,122,202,206,193,77,130,250,167,187,238,39,197,216,183,56,203,72,122,168,64,217,225,8,233,13,164,224,23,255,239,230,44,90,31,149,106,207,28,9,249,154,163,84,231,149,167,59,194,193,41,106,239,30,137,188,78,45,66,30,224,233,181,132,146,106,227,135,229,106,71,168,69,149,167,154,150,106,29,130,114,109,11,66,120,42,128,247,166,248,152,103,131,56,88,37,46,19,240,110,135,15,234,44,39,87,65,232,105,2,163] - -oracle = {'name':'tlsnotarygroup5', - "IP":"54.158.251.14", - "port":"10011", - 'DI':'https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAIHZGACNJKBHFWOTQ&Action=DescribeInstances&Expires=2025-01-01&InstanceId=i-0858c02ad9a33c579&SignatureMethod=HmacSHA256&SignatureVersion=2&Version=2014-10-01&Signature=AWkxF%2FlBVL%2FBl2WhQC62qGJ80qhL%2B%2B%2FJXvSp8mm5sIg%3D', -'DV':'https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAIHZGACNJKBHFWOTQ&Action=DescribeVolumes&Expires=2025-01-01&SignatureMethod=HmacSHA256&SignatureVersion=2&Version=2014-10-01&VolumeId=vol-056223d4e1ce55d9c&Signature=DCYnV1vNqE3cyTm6bmtNS1idGdBT7DcbeLtZfcm3ljo%3D', -'GCO':'https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAIHZGACNJKBHFWOTQ&Action=GetConsoleOutput&Expires=2025-01-01&InstanceId=i-0858c02ad9a33c579&SignatureMethod=HmacSHA256&SignatureVersion=2&Version=2014-10-01&Signature=I%2F1kp7oSli9GvYrrP5HD52D6nOy7yCq9dowaDomSAOQ%3D', -'GU':'https://iam.amazonaws.com/?AWSAccessKeyId=AKIAIHZGACNJKBHFWOTQ&Action=GetUser&Expires=2025-01-01&SignatureMethod=HmacSHA256&SignatureVersion=2&Version=2010-05-08&Signature=N%2BsdNA6z3QReVsHsf7RV4uZLzS5Pqi0n3QSfqBAMs8o%3D', -'DIA':'https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAIHZGACNJKBHFWOTQ&Action=DescribeInstanceAttribute&Attribute=userData&Expires=2025-01-01&InstanceId=i-0858c02ad9a33c579&SignatureMethod=HmacSHA256&SignatureVersion=2&Version=2014-10-01&Signature=ENM%2Bw9WkB4U4kYDMN6kowJhZenuCEX3c1G7xSuu6GZA%3D', - 'instanceId': 'i-0858c02ad9a33c579', - "modulus":[186,187,68,57,92,215,243,62,188,248,16,13,3,29,40,217,208,206,78,13,202,184,82,121,26,51,203,41,169,11,4,102,228,127,110,117,170,48,210,212,160,51,175,246,110,178,43,106,94,255,69,0,217,91,225,7,84,133,193,43,177,254,75,191,109,50,212,190,177,61,64,230,188,105,56,252,40,3,91,190,117,1,52,30,210,137,136,13,216,110,83,21,164,56,248,215,33,159,129,149,85,236,130,194,79,227,184,135,133,61,85,201,243,225,121,233,36,84,207,218,86,68,99,21,150,252,28,220,4,93,81,57,214,94,147,56,234,236,0,178,93,39,48,143,21,120,241,33,73,239,185,255,255,79,112,194,72,226,84,158,182,96,159,33,111,57,212,27,23,133,223,152,101,240,98,181,94,38,147,195,187,245,226,158,11,102,91,91,47,146,178,65,180,73,176,209,32,27,99,183,254,161,115,38,186,31,132,165,252,189,226,72,152,219,177,52,47,178,121,45,30,143,78,142,223,133,112,136,72,165,166,225,18,62,249,119,157,198,68,114,69,199,32,121,201,72,159,13,37,66,160,210,83,163,131,128,54,178,219,5,74,94,214,244,43,123,140,156,192,89,120,211,61,192,76,70,176,122,247,198,21,220,79,212,200,192,88,126,200,115,71,102,66,92,102,60,179,213,125,123,86,195,67,204,71,222,249,46,242,179,11,111,12,158,91,189,215,72,190,15,165,11,102,51,1,91,116,127,31,12,55,193,249,170,15,231,13,189,60,73,8,239,238,18,44,131,78,190,164,46,41,169,139,43,230,105,2,170,231,202,203,126,74,202,172,112,217,194,26,202,140,71,183,45,239,213,254,213,139,27,95,163,172,27,176,189,233,59,181,49,225,220,125,90,182,120,183,236,62,100,170,130,122,202,206,193,77,130,250,167,187,238,39,197,216,183,56,203,72,122,168,64,217,225,8,233,13,164,224,23,255,239,230,44,90,31,149,106,207,28,9,249,154,163,84,231,149,167,59,194,193,41,106,239,30,137,188,78,45,66,30,224,233,181,132,146,106,227,135,229,106,71,168,69,149,167,154,150,106,29,130,114,109,11,66,120,42,128,247,166,248,152,103,131,56,88,37,46,19,240,110,135,15,234,44,39,87,65,232,105,2,163] -} - - -def get_xhr(url): - xml = urllib2.urlopen(url).read() - return minidom.parseString(xml) - -def getChildNodes(x): - return [a for a in x[0].childNodes if not a.nodeName=='#text'] - -#assuming both events happened on the same day, get the time -#difference between them in seconds -#the time string looks like "2015-04-15T19:00:59.000Z" -def getSecondsDelta (later, sooner): - assert (len(later) == 24) - if (later[:11] != sooner[:11]): - return 999999; #not on the same day - laterTime = later[11:19].split(':') - soonerTime = sooner[11:19].split(':') - laterSecs = int(laterTime[0])*3600+int(laterTime[1])*60+int(laterTime[2]) - soonerSecs = int(soonerTime[0])*3600+int(soonerTime[1])*60+int(soonerTime[2]) - return laterSecs - soonerSecs - - -def modulus_from_pubkey(pem_pubkey): - b64_str = '' - lines = pem_pubkey.split('\n') - #omit header and footer lines - for i in range(1,len(lines)-1): - b64_str += lines[i] - der = b64decode(b64_str) - #last 5 bytes are 2 DER bytes and 3 bytes exponent, our pubkey is the preceding 512 bytes - pubkey = der[len(der)-517:len(der)-5] - return pubkey - -def checkDescribeInstances(xmlDoc, instanceId, IP): - try: - rs = xmlDoc.getElementsByTagName('reservationSet') - assert rs.length == 1 - rs_items = getChildNodes(rs) - assert len(rs_items) == 1 - ownerId = rs_items[0].getElementsByTagName('ownerId')[0].firstChild.data - isets = rs_items[0].getElementsByTagName('instancesSet') - assert isets.length == 1 - instances = getChildNodes(isets) - assert len(instances) == 1 - parent = instances[0] - assert parent.getElementsByTagName('instanceId')[0].firstChild.data == instanceId - assert parent.getElementsByTagName('imageId')[0].firstChild.data == imageID - assert parent.getElementsByTagName('instanceState')[0].getElementsByTagName('name')[0].firstChild.data == 'running' - launchTime = parent.getElementsByTagName('launchTime')[0].firstChild.data - assert parent.getElementsByTagName('ipAddress')[0].firstChild.data == IP - assert parent.getElementsByTagName('rootDeviceType')[0].firstChild.data == 'ebs' - assert parent.getElementsByTagName('rootDeviceName')[0].firstChild.data == '/dev/xvda' - devices = parent.getElementsByTagName('blockDeviceMapping')[0].getElementsByTagName('item') - assert devices.length == 1 - assert devices[0].getElementsByTagName('deviceName')[0].firstChild.data == '/dev/xvda' - assert devices[0].getElementsByTagName('ebs')[0].getElementsByTagName('status')[0].firstChild.data == 'attached' - volAttachTime = devices[0].getElementsByTagName('ebs')[0].getElementsByTagName('attachTime')[0].firstChild.data - volumeId = devices[0].getElementsByTagName('ebs')[0].getElementsByTagName('volumeId')[0].firstChild.data - #get seconds from "2015-04-15T19:00:59.000Z" - assert getSecondsDelta(volAttachTime, launchTime) <= 3 - assert parent.getElementsByTagName('virtualizationType')[0].firstChild.data == 'hvm' - return {'ownerId':ownerId, 'volumeId':volumeId, 'volAttachTime':volAttachTime, 'launchTime':launchTime} - except: - return False - - -def checkDescribeVolumes(xmlDoc, instanceId, volumeId, volAttachTime): - try: - v = xmlDoc.getElementsByTagName('volumeSet') - volumes = getChildNodes(v) - assert len(volumes) == 1 - volume = volumes[0] - assert volume.getElementsByTagName('volumeId')[0].firstChild.data == volumeId - assert volume.getElementsByTagName('snapshotId')[0].firstChild.data == snapshotID - assert volume.getElementsByTagName('status')[0].firstChild.data == 'in-use' - volCreateTime = volume.getElementsByTagName('createTime')[0].firstChild.data - attVolumes = volume.getElementsByTagName('attachmentSet')[0].getElementsByTagName('item') - assert attVolumes.length == 1 - attVolume = attVolumes[0]; - assert attVolume.getElementsByTagName('volumeId')[0].firstChild.data == volumeId - assert attVolume.getElementsByTagName('instanceId')[0].firstChild.data == instanceId - assert attVolume.getElementsByTagName('device')[0].firstChild.data == '/dev/xvda' - assert attVolume.getElementsByTagName('status')[0].firstChild.data == 'attached' - attTime = attVolume.getElementsByTagName('attachTime')[0].firstChild.data - assert volAttachTime == attTime - #Crucial: volume was created from snapshot and attached at the same instant - #this guarantees that there was no time window to modify it - assert getSecondsDelta(attTime, volCreateTime) == 0 - return True - except: - return False - - - -def checkGetConsoleOutput(xmlDoc, instanceId, launchTime): - try: - assert xmlDoc.getElementsByTagName('instanceId')[0].firstChild.data == instanceId - timestamp = xmlDoc.getElementsByTagName('timestamp')[0].firstChild.data - #prevent funny business: last consoleLog entry no later than 5 minutes after instance starts - assert getSecondsDelta(timestamp, launchTime) <= 300 - b64data = xmlDoc.getElementsByTagName('output')[0].firstChild.data - logstr = b64decode(b64data) - sigmark = 'PageSigner public key for verification' - pkstartmark = '-----BEGIN PUBLIC KEY-----' - pkendmark = '-----END PUBLIC KEY-----' - - mark_start = logstr.index(sigmark) - assert mark_start != -1 - pubkey_start = mark_start + logstr[mark_start:].index(pkstartmark) - pubkey_end = pubkey_start+ logstr[pubkey_start:].index(pkendmark) + len(pkendmark) - pk = logstr[pubkey_start:pubkey_end] - assert len(pk) > 0 - return pk - except: - return False - - - - -# "userData" allows to pass an arbitrary script to the instance at launch. It MUST be empty. -# This is a sanity check because the instance is stripped of the code which parses userData. -def checkDescribeInstanceAttribute(xmlDoc, instanceId): - try: - assert xmlDoc.getElementsByTagName('instanceId')[0].firstChild.data == instanceId - assert not xmlDoc.getElementsByTagName('userData')[0].firstChild - return True - except: - return False - -def checkGetUser(xmlDoc, ownerId): - #try: - assert xmlDoc.getElementsByTagName('UserId')[0].firstChild.data == ownerId - assert xmlDoc.getElementsByTagName('Arn')[0].firstChild.data[-(len(ownerId) + len(':root')):] == ownerId+':root' - #except: - #return False - return True - -def check_oracle(o): - print ('Verifying PageSigner AWS oracle server, this may take up to a minute...') - xmlDoc = get_xhr(o['DI']) - CDIresult = checkDescribeInstances(xmlDoc, o['instanceId'], o['IP']) - if not CDIresult: - raise Exception('checkDescribeInstances') - print ('check 1 of 5 successful') - - xmlDoc = get_xhr(o['DV']) - CDVresult = checkDescribeVolumes(xmlDoc, o['instanceId'], CDIresult['volumeId'], CDIresult['volAttachTime']) - if not CDVresult: - raise Exception('checkDescribeVolumes') - print ('check 2 of 5 successful') - - xmlDoc = get_xhr(o['GU']) - CGUresult = checkGetUser(xmlDoc, CDIresult['ownerId']) - if not CGUresult: - raise Exception('checkGetUser') - print ('check 3 of 5 successful') - - xmlDoc = get_xhr(o['GCO']) - GCOresult = checkGetConsoleOutput(xmlDoc, o['instanceId'], CDIresult['launchTime']) - if not GCOresult: - raise Exception('checkGetConsoleOutput') - print ('check 4 of 5 successful') - - sigmod_binary = bytearray('').join(map(chr,o['modulus'])) - if modulus_from_pubkey(GCOresult) != sigmod_binary: - raise Exception("modulus from pubkey") - - xmlDoc = get_xhr(o['DIA']) - DIAresult = checkDescribeInstanceAttribute(xmlDoc, o['instanceId']) - if not DIAresult: - raise Exception('checkDescribeInstanceAttribute') - print ('check 5 of 5 successful') - - mark = 'AWSAccessKeyId='; - ids = []; - #"AWSAccessKeyId" should be the same to prove that the queries are made on behalf of AWS user "root". - #The attacker can be a user with limited privileges for whom the API would report only partial information. - for url in [o['DI'], o['DV'], o['GU'], o['GCO'], o['DIA']]: - start = url.index(mark)+len(mark); - ids.append(url[start:start + url[start:].index('&')]) - assert len(set(ids)) == 1 - print('oracle verification successfully finished') diff --git a/src/auditee/parse-pgsg.py b/src/auditee/parse-pgsg.py deleted file mode 100644 index 4a6d74f..0000000 --- a/src/auditee/parse-pgsg.py +++ /dev/null @@ -1,104 +0,0 @@ -#!/usr/bin/env python -from __future__ import print_function -import tarfile -from hashlib import md5, sha1, sha256 -from os.path import join -import sys, os -data_dir = os.path.dirname(os.path.realpath(__file__)) -sys.path.append(os.path.dirname(data_dir)) -install_dir = os.path.dirname(os.path.dirname(data_dir)) - -def extract_audit_data(audit_filename): - audit_data = {} - with open(audit_filename,'rb') as f: - header = f.read(29) - print (header) - if header != 'tlsnotary notarization file\n\n': - raise Exception("Invalid file format") - version = f.read(2) - if version != '\x00\x02': - raise Exception("Incompatible file version") - audit_data['cipher_suite'] = shared.ba2int(f.read(2)) - audit_data['client_random'] = f.read(32) - audit_data['server_random'] = f.read(32) - audit_data['pms1'] = f.read(24) - audit_data['pms2'] = f.read(24) - full_cert = f.read(3) - chain_serialized_len = shared.ba2int(full_cert) - chain_serialized = f.read(chain_serialized_len) - full_cert += chain_serialized - audit_data['tlsver'] = f.read(2) - audit_data['initial_tlsver'] = f.read(2) - response_len = shared.ba2int(f.read(8)) - audit_data['response'] = f.read(response_len) - IV_len = shared.ba2int(f.read(2)) - if IV_len not in [258,16]: - print ("IV length was: ", IV_len) - raise Exception("Wrong IV format in audit file") - audit_data['IV'] = f.read(IV_len) - sig_len = shared.ba2int(f.read(2)) - audit_data['signature'] = f.read(sig_len) - audit_data['commit_hash'] = f.read(32) - audit_data['pubkey_pem'] = f.read(sig_len) - - offset = 0 - chain=[] - while (offset < chain_serialized_len): - l = shared.ba2int(chain_serialized[offset:offset+3]) - offset += 3 - cert = chain_serialized[offset:offset+l] - offset += l - chain.append(cert) - - audit_data['certs'] = chain - audit_data['fullcert'] = full_cert - return audit_data - -#unpack and check validity of Python modules -def first_run_check(modname,modhash): - if not modhash: return - mod_dir = join(data_dir, 'python', modname) - if not os.path.exists(mod_dir): - print ('Extracting '+modname + '.tar.gz...') - with open(join(data_dir, 'python', modname+'.tar.gz'), 'rb') as f: tarfile_data = f.read() - if md5(tarfile_data).hexdigest() != modhash: - raise Exception ('Wrong hash') - os.chdir(join(data_dir, 'python')) - tar = tarfile.open(join(data_dir, 'python', modname+'.tar.gz'), 'r:gz') - tar.extractall() - tar.close() - -if __name__ == "__main__": - #for md5 hash, see https://pypi.python.org/pypi// - modules_to_load = {'rsa-3.1.4':'b6b1c80e1931d4eba8538fd5d4de1355',\ - 'pyasn1-0.1.7':'2cbd80fcd4c7b1c82180d3d76fee18c8',\ - 'slowaes':'','requests-2.3.0':'7449ffdc8ec9ac37bbcd286003c80f00'} - for x,h in modules_to_load.iteritems(): - first_run_check(x,h) - sys.path.append(join(data_dir, 'python', x)) - - import rsa - import pyasn1 - import requests - from pyasn1.type import univ - from pyasn1.codec.der import encoder, decoder - from slowaes import AESModeOfOperation - import shared - shared.load_program_config() - shared.import_reliable_sites(join(install_dir,'src','shared')) - - print (sys.argv) - - if (len(sys.argv)!=2): - raise Exception("Invalid argument") - audit_data = extract_audit_data(sys.argv[1]) - for i,c in enumerate(audit_data['certs']): - with open(str(i)+'.der','wb') as f: - f.write(c) - - with open('fullcert','wb') as f: - f.write(shared.bi2ba(len(audit_data['fullcert']),fixed=3)) - f.write(audit_data['fullcert']) - - - diff --git a/src/auditee/python/pyasn1-0.1.7.tar.gz b/src/auditee/python/pyasn1-0.1.7.tar.gz deleted file mode 100644 index 13d6ec1bd601ee17bd855c4403df02ade47e42d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68120 zcmdqnV~;LOv?k!TZQC|>+qP|6yKURHZQHiB+qR8o-ZMGL{D(;@mAdP5rINMQMHmeQ zMHLaO1OhO%a&cvJ^fYp@XQpRjU}oTCa5ZuUy6(ODi@TXhkh#k{P&zap#R+;aBe_9WP~qdiq@ykU1?hp!?pY%Ky}2Gnm=$Tz z#rqg0n|o}*I_ys#><=5}eew~&id|xwF7i0^3}&*6A2MQrSw=nQp=}bwG7))SP%!R~ zILK~^@O?+^0?_la=74Lh1@TQ66Z3KzkU3$UWeOl-`0+)VNwVqsam?T>*aF{$ob987 zW0XdUFLYuHgRm<;w+c(sklfM3)kp zVY7Wo_+ykLFXV?lfT`#6q7h{mSKd*Bb zfMki-@2SujD7ZM*g2c{J&H0DAD~)BI!f8Y>OfqXYw4{JHGo08(Vtw~ym=xL>zxTj0 z;+Zm%#~J7w5c=m~f78ktmKIV$eqU{U@E8Wibh#uW_8YiArvCK2eb;0Gu$SBS^|NZS z43KXReg>T1SL|Kk6A}>r2=Mc7ECR;g@6@m)GW}Oy8J`pusj%dG9hM!FN@M`rrVt_4 zhrM*-zh7+t7J6Z>(#p5JAfxw5fG>)~!F{>Mg>UoM-QByu*>8N(LHYu)U*Na@%FXRD zpuP!!ac86O^l=@%4A8$j2Riq!U%nz7K;{Z_S>n4LaN1l1NW9-+-#)--o{W zNiAJxk^?nrKG_=Nd2ql7BY(Ft`XeSSqWt0%U1u0ekg@NI7yEpES3DuUL;J$b3vUNw z>bLK_-Fd+CAM)w+-0O#Fv4KeO;X)97KEBB*DY2|*jUoGGx9opuY3%@^k2nEh{_O{ofjj(5-8?3lD ziFq+Xkwb5@)J8F+D*w?c>WN6d$OHd?3B#%h$PDQ9CIs@nW}ulfT7RI5(J0w?3!iX% zWE5`%@gIuvfUO=PKd#u3Q^q09L_`6is(sqpr))4BTZ$F1h-K_D6r0R~+<{~u7J>w2 zDaSj-au7s7F+$4N7-cZQY?7yCJP08KHXl}jaU^V%OCkG*o^!N`RaPi*s-bd#K72b^ z8pP^28903;!r=z*gmjo^G~^c-;^P5YwrGV>uyXd&#UX+q(=hf(!MdqubBpxCn95h- zm`trED^3AOHo6i*vnHMSV!~&wS;-$WyR7K0h2Tl1O!AATUM;rF(_}Wy+rgKCzC8Ei zHg_J!oqRq2fP9UH>Vmx9d;S2HjJWUQP5yTkpk6To0A{qv#C}u=&=x}(izGKI4xe(Y@ zKUyG$0pU@10|34u{wLrDnU00adEpnUit9zd=H&-`zSX`=^mgXR7lwU@k{5})yGMnQ z1zgRS581H#Y4~s^N;09Ca8SX=)m*?lR1wS-neL*=XmVGve0T_c;?{xy(*wCq@{N~p zL54-fX;gfpr*mAsLfA*DEQ)9ml?MA~%CYyvaclwRGloT1VqRNhv0~LT<}mvhwFapc zj8SIH2GRi7VN55`l{=OKc|kxyJNd^dao`fs5jGil_aafuh%NFiXt8M6tAq(Z{p3ygU(v+3blQ_4UechR>775NBqN$ z$rB;jet6IA8`p2n@pfSS>E1=2Hi)oKUYW>PV+23juiVJZ{8x|rT|+i(Sn1{bf^L|l z2G{>ATDG9u9OSVcf*?o^?822pC8TsFCv``;k%V7fD6f3607(1C_I`+)fBqGcu?MeS z0f&aC+}L0x9|h*zyzM8NS7nT@$Le%oa<)Yb*Ys`;RJeboSJXUKk7^N|k%r$_Zr$i) z-&0UagHu&&BLGBn*eZEKDRIow6t|cv?Y(*gl-n}F+q{pC)Dpu)iPQaYZAG7yJCiHgiuv zW2N56cWZ9wTh?x7nw$Wr(0E5bpHMeIFlGJ3sqL<>JRS!gnOvSX0Y6U!)XUHJ?k+io z?DP+vV*h%t{~K8>Z+Mw&_RiY`@ml@#Wq+Cf>BKxww&a*tC?4IJ@#&ZI|X|=Jp1HeqXak z=JiIXlDAEwgjTnL1XkI3Poli}>3|Qx*vLtX?md3{H;!G_?T$rSTu!e~YrVMC1CZZV z>oDm@tEV`N#d7SqhbFM|hP*(A@F3l=-)F560%MnpEwcB<4MU%Ga9$25F_Sk|SFAtk zSq5&{d*zcMRKOFQaRh!J+Ez<>m?cC?K(rBIuSX|kfKyUVyU%brz{XyM%U+|o&de0u0#g`6(!GVs(ay4dQVlcNN~=wt2fYwPOt zqt@qja^V%N7i6znSO4*3_X&rcI?{eMPR2ykt7_DG^f}CrrcnGHe;|A;!Sbgo2q655 z^!juanr?RE=`5u^;zBGX*ztP*#MOTlg+&Kxc6X6BLi#2%2NlTytAuZDExql?(%tTmW;2PRKOtfc zpGMwG;=agoM^1-`APE{uwxYB=G-&M)!;1N=3p9+&?T(_sQj#?y5TR`bs@yVZd!4+V zo`2y#Z&zQ!quuxHIWFtox+jnmh9`H^Vs_}Mz(B<)N-YCj!fsxl|E5>^Bpi)NJR!|e z*gDEBJO!x7J9*gfn2RPl>oRpzJik&=FG-}=(&OCOLaBJ_7l)@bIGNnh8&0oj$ZW)k z#hM@C)tr@jZi;SsHp%AXnp0NuX=KrudXbxq`tFJ_E{;XdI}Rymw|G*c@@hG5c#L*=&-QTJCgqJ>RdLIq(Id!pTo@v<#tLdTIPh4A%cyb zSz>@!ScS57{H2O8|D`kxC5k5(lZ`vD;?g-!AEq9B2q8ca%Ei_V6KlvJ2bSXj%Y$OA zxjPWPt$m`x>7AM|?(8j-1_PB+)~fy3U%IKVfWO9O_{G!qs`xlCOTrbMBCgQDnj=<) zU<{Ts9$9EJHdWb`y0Yi*V+cC{Z=sX!4q5~aeSbQWNA&A@ClxgixTy6fQ@HwME>M^w zeI7B)1Qlq{!>-|Px#0JK3O8~UL9jsO4;YV(Ny3K24#=v7viN>^fX4qgvPX-nV=!X$v)<4S|`Ai86tm3RX;?EQ#s6O z89mkBYz`gOJ|#Ko!5rM{0XJwuJUZO(R*KLvLZKd?!QD19O=H&Lp3zh`=-+h?Prd>m z3ZIONN#8BEX~Lk6E(%2J*KD=r-AFJlaO9$|fg&^yQC_cl*TRP4E}th3rkpIgbz@aoDR0tUr3|r{~mHr-f)UVXfi(KArLZOn1w} zt|0got5<96*cxuZSK+>LZdEWPDt;WOk&sGL7)b}wNjJ(b=!Uwj4i_iMw7^p-`n(n- zD`Cx8&dc{r{r)?ErQ!?mUbb%+Td-fIX$f2(U@Ym+eZO02Nr3-;KVpJjHhMpbU)cM* zlZUZos# zGk7Fk>|@e|=Y9&+=&KGdatxa4QcFBdwGBIM?drqY``>TaMpF)XwMSZTKh=Egn&M~gi-0}%iH9(uD@De}$EIHyC4FZr^1>X2pE z1S5HeybP5kcl05%Si%-@guy3{--) ztFUP*ctT9fC-@;WIq!ceV^(~;xcoN95aIUzgki9!=vIEMK`ElgcTb5QC22CZ`ub&)R<>Z0bnRQXh{cO~)9OrEB5OgsoN!bZ7 z_^x|WT>k`t3R&LWrPvAlGUgka0##RDBj-P z21DcMBL+V0jA+6+QOAix2s%F2G9w%~Gb~N^5Vk7GC`-0U&OCKS!zpn_Z0&htGL3%r z0kNTBDbhK+j?!K3U)H-e^lA@iHOwysKxiA@aC>@MVPzx z9qihbc>5zclBAI&dzM`z>@xFesSNwIUQ4 zXk79`u@AH1AZ5NxoUy?ONoJXmU{O9CjU5e3X0Hj-qsWS9(QZjl44OCIiiF;zqSKL0nNz@mOmD2 z^}b@j%xrJ0Kh)#Nhe$6-mW3kCBcCU0RoSc7DTHq{`K&RM7oAmCk6W4{z0O1pb4lwm z?mT3Ffs59Ou>2mcuo5EXz~w8#lMyH-QMhj#0J-2!@Xaa<*Jt&8L8W?1*lh<~cd@po zR5;j=F{YB#&NZK!Z+Z1Jy-ZJN{=&#AqnLE)TpBsYTSSBf!`@tC^l(yK_cW17_W`hS z@T9{8is&@)l&Mfv!ousDiEwnY!KkPfCg7W68dyfO_vXhkv@tzNM)+yiYlQ${_^~Tc z6Q#H1_=SOhN_inFOD(6n(I6+biPaP{p=406gcVOBF6W;5c`Jm4lpg|VJ0B$Hwup#K zA1(pkBS1Dm_}(3XD`NhX<9$@+;(P7z>?Vu_`m0v5bonE#+#m8>eCG7Jnk35V5Q9i- zzC3c^n(5GxlNxP(yG$Oz+r4K#*r9p#dL^VwHE{!pt&#vX0 zHy(@nyjSns@}J*jg6F3u!1K$M{Mo8!`D?e`idUhLBY#c?N13_#`nzcK+lHI2XOm}# zdy|dx3d@$l8-wK>5s!mKFCRf-QSiMt7o@QA^Rpfpl)uCB;07&U{{d49;hqQ3Yfl)D z@jRT{(LM*<>HO~LdbE-b;ZW>V>x1GWO3G(#mYN2r|589V%S2pO`lqe{SwCP?Wp4@- zpVeKPo=@m0_eGe`%5abaV0C0cKhqu{MpFfG5_WRpqjg`F< zgNJ8|4C!mL*+cw}mIONY-0m7o+N4@VCZ5FFO`kvpVJQT)z*P{;U({lILAII}@ZZfZ zVSJ)z=|PMYxWpU~Y=)?lZRi;s32L&9VIpsAG*}XG)V#W3#bUOnW(73mq;8?=hd`*+ zqo635{z4YyW;uFR^lJngoOta6onqU{HX0fGZ-E41iP%g(fvu5oN1I*{nb>&&4ZbOp z!3@frpIHu7BFyN7pg8yxnu@eESzDF_C!FRO5ZAhc5%|?@@5jkspx#ThFra4eina89 zwJ+d3{EccOmbHaF5UEd{>F^i~sl>gLui-qrgMBG;9j_OAEeeaQN5`p;n+ z9SW=l7$~UlUK$zVPXgZOqD&+f_@QBETGu2>M;bKGiWJKD>Br+nRB(e6@OGEy8rviz zlz47c9$K!yy8`&eA%&u|j)rYV+BT293j}UbKVjjsJEjMo1mCnn)3E1zOwTF!DXgK& zAqs|`*(ey_l=Ni6!&b=t#vOu44uM#SCv2>zs%+69)G*mwb(gZY81{SJ(>6~0EbLhz z>?3wi0<wR1+Smx;NK4+Km%-%6rf;zn~o)Y z;Du^;yIy6irb{~W4-EB0zZTY+E@e4*=hnLy;L`6$s4gzQ{owOU! zSO5l@Gv(o=SVYx9&3?8ieoy#j^tK~JlGjGn)L<$2&KIaap#!s7Oei&8?6ts+U2cht zZhVZj=RLJ3?l>Ke;wX^x!axM)7+Dn+Jev03i(W2Z;wObfZsYTiSgm<`f`O*&ODs z@fFqXzju@88t+F1AEZ6C&0%LXI=Y5c+EJe!TF9|PYChSX@v~t1$M%T1dcs~l@##uX zRW+r9!*65p_gD%nlcnuutnn7&;lnxtM37jmLG@Tcls&RbV_EQ9-P=q4Rya8cyaD$S zB?tlo9JDa(0BfXDk|<&|L!LgOq0IN6jqOiiN(PD{Q8Xe#M)A0FO4IJw%W`#dG_12C zFPZAb)MOnYVevsnHQ<~TN|xLA(+*2MN!uhE%ZJi1Il58wc$VqU*5xJQq|V4tNqIHN zAWKS|hWqbGT zB_=EUR_@i@U+jt~7))kGCcDBfD6yoasZOHZyv6!-%qU(L0w=FAs0(ZV{rTE>tp{t+ zi4Nb05*;5@_Dmv-C#-hs!n)wm80)KM{j-I<1&&iHzB{$dE^5oQ)HBZ;)sZG~GT%k{ zLrC)(K)|uwuVRi%ezdzw1)RpV#cD;PcgGQ!Mt2r$iUCjV ztb*W}fY5mu-0|T$FBh$b|aNJgSP*!_3GEsa6U2IC&%nW!GPs*QVB1tRb==Wb-fHb=tiCtXlbHG>l zuoawy7m5_#7+3^qj5OSxu4la5!XW*qRZMFs6})}5oKfir5-&KH?nw9IsV4_RK?*WN zNV$xb8x|X0&%KCF0Shta??fCOPrK{RK}8mxM?n z>%A&!8B$(DHKc0T)G4H?VJRlEh)%0;g1&h32I$;Ltl^J#wBgDjk~9LBE2Yqn>uc7p zJ|^J&fYA5*2nfJ6A`o{UZ}NQv{rlkRP>pm+RVz+X{POcyxa?tk4y?3t|Mu4k`O2Na zaJYKsfn6kQAEX~qoJ1G|vt*r%R`)IC%>{8CD;-M%3lnP{GaXX{6El6SO=+?5?3Js+ zt*iHU@L=&FxqO@YcOAhig$M%db;c5(v5tZLL>P|^C>0Hmz{xBgqzjx6@J@RcT>g8~T+!I-vq7J4 z{qM)a=Sy<6L=#%)csU!5Tfh`yJzWn$kGAX6;8e5u-%Fz_)UOK?LV?B43+d(lUxQx* zK!5*l|NYb5f2VQ4w*cT1Fd*=I1^~|gj_?2dG63BDw@WkLdjEcVu6#V572G`uK$v{+ z(EaQxA-WzoynC`F>_MIaEA(BaeJb|5AKwZ7+-{7{K;iC=Y1yIsoF3X|ke;LERWztm z#|Hr7rm|xBAe?}PG)kyNQZ5EeF{BIDJt;1Lkh69$mkk3fwV`#gqQJ!piimTXZjwMq zT@KQGhT!-@STv3Q(fG^wHlPq&HzbW!p>FWdVqfC}iuEkFUbxF@?w;&8(D$yFR+3n_ zm8W`&t|^PSdWtl^#PR|>7+t|bYi*EL?zi&vP{$}k-w&sfHOX3&7iKRL7+Y?*QnbPn zY=BrSOc&O1j1L9t_KP5kvnPZ{7$VonQ1?P&>TRS+Qz_3cs02{{iQb6-I1`H!d8s}w z85jar>osa;X>C!|eI`C|X7=gE@)f;Qxc>Tpv|z^?OHMFmRkA7*uv-UIw1sG??+!~S zidgk)VhtkqhD`FOD{P-6S`(j{B?K1H+jf1Hib#R9=g33{a(^OQ ze06MJC0-^%K7o%TV@3ft=vxDYSe=1gM&O@MIm}j49cjH|r$l2zWQizjNg66Qlgn_S zRI?FW6PsMg2hV(^@7`$zdUZViYZtl{c<{z2!r0lBDhCC;?dkszjAg?oZ)42$__S{Z zZVsPU`<+R(hwC@|wQ$gLXxP_JL~OslR8SY#DObp^yO6jcY4!gcvG!e0^oVJmgOvzg zF7IW#`n)`(zU6hronpJ1Lu=>xs@H5@rPA=kiqGid#GfV5YnLQE6s4Y#1F^7A)WwX; z%KKYna}-T-=_m}%ZB@8ZgwFW6N5HkWUICybJO)?%qq!dr1k!^Fs9)#4R{D86IvSoc zYIj)}|LhN!kl^|5uMY>5104;uh#Sd@F?kFA>*p~bDexx>1upi^BiRfdTZDxJo0)vQ z3#Nlk+JFDxjWG9g4&r%JKwWs-a?0rM2-y2}nZc78qcSlr(`(-j67Y&xHpdJoz9ySl z(GGEv0n=qZnkf>BDpY>jSCQP;A-?}iV3wHefQFwBZr`Q2phNFe#alki-G!0GmP`e}6Q%|98noJ@%M8aCbK+tomwdDl-{g~^ zh1Lt;OvCk|x}_Ug!t7BCDNEH@71GuM&WNTt~NHUIzsehi$_I^Ms=r5b`vahj>BOiAABaG3o(f15MDJ{DgpY zCU+d{Y4&=OzqLF+UBqTH#AQR<0a(=$iGT)Wr(NzHUzAmv4FIT2p)in_na+@fh`pcy z)3=9I@M>;_8S3|8aa3l5ELhZ$tX_|#fpruoV>0X>EKocki=eD{VR*42yEz%pc5cst z!FY+NK}cH3PI3JnBp>f^Nzh$T>3wSDlj^T4`gth{&ym_r6kYIEL!AGrb**hg%)pCO zV{9Bz%N9ZOSTj(sVg`V;NJugZI4VfSJ%R+A4N+*>Gm&UgN0i(aPAt8^Ca=?Y(ZheH z-bq*=(#W_&ALLRf;7rBP6DJo_q*Tsku;IfPDo;d(1QI4BQQ9K}TRvP7IH$utMzmEC z6o~VQb?FMAv65tt^XEh0QN=r%~8CMo5t-sqHJ(`(^j+v9)k;-iFskK~M#HeXZR z>rV2q6+L0C{h|clq3amY|C(2ct7Bt5p1{pf*pAWel)pv|a)fh6hyhnm^RiAo?~k#u zy*I=EvA{rp)l4FXcT$3T#mo=Gj&Z{h8vsiic-+2+{Vd;Ga3F&4(GevDuI;6P7&5ga zkRwcSW(at{{04Ob$2yxPnKhEvumij`SZ$V9+~6oz{EY*Bin5vH%xO{Q+H!OYs3gj{ zqr;OEb`v6x(L)?KXgd@O6A5sJ-t?163g!pJPCX~4%qKZHE%CaQf=4?=1r>_m)M^sa zE-+9~QjBW6?%s-{mXvHRwIC7>8ze#M)$>RsP!{hXMj!XVgKGp|M6l!Kw@q-Kzvj`=3+`#AU}j;I zaJzRdSsYhhJ&xc9+#a}XbSlp{v?}?1ktxPalsa?8O!n0+glxH6;v^E?TJF{aJREqJ zl=7nU(K1n z1ri)*`=v`Yf6sL}J;B-JeoAVvxk<8!z4JNl0(Qwt#<$3!mKm$H>$!o9l!{DJwFjR0 zu8qn~tbxQ)A3)7xo%J8;tJwU(>>~Qj8a|Cr9#8l!BNI<}wpPFo zdaa?s=YN$hR-9zOcr&atZY8xQLby%>nk7$j3!#n1oZb8+5o(x&R4>z9EEE z6jr!6SD3!BbX z@~2*igSjc2AE$#LcuRF#8g_(+0R+jt3Q?bIf{!&9+31zewSm+?cd25e!Jqz74*;8Sx*R>C#ZlKq+wK>=`jlFO1#* zIZ7th(5D?s7~v2YPo~N8!wnpSXfe}cWbig|%0<~ItOyHdd{S`w+I&Q;Ngi5~KCci= z`5XKi$Gw4w?d)=pVjqMU5a3wn876HDtKu;^>~nz(&1T3#nI67fnM6YzT53Z_d&4l4 z`-68S^bL-`RjdT|MfYh>eITgMb3>IIdGbA<*kkBy%oR2S$8!0xxbSeoBEOUUTRIY; z4xcMC!YE^soF~ILL*FhVQ8M?!M>tWFU?$^Hs=k3Ga}hrznE4)rdwM?ZzXzAka>*id zbS}2b0=|IX+0o65m(dd*ju+pK_uJ>soD z*n7Sd9{nsHAmD7D2JMog$lbS-n+PVlG}yF(`+(-*JG*xcd_WlCpKJ@Czm^E^#DsCQ zSy1HXSp>XRGBXkhVP zs0+ex(7>r2s)weGnP3Ml)X&gD8U)N7Z&Mp6*pVi4x&j< z4=-nCLT96BXN8u)s(SQJ=}EnN{$43A^)#s@kQ0JKJL^FwRHPngif+TRqH=^}n2o_+ z;r><3(g^E@?PT#@%D2MA^~eHXmG^SrK1x$VcwGhT1rj#PQmO*d{WdP%E939`1WfkG z;fhCaN%oLDj&CYjPwVY?abp*PhBAZu=&1Z}G1c}9fOs57&%VZU@J3n8gfKP#lGZRz zGiC8kTF18Cb}|#>B=<;LtalTn&0quN`<1Q*(#68^*L>%?)%PVehi@v3mqxUo0{ca0 z_2Yf=rGKu}PP-H!&J9QyaJ7E0PrP>UJMGwy0cnlSG4`N{&s_5sBt@%xW38a~$!Et= z5sZLGQ^qcrY&^sPeRk`_L69i8{lj<~sy=;O0}H7QUE+d5Kt~_bJi!ju4oC+%#tQ29 zuyVsJeietI02j85lcEtC5feqDfCv{#Y%_`iO`KwqOOn-EmO)SFt^Cjap;xUS$*6cE zgl?-`I-o?0L(2!?4?kchgbX&TXrP$vF%lxV_+^KqxPHefT_LR^}# zy^`}HTnUyg!h6#4G5ayCgaiI$p_dflNi8RPwi!DLvY10Lfupo~;G=8lNnAB%#YHKiX{J>89bT<`)Hr3=+s8v)S> zBiE+)I-~|w!?YY}wnV9Mj)dn_T?J;dpnqXSS)*`-q6Bj&c@oUjNkXp1CT5sz>Gwv4 zo!WhvE@d{@s>Ui!U=1o30sM~{qiC|TsL=F?#9yLzPaoYz>=k=_u?lo331|kSrPq?K z9U(l{P|ChezClhwxf9KfY6^)MNJld}g>-&2X{xK)@FAOjRT}D)J=@#$)v2zWs?DTT zybZE4u*f4JszcBH7KF23bmH0_BBPZs2+{QIENKFs3GkDg#6Z& ztbJ48?A_bci(?hca0;)YoQ3S)O;jGuQI$m+8mD4v>U@fGT}V@K)@c|7!ZMP&hW)4) zS=+|dg5K2G3G~}uzs{hc&qKYFNL)ZiwuX`f6M}Mg? z-wXe_x!ih)EJ-zzzpHr#+ z2e_+elE{|KxjXZPyTP33mm|6R^UD1Tyrjweb#nnv<4^7&1B9_?)o4N?0iq~|zrSzz zH#YZ-d&LLW|M_bkIVSeguey)d|KQegyhGj3+^OSnJgm8KiRb}1`nIvGAT1b{i;WtY z`d{5>v?-xzS8htWG~t^1kc%Q>y@p1^&0z0;Rt> znjkqBj$>vmJ5_v*Z5!&1{_unz$p!Q2>Otw`s060tE>@-5+Ah!zY7|)=rX%PJp+meh z7;xU)x(_Mw{L`hEel~-ujQuIFOTA2FaOexHBvzyCFWPKX>@sFybYxh|$IgQ}!)&c& zt2hMFS@1+huN6T0SBaW=f+IeD{tuc3BU&7FI3*s*LrO1H7c)by>#@yGil8@JpsSJ{ z+xyCa`c&aPGqxYRRAE>(6Vvk$j5$a5w*CQzM1QrcNeSv#IDrF^ZX4p5p?q8dQf73g zTp9_Gyh?7dgNgoZ&ONh18r0yC!I^38aM>*sItEiDrjx{Gm$m$(VV*!6iIUl46fMosJSd5j^i!fP`2|_>-uEUqO+S) zZQM#HL(8->L>_sv$wdpD;U$y7RAD79PZYzIqxiE8M6Ws71*X}!IK4K9gIFH#!Y4|k zC_Ia^R&Iy%Hor2~qk9O9R0Vcfi;v6@Z(^w2R|1Deq(*|1<3R))AiZS)JF~UBr$U`h zR_3~-|Mt6+>7FxXrj(G1~z-5 z_fDz+LG%S%_@mUi39m9BYUgDJ+U#Ezx+`HH7zh_uzuUtQC424%mHm0Nd8GBNxiFb%;j6 zs48m{3K=&WC(wrcrt4q=<`;|-zWH!cCqFe}E9w9RjA0rkBBW(o;M`$3kQKE(dFu=v|FyUlPL=F;iQ3#sXQDDX-}o|bWJSBMDj&2{7kuW zFPzrR!Vralpk zw^T{XO42Gh%#AQR#cT6LXyOcM7!!WxL2PQQG=?X&qM-R)rXZMuoZWRa5>lo(xdX?X zP7wB)6R7T)+1I*2RbyP0;(DO%Ty4n8iEFj~rF0B6abS8UHFk@N7R20(kXi&jhuyZl zyscOEc zwR#R`BsHEyHC}Y?L}zwe)+qH4_vcuZc5}_c12+!W@I9 za=5t^K}Nbz7+ROK`bN)+jvkDjo?oIF3V5d35knc=!{Z$_tOvqMc_asoa1P`1#8KLj zmv~UKf;D)$0V=JTtiVd60C66Uf45@@k_h>Mjb%((MxrP&mqf87lR6z{vqdAl)W$U z$5wg*5YLmIA=UJT_EkSKhA)M)zy>r=8!(UshL&v7(iP2Wg{Ekiv1-&?P+JOT)c@E0 zuKut4RW#~B8_brOqqE>CKBL0%Gd`EuPeJoXJA{^#VW?wU`A|b^6=LT1WcoUGK|@SP zqKm_TMNsZLV1g5~wi8%j5=lrBt0Pv;j8?N`Am8%cH)vd+WN5NMbpknTLx)n=Lc4~_ zMtd%GuU=uX|AHC|wPaJzh{qijVxG<63Rx~IKtTUfFwH!GN(>P$w)t-up2$1hnVP#k z9QolYJ1W^{i1AQ1eOGZ%d;l@$o=Ws!nRl`B&x{g?dQMO5a1Jpr{B_BnlPOl{z&}p4 zECkgTJ#^*3!+*mVSV}5^#F>q;GzktBGtCtO(5izb2gwA}b5^S(>m_!POG{b;%x$Ez zwb7q~+#dXg49SV~`Bt8%tWxm~Oxay2J8-zLLP_UE5&kgydk)2O{cNIplB(V0hVL7R zjyalXqg7}{B~{*sKth~CYOwG<%u!YbSg^on{-=(k^Z5u!w;o*S`SH< z8uSS!KZ712_f*+4#8(ezgVR5fOV*h*#3QN$@kP|Iob)}N)NUyYc5e6w3^Bcl0a0z- zK-xv@f{|xKUj}{H$WXA*GjJxe(GsOH?E4JI?SWMG3Ip{qO)@{qc3t4HhE1{r$h?R3 zrvMwyhaSGS5N7_)bcFM#Ap0*){})-mweI0Kg%j%o@9!O?#4^YyDV1Ldf!Uf=&#?=) zI93_LMl0Q{XSFf?yzZC7^FiOaL-I-Axx@1RXU9|33;g0Bo@hj3G10IPco~|%_$V?imcdWqu`^}|Sn+DvnxjT$B-nh|WXyKl zDMQJvwjpvU!zcp_^r}QcFX#vvA8?y~x-mlNYGOhOF@KU}Hd+GWY zd(@-k)q3yNI_e24f#ng$D@K>l>M_f`y{;ADT?Y4lA6YeNcs+xrKsuBbDlymUvkV)j z;^bCsU4Krq>cXnajg}*$SLUtPM>j2nCTPJ;`(O_D(9dr9aM&Mkl82KJh1O5UO53wP ztw_0PZ7@`9(T3mRi*jri0xwTdqz8`a^V6;};M%tWOJDn#~z$AMu%Zv`iI_f=IRc_$LOn!KCP?W2Bc_Gd; zqe$76Hq+G0rFQ-`II-a^3Q)e;ZA;;sD}~(&nWD*SO&)I9B^5Rg_RNYMi2~aVawTFe zoBlDJk#t_MTIm*|^WY&_Hn-&qtF!(_+WSBlnOUYKNDxVu*-ecWAB=bI{J+>G?_&fK z+Axupj^_Wv+&cwl7PalV={Rp}bZm9_#nLXZ9jqeCY`a!x4XyMrZd!&FL7H7J;>)=`9R2z{@P%>f!*^@VQgS0Q#lnt+Lc`_5OCCBSS(7RVvElq;57 zUW426KD$7eh=ea+;e%O1Bs%?^im{@#dj(FDBNUgK0j zpr@LyaDBTc(|lO<)?OyYf(wYixOX_>da0zBK=lY``&AlyarO{kTa@{Om$Q%W)^r0+ z<}18o7=OlwW}@Vwh@(gf2s5gQHE$9<81C9`ahFD)rliOXe#G?K&!E|8^Yh`!(A5@VshXx53H2O{&Gb7jjfS zGJv4B3^KmhRr=7!*>iHvt*jW%lEe6HIElpX4E%23z42auHzTjJt($@0;B0q8qr0bK zj5TC;iQ&?Y1H#1*3p4kVm9JDslTW@`MDfqajBk&*=;LuAZ5*^a(c!3$={Kv{MnXxc z6&a&vL!p&s7ZPKYC5GSGH3~N46=wGi=qoa%;=Zj`umd*1OXi7bR6Gp)OZpUBu;!Em zXQL>qXzG5PkgU2KwAY{l-bu>rLZk)?mmgp+TadwCHVR&Qvqu43E&($2DYaWHHQLMjNe^jpW`j)Ep|YqGDZ!&m z4rvtH%CuyanOd5b~YPwWjbD2YpreHZv`IIL1cqtM1yRpPidg(Rbo9^ zH7$(iUi0eY116H!4AeEPAV0l zWWzjWraC5iw?=~1*mWyy;5gi^L(Zg6^GEt)CE})q9yWojtsaO|Da;n3N9sL@-eD8K z^G4sLo2ghDB3$|&BHQTiS;i1s_ZJ91I$P?|!@j9O z|H0fX5L{DGtHKI(fx6FRs#+q%EsczpS}9g;Ef(G}ggBrd^FZQ;cgs_H9j|p8W+|T6 z&nGFQ!#qe;6{PTWDed-g*HMAGWlsKEczPe=7W+5>41yH22i>#qI!G{-8I_CH-1fH$ zGW9ZH3{Ud6lEU^E(@Go&9l3a4{c+Nfe~=ykPSLpH&v74_QrRH4o%-_cq6yEipj=TP z=Ts42IHTX0{I3r5Kk~78b!0(1a*=8NjS^!D+XvTYWe^;3ipM0Rb2m|>2(wYO<-3%F z`t$5GOjU)%sr(>GGP4UO2~g-2sBs}07W{!ou#SV&+kR-FCs2iWW9t#tdc7HSmyK&R z2I-I3DrriSVF7Ly8Xr`nNh4fs&<-u=!#Ujii`l4=1BYYlXdlJ-)L9V@jimkQ{pZJ9 zirkgkuEm1QzKtS+FLb-Ozx|Ywl%hmTi3K&KNF0)zH8)X|!R3cIy^hqf#%byvsy#hT zs7Zng9qnq{T3O$+g=F3=KB?GzL#RPBVI^a<(3$nvT@YDH9SXPi)oSiSUCw?r^Ybny zg8+5J0%XqYDji}j&w;By$u81GBVBWsUJF7nfynV-{e)u*v^ZhE(!6k@VsMRrOmqw4 zh{Mw+dpJW_aJp~F3y?^y0#-K%gjvhwk*)ldHRX0(?%h4ip1_)3Z7Rw~<)|vc5GQ&! zKU!ghgkS!M!P7)m&88b0+~l@Mk`1&t25l*FQB6k{9xwzVCnd*KDYTbo?@O>i6VIFzsvE$v<)d2=O7NA*gP|&d zj6%1PqZ4PpWunz*A~6KfEr*Lj(%}U7Y^l%rR00h871zwy&XMV4(k-?XBohtk+lKzE zlS?~M|D~R>wlh&Eu3>}*AqLO?m7S_cC{V;tuEnOjkxeyMZM0sbUPQIRc!Zh9VTXL-?`-^c zpZmo-gaS_|b~absB|+fI_x<670*^2i>h?jnTjsN7r@}|gPOW#6^6T>G9F+zCwHxs; zp!XIcJ7Z-2r65s{ZT66!b9{r9gMyb zO}-K>c3pYLqdGGIg(DBUFqc(gQe2f8CD`dbbDxqC>uozz%hJ67T9Y;C&W1yzC+AEGV(W#O@1xMNAHl_m(F9CR9LoWaW3|F>x@ zBS%N8+7d2|!oP6tIJ~!>WLudniwF?b8e=W^%7!tl^QJ_10i>F8;vGY z!iOnkI<^RIas;u7PI)fYM~wO`1?eI%qLIP~qDbOaggBc*2KFnaWa$YX`5`8MNlVrK zxJ|N|eU2;=X7|KP_XXQ7xFmi7X2Er=(m;4_n#NEPIW*>%PM%slsih5j3T^X}_h^%g zNvCFL4vZ+4hTr-N?-@d<&B9V7P&`M$STR$Y1yM0#{9^5dwUV$fdSwb<1{EYLRn_%X&I-A8!+hQ=BC z*6$JMDA$x&!NA`l>e$94=dqEsMEI)D{?Jk-w35r2XVWC?Ff#GYxr_@iS?dp)%|}Wg zN3R(b94Un884>w`5(Jn0uC-{X|M>1}OC90iR~~Uxu#e6nh2=o=r|mEH_mq_g;Y^Pi z(j;YeAOSOxJR~-Wpcb=3rX6^M&Cji!lggA%IgJk-09Fy{^KX&yIl-vR2h5wDH^Sc` z_sek8)`MKP*U=?UqJyFP2MR*kFlJOXb$AB3m8Gbx?poPXl37#qz|3j}v3%^Y%P_k3 zm-9`^(mDAWQaSVzj#_qUnoGET)>lgGSWlv&L|FTS}Hn{P2qyVdQMJ%X1* z%8j~kdt{e3!&~3`^sD2B{`K(y^kR)6ee*6C);BQUaW{>O+q5}FtrYv0uWYmI<|y?_ zIS$2D4>Tw_Ox8P6Ac@);cozcj9r}-Yy0|11kf!C`Ow0m_LdL?Iian5KP)UlL$xkr5_z- zCw>yKrd|*d!K6*4%*%7gaT}z?`2A44R~ry+=R;?pq^{+snkE3P&tLT3Sd-*hO3mxl zU~9@@X*J2*G%ZfjoLy0Ur9>$b51r+t5%ul$yj_`osoDfXTSUQ)?6DC0^w15pX85`!@SMJ6!$ z6??s8b8sVJ4@Z^bwRIRyp+Df>E4%v%Yr!rB`N6#B7Zhn2cZ)tnde1GltYK#mjUfO& z&OQ}qy{Rfgrbm@pA1Ka4F>^$fOD{;ct@!Es(?iuWxu6@%Bk1Uem=0P0!n}(5CuZIL zJK6faY&)*GJbFR-w2Kg=2V<2RZZUR%Xb5bEI}8n<9OZSGs6zu-l`mS~Tdx@53meh7 zw}WHl$3l^4rsZ^!}8nP&)2gF zQ8rd*55D(f$!FHyhLdGyRee~-I_II@g&)6VjAIlzNw=34j!khfC>T%U{aCnkNr7Tf z5eDqUX@^DP%lod{$XHXasl)-Zq|C!tMpN-=D-&LtgN(@>D$G;WNPRhur@v16u?Gp@ zy2i%UDGQnYVlcd!}#+{s(P=Xe$QG5d3@KWgp5&TIBVf{73%U3lJsPt z6}VsgDkl|4icC5hCuRl{X=tXrm&UXK(v0FI{h2XyZ!o&Gh$8ckG$PAfLI z-$Fy42U;h~z#03`B}gq6`mxfn+P5y{4Z;5m;Zb70L^q!Tm+<^)Eb9C)sDa_=0yY}5 z0c<Lopa?F+p!ndrQl5KD4R+sGasXz0?_h717EF4mg6+ z=2@dchl;`51em5}m}4Cnn?=l1Z)Ce+&59p^(Ii@?gT{iv!}8|P*n4_v;hEYHVEh0E zsx=21aD7>P`|3$YbS<7;)9e3!;v;a)S)j5!$#rTYs%*-z?I+m0&6;jxnvmzOkh>g9 z(4sXjimu6zEPRs$6O)F@~0yM?q|iOya{^ zyt4&siB*C@(siGl(E%`ajFn#zIx{7fdcQJ647X`$5YE9!VJ*!+eKSOx!YPG)9MqFt7MSJUzp_C>#VOEZi_%89;nGMQ;^^sqOeuNqU`1b?IdFpeDjL{cwbmm>9J`V^<&{_X3Z{`0g)E8qGz*LutDlV0e4SPTH=Nn$L4 z1afopwY8KP7$jYi(MfTb6^3GvGlxA0{!KLJmCL`wm?iV_BN(oJBBBT*Z1W#}%m@J& z2^rWFZ1|yYiid_O`w^MgW@5Jaix`f=k_6k|<*#jN8&#wTmf6HO6}Gw%z#A2Qwhljr zm3XsI0zYez_-Gtvwi3cfw$WD*kK5|ObHGtn5Gd0dS8fERP3#?p!PHO8lBJJ#{Kfue zEuEPlYf?Nke!*`6_hkXP8sV7}I+R8!iC(CPTWruSf9Fo!x+*Ct#7C2x;*8Y)Lpl{V z1Qc9_41o!h;`l9J{^*q4Tea|oJY9itjZkz?O42snA`jA3C27;3Sdhk_L9$XQroBN) zR8ksv5)3`cU_3W9X|bGD!pTN8JRZPLvn;L5vr|WwzWHD;>`AvAQmCng!VDIRradG< z)rdu|o4_FX-ckD?nO>wHSgH85QMO&;1&TS|PCk4ezqCWN57Y!Rz}SwpSKZ zV)5TYW99CL(IVgb?UT!5FL$RWV$sEP<>Iq;)W`Pbv*iFbIwf!O6PyvSRNX902aGLV zot~D0;QiceAD(k{*`8;73ehp!u%a=M41X3Em*y}#;9_0iAYORxY1bf}^l#NU0gDT< zKEOj|n``x%Zvem#*%%JU|8umZrVPR~kK=3$ym7(_*?}ITS9uf&cYF zEDZ{ zn~XwPRcRI=QCF0aM?O)%G|DF&{iCIlw8;Ddeyig*-vFW8t?_t}OhcSQ3CnJ_k18RG zs4nWq+?YPFf^Q`62}El`Wtv{9enUr@fYOA5o($V81lWLE;LtKlJPNS8XrN!rd05us z(29hIl#)5fR_EhdqXqG4nHU^JD*14(e9a=7CYj{OFw7|F|6IDBMfbZI~+zhIt}Z;5k0E4*Zaihn78I zrhKZ_g{&naKF_uN6HKp5;el>7O}7P@?tWki#cAyVA`(Kkj3 z`3gbN4r#$W@Y-KSkAguqF0M3EW%$?85>KLXG%cjoMxr@m9R zN!@AY>4&95j^~FSX=fIYvv9RHQuDwDvuZZJZVVP1o|PSf#HY-(m;_ z7Wi9X#N3WNKuiN%87h8Q3rbQ;AiTjDC-kte7I|m8_#f0-#IMJYmA9eL>_}pZLS!qL za+MGg8DPZ5(3ax-gtH;*5=RWb8>fzWWydmvEx=nXDo{)|MjyxnM3&#RPPk!MqzX{n zw+K>fxH0A}5!wYx_tm<;r|C#CIjx=Z{`OQqDt%&K4x3K;e<~U!Q~yykY;Z(6We>y# z8CK#$Ym4a)v$_xR*LfhI+y}9U%%2KQCF4m7=IK&cO#RZXGQ>&D$+5?mY@HhM*)Cph08xEw6*9S- zk1RNguG0u@>;As7M?bLH%qmktx9*X2oHr5f!!~h=0%8E38#PCat=z5$&Mj7NL7BXF z^x@z-QS!PtVp{a`O19rie2XCbD|4+J5O^Grc;6&obk!D=23>D$Pjlf+M0(8OSTyk^Xwv={b)Ylr$ zez5V({eZjJP*{l7?F9Q1S9v;;neioBk-Mw$;5}*Uxi#HE-K_PraH6Y9?Pk0F;g_kl z^10a%DRgaUlU!fjkuOVK-&&bLvXf+8JmS;+(7r1_)Em9sdUl7;Yda^v$~*J98!uMZ z4&`&S5%=TTPxvf5(B?#clVi;lp(Q);%C5h^<>0#>`u*_5_bqgEROjjYF*dei8{y42 z2GQ*+xAycKn_Boy@8+)p;q$@+!i7($OYdOEuEF+A-L;$gGgs9+-pc3yWy{~a+$*28 zV}RPRZ`V7S9``S|o6|fm!k6A#t=4CmQm?J`{coS?j~i=rz0-U`KmT;%fcb3t1>977 zm1=qV4(~xy2uPTM@_=}7)7ku36xtzPV^BC4(I2nlJg_?p2{@Jk;iHsRxUJ{~M?$4> zJHlu@FsrzKM=3KG$%?oM{asx2?CVP~ z5GL9tO$sKxRfpe(Nq7$|cz`4lBl2H5-anoSAQG#0`16w(q%h?goH|*yGN|#4$lcr@ zyGB~-r*-LbE{+{E0W4JiVF1h9UBWxsSF@(O$lOR&+HZ>MwBHxu)6^Gv z&1oqXquTu15}LX_K{8S(q3@^Ij<TD__1@K13FvlyU##-% z?p|EJ^1XZMyfupXKAp{iy*0TkmGQ!zRGLpASFVL?vh=oyN)vg*3ZHc->t`7eR;^%s=>@hJ~=By zJdA*T<6eDh*S@hc)jQ%+%?(oO+D8GlBO*a_gdSNo1wm+W+djpZ5O4aAsB$D{?KnEP zIq5*67n<^o)W+5#)wD`b zN;D6@CF@nm9V6^MB3iATUY0T{^SHY=^7nIXzIm!B?hN&BGI>$itbf&h-q zw9Faz;Xfb*OkGCqy5v#whP4w5hPL;5xnp}{vU}MqBby$BUYkYq{cGSNUd9ziOBB9y zR9RTCr^gsfgY;C=%)FKZ@^(8YBDSgS309YV^9FJ2;`}3*FQ=D_>zQ8fM$aF?>9wPZ zVjX-hPa1@pF;xeT?hzB3UWlK%|9nuGM7lb|#gfPq*BV{k97ClQTZC;M8rhTuRJz2D zG^CMx4BHnr!!1le&>4@)8oDzvEa~k6G1cz#P1oz@q#NVo#Vh*VVNpzeMc-jXTbQSn zlXrA;aW2+cz0 z?>E7yLu$~Vq5))&FV>9=u+_Vag>{ugQeVz00JAO5lHW7)j;w}_%vw~ZTkj|# zY|Sv&H2ff(Y#O95nR0>nZLa4snIOi$6vUS1AW{`oV1(XAXx`OGOe1!VMJQwRTKp{4 z=Mu7~{R%X=^H%RBR2~}@g@wCJD#j2Hpb9K^d{dSUXwa_C`H7Q|7@Zw8cf=Y`k?|C^ z6pC-+T^F9hE|jKtxmuxE%@jOrilE6;;2e!B<;^g3ppP;+#xxHOE&`m?46$bZe}f~S zAw-dt|4K=iW)jIBoHxIRli1AS^Ek-6Qx zn-}g|XI2qs-d5@x}iL4C(HlhTvylJ`sOX`6s9}R>#jPaPU+Ul zB%K=3ir`tdM8(&F4)P<{X~Y8t(ul4{JXI&?YDn)~If6p-jm-LqCj!?^JcIS)tkJl5 zoF$yD&{E#WKC=4r-_}zR!Cv%1_y#o#>s1&c#zT&SK(a?|0{I;47=KMHq@o)bOjK$k z|LAdC&twNz9<|mnZj&PD2SRJ59AC|r^@$%}f(MfOiKG24@dH{v=N1c)Q}X92f6_@0 z;u!hS_!<8XG%{uKn6eW&IG5kUXH_pN^{^9Nt#ovouux@LO0QSI;yXR6@++X9u*{r@ zK&>aR_bmY!pX$Eo_|}%gOMfcbfxTA<_5o&BA~XLdw@mADf9t75>d(Ib#aw2f9z)bw zfqSL?{^gJTsXIOSp7zjlH8pm1ue+si0Qbygz zbMxp||3A=(@Lg1@K6M>Bplr&$f|2UE5{J+uw5}(1%9PnAlt@viseZ87uJ5-zdnt=0w7#w6#jq%=W<8$ys-vfG;&Xkgen5} z1x{NGF0{?v76&GLVu1Qp@@4?Lk%*+KLQVd;5=&Sg|EbA%mAnnrZR3BT5#<%H%Dxg@ z^4oKHHMu&!J`%u1!xpxTKg41U>a0t)I5Z8UxzViiTK4J%6GaRn-(OrfX_V4q!7W=< zS=A}Hx619c>>Zc`Un4B`FhX2Uv`QxO%4O(6Oq&XRJ47-=8VTS)l9R*r9$nEq{Hj?A z8q1G(Y$;OzA+P;T)q~+RB%=;}gQPCut!d9SZ-{E6g%;;Ea7f7)mljKG0)Qxl(a|dL zv$T22@4j-?jN`-w%ju9%AJ%?>xJo74-==&P{fQ;6nT1Q z;CV~oCEy9l?vTK*YN=3nkVIMZ;vEzkl-Hi4q!!u7dAe2SeN%V1wc|n$qic|MK7>vs zT-UsP@ZDU4pnNX>N7kmBApyGw7R~If4Bo|B=0Y}Jm%SQv;KBv2``~Um_Pv^QF&U^N zHm@$m%*ZdDnNLWYDL|+vhJEn>HX8vm#a8{BH)9y(lylK+l3oVK&|L~Sib0T6#rSVnByse~gYv1qL|wlz(61yJ zy9^B?+_8m|B*t_VCvxv$r&FGad@%Pj(T9L%EloePt>mZ?>yt_@exJ(-DCjKkFdh+H zj4YM!p{qFz-1+vsDfDH_+O(o^j{zFXTmPJy3@2z+T*6XLQ+c9VOkS)eVcv$+HDp$a z0KG*q+AtJYZh89C1XP4o3}>szDwrQ4E;D@U&a@H4T#=1`mLC!Fhh7>ITkFHg#dJkIS_6dT{}2E zk*aD7bzr%`Sf2S^KTS#;J6ZYQfa|CUj-3s>grCZh&bsKFFD)&BhfTr#Cjg^z#ALQK zPj~`gN}-$GfSFk}=SMgk@(Fp;9&%sV?E<_lk(;KyMUg`X6Ji<^X=0+a91}!$6Y^Aw zub>~Bt$=Np_!zS|ylJ0Yl%-36*}NM*k-Jj(6%`Z_tddj1>S5kt51j)=LNt()7} zHtfU@c%S7Wl3fxU&wZ%jXK!eJZxD`HA2liUYdIkeXCYl6IV}6aBtb>LvX3~J@n8Z4vj~okiB^6Ck6hcqwz^zwEJ=ZEBwq-| zBL8P zLlX?|GE#Cnr8SA)#Ly0^iBaT>DrQdEdIpy?(wrPPVU!Sp+fA)w4?+dn^oSLy4LjfZ&y7KK5 z8-3JCR0)-iB#P%U1#c2nES6I~-Fu)re3I>wxS*e9gGKiE(68_L`o60Q!Ypf75`{a7 z?{i}p!YI1sF=77q5v9|g|J8$?^JVbv*L;8| znGb#}pMqOp^}tV2Ox-v{A7pIX^PPb^tSeo%-VP~Px`5D|ZK%5ZO^dbv3c^I3{}F^8 z0ajQ46@JZ>uZK8l~U%;oQ_XS?+Xm=93up@E_5 zq3`sApPIO3Dr*A)kwn!b)T!7xNY86Z#zwR5fVzpK1HDBwWP~$?lk0kw)UtfpkkJ?E z7GRU6?Jq1T0_2$Kj(kDxN7`U%{ZHV^t{$MOCz?e5JKls*d=Ft+c4lbG@cY+P8>V@F4rIcZhQrVWbZc{f^Wyw+EnG9De z53znqTYrsFL?ciN9s|jgIapqmF|`$i$qGBJEHi$aei*XwWO7gVT04I=qK}BYniC6d zC_3>d`B^IsfKEPtNZR%>by)k8EAGER8%2=G?Al9crHWafukq00pSrlZ>#of>$P}C_kk9Z`M zj%t+ao26eeOn1!##|qI$T5u#Zhtvs3&Ggm%<5Sk6TtGN4`JPlAPtXx!wm3ujHTnZ~ zN+<@_;EO@GNooAg7*u1h)NQ!405`0w`zSPV!NG+kl;lU*z0X9Sy#Sy+lSO{B$@h=X z-qFxdtB>AGx~r!SsO-ZTffJ<9-q6v|ZM%=b@7!+s8{19sr|I1fw6ITH6jq7&r4$9) z*$3j;)2LP>s&)^t`DK4`aY1QNT#%&U^eH!Am1WqDpWB4u;}MDZ*V*czo?rEhPDd%fL%Kfgb#zcbKlUVBZx3A(@U4krT(H?O{e z-+k*ktuDX6u4kU~yT5M^PmXqTd*3(v6~LC71Kq@+qFZNo@p^dKIj=<>4iEbu)a(#( zM&x2Y-km+1-T|r%}NZ`C6%6--!SDWfTX`x-O94=V4;oRV}y5E z)AMgL<`&NA`2b-`j+Gji(`Lu8!sX_v)ZbM-{d@%SKPsgiCXBQc5+S42YN%gM(i_@Z zRwv%5YeTOQLSqm@m+=rPxp3RLa5*?}RovJeUDOLk4$61n3;)Hyr96klq81}uvdSY$ zvI5H|z520wOW&<*r_WL+zIIk_zrS`zXEzxTZ$k{U+P0=F2!{Pfb`vGm(hZqdVoyHxPyb>{cw!q8&qZ5g%yq++wnmRUX!r!T zRfN_-?)>O5Mp|P0`0GnQDiD&Kb0?T>k0N}?Bj>g5jtY-#=r!x*@K|vt2~NG2mRqPL zwf4#oI#C}!6nN$w73=PD>u?D1f#`JCfOxOT=LXe%^J#lH$UZg?WfChLZTuzNDv0$$ z!+n-W70ji79f%#!>anRi`p&;oy|y`mj9t{^33cc4@A`B(5O6A=g(Wg)Erl;TYgQO` z(D-ERTgMPNiO>K2*d7^)Pff=F(X)^GCKjRlMCtJ~pyeq{aLB59g6nY}VPq$h zuqTTsicl7h)63-Tq{}RP@=)pyehCU8FfzDZ6?Y}K@3}5u14tqMVpC`QDpUR8z!V)4 z<+@~1pUN@7F7Ete^#05{!$@zjvc1sRFkYm_xdkX_q2c==Ir)%j)peygb z-QTNx&mG_C{m(P+>UH02UgqC7H`lgT*S2>gDvv+fg{?3`BN!a8tyUjFtnDBP7&&IL3cURC4X{? z^I|4I7FOmvTM4`e!b^nHQVrk$8PX0hx3HG{#{5(=kH~1Ra~^UA*o- zABUrXg`$jzvE97}W_iC<H(AiO@>1>iX20;i?UeP1pcLRi(xp#^KG0WnL-ocxn zdTaxX5$wCBnE0;r-w<}8Bv%mJ=?!-1Y!`c3COOzi%1W5;2nVdc zsv7N>h6;oyG|W~47iKG%UfKx(LSqY*F~Vli^t~D&l;;Ew|ME}0G)oALc#T(8=gBGm zuS{ffZd6k-KbB=Bn1_{DD+#h}gyTUT#GhD6ydw-R9CE6{SdwZIFWA$_%+0|FSlD_v=o4-f9KfK{;NdVOPsaz#xtMMg|>(0V=Ye{>+n7vyv zrMJ8XM_eRX9K$BFd`~|%?%H7uRic~o1$+(QN2i`Q3ZSpJ{oF``U~&VX{~~^21C`T} zsl}uUygOT360t2l>B$;M>|%p`2RRRj5O6)r;UBur(n=G;=N^|>n0@+FR6Xdf^qo7A z&o{fc+`glr>6B0BgQJ73|4w;6JblYFqaz4Vu^y=TtHW6OSVZ0VR!a@~eA2{Da8Kzk zj=RWNkmP&#i}YRpMJO`&jed5<@Dmqx;b2rh3FOsZS{|>@&-Nh|P6JM6K}-z+qb*I7 z7m<-+P?c~Vjc_$vO#2-Ndu2#^;*vbvK|3A7Wphk5;h0gP&^#-1tcx)w%y@ctSiq>< z5>|nXaqs&WGYPCUZlt^0we+dJvAeRrHc@(+#tGcy{7!8W$5>Bt7W|Yr(81whc@|;E zGmC$e!ej`gVZTkKgOUl27gYLy+lzcoj4ok{2RA|n(?{7aTMCZudm zN=`;_EJ^3ByPX2=NO{TEtcA-a@9{)?(?inhv3QJe1S(hg16O?F{_r;WiJfrjHtEaq zOH7km8IEHW_VnY28DLs0s=Ar~_2d~&s2?y@<26>k_ey4Oh|;UbT!5M{DmU^4o!2Bs zTp_>{#pIcv2$MJN1o5cdNfg`q)gwlIDF%TPF~@OOA*MQ*kvm^0_?PNa_iUj$pEUl6g`t^G;dmA88J z$|$+4VyP%DZ2kOU!~TNN(_MUGsfec%9f95OJ~E2e&Q9$2&ZHwAv=q5n~2p*`^L%nrs;cR1ZQXP7o3OoKOzi zQ}DLAAXNy+AcF-g?inuQa_q&Z(?bY+b@e?Iq8g2Ju<_gWd_e~1s5bmq@L+@vEkNo! zmZBl))&(IH10}sjR8s>DvN9lv%luv#s_E}(6w#Vr00dH@AqocHj0T_ls|YAf&^t+X z{tzb9T$)qA4ZFS-V@-hPm^MEg!lzKWxd7u{d-l9N6II4QXn~i65Up_zifKI(58*k2 z4_*f4ULm^@A0l!m;e+Q;!MjLd0L@?9o}2nEzu~bxFI}pZu?5N_$lI}|{^9r8Tt2tZ zKIG7C2H5-S(slMMolu8o?ya<$nc#S;O~Usp_RGgsR;cZ>(*gbSOpFpAEX2`9WD1Rd z_&@eOB2y)xq%#lS(x0 z%+mbZCpLyS)te$mTCFjQNVR270jKD8J~ZnrnOj1 z?t zC~`$;QkL)Q*q1n4o5GoGOlD>$46l!+`lmo2xF}I)*{<2WY?+hHT<3$hsgP1rw8q^0 zd@xPvF$<*DW$UVuki}2|4zvn=g1I44pmA4}QM0&Yk(2vvZ1l9RyGW~YkDsPcL)>UC zIcT}@tbz#yy1SscISP(NqCr|;ya+bdom9C$IdH|e6ke09%*=(}ARUxHxH)VmtjvF0 ztH!n*2jlP}A-->lPLb1reR3ZAA)%OR1I!k2nJI1jW>0Mn$jqyy^oLM0QTuEl5N^Gx zLc9S@v-IF6yUWPP2 z6alWDKt*N~$R8h&gr5A;swPP^KrFw85`+wR5)`P(YDzA7aVVbvqpwXUOPjW}=mxv+ zY(xziUm%nYSi{m;FgqVX@|IkU3i5<~_us1MOwfn+9T%lnHs(%w_O5Dco5_rGVl`lz zCqm`Ceovx5Iq8_Ivf*TJ{P%*T{sNP+N8vZ)eo0ikg_q%#qeY5SV^Q82e)%tI6G>9X zHBRKMmk3mIg9x~YI;x8(RyL4|4fc}<<;mB1sI($2bT-}QXLt=Sz`^Fnl#U62E8iuv z>yoqYRde7AZ&wm>1r{b_(et#yrO!EKLqmCIr{)*4sKf{$RY3Qga>ED8r4x~!?ZExs z=qy(~i-amm3p#OjN$O&5ZV&dSa{H^q<|9hTWz?1MQ(ivH=|VQE1LzEly%FW)J+ zjQxc74_rv*SR4;TkiycmMVmluhskyzuId>*RThxnXQ84v!8(L-Y@KSYDN|HpH@$J0ZfR#XxAgreNI3QNk@>>a6MoB7M ze4VyhA9-kFgGSy@;W-ty)2X5V?|`}@{DH1pDVRLmh@?kN!EQ53Ng*IeK7;>lFQqtxE{{Mn zHX;TP{oba0r$3$xhb!>KmKt)IuwU~1l)naGrcZ6sgWEEjOj^zWwW} znldDNES83xD$X(TBjVqv%1+BU*&Ey*>RHcS-U~(C13~o|ZG}tsv|Wu482r(JUc?+3 zu(h5HX{D%~>=cem>rt{y+o_|vzg3W$?UCI|+Fj`c3yr>G4~U@yA!Fj;GRK5Qh20Qp zLsky-85cdP9wUfgdj7@ajrFCVN=869wI46*{kBa4Na&Z`UB*x=&b-iew}M&(mwKR? z!rxgda6~f-TS_<4Dw`y-d5+*sFylG${q~XdQMioR$BMs@eL{{IdRh^L_6GBRV1b(& zl66e&F2Esf%6Y3GkiRpKNR$U1ycE|BKbv&cHKmm4Z~%Zt6ns5*f!&v=mx>EA!wYqR z5N=oAl3k4C$bO3miNEWD;#L7v(GGea6;ci%lSv4q_G89y_~p1omvg_nRlEtvh=ihs zlOo3C;uduw$EwZ%0sbXFLI<{j8DWWwV7c}2r^MAZN;_AIJyDBNX^FB|JzLhZxURpj|_CGiUoq~3*`g_=9WoR z04(pHwg)<0tDFQetC&+P>TiD*FS8|vJ6PzU|Izd;VDkn0=Ed}V{lieISdoz@%@}5KknpEi_q;SA%1O`0fFcHD-2?$1jIduaUHn;$~Y0F zRgwY_wn+JP*d3ts0U&iYg*B3>#&Uy1F`TavNo@>5PyjK)k@`4J^2baAq(Vk*+Rb=B ztEe|DqfN#&5uABumX(%XT`eKy!2&I4LlW-LECoj(QZ+D&DWjyqW((^E(J3Hx>MP^xq=jE3q1WL}ug?TcA zU)Zp^@-j-@%>0&FI>9sjqlCLGCKTG>GIq9+Wmm8!D0VYH5S^uNSy<|0?>X#F)F56E zL{M?u(`^O_j*oR2z-V*R+9pHu#T{3eA7ZA;Uh#F0ii>cfZ?dl^aHP=w!>CN2W)9RM zEAgafl!HUL?_^Wn#Cr(87dLs*x3kd5argHn4t~BNwcZ zMwJ~edPZukI820+^VL_aY0ycrpHP|`{Ul^%&6bCI0Lnhu=*Y_#u3ecG1+#vvNWj5) zM)L1>@>y{hGTM3Ux)o(N%52IWbJ-p$5A~E|q;Lyy_jx=zVz~ma23K2)34rl{96{sZ z8ET*y1DwJIr2O876^_0AFqiL5t;xE2hn%G{BJctH>TkOJ*ZgSNNj?@`1FhDUy!f!aI?NjYsb zK~qIz2){1PRPR>MZ7Cmh({HR#m;2fO97FqeboC z-sa|3Z;SFj?Ch-h|9$*CWS1)pngr8?3WqCkVZf6Q@+eG9115Yi*UaclK$P3}274@UB+dswBOw0` zuTt?O!$%oB8wZo~QQ&2JUbET#HHqTZiKx-K@#&hLf-5uc)ThevY&=F;vdMfYhxq_q zp!Y!l9Em5{fbLn<#!o~^vr*xIYmDb+&$}s_gZGwKQO2BnD5t5~nc_^EQB;TD2*+8t zSNeF0r7KI(h2x91_ZVBw{5_FN*~7=(GkOZmi1{&IPm6x=Z@qV|Y^zzsZn6-04y5oXYkH5= z#qec4JTNfofqKu1p%Kr&fLG}M#9zZ4>jm(KnRH4{2d(CLFk&z)%-h+J^LJ} zfBhypJ-Ik7RcSR@+lYR3iOR_@%}3cUO%5$I!oDtwj+7N)G3nTZvJgBFzd24W(MRhM zoMdbak8Wtx+Df$5QL;Xi_A&lMuJ|OoEG;*0rPX}(;%|G<)h{u2fh8MCGeJC(tzbvx z!KzdB9hFh*r;8h)W%*8Rr_taO0DG%}8L-it_6Dbq7DwWXF&CJKp|2$F68Ke~BM;w?`mL!pqo4qhPby z_CVw_Xpyj#+9dt_E1I?l=C?HtV=)lFU2rk^%qvLC7km9^m`uYx`z|gmC&jVvdncz2 z2a(B7@A6MC>M1Keon=>iwQ|Jivi8#rrg+cTVkMNy$<#s7N?j}jbu#=o7%+WgYb~m+ zmBL(P=ff5rR?(?xL=?IKwR{dzcp7IOuS z$$Kbq!2$u@BwM-0!n`H#x1yes(Pt*)%8lvNvHBYWy?_VpIH6a|p5L3gEZ?A`QVvzCmNe?zDzeDN6sN*iAzp(tw~u}d@lg28E^8Qwx(m9veX=c}#q zlr>KYyt}e0D_OZtGRl9SHkoAwSR`*( zUeDq-3-FgT)CQ^R=H=Ba{&W=mOQk676W-y4Y!MXSRId$L(+BbB{RMN^DR*h5S3#?k zjU-==Ts7(`6B;iiN6>;pp&J$>EJjqmt>s=yt4^C-4TDdMduDZMv@zH0N~`0mydPmY z_BrIpWtcN$ik5G%TzFQxaHs2bjiuueQKUllIj8pKB#+@uTS(hN)Qjn`Xc(qdVqG!tAt5~! zeQ@!hWf2+ty}RAw#b#>b^S zCH2_8_ZoY;>#e~_3pyqiEm2%WJ}rr8rb{f!(W(rxEVgjHKxTSFNOS>(Nytzd31K;Q$PZ9M0-;HP(f|z z;;Ny#@CXKAUttRJ8eduOJMtPV36jNPB7MrgI{oq-5t_A|$>WbP_V-#J3OxK#Wz3=_<_Bx4RO}vx<*`s#P2Tg=}J(-?9ecIaX{93MqqnUy* zrHg_HQ-{Njvb>eTmu?ec7 ziS})rYM9Jest=j2RsXp*j(t8uNd^l@|9zsb>S=k>IBi_-S!I$kBQUjNRf<*Q2p3V7 z7mel!|NF$Pc$k7MNg`}JDag!U@rJU>>1^c!9(B_Cvc%*h6(kgmO#XyK@(!lyb~4wO z)qzZ`z1xj-is>R*G6RkQD53`F(CoLp&9=7#)6@0_{+`#`QvPgf28vSoExr6!u~h%L zi)qq2PNI>dS!qmGw;&Wa+1oy)P%soZOW$piJA`4RRQQB9r~Ba(RyfqzuGpE(Y}tbP zu3j1ep4j)OFJ50n8ulw8e$7|jF%|j(sjhd)sXuX@) z{O7joc{Dpe9GT0=mymi}VgX$$7$$1<#su?zgc*()NGoO#F6&ve{uOh=4;$hZd^XJc zkK$yM(`7%(cyHYFt@Y}+eag*}Su2(Y;8{NV`DjG`1>s2lY?kXPn~l+OE1$Y(<;lKv z7|SRjnECAMI1q*Q*p0Fe<5_md(@nPg1@}f_G#RT9eX?vNRV_Y-{T=GIH~A=ygm>KkH&bo3zhORSyx~Ighd|&=Uw+x_S1@Y>@Ty z#C#kkZgD#l5rk;X==A;aG*WFrbfLUM3=>P&IHd2*8wH=hXRIX`y6=O;?3M zjWdds+^n9@cw+q79x(mO|MX_OWbzUm5vcy|JmYS*ZVI6NPNI&SiAz8nscw5Kv@b zx^H^?-AL{0nS7R}>fZ00joVG!7ji?i{L0Ht?o1cY#h}a9#xFDGvT0CyI#AqtuA@O1 z{w7`ScwxKd_u1t$<>KKNv9h>vF{>68c_Ktn<04aQRa|fs?V48}YH>BSo~U3k>Z(=H zoF~hwwmq#~Gk=9_++l1}D<4qK>HyQ**7#yP{bV^+wc>>yO1=YP8v4yp>Z2@}@FZt} z%9vP@_ZLO;#XH$anUAUCq53t;^4xKvu)as-_|YF0_9`YeWodni{Ob6s`{VKJ?`y9i z)p*B}f-hI;gUA)VTs4GM&%>MLD*Y6V!er@MhtIc{tME5OC|`CSeu^kl-I6_pF=jDZ zuF{V{BVn2?TkXZ$549^iUeoYOqPUGeRc-FVb0F8Gx0`C)a5VhtBK+!D@i^V zdxmlm525w2aP+Eh1FOC%VS`|#R8lkam$9+tR&B!=mtNyUZSb^gCg4+}^yEN*a(Beg zn^;4qHS7w;Y7{A^ZI`aK$G7Sj-Q%?QWXmM0NYCbl)h)KtjIvxaA0ozkVb2V&k}Qld zzv`oudNMxGx)C@5+m$P`0q%KSg56rlA$o<+rVQfvslroV@%3k*S(3*j=nJ1S$gft} z#~51`h*ZTJ-*+lyjRtEPJvKQfH(2wZ1vF_v{2%B|UmX9pw~6^5dRv3d{to_u_z#1v zb^PDG{49+4vv|a}H2-gw&C+oF<_Lv9aj!^bK9#H;!_iRg;peP+5_d5UfrqP6%$pRj zX*5L?8|$`Bu#moj-=?Vfw0nzDuW`|E0)Z#uCc$zqBzy8@z)!U>W`^K^of{>U7=UU%{I=wCf&s`%3cUrE(1* zfmTs3A(@7k7m%5=@%X5)(<&xg>>th4LZWg6tcdtfAhDd}C28%HZNXoqAV14hlEA@@ z^}s(>(&QuYl~}-tJ0|?}Re#%Iks6u@grbfpb8*-EWPRP);UK=)pawoBd6JMvi|uSF z;$hAxiF;U>#n~j5rixL~J`$Gh!odUSdZ*}A#xKK3`zS_H^HT9JhCZSZw&<~Jji3Oq zNlBGSfv(!ZkxwOiRTY78i7${>Y|bb_y&2U>R;m@c`vp(TUeT`Td~w8{D5-X<#ER;R zuLPv6OaV$8Ycg0!2Icjyw~qe8IKQ&+X)dX@)s@SpuY;fS8#XiCSr$Lx0rsb6wCAzJ zC9nL_(wQcVk*y~8DOsAxzlw=dKKqOI?BW8R zb@VY`g!oJ!^Ti0C>0`ba;xm2B7w7nF+X#EPqr*jT82c8k&310Xpt+wjHsKbMYH%X- z&L$46G>nbb4b~Cy#*SDWZ0fXPcT$uLZFCk{L7uW$34LWt2|$X%E-zX!oKC;S70nfTikJWPNDA<9xP(?v83PW|A28Ko}r4$@ceyieEtQt zWqnojRylkE1hDG6rI03bS*DioV>aAhy=VK_xg!V}(-LCzTq}9@>{tK09*8S#y8@1* z`?cgJ>qZb*lGUD@M_+LjzqoQsH(V^IKBVokly7$+NZkh!3@H=#X)PdB-QjkxjnAFMy$Z0{0)|^K#?J^3e{JZFvOi&G6Uq{ zux(Vj?QQjx_5}hFj(Q4GG>L+X&J; z8jizGe`|BlosK|{4=zIs7RthFck#spCBeTGKC@{@qd~}d*K|r5mP4bEhg0Civk5v+ zB^NGeJK#6@5npub!iM=mZ+i}VLD9l9$6~9kFoH&->n;Yiwu;&W|MJ>yN{B8vp*`EL zAl}=aqdGhfVMgh^moE>ZC*%s+QoGs#!TwgA_=UTz-ma^dXW5&M`$U`u|NDejXs>Mf zMp!QW?7;}l)z2HO-TD*B4tI9r(=FZkTqKs`u4z%O!8;ScAx{o?Ax(kNHOTJ z3lAG8O|qw+MmG*H3A|@A(L~tu-^_mPSSaw$v`0@%Tv^dxwNh zkQbD-)#HW*CyWsezB9F6Mj}@20Ku4aPe8Tlhrj~4vuF7uMLU9S8Jb+P165eeAO2!( zd)O;bxQke9Az~PJ9&@WnpSQHhkdFJ*)Vq&;D+iJvEM^?x5Okzw+bDV41K#$avTZ_u zvY0O%jc)QrH*e8sb)4I3XEJC;pW@_m3_~N69vr`vX5}Jj)H`=WO5w!vPg7sj{9~E% zHDAD%D9DAlO*W77;HJ6Y#_5jqe=#=_OMSr%-Ocs3;an*qpv@z{>_=O9?u%xWv;Rzm z5;>*-IxYf$wu=BeO0q0-R|>VbTW;fB7^HTb9!@Kzlf>3^!#+&W@QXRxnu_7(=7_BW z6t!`PRG(M7OD~u|sy&4eczXA38{fk-E&COD2 zWxoRwukFVARodzAd(SyNHonCEbGnFp6?YJK!V^mO7X>KG9SJ4xFBqWBfBlulT{0`%r{4Nd`zq+=)>q75`62dScy_FIG>9n9mZ7*VI0*996w?Yl zwB_GcheYfCAuX6)jpPmJTT)c2iq%xb7H2djZ>XW!0`lU_EuF%PW*ARdwKWEpcFQB2 zHPZTOJjB*#KW{Eoq0+dQ8lee3RM5{no?Vr#V(sJJYQ1i|cHuI1x;yK&&e93Y{C+_@SFB`O>QD< zRdSStb672mRd+d9_83=u+=1nhqA(ZMmjc`R2}A$ zQXT|RjQj)RRId>eDuzGlbPZEWG6Ueve(f`{Is!B1ORJY^L1r=Q`l_1QNj_4u0Site_7T-gn)EiH0b=ZQL-|8ouLL_ zyB+9{7j)pvf51-TBKd(}B;^P)*NJRoPk@72L^vqv5mszgYeTkd6CM_7sK5 z^D~Jr#?cUjna^-sE4Ro-3KH2!uGUxOw^B=5!Xax;AhW4bBOq_Bo-L?+hAvJPWIZG6 zqziH!fs0cHSx>hbNrUWXS9RW?(wVe4YmoKOS)4b>dZH}O9ArH%>f{b`oCekTgGx+( zSCFlskt?V)XDwh0?BOxu zZi_$ONOk#dVXo@smPaqh#7Qb(!?V5SEgz>)PyyB}dZXg3@~hco`Z4(Y69@mxNwIjD z#3Q<+#3x62GWC2|wv!uL-5ZRFON00_Z1sD-1UJ>-xOs{IYV0Uy+M3xmkdL#ZIx4k6 zcvfHrmZtZ6>Dm`gZ(Y_8DM6*2da(-L(TD~kQeo{2HOx7$Fa(FsS3hr&q!!+~c#tue! zYela>MMG{T61C!JOeY?H2?3`#atsUC7ddqpih{~`{OFhOKD#=XeQ$OMHN#TR3;(`H6%!upd;32!WkyVwEH^d!u$k`Zu~ zwB*Ut_q~HChhcC5kouct><}PS8}IP#hc|~W50A;K2*-65WWagD*k}qpXr|L~1a*^` z4<1eUMzMkK9kCDNU=-dcO{Q7VKYk#o1@Hx4>wFHw4`Q5|a)0K~y5;%hSa(BgJs6LZ z&nzFi$f-;sFBf;`44usGzx0qRya=C{LHQWJGK8xCoJA?jS&~LDf?%u|{3VKXT$ReP!(!r*hZ(Rj&md1X+c}?iD8pKiUD0Ic zSI{2(KYk?jTAK8OpNkpi$1#+jBpKz@jfQ^Ldq2Z$H~0k0!02FhXc3I2Xu#OhXPCfl zd2y|_qe_-Q+jsBIGN~7K_SlxwtDwX5!kY%QbMc&v10{R_70|7(XN##hG-YJe*`LzuKInkH^Ctqn&3m{Vp_bqoPXNmO7Sq zA&YrgW(?=E+>80S4>RC3tCcvMhRB=)(Qmyu_yY5wHy4MWJ=an{%GwI!;<;Tl+SE2a z<36L$F(tSTKs@hbu9u5v>8=n^qetj zMRlM+OLcqrs?c`#9F`l=xDjFD6=W~g#ffDgr?qzP?Mw;M9f9p|a*T?NkHURV z{~o>)497Cswu9S{NmW_n`ts^Sg~sqKVT8n0?v>&k-1n^ww21$urlM55?5TemEI{@`FShkSRlQMU1G)ajN%{FDZVtpliieE zPT720%Z#o1oozGZI3>T*FLG&MY^&ef*l-a<<5?OuD{m51-`X;{I2d@z|Ms4zlYi%< z8k6TYmZwXb+kj(&5X3|EawTsv`WDSu07GJ7-;Kk|U^s77`Y}OK^1zs!j{+}fpSOp5 zUJL#`*&Eug>eZVi4!e#%zV6KSwuJWPL|TKw-4=+uN+jfYR-bp>OBrTpiF-r$nO$QV zuK)0#Ur;-`4u9EwI*-Efh^sPa&7j%a`z3yq{StS(-87s8QOs}i%J-&=_cCv>;>{Eq z$mbN)gdSK$KgFoa9@)e%xjChhSLzW9w@r!sDCJT3h0#-}D}q?;(d*^KzP+5NNm7Yv zs<3<3kHd??slH8)_VO-qgx{ewS_&&SH=ovDgLMI9EB2ldxk1sXKmYtQ{1?`(BU!LK zB7PA4OgX+DEDjkG$={{u^_%~mpXnUQsnhHBySp3gj}6+o8!*8echg4?es;IF*}pqm z^lyKQ{mXy8=@0r_z1`kcZ@c$RufNmp?R?{H-^T>ZU@NDd_f0gO2i4_3cwX?4_#xuo zKgIfsNU830e#`aW;p=T(|J}`R`u*MA?cV0*)&QOldV|faZ@k`m{lEARx`0IJet=m9 zGcOK@VU}T1sXXx}!6$U*fXAZ0S{CI4IbKl67@Z@2vy?f?Gn zRv-5N_5l9f+T0o7{_pp9*8Bf{_W!GckKC_0ZIH(iqk=B;G@DG(_Z*|(w3kF8-68rN zuo9vL6-W4hJ!=UnQXl$zMcnCdGCc~_^Z`t_8TR3S12snw3BY}Xw^lF@`#RX6(?B-t zTj34KQKD}RzGeLljQ$37`y06X8)(;urfrK0sW2^E=I;wlaiGGNh-qaHU`eKkTgd;K zP4U{a^>2;=@cueX$vO3@SA;342-GURM?r)2IR` zzq2*i+}s@OZZZ9TE&tuq{(rf;{(oN9|MfzXX^?lh`xGx2#rYt?Fo1YA9t(|&BVwA0 z7l(~3>tCz@U5Ijpi9I3k@M_&jgOXxJS?X{nc03<(t5=l@!B%0gyu zvrD7C>lrX~QM0?Q+DXGinW*lu4|~AKS;4>7qUE~{0AKiv%N^eJH$Norxro6j622+# z$iv81Jz{{lHV^VGug2tHJN_fKNCLF^R<(B_K4Bc^HRsm3$^vfY|wmAS7iNl{`b+ zSpgWUgmRMq^#w+B&Y2C1LS=;=>$@R&`9UXn_SZX^FS44IK=Khw>qPgiWr4dm4bMCa z@KKRcuw%g>kZkk>N}S5LalqR$QIax_z2$nM ziRlK@X&8@MN;Bnz$yqmpW32TlobPjYteZV`iEe6|hb=!h_?d5`STz;jsFq@VG!*!O zo+31?y$W!MC;P=#Z4DP%6>SMEbb=O>f&NW*OirR%u^4to_Tp=bwOaUHZl5UGDXlG~ zv6_bIRREi18jJ{DhlRDoVK_2CpGp-FJ9 z|KFSbzvBJRdHMclq5jW7uhfFlhJb#thDktN{0K^1KAj(LNT~0(Psvy9t$i;EfH~|S zHsMYPrQr}COs4s~Xi^DdLkv3w1Q6TQ@c)QHHt?2^6w3=d5Qxj8&o*%Wf zA2r_Zcl%yL!|l1s^XcBk#^=wUyHP&t!bfZz9{<=m-pKOVXnvU{vuOrAZPMS}7zd!A z1(#vA@pE_QFTDF`K={tGid$f#z4dMI z-JJh8of~)9$MW~T+k>s%`u_KKU4IOr83CubrR-Nj{@cXMevtpR2S6m-=>Of{MK|!Z z{C6+%AB*v(<;I%}yl}}Xq_eX#(mK)V<2B!5EwTv1sU*|9C{OoXNmm}nMIkfY3cfl{ z;N2lvivIndAJ}uC#^VGV7thPpc#8k=8#U(GPG8%`EhJlGdYaUmYDjwT)2i?F9Zf<+E)6mV%^8 zkDhofrKh&ul|gOVp90I5Z43~}`Mv;=N62zH(@fOG&Y)Ms>5{A?QfA4Rp_AxTsR(LQXCYJ=uAbCT)wL)7E1Pb(GeQb&;;zhu%DK9QJ*FIi1sR4Dx?9w{`TQv}=9@ z3$SEuZ*VN2zplmZKcW18H?Dsx`2Ugox4E;smjBlNf9s#$SO3G`ZqER!_kX`X*d3Vq z-_BsY|LF=X1fG|Zb}9YNxX3BC`XPvC|8CC)Dm^4K}q@>`fSR$Fb5Y z->fweemy2USpj}{oP0&iL5VL`3SL( zL;#<8hAx5`P~aJ+(?Gzyr~BTZ7#-^)PGY>CD)EQ&BpJ7C1i=QcTXa}cSY_FE+={HN zPRTxiFBCty3cm2v>!G_DIc@D*8?Sk7MJI{G*GXoSl7mt~H>*6%Dp##57^bh;BE)yS zm`iRdQLXpPyVCMDGYosQyPUInC%$cRr!M-;N_c2OcE_#7ujUj`cQ=;44*YAMf+cNk z9MOwIpgX`g%YB|u8bbKqBF;XYR}q6&*T9AiZ-(JC_x=&iX?V-f=p*LQ$534rd@Y+T zg&)HUw$g&{u&g$n?Y{Xn#i4pvd#{SsGh6=U+$4=@g%YI0xJ z@NFY?OJ^tXl60aIc&%9pJVo;{O1}#+3ftv<$ z=lYwM33*qMCy_sP6*;lI?B$Qi+a4M_^%pfRY3waEEVQAQWX|&Yip<)2te3E}A+|X0 z!XRCAsw=x#Z+K5Uwl2G0ms~C1V?DNR!J=I(&BoJkN=jnDeNGGX^rU)f40*-OLHT7T zDlP&GjGc|ru&JY1vja-OV}VT1GCK%OTM^z|sWosNgFH`LtX8|J#z8dO>}e4Q;oG^s z>mzvff+I>OYZlt8l3G-q&B%GI?*&<~Vc)NuC}(l>&wbL-tkci&@3GXWeFdZdspU{= zmE%I3Cgl-^YfRr|1wr{`^%pi z_dor?7UI9byZ&G>*g^b{-R=I`{(B!ksu7o#T-a)rLq=F^=@R&*j8bF=kWx-KY_50J zpJ4w3ymKMY_IqKefs}BVC(&WU-P)`b}&^r3D<%r7@_Et z%e?zjL|Nl`wsj_SNLjC3g1eC8KZg^RMPxj0sW6Nv=(McKOxk*;6c!fJ_6A#iql7%b zgWb13{MzE6X>`p3t9v&ud(?%xg_I7;d6Mwm zfYo^kZCoblTx?ucudlumDV*4=f%@u4kwcMQZ3$)~lRa5(8O8YNH#Ri-^>C!?ee?*g zUh3)kC8etQF1!p7T$U1vAHMQhk20Su928*{O1n1Z2W+_2u|mBf1D1RAdJWXWN)<|_ z&d#oa>?#}qUHtQydceP1vIW1!#ba?NFZ$Ylq>fMgbvW8DUD)GK%XMpyHoxNQ8|CRi z|EMq{->5W%Stb0BB+sTW$(;^ny-MKibaoEp1BWPl&jSxl8PWL+uSgOvL!gf&=8av< zVv1>_ycn7C;o(0e^(2^*!no*TQ@zjLb)|;Q?nzxE_urgv{RU+xgT*n(#Hv{DkNRC%e;MAV}Yx#!=UnA(YXFl z^rJsL99amTeMOS~ZXa>dJN-?z?<&)$GQ4M3p#c?ger1py7Y@&smBoFll7WxRAOrrY z`ktuPM9Yc5Q;qJUee7{Io6@{kTu^v9m^}WQSwPmMpke;Io#7rSMH$PL{mKewf`|K! zvXxg9*H0%=h5h@)%e$JvPdypV%5TV-;r)d=Hu9e-4{e!K!OHYqJYOr+Y!;%2>bclA)bp4_2P7vd+4$kwr`&yo2$M5xlGF`qR2`YP7$f4XP;zYw4vc%vW>^l%Sh4Qy8ie&Cr$ z`>*X4Sf)I}mHaw90V>h91c_KMrIW;hC#3*Mg?SZH!9(u>vlBkhY@Dq*x`xCeC#k$0 z;9%1&{0akR3gyN_IK$0r0)EI#2a&GApKf(EfHp|q2prL4(Iq^G0=CfdUFs(Va__US z05*F52M^&zd?5Cu?6{%yOGU~N-(pl&mlf3q#TiLo1*~nWZ>w6dZe2MY7DQ*Bb5=Nv zDKk=`?J33`9(b=E@kQ))_l!m1f5*#didwB!M17?-hlQrzNPe@7q*f!Mx?>Ib#tG-YmKLFk zIyR%8uZ^+Pyt74-j$0X~zjOrED7r3nw_s*BHq@zAhF-HR*-B}GZE;z7Ity1Bq+^Ur zG$$G=4O5#v8%^C}0&6yBpToj%%(Y@J1-TDiR;-~(CV5FQM&!xTEG$7}FyzZJ)(bpr zIriAaI0?$bpr=|D!x9~wXQfK;%+*VTkvxk()^1s`?M-o3v6ptUN>#o6QbomtR8eui zTrsZI2H%oPiuV0(FLSO80||El{xEUK~R z3a9@1m{wNDX)7#~D*TCf5Tn==+K;&B$%Rg4%MjL5OR9{{&8nVryvd^et{Ryidzu-)|eHL4A4nkh;p#Cxtz> zdlbc&d9*Zif~+_Qm5utJ@|o+$RBX@`hFFX3zS z5@t2}d!50l8%_&brUrY>y~<>usmOcT^PT1BqgiwPy3O^gnzI4htZb~*1C)}ua~{PA zDE#8^*gHD@c=+ybu1j*|2xtaSDZB$Q7lai%@@H)U46z_V2iU*K+P`e zo+aOWPy?I^7c-KJ+08(L$y?2K(}9!s>jFD?NY2%H7Xd?ozy!>faT0t1M1fJTwlcELK`Y z;MLbCj+v5O+GQN;MAc71*Rbzp>t~WDpz^J*4ZX~@3Xkyl86O-K`~Yh z*kSofqyb9FJ^Zzpptk%n95jN|y@=wUxUR^b{5`x8PiX9MQse-V=@;QBn`NCK8%9y{ zOBkv|N4&;4A0_|uiVxAE6Uz}+XaLGr&;#-JLd%s>u~Y{)xtL3*zN@L_=s@~{_OBon zUSGTM6yLf;qp*U!MN!#z+oMqI5D(P#uIR%clrPb?AWJib52PAFoEnyOEra1A8{u7> z1y?5Gl`V$&yks>rw*)(i6k3%JRa#rku()d5e-smBHG44`%UOv_)ClFOGPQ{I3Suhg zs2tF>oG;S?UAb)JaH_n@hhAG!&Mhr?IXz(1qgouz-tfwDHhUH~3l4iplV<_Gyq(&i zhyX5`>`N#fikYp_`Eb?6#`M409W1vpJqudv1{oF346w->bkz1H!E_a3qOY_``F{wq zsX-=-CZM1nCL9UVoZvssSpi8Diyu&>JDnZwWW|Pq1H>s})57AW`R^3Wqd8nH7|fI=V_$4hXScl1 zcn*vfj?zL>V(^XH7RBpQ@dY-+>yp;)U~EgdEh?(<`&)>0xOf*h4tf-O_!pi>7IMt(MULb!pwx0c`!P1uMQTx zZn!%&It0=&yL8Up5?XsLQHQR^W|MO$B<(pTps9?ig$B$0n$bwvS@i_kk}Znj@Ent# zYz{nn^UUiHcDz%oq}}Y@G%*2<6m6Q1x`P{}T1&g9b*_pEv0x#{iM&p$p}|?DT8Vpt zpV0D~&Y7WVLH3S)2%_B7pQ5TRrGkYA=b~vW4dT>)()^{V40}=P80#2V*Hl8MUg_rl z#M8TR9zsh7CRFD3wTFDn*x_BK1^aCy=;{{HpzSrI%Q#8ZtUCLMH4`N+zWW~i& zSjJKy07!d)(+plV9JuzpO75qA#Y&5|oPj;oxnFhS&dx|2t!nVAo@gtm5e z@Z{0uRX&~CtWmnX(XvSIt!HWDl6+Bxo4=#9BmY9R?0ET1#hqyIW~S~{y1@z)Bx zwG|kyQygHN@I#8b%-5%%0yrgn+IbRV)l$Pi3el{^7Ii$H%0(`cB{w*fB%UXX{W`hiwE zBh@#)iE>aZGJF~=Zt?AT$plc_^~`W@6SjhI9MUqwnreEO=Bv_eay{%@JnX#FWo(GT z7YNCkcZR_l_h?Fe8;s$zCa~0Oz7eAOQRW3X{Feu0IxDvdExBEhbh%!vYuS=?tqI3z zrAxDIhV}Z+z+VrKSI3-wh4Z=8bZVBb8@J`lh_1eAOR>XemW8Lb%#h1j8V_UWJEGgz z4opfE%Xul=pi7@!WqE8^uT~b>!ldb_E3F+?UlpO?a>46k7>w%(TPi`GO~8Es!hBNc&YOe^mGBKvvlh6&X&PCaGjwvutH40!EKh)|BW2m z+`iRE%2vOtGvy5?HN}m>cThHu^WbK$wi~J4E4+Wo#vXgEK^vyuzb!-hkS15rd4ysP z(ke|}F=~Cd2!vbb_Cp;lEKk4ZK9+v!=$hy$Sp5b389)`Uu!$kWq!I8v#?wa z*0}ImM3B;xRXPxu8*YiaBG4+?$w>#V+uDFkg8j))TBU`z{J^c(sMvDlM!MOC{QHVEkmnf6 ziU4^^Yj+Efrw;RO0P?CQb{Tj)H|ktza+d+eTWx^#TXPOlo44g@a#>`&3Sc~KXf^Qd zN}qBk_;!vhqT|~+-3b;QShnj*=UK&u;<%BN(U*@s1FVwrK&XEYPF+XDA9AxXoAq| zl(}Y>h9eDrUEDFU3>VrODd}zugBN181M6klr)nbla-XK<-s#=+`{vyvehp>G=_^D; zC&WuJS_P{Q1daL2F$J7Z8G7}4tmWciNicdpXjeJiv!ULcZ%NMa)HBi^6#*1R?Sg6) z!XCPVn#x9_VcV;@YUU50fo>M&a*AHeKO|X%){!c0)8P9`+ zUL!}_(M@Okr0+jI!4aO;gbgaMy)rj$*Dp88xI@$HE;^DGEC{;NG<}DNXC3Xnl^Xf( zsn?JiS7v$j#IU2;0_4c7Wrz7?+|16pmYvbt&!*07EuFW$#TP_wi?D4K*bcIp2B=&}@iLym*Jg;)%hN|qgmFa5@? z5_0Bg#jT?*a}wsdmR!@RP}f)`+fX&P!t(n?7w?WQqEE@JpHe!?%3oCDQ!0jPQC8N< z>{^*El-X64SguIfxy8z<9&8$EGRx7El#czXRL!|v8fGUeiZKW!>ziR_g`5(q8VcmUeTZG#dfqZ!ZAFVml)n*8zA6;ID_pewCVO`$t920~8atRVq z#`_6Jbq8-sAa+BJ0J^`+Y17@Tvho~dwYw}l#>x~`J14!_Xjx6ztC2t6J+zMkQ#)F0_=8fa^9(NNS3nMKFOw}hIf%uN<1i%~Qcu5LcQ4nAxowfub{ZuE+?^N~ zl*RJhwre>OlCpG@9oEzr^&x&5tD~Gn=X3tZ03%h%V5ohQnkAu3IjoapmM`5&*|?f5 zS_v(QQL!rRDuAMey1G-usVs)p)PQUFP|RJ9P=?lf8tw8uoEy;4rq0iH;ue?{d=BB;X zs5}ZSJNt{AfyS2QXWGlFBqAv%UwDp*&4p_{i{Z&7N6ZnIj8IMis8JRMT}{(09O`ST zlqJ#a2%1r#Z2Fid(sj~p)1PO9zI&d)r^`;@SRGlw zarVW4nqJetD~I;dt(aAjP_wzQyRgz{RpR?(VHIFHs0-{IwBe77BapO!gNqA1#;!wg z7}gQ?v=*!t@5150eu=+W0=$KvL7lI!7?wE#^;-K+d;wX-5^D5nlRR`hlt0@gXWvy= zmHvdS<_lbSR(VHPex>~abH9u>QL=3O(JmX8xcOVKcD3lhb$j?WiaCFEotcd1R0uJK zqPif;&LoDo7=f<#nFq(08{eYybGhSBHG!>i_^I`+6SF`8ub2-^KW#Lyc-eR*tNvf# zdis0HVs1~z(!o$#^9p-uEecQ=h-hjVA}HPTe{FNC86wL!Z!6CHay!nPbLQP^pYEl6 z9Lz!L(w6HopGnf(TJ$`gTkw`wFd0ch&Q1+xAdH*AfAi za$%Bm!+7-mf&s7VRg9NrZB3StLCin@{4@M_n1tyNGu5WEahUzJ@y(yUrNp<9SeBE=;op9|=G5-#^IDLk}-HJ>mhN-k@WI8m%8q2-7i} zXAMk|<1q^9k{2_7SJ-;nd>^YtMJZz8lGkuy+~7d`DaHR7@;bt0lXo}tz($!P)_XBj zom;6e&JVrkl!gpzTW#2$;N7g@;Z->Ngjuafw#_UM?lmmooB==de$2uVH5*LMqsv(` zQwN>NoX$gnfYAA;RQz1wOO;tL_0zU0bE7JaiDPh~C~8z%CEcT$;89+jS#mx)?N)kq zrKTCLpsG9?aujGN=7g0DSEbHWt!YW~6$l7Xn_UxXXuB4h^qEe{?*=muzfSclcF69Q!Y+TZUT}t@3rbSR6|1r_qvm=-tl$rh~ z%C8*Oa20?J2$doH!-g#(E9fN8&E2Y$VFzTe5UNsFT_Il`xDsk&A9odWJbXuhe5Nn9 z1Tw#52JC5k9cC)3x@CoApbPy4{g*zp?w1-NGxm>`_myX7@6@bTGEgwcB~W17!#~u; zbLj`~5^meMAgqd(j~j?8*UWLSuw|}oGA4>IzB7ic&v>qFM{ zj;}%}7o>Qg@>DxraUxp1=UeJQ$@0_La-*mT!*7!oT$vNKqv%$8b8>e|_; zmq>GMZIkm(gnkM~KWR{{`gGY(9BoKO_MG~bHh=Mu@GrBlhRJC)yRlRsnzeX^>~eRI zSZ<{ZZI3eAp{ZEe2>c&HzSu2M0|S4v3MuMVyk#ExyGbU$eDe1{ zU`ls;K6ZBscGbSco>~?M56x&u4!ZnFcw;!$2$^HD+!TWj6$5B&CiL@m#Hf6*kzkLVpcIL$&xZ8ER@Zkn3`O#=i@o(`}UB z)i9XEp;!*pt&PY;^J%M%r-_*JD)VfyF3dJ-f=(@RD8!0p9hb+Ik|eLfRiw8#Y5Iat zP*qv|f{~zhXDcA@Jc$?Q&Og_orJeJ_n2w;H<>X%iPwETU&`@s2`Ww+*uDf+e)XU)vaK3y4|3L zt)NT+W$S@X5erFRZ58+mtO9qi11v)+i$BF6{u~>q1`eRXTdlD#W&lcsyXFF*p5;%D zB_k5*fZ45ndO1LTs!)3t0jkzP29zEQi_uIM#WhQ}^96xZ3!*iYvp5V=Q$DyeLWkSGg-@W$Aeje8ixXd4~Ec*Btg?~_>AGvTYFi((Yah71QZ z-R_C{_=a3R=EVJZAzqQ2wc|wnMltI5X>=K(jS=3FXBoCTOhzFZsozGQLhohQdp!>G zA^O!or5fIvx*w)yy~Dm4pMCJ)fp|s6=1$?oQVdhfnal&P(nfZb%*G>}w=7T6kkUp6 zY#Ksor^bgc2ckY2XtHTA6bAkXdK*VLSHkp0>D?to@{zi1fsdJezjSoaV^BQdH2C*_ zjCXJ*a8c;m2p=rp4ri+UlJ$=?VkV}n?_QXP8S8zqb0HNg=G)?Bs0t#s(j_YrdKz8? z5z=^&?|HvGc$EF}K)PhK4QIuZ{;3Na*lCpG7gLWi>Fi;1g)t3wx|Y>!d(G~zu!UPE z*h}liC#t+D60)&{J2l}Y?$iw=TiFjJTiFpLTh$XJTiF#PTh$jN`{K?Z*)6?6^yq%g zAEbQYs_*&=Yq`lD$dRk%B5ZBOeBW_Rtv0EQx!_a^x5=bBCCF5DVyAiqlQFrJLyNI8 z5B+LbW&C&}br(gRMnfGIOlcei-wnrePE03T-!G`3wG7seXDn`Q3IEm8be@t z;}u6Z)kb>0+&D|UnbUArV-)yyAoPqwV=Y_d^WT>O0K4g)fOw3jINk)~vCNZJiM#Vc z8qf~nT13WN3L?Zk#{x{efCaxmWIT`#{#y3DA?;b`G)ta(f^a!PQWEC@eh>H3Tz+aY zAoc8GPQt7*Jy~dkn`Fz+4@q0qpR0!<@Qh8K|pzw`Wc8dW|X4^rOSi3g;EzFwIiE7Y5D&WlZX$=B%+ zL&uMAb#Rew07;hFC9?2#hgKmovoY&~v&zi2f~``vtD@n_Y@A2a>ZUo^kG6KTDlW5_ zhF6CSf`tv4&k7QC^lMFCC93Xw&F3$U4&EI%_oSpG7l>cukr^!aGA9-9-os(8C7W4_CR|2ZjKN%D)g`N6xbih_5yc7<_fl#Gqmgd;ECtr6SKAsu z6*n5L*h1~QM$PV{8!fnmhOXS$8HXEQU8FH2^}1pWsQo9`rzKQ0y+n659R)e?Jl&?@ zTX=-#GixQIg*xr6HQ4KF;py6@!788dW4z+nb6EKRK_BAV@wpn`P-2DU57Q2n<(Oaz z@p2IsQ)9I&fF?I#6xRUw>BcpHm;fuloC28xd)dS3|E=xbc7L$FL-;@2Yy6*k!vA4+{||7zfyIU?2B?9Q@PLDIxGs`sadb^C zX@YD2c>MZ%h8@eRSWMimB?(DwQR^9C@Chsg+a?0xUSEWhY{|3HlV z-E0!3(eNu8{P*hMg;540=Fr9AD;notEaN;5$6+4cd_AKal#(n-Q+YHBldo&6eanm< zKHvU|MmVsH@Na1_z51GV&|up#%AcYv`l|NNV8=F>VH~Ex_$wOau4R<6(pNOj?-#NB z%|Yiplx+XS+YevQ;5U1V2H)SI!QYqs$HBJlLIPYQ|7~t>f&90-J=ope-X6g7{%*g& zwU+guk3dxF%p}NuFy! zqjaO`2G2&TO-@_?eBW|~weSn*k_W?fjUIT#cG;)P9%wiXQZ>kjMh9okKlfh;<1DmZ zuT{_;?iQBjy5(2QzH5bF&B&KJ4+X3N_s=L`C~45XZ_sGHZi@|TRH<0_qK<=Bw0s4U zy=cpA@(;92eIf^BIgAffuvHH8#-*Uir3$v)S93xcq6h4nPq2&lWPVa-vKar#Co}{X zgdx4GJ;@j~`Zd3gKjp^a;v?VD^OlJh>W0U$j7{)*$>`gr9Z+%lcU7``+(jPYn^bnrQh(m;s9L z{!q_`g1T3WuXu{KP2!N zonqoqIP#v)MiE7!!b{#R^kjd30By4j9oE-}F$JyA_aBGDt2h}amvejBqappe@iEN8 zARS&gO3gEjcYQvZL~(>p8+qay8{W4KlgR|MR5nKR3mySkr}M^}Xh<%jQ0)EDq4#_` zO_OV=4}ZTndgbxgjdw7UX)yNQ1o7o8xMZIkUyh^fs_`CX1)7a7#h9oq>>`}vVB)+1 zbAOozlL;15o8SZjzYS`X*=!sq(`d-nO8uPT`4LK)2tA5r()l#UHm6r}r9^U(f5wPv zl~UmOo9H|Z(kRT7KHmbxjKhqPAnK4;$>%&dBd^l&_-usp9-YrXedZ>CDPfj!A0p@hkpm{SKl^U)L@<@HrYnH$fsF3o(wNfxSM>ke`}Y3EZRODX?N7m` zzm`&ttni`7dT*RoYioCPuh(`hJ2|;Y>K`T1wi-Pgk=nISd%k;Tz&8khqy$R#9x_?m zqR7F#Fc=I5gU4IPy0g`{WEV2|;_oD8<0p{~2)J0*7&&QZbx)$Z&rTEm{G5m$!j0zL zbTO%^K!8f}TMzYgT|>rh-5=>KQh4!uOpbIlz5*qKtYqW))UEkTtruw{tFJMer)Rs>3(Q+TWee2<)YOs_7YNpof&6RCUYW1*fRmDyA zKER3Xi~(2I0~(M4V)4J9Ef?UfCmvFRjq>5s`rF^@{_}H80>qtD&tcP9$4}A|K zlUIVnUxW8`>Sd#p4EWpn16uZftW%;#=c?*GhmuG`XNp*7>4b6J=p`9 zlqAoRrzY?eDE8mIyv+ybFf$uN-7bmhKnEKy zi3Ps1(L1mYn0Dc<@w@VaQZpJ#H`-RsehkD?Q)*^I(drHITdym@LVG-eHp(v}m>3G! z_~64qEP*y<`|t|!_cxP7mWKj+aNq^@$p^nUv6p7`d<}PMz72^j2H*tX)+_t$*PBWd z9tdlK+rdMLVp8!(@35!~@4>{AtM!6j)A9=4P07qWz&|)32QfceS|HhGAitX0RFn2J zeCgVLB5z!+aT{3;9v7M*MomRWm!TQf#z4HHea`Cozy4HPzROFqwBrO@Yz$Es9 zh5^ao4PQ~HhcNWnT;kT5aPb58^&4=@!BROZ|F6Y*HcPxp5@~~1V)?Y*L(X#uE*@#b zpk9su<(`6*bO=%qob+OmXV&W8zP9d9J=S83?Zk5IS}cU;-HFxT!u!E{bnFldCr6TM zdcSL-JZd%F=mP02y`dPbHts_;a4Q|KqXqZj7kt!_H}yK!D5~k6+@g(&3)jB4S4Gji zTwwlez;9))t zW2dF?>o18AO(W}foQ8t7mK<3`_BftH+cidQN=E;R8M~NuPU4hU`A9DU`z!|bs9#nf zf)E+y%X0OHJyDixSKVA792$KiRbvT+-N&zk&6-7p5W~l8Mb@e`{)M|r6ATQtyL$D- ziW+B3JSaYnaK;H5F!a3*VaKcx6MFy2U0K`U?sZ!OezeKISZlF|Q_m!jAltV#L_loA zrKqGCN@-6TIraBb7uCsA`|cAGvz5s@ zxR;Ed&%Kj}^#UZaC6X}Uy$M`H&Brxz6iZ;LG_-X?h`2X$m&5bndgQpJGrmC|jz{uH z?f2`&@ywc!CYE9~Mvd`Xr3OD)bS9ON-;VM|EGtRm<`md&$PQam4)s(~=~$_Vy_h!i zHBdhgRUKz^8hkoJE27~%4xQCE_!T~#)71L+(=@ldv7|J?N~1cEZ)s$g zC2$!wZYNTgX&y_)6u43Tz_LrFdo8>d4sQLYN0@!w+mj7PImdQy9+{_lE*Yhks3N6w z&ulObA3he8Ylv5&wDWKGbrm zt*)V@x>CnN+9>|2{Z0|Y9mqd7NG%k>oR;8A9Jta(@jz?q`8fSK^&BadeNbRj&qub= z_NXr3w#%eEYi!?8K3)Xy| zMdzVpC7@{JvK`Q8`^)au~dqj5S0^zr~hs~<^Cc;B zx?EuD0!>QJH+2RP>Yq{YPt6UYQqn>mA=3!yOw5NjB-s1kh^6jmIfySJ zSt(0gE#gNc2=7K=F0(*f%-lle#bhmwaE{0&kY2v@C4{TwcW#+MDT!DmjxQ>vYqHq9 z1LGo}`Q@QX!hv%9I?+U3@02@y?Z<)qu%1rr$=B>g23=B;I~jKC4g5;#oDnwjn&X*m zt!i?;&|Ds%hgIB+?GQtGelm+z292R0_e`Wj7d|b(_&D?`g}H-C4`*`YAFn_B zJe@=y56W=NS^l_e1<6)%X*@FYGU5ZJF{pqQC|ixBMG{KUsH{*S#i+(jPc}QIh7t;^nkvU1?t6mK8oHA0ux%U zcO4Q7VMQYA;vE?8o>{dsHjm#F)4;YYgS1?`yP$)U$;%#T3W1;yVG??Sw&KiQ+`A9O z2sKz?Gix*kaQ6>t5vt=h0=oQB*Ruk?aUj`dnA$}0&NXiv0!d*a-?X?^AXCP{t|Ugu zCMP)P706$Yuw&Hh=;>qDzNM2Tbgn0tbpk+Qzf-vCfkz{`t2MB10yM=#g{A10-f3}y zP(GuwcqG!4uasTF7#PhqZ%pYeo+S?`0I`-bur~{r>;~L=$2w~RXtw1H5mSHDv=;m` z6B~BvMNdGq|HM)n4xGYT#NH^_DlG6ecT+4^?zGY}Xdlcsp&g0X744?65$znMl$Efw zOYP*(&R(FJ#zsrd4&v?9bt`74V)qpQn|GkU#f1xi| z^?$4S@71->`rqULFbM}hWb}VsZnlq^*Z!gI3-B99H{aA55*X|F7%( z2VYSNoc~ar_rN*tp}&w?PA#l>9!5qIGu_YDY;7OI2%Z%@$}WheJxy$DGP12Z*4B+M zl<$$pndb)v$NTLqn=HvBdy|7I=<0PoFN$zD^N0!x<7DQwQKxZ_O4GB`HiRcuh}t^j zHb%~|V7DeXz(UlP#%W2Tmtb){#2Pc33E(GX0!sRby(9J_C^D9EKS;%9;EN0-H)@R3 zZBJDYiyEcr)_Ba#IBG*IOr9(gwRH-dyg{`_9||2~Tk2E_MwCy=Sseuq;>eBt;b!QI z&+bT`p-|L%2+kp3ses=~Ev*51+N|Y0Z$Q+L#%V~4Q6ALlmoqkvg0U%tn^jf4*wz%m zSTdq%6&2bqRL5GRqF&Pt#fNaL2~{#TO1UEFN?5F=Nh=Km(;q6@LH zFy=+e{-;Z^{Dl5ekzN+5c)iY$v`#gcsv$4g9ZclOq)J`O>SigIt(;1=ay#fUZwHl2 zObK0jNp*~txMS?5;Cw08V9B=z*+lQY-n^iSc8UF5IQ7e@s$FDS$eIPXyT+5+z|nLapiV)SU0CYWtC(h6%mS(%fS?=*`mLIiZ!bG!s^v*U5SP@iEvUA z`gma!ndM|MJw_*Y%z;%4MOp!wB6t?_?~|;RS3;%`XA5JT!D*RAWO6I0loB%8d&Rde z2~(QVZ@F8%UVf#QlKW9f#bI_(-(_drwZxJzWma{`Z3WV0LUvQ4rL;~>7w#>;C`-AW zlp&y9lx5jj2g{UK*@ap1518dtquoQ5m6tf8Zleb>3xbq9xZ7)B0%U;jlrfQx%E^kF&Su<5N#T%4ks*jR z<-KNBOJLNkD6|F}Y-Q#as%XVFtQIU-k%#=$YF47g$DRtkFl7`OG?Fbx88uUsB(Ql& z7?uhYt75WGZP=FY1z8^LrI*2cdUWV5o+S?rSb>1G*pXlt$*tnKkQp^p^0~XhwQf#< z1$HeI8LG#tslYkWp@>;&=SnXU6+96UxNXshEeRCWKVeoV+On1aZ~vF9y}x<(|C)L? z-2c@w+TUn;r=xeO{a>$m|1VJ@m9ZCiMD|>OZsmS`9DjXW`1MKr^-1`8wedLEcpU94 zCNGBq@+K4GBl}db`s$zERqh{okwnh`~U9izZsft7^MDNTd(^6D~|t6s`_tL{kJMG^A*hhORxW?nYtO( ze`{-G{@>NB`oDXf|7Vwen^dLW%842j-4vP?HOSuZny(bQ&3N8>ag*vgyG7yK4vD9E%g+ zLpRM~(Y?LmT9nFFMFRg3{J-(O*Z=ft z{cqp$-_iOXNWK&K|2jGUqpP(m|NjN9|Bc1#e`2SjswM%{B*3r7S#;S@ zP+nAUVpUX3)>{kI;|Fu)sVJHSJ3ReUOPx}^*Ok(;rY{ZF!LGi-Gv-w+c4Ph9?Wszf zt!-*vflJewdDCdNcuPfz1rqGf^`QftMM^J1Qsf*GLq?bu{{{br`@325}RTsIci!7}! zvXt7y{FIOa#c+2~JXSnD9K~$vhL!Ew`D%Xdq^M>-V#8W!`J}YZLWKnhk|xGilbC0X z-L*9fhNqZE{gr0ci52i=<<{w28qsi`MQi7tR#VgQADNYZa>oBVMi~Fm+g;56YPYKW zU#~g-kES5D0Dy)eZ`q!x)(;6YRpokw<$5C4`t^EZOsh)tR9A8Pj~ey8)HXKA|JAfs zmH)d(`O8ZE*&zR?gX{mG4AuBw<^NRIp87vo`W=&s!7zlo+nE7z{|Cpv9r^$5u2=s{ zuk!!)y8au@TEN&dX=tA(^Gy!$uMKKY8!L`?d^2KsFZ`J9Hgl$YjIzmTCkb` z>($y;sxMTihwT?4RXkUrT%jgg@J6JqWU5-~3zaIKbfNBFu$T5~j^dm2W{(fn$aWb5 z7P=%G30u%=P3@_G_B;G>qGmWGLO7@W_v*Il(|fV%(^p@FBjA7SU@F1Nf!RDbbMn0a zRx1TvfEKm1m^Gdlj8ivgCs*gBbmc$>XCIL#e0w{dKi=L(o-5swv1v=~y0TchiPnCj z5B$h(-efIMvqf~XK-s)R@uikn18oE5j9EgUn9wT91RlaXj^q$##yKznMZUtB92SyEK6MHrNY$e9AQ<6k* z8h){pwX$|bU`lMW!l`&!wkSCrY)+lw`qA@CFYe;YWr;5c%k7CuL&3>p9MXt_qxgVE z3@~DiOEq9HQPsmHGI5QA8F7Hnc!txqNx7ON%M~&;o=cyliu`7aXrxhE`$n$zb*<_W zC3lHUP5}l>{jmIk30~IYU1kCL&p4nbJ|u8ZXyP;=hXxlCw-QiymBLB`f*7DYtX2Z7 zo*1D1QvfPSVQPJ-HxWwku!XfHItb73L^$CSX{BJb;N=9oHbL#kXBZzAcrGHe%(`;u zVRdK{Sk8LHMaxOS>cHDHJb>kaS_xo%TF)}j`VKH6czHC=*E23&^As=xUT5Id@$eGB zI-P#b!0USe9xBCT`k9N>Bn7GiFEg<6^kF4{^=UcD!0KP(Sk0Gw)tWEUs`W1{tbDB( zz`9(1$&%rB9$KCVAD3UaXg#K28TfVrph56zd3XtcojDKFJ2%64{qTdL2h4}Rnd+Ve z1`zu3M-L2g3;t$+frlv=I7y>873($dEtjz6;yw%38xPhS0&4~@@PNIaEiD?eJ8~}p zuT`%fAGexX1Hh55x!SO@UH5sg5HUQa{_Xe6)!cH2;4;j>@6w($gEg-Ya3&k@VZ!Rr zm`{TO0Rh^{^P|xRQ+>CN%;=rt_|whU7tJw<)UMTncl4}uhiRak1c(A&BfX{^^IoPT zVLX5xdj*CCH!+YVYo`?{n&v); zsMv8N9oe07m~fhv&-yt2!-3E6)I%YBal7v+428-JUB{09$;iEl1 z&ar33WRybVnWZ7m_~_cptI+=7n|68)NY(2h73uCN2$VyTgJ6Vfx(Ze38ss- z_@+LX%{R}Zn_%F3K+R{YltyOB>dorjCTG5}EqfF7JbQWrk`t*UGI zpQd9`Jp4<2_iga1)(HOLPw#hlFAHw(=uJ=kCR7qI9 zPI-v-BM<5-_$mWzq#)n^rt11{$k}4nKLoIA`)`UA@ywu}0&GuQv2ef8sFZI_K}E z3w{qswKRh2A}!B7zB;y7rvcP|qQ-oZPK>`rWjG_ju}`0M2Q8u-K&G z^YwfLme6ath9`4k(L1jSo)$G7J;vG~(4RlL&)L}|EIHOw4sk3(zo`doBR)!^88Y>O zVQaZ^8) zxYN{w^6T#bNZ6|^fEbaKb-*9m!fz`%qI}sEaOFIdiHeT6@ z$xq6{4uNO*SY@y42v$-;%(h=hA)wv_ptfE|A>djFZu?~v&v=;)uv{@p*$XNE3>4kr zT*CIS@#1<8ZGs1jyR1nCX;lSi!7z(|X4qpsSjsfV;gTD_;ho>qOsmXqfd-Bi8sU3F z@$TiZ)BG0ngvs_>VYMK#-k{Bl7E&WSQ$2mI(Ifo@_#1%3m#qf(%#QOyv8MWHYB!pc ze$Lkky34DFk!JgP;oZq?0rF^gT;o_OC|+c}oUNVw{ir#0{1?!yJlDKb;P@?O*y7W4 zk+YS zVn;D;x)qFVi|FxPL9{UTLeTH;rcZPW%U~%f1=<&AYF%WB9hJbkxC=$*_0`~Ros$H> zcoi2_^1Y1lqZ9z%%bc@R9@lOmbqRP7li^l*C8-8>Z7(_;doi^CT-%E=?o8P5cqu(P zr6L4H?W>8OT)_(FiT1QOxTnQ$$zMFF=j43w)($v*678-)cBl5qfUrlcL0bdf1^$LZ{cB-O>Y=^t7ML*f6tSH#xuJV z-pr)5z2=`$uQR$9tH)>!)*+tBZu)g+smbD7ay<9!n{-FU;W&WQJjpwuOB1|CeiFjo z&p=ys0hn~M4|Tj)?98&b^4w=0Y)1Lr(!6dt2gGf17%Sss*Tr=FM_FgOw%BgV*E1b> z_dJ;7>qg!gcU+kX9arXYc?48lI8neyn3-VD|IdErp#7@{n9L&(9B&>GJ|<}Y5Br%j z2%p2?752EIBXHtnUFLAyNWU6vz(~9nQ*g!zo_=TL7s zL3rgW3VN|A1hNNDMZbJ@AC}&(i+ufx@RjQ@Qek$Xmyp{JWyE5N&prZz2f#K9=fe`H z-EK;?OZq?9xkHZyB94Gta*jeYUJze=X`#>tJDEB8PGETCOw?km2!;n=74ma}dXbZn zomfI#8)*Y?NWyaV?#cro0fo?-Fz zGDzT!fw`z~>?gGmvADF5mUx`FSiAP>D;q3C1O|gcQ4;e-Q#iv#j&nnH#SU^tf)sft zEn`E0sdD0=fK8}N!DJXU!xRxDPrfuRsklH2y+}a=#qxK%t>D+YIK*mhqg%Uwa6s-|4!$5B~Ko$R{M&t_7$k&TW%VHcZnmQOuZHoBrgz$Ur>g(Di_5P=O6vWRYOmDE@BWQg-Pf=*a8(RX~z zl*iT5U5=MCY9Y^y%*oI@Cr~`xyvSOB+C-OhL%1Kub&Q=fnqU^C&J_C!YIJPVhU*xi z&|FD+?W7dj2{jvA3AMY)Y(%^nFwsQpM%V(}yLZ{WCuHcoUsKL=XEXUZh%&rW`?Hmh zkva-Bcy#uhtrERQe3qcdQ;Jqb?9>%4zHZp2kz>tv1JrT1qR$+B14W>Gu@|mFg7b7$ zuczD`4<60K@gPB+Glm$lxt*iaH+BPrO?hI8Jw-lNGkX$AEN-BB-aIX5k78_Ij>}c~ z%Z6HKd`&VdL~bB4kIZIjS9j*NZkOYE<-r2v6^QO-@IMdI4f$hsod5KG_aKRh9GaHs zAKBd{clcq<42OY7>z-B?s_V7K|Dsfs?V^Ag>p$&oCl>!}ncrxJ)-v@f{k92Eu%8HYQ#+WV&p1QiC(PQ^yt9_bA!~Ds0Fe72pHMzrglEzD6(EWTB%ds zqeQoIsLhi_Pk89D!IXa6r9RgL;@3TEIKeMI)TGZnnT1jPLqC>sM zMJGzGWu^S2(4iiWBN7}f$wY^GkBbiJEqS-D+ED^`;uWpr`Vo2Y$hC1+m{hH?(y(`c zxltkqi)ZTF1rznl+Ka5^BL!10PuGvx<-}9O>17;30H_3qoRj%4{F{ywXRC8eLb!W6 zuTcnJ;HCp=b^c*60#K=Z&^rGJnt~X4+Zm0pVB~6IuVQ8yNH1o-_{*uI$Ow0Sz9l z$x0$QHQDe5WLFauguOM`pa7z=I%u zAi;&6K_FVAwG`w!_K1>~D2H+4%yv4IedpVthO=hD3&BYiIpaB$4 z)_|G-lZ_EkdwjL54o5`eDjkAtBy zym){8bMLCJz~7fw7e5V7`=`pgUzF>QedXlh@|UZ@hmY6F$BVPm{?$y}arVhswp3GWc|PHUMA%{i=6F5WAj`d23(;bZUJ;B0XH3&G_5;QAaJdk?Mk zl*``L_2A^@taqhc-dtT?3;`Arb~+fIob?8u`ln53AKFyq?==N<9yW|1fLHJ}{Qd4`I6$r)49>6nS64Te*Mp1mI#B*Ium$Mu!K=E9H%Ky(5n$#08PnMYk)$$suk=oT8X(%Z-2ls;=s)uIj3;>Z-2ls;=s)uIj3;>Z-2ls;=s)uIj3; g>Z-2ls;=s)uIj3;>Z-2ldLh^U0yO0<2ms&)0Gwe$?*IS* diff --git a/src/auditee/python/requests-2.3.0.tar.gz b/src/auditee/python/requests-2.3.0.tar.gz deleted file mode 100644 index 4c8e509552156098dcac8c0655b3c9d430344b57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 429521 zcmV(|K+(S+iwFp8QFc=T|72-%bT4vcadl;LbaO2-E;BALE_7jX0PKBfd*W7>a6a=Z zl*-!;Q~)VE=`I`Y ze$PGo5_-QZyeN*!^-7~s-T317_^HCr&ej(HyUqVr>zn*9|9nxaHyT@;Th*;C_`J4R zZB)N-w!ZiSeil*ehK}>aUFiAor}gci*=Y2{CUGO`-+z&xFnRySo$l57<%dcb#lP+S zZ*Oj{x&N(tt+u1@zp(>HSlimEZ++oZ|GfX-{ijlKnuD=ByY(i)Z8Mj<^d_DgdCsvP z#X-2tm6JcY9KnfGsKX;ISGUTw?PBihm7iSh_3PF}$2p*pqt~xct-RcyIs)U^JYCpN;e2$781-!2jLcL~-c3)4eNL zGjw!kLzqc_dgM-M)6fy;Q&aKTJO0eMuUD#YvT@){p{pBvj`wjs@dvO-*y6{f6Ai}R z)Qe!(k<<6!NJ8%(j?WubV4jOa6I|-h8@Y=~j04`>jN^FT+}OCeFjj<2pRoU!K)y^zQ2dwARtT)`b2E_@VD-3iP*^yzr_&Bd;K78&u+zyvBa{UR7bu1f>Jh|nwV1^(T@EPCSbm3h<4+O^0 zqe~nFA+8eO9pN7?pVoh%KOF~fuh4Vo;iSCaF;mX1lnNNQ+Kv3;d4S116KmrqX8ZJ0&Eq;X7x%FIB_Yow_qf1bpY@H8}Z@M!@;;Q9Q-VH;goQ3uw-|FP)t`2+s=QLM???; zGQ#%&@E1jVAhKx3UT@W`xBBKq*w_0w@a70ZO?>}+)`uP+bvq1$5b%R@>H2uH{w#_C zzHm#{*%3ygE}nESgGL!Ixpg1-L%sp}KhxM5g~6172Cn0F>G;$61aKFe62Ebrmd>)* zU*eNuxIXVXKOnGOEa8F9oO)%uqGuU|ZZyVQpm*cOu{VXO;BR;vx9~*ZwTE^xgp!aRt|aq;M}9AcA1xME)m_ zUNim`;g$djX8ejHTovxm_ZTk#mLk9~yFUnmJKy`(#X}DIKO^12mhD-z2t5T=*d(Io z4Wu*zxQD9?;ISp}Qx}#FC`+N81;Hu;93YhvEEAA5K5Qf`Q!l)QA&9IINDe&$yPAMq zqg<;4-OmO)IEVR=P~<_&*f3&oq8qF^^gGt5E2UQ>vW)&LyN%vsD6w?TLQ;5lO^w|#)c z$Qdp|KB>j*4jYnkcU3tj+jWHTJ|Ok%5!=^)`mFjdmxG)!S>jqM*XF^PepnJJLBRLWYLM2b5A`1 zpbPhYu!w*Z^~2x}X6>GJ6oF8UTskW3N?VmzB%5LUn|$l^LT8L^xzD~E`2%{^GZz^q z+%RI9haiOQdmm%M#Y096*Ow=Bgk4?+9dhRah}saT7+e=(S^9Jq^mu-6cJGJ54Dp$B z?}ok$0EL$Tbi&goWr(p{25~R&ctd~4=tS{wH#f&Y6gS}=a9@M;rVGAKYz^x~+&Dn~ z9bX;%Th{y?+)D^U(?(8$01+Ct2XGip6xT5eW@S8{4g9|@5+7>b8X(ekgc$%70eEm2 zCDAaQV7;#FLks4go3cs zdh7_yEdll`kNk;&GPtHGz>p6-3V<$tb8+6if?JFt_f``hZ`gDW1LW%fVumvFWI`|k zH+*n@cGf<~>}8n8N$}u>1bs&E5|Jd)o=E^Qpaxab3qaI?D1Nk>fRC~IUcp<7 zCMX*z#)t#~Vny&u1DaV7kM$KC1R^Yc&IcMd)0dAy1>KDhN&x^x2CHw@0ziWMYBD4A zowtk>m#p}9OL9_3GAS_N$piSSXNJ!gDM|^rFu&qe0L{jp)l|L4l76b@!v@m;#7&6K zXtLK+fWOx)MFXkP;-*}g(}E{@>Jz5z;zzE{?ZFxzd{|o_p1N?1BitQG(g;Sxxw8;0 z%=vr{AObfO;!DNnh#i15C&XjyhIoOlu&w5Tc@>Kfw4gtjpom30Qs-RQ&=SEDbY0AF zY{kv$cSBE(5EqL|Kn~$Scte@WV4&vemz6;kjWkJx@6TqZ_K&tU0 zI6@hNTSUb3q*uf!gQ$TUyTS+w<5zT07($j0?<0fP`Ha=hdGpU&E>cZyp1t-GH3^9) zibRD&R1fj~kfp(OH?e;CNS#_kcMfkgxdrQs3d;_H1o`qD+J+O2NqL0u0>C?f2L^L6 zwwi#r*asFLgpn{nWd{kh3gQSmjNF08P>MPgKoXVC3Vl?FB-UWB=|4}>0wCn z$CV^UmVST_NU+n(##7eMniLJlGS#cQ7LyHwAtUHU(0o1)5$WIDyz-|#-0v#{8ABJa zEeVdV+zGz^CBPO7{I3{FdHnje8jz`dAu(VvAzcbqeGim*vQ*bKREjd@(@H{r6?>#; z7@*O9#p%wy0my#DW#1t=l?Oy(DoX3250DUqC>jI~@P&6IP&~NEAd;q0W}Rv!ijl?e zz*)OFA;H(ZRU{5s=#(I;v?bJ)v?qqWK1jieQUoNK(J3)5M0rI6h%NTL7?mTM!vlnA zIQ?PpFe6@HgqF|;@gTvrDz=(v<`h}FNx&uYre zT~htPxPv?QR$x5G{p(i$#%J`eS^cZ)`lG0fWU5iE8LT;3A{TJh!sigkC}xEK`(nT^K9!;6#VW=c{&_r$ddo(PT%=X(6{u773q(U$_etyF$W= zxU?kwAOsI9a>;0c=P*EJ`^Z;>5HaMM1kVx2`7>}O z6~eB_Ns^4pP+}P-unm37tSXFe$;`%2aXuN@h0vZ7Ka9um>Ct17n-3_!MBal7QO>S(gs?Q;{jk*BulgJk)?UYS7kpq zVXrMV2NgC*HA*CtmJ)PIfjNo}q=R7P2Hu}oa?Q<&wi(weg052odApIzCGDhZ-!n1M zsPVzKFWl}e5XTq}80{^i9LTZ@p-o1gU9FXCYiYy5@%7nv?L+6X{qDNmz3QeIFVfh< z-i_56UXIVe1#?Zc)=e=BhApBuZ=g^!Ap?dJ(uyijG#CgcB^{1_fp;G3?0a{>n%+jN z_4AEgml4$jZFu*k|Y=BYkso>L@$aG;m)T+#4D?}3;PJ+ra3 zz{RzIBLT=oItNz^_uqt6Ym}=DDo^E0u+R#3gk`{x#=MkLgTk6 zV*$wZ^%iLbyVeTUpJ``?HfVx~6T=*9uB};=(RR#ewKr==v+unCNWR3PS&_UUB6Q#g zm&EYlo3cy?))TQb8n&rfOj;j-i(*EAcs-@xP$tz7ElR9+W&yx<3?P>pv~Yj~0u(A1 zMvzp|$e={5#4e1`-hk*JS`5ZT3wG4qZkw~HZm&Iy6XJ6oT%T-sa?#52Y1wAKlu@_T zs5_6n=ZmC-Nj*28)$?t)+q&p%D3p^zO<&^i%;#|2FgOy79dJX90jnsf%;=Sunl;YqpAT&Dm znc;5pdj;OWhg($^0b^~Wl^Cv`7)G=^Du)?@HGlpLF`Iz#3>O(Xty@ve z4a5-1V$pzg*N9neXCx~Si$om6k_{1ZAPUV_x6Ae2wFmMeTq$6`Iq>;_^iWDI1n5!W z-opBeU$XB_(-2Wsa>`a5px)t9G%ZO~EfQI!N)K#x2S%5*ejh9_z(bvNue)u#zd|#z z)tcFAbv+z2uWIxF#25-oS|($w*epQcR0=!p!&IBhKja``l%Av%Lq`x=72|g$lISxd z#UA2?1S>+%8fDe;gbeX&Oa;)I&}^0K>k+5LHYfq8;zrBafas-r4|AZc=~f#S{|z<& zQFCMC7NB*}uK;D=xbxs`#$$3K-q20Ix#{T>0MY?(L=c~_%pw)|?u?BJ=%hsqWx^3E zaz|co3V0PknH3@E`$FQE++t+NuTjc~;HH%)+Ve(E`TmdhFW% z;i7%nIc=X^wN3y7TwfhK-Rp~s^UJF*nNftjI{Jjklhjg=X$uu^#(nT2c2yh1{5%sT ztnS>i$Rj#`um>6q$onN*m8g{OJ#xv@mO(gsGPo0ywune9nNM5;$=n+CAE@pSO~Z-% z$)7C6^^uT7No3)YIxnQ(AZbQ`7QHEncM4~T69pNL8J8`|HjH|f1QjA5uf?3k)Noca z2z|3$Uw;QJb{%9_IadFkck@vKd-hjW;%Bd<1ESUp&J`|!SS}>}MhigH7p1yM?3ay) zhVlzby&r_Oq4;YeV(`WA_ZP)%6WvhmN}Um_UsY}ix5p~f^0 z%1h+GC$v~`9=!P-Yx6s6H-E!uthWgL8)wfkykpe}D)se3=xbpO@_Tu5+!NX^BWyiu zgiA~FxMbk3s<#Sk5h|M*%kaq&V^i^`?i@d14K)T7;Cm$_sepUcNH+B~wlkXkm;we= zPwLosUdMLp(D-UG8XEB>bF=Go^gx(8>u2i12E^FVT|Vdq8s^aqOt9gNqU+vY>bT zf+n1!_~PU@@`TbsI4Tc8TnC^eVXW_skjRs)f}SUc*U+u@wZR~asQnpG96x4+X8U4c z+kKyW-ISB@*GvlqI4wb+54>g$Jlpom==Q_a@%fq4FkBKqHE>CD58Y9>lvbqT6khLZ zy&ik)urls-QRb^!^VQbBc*B3nBQwrvklWMdMgDSxTCkdhj}o{Wqow+qC7NcMHS4V<2d8|!q>%e%We3QI*jNU$HHbJkS1ARWCUJWJ+sieMc<2%6mhU0T#WjR z^r6%p(V;k9&i%QEG^CQeL;!Ddfug>mC;!IavD#Ym$ZI0=w!|%(K&OCe{tyWcJi-SM zZ-G~V_lq>$i;6Ns{W&wV5Mu*>HbcpY(KneC+03XYnbQ2RG{nSMd_#1QBC-#m&$lF2 zbmIbmowdM-?rz);*csHi!b1){I#lE{1|G^Cmg|G1Ek(aH7H5h5FtK2UiZgbYi<|Zg zMSFEK*n=GKW@M!)+f4Jr2B6apx~pP0#zi`^j=Ms)HZf7h3_YwZ!*8z>nleT*Z)_Y> zT^Gm->?|r-h%;i>53R{G(6~aJEXr)}JQUjzPtPc)hGwVw+WTkda-wL0U@8JAZ(vtc z-A{~=&|9jWyU*!KOlX8e=ayDsY8}oF4(lv@|ge4`Y<^X!=62hFNY@%juVr$(da86}NCc}X(xycP{Z+>Ml*fsbI z{#zG0>wM>V^D=PN_gV)2l6Jx_)9jbT>;fZz`kHSq0;KJ0zSJ7ANUkImzM0z=U7`~s1o^7aurZ3TX!P9=^fN)R_HNcIQ{(I(6R5R#33YT2uDYmRBo<mN zxr9^vb)c|Zyg)9Q5sZx_2{kB}Ktz$ms;R|St;N@$IBVnM#Xfod)FtUpYmiY^fafwG zjj;q1oYHg9Qej1(prwOgjg4AxVJ3F|+ey%eHxYR;ip#_#!l{lhPx|BU%@{s zm&r*AhSj5PS);Bc!{?(B@e+j*uoXooCKu0zAJgX5l!-7d;csL%HJJtC>k*}~klQ+5 zk)14BLeUZuLuMqSm5dE?j%ktXCPV||aAPnD$W729iabzQ8MzM>V4`dZ#3&8#k*gmX z&G7MV(0FIVZC30c86?qj6aY(;O~57%ot_r2q)= z!%c8=C@|cTPE}26J@~bm6HsxyLCUG1k1=~hO?7gbh^0I=puz>{=TTiZV0$*^qhr~? z!TX`812`Fs&wEvQ>~|08cDkHu6gip(`2Y$A6(Jk5*OXI%#<*v5;wCSRjH)&3mQi_t9(zO0&RW_A zc9^B(amddSaU;82vN*(nns0;flrU6t)T?kC;g0+ET+EoE$elXKqA1AzJ^@|%Nhv;A*#SsFZA{(ledR#3Ax18 z^hO+@T&6gwfosew$;>iBIONPVXm7943K|}voB7l(IE+dFVIMBz3ZGIJsffiKvBwW7 zX5@8abP47@VkM6A5c&cY?~KPtq+?MGUka~YoNfx13+bgdLXYf{V&h9XY7mv&oI(R9 zBALs?L@gx>kX+rviavi#y^$Y3c+HKC{=^;Ui+^*%3@r#CH9W>m1G-y}@E!Uc*c{`r zdCjCsNa5qWco30eG?@=brv$K~@wgf-VgyU4E7U{lV{igqY1OQBy}Xo$nI=668&g}9 zG7@MkTi_`4oA4I#4n9iYuWi)LufCyq2VBrv{#-;Sc5P0+p-XSDV0U_Ahv>;|Fh^W8 z_+p~nni21yBAaCeu|)5yH$h8kSWBv}KO-R;A~#yQ19rHqavzZ+yLB-sJWsfvFH0s@ zM7+BB$ORde1d|nU5TURoZ-4aB)sANuKU(QQ0)qW`uaLvrA zuz+_qWeJW|bRoZwx_KY=S~o^B z6-%=^>7q)b!R`|1>_0QZSDZqJyt%%r;|n8ez{Fz~QXDK!je~{Jo$B|hp1&HVrWRa# z&Vre5qz9FV%%T@XPwV>12q+}FsN5_n&NJz)W>`^9ML~%L^~f9}J=5Nink>qitIt{U zz8}WpFR4d0vCFkQ<`H^dgbIlqptmdM1j&8z=g+^^Pb&ZKN#~$_)@}dx`JdP4{{?8P zZhcX!*LSL0n>&r2EzJL0-K_qZ|M!phISA&<(7zqW4(60}zGF9LKsRt0IYjd(Y|M$ycw6f5Rb`!2;MhPC3dBm43u%PNKNT_X)keP)}lF zqh%CK+~RzYF@nCN(ZrlQDx-lk1jI;7#ve&|`|$8kacQ|IGH!@{DpGI`P+z4k*E7+C z{Ic*vj`YTaML_@2U^8(a(97Mu4L$aGgcXQ9R&t_X6hCn04)i<|)NG%ZS{}-|Rs&Rr z&zx7SuG8tha`s!@P8TyfIp24#j?aNieBZjfY@J0p`4j8^ufhMPt+UQiyL(mfXMY&}2fVYH#{XM8jX&}KAMvAdBV4vyho^1K z`|k*Dbk5GN;5WxA2|#jCPb-1uONB7mLp}Z&Yu?u9ySnV`Ujs_(BEl+`a;L#ihZ{u1S89g1o@9t& zmlv8j!mXg|1F(v>p$jtju;h$@L8S1$u^Zk3XN>VtGtLx79_T7C%w}KxD5qFRP6Zo9 z!N4a){4f|SOe7%rd<%o!l^(B(Gzld*5w(c=DyOVEp~vAbFovBHPkn88JL*n*kHpui zMC&Y}0@felznE#Hl$$U56F(Z4EOxepKEM+t5x_n+$jO|NP0W4H5N)rH9hNwc+0>8a zh@xDK!99`&NVUb29xZ@5jmFG=4+DTwnvt|`lD*2P|IxLb{OqG9XOD6F=v85^79t`9qBZykVSB-B8( z;Yq=uSLY5+Xv+>q&T0Gd;28dF?RQQ(S075wQRnIm$2@{TTh2x660rXDN$WCqaeaAl z4z#~@b_m0sb;H1?#Ejfp+)7D#-Y|denOKK*o`~J91AHjSr`0s%HtY91T zcHz$w?DFyoy5^|s_nmIL22`s1bs371XN>C5{ZzKz2h9uO~skcLQXz0b{_@UtkM$C!< zI5l9sJ-c>JF!4*Mb5C5*!^>$Q7{Hm|r^#4$gp1J6>4-eR5nlf$;$!Y!i}1CSP+dZi zvf#$J^3VxL&sQX@hIyDn%eynZb6eIG+%yLKE&<=MP9F?-2Gic>(C=G41%wp!9R8+J z6%`?&@-ZypI*oqAIaEqWHd#ud ztTK0|)DzFRGfK=QiVt&&e?#3nAfys$8$5;R61SN%w~030L8atu)u4$xyPLqNccJr< zKZ1deCP5IEoc$n*vFT|mSFP8`{ia%T0RCG!fNq_qd<}eS2=5Y+b`DTueS|q>sD?oT zA1B~eyu(u)FFE%WR2x+=(j|Flfa=Jp5S2zYB#6#GTeZf{pZxzH@pB5u3@yE7QQ|h8 zTBVjlf1#!ci_qT@kmS0HDY}9-l~t82gOpfpF?BK9&oPJ)<+*!nc>4_hog7CoG*dcf z{CrM8ihX`1PkDdn)Ux9&%`(7#kFKy7d< zycbOS(RYWpUIjSPWyKF*Ya2!*LfO2{Pcue2AlApQw&%0voiFG9yyDL`hPt1On4WiK zZtOn5Fm0Nb;(J&xI0 znd>y5P%@wMLkV=T^G766s~j^%lZJMM87$f2O})ud52pO5NDkyQ%K=t3;9>I-`5wfU z>w&lg>GX7%Hy0TTHJ~cH1LS7zQlb$Q1eS&ez~EZWACFDlxzEyWK=q7tMH{p4POS82 z5`+nKl!E-Gm;?|BAtl->5ZfaO@O9eiBBw0pAC(N6RQu$A!QM!*8{K6c^wpSrZFt=n zLfsdu%!9kEIA=j@F0hgbniQor;$YX+C_$!am$@yY&b;Jt08T4=&iEr!G&5YLK=lJ)$ii=0T!u(H(mU*%FAPU*Q z)H3;ufzZ&N__$KZI3MIGZ*+2B_TE-3>}5t0p(wUaVdKqCW2d_H%}uZJ$YUfgID$Q3 zwkV#2>h@rY4Sm#_HNsRlas(w#07z+9^r*@5Fi}aWA?aLH#BwoMsYf}q{MNWV7iE%U zul!?@jG!x#RU(kVtP{f{oTE!73o24ifg_nz6pR`xE9Vl(=%0dz4QUD|CdC_K$_$`# zIXft^@k=695W1fXlE4IMj9TCXBGMNnT8Y_)uPy_ zzuE~uFM?p=TR7cH!b_JSzA6`zfqpjdtfu>%7o{A<%L(Tpd2c00wHsQlfN2+9)2co3 zZZYe~ciwV?(j}-UG^@=TcRQ1u4!?qp^$>5IG2pwz&alli)MX$HAc6( zG6q}5OY3ud7lm#ySsLPzi|$xj&6Uf}zVIs@?WiAUiQmhz`84+IyU{osdHz2PTGvCb zXBG4>hqk^jbMfUTIwcYZSc23r7@)mpg^AmE?9Ch~?W>oumeuB8Rh)ydhY1TY;~HkU z;C#)F`qM>aN;H;qU5NN%1Q!?O!@)wuv!ghSP5Hq(Kr3A`-cv4MtR~6|Mc27GFxp`d zn0>&aljThhh$iPYklDFt15@}uk2hhLcP~JUh~+^zP>Qk;FP)J)1?IpFjUxlzH-_&x zOE0e2`vs{NarnsdCe8xWA;7qt-xtP*54@1Q9r{#vQVzsnY!ymQTEywtpA=1~n@7&s z`H#rIox1maxQObTgnGsvYh1=a=r98p=EJ4gF`GGcDmmRdAdDpntc)=Oy041&V!|cN zAW9uv3WGLl#eF8Wb%e;4C?FPkiF_*9+Cztjw|;!Q=$pHfz#V%#N`3J9^%U!_g|A-& zSx~K}r#c z4?Hm$%w+1S-INF=E8dEGuDE}y3B+tNCZcbNsOfMRPPPIUHuKdo(<`Z_Tj{+S+DB_ zQ}FBicO3|@2R!fKuYi}lNwjB;{k0nVuPAWt)&7c=bN4uh!0@lgCwhB`Js!bRsT$}R zTvxItdM0Ac!e|+_($!ZPj+HCj(^Y&kIE~+;rn>t1jcTi_pS3mCZJPa?)>>CT>uatj zr~a*KudAQu*I-W{!EaTIUH$y}n(P_CXjOL3g2dmlX1nIPUtGIA!IM6}hP&zZ>{{-o z%WqfH-C|pRo7(O+_x#(|cuxy?_FTWR=6m{ed`9heORRXR27CtAUa1NHGOYdhL-~Dc z$6N5friOgxep5B&e+Me{o7A2+7=C>X`WIiwA5o(|J=_0Wt$Ir&|8+I%6A=BZ+Vz%B z;iWa~E!^@eYuRUj|4ME9mw^9MHScWCmKvB@PM= z-BzvxGsJ~duTvEwq#QeCa!Qw1Bo4$*C?ngz!k#?06z?>{zvmK(02E`3s`r)*7LQZYdaSx?^4)8$f7^zA(zzhSqXyeO9Q%Ts+=3< zM=p=JN->rsiW}bC90yU{)D_rPk@IxHV1T_aa2CT;B-tHR*D_JuQr*iQ;v@(n$>OE+ zJ*f2Rq@&0G>rz_P#LQg1T_tdpaQ-A2p_8sxb`sE!9w~5yz7&W^roc$PlRGcFLL6np z^*AN2y&{p?+{X&f+q9Zw2R6{f0m~+sj*lY1D;WqgU2Q!Dv(Q4S2<9=bAK-hoXvNuB zysE2xVsfL+&&A@}-_Q8M5CNeg)aZw@pa(k}syvWfc9@JGD!OL0KuwZ;mX96bDii<~ zFH?M!f^GnVq>+XLN~c&B@^*z7d&8z(dyrQodF}v`R2}3;dK+PZQf3hJyH;`&E)bv9 z&s3T)q=;T5qC6yFqs43>h7sT!Gsd8_F6djP8CMbC6Y@qkw^-n6h>xhAd5R*RI<2b ztjoyBiA@)URZ1G=m=7CC+K9NA3N_*6ucrY2uUR{UHfyCO5s+|NfMQO4qBLDfqHS~M z)|!;_Unm?uIejfT4|qZXR9Od!JkGJu7!{Fmr8EH*VCW{)J$83p(^6+7GueJ!Q`wz( z*3P+z6P(u;x?1_Glf!1$rC(Rco@&#lzO10Hn<`8H_^^f%w1!iBAS*gmOb!i5C1kCm zma(`c89r{(D>SAGGSxD}DU5khh43ft?-AbeGj=iO!+Fs*kn7-X*?THUL_G4KQA*WG z+yc_UA!{er-Q3gLvT8{tw`LcaWEoMAdGgX7F8HfFNCI-jkTN`sZ6`}HYjf@i<_!6Uw#-YIJs~M`ja0I{8)d{GRc}81VyRX#rQ3H6_X^@3cT*}HC6)_s zP)V4^IqQ%vZXFHWIWkf(7U?HRlO@$#tr?^r;Gu*fz~r5lN+g6%Dk=M~Q?Kq?Lee6l zWD;0~%bAZuByKl1ul#8b&*K$>o}qu(HlcWUC3OdTXm&yU%Bv*w^L+JfH34%^g~SBK zN3|4ds6)E6K*FGH2X-KQC>oDWP!%lngQcWRdFIqZCbdT*RtAllXb2-glGC-51;EN& zmL=NiqQFucP_p<43xFb0O0i)QCA(o#tGFsg9i(70toN#riIq6Aoxz^Eh-9;T(uWfG~xS;V~=0&OK>LYbA7ZAL^h zS&-Bshn*08=0YJHH4yodGbT&*S<|VA8kBnN#kws{=H$#1l`q#@QfoS~56{>51Lmt) z^HpCuAF70?`f#77tSux%H}>;Go;BT>thtQ(dB=W55;KSfD92U0ti`BJTkpRAJ?)@20_JQtTB+; z(J5_3b*I!Q8Dn!ENL3q>{F_WULNn@Iv~4a5JS@8@Yjo)4xvr%thZ|+zx)#M6pkr+<`m%gX{1VeL<&S8AiaH#-l8Z!au@)bXMdh~D z?j}(ngCla7qE^SX#^l02cGgzS+mq|1@#|y`8>Jz#p!%fjfjdRDKu9#iUTQ|>YL9AR zjDrN+NijTK#TcD!Le8_gas%XyLk?N2hm?w^%FsVVlU)SoPL4S})PYi7;~55Ua^gT+ zz4bFEwgsk$oIN$OqqImCi?m{MbF;l49b*CFc8hS5dSk4}Y1w(rVNR*l1RPJaqI!_v zYRfW58D%&R1G;PK@|cPDj}E_g-V(K}7U1wR7WzOE3HmNqh)SWPK{}Tt)TK&jQY*<~ zZ|1Y~N7`IhKB01AT62o9s?Y(z#LW#LNECw5xQv-M6P$X+lfpEyH#gqIox|eMFl=W` z%hXgN4nnCP-yMa_=~rQMv{Y#_c}rS6j4aDkmU}HC01?|Pc2<=PE0Hdxl;9K8^Rh)% z($%q25aB^QYgQpatWvly6@gi+R4a`vkA2%;Wi8$zAq_RJh@(V`y2Z4v93pN-Gq8VE zCeL8(VOW^x#WeNc`1K2j9NNc!l< z`zzK}{Wa@4MfT?2)5&rPUnDD5uG*^6k5h-Lsk9e~W>_o?pMvG$u8>ed(pb#m=d@dJ zs|)45r?Qm-0`cwjZA2TY+{p&ZI0=DQ7Y*RN2UeNQgs%^J%!NbkJ}5PG(hn*{b9D6{ z=AlgyXWKsk^OC{z$c8FR2@P4f$L@?eSWB{$)R~({?|Z<(BH*ql^;b5>xKy&yxhtL+QBPBSh4BC!MESp!AJg# zLzd>jX~I zUgLF1YNteza;g65BdC(DQfstqg_^yNh7^*kQzeV77oXgbU|(k7za|+tO1~bfmYM?` z2}$?JT`Ts5N;z7cRIY^n+M}eE?^-K=`JH!W=vzfE;KT@>T6$>~*UY+OX05$>@vJty z7l3&vu}Y^Xl@-vpcu9hhjk7WXwNf?0S6r;bmEt2v7ZN{)vXRoyrd@(U^ju(jAPeSM zj&*jp7jQ4XErhX_zyq)n9xj*SahqauVy^f|DC0b_r< znBB=5XMGqb9a+sBS@q@blVwn&2PFYcM9nfeMX9Pr(TZV)`!Y95ZVu!?X^do?I%ziK zU8sun$rqg{D^2(}!Fm%qMBSRI{Ul?rdzhL**(%pxPUtMQ`7%+!i}*VCKA`eeH@9I% zSbTPXm~Q&bO>gDofR%tZF9bn@WuDk<*Wd9dv@P6j*=NJpDWs~wS2;RH$*2= zqjby$gt~bZTR@m!3<#<6-3W+NN#q1KU}mgJD78?bpn|2`s&zJw@(OW zST0uIFhw9)W(`xnj}F6q@FETc7{rW*GF?ZybI)R%&}o%D`@Nyorjd_G$^?4vQ7DA= z;DNg(M?Dfw77?i<<`Z}I1#&OcGoxBLrMW$EKVhV@7`rHGh3NcB>GMav&mF3ok_Q&9 z7bi|~6k{5&Bp)!;Z)b7|iQYyhAAF8G?S{Tl|Qaf9%yuY$? z|M8V~W+MR37%$nBP1oAe1otKR7Rtt>RQcbp!4voz?7Eby((7N8@Jn<&?e5)C^RTAKEEzhlBNAe!ph_7hnhiD4Jr`x(p`uCJpw9~iGPH>Qk51lAuM{;&0*s# z`%6ilsVT{0t5I}6*cc``oW<;D;l=@5o0Yp-j6TC7FI@FoqYCZKL{+4a3lj;y?`Y4^ zWUcnB^QszUL*t1!xyMvJnsp4q)y*$?^VIFYJOk2Ndrc28Lwq#^bRk#k=bTqmqu{Yl!G13)(>dx(N z*m8>j#fbOFS?dWjP&FEf`V&4hnae+>fZ}yC(FBcOHvyJ$)FJ|t3(odz;aqpNL~g@A zij1;km>CMYvlA;qdgJ5AtiEKlP+WW>QYJ}tUnd?hg(xs#B(Fm^MG=#yqFIO?uK4@$YpFv>C*Q`$W(GY zdo;?1$#AvT2BR|}_GiF>_%Rb4+o#{|v+q-kg$nZfnt7+xqkBYgnY`GVx!A{j;Ihf; zhpXfBGpDi2^~381u7B2| zHg+?acx6@?F`=%kKikm5T!X+5V0+jvE>e9)b~zdb$&Umf&HcHDyhA1X^5Hp}ix;y& zCaQa5@PF;aZV<1Dy|guaVi9r*Xf~(v-+*Ku{MisQJx!^wvlkWDtfc;HR?3v$Yg z(sUB}B^N1npGtE?R<(7M)QRa6Ut*oi2HD!sPeO-yBO2FB97HRWFzh4Q9@ucS`f<%} zs;rJ7xE|^QEEiSF`bH_`66!EwlT9uU!!opJU`1{EFxx>L1IU?&Kg*&1QDx=vUm9!J7&Y#dyDY2qai8&Szjk^sB>YKzw+ zHBU1*I{PG5t?BILs#2Y>;`)o>l3#}tMH8!-`r`+*D<*Gv zUm6~232GEHUB+KARo85ws=wIs;ZcCu_qDXjFiLv$6+g?@QZU(SZ3Tgmf)2|UQy$US z%Afo?o!0||3C?<_tPxMi%ex|g)jr4j4K6+y+}fWwX=*QiSmKZ+L@ve2dqd?v#!kbO8WcX%RX8#iq^eQFfAyW0F6bbbajG-M z=%Qg2y=5fDzLhuEYO)u8ZHlCsyiMp7chOOa4iZe3AAuyXG%@QBW7JQIU)h>1*3A}c zFHK-XD>ON|goWdcmM}jnha+K>Q#tg9w9gFoGXG$ZKx6Rj=+bx zgH^4ja=Nsh1M}j13sb8MJa;(1pz1{_FMZ)ht;9{JLyzN0S^;WIXYA1*qAxflZ?V-0 zDk?#z#BXHX?2bX|wI|efSvPxVm_y5nNi+0ujCuK(PbAenM&SWa7PFVKWi93N5xTM} z>|q3+Cjdx5x4*dvFcYjxf}m39gx)+#X1c>MOb$%fjsdA;FIba?YPtSmrc{Xl%pk9O zdOHT)S6`mIE|J^iN!D)1;N8!e>!NjaaExrmQ?t~5%`9Y{bRUqS7{8`^W<*m8H6JZ7 zBuZ=$cp|41&K#ELk8?>g@Yg|_+Qkc$%9(K3M3Ydw3Y|idNg~=)o3C1%uYV@Ym{=B$ zW%8#~q-)gzj5-cLPXn^}O3?i&p&hMNtE}8$hHjcI3ToqpnfR&RPJ%w*p2&+)O_?dA zTYKL&xTg9UWWBq>bSON-Mq~=|fMq0U%GkySpmNDH;RoZuRdPTR&SIw^|>qU;8en`Twhw31O&?s=W+>n21;vEjyG5>S{| z1~bS5hn120KnW$3PXh@&!+X?X42>mufguBx*O?phKF-})BxW%U5>(=JoZe9O2{(St z3GaJ=34GvbaXSfDDBL)ep5ahjvu% zica`h5d+(r8ldC(&gTd^itezckP&pMiE^1k?4v`YmDi$_)kRGpXZNuAX-eKDN?FWe zT}~yWv(M7pu*pv?v#fXkSWb)sjHDW_h{cwcI~fp4*WgebAJRY$=}W4QIH8tFZ?!-1f7sdCR<_ozLKSvg*$`Skp}buq{osxNwh3HK#Ji zl7NC66}>W+#zKiwM9rky&SpVa>lYqasen8-{ftv_G&1JB-a$4d7W(KTi%vQ z#tk1*!ak8vrUX!|>W$vkW%9O`E!)!IY8rMv`txqp0bE)6%2>cpre^3QJjJcg;J-CKuqDOgRcuHq=@h-qOXL9sD(m9b=##1Gv>G)^5=6Q+ zRnSh^9qb9ScUm<&eYqYf{T7;p5^PFracWWO)s?MhC;TPR4^?B#Mpzb!ejJN7G*65h zda-^$R7xCDoWwbo-eAGu`Xo-+g|v#RczB}2g>5>3hH}<%i09@0Q@A6swT88|`pfT1 zn2>ZGEpxgcCYM!?`9y%c1z;&YfOrE2x+fN|nAGa#X8_uoVq*wtZ-4YLyy!997d9u$m z1?eVhsSN;AH^fB|)+bi^!pKu;GA>N8t%O84A&*&6@!ckC$1pZbEksl=PB+Q0+G(Rg z;T7mAv)if24J1!k|8rQj3V`B_QK|>6o=MtZ0eEf7nlU!1g^%N(y1_s7&ro0J#Lrt9 z$|`74CPoIr;G;1x4j1bz)pdh;>Ywp=@n-RU6bW=r zQ%r)2Uy=9F>jAy{d315!bxy@ zD?KFt@bl-+a6T+tvg@%VRMo>4p8%t}b>c53W8Ijmz9GQsVoEB_FuPx4QiGXUPQ@v7 zD2nE*x{Zm*J7eOp2q=!*r^a!6)%L3KokF*2*xFMYuKk(~vph%$Cy`NzFb<)f>no#J zA(e~Dt*!E^Wk(wsQIk{nQehxH1Ls_v>8QJKg*D6GYxURcb>9!;@t2RzP)(fXi)G0p z^b!x#Nc{k#K$AJ0%`X=qP-BE^)44wT?(F>gv)lnXEumLl*aV_|?@fX^sWwFi&}=$e z9MLpf5YM;Kr3@yCe#lJC@c3JcA?t#gdN9PqcH1+|7zTXT2@tLYW)Xp=?b$6>-AlBS zD%SY*dAEa}r;HMty0~~Z7{w1LfJoCscUbT(&^^iwX-~zN`vpz$w|Zs!#XWXj*rV~% z_LWBNi$8z<7yl?cSf*Nq8cF3Rn#`^n`h6~~_fvS^xmp1>8|dX>>4Tvq&GW4_ddJS%fiJ2c^(fzj6`O4s(t z9Dlx?`}2xF+Zb9^NNI$*rPfHyf!zieZbjphzoHkJ-nm>(=NI?M(9bBpu28+Od6L(v zL|U)do0*y{Y_A#Papn3R`?Tgx19G+XIWLN!QWlCMiF#mPS{gjGD*$2X9B=APmN}(w zBV{|MF%Gc00uPsuNOp-W(M41}Ivp0~b;WFdsw|Q-aOW-sR->yC7V%XX=RH)sq5Cd2 zb>}`+2ptDhhe}r#s^mH`t<|S&`{*1G^qribr$@Q=l4xk|1BFg)U;sag|J& z0y{}wW9?AvMrZ@iU5!bn!0W;goxaC8$EjHSSrD6puMmhNs%X!bzU&G)lf$G$U1*eeVsFmt(!UX?-ht^S|d+ycX)C z^FL9GJQl1F`D+71-t$&RWEAPoN(J`Q^*pYaOi5bV>Z(-nml??sfc>;GB)r*a>{PeD zx#?9bpeAi1-8Gh5M!z4bKZK#K`e>XF@HJ+$#87+LN{JJ0QMh$3S#~BWNwp`PyMtUB z_&OD^4=ueNx98$hlqAyx{i5h^m6YUb?!*Axb5yx=DqN{!z@Bi*D=8~SL^O6k1rHn2 z1WrPVCd3r+rE>2&7!1OYN>3|vKP_{Zz=oeDoE02k?uaWvM>$>DH&@QIsjw!4^pIut zS!@%}Mi-Lt92i`wRSgOXf>7?wm zC*Cba$$sZ8Hz+Jkc^Br&>(pksvR3)&FvNXM#3?c2bo=B)#xd3Sg|$EB3z)-lov6Ml zqf>Ca%yBJ*LbsSKRR9OvVZT*bwOv9vccr~rHQ1LJzLw3^SKoJmp{Gam|1elZcQvFW zmnd(aOBQTSewhdm0>MrZs$nnyDz<7=+CW&bYTVlc|6i$P|G%t;{U2Vt{`ad{|36u) zKKJWt)BmHisP(f`xRe|pPb{KoR%&eqmC`H#dUl>fFiw?G)&MEP&0+W5lR`cwY< zAG`lv4>QU1dO-MoZ~4EmW!?W~efx`Qy;`kR|CIm#h@Y>V@@vd+h9YUxS;V9AE`9JZ53vm-CCW!6-=I7cqMzmfBHUcW&^)?RU%<*PiE00%rUIEz=A4$_@At2L3x#a zd4+P~tET!KKES2G2d{WBuS)h8HT^~H6@UI;rNn^$g*pJ>45{EVUAC%%i_Drx4^&$v zLSflB(a!yw3VUx36U;tkiDIEyUtxlS{{~oBSF`8gV~N@0 zF9`kOr(~6;&#E5*5jFs(dOa?)!YvaE!yd9S{?@DxztVf-FAvn8yvx)`@La8|WZsPU zViBl8Dz}PDm(UIhpc7$Qf?OPeXr^nWRFtNzqN@5zVLA2Y=1XLOqKFHr=)Wrd49(9y ztnk{Cu7zSwazRxay+9Nc>z3ZB%fgr)+AEj2qr0M5x3-|N{DYoqFpC#s#dnUUm0`5gtc)dpmy`-XH8c1_H>E%1dn-;? zzAez^(=|;k&$;W%lS|gq4f%Cl1;MF1TWUwKlCkra(h+UBA_4(AR4Z>u3A)rlE6Da! zjqF!vf&OrWV(KdpQNkH3L1nS35&!~-<9uZt8g{-m@Si0Z~UyWlviy{>xj( z*71K*(<}P@`M<{IW?k`rn>#i99ti37pZ1^sS^m%F)+!1bav5A26|@lhgXBl$8nu*^ zj~=z^&Wa1o)=?c+OkwDa{F#>{??F*X*!jpSOh*+erK|wCHE5o(du|OS!a!N&t0-Mi zJFBDmxK1y2MhdiU6s^LRArPNFHS>bhE8Jcs9&~jM!mhg*sIHvvN0YR0g0;#d1dAQ4 zOZX|AS?J=gGm0#i&O`wBdIyj!LDPoPDO z9z)9i-QzN8U@S-`)6%VSoMC^9Qg>+T#f3PYocF-U zU3S`CWOQ@69Mg1=*E}g`RA6^RA=Q8ZP&UBtCB_KXB25WBC}OV^7ew$aLJzDf3~Eh) z+&i?W=nh3Q2wKb118~N`vmoxEu?wXPZ^(zFyHOnD3;M~ft(sN#0+U-Oi*H$SEUBH7 z(4jzy*Kwgtz^>#Ih-*Udo7fP3#Lt0s0&jE7me zIQ|ezNk{93l&>8RQz4k~4J5PuMiL;CX&mSSnaauDOeIYxlt3M`fO6(;y-0PhR4GwR zcO_>=h7l?`paM?GxWrkQvHYIoq>rq`&8vsSb~)$!F*$ULy(n?i+WJJ*VZ~?CP#?bcEtL<$l-Am!? zb%W6=_g093je%jc6>DTTGV8BoGf5w?=lth?CBI-6O)+uweG0`}H@gnS>(N&31x8GN zl+{B{PPLXlvsyBo?^$P*S^}-iVoVF^`Adm8O8j#6%y>l`FwlI5W~Np8C$&UKfrxol zLSoZsxd042!`L{=D#y2+=b4@}4e?8w}4fb2G9oBF{nD+@A z(OJv__O?jy20-yM3QH(r$1jfNf{EZzIe9cYkl<6YBTU!g*Jq>FXJFMVglZ#!JsYwL zaD3D~+RFmqy=Oj})ayw<8T5DQac)WLwUEqSl02OyYLt8z?>U2~OFmy#5s;^!gLwve zynmYKz~Gw!{kjBJ6byV40*r%^XU7o9U@!!aCClJ+=PS+ld<_Ho;Aw7o5VPDNsZ!NU z>X=tn58v^OsSA->-7rS>1M%s#S14^jp;#eTp$Io8E~xn;U5uCqjq6aKRb}RK}(ZtwX0dH$oZk|hzf_+u1NBd`MoL)E{3(VTM zQFwKrfqvwZM-!$`BI^|8hHYgO&8fU9rj8b1uR?PI1Vv;FYhNN$`|i4P**?r?GOO$!adp-)gT`A(Kj~=eGukz zSF#mq`IK?z<4AKovP>{`zYEe_!I{vWk&YTIWu_Eutr8 zh~`PGtkv0ksM%OeH`>!mc3YVG3N?P5RR~s+$fB61!cUf^ll?TbGbUGxtgK$1)dgl% zvI>3;vNL~~7kR~A2)QV#WHzYzD*Hz5oH31Rx|gM*E~KWF#xU=H{#P+EEgDT%D+Yw= zB(c1cZ0&m?y{6*oIHCJM>WpZf@g1F{e63omN}M)^u@DIWT!lCjs@sr4BcYY(pOq;1 zTZOZ{74l>($`>C&irE9$$A;N}sJy!qYhd<|hJ$nSq3A}izm2MeK)JV#t z-TD}GgZxki!ZS?avk~7P$t7yW4zozG4jQ)yzpkJzIi;pkU}p<=Qgm8clPw_=Rsuy# z^T%BnM`8{HJRVtNHlkBK_VjOX7MA$Wp$z(4auQQUx`M^{0p~~NvSQ-pQSX%VfgUj1 z%2uEThmU*F~#%9NoK#;sC3u&3lBBSkk4E~jKj);MQ z(uy1*C@1oo@}vpzrR_QPlSslWlLBstuLl=VT)z(^%&%X58uensCya9N{Tvc51gu_^Z*lb&ADOUpWFeo`El)fka+Y>M za2M@eGt}&+CKxHX$@4yWQ^d^gsjU5k*Cl*~!bp7Fx5kTl0IuHYOuYy#GDs%Ku@=pv zT(5I+i)AaxUMOgahEs|A$1ZB8^l*KT5OKvhN6zrUN4Ewep%VpCwNNP$J(_$Zu~WUq6> z&6z`!?+f`?L>`I;GtE{OZS&wOPKyxDJ?48MEP`RFdL#f~%C!mo#Pd?ZS0iWQjW|!4 zL{m$%MWp?y6xbTGt_5J93A6uaUYEqNsr$=dJNepq;5%>m5QIaWo7)mt1{7k+(5raSy%M%d@T`~Vt^#qJvpl(}wN*)02oJ71jBLex6l@kS;@+dE)T*wM~H819iowOS_u4a`Xloe(8 zcUcIYbK7!`^OACnA(33!ZT3)q&c+-0e7)d~vA0n=$Uv#s9QCFz)4I1mfN9`;CZuTX zuM?;Yzp*j3s6xam1IZC3M#5#Pf?dJP9%ikrCVL%XxJVgaqBV9JTO%-I;#ihkD8noR zPM=DvMX_B`=@Bi%l{{YLjw~dM=ypD5PpizGYRAO1Sd&r(Ssabw<5Ol$+pfqK#YC@! zWiglJfvCSNIjqPG$*F8ENSa!!QMJqW2pQ|OQ+{wjWu*KCyq1^rtK}1_U(NAu(pKv? z)1GKBsO=J6kTcqgm6Iywmr#G%-NR+3$wbzgVPk@aC$?xjKa4@j)?2XQbx*CF|I9{I zFwP#{Mdp`yJbU(8Wj9mWjMPbGH&z)21!rZp!D68RIGACjHx8ml+s;D|0|0yS;2&!$ zl|G))Qn`_(y}zlfMiN~eSS&ec!ZL7KEsq|yk}(787{eZF}me7gAd*uJ&Dl;`E@E`68Bm7M=rXC5#MK)l4h3d5jkm3B8q&C1R z{RzAb2d$<+$R{31Pm6h4k+5bgU{Q!AVCRV_V6pANqvT%VX-OI0$PdO;fUP_ZCagSN zbJsZ4>XtK6u6AHS7U2Oz!II+5Q$FHKkW4tStvDU@05dRFRV%f?SHea)P)ss8yAl5# zrc4`rT&bX#f;81E*4`=?B$Ff}lPCetbH?|cF>)^%2b4LkX;Sc3M=116NRJ6bDrSt9 zv){yroAw^nWJQ2cLgv$|E?-l~34t?g86TYtv?{u9Oj&i&l_s9zlv7Kw|6gb=kZ zI@t*}>d#29QGZ@`jbsK070s5*&Z^7WilAMIgXM{Trxaj1Q>jc$N(IrLK02T9`)l_$ zN>r}Y(`cvTM+X<*qLsmM2fA2vdI!%Nnv$wMvg$nQMe|K_P-Q8wP6-A7Q+-{?V*~o5 zL~Wr}@xO}6;s)A3O)48C7J|yyq#g}peyNbHl?}$uKDu$h^-y%-oWyup%E2R;6;q2u zgV66Q+q2ddjuJ{oa!UcmPSsyf%S=|tN({e`)^>MRAzwULvnu?7xs*08uCF!@+b8X- zwyE=HYHImWvcmc!xjqukzwbl}dyKqOBI0HU4(~UawYv`X-mqI!9oZD`HKS~8SPdp?_Z{NwdMUay*?v>lYhO+KDd9;ew}*F>CgO5vl78u_gFC;t>YSf-|1Tb%oY1-h zL<0KM=~2bO|FuU)_%QqI@Nm{09HrKyZzzc#+XdI3Ar&F|qtEb<=Ei=DJ4@dIp0m0G zI%&#Jzj_^u7v0A7pO^7jm$7)(U0|NPm)r)Gw*B)yKI1;{q}7c)b|svy@F_&E8RdUH zRG&T>-ta2&{_+2>-xqBkhP`fYD(SDky~zgH+!G1(Fj?8lGpHpp>d{C& z^Z*k7m|X7Q{OqcIcGbK3aMA7^onM~zu*Uh>!TDkP5Tk(Y3P2yr4-XGzOqyJVWl3@6 zd~%4>>yxWa@1k{ig}t@zW`lYmPR|P_U+Y9?{NOZRH!h@{5Sw&6tj?>XF=w8elrQrvz@IZdZQ$7+=fs- zI@YQTbgXA~IhO=n0EYG9MWs@}p?|2(KNCJD8CxMwhcX5j0I0?Y4{QQbvH zgzXDz6K3_TI7aogWH>kHZCBzAtgyY5YoK!7%*gY!_J+0NmUhnE(~VQHCC1xR{rbFP zGi9!xcIQkirIehwxDqCrI9M`h(!nNsmji6=OqNQpp zHf>|DJDDoCNSx^JdHN{-lNFD_YqpxuM^=+xg1Oy*s|CP^mg9{(xdpI^$J5n@`YWq> zFn8hdR@?ID`J^AV8C!fVlQ!_4J$L@}a4Y{vq)ei*{=Kr8V>-2>6-CX-w6M@n1U$LJ zXReDIV)h^=lvq263lzn0N)xQnYp>m&PgaK#*6PRQZoAt}1q9)hPlsDQU{!VtAB&mZ zeU`hyMK)kP1u=^8$|e$oo%u$6zyB9A+?*b>8$-TjC=OSd;f0Rd3aU#mfJEyPE-Hfs5J z6BIux1N{HO6N3eq%o${yU|QI<-Q*PwDI{K1lz3HtZ`QVdDkjNJ-^cTKrNE+TUJQL* zQU_F$DN0C+N_dmS$B}FnHci7u5*p##k|UGwWT^*>L~zYhjpqF5zB}Y$Uajl{S6ob@ zMk1;xH7zh=0HX-_H-Cm-RU(k3fFPFg#iwRdC;516J7Ny;jl_A%{w(D`o{4c*SsVH{ zjgll{jiZ@EOnN8;6T{pbk^X={2LEmXq+QCelUE2}4-V~>U;+7^rjp+mp)bGXoqwcp zdS01ysmUYAMQ#I;MoFDy0+N{jNS+<76cJoWzSgtwpP8)6+97lcJ&OLs9*7b7+EMs) z^$^@T1+8m4!*_eH5D4&$2YY{s6vUh3OTD|*FtfZc=<<4SbSre90j;-LttpvfT~P5A z>NPEz;POtU0_TYacsfynUSOAG~B<*8sJl|!8k zQN{>DrPd}DH;5aQ8ag!!Agu?A_Q%ye8j}%LY^VE57e8;!abOErZ$;e3jz&hxPnzTsh1Iu|ssLkGqD8-u zhoN|5n3fU<kWiaEqyN1;MR{-o$eyHv>G(TS^#_k(-=HKoOjB6=G>r)cz~4 z9s&=QWm90}bV}qE)cxcRCf0H>W#Sz=d9isWxkJNMYAX&m@ql7?)t2 zb#^}pS^03am>F;a*snr_wM!o(;tzO@$Zf))~cDB&|v%OvW)Bf|v z*nh~5(*;aDz(AFuhZV3%s{{l?8M;Z8z;TCx0?=oeL}vJ;;6KoUr$H$+@p! z@j-Ixa~(v&y3550u?WbA4E;zzUOUSA5sZQiNXhvSEXb`f;N(RZP;9EPPkCl?+JhlC zU@|Pk4#)wEG>1*+;B4>hRogjO_Py{5gS?%$lb{de>N0?t&-u$BoChK6PtUK@?YqHb zA-SPDvq1$*;_*@ZK7*fN9qFd?YW={ks48CwB1F^Ktk>W#5a*mDe|GDIRHd^C=hbWs zo5MzPd$&2NHLH#0)}T48HXHTk$Zhs_oArKk>rK)4U zXoSCPZ#TDhn!~N8w~ec;Li_Dp8GrWMZ#!oWrrYftbq-orZTd8K+UXp8|MS5?YjAqd zx_vu2ZB^eMbboo2j`<%b_G=l%NT$8SHiCfq5yI=&lTUv~Eoz3;!B3?`S$ z;SXok&e7R@u7CW#>VE%bF<3s_cE8{H`Q+#J&!-3Nx2@WByY=zZy{ugxb=qfJAExh@ z?~lK&4I1xmFY6!gKTMCJ&e69pK;zxR@py1{es%kBe%StWde~Z?U$q{-htE#cXFs3T z=(C^qYp3s`hl6(?4q@eQ+YjHq&s~3Ne>mO$Kr)($12m9TA{Y~|>^LCWJh1R?4R%`R^S?lm%-+%Yr{_VSi_lMgD_1&X`!S-=@ zobyi`!=s1IMfB~}ySJaJ=Wpg$Eq{J>ydU}RCcFOTkNflO(ez>W`s;S%yW_Ll(av{2 zTt9fD>y1hL{kK=$T)0__{kL9gYf)cL25*+9gI^}c$KP%L&^np@*glzk?cPPTpM$fo zQ#<&@f46_`xr2*`w@2?EY9GecA2xH<&F_D?tKUt>KkRpI4|lsqgW*=Zzk77@DfXxD zI)|-yt^F+Ef^F@$-ZsMA+lSfwhj?;XuMhkW?z>+u+T+IN_WtfX-ue`b-yM#x8aux{ zY(9MaaQgk}X8Y>k+pV3m_Ri?t=@>}i=+_w~_donlTRhaZ&yUVd-`&k0su#J*j~DmLt*Z~S@z=v2 zI`89;+rKQXKJNPQp#DDW|1$e@F%1tI^9_Db?X$zx=aj^-S7Y}f_7Evy4&Q?opg#GC zq=yOBhZ+nJ{~hSm8;B6G2at-$IrQ&+DutTFuD|KP3bUpMwee{-Hr*n;x7l>-O>fxT zYBYBM`wg0dT|{8;Ct#rM&E}wwD7H4t#HRHIqA);Y@ZVOg`3BHgy}4OyZtfzQ>u(}1 zgE5BnrrW^(Mq7wtcl*uV!5VA|eV~68kRl9SM?~nkO+fscJBT1*we?YRchqz@o7Gx# z*G0_SfCUemu$|2T(gAlDQ8%FX&FyB*!>s{I--K_6P4CT9*c6ZrVAI+1w)N22Z{5QG zu3BgNw|Bpc@BFuK9;)z`-yPvQ{&?6vIc?n$*4ZDQ9(;e-{+K(uYF#n5xV<_&8cqg{ z%gJE637GZh;m50X_Y~d=b@+JtEq&JAzwS4Ni_^>M!`laijz3;ryKj#g!?%Qz7lX$8 z2+-2v$L0RdA3n8%(*wbEA5TZ`>hG8E-PHa5Y>cQY*Z23Y0IAjCgUMjI-*$iaaXzR6 zPW!q2@~zPoBqbEgOI>_`4>>+-`71Dxgmv-f6A zjv`yu=sUmSJl@Y_-C`cntRI+#1V|v}mut)tgV2OP{QB!o3>ldfQJGcebl*O9Z&_Aa zB!lDfKzr@AhvmS2>u}JMJy|Qe3xf=e_EeSN=&Sh-fvM(41laEZ{y*FA3OuVa#uxkT zQUIzxUAT|yhWwp{`?zk%-&wei>xTTDh5NW}$nP#(8L@+8h3ichX@^H@^3bYUyo8h? z$^#@>^Bpj+=C*cKMq6UhmAY}+z3+^8<*mBQRm3~1S#B!S##Zqmam#GIS63y6AJD4*N@F^c|00@ zDyRSTSCM3Q&D&$&{`VouzxDw?Aawv3&F=+qcAAme5 z@eO6Z(Zx3+{uE(o{2Nn1zZ!rO4lV?ELVV*m2q{bkPk|wUxlg%oMgA=T2t#}$atH%l z{FT3+K->dp(t%?d z__sE}|4paHwq7@sDftumISYtkyMz3K8k#(eK?EFm@R52jt3#@~qg?UU%MGa`y7RHp zQ#k^B#LN(GD)LG--1pB2=tgofv1A39Q=66{Zj2j=Z{OJyI@|wq)HW4lSAa2)^I~M+ zKol6Itu}ZZm^1Ct9KLv`9LgJD2-e%WK;%I_K+pW^`U$e5bhU00zrm6{Ho@N(_@B>S zXREi6w>hG4ntp!sWQFIqLS^wo8P*~+$!HbgarX#@rqA(C5yFlonYxw{FH0cXvNc6wzhlxplp)zSm;lpTErcFIBjveF~g@;E055yk$za|2M_t<_sgz+F3ta}+Y za&Q)3n{BJSDQZQ~Ri=v}bA+ z!=YjBu9&w{99E0up`XjtwaWkcP4wCRmwf4uMLa^A|MufPPoe6m_(3r6H8^~KenghP zbMqT&{CxQjaKWJji;@`jDQwUTBpn=Z=}~BEaT5CZEU?STw*-f=6X4Zn7(|gg{g#oR z!Uli`7;53Z#o0GNQZnKjM#3L(>>ERV%K>|M0gvn(02uHP7#5--v=Cpx2FgN&U;qZ8(sSb8?u=(==6s#unV9=*nSoxu?)b~Uk%sF4iqf*qeCvqcSF3rS^N6^ zxCo5AZ(?Z+5ds?RcL)Fn0uLBu?imL*^=gYrV2htdCF7=%>1SegL2dz{`zJ<*RnSvuP30{tg>JYZSF^#3jVENz`{M!wn6hx zj2rTqbsIc<^wm@gd%A3oXd$Y&t*FOPJTMEqv>!5QAGLI67Y1D*LN1cPG;huAbUdD2 zIoeEPjG2Xy?DU8fmsYviF7K!y=F@=}?A>zr7$g&u`sQ{e?FEmd>)P`u!)L8U5MK*1 z7L9b0vB=nr_NwY18!qWX)MLi1DO^*pT%M(m+kC0)h;n3V5qYt0TMRt9JXK2|uaUW|4n2<4!3yu05<-D3aP-_Ai` zb7h5Sg0M5Fqjln}VP(x1Zv`Qg6}f8TU42Eb8xKQ^PgPCxoKs-=Ic94}e7saNEKxVrB4my?Fpf}llW zzMT4k)_nKsog&WU@#)t3y4GbA-Ycu@fMAdA5*_nWDlVrKn=a{2bv56UgXNWFo=ta& zH>*77C5Y!z#x>MDF&li3S&^5q>0Y}2}8dXDFg>V3kpC5 zXh<;tfB>!m2mvte)SNI#GZ?+6nNI-;pbjwg03EnFs0EBa03iTvc{0bQI7mY9WCn`_ z#>YPjf=mf`8SS$KhO!B9tG$Qcm}v2ftQguJPQs| zC3*uhDx|ZSrAf^w&R-d=ZfR zA(&ne0Qm?3%EWtb5Fj}+`FQbzV=3DUoNlA&SOi23VCqON*upQ6g z6MDzZJq*^=Pp|+z>dycRM+`}x^9&!@1Np)zzO#q7>3%j_!I=cwBS39O$hpT5mY%T{G5#sBOA33t1 zXs3@l{&F-q?DAB))>KA9J54*=7*F1aR;P!9>O+>Xo7#xCnz{(3rj0P3>LbVAZvjm#r4DJ5A*=A=c2QPF${p)L*$vJ;Y=>1Sc%-@y zj;j$(R!fTG559q&m4zv<)M}>;0Y@{ z@@(E@2JR8Ce7o=;FBw-ezr+0y{r@dB!yuV zNir;pvH$~E7Nb%6Gvg1vd;)S0GKJia``$GiX1l6ebuxGyW{F z=M2m>$282B0MiTD2$4ZkjnA19Kqvs6$?};a%o*$gJO^-u;tS)?67Xgs{f6O?mH;3C z9EsxKpn!4!JYq4(X}|?&0pnO4z!+jCPBENHntr2l$X>ufG@rqXfr%5Ag)qk^zhomk zOggtWVEl<_Sr)sCKojz+IW6dXZ5rXv#$SQPzf9#h7K8kliB1Q_dX3-@lph7_vx_&U z_YJE<8<(cmV2@HS&_w^j&FR9-jc)^~( zYjXNT45u5m{Hu+gdt_=QTtA(xQC=gvcKg>yi=NWjpZ3GrD;=y?-`Zn~PdW+$x=0+AX%)aeGD6oI{fA zNaVal4c1O~+hu!N?1NxP7jn2(S$A8a z2u75}ML*vyO7$w#3xX4)EZ9peY#*0q%3MQTFuV&Ek0nx%y4SJ4BHIy7k1m%+00@y! z6YJJ15Gsl}B~<#P%IGBcPu^)ry+(HtAq;IATK;)oBQA=$$-aL`9>yPW$H5j%?zI5; z=tN%G!oj>7xAio28>^*c-$p0hn@;1XU6S#@=gbjN=+GchUfT}LiAL>dbH0voq(4&I zk+$(To+){qEbLLZZfW03+uV}y1&<$%iSMw@IYhcOp2g9M`|WhdOV!V8_~(+MIZyH7 z;OX%nw-}<(>)D@+lm7bc@8w5-xb=s!BbES^iNG0v4jh9rG|izXg`?zWxBwh<;J8!x zH;jTNn|kr=F<9yYXacaYT=6ZzzOf9n&+O;P4RAi03y|0ZLP|lt2Bh#giw#_OV8x4< zCt&bVF$pu>FckJx`aGWp0)&M`p(hWx1ehnV?ZE9%0j|tR{cHw;;$^rP;zdHwRAQbA z1hpK38i2N}fG`IJ1PBN#rGA}0&m4dY4gMCT(glA0Pf*-@JW$rBxZwRv3ar{4RfiAW zNP#S8x4FhfG0zcjkdsq*PjUG}?C9nQ*h?)@X`%9{PJHwhLYM0wZ+2Vm0St>|Iee}R zCZnGOp*F;l0Rwv$B4?eiRtyIetz6G(j48cz(lo zV6iPJmijnCs+6usbg?NOkMT$vO}sd3tEGIo>8&SQdyZ9iHrZzFG)~zx-nGqwHjg0< zys4It;>Q^opXmNc-%@AAuQ~_a7zXN9?vf<3z2O4G%wQ7mkr`sSZT9S0;YgM6Oh?=X zwK=i%>WpCiwYqgR?Nv3I3?X||n`BcH${E{}iFPvDWz9bOfIAlMez#te%{@som3C}( zWmn)QEj?9Kx1mZIAy~6$OxJtbws11+Eb}c-Dmc&BKGkZ;n#}V_ zg=m6b9#ip9Pn>>OYti~zHig(S&vu9KiR|62Av*)^q^otE3-ojz$1&`g&2ydK6b#=C zkHhNFl9y2l$0id_$I!hl{AU}uafV2ni%6{-n+QY#$3ia5?F;EmKKCFwqFxySO;zrd zbKIqMrPG4DKXNf3gS}-}NtqZjvNGJ_tO*ZgFRh94sfh=|kDB1Pl&ke-ADv15zy9m* zpwp20YF(`#)N}qWJv*&_W&_t49*!4C>7~&!!WIGApo8}oHTwo3C_)RR)!P;RFbioC%l(g$@4Mf{a_^+#-1Nm zZ^$!d?+Eh~z?Ax4*n^v4#`Hb0z4_rIyqw|=$$}V3J_eDw`Z*F&B_LpR{kE8su$qoOYvPjA?P)wZawDNS zCF)Mm59Z;4tHDJ9;Q0*gtro18Wj&njhCIi}bXi=nBEN|7xqM_(6mZ=0;`2^W^1{=- z(mUF@2!nCpJ6e2}JFz9%*TnZ$H~}hzw9boTw6fS4j^2_hUu49ymupE`DJ{2MXe-3S z({yzcF2bFP?(6POa6@!Bl7m^!0~CVD4lqLpK7Y9;!zNzYXexCN9XFqeNS%<^w{4mO zqb=2BBKL&f13l25dJ8U+UWy!6dqY+w-Y>z|geq;vlTYIZ0Q$Ly&-FK=?_VnTEuaZ)>oE34s6oOiR0eRT*NA?eIoSR zR^rvQa=+AC&9r9&y@l;fClBOdi{KnKn!;7^%(J>%NY3VRzk8yNZCl;c)CIi>PXQ6F zdK7yecNZnGilCr;ThjBBw~Zfrq`NPOBPa2tP^Wgv->Yp!>amS_^+^#DZ>MBbZ?8(~ zKpz(U(xlY2%5dr;8w$}d!!bkn;vpr;>0zrFWmn2Ve9-6ewpuduz1IxedU}h@iEcr~ zPYs{8z{NOE?()*Oy4|m>C4)FZg)Tiks@is>1$jqwRk#?jHAi3bCS}XqSeNqs)>ztj zS*|E?D+{&!$n!E+9liVu*!bGFG7Q6iK4Q4Z!4)^Yw-rC}5- zf`fUM0v3zqpLeF@6y#d~^@tP#Dqwsm3FD3&3!`*d3WsM?7#pN#VhBhcpqKzw*{{$P zARi!cFtfjub&ESbX?I72}9$oXO5dhi&S9*SZ634njt!$QNdI3k(L z_fQC{U~(w=%M1|(E8Q9%eosFS2qw32E%C>%D8kbodE*V}`o&eN+I$w=gg#4Pdsba<|wwsh=P8mVQCz z{L5Z`NlDKl}hl78*SYNFb^1F-m)mkCHyI5bX74o}__0?J- z?~CtOiS1n7fxP&{a$7F#x{mCvU^kxZI6svT*P>#dNzU?*Hnx9K_M2Noy8dSE-y){>8TsKYIXX7obT=TUU{72e zx;z&Pd~X>Je$)*nP{j>(+HJ1|rU$zAKY|wc{}5W>e-AD2-$9F*gQaMIJ;92$7#e6m zYhG%{fSt_}7@LFHeHxx+Kd&c%b!IUP6as?86tHxFAZ8XvK{}KYFo_RLH$Wl)7=UWeH9yeDokvz zyHksq5r_CqdyX=DEkDuPu}3Rm0^#6U%<{CVQEU_!p;Xp(xACVMkCw*L3x;IJ*hRE5 zP?E9skO9{Vv)eDH6i`)D>K7c79H}!m`~oec`w}et198{;Xzy#}R^ar-CeU`5Tr7+5 zIxZ?@>PuSIbY11et&`xLzgiq}OT_v`YhKY+Bu!3_XrUZ+(t5qwIdat`o?GoW*Yp;x zKS-3(7)#@RyWsJ(KdJ_mxQ0=Y*6lXly6hRZ@*pDqa<}axx=BlFbDvn2Iz-(v_h_X`ckPpnTd$!@(dKAP_Lil)@wsaOI1+VIH4p05{hx19J`N1>ggD3Y%gG*r5JZ zt7Zyetbp0Axl=xcF*-bhS*9d`P(#F!MgWomxCMeeW#bUDWL6UE1s}yDo%I$o)J?tD(iMf7@IwtXJvgZZU`<{>4TL; z%?Rr=SVcoQ<4K~VEJx(0gD`esweqREkffKP*GP}KpwousR)R8OsdWjF^}0Nt(Iz@) z1bIizV_57Q@-BG0Ujc>^GkkNDk!UDy#JEgyw4S)kJe`U?Djvk?nYuUfyuPGCd16nZ zWZjL$L^m$CTZQ!@Hc-pa_w-|poKU~tX_xbDB~L+GDIT|YTqJ)g$aY2NWm8`d%R_MK zvFnhVSb2%q)}EdhVb>GtHe2$@?$D-cIyg?a7VhDclM+^fFZa$4sB3pxRFx3)zYQ4g zRb_v@XpH!@81C~jwYPdV?zijRegd5T&GY;h6yOmbVGT!Vnk8wD#u<)eZ~{Ydio_X) zWl)SoIhqE?NbJ*06)dZsOB7-ThOGeSNb_$msV6Lhh0TEDyZ{UbJAOU|KiEc;!IEuQ zvOz$U1aQbPuw*;IVJ9abOaPm59O55C&m3kh=u7FZ3oTF*X2<~NO6DR!E`~@9ZpLRi z1`gsVWO9HurOCILg8u~c2w)^L(<#8WI0_bEC$kIr9&JaE-cn+_*Fj$DBtF9J$~!^;fbFKSj~&ueU4GK!FT7XqWvd$IzE;Nc zS_k6DgCWT;#dt4eAQJ#c!f?W;F}alKH1XR4!u3P`nFaj*5&q@^!u3P`nFXAG3;)al z!u3O57VyU$;Gd=djh;R!I-3h@ylUA5F^Mg=Fq&&4XoIulaeEn9wROc5_Sl4}>{~Ly z99z|*g0LKHSuKDSN-hZ|yXtmv#P7(aRid++wvH)v4`rRCA}{-pSdI$)~xL2wge~A0NxJ#Eh+dh}Q9iMO~NARbz zJDh7Y1O5|{@t)55_hNJl6JJleyK@RyGT^xzwm3eLYs;^Lkt!;jX2glO_y;3LBvp9a zQxVgiS}zO_{Sr93&D^pf%bS=T9%!v|`wTxFQ_kt{9q%8H%ksV?`-73WS}Y>VkQ}OK zquvCPGqa8i4`H~!5beEDZp4K<(!(n{kr13VXcf=W|gF`(Z z((ueUqBQZHg?XJ6-*GgkC^Rp9=diqaN`Jwwy>+IYn$r(kN@u}}$<|-UmHhxb z^B7WSd=B!$jch6@Z)EzX~APi*y+>eDf7_6uQ(!X_f_qD1Z7-972=Y%q0NG1W9b z^@Z#n)ga#Ag)N~ew>7e8)&8>Ez~(-2b5HW9O7`ubqZdHhi}iTEYizx`i>mtwpC?%f zSH}%Ex!$p{4n3+S8RF8q!3t99t+u+bQB-3xQw0^NQ%yK5LwV)mI37bPF4h-cJM+v@ z44!DS)%bGI^PS!z=9uY*9Ihx$xS#JwU+>G?LQtnIkG1FX4# zvx28~o<9&Jo9z!q9lMz@C~Kes2t^_zZY?JFM3%excX`4nFxCS_6tH(k~`puu3TGux@8?QX{& z_OxWz$0zm_in@w-6jAS5g^uW*WS#W~<}&DIYTDt7Q%fY#ANy4)4q8r-mcJ4E?D!n@ zyXx+YaSU1EvU09mP@eFl%L zm*m+`e#!sJ3BIeId_B1z1yFE?rci?U+@&a>Kf$69;nP_kB&TQeC16y&pkR$Ga0;M+ zWBM)6Ki9eCV6v7=;H_8;oes|Ww_*F%iZ-o@ zj7a;)r_h%+G^$6Uzb?-VRi2JI@_#1uq*=OkhDE^_tH|#LX`2cgH8K@`pYj#*X zOiCV?G&_by+tIpa#aq0fCX07*RGhkzBh|4QOUa{ z*UL>vY^1!bnroTJzUr%#rzfoizc=(&MEEQn%5pUqb&I~J?s-*R$gqWIZf4;H=rP&# ztFp`<{5-cA8Q}fMJ8hL9;IHtktvqmG|7S1ESMLk*yD!XF?+fy~FU(i(3-Y@!%vbLV z@`o4ZGZ7qE9ZmDi;b{Jt*=xNX`DlG~)Z9BFH!sj@b@cV6orsrVQm*9L*~K;__h~vZ zZb&tX7|P{UR;M0JN5c%L!0K4T@2KjqLUu%C%;j!NcEhU=#?|%#yTFd9(EX^Yv*UyC zV0yb`w-ig^y1+!aS?=!PosW@^vO4doI@ZssI>P{dYqD2aJ-7z&0{#!(0?M2IXKfAx z|2Wr~u{ntskJUmHRp^Sb2WGhro~Arp8ESpR7;+*P`T+AP>~=V6g|5%k+_I)-?Z zmgCqL{cd3fS!mO8&Z*8=p(u4^E?WBRPddKaYTSuSGXzh~(jv!DI&OR&-&DG=ps!Z& zxJ+yEKnrd!M#Y7W-!NtXK+XY`^vY`v74e+B9zd_Td08GAe)Q|PJcKGUDQd9gMc|bJzM{iD(Uv7?kYcwW) ze2Xq@>YuNBvFgZIZh$71PeZcE&AT5ZKaI*7&B+BeS9$3bc6b7r4?^ubXAS%)6*X*Y zkjpoPhWn5BA}PEfy$Z377F;0$ftc_UBv>xS&QJdxpA-4a>HJNfb26mY-Y?*EUVgst zS5cOYqz$H2p5comXw|2Zq5y6bz3%T!OD?asGh3;Cnxo; z^GjKj%;)v&@-@HW&}O4%qS#JH{(&8cJo8eb9tb9g+x_)m@72cZ1H@>A$1Xk6Q8`sh z9Vhpxf*;*FTBc(62-_-pF4Yq=j;b$`dS2h2k$?kd%_T1!iM5`C1kU82bbYt6c9c%r z*6nUFMV>fVlu6)hJF!Nn`RmpqBp*xp6+*rim3OE%Skhnb14G^# z!93t~p|;9D?#Fd+9V??~4{N^m`+)zf+)A1QXi}db6&5GPHgnowr1Lm48!nB&YsLtN z<;EaJH6#~)baZG-xEy0R@>29B-hestyzho;0FQezUan{%%={^fyW*S#7Q|>bq%bNR_s3?(EE zjHnUQ`Yef5k(O)Gyy1D0prxjG$?ma~uSlWLan?6cZFp=sxpw5qzwdAeadSVm9h6=D zzSqv{?mgenL7Aub(?9tHe{Y00*#7eFA95}PMUgbdd|L20w?J_uESum`Se*z^F=L>T z5%nSjJIfoPb47aog#;`KJCAV`R<%<(tfntgSo{H-o?@5^Z{-6#HV0&$~3Kadm12f(j zwlTpILgNP7;`i=UIbVe+_TvzMPsQRTcL-HE$F&^N-ZkIC!= z4DFe~9@VWcl+Kpdn#}3^aM|}r&`OK@B~+HWlL=TYVoDvh>JB^myRzm-E=V*re{2=H zf4DqNmSb>_lL`0{(G$s1j&N&YdPe-McZlY>H=W(c)~%?d0#%OJ%ma_UWn1g(;f`m~IQIQmUOR1b4 z%bL=eIO9Ci=D=?`4tF>`O9zs+EM@VCH~SXP9S%phL+xlxX^D>}Je&3*)loV0yZ!M{ zc;b~%9+JRfeQm5mT(#uoZQ7WNtq~HkySx*AIU-d(?QesEGFJ)<%1l#F+^`&@^k4|o zAt{w*uvkR4T1hM~-gk$+In^>2*JFM-E<5pxBJ%k}bSQ8`rZMLtJin*Mybu}fyoP#Q zww@H&kodPaWU!h#EQskLJx@=XQJLcDYKIA_Z~BoOW3#O^@j{Xzk=K@-QwuZht?NV% z&FX3y6Ml-UCAQS)JiKu$TO5QSxn*}p-y=4sk@{U)l-cl%55SODlegUF!U}-sTGlV& z)SiEzBLAos{<<$*F7&tKDZkwS!}|~HgBNE%8EpQ2ojjDr1=qYZ1^<#~iZwKjy`0ZPs$Z4w-o>o> zpTw+@w+r9*pHn?CgS#%Y-UN82WbM)MW6`|f@aV_QC6J#E{sFyUmSH9F@w;%iw1*nUz-cCM= zh?@n)nUjf%Tb;_l6x>!!PO%)UPsjVnth)8tdfqc~s+{hDFE?@CoB@cLDP8oNbiAhs z#cr3SI+>Tk@i(kQETZ-j(wos9v>mp!?d?Hh6YU&(nmyp`N~sO*X{UYXr;=$<=o0Cu z_RbiqSps-0#8#T`g}|c12=!_z`Gyy6aZ<(^c>CovkZ;*LO?C3}XCn`)t#@7X@%h zI`W=+85idQzn-kfVh5~ZV#&7G$ys&Qqct+DL+EZmGDg1aYT4A7{eEHBJQ6XeaAk=y zEyj4l9hqFmA-XYnvQ#(BGhMO1D;#Uxz-b59w%pt(XtAsy$(SAM<_M(NRVPof& zk+LC?GBiQmh#0M}OW?Ti`Q!G`w%A1ug~o3-jrVsA@jq{Y|2fn9@$MfRr9KtqqvzhH zynvNh0wz#*%<3$~=bwK5!Ng z55OVtdH0Bdnwx9qt?0J75@alTZ$(R>8EAxsVIo4tNIk!a|5&THO*x_wxST>I%}QR@eDwtnR!4+N;&g zKDD}$3!HDf=_6RtBb$Qm$gexc)q`1Sqaj%zH;#KhhP)~oeLB70nH}bjs@Xv? zJLE;p?#1$IgB2P=%q#MlG#bsuvD!BqrWkAsx772hke`R2l z&04tF#AtM%`2h2dJObv^$AlkOE$u}HG8OIFF?h3m?2O1iwd)`;{G{+b!^ozny{Q?F z9&lXq4cYMLN@o-!mc8A)>@qnGB@w; z1B^C!05*dNcs%~nAT;kwl*5gDeq9R-o!;TkHhh~yHqB4=&9NQXMLuR)EZ?r*LKv2- zjVp&w-pe*+rHj2)=42!?YEH4+x7(GtWfu&3->BC2TZVI0Q2kc z(^fLZce@M@z8|YTpY{*=p}#ZjkF!R8ciLZRr6PY6OBMa*ZXNc%bc`1VK^Ufd+)AnZ z+?j(DtQK6fmEq2p4_Ec^zClFko^0%prpWwh@`>``{e~x=;`3Qs*Iw1igz!)I-9q;g zK}nfveMUX~ATdJ64uVOakh{7?myDWTtLGzQB7aQ$Yu7jDZG~!8vMK{cy^y8gR1|ij6>~+f z*6ilEjUN)T+=$nEw`5a|IZNKqoE-Ol6pjSB#GhFxFyTtRb9YC6;F-V%MU}^-5ds{~ z0)0_V0$voWTXx-?J^b2nLAR7p_qsp3L$xF2rIR;XeVN=+uS%ZF>jtNSn8Ehz202g5 z1?tClkr}UTm^^j_F{zTi$=Rg3;I`TnWgBOWR}!~dQx;2qKgu1OG<1AQJAca~{!z)b zlykhDNGIeexoj@pL_VrC9dh+4$f6<8_gdn{t%Z>`>aR?Z-H?o*X7%5IXnDNn*Hhg5 z2CTkc`Ws;V&ky?t*nYq6_rN-X>J9+uP!dYFGA!g8#Jocg{FA}r1AMMQMPqRMQ?Ld& zU%aSA;E*ek1RRfMVLAki2m4hxI1*qQtbxtRcZ55VP5=i1z}-v)nA5L#HB1=eQOLW$uauR++xgD**9yHrJZ|a(7nQoGT&d zUxD@GFN5{E;_LU~1@{B$$sU=h-ZN>H8}diH@{)Xc&AoiID@wkCTfb5;J|tQDm)r~T zA^8Hc`Yy}27VnXN9{kzlSu~l;xhSx)>AR*ZA&CO+{3sK9P4FjV840sa5#4fGV-`q=1%Xcb?+@5KAXSN6OA`A1Mken53yOi0ab zhI?3%<-!-vo6L%iDIVHXnbo;JS}Sdenu?LajOlNdKdz8aGws_BxQBVca>vjaN!~vv zT)fnZUA}79T68@+e7ZSQKFi)Ido(xxof{WUPYp|Zpb&Z(MAx?N)fM$gV^!Fv;I!Tl zH%{K5hsYdcHK$Kji0u!RvmvgA>uwHtyR)fle;D@<5izf%Bjqs{5)_rw=~{9{Se3Cm z-gY?G4Y5^vHYNwyiO!CiUwWEsux*~PkG&IKA~`@(vRrzH+qe~uXlgCuDJ{3Bj_lQi zYP8x;UrnpgmM2wMnd_|OcjNNNDWq`K`x9UpRE)HzdZ+PSk403qK2TnLcEa+I#W^Rk zBgt(KrS&&Z{k2i_U&6cp=2(Bg@7Hnu8s~8DUqI%w0*dXH;l!Jj!0*(YA?r9DIKTe?R zAPsr^FJWAP`;a{FU%`0&-^sb(_16J(XCJ}xeGjHL%*&*?yby*zF<7sN7?L%b&dXjT zZwKFw8LIV5`-gmZ8nl1&w&kz(&;9t3eztipno0BShK8ej#Q*QR7ruKNe^&5^{9N%z z+ucx+TTKC+4VRutHQpCIv1jo17;i_ z^I%U56@+OUMr69!>bG;ZBDK`5CqXuL+^tPd*A*Y7D`j~K5LFz8!lLL^tL0<;;Fke* z%s5kC9SeMi-sKyUlDJbBq3PN6$&l{6a3+_A>-3CG@TVP;O}6Ul5-At@V!JvK!gN}= z(IybFn-)xam5*_)S=`&nW9%h2a%|_s{VBf_8n2CXzCy6ZFB(9Oo`O>MeHv{X*1i!( z>mUkyVBR0ODN5Yk(`pmEE5?Ff_|hWJ_ZoXgd782ngvNb0c13zHeYDrloFJ$jJ;_RQ zwzs~hZcm(0F5e3NNI;ae)%IiH6>#pou&au&zVbyzap`??pDulYn=1cUe9|cJb7dg% zQW^-LxqMBoX{rkNw^aVwz!#-EtKkqyvX1=hVg9LuX`_Ss-pXPB0OLP9mGhnpuTEv~ z@s)n>6n;f!4n`XbzQw&_2uy}v|`EAO!!C3fF9RG8pi8nJ*GY1+}4|$k8ejx zP>3UUy2`HH5!cj<^tFvAq1sI=CK|VG&+mK2yEvM2K*+sj9tNRab|V*7O>^!!@!s)` z+{(g5w49XZ?RB%HO;1wx#-Q4Z@`SHMGr*m;bFCH$j{2>>5licQmNg$s$J_v)id)Hj zu?;YS#y6MIcoI?eSZ}wLVQd)VUi0DKKxV6tn`3dzvwsaZ|NY_qfX^R>`Yzx2n=lP` z)_u`GoK>f?SsF2(>-o7DhMZqYFydJqG5K5}o}BlxXJ)a8mpvW9cnLMPauzUn%@z>$ zi3E;><O-|l{mT>$O2m4Yim;48o{Mm6ovu|eJ`8jx5}O@*q0jVm z(`)(iAn=jdkG*&)7g#l_vG7PmZ?S8eO);=X1m7<1qM*i`=ybT$w$dKf`R#jlOm_e#DN8g50q#;ulZ3=Gs*ukFLDv3v`d#3!$X9ce25Y z!m+k^EgW=tyHM@H3o%x3(#Q$d$)&FaHpLJ$)g)tzl58K{t%tmiQS-4URCiHX8DpFM zvlEuB$lZEB2@z%1U&A%>VR z)Ydy(uK`@E<(~~qD_7*K)48WZWeJUU=ZBI($VuuFRA4TqxPVpQ~tmQSiO<0${2YNpDKqL ztpSb&cSJ>$pdZIDp^xPf(>_p`EaxvYeok1SRgS%BJsLFS*+P6<@vD z%;YxV;=fTZ_^1LP+EtkKZA84(Ag$V~0AIEN`gPwp<`MG~hiQKlna}wI_^)fFYI<=-16t}dq6N_Z4rF2S#mPLUH}Fc+8Q0cl|EpZk-xQyQ^xB9(?F+^;hFqm{!IH0_%w=gg?Vm-M=e)7 z9`_H0#WQyPa;RW_bn~^lObE@n2iOXw%cyZiIuDB5JUqGs&ak?u-SB{wi{^vAG0#4G zci5H|DI0t0(8!)sjenXLY2}l(jLQ9@$9CGz?E6RreF!iTa|KcM;7y`_vHC@Hj^ylI z!vRN}H`0g5k$h6A#h0mKS^NuplL&7<^h-g!$mjep0NOQU?v7f6`f4BZ+XPV>L>}m? zO`-7^O9E0}FD_c}PCv(btJT;|Mgr)b++V$RI1C_=_JnwOC1!4L4^Md6r-~Bm>vSi@l7?OftP$&02lK19W_J-VoYXBM&FXqE#0M`&66{?%lUcnm4#1a2mx41jZ2zLTHTm8DZF_PLi!Xc+;SUx9ELyZQESKcjgdpbYf)@P_)56^>h6w zWcM7Wq3twrwvT<#Td==L6OdaSf9r$8c5%qvrxk^^xfXiUruqe82(v8}u@Vac*;=4i zCV=eqeG1;qA?S_U;PEEFO{ZI0gxCjXs6DZ<6$8?(pbvdCWaE2z1KQ>$qrEQid&0o` z+roeULKsYLTi;EFVIJe=@v81luRn8|(Zs+TB+|T1ik!ro5nZ07dr4|rbIkm*NFa8JS1l7Q$he=?@uVYCw`Dua666G+2sltgAWq~n8L7bTWPYY9B3NOEKysqY@>e2`+4 zv|b$>vY1a)o^rxPthkiqajtRzqz^{P564T;!_VXO%%shsb9FMCBU(yOMu`vsy1<6j z>St8X(et%!-c+BgLE8I0OBFC)w4y)dk$XGK4rW*s$3F;xD$O^;JU!${q}46PFMfOp zsgwK8X$T#u$bX%AiRCYk8^CCy#Y5BOz*yny0nZRw$m+W*1x92Gqv6^%?}Pl z9_#FIh3>gu)Tqna#L-3oBleGX{8b7K!#Ke`ut?N=dJEqVZAOE(aZqQx%S^OpH6Lx9 zs2gYQj3q;Lt$a;?_P`1_p0aWQ?vpt~gJ|Q*xqj%k-uv8s;xrDhKj4=skFYR4)%Vj1 zG5Bb_!6P>=&`C;4{#*EBDcu4z_3|QYx7ROM0-ViOqq*tfkH3z!Me1;S1bxrj)V1_u zKz`Kz0HTg?6LC8yd(E#Y)B{)Y=Q~PTsElLk=b^LvBq-sN^s4SiVct>Oo(?BL$3Y;7 z@LZUasZgy2!>ketEeCVBD}HOwX~I4RAyS5g@>U*KPfzxV_9=9t2`5XKi?KilAcG)K zluB4|cxTKm=F`j*&E-K~8B2$G4d6@cr$i*w`i3nN!Epr#$pl*6qT?%+oip&h*l4A= zhar@0;vH+3WljiIVJPv?@~PCulD^O=jXxHpG9RXxa|JlW!o8|;r?ui6K={=O8B-+y zP3P?~hZBT|XG%p8knlt9e8fD{K!>Y%TWP*TEhm<`Gf(y5jm6Oj=mZ5wjuHI?`vd#& zwE4(Ff0{<*n9W7}^TwZq!~f`jFZSX;?EDQBVHigKG&arlrs*)+M0GYZp!jY> ztFvs&Dx1n8bfSX1H^Y9p==wwiT8y*fw!MAdUq}9o^ z%GRfh_3`W1cav}6Q#aM8E^cKL2m5Zg=DTer%YB_-2R;qgxEgDIPO$41;tZctcAsL@ zNMrAxW7NynuLEBOECrqY6SzUz(f1dg252@er7AeMG(|;xd5@z6yC)Z_Np9Lfz42Xc zJg*l)=9DsYIl4YyYMS+m)8kq;Y?Qo!>>=Ip*2xMr-Wc zn((k)j8wq-F-C5Z8mDRF0-9lEBR4d$JKPVSv(B(K+P{LEZzguG43Iu=P3b?#*XZ1N zR-{+Nta|OOU4MX}EAz8`floXCQt?+$wP)DdgXdh%s>9h2{2q$ui;;5AqEeLy5a6V_ zOe-cI9&G!%8mKLVD-uVS1FlA}b7|+xO&{OyK=xm!Vp+gz2j5R15htZ=T(b+%nXco% z>l$tDwEk$Z1S-6@>gVN5)U&y8?XwaYEjtU2P$)fD5pUnQFx8!?a3e8d5ir_Rweuws zqcs`~hH83?cBnqeFyN5-WgGqJ4k|LzU*0bEIGaiL8tO{**aiT*eXqBv%VYzDb%*fhzCYovo=;L+eG|sEBqvU7K#(CDFl`ai zM{97j1x)L|d)0D_ddOc56U95IY@JNdHio%{TI2>+)ZRk1r9<~#Wfb2dop_rRU1P2l z3sGeI7uqAT6V{~##UJlj=3qL9ns9#SM z;3JQyy*%G!A^KEaK2xn5W^i=v6%i(bqGOtvj912GZp6|aemS!50(MgiQWO(LZzte7 zcicHz*D0IJTb93`g_~5Ug4Qq1qSmT^7`a4%D==ER`PCCOk3~4^%C7*WG#w950AAl+ zYm&JmeCJyt$j3rtoZ*#EC`1ScqjjisfnP*Y_&my_aZ5k__sS&jlm1|EB_M$dHfnLB zs)s4l8EGVhWgc%zauOfSv%Q0noR}vH@zEhE5r^#3qx`}QrN<9XC6t;=3Lx^uc-=bC z8?FcIqTD{u{P+ud`{j84R}=SuC<~ZAD4gc#vWgHyV24kEb$o@fk3USA{$yX^%g#TE zk#2tjISiP>D$yl?U`%BDKBn(ud(J8ybFVnZ8aUh#NSoWF$246!aj0THBKgFERDM-` z$R4EoQ(N?_FaV&QCzg)pxpznif4BulvEY`wQmPa5a2`QgRhMd#aPiR%R&sWct4K4Y zZ#?*}Uw_{^z(9dW5ImGYH(|i6HcW#1xX0cbsflQ=5nj!Wo zkFT2|0t$6H<76u^Yd~rdr~Aa+2N!a@!jXI9++8?>l68y7boVJ=s?dj=mndTkth^8J zr7;!&E0pK^f$*kU5E1jAV2=GLhVEKHrn= z(>&2$DuknLur=PtbK&2P#fae+(ZIi*VHN)q*hw{Z{JhvZU%&3S_;V9q24dt>Eb&p- zTH!?-^{vk)Rp$ zqPwF}P(W--DLXinH<2t~d1{V715L$(d0~|*g$f-*q093* z2PM%}F`tV$p9?JY)=bi?#OoC>%X6-?P-=Nma-|wyKg^=&H34TV&V(-`^}6?hT3_%I z_KooFhWt1r7s1cw8~RMe8z7QtO=NjmC*2YarrH!@OLniU<9DzC@W6R7BIISG{t81e^d$#e+>&!|}B-0f~jk}7P9_pm?dK~pT zf^h3<8xQdTqTne39Qpa=g2+WCnJqoH=`;$THH;cKi^A)ZibXK}Bw;TwhdWqoHX?Tu zfEP|PloCo zW-rRD6krQlEa1{srtpHZL9a@Bpy{;91XEd9uMC+|JAW|fIA7BGp1E%OJiny+7~c+7 zq<074aqGKjq8Ics8ItSK8Ll$|M_#BiL_G?uG3tA*Q4aYlOb31i>Z1N4Pp{X=p91F-VVrEYkUcA>@H+Vbp#A!@k%Q0J$1>}I2u~6tW?0}y9&L5UJk*{ zfMC3(rm34=1Ce=vGM2YmBzZT#A+InTlKFu8Cs?rR_fUcKQpM7lI2t5)l~7WQEx~pp z%@D$Zf3VkOegKT_$)MVGId>eN=8}7+`DBLS)Es3i(<45sc<1312lHCKd(WoCq>g6$ z#k(;d+90$5{o?yIW*cIH_NQ<{?&Kq2e0bAxCh2P-QAw*#Z$xNjokhCha^xi>TO^&+gOEtoa zstep3D}BDs@RP^hNWAzGl)k9@HN1j%o-i1DUce=%Npp0rWp~I`9YRiuc;_{?zMZs! z1_TSt-fg8$nf3_kP2*XxNr_Toy-t-Q2ir_*aso4R% zh#e!Q@G@1Sv!ekTgkV3Z1MH5^}iX4e1{)l~T0$0v6+cmnxV^HGcsGq%w@`b?PGkR$$)8dtbl2v9caaYa-qN=# z-&twPR;?s93PaF4p^7(Yr!d>vsIiav3yfrJW z+=&yB2YF0}0tB9TZh}e}aV&5i+xWy4q?0h9>B$+3B zeW2Aeokqw2J3z$0Ztx_t$k-Dvg!D?}&U-^m4eBNAy^>x^I*1o27;qQm#H2<WPk(u!LTJ+-aapBT@LK=zQv^KkjwIx6l4=Y=N$r8TZbbWkr z#=Rd$saEc0d}UG&uZA-uJSkS!f_Tox*YgIRUi6v3;x%SYUVs-xjSIO1s-17FOS@%5 zna7uN9B0xq{kXt{gEZG1OuWQ$WF$|JYntK5OLS?SHk?jCn__-%6E3Px2)Oiz1*Z7X z7)j!UOA-i%rgps0AX%P=K+4 z0y9(!wzP1ah9#6cQ2{C1(SpUumfi*e<)L>aQD6pxibj^H%5v_!9NoOE2$zJ0!s@{$ zx;7ws&`X`-DVIIFYXm_M8Ypl*U+3b21Xc&!80HbYmN6EXqxn?3E3WCjSy@NDxWHy_ z`;jWQJqp&P2i}~kO4=6xW?M?EJLQr$@d{LVc5l~vf$>19&DR_6@_NN{P(8=NJ+m|x z5hP1b87m)S?Rw=&k?JrWzTdf14W%;%oH{soclAvtXIi)Ya> zXSbkVrv~B79}By{->2Fwgo3@>;bkHRkjp&jIFZ){vXAg&;Z+kpy;Ck3Z zy6pQ>mIJSLjj zLqo)>MC0n;+=WH;`a&B%A1G?B~N>eQc`sw zG{?FQVCCRhC*lm-#q{LzCuO-1mbxjL6~?osY5*SZ)cH1A{3~d6FzqZQZdEPw6GdGh ziB=u5h1E-%7l-`z#FD#Sp&G)5?L;aM^LTWCGgs)gOD3X}Tq9YGkBy}#&I`$E)_vJX zcfi}U0yP~;RL_yK(6Ce#W66PI!uH_1GC+i<_>E$|&=|CHOW0FqKl29?(7cSq;lnsF z!sBVW`0IUCuEl$J;QGZ5Y|4I|&(3}H08?X*>iKdC@3$**SaiqnrfDdjO)+WDPN+SU z7~K03%0x8F+;n*7iVIbdd4iLxbto?Xe4?ygNlP65>-?ySNBZ||;hQk!cl-Z@QvJ`I z@ylGmbZ%GEg`iT z0Vi7%cN}h6uQ=LhPmJwJq-5JI*+<5pXsf3a;jg;H_jYp<-D>SI@ozNTEe4bQT+ntf zmhPIIyUc&G3&gFIacf48w<7<_y0)qcy^FBzJp^>Lf3#hWIQ^~kCI8$=STp~Qgq6RQ zzBFBUGo~&53u{F6^o;(JzC>1T^_l*3U+)Ke-tiyxC103N;=^0xvpt`A1_Ay`aA~M^ z6{hob^IFmN1ed@3PJCGGfb|{McN6j}g14K1@aIIAUNX?CoN`NZNLQ3!R0-Aa3Ax_sv7Iv7*yeZ3NfLB+Jx3aw#uh~mEs?PcB@;EcZI>L8?ecF9JK z>yIk0G|An7A8no2_t^+PtF`E*w%)+M7~}r78;nuWpaBD%u5sw)QH$XV9t{N`+0d}kSR`|jCMlH(uMQ~dz#)YXF3a(dE z@L%0ay^BE5(-4Kg*&68&bTg0ytj=su6w&+^ofA|I&Y_=`=w%fP+ma|t*wrYpp~taj zO*yaM!l``9^F-d)JJNAMOKhkW(-`smB2h*`@Y29obuzOKJs*dO5(_HTXE?tqi4>m> zP4NaAQ&u97vEQ^BERJ-|dZ<5ZDZShS)9_AZdU2B)%ijXWC(kIK9~hde33W@9kVEDJ z2WVO(>wdT#f*`ZHRXEBs* zNdy?$$}`Ze)4u`>gl*OM=;saJJ?@7^x( zKAJ`S%1&m5QFO1u;NjkQfbBie#0HG(wPl;N?}oF;Zsmr;+v(PyR{*Er4bRs-DQs&- zfc8G<4Be&Lh|M5?g8m&PzfDl=*ogiA1RLkS$434>pI5}w`27D%*jWC3kqG#vN~Ep9 zk%c}D8#3u;p3L}>du^+CBrV6ZF*-JyO!=~gW4;)+FxKfK2Oto^Qgr&rFpu{d%h((07{JRvA`3)F)&h;ad^T_ER9BIH$Y9em$r%z?_# z%iVpEQ-71-8oq`3$wX7;zGVDyeJU2=>FWwDCT`RS2ymQk26=3ovAaMpI%-BfzEP?X zU@ANl)$ROJFO|ejtrZldnFt-!CS7Sgrngt4`Sm~pY@<9*7VEQ-gR#+lK*s5PKe7i= zykk9X-i0+HdRW&C!j8JNh9PH1nfb$6Xdh3Ws>l@Z7Ais0^DGhEO)WG&Dlk^`llb{? z;0aG|Lq|xcZYc-}y$0y%ApMQDjULL`6st}Y3mEA;>>o?+O0m~FWnL(O6d-dV2#K$C z44ldL*Ihk^0xOhy2o1~GQe7fbj-bk;6+r^tBYP04)BBX7d#-Gj`muEj;XD^bxfJhb z6(`Dq2ZJ0a)vQI*7z-L3j`gG;VW<~gKtM6HOSmCH(WLY$5>fCfp5VeD!3On&o+I3< zb0~iz=Vw)_hbyv%qnP&@1r8^Cl(yhDJK+`zsxTKO^4UcvE#7egJU$n(Ja z-APVC-!3hG>~R-9b<&CD%|fkPFYVF#Aue$o1Dm6x%<`mk!opZb+55desLm@f7WaUA zuyqi<{OH-`ZNg*p^h#QFUc#jHa_WJi`Ah+vK3k7hX~L6@#)J*`#&no$i(y;iec)8a z6S6bYYt{q0f?&|hiwxgwlYBdKfSh|R1(b5(o@JCs>EQvgr{&nPf#y5fLoW@KxM~Ym zUqRgJ*5AsNJ7)9BkWbeHZDuz=2c520jI9CCZY(x5TVBOM0M+ZcD2 z5Fll-lKgV;B=tl+_}pAHpM>7F2b^n=eitrHd&eL+iI7^}GD%pnZ8*~{BYT(+!Q)&8 z{abSI{CHAAF@j^!C<*)-IYtC9!5Q{g%tu`-oNsw!)S4hlb4WOgI9TPu2HOJ%g`55Uh2IHvCu0HT6oJ;`FoBjiX$cZ5VBTRe9_J zu^WF1tIs-f|6mpx z;|M!5`*0mx$=%kmnQi@?D6-9+rO=iEA$~Q5uvM(Wt(3IxisRdO1Qc%4cT}=jD@D=9 z@9=ob+9dd9Dne7+*%N3RMA#-OpsoK1hj&NfWZP}!ck6qnyWa@%+nyc1+2}{}`ZDk) zU_N}cAdnqS?7_7~IACJ`rvq>78~6$7(?1DxZ=6qX?$y=23WLUd8EUVcx?22g9PMFM zz$ON}lcKFzQ`~%ZH*RO=rl&6vqCY>)t$#(!w5tFI&v<28fvpcfw6jIM`c{-)*?d7( zR;f&9UPHc&GnC3^%Cu59VRlRQyZo}9t36*0Sw>!`V+p>rYqlU9!i#&8P6*f*aCJqq1RN8DkzX+rTWhb2^yMsP<30T%uA*vc9Ev+O^?2v^gAn{VdKOzDSV%=xH zVwUR{_6xf5eL4f!C2YT`*qF{)(F|iA!I;<5#f}avHs+X~@!j&{0|k6;KJ`G6&Ach* zPWLyayB7<5K0MXFj-z&~=T0l^$Z&1+2)-Pqs|_9Xgr;(13s|^I3qe*JhZw6!E#EYh z-_3U-OYJor&@n^f2GKXr5>}Su3BKR)tS`VUlGIxlM+OR<*vw2g=ShS3+c;hhSG!|N zfh=O0FYnxOF)4H*56@+}yK1WjM-ZCmhbJkM>?e1zO#pI0HTpo(zUoftEtnuHGBZ}8 zBB}Ne0?*FDb3BbUCE31EUl;_E*xoloQoO5LY{VmQIPg*M(ikQ}>y!SnJc5-92!1_y zh(=9E0v{pRFb#z>e0?M{@W!EOUnr02#!ke1>Hw6cmWKwG?~pjd3Rz!QQXoE0xo7w? z|0nYfTOOgWKYB;)N3o<`^RLVE|NLwDSMz_G@6#H;-T5=PecJIOQ}IokDX}6K^;1o_ zcx#K;Iy#BH-GJIA4{?TWy>*W>-&Uv5%v`~kZc>8 zpwn$5ifw0th^-lP0~2`9ApA;!eZ|lf*s^p}V_B~%LN>J+YELuJ*p@i?@Rlc&txp5p zHDhRc1Ev+8Hd|YIgEIo(z;^|;&0ZJVaCsZQApVVDzlAM+_XxcFH9Tjo5ADx}=XmV9 z;W<_Vz8a2Gh3V)-bwvc8HLOeccq&*zk*GdeWBk87X0;YG0~0xkXZNco=K^ zQ#s{LcN-EsPp6V?TFRslb?VEY3hx32p?nyYn4|#qDe0=aa-`_g$w!#IknAf2ONvMF z;(=rWc?mLs^9@b_$EO%KOLM?T+e4xrtGw{p1Lugm-)Ate2zDmGSM3s@YA;~Hx1sCY z#GXD>_3IM(8SY$3^CcFir=f-pSBeAzDs~Pq>a*bpA-tJVJPARWHwB`+dLfwNWfxdZx!b|dO<(S@A-6iju*4-jNS=R}88ZZ~=azoe$#6=pI#}CN ztl7~sSJb{{$;c_W`u;fhi*gDN8ZoN#`%Ll;G*(v0a{N?Yb6~m*x%3WlkxN?bk!r)~ zIM*7eFZ=UuZ%L8Uu0B43kRLzN z)Y0rUP=EVQB9;9Fdz$&wjd_spJMBE(yIRWpeS-KIpMW!%DHgaArOBHGhv4PsMAd^+D1q4mgv7jR%u!84e;38IWp92P|H)d< zFwECtoquU-pZ{x(Lz<-7R`yd-7hRfspV0oZL%-m_$7|csUygYH6NS)Co}1os(3|C7 zv<(En^kx{oIlMyqV!Vd}YlK3s3o7*UQEGU%#6q{&WnF*QfF{}f4-2>3jpygtbn3q4kw`cz!7 zy6@s;C^^d};;&iE2jer%mCGkr-<|3RJ>E5|83F0j95&C2e1yP5AW^##=vAt^aFep) zh1;j3mB5Unzg`TxsdIf6=K{8O{40ELmcJ$#giZcq{Az*$)2_<0{nf8``0O-ex_l>} zY(dH-ElltM8@VRjlR0ojDDag0>WaOO+^QH|KVm7EpVDIjz>cGABVrrW^t@hfsImFS z?Ld+KyIy(Ew>{7`l9$pbs{25$}kE?)uS|KdAtp zaORO&J(fO^+cfExeK`;JNXf@A887dH#2(H#b0R3BOKhcaHM0)^w&TT>GwYWNZ2Q!V zMDkPu^ z!GCDgZD2v?-5af~5(o6vF0K#LOQ|0eYrT{YEZ}{vQ(Df6GNuf~URMofexGpa z%p~OSz^fy5LAL~}F5v}iQC_7cGJa=E*?-Q5oQi88T?q9UXABykweIGoazqS7Cody* ziFt=?PSpL2pw`H9?C_m(70|GPsw{*{nOTdys3(c3RYo)8^JM2Wxr5{L` zv9dYFC4)75nCpr^hq495d^4O7eU3Q1{CHmI(!Xp!Lj$lq9N(5qoWE|O8872{9Q79i zHM}Zm(hW*vhB(diwtdr&>wxW6{Up4%5;R&a z@Gj*m{Dumb5i^8CS^K@vgUk)o1y7U^IeGAV(N7Ctb}#Ynh?yt4>fmt9i3j(5 zu&m#|c@A7W{%u5j;&A>N-a%~Zo6Pz!>A?A5Qfp*69LV>n63ffiLyt7`6Aez**<{!BC)Ssar<$r+9 zpDcd=LwNr4qrXGwPbc^@kWO|_sVLc8c-O#fg=d1?oFKPWcWN7|TZ6F_-kQY2ZMUDx zc<+AeYmk&-8(gN@F5^vYf7bX9+ili2r4nol(@=D4+=|IfGAsF&!Em(KgyVFtCuiH) z>22?AcyYbFt!y1{1B)w@$oBW!W(Se&YBPFEHm>*$?~Uy%5lD9LE$_tXPsK7k+={$K2y#VslB2R&t zydIv{;^pamn(j8lQ6(|AdfUbCXh^W5>5;k^Lnm-}uAk|yx#QbtBa@~HfD;k4H;#-n zw~t4~pS{}U3S~+m2-DKOQSOnCyo!!H9Nt{BJSt@NvA5r<(ZE?0O%uKTG>61_d5mv{8EQZiP`9) zC0W&aSuEbP_F&-PS*^sX#*SF?63J@^nh=1$8oYhR?&Kc_?R9;Y=X3y5kRwjj>Gd)o zynE@vMJD@(e;2kllLB(svM?Yj_ zrX56z0I#0Jrw0!e=C_cF?|G4}$mkRxSBLn)r!{OlG|v zXfx5;TBuh5Pq3|_EL#uWovGJTuh5O|Rl)TSvJcT^#8$)H-i+F?dNb7A zhdsxc7iMkQ{@S>HtwKPPzq1m&C)`*0TZLzja$GyxIyEZ-e2Z$m2|Rtn@k!vB^CwZx zSYu&*%aRUpZBA0j_@DaBG{OG72<|o%peX_pg|&Phb`zgD;geoQTM zZ2l$C9>=s~sD^*#XT?W;7H9)sN7`Q=6ybN+y`E5IkXvarzy{vG!tQ@^LSR4RPwF%u zP2aq7#{{y7E<>-Fm#czaD7_o|DwV{mY4#Ty1mu;L6)txx+9S$~tXhxU2~h^fOiyNx zJyn@CrB>A&)>|KKHM!O!`MkVXKXl{s`-vjJ^D?o+GD_jW3Kj`6sUR3+8eG>g_5OhD z!>pHteh&njKX4T;WUAi!fp6%xd0^_gB2egyohI5IllIW>A+VCTaG5-B-|SL zx&$MF`R!J-DMvM36A=eN!+D+V^A$x36rAzokPZ#{XT*4E@u5VhkS?e|BG+)nG1aP7T=UxX$prB zf}rVN*l;E3R)}0te?`rR+{&5|x)(QhhPEG8 zyibVjEjMYRU00RJwp7A)&EzM)O?oFLn`hT9dP@FwN=k&*ppQKjU%WKV@4zgUf5Zhi z;CdATjg3FI)|j^E3{EZHH(QLKK{+>R@z+h?z^|PegkIymNCQ=0pZFi1;ET@o8n55C zj-f?cK6JJ}w#EB4VB7d37dYzQseW6DOS`^nJ>&UXC9eo* z>{!58XZ~j=_>Kzze?R0Vc-1m=D= z;_#MC{<;d?kC5s?#{*xq#^zlfF{)$94@OANCl=;kZeb;r4fXi`y_Uf|i2|nRF z+UDrxIU$Qr7L|ItG?HjkHr^RwumXa=#21+6+i~5^v@azY_cKWO&c#A%p@^C(pAhV<*Yn|-Jd3Eu<0%{5^ub)>bJIR;V2VVdvfxR+H_swpe-U?& zeX>;=Es;JF>ezvJd_Es9gK-ngLumG2xPZdhCC35G9UBePSJctpuuoop`@(vs?QLe< z=IFBJz!!$S72+N($IAxeYY2`qeZ1b@K(gQ8`ViE?vVGUV2c-X^{JgSvtNG}dW-jZ` z!U(L9vc7-!TNJ%r1tT3?hGAE#Lau*pHqYN|zD3nB$CMm9O)qv5k5wd98@;UnMOq&s z*=kl&ZT;r1tag_hN$k@LJNoOBxc>JB#HbEOuCuH!lq+o=6KP9$*?ENc`TAs5`^jA_ z_dRypd^&yi*sgE3Z2JY0I0Gxc-#ody^8* zEv+P~hQ4iXSGrS_qE|qT?vj*__&I!x6=uEW1DI)w)PGjZ%|n08!!z^wfbaJQwgVbp z5}u00{wFIF@O6~&pR7#4=cVaSSEf8SiLTeOC9r$|f{QHkN+#)jy`rUl)HM#(K0UDr395bH9_Y}f)~`R2)2 zEd@-1GT9UMLXHY z6@7BAy(*PNSoM7Cagt!A>3Dox4CrCJ7oIEd{uwAuhEB4Jr^_3M!loUF#+T-c~hYF>dq-lkrhRp9b4k%RdMRhjRp z)jq8EJyrXA#`nu(ensED8{tE!pK`ZNM0eK*N|H^BCkl5FA7pDn*y=FIwgrm+jbj_* zLVj+cx-uj*+X%1>#RQkb;TTxpepeoDJ6d&}I%ww-=yg8gMZ1OA9=eXD%G?*n|dHvN&r5My#7 zAZgE2#X!s{qM75(Ng0}<=uOW!zEAe?Q zwRZ6D)ewVy)xKr9fyXX*fUmB$m9A4I=1tN`K2qs*P$1-<>EJvO0byyNBUKeHUoJw;Q*qzyA9vq!blT2Cxlv6Z|goAPiAdwaHE|D`}j zzC|T8E#hMp2jPh~4f=7SBk?s~ki+|sdUHn*AS$*)v|Q{rZh>U|1Pj29N5UQ_1)Of<1{OXh(_=L8o39iLV02OgszxYBywzTG z8-*++N?{h!q*-|fS6QcEIhk+C+)Ox!!g%UM^O*;6pZ7TAoCDx;zVT$!ikA1PNaNDH z-2>Iku6%nLvOC}XYl`0<+Oi($J_?=AUzV1q>J5sX4-dCxpqXQfy!mEIPU7W0&#bPl zUzrVvP%$!-7HES;0>z-3qRhc4bA`pZRcOO1nPUZy$`MkpX=>mg%USZxB znEKnL?M2H-BG;=kenf=JqrP8P>1J^Ia1l6mu#-*junl5hNU^7eD}wCQjc(suNfA@8 zJQQ5|xcR2WA2f5iBKfj3mwZOz7tY*N*;wp|(B3@>S5vFw#?d9K8{K7r3qvZ{RA4L? zqNq2fciNGq3Z7f!xLRKI`;IUgF>p|Q+dDNoMJH1XT?<5e-DJ2a|v-~x= z3<741?rN{7)Ee>q-TD;iJ{Bc?zY31ibQQ?HUEc(^1-OI`*s#5z7K>I(X zmYD9oR!<31Y}zvBB$6@$injLJ&e+m4=FxE=hWgHH`D0IB7}50?JqJedO!3?_ed~1J z6kcuZY{YT3kk}QN??tCYROs2U?4|qJuGNu<9w>@#f+{%WQ87#;y+a=;B`gI>zNu-r zIB33vR54GA(y}@9XG~Z)dQee^Bb{28V@8j9U!886@Jz$1CoTm$4G9@n;$em7!{Qq3 zH)x2|h3qOmJr+e*@6I`))Fp8U!|ZAtdmYy_vXR4sxp`_SPOs3lcp((Qos{Of47uRW zjR+ZS9W@!(`lZ&lrnJQdoL}8-vT<&zqv7i&^_0s}YvoPFdg6xXJ)yBE25lc)x7bb* z!e-ki!!7I+X5GZ`An3(ab_;$LroJd|@1l{QkAEMQ5&s4(BmNMU{o0R?WWKCoAZE2j zVn$#b2|52zpn4{j98-vC$XT$FK0@ke^0l}Ec7)k0C}G4vLMlVTPIB1X>o$TFdocPH zXYhQ)TmJ=yf^1lp`UaL^>`Zh`pmrkwUepX3qxps5D(RSPoJvF+&NChESMxaTGM46#=Ck|=O{j4;rZa~&i7ol)~L9jlzXq? zc4X$cRMY}O77gPRX-d{NVn>~$DeHu&EtR zjN+k3dcTlXmq=fq(&Bu?tNWSZ$ESU{Na^OB$Gu=m+EqKnBJmLJjLfZD`?9^3IMa=M zn{FJW3J030x+r3{W(R=X)mQ_|(Dtjll0{Oh#5BcSm#2&|hNhv)lkOTlvs@kZhoU*h zB17Wt7_JmDH1O)WCHMN7wH?pi7Ve?o7n_q_15fsG(Z!r1UB>eE{^jB~)RDb9?0TJ^ z62zh8t;|f>C321>RW0s%JC)l7mPahW#=0}^VwGtUw>3OATWvJfpdKkM%FW|^OG~Lk zd|o~n`mRyxK2Pvn7&U8m@6zbqy{(>WqcnDd&iHwm(2*vs+`=~w#kOH@L~<|ATPZ{m zx@+^zsTT3QQ|qIl92XOsPwjahspWlJk_U0O;qRBp$7(n0qut;w%L$-Q?0H{aI36L( zjn-}Kv%^L7(aje(k~C-X5C@H}{55_iZ$LqXm{hfs<^Qxv6EB+I8LP4%X5KS#vS=&Qh%0+7!Y zc8WOI7 zWHgt3&Hpa6W?o?@v%r5LCT(zYK$3~yyrxgzQ>VYg-k|azfMV9fFigo^jV8bj=7Su; zWew$pW0z`!eKi!H|GS-Qw>sO?Us@Ub<3z_VZP7mNgS;gztUW)0wQlwN8?_3D#`BFl z(Zf#fIXv`kqk$sKBWdu~jJvxi;i+T+z{#+-H?v7bmEdxy}@7JCdMk*Z6(Mfrp z)%uE)mR;_%3Q4h=#F#}}^wR^%76@%@r+B-I_g23rnzk7-e|&7^D~)UA6Th!&EDj5> z1oZn&Zf;U!vC;8iIgm148^l>});KfmwhvzCdaOBH<`ru^-|9Wd)3qmfUD$HLKeKvt zC3k-r8L%oJmrso>?5(~W!%K)$17}}oZ!gK1?uIVDix=g77%Vl2LT7!Sl0tE)?H#YU zTYZR96X_^Yyk8A|H0u+;I8k(QL4#a$$5G4sW`Ff#UySZ_m>q5nd#=xJpQ6jS*;2PW z^5#wl6dVG)`yQZ`Ut>qJY-9T}r1 z#2+!#(l=r7JevuJHNB#%{Z>HN%;tWKDM4WlyxsbR)^Fy#~Zn;|JOh5vb>kYt?|O;`tNJj!PM`2FJveX@wmRFe<2nXdFdZz%U~cKnn{{<`BO29vu0;?fbshX6*#6l7c-DagKpQk&6SP?gS_VA0n)oAlh8 zIfkJ3$Uz1dm%-p6narfG1d_hcBNWV}=JG8lO`gC2<+oADZ0@%SGsP+7ih;w>S>qgx zAtqrs6P;B!BNC>r69OV(Y>sXM#0ynFaR{kV3|4A!vls;#!Q?VP-ZV^X|F&q?pWBkH ze=^CWFSEzir$u$`N;2#R5xgy`I~VmN2SxK&iSb8Vd8n~Z2HkqgV^AMkA4B3;honCB z!2&_^WlNUx)&bKPwvI6vk~M<=s29nIU$-It>Fc5W(~%+H4eh&;eO7}&{zeXBYM0a! z#qlTe3|WtMjrb6)H|S#-?mC01?*lttScE$+AM1zI&~X!o;yS7-w%wLt<63^Gcax_o z&GXqboZ1lSQJIvJl3w>GhD>5U)akR1NbAV!(T5@J8n2T2fEL%qo{-5b8V~2Hn#u!n z0}hQ+346cb^uoM9I~|KMZ^7`xD&`QQU7YcN5j8F|Z@XQfg99m*C%H{PcRI>k#!#wh zh249X(GiWI7*+vyrWdMG_~C77B9=#JEsEYeH@d4_osnmr!&!`bglqmP9aBjU&)0MS z3-x|O;A*xC?foheIJdoQZlbCq&%4@Z0YUR7y1B< zTN>iJSWItf5W9)zKJmErd4g79WR5EzKb)#D?>%b48O)&WrN07^xAZLXPs@WNS!`~b z{_J2F)eb(kV$57#^a^sm5ILHfw`KoWR5-qT4qoR2>!|KT0t$>{ef+OnL>{%I0nH8A~oP#$f`tRq=FTh%zU zQ@xn7YqU2kZ(Lj{L>Lx(SFYBCqZ|(GwK3_M@qPbrkv4iuv5Re`2T!-^f}DCb&ib}t zBRxHvy!Gi})AaP!at;!y6~!2wRALG&ttmqKF02<=;3qiU zI>)4}-9@J!>JG8@$BSXCGPbLoar8tt^uS~EY_;TxS`W-wPTS3C;DC(_`iYJo`zB3ZZ|li94WoWPGX*dBk^Jmbhfx=%*Kpazq`LLx{)#$d%QM?jktGf=Mq zL!mu5;&U^O=$+~OS8YlT5{$vFC;`JV2?k9PHY+w$a|i@nhM=HfVc@7>pykNUe~M-< z6$J~I7!0Ps;s_oK%*c!KGb}}Berr#(SsC%2ktC>JGLw1g)1s~H9eIbqh4ppSR$NFP zIOxTPK!zkg1t-R-OH#?Xg+GggFvbt<#hwUkmSLWF!Z@AL*P@^2r)|J~e5(05pP$nF z#?RrC+7T|m`Kr7z_~14Gm%w@(5x8O-9L&imU)za&D9b_qR`fyV5Brm!jy-Q)+EiW? z0kM=zu0JgJjpH(;zo?Oru9p1sX`U2zv^h_R)|Mj}GA8La*;+mm^|;X6MSf5W+&(NH zI=Q$loeRb)W9+1dYll#^bMh8`w@w^%Tb{1X;USyA3@kkg?<1qD(yir`Mt!u46YE)w z-e9;-rDEGJ9<0o?2;o$oQ$u$<)h*++;$z+Qt03JSCyI84^|e;WWXB8T!a8~Cq}}_{ zQghKyI@_Ia`GoY_J9D+x9vVkf;xvsYvAb@&5})J=+filRFm*zzt0#jMhujnBgVLdP zPJ^f7B%N->17WYh7?+teTz3;8oa#>B-BQ=S3kshnUZ!4;+eNMOr(IB=$+RwT)_Bu= zm>_o?`9}1?ek-gMb4%Ob#G9`<&fzrtCEtR4&xaMFsXkJxtLAxVo8n=At;=9wbn{AZ zL5H69JvWsXWV*HfBWnAjblBWYe%HyveW^)(M2_}h3UQ8mOv>|m<2IVT^jA-N!`5I$ zPkY9cXnnCn2uaqGSWHi8fZEgAdRFe4qlNX6x2Mx|=~v`)>|$&)s&_IYchXv>6ESP9 zJ4U|>LN6gJ^G;Ie`Fu|KH0qmTn{jt)Twy|f4CK32XsRG4fg0`f8t-pmEcs1a6$?9C zUMU7$(};7XvkACs7jp{j@R>0(Kuk1)9+Lf2?xyvY&L3CXj)a3xFlKrp?={we8+*=9 z(KVcKB)q%9oxfF{7@!8H#Y1W@mD6o2()Ad3J?o7A5qCD~<K_an{j zKg1(h84^gYpg8yukD${7{g7;CZOmH7X$Ccq$XQI8oa<}2x%m@y zgw_g}#}tJ%tFWOa4gVDVUi<$6eUjU|Pa^Yr>6c&Y-Fctv$QE&=pM5ET9r0YkE`o!V zhjS?ib%8(QnX%?QjD0ZZZ*0yd=A_E1KvGdS&-I>_2Y%{p;8SNvdwUN8y$cP=qv0gL zo@kRP%|b&@(~(ESZ~|y#Fk>nrW95FLfKi5FlY`2?h338asvj?ke7NdUKk?_cY=P>T zXyC6XJwxJL8?w&_mw29Gt+Yy8!^)?r6&jzEra7hd=3nTaGi&{D84&w zh9Esz?~~)+p>juzw1rle$&rgkS@D5?!3LOpJS~g^M>crLV8#|H4p}KJO=0m zU^SBA<@|WcYew8Y(&r!o^LCG)r&0ob34UK_%Nt9{Co~+pn{4w1vbWx|{kEYgTZ127 zg&BS(`kmo5nk?soeG+6Lw>@>w^M*7G$Tt5q?7I2PXjHl;CPMHG6qm?{j_uGV3fD%y z*@Oq9N0RxG#fI0w@7EQmzfcSI^)Y*}0d1o)Vetr~$2sh&xY=;+Li*k-5`w+z9V|RZ z6b4NlWfkR4r!UUP^4>pIvDFLt(6G01-zc)VTz84M>TG%J%%NCMjgXT zmB-xUpnEG#nJOfUjy5g~&C<|v9aA;-@Jvl5Z3$b)D^<5512C871}!R@*84)=O?I9}*Ww&IRW%qFoUI>zZ}JB~i(#CTOK z4V8Lno%kcdguFb&a&u1HA!d~(Iqi()1@%|sU`JWHShl_-nhTZ?HF{GDjW%8UK*_9f zr10&rwUJUk;>QiPd5F9p4!%jAdLcP2+>3Km4{?>@`nFh+%cZ0Q-mte><2p#H^C*1T z9nb&RE86}qM-pFEU0(ugzkGf*Out6s{^1dCChx01|60I7lN^e%>^Fs+$Jr|Zh6r-) zFz9#C#J})4{|u~1lt6!ko+a|xuiM<MRDTTl>#8_z2v){T)@*0u=pWB}W9PM~?heX z1mn%r8J=uQPzxVcJ)Mh1W1a&%Ky*om|7Bf-(Z<`RIO<3`zRP%p@Js&4PYH&QwTNq(Vj`Jx@oeRa zjZKi4ntRX>$C4}AYo(sJ3_$j}3nPnFmke()OtI@xtcaG>=FY5{h&?3|VxtOvVb7g- zmdgjzSIvins6KnR@*o2bH_$?j4`R{+&g_f*;8ozMzl7h^!Oo1;F!(nis8`Y1lZ5@} zNA|lX7Wt=-?9V6mrz|k=&1J;GbOSu9_u0d- zh~8ehjspZ|OfrG^r!Uf!pPK2!iX}Xk_$rPj4R0t*)LgA|p8jpc56CY$P33v!0l+DI zydBM3=JMrA+_5)9ur)jMTPLt_ek=RX%uBx*gF+v^^k$g6m0>ynn|2fB&vacIe%?FFm*tuv8{QKQJoHF=qwxXLo! zED0WT9TnW^?uzk*_DXE*yp!dj=QUFvN-HCsMc9(2Df8Tcxn2Z=|7)h5sZPJvA(zi0b{OXJ5`U@3(s#b?$S4AoMwR~g7WG*~xCy&(_ z$+qChD+!!%K(v*qS}&wF3KG{|>Iz)KIIU*S`F$JwISCPPn4FK+19=sLf4>i+0PlnK zTur?9s^;KG7qf^}D+dn99f~Q<<@qorwo0c@{NW(cO>&dYEXE%S{RuFTsAsmy{E=JLpOH=1DV9 zeud5j-H$Y8LyuS0Ox4X(YNmYGl8D>eYf>MgLMzqS7wI+lW|V{ZuW!=owL_1Ch$ z&0-TC^vlg`qH`BVce?F`=_~WP6mnr8^ls9~*@oX!UpHP%Qz}(OrA#>Cvf*d1#~eBG z?8lDhAg}1Qr8A~i&}Ui)wXoxKg*{xFI^*N@XIAE8z2b%s+Iui03?DdRaN*8`He=$W z*KM(_b}YgMr+? z5b|n1{_qzsSVwL?J}o@Ha?ttX4V|U@cN^#fqk1R0YdN*cU1t|`L!Ir;2}m`fp%&3T z9m(=XJ8t};TnO;F2YJ5RUvCpIzQlO=jmE69v}KTLjF|S>2p~-swaD+&Kduu zmAkyxqmoN$@T!ymb@v$6Jr)BWDx zLg?a;I)vtOtdg`1J#EoYjMY4C)#XD`?a{0r+FFwUQr9IGfvX=bm{g0+Adjy#p6pQH zUP#te5L@xvR9@xmx@O3kNAB>%ZvQ;LOA%rARs2%sFWXc}rzh0~s47&p3?N;_pCw$l zXKq;Y1>qEqhtOcJ_3JquD|d+;qCDTAg|lING(F4=%5R8`RwY8$jEgP|<;^D!y0;nr zSD_fFI$C)^hqvuae^dnak1wj}d12uPjP47gX}|Je$L+U7{M9AmX8jk=_zl2wFR^sz zw?J@9@lEGusE9J`m}9OOH0TItA{Eug827F$%@qiT8GyhH6U98tbhKegD+oNhJ$A8~k$1gpQ#Jk3x5Fm>Q#2@fi!a@aJ5tN_B_5iHGE?_jSaIP{O&h^IN+?`9! ztLB>Il$X}wqaQq=6Om`JnDIfdfl*i<6^S`ONE{9>TLeZ4POPAfO91ZgEpAFWCpjbJ zf#n72mpz=lTdDc!lQx;lzic7c25Fm;xb>rnpn%fP?qM<(d=0_iJQ+a1pRmY7+N zS$SG}laMOE(RGhhx7H>d+K^Ki|CHmJ<47_rq7fpd3Lml7nUf}bQ`bsH<-^1>{g*?y ziUE}6xuIGqW$@pahpMkV!O6IZUk)6)z50MO*w5E5;Wg*=X(=IL|_NG=9?drU;ff2d8IjuWTq2bfB2^$b4nFXrd?M*3<1ucxjW z+K4QVVP~7B?Ez}}hG+%eYEE$8XwyMYhf&+M31a&TS8$ zhsgxBAk(_>Vy=h3#TxR+YL0I9{!60-fX}}B14Jeeow(!fD8H+Bg2I-M{zgs_6wXPX zAkgv4$ce9y-DkevEwfVr_e}TqF~I5Di&Zb#?|%^Wr$((crenhmpwp8cKGG$3tX4*ey|sFI7uU~+=q z!QsN8g7elp8JK4!a3KhQGCZJdO`TQtp~A2U*@K||qUXq>WVk@~qB5D(Sg!3IpbKmN!8F+qY9TI~|SzS-j z^RQBNMpgvk^#JY0;DN*$SLj1s9K|=1(olj{crMOSPlegzSe;87m$C|*fBbi<)~If$={`xjRiof0+5~TZ5V;>o!*G1T z_V$1<)}59VjaI`Ixt_J>=!WsR!nI5@;=`L{PAC&s)^g<8-HG2n0JnpRz2$(>0-+0h zSkrwZpnu(Meh1w2x~GHLr>dVyNQS|mIIFFDlug*?uO1}2)9d}^6f0AqP*MDQHy3mF z=?@S2wSX5?j9cXz3DN(z{l4Dj5Eq2Z_n)CsRj<_RWYk&oM4m=UC|vyk?)M(D;X*CL zJggRkf>zq*?BeIYh)kea|98yj@yakEJ77~$*oucowmfL428R!0ui)8UWdikwJy{UA z_+|z*m%u{12W;_w7-6hFf<#$$+|UHZR0B_r(}Ft~@DcHd{eY4DlaHT(>b$%`FNi?M1BdskJA1_8?E#mx*3+RQpr4Bag)6aXTms$&6yyDXZ@D zDy`ch4dwGh8Rv6eE8=fr;HaEIfHF^?NFc-gZapYLa zS*&Olk=dzK*GP#%`qv*1o=6{!-UP~r63wj(hyXau=wu0UQm}1cCWBJM$cvOHKZpH_ z?m72_%*H!WFpO(tYCi@JA)bF=gT#T`t0n{_gEUhNumDG`3u5CuWoQ70kZnTwAAA?c zW3ZSp8H5bPA!1Y$$Z6rff1JW;-|YsX-~3Wq0@Dz^Luezg|6GBt#i_GfA05v0x{dkL z**XQ4QH>wrE@dPcwB~{#yj$t}Gt(VadVY^LCDfigFE{mNW%>W96+8(DWrL(`S`84( ztm0VtqbKlnsx+)-+`8aaHK;E3y7gj~Zq~V_4Y;I#{lJOBJQj8?RHMIn2{~JM_nSS} zY~|4(WbIHk#M?rU5vY!kiez7wt`xI&_PN0@RO-f4HeV-Bi_=fq1l^RoH0(DWQr4SH zIjn@e6tt}3J|x20MQVL=QORMe*HRuw;LNo3 zuo}e?m$=z?8Rv@k9@5KV!_Z#%X2Cw^m^TPl|BAqj69$v_a(imn9DDoek9rQ2ua%g@ z(okpGdX7c(gN&$T>FC;~&2#@QFIc!1B)bypn&jveByXzAvS}v>-O$|*2UB$z|GgKxRiL8n{JwUf2XA-%cl zsL*%$Rai)+voenKM`+mJ7v&ehzv?mFV@e;X-y3Oc)LLy-)*q=OAfQoGk*8q$kiW0z&%=3rb179CJ?*Zy#ZeUpgui! z3I6m@>t$$)oTX4leVF+!BKp{yrzjnisL8%U3Lmvm&or4l3ujgEpt*s+2J!4~yURVB zSKrIO7;fDJ`_&+VlxQPs>eG3x91cr0z+2o(@Fu22qhgF6ud~puy6T);MK$7?Sql4}k@|E|k(@VB6K=9(0&RWR$v zI&ZI|&2?tn(oM=0q#~vcyhp9$lQT3VHzz#e^4ne{3DN|1VgiOJgc^hCr;6a3%gl%V z44O*y5QP&VQcOF8A|Zi0^77N*;((PQf0W9Ei-Q+LVGZtxKi4H1oq|v5|959{i zZ}?3BD^+B8qzcDXU1u7fT~3TlS}r^T`_1sts)fIY5mC7Ji-vzdci31)EV5s~`+?g; z$$KQyiy()uO!r)F?J!3*=yx5!W5EH#^n6Vm$j4u7AOw1#ihn_AxQ+!*cL(rQub#{A zm@6OPL-BEqeHkF{(neeZI%@uf1cImGxTAujRiZ=_^fUEa1?$4Q}>j-hyc4dt?W* z`Fc3{TJ#R~ad-YX?-uIm7^0vA>-rD37f47BS`yPENWqe<$vVjn+)HTOaYx zmnV`@q9R%hT{FpL;8pP!F+$`(KJ<_=;*eNJ8lUGiNu9cCu&XFD;iR)0d0)!ja*!Rk z{OKFFi$s#(A>z;-WnLQA)ZBULiJ{TEYYAIq!?-172BEsjQQ4Z9RQYXUF{B1O9GWdTrlSsaSv|ywd}=|DgQe+B%i?Xl*(}31imo_NP7mbHSj^qZbdgD4M2Wo* z*Z~`Bp~|>nuStXRcZB*B<%4gox8vFOI1&lfVKo^s;2zmtGWr?%4@=9IxlG*X-e$Jv zq(fZ#77?qzs%oVa(JYsI-O(xghAyKz(V2;!D|%K)B~!|!dg)`0M6fhei>iuhzrhg1 z&;?>5W)L1#Wx$B=0Nby=I27;;4wMP9cCwK;24FI~EiJg_*O<|txfTJX2~<2v4>w~# zV;Pr%aKN*F6#)^gc1Lg7kRt(;!t1TSCpi$D82)F~oWG9^ z5=Wiam#soekoTz*CJ=H2hJ&olef!NTS??M@4@$RrZs`t%`V_KD@}F+aJh1#Rh*{D` zUvEGn78kG3pTob%LGJ;dN&yAx0%b=h{RK1qr$4sRhFM5~^ZWfadlpA#apL%&J8WuQ zp44|EW+g!Kb7)e{S^Bq9iF*&1ehy%>*s}E!tYR|)J-ZHxZ<2GXDTVQs6q+tsAU?LC z>?$)M=hLtvC#B^RKEdYeQSf%4PdA*l%97dzan8+3K_17pZ@~9jSo|vw3+L z^CTEKLdQk!f`YTb%+_!y@4-rodGhL<8Cv#qtAur?i67vXg2NF}-~@kDOn$3$OMKL8 zKsHrTVJl8hkksRfVLqMq!f!VQz#!rNgco_JC5F!qDwz2)zPjL7Zxb`w?HFW_=Jnt1 zMQyzm8r-_o_gWb{@?#QS^vXU1cPkuWK%o83q_4Pek>jV=88mrL7Y(F=K!6i2bi#h| z2IRol~`Lw+@!w!p2YrRV5p zbkwKIUEOF$q@D+zDU>X*{^UuD-jI)|WtKlp*e036<66Y4;x}MOhmg6N<*`SPvK$k* zU|e;LKE~kI>vU-YQ_3a8Sr@-PlT^9m(3ihsS5czLSy=mN>f+RlYIB*=S^*4JGuX6; z^<^6!V(W}GN`6-UeX8#)kF;bR2(4?Un%lsuPc3({;0|;Qr8yRVGby^2$*gpXsP7BF zCH*>Ue8MGw*Nw7)V!V4+&mv)olruDQaY<4~>F1lWo_;c74is_yWA2}hwTs|dg{pJ< zVvEc&BfKCp*f>^tbfi6^9bBmclSL_ImGv-p{^dD<5^*tvg!t5O`Kr0z_HiW-J427( zXJCBgQYq~>TH1PL&y)#Tcj*Cwea!HHAfxLmH)>)Eoj&gGO41UK%u24?!}zBj_^ZzB zE70%8@%cKpYXH5tBI{MbFU5PMaf6zei{VE>3KQKB2i(Zmm*)UL@k^LA>0^^fhBZ{- z#ICY3bFoycLsIICD~=@()(|2Uc#5{hTL*n=qLU8B6wPnw=*|Z{T7pcJQu5CLF2+JY^H7VbC%`KzFIzd*?G(;Fr^r=bY<>kX()Jhi<|GOGW zs?S$s915X9TcN-A=@mH)xf})Y-nOHT(bcglqr=%S<8?}Rdkjpq3L8r?J8E7w-pQ^p zEGFAb;-Ls5(+X>Wck?CJb3c)-wN+nvU~_P-{B#vifAA@HjXGqULfqgt9D~H%BX+_M zc@m;v#AF&5eZM<8><5XJSj%__5EMV6nR=s0Kz@f|`GGbS?HP#i2l+pq42X(|@48TT zFZUe`PBt6=BY`56Bf?0NT+;(^x!5EJR!#9Tys2Jiq~>%t3V?X(ru*0TH$EEVreGs4 z22FHzNQH(@i0Ch-iG*uH?l=W5jjW46`I*ZO&23wAWvk*jU}zSG#M3F3xwdO_Ms*9j zdeC>UeNI=rkPx5Ux+SI>c(#E%qRERKnUJbX@`F~VyKF1iCLeYr7WJ&lIDSFwVozGHje*Mm<}YM z{E|pW?Ye=O*PI!H+x1SMNFu>Njqv5BOYGnR>~`-*j4|`37PK5fLn74z0DYcRFy@X% z>KP%wNt9cVC>!QP=BU``zIr5+Yu^>_D|;&&>rn0W{@ z#`t5r-I(E;N-G;@uYr`gcMjuu;r#qyZ;GRa+uJMI*AEV3EKGU3eQRkQk&Qi@DQ$dWifWc>#?jIOmDt2FHUfK;iWwd9{bVu*=<{ zF9`-F-Ug_ZU{E*IKk2|qb{nVB7oB_U4oU%byk6`Jy<6|j_*bEb3Rhoi zr|5lTP#%l{xyR(TW(!O|T>}^3P^l;Zi`Ns@yNr@YmqXni4tiptP&Fz>uoSpVL3_`o#66`{K{(;bFR zG&sojB7vGVU_H(@;k%#$lz?Ca6HWxOkI1sty81{Rf}%iGf)=&-KzgSK5mmef=?r1) zok7lO4@RmU2+_X-TI*ya*U~+yz1N=XARJqP!mh;�Idwfg|1;NN|O4sAyR6dqw*j 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%0Ajf?dKTn+ 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%0Apj9_qT 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%0Dx*N_=Wz_5MsRrPCesYX*QhzGB?f0Bts|J~4 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%0D~6_-jrVBL@*EiEXleduhl&zOcoR1m132AI?t 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 diff --git a/src/auditee/python/rsa-3.1.4.tar.gz b/src/auditee/python/rsa-3.1.4.tar.gz deleted file mode 100644 index 99c3189d803bf6be21cf53e75fbfb64d7454c299..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36181 zcmV)7K*zryiwFo>dk9kk|72-%bT4vqVJ$N*F)lPNbYXG;?7eAw+s2Y8oUg-QfstQd zk`4(I+_c;%&&al%=q6sqa*{d6@z5X%N{C5-CO}I%%Rjr{?jL(=>qa*KQj{$#IT`Al zm?Y3^b#--BbuEj;Z+2YI?LPeKi~Y6WZ+EwcpWbe-Wqzu^ue^4r)o$(fdY$%HEwAHs zI$t@xukPS)nWX;0alT5fhKnFtUGBQ~Y9i|MU*vD0*Z|9iPy1kTH=^gNE7SEol#IGay{SrDau8pcuO zaP42E@{X%Eq3XMV6DE%D%%R2R$`)PcBz2PId>${-q!L7<#nl|2JAO2F#)10TaFXyW z3ZpZ6{xMjDlPmm%PyG~nNE-C!eQ;Gd3!-4*b0ecsyclD_GE@5f;3Rw_^8(NaS|4PX*4VFG?iU1VT%&f{4y z_s@cZ%6Xd34<0^D(j_(%EFZ#V#l|k8Y3z?_{$T{@3xi!IFzJJXO2vV{c{tZEs7kz0 zuL3{08sy$NW7T4qI+H~_qY=rGXA{^Q(F2ausR> ze`o!#n~QGZ;^M;fsUWo=Fi9T%c=Gu8`RQ>J3Rfz3NdMCyNt1_vjPt+ShT_}v|4z?; zUjO-3`~4_J0uiMNVEC<_|NWKcf6Hrk;r!qAymlKtIOM%)1)ise&T{8?xrh&cUA9~P$T@oS_{s6p@4i3zKR^8V?D>nA z|M}|l^-n+l@?U@X>rUmX?cZ1bs{0@R9n6E-Ep7dc_J6PA<@SGnyZ`TM|Nr~LWwHR4 zD0&z~A01|CDl4f%1-N%e zO}AJ@mipzZlb?@XA3HxB|D{@Q=vw$!8`i2#{Cjl#-N|z&SDN1Bt2nC4@$)AuD%9(h zf93s;0uL~@w?zW3+5g=Re9xW#9`b+N{r`vC|Ap-@4}eQpj?&e{;3@?%$RG)fVdm>W z68;U#gsFTRsINAyz_PbTC#bbny@7lB*UMH5w(d2B+r6GDKAB)~yI%&xAXqHo#o*#R zhz9X89mJEt5XJp<1A66$367W=aH)ZY0IuEZ*Kb&*>D3EhBWT_(?6^tK`Q{tPYqdK7 z8Lz!p-=vPN)U7*B$GbtztRmLg->43+nzv!uK9p^5RJH|3Fqz!2I92G}r~*~#-mnT) z>fN{!RqKC3HLAG#NfoK;UVbzEEm*`iK*JUu zjqB9vH?K1eN9m{3+u6B!o#$~BE;*JM)yqZ(19rB&aoFi{3? z!@|AI3!8)oD{fH7By(RgnfrvAO;xiipe$#4Zv?QxjUYC-5y%Fg0<*!V18s0E)V7lT z4fy|${$emCep;c zpOQZC06M9>EcloV=(6m!n{wIww?ujvu3eFjiGn@tjbhr3}1Jxn8}Xo~Q|^ zbM0pz2A1OF^r2>+Y4(Y<2!KuaNHy}ulKv7zs1O}Hhs^!^BM=zcqs4MIyQ*fiDU2rJ zG=M@fyP8xp2zPB9(4&Tf-PWP3-f-qPxFw_BJvyuDx@-}o%LQJy@lm>(GIm<6h9mv0 zA)sv;i`5zR10BW_>XYV`oX5-Qm@ZJGG+vI*gYlZPtX5Ub7^g9!P7*|F?Iy{QuqZ|E0|TYVP~arGj>;SfB^Q7@HCFhBJRZ zN<2l?AMtyOq_Jno_BY*l0*irU)Q6 z34-@EL&>)}*QDFHhB2N7Q7vPV3j8tJ;||z7cg-gG(O&?D22s2`J4eghB#jq=^Xy5l znJi~y6nb>}-1XR;bP_M{)#h8K(_OJ=PGN8*8zwoso*&a7QTE1AoCu1GPioReHl~JC zg)vvH?jN5AKoPKi-AaBCg#|R0;PnD0P(`L`FtzTYxuuD>U=Hz zZ@aY%Y~YsvyBq%RC*g;P^1`YsuM5Ni{7yJPs$j)z0n60y-ozBlVBK7F*{D3~chPEU z@Z|Uvb1u&wcOM`9=h5Rw|M?{N;V;uyM`zC-9UUFx@9(2-G>6|u55v*pql+h#%ZrmI zN6$z9b#!(T4e|T4zotNX#SBZeNrQA*1;<9LHKW%$kKw0B#t@D!^4%X|vp+rh@#OI} zt#Uiis2aq}<7eC|z|F8Pd;H@0)1OXHo`2_@zW(XyQ+iW*yjV^EO2GtAMWosUqHC2&wKw%7AI_^8!~ zkKS&3Z+G1lex||B;}?N;n$g$)-|#W(QP(FQj)Ns#_D&(lEq z?E>j*FeSp%uAb8vclNsV;)M@h_7rs2+3kuwSeI>!YE_bjjFVtab{#vvrq8(M0X(~( z?0_Jp?+Q$lCe*^~V?%z|vI_#4OG)#`s_ua_uNyNukn0cKf&8xNvL=v2%nAe%?P-wgaSAERgu@IGi@M>xwb#69P98edQo zu3@Nw_PoHBy|HkBoR@lDyHR|)=k1q0-rda}zRj#i;{|tt)+F55fmL_ST2b-3Nu<@I z)#!?UJC9;G1@4cLQRE8idn_Y%T<^M`sMHr5&ESrPlXHL|vx>oskHKOB=yII-k7uNK z5GEMAZ8@2QqcA8M>=&&xtmYc#X>1UpPW_WwXzyo#b^YL{IZW}I$5Lc`tH=!)HaH>x!#RNIP3 z|MTQOw%fY32vFC_fBjZ3XaC*bZEy8|e+d1b9pB|fHrZ@|y*?xiooGbdfbpWAA{HvM z?Z{tTeMwy)g;u$#E>Hrl%>B{(TJ_r#_^URYmioVUjW%#`y*7|H;HT;X7n|qC(rkC;E;Y6cw&9B=m zH&%)lV|ZRV#H_u8-dpEu+8;Ha!XLmt+1viX+oHAkD*N0gI-s(g@7Ag}vS!z@uLeTo z8J1`q&rlvJxrr2nq*%;o0`1SVHL{algrlHn_C5|LlK_Zp-d`Yb&4!D!{~YA-ZnE2S zt@cf7m95hASl##Pff%dN)#ObhSKTt7`}6sggDg2ZDq{sBR`)gQ z1Tyw-fDUmm4i?oGwy?Ho89+d(r?_6iv5VPSHxN@^z1yS-VDp zJY0PwE(57j0$CzHYR@Qm$wrw5?Edr7FuHe;V7jHyUI8E*^w+^@bHjhz*nbT)~Es6I)l-Sr{8P;4?rFd)4|{_<9}2B2Ydf_cDMWgcUgaH+um9Jht4+t!yk?Q z7xF)B(?9%=(f^A|_Kx#3DysUQ zV7J?CuU9XPH?z&fnd$&2*i1p;=bGQ6YgF{(O-**GUlqm#8!FS(yW?xRHud)7Th!Z^ zs0quLz!I&m2kPcCJEit;C1qyZff-4Tv?Hql$`!12T-)Q%(%ymUQFX8pD2>8@T>8%v z-(BVZXzjKN`M3{}pA>I)!{OF8RG}yOm zPzlwpST$T}>P5dv_UDTFDM?86?+0)gR2IQ#xk$o~ zK~p_OYmXJL=s4k*TPf>bLH+}-d^vYVle1gzB8{dL_ByLT_3Jt+(2_#wtutvW6R#x0Q-NoigTQmC2ifX6G#l91|2cpkIun3d5^q z)oif=&Hg4X;!&EQ?MaOWG^p0eAZp?U(U_m_z}DKSLyss$oCWD1S%x66P`e^5sBt6! z(O@jE=na)+NAxTr{V6rT1u#?zMewmo{76rw2+oQ^{b7(?=H#B7fu)s9fw zLp`F=mU>2|3Ny)<325UqXBLPw3II0yi?fe!JTdtM5Jz#EAHOQDvDj+lP4#|)Vca;n zW47>bEu6~ZBE2-w=#uj2yjn&Ppps@24!ybyQ>;S`e1ax3GoVlMQ7x7~3$PsqW zc@?CK@FPdmlqggf>XKhZK?%kAl ze`z@90iH(5;oqx2L9flDGdRwx2hQUkPmZ6z9-KV+XMJVc$s8zmU~~YV@jQrX(Cw;P z=jm*Uw*^vJQYWn_O!op=S(KM*b$I^d_|Z?_t*t}dm<6RYoC;HaL=MG7v~#to6xKc5 z`R20M+Sj4GzU{R3+8|5=58WEK`mO!8zt`{X?e!Dvosn!I(Q2CbMYSX6& z)%@{Z&>6M%x?X2@=nva_y-6_p!M@kt^T)$rf6oi{ zye{7X;nT?p~)KjP^#oZok#@y1~Q``mnWI!^wEOx7X=)_n~GNO8Y@) zZ*R2U-ER$h{;=EWV*bCqq1WFZcG_dV+wBiqz8|#5li{%A_a@zTZ?xNm(RD|`xHIYP z!oQtirxlELhuz_R&);i%{mI_2)$atIu0Lsy_PUc`f;|m8d)}lo+}$7UA&`dsz1;wM zos4#&gJH+>d>Gl@zCVQD9*`p+-|p@A`orNqOnB5A4JYm4{vNyK#AJ%8LD zPWIbg2cGnUjtBGZ4#zO{VRz!SClhZn-s=y0!(9(*?T)?42q>r@__R!|$pjW@+?xzX zll@=}%eg-ZcE^6F@9mF}uuewZ_PFo$yZyF5@`ioC8}vthyWi`LyWQa^Xm$3-!=48N zYXeevNT0uXXyew7ASdv$8zE>#1ALH+FQv*D;rETk5MVHerZgHFP~xUkt2zc2&lrS8 zIUB08po$3*u3kbZd?RN_8qNY}jz3)fs8!X0vNH>I8qN;a+HvaDyxlq}C=aU=k&LAa zb?d~96skna*)UifB1Uf`4sN9Xy=~r4^MAW5`M-7t?SFvt>vY=~42tf5dfWS--;@8N zO-2}z#_?2JX44Zpv>!dHAt!iPg$J+&{|%@e3e1OeJ3NqIgF!dWOK zXuf3e8$*!WkyL<)P!)d(1r~>rx6V0oozryrF__AB=huS(D8lrx%IowW36*ezrD_D} zMGF4~s~gIStZuCGZ@@qvR?pLPe(><2e(_MIj*clH*(Zl@2pDg5VSN(G~<4+bjx9^+^CN#&bGcPXP|g#5p){dQQ`MxroQh5d!8RyckXcgWOfo`YOWw zs7K3j2!uJnTGAHuaBb0JXj*`NP05pp4^LF~zYa#{Q4F;A%B=PyPZtZnI6ZNW=JQ4T z5n6%YM*tu=rB35Xdf_huM~a%YU$6lha0RCzj|MYt2D%*wa~ut@{zhp4%Gtu7&9MBB zess1(y$aM|q%upsj)5=0SEqPaiMJf^{V_S1LJRYAH3eBS4DW*~6_68_;UcisXny4< zk>`AS=(K=zcI=8Uz{S;I9s@3c#Nt%ZnmR_WDMI@M@IIp`X*C&Sr;$^7_8tBgYwAcxD;f{z*$Ow=q8qtm>za|Gwx z>5lX0==9{YQTgTM_4hA+dhPsj^y<~o^VcWGr_PI4m>=fJ$?KCB&*9fo=ji!goF7h} zKWR81M4_K^a5-P#*wIi9As39@%4rZ-ozoQnI^E8L5qb>6jO4^T!z&5$+=bJ37V?D$ zih`ACI18B_ON!HRw?y<$L;pvMfcT9Nd8q+0n78Qvu}1#$+MRyE|7*9krT@Rb{vUNT zmb5oVX%KVV9y)s!4#7(oh-g{M_XBw63G^ix(`96B7^YZWIR=EO@-87mAyVt$y*a6s z(4Yu=B-M~g=X%dMN}XxoCn=D5*5@Fh&l+lw#>!WP+90F?%RT06(2H|CRg7N0al97N zNbIdCeShP$jfC}C*{=^BPd_*PP-Ifjvq0cbeQ7ufLWk;$89t_ThT|o7C@_#wsaFFa z$b%6oP!F?`4~=1RBYdS$z26HR7~O$$f8Xt(r_IQ9YWG8PR!Hfc`>r=pfU4vDu%45p zK{NYrSTI*ZfjQu*BDL{EtacXo|YZsn$Tl>m}dj-mD z6?S)P|AiXjv$H1NU_HD`{U7^(TlSy5uGjv`>22x%@3sC)>*1!C>6f*eVGZl|@i|G$$z<>+I0e^uBQ z$Xz69rCcbin6_dS%gRxEkyO-uVg(S(3@gLGwTmhLluIJ7)5$-Avp_vUN~OMwMpykD zO+)=Pp3UMY`?b)8Fms)Jo%;)5X@jZ$9nADs34Y8!7Ras34~%yS5{UX~X33!ksJB<& zKl+Q|G#+#I)a+KJJt~W|z)vwQM(IS*bGL<4Sozipsh?_2x@i(vq;&mC{sq zl@$q)%;(0c{<-PDg&bd;|3m+8oB!MD|L<=7w^H_&|I6?HvSa59?td@0|GjQ+EC1ce z-*)qF_kYR$S6u3?>HpT||Lu3|{qOaATm8@7{5=a&f9$7zQ!eZe9MAPC=<0VsH$M6? zAxY(QIh*;5s{?1f-Kwj`ES?T`v2X@-f6dSCZm z=qve1{#*}NK_v$yVy8Mx{r5PC5#|mwYGIi~$G~^OG_eM-2*~IGBQqPF#;|R|$e*en zUR&v8X-drE;p+N;*zt54UqF)=Fs#7&$3LJy7-Nu7m}d-N0lZ@n5iG@&{^`k&$Iii_ z^YihmQ&?ZD^XSJHkAKL%xUS5Ne?r+GkDq_{`g<(#M%#It0j+86Mo=6nzV*+7TGH4igtb&v*6Q&-F5mbN>&_OHtgtt+pkbV1oaMf_w z!bZ|THXLQXvNkCtqiF!Eg-fW>PpV5_<@Iq~3`R~bTrwai zW;Q2tJ%Ha=2jsVZ@XiX>@=h?3CqbnhGrBDjF41H>BDy&Kh?hYy`S zD$i7noqMvnO$Sc?d+;Eb1Nrwyd>Fj^;qmD`4|dBK83*O5^NWV881JcV4bZVMAJuF` zCwZYGnK||J~}fxAOm1{@=>~e|Gu*F)*f3n&cn3f@X0!(Z3zM#1Q!j z0E|rpm%(UBcQgrRWC}5*8~|6joVbQaG#E^lm}fnU6^N)ZfL))`eN}^9r=e6tcR$+q z-5-w3AotW*JWqii!8PF*FX-y&B|chMVbP2niRxC_ctl5erSkpJ>Gy+Y$FOWqPP35j zx`1oGcggX*F3cfcw%0P&54aWwp5UcUyl^$obI+l%5zHR{c!J~Ck<4i#7{tJF<*&X0J1zKGA9H&X2__KRF{F3zGA((OAQ1xouMUSH7VAXJr4@U9st zlLv$$=m*?kt=en?pA8%h@FywoV24$9*U0sM9!%$l)fdZj4s0008l%x^oXx^*vLv7V z#+_BQTB;(oL5GqtvWrA=cqmvD-{EcvP$z(-Wd!>WNmH(koCyT%d-kHrjfRQY6kaT@ z1w)JsTC@4NkjQvf21PjxkVK_G=TYO9j-k(MU{MtzsC4~M94H+mL4aiiA;@ZYDAi?P zLJ1U5-d|2r=jHLUTw9~_7^q2d2#h(tbE;2{UsdZ3RpXEz%lLp94jaHyhXa3cmSApC z88Lm(!GaZPQVsiOjr9MW2U}|=XDz{wxTv#7sTZvE{ctQ=?*?^U- zlx&vpLS;Ozu|^_0Rq@C~#)G)I^c+dmTn;yya2U;TrZLf5i9Ww6C zU@F|BM~~6!Ml0!vMjyht!C@X@#erT|Wv)z{my$_WpUe4!`F>3rswapJ)qJQ`sQWyQ zMCYdFiw&yij`kaj@0=R1gK?n%T7+O?l#hW?4o@VBo(T{ka)fWuoJdi5I`t5&> z(^{nblMUOj!C!c^x)o~XKX5pQdD^Zy z1ak#PqTN%)gQ;ekjNk_Y>L`wg{o9k{p@E)@~wI ze1>GPO1hxI70!`Tke9OkYk77fb6alM*>=#>gDI{OBxyqu@vsRP9o;&w1u!qBplKsK z^K)2(qy=6bI`x^;tXT`Ad#-Q9dS>ISE`;~Q0T*~rcqsHoUaJg0c>t-w@abh_D)d!#g!N=VbadUn5_$x)S!Sz)b6S;G!%5Yx&mesx0VW7O0a`0xQ0Oxtw54oOF5h=cPm?mBwt9_ zE=Z8tlHmp@q-`PA;E-OC^*E$#6!L9rBsvYxq75(zi*1fR*Xl@=10o^=aI)tE7C6h1 z&+J=icvwtB2Sp!mlw9ZWc^nHeV1s#l;r7j=8F@+0U~Jy))Jsr>vT3Zq6Fq`!@C4_u z36iW*TeK@B8kX8MDi%FB$JC+Z_v8()7CsGwH%DFr9ne@#$;{qclU*&n5%fO zp8u|%M67`)OyOo4C}|)D!A?VnGLjS+1De1p%qiP|xCXT%T#O0mt@ty!)NZgDxgaHB zR``G2DS!Qrq{6fzb*qES94)^mX$T?REb8J7z+AKhCXOp%f4-KpoX41$dIUlo5bUav zFa}vBHju+>6j+CZ21!=Rg@!zCh>DgHbV+8jVxNBG@m@#H8M3Q4s@4at-lqli;!_{E z#m`_MHs3n-!mZdnCBm9r&k#QnK1g#K9ZgjZRe^#8VqK`IknOxedNUY!W92?HF4?da zV;Z|_=I-0dH@8{AnfNfgv0E)lM^>>HKa_FkYGXd)S#Gd1b1(R!VjKraR82EeO(3V? zA~3uuX2C3881nf#MRTqT*DhDFRl?ZCfUi<01NmFC{c%vP1${h?6Y>zaBJ|*Ko}*<* z9^vpddjid~!AGt?d!4YDJHnPtY4VS(i@oQ37o^$ADgZE4wX(^mVa(cI)YRt0Nwct$ zpbI)sNmPni21sUB3w@hf-<7)FoLzI7(ifM_nC&{13MpZ8S`{%hzBA?=3)pZks9x4X-q5+M0R39kO9*Jl4CSY3Urg}Z z`j=aUf9W_kQ@z+r02NlOfu)BjoCx^`EA=rru)NF7XR2r@mGMe914Dt6GBc`QN+A(|F6KJ2{|;`Kan795YD`RerO&XhFQvsmShQ#Vl7n9H|P=vJ=V z8#`|0G&(oHuAE|~%%STulszkviW!>=U=gzddDAsSf>Pz(zl=I&g_qA}dKo{r4X;C% z&7F*ZFU>+i6%@nuN)|1tpdqYRB*c@g_NiBNe5bq+TCe1=IP0^3rn+mR>?)M5Z(Ul} z`+wL$_wUC4qtk15b}{}#f4ARl?{+c%M;}vyZ~Z^+;BRMV2Q9Q`@pw56DwSvSNir4) zNu%YI%{uA0b|@KwxV>W~bq=D3u_A)-owhsH!g3!CiPv>bqS17Tp5SMh$*5c#lhto_ zZ;Zw_zZ|`Ke)9ag1J)4Q5vEAM)y^T9nE}{eaYrS;XYy;nf~={mWUh3~FT8GnhHY24I(2Op?Z7jG%uEv4kUl!Tpp7%Q5m7=*j?aBo8~zMUJL^JK`?G zfvpF6bFljbMi5EUi-5l{lMuz@)wIM=NYi|JJ8e^b=A~RyXCc-t#-4u zhtG9Bbv%38ZmX&t58&WESKs4AI~)*fOjib#-0x~0B-glt-*cXX31<6%qvgV9M-MuN zc}XIIPUh|#s!Z|dN21&#=+7*8EE^7~LX!8B)M2woj@B5xz$=vxMn$8iJ;Pdv*sOi~^Bfjp)hwi6N| zLt;i$G+1giOfu*^z$}Ax=WD0mt!F>H9+lhcwtB7BuC9am6W>s3!hRP3+Iy?tWJ8?R zZKeCY1X))T_0;e>2 zEV9NEd54_a@cwg-tfmGTfe#_NqYcOf)EvG7iUt0Rz0nw~tXSf(94aX%`72XgjEE<1 z;D!`^aEK5$QASUubS?+n;2~bWa;ZX-UmptDvG*J=K4KI6Xwz^Co1H!loXP?ZWRMXI zTeDQsscTp~Oj)-gKpi!r(g5?9@8RD1qL~$arhYM7}k*XIAunazELj^qm+w zLCXFwr*--CX}uxkGC0fohuO-Rkmk}1=rrzk3otH%H)QD@j+isLz-l4D`yEy=4}Abb zzYFy3EaV6*qjMh(eM>4*fXFF$}I8o*z(zzLnc-G1M@rv1Jr?RWakzL#&`r}qD51ZLoRhtP8SAb<6F z4<6F>j@3r9>eOaov`p%yBkA_)WvzG0TJIEFA3*Emv6^54vGOkVRTqpLnR8Zl*ZT;z z0PFw?OmyJf50QTnY!mJU*{`)*jm%ZZ;w9TX)LwoMQPoy+zj4(3Yr}8;ti2Tn zx0UbaDC_30g>Gnft?a00;OPFY-I3SMHUf9#XC3{m&=GC3l^ylHvdz%#A*kY&9V&@ii6Y>XejBRvwHL_SY;sulTrXtUs)> zQF-l7x7Xj@ll@iQeRlQX$LgPwAu%`zVn{mc8IpdtQpStWsuJvo` z(_ADk4Bk!P`X(%LhDlc1CX)6lSM$qkuW~j@Sym;n$&#;GWtr9*5us4xc4dTh>_68j z<^N&PZkhd;1Bl zFDVN5a;`!JUYy5(>?APgMT=B8HCqut?L6Fb#g31=6%T_rahLp{#d%5y5LXGyjsl6}1Y5sa~>fO4Y>!f^OZI;9zGp0|JETwo+d*2aipFi?;r1G1VL zHw;tFi9~%JcV|d`~H4I=qaN33k2>=W`@@+6_<<&4q zFVJQ=t4?u9RcC^!+%31@8py;|8d>>zK@hB!?=PV08d_=<7*~JuNAWPM`2Zz@HjDmP zLT&Q;$@>2vs^BD7vtc}SYW~AvT}~K`emaZ+cYT`Gkb=L=<0MQ`#ijDVHsmE<3y;SI z%IYIC0-T!6rzMk1&;d+&ajKiyciro0+5d@;zijTIdL6^Vi*sa-al zs7Q9m$dFDl3ZEJ|$4d;)J5Pe;IBwEy0n;JU1YFXh@d3O*R6s5JMTmibto1{~2tg?7 z7MVOgl+dp(zQCuo2-e|Y8(-^1{|%=$(Nkj!NMm~Jaji&eJcHdo9^fE>w@j}ngEbsg zwW#5|FGXU&O}ZDL$)c_tkuq><7mD@>IRJrifl&nDpi@CIW@fQ4k`fFXwnK$uY3L6_ z9EsC@@Syo#=2ZZ-q0Bai!5f0$iiS-y?^$<~%C}dh9Sy>_870ob&$Sn|ssJ%Csl1m{&NJuvqXTuq=$mSjf_jfk1ciYqY9hw{*eK9Rn}HXbKjO zGDdRm39~#2BiLty536xIUCyV>eq6-PIGjv?(TD_`OxUzApl%c9!b9{8$b^YqQKV-mMI) zKbU1dWMv7ZvcVhU&YY>u0bxB?sA;YO-EvCA@Jr5QG|=m{av5qs`@)9vTb;x0 z69gCLN~4J71IT|H=B_)lQcx&Fz8YAT5F;)s1`%(QX`y|*MRtZ#QKItm=WlB(4ymHA zXlrn$W=kw=B4-`^^BaL}=8p{ymHK1>8~7>o)gU~-rQ6y|Eumj&Ms|9ceZA7}V-!Ap zXWieuSHUb`TCbccff48U&a)VX$PF>ey0)PxIHUcnAw)I>CRdplh&s$&HY2K{1}YN+ z=!%&U0j0GekRjj#&6mI?OfTsMx(4%yE%gC-<;!}#acLB~fp3fEtm*@Z7(AL4B7shz+M01UWT_;a>OhzVKk7G*zR1 zu30|tn6_kW{~|MjnBlFuCI=Yeq@HP6kk5yeVl#;Oc{m^wQRD>RY3)N(X|v1do_R)- zS0)TKUY?z^=$yo;YX~BGy@Ts92a>x3BU)e~qZL`E%mX42A->=1b#@yzGxe}rw|Lsp zGcF)uhM=|LHBHs#0BU1JDGzM|tBYIeL_QSr3c+J?Y(fLb9RT+IF^_@)%Rl)zFC71* z$kjb%nB7%H=a~zPY8*;i?rQU z3!2SZO)kvlXYECNrS28Zf{3?9Zd0gWrz*;6j+1b;{3d&f5M8(?VA=yQZNrm3Wt9)9 z;!|S1I29l1YcnHxR9fZaI6i~{L2_IWzoahFEpPQ6uN01S87WU*MPpns_hgj?pURJ8 zZ+eXS*ieG;M+J;rU{*}26DDcG=Qu_TbN&v%a$UFKz^Lh)TbFpQ+@&(TF0DJ}8VzJ( z_{#^?hQ(k+hPH0MA!;x4uJ}oeI6MtfDSCz>CZ_R)v+ro#n+ZYU!Ytgef$jXg8dMLk zY&C+<`GXJtY{0WIe21N1o#Qk3`~aUH{^`{1+$^NgV+U5~j*P?&Esf!@p}bs|31X8$ zyD5kU)~q&Ae0z_t73DLfSyJswE5)m(Y-_5H@+9bbG=#4kHL2}P^DnuGX{rnP|ac`P(s6S$m1 zHn@z56id%$9I9gr8+m$pjLgsshgjBs<%_|%xe1JgfmZzwg9+v&gQ>=2TX>gN^}dGp z{qE>Io+mZ>Hv=T!Z>mgM^pfZ+40{+xfe=_pt5t1Op*IS@uJ1xM^hW35oE>wW^=v&C zr0DC~^n^Ojbbi_rg`OLUOR%c)r_1iY`Q}D#C>fzlhOMbFdP+sow$VlIAx?%PA5fz< z0hLl3DGm7L?}{0KT!ul1*Ez`wXfY(Ir2^o%gqwi$nAV_j9tG~v8?{Dk=j$h`jd*T) zMI#Wi+h^+GpmZ_l?g`gHnh?-g~=v)xXF@g3A zu>`gVvh;D7k8VK(LuX0g8SzjSy!SDn$pT11yQ%pEF*Q)*qw1($r%P96AIT*<$zt9b zXE$Sy$a_?ma$w;i3QzS@!U+?!+an=8N0!O4khA1$8laSgu?Y34O>Y!O#3dd`uCRNj zcw3x=V>KfbtrYwK@M=*nh+k3=)Ub9fZfhNJzDFn%WC$ZI+xPL@lAXvb8}vgdn6U`_ z{Jv_yvSpFlUu!+CoLjVK?SxKt~`Tk5s!c^Pa7V`GA~^W%N@YIaD9X*}Y>g{)h zW(nmugAPohyM}IjM+zb)VMA1IrSTcxtI5$N#MPm|+lj_`M>m^c) z&F*J>L`LG7JeM9N0G228JO>1e@ENpNBg%-fN)}Ja89hJL6Qpw4^zI4sl+CfgXn%cZ z*u+zFbQs-x%v^z^eOT?W`nUxO_iA}&go1dPM?tA@A*WY%4CqumhCqku9;yoL7}`6k zsu)U`)orzGuX%nQbuDX@?@xIoJ0-_j@hp1-($-t~7U4HTloHOCVkebPTEzrgGh-t_ zePPP;PoA>TDu*Y6fowYAv7Yd}`t|{R`A|M{6}FA3KyK~^AFrm*gDf7|?jfA;);Kc#H+rX*Pj z_V#(H`)-`C4sDBq&^%(P2r&o6KXrxG{3ieW{#$>vHjJ zGT=f)r4{3M9-&q4svK=4Y4FIZg_AMxpoW~JQBsG0^xWRM%yGGd70^U_SmpRM$dhc6 z2k#^@)8Lio7_w3diOa?&=`46W5+`TV0p$|&ad=#Ih>~!)adAYebL#;#C>urwoXwK$ zaR7|lN~>2oGz5$}HvRkB!AaDw-y`XtHvZ2gW%Oa54myTHM9QOd=9|Ji-U@t&S7N=wv`i;os^qfHu!vYm6bEehLleP z;j)&hR`run7^;=^lO&KRCN-&BM>&ObAr1SvP9R8*6^39n!3^wjk-|wj{d|5w6#`45 zdD*Gr&72_8nYD7<0!Lgk8&ENQbq;zr%7SgVft~x$N-#wLRB^cntFseIj87xJXqNqN zCHk()mbeM-8tv*VOE<$_tA(4S4^)uYB!!?gGZloq1bb!l8>4SoHVqn-%eq93y|NmW zKcf7{ZUVP00A3^i!B-CeS3s!0P4k!U$9jRKa7 zk-R|^uxrDBX_@j%NAW5;cw)%*n>l!{aPDLd=^6*mik)Gx={4B6%d^2CEFn5|w#)}Z zda(5l{qo+S29n>Zcc@xqqLdtC;R_)Og+AwpDhmUivV%2F zwAlfp9s2LUo7ULUx9Lrr4W`tiR=c=rgj95BGsoJ>YM)nQLOGvTGB%S4^+_5pSYcVE z%Hs06!gbYauXSEsG1+-;uH`OsZS_AMjg>E%K{ zaXb)dFOlO~Mrk;u3`dxMuD;3=ATxbJYxs<&VLQg!)ubWR*I_?MPK!na1|F#L_VQ0Dr3c|BwEHObTyT z1+-rO3@=xd`Rtlf^AmR=e0Gp;j)$8Ov_RXeLYmpfCbBj9qe1z$D2b zn{RX5nZkyBD9>S&ODVMCS26HBbdTaGQ)!#oMJpQDtQr# z^9Chbrd=$(P#jhl*IMoDY>mXoAv-WC}0x*di?6e;L%@RAEQzR@p7@=zp?PSJ8ijTAdq zN&W=semM^!dA3lnW0x38;g~JN@r$Por`BpXE%KgZE)Nq|Qwu&z0Z_<^N2BF}G!s!4 zqYg98Qrjq1Q|fDMzCrq#7f;C(QV1*ur^rIGj%A?#0c-Bh)UC3fMspgzSJ~b;hJ??l zk6q^^75{I>0pBq$o7tEhQ_?aH|A+Dyt}(0{vajk54jhQB3KVgx*ts3(t+63Ab1XFu zwMq+?O8JhoR*OI6Ze?GQ+u}C5%V42;2}>DHtbPjbO%|P2vn0i+T9R577nFy%kehe~ zA92A;9AI8yM^5|&aIcj$etlfgkk^dBoHUt=U6R~NsSL((-F;d|@5kD%^T3#&m4{eQ z`fE$Z6Cq5uwAU&X;`G8>t49*wpCFMugMYXoA1$T6rY`OG@jw z1b_L0_ZkGYQS(9)VV7Yis*La$3n`9mc%~!qi~=3(v6^Mr<^^w6k!>PUnFMvMJiSMT zSKJst`<$}(1e0t=Rpz!PD5*BFt|H%zUDG(8XIfM7II?ipzIxYGvJfL(R$eAX?rib#DaBfoYfs(4-Sndlk4XvCKS|9xp4aQ5{?GH;ZTRS*{a3H=ZS{X!{ohvq_h;AtJ!b1Cb=gnXxgc%% z0?j0V=KZPgrQ#e^Nc)%_u^d^=j+c+A1sMK|0B4IjIbUnm0Gp=EF{dlVySxAnbG~0Q zFMN*@oF94^gi**5H&BP8@Fjd70@1|W%2e?45#J~lX!{&mP|vjd?pyOT8S{O$O2VbI(|xn zeBL<>1&5bGy&?sS8B#L9Y|IjDDHFe|tZ@|mEbgWtMO;OtnavaFHrAvL)eM=DP(~ph zCqv3hDyA`&l=#LhKvkS3*$w8e&sF3wRs|DhhXm1gCezrLK)qQ1e<_LdJh&WigFE*x zcQ`?kbsJnmc1uc$_1FWai#Z+so~0CTRS#elt6ufMgO7IgpbZ}#{K(35s|Ou;+T)Kt zf9&E%R%Wky&~0EUJNoeXV~8JFnGru7^GCoRldQ}?-^gg+wBEjz%|9ql`l{C9^E1De ztt(~bD$1ay{71+h#gUF~sWP0*W1x&f}eJ9K^Zat zMax!Jg~r}yQ$s8L4TeI>^2FYJMTxb)(UR(DllfMxfb}`jYm-VnQVIi?Bfer|Q!K1Y zck5YDx%E}D8b;y$JVmyEe*{Y&*`#s>iF^IIkW@?aVd+Qc^@NeH57CSnjW+W8v*GM% z-3k`OP*-Ir&y8j1BZ$I}D-v6;Bo}kOKa2(Cw(3f8yec-iWeWCbvB?z}wz0|otg*>` z=ix(Ht8HNNn+7JAw2XwnD-6Xi|GViqHAGIO6Xm3dTxVAsymhkt-|D5;?ci&G9(+Sv z@UCG)r!`eI^sN}+<_v`B0I zfPvPKrI4S7x%oK;`V8POM4LSvA`o%lb!T#18RqDh2KB-{=)VcyGK^>N&4`>9+WJH_ z2EG>ao3d#{I`N0N_27{3bp%4GXN{OE&o-#6m64l|SG-cRsVe~P4O&mWZ8&cL8G3Ie zEqh53;Coc5hO;XL+nv&qEi4JR=XsPYUTiZZnXAUEnI>;U{hZ8>TXqvj3pQx7J3~yM z$nUaRwb=m99)A#GTu^SFmOdcve^#lCrWo)2<#PB#aP@rv zEbXF(1>I9Jup6lxHgZP7NWhdi_b_Y5eU9JoX;RCC(&F1%H4ews293gfL53hFV~i|3 z38Bk+y|KPBorI`bN>m%qm(!`PS635xF%P2C(;s<0Uuq`j1Sc4X1vYaIrtbwR6{caD zPSGw5xO!5^lR|iek(vFoI$}e7fq{NFODpQ2Fcdx~_(hw{7eMdT@AYHj2=5GKti*L{ zbvIcKDQri@+4xTl^0j|<2;+3&vj(4!5z>b(LZGK)_8>n_#)qA{u_Ur4M@h71J@h6q z??s;+ztTa92^`vr^o;K)A94i$A+ejIRF4^_IL99_3?MduNsci zY#RAzq>p2Xc3mi$^Om{=6q2E-r4oJb2K&Go=&I`VEj#cBjQ@e5W9~TqN5|{++Z_L6 zx9fSWHlF{TZTyez{qOev_s@U-`&38$z&=!LK*0^q?d3Dgp>CV<)DX|Y*TR`+dE$(M zMQUck;|pctH;awC&Qn~U3SFO!rh$(D@v$*B05kDn95!cXsS7CQ`b#911Altvo~N_v zJ))WkV9N|OUPsE*eowUOv5G0+%>6N4u!Iyaam?(pnjmsfDg?XBEEy#zsW7k2HpZfW zo#72<5{x86246|WQD!gp?j4Nq-8%sgfEuvk`N{L|B;lCA4aWJN;=>V#gg~JY87X-% z#S6v09`Sp;2?F^5FAubrfTa2$uUK*vAU4UDk;sj9y6{H<1^hR&$aw zyu>ZdcFd7P0gp$BsBF7TPN3}IK=;H?UO3NRymnq5ot{=se|r2qutrZ`yn1$oh>tA- zFz+VEdb{=+)mUoX8@Rk*O~>GwxX&uZI~w)drNsMj9CX8`|oxINF$wb!-U zYxnwQiyhVCSXzXZ`>kxWEqLGWN$Xu1v1j+twnyCA>zX}uKc$DZ-9yLjq35;D9(teB zL&xr+OFjIv!VCQD7|8XL)BG9>M!K_cFSkPKO>*vg1z;O5;XwgX#%p*`n5OX>9?%$B zEP9M|AZC5H4pW~AMUT*ZfJ;&?pXt=33bb=Iv0>94F8o9j7;f6=#<(6}T9T(oOo5EX zem3aShRv0bG`hxP+XA4{1DMVrJ9)B{3Mt;Prvvdx;>H(H_oXkEvnnwMDXet^$|6RE zI+=5tBSq~qnNc+22TrTywAv0F24eLDC%|7 zK;t{Kq_B>AiIU4lKlu{sIK%X8uo6hw#G7*aC7t{dsC&>>Q{tUcYFjkc2=JbjW6rc>cFeUF99?A>^YQGPHxg$j>tSEQ{TQeTX=I|c55WPl5lF)S|8?D zu@GR0I_C_2Z)8kFRO*dVJ)g8z{xX|W>1)~Da$Q%k>A8pwpGeH5_QsU_wY(I5U&4Q( z<;6Tm*@P6(=;>3_Bd~Y`c)-&>c>;|4=Hy>Z^LA*zw-N2Pi?k1#eO+cUS@&PHBoNX6 z(4*s1PlL6)%)4fnsn#Fx&VmK0-^RwHe@e56Nu=tGFVmUCC@5x#CXIHwVk2LGu}Q@2 zfJ+`&yOpCHV56?{43jCLl`y*iTo!nYQq|?6kJV%*SwM4&l7}(QC6hRaC>cr0lJHe?)P!ak zqp{8^EV9Y1l&1v4*|payxVN*c5 z<3>Fo;SkeR1J%w*Fi_{o^g@>5okd>+vgHIuXEb=n8n_h{CMUTYG^QY;JI}G5 z6u*;hkXO!dKF5dz=T{Wr%)&jxi4!s4UeDWtflL?>n{Nt_u~3S2vCLpQBG1Ua5eX#OTMS%%q|w>ugC60LlO)tYHwWUMm(iN@<;bVY7Xl;6kD zup_e?&;!dkcbP^}nj{uRH_c0YqgK zqt6smwjmkqjjquvrFl>O@)XAA(pG;%&PnI=Am-&YFNowzV<|BF3B*gmbpP%_)IS1WWy$_ zP?l#`cIx*~HLyyP^<6}LCD~PzZh{YE%Io%8Tnyhw@kJzR9@v^Ycy^D@1HN+gF%RDk zU{=61+>$ENB$#4|UPLY*&xD|ak69(EVe78*m~Q~#-@PV z^wFP&W3w&gW=UI0a60m+>%*+kH~9LkNrtosgkA4Bg|V#{6)fH1XNw9ZU+;dt zs9+7QC@S25jkc9Z*KyH$4R6Ruuhd=8(OtaAi`+__p4RuQRXs^ge7mXXL zKNlPSTwYqJ__e$=4Exhr=}(!8;vCpcN=BRK8EX7}zCQ79%UwK9QHT zkWcq3{K=u!!yBXQTg|~z9v6O7%eM>Bz3p-99&%j;I$36yX&F--6{Al-N{~0JOA$?g) z&9rBBgZlQ^+&)r-_drbrlPJ;?<9oK7kPIgU!OtRM=8#Izltst9)MU4pg}PU4n0fZE z=tT*M67fReKNC!K>&Z{Et4|VHt^K0zGx+WlUuC6N^<1E3Pl;|BT$?pJ`*tKJS(3*z z7H7(@gsHkEIl5sQ%#vFDARmX?0J2NBI|+iXrdzSm59Qu4S_Va3G%~udm;DJ$?f~d!m9MJ|9wTL+@ul0b-3yk^Gv5k50<+0w99#TZkO2OLEP?u{D2k-d9|=5Wle zM=@E>yUvr?p?R^U8;P?@&P#^yNeTj)7!>#^IQ33UJ=TT3vS~c-F#%NtB!d~o*mC}|obF_Osr#6f+ zh;cNU!ruG{vM!}J!W8OwJIr~SRQgv5c1;Jcj%bSa^?buGej?~MO$YqDccb$KOpp}- z$bX?;lT*sDcd|Cu$;<#kiNuUnam1Ryce`FN!bj_b(E~hlLDYtkAZT!%8VH|JFz^?n^TU3(u_`_dh{hv~ z(Z@~Tv3*!Lw{mN)!;h-|w9TaAxfu5qLimQ^04!gM*B8`~P&f=@E3&v=^fGAwWPut( ztedf2rA9VuBkVUDMRjvLn!q_|X-ori!y%=>4v% zxD2kULwsXU_F%E#e1K7=!Fv)+d?3$IQy0zL>Jb;!m}FV3xfR#S&@y1KnnmPK>qJGQ zq`{0)H|+8%%eD#+yG>HEnb(Tc1NDmWj~fnuC6@ymvCvgyNr&p3FX0A!StsPwL?cy{ z_|VqnB=={PA&xXFW4$Aul;2s;_vEow8)vA2>>_lF8?*>h=Ue>}qmqAX48qje=5fc0 zu5RpE*n7@i!2;In0*Ltm4-()y69kr?S?T<=;FtfUF?}Xc>T?0 z;q@C%yI~9yy7+#lRGGcES&IM@FKZBf0bQ$nivCAPw%6(0q7G=i{-@nx7UPS`?rS=#rRF9fF+}Vabw>208%l>7a@JFm{d_B zLUKH!khlq3F<{@On|x+~+Ndbg4=iWisJqSy9{(6oLo!&A`hi_~u&`lql@vms&`pXF zFotf5eE644dWctnL6La|r%-f~Wtfsa2c}cOE8ZrMx9M2LUtv36I6~*=S1^jjJWkMi z_=KX1aK=kcv-&X%E<{Jfb;IK6}OQ^k|D~KIY2A-1Uui-rN7gHQR4Es?m0mDx|#?EVhHiX|hP#f>rxNf`UwVJJV zv(>}rLUZU<)pI*;r;6g(^B1p=4}`6$CMuvV4pWF;KFNZMZtNT zQu39=0QKW<71VCTZpZN>&YG;ef)J78lV%+?dUFiH;#(FT2%a6oK8E0?wFv?6-lPi8xGyE`sr&$BE^sBe3vqbH z-K`XTa0t?1-@LfflPR6cftlnulab9Pzdn>LX9Z}NmEt{07ugEOJY~JYg%T$m74#nx&#xox-vna z=sT4{Mi@H_Z&vhvazCMf_(}_cWiiX|)2H=@l&j}+$2`o|+gu+m&C7$CDh7c>9S!MJ z!?XqSEaw2OR2Cv1@y-8l%6lMTRxC` z2q9)?GJ=~_OwXBvX;j3!xqFd6r(PC2>hF+6D3jo};l zE{t^bd`^+^WQ4+~Nv}C$y@aw+n*@zs=krB;8N$Jb`3+O?O5)w`gUuIL0-%j(}T+*1!dR-5zG^@;| ziqAj*^D#RTybdGM5t6)R<{mdrxdPlSa;65it?Wdm99$S=WwWJVzC3Y zK;)^fhK*4vWJ;>(Ux*nE#a%ZSFClBh!UCP2ie8~fDdq1eoFQoIM=BGvRG#T1X(1Xn zs{ku1D3G4`gSOEt0|JI$Ge+@%bP5_!50pu(0v2}U+aS{U#FU0ItBwqe?o3dgyX6*K z1Ch8&BP(BYeW;ahRM^^72@|(vOF(omARQ5h^B$y}A*41hBB@906J3xGMJi*VEQ!&A zi86uVTkcdW{-9+K8FLT6EdO&%bp0#CH5$L8zEE^5}H-8ilLo-E_O|;W< zJAa__f2abm*dS(1otpn}ST7uwl%r=|ZZ%CxO_J=x0p?j&V?Gjc+YAVk?9_ai=!4o2 z{zbA5$Xh68boPhjzMr(IP)Y}j^idFi1@8zu)xdAY7j47$}UqXDhrn20(GlT zvI)E>LnJ6wi(myFwyj(~zu~e^v;e?2y`=`yyu-r31>*q@n&QR|P)b2(Dv*!gm*S(k zq>=y=Gs=GyIJFB!1%)h0;IumMP|7xJW)=gHUqY)9tSAE?-j5G`F^OnDc+h+=^D2Pe zh)hE!Y%&bq%>-w7j8szk#%5J+q8#8c;Z@7+iTd&7B1ZLuwwbXp!VsRhcuE;(%oFrI z5OPi3y@wx=w#%WKD(YWaMhgOAW($~p?HN4lrA=+3re_)cl_GBu56Y1tOb7{r0;jJ) zuYhVoJ~3%1uZ@A;Sp*8zc2|y>R>>=wi)Sy6A@(BmEvNK~-9NP0(tFNxMXzCiBfz$? z2&_-3m8wnvA?@TTWd<^nw65PZl5MhQnTfwF83R-Ce3y1i9b*QS!niUv4Y(#*x;#Ux zSTo*x**Ol}fa_E2QW6Ql-T`6FvxPTN!vDWk>Aih?cO0rv(BY) zGj}%ceP)Iv?VGXQr5$5pvHVi5D%dSu*Rh$0(qa;KS-Iz=r=w)GuOZ z98Q3e;MFs0=J9zZ*6GeI9F8((wG4|stSD;`FH+6T4-8XmYeJ+w%q8y(mZND{$l+Ns zvD&zp!*jeQho?!=RxpZK4^Ej@Jv$~*b7-W0#65#*5_tAdJ;Q;#Z#Yvcs#5YafsZuEZ&m-jJ7wj<|}b zO5tze3BBGS15!9!c3?ycEM&AI7YUiWZD1lRiiUdvqKECeg|?-eH6ZqsK(*pE&C@1j z8G@GMg|1~O{KmO6owas4E_ZDw$TCtgaIeowse7`!ss)$~5ZP{7rHwld?M~5t&c(EX zt^#~EGBtoOHwLv8@Kt7*6EOAxCi50$?}r z<;vU(V^Z&$IBimHfpfNW^W{)Qg;=?S$*MbCK6mpp20h6eN|^en*7UU<-H~GcC7iGe zNLdI1*56^xUDs_m0A%{+)?Kc~U8*1)rFF+#qk$(EfBB%=usHOJMgai@(HIMbZKyea zuLjivEL)A>bN=ANKO69D4Bye?a*og7^8zMk5l3_MHqUn2;f<>jM0Utz=_$=l#jB;b8=E5+~x^MmkP>XvT&NwZ>;(T4bKr zh{A+gzgBFsD`1!>(-@l6VyT8M90_FpQ!EnE%k^=EcV3r7V}()f*w|2};3%xG6+e@p zJGz>KfWk3f#(6BzQ8ayr%W)XV>^?kq&R544HdJ)7y4b*mk|i!1L`BEFvQf1#NDg{c zl>${6UCD4(4#k8=p`ZW1y=!f5+vv{y%wK`ZqXM)cgru%kLr-K|&g)4mJGRp{wKWt( zLK4OlNfD$ib*BHl=eAb>6easj(uB;!B7wc{+1<0}@*EpMrl-&)5bB|{WQy&f)gUA9qA1r`t+Ci9n<4G; zONFtkug8WkKzJ1#`lV8QaEgb)o}-x1VuH#ot?9}XIMa7h1bgnAqQ8@b4HtnO<+ogb zqZO9ikF=CPwkEA(HTD36J7Q#koYUHF$7g3~Y1~yQAF75pbrAvr4a^75u+M)UjjUJ) z_DZtsK@8-8X{pljs%aI?piHW}t2?Wmaw`T2@>rX|0wVp90;)4n5*Frce9i)BA~~Sq-8KC%&|zqSN!PZZxHH z7l~c%fME zSo5!1YjLn9t-`M|UicO14FB?gtsOU3;doc^f4@VVv~L~#_cr_gt<9}g`(N6f%~q$i zySdY8BmP5cr@gZOU*SKj@E`u_@qa~Zt35dg3u1sTpOKX~#wBC9uAX5PmBASAllug@ z0HU)byRHTrQj~@B4FlG!k>MIY!_`u`m=x(}x#8;xm0&S92;ii`SO!kuVaGncL0TEO z6Hdl34yWjOVf0U|Ja)qpQKzON zP=^T=s`x+>^lH{iqIzQ9A1JMb@rb+~$^m+WtQz%)d`rUpfShyT%GwRz9KLc8G@&@0 z;6ecXU}Pmy%=5#yNb!(f@+J)n>yO++rSN?M{vt;qk^)1{4avHpgebHr(HsjncHxK< zt3p1xKDN*RMkD0!YJ=i($JFnC52$y9_zi6ct@awkZ$t4s5hjrySOXbY=*Y7=5!L`5 z9u`T@jCBu4#Pv(129(pm@;2%Ix8ZgcrS~ zlBCTmg+?)ntNG~Zx|Y#dz%RE+p-*_&J1(ro%;rtuSt51i)M7j_H0qEL?% zK=(RA2qEG{OuSm6MdW`-S_)HjC*rN3DTJqoa!YjNkx{{!s>s}?;d>DlVFC8cK-5xJ zDdCE=3~4ph#;aF*WNpDVn5)1)kjWFzogB7WRfbU?7~?-3Vgy)>0HH#pg|2oeq%&4+ zaGYW!(xEIg!e?dm^o|D#4YGxELC99P1jC7!7NkwXV{m%ISgmOv-3}82yd+Q1!it4P zX)(ilH@YvLUs$F#W*D}$eU1N2C&u1(E3?Skgv|oB?PqkmFF#ILQ@H6S%_QljhgI3@ z6~pnYpnG~05=vthTKhwl_W~lwrF;#%P|5F zTbhy02-Vdjv5P?55XoQ88k(_N&*NY{ZxXq4`(kO7Q(ShX8$&FR3&hD>5fI=JtRHvT zmhJm2C7}(oG9!VEZdh}fVwC@ojBA%0lCaH-8d~+#8R1b@+aKkZiuMx}5=E8JT)@?M zN2tTvEX~Z64uT(Uc#%&F^v6Jb58)>h9vjuKRZtiaz~rz( zw27as{pJ)EN~j$OUmbjT_Vkx$M?YTvHaj?f_4MH2up2sQIboHSh)c0{VA=>t%cS`( zuSvR#KF1SLNh+yX9G%Ub-Ocvy_SWM#*xBCR+-=sJnZ&~jmyd1iC)jW$`J-k}-NeYJ z(}hG59TX#|_owWpjAu&WLgJuDD5+eQ3`L}wXDsR+TCE$%( z6WZ&dAR`c%5No{sw@H!Bo~f9mPj3*-EYf2xyXe|&jF%*~r$pZ@&vS@6^0Z}ei# zfvDzK?HTR4!Vc8jf!DgMljJEBltuyywiF} zwigW;?>w)e+;{JOPRe`yd$Kpcl!e0Zn8Fr+KFSLM4AQZWZtNJgykt!OEUP7h$W^tj zs#|cUg?i^j`X^YRam_S*`{jDuQmr61cf~GCq6?VK@|InFuvQW1Kbr;p+L>@jxAIh% zqCKYS?u?owCX`W0Hy`DnE7&yX76xKkmQ!;YXme}!ElJA!5ME>{lolR;2*>##q>w|{ zjN~G#x-fo=HalCpa#M+ez0J)yXg_YlKf5AOSt_N(fttWi__rfb6wqFTtkDr9S;F-Y zre(~hl7ep3X7B?mtn~yfw(Qz>JG-5ot=3*!w_$U0>v6l&-fnN=qt*`m+1~B!?KZ7K z5^NQVa4?1Uh5-WFt=8jh`wcdo^R#v!?@Ih{M!zIAlhsp-Talf4JtD-dwAjdt1wCpL z7T_j<4sJsa;sD3By74=e4d1P7^xiT8sMw`QdZ0n?-afG>)p99r zCcb9F$pH$$Cgh9XT;R8FXQK(dTWuY?wyULU>u_zIh8yFAT%7A_qt{(aADHB5+gfB6 zw$_4LB|8z~?<$!zYid0jHBmYlW&CHrexDIEawlARO*J_MN}D8$|@@+-I7~Y zrx=(NgX$C$lVVbx;>x7Bs%Zz2x^4>os!P{#(sioSF)F9C2hX1V@;v+Lx8Yk6&f@QXjJ8G-_BF#tax8lG{DPl@1<;$b@hd&;^je}rg!#eIcxhtP6CC~ii z++HialYCH4ewnp{y2ebZl6Pv8UwO%uhgQ2f`GBD1475WzV`pJTbcgmw7x%rhyr0Wh z`8gvwsgV?}npBM6N80%agX1M!q;Q^Idrw}!L3^=-pY6I`r8^1xTXdCd?cb_1CtEn+ z`zb!8HsgymO|2JH5FW`=utnr4MTh72Gp%BTYaKT=y8XY)uI6ZDRtj?{`h)iz z8%0;1pgLiIPm8E@bFWAhg)+TxiJ%H!O3aUDGhQyg(RbW0e@XLk&tlvi=WEJ=t?28r zckZ2CZ&hDi!u{J|?OnH((Y&uhO-Ot>-I$@!)*qsRTPkyj{FsMdIyVy?v-Nk#)KQtP zmdj)lnCAcQmbGJL?JSqoB`JMR`15Ettpns+s5jrf{Evh8hj-O)mU8`5^(S9-L%EmE za%v2<0EX~6mBN%hfXilZ0ws@YGc?5i62+*DAXd#uL;1+wFG7en^*#ZO@b#% zz)G0*C48H9#}ZpB&6;9M#j`-Y7QrG6DTN7&Xf`=F;(XJW|HP;jV%Y06H?Eo(6~AJL z{z}7}03CB~X{|-CBy;=9)+3&?0x8$fg$t5D2|8OXH+7?=rJRjt>98k$`Wl~D0d5*Z zEZRJTB9&Yl(M9^halugVc)q|w8I$wyWQq|>E@{}LEPfeCe68XlKbskE|L=k}cWmM` zpn{@mZ9>st?D!U1o#t+^{x7R`Jkou{C-7^mNN9O=3qO+nu%}>cCQPNoclY@NY@_dG~m!xxaF7Bnn z^W?G;9NMeY}!s!vV?=n@`Mmlp7{;xW9CPvrnW z8WvpDN+yRzewh!`DIuJs7|A_x7gY^lBJv)c+8Gm=)!U&IshH+1NQKI?Sg6Dy3m~%b zct|l_+hr2D4|d@q+`^??vbbza+E6zLl4S7IXe+oAhZO9z7FhDDePdM6-^ENWZn$7-lqLOsoi*mQnpICqcodQ$Y`4+rq#Xs?Aj z2acp`MO{&1fXmE_h=i!*XB=C1Y{E`GL5$)QLo%krVK#)>JqLb&c5&(0BqgrWR6D!7 zk=9``nE2ZIPN>htT55|I&`8q|JM2v|9x#M7Kp6TPSPY=D!GJHf553#1tR-%)9rf64 zvU8Kt(2_(8-v@S3*s`_?MNxQdq5wLfIpkDZv4BPS-#|JJ5sY^YxC4#n!vT)_6F3z~ z!zBf2RzXKRmoSbcae+`psU=Qy692-gD8R6i{G1BK5)9kt?5qO4MM)CG(}EjXqzbbH zJ$f%R{n2b^sl@U@p*sJgP3DZbDiYq}b_7-LP;g@QSUQ7GTDn+xAk@xbP~pTyPMC3( zU4Ucu#ud9rOvX2yHRxu^5V%#0GrM?%^qKJO?(t!C2}2-^_IXqrm*A>2-0J?xpKH3S4asR zN(w~BRqre0#*K=gO@_U+U3DtMH?huCR6lr&Bzg#`7>V8_%B1o16G=)mDa|gX9OIOQ z(gko~#C+6+Z6bw{g%(mV4%*bu2#D)aHp^Rdn#Sy_edo>y-;kRMVdef}` zndz~I(}%p`r=2?%*t;fIB8)xyB6`shyz}9?KQx4 zdhTIJjXlHQYWiTXl@F7Id|RWYgr_0HK&bz?;l_8=-AnMFNO}O-`3?rXs4v0^k7%>{ zib6t3dK*_SjOg3>i1y8aVn~5&Z(ZZQ#0m-FzJ-^qy9(UO{ojrAujTqpm?q!Ru$Jlf zc7uf+eq#ZLzCxz`-T40*P*8!kt>5$lu$cdEZ*Ky-%=~|6XM1xS`Txz%ivM5n|119g zFVFu!$AIQ~+hK-Zaofndy+AI9BS%<*?pX7GV}1!8n)Q=~oP2s(jE69SJ^tNjXek=% zwnNc~O^TcTn1a21hI5dn5n8m_*#HIwc$NM|KFj)8FtrE9gCl=3W-S-?E8PgVpvW$% z8T99LtbJjPUv{0r0}}BfOFJH!`^mPHrNfz@qK;vBme|YyRlz4GeoM~g!y%mIvOZo? zB1Ru=KXKno)OOJjDCxd==&s2z&6bP%B>7eow;%Sej zNP;6Et>|E&iDgg5VSMJJ9A`{Y7qQp}V^}ntRgAJmPcSVx+5h_f#UAWF)54DO8AW(0 zKzpq19gM@iv(+>|+B}7OTdnO@%eZKpE`}ek_gX)Eyl$Ndi>H#hEV+qm8mT!;F0$(( zhB+{!6bJ1c6)LZ1LSm@ZLa|He9$@=ndxL70l#Vf>hFC`jfhE81xz$$kJtUd$LsdC>)mI@qOuHAh<Eg~#*RWIiJWq?JP1GFvvSoCEzb@r)r%Aw0&}ev@0P z^pgLRO~)G(()=aH@{@5Q8a9-&Hs|I1f;=KQrOO!f^Go559xIPc?=UCZ0x3gbH7ukF zhCTgqJk7kWP#4bf8Hd}^y+|Cp%?AXJ5&-wm*OAk-Gq~C%-N@q0gtODz8O?jh`O$q!FrBYIO&B}X3FMy ziuQL!c?h^__i{KQqVB2iQf;eIU-Z)t`q((GQ0;g{DA5P}WZ8#mWo607s_{79(n~tq zrWyJAQ$7F zQ81J}0q)heZVF*Z?H0l!;E9avHrNM7(};O^v+%YMIUg)zNM(xP(3cE&k^|>AokcBX z5oBh9e+ydIFJ4&ttSaP5R{@zk2;QUv9&Fqzcqcl;SoNDI)j?w`b22!O3PiDMKZN+qJ5pQ7O6-N&P|a z5`)8WoQG^u1PYrfr+5sf+3ZV}S#0<<5s+H>$u%SCP{X@Y?T6N}7Q{(>y3&{cO$E1rItDzI`a|7 zuGFWGTJr&gVB7$9H<&6MExNxo6^Hm7S1Fy&_;w11iRvw`V1nU6T4Qu5zFOYkB^{f} zJJy(Op=p`3ZDfO4q~PfF`$IEC`l!U(R7t030;$J=C6sy;lHm1dNT}^r1VOgXBda(x z`Wkq)Y|KLG^y0kAph9*+U8j|nS*7uWgMXMF88!sp53|wv>_SN>w6l}Lh3J5p==lU) zow01;G*d2wQZV*caaYV9x%Qa6MbK0j)~^HTA)I2YQ7zSwk#VBd?O3IqoR~IyhJ|Vg>|2Rx zHJqFTk@#peh0SG*9AYEqxj^+8eblEINKm`TY;+{tod9us$^<5u|>5BH>(7Fv@ei`T?#0eJtUqUy1u5_yu*<=lp(GxGQld0 zEq7aUY@#x@dFj(A44Z~s!}z2ZIzPF+T&DdCvUMC!2PoW1S@cD7Y@Odw2_CRi6|j}MCuD?PvsjwP2xHc2H}EMPWupzfIrFgK&z|9FY8b}m!t0jZ z9hb93ThtBB=J{#$_YZa}_T}~@yD*0yF1N%bVDqbV5dvydYnhTtxlgLj)VeEC*=Gdr zNU*eOZb;5qObf8=_rmS4*s7+7S5Y;*=GHSs-?vC-wxpoSQjuJ})VlVTxkrx_FN__( zWq8)D#Ez+kO6sX%d5)EnomJ6>$>I%jeXpbqkDOvlJyiO0y*Tb;{8|zHbfv-lmik|X z?)kgge{Qz6S}OkM_Eu{b^}nr^{&%JSUFm=S+WOzMwKX)^OvV*1wmf`e@-D<1Gp3{1)-V?mB6QRr&IfRWDF-iXbG6eR-1}h^k6s@A zC@!2hHslM=3hIFpY#?E>^`$!fVj@Z$Q!-s8Qfu^qTY|gZH4^P)PWKK-@)>U@aKl1i zTpXepXMsJ_#c{aE`tvCYrl9^Q477No|5^yW_fzzuYzQc|lG%|jT1s~+E+O;UAIpL= zK1Kyw6JlFW*sl{|WYD*bgPt}T6cN4GOXoAVwvyr7nrsK}XzjeXwBhkVZ7IFr~y2Fg^~RYZ@XZG7dgA1m#kb5WT32>pq8EPKe(= zuDf)3>2U6GU^^i3b=7r3^7@O9N_`DiQQ`k){2!XvfBOLNxAA|S7Wx0Q+no;l*~Iwo zo%YU(|6B2YEB^1VZvXcTxs*!`I)%o6!1o2?iMZb*8>XVmV7|0Jo1=;Wb07=oGd1i# z4T;C7*%@SK`6wGS?6OJWW63kg$Z83bHdeBw1*)#e&E|7DWnkXsz82D2wjJ=ggg>vO zrLK`jxL#OJ;>N~9nRT#gK1D|fDAY3N5X1`M2B=ZMAESL1%q@jU8X2A5A*Ui02`3Ue zI2TYN2s4J2P_gI*g=M6T(X1iRwT1Fctk|q1+zu|Z^m2rr(3Xe2YS=AyDWtVS(dfuG zP(e|(4$o}G&Ihg@lLQ^_;+G^ceWqGn4U`@^tWw z3DZVn(7&0$BE*XU@TLBw35SN0#_0mOLGZ-kdhmda!hth+4GqR#Gl6#Hq4`msDQ+1T zzjzwen009Ys(ROO0$Nk*6_5Gn;s2Cd;kRW0Z}b1&-rn)~zum3v75}&5|5p6p-^>5o z63vNNO`#pp3HBg(H=a-Xs4gugYQV{GAO2PfoPzIfVyPJXH2iShzXp;BOF$HS88bxiPv*U&Jw z_fSR&Kyld!Z9s7iPZrPz{Xn*|gnfR3T-vj?}T>MdN%DuxBHT4vD)I;k2^7$XsS#_BScY#aBzL z)*zBV@cs8eq(Fe%E?>;1ay*VHq94u>{FCRP!qwj!#B1K=+X%FLjsK{;#)bG5?Dm4S zNC=!7a1r-jy?Yfo+$8ymiEB?4Ll&JyaAXKmVbih40%0jnO>(*y1W_k=_%JwXVsB%C zSuWVH%d$FRI`=1AdFNY3>&jnWkBfo^%}M*-ss)Hp^xzYyD$#NB=ET+zR+*dH8MuD3 z-=c3dUf!_UDGC8XU6O|urzS)@8~oRU=tDD%VrHAIabX0*rflR?Q(1|i@FKg zXe5@-!cuXAX=)?^`N%2+!EXDep{ctl#F@e!A~kgzw&gB&_mKwFaOuABXXpPhJis>> z|K7&`?`&;vDgA$E7rq1k-`ZK}|5yC~ivRx`@&9acJ{I*cj#E~Oks|j1HxOkle;%Vu zR;wsODVtUPT)~b9AD<4W7nOHV38@0z7a2+8sYziFl7^4*1QS3RdEy1(scLZu+C4nrh*9J%$;e?yK|KVB)!`7d z7Zj%D-I=K(DPUunQ3;W?E+|=-{v^1&O(F-k?A@n)5@eT?*$s!Q^38g8;W3 z=twpkI5Q5r+kV(Ys#<2=HN_?@8;S5o$w|3LM`&9`PRfPtrLD6sbdVm?UR9oJT69%& zT}Mr|Wt;J@C>fWn>d{ksD{^*ZwSbj#2D_f>4m$dnsxZrtQn{zC^~VZrVeO8x>ihXA%LtK;;J0iFKtTdpH%9lUMSUB zxpU4M;Eq==la-!w^;vyZpVepeS$$TY)o1lteO8~ 16: - raise ValueError("String ending with %r can't be PCKS7-padded" % s[-1]) - return s[:-numpads] - -class AES(object): - # valid key sizes - keySize = dict(SIZE_128=16, SIZE_192=24, SIZE_256=32) - - # Rijndael S-box - sbox = [0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, - 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, - 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, - 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, - 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, - 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, - 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, - 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, - 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, - 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, - 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, - 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, - 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, - 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, - 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, - 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, - 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, - 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, - 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, - 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, - 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, - 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, - 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, - 0x54, 0xbb, 0x16] - - # Rijndael Inverted S-box - rsbox = [0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, - 0x9e, 0x81, 0xf3, 0xd7, 0xfb , 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, - 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb , 0x54, - 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, - 0x42, 0xfa, 0xc3, 0x4e , 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, - 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25 , 0x72, 0xf8, - 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, - 0x65, 0xb6, 0x92 , 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, - 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84 , 0x90, 0xd8, 0xab, - 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, - 0x45, 0x06 , 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, - 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b , 0x3a, 0x91, 0x11, 0x41, - 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, - 0x73 , 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, - 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e , 0x47, 0xf1, 0x1a, 0x71, 0x1d, - 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b , - 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, - 0xfe, 0x78, 0xcd, 0x5a, 0xf4 , 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, - 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f , 0x60, - 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, - 0x93, 0xc9, 0x9c, 0xef , 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, - 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61 , 0x17, 0x2b, - 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, - 0x21, 0x0c, 0x7d] - - def getSBoxValue(self,num): - """Retrieves a given S-Box Value""" - return self.sbox[num] - - def getSBoxInvert(self,num): - """Retrieves a given Inverted S-Box Value""" - return self.rsbox[num] - - def rotate(self, word): - """ Rijndael's key schedule rotate operation. - - Rotate a word eight bits to the left: eg, rotate(1d2c3a4f) == 2c3a4f1d - Word is an char list of size 4 (32 bits overall). - """ - return word[1:] + word[:1] - - # Rijndael Rcon - Rcon = [0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, - 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, - 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, - 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, - 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, - 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, - 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, - 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, - 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, - 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, - 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, - 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, - 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, - 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, - 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, - 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, - 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, - 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, - 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, - 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, - 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, - 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, - 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, - 0xe8, 0xcb ] - - def getRconValue(self, num): - """Retrieves a given Rcon Value""" - return self.Rcon[num] - - def core(self, word, iteration): - """Key schedule core.""" - # rotate the 32-bit word 8 bits to the left - word = self.rotate(word) - # apply S-Box substitution on all 4 parts of the 32-bit word - for i in range(4): - word[i] = self.getSBoxValue(word[i]) - # XOR the output of the rcon operation with i to the first part - # (leftmost) only - word[0] = word[0] ^ self.getRconValue(iteration) - return word - - def expandKey(self, key, size, expandedKeySize): - """Rijndael's key expansion. - - Expands an 128,192,256 key into an 176,208,240 bytes key - - expandedKey is a char list of large enough size, - key is the non-expanded key. - """ - # current expanded keySize, in bytes - currentSize = 0 - rconIteration = 1 - expandedKey = [0] * expandedKeySize - - # set the 16, 24, 32 bytes of the expanded key to the input key - for j in range(size): - expandedKey[j] = key[j] - currentSize += size - - while currentSize < expandedKeySize: - # assign the previous 4 bytes to the temporary value t - t = expandedKey[currentSize-4:currentSize] - - # every 16,24,32 bytes we apply the core schedule to t - # and increment rconIteration afterwards - if currentSize % size == 0: - t = self.core(t, rconIteration) - rconIteration += 1 - # For 256-bit keys, we add an extra sbox to the calculation - if size == self.keySize["SIZE_256"] and ((currentSize % size) == 16): - for l in range(4): t[l] = self.getSBoxValue(t[l]) - - # We XOR t with the four-byte block 16,24,32 bytes before the new - # expanded key. This becomes the next four bytes in the expanded - # key. - for m in range(4): - expandedKey[currentSize] = expandedKey[currentSize - size] ^ \ - t[m] - currentSize += 1 - - return expandedKey - - def addRoundKey(self, state, roundKey): - """Adds (XORs) the round key to the state.""" - for i in range(16): - state[i] ^= roundKey[i] - return state - - def createRoundKey(self, expandedKey, roundKeyPointer): - """Create a round key. - Creates a round key from the given expanded key and the - position within the expanded key. - """ - roundKey = [0] * 16 - for i in range(4): - for j in range(4): - roundKey[j*4+i] = expandedKey[roundKeyPointer + i*4 + j] - return roundKey - - def galois_multiplication(self, a, b): - """Galois multiplication of 8 bit characters a and b.""" - p = 0 - for counter in range(8): - if b & 1: p ^= a - hi_bit_set = a & 0x80 - a <<= 1 - # keep a 8 bit - a &= 0xFF - if hi_bit_set: - a ^= 0x1b - b >>= 1 - return p - - # - # substitute all the values from the state with the value in the SBox - # using the state value as index for the SBox - # - def subBytes(self, state, isInv): - if isInv: getter = self.getSBoxInvert - else: getter = self.getSBoxValue - for i in range(16): state[i] = getter(state[i]) - return state - - # iterate over the 4 rows and call shiftRow() with that row - def shiftRows(self, state, isInv): - for i in range(4): - state = self.shiftRow(state, i*4, i, isInv) - return state - - # each iteration shifts the row to the left by 1 - def shiftRow(self, state, statePointer, nbr, isInv): - for i in range(nbr): - if isInv: - state[statePointer:statePointer+4] = \ - state[statePointer+3:statePointer+4] + \ - state[statePointer:statePointer+3] - else: - state[statePointer:statePointer+4] = \ - state[statePointer+1:statePointer+4] + \ - state[statePointer:statePointer+1] - return state - - # galois multiplication of the 4x4 matrix - def mixColumns(self, state, isInv): - # iterate over the 4 columns - for i in range(4): - # construct one column by slicing over the 4 rows - column = state[i:i+16:4] - # apply the mixColumn on one column - column = self.mixColumn(column, isInv) - # put the values back into the state - state[i:i+16:4] = column - - return state - - # galois multiplication of 1 column of the 4x4 matrix - def mixColumn(self, column, isInv): - if isInv: mult = [14, 9, 13, 11] - else: mult = [2, 1, 1, 3] - cpy = list(column) - g = self.galois_multiplication - - column[0] = g(cpy[0], mult[0]) ^ g(cpy[3], mult[1]) ^ \ - g(cpy[2], mult[2]) ^ g(cpy[1], mult[3]) - column[1] = g(cpy[1], mult[0]) ^ g(cpy[0], mult[1]) ^ \ - g(cpy[3], mult[2]) ^ g(cpy[2], mult[3]) - column[2] = g(cpy[2], mult[0]) ^ g(cpy[1], mult[1]) ^ \ - g(cpy[0], mult[2]) ^ g(cpy[3], mult[3]) - column[3] = g(cpy[3], mult[0]) ^ g(cpy[2], mult[1]) ^ \ - g(cpy[1], mult[2]) ^ g(cpy[0], mult[3]) - return column - - # applies the 4 operations of the forward round in sequence - def aes_round(self, state, roundKey): - state = self.subBytes(state, False) - state = self.shiftRows(state, False) - state = self.mixColumns(state, False) - state = self.addRoundKey(state, roundKey) - return state - - # applies the 4 operations of the inverse round in sequence - def aes_invRound(self, state, roundKey): - state = self.shiftRows(state, True) - state = self.subBytes(state, True) - state = self.addRoundKey(state, roundKey) - state = self.mixColumns(state, True) - return state - - # Perform the initial operations, the standard round, and the final - # operations of the forward aes, creating a round key for each round - def aes_main(self, state, expandedKey, nbrRounds): - state = self.addRoundKey(state, self.createRoundKey(expandedKey, 0)) - i = 1 - while i < nbrRounds: - state = self.aes_round(state, - self.createRoundKey(expandedKey, 16*i)) - i += 1 - state = self.subBytes(state, False) - state = self.shiftRows(state, False) - state = self.addRoundKey(state, - self.createRoundKey(expandedKey, 16*nbrRounds)) - return state - - # Perform the initial operations, the standard round, and the final - # operations of the inverse aes, creating a round key for each round - def aes_invMain(self, state, expandedKey, nbrRounds): - state = self.addRoundKey(state, - self.createRoundKey(expandedKey, 16*nbrRounds)) - i = nbrRounds - 1 - while i > 0: - state = self.aes_invRound(state, - self.createRoundKey(expandedKey, 16*i)) - i -= 1 - state = self.shiftRows(state, True) - state = self.subBytes(state, True) - state = self.addRoundKey(state, self.createRoundKey(expandedKey, 0)) - return state - - # encrypts a 128 bit input block against the given key of size specified - def encrypt(self, iput, key, size): - output = [0] * 16 - # the number of rounds - nbrRounds = 0 - # the 128 bit block to encode - block = [0] * 16 - # set the number of rounds - if size == self.keySize["SIZE_128"]: nbrRounds = 10 - elif size == self.keySize["SIZE_192"]: nbrRounds = 12 - elif size == self.keySize["SIZE_256"]: nbrRounds = 14 - else: return None - - # the expanded keySize - expandedKeySize = 16*(nbrRounds+1) - - # Set the block values, for the block: - # a0,0 a0,1 a0,2 a0,3 - # a1,0 a1,1 a1,2 a1,3 - # a2,0 a2,1 a2,2 a2,3 - # a3,0 a3,1 a3,2 a3,3 - # the mapping order is a0,0 a1,0 a2,0 a3,0 a0,1 a1,1 ... a2,3 a3,3 - # - # iterate over the columns - for i in range(4): - # iterate over the rows - for j in range(4): - block[(i+(j*4))] = iput[(i*4)+j] - - # expand the key into an 176, 208, 240 bytes key - # the expanded key - expandedKey = self.expandKey(key, size, expandedKeySize) - - # encrypt the block using the expandedKey - block = self.aes_main(block, expandedKey, nbrRounds) - - # unmap the block again into the output - for k in range(4): - # iterate over the rows - for l in range(4): - output[(k*4)+l] = block[(k+(l*4))] - return output - - # decrypts a 128 bit input block against the given key of size specified - def decrypt(self, iput, key, size): - output = [0] * 16 - # the number of rounds - nbrRounds = 0 - # the 128 bit block to decode - block = [0] * 16 - # set the number of rounds - if size == self.keySize["SIZE_128"]: nbrRounds = 10 - elif size == self.keySize["SIZE_192"]: nbrRounds = 12 - elif size == self.keySize["SIZE_256"]: nbrRounds = 14 - else: return None - - # the expanded keySize - expandedKeySize = 16*(nbrRounds+1) - - # Set the block values, for the block: - # a0,0 a0,1 a0,2 a0,3 - # a1,0 a1,1 a1,2 a1,3 - # a2,0 a2,1 a2,2 a2,3 - # a3,0 a3,1 a3,2 a3,3 - # the mapping order is a0,0 a1,0 a2,0 a3,0 a0,1 a1,1 ... a2,3 a3,3 - - # iterate over the columns - for i in range(4): - # iterate over the rows - for j in range(4): - block[(i+(j*4))] = iput[(i*4)+j] - # expand the key into an 176, 208, 240 bytes key - expandedKey = self.expandKey(key, size, expandedKeySize) - # decrypt the block using the expandedKey - block = self.aes_invMain(block, expandedKey, nbrRounds) - # unmap the block again into the output - for k in range(4): - # iterate over the rows - for l in range(4): - output[(k*4)+l] = block[(k+(l*4))] - return output - - -class AESModeOfOperation(object): - - aes = AES() - - # structure of supported modes of operation - modeOfOperation = dict(OFB=0, CFB=1, CBC=2) - - # converts a 16 character string into a number array - def convertString(self, string, start, end, mode): - if end - start > 16: end = start + 16 - if mode == self.modeOfOperation["CBC"]: ar = [0] * 16 - else: ar = [] - - i = start - j = 0 - while len(ar) < end - start: - ar.append(0) - while i < end: - ar[j] = ord(string[i]) - j += 1 - i += 1 - return ar - - # Mode of Operation Encryption - # stringIn - Input String - # mode - mode of type modeOfOperation - # hexKey - a hex key of the bit length size - # size - the bit length of the key - # hexIV - the 128 bit hex Initilization Vector - def encrypt(self, stringIn, mode, key, size, IV): - if len(key) % size: - return None - if len(IV) % 16: - return None - # the AES input/output - plaintext = [] - iput = [0] * 16 - output = [] - ciphertext = [0] * 16 - # the output cipher string - cipherOut = [] - # char firstRound - firstRound = True - if stringIn != None: - for j in range(int(math.ceil(float(len(stringIn))/16))): - start = j*16 - end = j*16+16 - if end > len(stringIn): - end = len(stringIn) - plaintext = self.convertString(stringIn, start, end, mode) - # print 'PT@%s:%s' % (j, plaintext) - if mode == self.modeOfOperation["CFB"]: - if firstRound: - output = self.aes.encrypt(IV, key, size) - firstRound = False - else: - output = self.aes.encrypt(iput, key, size) - for i in range(16): - if len(plaintext)-1 < i: - ciphertext[i] = 0 ^ output[i] - elif len(output)-1 < i: - ciphertext[i] = plaintext[i] ^ 0 - elif len(plaintext)-1 < i and len(output) < i: - ciphertext[i] = 0 ^ 0 - else: - ciphertext[i] = plaintext[i] ^ output[i] - for k in range(end-start): - cipherOut.append(ciphertext[k]) - iput = ciphertext - elif mode == self.modeOfOperation["OFB"]: - if firstRound: - output = self.aes.encrypt(IV, key, size) - firstRound = False - else: - output = self.aes.encrypt(iput, key, size) - for i in range(16): - if len(plaintext)-1 < i: - ciphertext[i] = 0 ^ output[i] - elif len(output)-1 < i: - ciphertext[i] = plaintext[i] ^ 0 - elif len(plaintext)-1 < i and len(output) < i: - ciphertext[i] = 0 ^ 0 - else: - ciphertext[i] = plaintext[i] ^ output[i] - for k in range(end-start): - cipherOut.append(ciphertext[k]) - iput = output - elif mode == self.modeOfOperation["CBC"]: - for i in range(16): - if firstRound: - iput[i] = plaintext[i] ^ IV[i] - else: - iput[i] = plaintext[i] ^ ciphertext[i] - # print 'IP@%s:%s' % (j, iput) - firstRound = False - ciphertext = self.aes.encrypt(iput, key, size) - # always 16 bytes because of the padding for CBC - for k in range(16): - cipherOut.append(ciphertext[k]) - return mode, len(stringIn), cipherOut - - # Mode of Operation Decryption - # cipherIn - Encrypted String - # originalsize - The unencrypted string length - required for CBC - # mode - mode of type modeOfOperation - # key - a number array of the bit length size - # size - the bit length of the key - # IV - the 128 bit number array Initilization Vector - def decrypt(self, cipherIn, originalsize, mode, key, size, IV): - # cipherIn = unescCtrlChars(cipherIn) - if len(key) % size: - return None - if len(IV) % 16: - return None - # the AES input/output - ciphertext = [] - iput = [] - output = [] - plaintext = [0] * 16 - # the output plain text string - stringOut = '' - # char firstRound - firstRound = True - if cipherIn != None: - for j in range(int(math.ceil(float(len(cipherIn))/16))): - start = j*16 - end = j*16+16 - if j*16+16 > len(cipherIn): - end = len(cipherIn) - ciphertext = cipherIn[start:end] - if mode == self.modeOfOperation["CFB"]: - if firstRound: - output = self.aes.encrypt(IV, key, size) - firstRound = False - else: - output = self.aes.encrypt(iput, key, size) - for i in range(16): - if len(output)-1 < i: - plaintext[i] = 0 ^ ciphertext[i] - elif len(ciphertext)-1 < i: - plaintext[i] = output[i] ^ 0 - elif len(output)-1 < i and len(ciphertext) < i: - plaintext[i] = 0 ^ 0 - else: - plaintext[i] = output[i] ^ ciphertext[i] - for k in range(end-start): - stringOut += chr(plaintext[k]) - iput = ciphertext - elif mode == self.modeOfOperation["OFB"]: - if firstRound: - output = self.aes.encrypt(IV, key, size) - firstRound = False - else: - output = self.aes.encrypt(iput, key, size) - for i in range(16): - if len(output)-1 < i: - plaintext[i] = 0 ^ ciphertext[i] - elif len(ciphertext)-1 < i: - plaintext[i] = output[i] ^ 0 - elif len(output)-1 < i and len(ciphertext) < i: - plaintext[i] = 0 ^ 0 - else: - plaintext[i] = output[i] ^ ciphertext[i] - for k in range(end-start): - stringOut += chr(plaintext[k]) - iput = output - elif mode == self.modeOfOperation["CBC"]: - output = self.aes.decrypt(ciphertext, key, size) - for i in range(16): - if firstRound: - plaintext[i] = IV[i] ^ output[i] - else: - plaintext[i] = iput[i] ^ output[i] - firstRound = False - if originalsize is not None and originalsize < end: - for k in range(originalsize-start): - stringOut += chr(plaintext[k]) - else: - for k in range(end-start): - stringOut += chr(plaintext[k]) - iput = ciphertext - return stringOut - - -def encryptData(key, data, mode=AESModeOfOperation.modeOfOperation["CBC"]): - """encrypt `data` using `key` - - `key` should be a string of bytes. - - returned cipher is a string of bytes prepended with the initialization - vector. - - """ - key = map(ord, key) - if mode == AESModeOfOperation.modeOfOperation["CBC"]: - data = append_PKCS7_padding(data) - keysize = len(key) - assert keysize in AES.keySize.values(), 'invalid key size: %s' % keysize - # create a new iv using random data - iv = [ord(i) for i in os.urandom(16)] - moo = AESModeOfOperation() - (mode, length, ciph) = moo.encrypt(data, mode, key, keysize, iv) - # With padding, the original length does not need to be known. It's a bad - # idea to store the original message length. - # prepend the iv. - return ''.join(map(chr, iv)) + ''.join(map(chr, ciph)) - -def decryptData(key, data, mode=AESModeOfOperation.modeOfOperation["CBC"]): - """decrypt `data` using `key` - - `key` should be a string of bytes. - - `data` should have the initialization vector prepended as a string of - ordinal values. - - """ - - key = map(ord, key) - keysize = len(key) - assert keysize in AES.keySize.values(), 'invalid key size: %s' % keysize - # iv is first 16 bytes - iv = map(ord, data[:16]) - data = map(ord, data[16:]) - moo = AESModeOfOperation() - decr = moo.decrypt(data, None, mode, key, keysize, iv) - if mode == AESModeOfOperation.modeOfOperation["CBC"]: - decr = strip_PKCS7_padding(decr) - return decr - -def generateRandomKey(keysize): - """Generates a key from random data of length `keysize`. - - The returned key is a string of bytes. - - """ - if keysize not in (16, 24, 32): - emsg = 'Invalid keysize, %s. Should be one of (16, 24, 32).' - raise ValueError, emsg % keysize - return os.urandom(keysize) - -if __name__ == "__main__": - moo = AESModeOfOperation() - cleartext = "This is a test!" - cypherkey = [143,194,34,208,145,203,230,143,177,246,97,206,145,92,255,84] - iv = [103,35,148,239,76,213,47,118,255,222,123,176,106,134,98,92] - mode, orig_len, ciph = moo.encrypt(cleartext, moo.modeOfOperation["CBC"], - cypherkey, moo.aes.keySize["SIZE_128"], iv) - print 'm=%s, ol=%s (%s), ciph=%s' % (mode, orig_len, len(cleartext), ciph) - decr = moo.decrypt(ciph, orig_len, mode, cypherkey, - moo.aes.keySize["SIZE_128"], iv) - print decr diff --git a/src/shared/__init__.py b/src/shared/__init__.py deleted file mode 100644 index 7b3f385..0000000 --- a/src/shared/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -from tlsn_common import * -from tlsn_ssl import * diff --git a/src/shared/pubkeys.txt b/src/shared/pubkeys.txt deleted file mode 100644 index 82f1f34..0000000 --- a/src/shared/pubkeys.txt +++ /dev/null @@ -1,209 +0,0 @@ -#This is a comment. -#We use such reliable site here which have 2048 bit RSA modulus -#and which don't serve different certificates depending on -#your location. This rules out using very large sites like google/facebook/twitter. -#Also make sure they don't expire too soon. -#Some websites e.g. apple.com, microsoft.com will not even respond with a TLS alert. -#You can copy-paste the modulus straight from Firefox's -#View Certificate - Details - Subject's Public Key -#There must be a blank line between entries. -# -#Name=whatsapp.com -#Expires=09/09/2019 -#Modulus= -d3 6a fd 68 f8 ec f1 3a 2b 6d 01 7c 92 f7 98 37 -f6 fc 3a 19 91 4a 19 a8 7f 85 a7 6b 46 b2 e1 a3 -66 f6 63 4f e7 90 83 cf 00 00 a7 7a 68 48 38 04 -0a e7 c3 d5 96 f4 2a 95 21 b5 04 e4 c3 23 cd 56 -81 92 cd 34 0f 32 67 7e 64 d9 41 52 08 2e 43 2d -2a d3 c2 95 7a f6 20 36 10 fa 36 f2 18 2e e5 f1 -6a 40 79 ae 38 5d 1a 24 8e 64 a1 85 a2 c4 df dd -89 9b a9 02 e9 cc a4 5c 4a bc a2 5a 89 c5 74 6d -14 e5 7e 71 b8 97 f9 d0 d1 06 f0 cc a4 cb 66 d5 -a8 8c e1 25 27 4b 3f 80 db 1c 14 ca ec b8 35 89 -f6 e6 2e 36 e3 3b 9a 9c 03 94 18 e2 e9 1d 66 4d -4f 74 d2 58 16 9b 44 cd 9d 82 53 ad 85 10 bf 73 -3a bf 1c 9e 45 cc a7 8a c0 3e ab c7 31 ce ef 60 -ac 19 9e 03 bd ab 7d 4c 08 b6 d2 8a 0b 3a 84 cf -50 a8 69 a0 d7 29 04 65 5f 8e 65 4f 3d a4 5c 64 -8d 81 0f e3 61 e0 b0 6b 9f 2d 29 94 ce 74 fd 73 -# -#Name=wordpress.org -#Expires=12/15/2020 -#Modulus= -b7 ee 9f ad 32 5f 3b 77 0b d7 f6 f1 9b 4d 88 15 -90 78 92 84 e0 4e 77 f0 9a a3 cf 25 11 d9 bf 00 -14 12 20 bd 96 a6 6f da 53 e7 c5 0b 40 8c a6 44 -7a 2f 53 4c 54 90 44 b2 22 87 9d 02 01 93 53 f1 -c7 ba 1a bb 8d 4d 8f 79 bc b2 c9 00 71 78 0a c8 -ba 9b 93 99 7f 1e 98 93 f9 66 ce c4 65 03 07 53 -f3 91 8b 9e 5e 23 72 01 f4 b9 4f db 65 3c 33 d4 -c9 42 6b 17 43 71 5b b6 cc 02 b5 3e 72 e3 fb 07 -04 2f 01 8f 89 fa ad 2e 76 15 4a 19 4b 3f 36 b6 -f7 95 2f 4c e6 95 9a 9f 95 61 c5 af 4b 02 ed 9f -e3 a2 a9 77 78 d3 93 d6 a3 73 35 dd 8a 21 e7 f3 -f2 1d a8 c7 74 17 43 5a 10 38 86 b3 ef 1e f8 db -7c ac 79 cd ca 7f 6e ea 18 dd d4 4b 1e 83 87 fa -71 34 93 74 17 ad a1 03 4d 8d 8c cc e7 4c 0c a4 -2b 8a a8 51 af cd 86 b3 01 0d a2 3b 77 e4 ce 33 -ec c0 3d 29 1d 45 c2 84 94 74 66 da 8a a1 b0 f5 -# -#Name=vimeo.com -#Expires=03/20/2020 -#Modulus= -c7 08 83 5a 6d b9 8c 67 5e db bb 3f 14 cb 7b 93 -ba 48 c7 bb 0d 8a 4b a5 df cc 02 8a 9b 80 93 65 -b0 c7 e5 0f 04 3a 48 b9 ec ff 3e dc 8c 7a 90 cc -cf e5 22 79 30 3b a5 87 8b dc ee 1b 49 cb ea 91 -57 67 1d fc 88 71 29 80 51 1d 6f 49 33 a2 34 b6 -78 6c 33 7c ff ec 89 60 c6 ca 46 c1 b7 92 00 cc -74 bf 33 03 58 e0 42 eb 29 a1 22 52 16 36 c1 18 -ad 30 3b af 5c cf 77 77 fe 01 3e 05 8a 42 6d be -5d 60 b0 78 44 c8 06 5d a8 88 2d 65 34 32 36 a8 -3c 97 3b 3d e7 1f ca cf 67 fa fc 4e 76 36 ee 35 -37 7b bf ba e3 f9 51 00 e9 79 49 21 e6 24 07 cc -89 11 dc 54 b7 dc e4 93 9c c9 8a ef 42 d4 77 b2 -eb bc 67 82 21 de 57 d2 bb a4 bd b9 2f 49 b9 96 -f2 54 72 02 d2 7d 77 c4 33 a2 db 0f 36 37 89 a2 -e9 55 17 97 20 64 e7 00 b1 3e f6 53 db 95 22 2d -0a 1d b9 23 61 42 2b 44 e6 5b 8a 1a f6 f5 6c fb -# -#Name=w3.org -#Expires=06/02/2019 -#Modulus= -b7 e1 f2 60 0c e4 cf 2d 23 ed 29 10 a0 b4 53 be -35 ed 8d 3b f9 8f b5 45 41 ce ee 51 ed d5 2b 42 -fe ea 04 12 d5 f5 1a ad 71 b1 4a 8e 53 21 90 04 -d0 b4 2c 9d 08 b3 0d 5a 6e 45 19 1b de 96 78 0d -22 5d 0a 5e 85 bd dc a0 fb 45 e8 45 04 9f 58 06 -3e 82 f7 e7 f8 68 05 e2 69 43 87 ce 14 e6 d0 aa -0e 5f d5 51 c2 55 0e fd 95 5e 3f 44 22 7c f8 87 -96 00 c6 7a cb f8 43 a8 fc 45 c7 69 53 c5 8a a9 -86 78 27 d7 de f4 61 a3 e3 af 7e fa df 56 e2 a0 -5b cd 53 a8 88 32 98 73 40 68 db ea 9a 76 33 ae -25 ae b5 7a c6 ab ce ae 3c a9 fc 73 df a4 74 52 -90 a2 51 e0 95 eb 0f 59 cd ea 46 47 88 48 0a ea -1a 91 ee 8e 2c a4 ae 1c a1 4a 2a ce b4 ad 23 d9 -d5 7a 36 3a 2b 9d 7c 34 64 9a c7 43 b0 1b 19 64 -23 7c fa ee 38 57 6a c3 3b 61 b4 6c 28 ea 8e b4 -41 ca 54 79 e3 e3 97 90 74 f7 49 8f 5d 06 45 2b -# -#Name=digg.com -#Expires=06/08/2019 -#Modulus= -e1 21 04 3d f2 6d a8 f2 cc e9 b6 1a b7 22 71 c3 -a3 19 4d 2f d0 b0 eb be 86 84 0e e1 fa 07 63 a1 -77 81 50 fa b5 4f f1 ce 39 cd 48 33 8c 70 0b 7e -93 8f 00 24 1c 4c fe 94 45 cc 0d bc de 26 d3 74 -5e 70 38 52 9e bc 67 57 89 b1 1b af 3d c0 38 cf -23 27 cc 69 36 83 03 dc ec 33 67 21 d4 19 e3 02 -df a8 76 86 95 9d d5 f1 5a 04 0e 08 1e 68 f7 9d -c3 c4 ec ae 1d 50 3b 79 ab fd 3f 8d 2b 3c 70 c5 -1e 6c 5e 0c b7 d6 fa a9 c1 2e 88 e7 53 31 32 6a -dc 98 c1 e4 25 0b 6d aa cb 56 33 9b 4a d7 38 39 -d5 36 52 27 53 c0 8f f6 d2 97 6f d1 40 33 21 7a -5d f0 6b 69 ef c1 8e ae 8c 71 1b b8 46 bd ed c0 -86 4e 74 31 96 93 7b fc d2 0a cc ba f2 31 78 f6 -58 e7 0d fa ad b1 35 c0 d8 3d be 88 55 08 92 87 -3b b5 88 61 37 df 2a b0 69 5b 3a cf a3 28 c6 3a -49 da 6d cf 08 1c 95 75 cb 99 3c 2d 91 19 d4 8b -# -#Name=dropbox.com -#Expires=11/02/2020 -#Modulus= -bc 9e 8d 01 9d d4 c0 ad 20 40 eb d5 45 eb 66 84 -2a 28 be 22 21 6f 2b 8a 14 74 4c 40 17 c5 be fd -33 c4 1c cf 4a e8 02 7a 63 f5 bf 6a 5e 72 55 ba -11 e3 b8 ef ef 82 17 67 ab 25 f3 45 7a 56 b7 1c -15 32 43 57 6f a0 16 d0 57 08 c7 c3 e3 13 6d 03 -d7 2f 85 73 46 3e 1c 19 62 1f 5a 93 50 15 ce 83 -4c 1e 50 90 95 0e 14 bf 1e 64 14 ec 02 0d 63 31 -de 46 39 1c 53 d0 4e 17 8a 07 bb ca bd 4c 88 3f -4f 8b df e1 6b be f6 3a f5 8b bd bb 77 2a ee 16 -81 86 71 d4 77 cf 0e 46 c9 ae fa 28 9a 97 44 3b -e3 49 ad 58 f5 bc 2f 2e 08 c3 8e 0e b6 a3 17 0d -f8 87 37 3c 8a 07 39 6c aa 42 91 b8 b2 60 93 d7 -0b 3d fb d0 0b dc 56 6a 07 cf cf b1 9f b8 54 ba -73 90 93 0b 6b 33 d6 4c ec ad e3 fe af fd da b9 -f4 0b 48 f5 c6 f4 c2 33 c2 46 6e d0 11 7d fe 9b -19 b9 1f dd 33 3f 8b 92 38 38 f9 d8 a4 66 39 3b -# -#Name=archive.org -#Expires=02/22/2020 -#Modulus= -d2 ba 32 ad 20 0d 8a e5 05 34 ff 93 af 34 83 45 -11 e3 95 87 2d 53 f2 14 d9 a4 af e1 ac 4a 86 e8 -e0 fb 08 9c d0 66 2e c7 f9 e2 a2 9b a8 d3 dd d8 -38 3e f1 67 89 6c 69 db fa 36 bb 2b 73 66 e8 5f -a2 df c0 62 bf 14 35 43 e3 3b 3c 28 d3 76 5d 09 -93 a1 22 db 61 cf b6 8a 62 6f e0 43 23 4f 2e 28 -b1 9f c5 31 9e bf b1 a4 b7 a3 b8 a5 e8 64 59 01 -bf 18 db b2 37 b4 c3 42 58 65 79 73 85 16 ad 7c -6e c4 25 ab b0 7c 84 7d a8 be b3 68 8c d9 3a 67 -ed b8 bc 71 1a 68 c8 05 fe 5c 53 72 ff d5 ba fc -e2 da 0b 08 66 22 34 c7 b9 76 6d c4 9b 98 5e 0e -ec 68 d6 8b e8 5f 54 0a ef 51 8f 89 a9 93 60 ac -ee 1a 45 06 a4 4e 19 c6 38 35 59 ef d1 4d 22 cd -01 fe 51 26 9e c7 1b fb e8 6d 46 86 01 dc b5 23 -1a 63 5a 9c 1b 08 6a 36 4b b7 58 ea bc f8 b4 49 -c6 51 f5 5e b0 ca 55 36 3c df 2a 16 24 4e e1 ab -# -#Name=mail.ru -#Expires=10/08/2020 -#Modulus= -a5 46 ec 16 f0 19 9b ca 25 64 a5 97 8e 87 79 ee -ed c3 83 81 84 c2 a2 19 cb 3b e9 e8 f7 28 7e b8 -8e 52 07 b8 dc 08 75 14 15 1f 69 c5 5c 77 91 10 -ac e9 29 36 97 93 ca 05 5b 6c db e6 1d 78 b4 91 -41 ce 10 89 c9 aa fa 1f fe e6 21 0e f4 03 ab 70 -a9 94 64 c1 2b 29 5a c9 de 1c 1b f8 f4 95 20 99 -59 79 97 f1 52 de 55 0b c0 c9 73 21 ad 28 5a 8a -96 ee 87 cf 09 2d d1 5a e5 57 20 74 3a fe a5 ac -38 d5 26 b3 61 9a 5f 32 44 d4 ef bd 68 a4 9d 1d -a4 a9 3f 05 af 23 8f ce 70 a5 72 58 36 3f 50 c5 -8b 38 5a e0 e9 2c 37 c9 8a 8e 91 5e 77 c9 75 0c -43 bd 1d 70 33 70 41 e2 eb f4 e9 6f 9b bf 37 dc -18 af 43 04 93 02 d7 5c 97 b7 a5 7c 96 f1 5f 0c -d7 4c ed b5 b6 db 4f ff 4b 5a 21 cb 70 d5 cf 75 -cb 06 c9 a3 31 eb 36 fe 79 17 a5 2d c8 0f 23 67 -3d 9c 56 9d 82 b2 f3 bb b5 7e 2b 9a 7b c2 65 69 -# -#Name=360.cn -#Expires=02/12/2019 -#Modulus= -81 5d df fd 0f 33 bb ff 34 9a 64 d4 64 2f af 7d -77 e9 ac 27 a7 33 3d d1 cc 3e cb c0 ab fb ae 1c -c4 de 96 38 39 a6 ab ed 42 83 35 68 55 d4 91 fd -15 38 94 4a fb ee 84 f1 5f 21 28 a3 e3 62 79 d3 -25 f9 88 34 4a aa c9 ff d5 fa 17 51 75 f4 57 56 -8d a3 d9 66 db bc 68 02 e8 e4 a1 25 78 3f 37 b7 -ed b0 8a ca b8 34 d7 b9 df 09 51 a2 9a 86 e6 b5 -37 4c 9b 5b 4d 66 b5 0a 8c 17 b9 70 16 e5 82 c8 -7e b9 11 1a 93 19 b5 ed d8 f3 e7 41 2e 3f 22 88 -31 fa 30 b8 6b 9e 08 e1 0f ec af 70 02 d9 b6 0a -49 af 45 66 43 02 be 75 89 af db f1 5e 7f f0 7a -07 06 a7 0c 46 46 45 d4 cd 1f ae 16 f5 d3 26 08 -5a d5 95 23 91 04 31 a9 d7 9a 4d 61 cb 23 b1 42 -e5 25 b2 72 0f d8 54 86 6c 0f 98 e5 59 db fb 08 -34 4e 82 1d 96 0e 77 36 f3 f5 91 c0 67 45 de 33 -82 0d 4f 22 d3 e8 0e f6 1b 90 82 2f bc 23 ef fd -# -#Name=netflix.com -#Expires=25/07/2019 -#Modulus= -a6 4b e4 63 b2 47 cb c5 3b 11 63 b7 6a af b9 1d -e0 90 c2 2c 56 2e 31 97 47 6a e4 f8 1e e5 a6 82 -96 c0 8d 27 f4 db ab ae e0 2a 5a eb 11 6d b7 26 -30 4c e9 6a f6 fe 0b 50 ab 1f f6 b2 2c ce c7 68 -c3 bf 38 48 aa a6 5f 6d 99 a2 22 69 1b e3 ae 10 -ea 0f 25 36 be a8 50 a2 ba 0f 10 28 67 8a 20 b3 -11 76 fd 84 65 06 11 31 91 4a ba 8f d5 4f 42 22 -2f c3 f7 46 a3 15 8e 4a 6d b9 30 4e d3 cc e0 35 -f3 27 b8 4e 56 54 ba f4 62 3e 6f 13 fa 19 2d 0c -d1 f0 42 32 bb 76 76 92 40 1d b0 4b 9d 87 55 d9 -83 86 c4 e3 60 54 ba fc 56 39 b5 46 ed 72 44 46 -cd 54 1b d0 fb cc f2 75 44 f8 8d 21 be 5c 03 cb -88 d2 3b 59 78 3e 1b c3 7b c0 d7 23 be f1 bd d5 -21 71 65 3d 8d 5b 51 88 21 fe 0f 2e b4 37 d8 18 -5e 22 7b bb 7c fd 07 05 d2 b9 9c ad a7 90 2f 35 -6a bc 85 17 fa b0 28 aa ec 54 3f 3d e5 81 00 97 diff --git a/src/shared/tlsn_common.py b/src/shared/tlsn_common.py deleted file mode 100644 index 8b227c0..0000000 --- a/src/shared/tlsn_common.py +++ /dev/null @@ -1,187 +0,0 @@ -from __future__ import print_function -from ConfigParser import SafeConfigParser -from SocketServer import ThreadingMixIn -from struct import pack -import os, binascii, itertools, re, random -import threading, BaseHTTPServer -import select, time, socket -from subprocess import check_output -#General utility objects used by both auditor and auditee. - -config = SafeConfigParser() -config_location = os.path.join(os.path.dirname(os.path.realpath(__file__)),'tlsnotary.ini') - -#required_options = {'Notary':['notary_server','notary_port']} -required_options = {} -reliable_sites = {} - - -def verify_signature(msg, signature, modulus): - '''RSA verification is sig^e mod n, drop the padding and get the last 32 bytes - Args: msg as sha256 digest, signature as bytearray, modulus as (big) int - ''' - sig = ba2int(signature) - exponent = 65537 - result = pow(sig,exponent,modulus) - padded_hash = bi2ba(result,fixed=512) #4096 bit key - unpadded_hash = padded_hash[512-32:] - if msg==unpadded_hash: - return True - else: - return False - -def load_program_config(): - - loadedFiles = config.read([config_location]) - #detailed sanity checking : - #did the file exist? - if len(loadedFiles) != 1: - raise Exception("Could not find config file: "+config_location) - #check for sections - for s in required_options: - if s not in config.sections(): - raise Exception("Config file does not contain the required section: "+s) - #then check for specific options - for k,v in required_options.iteritems(): - for o in v: - if o not in config.options(k): - raise Exception("Config file does not contain the required option: "+o) - - -def import_reliable_sites(d): - '''Read in the site names and ssl ports from the config file, - and then read in the corresponding pubkeys in browser hex format from - the file pubkeys.txt in directory d. Then combine this data into the reliable_sites global dict''' - sites = [x.strip() for x in config.get('SSL','reliable_sites').split(',')] - ports = [int(x.strip()) for x in config.get('SSL','reliable_sites_ssl_ports').split(',')] - assert len(sites) == len(ports), "Error, tlsnotary.ini file contains a mismatch between reliable sites and ports" - #import hardcoded pubkeys - with open(os.path.join(d,'pubkeys.txt'),'rb') as f: plines = f.readlines() - raw_pubkeys= [] - pubkeys = [] - while len(plines): - next_raw_pubkey = list(itertools.takewhile(lambda x: x.startswith('#') != True,plines)) - k = len(next_raw_pubkey) - plines = plines[k+1:] - if k > 0 : raw_pubkeys.append(''.join(next_raw_pubkey)) - for rp in raw_pubkeys: - pubkeys.append(re.sub(r'\s+','',rp)) - for i,site in enumerate(sites): - reliable_sites[site] = [ports[i]] - reliable_sites[site].append(pubkeys[i]) - -def check_complete_records(d): - '''Given a response d from a server, - we want to know if its contents represents - a complete set of records, however many.''' - l = ba2int(d[3:5]) - if len(d)< l+5: return False - elif len(d)==l+5: return True - else: return check_complete_records(d[l+5:]) - -def create_sock(server,prt): - returned_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - returned_sock.settimeout(int(config.get("General","tcp_socket_timeout"))) - returned_sock.connect((server, prt)) - return returned_sock - -def recv_socket(sckt,is_handshake=False): - last_time_data_was_seen_from_server = 0 - data_from_server_seen = False - databuffer='' - while True: - rlist, wlist, xlist = select.select((sckt,), (), (sckt,), 1) - if len(rlist) == len(xlist) == 0: #timeout - #TODO dont rely on a fixed timeout - delta = int(time.time()) - last_time_data_was_seen_from_server - if not data_from_server_seen: continue - if delta < int(config.get("General","server_response_timeout")): continue - return databuffer #we timed out on the socket read - if len(xlist) > 0: - print ('Socket exceptional condition. Terminating connection') - return '' - if len(rlist) == 0: - print ('Python internal socket error: rlist should not be empty. Please investigate. Terminating connection') - return '' - for rsckt in rlist: - data = rsckt.recv(1024*32) - if not data: - if not databuffer: - raise Exception ("Server closed the socket and sent no data") - else: - return databuffer - data_from_server_seen = True - databuffer += data - if is_handshake: - if check_complete_records(databuffer): return databuffer #else, just continue loop - last_time_data_was_seen_from_server = int(time.time()) - -def bi2ba(bigint,fixed=None): - m_bytes = [] - while bigint != 0: - b = bigint%256 - m_bytes.insert( 0, b ) - bigint //= 256 - if fixed: - padding = fixed - len(m_bytes) - if padding > 0: m_bytes = [0]*padding + m_bytes - return bytearray(m_bytes) - - -def xor(a,b): - return bytearray([ord(a) ^ ord(b) for a,b in zip(a,b)]) - -def bigint_to_list(bigint): - m_bytes = [] - while bigint != 0: - b = bigint%256 - m_bytes.insert( 0, b ) - bigint //= 256 - return m_bytes - -#convert bytearray into int -def ba2int(byte_array): - return int(str(byte_array).encode('hex'), 16) - - -def gunzip_http(http_data): - import gzip - import StringIO - http_header = http_data[:http_data.find('\r\n\r\n')+len('\r\n\r\n')] - #\s* below means any amount of whitespaces - if re.search(r'content-encoding:\s*deflate', http_header, re.IGNORECASE): - #TODO manually resend the request with compression disabled - raise Exception('Please set gzip_disabled = 1 in tlsnotary.ini and rerun the audit') - if not re.search(r'content-encoding:\s*gzip', http_header, re.IGNORECASE): - return http_data #nothing to gunzip - http_body = http_data[len(http_header):] - ungzipped = http_header - gzipped = StringIO.StringIO(http_body) - f = gzip.GzipFile(fileobj=gzipped, mode="rb") - ungzipped += f.read() - return ungzipped - - -def dechunk_http(http_data): - '''Dechunk only if http_data is chunked otherwise return http_data unmodified''' - http_header = http_data[:http_data.find('\r\n\r\n')+len('\r\n\r\n')] - #\s* below means any amount of whitespaces - if not re.search(r'transfer-encoding:\s*chunked', http_header, re.IGNORECASE): - return http_data #nothing to dechunk - http_body = http_data[len(http_header):] - - dechunked = http_header - cur_offset = 0 - chunk_len = -1 #initialize with a non-zero value - while True: - new_offset = http_body[cur_offset:].find('\r\n') - if new_offset==-1: #pre-caution against endless looping - #pinterest.com is known to not send the last 0 chunk when HTTP gzip is disabled - return dechunked - chunk_len_hex = http_body[cur_offset:cur_offset+new_offset] - chunk_len = int(chunk_len_hex, 16) - if chunk_len ==0: break #for properly-formed html we should break here - cur_offset += new_offset+len('\r\n') - dechunked += http_body[cur_offset:cur_offset+chunk_len] - cur_offset += chunk_len+len('\r\n') - return dechunked diff --git a/src/shared/tlsn_ssl.py b/src/shared/tlsn_ssl.py deleted file mode 100644 index a8978b1..0000000 --- a/src/shared/tlsn_ssl.py +++ /dev/null @@ -1,1191 +0,0 @@ -from __future__ import print_function -import math, os, binascii, hmac, time, re -from hashlib import md5, sha1 -from shared.tlsn_common import bigint_to_list as bigint_to_list -from shared.tlsn_common import ba2int as ba2int, bi2ba as bi2ba -from shared.tlsn_common import xor as xor, recv_socket as recv_socket -from base64 import b64encode,b64decode -from pyasn1.type import univ -from pyasn1.codec.der import decoder -from slowaes import AESModeOfOperation -from slowaes import AES -import tlsn_common - -#*********** TLS CODE *************************************** -#This is a *heavily* restricted, and modified -#implementation of client-side TLS 1.0. -#Restrictions: -#-only for RSA key exchange -#-only for AES-CBC and RC4 ciphers -#-only implements one client request and one server response -# after the handshake is complete. -#-certificate is extracted but not checked using any PKI; the -# certificate check must be implemented by the calling code. -#-does not support record level compression. -#Modifications: -#The master secret and key generation is based on the -#tlsnotary algorithm as explained in TLSNotary.pdf as found -#in the documentation folder of the repo. -#This is achieved by creating a separate TLSNClientSession -#object for each of auditor and auditee, containing separate -#subsets of the required information(in particular, secrets.) -#************************************************************ -#constants -md5_hash_len = 16 -sha1_hash_len = 20 -aes_block_size = 16 -tls_ver_1_0 = '\x03\x01' -tls_ver_1_1 = '\x03\x02' -tls_versions = [tls_ver_1_0,tls_ver_1_1] -#record types -appd = '\x17' #Application Data -hs = '\x16' #Handshake -chcis = '\x14' #Change Cipher Spec -alrt = '\x15' #Alert -tls_record_types = [appd,hs,chcis,alrt] -#handshake types -h_ch = '\x01' #Client Hello -h_sh = '\x02' #Server Hello -h_cert = '\x0b' #Certificate -h_shd = '\x0e' #Server Hello Done -h_cke = '\x10' #Client Key Exchange -h_fin = '\x14' #Finished -tls_handshake_types = [h_ch,h_sh,h_cert,h_shd,h_cke,h_fin] - -"""The amount of key material for each ciphersuite: -AES256-CBC-SHA: mac key 20*2, encryption key 32*2, IV 16*2 == 136bytes -AES128-CBC-SHA: mac key 20*2, encryption key 16*2, IV 16*2 == 104bytes -RC4128_SHA: mac key 20*2, encryption key 16*2 == 72bytes -RC4128_MD5: mac key 16*2, encryption key 16*2 == 64 bytes""" -tlsn_cipher_suites = {47:['AES128',20,20,16,16,16,16],\ - 53:['AES256',20,20,32,32,16,16],\ - 5:['RC4SHA',20,20,16,16,0,0],\ - 4:['RC4MD5',16,16,16,16,0,0]} -#preprocessing: add the total number of bytes in the expanded keys format -#for each cipher suite, for ease of reference -for v in tlsn_cipher_suites.values(): - v.append(sum(v[1:])) - -class TLSNSSLError(Exception): - def __init__(self, msg, data=None): - self.msg = msg - if data: - self.data = binascii.hexlify(data) - else: - self.data = '' - - def __str__(self): - return self.msg + ': ' + self.data - -def ssl_dump(session, fn=None): - #Note that this dump write could be encapsulated - #in the TLSNSSLError class, but the session object - #is not always available in context. - filename = 'ssldump' if not fn else fn - with open(filename,'wb') as f: - f.write(session.dump()) - -def tls_record_decoder(d): - '''Given a binary data stream d, - separate it into TLS records and return - as a list of TLSRecord objects. If no - TLS record is found at the start of the stream, - return False. If any additional data is found - at the end of the final record, it is returned - as the second part of the returned tuple. - Note that record length is only validated here - in the decoder.''' - records = [] - remaining = None - if d[0] not in tls_record_types: return False - while d: - rt = d[0] - if rt not in tls_record_types: - remaining = d - break - ver = d[1:3] - if ver not in tls_versions: - raise TLSNSSLError("Incompatible TLS version",ver) - l = ba2int(d[3:5]) - if len(d) < l+5: - #can vandalise console, but not stored anywhere else, so needed. - raise TLSNSSLError("incomplete TLS record",d) - fragment = d[5:5+l] - d = d[5+l:] - records.append(TLSRecord(rt, tlsver=ver, f=fragment)) - return (records,remaining) - -def tls_record_fragment_decoder(t,d, conn=None, ignore_mac = False): - '''Given the record type t and the data fragment d, - we construct as many objects of that type as we can find - in the fragment and return them as a list of Python objects. - If conn is not None, the record fragment is assumed to be - encrypted and is decrypted before processing. ''' - hlpos = [] - if conn: - if ignore_mac: #means we won't check it now, but store to be checked later - validity, plaintext, mac = conn.dtvm(d,t,return_mac=True) - else: - validity,plaintext = conn.dtvm(d,t) - if not validity: - raise TLSNSSLError("Mac failure", plaintext[:10]) - else: - plaintext = d - - while len(plaintext): - if t == hs: - if not plaintext[0] in hs_type_map.keys(): - raise TLSNSSLError("Invalid handshake type",plaintext[0]) - constructed_obj = hs_type_map[plaintext[0]](serialized=plaintext) - elif t == appd: - constructed_obj = TLSAppData(serialized=plaintext) - elif t == alrt: - constructed_obj = TLSAlert(serialized=plaintext) - elif t == chcis: - constructed_obj = TLSChangeCipherSpec(serialized=plaintext) - else: - raise TLSNSSLError("Invalid record type",t) - hlpos.append(constructed_obj) - plaintext = constructed_obj.discarded - - if conn: - #Note this assumes that only ONE encrypted message - hlpos[0].encrypted = d - if ignore_mac: - hlpos[0].recorded_mac = mac - - return hlpos - -class TLSRecord(object): - def __init__(self, ct, f=None, tlsver=None): - self.content_type = ct - self.content_version = tlsver - if f: - self.fragment = f - self.length = len(self.fragment) - self.serialize() - - def serialize(self): - check_contents = self.content_type and self.content_version and self.length and self.fragment - if not check_contents: - raise TLSNSSLError("Cannot serialize record, data incomplete", self.fragment) - if not len(self.fragment) == self.length: - raise TLSNSSLError("Incorrect record length",self.fragment) - self.serialized = self.content_type + self. content_version + bi2ba(self.length,fixed=2) \ - + self.fragment - -class TLSHandshake(object): - def __init__(self,serialized=None,handshake_type=None): - self.handshake_type = handshake_type - if serialized: - self.serialized = serialized - if not self.handshake_type == self.serialized[0]: - raise TLSNSSLError("Mismatched handshake type",self.handshake_type+self.serialized[0]) - if not self.handshake_type in [h_ch,h_sh,h_shd,h_cert,h_cke,h_fin]: - raise TLSNSSLError('Unrecognized or unimplemented handshake type',self.handshake_type) - self.handshake_record_length = ba2int(self.serialized[1:4]) - if len(self.serialized[4:]) < self.handshake_record_length: - raise TLSNSSLError('Invalid handshake message length',self.serialized[1:4]) - self.discarded = self.serialized[4+self.handshake_record_length:] - if self.discarded: - print ('Info: got a discarded data when constructing', - 'a handshake message of type: ', binascii.hexlify(self.handshake_type), - ' and discarded length was: ', len(self.discarded)) - #Note that we do *not* strip handshake headers for the serialized form; - #this is a complete, valid handshake message. - self.serialized = self.serialized[:4+self.handshake_record_length] - - def serialize(self): - self.serialized = self.handshake_type+\ - bi2ba(len(self.serialized),fixed=3)+self.serialized - - -class TLSClientHello(TLSHandshake): - def __init__(self,serialized = None,client_random = None, cipher_suites=tlsn_cipher_suites.keys(), tlsver=None): - assert not serialized, """Not implemented instantiation of client hello - with serialization; this is a client-only - TLS implementation""" - if client_random: - self.client_random = client_random - else: - cr_time = bi2ba(int(time.time())) - self.client_random = cr_time + os.urandom(28) - #last byte is session id length - self.tlsver = tlsver - self.serialized = self.tlsver + self.client_random + '\x00' - self.cipher_suites = cipher_suites - self.serialized += '\x00'+chr(2*len(self.cipher_suites)) - for a in self.cipher_suites: - self.serialized += '\x00'+chr(a) - self.serialized += '\x01\x00' #compression methods - null only - super(TLSClientHello,self).__init__(None, h_ch) - super(TLSClientHello,self).serialize() - - -class TLSServerHello(TLSHandshake): - def __init__(self,serialized = None,server_random = None, cipher_suite=None): - assert serialized, """Not implemented instantiation of server hello - without serialization; this is a client-only - TLS implementation""" - - super(TLSServerHello,self).__init__(serialized,h_sh) - self.tlsver = self.serialized[4:6] - self.server_random = self.serialized[6:38] - self.session_id_length = ba2int(self.serialized[38]) - if self.session_id_length != 0: - if not self.session_id_length == 32: - raise TLSNSSLError('Server hello contains unrecognized session id format', - self.serialized[38]) - self.session_id = self.serialized[39:71] - remainder = self.serialized[71:] - else: - remainder = self.serialized[39:] - self.session_id = None - - self.cipher_suite = ba2int(remainder[0:2]) - if not self.cipher_suite in tlsn_cipher_suites.keys(): - raise TLSNSSLError('Server chosen cipher suite not in TLS Notary allowed list: ', - str(self.cipher_suite)) - if not remainder[2:] == '\x00': - raise TLSNSSLError('Received invalid server hello compression method',remainder[2:]) - #At end of serialized instantiation, we have defined server - #random and cipher suite - - -class TLSCertificate(TLSHandshake): - def __init__(self, serialized = None): - assert serialized, """'Not implemented instantiation of certificate - without serialization; this is a client-only - TLS implementation""" - - super(TLSCertificate,self).__init__(serialized,h_cert) - #TODO we are currently reading *only* the first certificate - #in the list (tlsnotary code compares this with the browser - #as a re-use of browser PKI). It may be necessary to do a - #more detailed parsing. - #This handshake message has format: hs_cert(1), hs_msg_len(3), - #certs_list_msg_len(3), [cert1_msg_len(3), cert1, cert_msg_len(3), cert2...] - #so the first cert data starts at byte position 10 - self.cert_len = ba2int(self.serialized[7:10]) - self.asn1cert = self.serialized[10:10+self.cert_len] - #used for pagesigner: just store all the certs and certlengths - #after the initial certs_list_msg_len field - self.certs = self.serialized[7:] - - -class TLSServerHelloDone(TLSHandshake): - def __init__(self, serialized = None): - assert serialized, """Not implemented instantiation of server hello done - without serialization; this is a client-only - TLS implementation""" - super(TLSServerHelloDone,self).__init__(serialized,h_shd) - -class TLSClientKeyExchange(TLSHandshake): - def __init__(self, serialized = None, encryptedPMS=None): - assert not serialized, """Not implemented instantiation of client key exchange - with serialization; this is a client-only - TLS implementation""" - - if type(encryptedPMS) == type(long()): - self.encryptedPMS = bi2ba(encryptedPMS) #TODO zero byte bug? - #Note that the encpms is preceded by its 2-byte length - self.serialized = bi2ba(len(self.encryptedPMS),fixed=2) +self.encryptedPMS - super(TLSClientKeyExchange,self).__init__(None,h_cke) - super(TLSClientKeyExchange,self).serialize() - - -class TLSChangeCipherSpec(object): - def __init__(self,serialized=None): - if serialized: - self.serialized = serialized - if not self.serialized[0] == '\x01': - raise TLSNSSLError('Invalid change cipher spec received',self.serialized[0]) - self.discarded = self.serialized[1:] - self.serialized = self.serialized[0] - else: - self.serialized = '\x01' - -class TLSFinished(TLSHandshake): - def __init__(self,serialized=None, verify_data=None): - if serialized: - super(TLSFinished,self).__init__(serialized,h_fin) - self.validity = None - self.verify_data = self.serialized[4:] - - else: - self.serialized = verify_data - super(TLSFinished,self).__init__(None,h_fin) - super(TLSFinished,self).serialize() - - def decrypt_verify_data(self,conn): - self.encrypted = self.verify_data #the encrypted form is kept for later processing - self.validity,self.verify_data = conn.dtvm(self.verify_data,hs) - -class TLSAppData(object): - def __init__(self, serialized, encrypted=False): - #App Data is 'transparent' to the Record protocol layer - #(I borrow this slighly, ahem, opaque language from the - #RFC Section 10). This means that there is no notion of - #'length of an app data message'. Nor is there any meaning - #to the concept of 'serialization' in this context, since - #there is no structure. However the terminology is kept - #the same as other record types, for consistency. - self.serialized = serialized - self.discarded='' - def decrypt_app_data(self,conn): - self.serialized = conn.dtvm(self.serialized,rec_type=appd) - -class TLSAlert(object): - def __init__(self,serialized=None): - if serialized: - self.serialized = serialized - self.discarded='' - else: - #TODO - do we need to issue alerts? - print ("Alert creation not implemented") - - -class TLSConnectionState(object): - '''Note that this implementation of connection - state uses the pre-computed expanded keys rather - than generating the secrets within it. A corollary - of this is that there is no need for this encapsulation - for the unencrypted portion of the TLS connection, and - so this object is only initiated once TLSNotary key - expansion is performed (after negotiation with auditor). - Mac failures should be treated as fatal in TLS, but - for specific cases in TLSNotary, the mac check is delayed, - hence mac failure is returned as False rather than raising - an exception.''' - def __init__(self, cipher_suite, expanded_keys,is_client, no_enc=False, tlsver=None): - '''Provide the cipher suite as defined in the global - cipher suite list. - Currently only AES-CBC and RC4 cipher suites are - supported. - The format of expanded_keys must be as required - by the specified cipher suite. - If mac failures occur they will be flagged but - decrypted result is still made available.''' - - self.tlsver = tlsver #either TLS1.0 or 1.1 - if not self.tlsver in tls_versions: - raise TLSNSSLError("Unrecognised or invalid TLS version", self.tlsver) - self.cipher_suite = cipher_suite - self.end = 'client' if is_client else 'server' - self.mac_algo = md5 if cipher_suite == 4 else sha1 - self.hash_len = md5_hash_len if self.mac_algo == md5 else sha1_hash_len - if no_enc: - #special case - mac only processing, we don't need IV or - #enc keys, so 'expanded_keys' is just the mac_key - self.mac_key = expanded_keys - else: - #set appropriate secrets for state - self.client_mac_key,self.server_mac_key,self.client_enc_key,\ - self.server_enc_key,self.clientIV,self.serverIV = expanded_keys - self.mac_key,self.enc_key,self.IV = \ - (self.client_mac_key, self.client_enc_key, self.clientIV) \ - if self.end=='client' else \ - (self.server_mac_key,self.server_enc_key,self.serverIV) - self.seq_no = 0 - - def build_record_mac(self, cleartext, record_type): - seq_no_bytes = bi2ba(self.seq_no,fixed=8) - if not self.mac_key: - raise TLSNSSLError("Failed to build mac; mac key is missing") - fragment_len = bi2ba(len(cleartext),fixed=2) - record_mac = hmac.new(self.mac_key,seq_no_bytes + record_type + \ - self.tlsver+fragment_len + cleartext, self.mac_algo).digest() - return record_mac - - def mte(self,cleartext,rec_type): - return self.rc4_me(cleartext,rec_type) if self.cipher_suite in [4,5] \ - else self.aes_cbc_mpe(cleartext,rec_type) - - def dtvm(self,ciphertext,rec_type,return_mac=False): - '''Decrypt then verify mac''' - return self.rc4_dm(ciphertext,rec_type,return_mac) if self.cipher_suite in [4,5] \ - else self.aes_cbc_dum(ciphertext, rec_type,return_mac) - - def verify_mac(self, cleartext, rec_type, return_mac=False): - received_mac = cleartext[-self.hash_len:] - check_mac = self.build_record_mac(cleartext[:-self.hash_len], rec_type) - self.seq_no += 1 - if return_mac: - return (received_mac==check_mac, cleartext[:-self.hash_len],received_mac) - else: - return (received_mac==check_mac,cleartext[:-self.hash_len]) - - def rc4_me(self,cleartext,rec_type): - #mac - cleartext = cleartext + self.build_record_mac(cleartext,rec_type) - #encrypt - #note: for RC4, the 'IV' is None at the start, - #which tells the RC4 to initialize state - ciphertext, self.IV = rc4_crypt(bytearray(cleartext),self.enc_key,self.IV) - self.seq_no += 1 - return ciphertext - - def rc4_dm(self,ciphertext, rec_type, return_mac=False): - #decrypt - plaintext, self.IV = rc4_crypt(bytearray(ciphertext),self.enc_key,self.IV) - if return_mac: - print ('IV inside rc4dm: ', self.IV) - #mac check - return self.verify_mac(plaintext, rec_type,return_mac) - - def aes_cbc_mpe(self,cleartext,rec_type): - #mac - cleartext = cleartext + self.build_record_mac(cleartext,rec_type) - #pad - cleartext_list,enc_list,iv_list = \ - [map(ord,str(x)) for x in [cleartext,self.enc_key,self.IV]] - padded_cleartext = cleartext + get_cbc_padding(len(cleartext)) - #encrypt - moo = AESModeOfOperation() - mode, orig_len, ciphertext = \ - moo.encrypt( str(padded_cleartext), moo.modeOfOperation['CBC'], \ - enc_list, len(self.enc_key), iv_list) - if self.tlsver == tls_ver_1_0: - self.IV = bytearray('').join(map(chr,ciphertext[-aes_block_size:])) - elif self.tlsver == tls_ver_1_1: - #the per-record IV is now sent as the start of the fragment - ciphertext = self.IV + bytearray(ciphertext) - self.IV = os.urandom(aes_block_size) #use a new, random IV for each record - self.seq_no += 1 - return bytearray(ciphertext) - - def aes_cbc_dum(self,ciphertext,rec_type, return_mac=False): - #decrypt - if self.tlsver == tls_ver_1_1: - self.IV = ciphertext[:aes_block_size] - ciphertext = ciphertext[aes_block_size:] - #else self.IV already stores the correct IV - ciphertext_list,enc_list,iv_list = \ - [map(ord,x) for x in [ciphertext,str(self.enc_key),str(self.IV)]] - moo = AESModeOfOperation() - key_size = tlsn_cipher_suites[self.cipher_suite][4] - decrypted = moo.decrypt(ciphertext_list,len(ciphertext),\ - moo.modeOfOperation['CBC'],enc_list,key_size,iv_list) - if self.tlsver== tls_ver_1_0: - self.IV = ciphertext[-aes_block_size:] - #unpad - plaintext = cbc_unpad(decrypted) - #mac check - return self.verify_mac(plaintext, rec_type, return_mac) - -#dictionary to allow dynamic decoding of a handshake message in a record fragment -hs_type_map = {h_ch:TLSClientHello,h_sh:TLSServerHello,h_cert:TLSCertificate,\ - h_cke:TLSClientKeyExchange,h_fin:TLSFinished,h_shd:TLSServerHelloDone} - -def tls_sender(sckt,msg,rec_type,conn=None, tlsver=None): - '''Wrap a message in a TLS Record before sending - If conn argument provided, encrypt the payload - before sending''' - if conn: - msg = conn.mte(msg,rec_type) - rec = TLSRecord(rec_type, f=msg, tlsver=tlsver) - sckt.send(rec.serialized) - -class TLSNClientSession(object): - def __init__(self,server=None,port=443,ccs=None, tlsver=None): - self.server_name = server - self.ssl_port = port - self.initial_tlsver = tlsver - #current TLS version may be downgraded - self.tlsver = tlsver - self.n_auditee_entropy = 12 - self.n_auditor_entropy = 9 - self.auditor_secret = None - self.auditee_secret = None - self.auditor_padding_secret = None - self.auditee_padding_secret = None - self.pms1 = None #auditee's - self.pms2 = None #auditor's - self.enc_first_half_pms = None - self.enc_second_half_pms = None - self.enc_pms = None - #client hello, server hello, certificate, server hello done, - #client key exchange, change cipher spec, finished - self.handshake_messages = [None] * 7 - self.handshake_hash_sha = None - self.handshake_hash_md5 = None - self.p_auditor = None - self.p_auditee = None - self.master_secret_half_auditor = None - self.master_secret_half_auditee = None - self.p_master_secret_auditor = None - self.p_master_secret_auditee = None - self.server_mac_key = None - self.client_mac_key = None - self.server_enc_key = None - self.client_enc_key = None - self.serverIV = None - self.clientIV = None - self.server_certificate = None - self.server_modulus = None - self.server_exponent = 65537 - self.server_mod_length = None - - #array of ciphertexts from each SSL record - self.server_response_app_data=[] - - #unexpected app data is defined as that received after - #server finished, but before client request. This will - #be decrypted, but not included in plaintext result. - self.unexpected_server_app_data_count = 0 - self.unexpected_server_app_data_raw = '' - - #the HMAC required to construct the verify data - #for the server Finished record - self.verify_hmac_for_server_finished = None - - #for certain testing cases we want to limit the - #choice of cipher suite to 1, otherwise we use - #the globally defined standard 4: - self.offered_cipher_suites = \ - {k: v for k,v in tlsn_cipher_suites.items() if k==ccs} \ - if ccs else tlsn_cipher_suites - - self.chosen_cipher_suite = ccs - - - def dump(self): - return_str='Session state dump: \n' - for k,v in self.__dict__.iteritems(): - return_str += k + '\n' - if type(v) == type(str()): - return_str += 'string: len:'+str(len(v)) + '\n' - return_str += v + '\n' - elif type(v) == type(bytearray()): - return_str += 'bytearray: len:'+str(len(v)) + '\n' - return_str += binascii.hexlify(v) + '\n' - else: - return_str += str(v) + '\n' - return return_str - - def start_handshake(self,sckt): - #replace tlsnotary-auditee start_tls() - self.client_hello = TLSClientHello(cipher_suites=self.offered_cipher_suites.keys(), tlsver=self.tlsver) - self.handshake_messages[0]= self.client_hello.serialized - tls_sender(sckt,self.handshake_messages[0],hs, tlsver=self.tlsver) - #the handshake messages: server hello, certificate, server hello done - #may be packed in arbitrary groupings into the TLS records, since - #they are all the same record type (Handshake) - handshake_objects=[] - while len(handshake_objects) < 3: - rspns = recv_socket(sckt,True) - records, remaining = tls_record_decoder(rspns) - if remaining: - raise TLSNSSLError("Server sent spurious non-TLS response", remaining[:20]) - for rec in records: - handshake_objects.extend(tls_record_fragment_decoder(hs,rec.fragment)) - if not [h_sh,h_cert,h_shd] == [x.handshake_type for x in handshake_objects]: - raise TLSNSSLError("Server failed to send server hello, certificate, server hello done", - ''.join([x.handshake_type for x in handshake_objects])) - self.server_hello, self.server_certificate, self.server_hello_done = handshake_objects - - self.handshake_messages[1:4] = [x.serialized for x in handshake_objects] - - self.client_random = self.client_hello.client_random - self.server_random = self.server_hello.server_random - self.chosen_cipher_suite = self.server_hello.cipher_suite - - if self.server_hello.tlsver != self.tlsver: - if self.server_hello.tlsver =='\x03\x01' and self.tlsver == '\x03\x02': - #server requested downgrade - #note that this can only happen *before* a TLSConnectionState object is - #initialised, so the tlsversion used in that object will be synchronised. - #TODO: error checking to make sure this is the case. - self.tlsver = bytearray('\x03\x01') - else: - raise TLSNSSLError("Failed to negotiate valid TLS version with server",self.server_hello.tlsver) - - #for 'full' sessions, we can immediately precompute everything except - #for finished, including the handshake hashes used to calc the Finished - if self.enc_pms: - self.client_key_exchange = TLSClientKeyExchange(serialized=None,encryptedPMS=self.enc_pms) - self.change_cipher_spec = TLSChangeCipherSpec() - self.handshake_messages[4] = self.client_key_exchange.serialized - self.handshake_messages[5] = self.change_cipher_spec.serialized - self.set_handshake_hashes() - - def get_verify_data_for_finished(self,sha_verify=None,md5_verify=None,\ - half=1,provided_p_value=None,is_for_client=True): - if not (sha_verify and md5_verify): - sha_verify, md5_verify = self.handshake_hash_sha, self.handshake_hash_md5 - - if not provided_p_value: - #we calculate the verify data from the raw handshake messages - if self.handshake_messages[:6] != filter(None,self.handshake_messages[:6]): - #whole handshake is too big to print here; will be seen in debug dump. - raise TLSNSSLError('Handshake data was not complete, could not calculate verify data') - label = 'client finished' if is_for_client else 'server finished' - seed = md5_verify + sha_verify - ms = self.master_secret_half_auditor+self.master_secret_half_auditee - #we don't store the verify data locally, just return it - return tls_10_prf(label+seed,req_bytes=12,full_secret=ms)[2] - - #we calculate based on provided hmac by the other party - return xor(provided_p_value[:12],\ - self.get_verify_hmac(sha_verify=sha_verify,md5_verify=md5_verify,\ - half=half,is_for_client=is_for_client)) - - def set_handshake_hashes(self,server=False): - '''An obscure but important detail: the hashes used - for the server Finished use the *unencrypted* client finished; - in the current model this is automatic since the TLSFinished objects - store the verify data unencrypted.''' - handshake_data = bytearray('').join(self.handshake_messages[:5]) - if server: - handshake_data += self.handshake_messages[6] #client finished - handshake_hash_sha = sha1(handshake_data).digest() - handshake_hash_md5 = md5(handshake_data).digest() - if not server: - self.handshake_hash_sha,self.handshake_hash_md5 = handshake_hash_sha,handshake_hash_md5 - return (handshake_hash_sha,handshake_hash_md5) - - def send_client_finished(self, sckt, provided_p_value): - '''Creates the client finished handshake message without - access to the master secret, but on the P-hash data provided - by the auditor. Then receives the server ccs and finished.''' - verify_data = self.get_verify_data_for_finished(provided_p_value=provided_p_value,half=2) - self.client_finished = TLSFinished(serialized=None, verify_data=verify_data) - self.handshake_messages[6] = self.client_finished.serialized - #Note that the three messages cannot be packed into one record; - #change cipher spec is *not* a handshake message - tls_sender(sckt,self.handshake_messages[4],hs, tlsver=self.tlsver) - tls_sender(sckt,self.handshake_messages[5],chcis, tlsver=self.tlsver) - #client finished must be sent encrypted - tls_sender(sckt,self.handshake_messages[6],hs, conn=self.client_connection_state, tlsver=self.tlsver) - records=[] - while len(records) < 2: #conceivably, might want an extra timeout for naughty servers!? - rspns = recv_socket(sckt,True) - x, remaining = tls_record_decoder(rspns) - if remaining: - raise TLSNSSLError("Server sent spurious non-TLS response", remaining[:20]) - records.extend(x) - - #this strange-looking 'filtering' approach is based on observation - #in practice of CCS being repeated (and possible also Finished, although I don't remember) - sccs = [x for x in records if x.content_type == chcis][0] - self.server_ccs = tls_record_fragment_decoder(chcis,sccs.fragment)[0] - sf = [x for x in records if x.content_type == hs][0] - self.server_finished = tls_record_fragment_decoder(hs,sf.fragment, \ - conn=self.server_connection_state, \ - ignore_mac=True)[0] - if not self.server_finished.handshake_type == h_fin: - raise TLSNSSLError("Server failed to send Finished" , self.server_finished.handshake_type) - #store the IV immediately after decrypting Finished; this will be needed - #by auditor in order to replay the decryption - self.IV_after_finished = self.server_connection_state.IV - - if len(records) > 2: - #we received extra records; are they app data? if not we have bigger problems.. - for x in records: - if x.content_type in [chcis,hs]: continue - if x.content_type != appd: - #this is too much; if it's an Alert or something, we give up. - raise TLSNSSLError("Received unexpected TLS record before client request.", x.content_type) - #store any app data records, in sequence, prior to processing all app data. - self.server_response_app_data.extend(tls_record_fragment_decoder(appd,x.fragment)) - #We have to store the raw form of these unexpected app data records, since they will - #be needed by auditor. - self.unexpected_server_app_data_raw += x.serialized #the full record serialization (otw bytes) - self.unexpected_server_app_data_count += 1 #note: each appd record contains ONE appd message - - - def complete_handshake(self,sckt,rsapms2): - '''Called from prepare_pms(). For auditee only, - who passes the second half of the encrypted - PMS product (see TLSNotary.pdf under documentation).''' - self.extract_mod_and_exp() - self.set_auditee_secret() - self.set_master_secret_half() #default values means full MS created - self.do_key_expansion() - self.enc_second_half_pms = ba2int(rsapms2) - self.set_enc_first_half_pms() - self.set_encrypted_pms() - self.client_key_exchange = TLSClientKeyExchange(encryptedPMS=self.enc_pms) - self.handshake_messages[4] = self.client_key_exchange.serialized - self.change_cipher_spec = TLSChangeCipherSpec() - self.handshake_messages[5] = self.change_cipher_spec.serialized - self.set_handshake_hashes() - - client_verify_data = self.get_verify_data_for_finished(\ - sha_verify=self.handshake_hash_sha, - md5_verify=self.handshake_hash_md5,half=1) - - self.client_finished = TLSFinished(verify_data=client_verify_data) - self.handshake_messages[6] = self.client_finished.serialized - #Note that the three messages cannot be packed into one record; - #change cipher spec is *not* a handshake message - tls_sender(sckt,self.handshake_messages[4],hs, tlsver=self.tlsver) - tls_sender(sckt,self.handshake_messages[5],chcis, tlsver=self.tlsver) - #client finished must be sent encrypted - tls_sender(sckt,self.handshake_messages[6],hs, conn=self.client_connection_state, tlsver=self.tlsver) - return recv_socket(sckt,True) - - def extract_mod_and_exp(self, certDER=None, sn=False): - DER_cert_data = certDER if certDER else self.server_certificate.asn1cert - rv = decoder.decode(DER_cert_data, asn1Spec=univ.Sequence()) - if sn: - self.server_name = str(rv[0].getComponentByPosition(0).getComponentByPosition(5).getComponentByPosition(4).getComponentByPosition(0).getComponentByPosition(1)) - bit_string = rv[0].getComponentByPosition(0).getComponentByPosition(6).getComponentByPosition(1) - #bit_string is a list of ints, like [01110001010101000...] - #convert it into into a string '01110001010101000...' - string_of_bits = '' - for bit in bit_string: - bit_as_str = str(bit) - string_of_bits += bit_as_str - #treat every 8 chars as an int and pack the ints into a bytearray - ba = bytearray() - for i in range(0, len(string_of_bits)/8): - onebyte = string_of_bits[i*8 : (i+1)*8] - oneint = int(onebyte, base=2) - ba.append(oneint) - #decoding the nested sequence - rv = decoder.decode(str(ba), asn1Spec=univ.Sequence()) - exponent = rv[0].getComponentByPosition(1) - modulus = rv[0].getComponentByPosition(0) - self.server_modulus = int(modulus) - self.server_exponent = int(exponent) - n = bi2ba(self.server_modulus) - modulus_len_int = len(n) - self.server_mod_length = bi2ba(modulus_len_int,fixed=2) - - return (self.server_modulus,self.server_exponent) - - def set_encrypted_pms(self): - if not (self.enc_first_half_pms and self.enc_second_half_pms and self.server_modulus): - raise TLSNSSLError("Failed to set encpms") - - self.enc_pms = self.enc_first_half_pms * self.enc_second_half_pms % self.server_modulus - return self.enc_pms - - def set_enc_first_half_pms(self): - if not (self.server_modulus and not self.enc_first_half_pms): - raise TLSNSSLError("Failed to set enc first half pms") - ones_length = 23 - self.pms1 = self.initial_tlsver+self.auditee_secret + ('\x00' * (24-2-self.n_auditee_entropy)) - self.enc_first_half_pms = pow(ba2int('\x02'+('\x01'*(ones_length))+\ - self.auditee_padding_secret+'\x00'+self.pms1 +'\x00'*23 + '\x01'), self.server_exponent, self.server_modulus) - - def set_auditee_secret(self): - '''Sets up the auditee's half of the preparatory - secret material to create the master secret. Note - that according to the RFC, the tls version prepended to the - premaster secret must be that used in the client hello message, - not the negotiated/downgraded version set by the server hello. - See variable tlsver_ch.''' - tlsver_ch = self.initial_tlsver - cr = self.client_random - sr = self.server_random - if not cr and sr: - raise TLSNSSLError("one of client or server random not set") - if not self.auditee_secret: - self.auditee_secret = os.urandom(self.n_auditee_entropy) - if not self.auditee_padding_secret: - self.auditee_padding_secret = os.urandom(15) - label = 'master secret' - seed = cr + sr - self.pms1 = tlsver_ch+self.auditee_secret + ('\x00' * (24-2-self.n_auditee_entropy)) - self.p_auditee = tls_10_prf(label+seed,first_half = self.pms1)[0] - #encrypted PMS has already been calculated before the audit began - return (self.p_auditee) - - def set_enc_second_half_pms(self): - if not self.server_modulus: - raise TLSNSSLError("Failed to set enc second half pms") - ones_length = 103+ba2int(self.server_mod_length)-256 - self.pms2 = self.auditor_secret + ('\x00' * (24-self.n_auditor_entropy-1)) + '\x01' - self.enc_second_half_pms = pow( ba2int('\x01'+('\x01'*(ones_length))+\ - self.auditor_padding_secret+ ('\x00'*25)+self.pms2), self.server_exponent, self.server_modulus ) - - def set_auditor_secret(self): - '''Sets up the auditor's half of the preparatory - secret material to create the master secret, and - the encrypted premaster secret. - 'secret' should be a bytearray of length n_auditor_entropy''' - cr = self.client_random - sr = self.server_random - if not cr and sr: - raise TLSNSSLError("one of client or server random not set") - if not self.auditor_secret: - self.auditor_secret = os.urandom(self.n_auditor_entropy) - if not self.auditor_padding_secret: - self.auditor_padding_secret = os.urandom(15) - label = 'master secret' - seed = cr + sr - self.pms2 = self.auditor_secret + ('\x00' * (24-self.n_auditor_entropy-1)) + '\x01' - self.p_auditor = tls_10_prf(label+seed,second_half = self.pms2)[1] - return (self.p_auditor) - - def set_master_secret_half(self,half=1,provided_p_value=None): - #non provision of p value means we use the existing p - #values to calculate the whole MS - if not provided_p_value: - self.master_secret_half_auditor = xor(self.p_auditee[:24],self.p_auditor[:24]) - self.master_secret_half_auditee = xor(self.p_auditee[24:],self.p_auditor[24:]) - return self.master_secret_half_auditor+self.master_secret_half_auditee - assert half in [1,2], "Must provide half argument as 1 or 2" - #otherwise the p value must be enough to provide one half of MS - if not len(provided_p_value)==24: - raise TLSNSSLError("Wrong length of P-hash value for half MS setting.", provided_p_value) - if half == 1: - self.master_secret_half_auditor = xor(self.p_auditor[:24],provided_p_value) - return self.master_secret_half_auditor - else: - self.master_secret_half_auditee = xor(self.p_auditee[24:],provided_p_value) - return self.master_secret_half_auditee - - def get_p_value_ms(self,ctrprty,garbage=[]): - '''Provide a list of keys that you want to 'garbageize' so as to hide - that key from the counterparty, in the array 'garbage', each number is - an index to that key in the cipher_suites dict - ''' - if not (self.server_random and self.client_random and self.chosen_cipher_suite): - raise TLSNSSLError("server random, client random or cipher suite not set.") - label = 'key expansion' - seed = self.server_random + self.client_random - expkeys_len = tlsn_cipher_suites[self.chosen_cipher_suite][-1] - if ctrprty == 'auditor': - self.p_master_secret_auditor = tls_10_prf(label+seed,req_bytes=expkeys_len,first_half=self.master_secret_half_auditor)[0] - else: - self.p_master_secret_auditee = tls_10_prf(label+seed,req_bytes=expkeys_len,second_half=self.master_secret_half_auditee)[1] - - tmp = self.p_master_secret_auditor if ctrprty=='auditor' else self.p_master_secret_auditee - for k in garbage: - if k==1: - start = 0 - else: - start = sum(tlsn_cipher_suites[self.chosen_cipher_suite][1:k]) - end = sum(tlsn_cipher_suites[self.chosen_cipher_suite][1:k+1]) - #ugh, python strings are immutable, what's the elegant way to do this? - tmp2 = tmp[:start]+os.urandom(end-start)+tmp[end:] - tmp = tmp2 - return tmp - - def do_key_expansion(self): - '''A note about partial expansions: - Often we will have sufficient information to extract particular - keys, e.g. the client keys, but not others, e.g. the server keys. - This should be handled by passing in garbage to fill out the relevant - portions of the two master secret halves. TODO find a way to make this - explicit so that querying the object will only give real keys. - ''' - cr = self.client_random - sr = self.server_random - cs = self.chosen_cipher_suite - if not cr and sr and cs: - raise TLSNSSLError("need client and server random and cipher suite") - label = 'key expansion' - seed = sr + cr - #for maximum flexibility, we will compute the sha1 or md5 hmac - #or the full keys, based on what secrets currently exist in this object - expkeys_len = tlsn_cipher_suites[cs][-1] - if self.master_secret_half_auditee: - self.p_master_secret_auditee = tls_10_prf(label+seed,req_bytes=expkeys_len,second_half=self.master_secret_half_auditee)[1] - if self.master_secret_half_auditor: - self.p_master_secret_auditor = tls_10_prf(label+seed,req_bytes=expkeys_len,first_half=self.master_secret_half_auditor)[0] - - if self.master_secret_half_auditee and self.master_secret_half_auditor: - key_expansion = tls_10_prf(label+seed,req_bytes=expkeys_len,full_secret=self.master_secret_half_auditor+\ - self.master_secret_half_auditee)[2] - elif self.p_master_secret_auditee and self.p_master_secret_auditor: - key_expansion = xor(self.p_master_secret_auditee,self.p_master_secret_auditor) - else: - raise TLSNSSLError('Cannot expand keys, insufficient data') - - #we have the raw key expansion, but want the keys. Use the data - #embedded in the cipherSuite dict to identify the boundaries. - key_accumulator = [] - ctr=0 - for i in range(6): - keySize = tlsn_cipher_suites[cs][i+1] - if keySize == 0: - key_accumulator.append(None) - else: - key_accumulator.append(key_expansion[ctr:ctr+keySize]) - ctr += keySize - - self.client_mac_key,self.server_mac_key,self.client_enc_key,\ - self.server_enc_key,self.clientIV,self.serverIV = key_accumulator - #we now have sufficient information to initialise client and server - #connection state. NOTE: Since this wipes/restarts the encryption - #connection state, a call to do_key_expansion automatically restarts - #the session. - self.client_connection_state = TLSConnectionState(cs, key_accumulator,True, False, tlsver=self.tlsver) - self.server_connection_state = TLSConnectionState(cs, key_accumulator, False, False, tlsver=self.tlsver) - return bytearray('').join(filter(None,key_accumulator)) - - def get_verify_hmac(self,sha_verify=None,md5_verify=None,half=1,is_for_client=True): - '''returns only 12 bytes of hmac''' - label = 'client finished' if is_for_client else 'server finished' - seed = md5_verify + sha_verify - if half==1: - return tls_10_prf(label+seed,req_bytes=12,first_half = self.master_secret_half_auditor)[0] - else: - return tls_10_prf(label+seed,req_bytes=12,second_half = self.master_secret_half_auditee)[1] - - def check_server_ccs_finished(self, provided_p_value): - #verify the verify data: - sha_verify,md5_verify = self.set_handshake_hashes(server=True) - verify_data_check = self.get_verify_data_for_finished(sha_verify=sha_verify, - md5_verify=md5_verify, - provided_p_value=provided_p_value, - half=2, - is_for_client=False) - if not self.server_finished.verify_data == verify_data_check: - raise TLSNSSLError("Server Finished record verify data is not valid.", - self.server_finished.verify_data+verify_data_check) - - return True - - def build_request(self, sckt, cleartext): - '''Constructs the raw bytes to send over TCP - for a given client request. Implicitly the request - will be less than 16kB and therefore only 1 SSL record. - This can in principle be used more than once.''' - self.tls_request = TLSAppData(cleartext) - tls_sender(sckt, self.tls_request.serialized, appd, conn=self.client_connection_state, tlsver=self.tlsver) - - def store_server_app_data_records(self, response): - #extract the ciphertext from the raw records as a list - #for maximum flexibility in decryption - recs, remaining = tls_record_decoder(response) - if remaining: - raise TLSNSSLError("Server sent spurious non-TLS data", remaining[:20]) - for rec in recs: - self.server_response_app_data.extend(tls_record_fragment_decoder(rec.content_type, - rec.fragment)) - - #what has been stored is a list of TLSAppData objects in which - #the .serialized property is still encrypted. - - def get_ciphertexts(self): - '''for use with aes-js''' - assert len(self.server_response_app_data),"Could not process the server response, no ciphertext found." - if not self.chosen_cipher_suite in [47,53]: #AES-CBC - raise TLSNSSLError("non-AES cipher suite.", bi2ba(self.chosen_cipher_suite)) - ciphertexts = [] #each item contains a tuple (ciphertext, encryption_key, iv) - last_ciphertext_block = self.IV_after_finished - for appdata in self.server_response_app_data: - if self.tlsver == tls_ver_1_0: - ciphertexts.append( (appdata.serialized, - self.server_connection_state.enc_key, - last_ciphertext_block) ) - last_ciphertext_block = appdata.serialized[-aes_block_size:] - elif self.tlsver == tls_ver_1_1: - ciphertexts.append((appdata.serialized[aes_block_size:], - self.server_connection_state.enc_key, - appdata.serialized[:aes_block_size])) - return ciphertexts - - def mac_check_plaintexts(self, plaintexts): - '''for use with aes-js; given the plaintext - output from decryption, we check the macs of the plaintext - records. To do this a special non-encryption form of the - ConnectionState is built which only checks macs.''' - mac_stripped_plaintext = '' - #build a dummy connection state with null encryption - #and run each plaintext through, checking the mac each time - dummy_connection_state = TLSConnectionState(self.chosen_cipher_suite, - self.server_mac_key, - is_client=False, no_enc=True, tlsver=self.tlsver) - validity, fintext = \ - dummy_connection_state.verify_mac(self.server_finished.serialized+\ - self.server_finished.recorded_mac,hs) - if not validity: - raise TLSNSSLError("Server finished mac check failed", self.server_finished.recorded_mac) - #NB Note the verify data was verified earlier, no need to do it again here - for i,pt in enumerate(plaintexts): - if type(self.server_response_app_data[i]) is TLSAppData: - rt = appd - elif type(self.server_response_app_data[i]) is TLSAlert: - rt = alrt - else: - print ("Info: Got an unexpected record type in the server response: ", - type(self.server_response_app_data[i])) - - validity, stripped_pt = dummy_connection_state.verify_mac(pt,rt) - if not validity: - raise TLSNSSLError("Fatal error - invalid mac, data not authenticated!",pt[:20]) - - #plaintext is only included if it's appdata not alerts, and if it's - #not part of the ignored set (the set that was delivered pre-client-request) - if rt==appd and i > self.unexpected_server_app_data_count-1: - mac_stripped_plaintext += stripped_pt - elif rt==alrt: - print ("Info: alert received, decrypted: ", binascii.hexlify(stripped_pt)) - - return mac_stripped_plaintext - - def mac_check_server_finished(self): - '''For non-AES-JS processing. - #Note server connection state has been reset after do_key_expansion - #(which was done to correct server mac key), so state is initialised - #correctly).''' - validity, plaintext = \ - self.server_connection_state.dtvm(self.server_finished.encrypted,hs) - #now sequence number and IV are correctly initialised for the app data - return validity - - def process_server_app_data_records(self,is_for_auditor=False): - '''Using the encrypted records in self.server_response_ciphertexts, - containing the response from - the server to a GET or POST request (the *first* request after - the handshake), this function will process the response one record - at a time. Each of these records is decrypted and reassembled - into the plaintext form of the response. The plaintext is returned - along with the number of record mac failures (more than zero means - the response is unauthenticated/corrupted). - ''' - bad_record_mac = 0 - if not is_for_auditor: - #decrypt and verify mac of server finished as normal - if not self.mac_check_server_finished() == True: - bad_record_mac += 1 - else: - #auditor needs to reset the state of the server_connection_state - #without actually processing the server finished (he doesn't have it) - self.server_connection_state.seq_no += 1 - self.server_connection_state.IV = self.IV_after_finished - - if not len(self.server_response_app_data): - raise TLSNSSLError("Could not process the server response, no ciphertext found.") - plaintexts = '' - for i,ciphertext in enumerate(self.server_response_app_data): - if type(ciphertext) is TLSAppData: - rt = appd - elif type(ciphertext) is TLSAlert: - rt = alrt - else: - raise TLSNSSLError("Server response contained unexpected record type ") - validity, plaintext = self.server_connection_state.dtvm(ciphertext.serialized,rt) - if not validity==True: - bad_record_mac += 1 - #plaintext is only included if it's appdata not alerts, and if it's - #not part of the ignored set (the set that was delivered pre-client-request) - if rt== appd and i>self.unexpected_server_app_data_count-1: - plaintexts += plaintext - - return (plaintexts, bad_record_mac) - -def get_cbc_padding(data_length): - req_padding = aes_block_size - data_length % aes_block_size - return chr(req_padding-1) * req_padding - -def cbc_unpad(pt): - '''Given binary string pt, return - unpadded string, raise fatal exception - if padding format is not valid''' - pad_len = ba2int(pt[-1]) - #verify the padding - if not all(pad_len == x for x in map(ord,pt[-pad_len-1:-1])): - raise TLSNSSLError("Invalid CBC padding.", pt) - return pt[:-(pad_len+1)] - -def rc4_crypt(data, key, state=None): - """RC4 algorithm. - Symmetric, so performs encryption and decryption - 'state', if passed, is a tuple of three values, - box (a bytearray), x and y (integers), allowing - restart of the algorithm from an intermediate point. - This is necessary since stream ciphers - in TLS use the final state of the cipher at the end - of one record to initialise the next record (see RFC 2246).""" - if not state: - x = 0 - box = range(256) - for i in range(256): - x = (x + box[i] + key[i % len(key)]) % 256 - box[i], box[x] = box[x], box[i] - x = y = 0 - else: - box,x,y = state - - out = [] - for char in data: - x = (x + 1) % 256 - y = (y + box[x]) % 256 - box[x], box[y] = box[y], box[x] - out.append(chr(char ^ box[(box[x] + box[y]) % 256])) - out_state = (box, x, y) - return (''.join(out), out_state ) - -def rc4_state_to_bytearray(state): - box = state[0][:] - x,y = state[1:3] - box.extend([x,y]) - return bytearray('').join(map(chr,box)) - -def tls_10_prf(seed, req_bytes = 48, first_half=None,second_half=None,full_secret=None): - ''' - Calculates all or part of the pseudo random function PRF - as defined in the TLS 1.0 RFC 2246 Section 5. If only first_half or - second_half are provided, then the appropriate HMAC is returned - as the first or second element of the returned tuple respectively. - If both are provided, the full result of PRF is provided also in - the third element of the returned tuple. - For maximum clarity, variable names correspond to those used in the RFC. - Notes: - The caller should provide one or other but not both of first_half and - second_half - the alternative is to provide full_secret. This is because - the algorithm for splitting into two halves as described in the RFC, - which varies depending on whether the secret length is odd or even, - cannot be correctly deduced from two halves. - ''' - #sanity checks, (see choices of how to provide secrets under 'Notes' above) - if not first_half and not second_half and not full_secret: - raise TLSNSSLError("Error in TLSPRF: at least one half of the secret is required.") - if (full_secret and first_half) or (full_secret and second_half): - raise TLSNSSLError("Error in TLSPRF: both full and half secrets should not be provided.") - if first_half and second_half: - raise TLSNSSLError("Error in TLSPRF: please provide the secret in the parameter full_secret.") - - P_MD5 = P_SHA_1 = PRF = None - - #split the secret into two halves if necessary - if full_secret: - L_S = len(full_secret) - L_S1 = L_S2 = int(math.ceil(L_S/2)) - first_half = full_secret[:L_S1] - second_half = full_secret[L_S2:] - - #To calculate P_MD5, we need at most floor(req_bytes/md5_hash_len) iterations - #of 'A'. If req_bytes is a multiple of md5_hash_len(16), we will use - #0 bytes of the final iteration, otherwise we will use 1-15 bytes of it. - #Note that A[0] is actually A(1) in the RFC, since A(0) in the RFC is the seed. - if first_half: - A=[hmac.new(first_half,seed,md5).digest()] - for i in range(1,int(req_bytes/md5_hash_len)+1): - A.append(hmac.new(first_half,A[len(A)-1],md5).digest()) - - md5_P_hash = '' - for x in A: - md5_P_hash += hmac.new(first_half,x+seed,md5).digest() - - P_MD5 = md5_P_hash[:req_bytes] - - #To calculate P_SHA_1, we need at most floor(req_bytes/sha1_hash_len) iterations - #of 'A'. If req_bytes is a multiple of sha1_hash_len(20), we will use - #0 bytes of the final iteration, otherwise we will use 1-19 bytes of it. - #Note that A[0] is actually A(1) in the RFC, since A(0) in the RFC is the seed. - if second_half: - A=[hmac.new(second_half,seed,sha1).digest()] - for i in range(1,int(req_bytes/sha1_hash_len)+1): - A.append(hmac.new(second_half,A[len(A)-1],sha1).digest()) - - sha1_P_hash = '' - for x in A: - sha1_P_hash += hmac.new(second_half,x+seed,sha1).digest() - - P_SHA_1 = sha1_P_hash[:req_bytes] - - if full_secret: - PRF = xor(P_MD5,P_SHA_1) - - return (P_MD5, P_SHA_1, PRF) - -#*********************END TLS CODE*************************************************** - diff --git a/src/shared/tlsnotary.ini b/src/shared/tlsnotary.ini deleted file mode 100644 index eaaf38d..0000000 --- a/src/shared/tlsnotary.ini +++ /dev/null @@ -1,22 +0,0 @@ -[Notary] -server_name = 54.158.251.14 -server_port = 10011 - -[SSL] -#NOTE: Do *not* modify this list of websites unless -#your auditor tells you to. They are meant -#to be highly trusted websites that both sides can use -#to test out the secret negotiation process. If you -#modify this list, your initial connection to the auditor -#may fail. -reliable_sites = whatsapp.com,wordpress.org,vimeo.com,w3.org,digg.com,dropbox.com,archive.org,mail.ru,360.cn,netflix.com -reliable_sites_ssl_ports = 443,443,443,443,443,443,443,443,443,443 -[General] -msg_chunk_size = 110 -tcp_socket_timeout = 20 -server_response_timeout = 3 -gzip_disabled = 0 -prevent_render = 0 -decrypt_with_slowaes = 1 -use_paillier_scheme = 0 -tls_11 = 1

RmehxUZV@Cr2Ft*KJX}jo+ck@? zxFdTI@lRsdjC0d|k{@(VEWtUH-)(krtDPvCHlL9XtCn+FeRlkEYvET8om)AZ_3_-Z z9|1AQ^jR&P(pSrC0+|C0N=b=nNAa5XOS>QK)wughzoNMgvO*o*f?z0(K~>~$U_J(6 zT(a}dJ5k3?@=iG^c_6~X$FUt3KEkDU(lI8o)pff^6xXZ;U7JlCeQ$ZHChqUe8h*D$ zoH^_FK^`^DVH22qN3Qgebw~4)^?ZsCvOtFbxbl$#*BI%F;=s1aE1*vT_t%y$QoS2j zivO&%CJ;VOVg@k0ScXNwcG}eox}d;6)0f0NEDDz*crq9`_&h0U$ROkbl*SzqRtP$CZMdAE~UyH8uv2`VAUS<~4 z<6MZsbga4V?IMonx+P)rG~*Vv2SJR<8F`BYMHnJuAI`4_Za@_;y`6-2Mfs&(rre&@ zByK%thk0>-i@9DV2=BdRK7Y*s2_0W>^760dA1G$ zl3gAAK1#FYl*=-}F}SmQa83I$e}0gF%cbvxvAkfegq7eE@_9zDRi?E+3bn- zeFP^h8FeOq3F7+7K0>-VBB$C#KEL|3d-Md$IBU6krB8Mo73L19N3XFg_?tQ`ebFiT zlAQG2e_kkTSii{oHe`xWMilIl=aqGE<9}IudnsIr-;Ck341b;J4*JQ$m%>3DS^Ema z{P7R4uGz&uTU|vpm)C^dipyvC>j}ukat_HpC@$}pz5X)t&fIA!Y1BGnXUn(1bOX+D zUdPJfWV=?u<;0HX8_Sn@Q~$H~*iOHfTx+90#=nU~yWOTIn0Z|4gVTM(JLUzBH>OQK zav+qej$erNAtS{Tvo!!dKWF17Vp^@iq@pi=0ah>;Xb`8tIX zak_3=cU!rY1~IrV)l(k*I=5d|O^lZS>KX`STy;)0w@C+`EUhl`B_>ZI84edOMi>3^ zoa;0c)x9D%tmufT=acVtY#aNpw_J9|I-48E?`&(MF5U7P&ilgLSXQkluRxzI4S2NM zIunuE!etc#B-Ke_)WNL+}o@J zqr6eiuf6_kw=or(N?p3Nu}w@}rN!RvP#EkCb}8w^qaC9|Y3OZ7p^-9bDd}5l{G!y~ zUXf*S3N>Bz@@e}@o?6$IU*uYDc{N>kt=DB<1@=O@6qehH>DdGL96E@+m*=zpsJajg$aD@jbamuV9{F`^d zqDgA*JfasJW;5$}#;<$T65lv=HZ6HRx~Z9&l$VjS?kYSX(TI7sNNL zxYbXc51VbaTJ-On7)$Gxpo!yc7_W!r)<~f2!dY8z0BiFKEo-S?MP@NFq*?L92%=&l zX{2D8!FK2pv=Z!}X{LnSJ3Y8V`_|h1=^MA&ksV8pEZsr&6Fay`Ve`rEB>@MM#G_kc z@qfu#M*tiLEG37w;*ww;n}mlH49winiMr+By1R}$_k>p38^86$G_$rZ<6Vuc`LaVc za^@^=9rO-hr#mZiE9#%%8BpbcZA4@%)|{z2T+cKvJB{v7&#RQ10i(ZT-?B-+%A%!i zQ=M5GTV_vx4)YisDV&w_urhSrcY9|B$xC%O&H9+Zd&N-+J&3<7eT>`1Yw^t15?12k z_H2{Eyo5z72z6sTAnjIQX zbX*9$Zg0Ae<1o3B?{?XZXLs{Y$>{8Kq%&C;07|MDGDXbp&{X9eWfU$hE8n&LDcs?D zScSraxQw2r+_g;%D;1`JMn`BkH3<1n=9zNX1M1Xy4tsWN!_u@Yr zA@3yvIOEO@2kKSAB3q}7{AUTK$(Ap`>|(=y?OZYa@mClB)D2Rq9+g&a6Z0d|5v8)P zbP>OQuCR(X>Ot&#%K6$3qu|sy-}b9OR#@koJ|Ra$TQtrB2qXTdq5KcJ_$0)^8w;&9 zF15i&v;Qu!JUvP!vxNP;xJkInb!)j$21B?2QxofGy=aZ1x{4g8!c`B_>Pc@&M(324 zN}k2}?b~ba1UMg&-<9}L6l;8q>!PVgu;A4o>346pjk~tzyjGm;`}RJZ=@{tMV*fPV z1}qyVO%QFEc_QVS8cvDb^B=061*~^x-LTAYJQ$n-S_UL#hB6!m6%&J!AmHI{ zEywD;-VA-~1sEvD;-Zo=+6iNdodAsVgZ~&<<4ObK$4j2L%7j%Pu=eUAq@&S&|3=l3 zZrC+k#I22sBbZLJrt77yi6J8WC zQ~U*3{IvcEOL#aabCqqV>fOo$qs(>L-1nWqCMTwfd)j`{zRFtpMng+$)%*HtkucSi zB&-5tjM$+9`)#7h4DeT`c%JJyk}q|i4Jr7n5!6f$G(XgA2b!HPHsBiz14f;~U}1ov3Dnk~)q5?D@A`;cNdB-bm!Phv@g5R@hTlF_iRUk;-w6%Iuon#{P=zO}g*baG7s=fXwQdlHQ{IXjk(ZtYQ11TIwge4a^LO zif8`K2pm&|(}M?cRqd&s_KG$J%wq-u1jNiblT5U!{sR{maV#^ZC&PFQUfW# zu{M0KB0+wI-*hb*uu(MYqG-z;RRUyLT+z^_V_D8{%T;Z+73sfk*j$P2Ti!I=*3Oid zRta&XfNdc%+!qS>Nzty{M4<4oQs+l_=~O>U#fIyNAyO=G{_&9BQn!?tA)_CfkGCX) zS?YZl*T-1$fz$i{GI)rVWPGK$-+)-KZYFbsR98Epx%*awMW}^s9j#>I@`X;X&T?|6 zUHiLV_cZ664N}_}omJ(j3VFuxAFi{107~p?aHgP6?y478wd0<=oDVN-scKKZ=ygdp zYbw5da-IbyF>vzoK5)|46`4$qJwGA;C**ASL|X-d0O;NE^^2;w@JPSED_=nOEQ*Y*_Pm628b&v3Omv9Vg@ z9|Wt<>+iEpj|LTujFL>hQtmQ17euF)joW{_LZ}BFnJT7nq#U zEv<=erdLTJD#A@x0u(DD912uS2w=H^B5H(-fb29ci=700M2w=fUO&P>WZ?vtQj%s! z&e<+9D3j^W?MX|!ME z`9dTS^T-a|^|j|7gCjy}(S5?6*Rx1N9Y+dIc-yi+s)^ka(2CN3BDb20Bz8-Ktm>z9 zG%-{v#R8y6AgtpUP9`U|A`}D9$eA?`T`O@;RHRm@xksf>^dx8HQf(u~%9+_Tb$JRQ zcV%e;@7#VQ^Uh15TZK3~BFIYmhI@nW_N<@Q!K+CZ>59Q&M2C1$bRsP_?(a!VC0FKK zl+Zt{poF+u> z70aBgH+O9CfgA7#F)t8VtFoE*v5k4gV_T49A{3t0(D_EN(7aCl(}p`3>kQYR0)(9E zjD|7>*w;YyNOe*~wU@K=JP?Sz?}>D1kPfRwn?`vR?8b-Fj7At&d1FMaOYJALxGl7E z*9V=2$z{#E^s13nYB=~-Y}mRSpA?p-;E!t#1cN8F$J4OzSTV@%po}_;2q->gK+%D* zt)_CYGM{&n4s)77L{0v&?k*azMt}l6HMd65*blkp7fg1${ayCs&R;Jt>ym#@`(F~9YG1v5TFjb`C7+DuXWInO3h1hP(uirGp zJ3oO;Bw$8&@bS?zU3jkQ2zu3BcMy((;y!yb!2SIaTn9vrk3y$IFPQR%uUn(_Y+XKv zFKQcayFvV(az_|Fq1YX=8Axk;W8FJrNSU{+!hs*qRqG0d#y1JMf8^oN6uVSQn02>3 zXW?ux>?<17=p(xox2#t*R+5mRfL+1QEK00C`ke_;hM#N`UKkC_GL`%2CYg z?v_o^maH1I10>$pkm<@|=x7}@@lr$c$Rko~o+f%DIB)y+Imj^CX_;JmSe&5lRLDe( zQZy%6=3pW%$SV9DS-}pjd1Z<{Y45O3v}C!VLP9J?0sbfk=)Y#Q1`U1E+ z8c2voXh8`9rsH`w#AS*k8yC@KJOQ=?1;%Lp8|&jA((;-SlsC-}@T}j9f5!;-`yP`a zGO!*VKKkj|ZDx0FWObbARmRG1iY$7;0j*oOxwY+bc1M?kw1F5#X7E*f_lb*T@t< zZV|!ML&^tAE7`==GYn}B?%=r8ioBZU9#me#Cp2hHpSSSji9DL)StX|iP732H6Wq$h z-sm`FD1x+(n@W>THOeFC93odGODu~FQ(_-}7*@EUvYHvrBKwycx6*1=uJR(Ldtpoo zVGQ%?TRm2%jCia5_oGwJ(xec{li^*F-lf$00R2YPj+%e(8j+8*CX5(H9SOo!KExOQ z_xn?oS;r}&u5sQq|By8z{poy-Da6%{wpPkYmsf$s%lkggBmWi5bfrwzOkVy~WLm1M zs{*^LT6qUxmU7Xq%c8?=%!i{}Sp}??BmT9Z#c1%p`e9aIObuOXd`3s}2*B+i1=5Z# z0$iICh%4P~lFuY4Bo$%P7D(c}{v+IIr%5*uPRpDMU@AmKD^1hEs3^^sp=~cDeWGJN z1H85D?5I`V@rWHteCYtGYg={^?s^(v+<-b*Ilw?SI|R6^MZK&Do~Mm(1n5+vCY1+A zpCIGp0S4)by!+EDG2T8S8}zOR=yKc#JF8nKG0aMKtkw9^A~zKsz-Tc&2>KGsRVQwG zIkQH8&EgNDR;2}D$kbXg7+k7WrbgZ?Gt<*@h!0wpVt;edl)r5@-q55QBcgqxy?04Q zEdwM=P*mwiYpEmbMOJAutJC#{0HprzEUN2N@`Q$|m!(y;|B||oY%C+TS97jKD$6yg7s&+bW%)Dn0KW!0j)+g1ybTE zCOw6_QKjHk25T=PCRWXGIpvbJ{XaV!S1B4Rjb5nV)F%f!P^47PVnf)eXIp^Ry|()M2UBc9@cnWC%{#>|_pNngW0SzMsFI zs$gK$vlz6hXqV^Wz=+MW#P~Z<;fW@$MKe%IL%Z}}x0no!9fLNjm$-tWTNqA$hyb{E z1v0Ay1eB>Bsa^@u-aBHnMrGuGFIQ$Bhu*ZOv=R>s?3;~T)1zT1B`=}V3Igy{C(M>% z2Pb0#1_#RZ`c#~+ql-3Rz7O<|^5)?T^@ zaMUIJ*=n2&VOQi?s%)Y%dZ_AXp8U;pP_!aAu>6|95L*oi+efF2r#h)+5glXnKNeZ# zti(8>rXvXfa2pjp)G7;W(0rC9?WuyW6Q(fWfeEP9ds=kd!#pIc|8G1QR~->O5Mb22}&`bQscA4?91Cj>?S9MzjH@)eVD5MB#iNAt0 z3K08?ExY%^^ZviD#m!ceXVYoz0`lq-tgH5<=$>Z)fwc+WE6Lwzdp`gfRR^OCfBzR5 zD4&4Zdeoma5Vy2-^#J0^9S1dpPXKZ&>QUtYDV@Pc1{E;)|J~Gg35?q|+;Ng$DiP(X z`LxL}k`x(A5!kAt5boC)v7I~oOMEL7|8s`kg^E^B47OJs;CypY35(kj_O+y(yNS1XrBuKmZb?(rC;+Z zbIwrzs{vO^rB?uc`%adcNKLYoIYo~KY@(W|A%q9*-|WbKO^26qd5QG@lf|1duENG8 zuhcl^EC1)EuDpwplnAFUT_jnr-0+KLs?z-oV85xYk408!+^3Xcm+tk@kz@j@s}h3B2A0+& z{pL?OfW{9Vk2mJ`^X3(gWhpBez(1KNZ zRc^ltJM?Tac|Z4G-nP!pGtZBs?jNQy-TapL56%_Pm_GcJ>OXUlt}h?LiYI=9-Ll%1 zmuV$*X9NM0eHSJ_$)L8p-I`ZjK{dXs)tqL2A9oJtwW*AsV=~QxSf8H?H;1%VWRmt)){v&&fqLVRZxoLGFi#lXGLc zQ@hUsLF47c#6y?>*GiVnYW!xkpB_)TM>j$K#=yf4K(eR&w~Y!osy`Bu-$f zH(q#yt&8K+{&91*pSNeL$Mc_>DFwu})2n}Gr{~wUf}!0WcSeuzo=Z86uahsvoi=v2 zPj7>>2YK0V?+5xm_1bO~x{slkt~HF3C%lAv$9Kdax03UlKNmH?W_G=rw#Vty^FOs4 z_9dH}HtjoA7tU)S&Ft$p8;(u;oymup%k}~eytViAiGPwqTQ_P*z{!Xu9}racdy#Hk z=kZ$epLVR%3-1Q_%gvi|`W&JxvJmdue>V2%`dl zF0MgT(}e4<*RMc@_F+K*kGKB$SGV?yW6w?^BZ*t10&nIaF_Bn>HARl+wpIM|Vz*D9 z%q?B7zJmUX`;$YL%%hAb>?KRq<{ljVeNR+Mz2}M&&}Dhy>r3GshxLsCd_TE&8gn1 zC7}DLohY~2PJl-0Lh$9m4xKD_+LW=SWEhmai)Ee-dZEAjfi}Y7>F(>?{CogfdC_~l zKYlr@>y|%cd#>m9SSY+(d2x5S@^q@-$aS6mopUqZ|779^S8mgNrMWN<`{>v4c;>dL z_q=V3CUxm5hpo%EVe967epG@)#Npw>mPvqL#|@u ze7?m4-p`I7dwqDn4e%}@b#rC-fjoTqI?wtqPGdVBV=AU!ddrA9u5;IB{N9geTdy}T zn&mihn!cJ2oh`haJ+sA6E2s~jKK`}`3h-{`IOjI;uKPX!r+w>aJ{6ij^*XVKe9hZW zV*P5KA5+h}eK&O0ulZkN3y&EeHvK$bFAbLcG!R;fQIIki1h`)Z3Eu_@v(9=y`wq4k z7q@;lLJ3~_-v0Pi@&hjflC~tVp}=k8)ga9D7eQ^xlse;|#X9gcw+?-;Ho=ct{`JpA z&aO(tjr^*i7XAvht}|LUdpvLFE!b z^ul}l{1MhW>|x(3;jGidoXa#YS-Io-p4QzlyP5Oh+2F%FB+6%z3FQBBwwy*I_d7-) z-W4`yz}$z+{P?{Giq|nHlM+?Xb7=vdqc850w}Lk3{I2l)9|-65_~~uS<*|K~-9&25 zT%pT{C36sg&+p-N80iA^{_)&`lq2AEvz1Ad%m1`JdrRfE_Sx}#bJGLd^!EFFo`?Q? z6{u;TzI|tuootvNk9ckeGM~a;DO(a%-hpMwZzi-_^;6R~fv|7c4D2vue7;_##Yt?$ z>+N)Sbg?JmR^gqsH`L|)Dhe6gT0~UANvb4Bv2xBSFqJ)_${dG|Fg#1jgR-U!j7!rI zQFOk8MHt9n751QM8_-7C9SrQ6;?S&zCw*Jaz(ZKv!!;wo`4Edw##qQ7LIS%+V+((W zpkex@#Gni3W3KKOZzJveeL0b0VT@jAU_b;DQwX)PhzkN;EVln&H>H(XUR`DyvXVTe z7VOW8&N6VUBsubke?sg{KNJ_qMu#No&4{Upy|c|PdpQ7zZdq{6#i4Fqf6cO6|B1t- zD*1-;Fta=R3oYkZZ01kMv3$*4PNqRPKJ1|jz z>i^7VOjal27044~)x$@c{7advha!!V`pt0%Wd?gsHb(+whQS{-cQXbs0j2qK)MM=T z?AeM6qE!g5I>9&CNH=U$;r+CQSfB3mIzcgZPoAfmX)FSSOCMp)+Hir#=A2ZaTD$gR zYaXdi&uNIbsYwcl3h4_!m``HQXbF$ANCYgAD)ND^`eN(0C)~{DQ)2arP;y1iSpUl5 zplr%!;7j-skP5pR9d5Gs&x}-mJcH`5(iJ#VAP=x<1X5num}yN}ni?w6M+`OYZfA2Q z6Y9_CM6)W5Y?u-{)LMVAD9Tov_*Y+Iw2nAZs8*cv=dcZ1Ap;hO-#4(52L4z+_C4AZ zE3gaXIQcqDTS8hwKMhMt?*gEDO`D7)JjVhqzeCO4SV$`sQpEcxbckl6fYZuD%zMlz zr^1d%b;#$HT8k%}m{HQ#7XIm<(~86X86&)yDJ}+&8_ai|2UE}%&F z3M^|*ajdHom9=FWYxjRa7I0&}mP<4}Y3C0RkqnVt8YM+L(ggR?62Tc8qLGT%luLq- zKNs6-ge^@RBmX7$V&d!s7iObX$|j9@K5eXnFk-nHB~H=6TbpaI7p$4Sx^({D;zgDx zDD|}Z4G$f7VRGCJiDNk)kW7i(jMvBDY#Cl9NwlXM%TbG)M+XiQ0_u}M>2flyCJ64i$tH|J6&n^S0Pi~1ImbT27H&-{&oNs{8Z%r`pf|3MUxZ?+?@*uO`&!Zza;oXyBA3%b#s+u5XzCJEwY$@z6AXjjQ zu_zjJ&5@>}+|@vqM+%tK2-22fF&Tv~+-<;Xjc62D_9@`Wn(ETS6}L<`1-qhcC?=Mf z>fRqOMZ0DJ=Nt9)-cA`dC$O2O^}ixs%WP!qy2<;{Pn2ROe*Z@eH8OYo3xY+0ib)Rk z0_|6?710cQr;s-;e;Tu}-SSH53@nk=YgF7uK(pDJ6QXj>0p4^0q?|LS^oBSqR;o1N zrIx*6R5XTI%(!?SL6k2Ab7d`S5Mv0s0+^fvsHG=8+g^HvJ?WbMTbKy6Om(mxop2-< zQt?x7--}*2DFbzII#*X`$PHf@ztyr3tFSu-MIFdkNS+1TZEaqP5Y<(Y_N0>uBdS2oXrExoHs!1xNlI`(C9Iv${C%m_Pqh1hx$f zlU;E|5@04Cdv=VGwsM-Ba$EM?UB+etsmmn2(Ls_Y6#SO3fap5qKZoJtLH{tbk~Hs| zEgs8nqQ3KUyzHM!9gh_LQL*I1=r`iewq-Pt$h8O3$@H00L#0WGcMKQyHHG;ylCMh1 zt~A+2L&5d=%{g=HN+IMA^?*s}=@qP zAS})X<*P(=G~{l1t8aV=3t89`98U%sn%<&GUn3syr*E44&eDPOi~D%bYt>au0duIX zK;46~_=Flhf64JM2gp{SL;sM3V9eQ)bLhJv+u4yhF&-eq`?&RPm_4lqCShKPmW$No$bD z`Q=|t`znFydy!zY{GrQM#Di^yRU}`=~#n8%IaHe^g%Q3wuE_g3K z8T1O2wnnexgB|S=Wyvx?fIOxrFy@5dF%l{ry9Ual!Bq1n6HH~5Qm}Hf+gzZxI;o~S zt_JdOmo~PA^J)qNoKn~<)?OCi2cmtoJRiIs?c+<102+U{o3$wB{$W+08t`uh9_H6h z-d(<)mFE}|DIOL30jn3xE1yo@G>x9|kE0yA=_8nw-yIdm88?IIjR(^&s86yU~2w@JV9fD&!XNku>6Dk(jYbVf3bH| z`yqy@!!mUOI=McL(r|1_3QevO?*dX-$*+ST^b-;C<@E^-!{Grdn2KK=G~{>WXnY3A z3zzgc7%2KDafL}w8=fQsem^){I$PX7Xc$L@W8aa#KT8Lj z36QtKj&6`ol!Bt;i*2rj%o*U<8QEZA$Zz8u;kC}gfb@eYk0x1;-jByg5@#6F+r`^v zlKM_I_auThr?`+0MQMq;Q;!tW?;p+c&69997()B*AIx%~F&p^fHx9$&WXsyV`#BCd zf7>f8Q^FNTVJSg8z9>ukp`Z@SZ(V{~}mBukSbs&lSfS?2Vq^wr8L@z?JcLA{w)YHnE*ohqDdmH_UVY18EhY@l zQ7wF^{5ma9WV{2DEYot{QTBLVE+kgi-NKI)5>I^!c$a^tG)F9kJFy9{me2o)yHA2H zrH|g^zvE%vRKk+Q_+V-=T4*5Z&*=RW<@^)v=lw#9w`xDG|@Zg_eWEZG@M#i1$JulF1kUdLXK3y+RDW4@_^& zWx_L$})5GYagIgQP%Qaukak?a!}s&V5%uuDnHe8^7S>iK)sRR_^lwo1Z6JQJ)9 zuE*ND_>eOxwFDW!qLJhUG)kvM=u;$vq>5#fNA#3w$_~hpaY$D)gStEWZAKZ2nDM>$ z`V3);H`C*Mgs-gfObKfvqk2LKDWMEUQ(-%z-rJL4SIuK;$zNo`Wea0;QiDdGgku<3 zlr!SIAhzS_^i}oB96WKZb&4Pouq*;AjtvpKShEe|Sm2GKcY)7PZ<}&iFe{MN2`Y|MiCUxpc66( z>=voi3qi7Qjj(%F>M2vg!`nqYA^vU>2p&N-H$B*#ONP$|MP7>q)P%x{V%ihJL;o8Z z8!}ih6(GJQ!_$b&nJHRYaC8inGde?Yr6bs)NHz|w8F(vy@nB2SNbP<W= zOog3*qw$*?1@WYim@=CO2D$;A2%x&?08<_*>{KTv{S7F@U`C?q2>XIi7HgJZiy)p7 z+Q!DHoI@NCj;Ja5w@7@x1szW`GR>W6&r~>!cVuu!4{BM+a*c#I+5dRq_u?9RL;Brk z5tJ4~V5drTf4~c3I(T4rpz4gQUhQA3ero%e6_*9a(i&_p^B;8K@dutZeKYloXRs(B`B$5;Uz3JoyC%nt5&ur&?H`puDQ4Qwzedmf zFOFl>F?3KYuBe9Gu5Y~&c$aG!00$Cngk39xZzW9vBbbxkqo;*1O@MYTmhZi_09cYT z5WW%*)TRZN5^~TqfzJ)fcnOU7?HKI{z_#$q6u_<^`s7e$eUhIrp{x)fFYho2d4@w}s)hfGHFGd$?paO(|S? zSKBjv@|+{e8#gPB`hN0dFKEhCBW!D~0ZQJ81`;VpcE2-F`9Z3b5n?SdRQGHsy>))K z(NZQ3{h`oc7+0(djnmYw4{4h?TT0=?nm8-1%nhxuhAapSxvqJbrB*!*HEVb12?cQ+ z*3+dA9=!`=Sgu3v7=ABAA`yO;Gtoh*8mK1_Yt14ZtYeqJ_(V1&5JwBNH7M^!k~$O? z;iLD4Z4YowAtr}x5l#(@2o?qGlW>_&*eMx|G$IBSNk!U#I>ce+iwQ@Pw0g|z?>*@V z$sK5ioT@fYhlw|iDpdh2;lxbzk;r7ZTA0-GOdNq0?8{3gVFb`+;j68tZux@}?@aMI zuBhcC+KK;I(UdI^Pl|Ii(Zv<1e{#~6K)~*x|(%N!s2B|YW z$ak9B)WMjYovI(-^S1}V8=Q@mOT0L9B?P$V>e%2MlQj~Y-;2jLqu78!Mxym_ zQ_DF@g|udLMQ9d-8Um(NGu=!6*j_0n({V-FTuTg8C01;ypP9}na;FQZ_PIf&RfFb{ zOvCLN3-q7Z#Gi7)jYYT^^5+$Ba^hcQQm$%MB|>X&8pYncOI?wh(Z~ zwQWuB`#(DQ_gw(?eI;;jj=PIJ;DNq&ySl{JA^|oV@GtHiKZM$|LJE`AtUY+c^o=JQ`p|aj5$w@A&UDwP(sQ%2A^eKJx zjwYiv>4rwSClZCcKKgIY|3lh2K3C#IfBHKUCllM|#C9gOZQIr)nb@{%+vW`?PVUW( zZ5uoLtF79X`(pou?&>~$s_S!}r{qr7Mc8DR?oU_cw88cp%X89*RIaqqn&}?kaUq-O zxJLj13yM*qG3U59MHil5X&a4=I}Yn^QY*~hvZi3cnHgJQy`v*zctbBZozrF_Tg*F< zy=L95xsch+OdERrMs9%v5Yk)6jTYR<+%r6;3>M5Cz4 zS3#%D#-9z1FyNmEScg0R(HOZZxyPPEb+U$45gY%hm1;K#qN07$d7h@5<@5W7<&Y|~O;t}ic-O!aj8SP9zchJ%yvXPolBMi3B427*x2WAZhnU@s&X&6ml z6-JN+-)pgy@|~#f^N_t#Oj%(ACe2Dhc*#ej1q-()B3xw5DeLgy5Db|8cK*Y84f8cN zZnQMpc2QyrP#D-X$5$cmK?+vFiCG_3REa#ASF4b2smMY@+65Jg_=tNZ~` zum1(ql~%xA9tlfJP=?JQMfeWBEYm9ARb`2q;8RPYquI!+HBGUDW!YoYX|5D3&#TAP zXQ3^kei0KdZpaP^=}9dq$N+CW*)#uW7sXHT>zp zqd&5ykDZ8)eA6Fii2C@!kK|(#2pV{FLZ*ubg7H z__K$wSDsB9i(&)EX}M_xBYL8D4;6yV?k>`&Al>7y{vWAhvyw9EF&&JYt#vDJ!BpVx zl}GRXrS=k-bnPLCR2;8?1if7WY2D^n1BiZC#X>8iCc;84+gA+zUmYx2EE*goooXvM7!A7%zzpu*Su@kCJMFDrz4LBmtA zf-NqS+e%A29Zn!785}B0k1AaO^OKX_UhPYpzWm0%U%ckqh3L=U>4DSy$XGl6Zkh>e z#!nG_^s7f5D2w@rIh_Z$ocdade_UsbWCWZW>!%uV=`+^rsAvx9o8{c!dp7W7Re+-3Ksi)Wmn{pfjH zvqQ7#e^8K%y+(>lOYF?b@uv;Z!|FyO;U+er0ZfS^Sz4g$(vys|gBDa-GZ}4r#10SWw}$NhmNY?G2j>b&}8@q~h`A3S-5VhyvZ*l7 zRRq~3k}qi3@WsXSm%bHtoaRlp6yvJsWHoYW*p713R{LA0mO0ZJ*)o^Yx1lte= zd$T7hqzrL;q%^6dl7USeW#dwE%HKdNOSA=Xw6@rL z<}K#v(m*tJJrXdq-)|wBdK>uPFPjlP&T*S)LU7e$JF5qn3%Ne$eV!jx>&}wA(dvz! z4XNg%Ntm4L53FLe!o(?@gVeH81xMPx6vk|kqa$T9Fw0gNMEL!l{^g~&0x94~? zuRa;~7L86Fi86%7R{p8m z$g6h7_@u3_erhQ?M(8hI(7~gQC@!yaD zn1Jhnme^=ho_doSu}-kt{tdXXnyE`3g+V=(iGE+lfZ2vCt<0(ciV8b ziWL!T=XUb>f}$neT5u9Td%eg>`RSO^5k1DAHcSCw-v|d7l~opawHQK)jTb8!SDBGb z5)6>ttxpB;1uujB#Oo^kQ`+3FDbw0Sehezn94#2B=b}}}^iN>A?Ehuyk&^~)n4HG1 zjT>pqfA-jrX4)qqOsOQG;8|wXK&mu(j2#O$P3!nde&(X>bM-QCi&;XS_hgRD7jGt< zFe2DtwL%`)jO)fI*e2!K^C;^=xAOHF$doyz*@#qWb9b`2(PV;t&+*So&oU~eKsjKA zqwo;9yGThts-lF!aORsF`x~q21dY$ba+&D*4(j;QVgVwuI!f)U(v>UPNp#L+9i|#; zYP6eB%#3N79as=NtOc?Nmcb(wYbWg3JOi~D&2N)7!T%=B2rJZc0lM_b`t@-HWDdcC z)DCR%Y2DsVwa6advGEORqEnL5?)->OS`1W2aLCEjMoo@9O9s{DMV*pmi4u=Al9<0i z28G!y8sJ=bz!sDor=6PpI<2kaaJOd{PoFoz>s%;VHX>v!a`#3hP|O7?N6M=}Ex3Ye ze}q>{96${_Pf&VA!9-7*4nIgNosQ^{t&`5kiN^fl6Q2mQ33neLkYY&+`c+fS`@HT# zwjnG^E-`d)lLayfdgSmmz`|0vhh#0a)`4V8*q4e7m}CI|^qklT+?twH5jFxq1;#2v zYE)wGp=B*LY-$6gSlyP=TLg3$w7OZ-@stR={|lu?33i7mo5IF=!+je%PGwQ30(eLu zY3vH*A_kbU%ie#nZnXjDQkz1K$?8&r&OJGGw8S*U6iF)L&8lHxP_Km1fxfmbb5j$0 z*`x4M=q$}QRz%I(hE1`^E6L2?{z-5D(AVf+1iLu@-5s90JU}f-=rRO4gc4diMep9V zrDM(~*`FS+3t4w*h;RrDht8Of5i(%3CX5<4C=gU{pmd@tShv&=4klf-v|R{t+FN@% zJ?umw5(pl;nAEpluelgK=HK7RLuF7but&;3$h#Xe{tYO*k}AqXl~<0@q>@obNMp!p z$cxKZkTck8BN#Kf!uydqrPUVm8^&WyBv>QV{(uMzv6xZ5P&rY&#LoJg#yarHFu#HPa@o#_-RFgmo;O(Rjy=8FP){MjHEFTIa-z~qOc9#2HA^Re zO8s{hY?LT$21X3e;D8&z4B5dH$R86G zt}GhSjsX6ni%NogxR%Bmx^8D1y2F1wL%B+TJzpJFZ1sVjtyecg-&$#WSDHDVKrQNI z_kfTrhLDUlRRD|MoQ3_SH1rVq-tUph8}{hAXm2j>>v)nNd_A#w+lFyS(cN}FSwrTn zc7e(_;FhYj`{&`G-E1n?Ur4~F7#b$615+HOr4f4h ztdpfRZz@IYw~6yoyIe|2dhx9kWyZsXN{54>sC^H15GDG;BrV;11t_i{bRHMz4SbwU z8Nw#F!Z@I^JB`6i&YaV>pocH2G#aDmc2pw9-C{(Cljr6b{Y!@+5w|(5Av+Syy0aoz zQ}Cm$Z0-mh%AkzUf?zLWx|yn{Ve-MR5^C!uI6P&0jBzR5B4;?{HJj2xuuy6e1^oap ztqT%>q83ul$_q}*d@56FfGj41EaaCHDWynaZoFvZG4}l4Mc?_@>4_l?O99V~6sXXa?=QE9c4)Mfa!%D{FO>&*D2*&~T9U1$z!p&1gv&Plh+bmcY12;H zPW)^WyC+3orK1m@hy9jKElEtEIj}9|;6`CzXAz+-E(Ijxl_m>Sn?S-kpNRR$tdwAA zVW$YuC9_FLemHHZG2*7EDI3DUqHsApkmPb2`bKk{C!$dxB@i8{UxLKYr-+{__Lofe z`>%SFK}$x~NHkwLoCzL~G$ScZVrY-sx{|f{EMxJvsGhKnUMNt#RISx*bkj}@Pf{&> zQ(b(*bPb6O+kty#P=nb64yVjmA#tQJC0T9cnm4O)(C&=dG(`|c=4+V=WfIb+m?Ai= zKH+J)%_ABh{z|*}Mo;c$Axh0wFcL50!JhuZuytT@sIXKq!|N>&Q?wZEnLH#K-G$-h zID}gD5tl%;egIeO)}`&InG=f%%$}vW0OPJ|D6$6g1{4~UxF%I%5lhNclsoL>FId^?d9C<&h^GP^u()K>X8 zQliHQ2u`%Mxx+us&ItI_Q~0*CDZBYG!MPEbW=+hv)z)c^-gkOuahhcgYARbPV2d6i z0ntpk@Q^a^gfs3m0Y1uZ%m`ZTjz|K!kaSio+u6-c_RH-C>arnFV{4)<>$^!0#zyuA z$d$?YjD%O(g@H6#dxX0ms#R$T_J_mR&GeEpmTe52MVa}1!42~?mc{_L)$2br>}}E? zV+WsIhD=z^#?w*3ri7zuetfnaUF_+VA-)4MK>}CO9XE2_QZd`R;I^|Q9|B|%#qU(!lS%6KFEZs!NzL>dnh{p4%G4-WN}7Z4W@;`M zs#!zf>1`lexZ(QnObvN(L&vkS-%OUMxmDn4lP7T(*^=dFM#^1O94%aBtiy*L7{77 z?U40S_Si|I>|E!%T(RI~4XP?IL(p)cI!mU_v}!{r zVu=smvfvK~OZWM(4`(f}>8OVQWssx+MCRd`P+v*zLsY9|i&|uvc`7}sJDQ_R&F57Y z4DY{|c407gjd3{=wE(!f0V6{b7&_)-MI)Ezxo%ju1xjMl%GPvt{?tvVYPx zc4ECeil7LfSJ^8bBTCdK1S<-nmrP<+HuyK&P04O0Hd-cAqlsqX^@(H@!1hVU6~Mu) zK=x^tF_$Tw3Ru~y%xO7!uu(~P@ac3K5K;^u-Tt2O(n| z4EQ1B@9?hl2}P${Y{mtzRC|XeV6sp>bGRMbfWfkc~js{cXH6F@XLfUo#I#jHKLX{-t zBxJ&91A~F5W_jd4^P&7qyj3|ZO4Y1%xD*VT7dGt^0vaA|dp42`$uPQRNERo^JRLfW z&QCo{ghJb-F&!b*VzE86q4J22L=lx+m5hT(`?RB|i;89EGjI0E*c(#c^u}iuWgtDK zyqu5^&)MCNs6CXG*>>GrRd&T|B8juP2mz{CtCh~CI45Is8-pg*AU?RX25}BQYpy^Q5y%cA?}wNwit1%vpa+eOS)=6i1NW+m~UKq9{t? zlx4pA)9E0|9wp6}e353$mJm?Qso$^Z-3v)|=E2oc?c0w@$%V|b)@e(;Vw*C%Dx))C z5soTq(|{Y4murig2;|Kro7P5Z(1W1h)D!i0msY6#e9>ewbz;SODq;&)R%!UNq`j!Y zo@U|B3^l-*feCTbB){lE<(h$}t6>Lun~p55DE5M<&X`xOI;QAHG*y~u5)s=%B#Bq_ zBI)8(NV`HT`4voW|Ohbh{5g-+Rh)b1J$O=wLcN33B37oaH4J6 z?C53kkYLu)xl&I*h8n=3HtsjV{mvZ|jC6x)Z9({HR@5%ExQH<{c+(|Fa^h^Ys~*#_ z{aJ)BPFUv{#OXEF5(B%_w&MgT=SD0-c|rV{rzBcpWtB`Tr7_Mqs@(si7&=(j_2mUD z8r5;lGbIUe2!EDvw_@0*A!^aD)j}apS5R+ZLa~wI0a9695KuhCW7v0Bc>coc^RZNO z$7lRrZ`+r8qBdN@HOCTBZA^(m4*!1o;%@v#;XwDuaDWn8@kp;4n280{loJ56;9m7A z6=gj1O6OC$(1n@}NgbEoze0FCu-jRF;U6n_$G^9OK^NXOh*`hzx!G zMExyNfnKYS7J)>B_E-E-hlxj9J&t(r0)dWtFTq?LuQ}&vHr&DHQJnTsyNZWdKr0-o zH_a8pja+d=#R#8XG|agFWR6T@I9izNp0v+N%*#!35xQB<+Je+v4X4yB402qcaFw+= zCrVl+7Y+@N-w-S_T8uN^_YW+IY zYWf%Z?(r4hxxpBSR4$X1 zwZIfLFZ{5A##noeR$hO8!G=r@^-lQwN)Aq=5r6(sG*|NCl60F7fNlatJtJm70Yv#8 z{6(2uyp$QFj2%az5M`~3W+p%%91yE0GSW1w8K6&UndlKmtXgKnGhM|UJ11!rND3lK zB!=TFM)^Ibt*KW5G5z0ZJUoK;bQalndpy;$^fHuK`CW?b|6-)QO*rVv%9VkP47$AYL^j+$NTTN?qh6x*2-7#IzgAXoe-V5A!ApbBAd$TVLbeRx4h}#k4NR zqQABlT?<8zVr+