From 59fab83b959d730ec3ab269599c4bca14e067a08 Mon Sep 17 00:00:00 2001 From: Justin Nguyen Date: Sat, 11 Nov 2023 14:51:09 -0800 Subject: [PATCH 001/100] setup tests --- babel.config.cjs | 3 + jest.config.cjs | 6 + lib/__tests__/account.jest.js | 7 + lib/queue.js | 14 +- package-lock.json | 12662 ++++++++++++++++++++++++++------ package.json | 4 + 6 files changed, 10377 insertions(+), 2319 deletions(-) create mode 100644 babel.config.cjs create mode 100644 jest.config.cjs create mode 100644 lib/__tests__/account.jest.js diff --git a/babel.config.cjs b/babel.config.cjs new file mode 100644 index 0000000..a1db3ce --- /dev/null +++ b/babel.config.cjs @@ -0,0 +1,3 @@ +module.exports = { + presets: [['@babel/preset-env', {targets: {node: 'current'}}]], +}; \ No newline at end of file diff --git a/jest.config.cjs b/jest.config.cjs new file mode 100644 index 0000000..5dc2dc3 --- /dev/null +++ b/jest.config.cjs @@ -0,0 +1,6 @@ +module.exports = { + fakeTimers: { + enableGlobally: true, + }, + transformIgnorePatterns: [], +} \ No newline at end of file diff --git a/lib/__tests__/account.jest.js b/lib/__tests__/account.jest.js new file mode 100644 index 0000000..c33a4c8 --- /dev/null +++ b/lib/__tests__/account.jest.js @@ -0,0 +1,7 @@ +const account = require('../account'); + +import 'node-fetch'; + +jest.mock('node-fetch', () => jest.fn()); + +test('Check if a post is my post', () => {}); diff --git a/lib/queue.js b/lib/queue.js index de8bd44..6b7a8ec 100644 --- a/lib/queue.js +++ b/lib/queue.js @@ -28,10 +28,14 @@ queue.on('resolve', data => { }); queue.on('reject', error => console.error(error)); -while (queue.shouldRun) { - try { - await queue.dequeue(); - } catch (err) { - console.error(err); +async function runQueue() { + while (queue.shouldRun) { + try { + await queue.dequeue(); + } catch (err) { + console.error(err); + } } } + +runQueue(); diff --git a/package-lock.json b/package-lock.json index 4407a6b..7da2dfc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,12 +29,16 @@ "rss-generator": "^0.0.3" }, "devDependencies": { + "@babel/core": "^7.23.3", + "@babel/preset-env": "^7.23.3", + "babel-jest": "^29.7.0", "eslint": "^8.32.0", "eslint-config-prettier": "^8.6.0", "eslint-config-standard": "^17.0.0", "eslint-plugin-import": "^2.27.5", "eslint-plugin-n": "^15.6.1", "eslint-plugin-promise": "^6.1.1", + "jest": "^29.7.0", "lint-staged": "^13.1.0", "prettier": "^2.8.3" }, @@ -42,2044 +46,2776 @@ "node": "16.x" } }, - "node_modules/@eslint/eslintrc": { - "version": "1.4.1", + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, - "license": "MIT", "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.4.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=6.0.0" } }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.11", + "node_modules/@babel/code-frame": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "dev": true, - "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "color-convert": "^1.9.0" }, "engines": { - "node": "*" + "node": ">=4" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.8", + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">=10.10.0" + "node": ">=4" } }, - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "color-name": "1.1.3" } }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "has-flag": "^3.0.0" }, "engines": { - "node": "*" + "node": ">=4" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", + "node_modules/@babel/compat-data": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz", + "integrity": "sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==", "dev": true, - "license": "Apache-2.0", "engines": { - "node": ">=12.22" + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz", + "integrity": "sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.3", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.3", + "@babel/types": "^7.23.3", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", + "node_modules/@babel/core/node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "license": "BSD-3-Clause" + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", + "node_modules/@babel/generator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.3.tgz", + "integrity": "sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==", "dev": true, - "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "@babel/types": "^7.23.3", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" }, "engines": { - "node": ">= 8" + "node": ">=6.9.0" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, - "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, "engines": { - "node": ">= 8" + "node": ">=6.9.0" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", "dev": true, - "license": "MIT", "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "@babel/types": "^7.22.15" }, "engines": { - "node": ">= 8" + "node": ">=6.9.0" } }, - "node_modules/@types/json5": { - "version": "0.0.29", + "node_modules/@babel/helper-compilation-targets": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", "dev": true, - "license": "MIT" - }, - "node_modules/accepts": { - "version": "1.3.8", - "license": "MIT", "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" }, "engines": { - "node": ">= 0.6" + "node": ">=6.9.0" } }, - "node_modules/acorn": { - "version": "8.8.1", + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", + "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" }, "engines": { - "node": ">=0.4.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/acorn-jsx": { - "version": "5.3.2", + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", "dev": true, - "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + "@babel/core": "^7.0.0" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", + "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", "dev": true, - "license": "MIT", "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, "engines": { - "node": ">=8" + "node": ">=6.9.0" } }, - "node_modules/ajv": { - "version": "6.12.6", + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, - "license": "MIT", "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" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/ansi-escapes": { - "version": "4.3.2", + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, - "license": "MIT", "dependencies": { - "type-fest": "^0.21.3" + "@babel/types": "^7.22.5" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6.9.0" } }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" + "dependencies": { + "@babel/types": "^7.23.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dev": true, - "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.15" + }, "engines": { - "node": ">=8" + "node": ">=6.9.0" } }, - "node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "dev": true, - "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/argparse": { - "version": "2.0.1", - "license": "Python-2.0" + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/array-flatten": { - "version": "1.1.1", - "license": "MIT" + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/array-includes": { - "version": "3.1.6", + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "is-string": "^1.0.7" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/array.prototype.flat": { - "version": "1.3.1", + "node_modules/@babel/helper-replace-supers": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.1", + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" + "@babel/types": "^7.22.5" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6.9.0" } }, - "node_modules/astral-regex": { - "version": "2.0.0", + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "dev": true, - "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, "engines": { - "node": ">=8" + "node": ">=6.9.0" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" + "dependencies": { + "@babel/types": "^7.22.5" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/basic-auth": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "safe-buffer": "5.1.2" - }, + "node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "dev": true, "engines": { - "node": ">= 0.8" + "node": ">=6.9.0" } }, - "node_modules/basic-auth/node_modules/safe-buffer": { - "version": "5.1.2", - "license": "MIT" - }, - "node_modules/body-parser": { - "version": "1.20.1", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">=6.9.0" } }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" + "node_modules/@babel/helper-validator-option": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "dev": true, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "license": "MIT", + "node_modules/@babel/helper-wrap-function": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "dev": true, "dependencies": { - "balanced-match": "^1.0.0" + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/braces": { - "version": "3.0.2", + "node_modules/@babel/helpers": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", + "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", "dev": true, - "license": "MIT", "dependencies": { - "fill-range": "^7.0.1" + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" } }, - "node_modules/builtins": { - "version": "5.0.1", + "node_modules/@babel/highlight": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", "dev": true, - "license": "MIT", "dependencies": { - "semver": "^7.0.0" + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/builtins/node_modules/semver": { - "version": "7.3.8", + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "license": "ISC", "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "color-convert": "^1.9.0" }, "engines": { - "node": ">=10" + "node": ">=4" } }, - "node_modules/bytes": { - "version": "3.1.2", - "license": "MIT", + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, "engines": { - "node": ">= 0.8" + "node": ">=4" } }, - "node_modules/call-bind": { - "version": "1.0.2", - "license": "MIT", + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "color-name": "1.1.3" } }, - "node_modules/callsites": { - "version": "3.1.0", + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, - "license": "MIT", "engines": { - "node": ">=6" + "node": ">=0.8.0" } }, - "node_modules/chalk": { - "version": "4.1.2", + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=4" } }, - "node_modules/charenc": { - "version": "0.0.2", - "license": "BSD-3-Clause", + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, "engines": { - "node": "*" + "node": ">=4" } }, - "node_modules/clean-stack": { - "version": "2.2.0", + "node_modules/@babel/parser": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.3.tgz", + "integrity": "sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==", "dev": true, - "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, "engines": { - "node": ">=6" + "node": ">=6.0.0" } }, - "node_modules/cli-cursor": { - "version": "3.1.0", + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", "dev": true, - "license": "MIT", "dependencies": { - "restore-cursor": "^3.1.0" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/cli-truncate": { - "version": "3.1.0", + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", "dev": true, - "license": "MIT", "dependencies": { - "slice-ansi": "^5.0.0", - "string-width": "^5.0.0" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.23.3" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@babel/core": "^7.13.0" } }, - "node_modules/color-convert": { - "version": "2.0.1", + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz", + "integrity": "sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==", "dev": true, - "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">=7.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/color-name": { - "version": "1.1.4", + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, - "license": "MIT" + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/colorette": { - "version": "2.0.19", + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, - "license": "MIT" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/commander": { - "version": "9.5.0", + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || >=14" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/concat-map": { - "version": "0.0.1", + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, - "license": "MIT" + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/content-disposition": { - "version": "0.5.4", - "license": "MIT", + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, "dependencies": { - "safe-buffer": "5.2.1" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { - "node": ">= 0.6" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/content-type": { - "version": "1.0.4", - "license": "MIT", - "engines": { - "node": ">= 0.6" + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/cookie": { - "version": "0.5.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/cookie-parser": { - "version": "1.4.6", - "license": "MIT", + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", + "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "dev": true, "dependencies": { - "cookie": "0.4.1", - "cookie-signature": "1.0.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">= 0.8.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/cookie-parser/node_modules/cookie": { - "version": "0.4.1", - "license": "MIT", + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", + "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, "engines": { - "node": ">= 0.6" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "license": "MIT" - }, - "node_modules/copy-env-cli": { - "version": "1.0.0", - "license": "MIT", - "bin": { - "copy-env-cli": "bin.js" + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/cors": { - "version": "2.8.5", - "license": "MIT", + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, "dependencies": { - "object-assign": "^4", - "vary": "^1" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">= 0.10" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/cross-spawn": { - "version": "7.0.3", + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", "dev": true, - "license": "MIT", "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">= 8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/crypt": { - "version": "0.0.2", - "license": "BSD-3-Clause", + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, "engines": { - "node": "*" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.0", - "license": "MIT", + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, "engines": { - "node": ">= 12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/debug": { - "version": "4.3.4", - "license": "MIT", + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "dev": true, "dependencies": { - "ms": "2.1.2" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">=6.0" + "node": ">=6.9.0" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/deep-is": { - "version": "0.1.4", + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, - "license": "MIT" + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } }, - "node_modules/define-properties": { - "version": "1.1.4", + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", "dev": true, - "license": "MIT", "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/depd": { - "version": "2.0.0", - "license": "MIT", + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.3.tgz", + "integrity": "sha512-59GsVNavGxAXCDDbakWSMJhajASb4kBCqDjqJsv+p5nKdbz7istmZ3HrX3L2LuiI80+zsOADCvooqQH3qGCucQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, "engines": { - "node": ">= 0.8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/destroy": { - "version": "1.2.0", - "license": "MIT", + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", + "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20" + }, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/doctrine": { - "version": "3.0.0", + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "esutils": "^2.0.2" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/dotenv": { - "version": "16.0.3", - "license": "BSD-2-Clause", + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.3.tgz", + "integrity": "sha512-QPZxHrThbQia7UdvfpaRRlq/J9ciz1J4go0k+lPBXbgaNeY7IQrBj/9ceWjvMMI07/ZBzHl/F0R/2K0qH7jCVw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eastasianwidth": { - "version": "0.2.0", + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", + "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", "dev": true, - "license": "MIT" + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/ee-first": { - "version": "1.1.1", - "license": "MIT" + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.3.tgz", + "integrity": "sha512-PENDVxdr7ZxKPyi5Ffc0LjXdnJyrJxyqF5T5YjlVg4a0VFfQHW0r8iAtRiDXkfHlu1wwcvdtnndGYIeJLSuRMQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } }, - "node_modules/emoji-regex": { - "version": "9.2.2", + "node_modules/@babel/plugin-transform-classes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.3.tgz", + "integrity": "sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w==", "dev": true, - "license": "MIT" + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/encodeurl": { - "version": "1.0.2", - "license": "MIT", + "node_modules/@babel/plugin-transform-classes/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, "engines": { - "node": ">= 0.8" + "node": ">=4" } }, - "node_modules/entities": { - "version": "3.0.1", - "license": "BSD-2-Clause", + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.15" + }, "engines": { - "node": ">=0.12" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/es-abstract": { - "version": "1.21.1", + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", "dev": true, - "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.3", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.4", - "is-array-buffer": "^3.0.1", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/es-set-tostringtag": { - "version": "2.0.1", + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", "dev": true, - "license": "MIT", "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/es-shim-unscopables": { - "version": "1.0.0", + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", "dev": true, - "license": "MIT", "dependencies": { - "has": "^1.0.3" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/es-to-primitive": { - "version": "1.2.1", + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.3.tgz", + "integrity": "sha512-vTG+cTGxPFou12Rj7ll+eD5yWeNl5/8xvQvF08y5Gv3v4mZQoyFf8/n9zg4q5vvCWt5jmgymfzMAldO7orBn7A==", "dev": true, - "license": "MIT", "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "license": "MIT" + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.3.tgz", + "integrity": "sha512-yCLhW34wpJWRdTxxWtFZASJisihrfyMOTOQexhVzA78jlU+dH7Dw+zQgcPepQ5F3C6bAIiblZZ+qBggJdHiBAg==", "dev": true, - "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, "engines": { - "node": ">=10" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint": { - "version": "8.32.0", + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz", + "integrity": "sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==", "dev": true, - "license": "MIT", "dependencies": { - "@eslint/eslintrc": "^1.4.1", - "@humanwhocodes/config-array": "^0.11.8", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6.9.0" }, - "funding": { - "url": "https://opencollective.com/eslint" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-config-prettier": { - "version": "8.6.0", + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", "dev": true, - "license": "MIT", - "bin": { - "eslint-config-prettier": "bin/cli.js" + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "eslint": ">=7.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-config-standard": { - "version": "17.0.0", + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.3.tgz", + "integrity": "sha512-H9Ej2OiISIZowZHaBwF0tsJOih1PftXJtE8EWqlEIwpc7LMTGq0rPOrywKLQ4nefzx8/HMR0D3JGXoMHYvhi0A==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, "peerDependencies": { - "eslint": "^8.0.1", - "eslint-plugin-import": "^2.25.2", - "eslint-plugin-n": "^15.0.0", - "eslint-plugin-promise": "^6.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.7", + "node_modules/@babel/plugin-transform-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", "dev": true, - "license": "MIT", "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.3.tgz", + "integrity": "sha512-+pD5ZbxofyOygEp+zZAfujY2ShNCXRpDRIPOiBmTO693hhyOEteZgl876Xs9SAHPQpcV0vz8LvA/T+w8AzyX8A==", "dev": true, - "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-module-utils": { - "version": "2.7.4", + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", "dev": true, - "license": "MIT", "dependencies": { - "debug": "^3.2.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">=4" + "node": ">=6.9.0" }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", "dev": true, - "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-plugin-es": { - "version": "4.1.0", + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", "dev": true, - "license": "MIT", "dependencies": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" }, "engines": { - "node": ">=8.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" + "node": ">=6.9.0" }, "peerDependencies": { - "eslint": ">=4.19.1" + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-plugin-es/node_modules/eslint-utils": { - "version": "2.1.0", + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", + "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", "dev": true, - "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^1.1.0" + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { - "node": ">=6" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { - "version": "1.3.0", + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", "dev": true, - "license": "Apache-2.0", + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, "engines": { - "node": ">=4" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-plugin-import": { - "version": "2.27.5", + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", "dev": true, - "license": "MIT", "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", - "has": "^1.0.3", - "is-core-module": "^2.11.0", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.6", - "resolve": "^1.22.1", - "semver": "^6.3.0", - "tsconfig-paths": "^3.14.1" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">=4" + "node": ">=6.9.0" }, "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + "@babel/core": "^7.0.0" } }, - "node_modules/eslint-plugin-import/node_modules/brace-expansion": { - "version": "1.1.11", + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", "dev": true, - "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.3.tgz", + "integrity": "sha512-xzg24Lnld4DYIdysyf07zJ1P+iIfJpxtVFOzX4g+bsJ3Ng5Le7rXx9KwqKzuyaUeRnt+I1EICwQITqc0E2PmpA==", "dev": true, - "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.3.tgz", + "integrity": "sha512-s9GO7fIBi/BLsZ0v3Rftr6Oe4t0ctJ8h4CCXfPoEJwmvAPMyNrfkOOJzm6b9PX9YXcCJWWQd/sBF/N26eBiMVw==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "esutils": "^2.0.2" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "engines": { - "node": ">=0.10.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-plugin-import/node_modules/minimatch": { - "version": "3.1.2", + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.3.tgz", + "integrity": "sha512-VxHt0ANkDmu8TANdE9Kc0rndo/ccsmfe2Cx2y5sI4hu3AukHQ5wAu4cM7j3ba8B9548ijVyclBU+nuDQftZsog==", "dev": true, - "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "@babel/compat-data": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.23.3" }, "engines": { - "node": "*" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-plugin-n": { - "version": "15.6.1", + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", "dev": true, - "license": "MIT", "dependencies": { - "builtins": "^5.0.1", - "eslint-plugin-es": "^4.1.0", - "eslint-utils": "^3.0.0", - "ignore": "^5.1.1", - "is-core-module": "^2.11.0", - "minimatch": "^3.1.2", - "resolve": "^1.22.1", - "semver": "^7.3.8" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20" }, "engines": { - "node": ">=12.22.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" + "node": ">=6.9.0" }, "peerDependencies": { - "eslint": ">=7.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-plugin-n/node_modules/brace-expansion": { - "version": "1.1.11", + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.3.tgz", + "integrity": "sha512-LxYSb0iLjUamfm7f1D7GpiS4j0UAC8AOiehnsGAP8BEsIX8EOi3qV6bbctw8M7ZvLtcoZfZX5Z7rN9PlWk0m5A==", "dev": true, - "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-plugin-n/node_modules/minimatch": { - "version": "3.1.2", + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.3.tgz", + "integrity": "sha512-zvL8vIfIUgMccIAK1lxjvNv572JHFJIKb4MWBz5OGdBQA0fB0Xluix5rmOby48exiJc987neOmP/m9Fnpkz3Tg==", "dev": true, - "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { - "node": "*" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-plugin-n/node_modules/semver": { - "version": "7.3.8", + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", "dev": true, - "license": "ISC", "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">=10" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-plugin-promise": { - "version": "6.1.1", + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", + "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", "dev": true, - "license": "ISC", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6.9.0" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-scope": { - "version": "7.1.1", + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.3.tgz", + "integrity": "sha512-a5m2oLNFyje2e/rGKjVfAELTVI5mbA0FeZpBnkOWWV7eSmKQ+T/XW0Vf+29ScLzSxX+rnsarvU0oie/4m6hkxA==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-utils": { - "version": "3.0.0", + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", "dev": true, - "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^2.0.0" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" + "node": ">=6.9.0" }, "peerDependencies": { - "eslint": ">=5" + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", "dev": true, - "license": "Apache-2.0", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" + }, "engines": { - "node": ">=10" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-visitor-keys": { - "version": "3.3.0", + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", "dev": true, - "license": "Apache-2.0", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.11", + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", "dev": true, - "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", + "node_modules/@babel/plugin-transform-spread": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", "dev": true, - "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" }, "engines": { - "node": "*" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/espree": { - "version": "9.4.1", + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6.9.0" }, - "funding": { - "url": "https://opencollective.com/eslint" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/esquery": { - "version": "1.4.0", + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { - "estraverse": "^5.1.0" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">=0.10" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/esrecurse": { - "version": "4.3.0", + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "estraverse": "^5.2.0" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">=4.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/estraverse": { - "version": "5.3.0", + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", "dev": true, - "license": "BSD-2-Clause", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, "engines": { - "node": ">=4.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/esutils": { - "version": "2.0.3", + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", + "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, "engines": { - "node": ">= 0.6" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/execa": { - "version": "6.1.0", + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", "dev": true, - "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^3.0.1", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/express": { - "version": "4.18.2", - "license": "MIT", + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", + "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "dev": true, "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">= 0.10.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.3.tgz", + "integrity": "sha512-ovzGc2uuyNfNAs/jyjIGxS8arOHS5FENZaNn4rtE7UdKMMkqHCvboHfcuhWLZNX5cB44QfcGNWjaevxMzzMf+Q==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.3", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.23.3", + "@babel/plugin-syntax-import-attributes": "^7.23.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.23.3", + "@babel/plugin-transform-async-generator-functions": "^7.23.3", + "@babel/plugin-transform-async-to-generator": "^7.23.3", + "@babel/plugin-transform-block-scoped-functions": "^7.23.3", + "@babel/plugin-transform-block-scoping": "^7.23.3", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@babel/plugin-transform-class-static-block": "^7.23.3", + "@babel/plugin-transform-classes": "^7.23.3", + "@babel/plugin-transform-computed-properties": "^7.23.3", + "@babel/plugin-transform-destructuring": "^7.23.3", + "@babel/plugin-transform-dotall-regex": "^7.23.3", + "@babel/plugin-transform-duplicate-keys": "^7.23.3", + "@babel/plugin-transform-dynamic-import": "^7.23.3", + "@babel/plugin-transform-exponentiation-operator": "^7.23.3", + "@babel/plugin-transform-export-namespace-from": "^7.23.3", + "@babel/plugin-transform-for-of": "^7.23.3", + "@babel/plugin-transform-function-name": "^7.23.3", + "@babel/plugin-transform-json-strings": "^7.23.3", + "@babel/plugin-transform-literals": "^7.23.3", + "@babel/plugin-transform-logical-assignment-operators": "^7.23.3", + "@babel/plugin-transform-member-expression-literals": "^7.23.3", + "@babel/plugin-transform-modules-amd": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.3", + "@babel/plugin-transform-modules-umd": "^7.23.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.23.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.3", + "@babel/plugin-transform-numeric-separator": "^7.23.3", + "@babel/plugin-transform-object-rest-spread": "^7.23.3", + "@babel/plugin-transform-object-super": "^7.23.3", + "@babel/plugin-transform-optional-catch-binding": "^7.23.3", + "@babel/plugin-transform-optional-chaining": "^7.23.3", + "@babel/plugin-transform-parameters": "^7.23.3", + "@babel/plugin-transform-private-methods": "^7.23.3", + "@babel/plugin-transform-private-property-in-object": "^7.23.3", + "@babel/plugin-transform-property-literals": "^7.23.3", + "@babel/plugin-transform-regenerator": "^7.23.3", + "@babel/plugin-transform-reserved-words": "^7.23.3", + "@babel/plugin-transform-shorthand-properties": "^7.23.3", + "@babel/plugin-transform-spread": "^7.23.3", + "@babel/plugin-transform-sticky-regex": "^7.23.3", + "@babel/plugin-transform-template-literals": "^7.23.3", + "@babel/plugin-transform-typeof-symbol": "^7.23.3", + "@babel/plugin-transform-unicode-escapes": "^7.23.3", + "@babel/plugin-transform-unicode-property-regex": "^7.23.3", + "@babel/plugin-transform-unicode-regex": "^7.23.3", + "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/express-basic-auth": { - "version": "1.2.1", - "license": "MIT", + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, "dependencies": { - "basic-auth": "^2.0.1" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/express-handlebars": { - "version": "6.0.6", - "license": "BSD-3-Clause", + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "node_modules/@babel/runtime": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", + "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", + "dev": true, "dependencies": { - "glob": "^8.0.2", - "graceful-fs": "^4.2.10", - "handlebars": "^4.7.7" + "regenerator-runtime": "^0.14.0" }, "engines": { - "node": ">=v12.22.9" + "node": ">=6.9.0" } }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", + "node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dev": true, "dependencies": { - "ms": "2.0.0" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", + "node_modules/@babel/traverse": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.3.tgz", + "integrity": "sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==", "dev": true, - "license": "MIT" + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.3", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.3", + "@babel/types": "^7.23.3", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, - "license": "MIT" + "engines": { + "node": ">=4" + } }, - "node_modules/fastq": { - "version": "1.15.0", + "node_modules/@babel/types": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.3.tgz", + "integrity": "sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==", "dev": true, - "license": "ISC", "dependencies": { - "reusify": "^1.0.4" + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@eslint/eslintrc": { + "version": "1.4.1", + "dev": true, "license": "MIT", "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^12.20 || >= 14.13" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/file-entry-cache": { - "version": "6.0.1", + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^3.0.4" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "*" } }, - "node_modules/fill-range": { - "version": "7.0.1", + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.8", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "to-regex-range": "^5.0.1" + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" }, "engines": { - "node": ">=8" + "node": ">=10.10.0" } }, - "node_modules/finalhandler": { - "version": "1.2.0", + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, "license": "MIT", "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">= 0.8" + "node": "*" } }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "dev": true, + "license": "BSD-3-Clause" }, - "node_modules/find-up": { - "version": "5.0.0", + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, - "license": "MIT", "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/flat-cache": { - "version": "3.0.4", + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, - "license": "MIT", "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=8" } }, - "node_modules/flatted": { - "version": "3.2.7", + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, - "license": "ISC" + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } }, - "node_modules/for-each": { - "version": "0.3.3", + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "license": "MIT", "dependencies": { - "is-callable": "^1.1.3" + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "license": "MIT", + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, "dependencies": { - "fetch-blob": "^3.1.2" + "p-try": "^2.0.0" }, "engines": { - "node": ">=12.20.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/forwarded": { - "version": "0.2.0", - "license": "MIT", + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/fresh": { - "version": "0.5.2", - "license": "MIT", + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "license": "ISC" + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "node_modules/function-bind": { - "version": "1.1.1", - "license": "MIT" + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/function.prototype.name": { - "version": "1.1.5", + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/functions-have-names": { - "version": "1.2.3", + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/get-intrinsic": { - "version": "1.1.3", - "license": "MIT", + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/get-stream": { - "version": "6.0.1", + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, - "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3" + }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/get-symbol-description": { - "version": "1.0.0", + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/glob": { - "version": "8.0.3", - "license": "ISC", + "node_modules/@jest/reporters/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@jest/reporters/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=12" + "node": "*" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/glob-parent": { - "version": "6.0.2", + "node_modules/@jest/reporters/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "ISC", "dependencies": { - "is-glob": "^4.0.3" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=10.13.0" + "node": "*" } }, - "node_modules/globals": { - "version": "13.19.0", + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, - "license": "MIT", "dependencies": { - "type-fest": "^0.20.2" + "@sinclair/typebox": "^0.27.8" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/globalthis": { - "version": "1.0.3", + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, - "license": "MIT", "dependencies": { - "define-properties": "^1.1.3" + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/gopd": { - "version": "1.0.1", + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, - "license": "MIT", "dependencies": { - "get-intrinsic": "^1.1.3" + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "license": "ISC" - }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, - "license": "MIT" - }, - "node_modules/handlebars": { - "version": "4.7.7", - "license": "MIT", "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" }, "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/has": { - "version": "1.0.3", - "license": "MIT", + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, "dependencies": { - "function-bind": "^1.1.1" + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" }, "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/has-flag": { - "version": "4.0.0", + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, - "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, - "license": "MIT", "dependencies": { - "get-intrinsic": "^1.1.1" + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=6.0.0" } }, - "node_modules/has-proto": { - "version": "1.0.1", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", "dev": true, - "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6.0.0" } }, - "node_modules/has-symbols": { - "version": "1.0.3", - "license": "MIT", + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6.0.0" } }, - "node_modules/has-tostringtag": { - "version": "1.0.0", + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", "dev": true, - "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/http-errors": { - "version": "2.0.0", + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "dev": true, "license": "MIT", "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { - "node": ">= 0.8" + "node": ">= 8" } }, - "node_modules/human-signals": { - "version": "3.0.1", + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/husky": { - "version": "8.0.3", "license": "MIT", - "bin": { - "husky": "lib/bin.js" - }, "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" + "node": ">= 8" } }, - "node_modules/iconv-lite": { - "version": "0.4.24", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "dev": true, "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 8" } }, - "node_modules/ignore": { - "version": "5.2.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true }, - "node_modules/import-fresh": { - "version": "3.3.0", + "node_modules/@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", "dev": true, - "license": "MIT", "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type-detect": "4.0.8" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" + "dependencies": { + "@sinonjs/commons": "^3.0.0" } }, - "node_modules/indent-string": { - "version": "4.0.0", + "node_modules/@types/babel__core": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.4.tgz", + "integrity": "sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" } }, - "node_modules/inflight": { - "version": "1.0.6", - "license": "ISC", + "node_modules/@types/babel__generator": { + "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz", + "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==", + "dev": true, "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "@babel/types": "^7.0.0" } }, - "node_modules/inherits": { - "version": "2.0.4", - "license": "ISC" - }, - "node_modules/internal-slot": { - "version": "1.0.4", + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, - "license": "MIT", "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "license": "MIT", - "engines": { - "node": ">= 0.10" + "node_modules/@types/babel__traverse": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", + "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" } }, - "node_modules/is-array-buffer": { - "version": "3.0.1", + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-typed-array": "^1.1.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@types/node": "*" } }, - "node_modules/is-bigint": { - "version": "1.0.4", + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "dev": true, - "license": "MIT", "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@types/istanbul-lib-coverage": "*" } }, - "node_modules/is-boolean-object": { - "version": "1.1.2", + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@types/istanbul-lib-report": "*" } }, - "node_modules/is-buffer": { - "version": "1.1.6", + "node_modules/@types/json5": { + "version": "0.0.29", + "dev": true, "license": "MIT" }, - "node_modules/is-callable": { - "version": "1.2.7", + "node_modules/@types/node": { + "version": "20.9.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.0.tgz", + "integrity": "sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "undici-types": "~5.26.4" } }, - "node_modules/is-core-module": { - "version": "2.11.0", + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "node_modules/@types/yargs": { + "version": "17.0.31", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.31.tgz", + "integrity": "sha512-bocYSx4DI8TmdlvxqGpVNXOgCNR1Jj0gNPhhAY+iz1rgKDAaYrAYdFYnhDV1IFuiuVc9HkOwyDcFxaTElF3/wg==", "dev": true, - "license": "MIT", "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@types/yargs-parser": "*" } }, - "node_modules/is-date-object": { - "version": "1.0.5", - "dev": true, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.6" } }, - "node_modules/is-extglob": { - "version": "2.1.1", + "node_modules/acorn": { + "version": "8.8.1", "dev": true, "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, "engines": { - "node": ">=0.10.0" + "node": ">=0.4.0" } }, - "node_modules/is-fullwidth-code-point": { - "version": "4.0.0", + "node_modules/acorn-jsx": { + "version": "5.3.2", "dev": true, "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/is-glob": { - "version": "4.0.3", + "node_modules/aggregate-error": { + "version": "3.1.0", "dev": true, "license": "MIT", "dependencies": { - "is-extglob": "^2.1.1" + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/is-negative-zero": { - "version": "2.0.2", + "node_modules/ajv": { + "version": "6.12.6", "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.4" + "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" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/is-number": { - "version": "7.0.0", + "node_modules/ansi-escapes": { + "version": "4.3.2", "dev": true, "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, "engines": { - "node": ">=0.12.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-number-object": { - "version": "1.0.7", + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", + "node_modules/ansi-regex": { + "version": "5.0.1", "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/is-regex": { - "version": "1.1.4", + "node_modules/ansi-styles": { + "version": "4.3.0", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "3.0.0", - "dev": true, - "license": "MIT", "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 8" } }, - "node_modules/is-string": { - "version": "1.0.7", + "node_modules/argparse": { + "version": "2.0.1", + "license": "Python-2.0" + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "license": "MIT" + }, + "node_modules/array-includes": { + "version": "3.1.6", "dev": true, "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" }, "engines": { "node": ">= 0.4" @@ -2088,12 +2824,15 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-symbol": { - "version": "1.0.4", + "node_modules/array.prototype.flat": { + "version": "1.3.1", "dev": true, "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -2102,16 +2841,15 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-typed-array": { - "version": "1.1.10", + "node_modules/array.prototype.flatmap": { + "version": "1.3.1", "dev": true, "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -2120,943 +2858,1150 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-weakref": { - "version": "1.0.2", + "node_modules/astral-regex": { + "version": "2.0.0", "dev": true, "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=8" } }, - "node_modules/isexe": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/js-sdsl": { - "version": "4.2.0", + "node_modules/available-typed-arrays": { + "version": "1.0.5", "dev": true, "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/js-yaml": { - "version": "4.1.0", + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, - "license": "MIT", "dependencies": { - "argparse": "^2.0.1" + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" } }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/json5": { - "version": "1.0.2", + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, - "license": "MIT", "dependencies": { - "minimist": "^1.2.0" + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" }, - "bin": { - "json5": "lib/cli.js" + "engines": { + "node": ">=8" } }, - "node_modules/levn": { - "version": "0.4.1", + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, - "license": "MIT", "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "node_modules/lilconfig": { - "version": "2.0.6", + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", "dev": true, - "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/linkify-it": { - "version": "4.0.1", - "license": "MIT", + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", + "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", + "dev": true, "dependencies": { - "uc.micro": "^1.0.1" + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.3", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/lint-staged": { - "version": "13.1.0", + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz", + "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==", "dev": true, - "license": "MIT", "dependencies": { - "cli-truncate": "^3.1.0", - "colorette": "^2.0.19", - "commander": "^9.4.1", - "debug": "^4.3.4", - "execa": "^6.1.0", - "lilconfig": "2.0.6", - "listr2": "^5.0.5", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-inspect": "^1.12.2", - "pidtree": "^0.6.0", - "string-argv": "^0.3.1", - "yaml": "^2.1.3" - }, - "bin": { - "lint-staged": "bin/lint-staged.js" - }, - "engines": { - "node": "^14.13.1 || >=16.0.0" + "@babel/helper-define-polyfill-provider": "^0.4.3", + "core-js-compat": "^3.33.1" }, - "funding": { - "url": "https://opencollective.com/lint-staged" + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/listr2": { - "version": "5.0.7", + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", + "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", "dev": true, - "license": "MIT", "dependencies": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.19", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rfdc": "^1.3.0", - "rxjs": "^7.8.0", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": "^14.13.1 || >=16.0.0" + "@babel/helper-define-polyfill-provider": "^0.4.3" }, "peerDependencies": { - "enquirer": ">= 2.3.0 < 3" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" }, - "peerDependenciesMeta": { - "enquirer": { - "optional": true - } + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/listr2/node_modules/cli-truncate": { - "version": "2.1.0", + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, - "license": "MIT", "dependencies": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/listr2/node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, + "node_modules/balanced-match": { + "version": "1.0.2", "license": "MIT" }, - "node_modules/listr2/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, + "node_modules/basic-auth": { + "version": "2.0.1", "license": "MIT", + "dependencies": { + "safe-buffer": "5.1.2" + }, "engines": { - "node": ">=8" + "node": ">= 0.8" } }, - "node_modules/listr2/node_modules/slice-ansi": { - "version": "3.0.0", - "dev": true, + "node_modules/basic-auth/node_modules/safe-buffer": { + "version": "5.1.2", + "license": "MIT" + }, + "node_modules/body-parser": { + "version": "1.20.1", "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, "engines": { - "node": ">=8" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/listr2/node_modules/string-width": { - "version": "4.2.3", + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", "dev": true, "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "fill-range": "^7.0.1" }, "engines": { "node": ">=8" } }, - "node_modules/locate-path": { - "version": "6.0.0", + "node_modules/browserslist": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", "dev": true, - "license": "MIT", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "p-locate": "^5.0.0" + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" }, - "engines": { - "node": ">=10" + "bin": { + "browserslist": "cli.js" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/lodash.merge": { - "version": "4.6.2", + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, - "license": "MIT" + "dependencies": { + "node-int64": "^0.4.0" + } }, - "node_modules/log-update": { - "version": "4.0.0", + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/builtins": { + "version": "5.0.1", "dev": true, "license": "MIT", "dependencies": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" + "semver": "^7.0.0" + } + }, + "node_modules/builtins/node_modules/semver": { + "version": "7.3.8", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/log-update/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, + "node_modules/bytes": { + "version": "3.1.2", "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.8" } }, - "node_modules/log-update/node_modules/slice-ansi": { - "version": "4.0.0", - "dev": true, + "node_modules/call-bind": { + "version": "1.0.2", "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" }, "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/log-update/node_modules/string-width": { - "version": "4.2.3", + "node_modules/callsites": { + "version": "3.1.0", "dev": true, "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/log-update/node_modules/wrap-ansi": { - "version": "6.2.0", + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/lru-cache": { - "version": "6.0.0", + "node_modules/caniuse-lite": { + "version": "1.0.30001561", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001561.tgz", + "integrity": "sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==", "dev": true, - "license": "ISC", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/markdown-it": { - "version": "13.0.1", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1", - "entities": "~3.0.1", - "linkify-it": "^4.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - }, - "bin": { - "markdown-it": "bin/markdown-it.js" + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" } }, - "node_modules/md5": { - "version": "2.3.0", + "node_modules/charenc": { + "version": "0.0.2", "license": "BSD-3-Clause", - "dependencies": { - "charenc": "0.0.2", - "crypt": "0.0.2", - "is-buffer": "~1.1.6" + "engines": { + "node": "*" } }, - "node_modules/mdurl": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/media-typer": { - "version": "0.3.0", - "license": "MIT", + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "license": "MIT" + "node_modules/cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "dev": true }, - "node_modules/merge-stream": { - "version": "2.0.0", + "node_modules/clean-stack": { + "version": "2.2.0", "dev": true, - "license": "MIT" - }, - "node_modules/methods": { - "version": "1.1.2", "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=6" } }, - "node_modules/micromatch": { - "version": "4.0.5", + "node_modules/cli-cursor": { + "version": "3.1.0", "dev": true, "license": "MIT", "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" + "restore-cursor": "^3.1.0" }, "engines": { - "node": ">=8.6" + "node": ">=8" } }, - "node_modules/mime": { - "version": "1.6.0", + "node_modules/cli-truncate": { + "version": "3.1.0", + "dev": true, "license": "MIT", - "bin": { - "mime": "cli.js" + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" }, "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mime-types": { - "version": "2.1.35", - "license": "MIT", + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, "dependencies": { - "mime-db": "1.52.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">= 0.6" + "node": ">=12" } }, - "node_modules/mimic-fn": { - "version": "4.0.0", + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/minimatch": { - "version": "5.1.0", - "license": "ISC", + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "dependencies": { - "brace-expansion": "^2.0.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/minimist": { - "version": "1.2.7", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" } }, - "node_modules/moment": { - "version": "2.29.4", + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, + "node_modules/color-convert": { + "version": "2.0.1", + "dev": true, "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": "*" + "node": ">=7.0.0" } }, - "node_modules/ms": { - "version": "2.1.2", + "node_modules/color-name": { + "version": "1.1.4", + "dev": true, "license": "MIT" }, - "node_modules/natural-compare": { - "version": "1.4.0", + "node_modules/colorette": { + "version": "2.0.19", "dev": true, "license": "MIT" }, - "node_modules/negotiator": { - "version": "0.6.3", + "node_modules/commander": { + "version": "9.5.0", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": "^12.20.0 || >=14" } }, - "node_modules/neo-async": { - "version": "2.6.2", + "node_modules/concat-map": { + "version": "0.0.1", + "dev": true, "license": "MIT" }, - "node_modules/node-domexception": { - "version": "1.0.0", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], + "node_modules/content-disposition": { + "version": "0.5.4", "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, "engines": { - "node": ">=10.5.0" + "node": ">= 0.6" } }, - "node_modules/node-fetch": { - "version": "3.3.0", + "node_modules/content-type": { + "version": "1.0.4", "license": "MIT", - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" + "node": ">= 0.6" } }, - "node_modules/normalize-path": { - "version": "3.0.0", - "dev": true, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.5.0", "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">= 0.6" } }, - "node_modules/npm-run-path": { - "version": "5.1.0", - "dev": true, + "node_modules/cookie-parser": { + "version": "1.4.6", "license": "MIT", "dependencies": { - "path-key": "^4.0.0" + "cookie": "0.4.1", + "cookie-signature": "1.0.6" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.8.0" } }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "4.0.0", - "dev": true, + "node_modules/cookie-parser/node_modules/cookie": { + "version": "0.4.1", "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.6" } }, - "node_modules/object-assign": { - "version": "4.1.1", + "node_modules/cookie-signature": { + "version": "1.0.6", + "license": "MIT" + }, + "node_modules/copy-env-cli": { + "version": "1.0.0", "license": "MIT", - "engines": { - "node": ">=0.10.0" + "bin": { + "copy-env-cli": "bin.js" } }, - "node_modules/object-inspect": { - "version": "1.12.2", - "license": "MIT", + "node_modules/core-js-compat": { + "version": "3.33.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.2.tgz", + "integrity": "sha512-axfo+wxFVxnqf8RvxTzoAlzW4gRoacrHeoFlc9n0x50+7BEyZL/Rt3hicaED1/CEd7I6tPCPVUYcJwCMO5XUYw==", + "dev": true, + "dependencies": { + "browserslist": "^4.22.1" + }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, - "node_modules/object-keys": { - "version": "1.1.1", - "dev": true, + "node_modules/cors": { + "version": "2.8.5", "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, "engines": { - "node": ">= 0.4" + "node": ">= 0.10" } }, - "node_modules/object.assign": { - "version": "4.1.4", + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" }, - "engines": { - "node": ">= 0.4" + "bin": { + "create-jest": "bin/create-jest.js" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/object.values": { - "version": "1.1.6", + "node_modules/cross-spawn": { + "version": "7.0.3", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 8" } }, - "node_modules/on-finished": { - "version": "2.4.1", - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, + "node_modules/crypt": { + "version": "0.0.2", + "license": "BSD-3-Clause", "engines": { - "node": ">= 0.8" + "node": "*" } }, - "node_modules/once": { - "version": "1.4.0", - "license": "ISC", - "dependencies": { - "wrappy": "1" + "node_modules/data-uri-to-buffer": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">= 12" } }, - "node_modules/onetime": { - "version": "6.0.0", - "dev": true, + "node_modules/debug": { + "version": "4.3.4", "license": "MIT", "dependencies": { - "mimic-fn": "^4.0.0" + "ms": "2.1.2" }, "engines": { - "node": ">=12" + "node": ">=6.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/optionator": { - "version": "0.9.1", + "node_modules/dedent": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", + "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" }, - "engines": { - "node": ">= 0.8.0" + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } } }, - "node_modules/p-limit": { - "version": "3.1.0", + "node_modules/deep-is": { + "version": "0.1.4", "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, - "node_modules/p-locate": { - "version": "5.0.0", + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/p-map": { - "version": "4.0.0", + "node_modules/define-properties": { + "version": "1.1.4", "dev": true, "license": "MIT", "dependencies": { - "aggregate-error": "^3.0.0" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/parent-module": { - "version": "1.0.1", - "dev": true, + "node_modules/depd": { + "version": "2.0.0", "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, "engines": { - "node": ">=6" + "node": ">= 0.8" } }, - "node_modules/parseurl": { - "version": "1.3.3", + "node_modules/destroy": { + "version": "1.2.0", "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/path-exists": { - "version": "4.0.0", + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, - "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/path-key": { - "version": "3.1.1", + "node_modules/doctrine": { + "version": "3.0.0", "dev": true, - "license": "MIT", + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, "engines": { - "node": ">=8" + "node": ">=6.0.0" } }, - "node_modules/path-parse": { - "version": "1.0.7", + "node_modules/dotenv": { + "version": "16.0.3", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", "dev": true, "license": "MIT" }, - "node_modules/path-to-regexp": { - "version": "0.1.7", + "node_modules/ee-first": { + "version": "1.1.1", "license": "MIT" }, - "node_modules/picomatch": { - "version": "2.3.1", + "node_modules/electron-to-chromium": { + "version": "1.4.581", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.581.tgz", + "integrity": "sha512-6uhqWBIapTJUxgPTCHH9sqdbxIMPt7oXl0VcAL1kOtlU6aECdcMncCrX5Z7sHQ/invtrC9jUQUef7+HhO8vVFw==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, - "license": "MIT", "engines": { - "node": ">=8.6" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, - "node_modules/pidtree": { - "version": "0.6.0", + "node_modules/emoji-regex": { + "version": "9.2.2", "dev": true, + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "1.0.2", "license": "MIT", - "bin": { - "pidtree": "bin/pidtree.js" - }, "engines": { - "node": ">=0.10" + "node": ">= 0.8" } }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "dev": true, - "license": "MIT", + "node_modules/entities": { + "version": "3.0.1", + "license": "BSD-2-Clause", "engines": { - "node": ">= 0.8.0" + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/prettier": { - "version": "2.8.3", + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.21.1", "dev": true, "license": "MIT", - "bin": { - "prettier": "bin-prettier.js" + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.4", + "is-array-buffer": "^3.0.1", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" }, "engines": { - "node": ">=10.13.0" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/proxy-addr": { - "version": "2.0.7", + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "dev": true, "license": "MIT", "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">= 0.10" + "node": ">= 0.4" } }, - "node_modules/punycode": { - "version": "2.2.0", + "node_modules/es-shim-unscopables": { + "version": "1.0.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=6" + "dependencies": { + "has": "^1.0.3" } }, - "node_modules/qs": { - "version": "6.11.0", - "license": "BSD-3-Clause", + "node_modules/es-to-primitive": { + "version": "1.2.1", + "dev": true, + "license": "MIT", "dependencies": { - "side-channel": "^1.0.4" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" }, "engines": { - "node": ">=0.6" + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/queue-microtask": { - "version": "1.2.3", + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/queue-promise": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/queue-promise/-/queue-promise-2.2.1.tgz", - "integrity": "sha512-C3eyRwLF9m6dPV4MtqMVFX+Xmc7keZ9Ievm3jJ/wWM5t3uVbFnGsJXwpYzZ4LaIEcX9bss/mdaKzyrO6xheRuA==", "engines": { - "node": ">=8.12.0" + "node": ">=6" } }, - "node_modules/range-parser": { - "version": "1.2.1", + "node_modules/escape-html": { + "version": "1.0.3", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/raw-body": { - "version": "2.5.1", + "node_modules/eslint": { + "version": "8.32.0", + "dev": true, "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "@eslint/eslintrc": "^1.4.1", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" }, "engines": { - "node": ">= 0.8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/regexp.prototype.flags": { - "version": "1.4.3", + "node_modules/eslint-config-prettier": { + "version": "8.6.0", "dev": true, "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" + "bin": { + "eslint-config-prettier": "bin/cli.js" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "eslint": ">=7.0.0" } }, - "node_modules/regexpp": { - "version": "3.2.0", + "node_modules/eslint-config-standard": { + "version": "17.0.0", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" + "peerDependencies": { + "eslint": "^8.0.1", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-n": "^15.0.0", + "eslint-plugin-promise": "^6.0.0" } }, - "node_modules/resolve": { - "version": "1.22.1", + "node_modules/eslint-import-resolver-node": { + "version": "0.3.7", "dev": true, "license": "MIT", "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" } }, - "node_modules/resolve-from": { - "version": "4.0.0", + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", "dev": true, "license": "MIT", - "engines": { - "node": ">=4" + "dependencies": { + "ms": "^2.1.1" } }, - "node_modules/restore-cursor": { - "version": "3.1.0", + "node_modules/eslint-module-utils": { + "version": "2.7.4", "dev": true, "license": "MIT", "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "debug": "^3.2.7" }, "engines": { - "node": ">=8" + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, - "node_modules/restore-cursor/node_modules/mimic-fn": { - "version": "2.1.0", + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", "dev": true, "license": "MIT", - "engines": { - "node": ">=6" + "dependencies": { + "ms": "^2.1.1" } }, - "node_modules/restore-cursor/node_modules/onetime": { - "version": "5.1.2", + "node_modules/eslint-plugin-es": { + "version": "4.1.0", "dev": true, "license": "MIT", "dependencies": { - "mimic-fn": "^2.1.0" + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" }, "engines": { - "node": ">=6" + "node": ">=8.10.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" } }, - "node_modules/reusify": { - "version": "1.0.4", + "node_modules/eslint-plugin-es/node_modules/eslint-utils": { + "version": "2.1.0", "dev": true, "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" } }, - "node_modules/rfdc": { + "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { "version": "1.3.0", "dev": true, - "license": "MIT" + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } }, - "node_modules/rimraf": { - "version": "3.0.2", + "node_modules/eslint-plugin-import": { + "version": "2.27.5", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "glob": "^7.1.3" + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", + "has": "^1.0.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", + "tsconfig-paths": "^3.14.1" }, - "bin": { - "rimraf": "bin.js" + "engines": { + "node": ">=4" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" } }, - "node_modules/rimraf/node_modules/brace-expansion": { + "node_modules/eslint-plugin-import/node_modules/brace-expansion": { "version": "1.1.11", "dev": true, "license": "MIT", @@ -3065,26 +4010,26 @@ "concat-map": "0.0.1" } }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=0.10.0" } }, - "node_modules/rimraf/node_modules/minimatch": { + "node_modules/eslint-plugin-import/node_modules/minimatch": { "version": "3.1.2", "dev": true, "license": "ISC", @@ -3095,664 +4040,5674 @@ "node": "*" } }, - "node_modules/rss-generator": { - "version": "0.0.3", + "node_modules/eslint-plugin-n": { + "version": "15.6.1", + "dev": true, "license": "MIT", "dependencies": { - "mime-types": "2.1.13", - "moment": "^2.19.1", - "xml": "1.0.1" - } - }, - "node_modules/rss-generator/node_modules/mime-db": { - "version": "1.25.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/rss-generator/node_modules/mime-types": { - "version": "2.1.13", - "license": "MIT", - "dependencies": { - "mime-db": "~1.25.0" + "builtins": "^5.0.1", + "eslint-plugin-es": "^4.1.0", + "eslint-utils": "^3.0.0", + "ignore": "^5.1.1", + "is-core-module": "^2.11.0", + "minimatch": "^3.1.2", + "resolve": "^1.22.1", + "semver": "^7.3.8" }, "engines": { - "node": ">= 0.6" + "node": ">=12.22.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=7.0.0" } }, - "node_modules/run-parallel": { - "version": "1.2.0", + "node_modules/eslint-plugin-n/node_modules/brace-expansion": { + "version": "1.1.11", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], "license": "MIT", "dependencies": { - "queue-microtask": "^1.2.2" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/rxjs": { - "version": "7.8.0", + "node_modules/eslint-plugin-n/node_modules/minimatch": { + "version": "3.1.2", "dev": true, - "license": "Apache-2.0", + "license": "ISC", "dependencies": { - "tslib": "^2.1.0" + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safe-regex-test": { - "version": "1.0.0", + "node_modules/eslint-plugin-n/node_modules/semver": { + "version": "7.3.8", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" + "lru-cache": "^6.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "license": "MIT" - }, - "node_modules/semver": { - "version": "6.3.0", + "node_modules/eslint-plugin-promise": { + "version": "6.1.1", "dev": true, "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" } }, - "node_modules/send": { - "version": "0.18.0", - "license": "MIT", + "node_modules/eslint-scope": { + "version": "7.1.1", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "license": "MIT" - }, - "node_modules/serve-static": { - "version": "1.15.0", + "node_modules/eslint-utils": { + "version": "3.0.0", + "dev": true, "license": "MIT", "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" + "eslint-visitor-keys": "^2.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" } }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "license": "ISC" - }, - "node_modules/shebang-command": { - "version": "2.0.0", + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, + "license": "Apache-2.0", "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/shebang-regex": { - "version": "3.0.0", + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "engines": { - "node": ">=8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/side-channel": { - "version": "1.0.4", + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/signal-exit": { - "version": "3.0.7", + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", "dev": true, - "license": "ISC" + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } }, - "node_modules/slice-ansi": { - "version": "5.0.0", + "node_modules/espree": { + "version": "9.4.1", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" }, "engines": { - "node": ">=12" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "url": "https://opencollective.com/eslint" } }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "6.2.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==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "engines": { + "node": ">=4" } }, - "node_modules/source-map": { - "version": "0.6.1", + "node_modules/esquery": { + "version": "1.4.0", + "dev": true, "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=0.10" } }, - "node_modules/statuses": { - "version": "2.0.1", - "license": "MIT", + "node_modules/esrecurse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, "engines": { - "node": ">= 0.8" + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/execa": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/express": { + "version": "4.18.2", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express-basic-auth": { + "version": "1.2.1", + "license": "MIT", + "dependencies": { + "basic-auth": "^2.0.1" + } + }, + "node_modules/express-handlebars": { + "version": "6.0.6", + "license": "BSD-3-Clause", + "dependencies": { + "glob": "^8.0.2", + "graceful-fs": "^4.2.10", + "handlebars": "^4.7.7" + }, + "engines": { + "node": ">=v12.22.9" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.15.0", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/find-up": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "license": "MIT", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "license": "MIT" + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.3", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "8.0.3", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.19.0", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "license": "ISC" + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "dev": true, + "license": "MIT" + }, + "node_modules/handlebars": { + "version": "4.7.7", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/has": { + "version": "1.0.3", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/human-signals": { + "version": "3.0.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/husky": { + "version": "8.0.3", + "license": "MIT", + "bin": { + "husky": "lib/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.2.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "license": "MIT" + }, + "node_modules/is-callable": { + "version": "1.2.7", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.10", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", + "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-changed-files/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/jest-changed-files/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/jest-changed-files/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-changed-files/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/jest-changed-files/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-changed-files/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-changed-files/node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/jest-config/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-config/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/jest-runtime/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-runtime/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jest-runtime/node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-sdsl": { + "version": "4.2.0", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.0.6", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/linkify-it": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/lint-staged": { + "version": "13.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cli-truncate": "^3.1.0", + "colorette": "^2.0.19", + "commander": "^9.4.1", + "debug": "^4.3.4", + "execa": "^6.1.0", + "lilconfig": "2.0.6", + "listr2": "^5.0.5", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-inspect": "^1.12.2", + "pidtree": "^0.6.0", + "string-argv": "^0.3.1", + "yaml": "^2.1.3" + }, + "bin": { + "lint-staged": "bin/lint-staged.js" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/lint-staged" + } + }, + "node_modules/listr2": { + "version": "5.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.19", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.8.0", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } + } + }, + "node_modules/listr2/node_modules/cli-truncate": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/listr2/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/listr2/node_modules/slice-ansi": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/listr2/node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "dev": true, + "license": "MIT" + }, + "node_modules/log-update": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "6.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/markdown-it": { + "version": "13.0.1", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "~3.0.1", + "linkify-it": "^4.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/md5": { + "version": "2.3.0", + "license": "BSD-3-Clause", + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "node_modules/mdurl": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/methods": { + "version": "1.1.2", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "5.1.0", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/minimist": { + "version": "1.2.7", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/moment": { + "version": "2.29.4", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "license": "MIT" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "license": "MIT" + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.0", + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "dev": true, + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.6.0", + "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.8.3", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/punycode": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pure-rand": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", + "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, + "node_modules/qs": { + "version": "6.11.0", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/queue-promise": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/queue-promise/-/queue-promise-2.2.1.tgz", + "integrity": "sha512-C3eyRwLF9m6dPV4MtqMVFX+Xmc7keZ9Ievm3jJ/wWM5t3uVbFnGsJXwpYzZ4LaIEcX9bss/mdaKzyrO6xheRuA==", + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/restore-cursor/node_modules/mimic-fn": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/restore-cursor/node_modules/onetime": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/rimraf": { + "version": "3.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/rss-generator": { + "version": "0.0.3", + "license": "MIT", + "dependencies": { + "mime-types": "2.1.13", + "moment": "^2.19.1", + "xml": "1.0.1" + } + }, + "node_modules/rss-generator/node_modules/mime-db": { + "version": "1.25.0", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/rss-generator/node_modules/mime-types": { + "version": "2.1.13", + "license": "MIT", + "dependencies": { + "mime-db": "~1.25.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "0.18.0", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "license": "MIT" + }, + "node_modules/serve-static": { + "version": "1.15.0", + "license": "MIT", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "license": "ISC" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "dev": true, + "license": "ISC" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string-argv": { + "version": "0.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/through": { + "version": "2.3.8", + "dev": true, + "license": "MIT" + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "2.4.1", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/uc.micro": { + "version": "1.0.6", + "license": "MIT" + }, + "node_modules/uglify-js": { + "version": "3.17.4", + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz", + "integrity": "sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.2.1", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/which": { + "version": "2.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.9", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/xml": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.2.1", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "dev": true, + "requires": { + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/compat-data": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz", + "integrity": "sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==", + "dev": true + }, + "@babel/core": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz", + "integrity": "sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.3", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.3", + "@babel/types": "^7.23.3", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "dependencies": { + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.3.tgz", + "integrity": "sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==", + "dev": true, + "requires": { + "@babel/types": "^7.23.3", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.15" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", + "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", + "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "requires": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dev": true, + "requires": { + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "requires": { + "@babel/types": "^7.22.15" + } + }, + "@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + } + }, + "@babel/helper-replace-supers": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" + } + }, + "@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" + } + }, + "@babel/helpers": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", + "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", + "dev": true, + "requires": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0" + } + }, + "@babel/highlight": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.3.tgz", + "integrity": "sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==", + "dev": true + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.23.3" + } + }, + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz", + "integrity": "sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "requires": {} + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", + "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-syntax-import-attributes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", + "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-async-generator-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.3.tgz", + "integrity": "sha512-59GsVNavGxAXCDDbakWSMJhajASb4kBCqDjqJsv+p5nKdbz7istmZ3HrX3L2LuiI80+zsOADCvooqQH3qGCucQ==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", + "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.3.tgz", + "integrity": "sha512-QPZxHrThbQia7UdvfpaRRlq/J9ciz1J4go0k+lPBXbgaNeY7IQrBj/9ceWjvMMI07/ZBzHl/F0R/2K0qH7jCVw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-class-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", + "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-class-static-block": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.3.tgz", + "integrity": "sha512-PENDVxdr7ZxKPyi5Ffc0LjXdnJyrJxyqF5T5YjlVg4a0VFfQHW0r8iAtRiDXkfHlu1wwcvdtnndGYIeJLSuRMQ==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.3.tgz", + "integrity": "sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "dependencies": { + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + } + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.15" } }, - "node_modules/string-argv": { - "version": "0.3.1", + "@babel/plugin-transform-destructuring": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6.19" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/string-width": { - "version": "5.1.2", + "@babel/plugin-transform-dotall-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", + "@babel/plugin-transform-duplicate-keys": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.0.1", + "@babel/plugin-transform-dynamic-import": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.3.tgz", + "integrity": "sha512-vTG+cTGxPFou12Rj7ll+eD5yWeNl5/8xvQvF08y5Gv3v4mZQoyFf8/n9zg4q5vvCWt5jmgymfzMAldO7orBn7A==", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" } }, - "node_modules/string.prototype.trimend": { - "version": "1.0.6", + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.6", + "@babel/plugin-transform-export-namespace-from": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.3.tgz", + "integrity": "sha512-yCLhW34wpJWRdTxxWtFZASJisihrfyMOTOQexhVzA78jlU+dH7Dw+zQgcPepQ5F3C6bAIiblZZ+qBggJdHiBAg==", "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, - "node_modules/strip-ansi": { - "version": "6.0.1", + "@babel/plugin-transform-for-of": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz", + "integrity": "sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/strip-bom": { - "version": "3.0.0", + "@babel/plugin-transform-function-name": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" + "requires": { + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/strip-final-newline": { - "version": "3.0.0", + "@babel/plugin-transform-json-strings": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.3.tgz", + "integrity": "sha512-H9Ej2OiISIZowZHaBwF0tsJOih1PftXJtE8EWqlEIwpc7LMTGq0rPOrywKLQ4nefzx8/HMR0D3JGXoMHYvhi0A==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", + "@babel/plugin-transform-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/supports-color": { - "version": "7.2.0", + "@babel/plugin-transform-logical-assignment-operators": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.3.tgz", + "integrity": "sha512-+pD5ZbxofyOygEp+zZAfujY2ShNCXRpDRIPOiBmTO693hhyOEteZgl876Xs9SAHPQpcV0vz8LvA/T+w8AzyX8A==", "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", + "@babel/plugin-transform-member-expression-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/text-table": { - "version": "0.2.0", + "@babel/plugin-transform-modules-amd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", "dev": true, - "license": "MIT" + "requires": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + } }, - "node_modules/through": { - "version": "2.3.8", + "@babel/plugin-transform-modules-commonjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", "dev": true, - "license": "MIT" + "requires": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + } }, - "node_modules/to-regex-range": { - "version": "5.0.1", + "@babel/plugin-transform-modules-systemjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", + "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" + "requires": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" } }, - "node_modules/toidentifier": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=0.6" + "@babel/plugin-transform-modules-umd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/tsconfig-paths": { - "version": "3.14.1", + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", "dev": true, - "license": "MIT", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/tslib": { - "version": "2.4.1", + "@babel/plugin-transform-new-target": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", "dev": true, - "license": "0BSD" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } }, - "node_modules/type-check": { - "version": "0.4.0", + "@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.3.tgz", + "integrity": "sha512-xzg24Lnld4DYIdysyf07zJ1P+iIfJpxtVFOzX4g+bsJ3Ng5Le7rXx9KwqKzuyaUeRnt+I1EICwQITqc0E2PmpA==", "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" } }, - "node_modules/type-fest": { - "version": "0.20.2", + "@babel/plugin-transform-numeric-separator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.3.tgz", + "integrity": "sha512-s9GO7fIBi/BLsZ0v3Rftr6Oe4t0ctJ8h4CCXfPoEJwmvAPMyNrfkOOJzm6b9PX9YXcCJWWQd/sBF/N26eBiMVw==", "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" } }, - "node_modules/type-is": { - "version": "1.6.18", - "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" + "@babel/plugin-transform-object-rest-spread": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.3.tgz", + "integrity": "sha512-VxHt0ANkDmu8TANdE9Kc0rndo/ccsmfe2Cx2y5sI4hu3AukHQ5wAu4cM7j3ba8B9548ijVyclBU+nuDQftZsog==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.23.3" } }, - "node_modules/typed-array-length": { - "version": "1.0.4", + "@babel/plugin-transform-object-super": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20" } }, - "node_modules/uc.micro": { - "version": "1.0.6", - "license": "MIT" + "@babel/plugin-transform-optional-catch-binding": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.3.tgz", + "integrity": "sha512-LxYSb0iLjUamfm7f1D7GpiS4j0UAC8AOiehnsGAP8BEsIX8EOi3qV6bbctw8M7ZvLtcoZfZX5Z7rN9PlWk0m5A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } }, - "node_modules/uglify-js": { - "version": "3.17.4", - "license": "BSD-2-Clause", - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" + "@babel/plugin-transform-optional-chaining": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.3.tgz", + "integrity": "sha512-zvL8vIfIUgMccIAK1lxjvNv572JHFJIKb4MWBz5OGdBQA0fB0Xluix5rmOby48exiJc987neOmP/m9Fnpkz3Tg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, - "node_modules/unbox-primitive": { - "version": "1.0.2", + "@babel/plugin-transform-parameters": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/unpipe": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.8" + "@babel/plugin-transform-private-methods": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", + "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/uri-js": { - "version": "4.4.1", + "@babel/plugin-transform-private-property-in-object": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.3.tgz", + "integrity": "sha512-a5m2oLNFyje2e/rGKjVfAELTVI5mbA0FeZpBnkOWWV7eSmKQ+T/XW0Vf+29ScLzSxX+rnsarvU0oie/4m6hkxA==", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" } }, - "node_modules/utils-merge": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" + "@babel/plugin-transform-property-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/vary": { - "version": "1.1.2", - "license": "MIT", - "engines": { - "node": ">= 0.8" + "@babel/plugin-transform-regenerator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" } }, - "node_modules/web-streams-polyfill": { - "version": "3.2.1", - "license": "MIT", - "engines": { - "node": ">= 8" + "@babel/plugin-transform-reserved-words": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/which": { - "version": "2.0.2", + "@babel/plugin-transform-shorthand-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", + "@babel/plugin-transform-spread": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", "dev": true, - "license": "MIT", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" } }, - "node_modules/which-typed-array": { - "version": "1.1.9", + "@babel/plugin-transform-sticky-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/word-wrap": { - "version": "1.2.3", + "@babel/plugin-transform-template-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/wordwrap": { - "version": "1.0.0", - "license": "MIT" + "@babel/plugin-transform-typeof-symbol": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } }, - "node_modules/wrap-ansi": { - "version": "7.0.0", + "@babel/plugin-transform-unicode-escapes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/wrap-ansi/node_modules/emoji-regex": { - "version": "8.0.0", + "@babel/plugin-transform-unicode-property-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", + "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", "dev": true, - "license": "MIT" + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } }, - "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", + "@babel/plugin-transform-unicode-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "4.2.3", + "@babel/plugin-transform-unicode-sets-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", + "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "license": "ISC" + "@babel/preset-env": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.3.tgz", + "integrity": "sha512-ovzGc2uuyNfNAs/jyjIGxS8arOHS5FENZaNn4rtE7UdKMMkqHCvboHfcuhWLZNX5cB44QfcGNWjaevxMzzMf+Q==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.3", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.23.3", + "@babel/plugin-syntax-import-attributes": "^7.23.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.23.3", + "@babel/plugin-transform-async-generator-functions": "^7.23.3", + "@babel/plugin-transform-async-to-generator": "^7.23.3", + "@babel/plugin-transform-block-scoped-functions": "^7.23.3", + "@babel/plugin-transform-block-scoping": "^7.23.3", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@babel/plugin-transform-class-static-block": "^7.23.3", + "@babel/plugin-transform-classes": "^7.23.3", + "@babel/plugin-transform-computed-properties": "^7.23.3", + "@babel/plugin-transform-destructuring": "^7.23.3", + "@babel/plugin-transform-dotall-regex": "^7.23.3", + "@babel/plugin-transform-duplicate-keys": "^7.23.3", + "@babel/plugin-transform-dynamic-import": "^7.23.3", + "@babel/plugin-transform-exponentiation-operator": "^7.23.3", + "@babel/plugin-transform-export-namespace-from": "^7.23.3", + "@babel/plugin-transform-for-of": "^7.23.3", + "@babel/plugin-transform-function-name": "^7.23.3", + "@babel/plugin-transform-json-strings": "^7.23.3", + "@babel/plugin-transform-literals": "^7.23.3", + "@babel/plugin-transform-logical-assignment-operators": "^7.23.3", + "@babel/plugin-transform-member-expression-literals": "^7.23.3", + "@babel/plugin-transform-modules-amd": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.3", + "@babel/plugin-transform-modules-umd": "^7.23.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.23.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.3", + "@babel/plugin-transform-numeric-separator": "^7.23.3", + "@babel/plugin-transform-object-rest-spread": "^7.23.3", + "@babel/plugin-transform-object-super": "^7.23.3", + "@babel/plugin-transform-optional-catch-binding": "^7.23.3", + "@babel/plugin-transform-optional-chaining": "^7.23.3", + "@babel/plugin-transform-parameters": "^7.23.3", + "@babel/plugin-transform-private-methods": "^7.23.3", + "@babel/plugin-transform-private-property-in-object": "^7.23.3", + "@babel/plugin-transform-property-literals": "^7.23.3", + "@babel/plugin-transform-regenerator": "^7.23.3", + "@babel/plugin-transform-reserved-words": "^7.23.3", + "@babel/plugin-transform-shorthand-properties": "^7.23.3", + "@babel/plugin-transform-spread": "^7.23.3", + "@babel/plugin-transform-sticky-regex": "^7.23.3", + "@babel/plugin-transform-template-literals": "^7.23.3", + "@babel/plugin-transform-typeof-symbol": "^7.23.3", + "@babel/plugin-transform-unicode-escapes": "^7.23.3", + "@babel/plugin-transform-unicode-property-regex": "^7.23.3", + "@babel/plugin-transform-unicode-regex": "^7.23.3", + "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + } + }, + "@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } }, - "node_modules/xml": { - "version": "1.0.1", - "license": "MIT" + "@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true }, - "node_modules/yallist": { - "version": "4.0.0", + "@babel/runtime": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", + "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", "dev": true, - "license": "ISC" + "requires": { + "regenerator-runtime": "^0.14.0" + } }, - "node_modules/yaml": { - "version": "2.2.1", + "@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dev": true, - "license": "ISC", - "engines": { - "node": ">= 14" + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" } }, - "node_modules/yocto-queue": { - "version": "0.1.0", + "@babel/traverse": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.3.tgz", + "integrity": "sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.3", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.3", + "@babel/types": "^7.23.3", + "debug": "^4.1.0", + "globals": "^11.1.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + } } - } - }, - "dependencies": { + }, + "@babel/types": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.3.tgz", + "integrity": "sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, "@eslint/eslintrc": { "version": "1.4.1", "dev": true, @@ -3811,14 +9766,391 @@ } } }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "dev": true + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + } + }, + "@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "requires": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "requires": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + } + }, + "@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "requires": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + } + }, + "@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "requires": { + "jest-get-type": "^29.6.3" + } + }, + "@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + } + }, + "@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "requires": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + } + }, + "@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "requires": { + "@sinclair/typebox": "^0.27.8" + } + }, + "@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + } + }, + "@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "requires": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "requires": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + } + }, + "@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + } + }, + "@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "requires": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", "dev": true }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "dev": true }, + "@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, "@nodelib/fs.scandir": { "version": "2.1.5", "dev": true, @@ -3839,10 +10171,138 @@ "fastq": "^1.6.0" } }, + "@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "requires": { + "@sinonjs/commons": "^3.0.0" + } + }, + "@types/babel__core": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.4.tgz", + "integrity": "sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg==", + "dev": true, + "requires": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz", + "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", + "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", + "dev": true, + "requires": { + "@babel/types": "^7.20.7" + } + }, + "@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, "@types/json5": { "version": "0.0.29", "dev": true }, + "@types/node": { + "version": "20.9.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.0.tgz", + "integrity": "sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==", + "dev": true, + "requires": { + "undici-types": "~5.26.4" + } + }, + "@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "@types/yargs": { + "version": "17.0.31", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.31.tgz", + "integrity": "sha512-bocYSx4DI8TmdlvxqGpVNXOgCNR1Jj0gNPhhAY+iz1rgKDAaYrAYdFYnhDV1IFuiuVc9HkOwyDcFxaTElF3/wg==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, "accepts": { "version": "1.3.8", "requires": { @@ -3901,6 +10361,16 @@ "color-convert": "^2.0.1" } }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, "argparse": { "version": "2.0.1" }, @@ -3946,6 +10416,121 @@ "version": "1.0.5", "dev": true }, + "babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "requires": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + } + }, + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "dependencies": { + "istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + } + } + } + }, + "babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", + "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.3", + "semver": "^6.3.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz", + "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.4.3", + "core-js-compat": "^3.33.1" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", + "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.4.3" + } + }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, "balanced-match": { "version": "1.0.2" }, @@ -4001,6 +10586,33 @@ "fill-range": "^7.0.1" } }, + "browserslist": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, "builtins": { "version": "5.0.1", "dev": true, @@ -4031,6 +10643,18 @@ "version": "3.1.0", "dev": true }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001561", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001561.tgz", + "integrity": "sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==", + "dev": true + }, "chalk": { "version": "4.1.2", "dev": true, @@ -4039,9 +10663,27 @@ "supports-color": "^7.1.0" } }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true + }, "charenc": { "version": "0.0.2" }, + "ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true + }, + "cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "dev": true + }, "clean-stack": { "version": "2.2.0", "dev": true @@ -4061,6 +10703,54 @@ "string-width": "^5.0.0" } }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true + }, + "collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, "color-convert": { "version": "2.0.1", "dev": true, @@ -4093,6 +10783,12 @@ "content-type": { "version": "1.0.4" }, + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, "cookie": { "version": "0.5.0" }, @@ -4114,6 +10810,15 @@ "copy-env-cli": { "version": "1.0.0" }, + "core-js-compat": { + "version": "3.33.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.2.tgz", + "integrity": "sha512-axfo+wxFVxnqf8RvxTzoAlzW4gRoacrHeoFlc9n0x50+7BEyZL/Rt3hicaED1/CEd7I6tPCPVUYcJwCMO5XUYw==", + "dev": true, + "requires": { + "browserslist": "^4.22.1" + } + }, "cors": { "version": "2.8.5", "requires": { @@ -4121,6 +10826,21 @@ "vary": "^1" } }, + "create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + } + }, "cross-spawn": { "version": "7.0.3", "dev": true, @@ -4142,10 +10862,23 @@ "ms": "2.1.2" } }, + "dedent": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", + "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "dev": true, + "requires": {} + }, "deep-is": { "version": "0.1.4", "dev": true }, + "deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true + }, "define-properties": { "version": "1.1.4", "dev": true, @@ -4160,6 +10893,18 @@ "destroy": { "version": "1.2.0" }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + }, + "diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true + }, "doctrine": { "version": "3.0.0", "dev": true, @@ -4177,6 +10922,18 @@ "ee-first": { "version": "1.1.1" }, + "electron-to-chromium": { + "version": "1.4.581", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.581.tgz", + "integrity": "sha512-6uhqWBIapTJUxgPTCHH9sqdbxIMPt7oXl0VcAL1kOtlU6aECdcMncCrX5Z7sHQ/invtrC9jUQUef7+HhO8vVFw==", + "dev": true + }, + "emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true + }, "emoji-regex": { "version": "9.2.2", "dev": true @@ -4187,6 +10944,15 @@ "entities": { "version": "3.0.1" }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, "es-abstract": { "version": "1.21.1", "dev": true, @@ -4251,6 +11017,12 @@ "is-symbol": "^1.0.2" } }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, "escape-html": { "version": "1.0.3" }, @@ -4514,6 +11286,12 @@ "eslint-visitor-keys": "^3.3.0" } }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, "esquery": { "version": "1.4.0", "dev": true, @@ -4554,6 +11332,25 @@ "strip-final-newline": "^3.0.0" } }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true + }, + "expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "requires": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + } + }, "express": { "version": "4.18.2", "requires": { @@ -4634,6 +11431,15 @@ "reusify": "^1.0.4" } }, + "fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, "fetch-blob": { "version": "3.2.0", "requires": { @@ -4720,6 +11526,13 @@ "fs.realpath": { "version": "1.0.0" }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "optional": true + }, "function-bind": { "version": "1.1.1" }, @@ -4737,6 +11550,18 @@ "version": "1.2.3", "dev": true }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, "get-intrinsic": { "version": "1.1.3", "requires": { @@ -4745,6 +11570,12 @@ "has-symbols": "^1.0.3" } }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, "get-stream": { "version": "6.0.1", "dev": true @@ -4847,6 +11678,12 @@ "has-symbols": "^1.0.2" } }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, "http-errors": { "version": "2.0.0", "requires": { @@ -4882,6 +11719,16 @@ "resolve-from": "^4.0.0" } }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, "imurmurhash": { "version": "0.1.4", "dev": true @@ -4921,6 +11768,12 @@ "is-typed-array": "^1.1.10" } }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, "is-bigint": { "version": "1.0.4", "dev": true, @@ -4965,6 +11818,12 @@ "version": "4.0.0", "dev": true }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true + }, "is-glob": { "version": "4.0.3", "dev": true, @@ -5046,10 +11905,652 @@ "version": "2.0.0", "dev": true }, + "istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", + "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "dependencies": { + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + } + }, + "istanbul-reports": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "requires": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + } + }, + "jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "requires": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "dependencies": { + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + } + } + }, + "jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "requires": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + } + }, + "jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "requires": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + } + }, + "jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + } + }, + "jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + } + }, + "jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "requires": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + } + }, + "jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true + }, + "jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + } + }, + "jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "requires": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + } + }, + "jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + } + }, + "jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + } + }, + "jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + } + }, + "jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "requires": {} + }, + "jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true + }, + "jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + } + }, + "jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "requires": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + } + }, + "jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "requires": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + } + }, + "jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "requires": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + } + } + }, + "jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "dependencies": { + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + } + } + }, + "jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "requires": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + } + }, + "jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "requires": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "js-sdsl": { "version": "4.2.0", "dev": true }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, "js-yaml": { "version": "4.1.0", "dev": true, @@ -5057,6 +12558,18 @@ "argparse": "^2.0.1" } }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, "json-schema-traverse": { "version": "0.4.1", "dev": true @@ -5072,6 +12585,18 @@ "minimist": "^1.2.0" } }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, "levn": { "version": "0.4.1", "dev": true, @@ -5084,6 +12609,12 @@ "version": "2.0.6", "dev": true }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, "linkify-it": { "version": "4.0.1", "requires": { @@ -5166,6 +12697,12 @@ "p-locate": "^5.0.0" } }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, "lodash.merge": { "version": "4.6.2", "dev": true @@ -5224,6 +12761,35 @@ "yallist": "^4.0.0" } }, + "make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "requires": { + "semver": "^7.5.3" + }, + "dependencies": { + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "requires": { + "tmpl": "1.0.5" + } + }, "markdown-it": { "version": "13.0.1", "requires": { @@ -5318,6 +12884,18 @@ "formdata-polyfill": "^4.0.10" } }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true + }, "normalize-path": { "version": "3.0.0", "dev": true @@ -5416,6 +12994,12 @@ "aggregate-error": "^3.0.0" } }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, "parent-module": { "version": "1.0.1", "dev": true, @@ -5423,6 +13007,18 @@ "callsites": "^3.0.0" } }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, "parseurl": { "version": "1.3.3" }, @@ -5445,6 +13041,12 @@ "path-to-regexp": { "version": "0.1.7" }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, "picomatch": { "version": "2.3.1", "dev": true @@ -5453,6 +13055,60 @@ "version": "0.6.0", "dev": true }, + "pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + } + } + }, "prelude-ls": { "version": "1.2.1", "dev": true @@ -5461,6 +13117,35 @@ "version": "2.8.3", "dev": true }, + "pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "requires": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, "proxy-addr": { "version": "2.0.7", "requires": { @@ -5472,6 +13157,12 @@ "version": "2.2.0", "dev": true }, + "pure-rand": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", + "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "dev": true + }, "qs": { "version": "6.11.0", "requires": { @@ -5499,6 +13190,42 @@ "unpipe": "1.0.0" } }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", + "dev": true + }, + "regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, "regexp.prototype.flags": { "version": "1.4.3", "dev": true, @@ -5512,6 +13239,43 @@ "version": "3.2.0", "dev": true }, + "regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "requires": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + } + }, + "regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, "resolve": { "version": "1.22.1", "dev": true, @@ -5521,10 +13285,33 @@ "supports-preserve-symlinks-flag": "^1.0.0" } }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, "resolve-from": { "version": "4.0.0", "dev": true }, + "resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true + }, "restore-cursor": { "version": "3.1.0", "dev": true, @@ -5639,7 +13426,9 @@ "version": "2.1.2" }, "semver": { - "version": "6.3.0", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true }, "send": { @@ -5711,6 +13500,18 @@ "version": "3.0.7", "dev": true }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, "slice-ansi": { "version": "5.0.0", "dev": true, @@ -5728,6 +13529,39 @@ "source-map": { "version": "0.6.1" }, + "source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } + } + }, "statuses": { "version": "2.0.1" }, @@ -5735,6 +13569,16 @@ "version": "0.3.1", "dev": true }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, "string-width": { "version": "5.1.2", "dev": true, @@ -5805,6 +13649,52 @@ "version": "1.0.0", "dev": true }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, "text-table": { "version": "0.2.0", "dev": true @@ -5813,6 +13703,18 @@ "version": "2.3.8", "dev": true }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, "to-regex-range": { "version": "5.0.1", "dev": true, @@ -5844,6 +13746,12 @@ "prelude-ls": "^1.2.1" } }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, "type-fest": { "version": "0.20.2", "dev": true @@ -5881,9 +13789,53 @@ "which-boxed-primitive": "^1.0.2" } }, + "undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true + }, "unpipe": { "version": "1.0.0" }, + "update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, "uri-js": { "version": "4.4.1", "dev": true, @@ -5894,9 +13846,29 @@ "utils-merge": { "version": "1.0.1" }, + "v8-to-istanbul": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz", + "integrity": "sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + } + }, "vary": { "version": "1.1.2" }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "requires": { + "makeerror": "1.0.12" + } + }, "web-streams-polyfill": { "version": "3.2.1" }, @@ -5968,9 +13940,25 @@ "wrappy": { "version": "1.0.2" }, + "write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + } + }, "xml": { "version": "1.0.1" }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, "yallist": { "version": "4.0.0", "dev": true @@ -5979,6 +13967,52 @@ "version": "2.2.1", "dev": true }, + "yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + }, "yocto-queue": { "version": "0.1.0", "dev": true diff --git a/package.json b/package.json index 9094d84..559a03c 100644 --- a/package.json +++ b/package.json @@ -52,12 +52,16 @@ "rss-generator": "^0.0.3" }, "devDependencies": { + "@babel/core": "^7.23.3", + "@babel/preset-env": "^7.23.3", + "babel-jest": "^29.7.0", "eslint": "^8.32.0", "eslint-config-prettier": "^8.6.0", "eslint-config-standard": "^17.0.0", "eslint-plugin-import": "^2.27.5", "eslint-plugin-n": "^15.6.1", "eslint-plugin-promise": "^6.1.1", + "jest": "^29.7.0", "lint-staged": "^13.1.0", "prettier": "^2.8.3" }, From 262cb0be339e6dc89a4ac842f7d3eb1ce48241f0 Mon Sep 17 00:00:00 2001 From: Justin Nguyen Date: Sat, 11 Nov 2023 14:51:09 -0800 Subject: [PATCH 002/100] setup tests --- .eslintrc.cjs | 3 +- babel.config.cjs | 3 + jest.config.cjs | 6 + lib/__tests__/account.jest.js | 7 + lib/queue.js | 14 +- package-lock.json | 12662 ++++++++++++++++++++++++++------ package.json | 4 + 7 files changed, 10379 insertions(+), 2320 deletions(-) create mode 100644 babel.config.cjs create mode 100644 jest.config.cjs create mode 100644 lib/__tests__/account.jest.js diff --git a/.eslintrc.cjs b/.eslintrc.cjs index d030347..637c87e 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -12,5 +12,6 @@ module.exports = { sourceType: 'module' }, rules: { - } + }, + ignorePatterns: ["**/*.jest.js"], } diff --git a/babel.config.cjs b/babel.config.cjs new file mode 100644 index 0000000..a1db3ce --- /dev/null +++ b/babel.config.cjs @@ -0,0 +1,3 @@ +module.exports = { + presets: [['@babel/preset-env', {targets: {node: 'current'}}]], +}; \ No newline at end of file diff --git a/jest.config.cjs b/jest.config.cjs new file mode 100644 index 0000000..5dc2dc3 --- /dev/null +++ b/jest.config.cjs @@ -0,0 +1,6 @@ +module.exports = { + fakeTimers: { + enableGlobally: true, + }, + transformIgnorePatterns: [], +} \ No newline at end of file diff --git a/lib/__tests__/account.jest.js b/lib/__tests__/account.jest.js new file mode 100644 index 0000000..c33a4c8 --- /dev/null +++ b/lib/__tests__/account.jest.js @@ -0,0 +1,7 @@ +const account = require('../account'); + +import 'node-fetch'; + +jest.mock('node-fetch', () => jest.fn()); + +test('Check if a post is my post', () => {}); diff --git a/lib/queue.js b/lib/queue.js index de8bd44..6b7a8ec 100644 --- a/lib/queue.js +++ b/lib/queue.js @@ -28,10 +28,14 @@ queue.on('resolve', data => { }); queue.on('reject', error => console.error(error)); -while (queue.shouldRun) { - try { - await queue.dequeue(); - } catch (err) { - console.error(err); +async function runQueue() { + while (queue.shouldRun) { + try { + await queue.dequeue(); + } catch (err) { + console.error(err); + } } } + +runQueue(); diff --git a/package-lock.json b/package-lock.json index 4407a6b..7da2dfc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,12 +29,16 @@ "rss-generator": "^0.0.3" }, "devDependencies": { + "@babel/core": "^7.23.3", + "@babel/preset-env": "^7.23.3", + "babel-jest": "^29.7.0", "eslint": "^8.32.0", "eslint-config-prettier": "^8.6.0", "eslint-config-standard": "^17.0.0", "eslint-plugin-import": "^2.27.5", "eslint-plugin-n": "^15.6.1", "eslint-plugin-promise": "^6.1.1", + "jest": "^29.7.0", "lint-staged": "^13.1.0", "prettier": "^2.8.3" }, @@ -42,2044 +46,2776 @@ "node": "16.x" } }, - "node_modules/@eslint/eslintrc": { - "version": "1.4.1", + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, - "license": "MIT", "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.4.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=6.0.0" } }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.11", + "node_modules/@babel/code-frame": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "dev": true, - "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "color-convert": "^1.9.0" }, "engines": { - "node": "*" + "node": ">=4" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.8", + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">=10.10.0" + "node": ">=4" } }, - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "color-name": "1.1.3" } }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "has-flag": "^3.0.0" }, "engines": { - "node": "*" + "node": ">=4" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", + "node_modules/@babel/compat-data": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz", + "integrity": "sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==", "dev": true, - "license": "Apache-2.0", "engines": { - "node": ">=12.22" + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz", + "integrity": "sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.3", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.3", + "@babel/types": "^7.23.3", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", + "node_modules/@babel/core/node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "license": "BSD-3-Clause" + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", + "node_modules/@babel/generator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.3.tgz", + "integrity": "sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==", "dev": true, - "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "@babel/types": "^7.23.3", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" }, "engines": { - "node": ">= 8" + "node": ">=6.9.0" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, - "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, "engines": { - "node": ">= 8" + "node": ">=6.9.0" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", "dev": true, - "license": "MIT", "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "@babel/types": "^7.22.15" }, "engines": { - "node": ">= 8" + "node": ">=6.9.0" } }, - "node_modules/@types/json5": { - "version": "0.0.29", + "node_modules/@babel/helper-compilation-targets": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", "dev": true, - "license": "MIT" - }, - "node_modules/accepts": { - "version": "1.3.8", - "license": "MIT", "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" }, "engines": { - "node": ">= 0.6" + "node": ">=6.9.0" } }, - "node_modules/acorn": { - "version": "8.8.1", + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", + "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" }, "engines": { - "node": ">=0.4.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/acorn-jsx": { - "version": "5.3.2", + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", "dev": true, - "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + "@babel/core": "^7.0.0" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", + "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", "dev": true, - "license": "MIT", "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, "engines": { - "node": ">=8" + "node": ">=6.9.0" } }, - "node_modules/ajv": { - "version": "6.12.6", + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, - "license": "MIT", "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" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/ansi-escapes": { - "version": "4.3.2", + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, - "license": "MIT", "dependencies": { - "type-fest": "^0.21.3" + "@babel/types": "^7.22.5" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6.9.0" } }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" + "dependencies": { + "@babel/types": "^7.23.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dev": true, - "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.15" + }, "engines": { - "node": ">=8" + "node": ">=6.9.0" } }, - "node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "dev": true, - "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/argparse": { - "version": "2.0.1", - "license": "Python-2.0" + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/array-flatten": { - "version": "1.1.1", - "license": "MIT" + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/array-includes": { - "version": "3.1.6", + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "is-string": "^1.0.7" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/array.prototype.flat": { - "version": "1.3.1", + "node_modules/@babel/helper-replace-supers": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.1", + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" + "@babel/types": "^7.22.5" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6.9.0" } }, - "node_modules/astral-regex": { - "version": "2.0.0", + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "dev": true, - "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, "engines": { - "node": ">=8" + "node": ">=6.9.0" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" + "dependencies": { + "@babel/types": "^7.22.5" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/basic-auth": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "safe-buffer": "5.1.2" - }, + "node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "dev": true, "engines": { - "node": ">= 0.8" + "node": ">=6.9.0" } }, - "node_modules/basic-auth/node_modules/safe-buffer": { - "version": "5.1.2", - "license": "MIT" - }, - "node_modules/body-parser": { - "version": "1.20.1", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">=6.9.0" } }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" + "node_modules/@babel/helper-validator-option": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "dev": true, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "license": "MIT", + "node_modules/@babel/helper-wrap-function": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "dev": true, "dependencies": { - "balanced-match": "^1.0.0" + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/braces": { - "version": "3.0.2", + "node_modules/@babel/helpers": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", + "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", "dev": true, - "license": "MIT", "dependencies": { - "fill-range": "^7.0.1" + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" } }, - "node_modules/builtins": { - "version": "5.0.1", + "node_modules/@babel/highlight": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", "dev": true, - "license": "MIT", "dependencies": { - "semver": "^7.0.0" + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/builtins/node_modules/semver": { - "version": "7.3.8", + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "license": "ISC", "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "color-convert": "^1.9.0" }, "engines": { - "node": ">=10" + "node": ">=4" } }, - "node_modules/bytes": { - "version": "3.1.2", - "license": "MIT", + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, "engines": { - "node": ">= 0.8" + "node": ">=4" } }, - "node_modules/call-bind": { - "version": "1.0.2", - "license": "MIT", + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "color-name": "1.1.3" } }, - "node_modules/callsites": { - "version": "3.1.0", + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, - "license": "MIT", "engines": { - "node": ">=6" + "node": ">=0.8.0" } }, - "node_modules/chalk": { - "version": "4.1.2", + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=4" } }, - "node_modules/charenc": { - "version": "0.0.2", - "license": "BSD-3-Clause", + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, "engines": { - "node": "*" + "node": ">=4" } }, - "node_modules/clean-stack": { - "version": "2.2.0", + "node_modules/@babel/parser": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.3.tgz", + "integrity": "sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==", "dev": true, - "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, "engines": { - "node": ">=6" + "node": ">=6.0.0" } }, - "node_modules/cli-cursor": { - "version": "3.1.0", + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", "dev": true, - "license": "MIT", "dependencies": { - "restore-cursor": "^3.1.0" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/cli-truncate": { - "version": "3.1.0", + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", "dev": true, - "license": "MIT", "dependencies": { - "slice-ansi": "^5.0.0", - "string-width": "^5.0.0" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.23.3" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@babel/core": "^7.13.0" } }, - "node_modules/color-convert": { - "version": "2.0.1", + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz", + "integrity": "sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==", "dev": true, - "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">=7.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/color-name": { - "version": "1.1.4", + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, - "license": "MIT" + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/colorette": { - "version": "2.0.19", + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, - "license": "MIT" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/commander": { - "version": "9.5.0", + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || >=14" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/concat-map": { - "version": "0.0.1", + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, - "license": "MIT" + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/content-disposition": { - "version": "0.5.4", - "license": "MIT", + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, "dependencies": { - "safe-buffer": "5.2.1" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { - "node": ">= 0.6" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/content-type": { - "version": "1.0.4", - "license": "MIT", - "engines": { - "node": ">= 0.6" + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/cookie": { - "version": "0.5.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/cookie-parser": { - "version": "1.4.6", - "license": "MIT", + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", + "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "dev": true, "dependencies": { - "cookie": "0.4.1", - "cookie-signature": "1.0.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">= 0.8.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/cookie-parser/node_modules/cookie": { - "version": "0.4.1", - "license": "MIT", + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", + "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, "engines": { - "node": ">= 0.6" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "license": "MIT" - }, - "node_modules/copy-env-cli": { - "version": "1.0.0", - "license": "MIT", - "bin": { - "copy-env-cli": "bin.js" + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/cors": { - "version": "2.8.5", - "license": "MIT", + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, "dependencies": { - "object-assign": "^4", - "vary": "^1" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">= 0.10" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/cross-spawn": { - "version": "7.0.3", + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", "dev": true, - "license": "MIT", "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">= 8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/crypt": { - "version": "0.0.2", - "license": "BSD-3-Clause", + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, "engines": { - "node": "*" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.0", - "license": "MIT", + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, "engines": { - "node": ">= 12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/debug": { - "version": "4.3.4", - "license": "MIT", + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "dev": true, "dependencies": { - "ms": "2.1.2" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">=6.0" + "node": ">=6.9.0" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/deep-is": { - "version": "0.1.4", + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, - "license": "MIT" + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } }, - "node_modules/define-properties": { - "version": "1.1.4", + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", "dev": true, - "license": "MIT", "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/depd": { - "version": "2.0.0", - "license": "MIT", + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.3.tgz", + "integrity": "sha512-59GsVNavGxAXCDDbakWSMJhajASb4kBCqDjqJsv+p5nKdbz7istmZ3HrX3L2LuiI80+zsOADCvooqQH3qGCucQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, "engines": { - "node": ">= 0.8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/destroy": { - "version": "1.2.0", - "license": "MIT", + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", + "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20" + }, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/doctrine": { - "version": "3.0.0", + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "esutils": "^2.0.2" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/dotenv": { - "version": "16.0.3", - "license": "BSD-2-Clause", + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.3.tgz", + "integrity": "sha512-QPZxHrThbQia7UdvfpaRRlq/J9ciz1J4go0k+lPBXbgaNeY7IQrBj/9ceWjvMMI07/ZBzHl/F0R/2K0qH7jCVw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eastasianwidth": { - "version": "0.2.0", + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", + "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", "dev": true, - "license": "MIT" + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/ee-first": { - "version": "1.1.1", - "license": "MIT" + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.3.tgz", + "integrity": "sha512-PENDVxdr7ZxKPyi5Ffc0LjXdnJyrJxyqF5T5YjlVg4a0VFfQHW0r8iAtRiDXkfHlu1wwcvdtnndGYIeJLSuRMQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } }, - "node_modules/emoji-regex": { - "version": "9.2.2", + "node_modules/@babel/plugin-transform-classes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.3.tgz", + "integrity": "sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w==", "dev": true, - "license": "MIT" + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/encodeurl": { - "version": "1.0.2", - "license": "MIT", + "node_modules/@babel/plugin-transform-classes/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, "engines": { - "node": ">= 0.8" + "node": ">=4" } }, - "node_modules/entities": { - "version": "3.0.1", - "license": "BSD-2-Clause", + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.15" + }, "engines": { - "node": ">=0.12" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/es-abstract": { - "version": "1.21.1", + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", "dev": true, - "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.3", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.4", - "is-array-buffer": "^3.0.1", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/es-set-tostringtag": { - "version": "2.0.1", + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", "dev": true, - "license": "MIT", "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/es-shim-unscopables": { - "version": "1.0.0", + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", "dev": true, - "license": "MIT", "dependencies": { - "has": "^1.0.3" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/es-to-primitive": { - "version": "1.2.1", + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.3.tgz", + "integrity": "sha512-vTG+cTGxPFou12Rj7ll+eD5yWeNl5/8xvQvF08y5Gv3v4mZQoyFf8/n9zg4q5vvCWt5jmgymfzMAldO7orBn7A==", "dev": true, - "license": "MIT", "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "license": "MIT" + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.3.tgz", + "integrity": "sha512-yCLhW34wpJWRdTxxWtFZASJisihrfyMOTOQexhVzA78jlU+dH7Dw+zQgcPepQ5F3C6bAIiblZZ+qBggJdHiBAg==", "dev": true, - "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, "engines": { - "node": ">=10" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint": { - "version": "8.32.0", + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz", + "integrity": "sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==", "dev": true, - "license": "MIT", "dependencies": { - "@eslint/eslintrc": "^1.4.1", - "@humanwhocodes/config-array": "^0.11.8", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6.9.0" }, - "funding": { - "url": "https://opencollective.com/eslint" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-config-prettier": { - "version": "8.6.0", + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", "dev": true, - "license": "MIT", - "bin": { - "eslint-config-prettier": "bin/cli.js" + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "eslint": ">=7.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-config-standard": { - "version": "17.0.0", + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.3.tgz", + "integrity": "sha512-H9Ej2OiISIZowZHaBwF0tsJOih1PftXJtE8EWqlEIwpc7LMTGq0rPOrywKLQ4nefzx8/HMR0D3JGXoMHYvhi0A==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, "peerDependencies": { - "eslint": "^8.0.1", - "eslint-plugin-import": "^2.25.2", - "eslint-plugin-n": "^15.0.0", - "eslint-plugin-promise": "^6.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.7", + "node_modules/@babel/plugin-transform-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", "dev": true, - "license": "MIT", "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.3.tgz", + "integrity": "sha512-+pD5ZbxofyOygEp+zZAfujY2ShNCXRpDRIPOiBmTO693hhyOEteZgl876Xs9SAHPQpcV0vz8LvA/T+w8AzyX8A==", "dev": true, - "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-module-utils": { - "version": "2.7.4", + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", "dev": true, - "license": "MIT", "dependencies": { - "debug": "^3.2.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">=4" + "node": ">=6.9.0" }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", "dev": true, - "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-plugin-es": { - "version": "4.1.0", + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", "dev": true, - "license": "MIT", "dependencies": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" }, "engines": { - "node": ">=8.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" + "node": ">=6.9.0" }, "peerDependencies": { - "eslint": ">=4.19.1" + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-plugin-es/node_modules/eslint-utils": { - "version": "2.1.0", + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", + "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", "dev": true, - "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^1.1.0" + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { - "node": ">=6" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { - "version": "1.3.0", + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", "dev": true, - "license": "Apache-2.0", + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, "engines": { - "node": ">=4" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-plugin-import": { - "version": "2.27.5", + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", "dev": true, - "license": "MIT", "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", - "has": "^1.0.3", - "is-core-module": "^2.11.0", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.6", - "resolve": "^1.22.1", - "semver": "^6.3.0", - "tsconfig-paths": "^3.14.1" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">=4" + "node": ">=6.9.0" }, "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + "@babel/core": "^7.0.0" } }, - "node_modules/eslint-plugin-import/node_modules/brace-expansion": { - "version": "1.1.11", + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", "dev": true, - "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.3.tgz", + "integrity": "sha512-xzg24Lnld4DYIdysyf07zJ1P+iIfJpxtVFOzX4g+bsJ3Ng5Le7rXx9KwqKzuyaUeRnt+I1EICwQITqc0E2PmpA==", "dev": true, - "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.3.tgz", + "integrity": "sha512-s9GO7fIBi/BLsZ0v3Rftr6Oe4t0ctJ8h4CCXfPoEJwmvAPMyNrfkOOJzm6b9PX9YXcCJWWQd/sBF/N26eBiMVw==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "esutils": "^2.0.2" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "engines": { - "node": ">=0.10.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-plugin-import/node_modules/minimatch": { - "version": "3.1.2", + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.3.tgz", + "integrity": "sha512-VxHt0ANkDmu8TANdE9Kc0rndo/ccsmfe2Cx2y5sI4hu3AukHQ5wAu4cM7j3ba8B9548ijVyclBU+nuDQftZsog==", "dev": true, - "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "@babel/compat-data": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.23.3" }, "engines": { - "node": "*" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-plugin-n": { - "version": "15.6.1", + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", "dev": true, - "license": "MIT", "dependencies": { - "builtins": "^5.0.1", - "eslint-plugin-es": "^4.1.0", - "eslint-utils": "^3.0.0", - "ignore": "^5.1.1", - "is-core-module": "^2.11.0", - "minimatch": "^3.1.2", - "resolve": "^1.22.1", - "semver": "^7.3.8" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20" }, "engines": { - "node": ">=12.22.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" + "node": ">=6.9.0" }, "peerDependencies": { - "eslint": ">=7.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-plugin-n/node_modules/brace-expansion": { - "version": "1.1.11", + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.3.tgz", + "integrity": "sha512-LxYSb0iLjUamfm7f1D7GpiS4j0UAC8AOiehnsGAP8BEsIX8EOi3qV6bbctw8M7ZvLtcoZfZX5Z7rN9PlWk0m5A==", "dev": true, - "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-plugin-n/node_modules/minimatch": { - "version": "3.1.2", + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.3.tgz", + "integrity": "sha512-zvL8vIfIUgMccIAK1lxjvNv572JHFJIKb4MWBz5OGdBQA0fB0Xluix5rmOby48exiJc987neOmP/m9Fnpkz3Tg==", "dev": true, - "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { - "node": "*" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-plugin-n/node_modules/semver": { - "version": "7.3.8", + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", "dev": true, - "license": "ISC", "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">=10" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-plugin-promise": { - "version": "6.1.1", + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", + "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", "dev": true, - "license": "ISC", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6.9.0" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-scope": { - "version": "7.1.1", + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.3.tgz", + "integrity": "sha512-a5m2oLNFyje2e/rGKjVfAELTVI5mbA0FeZpBnkOWWV7eSmKQ+T/XW0Vf+29ScLzSxX+rnsarvU0oie/4m6hkxA==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-utils": { - "version": "3.0.0", + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", "dev": true, - "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^2.0.0" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" + "node": ">=6.9.0" }, "peerDependencies": { - "eslint": ">=5" + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", "dev": true, - "license": "Apache-2.0", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" + }, "engines": { - "node": ">=10" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-visitor-keys": { - "version": "3.3.0", + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", "dev": true, - "license": "Apache-2.0", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.11", + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", "dev": true, - "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", + "node_modules/@babel/plugin-transform-spread": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", "dev": true, - "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" }, "engines": { - "node": "*" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/espree": { - "version": "9.4.1", + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6.9.0" }, - "funding": { - "url": "https://opencollective.com/eslint" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/esquery": { - "version": "1.4.0", + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { - "estraverse": "^5.1.0" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">=0.10" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/esrecurse": { - "version": "4.3.0", + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "estraverse": "^5.2.0" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">=4.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/estraverse": { - "version": "5.3.0", + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", "dev": true, - "license": "BSD-2-Clause", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, "engines": { - "node": ">=4.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/esutils": { - "version": "2.0.3", + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", + "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, "engines": { - "node": ">= 0.6" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/execa": { - "version": "6.1.0", + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", "dev": true, - "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^3.0.1", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/express": { - "version": "4.18.2", - "license": "MIT", + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", + "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "dev": true, "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">= 0.10.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.3.tgz", + "integrity": "sha512-ovzGc2uuyNfNAs/jyjIGxS8arOHS5FENZaNn4rtE7UdKMMkqHCvboHfcuhWLZNX5cB44QfcGNWjaevxMzzMf+Q==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.3", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.23.3", + "@babel/plugin-syntax-import-attributes": "^7.23.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.23.3", + "@babel/plugin-transform-async-generator-functions": "^7.23.3", + "@babel/plugin-transform-async-to-generator": "^7.23.3", + "@babel/plugin-transform-block-scoped-functions": "^7.23.3", + "@babel/plugin-transform-block-scoping": "^7.23.3", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@babel/plugin-transform-class-static-block": "^7.23.3", + "@babel/plugin-transform-classes": "^7.23.3", + "@babel/plugin-transform-computed-properties": "^7.23.3", + "@babel/plugin-transform-destructuring": "^7.23.3", + "@babel/plugin-transform-dotall-regex": "^7.23.3", + "@babel/plugin-transform-duplicate-keys": "^7.23.3", + "@babel/plugin-transform-dynamic-import": "^7.23.3", + "@babel/plugin-transform-exponentiation-operator": "^7.23.3", + "@babel/plugin-transform-export-namespace-from": "^7.23.3", + "@babel/plugin-transform-for-of": "^7.23.3", + "@babel/plugin-transform-function-name": "^7.23.3", + "@babel/plugin-transform-json-strings": "^7.23.3", + "@babel/plugin-transform-literals": "^7.23.3", + "@babel/plugin-transform-logical-assignment-operators": "^7.23.3", + "@babel/plugin-transform-member-expression-literals": "^7.23.3", + "@babel/plugin-transform-modules-amd": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.3", + "@babel/plugin-transform-modules-umd": "^7.23.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.23.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.3", + "@babel/plugin-transform-numeric-separator": "^7.23.3", + "@babel/plugin-transform-object-rest-spread": "^7.23.3", + "@babel/plugin-transform-object-super": "^7.23.3", + "@babel/plugin-transform-optional-catch-binding": "^7.23.3", + "@babel/plugin-transform-optional-chaining": "^7.23.3", + "@babel/plugin-transform-parameters": "^7.23.3", + "@babel/plugin-transform-private-methods": "^7.23.3", + "@babel/plugin-transform-private-property-in-object": "^7.23.3", + "@babel/plugin-transform-property-literals": "^7.23.3", + "@babel/plugin-transform-regenerator": "^7.23.3", + "@babel/plugin-transform-reserved-words": "^7.23.3", + "@babel/plugin-transform-shorthand-properties": "^7.23.3", + "@babel/plugin-transform-spread": "^7.23.3", + "@babel/plugin-transform-sticky-regex": "^7.23.3", + "@babel/plugin-transform-template-literals": "^7.23.3", + "@babel/plugin-transform-typeof-symbol": "^7.23.3", + "@babel/plugin-transform-unicode-escapes": "^7.23.3", + "@babel/plugin-transform-unicode-property-regex": "^7.23.3", + "@babel/plugin-transform-unicode-regex": "^7.23.3", + "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/express-basic-auth": { - "version": "1.2.1", - "license": "MIT", + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, "dependencies": { - "basic-auth": "^2.0.1" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/express-handlebars": { - "version": "6.0.6", - "license": "BSD-3-Clause", + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "node_modules/@babel/runtime": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", + "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", + "dev": true, "dependencies": { - "glob": "^8.0.2", - "graceful-fs": "^4.2.10", - "handlebars": "^4.7.7" + "regenerator-runtime": "^0.14.0" }, "engines": { - "node": ">=v12.22.9" + "node": ">=6.9.0" } }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", + "node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dev": true, "dependencies": { - "ms": "2.0.0" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", + "node_modules/@babel/traverse": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.3.tgz", + "integrity": "sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==", "dev": true, - "license": "MIT" + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.3", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.3", + "@babel/types": "^7.23.3", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, - "license": "MIT" + "engines": { + "node": ">=4" + } }, - "node_modules/fastq": { - "version": "1.15.0", + "node_modules/@babel/types": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.3.tgz", + "integrity": "sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==", "dev": true, - "license": "ISC", "dependencies": { - "reusify": "^1.0.4" + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@eslint/eslintrc": { + "version": "1.4.1", + "dev": true, "license": "MIT", "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^12.20 || >= 14.13" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/file-entry-cache": { - "version": "6.0.1", + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^3.0.4" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "*" } }, - "node_modules/fill-range": { - "version": "7.0.1", + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.8", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "to-regex-range": "^5.0.1" + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" }, "engines": { - "node": ">=8" + "node": ">=10.10.0" } }, - "node_modules/finalhandler": { - "version": "1.2.0", + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, "license": "MIT", "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">= 0.8" + "node": "*" } }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "dev": true, + "license": "BSD-3-Clause" }, - "node_modules/find-up": { - "version": "5.0.0", + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, - "license": "MIT", "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/flat-cache": { - "version": "3.0.4", + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, - "license": "MIT", "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=8" } }, - "node_modules/flatted": { - "version": "3.2.7", + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, - "license": "ISC" + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } }, - "node_modules/for-each": { - "version": "0.3.3", + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "license": "MIT", "dependencies": { - "is-callable": "^1.1.3" + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "license": "MIT", + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, "dependencies": { - "fetch-blob": "^3.1.2" + "p-try": "^2.0.0" }, "engines": { - "node": ">=12.20.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/forwarded": { - "version": "0.2.0", - "license": "MIT", + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/fresh": { - "version": "0.5.2", - "license": "MIT", + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "license": "ISC" + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "node_modules/function-bind": { - "version": "1.1.1", - "license": "MIT" + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/function.prototype.name": { - "version": "1.1.5", + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/functions-have-names": { - "version": "1.2.3", + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/get-intrinsic": { - "version": "1.1.3", - "license": "MIT", + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/get-stream": { - "version": "6.0.1", + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, - "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3" + }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/get-symbol-description": { - "version": "1.0.0", + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/glob": { - "version": "8.0.3", - "license": "ISC", + "node_modules/@jest/reporters/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@jest/reporters/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=12" + "node": "*" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/glob-parent": { - "version": "6.0.2", + "node_modules/@jest/reporters/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "ISC", "dependencies": { - "is-glob": "^4.0.3" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=10.13.0" + "node": "*" } }, - "node_modules/globals": { - "version": "13.19.0", + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, - "license": "MIT", "dependencies": { - "type-fest": "^0.20.2" + "@sinclair/typebox": "^0.27.8" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/globalthis": { - "version": "1.0.3", + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, - "license": "MIT", "dependencies": { - "define-properties": "^1.1.3" + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/gopd": { - "version": "1.0.1", + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, - "license": "MIT", "dependencies": { - "get-intrinsic": "^1.1.3" + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "license": "ISC" - }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, - "license": "MIT" - }, - "node_modules/handlebars": { - "version": "4.7.7", - "license": "MIT", "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" }, "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/has": { - "version": "1.0.3", - "license": "MIT", + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, "dependencies": { - "function-bind": "^1.1.1" + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" }, "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/has-flag": { - "version": "4.0.0", + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, - "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, - "license": "MIT", "dependencies": { - "get-intrinsic": "^1.1.1" + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=6.0.0" } }, - "node_modules/has-proto": { - "version": "1.0.1", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", "dev": true, - "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6.0.0" } }, - "node_modules/has-symbols": { - "version": "1.0.3", - "license": "MIT", + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6.0.0" } }, - "node_modules/has-tostringtag": { - "version": "1.0.0", + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", "dev": true, - "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/http-errors": { - "version": "2.0.0", + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "dev": true, "license": "MIT", "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { - "node": ">= 0.8" + "node": ">= 8" } }, - "node_modules/human-signals": { - "version": "3.0.1", + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/husky": { - "version": "8.0.3", "license": "MIT", - "bin": { - "husky": "lib/bin.js" - }, "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" + "node": ">= 8" } }, - "node_modules/iconv-lite": { - "version": "0.4.24", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "dev": true, "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 8" } }, - "node_modules/ignore": { - "version": "5.2.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true }, - "node_modules/import-fresh": { - "version": "3.3.0", + "node_modules/@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", "dev": true, - "license": "MIT", "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type-detect": "4.0.8" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" + "dependencies": { + "@sinonjs/commons": "^3.0.0" } }, - "node_modules/indent-string": { - "version": "4.0.0", + "node_modules/@types/babel__core": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.4.tgz", + "integrity": "sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" } }, - "node_modules/inflight": { - "version": "1.0.6", - "license": "ISC", + "node_modules/@types/babel__generator": { + "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz", + "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==", + "dev": true, "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "@babel/types": "^7.0.0" } }, - "node_modules/inherits": { - "version": "2.0.4", - "license": "ISC" - }, - "node_modules/internal-slot": { - "version": "1.0.4", + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, - "license": "MIT", "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "license": "MIT", - "engines": { - "node": ">= 0.10" + "node_modules/@types/babel__traverse": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", + "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" } }, - "node_modules/is-array-buffer": { - "version": "3.0.1", + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-typed-array": "^1.1.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@types/node": "*" } }, - "node_modules/is-bigint": { - "version": "1.0.4", + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "dev": true, - "license": "MIT", "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@types/istanbul-lib-coverage": "*" } }, - "node_modules/is-boolean-object": { - "version": "1.1.2", + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@types/istanbul-lib-report": "*" } }, - "node_modules/is-buffer": { - "version": "1.1.6", + "node_modules/@types/json5": { + "version": "0.0.29", + "dev": true, "license": "MIT" }, - "node_modules/is-callable": { - "version": "1.2.7", + "node_modules/@types/node": { + "version": "20.9.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.0.tgz", + "integrity": "sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "undici-types": "~5.26.4" } }, - "node_modules/is-core-module": { - "version": "2.11.0", + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "node_modules/@types/yargs": { + "version": "17.0.31", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.31.tgz", + "integrity": "sha512-bocYSx4DI8TmdlvxqGpVNXOgCNR1Jj0gNPhhAY+iz1rgKDAaYrAYdFYnhDV1IFuiuVc9HkOwyDcFxaTElF3/wg==", "dev": true, - "license": "MIT", "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@types/yargs-parser": "*" } }, - "node_modules/is-date-object": { - "version": "1.0.5", - "dev": true, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.6" } }, - "node_modules/is-extglob": { - "version": "2.1.1", + "node_modules/acorn": { + "version": "8.8.1", "dev": true, "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, "engines": { - "node": ">=0.10.0" + "node": ">=0.4.0" } }, - "node_modules/is-fullwidth-code-point": { - "version": "4.0.0", + "node_modules/acorn-jsx": { + "version": "5.3.2", "dev": true, "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/is-glob": { - "version": "4.0.3", + "node_modules/aggregate-error": { + "version": "3.1.0", "dev": true, "license": "MIT", "dependencies": { - "is-extglob": "^2.1.1" + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/is-negative-zero": { - "version": "2.0.2", + "node_modules/ajv": { + "version": "6.12.6", "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.4" + "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" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/is-number": { - "version": "7.0.0", + "node_modules/ansi-escapes": { + "version": "4.3.2", "dev": true, "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, "engines": { - "node": ">=0.12.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-number-object": { - "version": "1.0.7", + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", + "node_modules/ansi-regex": { + "version": "5.0.1", "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/is-regex": { - "version": "1.1.4", + "node_modules/ansi-styles": { + "version": "4.3.0", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "3.0.0", - "dev": true, - "license": "MIT", "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 8" } }, - "node_modules/is-string": { - "version": "1.0.7", + "node_modules/argparse": { + "version": "2.0.1", + "license": "Python-2.0" + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "license": "MIT" + }, + "node_modules/array-includes": { + "version": "3.1.6", "dev": true, "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" }, "engines": { "node": ">= 0.4" @@ -2088,12 +2824,15 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-symbol": { - "version": "1.0.4", + "node_modules/array.prototype.flat": { + "version": "1.3.1", "dev": true, "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -2102,16 +2841,15 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-typed-array": { - "version": "1.1.10", + "node_modules/array.prototype.flatmap": { + "version": "1.3.1", "dev": true, "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -2120,943 +2858,1150 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-weakref": { - "version": "1.0.2", + "node_modules/astral-regex": { + "version": "2.0.0", "dev": true, "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=8" } }, - "node_modules/isexe": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/js-sdsl": { - "version": "4.2.0", + "node_modules/available-typed-arrays": { + "version": "1.0.5", "dev": true, "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/js-yaml": { - "version": "4.1.0", + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, - "license": "MIT", "dependencies": { - "argparse": "^2.0.1" + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" } }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/json5": { - "version": "1.0.2", + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, - "license": "MIT", "dependencies": { - "minimist": "^1.2.0" + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" }, - "bin": { - "json5": "lib/cli.js" + "engines": { + "node": ">=8" } }, - "node_modules/levn": { - "version": "0.4.1", + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, - "license": "MIT", "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "node_modules/lilconfig": { - "version": "2.0.6", + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", "dev": true, - "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/linkify-it": { - "version": "4.0.1", - "license": "MIT", + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", + "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", + "dev": true, "dependencies": { - "uc.micro": "^1.0.1" + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.3", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/lint-staged": { - "version": "13.1.0", + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz", + "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==", "dev": true, - "license": "MIT", "dependencies": { - "cli-truncate": "^3.1.0", - "colorette": "^2.0.19", - "commander": "^9.4.1", - "debug": "^4.3.4", - "execa": "^6.1.0", - "lilconfig": "2.0.6", - "listr2": "^5.0.5", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-inspect": "^1.12.2", - "pidtree": "^0.6.0", - "string-argv": "^0.3.1", - "yaml": "^2.1.3" - }, - "bin": { - "lint-staged": "bin/lint-staged.js" - }, - "engines": { - "node": "^14.13.1 || >=16.0.0" + "@babel/helper-define-polyfill-provider": "^0.4.3", + "core-js-compat": "^3.33.1" }, - "funding": { - "url": "https://opencollective.com/lint-staged" + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/listr2": { - "version": "5.0.7", + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", + "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", "dev": true, - "license": "MIT", "dependencies": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.19", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rfdc": "^1.3.0", - "rxjs": "^7.8.0", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": "^14.13.1 || >=16.0.0" + "@babel/helper-define-polyfill-provider": "^0.4.3" }, "peerDependencies": { - "enquirer": ">= 2.3.0 < 3" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" }, - "peerDependenciesMeta": { - "enquirer": { - "optional": true - } + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/listr2/node_modules/cli-truncate": { - "version": "2.1.0", + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, - "license": "MIT", "dependencies": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/listr2/node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, + "node_modules/balanced-match": { + "version": "1.0.2", "license": "MIT" }, - "node_modules/listr2/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, + "node_modules/basic-auth": { + "version": "2.0.1", "license": "MIT", + "dependencies": { + "safe-buffer": "5.1.2" + }, "engines": { - "node": ">=8" + "node": ">= 0.8" } }, - "node_modules/listr2/node_modules/slice-ansi": { - "version": "3.0.0", - "dev": true, + "node_modules/basic-auth/node_modules/safe-buffer": { + "version": "5.1.2", + "license": "MIT" + }, + "node_modules/body-parser": { + "version": "1.20.1", "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, "engines": { - "node": ">=8" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/listr2/node_modules/string-width": { - "version": "4.2.3", + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", "dev": true, "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "fill-range": "^7.0.1" }, "engines": { "node": ">=8" } }, - "node_modules/locate-path": { - "version": "6.0.0", + "node_modules/browserslist": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", "dev": true, - "license": "MIT", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "p-locate": "^5.0.0" + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" }, - "engines": { - "node": ">=10" + "bin": { + "browserslist": "cli.js" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/lodash.merge": { - "version": "4.6.2", + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, - "license": "MIT" + "dependencies": { + "node-int64": "^0.4.0" + } }, - "node_modules/log-update": { - "version": "4.0.0", + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/builtins": { + "version": "5.0.1", "dev": true, "license": "MIT", "dependencies": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" + "semver": "^7.0.0" + } + }, + "node_modules/builtins/node_modules/semver": { + "version": "7.3.8", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/log-update/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, + "node_modules/bytes": { + "version": "3.1.2", "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.8" } }, - "node_modules/log-update/node_modules/slice-ansi": { - "version": "4.0.0", - "dev": true, + "node_modules/call-bind": { + "version": "1.0.2", "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" }, "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/log-update/node_modules/string-width": { - "version": "4.2.3", + "node_modules/callsites": { + "version": "3.1.0", "dev": true, "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/log-update/node_modules/wrap-ansi": { - "version": "6.2.0", + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/lru-cache": { - "version": "6.0.0", + "node_modules/caniuse-lite": { + "version": "1.0.30001561", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001561.tgz", + "integrity": "sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==", "dev": true, - "license": "ISC", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/markdown-it": { - "version": "13.0.1", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1", - "entities": "~3.0.1", - "linkify-it": "^4.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - }, - "bin": { - "markdown-it": "bin/markdown-it.js" + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" } }, - "node_modules/md5": { - "version": "2.3.0", + "node_modules/charenc": { + "version": "0.0.2", "license": "BSD-3-Clause", - "dependencies": { - "charenc": "0.0.2", - "crypt": "0.0.2", - "is-buffer": "~1.1.6" + "engines": { + "node": "*" } }, - "node_modules/mdurl": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/media-typer": { - "version": "0.3.0", - "license": "MIT", + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "license": "MIT" + "node_modules/cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "dev": true }, - "node_modules/merge-stream": { - "version": "2.0.0", + "node_modules/clean-stack": { + "version": "2.2.0", "dev": true, - "license": "MIT" - }, - "node_modules/methods": { - "version": "1.1.2", "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=6" } }, - "node_modules/micromatch": { - "version": "4.0.5", + "node_modules/cli-cursor": { + "version": "3.1.0", "dev": true, "license": "MIT", "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" + "restore-cursor": "^3.1.0" }, "engines": { - "node": ">=8.6" + "node": ">=8" } }, - "node_modules/mime": { - "version": "1.6.0", + "node_modules/cli-truncate": { + "version": "3.1.0", + "dev": true, "license": "MIT", - "bin": { - "mime": "cli.js" + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" }, "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mime-types": { - "version": "2.1.35", - "license": "MIT", + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, "dependencies": { - "mime-db": "1.52.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">= 0.6" + "node": ">=12" } }, - "node_modules/mimic-fn": { - "version": "4.0.0", + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/minimatch": { - "version": "5.1.0", - "license": "ISC", + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "dependencies": { - "brace-expansion": "^2.0.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/minimist": { - "version": "1.2.7", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" } }, - "node_modules/moment": { - "version": "2.29.4", + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, + "node_modules/color-convert": { + "version": "2.0.1", + "dev": true, "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": "*" + "node": ">=7.0.0" } }, - "node_modules/ms": { - "version": "2.1.2", + "node_modules/color-name": { + "version": "1.1.4", + "dev": true, "license": "MIT" }, - "node_modules/natural-compare": { - "version": "1.4.0", + "node_modules/colorette": { + "version": "2.0.19", "dev": true, "license": "MIT" }, - "node_modules/negotiator": { - "version": "0.6.3", + "node_modules/commander": { + "version": "9.5.0", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": "^12.20.0 || >=14" } }, - "node_modules/neo-async": { - "version": "2.6.2", + "node_modules/concat-map": { + "version": "0.0.1", + "dev": true, "license": "MIT" }, - "node_modules/node-domexception": { - "version": "1.0.0", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], + "node_modules/content-disposition": { + "version": "0.5.4", "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, "engines": { - "node": ">=10.5.0" + "node": ">= 0.6" } }, - "node_modules/node-fetch": { - "version": "3.3.0", + "node_modules/content-type": { + "version": "1.0.4", "license": "MIT", - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" + "node": ">= 0.6" } }, - "node_modules/normalize-path": { - "version": "3.0.0", - "dev": true, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.5.0", "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">= 0.6" } }, - "node_modules/npm-run-path": { - "version": "5.1.0", - "dev": true, + "node_modules/cookie-parser": { + "version": "1.4.6", "license": "MIT", "dependencies": { - "path-key": "^4.0.0" + "cookie": "0.4.1", + "cookie-signature": "1.0.6" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.8.0" } }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "4.0.0", - "dev": true, + "node_modules/cookie-parser/node_modules/cookie": { + "version": "0.4.1", "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.6" } }, - "node_modules/object-assign": { - "version": "4.1.1", + "node_modules/cookie-signature": { + "version": "1.0.6", + "license": "MIT" + }, + "node_modules/copy-env-cli": { + "version": "1.0.0", "license": "MIT", - "engines": { - "node": ">=0.10.0" + "bin": { + "copy-env-cli": "bin.js" } }, - "node_modules/object-inspect": { - "version": "1.12.2", - "license": "MIT", + "node_modules/core-js-compat": { + "version": "3.33.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.2.tgz", + "integrity": "sha512-axfo+wxFVxnqf8RvxTzoAlzW4gRoacrHeoFlc9n0x50+7BEyZL/Rt3hicaED1/CEd7I6tPCPVUYcJwCMO5XUYw==", + "dev": true, + "dependencies": { + "browserslist": "^4.22.1" + }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, - "node_modules/object-keys": { - "version": "1.1.1", - "dev": true, + "node_modules/cors": { + "version": "2.8.5", "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, "engines": { - "node": ">= 0.4" + "node": ">= 0.10" } }, - "node_modules/object.assign": { - "version": "4.1.4", + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" }, - "engines": { - "node": ">= 0.4" + "bin": { + "create-jest": "bin/create-jest.js" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/object.values": { - "version": "1.1.6", + "node_modules/cross-spawn": { + "version": "7.0.3", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 8" } }, - "node_modules/on-finished": { - "version": "2.4.1", - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, + "node_modules/crypt": { + "version": "0.0.2", + "license": "BSD-3-Clause", "engines": { - "node": ">= 0.8" + "node": "*" } }, - "node_modules/once": { - "version": "1.4.0", - "license": "ISC", - "dependencies": { - "wrappy": "1" + "node_modules/data-uri-to-buffer": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">= 12" } }, - "node_modules/onetime": { - "version": "6.0.0", - "dev": true, + "node_modules/debug": { + "version": "4.3.4", "license": "MIT", "dependencies": { - "mimic-fn": "^4.0.0" + "ms": "2.1.2" }, "engines": { - "node": ">=12" + "node": ">=6.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/optionator": { - "version": "0.9.1", + "node_modules/dedent": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", + "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" }, - "engines": { - "node": ">= 0.8.0" + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } } }, - "node_modules/p-limit": { - "version": "3.1.0", + "node_modules/deep-is": { + "version": "0.1.4", "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, - "node_modules/p-locate": { - "version": "5.0.0", + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/p-map": { - "version": "4.0.0", + "node_modules/define-properties": { + "version": "1.1.4", "dev": true, "license": "MIT", "dependencies": { - "aggregate-error": "^3.0.0" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/parent-module": { - "version": "1.0.1", - "dev": true, + "node_modules/depd": { + "version": "2.0.0", "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, "engines": { - "node": ">=6" + "node": ">= 0.8" } }, - "node_modules/parseurl": { - "version": "1.3.3", + "node_modules/destroy": { + "version": "1.2.0", "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/path-exists": { - "version": "4.0.0", + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, - "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/path-key": { - "version": "3.1.1", + "node_modules/doctrine": { + "version": "3.0.0", "dev": true, - "license": "MIT", + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, "engines": { - "node": ">=8" + "node": ">=6.0.0" } }, - "node_modules/path-parse": { - "version": "1.0.7", + "node_modules/dotenv": { + "version": "16.0.3", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", "dev": true, "license": "MIT" }, - "node_modules/path-to-regexp": { - "version": "0.1.7", + "node_modules/ee-first": { + "version": "1.1.1", "license": "MIT" }, - "node_modules/picomatch": { - "version": "2.3.1", + "node_modules/electron-to-chromium": { + "version": "1.4.581", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.581.tgz", + "integrity": "sha512-6uhqWBIapTJUxgPTCHH9sqdbxIMPt7oXl0VcAL1kOtlU6aECdcMncCrX5Z7sHQ/invtrC9jUQUef7+HhO8vVFw==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, - "license": "MIT", "engines": { - "node": ">=8.6" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, - "node_modules/pidtree": { - "version": "0.6.0", + "node_modules/emoji-regex": { + "version": "9.2.2", "dev": true, + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "1.0.2", "license": "MIT", - "bin": { - "pidtree": "bin/pidtree.js" - }, "engines": { - "node": ">=0.10" + "node": ">= 0.8" } }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "dev": true, - "license": "MIT", + "node_modules/entities": { + "version": "3.0.1", + "license": "BSD-2-Clause", "engines": { - "node": ">= 0.8.0" + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/prettier": { - "version": "2.8.3", + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.21.1", "dev": true, "license": "MIT", - "bin": { - "prettier": "bin-prettier.js" + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.4", + "is-array-buffer": "^3.0.1", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" }, "engines": { - "node": ">=10.13.0" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/proxy-addr": { - "version": "2.0.7", + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "dev": true, "license": "MIT", "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">= 0.10" + "node": ">= 0.4" } }, - "node_modules/punycode": { - "version": "2.2.0", + "node_modules/es-shim-unscopables": { + "version": "1.0.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=6" + "dependencies": { + "has": "^1.0.3" } }, - "node_modules/qs": { - "version": "6.11.0", - "license": "BSD-3-Clause", + "node_modules/es-to-primitive": { + "version": "1.2.1", + "dev": true, + "license": "MIT", "dependencies": { - "side-channel": "^1.0.4" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" }, "engines": { - "node": ">=0.6" + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/queue-microtask": { - "version": "1.2.3", + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/queue-promise": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/queue-promise/-/queue-promise-2.2.1.tgz", - "integrity": "sha512-C3eyRwLF9m6dPV4MtqMVFX+Xmc7keZ9Ievm3jJ/wWM5t3uVbFnGsJXwpYzZ4LaIEcX9bss/mdaKzyrO6xheRuA==", "engines": { - "node": ">=8.12.0" + "node": ">=6" } }, - "node_modules/range-parser": { - "version": "1.2.1", + "node_modules/escape-html": { + "version": "1.0.3", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/raw-body": { - "version": "2.5.1", + "node_modules/eslint": { + "version": "8.32.0", + "dev": true, "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "@eslint/eslintrc": "^1.4.1", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" }, "engines": { - "node": ">= 0.8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/regexp.prototype.flags": { - "version": "1.4.3", + "node_modules/eslint-config-prettier": { + "version": "8.6.0", "dev": true, "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" + "bin": { + "eslint-config-prettier": "bin/cli.js" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "eslint": ">=7.0.0" } }, - "node_modules/regexpp": { - "version": "3.2.0", + "node_modules/eslint-config-standard": { + "version": "17.0.0", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" + "peerDependencies": { + "eslint": "^8.0.1", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-n": "^15.0.0", + "eslint-plugin-promise": "^6.0.0" } }, - "node_modules/resolve": { - "version": "1.22.1", + "node_modules/eslint-import-resolver-node": { + "version": "0.3.7", "dev": true, "license": "MIT", "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" } }, - "node_modules/resolve-from": { - "version": "4.0.0", + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", "dev": true, "license": "MIT", - "engines": { - "node": ">=4" + "dependencies": { + "ms": "^2.1.1" } }, - "node_modules/restore-cursor": { - "version": "3.1.0", + "node_modules/eslint-module-utils": { + "version": "2.7.4", "dev": true, "license": "MIT", "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "debug": "^3.2.7" }, "engines": { - "node": ">=8" + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, - "node_modules/restore-cursor/node_modules/mimic-fn": { - "version": "2.1.0", + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", "dev": true, "license": "MIT", - "engines": { - "node": ">=6" + "dependencies": { + "ms": "^2.1.1" } }, - "node_modules/restore-cursor/node_modules/onetime": { - "version": "5.1.2", + "node_modules/eslint-plugin-es": { + "version": "4.1.0", "dev": true, "license": "MIT", "dependencies": { - "mimic-fn": "^2.1.0" + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" }, "engines": { - "node": ">=6" + "node": ">=8.10.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" } }, - "node_modules/reusify": { - "version": "1.0.4", + "node_modules/eslint-plugin-es/node_modules/eslint-utils": { + "version": "2.1.0", "dev": true, "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" } }, - "node_modules/rfdc": { + "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { "version": "1.3.0", "dev": true, - "license": "MIT" + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } }, - "node_modules/rimraf": { - "version": "3.0.2", + "node_modules/eslint-plugin-import": { + "version": "2.27.5", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "glob": "^7.1.3" + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", + "has": "^1.0.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", + "tsconfig-paths": "^3.14.1" }, - "bin": { - "rimraf": "bin.js" + "engines": { + "node": ">=4" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" } }, - "node_modules/rimraf/node_modules/brace-expansion": { + "node_modules/eslint-plugin-import/node_modules/brace-expansion": { "version": "1.1.11", "dev": true, "license": "MIT", @@ -3065,26 +4010,26 @@ "concat-map": "0.0.1" } }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=0.10.0" } }, - "node_modules/rimraf/node_modules/minimatch": { + "node_modules/eslint-plugin-import/node_modules/minimatch": { "version": "3.1.2", "dev": true, "license": "ISC", @@ -3095,664 +4040,5674 @@ "node": "*" } }, - "node_modules/rss-generator": { - "version": "0.0.3", + "node_modules/eslint-plugin-n": { + "version": "15.6.1", + "dev": true, "license": "MIT", "dependencies": { - "mime-types": "2.1.13", - "moment": "^2.19.1", - "xml": "1.0.1" - } - }, - "node_modules/rss-generator/node_modules/mime-db": { - "version": "1.25.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/rss-generator/node_modules/mime-types": { - "version": "2.1.13", - "license": "MIT", - "dependencies": { - "mime-db": "~1.25.0" + "builtins": "^5.0.1", + "eslint-plugin-es": "^4.1.0", + "eslint-utils": "^3.0.0", + "ignore": "^5.1.1", + "is-core-module": "^2.11.0", + "minimatch": "^3.1.2", + "resolve": "^1.22.1", + "semver": "^7.3.8" }, "engines": { - "node": ">= 0.6" + "node": ">=12.22.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=7.0.0" } }, - "node_modules/run-parallel": { - "version": "1.2.0", + "node_modules/eslint-plugin-n/node_modules/brace-expansion": { + "version": "1.1.11", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], "license": "MIT", "dependencies": { - "queue-microtask": "^1.2.2" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/rxjs": { - "version": "7.8.0", + "node_modules/eslint-plugin-n/node_modules/minimatch": { + "version": "3.1.2", "dev": true, - "license": "Apache-2.0", + "license": "ISC", "dependencies": { - "tslib": "^2.1.0" + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safe-regex-test": { - "version": "1.0.0", + "node_modules/eslint-plugin-n/node_modules/semver": { + "version": "7.3.8", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" + "lru-cache": "^6.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "license": "MIT" - }, - "node_modules/semver": { - "version": "6.3.0", + "node_modules/eslint-plugin-promise": { + "version": "6.1.1", "dev": true, "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" } }, - "node_modules/send": { - "version": "0.18.0", - "license": "MIT", + "node_modules/eslint-scope": { + "version": "7.1.1", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "license": "MIT" - }, - "node_modules/serve-static": { - "version": "1.15.0", + "node_modules/eslint-utils": { + "version": "3.0.0", + "dev": true, "license": "MIT", "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" + "eslint-visitor-keys": "^2.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" } }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "license": "ISC" - }, - "node_modules/shebang-command": { - "version": "2.0.0", + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, + "license": "Apache-2.0", "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/shebang-regex": { - "version": "3.0.0", + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "engines": { - "node": ">=8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/side-channel": { - "version": "1.0.4", + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/signal-exit": { - "version": "3.0.7", + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", "dev": true, - "license": "ISC" + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } }, - "node_modules/slice-ansi": { - "version": "5.0.0", + "node_modules/espree": { + "version": "9.4.1", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" }, "engines": { - "node": ">=12" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "url": "https://opencollective.com/eslint" } }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "6.2.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==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "engines": { + "node": ">=4" } }, - "node_modules/source-map": { - "version": "0.6.1", + "node_modules/esquery": { + "version": "1.4.0", + "dev": true, "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=0.10" } }, - "node_modules/statuses": { - "version": "2.0.1", - "license": "MIT", + "node_modules/esrecurse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, "engines": { - "node": ">= 0.8" + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/execa": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/express": { + "version": "4.18.2", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express-basic-auth": { + "version": "1.2.1", + "license": "MIT", + "dependencies": { + "basic-auth": "^2.0.1" + } + }, + "node_modules/express-handlebars": { + "version": "6.0.6", + "license": "BSD-3-Clause", + "dependencies": { + "glob": "^8.0.2", + "graceful-fs": "^4.2.10", + "handlebars": "^4.7.7" + }, + "engines": { + "node": ">=v12.22.9" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.15.0", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/find-up": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "license": "MIT", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "license": "MIT" + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.3", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "8.0.3", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.19.0", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "license": "ISC" + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "dev": true, + "license": "MIT" + }, + "node_modules/handlebars": { + "version": "4.7.7", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/has": { + "version": "1.0.3", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/human-signals": { + "version": "3.0.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/husky": { + "version": "8.0.3", + "license": "MIT", + "bin": { + "husky": "lib/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.2.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "license": "MIT" + }, + "node_modules/is-callable": { + "version": "1.2.7", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.10", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", + "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-changed-files/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/jest-changed-files/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/jest-changed-files/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-changed-files/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/jest-changed-files/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-changed-files/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-changed-files/node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/jest-config/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-config/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/jest-runtime/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-runtime/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jest-runtime/node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-sdsl": { + "version": "4.2.0", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.0.6", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/linkify-it": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/lint-staged": { + "version": "13.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cli-truncate": "^3.1.0", + "colorette": "^2.0.19", + "commander": "^9.4.1", + "debug": "^4.3.4", + "execa": "^6.1.0", + "lilconfig": "2.0.6", + "listr2": "^5.0.5", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-inspect": "^1.12.2", + "pidtree": "^0.6.0", + "string-argv": "^0.3.1", + "yaml": "^2.1.3" + }, + "bin": { + "lint-staged": "bin/lint-staged.js" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/lint-staged" + } + }, + "node_modules/listr2": { + "version": "5.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.19", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.8.0", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } + } + }, + "node_modules/listr2/node_modules/cli-truncate": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/listr2/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/listr2/node_modules/slice-ansi": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/listr2/node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "dev": true, + "license": "MIT" + }, + "node_modules/log-update": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "6.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/markdown-it": { + "version": "13.0.1", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "~3.0.1", + "linkify-it": "^4.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/md5": { + "version": "2.3.0", + "license": "BSD-3-Clause", + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "node_modules/mdurl": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/methods": { + "version": "1.1.2", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "5.1.0", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/minimist": { + "version": "1.2.7", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/moment": { + "version": "2.29.4", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "license": "MIT" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "license": "MIT" + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.0", + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "dev": true, + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.6.0", + "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.8.3", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/punycode": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pure-rand": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", + "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, + "node_modules/qs": { + "version": "6.11.0", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/queue-promise": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/queue-promise/-/queue-promise-2.2.1.tgz", + "integrity": "sha512-C3eyRwLF9m6dPV4MtqMVFX+Xmc7keZ9Ievm3jJ/wWM5t3uVbFnGsJXwpYzZ4LaIEcX9bss/mdaKzyrO6xheRuA==", + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/restore-cursor/node_modules/mimic-fn": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/restore-cursor/node_modules/onetime": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/rimraf": { + "version": "3.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/rss-generator": { + "version": "0.0.3", + "license": "MIT", + "dependencies": { + "mime-types": "2.1.13", + "moment": "^2.19.1", + "xml": "1.0.1" + } + }, + "node_modules/rss-generator/node_modules/mime-db": { + "version": "1.25.0", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/rss-generator/node_modules/mime-types": { + "version": "2.1.13", + "license": "MIT", + "dependencies": { + "mime-db": "~1.25.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "0.18.0", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "license": "MIT" + }, + "node_modules/serve-static": { + "version": "1.15.0", + "license": "MIT", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "license": "ISC" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "dev": true, + "license": "ISC" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string-argv": { + "version": "0.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/through": { + "version": "2.3.8", + "dev": true, + "license": "MIT" + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "2.4.1", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/uc.micro": { + "version": "1.0.6", + "license": "MIT" + }, + "node_modules/uglify-js": { + "version": "3.17.4", + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz", + "integrity": "sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.2.1", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/which": { + "version": "2.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.9", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/xml": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.2.1", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "dev": true, + "requires": { + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/compat-data": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz", + "integrity": "sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==", + "dev": true + }, + "@babel/core": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz", + "integrity": "sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.3", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.3", + "@babel/types": "^7.23.3", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "dependencies": { + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.3.tgz", + "integrity": "sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==", + "dev": true, + "requires": { + "@babel/types": "^7.23.3", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.15" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", + "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", + "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "requires": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dev": true, + "requires": { + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "requires": { + "@babel/types": "^7.22.15" + } + }, + "@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + } + }, + "@babel/helper-replace-supers": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" + } + }, + "@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" + } + }, + "@babel/helpers": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", + "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", + "dev": true, + "requires": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0" + } + }, + "@babel/highlight": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.3.tgz", + "integrity": "sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==", + "dev": true + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.23.3" + } + }, + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz", + "integrity": "sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "requires": {} + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", + "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-syntax-import-attributes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", + "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-async-generator-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.3.tgz", + "integrity": "sha512-59GsVNavGxAXCDDbakWSMJhajASb4kBCqDjqJsv+p5nKdbz7istmZ3HrX3L2LuiI80+zsOADCvooqQH3qGCucQ==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", + "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.3.tgz", + "integrity": "sha512-QPZxHrThbQia7UdvfpaRRlq/J9ciz1J4go0k+lPBXbgaNeY7IQrBj/9ceWjvMMI07/ZBzHl/F0R/2K0qH7jCVw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-class-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", + "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-class-static-block": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.3.tgz", + "integrity": "sha512-PENDVxdr7ZxKPyi5Ffc0LjXdnJyrJxyqF5T5YjlVg4a0VFfQHW0r8iAtRiDXkfHlu1wwcvdtnndGYIeJLSuRMQ==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.3.tgz", + "integrity": "sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "dependencies": { + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + } + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.15" } }, - "node_modules/string-argv": { - "version": "0.3.1", + "@babel/plugin-transform-destructuring": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6.19" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/string-width": { - "version": "5.1.2", + "@babel/plugin-transform-dotall-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", + "@babel/plugin-transform-duplicate-keys": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.0.1", + "@babel/plugin-transform-dynamic-import": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.3.tgz", + "integrity": "sha512-vTG+cTGxPFou12Rj7ll+eD5yWeNl5/8xvQvF08y5Gv3v4mZQoyFf8/n9zg4q5vvCWt5jmgymfzMAldO7orBn7A==", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" } }, - "node_modules/string.prototype.trimend": { - "version": "1.0.6", + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.6", + "@babel/plugin-transform-export-namespace-from": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.3.tgz", + "integrity": "sha512-yCLhW34wpJWRdTxxWtFZASJisihrfyMOTOQexhVzA78jlU+dH7Dw+zQgcPepQ5F3C6bAIiblZZ+qBggJdHiBAg==", "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, - "node_modules/strip-ansi": { - "version": "6.0.1", + "@babel/plugin-transform-for-of": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz", + "integrity": "sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/strip-bom": { - "version": "3.0.0", + "@babel/plugin-transform-function-name": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" + "requires": { + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/strip-final-newline": { - "version": "3.0.0", + "@babel/plugin-transform-json-strings": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.3.tgz", + "integrity": "sha512-H9Ej2OiISIZowZHaBwF0tsJOih1PftXJtE8EWqlEIwpc7LMTGq0rPOrywKLQ4nefzx8/HMR0D3JGXoMHYvhi0A==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", + "@babel/plugin-transform-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/supports-color": { - "version": "7.2.0", + "@babel/plugin-transform-logical-assignment-operators": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.3.tgz", + "integrity": "sha512-+pD5ZbxofyOygEp+zZAfujY2ShNCXRpDRIPOiBmTO693hhyOEteZgl876Xs9SAHPQpcV0vz8LvA/T+w8AzyX8A==", "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", + "@babel/plugin-transform-member-expression-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/text-table": { - "version": "0.2.0", + "@babel/plugin-transform-modules-amd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", "dev": true, - "license": "MIT" + "requires": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + } }, - "node_modules/through": { - "version": "2.3.8", + "@babel/plugin-transform-modules-commonjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", "dev": true, - "license": "MIT" + "requires": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + } }, - "node_modules/to-regex-range": { - "version": "5.0.1", + "@babel/plugin-transform-modules-systemjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", + "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" + "requires": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" } }, - "node_modules/toidentifier": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=0.6" + "@babel/plugin-transform-modules-umd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/tsconfig-paths": { - "version": "3.14.1", + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", "dev": true, - "license": "MIT", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/tslib": { - "version": "2.4.1", + "@babel/plugin-transform-new-target": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", "dev": true, - "license": "0BSD" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } }, - "node_modules/type-check": { - "version": "0.4.0", + "@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.3.tgz", + "integrity": "sha512-xzg24Lnld4DYIdysyf07zJ1P+iIfJpxtVFOzX4g+bsJ3Ng5Le7rXx9KwqKzuyaUeRnt+I1EICwQITqc0E2PmpA==", "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" } }, - "node_modules/type-fest": { - "version": "0.20.2", + "@babel/plugin-transform-numeric-separator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.3.tgz", + "integrity": "sha512-s9GO7fIBi/BLsZ0v3Rftr6Oe4t0ctJ8h4CCXfPoEJwmvAPMyNrfkOOJzm6b9PX9YXcCJWWQd/sBF/N26eBiMVw==", "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" } }, - "node_modules/type-is": { - "version": "1.6.18", - "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" + "@babel/plugin-transform-object-rest-spread": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.3.tgz", + "integrity": "sha512-VxHt0ANkDmu8TANdE9Kc0rndo/ccsmfe2Cx2y5sI4hu3AukHQ5wAu4cM7j3ba8B9548ijVyclBU+nuDQftZsog==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.23.3" } }, - "node_modules/typed-array-length": { - "version": "1.0.4", + "@babel/plugin-transform-object-super": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20" } }, - "node_modules/uc.micro": { - "version": "1.0.6", - "license": "MIT" + "@babel/plugin-transform-optional-catch-binding": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.3.tgz", + "integrity": "sha512-LxYSb0iLjUamfm7f1D7GpiS4j0UAC8AOiehnsGAP8BEsIX8EOi3qV6bbctw8M7ZvLtcoZfZX5Z7rN9PlWk0m5A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } }, - "node_modules/uglify-js": { - "version": "3.17.4", - "license": "BSD-2-Clause", - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" + "@babel/plugin-transform-optional-chaining": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.3.tgz", + "integrity": "sha512-zvL8vIfIUgMccIAK1lxjvNv572JHFJIKb4MWBz5OGdBQA0fB0Xluix5rmOby48exiJc987neOmP/m9Fnpkz3Tg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, - "node_modules/unbox-primitive": { - "version": "1.0.2", + "@babel/plugin-transform-parameters": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/unpipe": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.8" + "@babel/plugin-transform-private-methods": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", + "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/uri-js": { - "version": "4.4.1", + "@babel/plugin-transform-private-property-in-object": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.3.tgz", + "integrity": "sha512-a5m2oLNFyje2e/rGKjVfAELTVI5mbA0FeZpBnkOWWV7eSmKQ+T/XW0Vf+29ScLzSxX+rnsarvU0oie/4m6hkxA==", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" } }, - "node_modules/utils-merge": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" + "@babel/plugin-transform-property-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/vary": { - "version": "1.1.2", - "license": "MIT", - "engines": { - "node": ">= 0.8" + "@babel/plugin-transform-regenerator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" } }, - "node_modules/web-streams-polyfill": { - "version": "3.2.1", - "license": "MIT", - "engines": { - "node": ">= 8" + "@babel/plugin-transform-reserved-words": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/which": { - "version": "2.0.2", + "@babel/plugin-transform-shorthand-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", + "@babel/plugin-transform-spread": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", "dev": true, - "license": "MIT", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" } }, - "node_modules/which-typed-array": { - "version": "1.1.9", + "@babel/plugin-transform-sticky-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/word-wrap": { - "version": "1.2.3", + "@babel/plugin-transform-template-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/wordwrap": { - "version": "1.0.0", - "license": "MIT" + "@babel/plugin-transform-typeof-symbol": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } }, - "node_modules/wrap-ansi": { - "version": "7.0.0", + "@babel/plugin-transform-unicode-escapes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/wrap-ansi/node_modules/emoji-regex": { - "version": "8.0.0", + "@babel/plugin-transform-unicode-property-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", + "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", "dev": true, - "license": "MIT" + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } }, - "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", + "@babel/plugin-transform-unicode-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "4.2.3", + "@babel/plugin-transform-unicode-sets-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", + "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "license": "ISC" + "@babel/preset-env": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.3.tgz", + "integrity": "sha512-ovzGc2uuyNfNAs/jyjIGxS8arOHS5FENZaNn4rtE7UdKMMkqHCvboHfcuhWLZNX5cB44QfcGNWjaevxMzzMf+Q==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.3", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.23.3", + "@babel/plugin-syntax-import-attributes": "^7.23.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.23.3", + "@babel/plugin-transform-async-generator-functions": "^7.23.3", + "@babel/plugin-transform-async-to-generator": "^7.23.3", + "@babel/plugin-transform-block-scoped-functions": "^7.23.3", + "@babel/plugin-transform-block-scoping": "^7.23.3", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@babel/plugin-transform-class-static-block": "^7.23.3", + "@babel/plugin-transform-classes": "^7.23.3", + "@babel/plugin-transform-computed-properties": "^7.23.3", + "@babel/plugin-transform-destructuring": "^7.23.3", + "@babel/plugin-transform-dotall-regex": "^7.23.3", + "@babel/plugin-transform-duplicate-keys": "^7.23.3", + "@babel/plugin-transform-dynamic-import": "^7.23.3", + "@babel/plugin-transform-exponentiation-operator": "^7.23.3", + "@babel/plugin-transform-export-namespace-from": "^7.23.3", + "@babel/plugin-transform-for-of": "^7.23.3", + "@babel/plugin-transform-function-name": "^7.23.3", + "@babel/plugin-transform-json-strings": "^7.23.3", + "@babel/plugin-transform-literals": "^7.23.3", + "@babel/plugin-transform-logical-assignment-operators": "^7.23.3", + "@babel/plugin-transform-member-expression-literals": "^7.23.3", + "@babel/plugin-transform-modules-amd": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.3", + "@babel/plugin-transform-modules-umd": "^7.23.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.23.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.3", + "@babel/plugin-transform-numeric-separator": "^7.23.3", + "@babel/plugin-transform-object-rest-spread": "^7.23.3", + "@babel/plugin-transform-object-super": "^7.23.3", + "@babel/plugin-transform-optional-catch-binding": "^7.23.3", + "@babel/plugin-transform-optional-chaining": "^7.23.3", + "@babel/plugin-transform-parameters": "^7.23.3", + "@babel/plugin-transform-private-methods": "^7.23.3", + "@babel/plugin-transform-private-property-in-object": "^7.23.3", + "@babel/plugin-transform-property-literals": "^7.23.3", + "@babel/plugin-transform-regenerator": "^7.23.3", + "@babel/plugin-transform-reserved-words": "^7.23.3", + "@babel/plugin-transform-shorthand-properties": "^7.23.3", + "@babel/plugin-transform-spread": "^7.23.3", + "@babel/plugin-transform-sticky-regex": "^7.23.3", + "@babel/plugin-transform-template-literals": "^7.23.3", + "@babel/plugin-transform-typeof-symbol": "^7.23.3", + "@babel/plugin-transform-unicode-escapes": "^7.23.3", + "@babel/plugin-transform-unicode-property-regex": "^7.23.3", + "@babel/plugin-transform-unicode-regex": "^7.23.3", + "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + } + }, + "@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } }, - "node_modules/xml": { - "version": "1.0.1", - "license": "MIT" + "@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true }, - "node_modules/yallist": { - "version": "4.0.0", + "@babel/runtime": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", + "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", "dev": true, - "license": "ISC" + "requires": { + "regenerator-runtime": "^0.14.0" + } }, - "node_modules/yaml": { - "version": "2.2.1", + "@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dev": true, - "license": "ISC", - "engines": { - "node": ">= 14" + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" } }, - "node_modules/yocto-queue": { - "version": "0.1.0", + "@babel/traverse": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.3.tgz", + "integrity": "sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.3", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.3", + "@babel/types": "^7.23.3", + "debug": "^4.1.0", + "globals": "^11.1.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + } } - } - }, - "dependencies": { + }, + "@babel/types": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.3.tgz", + "integrity": "sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, "@eslint/eslintrc": { "version": "1.4.1", "dev": true, @@ -3811,14 +9766,391 @@ } } }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "dev": true + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + } + }, + "@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "requires": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "requires": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + } + }, + "@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "requires": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + } + }, + "@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "requires": { + "jest-get-type": "^29.6.3" + } + }, + "@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + } + }, + "@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "requires": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + } + }, + "@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "requires": { + "@sinclair/typebox": "^0.27.8" + } + }, + "@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + } + }, + "@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "requires": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "requires": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + } + }, + "@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + } + }, + "@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "requires": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", "dev": true }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "dev": true }, + "@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, "@nodelib/fs.scandir": { "version": "2.1.5", "dev": true, @@ -3839,10 +10171,138 @@ "fastq": "^1.6.0" } }, + "@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "requires": { + "@sinonjs/commons": "^3.0.0" + } + }, + "@types/babel__core": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.4.tgz", + "integrity": "sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg==", + "dev": true, + "requires": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz", + "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", + "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", + "dev": true, + "requires": { + "@babel/types": "^7.20.7" + } + }, + "@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, "@types/json5": { "version": "0.0.29", "dev": true }, + "@types/node": { + "version": "20.9.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.0.tgz", + "integrity": "sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==", + "dev": true, + "requires": { + "undici-types": "~5.26.4" + } + }, + "@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "@types/yargs": { + "version": "17.0.31", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.31.tgz", + "integrity": "sha512-bocYSx4DI8TmdlvxqGpVNXOgCNR1Jj0gNPhhAY+iz1rgKDAaYrAYdFYnhDV1IFuiuVc9HkOwyDcFxaTElF3/wg==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, "accepts": { "version": "1.3.8", "requires": { @@ -3901,6 +10361,16 @@ "color-convert": "^2.0.1" } }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, "argparse": { "version": "2.0.1" }, @@ -3946,6 +10416,121 @@ "version": "1.0.5", "dev": true }, + "babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "requires": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + } + }, + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "dependencies": { + "istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + } + } + } + }, + "babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", + "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.3", + "semver": "^6.3.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz", + "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.4.3", + "core-js-compat": "^3.33.1" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", + "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.4.3" + } + }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, "balanced-match": { "version": "1.0.2" }, @@ -4001,6 +10586,33 @@ "fill-range": "^7.0.1" } }, + "browserslist": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, "builtins": { "version": "5.0.1", "dev": true, @@ -4031,6 +10643,18 @@ "version": "3.1.0", "dev": true }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001561", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001561.tgz", + "integrity": "sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==", + "dev": true + }, "chalk": { "version": "4.1.2", "dev": true, @@ -4039,9 +10663,27 @@ "supports-color": "^7.1.0" } }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true + }, "charenc": { "version": "0.0.2" }, + "ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true + }, + "cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "dev": true + }, "clean-stack": { "version": "2.2.0", "dev": true @@ -4061,6 +10703,54 @@ "string-width": "^5.0.0" } }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true + }, + "collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, "color-convert": { "version": "2.0.1", "dev": true, @@ -4093,6 +10783,12 @@ "content-type": { "version": "1.0.4" }, + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, "cookie": { "version": "0.5.0" }, @@ -4114,6 +10810,15 @@ "copy-env-cli": { "version": "1.0.0" }, + "core-js-compat": { + "version": "3.33.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.2.tgz", + "integrity": "sha512-axfo+wxFVxnqf8RvxTzoAlzW4gRoacrHeoFlc9n0x50+7BEyZL/Rt3hicaED1/CEd7I6tPCPVUYcJwCMO5XUYw==", + "dev": true, + "requires": { + "browserslist": "^4.22.1" + } + }, "cors": { "version": "2.8.5", "requires": { @@ -4121,6 +10826,21 @@ "vary": "^1" } }, + "create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + } + }, "cross-spawn": { "version": "7.0.3", "dev": true, @@ -4142,10 +10862,23 @@ "ms": "2.1.2" } }, + "dedent": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", + "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "dev": true, + "requires": {} + }, "deep-is": { "version": "0.1.4", "dev": true }, + "deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true + }, "define-properties": { "version": "1.1.4", "dev": true, @@ -4160,6 +10893,18 @@ "destroy": { "version": "1.2.0" }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + }, + "diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true + }, "doctrine": { "version": "3.0.0", "dev": true, @@ -4177,6 +10922,18 @@ "ee-first": { "version": "1.1.1" }, + "electron-to-chromium": { + "version": "1.4.581", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.581.tgz", + "integrity": "sha512-6uhqWBIapTJUxgPTCHH9sqdbxIMPt7oXl0VcAL1kOtlU6aECdcMncCrX5Z7sHQ/invtrC9jUQUef7+HhO8vVFw==", + "dev": true + }, + "emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true + }, "emoji-regex": { "version": "9.2.2", "dev": true @@ -4187,6 +10944,15 @@ "entities": { "version": "3.0.1" }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, "es-abstract": { "version": "1.21.1", "dev": true, @@ -4251,6 +11017,12 @@ "is-symbol": "^1.0.2" } }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, "escape-html": { "version": "1.0.3" }, @@ -4514,6 +11286,12 @@ "eslint-visitor-keys": "^3.3.0" } }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, "esquery": { "version": "1.4.0", "dev": true, @@ -4554,6 +11332,25 @@ "strip-final-newline": "^3.0.0" } }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true + }, + "expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "requires": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + } + }, "express": { "version": "4.18.2", "requires": { @@ -4634,6 +11431,15 @@ "reusify": "^1.0.4" } }, + "fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, "fetch-blob": { "version": "3.2.0", "requires": { @@ -4720,6 +11526,13 @@ "fs.realpath": { "version": "1.0.0" }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "optional": true + }, "function-bind": { "version": "1.1.1" }, @@ -4737,6 +11550,18 @@ "version": "1.2.3", "dev": true }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, "get-intrinsic": { "version": "1.1.3", "requires": { @@ -4745,6 +11570,12 @@ "has-symbols": "^1.0.3" } }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, "get-stream": { "version": "6.0.1", "dev": true @@ -4847,6 +11678,12 @@ "has-symbols": "^1.0.2" } }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, "http-errors": { "version": "2.0.0", "requires": { @@ -4882,6 +11719,16 @@ "resolve-from": "^4.0.0" } }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, "imurmurhash": { "version": "0.1.4", "dev": true @@ -4921,6 +11768,12 @@ "is-typed-array": "^1.1.10" } }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, "is-bigint": { "version": "1.0.4", "dev": true, @@ -4965,6 +11818,12 @@ "version": "4.0.0", "dev": true }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true + }, "is-glob": { "version": "4.0.3", "dev": true, @@ -5046,10 +11905,652 @@ "version": "2.0.0", "dev": true }, + "istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", + "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "dependencies": { + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + } + }, + "istanbul-reports": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "requires": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + } + }, + "jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "requires": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "dependencies": { + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + } + } + }, + "jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "requires": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + } + }, + "jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "requires": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + } + }, + "jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + } + }, + "jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + } + }, + "jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "requires": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + } + }, + "jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true + }, + "jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + } + }, + "jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "requires": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + } + }, + "jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + } + }, + "jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + } + }, + "jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + } + }, + "jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "requires": {} + }, + "jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true + }, + "jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + } + }, + "jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "requires": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + } + }, + "jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "requires": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + } + }, + "jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "requires": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + } + } + }, + "jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "dependencies": { + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + } + } + }, + "jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "requires": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + } + }, + "jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "requires": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "js-sdsl": { "version": "4.2.0", "dev": true }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, "js-yaml": { "version": "4.1.0", "dev": true, @@ -5057,6 +12558,18 @@ "argparse": "^2.0.1" } }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, "json-schema-traverse": { "version": "0.4.1", "dev": true @@ -5072,6 +12585,18 @@ "minimist": "^1.2.0" } }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, "levn": { "version": "0.4.1", "dev": true, @@ -5084,6 +12609,12 @@ "version": "2.0.6", "dev": true }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, "linkify-it": { "version": "4.0.1", "requires": { @@ -5166,6 +12697,12 @@ "p-locate": "^5.0.0" } }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, "lodash.merge": { "version": "4.6.2", "dev": true @@ -5224,6 +12761,35 @@ "yallist": "^4.0.0" } }, + "make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "requires": { + "semver": "^7.5.3" + }, + "dependencies": { + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "requires": { + "tmpl": "1.0.5" + } + }, "markdown-it": { "version": "13.0.1", "requires": { @@ -5318,6 +12884,18 @@ "formdata-polyfill": "^4.0.10" } }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true + }, "normalize-path": { "version": "3.0.0", "dev": true @@ -5416,6 +12994,12 @@ "aggregate-error": "^3.0.0" } }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, "parent-module": { "version": "1.0.1", "dev": true, @@ -5423,6 +13007,18 @@ "callsites": "^3.0.0" } }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, "parseurl": { "version": "1.3.3" }, @@ -5445,6 +13041,12 @@ "path-to-regexp": { "version": "0.1.7" }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, "picomatch": { "version": "2.3.1", "dev": true @@ -5453,6 +13055,60 @@ "version": "0.6.0", "dev": true }, + "pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + } + } + }, "prelude-ls": { "version": "1.2.1", "dev": true @@ -5461,6 +13117,35 @@ "version": "2.8.3", "dev": true }, + "pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "requires": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, "proxy-addr": { "version": "2.0.7", "requires": { @@ -5472,6 +13157,12 @@ "version": "2.2.0", "dev": true }, + "pure-rand": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", + "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "dev": true + }, "qs": { "version": "6.11.0", "requires": { @@ -5499,6 +13190,42 @@ "unpipe": "1.0.0" } }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", + "dev": true + }, + "regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, "regexp.prototype.flags": { "version": "1.4.3", "dev": true, @@ -5512,6 +13239,43 @@ "version": "3.2.0", "dev": true }, + "regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "requires": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + } + }, + "regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, "resolve": { "version": "1.22.1", "dev": true, @@ -5521,10 +13285,33 @@ "supports-preserve-symlinks-flag": "^1.0.0" } }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, "resolve-from": { "version": "4.0.0", "dev": true }, + "resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true + }, "restore-cursor": { "version": "3.1.0", "dev": true, @@ -5639,7 +13426,9 @@ "version": "2.1.2" }, "semver": { - "version": "6.3.0", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true }, "send": { @@ -5711,6 +13500,18 @@ "version": "3.0.7", "dev": true }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, "slice-ansi": { "version": "5.0.0", "dev": true, @@ -5728,6 +13529,39 @@ "source-map": { "version": "0.6.1" }, + "source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } + } + }, "statuses": { "version": "2.0.1" }, @@ -5735,6 +13569,16 @@ "version": "0.3.1", "dev": true }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, "string-width": { "version": "5.1.2", "dev": true, @@ -5805,6 +13649,52 @@ "version": "1.0.0", "dev": true }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, "text-table": { "version": "0.2.0", "dev": true @@ -5813,6 +13703,18 @@ "version": "2.3.8", "dev": true }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, "to-regex-range": { "version": "5.0.1", "dev": true, @@ -5844,6 +13746,12 @@ "prelude-ls": "^1.2.1" } }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, "type-fest": { "version": "0.20.2", "dev": true @@ -5881,9 +13789,53 @@ "which-boxed-primitive": "^1.0.2" } }, + "undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true + }, "unpipe": { "version": "1.0.0" }, + "update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, "uri-js": { "version": "4.4.1", "dev": true, @@ -5894,9 +13846,29 @@ "utils-merge": { "version": "1.0.1" }, + "v8-to-istanbul": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz", + "integrity": "sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + } + }, "vary": { "version": "1.1.2" }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "requires": { + "makeerror": "1.0.12" + } + }, "web-streams-polyfill": { "version": "3.2.1" }, @@ -5968,9 +13940,25 @@ "wrappy": { "version": "1.0.2" }, + "write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + } + }, "xml": { "version": "1.0.1" }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, "yallist": { "version": "4.0.0", "dev": true @@ -5979,6 +13967,52 @@ "version": "2.2.1", "dev": true }, + "yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + }, "yocto-queue": { "version": "0.1.0", "dev": true diff --git a/package.json b/package.json index 9094d84..559a03c 100644 --- a/package.json +++ b/package.json @@ -52,12 +52,16 @@ "rss-generator": "^0.0.3" }, "devDependencies": { + "@babel/core": "^7.23.3", + "@babel/preset-env": "^7.23.3", + "babel-jest": "^29.7.0", "eslint": "^8.32.0", "eslint-config-prettier": "^8.6.0", "eslint-config-standard": "^17.0.0", "eslint-plugin-import": "^2.27.5", "eslint-plugin-n": "^15.6.1", "eslint-plugin-promise": "^6.1.1", + "jest": "^29.7.0", "lint-staged": "^13.1.0", "prettier": "^2.8.3" }, From 5c46a91c555c64265dd69eb2527ced2a4aadb1bf Mon Sep 17 00:00:00 2001 From: Justin Nguyen Date: Sat, 11 Nov 2023 15:33:13 -0800 Subject: [PATCH 003/100] add first test --- lib/__tests__/account.jest.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/__tests__/account.jest.js b/lib/__tests__/account.jest.js index c33a4c8..e4fb746 100644 --- a/lib/__tests__/account.jest.js +++ b/lib/__tests__/account.jest.js @@ -1,7 +1,14 @@ -const account = require('../account'); +const { isMyPost } = require('../account'); import 'node-fetch'; jest.mock('node-fetch', () => jest.fn()); -test('Check if a post is my post', () => {}); +test('Check if a post is my post', () => { + const { DOMAIN } = process.env; + const activity = { + id: `https://${DOMAIN}/m/` + }; + + expect(isMyPost(activity)).toBe(true); +}); From c1b434e024ffe4b1f7adcb0d86e9c86f23625f2b Mon Sep 17 00:00:00 2001 From: Justin Nguyen Date: Sat, 11 Nov 2023 18:35:39 -0800 Subject: [PATCH 004/100] add more tests --- lib/__tests__/account.jest.js | 22 ++++++++--- lib/__tests__/storage.jest.js | 73 +++++++++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+), 6 deletions(-) create mode 100644 lib/__tests__/storage.jest.js diff --git a/lib/__tests__/account.jest.js b/lib/__tests__/account.jest.js index e4fb746..a64380e 100644 --- a/lib/__tests__/account.jest.js +++ b/lib/__tests__/account.jest.js @@ -4,11 +4,21 @@ import 'node-fetch'; jest.mock('node-fetch', () => jest.fn()); -test('Check if a post is my post', () => { - const { DOMAIN } = process.env; - const activity = { - id: `https://${DOMAIN}/m/` - }; +describe('Tests for isMyPost', () => { + test('Check if a post is my post', () => { + const { DOMAIN } = process.env; + const activity = { + id: `https://${DOMAIN}/m/` + }; - expect(isMyPost(activity)).toBe(true); + expect(isMyPost(activity)).toBe(true); + }); + + test('Check if a post is not my post', () => { + const activity = { + id: 'https://garbage/m/' + }; + + expect(isMyPost(activity)).toBe(false); + }); }); diff --git a/lib/__tests__/storage.jest.js b/lib/__tests__/storage.jest.js new file mode 100644 index 0000000..408dd92 --- /dev/null +++ b/lib/__tests__/storage.jest.js @@ -0,0 +1,73 @@ +const { isMyPost } = require('../storage'); + +beforeEach(() => { + jest.resetModules(); +}); + +describe('Tests for isMyPost', () => { + test('Check if a post is my post', () => { + const { DOMAIN } = process.env; + const activityId = `https://${DOMAIN}/m/`; + + expect(isMyPost(activityId)).toBe(true); + }); + + test('Check if a post is not my post', () => { + const activityId = `https://garbage/m/`; + + expect(isMyPost(activityId)).toBe(false); + }); +}); + +describe('Tests for isIndexed', () => { + test('Check on empty array', () => { + jest.mock('../storage', () => { + const originalModule = jest.requireActual('../storage'); + const INDEX = []; + return { + __esModule: true, + ...originalModule, + isIndexed: jest.fn(id => { + return INDEX.some(p => id === p.id); + }) + }; + }); + + const mockedModule = require('../storage'); + expect(mockedModule.isIndexed('abc')).toBe(false); + }); + + test('Check with existing id in array', () => { + jest.mock('../storage', () => { + const originalModule = jest.requireActual('../storage'); + const INDEX = [{ id: 'abc' }]; + return { + __esModule: true, + ...originalModule, + isIndexed: jest.fn(id => { + return INDEX.some(p => id === p.id); + }) + }; + }); + + const mockedModule = require('../storage'); + expect(mockedModule.isIndexed('abc')).toBe(true); + }); + + test('Check with non-existing id in array', () => { + jest.mock('../storage', () => { + const originalModule = jest.requireActual('../storage'); + const INDEX = [{ id: 'abc' }]; + return { + __esModule: true, + ...originalModule, + isIndexed: jest.fn(id => { + return INDEX.some(p => id === p.id); + }) + }; + }); + + const mockedModule = require('../storage'); + expect(mockedModule.isIndexed('def')).toBe(false); + }); +}); From 702926d4f70b526aa435fd5f39c598a56b225fda Mon Sep 17 00:00:00 2001 From: Justin Nguyen Date: Sat, 11 Nov 2023 18:35:39 -0800 Subject: [PATCH 005/100] add more tests --- lib/__tests__/files/readJSONDictionary.json | 3 + lib/__tests__/storage.jest.js | 116 +++++++++++++------- 2 files changed, 79 insertions(+), 40 deletions(-) create mode 100644 lib/__tests__/files/readJSONDictionary.json diff --git a/lib/__tests__/files/readJSONDictionary.json b/lib/__tests__/files/readJSONDictionary.json new file mode 100644 index 0000000..7f3445f --- /dev/null +++ b/lib/__tests__/files/readJSONDictionary.json @@ -0,0 +1,3 @@ +{ + "id": "test" +} \ No newline at end of file diff --git a/lib/__tests__/storage.jest.js b/lib/__tests__/storage.jest.js index 408dd92..4272cd3 100644 --- a/lib/__tests__/storage.jest.js +++ b/lib/__tests__/storage.jest.js @@ -1,4 +1,4 @@ -const { isMyPost } = require('../storage'); +const { isMyPost, INDEX, isIndexed, fromIndex, readJSONDictionary, CACHE } = require('../storage'); beforeEach(() => { jest.resetModules(); @@ -21,53 +21,89 @@ describe('Tests for isMyPost', () => { describe('Tests for isIndexed', () => { test('Check on empty array', () => { - jest.mock('../storage', () => { - const originalModule = jest.requireActual('../storage'); - const INDEX = []; - return { - __esModule: true, - ...originalModule, - isIndexed: jest.fn(id => { - return INDEX.some(p => id === p.id); - }) - }; - }); - - const mockedModule = require('../storage'); - expect(mockedModule.isIndexed('abc')).toBe(false); + INDEX.splice(0, INDEX.length); + expect(isIndexed('abc')).toBe(false); }); test('Check with existing id in array', () => { - jest.mock('../storage', () => { - const originalModule = jest.requireActual('../storage'); - const INDEX = [{ id: 'abc' }]; - return { - __esModule: true, - ...originalModule, - isIndexed: jest.fn(id => { - return INDEX.some(p => id === p.id); - }) - }; - }); + INDEX.splice(0, INDEX.length); + INDEX.push({ id: 'abc' }); + expect(isIndexed('abc')).toBe(true); + }); - const mockedModule = require('../storage'); - expect(mockedModule.isIndexed('abc')).toBe(true); + test('Check with non-existing id in array', () => { + INDEX.splice(0, INDEX.length); + INDEX.push({ id: 'abc' }); + expect(isIndexed('def')).toBe(false); + }); +}); + +describe('Tests for fromIndex', () => { + test('Check on empty array', () => { + INDEX.splice(0, INDEX.length); + expect(fromIndex('abc')).toBe(false); + }); + + test('Check with existing id in array', () => { + INDEX.splice(0, INDEX.length); + INDEX.push({ id: 'abc' }); + expect(fromIndex('abc')).toStrictEqual({ id: 'abc' }); }); test('Check with non-existing id in array', () => { - jest.mock('../storage', () => { - const originalModule = jest.requireActual('../storage'); - const INDEX = [{ id: 'abc' }]; - return { - __esModule: true, - ...originalModule, - isIndexed: jest.fn(id => { - return INDEX.some(p => id === p.id); - }) - }; + INDEX.splice(0, INDEX.length); + INDEX.push({ id: 'abc' }); + expect(fromIndex('def')).toBe(false); + }); +}); + +describe('Tests for readJSONDictionary', () => { + test('Check with non-existing path', () => { + const mockDate = new Date('2023-01-01T00:00:00Z'); + const spy = jest.spyOn(global, 'Date').mockImplementation(() => mockDate); + + const path = 'files/garbage'; + + readJSONDictionary(path); + + expect(CACHE[path]).toStrictEqual({ time: mockDate.getTime(), lastAccess: mockDate.getTime(), contents: [] }); + spy.mockRestore(); + }); + + test('Check with existing path and no cache hit', () => { + const mockDate = new Date('2023-01-01T00:00:00Z'); + const spy = jest.spyOn(global, 'Date').mockImplementation(() => mockDate); + + const path = 'lib/__tests__/files/readJSONDictionary.json'; + + readJSONDictionary(path); + + const jsonString = '{"id": "test"}'; + + expect(CACHE[path]).toStrictEqual({ + time: mockDate.getTime(), + lastAccess: mockDate.getTime(), + contents: JSON.parse(jsonString) }); + spy.mockRestore(); + }); + + test('Check with existing path and cache hit', () => { + const mockDate = new Date('2022-01-01T00:00:00Z'); + const cachedDate = new Date('2023-01-01T00:00:00Z'); + const spy = jest.spyOn(global, 'Date').mockImplementation(() => mockDate); + + const path = 'lib/__tests__/files/readJSONDictionary.json'; - const mockedModule = require('../storage'); - expect(mockedModule.isIndexed('def')).toBe(false); + readJSONDictionary(path); + + const jsonString = '{"id": "test"}'; + + expect(CACHE[path]).toStrictEqual({ + time: cachedDate.getTime(), + lastAccess: mockDate.getTime(), + contents: JSON.parse(jsonString) + }); + spy.mockRestore(); }); }); From bab86922fcda616e55322d129834beb02c156e4c Mon Sep 17 00:00:00 2001 From: Kashish Jain Date: Sat, 11 Nov 2023 21:20:24 -0800 Subject: [PATCH 006/100] CI-CD Workflow --- .github/workflows/test.yml | 25 +++++++++++++++++++++++++ package-lock.json | 36 ++++++++++++++++++++++++------------ package.json | 2 +- 3 files changed, 50 insertions(+), 13 deletions(-) create mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..8e36e59 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,25 @@ +name: Unit Tests + +on: [push, pull_request] + +jobs: + tests: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [16.x] + + steps: + - uses: actions/checkout@v2 + + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + + - name: Install dependencies + run: npm install + + - name: Run tests + run: npm test \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 7da2dfc..9683b32 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3148,9 +3148,10 @@ } }, "node_modules/builtins/node_modules/semver": { - "version": "7.3.8", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -4085,9 +4086,10 @@ } }, "node_modules/eslint-plugin-n/node_modules/semver": { - "version": "7.3.8", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -8205,9 +8207,10 @@ } }, "node_modules/word-wrap": { - "version": "1.2.3", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -8294,9 +8297,10 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "2.2.1", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", "dev": true, - "license": "ISC", "engines": { "node": ">= 14" } @@ -10621,7 +10625,9 @@ }, "dependencies": { "semver": { - "version": "7.3.8", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -11239,7 +11245,9 @@ } }, "semver": { - "version": "7.3.8", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -13903,7 +13911,9 @@ } }, "word-wrap": { - "version": "1.2.3", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true }, "wordwrap": { @@ -13964,7 +13974,9 @@ "dev": true }, "yaml": { - "version": "2.2.1", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", "dev": true }, "yargs": { diff --git a/package.json b/package.json index 559a03c..b3e4622 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "scripts": { "prepare": "husky install", "start": "node index.js", - "test": "echo \"Error: no test specified\" && exit 1", + "test": "jest", "postinstall": "copy-env-cli", "lint": "eslint lib/. && prettier --check lib/.", "lint:fix": "eslint lib/. --fix && prettier --write lib/." From 2f64f754a858bbd965a4ff2888cd1fe3a284c91a Mon Sep 17 00:00:00 2001 From: kashishvjain <66744312+kashishvjain@users.noreply.github.com> Date: Sat, 11 Nov 2023 21:29:01 -0800 Subject: [PATCH 007/100] Update test.yml --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8e36e59..131ba90 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -8,7 +8,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [18.x, 16.x] steps: - uses: actions/checkout@v2 @@ -22,4 +22,4 @@ jobs: run: npm install - name: Run tests - run: npm test \ No newline at end of file + run: npm test From 99b77d0c8a59f45652668c0792562ef3866b8db2 Mon Sep 17 00:00:00 2001 From: Justin Nguyen Date: Sat, 11 Nov 2023 18:35:39 -0800 Subject: [PATCH 008/100] add more tests --- lib/__tests__/storage.jest.js | 44 ++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/lib/__tests__/storage.jest.js b/lib/__tests__/storage.jest.js index 4272cd3..dd5d93c 100644 --- a/lib/__tests__/storage.jest.js +++ b/lib/__tests__/storage.jest.js @@ -1,4 +1,14 @@ -const { isMyPost, INDEX, isIndexed, fromIndex, readJSONDictionary, CACHE } = require('../storage'); +const { + isMyPost, + INDEX, + isIndexed, + fromIndex, + readJSONDictionary, + writeJSONDictionary, + CACHE, + deleteJSONDictionary +} = require('../storage'); +import fs from 'fs'; beforeEach(() => { jest.resetModules(); @@ -107,3 +117,35 @@ describe('Tests for readJSONDictionary', () => { spy.mockRestore(); }); }); + +describe('Tests for writeJSONDictionary', () => { + test('Check successful', () => { + const mockDate = new Date('2023-01-01T00:00:00Z'); + const spy = jest.spyOn(global, 'Date').mockImplementation(() => mockDate); + + const path = 'lib/__tests__/files/writeJSONDictionary.json'; + const data = { id: 'test' }; + + writeJSONDictionary(path, data); + + expect(CACHE[path]).toEqual({ + time: mockDate.getTime(), + lastAccess: mockDate.getTime(), + contents: data + }); + const fileContent = fs.readFileSync(path, 'utf-8'); + expect(fileContent).toMatch(JSON.stringify(data, null, 2)); + spy.mockRestore(); + }); +}); + +describe('Tests for deleteJSONDictionary', () => { + test('Check with existing path', () => { + const path = 'lib/__tests__/files/writeJSONDictionary.json'; + + deleteJSONDictionary(path); + + expect(fs.existsSync(path)).toBe(false); + expect(CACHE[path]).toBe(undefined); + }); +}); From 534f92f39e3d726159b403c8c88d54651f3f9e56 Mon Sep 17 00:00:00 2001 From: Justin Nguyen Date: Sun, 12 Nov 2023 13:36:47 -0800 Subject: [PATCH 009/100] refactor for jest to pass --- lib/queue.js | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/lib/queue.js b/lib/queue.js index 6b7a8ec..82fa237 100644 --- a/lib/queue.js +++ b/lib/queue.js @@ -28,14 +28,12 @@ queue.on('resolve', data => { }); queue.on('reject', error => console.error(error)); -async function runQueue() { - while (queue.shouldRun) { - try { +while (queue.shouldRun) { + try { + (async () => { await queue.dequeue(); - } catch (err) { - console.error(err); - } + })(); + } catch (err) { + console.error(err); } } - -runQueue(); From 1453359a432a1f5e6a5c347e0311035fbfd1723a Mon Sep 17 00:00:00 2001 From: Justin Nguyen Date: Sun, 12 Nov 2023 15:45:27 -0800 Subject: [PATCH 010/100] add more tests for storage.js --- lib/__tests__/storage.jest.js | 106 +++++++++++++++++++++++++++++++++- 1 file changed, 105 insertions(+), 1 deletion(-) diff --git a/lib/__tests__/storage.jest.js b/lib/__tests__/storage.jest.js index dd5d93c..19fad6c 100644 --- a/lib/__tests__/storage.jest.js +++ b/lib/__tests__/storage.jest.js @@ -1,4 +1,6 @@ const { + dataDir, + pathToFiles, isMyPost, INDEX, isIndexed, @@ -6,9 +8,15 @@ const { readJSONDictionary, writeJSONDictionary, CACHE, - deleteJSONDictionary + deleteJSONDictionary, + addFailureToIndex, + addActivityToIndex, + deleteActivityFromIndex, + getFileName } = require('../storage'); import fs from 'fs'; +import path from 'path'; +import md5 from 'md5'; beforeEach(() => { jest.resetModules(); @@ -64,6 +72,7 @@ describe('Tests for fromIndex', () => { INDEX.splice(0, INDEX.length); INDEX.push({ id: 'abc' }); expect(fromIndex('def')).toBe(false); + deleteActivityFromIndex('abc'); }); }); @@ -149,3 +158,98 @@ describe('Tests for deleteJSONDictionary', () => { expect(CACHE[path]).toBe(undefined); }); }); + +describe('Tests for addFailureToIndex', () => { + test('Check successful', () => { + const mockDate = new Date('2023-01-01T00:00:00Z'); + const id = 'def'; + + const note = { id: id, time: mockDate.getTime(), status: 'error' }; + + addFailureToIndex(note); + + const failure = fromIndex(id); + expect(failure.type).toBe('fail'); + expect(failure.id).toBe(id); + expect(failure.published).toBe(mockDate.getTime()); + expect(failure.status).toBe('error'); + + deleteActivityFromIndex(id); + }); +}); + +describe('Tests for addActivityToIndex', () => { + test('Check successful', () => { + const mockDate = new Date('2023-01-01T00:00:00Z'); + const id = 'ghi'; + const attributedTo = 'justin'; + const published = '2023-01-01T00:00:00Z'; + const inReplyTo = 'ever'; + const note = { id: id, attributedTo: attributedTo, published: published, inReplyTo: inReplyTo }; + + addActivityToIndex(note); + + const activity = fromIndex(id); + expect(activity.type).toBe('activity'); + expect(activity.id).toBe(id); + expect(activity.actor).toBe(attributedTo); + expect(activity.published).toBe(mockDate.getTime()); + expect(activity.inReplyTo).toBe(inReplyTo); + + deleteActivityFromIndex(id); + }); +}); + +describe('Tests for deleteActivityFromIndex', () => { + test('Check successful', () => { + const mockDate = new Date('2023-01-01T00:00:00Z'); + const id = 'jkl'; + const attributedTo = 'justin'; + const published = '2023-01-01T00:00:00Z'; + const inReplyTo = 'ever'; + const note = { id: id, attributedTo: attributedTo, published: published, inReplyTo: inReplyTo }; + + addActivityToIndex(note); + + const activity = fromIndex(id); + expect(activity.type).toBe('activity'); + expect(activity.id).toBe(id); + expect(activity.actor).toBe(attributedTo); + expect(activity.published).toBe(mockDate.getTime()); + expect(activity.inReplyTo).toBe(inReplyTo); + + deleteActivityFromIndex(id); + + expect(INDEX.findIndex(idx => idx.id === id)).toBe(-1); + }); +}); + +describe('Tests for getFileName', () => { + const zeroPad = num => { + if (num < 10) { + return `0${num}`; + } else return num; + }; + test('Check when file not cached', () => { + const mockDate = new Date('2023-01-01T00:00:00Z'); + const id = 'abc'; + const attributedTo = 'justin'; + const published = '2023-01-01T00:00:00Z'; + const inReplyTo = 'ever'; + const note = { id: id, attributedTo: attributedTo, published: published, inReplyTo: inReplyTo }; + + addActivityToIndex(note); + + const folder = mockDate.getFullYear() + '/' + zeroPad(mockDate.getMonth() + 1) + '-' + zeroPad(mockDate.getDate()); + + expect(getFileName(id)).toBe(path.resolve(pathToFiles, folder, `${md5(id)}.json`)); + }); + test('Check when file is cached', () => { + const mockDate = new Date('2023-01-01T00:00:00Z'); + const id = 'abc'; + + const folder = mockDate.getFullYear() + '/' + zeroPad(mockDate.getMonth() + 1) + '-' + zeroPad(mockDate.getDate()); + + expect(getFileName(id)).toBe(path.resolve(pathToFiles, folder, `${md5(id)}.json`)); + }); +}); From df856846f808368c220646a98b1f4b9db5855c20 Mon Sep 17 00:00:00 2001 From: Justin Nguyen Date: Sun, 12 Nov 2023 15:45:27 -0800 Subject: [PATCH 011/100] add more tests for storage.js --- lib/__tests__/storage.jest.js | 67 +++++++++++++++++++++++++++++++---- 1 file changed, 60 insertions(+), 7 deletions(-) diff --git a/lib/__tests__/storage.jest.js b/lib/__tests__/storage.jest.js index 19fad6c..27263bd 100644 --- a/lib/__tests__/storage.jest.js +++ b/lib/__tests__/storage.jest.js @@ -1,6 +1,6 @@ const { - dataDir, pathToFiles, + pathToPosts, isMyPost, INDEX, isIndexed, @@ -12,12 +12,20 @@ const { addFailureToIndex, addActivityToIndex, deleteActivityFromIndex, - getFileName + getFileName, + getLikesFileName, + createFileName } = require('../storage'); import fs from 'fs'; import path from 'path'; import md5 from 'md5'; +const zeroPad = num => { + if (num < 10) { + return `0${num}`; + } else return num; +}; + beforeEach(() => { jest.resetModules(); }); @@ -225,11 +233,6 @@ describe('Tests for deleteActivityFromIndex', () => { }); describe('Tests for getFileName', () => { - const zeroPad = num => { - if (num < 10) { - return `0${num}`; - } else return num; - }; test('Check when file not cached', () => { const mockDate = new Date('2023-01-01T00:00:00Z'); const id = 'abc'; @@ -251,5 +254,55 @@ describe('Tests for getFileName', () => { const folder = mockDate.getFullYear() + '/' + zeroPad(mockDate.getMonth() + 1) + '-' + zeroPad(mockDate.getDate()); expect(getFileName(id)).toBe(path.resolve(pathToFiles, folder, `${md5(id)}.json`)); + deleteActivityFromIndex(id); + }); +}); + +describe('Tests for getLikesFileName', () => { + test('Check when file not cached', () => { + const mockDate = new Date('2023-01-01T00:00:00Z'); + const id = 'abc'; + const attributedTo = 'justin'; + const published = '2023-01-01T00:00:00Z'; + const inReplyTo = 'ever'; + const note = { id: id, attributedTo: attributedTo, published: published, inReplyTo: inReplyTo }; + + addActivityToIndex(note); + + const folder = mockDate.getFullYear() + '/' + zeroPad(mockDate.getMonth() + 1) + '-' + zeroPad(mockDate.getDate()); + + expect(getLikesFileName(id)).toBe(path.resolve(pathToPosts, folder, `${md5(id)}.likes.json`)); + }); + test('Check when file is cached', () => { + const mockDate = new Date('2023-01-01T00:00:00Z'); + const id = 'abc'; + + const folder = mockDate.getFullYear() + '/' + zeroPad(mockDate.getMonth() + 1) + '-' + zeroPad(mockDate.getDate()); + + expect(getLikesFileName(id)).toBe(path.resolve(pathToPosts, folder, `${md5(id)}.likes.json`)); + deleteActivityFromIndex(id); + }); +}); + +describe('Tests for createFileName', () => { + test('Check successful', () => { + const mockDate = new Date('2023-01-01T00:00:00Z'); + const id = 'jkl'; + const attributedTo = 'justin'; + const published = '2023-01-01T00:00:00Z'; + const inReplyTo = 'ever'; + const note = { id: id, attributedTo: attributedTo, published: published, inReplyTo: inReplyTo }; + + addActivityToIndex(note); + + const activity = fromIndex(id); + + const folder = mockDate.getFullYear() + '/' + zeroPad(mockDate.getMonth() + 1) + '-' + zeroPad(mockDate.getDate()); + + expect(createFileName(activity)).toBe(path.resolve(pathToFiles, folder, `${md5(id)}.json`)); + expect(fs.existsSync(path.resolve(pathToFiles, folder))).toBe(true); + deleteActivityFromIndex(id); }); }); + +describe('Tests for searchKnownUsers', () => {}); From 3741ace0083fa0dc93ebf8f5db57d1e27b4f0cdc Mon Sep 17 00:00:00 2001 From: Wang Dingkun Date: Mon, 13 Nov 2023 10:21:26 -0800 Subject: [PATCH 012/100] test: add tests for notes.js --- lib/__tests__/files/likedata.json | 5 + lib/__tests__/notes.jest.js | 177 ++++++++++++++++++++++++++++++ 2 files changed, 182 insertions(+) create mode 100644 lib/__tests__/files/likedata.json create mode 100644 lib/__tests__/notes.jest.js diff --git a/lib/__tests__/files/likedata.json b/lib/__tests__/files/likedata.json new file mode 100644 index 0000000..17562e0 --- /dev/null +++ b/lib/__tests__/files/likedata.json @@ -0,0 +1,5 @@ +{ + "id": "abc", + "likes": [], + "boosts": [] +} \ No newline at end of file diff --git a/lib/__tests__/notes.jest.js b/lib/__tests__/notes.jest.js new file mode 100644 index 0000000..95c3243 --- /dev/null +++ b/lib/__tests__/notes.jest.js @@ -0,0 +1,177 @@ +import fs from 'fs'; +import { + INDEX, + deleteActivityFromIndex, + addActivityToIndex, + getLikesFileName, + writeJSONDictionary +} from '../storage.js'; +import { + getLikesForNote, + getReplyCountForNote, + recordLike, + recordBoost, + recordUndoLike +} from '../notes.js'; + +beforeEach(() => { + jest.resetModules(); +}); + +jest.mock('../storage', () => ({ + ...jest.requireActual('../storage'), + getLikesFileName: jest.fn(() => 'lib/__tests__/files/likedata.json'), +})); + +describe('Tests for getLikesForNote', () => { + test('Check if the output matches', () => { + const mockDate = new Date('2023-01-01T00:00:00Z'); + const spy = jest.spyOn(global, 'Date').mockImplementation(() => mockDate); + const id = 'abc'; + const attributedTo = 'justin'; + const published = '2023-01-01T00:00:00Z'; + const inReplyTo = 'ever'; + const note = { id: id, attributedTo: attributedTo, published: published, inReplyTo: inReplyTo }; + + addActivityToIndex(note); + + const content = { id: 'abc', likes: [], boosts: [] }; + + expect(getLikesForNote(id)).toStrictEqual(content); + deleteActivityFromIndex(id); + spy.mockRestore(); + }); +}); + +describe('Tests for getReplyCountForNote', () => { + test('Check on empty array', () => { + INDEX.splice(0, INDEX.length); + expect(getReplyCountForNote('A')).toBe(0); + }); + + test('Check with existing inReplyTo in INDEX', () => { + INDEX.splice(0, INDEX.length); + INDEX.push( + { id: '1', inReplyTo: 'AB' }, + { id: '2', inReplyTo: 'AB' }, + { id: '3', inReplyTo: 'AC' } + ); + expect(getReplyCountForNote('AB')).toBe(2); + }); + + test('Check with non-existing inReplyTo in INDEX', () => { + INDEX.splice(0, INDEX.length); + INDEX.push( + { id: '1', inReplyTo: 'AB' }, + { id: '2', inReplyTo: 'CD' } + ); + expect(getReplyCountForNote('AC')).toBe(0); + }); +}); + +describe('Tests for recordLike', () => { + test('Check for no actor like records', () => { + const mockDate = new Date('2023-01-01T00:00:00Z'); + const spy = jest.spyOn(global, 'Date').mockImplementation(() => mockDate); + const id = 'abc'; + const attributedTo = 'justin'; + const published = '2023-01-01T00:00:00Z'; + const inReplyTo = 'ever'; + const note = { id: id, attributedTo: attributedTo, published: published, inReplyTo: inReplyTo }; + + addActivityToIndex(note); + const request = { actor: "Ever", object: id }; + + const old_likes = getLikesForNote(id); + + expect(old_likes.likes.indexOf("Ever")).toBeLessThan(0); + recordLike(request); + + const likes = getLikesForNote(id); + expect(likes.likes.indexOf("Ever")).toBeGreaterThanOrEqual(0); + + const fileName = getLikesFileName(id); + const fileContent = fs.readFileSync(fileName, 'utf-8'); + + expect(fileContent).toMatch(JSON.stringify(likes, null, 2)); + deleteActivityFromIndex(id); + + spy.mockRestore(); + // To-do: check notification + }); + + test('Check with existing actor like records', () => { + // To-do: check notification + }); +}); + +describe('Tests for recordBoost', () => { + test('Check for no actor boost records', () => { + const mockDate = new Date('2023-01-01T00:00:00Z'); + const spy = jest.spyOn(global, 'Date').mockImplementation(() => mockDate); + const id = 'abc'; + const attributedTo = 'justin'; + const published = '2023-01-01T00:00:00Z'; + const inReplyTo = 'ever'; + const note = { id: id, attributedTo: attributedTo, published: published, inReplyTo: inReplyTo }; + + addActivityToIndex(note); + const request = { actor: "def", object: id }; + + const old_likes = getLikesForNote(id); + + expect(old_likes.boosts.indexOf("def")).toBeLessThan(0); + recordBoost(request); + + const likes = getLikesForNote(id); + expect(likes.boosts.indexOf("def")).toBeGreaterThanOrEqual(0); + + const fileName = getLikesFileName(id); + const fileContent = fs.readFileSync(fileName, 'utf-8'); + + expect(fileContent).toMatch(JSON.stringify(likes, null, 2)); + deleteActivityFromIndex(id); + + spy.mockRestore(); + // To-do: check notification + }); + + test('Check with existing actor boost records', () => { + // To-do: check notification + }); +}); + +describe('Tests for recordUndoLike', () => { + test('Check when undoing a like', () => { + const mockDate = new Date('2023-01-01T00:00:00Z'); + const spy = jest.spyOn(global, 'Date').mockImplementation(() => mockDate); + const id = 'abc'; + const attributedTo = 'justin'; + const published = '2023-01-01T00:00:00Z'; + const inReplyTo = 'ever'; + const note = { id: id, attributedTo: attributedTo, published: published, inReplyTo: inReplyTo }; + + addActivityToIndex(note); + const request = { actor: "Ever", object: id }; + + recordUndoLike(request); + + const likes = getLikesForNote(id); + expect(likes.likes.indexOf("Ever")).toBeLessThan(0); + + const fileName = getLikesFileName(id); + const fileContent = fs.readFileSync(fileName, 'utf-8'); + + expect(fileContent).toMatch(JSON.stringify(likes, null, 2)); + deleteActivityFromIndex(id); + + likes.boosts = []; + writeJSONDictionary(fileName, likes); + spy.mockRestore(); + // To-do: check notification + }); + + test('Check with existing actor like records', () => { + // To-do: check notification + }); +}); \ No newline at end of file From 66fa56d470e1263d91e0df9c69f8e50401524726 Mon Sep 17 00:00:00 2001 From: kashishvjain <66744312+kashishvjain@users.noreply.github.com> Date: Thu, 16 Nov 2023 23:07:23 -0800 Subject: [PATCH 013/100] Kashish reformat (#17) * 1st reformat * 1st reformat * 1st reformat * 1st reformat * 1st reformat * 1st reformat --- lib/account.js | 222 ++++++++++++++++++++++++++++++++++++++++++-- lib/theAlgorithm.js | 81 +++++++++++----- 2 files changed, 273 insertions(+), 30 deletions(-) diff --git a/lib/account.js b/lib/account.js index 137998b..89541d8 100644 --- a/lib/account.js +++ b/lib/account.js @@ -31,17 +31,29 @@ const logger = debug('ono:account'); const { DOMAIN } = process.env; +/** + * The function `getInboxIndex` returns the inbox index by reading a JSON dictionary from a specified + * path. + * @returns The function `getInboxIndex` returns the `inboxIndex` object. + */ export const getInboxIndex = () => { const inboxIndexPath = path.resolve(pathToDMs, `inboxes.json`); const inboxIndex = readJSONDictionary(inboxIndexPath, {}); return inboxIndex; }; +/** + * The function writes data to a JSON file that represents the index of an inbox. + */ export const writeInboxIndex = data => { const inboxIndexPath = path.resolve(pathToDMs, `inboxes.json`); writeJSONDictionary(inboxIndexPath, data); }; +/** + * The function `getInbox` retrieves the inbox messages for a given actor ID. + * @returns The function `getInbox` returns the `inbox` array. + */ export const getInbox = actorId => { const username = ActivityPub.getUsername(actorId); @@ -72,6 +84,17 @@ export const addressedOnlyToMe = activity => { return false; }; +/** + * The function `deleteObject` checks if the incoming request is a valid object and if it is a + * "Tombstone" type, then it verifies if the actor is allowed to delete the object and deletes it if + * allowed. + * @param actor - The `actor` parameter represents the user who is performing the delete action. It + * contains information about the user, such as their ID. + * @param incomingRequest - The `incomingRequest` parameter is an object that represents the request to + * delete an object. It contains the following properties: + * @returns a boolean value. It returns `false` in two cases: if the `incomingRequest.object` is not an + * object or if its type is not 'Tombstone'. It returns `true` in all other cases. + */ export const deleteObject = async (actor, incomingRequest) => { if (typeof incomingRequest.object !== 'object') { return false; @@ -79,9 +102,6 @@ export const deleteObject = async (actor, incomingRequest) => { if (incomingRequest.object.type !== 'Tombstone') { return false; } - // TODO: support delete of user. - // remove user, remove follow, following, etc. - // remove all posts by user. try { const activity = await getActivity(incomingRequest.object.id); if (activity.attributedTo !== actor.id) { @@ -111,6 +131,14 @@ export const deleteObject = async (actor, incomingRequest) => { return true; }; +/** + * The `acceptDM` function accepts a direct message (DM) and adds it to the inbox of a specified user, + * updating the inbox index and marking the last read timestamp if the DM is an outbound message. + * @param dm - The `dm` parameter represents the direct message that is being accepted. It is an object + * that contains information about the message, such as its content, sender, and timestamp. + * @param inboxUser - The `inboxUser` parameter represents the user whose inbox the direct message (DM) + * will be added to. + */ export const acceptDM = (dm, inboxUser) => { const inboxIndex = getInboxIndex(); const inbox = getInbox(inboxUser); @@ -137,32 +165,62 @@ export const acceptDM = (dm, inboxUser) => { writeInboxIndex(inboxIndex); }; +/** + * The function checks if the activity's ID starts with a specific domain and returns a boolean value. + * @returns a boolean value indicating whether the given activity's ID starts with the string + * "https://DOMAIN/m/". + */ export const isMyPost = activity => { return activity.id.startsWith(`https://${DOMAIN}/m/`); }; +/** + * The function checks if a given actorId is present in the list of following. + * @returns a boolean value indicating whether the actor with the specified actorId is being followed + * or not. + */ export const isFollowing = actorId => { const following = getFollowing(); return following.some(f => f.actorId === actorId); }; +/** + * The function `isFollower` checks if a given `actorId` is included in the list of followers. + * @returns a boolean value indicating whether the given actorId is included in the list of followers. + */ export const isFollower = actorId => { const followers = getFollowers(); return followers.includes(actorId); }; +/** + * The function `isMention` checks if an activity contains a mention of the current user. + * @returns The function `isMention` returns a boolean value. It returns `true` if the `activity` + * object has a `tag` property that is an array and contains at least one element that has a `type` + * property equal to `'Mention'` and an `href` property equal to `ActivityPub.actor.id`. Otherwise, it + * returns `false`. + */ export const isMention = activity => { return activity.tag?.some(tag => { return tag.type === 'Mention' && tag.href === ActivityPub.actor.id; }); }; +/** + * The function checks if an activity is a reply to a post with a specific pattern. + * @returns a boolean value indicating whether the given activity is a reply to a post. + */ export const isReplyToMyPost = activity => { // has inReplyTo AND it matches the pattern of our posts. // TODO: Do we need to ACTUALLY validate that this post exists? return activity.inReplyTo && activity.inReplyTo.startsWith(`https://${DOMAIN}/m/`); }; +/** + * The function checks if a given activity is a reply to a post from an account that is being followed. + * @returns The function isReplyToFollowing returns a boolean value. It returns true if the parent post + * of the given activity is being followed, and false otherwise. + */ export const isReplyToFollowing = async activity => { // fetch the parent, check ITs owner to see if we follow them. try { @@ -176,7 +234,20 @@ export const isReplyToFollowing = async activity => { return false; }; -function createActor(name, domain, pubkey) { +/** + * The above code defines two functions in JavaScript, one for creating an actor object and another for + * creating a webfinger object. + * @param name - The name parameter is the name of the actor or user. It is used to create the actor's + * username and display name. + * @param domain - The domain parameter represents the domain name of the actor's website or platform. + * It is used to construct the URLs for the actor's profile, inbox, outbox, followers, and image/icon + * URLs. + * @param pubkey - The `pubkey` parameter is the public key of the actor. It is a string that + * represents the public key in PEM format. + * @returns The `createActor` function returns an object representing an actor in the ActivityStreams + * format. The `createWebfinger` function returns an object representing a WebFinger response. + */ +export const createActor = (name, domain, pubkey) => { return { '@context': ['https://www.w3.org/ns/activitystreams', 'https://w3id.org/security/v1'], id: `https://${domain}/u/${name}`, @@ -203,9 +274,19 @@ function createActor(name, domain, pubkey) { publicKeyPem: pubkey } }; -} +}; -function createWebfinger(name, domain) { +/** + * The function creates a Webfinger object with a subject and a link. + * @param name - The name parameter represents the username or identifier of the user. It is used to + * construct the subject property of the returned object. + * @param domain - The `domain` parameter represents the domain name of the website or service where + * the webfinger resource is being created. It is used to construct the `subject` and `href` properties + * in the returned object. + * @returns The function `createWebfinger` returns an object with two properties: `subject` and + * `links`. + */ +export const createWebfinger = (name, domain) => { return { subject: `acct:${name}@${domain}`, @@ -217,8 +298,13 @@ function createWebfinger(name, domain) { } ] }; -} +}; +/** + * The function `getOutboxPosts` retrieves a slice of posts from an array, sorts them by date, and + * returns the total number of posts and the retrieved posts. + * @returns The function `getOutboxPosts` returns an object with two properties: `total` and `posts`. + */ export const getOutboxPosts = async offset => { // sort all known posts by date quickly const sortedSlice = INDEX.filter(p => p.type === 'note').sort(sortByDate); @@ -237,6 +323,10 @@ export const getOutboxPosts = async offset => { }; }; +/** + * The function `addNotification` adds a new notification to an array of notifications and writes the + * updated array to storage. + */ export const addNotification = notification => { const notifications = getNotifications(); notifications.push({ @@ -246,10 +336,20 @@ export const addNotification = notification => { writeNotifications(notifications); }; +/** + * The function writes a JSON dictionary of notifications to a file. + * @returns the result of calling the `writeJSONDictionary` function with the `notificationsFile` and + * `notifications` as arguments. + */ export const writeNotifications = notifications => { return writeJSONDictionary(notificationsFile, notifications); }; +/** + * The function `getNotifications` returns the contents of a JSON dictionary stored in a file. + * @returns The function `getNotifications` is returning the result of calling the `readJSONDictionary` + * function with the `notificationsFile` parameter. + */ export const getNotifications = () => { return readJSONDictionary(notificationsFile); }; @@ -259,6 +359,12 @@ export const getNotifications = () => { // return writeJSONDictionary(blocksFile, data); // } +/** + * The function checks if an actor is blocked based on a list of banned users or domains. + * @returns The function `isBlocked` returns a boolean value. It returns `true` if the `actor` is found + * in the `blocks` array or if the `actor` starts with any of the elements in the `blocks` array. + * Otherwise, it returns `false`. + */ export const isBlocked = actor => { const blocks = getBlocks(); return blocks.some(banned => { @@ -273,22 +379,50 @@ export const isBlocked = actor => { }); }; +/** + * The function `getBlocks` returns the contents of a JSON dictionary stored in a file, or an empty + * array if the file does not exist. + * @returns The function `getBlocks` is returning the result of calling the `readJSONDictionary` + * function with the arguments `blocksFile` and an empty array `[]`. + */ export const getBlocks = () => { return readJSONDictionary(blocksFile, []); }; +/** + * The function "writeFollowers" writes a JSON dictionary of followers to a file. + * @returns The function `writeFollowers` is returning the result of calling the `writeJSONDictionary` + * function with the `followersFile` and `followers` as arguments. + */ const writeFollowers = followers => { return writeJSONDictionary(followersFile, followers); }; +/** + * The function `getFollowers` returns the contents of a JSON dictionary stored in the `followersFile` + * variable. + * @returns The function `getFollowers` is returning the result of calling the `readJSONDictionary` + * function with the `followersFile` parameter. + */ export const getFollowers = () => { return readJSONDictionary(followersFile); }; +/** + * The function writes a JSON dictionary of followers to a file. + * @returns the result of calling the `writeJSONDictionary` function with the `followingFile` and + * `followers` as arguments. + */ export const writeFollowing = followers => { return writeJSONDictionary(followingFile, followers); }; +/** + * The function `getFollowing` returns an array of objects representing the following relationships, + * with an optional mapping from an old format to a new format. + * @returns The function `getFollowing` returns an array of objects. Each object in the array has two + * properties: `id` and `actorId`. + */ export const getFollowing = () => { return readJSONDictionary(followingFile).map(f => { if (typeof f === 'string') { @@ -304,22 +438,49 @@ export const getFollowing = () => { }); }; +/** + * The function `writeBoosts` writes a JSON dictionary to a file. + * @returns the result of calling the `writeJSONDictionary` function with the `boostsFile` and `data` + * parameters. + */ export const writeBoosts = data => { return writeJSONDictionary(boostsFile, data); }; +/** + * The function `getBoosts` returns a JSON dictionary from a file, or an empty array if the file is not + * found. + * @returns The function `getBoosts` is returning the result of calling the `readJSONDictionary` + * function with the `boostsFile` parameter and an empty array as the default value. + */ export const getBoosts = () => { return readJSONDictionary(boostsFile, []); }; +/** + * The function `writeLikes` writes a JSON dictionary of likes to a file. + * @returns the result of calling the `writeJSONDictionary` function with the `likesFile` and `likes` + * as arguments. + */ export const writeLikes = likes => { return writeJSONDictionary(likesFile, likes); }; +/** + * The function `getLikes` returns the contents of a JSON file as a dictionary. + * @returns The function `getLikes` is returning the result of calling the `readJSONDictionary` + * function with the `likesFile` parameter. + */ export const getLikes = () => { return readJSONDictionary(likesFile); }; +/** + * The function `getNote` is an asynchronous function that takes an `id` parameter and returns the + * contents of a JSON file with the corresponding `id` if it exists, otherwise it returns `undefined`. + * @returns a Promise that resolves to the contents of a JSON file if it exists, or undefined if the + * file does not exist or there is an error reading the file. + */ export const getNote = async id => { // const postFile = path.resolve('./', pathToPosts, guid + '.json'); const noteFile = getFileName(id); @@ -335,6 +496,9 @@ export const getNote = async id => { return undefined; }; +/** + * The function sends a create activity to all followers of a user. + */ export const sendCreateToFollowers = async object => { const followers = await getFollowers(); const actors = await Promise.all( @@ -353,6 +517,10 @@ export const sendCreateToFollowers = async object => { }); }; +/** + * The function sends an update to all followers by fetching their accounts and sending the update to + * their actors using ActivityPub. + */ export const sendUpdateToFollowers = async object => { const followers = await getFollowers(); const actors = await Promise.all( @@ -371,6 +539,21 @@ export const sendUpdateToFollowers = async object => { }); }; +/** + * The `createNote` function is used to create a new note or update an existing note, with options for + * specifying recipients, mentions, and content processing. + * @param body - The content of the note. + * @param cw - The `cw` parameter is a string that represents the content warning for the note. It is + * an optional parameter and can be used to provide a warning or spoiler for the content of the note. + * @param inReplyTo - The `inReplyTo` parameter is the URL of the post that the new note is replying + * to. It is used to indicate that the new note is a reply to an existing post. + * @param toUser - The `toUser` parameter is used to specify the recipient of the note. It should be a + * valid account identifier. If provided, the note will be sent directly to the specified user. + * @param editOf - The `editOf` parameter is a string that represents the URL of the post that is being + * edited. If this parameter is provided, the function will use the same GUID (Globally Unique + * Identifier) as the post being edited. + * @returns the `object` variable. + */ export const createNote = async (body, cw, inReplyTo, toUser, editOf) => { const publicAddress = 'https://www.w3.org/ns/activitystreams#Public'; @@ -549,6 +732,10 @@ export const createNote = async (body, cw, inReplyTo, toUser, editOf) => { return object; }; +/** + * The `follow` function follows a user, fetches their outbox, and logs any new posts to an activity + * feed. + */ export const follow = async request => { logger('following someone'); const { actor } = await fetchUser(request.object.object); @@ -593,6 +780,10 @@ export const follow = async request => { } }; +/** + * The function adds a follower by fetching the user, checking if the user is already a follower, and + * then adding the user as a follower if they are not already. + */ export const addFollower = async request => { logger('Adding follower...'); const { actor } = await fetchUser(request.actor); @@ -608,6 +799,9 @@ export const addFollower = async request => { } }; +/** + * The function removes a follower by fetching the user and updating the list of followers. + */ export const removeFollower = async follower => { logger('Removing follower...'); const { actor } = await fetchUser(follower); @@ -619,6 +813,14 @@ export const removeFollower = async follower => { } }; +/** + * The `ensureAccount` function ensures that an account exists by verifying the domain name and + * generating a crypto key if the account file does not exist. + * @param name - The name parameter is a string that represents the name of the account. + * @param domain - The `domain` parameter is a string that represents the domain name. It is used to + * verify if the domain name is well-formatted before proceeding with the account creation process. + * @returns The function `ensureAccount` returns a Promise that resolves to an account object. + */ export const ensureAccount = async (name, domain) => { // verify domain name const re = /^((?:(?:(?:\w[.\-+]?)*)\w)+)((?:(?:(?:\w[.\-+]?){0,62})\w)+)\.(\w{2,6})$/; @@ -670,6 +872,12 @@ export const ensureAccount = async (name, domain) => { }); }; +/** + * The function `getAccount` reads a JSON dictionary from a file and returns it, or an empty object if + * the file does not exist. + * @returns The function `getAccount` is returning the result of calling the `readJSONDictionary` + * function with the `accountFile` and an empty object as arguments. + */ export const getAccount = () => { return readJSONDictionary(accountFile, {}); }; diff --git a/lib/theAlgorithm.js b/lib/theAlgorithm.js index cd5bd4e..099857c 100644 --- a/lib/theAlgorithm.js +++ b/lib/theAlgorithm.js @@ -27,6 +27,14 @@ import { ActivityPub } from './ActivityPub.js'; const logger = debug('ono:algorithm'); +/** + * The function `sortByDate` takes two values and compares them. It is used to sort posts in reverse + * order. + * @param a - The first object being compared. + * @param b - The parameter `b` represents the second item being compared in the `sortByDate` function. + * @returns The `sortByDate` function returns -1 if `a.published` is greater than `b.published`, 1 if + * `a.published` is less than `b.published`, and 0 if `a.published` is equal to `b.published`. + */ export const sortByDate = (a, b) => { if (a.published > b.published) { return -1; @@ -84,10 +92,23 @@ export const getFullPostDetails = async activityOrId => { note, actor, boost, + booster }; }; +/** + * The `getActivityStream` function generates an activity stream by sorting and filtering posts, and + * then iterating over them to retrieve the necessary details. + * @param limit - The `limit` parameter specifies the maximum number of posts to include in the + * activity stream. It determines how many posts will be returned in the `activitystream` array. + * @param offset - The `offset` parameter is used to determine the starting point of the activity + * stream. It specifies the index position in the `sortedSlice` array from where the iteration should + * begin. + * @returns an object with two properties: "activitystream" and "next". The "activitystream" property + * contains an array of posts, and the "next" property contains the index of the next post to be + * fetched. + */ export const getActivityStream = async (limit, offset) => { logger('Generating activity stream...'); @@ -100,20 +121,20 @@ export const getActivityStream = async (limit, offset) => { const stream = []; // iterate over the list until we get enough posts (or run out of posts) - let px; - for (px = offset; px < sortedSlice.length; px++) { - const p = sortedSlice[px]; + let postIndex; + for (postIndex = offset; postIndex < sortedSlice.length; postIndex++) { + const postObject = sortedSlice[postIndex]; // process a post by someone else - if (p.type === 'activity') { + if (postObject.type === 'activity') { // Ignore posts from people I am not following - if (!isFollowing(p.actor)) { + if (!isFollowing(postObject.actor)) { continue; } - if (!p.inReplyTo || isReplyToMyPost(p) || (await isReplyToFollowing(p))) { + if (!postObject.inReplyTo || isReplyToMyPost(postObject) || (await isReplyToFollowing(postObject))) { try { - const post = await getFullPostDetails(p.id); + const post = await getFullPostDetails(postObject.id); stream.push(post); } catch (err) { console.error('error while loading post from index'); @@ -124,8 +145,8 @@ export const getActivityStream = async (limit, offset) => { } // process a post by me - if (p.type === 'note') { - const post = await getFullPostDetails(p.id); + if (postObject.type === 'note') { + const post = await getFullPostDetails(postObject.id); stream.push(post); } @@ -137,10 +158,24 @@ export const getActivityStream = async (limit, offset) => { return { activitystream: stream, - next: px + next: postIndex }; }; +/** + * The function `getActivitySince` retrieves activity data since a specified date, excluding the user's + * own activity if specified. + * @param since - The `since` parameter is a timestamp indicating the starting point from which you + * want to retrieve activity. Only activities that occurred after this timestamp will be included in + * the result. + * @param [excludeSelf=false] - The `excludeSelf` parameter is a boolean flag that determines whether + * or not to exclude the posts made by the current user (self) from the result. If `excludeSelf` is set + * to `true`, the posts made by the current user will be filtered out from the result. If `exclude + * @returns an object with a property called "activitystream" which contains an array of objects. Each + * object in the array represents an activity or a note. Each object has two properties: "note" which + * represents the content of the activity or note, and "actor" which represents the actor who performed + * the activity or created the note. + */ export const getActivitySince = async (since, excludeSelf = false) => { // sort all known posts by date quickly const sortedSlice = INDEX.filter(p => p.type !== 'fail' && !isNaN(p.published)) @@ -152,17 +187,17 @@ export const getActivitySince = async (since, excludeSelf = false) => { return p.published > since; }); - const res = []; - let px; - for (px = 0; px < sortedSlice.length; px++) { - const p = sortedSlice[px]; - if (p.type === 'activity') { - if (isFollowing(p.actor)) { - if (!p.inReplyTo || isReplyToMyPost(p) || (await isReplyToFollowing(p))) { + const stream = []; + let postIndex; + for (postIndex = 0; postIndex < sortedSlice.length; postIndex++) { + const postObject = sortedSlice[postIndex]; + if (postObject.type === 'activity') { + if (isFollowing(postObject.actor)) { + if (!postObject.inReplyTo || isReplyToMyPost(postObject) || (await isReplyToFollowing(postObject))) { try { - const { actor } = await fetchUser(p.actor); - const post = await getActivity(p.id); - res.push({ + const { actor } = await fetchUser(postObject.actor); + const post = await getActivity(postObject.id); + stream.push({ note: post, actor }); @@ -176,8 +211,8 @@ export const getActivitySince = async (since, excludeSelf = false) => { // disregard not from following } } else { - const post = await getNote(p.id); - res.push({ + const post = await getNote(postObject.id); + stream.push({ note: post, actor: ActivityPub.actor }); @@ -185,6 +220,6 @@ export const getActivitySince = async (since, excludeSelf = false) => { } return { - activitystream: res + activitystream: stream }; }; From 2847b550aef3b644ec71f1df6ed3fb9c71e2dc5a Mon Sep 17 00:00:00 2001 From: Justin Nguyen Date: Fri, 17 Nov 2023 18:21:28 -0800 Subject: [PATCH 014/100] add more tests --- lib/__tests__/account.jest.js | 12 ++++++++++++ lib/__tests__/files/inboxes.json | 3 +++ 2 files changed, 15 insertions(+) create mode 100644 lib/__tests__/files/inboxes.json diff --git a/lib/__tests__/account.jest.js b/lib/__tests__/account.jest.js index a64380e..8320407 100644 --- a/lib/__tests__/account.jest.js +++ b/lib/__tests__/account.jest.js @@ -3,6 +3,7 @@ const { isMyPost } = require('../account'); import 'node-fetch'; jest.mock('node-fetch', () => jest.fn()); +import { readJSONDictionary } from '../storage'; describe('Tests for isMyPost', () => { test('Check if a post is my post', () => { @@ -22,3 +23,14 @@ describe('Tests for isMyPost', () => { expect(isMyPost(activity)).toBe(false); }); }); + +describe('Tests for getInboxIndex', () => { + const getInboxIndex = () => { + const inboxIndexPath = 'lib/__tests__/files/inboxes.json'; + const inboxIndex = readJSONDictionary(inboxIndexPath, {}); + return inboxIndex; + }; + test('Check successful', () => { + expect(getInboxIndex()).toStrictEqual({ id: 'test' }); + }); +}); diff --git a/lib/__tests__/files/inboxes.json b/lib/__tests__/files/inboxes.json new file mode 100644 index 0000000..7f3445f --- /dev/null +++ b/lib/__tests__/files/inboxes.json @@ -0,0 +1,3 @@ +{ + "id": "test" +} \ No newline at end of file From f83d0f5ace4d4863c6e2c5723b11d8a855df1dfa Mon Sep 17 00:00:00 2001 From: Enze Ma <38894303+sora1998@users.noreply.github.com> Date: Fri, 17 Nov 2023 19:14:25 -0800 Subject: [PATCH 015/100] Add files via upload change to css and handle bar --- lib/__tests__/account.jest.js | 12 -- lib/account.js | 222 ++-------------------------------- lib/theAlgorithm.js | 81 ++++--------- 3 files changed, 30 insertions(+), 285 deletions(-) diff --git a/lib/__tests__/account.jest.js b/lib/__tests__/account.jest.js index 8320407..a64380e 100644 --- a/lib/__tests__/account.jest.js +++ b/lib/__tests__/account.jest.js @@ -3,7 +3,6 @@ const { isMyPost } = require('../account'); import 'node-fetch'; jest.mock('node-fetch', () => jest.fn()); -import { readJSONDictionary } from '../storage'; describe('Tests for isMyPost', () => { test('Check if a post is my post', () => { @@ -23,14 +22,3 @@ describe('Tests for isMyPost', () => { expect(isMyPost(activity)).toBe(false); }); }); - -describe('Tests for getInboxIndex', () => { - const getInboxIndex = () => { - const inboxIndexPath = 'lib/__tests__/files/inboxes.json'; - const inboxIndex = readJSONDictionary(inboxIndexPath, {}); - return inboxIndex; - }; - test('Check successful', () => { - expect(getInboxIndex()).toStrictEqual({ id: 'test' }); - }); -}); diff --git a/lib/account.js b/lib/account.js index 89541d8..137998b 100644 --- a/lib/account.js +++ b/lib/account.js @@ -31,29 +31,17 @@ const logger = debug('ono:account'); const { DOMAIN } = process.env; -/** - * The function `getInboxIndex` returns the inbox index by reading a JSON dictionary from a specified - * path. - * @returns The function `getInboxIndex` returns the `inboxIndex` object. - */ export const getInboxIndex = () => { const inboxIndexPath = path.resolve(pathToDMs, `inboxes.json`); const inboxIndex = readJSONDictionary(inboxIndexPath, {}); return inboxIndex; }; -/** - * The function writes data to a JSON file that represents the index of an inbox. - */ export const writeInboxIndex = data => { const inboxIndexPath = path.resolve(pathToDMs, `inboxes.json`); writeJSONDictionary(inboxIndexPath, data); }; -/** - * The function `getInbox` retrieves the inbox messages for a given actor ID. - * @returns The function `getInbox` returns the `inbox` array. - */ export const getInbox = actorId => { const username = ActivityPub.getUsername(actorId); @@ -84,17 +72,6 @@ export const addressedOnlyToMe = activity => { return false; }; -/** - * The function `deleteObject` checks if the incoming request is a valid object and if it is a - * "Tombstone" type, then it verifies if the actor is allowed to delete the object and deletes it if - * allowed. - * @param actor - The `actor` parameter represents the user who is performing the delete action. It - * contains information about the user, such as their ID. - * @param incomingRequest - The `incomingRequest` parameter is an object that represents the request to - * delete an object. It contains the following properties: - * @returns a boolean value. It returns `false` in two cases: if the `incomingRequest.object` is not an - * object or if its type is not 'Tombstone'. It returns `true` in all other cases. - */ export const deleteObject = async (actor, incomingRequest) => { if (typeof incomingRequest.object !== 'object') { return false; @@ -102,6 +79,9 @@ export const deleteObject = async (actor, incomingRequest) => { if (incomingRequest.object.type !== 'Tombstone') { return false; } + // TODO: support delete of user. + // remove user, remove follow, following, etc. + // remove all posts by user. try { const activity = await getActivity(incomingRequest.object.id); if (activity.attributedTo !== actor.id) { @@ -131,14 +111,6 @@ export const deleteObject = async (actor, incomingRequest) => { return true; }; -/** - * The `acceptDM` function accepts a direct message (DM) and adds it to the inbox of a specified user, - * updating the inbox index and marking the last read timestamp if the DM is an outbound message. - * @param dm - The `dm` parameter represents the direct message that is being accepted. It is an object - * that contains information about the message, such as its content, sender, and timestamp. - * @param inboxUser - The `inboxUser` parameter represents the user whose inbox the direct message (DM) - * will be added to. - */ export const acceptDM = (dm, inboxUser) => { const inboxIndex = getInboxIndex(); const inbox = getInbox(inboxUser); @@ -165,62 +137,32 @@ export const acceptDM = (dm, inboxUser) => { writeInboxIndex(inboxIndex); }; -/** - * The function checks if the activity's ID starts with a specific domain and returns a boolean value. - * @returns a boolean value indicating whether the given activity's ID starts with the string - * "https://DOMAIN/m/". - */ export const isMyPost = activity => { return activity.id.startsWith(`https://${DOMAIN}/m/`); }; -/** - * The function checks if a given actorId is present in the list of following. - * @returns a boolean value indicating whether the actor with the specified actorId is being followed - * or not. - */ export const isFollowing = actorId => { const following = getFollowing(); return following.some(f => f.actorId === actorId); }; -/** - * The function `isFollower` checks if a given `actorId` is included in the list of followers. - * @returns a boolean value indicating whether the given actorId is included in the list of followers. - */ export const isFollower = actorId => { const followers = getFollowers(); return followers.includes(actorId); }; -/** - * The function `isMention` checks if an activity contains a mention of the current user. - * @returns The function `isMention` returns a boolean value. It returns `true` if the `activity` - * object has a `tag` property that is an array and contains at least one element that has a `type` - * property equal to `'Mention'` and an `href` property equal to `ActivityPub.actor.id`. Otherwise, it - * returns `false`. - */ export const isMention = activity => { return activity.tag?.some(tag => { return tag.type === 'Mention' && tag.href === ActivityPub.actor.id; }); }; -/** - * The function checks if an activity is a reply to a post with a specific pattern. - * @returns a boolean value indicating whether the given activity is a reply to a post. - */ export const isReplyToMyPost = activity => { // has inReplyTo AND it matches the pattern of our posts. // TODO: Do we need to ACTUALLY validate that this post exists? return activity.inReplyTo && activity.inReplyTo.startsWith(`https://${DOMAIN}/m/`); }; -/** - * The function checks if a given activity is a reply to a post from an account that is being followed. - * @returns The function isReplyToFollowing returns a boolean value. It returns true if the parent post - * of the given activity is being followed, and false otherwise. - */ export const isReplyToFollowing = async activity => { // fetch the parent, check ITs owner to see if we follow them. try { @@ -234,20 +176,7 @@ export const isReplyToFollowing = async activity => { return false; }; -/** - * The above code defines two functions in JavaScript, one for creating an actor object and another for - * creating a webfinger object. - * @param name - The name parameter is the name of the actor or user. It is used to create the actor's - * username and display name. - * @param domain - The domain parameter represents the domain name of the actor's website or platform. - * It is used to construct the URLs for the actor's profile, inbox, outbox, followers, and image/icon - * URLs. - * @param pubkey - The `pubkey` parameter is the public key of the actor. It is a string that - * represents the public key in PEM format. - * @returns The `createActor` function returns an object representing an actor in the ActivityStreams - * format. The `createWebfinger` function returns an object representing a WebFinger response. - */ -export const createActor = (name, domain, pubkey) => { +function createActor(name, domain, pubkey) { return { '@context': ['https://www.w3.org/ns/activitystreams', 'https://w3id.org/security/v1'], id: `https://${domain}/u/${name}`, @@ -274,19 +203,9 @@ export const createActor = (name, domain, pubkey) => { publicKeyPem: pubkey } }; -}; +} -/** - * The function creates a Webfinger object with a subject and a link. - * @param name - The name parameter represents the username or identifier of the user. It is used to - * construct the subject property of the returned object. - * @param domain - The `domain` parameter represents the domain name of the website or service where - * the webfinger resource is being created. It is used to construct the `subject` and `href` properties - * in the returned object. - * @returns The function `createWebfinger` returns an object with two properties: `subject` and - * `links`. - */ -export const createWebfinger = (name, domain) => { +function createWebfinger(name, domain) { return { subject: `acct:${name}@${domain}`, @@ -298,13 +217,8 @@ export const createWebfinger = (name, domain) => { } ] }; -}; +} -/** - * The function `getOutboxPosts` retrieves a slice of posts from an array, sorts them by date, and - * returns the total number of posts and the retrieved posts. - * @returns The function `getOutboxPosts` returns an object with two properties: `total` and `posts`. - */ export const getOutboxPosts = async offset => { // sort all known posts by date quickly const sortedSlice = INDEX.filter(p => p.type === 'note').sort(sortByDate); @@ -323,10 +237,6 @@ export const getOutboxPosts = async offset => { }; }; -/** - * The function `addNotification` adds a new notification to an array of notifications and writes the - * updated array to storage. - */ export const addNotification = notification => { const notifications = getNotifications(); notifications.push({ @@ -336,20 +246,10 @@ export const addNotification = notification => { writeNotifications(notifications); }; -/** - * The function writes a JSON dictionary of notifications to a file. - * @returns the result of calling the `writeJSONDictionary` function with the `notificationsFile` and - * `notifications` as arguments. - */ export const writeNotifications = notifications => { return writeJSONDictionary(notificationsFile, notifications); }; -/** - * The function `getNotifications` returns the contents of a JSON dictionary stored in a file. - * @returns The function `getNotifications` is returning the result of calling the `readJSONDictionary` - * function with the `notificationsFile` parameter. - */ export const getNotifications = () => { return readJSONDictionary(notificationsFile); }; @@ -359,12 +259,6 @@ export const getNotifications = () => { // return writeJSONDictionary(blocksFile, data); // } -/** - * The function checks if an actor is blocked based on a list of banned users or domains. - * @returns The function `isBlocked` returns a boolean value. It returns `true` if the `actor` is found - * in the `blocks` array or if the `actor` starts with any of the elements in the `blocks` array. - * Otherwise, it returns `false`. - */ export const isBlocked = actor => { const blocks = getBlocks(); return blocks.some(banned => { @@ -379,50 +273,22 @@ export const isBlocked = actor => { }); }; -/** - * The function `getBlocks` returns the contents of a JSON dictionary stored in a file, or an empty - * array if the file does not exist. - * @returns The function `getBlocks` is returning the result of calling the `readJSONDictionary` - * function with the arguments `blocksFile` and an empty array `[]`. - */ export const getBlocks = () => { return readJSONDictionary(blocksFile, []); }; -/** - * The function "writeFollowers" writes a JSON dictionary of followers to a file. - * @returns The function `writeFollowers` is returning the result of calling the `writeJSONDictionary` - * function with the `followersFile` and `followers` as arguments. - */ const writeFollowers = followers => { return writeJSONDictionary(followersFile, followers); }; -/** - * The function `getFollowers` returns the contents of a JSON dictionary stored in the `followersFile` - * variable. - * @returns The function `getFollowers` is returning the result of calling the `readJSONDictionary` - * function with the `followersFile` parameter. - */ export const getFollowers = () => { return readJSONDictionary(followersFile); }; -/** - * The function writes a JSON dictionary of followers to a file. - * @returns the result of calling the `writeJSONDictionary` function with the `followingFile` and - * `followers` as arguments. - */ export const writeFollowing = followers => { return writeJSONDictionary(followingFile, followers); }; -/** - * The function `getFollowing` returns an array of objects representing the following relationships, - * with an optional mapping from an old format to a new format. - * @returns The function `getFollowing` returns an array of objects. Each object in the array has two - * properties: `id` and `actorId`. - */ export const getFollowing = () => { return readJSONDictionary(followingFile).map(f => { if (typeof f === 'string') { @@ -438,49 +304,22 @@ export const getFollowing = () => { }); }; -/** - * The function `writeBoosts` writes a JSON dictionary to a file. - * @returns the result of calling the `writeJSONDictionary` function with the `boostsFile` and `data` - * parameters. - */ export const writeBoosts = data => { return writeJSONDictionary(boostsFile, data); }; -/** - * The function `getBoosts` returns a JSON dictionary from a file, or an empty array if the file is not - * found. - * @returns The function `getBoosts` is returning the result of calling the `readJSONDictionary` - * function with the `boostsFile` parameter and an empty array as the default value. - */ export const getBoosts = () => { return readJSONDictionary(boostsFile, []); }; -/** - * The function `writeLikes` writes a JSON dictionary of likes to a file. - * @returns the result of calling the `writeJSONDictionary` function with the `likesFile` and `likes` - * as arguments. - */ export const writeLikes = likes => { return writeJSONDictionary(likesFile, likes); }; -/** - * The function `getLikes` returns the contents of a JSON file as a dictionary. - * @returns The function `getLikes` is returning the result of calling the `readJSONDictionary` - * function with the `likesFile` parameter. - */ export const getLikes = () => { return readJSONDictionary(likesFile); }; -/** - * The function `getNote` is an asynchronous function that takes an `id` parameter and returns the - * contents of a JSON file with the corresponding `id` if it exists, otherwise it returns `undefined`. - * @returns a Promise that resolves to the contents of a JSON file if it exists, or undefined if the - * file does not exist or there is an error reading the file. - */ export const getNote = async id => { // const postFile = path.resolve('./', pathToPosts, guid + '.json'); const noteFile = getFileName(id); @@ -496,9 +335,6 @@ export const getNote = async id => { return undefined; }; -/** - * The function sends a create activity to all followers of a user. - */ export const sendCreateToFollowers = async object => { const followers = await getFollowers(); const actors = await Promise.all( @@ -517,10 +353,6 @@ export const sendCreateToFollowers = async object => { }); }; -/** - * The function sends an update to all followers by fetching their accounts and sending the update to - * their actors using ActivityPub. - */ export const sendUpdateToFollowers = async object => { const followers = await getFollowers(); const actors = await Promise.all( @@ -539,21 +371,6 @@ export const sendUpdateToFollowers = async object => { }); }; -/** - * The `createNote` function is used to create a new note or update an existing note, with options for - * specifying recipients, mentions, and content processing. - * @param body - The content of the note. - * @param cw - The `cw` parameter is a string that represents the content warning for the note. It is - * an optional parameter and can be used to provide a warning or spoiler for the content of the note. - * @param inReplyTo - The `inReplyTo` parameter is the URL of the post that the new note is replying - * to. It is used to indicate that the new note is a reply to an existing post. - * @param toUser - The `toUser` parameter is used to specify the recipient of the note. It should be a - * valid account identifier. If provided, the note will be sent directly to the specified user. - * @param editOf - The `editOf` parameter is a string that represents the URL of the post that is being - * edited. If this parameter is provided, the function will use the same GUID (Globally Unique - * Identifier) as the post being edited. - * @returns the `object` variable. - */ export const createNote = async (body, cw, inReplyTo, toUser, editOf) => { const publicAddress = 'https://www.w3.org/ns/activitystreams#Public'; @@ -732,10 +549,6 @@ export const createNote = async (body, cw, inReplyTo, toUser, editOf) => { return object; }; -/** - * The `follow` function follows a user, fetches their outbox, and logs any new posts to an activity - * feed. - */ export const follow = async request => { logger('following someone'); const { actor } = await fetchUser(request.object.object); @@ -780,10 +593,6 @@ export const follow = async request => { } }; -/** - * The function adds a follower by fetching the user, checking if the user is already a follower, and - * then adding the user as a follower if they are not already. - */ export const addFollower = async request => { logger('Adding follower...'); const { actor } = await fetchUser(request.actor); @@ -799,9 +608,6 @@ export const addFollower = async request => { } }; -/** - * The function removes a follower by fetching the user and updating the list of followers. - */ export const removeFollower = async follower => { logger('Removing follower...'); const { actor } = await fetchUser(follower); @@ -813,14 +619,6 @@ export const removeFollower = async follower => { } }; -/** - * The `ensureAccount` function ensures that an account exists by verifying the domain name and - * generating a crypto key if the account file does not exist. - * @param name - The name parameter is a string that represents the name of the account. - * @param domain - The `domain` parameter is a string that represents the domain name. It is used to - * verify if the domain name is well-formatted before proceeding with the account creation process. - * @returns The function `ensureAccount` returns a Promise that resolves to an account object. - */ export const ensureAccount = async (name, domain) => { // verify domain name const re = /^((?:(?:(?:\w[.\-+]?)*)\w)+)((?:(?:(?:\w[.\-+]?){0,62})\w)+)\.(\w{2,6})$/; @@ -872,12 +670,6 @@ export const ensureAccount = async (name, domain) => { }); }; -/** - * The function `getAccount` reads a JSON dictionary from a file and returns it, or an empty object if - * the file does not exist. - * @returns The function `getAccount` is returning the result of calling the `readJSONDictionary` - * function with the `accountFile` and an empty object as arguments. - */ export const getAccount = () => { return readJSONDictionary(accountFile, {}); }; diff --git a/lib/theAlgorithm.js b/lib/theAlgorithm.js index 099857c..cd5bd4e 100644 --- a/lib/theAlgorithm.js +++ b/lib/theAlgorithm.js @@ -27,14 +27,6 @@ import { ActivityPub } from './ActivityPub.js'; const logger = debug('ono:algorithm'); -/** - * The function `sortByDate` takes two values and compares them. It is used to sort posts in reverse - * order. - * @param a - The first object being compared. - * @param b - The parameter `b` represents the second item being compared in the `sortByDate` function. - * @returns The `sortByDate` function returns -1 if `a.published` is greater than `b.published`, 1 if - * `a.published` is less than `b.published`, and 0 if `a.published` is equal to `b.published`. - */ export const sortByDate = (a, b) => { if (a.published > b.published) { return -1; @@ -92,23 +84,10 @@ export const getFullPostDetails = async activityOrId => { note, actor, boost, - booster }; }; -/** - * The `getActivityStream` function generates an activity stream by sorting and filtering posts, and - * then iterating over them to retrieve the necessary details. - * @param limit - The `limit` parameter specifies the maximum number of posts to include in the - * activity stream. It determines how many posts will be returned in the `activitystream` array. - * @param offset - The `offset` parameter is used to determine the starting point of the activity - * stream. It specifies the index position in the `sortedSlice` array from where the iteration should - * begin. - * @returns an object with two properties: "activitystream" and "next". The "activitystream" property - * contains an array of posts, and the "next" property contains the index of the next post to be - * fetched. - */ export const getActivityStream = async (limit, offset) => { logger('Generating activity stream...'); @@ -121,20 +100,20 @@ export const getActivityStream = async (limit, offset) => { const stream = []; // iterate over the list until we get enough posts (or run out of posts) - let postIndex; - for (postIndex = offset; postIndex < sortedSlice.length; postIndex++) { - const postObject = sortedSlice[postIndex]; + let px; + for (px = offset; px < sortedSlice.length; px++) { + const p = sortedSlice[px]; // process a post by someone else - if (postObject.type === 'activity') { + if (p.type === 'activity') { // Ignore posts from people I am not following - if (!isFollowing(postObject.actor)) { + if (!isFollowing(p.actor)) { continue; } - if (!postObject.inReplyTo || isReplyToMyPost(postObject) || (await isReplyToFollowing(postObject))) { + if (!p.inReplyTo || isReplyToMyPost(p) || (await isReplyToFollowing(p))) { try { - const post = await getFullPostDetails(postObject.id); + const post = await getFullPostDetails(p.id); stream.push(post); } catch (err) { console.error('error while loading post from index'); @@ -145,8 +124,8 @@ export const getActivityStream = async (limit, offset) => { } // process a post by me - if (postObject.type === 'note') { - const post = await getFullPostDetails(postObject.id); + if (p.type === 'note') { + const post = await getFullPostDetails(p.id); stream.push(post); } @@ -158,24 +137,10 @@ export const getActivityStream = async (limit, offset) => { return { activitystream: stream, - next: postIndex + next: px }; }; -/** - * The function `getActivitySince` retrieves activity data since a specified date, excluding the user's - * own activity if specified. - * @param since - The `since` parameter is a timestamp indicating the starting point from which you - * want to retrieve activity. Only activities that occurred after this timestamp will be included in - * the result. - * @param [excludeSelf=false] - The `excludeSelf` parameter is a boolean flag that determines whether - * or not to exclude the posts made by the current user (self) from the result. If `excludeSelf` is set - * to `true`, the posts made by the current user will be filtered out from the result. If `exclude - * @returns an object with a property called "activitystream" which contains an array of objects. Each - * object in the array represents an activity or a note. Each object has two properties: "note" which - * represents the content of the activity or note, and "actor" which represents the actor who performed - * the activity or created the note. - */ export const getActivitySince = async (since, excludeSelf = false) => { // sort all known posts by date quickly const sortedSlice = INDEX.filter(p => p.type !== 'fail' && !isNaN(p.published)) @@ -187,17 +152,17 @@ export const getActivitySince = async (since, excludeSelf = false) => { return p.published > since; }); - const stream = []; - let postIndex; - for (postIndex = 0; postIndex < sortedSlice.length; postIndex++) { - const postObject = sortedSlice[postIndex]; - if (postObject.type === 'activity') { - if (isFollowing(postObject.actor)) { - if (!postObject.inReplyTo || isReplyToMyPost(postObject) || (await isReplyToFollowing(postObject))) { + const res = []; + let px; + for (px = 0; px < sortedSlice.length; px++) { + const p = sortedSlice[px]; + if (p.type === 'activity') { + if (isFollowing(p.actor)) { + if (!p.inReplyTo || isReplyToMyPost(p) || (await isReplyToFollowing(p))) { try { - const { actor } = await fetchUser(postObject.actor); - const post = await getActivity(postObject.id); - stream.push({ + const { actor } = await fetchUser(p.actor); + const post = await getActivity(p.id); + res.push({ note: post, actor }); @@ -211,8 +176,8 @@ export const getActivitySince = async (since, excludeSelf = false) => { // disregard not from following } } else { - const post = await getNote(postObject.id); - stream.push({ + const post = await getNote(p.id); + res.push({ note: post, actor: ActivityPub.actor }); @@ -220,6 +185,6 @@ export const getActivitySince = async (since, excludeSelf = false) => { } return { - activitystream: stream + activitystream: res }; }; From b8895dde7ce21c0cf975aa8466244d6df9b04ab1 Mon Sep 17 00:00:00 2001 From: Enze Ma <38894303+sora1998@users.noreply.github.com> Date: Fri, 17 Nov 2023 19:56:12 -0800 Subject: [PATCH 016/100] Add files via upload --- compose-dev.yaml | 12 ++ design/dashboard.handlebars | 81 +++++------ design/dms.handlebars | 63 +++++---- design/feeds.handlebars | 81 +++++------ design/findresults.handlebars | 41 +++--- design/followers.handlebars | 28 ++-- design/following.handlebars | 26 ++-- design/layouts/public.handlebars | 37 +++--- design/notifications.handlebars | 107 ++++++++------- design/prefs.handlebars | 45 ++++++- design/public/home.handlebars | 20 +-- lib/account.js | 222 ++++++++++++++++++++++++++++++- lib/theAlgorithm.js | 81 +++++++---- public/css/secret.css | 12 +- 14 files changed, 612 insertions(+), 244 deletions(-) create mode 100644 compose-dev.yaml diff --git a/compose-dev.yaml b/compose-dev.yaml new file mode 100644 index 0000000..cc7fd0a --- /dev/null +++ b/compose-dev.yaml @@ -0,0 +1,12 @@ +services: + app: + entrypoint: + - sleep + - infinity + image: docker/dev-environments-javascript:stable-1 + init: true + volumes: + - type: bind + source: /var/run/docker.sock + target: /var/run/docker.sock + diff --git a/design/dashboard.handlebars b/design/dashboard.handlebars index a9f394c..66a73a9 100644 --- a/design/dashboard.handlebars +++ b/design/dashboard.handlebars @@ -1,43 +1,50 @@
-
- {{prefs.icons.latest}} Latest - -
-
- {{#if activitystream}} - {{#each activitystream}} - {{#with this}} -
- {{#if boost}} -
- 🚀 boosted by {{booster.name}} -
- {{/if}} - {{> note note=note me=../me}} -
- {{/with}} - {{/each}} - {{else}} -
-

Follow some people to fill your feed with posts.

-

I suggest following me! - I'm benbrown@hackers.town -

-
+
+ {{prefs.icons.latest}} Latest + +
+
+ {{#if activitystream}} + {{#each activitystream}} +
+ {{#with this}} + {{#if boost}} +
+ 🚀 Boosted by + {{booster.name}} +
+ {{/if}} + {{> note note=note me=../me}} + {{/with}} +
+ {{/each}} + {{else}} +
+

Follow some people to fill your feed with posts.

+

Suggestion: Follow + benbrown@hackers.town +

+
+ {{/if}} +
+ + {{#if next}} + {{/if}}
- -{{#if next}} -More -{{/if}} -
diff --git a/design/dms.handlebars b/design/dms.handlebars index 7dff60d..d7d7750 100644 --- a/design/dms.handlebars +++ b/design/dms.handlebars @@ -1,27 +1,38 @@ -{{#if error}} -
- {{error.message}} -
-{{else}} -
- {{#if feed}} -
Inbox » Messages with {{feed.preferredUsername}}
-
-
- {{#each inbox}} - {{> dm message=this me=../me}} - {{/each}} -
- {{> minicomposer inReplyTo=lastIncoming to=feed.id}} -
- {{else}} - -
- Select a conversation. To create a new one, navigate to a profile. -
- {{/if}} -
-{{/if}} +
+ {{#if error}} + + {{else}} +
+ {{#if feed}} +
+ +
+
+
    + {{#each inbox}} +
  • + {{> dm message=this me=../me}} +
  • + {{/each}} +
+ {{> minicomposer inReplyTo=lastIncoming to=feed.id}} +
+ {{else}} +
+ Select a conversation. To create a new one, navigate to a profile. +
+ {{/if}} +
+ {{/if}} +
\ No newline at end of file + document.addEventListener('DOMContentLoaded', () => { + app.pollForPosts(); + }); + diff --git a/design/feeds.handlebars b/design/feeds.handlebars index 7c48688..5b7e740 100644 --- a/design/feeds.handlebars +++ b/design/feeds.handlebars @@ -1,40 +1,47 @@ -{{#if error}} -
- {{error.message}} -
-{{else}} -
- {{#if feed}} - {{> profileHeader actor=feed nobio=true}} - {{/if}} - {{#if activitystream}} - {{#each activitystream}} - {{#with this}} -
- {{#if boost}} -
- 🚀 boosted by {{booster.name}} -
- {{> note note=note}} - {{else}} - {{> note note=note hidebyline=true}} - {{/if}} -
- {{/with}} - {{/each}} - {{else}} - -
- No posts. Reload -
- {{/if}} +
+ {{#if error}} + + {{else}} +
+ {{#if feed}} + {{> profileHeader actor=feed nobio=true}} + {{/if}} + + {{#if activitystream}} + {{#each activitystream}} + {{#with this}} +
+ {{#if boost}} +
+ 🚀 Boosted by + {{booster.name}} +
+ {{> note note=note}} + {{else}} + {{> note note=note hidebyline=true}} + {{/if}} +
+ {{/with}} + {{/each}} + {{else}} +
+ No posts. Reload +
+ {{/if}} - {{#if next}} - More - {{/if}} + {{#if next}} + + {{/if}} +
+ {{/if}} +
-
-{{/if}} \ No newline at end of file + document.addEventListener('DOMContentLoaded', () => { + app.pollForPosts(); + }); + diff --git a/design/findresults.handlebars b/design/findresults.handlebars index 8335e62..52df3f4 100644 --- a/design/findresults.handlebars +++ b/design/findresults.handlebars @@ -1,23 +1,34 @@ -
+
-
- - + + + +
-
+ {{#if results}} - {{#each results}} -
- {{> personCard actor=this nobio=true}} -
- {{/each}} +
+ {{#each results}} +
+ {{> personCard actor=this nobio=true}} +
+ {{/each}} +
{{else}} -
- Nobody results +
+ No results found.
{{/if}} -
+
\ No newline at end of file + document.addEventListener('DOMContentLoaded', () => { + app.pollForPosts(); + }); + diff --git a/design/followers.handlebars b/design/followers.handlebars index 7f5a864..e0d072d 100644 --- a/design/followers.handlebars +++ b/design/followers.handlebars @@ -1,15 +1,21 @@ -
-
- 🤷🏽‍♂️ Followers -
+
+
+ 🤷🏽‍♂️ Followers +
-{{#each followers}} -
- {{> personCard actor=this}} -
-{{/each}} +
+ {{#each followers}} +
+ {{> personCard actor=this}} +
+ {{/each}} +
+ {{> peopleTools}} + \ No newline at end of file + document.addEventListener('DOMContentLoaded', () => { + app.pollForPosts(); + }); + diff --git a/design/following.handlebars b/design/following.handlebars index 8e568b8..47e9106 100644 --- a/design/following.handlebars +++ b/design/following.handlebars @@ -1,15 +1,21 @@
-
- 🤷🏽‍♂️ Following -
+
+ 🤷🏽‍♂️ Following +
-{{#each following}} -
- {{> personCard actor=this}} -
-{{/each}} +
+ {{#each following}} +
+ {{> personCard actor=this}} +
+ {{/each}} +
+ {{> peopleTools}} + \ No newline at end of file + document.addEventListener('DOMContentLoaded', () => { + app.pollForPosts(); + }); + diff --git a/design/layouts/public.handlebars b/design/layouts/public.handlebars index 14f6f30..615e13c 100644 --- a/design/layouts/public.handlebars +++ b/design/layouts/public.handlebars @@ -1,19 +1,22 @@ - - {{me.preferredUsername}} - - - - - - -
-
-
- {{{body}}} -
-
-
- - + + + {{me.preferredUsername}} + + + + + + + +
+
+
+ {{{body}}} +
+
+
+ + + \ No newline at end of file diff --git a/design/notifications.handlebars b/design/notifications.handlebars index 27c7506..d4d2942 100644 --- a/design/notifications.handlebars +++ b/design/notifications.handlebars @@ -1,50 +1,67 @@
-
- {{prefs.icons.notifications}} Notifications - -
-{{#each notifications}} -
- {{#with this}} - {{#isEq notification.type "Announce"}} - -
- {{{...note.content}}} -
- {{/isEq}} - {{#isEq notification.type "Reply"}} - {{> note actor=../actor note=../note}} - {{/isEq}} - {{#isEq notification.type "Mention"}} -
💬 {{or ../actor.name ../actor.preferredUsername}} mentioned you {{timesince ../time}}
- {{> note actor=../actor note=../note}} - {{/isEq}} - {{#isEq notification.type "Like"}} - -
- {{{...note.content}}} -
- {{/isEq}} - {{#isEq notification.type "Follow"}} -
🤷🏽‍♂️ {{or ../actor.name ../actor.preferredUsername}} followed you {{timesince ../time}}
- {{> byline actor=../actor}} - {{/isEq}} - {{/with}} -
-{{/each}} +
+ {{prefs.icons.notifications}} Notifications + +
-{{#if next}} -More -{{/if}} +
+ {{#each notifications}} +
+ {{#with this}} + {{#isEq notification.type "Announce"}} +
+ 🚀 {{or ../actor.name ../actor.preferredUsername}} boosted + your post {{timesince ../time}} +
+
+ {{{...note.content}}} +
+ {{/isEq}} + {{#isEq notification.type "Reply"}} + {{> note actor=../actor note=../note}} + {{/isEq}} + {{#isEq notification.type "Mention"}} +
+ 💬 {{or ../actor.name ../actor.preferredUsername}} mentioned you {{timesince ../time}} +
+ {{> note actor=../actor note=../note}} + {{/isEq}} + {{#isEq notification.type "Like"}} +
+ ⭐️ {{or ../actor.name ../actor.preferredUsername}} liked + your post {{timesince ../time}} +
+
+ {{{...note.content}}} +
+ {{/isEq}} + {{#isEq notification.type "Follow"}} +
+ 🤷🏽‍♂️ {{or ../actor.name ../actor.preferredUsername}} followed you {{timesince ../time}} +
+ {{> byline actor=../actor}} + {{/isEq}} + {{/with}} +
+ {{/each}} +
+ {{#if next}} + + {{/if}}
+ \ No newline at end of file + document.addEventListener('DOMContentLoaded', () => { + {{#isEq offset "0"}} + {{#each ../notifications}} + {{#if @first}} + app.latestNotification("{{this.time}}"); + {{/if}} + {{/each}} + {{/isEq}} + app.pollForPosts(); + }); + diff --git a/design/prefs.handlebars b/design/prefs.handlebars index c8c634c..f6a1914 100644 --- a/design/prefs.handlebars +++ b/design/prefs.handlebars @@ -1,4 +1,4 @@ -{{> peopleTools}} +{{!-- {{> peopleTools}}
Outbound Queue
@@ -83,4 +83,45 @@ -
\ No newline at end of file +
--}} + +{{> peopleTools}} +
+
Outbound Queue
+
+ {{#isEq queue.state 0}}✅{{/isEq}} + {{#isEq queue.state 1}}🟢{{/isEq}} + {{#isEq queue.state 3}}🔴{{/isEq}} + {{#if queue.size}} + + {{#if queue.shouldRun}}Running.{{/if}} + {{queue.size}} items remain. + + {{else}} + Queue empty + {{/if}} +
+
+ +
+
Preferences
+
+
+ Interface Strings +
+ + +
+
+
+ Emoji Buttons + {{#each prefs.icons as |icon key|}} +
+ + +
+ {{/each}} + +
+
+
diff --git a/design/public/home.handlebars b/design/public/home.handlebars index 1548808..73a55d4 100644 --- a/design/public/home.handlebars +++ b/design/public/home.handlebars @@ -1,23 +1,23 @@ -
- -
+ +
{{#if actor.image}} {{/if}} -
-
+ +
-
-
+ +
{{actor.name}} {{getUsername actor.id}} @@ -37,7 +37,7 @@ {{/if}}
-
+
🏠 Latest @@ -87,4 +87,4 @@
{{/each}} More -
+ diff --git a/lib/account.js b/lib/account.js index 137998b..89541d8 100644 --- a/lib/account.js +++ b/lib/account.js @@ -31,17 +31,29 @@ const logger = debug('ono:account'); const { DOMAIN } = process.env; +/** + * The function `getInboxIndex` returns the inbox index by reading a JSON dictionary from a specified + * path. + * @returns The function `getInboxIndex` returns the `inboxIndex` object. + */ export const getInboxIndex = () => { const inboxIndexPath = path.resolve(pathToDMs, `inboxes.json`); const inboxIndex = readJSONDictionary(inboxIndexPath, {}); return inboxIndex; }; +/** + * The function writes data to a JSON file that represents the index of an inbox. + */ export const writeInboxIndex = data => { const inboxIndexPath = path.resolve(pathToDMs, `inboxes.json`); writeJSONDictionary(inboxIndexPath, data); }; +/** + * The function `getInbox` retrieves the inbox messages for a given actor ID. + * @returns The function `getInbox` returns the `inbox` array. + */ export const getInbox = actorId => { const username = ActivityPub.getUsername(actorId); @@ -72,6 +84,17 @@ export const addressedOnlyToMe = activity => { return false; }; +/** + * The function `deleteObject` checks if the incoming request is a valid object and if it is a + * "Tombstone" type, then it verifies if the actor is allowed to delete the object and deletes it if + * allowed. + * @param actor - The `actor` parameter represents the user who is performing the delete action. It + * contains information about the user, such as their ID. + * @param incomingRequest - The `incomingRequest` parameter is an object that represents the request to + * delete an object. It contains the following properties: + * @returns a boolean value. It returns `false` in two cases: if the `incomingRequest.object` is not an + * object or if its type is not 'Tombstone'. It returns `true` in all other cases. + */ export const deleteObject = async (actor, incomingRequest) => { if (typeof incomingRequest.object !== 'object') { return false; @@ -79,9 +102,6 @@ export const deleteObject = async (actor, incomingRequest) => { if (incomingRequest.object.type !== 'Tombstone') { return false; } - // TODO: support delete of user. - // remove user, remove follow, following, etc. - // remove all posts by user. try { const activity = await getActivity(incomingRequest.object.id); if (activity.attributedTo !== actor.id) { @@ -111,6 +131,14 @@ export const deleteObject = async (actor, incomingRequest) => { return true; }; +/** + * The `acceptDM` function accepts a direct message (DM) and adds it to the inbox of a specified user, + * updating the inbox index and marking the last read timestamp if the DM is an outbound message. + * @param dm - The `dm` parameter represents the direct message that is being accepted. It is an object + * that contains information about the message, such as its content, sender, and timestamp. + * @param inboxUser - The `inboxUser` parameter represents the user whose inbox the direct message (DM) + * will be added to. + */ export const acceptDM = (dm, inboxUser) => { const inboxIndex = getInboxIndex(); const inbox = getInbox(inboxUser); @@ -137,32 +165,62 @@ export const acceptDM = (dm, inboxUser) => { writeInboxIndex(inboxIndex); }; +/** + * The function checks if the activity's ID starts with a specific domain and returns a boolean value. + * @returns a boolean value indicating whether the given activity's ID starts with the string + * "https://DOMAIN/m/". + */ export const isMyPost = activity => { return activity.id.startsWith(`https://${DOMAIN}/m/`); }; +/** + * The function checks if a given actorId is present in the list of following. + * @returns a boolean value indicating whether the actor with the specified actorId is being followed + * or not. + */ export const isFollowing = actorId => { const following = getFollowing(); return following.some(f => f.actorId === actorId); }; +/** + * The function `isFollower` checks if a given `actorId` is included in the list of followers. + * @returns a boolean value indicating whether the given actorId is included in the list of followers. + */ export const isFollower = actorId => { const followers = getFollowers(); return followers.includes(actorId); }; +/** + * The function `isMention` checks if an activity contains a mention of the current user. + * @returns The function `isMention` returns a boolean value. It returns `true` if the `activity` + * object has a `tag` property that is an array and contains at least one element that has a `type` + * property equal to `'Mention'` and an `href` property equal to `ActivityPub.actor.id`. Otherwise, it + * returns `false`. + */ export const isMention = activity => { return activity.tag?.some(tag => { return tag.type === 'Mention' && tag.href === ActivityPub.actor.id; }); }; +/** + * The function checks if an activity is a reply to a post with a specific pattern. + * @returns a boolean value indicating whether the given activity is a reply to a post. + */ export const isReplyToMyPost = activity => { // has inReplyTo AND it matches the pattern of our posts. // TODO: Do we need to ACTUALLY validate that this post exists? return activity.inReplyTo && activity.inReplyTo.startsWith(`https://${DOMAIN}/m/`); }; +/** + * The function checks if a given activity is a reply to a post from an account that is being followed. + * @returns The function isReplyToFollowing returns a boolean value. It returns true if the parent post + * of the given activity is being followed, and false otherwise. + */ export const isReplyToFollowing = async activity => { // fetch the parent, check ITs owner to see if we follow them. try { @@ -176,7 +234,20 @@ export const isReplyToFollowing = async activity => { return false; }; -function createActor(name, domain, pubkey) { +/** + * The above code defines two functions in JavaScript, one for creating an actor object and another for + * creating a webfinger object. + * @param name - The name parameter is the name of the actor or user. It is used to create the actor's + * username and display name. + * @param domain - The domain parameter represents the domain name of the actor's website or platform. + * It is used to construct the URLs for the actor's profile, inbox, outbox, followers, and image/icon + * URLs. + * @param pubkey - The `pubkey` parameter is the public key of the actor. It is a string that + * represents the public key in PEM format. + * @returns The `createActor` function returns an object representing an actor in the ActivityStreams + * format. The `createWebfinger` function returns an object representing a WebFinger response. + */ +export const createActor = (name, domain, pubkey) => { return { '@context': ['https://www.w3.org/ns/activitystreams', 'https://w3id.org/security/v1'], id: `https://${domain}/u/${name}`, @@ -203,9 +274,19 @@ function createActor(name, domain, pubkey) { publicKeyPem: pubkey } }; -} +}; -function createWebfinger(name, domain) { +/** + * The function creates a Webfinger object with a subject and a link. + * @param name - The name parameter represents the username or identifier of the user. It is used to + * construct the subject property of the returned object. + * @param domain - The `domain` parameter represents the domain name of the website or service where + * the webfinger resource is being created. It is used to construct the `subject` and `href` properties + * in the returned object. + * @returns The function `createWebfinger` returns an object with two properties: `subject` and + * `links`. + */ +export const createWebfinger = (name, domain) => { return { subject: `acct:${name}@${domain}`, @@ -217,8 +298,13 @@ function createWebfinger(name, domain) { } ] }; -} +}; +/** + * The function `getOutboxPosts` retrieves a slice of posts from an array, sorts them by date, and + * returns the total number of posts and the retrieved posts. + * @returns The function `getOutboxPosts` returns an object with two properties: `total` and `posts`. + */ export const getOutboxPosts = async offset => { // sort all known posts by date quickly const sortedSlice = INDEX.filter(p => p.type === 'note').sort(sortByDate); @@ -237,6 +323,10 @@ export const getOutboxPosts = async offset => { }; }; +/** + * The function `addNotification` adds a new notification to an array of notifications and writes the + * updated array to storage. + */ export const addNotification = notification => { const notifications = getNotifications(); notifications.push({ @@ -246,10 +336,20 @@ export const addNotification = notification => { writeNotifications(notifications); }; +/** + * The function writes a JSON dictionary of notifications to a file. + * @returns the result of calling the `writeJSONDictionary` function with the `notificationsFile` and + * `notifications` as arguments. + */ export const writeNotifications = notifications => { return writeJSONDictionary(notificationsFile, notifications); }; +/** + * The function `getNotifications` returns the contents of a JSON dictionary stored in a file. + * @returns The function `getNotifications` is returning the result of calling the `readJSONDictionary` + * function with the `notificationsFile` parameter. + */ export const getNotifications = () => { return readJSONDictionary(notificationsFile); }; @@ -259,6 +359,12 @@ export const getNotifications = () => { // return writeJSONDictionary(blocksFile, data); // } +/** + * The function checks if an actor is blocked based on a list of banned users or domains. + * @returns The function `isBlocked` returns a boolean value. It returns `true` if the `actor` is found + * in the `blocks` array or if the `actor` starts with any of the elements in the `blocks` array. + * Otherwise, it returns `false`. + */ export const isBlocked = actor => { const blocks = getBlocks(); return blocks.some(banned => { @@ -273,22 +379,50 @@ export const isBlocked = actor => { }); }; +/** + * The function `getBlocks` returns the contents of a JSON dictionary stored in a file, or an empty + * array if the file does not exist. + * @returns The function `getBlocks` is returning the result of calling the `readJSONDictionary` + * function with the arguments `blocksFile` and an empty array `[]`. + */ export const getBlocks = () => { return readJSONDictionary(blocksFile, []); }; +/** + * The function "writeFollowers" writes a JSON dictionary of followers to a file. + * @returns The function `writeFollowers` is returning the result of calling the `writeJSONDictionary` + * function with the `followersFile` and `followers` as arguments. + */ const writeFollowers = followers => { return writeJSONDictionary(followersFile, followers); }; +/** + * The function `getFollowers` returns the contents of a JSON dictionary stored in the `followersFile` + * variable. + * @returns The function `getFollowers` is returning the result of calling the `readJSONDictionary` + * function with the `followersFile` parameter. + */ export const getFollowers = () => { return readJSONDictionary(followersFile); }; +/** + * The function writes a JSON dictionary of followers to a file. + * @returns the result of calling the `writeJSONDictionary` function with the `followingFile` and + * `followers` as arguments. + */ export const writeFollowing = followers => { return writeJSONDictionary(followingFile, followers); }; +/** + * The function `getFollowing` returns an array of objects representing the following relationships, + * with an optional mapping from an old format to a new format. + * @returns The function `getFollowing` returns an array of objects. Each object in the array has two + * properties: `id` and `actorId`. + */ export const getFollowing = () => { return readJSONDictionary(followingFile).map(f => { if (typeof f === 'string') { @@ -304,22 +438,49 @@ export const getFollowing = () => { }); }; +/** + * The function `writeBoosts` writes a JSON dictionary to a file. + * @returns the result of calling the `writeJSONDictionary` function with the `boostsFile` and `data` + * parameters. + */ export const writeBoosts = data => { return writeJSONDictionary(boostsFile, data); }; +/** + * The function `getBoosts` returns a JSON dictionary from a file, or an empty array if the file is not + * found. + * @returns The function `getBoosts` is returning the result of calling the `readJSONDictionary` + * function with the `boostsFile` parameter and an empty array as the default value. + */ export const getBoosts = () => { return readJSONDictionary(boostsFile, []); }; +/** + * The function `writeLikes` writes a JSON dictionary of likes to a file. + * @returns the result of calling the `writeJSONDictionary` function with the `likesFile` and `likes` + * as arguments. + */ export const writeLikes = likes => { return writeJSONDictionary(likesFile, likes); }; +/** + * The function `getLikes` returns the contents of a JSON file as a dictionary. + * @returns The function `getLikes` is returning the result of calling the `readJSONDictionary` + * function with the `likesFile` parameter. + */ export const getLikes = () => { return readJSONDictionary(likesFile); }; +/** + * The function `getNote` is an asynchronous function that takes an `id` parameter and returns the + * contents of a JSON file with the corresponding `id` if it exists, otherwise it returns `undefined`. + * @returns a Promise that resolves to the contents of a JSON file if it exists, or undefined if the + * file does not exist or there is an error reading the file. + */ export const getNote = async id => { // const postFile = path.resolve('./', pathToPosts, guid + '.json'); const noteFile = getFileName(id); @@ -335,6 +496,9 @@ export const getNote = async id => { return undefined; }; +/** + * The function sends a create activity to all followers of a user. + */ export const sendCreateToFollowers = async object => { const followers = await getFollowers(); const actors = await Promise.all( @@ -353,6 +517,10 @@ export const sendCreateToFollowers = async object => { }); }; +/** + * The function sends an update to all followers by fetching their accounts and sending the update to + * their actors using ActivityPub. + */ export const sendUpdateToFollowers = async object => { const followers = await getFollowers(); const actors = await Promise.all( @@ -371,6 +539,21 @@ export const sendUpdateToFollowers = async object => { }); }; +/** + * The `createNote` function is used to create a new note or update an existing note, with options for + * specifying recipients, mentions, and content processing. + * @param body - The content of the note. + * @param cw - The `cw` parameter is a string that represents the content warning for the note. It is + * an optional parameter and can be used to provide a warning or spoiler for the content of the note. + * @param inReplyTo - The `inReplyTo` parameter is the URL of the post that the new note is replying + * to. It is used to indicate that the new note is a reply to an existing post. + * @param toUser - The `toUser` parameter is used to specify the recipient of the note. It should be a + * valid account identifier. If provided, the note will be sent directly to the specified user. + * @param editOf - The `editOf` parameter is a string that represents the URL of the post that is being + * edited. If this parameter is provided, the function will use the same GUID (Globally Unique + * Identifier) as the post being edited. + * @returns the `object` variable. + */ export const createNote = async (body, cw, inReplyTo, toUser, editOf) => { const publicAddress = 'https://www.w3.org/ns/activitystreams#Public'; @@ -549,6 +732,10 @@ export const createNote = async (body, cw, inReplyTo, toUser, editOf) => { return object; }; +/** + * The `follow` function follows a user, fetches their outbox, and logs any new posts to an activity + * feed. + */ export const follow = async request => { logger('following someone'); const { actor } = await fetchUser(request.object.object); @@ -593,6 +780,10 @@ export const follow = async request => { } }; +/** + * The function adds a follower by fetching the user, checking if the user is already a follower, and + * then adding the user as a follower if they are not already. + */ export const addFollower = async request => { logger('Adding follower...'); const { actor } = await fetchUser(request.actor); @@ -608,6 +799,9 @@ export const addFollower = async request => { } }; +/** + * The function removes a follower by fetching the user and updating the list of followers. + */ export const removeFollower = async follower => { logger('Removing follower...'); const { actor } = await fetchUser(follower); @@ -619,6 +813,14 @@ export const removeFollower = async follower => { } }; +/** + * The `ensureAccount` function ensures that an account exists by verifying the domain name and + * generating a crypto key if the account file does not exist. + * @param name - The name parameter is a string that represents the name of the account. + * @param domain - The `domain` parameter is a string that represents the domain name. It is used to + * verify if the domain name is well-formatted before proceeding with the account creation process. + * @returns The function `ensureAccount` returns a Promise that resolves to an account object. + */ export const ensureAccount = async (name, domain) => { // verify domain name const re = /^((?:(?:(?:\w[.\-+]?)*)\w)+)((?:(?:(?:\w[.\-+]?){0,62})\w)+)\.(\w{2,6})$/; @@ -670,6 +872,12 @@ export const ensureAccount = async (name, domain) => { }); }; +/** + * The function `getAccount` reads a JSON dictionary from a file and returns it, or an empty object if + * the file does not exist. + * @returns The function `getAccount` is returning the result of calling the `readJSONDictionary` + * function with the `accountFile` and an empty object as arguments. + */ export const getAccount = () => { return readJSONDictionary(accountFile, {}); }; diff --git a/lib/theAlgorithm.js b/lib/theAlgorithm.js index cd5bd4e..099857c 100644 --- a/lib/theAlgorithm.js +++ b/lib/theAlgorithm.js @@ -27,6 +27,14 @@ import { ActivityPub } from './ActivityPub.js'; const logger = debug('ono:algorithm'); +/** + * The function `sortByDate` takes two values and compares them. It is used to sort posts in reverse + * order. + * @param a - The first object being compared. + * @param b - The parameter `b` represents the second item being compared in the `sortByDate` function. + * @returns The `sortByDate` function returns -1 if `a.published` is greater than `b.published`, 1 if + * `a.published` is less than `b.published`, and 0 if `a.published` is equal to `b.published`. + */ export const sortByDate = (a, b) => { if (a.published > b.published) { return -1; @@ -84,10 +92,23 @@ export const getFullPostDetails = async activityOrId => { note, actor, boost, + booster }; }; +/** + * The `getActivityStream` function generates an activity stream by sorting and filtering posts, and + * then iterating over them to retrieve the necessary details. + * @param limit - The `limit` parameter specifies the maximum number of posts to include in the + * activity stream. It determines how many posts will be returned in the `activitystream` array. + * @param offset - The `offset` parameter is used to determine the starting point of the activity + * stream. It specifies the index position in the `sortedSlice` array from where the iteration should + * begin. + * @returns an object with two properties: "activitystream" and "next". The "activitystream" property + * contains an array of posts, and the "next" property contains the index of the next post to be + * fetched. + */ export const getActivityStream = async (limit, offset) => { logger('Generating activity stream...'); @@ -100,20 +121,20 @@ export const getActivityStream = async (limit, offset) => { const stream = []; // iterate over the list until we get enough posts (or run out of posts) - let px; - for (px = offset; px < sortedSlice.length; px++) { - const p = sortedSlice[px]; + let postIndex; + for (postIndex = offset; postIndex < sortedSlice.length; postIndex++) { + const postObject = sortedSlice[postIndex]; // process a post by someone else - if (p.type === 'activity') { + if (postObject.type === 'activity') { // Ignore posts from people I am not following - if (!isFollowing(p.actor)) { + if (!isFollowing(postObject.actor)) { continue; } - if (!p.inReplyTo || isReplyToMyPost(p) || (await isReplyToFollowing(p))) { + if (!postObject.inReplyTo || isReplyToMyPost(postObject) || (await isReplyToFollowing(postObject))) { try { - const post = await getFullPostDetails(p.id); + const post = await getFullPostDetails(postObject.id); stream.push(post); } catch (err) { console.error('error while loading post from index'); @@ -124,8 +145,8 @@ export const getActivityStream = async (limit, offset) => { } // process a post by me - if (p.type === 'note') { - const post = await getFullPostDetails(p.id); + if (postObject.type === 'note') { + const post = await getFullPostDetails(postObject.id); stream.push(post); } @@ -137,10 +158,24 @@ export const getActivityStream = async (limit, offset) => { return { activitystream: stream, - next: px + next: postIndex }; }; +/** + * The function `getActivitySince` retrieves activity data since a specified date, excluding the user's + * own activity if specified. + * @param since - The `since` parameter is a timestamp indicating the starting point from which you + * want to retrieve activity. Only activities that occurred after this timestamp will be included in + * the result. + * @param [excludeSelf=false] - The `excludeSelf` parameter is a boolean flag that determines whether + * or not to exclude the posts made by the current user (self) from the result. If `excludeSelf` is set + * to `true`, the posts made by the current user will be filtered out from the result. If `exclude + * @returns an object with a property called "activitystream" which contains an array of objects. Each + * object in the array represents an activity or a note. Each object has two properties: "note" which + * represents the content of the activity or note, and "actor" which represents the actor who performed + * the activity or created the note. + */ export const getActivitySince = async (since, excludeSelf = false) => { // sort all known posts by date quickly const sortedSlice = INDEX.filter(p => p.type !== 'fail' && !isNaN(p.published)) @@ -152,17 +187,17 @@ export const getActivitySince = async (since, excludeSelf = false) => { return p.published > since; }); - const res = []; - let px; - for (px = 0; px < sortedSlice.length; px++) { - const p = sortedSlice[px]; - if (p.type === 'activity') { - if (isFollowing(p.actor)) { - if (!p.inReplyTo || isReplyToMyPost(p) || (await isReplyToFollowing(p))) { + const stream = []; + let postIndex; + for (postIndex = 0; postIndex < sortedSlice.length; postIndex++) { + const postObject = sortedSlice[postIndex]; + if (postObject.type === 'activity') { + if (isFollowing(postObject.actor)) { + if (!postObject.inReplyTo || isReplyToMyPost(postObject) || (await isReplyToFollowing(postObject))) { try { - const { actor } = await fetchUser(p.actor); - const post = await getActivity(p.id); - res.push({ + const { actor } = await fetchUser(postObject.actor); + const post = await getActivity(postObject.id); + stream.push({ note: post, actor }); @@ -176,8 +211,8 @@ export const getActivitySince = async (since, excludeSelf = false) => { // disregard not from following } } else { - const post = await getNote(p.id); - res.push({ + const post = await getNote(postObject.id); + stream.push({ note: post, actor: ActivityPub.actor }); @@ -185,6 +220,6 @@ export const getActivitySince = async (since, excludeSelf = false) => { } return { - activitystream: res + activitystream: stream }; }; diff --git a/public/css/secret.css b/public/css/secret.css index 9dff622..a90a905 100644 --- a/public/css/secret.css +++ b/public/css/secret.css @@ -8,7 +8,7 @@ --separator: #7777bb; --shade: rgba(255,255,255,0.25); --highlight: rgba(0,0,0,0.25); - --accent: rgb(250, 4, 197); + --accent: rgba(250, 4, 197, 1); } @media (prefers-color-scheme: dark) { @@ -22,7 +22,7 @@ --separator: #111122; --shade: rgba(0,0,0,0.25); --highlight: rgba(255,255,255,0.25); - --accent: rgb(250, 4, 197); + --accent: rgba(250, 4, 197, 1); } } @@ -745,9 +745,13 @@ button.bigfollow.active .inactive { display: none; } width: 100%; } -/* .profile { +.profile { background: var(--tertiary); -} */ + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; +} .profileToolbar { From 4bd52aaa83d78d72466c4ebe34b376ff7d438069 Mon Sep 17 00:00:00 2001 From: Wang Dingkun Date: Fri, 17 Nov 2023 21:05:52 -0800 Subject: [PATCH 017/100] refactor: added JS Docs --- lib/ActivityPub.js | 49 +++++++++++++++++--- lib/storage.js | 111 +++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 149 insertions(+), 11 deletions(-) diff --git a/lib/ActivityPub.js b/lib/ActivityPub.js index 333f6a2..6e647e0 100644 --- a/lib/ActivityPub.js +++ b/lib/ActivityPub.js @@ -6,8 +6,14 @@ const logger = debug('ActivityPub'); /** * ActivityPubClient - a class for sending and fetching ActivityPub content + * @class */ export class ActivityPubClient { + /** + * Constructor for ActivityPubClient + * @constructor + * @param {Object} account - The user account. + */ constructor(account) { logger('Initializing ActivityPub client for user:', account); if (account) { @@ -15,24 +21,47 @@ export class ActivityPubClient { } } + /** + * Setter for actor property + * @param {Object} actor - The actor object. + */ set actor(actor) { this._actor = actor; } + /** + * Getter for actor property + * @returns {Object} The actor object. + */ get actor() { return this._actor; } + /** + * Setter for account property + * @param {Object} account - The user account. + */ set account(account) { logger('Setting account:', account); this._account = account; this._actor = account?.actor; } + /** + * Getter for account property + * @returns {Object} The user account. + */ get account() { return this._account; } + /** + * Fetches the Webfinger data for a given username + * @async + * @param {string} username - The username to fetch Webfinger data for. + * @returns {Promise} The Webfinger data. + * @throws {Error} If Webfinger fetch fails. + */ async webfinger(username) { const { targetDomain } = this.getUsernameDomain(username); @@ -52,6 +81,13 @@ export class ActivityPubClient { } } + /** + * Fetches the actor data for a given user ID + * @async + * @param {string} userId - The user ID to fetch actor data for. + * @returns {Promise} The actor data. + * @throws {Error} If actor fetch fails. + */ async fetchActor(userId) { const actorQuery = await ActivityPub.fetch(userId, {}); if (actorQuery.ok) { @@ -76,21 +112,22 @@ export class ActivityPubClient { const urlFragment = url.pathname + (url.searchParams.toString() ? `?${url.searchParams.toString()}` : ''); const signer = crypto.createSign('sha256'); - const d = new Date(); - const stringToSign = `(request-target): get ${urlFragment}\nhost: ${url.hostname}\ndate: ${d.toUTCString()}`; + const date = new Date(); + const stringToSign = `(request-target): get ${urlFragment}\nhost: ${url.hostname}\ndate: ${date.toUTCString()}`; signer.update(stringToSign); signer.end(); const signature = signer.sign(this.account.privateKey); const signatureB64 = signature.toString('base64'); const header = `keyId="${this.actor.publicKey.id}",headers="(request-target) host date",signature="${signatureB64}"`; options.headers = { - Date: d.toUTCString(), + Date: date.toUTCString(), Host: url.hostname, Accept: 'application/activity+json, application/ld+json; profile="https://www.w3.org/ns/activitystreams"', Signature: header }; const controller = new AbortController(); + // set timeout for 5s setTimeout(() => controller.abort(), 5000); options.signal = controller.signal; @@ -118,10 +155,10 @@ export class ActivityPubClient { const digestHash = crypto.createHash('sha256').update(JSON.stringify(message)).digest('base64'); const signer = crypto.createSign('sha256'); - const d = new Date(); + const date = new Date(); const stringToSign = `(request-target): post ${inboxFragment}\nhost: ${ url.hostname - }\ndate: ${d.toUTCString()}\ndigest: SHA-256=${digestHash}`; + }\ndate: ${date.toUTCString()}\ndigest: SHA-256=${digestHash}`; signer.update(stringToSign); signer.end(); const signature = signer.sign(this.account.privateKey); @@ -139,7 +176,7 @@ export class ActivityPubClient { headers: { Host: url.hostname, 'Content-type': 'application/activity+json', - Date: d.toUTCString(), + Date: date.toUTCString(), Digest: `SHA-256=${digestHash}`, Signature: header }, diff --git a/lib/storage.js b/lib/storage.js index d6bb639..798eb26 100644 --- a/lib/storage.js +++ b/lib/storage.js @@ -5,8 +5,8 @@ import md5 from 'md5'; import { DEFAULT_SETTINGS } from './prefs.js'; import debug from 'debug'; - import dotenv from 'dotenv'; + const logger = debug('ono:storage'); dotenv.config(); @@ -29,34 +29,71 @@ const { DOMAIN } = process.env; export const INDEX = []; export const CACHE = {}; + const cacheMax = 60 * 5 * 1000; // 5 minutes -const cacheMin = 30 * 1000; // 5 minutes +const cacheMin = 30 * 1000; // 30 seconds +/** + * Function to zero-pad a number. + * @param {number} num - The number to zero-pad. + * @returns {string} - The zero-padded number as a string. + */ const zeroPad = num => { if (num < 10) { return `0${num}`; } else return num; }; +/** + * Checks if an activity belongs to the current user. + * @param {string} activityId - The ID of the activity. + * @returns {boolean} - True if the activity belongs to the current user, false otherwise. + */ export const isMyPost = activityId => { return activityId.startsWith(`https://${DOMAIN}/m/`); }; +/** + * Checks if an activity is in the INDEX array. + * @param {string} id - The ID of the activity. + * @returns {boolean} - True if the activity is indexed, false otherwise. + */ export const isIndexed = id => { return INDEX.some(p => id === p.id); }; +/** + * Retrieves activity info from the index based on the activity ID. + * @param {string} id - The ID of the activity. + * @returns {Object|boolean} - The activity information if found, otherwise false. + */ export const fromIndex = id => { return INDEX.find(p => id === p.id) || false; }; +/** + * Gets user preferences. + * @returns {Object} - User preferences. + */ export const getPrefs = () => { return readJSONDictionary(prefsFile, DEFAULT_SETTINGS); }; + +/** + * Updates user preferences. + * @param {Object} prefs - The new user preferences. + * @returns {void} + */ export const updatePrefs = prefs => { return writeJSONDictionary(prefsFile, prefs); }; +/** + * Adds a failure entry to the index. + * @param {Object} note - The note object. + * @param {string} type - The type of failure (default is 'fail'). + * @returns {void} + */ export const addFailureToIndex = (note, type = 'fail') => { INDEX.push({ type, @@ -65,6 +102,13 @@ export const addFailureToIndex = (note, type = 'fail') => { status: note.status }); }; + +/** + * Adds an activity entry to the index. + * @param {Object} note - The note object. + * @param {string} type - The type of activity (default is 'activity'). + * @returns {void} + */ export const addActivityToIndex = (note, type = 'activity') => { INDEX.push({ type, @@ -74,6 +118,12 @@ export const addActivityToIndex = (note, type = 'activity') => { inReplyTo: note.inReplyTo }); }; + +/** + * Deletes an activity entry from the index. + * @param {string} id - The ID of the activity to be deleted. + * @returns {void} + */ export const deleteActivityFromIndex = id => { const n = INDEX.findIndex(idx => idx.id === id); if (n >= 0) { @@ -81,8 +131,12 @@ export const deleteActivityFromIndex = id => { } }; +/** + * Gets the file name for a given activity ID. + * @param {string} activityId - The ID of the activity. + * @returns {string} - The file name. + */ export const getFileName = activityId => { - // // find the item in the index // first check cache! let meta; if (CACHE[activityId]) { @@ -103,8 +157,12 @@ export const getFileName = activityId => { return path.resolve(rootPath, folder, `${md5(meta.id)}.json`); }; +/** + * Gets the file name for the likes associated with a given activity ID. + * @param {string} activityId - The ID of the activity. + * @returns {string} - The file name for likes. + */ export const getLikesFileName = activityId => { - // // find the item in the index // first check cache! let meta; if (CACHE[activityId]) { @@ -125,6 +183,11 @@ export const getLikesFileName = activityId => { return path.resolve(rootPath, folder, `${md5(meta.id)}.likes.json`); }; +/** + * Creates a file name for a given activity. + * @param {Object} activity - The activity object. + * @returns {string} - The file name. + */ export const createFileName = activity => { // create a dated subfolder const datestamp = new Date(activity.published); @@ -140,6 +203,10 @@ export const createFileName = activity => { return path.resolve(rootPath, folder, `${md5(activity.id)}.json`); }; +/** + * Clears expired entries from the cache. + * @returns {void} + */ const cacheExpire = () => { const now = new Date().getTime(); for (const key in CACHE) { @@ -150,12 +217,20 @@ const cacheExpire = () => { } }; +/** + * Interval function for the garbage collector to clear expired cache entries. + * @type {number} + */ const garbageCollector = setInterval(() => { cacheExpire(); }, cacheMin); logger('Garbage collector interval', garbageCollector); +/** + * Builds the initial index by reading data from files. + * @returns {Promise>} - A promise that resolves with the built index. + */ const buildIndex = () => { return new Promise((resolve, reject) => { glob(path.join(pathToFiles, '**/*.json'), async (err, files) => { @@ -163,7 +238,7 @@ const buildIndex = () => { console.error(err); reject(err); } - // const res = []; + for (const f of files) { try { const post = JSON.parse(fs.readFileSync(path.resolve(pathToFiles, f))); @@ -198,6 +273,11 @@ const buildIndex = () => { }); }; +/** + * Searches for known users based on a query string. + * @param {string} query - The search query. + * @returns {Promise>} - A promise that resolves with the search results. + */ export const searchKnownUsers = async query => { return new Promise((resolve, reject) => { glob(path.join(pathToUsers, '**/*.json'), async (err, files) => { @@ -227,6 +307,10 @@ export const searchKnownUsers = async query => { }); }; +/** + * Ensures the existence of data folders and default settings. + * @returns {void} + */ const ensureDataFolder = () => { if (!fs.existsSync(path.resolve(pathToPosts))) { logger('mkdir', pathToPosts); @@ -260,6 +344,12 @@ const ensureDataFolder = () => { } }; +/** + * Reads a JSON dictionary from a file path. + * @param {string} path - The path to the JSON file. + * @param {Array} defaultVal - The default value if the file doesn't exist. + * @returns {Array} - The contents of the JSON file. + */ export const readJSONDictionary = (path, defaultVal = []) => { const now = new Date().getTime(); if (CACHE[path] && CACHE[path].time > now - cacheMax) { @@ -282,11 +372,22 @@ export const readJSONDictionary = (path, defaultVal = []) => { } }; +/** + * Deletes a JSON dictionary file. + * @param {string} path - The path to the JSON file to be deleted. + * @returns {void} + */ export const deleteJSONDictionary = path => { fs.unlinkSync(path); delete CACHE[path]; }; +/** + * Writes a JSON dictionary to a file. + * @param {string} path - The path to the file. + * @param {Object} data - The data to be written. + * @returns {void} + */ export const writeJSONDictionary = (path, data) => { const now = new Date().getTime(); logger('write cache', path); From 6b756b844e47bdade011bb71523d725302fc367e Mon Sep 17 00:00:00 2001 From: Aditya Mandke <40426312+ekdnam@users.noreply.github.com> Date: Sat, 18 Nov 2023 00:46:42 -0800 Subject: [PATCH 018/100] add jsdocs --- index.js | 257 ++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 205 insertions(+), 52 deletions(-) diff --git a/index.js b/index.js index 86a9311..1a4c789 100644 --- a/index.js +++ b/index.js @@ -1,52 +1,181 @@ -import express from 'express'; -import { create } from 'express-handlebars'; +// index.js is the start point for our project + +// middleware to parse request bodies in different formats (e.g., JSON) +import bodyParser from 'body-parser'; + +// middleware to parse cookies in incoming requests import cookieParser from 'cookie-parser'; +// Cross-Origin Resource Sharing (CORS) middleware for enabling cross-origin requests +import cors from 'cors'; + +// the dotenv module for loading environment variables from a .env file import dotenv from 'dotenv'; -import bodyParser from 'body-parser'; -import cors from 'cors'; -import http from 'http'; +// the Express.js framework for building web applications +import express from 'express'; + +// middleware for implementing basic authentication in Express import basicAuth from 'express-basic-auth'; + +// the Handlebars view engine for rendering dynamic HTML content +import { create } from 'express-handlebars'; + +// the built-in Node.js HTTP module for creating an HTTP server +import http from 'http'; + +// the Moment.js library for handling dates and times import moment from 'moment'; + import { ActivityPub } from './lib/ActivityPub.js'; import { ensureAccount } from './lib/account.js'; -import { account, webfinger, inbox, outbox, admin, notes, publicFacing } from './routes/index.js'; + +import { + account, + webfinger, + inbox, + outbox, + admin, + notes, + publicFacing +} from './routes/index.js'; + // load process.env from .env file dotenv.config(); const { USERNAME, PASS, DOMAIN, PORT } = process.env; -['USERNAME', 'PASS', 'DOMAIN'].forEach(required => { - if (!process.env[required]) { - console.error(`Missing required environment variable: \`${required}\`. Exiting.`); - process.exit(1); - } -}); +const env_variables = ['USERNAME', 'PASS', 'DOMAIN']; const PATH_TO_TEMPLATES = './design'; + +/** + * Check the existence of required environment variables. + * + * @param {string[]} env_variables - An array of environment variable names that are required. + * @throws {Error} Throws an error and exits the process if any required environment variable is missing. + */ +function checkRequiredEnvironmentVariables(env_variables) { + env_variables.forEach((reqd_variable) => { + /** + * Check if the required environment variable is missing. + * If missing, log an error message and exit the process. + * + * @example + * // Example usage: + * checkRequiredEnvironmentVariables(['PORT', 'DATABASE_URL']); + */ + if (!process.env[reqd_variable]) { + console.error(`Missing required environment variable: \`${reqd_variable}\`. Exiting.`); + process.exit(1); + } + }); +} +checkRequiredEnvironmentVariables(env_variables); + const app = express(); +/** + * Handlebars helper functions for custom template rendering. + * + * @typedef {Object} HandlebarsHelpers + * @property {Function} isVideo - Check if a string contains 'video' and execute the provided block if true. + * @property {Function} isImage - Check if a string contains 'image' and execute the provided block if true. + * @property {Function} isEq - Check if two values are equal and execute the provided block if true. + * @property {Function} or - Logical OR between two values. + * @property {Function} timesince - Format a date to show the time elapsed since the specified date. + * @property {Function} getUsername - Get the username using the ActivityPub module. + * @property {Function} stripProtocol - Remove 'https://' from the beginning of a string. + * @property {Function} stripHTML - Remove HTML tags from a string. + */ + +/** + * Create an instance of Handlebars with custom helpers. + * + * @type {Handlebars} + * @see {@link https://handlebarsjs.com/api-reference/helpers.html} + */ const hbs = create({ helpers: { + /** + * Check if a string contains 'video' and execute the provided block if true. + * @function + * @param {string} str - The string to check. + * @param {Object} options - Handlebars options object. + * @returns {string} - The rendered block if the condition is true. + */ isVideo: (str, options) => { if (str && str.includes('video')) return options.fn(this); }, + + /** + * Check if a string contains 'image' and execute the provided block if true. + * @function + * @param {string} str - The string to check. + * @param {Object} options - Handlebars options object. + * @returns {string} - The rendered block if the condition is true. + */ isImage: (str, options) => { if (str && str.includes('image')) return options.fn(this); }, + + /** + * Check if two values are equal and execute the provided block if true. + * @function + * @param {*} a - The first value. + * @param {*} b - The second value. + * @param {Object} options - Handlebars options object. + * @returns {string} - The rendered block if the condition is true. + */ isEq: (a, b, options) => { // eslint-disable-next-line if (a == b) return options.fn(this); }, + + /** + * Logical OR between two values. + * @function + * @param {*} a - The first value. + * @param {*} b - The second value. + * @param {Object} options - Handlebars options object. + * @returns {*} - The result of the logical OR operation. + */ or: (a, b, options) => { return a || b; }, + + /** + * Format a date to show the time elapsed since the specified date. + * @function + * @param {Date} date - The date to be formatted. + * @returns {string} - The formatted time elapsed string. + */ timesince: date => { return moment(date).fromNow(); }, + + /** + * Get the username using the ActivityPub module. + * @function + * @param {*} user - The user object. + * @returns {string} - The username. + */ getUsername: user => { return ActivityPub.getUsername(user); }, + + /** + * Remove 'https://' from the beginning of a string. + * @function + * @param {string} str - The string to process. + * @returns {string} - The string with 'https://' removed. + */ stripProtocol: str => str.replace(/^https:\/\//, ''), + + /** + * Remove HTML tags from a string. + * @function + * @param {string} str - The string containing HTML tags. + * @returns {string} - The string with HTML tags removed. + */ stripHTML: str => str .replace(/<\/p>/, '\n') @@ -55,56 +184,80 @@ const hbs = create({ } }); -app.set('domain', DOMAIN); -app.set('port', process.env.PORT || PORT || 3000); -app.set('port-https', process.env.PORT_HTTPS || 8443); -app.engine('handlebars', hbs.engine); -app.set('views', PATH_TO_TEMPLATES); -app.set('view engine', 'handlebars'); -app.use( - bodyParser.json({ - type: 'application/activity+json' - }) -); // support json encoded bodies -app.use( - bodyParser.json({ - type: 'application/json' - }) -); // support json encoded bodies -app.use( - bodyParser.json({ - type: 'application/ld+json' - }) -); // support json encoded bodies - -app.use(cookieParser()); - -app.use( - bodyParser.urlencoded({ - extended: true - }) -); // support encoded bodies - -// basic http authorizer -const basicUserAuth = basicAuth({ - authorizer: asyncAuthorizer, - authorizeAsync: true, - challenge: true -}); +const setExpressApp = (app) => { + app.set('domain', DOMAIN); + app.set('port', process.env.PORT || PORT || 3000); + app.set('port-https', process.env.PORT_HTTPS || 8443); + app.engine('handlebars', hbs.engine); + app.set('views', PATH_TO_TEMPLATES); + app.set('view engine', 'handlebars'); + app.use( + bodyParser.json({ + type: 'application/activity+json' + }) + ); // support json encoded bodies + app.use( + bodyParser.json({ + type: 'application/json' + }) + ); // support json encoded bodies + app.use( + bodyParser.json({ + type: 'application/ld+json' + }) + ); // support json encoded bodies + + app.use(cookieParser()); + + app.use( + bodyParser.urlencoded({ + extended: true + }) + ); // support encoded bodies +} -function asyncAuthorizer(username, password, cb) { +setExpressApp(app); + + +/** + * Asynchronous basic authorization function for Express.js. + * + * @param {string} username - The provided username for authorization. + * @param {string} password - The provided password for authorization. + * @param {Function} callback - The callback function to be called upon authorization completion. + * @param {Error} callback.error - An error object if an error occurred during authorization, or null if successful. + * @param {boolean} callback.authorized - A boolean indicating whether the user is authorized. + * + * @example + * // Example usage: + * asyncAuthorizer('admin', 'password123', (error, authorized) => { + * if (error) { + * console.error(error.message); + * } else { + * console.log(`User is authorized: ${authorized}`); + * } + * }); + */ +const asyncAuthorizer = (username, password, callback) => { let isAuthorized = false; + // Check if the provided password matches the hardcoded username const isPasswordAuthorized = username === USERNAME; + + // Check if the provided username matches the hardcoded password const isUsernameAuthorized = password === PASS; + + // Set isAuthorized to true if both username and password are authorized isAuthorized = isPasswordAuthorized && isUsernameAuthorized; + + // Invoke the callback with the authorization result if (isAuthorized) { - return cb(null, true); + return callback(null, true); } else { - return cb(null, false); + return callback(null, false); } } -// Load/create account file + ensureAccount(USERNAME, DOMAIN).then(myaccount => { const authWrapper = (req, res, next) => { if (req.cookies.token) { From 3bae37716e6fd11c801e71f6c8e12577eb2c340d Mon Sep 17 00:00:00 2001 From: Aditya Mandke <40426312+ekdnam@users.noreply.github.com> Date: Sat, 18 Nov 2023 00:52:57 -0800 Subject: [PATCH 019/100] add basicauth object --- index.js | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/index.js b/index.js index 1a4c789..f89fa2d 100644 --- a/index.js +++ b/index.js @@ -257,6 +257,45 @@ const asyncAuthorizer = (username, password, callback) => { } } +/** + * Express.js middleware for basic user authentication using asyncAuthorizer. + * + * @typedef {Object} BasicUserAuth + * @property {Function} authorize - Function to perform basic authorization using asyncAuthorizer. + * @property {boolean} authorizeAsync - Indicates that authorization is performed asynchronously. + * @property {boolean} challenge - Indicates whether to send a 401 Unauthorized response. + * + * @example + * // Example usage: + * app.use(basicUserAuth); + */ +const basicUserAuth = basicAuth({ + /** + * Function to perform basic authorization using asyncAuthorizer. + * + * @function + * @param {string} username - The provided username for authorization. + * @param {string} password - The provided password for authorization. + * @param {Function} callback - The callback function to be called upon authorization completion. + * @param {Error} callback.error - An error object if an error occurred during authorization, or null if successful. + * @param {boolean} callback.authorized - A boolean indicating whether the user is authorized. + */ + authorizer: asyncAuthorizer, + + /** + * Indicates that authorization is performed asynchronously. + * + * @type {boolean} + */ + authorizeAsync: true, + + /** + * Indicates whether to send a 401 Unauthorized response. + * + * @type {boolean} + */ + challenge: true, +}); ensureAccount(USERNAME, DOMAIN).then(myaccount => { const authWrapper = (req, res, next) => { From 5f92df8aa7ff8ec9f803af1aa6dbe238909d2561 Mon Sep 17 00:00:00 2001 From: Aditya Mandke <40426312+ekdnam@users.noreply.github.com> Date: Sat, 18 Nov 2023 01:09:18 -0800 Subject: [PATCH 020/100] refactor account.js --- index.js | 5 +-- routes/account.js | 80 +++++++++++++++++++++++++++++++++++++++++++++-- routes/index.js | 2 +- 3 files changed, 81 insertions(+), 6 deletions(-) diff --git a/index.js b/index.js index f89fa2d..c7dd1df 100644 --- a/index.js +++ b/index.js @@ -31,7 +31,7 @@ import { ActivityPub } from './lib/ActivityPub.js'; import { ensureAccount } from './lib/account.js'; import { - account, + UserProfileRouter, webfinger, inbox, outbox, @@ -297,6 +297,7 @@ const basicUserAuth = basicAuth({ challenge: true, }); + ensureAccount(USERNAME, DOMAIN).then(myaccount => { const authWrapper = (req, res, next) => { if (req.cookies.token) { @@ -319,7 +320,7 @@ ensureAccount(USERNAME, DOMAIN).then(myaccount => { // serve webfinger response app.use('/.well-known/webfinger', cors(), webfinger); // server user profile and follower list - app.use('/u', cors(), account); + app.use('/u', cors(), UserProfileRouter); // serve individual posts app.use('/m', cors(), notes); diff --git a/routes/account.js b/routes/account.js index 695d853..1831e14 100644 --- a/routes/account.js +++ b/routes/account.js @@ -1,41 +1,114 @@ import express from 'express'; import { getFollowers } from '../lib/account.js'; + + +/** + * Express.js router for handling user profile-related routes. + * + * @typedef {Object} UserProfileRouter + * @property {Function} getProfile - Route handler for retrieving a user profile by name. + * @property {Function} getFollowers - Route handler for retrieving followers of a user profile by name. + * + * @example + * // Example usage: + * const userProfileRouter = express.Router(); + * userProfileRouter.get('/:name', userProfileHandlers.getProfile); + * userProfileRouter.get('/:name/followers', userProfileHandlers.getFollowers); + * app.use('/profiles', userProfileRouter); + */ export const router = express.Router(); -router.get('/:name', function (req, res) { +/** + * Handle GET requests for a user profile by name. + * + * @function + * @param {Object} req - Express.js request object. + * @param {Object} res - Express.js response object. + * @returns {void} Responds with a user profile or redirects based on the request. + * + * @throws {Error} Responds with a 400 Bad Request if the 'name' parameter is missing. + * @throws {Error} Responds with a 404 Not Found if no record is found for the provided 'name'. + * + * @example + * // Example route: + * // GET /profiles/:name + * router.get('/:name', function (req, res) { + * // ... (route handler implementation) + * }); + */ +router.get('/:name', (req, res) => { + // Extract the 'name' parameter from the request let name = req.params.name; + + // Handle missing 'name' parameter with a 400 Bad Request response if (!name) { return res.status(400).send('Bad request.'); } else { + // Obtain the domain from the app settings const domain = req.app.get('domain'); - // const username = name; + + // Append the user profile URL path to the domain name = `https://${domain}/u/${name}`; + // Check if the provided 'name' matches the stored user profile ID if (name !== req.app.get('account').actor.id) { + // Respond with a 404 Not Found if no record is found for the provided 'name' return res.status(404).send(`No record found for ${name}.`); } else { + // Check the 'Accept' header for JSON-LD format and respond accordingly if (req.headers.accept?.includes('application/ld+json')) { + // Respond with the user profile in JSON-LD format res.json(req.app.get('account').actor); } else { + // Redirect to the user profile URL or the default domain res.redirect(req.app.get('account').actor.url || `https://${domain}/`); } } } }); -router.get('/:name/followers', function (req, res) { +/** + * Handle GET requests for the followers of a user profile by name. + * + * @function + * @param {Object} req - Express.js request object. + * @param {Object} res - Express.js response object. + * @returns {void} Responds with a collection of followers or an error message based on the request. + * + * @throws {Error} Responds with a 400 Bad Request if the 'name' parameter is missing. + * @throws {Error} Responds with a 404 Not Found if no record is found for the provided 'name'. + * + * @example + * // Example route: + * // GET /profiles/:name/followers + * router.get('/:name/followers', function (req, res) { + * // ... (route handler implementation) + * }); + */ +router.get('/:name/followers', (req, res) => { + // Extract the 'name' parameter from the request let name = req.params.name; + + // Handle missing 'name' parameter with a 400 Bad Request response if (!name) { return res.status(400).send('Bad request.'); } else { + + // Obtain the domain from the app settings const domain = req.app.get('domain'); + // Append the user profile URL path to the domain name = `https://${domain}/u/${name}`; + // Check if the provided 'name' matches the stored user profile ID if (name !== req.app.get('account').actor.id) { + // Respond with a 404 Not Found if no record is found for the provided 'name' return res.status(404).send(`No record found for ${name}.`); } else { + // Retrieve followers for the user profile const followers = getFollowers(); + + // Assemble the followers collection in ActivityStreams format const followersCollection = { type: 'OrderedCollection', totalItems: followers.length, @@ -49,6 +122,7 @@ router.get('/:name/followers', function (req, res) { }, '@context': ['https://www.w3.org/ns/activitystreams'] }; + // Respond with the followers collection in JSON format res.json(followersCollection); } } diff --git a/routes/index.js b/routes/index.js index 08a7cf8..912f2ed 100644 --- a/routes/index.js +++ b/routes/index.js @@ -1,4 +1,4 @@ -export { router as account } from './account.js'; +export { router as UserProfileRouter } from './account.js'; export { router as webfinger } from './webfinger.js'; export { router as inbox } from './inbox.js'; export { router as outbox } from './outbox.js'; From 206e1dc52bbcd392aedc0a1402873bc36fdde876 Mon Sep 17 00:00:00 2001 From: Aditya Mandke <40426312+ekdnam@users.noreply.github.com> Date: Sat, 18 Nov 2023 01:14:36 -0800 Subject: [PATCH 021/100] add jsdocs to webfiger.js --- index.js | 4 ++-- routes/index.js | 2 +- routes/webfinger.js | 30 ++++++++++++++++++++++++++++++ 3 files changed, 33 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index c7dd1df..84f3757 100644 --- a/index.js +++ b/index.js @@ -32,7 +32,7 @@ import { ensureAccount } from './lib/account.js'; import { UserProfileRouter, - webfinger, + WebfingerRouter, inbox, outbox, admin, @@ -318,7 +318,7 @@ ensureAccount(USERNAME, DOMAIN).then(myaccount => { app.set('account', myaccount); // serve webfinger response - app.use('/.well-known/webfinger', cors(), webfinger); + app.use('/.well-known/webfinger', cors(), WebfingerRouter); // server user profile and follower list app.use('/u', cors(), UserProfileRouter); diff --git a/routes/index.js b/routes/index.js index 912f2ed..69a42f1 100644 --- a/routes/index.js +++ b/routes/index.js @@ -1,5 +1,5 @@ export { router as UserProfileRouter } from './account.js'; -export { router as webfinger } from './webfinger.js'; +export { router as WebfingerRouter } from './webfinger.js'; export { router as inbox } from './inbox.js'; export { router as outbox } from './outbox.js'; export { router as admin } from './admin.js'; diff --git a/routes/webfinger.js b/routes/webfinger.js index 201b8fa..8741d74 100644 --- a/routes/webfinger.js +++ b/routes/webfinger.js @@ -1,8 +1,35 @@ import express from 'express'; + +/** + * Express.js router for handling webfinger-related routes. + * + * @typedef {Object} WebfingerRouter + * @property {Function} getResource - Route handler for retrieving a webfinger resource. + * + * @example + * // Example usage: + * import { router as webfingerRouter } from './webfingerRouter'; + * app.use('/webfinger', webfingerRouter); + */ export const router = express.Router(); +/** + * Route handler for retrieving a webfinger resource. + * + * @function + * @param {Object} req - Express.js request object. + * @param {Object} res - Express.js response object. + * @returns {void} Responds with a webfinger resource or an error message based on the request. + * + * @throws {Error} Responds with a 400 Bad Request if the 'resource' query parameter is missing or incorrectly formatted. + * @throws {Error} Responds with a 404 Not Found if no record is found for the provided 'resource'. + * + */ router.get('/', function (req, res) { + // Extract the 'resource' query parameter from the request const resource = req.query.resource; + + // Check if the 'resource' parameter is missing or incorrectly formatted if (!resource || !resource.includes('acct:')) { return res .status(400) @@ -10,9 +37,12 @@ router.get('/', function (req, res) { 'Bad request. Please make sure "acct:USER@DOMAIN" is what you are sending as the "resource" query parameter.' ); } else { + // Check if the provided 'resource' matches the stored webfinger subject if (resource === req.app.get('account').webfinger.subject) { + // Respond with the webfinger resource in JSON format res.json(req.app.get('account').webfinger); } else { + // Respond with a 404 Not Found if no record is found for the provided 'resource' return res.status(404).send(`No record found for ${resource}.`); } } From 0ba959e215157cf0dc23b8cd59a2f2afff5f1fd4 Mon Sep 17 00:00:00 2001 From: Aditya Mandke <40426312+ekdnam@users.noreply.github.com> Date: Sat, 18 Nov 2023 01:41:56 -0800 Subject: [PATCH 022/100] camel case --- index.js | 33 +++++++++---------------- routes/inbox.js | 46 ++++++++++++++++++++++++++++++++++- routes/outbox.js | 63 +++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 118 insertions(+), 24 deletions(-) diff --git a/index.js b/index.js index 84f3757..2c8750f 100644 --- a/index.js +++ b/index.js @@ -30,22 +30,13 @@ import moment from 'moment'; import { ActivityPub } from './lib/ActivityPub.js'; import { ensureAccount } from './lib/account.js'; -import { - UserProfileRouter, - WebfingerRouter, - inbox, - outbox, - admin, - notes, - publicFacing -} from './routes/index.js'; - +import { UserProfileRouter, WebfingerRouter, inbox, outbox, admin, notes, publicFacing } from './routes/index.js'; // load process.env from .env file dotenv.config(); const { USERNAME, PASS, DOMAIN, PORT } = process.env; -const env_variables = ['USERNAME', 'PASS', 'DOMAIN']; +const envVariables = ['USERNAME', 'PASS', 'DOMAIN']; const PATH_TO_TEMPLATES = './design'; /** @@ -54,8 +45,8 @@ const PATH_TO_TEMPLATES = './design'; * @param {string[]} env_variables - An array of environment variable names that are required. * @throws {Error} Throws an error and exits the process if any required environment variable is missing. */ -function checkRequiredEnvironmentVariables(env_variables) { - env_variables.forEach((reqd_variable) => { +function checkRequiredEnvironmentVariables(envVariables) { + envVariables.forEach(reqdVariable => { /** * Check if the required environment variable is missing. * If missing, log an error message and exit the process. @@ -64,13 +55,13 @@ function checkRequiredEnvironmentVariables(env_variables) { * // Example usage: * checkRequiredEnvironmentVariables(['PORT', 'DATABASE_URL']); */ - if (!process.env[reqd_variable]) { - console.error(`Missing required environment variable: \`${reqd_variable}\`. Exiting.`); + if (!process.env[reqdVariable]) { + console.error(`Missing required environment variable: \`${reqdVariable}\`. Exiting.`); process.exit(1); } }); } -checkRequiredEnvironmentVariables(env_variables); +checkRequiredEnvironmentVariables(envVariables); const app = express(); /** @@ -184,7 +175,7 @@ const hbs = create({ } }); -const setExpressApp = (app) => { +const setExpressApp = app => { app.set('domain', DOMAIN); app.set('port', process.env.PORT || PORT || 3000); app.set('port-https', process.env.PORT_HTTPS || 8443); @@ -214,11 +205,10 @@ const setExpressApp = (app) => { extended: true }) ); // support encoded bodies -} +}; setExpressApp(app); - /** * Asynchronous basic authorization function for Express.js. * @@ -255,7 +245,7 @@ const asyncAuthorizer = (username, password, callback) => { } else { return callback(null, false); } -} +}; /** * Express.js middleware for basic user authentication using asyncAuthorizer. @@ -294,10 +284,9 @@ const basicUserAuth = basicAuth({ * * @type {boolean} */ - challenge: true, + challenge: true }); - ensureAccount(USERNAME, DOMAIN).then(myaccount => { const authWrapper = (req, res, next) => { if (req.cookies.token) { diff --git a/routes/inbox.js b/routes/inbox.js index 6041d17..39c7b96 100644 --- a/routes/inbox.js +++ b/routes/inbox.js @@ -17,10 +17,47 @@ import { import { createActivity, recordLike, recordUndoLike, recordBoost, getActivity } from '../lib/notes.js'; import debug from 'debug'; import { isIndexed } from '../lib/storage.js'; -export const router = express.Router(); const logger = debug('ono:inbox'); +/** + * Express.js router for handling incoming ActivityPub requests. + * + * @typedef {Object} ActivityPubRouter + * @property {Function} processActivity - Route handler for processing incoming ActivityPub requests. + * + * @example + * // Example usage: + * import { router as activityPubRouter } from './activityPubRouter'; + * app.use('/activitypub', activityPubRouter); + */ +export const router = express.Router(); + +/** + * Route handler for processing incoming ActivityPub requests. + * + * @function + * @async + * @param {Object} req - Express.js request object. + * @param {Object} res - Express.js response object. + * @returns {Promise} Resolves with a success response or rejects with an error response. + * + * @throws {Error} Responds with a 403 Forbidden if the actor is blocked. + * @throws {Error} Responds with a 403 Forbidden if the signature validation fails. + * + * @example + * // Example route: + * // POST /activitypub + * activityPubRouter.post('/', activityPubHandlers.processActivity); + */ router.post('/', async (req, res) => { + /** + * The incoming ActivityPub request payload. + * + * @type {Object} + * @property {string} type - The type of the incoming request (e.g., 'Create', 'Follow', 'Like'). + * @property {Object} actor - The actor associated with the request. + * @property {Object} object - The object of the request, containing the main content. + */ const incomingRequest = req.body; if (incomingRequest) { @@ -30,6 +67,13 @@ router.post('/', async (req, res) => { logger('New message', JSON.stringify(incomingRequest, null, 2)); logger('Looking up actor', incomingRequest.actor); + + /** + * The user object obtained from fetching the actor of the incoming request. + * + * @type {Object} + * @property {Object} actor - The actor object representing the user. + */ const { actor } = await fetchUser(incomingRequest.actor); // FIRST, validate the actor diff --git a/routes/outbox.js b/routes/outbox.js index e35bc4b..8ed8322 100644 --- a/routes/outbox.js +++ b/routes/outbox.js @@ -2,17 +2,73 @@ import express from 'express'; import dotenv from 'dotenv'; import { getOutboxPosts } from '../lib/account.js'; -export const router = express.Router(); + dotenv.config(); +/** + * Express.js router for handling requests related to the user's outbox. + * + * @typedef {Object} OutboxRouter + * @property {Function} getOutbox - Route handler for retrieving the user's outbox posts. + * + * @example + * // Example usage: + * import { router as outboxRouter } from './outboxRouter'; + * app.use('/outbox', outboxRouter); + */ +export const router = express.Router(); + // const { // DOMAIN // } = process.env; +/** + * Route handler for retrieving the user's outbox posts. + * + * @function + * @async + * @param {Object} req - Express.js request object. + * @param {Object} res - Express.js response object. + * @returns {Promise} Resolves with the user's outbox collection or rejects with an error response. + * + * @throws {Error} Responds with a 400 Bad Request if the 'offset' query parameter is not a valid number. + * + * @example + * // Example route: + * // GET /outbox + * outboxRouter.get('/', outboxHandlers.getOutbox); + */ router.get('/', async (req, res) => { + /** + * The result object containing the total number of posts and an array of outbox posts. + * + * @type {Object} + * @property {number} total - The total number of outbox posts. + * @property {Array} posts - An array of outbox posts. + */ const { total, posts } = await getOutboxPosts(req.query.offset || 0); + + /** + * The URL of the user's outbox. + * + * @type {string} + */ const outboxUrl = req.app.get('account').actor.outbox; + /** + * The representation of the outbox collection to be sent in the response. + * + * @type {Object} + * @property {string} type - The type of the collection ('OrderedCollection' or 'OrderedCollectionPage'). + * @property {number} totalItems - The total number of items in the collection. + * @property {string} id - The unique identifier for the collection. + * @property {string} [first] - The URL of the first page of the collection. + * @property {string} [partOf] - The URL of the main collection that this page is part of. + * @property {string} [next] - The URL of the next page of the collection. + * @property {string} [prev] - The URL of the previous page of the collection. + * @property {Array} [orderedItems] - An array of ordered items in the collection. + * @property {Array} ['@context'] - The context of the collection. + */ const collection = { type: 'OrderedCollection', totalItems: total, @@ -20,9 +76,11 @@ router.get('/', async (req, res) => { '@context': ['https://www.w3.org/ns/activitystreams'] }; + // Check if the 'offset' query parameter is a valid number if (isNaN(req.query.offset)) { collection.first = `${outboxUrl}?offset=0`; } else { + // Adjust collection properties for paginated results const offset = parseInt(req.query.offset); collection.type = 'OrderedCollectionPage'; collection.id = `${outboxUrl}?offset=${offset}`; @@ -34,6 +92,8 @@ router.get('/', async (req, res) => { } else { collection.first = `${outboxUrl}?offset=0`; } + + // Transform each post into an ordered item in the collection collection.orderedItems = posts; collection.orderedItems = collection.orderedItems.map(activity => { return { @@ -48,5 +108,6 @@ router.get('/', async (req, res) => { }); } + // Send the outbox collection in the response res.json(collection); }); From 7469933d51a2fe6018147dd9891fccbe1a92bb5d Mon Sep 17 00:00:00 2001 From: Tigojiang Date: Wed, 22 Nov 2023 21:57:22 -0800 Subject: [PATCH 023/100] add comments and refactor --- routes/admin.js | 53 ++++++++++++++++++++++++++++++++++++++++++++++++ routes/inbox.js | 12 +++++------ routes/notes.js | 4 ++++ routes/public.js | 10 +++++++++ 4 files changed, 73 insertions(+), 6 deletions(-) diff --git a/routes/admin.js b/routes/admin.js index b1f3e71..856c413 100644 --- a/routes/admin.js +++ b/routes/admin.js @@ -26,6 +26,9 @@ import { queue } from '../lib/queue.js'; export const router = express.Router(); const logger = debug('ono:admin'); +/** + * Return the INDEX in form of JSON + */ router.get('/index', async (req, res) => { res.json(INDEX); }); @@ -39,6 +42,10 @@ router.get('/index', async (req, res) => { |_____/_/ \_\_____/|_| |_|____/ \____/_/ \_\_| \_\_____/ */ + /** + * Render the dashboard console in the html + * display the feeds + */ router.get('/', async (req, res) => { const offset = parseInt(req.query.offset) || 0; const pageSize = 20; @@ -75,6 +82,10 @@ router.get('/', async (req, res) => { |_| \_|\____/ |_| |_____|_| |_____\_____/_/ \_\_| |_____\____/|_| \_|_____/ */ + + /** + * Render the notifications by fetching the notification API + */ router.get('/notifications', async (req, res) => { const likes = await getLikes(); const offset = parseInt(req.query.offset) || 0; @@ -141,6 +152,9 @@ router.get('/notifications', async (req, res) => { }); }); +/** + * Load the feeds in the activity stream + */ router.get('/feeds/:handle?', async (req, res) => { const offset = parseInt(req.query.offset) || 0; const pageSize = 20; @@ -218,6 +232,9 @@ router.get('/feeds/:handle?', async (req, res) => { }); }); +/** + * Load the inboxes + */ router.get('/dms/:handle?', async (req, res) => { const inboxIndex = getInboxIndex(); let error, inbox, recipient, lastIncoming; @@ -284,6 +301,9 @@ router.get('/dms/:handle?', async (req, res) => { }); }); +/** + * Load the post using the GET method + */ router.get('/post', async (req, res) => { const to = req.query.to; const inReplyTo = req.query.inReplyTo; @@ -315,6 +335,9 @@ router.get('/post', async (req, res) => { }); }); +/** + * Update and create the post using the POST method + */ router.post('/post', async (req, res) => { // TODO: this is probably supposed to be a post to /api/outbox const post = await createNote(req.body.post, req.body.cw, req.body.inReplyTo, req.body.to, req.body.editOf); @@ -336,6 +359,9 @@ router.post('/post', async (req, res) => { } }); +/** + * Poll the new notifications, inboxes, activities. + */ router.get('/poll', async (req, res) => { const sincePosts = new Date(req.cookies.latestPost).getTime(); const sinceNotifications = parseInt(req.cookies.latestNotification); @@ -354,6 +380,9 @@ router.get('/poll', async (req, res) => { }); }); +/** + * Render the followers in the page + */ router.get('/followers', async (req, res) => { let following = await Promise.all( getFollowing().map(async f => { @@ -398,6 +427,9 @@ router.get('/followers', async (req, res) => { } }); +/** + * Render the following in the page + */ router.get('/following', async (req, res) => { let following = await Promise.all( getFollowing().map(async f => { @@ -449,6 +481,9 @@ router.get('/following', async (req, res) => { | | | | \ \| |____| | ____) | |_| |_| \_\______|_| |_____/ + */ +/** + * Render the preferewnce page with the preference using GET */ router.get('/prefs', (req, res) => { const following = getFollowing(); @@ -469,6 +504,9 @@ router.get('/prefs', (req, res) => { }); }); +/** + * Update the preference using POST + */ router.post('/prefs', (req, res) => { // lget current prefs. const prefs = getPrefs(); @@ -528,6 +566,9 @@ const getFeedList = async (offset = 0, num = 20) => { return feeds.slice(offset, offset + num); }; +/** + * Find the user given the user information and display the result + */ router.get('/find', async (req, res) => { let results = []; @@ -559,6 +600,9 @@ router.get('/find', async (req, res) => { }); }); +/** + * Render more feeds based on different indexes + */ router.get('/morefeeds', async (req, res) => { const feeds = await getFeedList(20, 100); @@ -569,6 +613,9 @@ router.get('/morefeeds', async (req, res) => { }); }); +/** + * Look up the user based on the user information + */ router.get('/lookup', async (req, res) => { const { actor } = await fetchUser(req.query.handle); if (actor) { @@ -582,6 +629,9 @@ router.get('/lookup', async (req, res) => { } }); +/** + * Follow a user given the user information using POST + */ router.post('/follow', async (req, res) => { const handle = req.body.handle; if (handle) { @@ -622,6 +672,9 @@ router.post('/follow', async (req, res) => { res.status(404).send('not found'); }); +/** + * Like the post given the activity ID using POST + */ router.post('/like', async (req, res) => { const activityId = req.body.post; let likes = getLikes(); diff --git a/routes/inbox.js b/routes/inbox.js index 39c7b96..2353726 100644 --- a/routes/inbox.js +++ b/routes/inbox.js @@ -139,7 +139,7 @@ router.post('/', async (req, res) => { // log the boost itself to the activity stream try { - await createActivity(incomingRequest); + createActivity(incomingRequest); } catch (err) { console.error('Could not fetch boosted post...'); } @@ -160,7 +160,7 @@ router.post('/', async (req, res) => { } else if (isReplyToMyPost(incomingRequest.object)) { // TODO: What about replies to replies? should we traverse up a bit? if (!isIndexed(incomingRequest.object.id)) { - await createActivity(incomingRequest.object); + createActivity(incomingRequest.object); addNotification({ type: 'Reply', actor: incomingRequest.object.attributedTo, @@ -171,7 +171,7 @@ router.post('/', async (req, res) => { } } else if (isMention(incomingRequest.object)) { if (!isIndexed(incomingRequest.object.id)) { - await createActivity(incomingRequest.object); + createActivity(incomingRequest.object); addNotification({ type: 'Mention', actor: incomingRequest.object.attributedTo, @@ -182,7 +182,7 @@ router.post('/', async (req, res) => { } } else if (!incomingRequest.object.inReplyTo) { // this is a NEW post - most likely from a follower - await createActivity(incomingRequest.object); + createActivity(incomingRequest.object); } else { // this is a reply // from a following @@ -191,12 +191,12 @@ router.post('/', async (req, res) => { // TODO: we may want to discard things NOT from followings // since they may never be seen // and we can always go fetch them... - await createActivity(incomingRequest.object); + createActivity(incomingRequest.object); } break; case 'Update': - await createActivity(incomingRequest.object); + createActivity(incomingRequest.object); break; default: logger('Unknown request type:', incomingRequest.type); diff --git a/routes/notes.js b/routes/notes.js index 5095a96..46040d7 100644 --- a/routes/notes.js +++ b/routes/notes.js @@ -6,6 +6,10 @@ dotenv.config(); const { DOMAIN } = process.env; +/** + * fetch the notes based on valid guid parameters + * either return the json response or to the url + */ router.get('/:guid', async (req, res) => { const guid = req.params.guid; if (!guid) { diff --git a/routes/public.js b/routes/public.js index 556c509..c18d538 100644 --- a/routes/public.js +++ b/routes/public.js @@ -21,6 +21,10 @@ const { USERNAME, DOMAIN } = process.env; const logger = debug('notes'); +/** + * publish the post to go up the stream + * check all the posts below and above the threads + */ const unrollThread = async (noteId, results = [], ascend = true, descend = true) => { let post, actor; let stats; @@ -86,6 +90,9 @@ const unrollThread = async (noteId, results = [], ascend = true, descend = true) return results; }; +/** + * Renders the home page with the outbox posts fetched through the api + */ router.get('/', async (req, res) => { const offset = parseInt(req.query.offset) || 0; const { @@ -118,6 +125,9 @@ router.get('/', async (req, res) => { }); }); +/** + * Fetch the feed for the user and display it in the html + */ router.get('/feed', async (req, res) => { const { // total, From e766ff5c252ae7c1591fce3a379fb7ad532e4b7d Mon Sep 17 00:00:00 2001 From: Justin Nguyen Date: Sat, 25 Nov 2023 23:41:59 -0800 Subject: [PATCH 024/100] add more tests for account --- lib/__tests__/account.jest.js | 14 ++++++++++++++ lib/__tests__/files/inboxIndex.json | 3 +++ 2 files changed, 17 insertions(+) create mode 100644 lib/__tests__/files/inboxIndex.json diff --git a/lib/__tests__/account.jest.js b/lib/__tests__/account.jest.js index a64380e..5d5a143 100644 --- a/lib/__tests__/account.jest.js +++ b/lib/__tests__/account.jest.js @@ -1,4 +1,5 @@ const { isMyPost } = require('../account'); +import { readJSONDictionary } from '../storage'; import 'node-fetch'; @@ -22,3 +23,16 @@ describe('Tests for isMyPost', () => { expect(isMyPost(activity)).toBe(false); }); }); + +describe('Tests for getInboxIndex', () => { + const getInboxIndex = () => { + const inboxIndexPath = 'lib/__tests__/files/inboxIndex.json'; + const inboxIndex = readJSONDictionary(inboxIndexPath, {}); + return inboxIndex; + }; + + test('Check successful', () => { + const expectedInboxIndex = { id: 'inboxIndex' }; + expect(getInboxIndex()).toStrictEqual(expectedInboxIndex); + }); +}); diff --git a/lib/__tests__/files/inboxIndex.json b/lib/__tests__/files/inboxIndex.json new file mode 100644 index 0000000..012f7a6 --- /dev/null +++ b/lib/__tests__/files/inboxIndex.json @@ -0,0 +1,3 @@ +{ + "id": "inboxIndex" +} \ No newline at end of file From 58577ccdc8ded168a315f270366e93b631e9d15b Mon Sep 17 00:00:00 2001 From: smruthig <75429779+smruthig@users.noreply.github.com> Date: Sun, 26 Nov 2023 12:40:52 -0800 Subject: [PATCH 025/100] Code standardization (#24) --- lib/Markdown.js | 31 ++++++++++++++++++++++++++----- lib/notes.js | 45 ++++++++++++++++++++++++++++++++++++++++++++- lib/prefs.js | 10 ++++++---- lib/queue.js | 5 +++-- lib/users.js | 21 ++++++++++++++++++--- 5 files changed, 97 insertions(+), 15 deletions(-) diff --git a/lib/Markdown.js b/lib/Markdown.js index 1a8876e..bf500d3 100644 --- a/lib/Markdown.js +++ b/lib/Markdown.js @@ -1,6 +1,6 @@ /* This module contains the markdown renderer used to format posts - By default, urls will be linkified with nofollow noopener and noreferrer attributes + By default, urls will be linkifies with nofollow, noopener, and noreferrer attributes Override those attributes by setting LINK_ATTRIBUTES in the .env file Usage: @@ -10,6 +10,7 @@ const html = md.render(markdown); import dotenv from 'dotenv'; import MarkdownIt from 'markdown-it'; + dotenv.config(); const md = new MarkdownIt({ @@ -19,10 +20,30 @@ const md = new MarkdownIt({ const LINK_ATTRIBUTES = process.env.LINK_ATTRIBUTES || 'nofollow noopener noreferrer'; -// customize the link formatter to include noopener noreferrer links -// this prevents browsers from telling downstream pages about where the links came from -// and protects the privacy of our users. -// code from: https://publishing-project.rivendellweb.net/customizing-markdown-it/ +/** + * The above function modifies the rendering of link tags in Markdown by adding a "rel" attribute with + * the value of LINK_ATTRIBUTES. + * @param tokens - The `tokens` parameter is an array of token objects. Each token object represents a + * part of the Markdown document, such as a paragraph, heading, link, etc. The `tokens` array is passed + * to the renderer function to generate the corresponding HTML output. + * @param idx - The `idx` parameter in the code refers to the index of the current token being rendered + * in the array of tokens. + * @param options - The `options` parameter is an object that contains various options and + * configurations for the Markdown renderer. It can include settings such as the rendering mode, the + * HTML tag names to use for different elements, and other customization options. + * @param env - The `env` parameter in the code snippet refers to the environment object. It is an + * optional parameter that can be used to pass additional information or configuration to the rendering + * rules. It can be used to store and access data that needs to be shared between different rendering + * rules. + * @param self - The `self` parameter refers to the Markdown-it instance. It is used to access the + * `renderToken` method and the `renderer` object, which contains the rules for rendering Markdown + * tokens. + * + * customize the link formatter to include noopener noreferrer links + * this prevents browsers from telling downstream pages about where the links came from + * and protects the privacy of our users. + * code from: https://publishing-project.rivendellweb.net/customizing-markdown-it/ + */ const proxy = (tokens, idx, options, env, self) => self.renderToken(tokens, idx, options); const defaultLinkOpenRenderer = md.renderer.rules.link_open || proxy; md.renderer.rules.link_open = function (tokens, idx, options, env, self) { diff --git a/lib/notes.js b/lib/notes.js index af733f3..ebcfefd 100644 --- a/lib/notes.js +++ b/lib/notes.js @@ -18,6 +18,12 @@ import { ActivityPub } from './ActivityPub.js'; const logger = debug('ono:notes'); +/** + * The function `getLikesForNote` retrieves the likes and boosts for a given note ID from a JSON + * dictionary. + * @returns The function `getLikesForNote` is returning the result of calling the `readJSONDictionary` + * function with the `fileName` and an object containing `likes` and `boosts` properties. + */ export const getLikesForNote = id => { const fileName = getLikesFileName(id); return readJSONDictionary(fileName, { @@ -26,10 +32,18 @@ export const getLikesForNote = id => { }); }; +/** + * The function `getReplyCountForNote` returns the number of replies for a given note ID. + * @returns The number of replies for a given note ID. + */ export const getReplyCountForNote = id => { return INDEX.filter(i => i.inReplyTo === id).length; }; +/** + * The function records a like for a note and adds the actor to the list of likes if they haven't + * already liked the note. + */ export const recordLike = request => { const actor = request.actor; const noteId = request.object; @@ -45,6 +59,10 @@ export const recordLike = request => { } }; +/** + * The function `recordBoost` records a boost for a note and adds the actor to the list of boosts if + * they haven't already boosted the note. + */ export const recordBoost = request => { const actor = request.actor; const noteId = request.object; @@ -60,11 +78,15 @@ export const recordBoost = request => { } }; +/** + * The function `recordUndoLike` removes the actor's like from the likes list for a given note and + * updates the likes file. + */ export const recordUndoLike = request => { const actor = request.actor; const noteId = request.object; - logger('INCOMING LIKE FOR', noteId); + logger('INCOMING UNLIKE FOR', noteId); const likes = getLikesForNote(noteId); likes.likes = likes.likes.filter(a => a !== actor); @@ -72,6 +94,13 @@ export const recordUndoLike = request => { writeJSONDictionary(fileName, likes); }; +/** + * The `deleteActivity` function deletes an activity and its associated notifications from the system. + * @param id - The `id` parameter represents the unique identifier of the activity that needs to be + * deleted. It is used to locate the corresponding note file and delete it. + * @param tombstone - The `tombstone` parameter is not used in the code snippet provided. It is + * mentioned in a comment, but there is no code that utilizes it. + */ export const deleteActivity = (id, tombstone) => { const noteFile = getFileName(id); if (fs.existsSync(noteFile)) { @@ -93,6 +122,10 @@ export const deleteActivity = (id, tombstone) => { } }; +/** + * The `createActivity` function creates a new activity by writing a note to a file and adding it to an + * index if the file does not already exist. + */ export const createActivity = note => { const noteFile = createFileName(note); if (!fs.existsSync(noteFile)) { @@ -101,6 +134,12 @@ export const createActivity = note => { writeJSONDictionary(noteFile, note); }; +/** + * The function `getActivity` retrieves activity data either from a cache or by fetching it from a + * remote source, handling potential errors along the way. + * @returns The function `getActivity` returns a Promise that resolves to the result of either + * `readJSONDictionary(noteFile, {})` or `fetchActivity(id)`. + */ export const getActivity = async id => { try { if (isBlocked(id)) { @@ -125,6 +164,10 @@ export const getActivity = async id => { } }; +/** + * The function fetches an activity using its ID and handles any errors that occur during the process. + * @returns The `fetchActivity` function returns the `activity` object if the fetch is successful. + */ const fetchActivity = async activityId => { logger('FETCH ', activityId); try { diff --git a/lib/prefs.js b/lib/prefs.js index 117f684..4ae356b 100644 --- a/lib/prefs.js +++ b/lib/prefs.js @@ -1,15 +1,17 @@ +/* The code is defining a constant variable named `DEFAULT_SETTINGS` that is exported from the module. +It is an object with two properties: `strings` and `icons`. */ export const DEFAULT_SETTINGS = { strings: { post: 'Compose' }, icons: { mascot: '🚀', - latest: '🤘🏼', - notifications: '🍑', + latest: '🆕', + notifications: '🔔', prefs: '⚙️', messages: '💬', - post: '🆕', - myPosts: '🐐', + post: '✉️', + myPosts: '📝', faveInactive: '☆', faveActive: '⭐️', boostInactive: '🔁', diff --git a/lib/queue.js b/lib/queue.js index 82fa237..8f8ee77 100644 --- a/lib/queue.js +++ b/lib/queue.js @@ -10,8 +10,6 @@ const logger = debug('ono:queue'); export const queue = new Queue({ concurrent: 4, interval: 250 - // concurrent: 1, - // interval: 2000 }); queue.on('start', () => logger('QUEUE STARTING')); @@ -19,6 +17,9 @@ queue.on('stop', () => logger('QUEUE STOPPING')); queue.on('end', () => logger('QUEUE ENDING')); queue.on('dequeue', () => logger('DEQUEUING!', queue.size)); +/* The code block you provided is setting up event listeners for the `resolve` and `reject` events of +the `queue` object, and then starting a loop that continuously dequeues items from the queue until +`queue.shouldRun` is false. */ queue.on('resolve', data => { if (data.url) { logger(`SEND STATUS ${data.status} ${data.statusText} FOR ${data.url} `); diff --git a/lib/users.js b/lib/users.js index f40ffce..d6088d7 100644 --- a/lib/users.js +++ b/lib/users.js @@ -1,11 +1,23 @@ import path from 'path'; import fs from 'fs'; import debug from 'debug'; - import { readJSONDictionary, writeJSONDictionary, pathToUsers } from './storage.js'; import { ActivityPub } from './ActivityPub.js'; + const logger = debug('ono:users'); +/** + * The function `fetchUserFromSource` fetches user information from a given webId or username using the + * ActivityPub protocol. + * @param username - The `username` parameter is the username of the user you want to fetch from the + * source. It is used to identify the user and retrieve their information. + * @param webId - The `webId` parameter is a string that represents the unique identifier of a user on + * the web. It is used to fetch the actor information of the user from an ActivityPub server. If the + * `webId` parameter is not provided, the function will attempt to fetch the actor information using + * the + * @returns The function `fetchUserFromSource` returns an object with the properties `webfinger`, + * `actor`, and `lastFetched`. + */ const fetchUserFromSource = async (username, webId) => { let webfinger; @@ -13,7 +25,6 @@ const fetchUserFromSource = async (username, webId) => { try { webfinger = await ActivityPub.webfinger(username); } catch (err) { - // console.error(err); // servers receive lots of spam Deletes return { actor: { name: username, @@ -31,7 +42,6 @@ const fetchUserFromSource = async (username, webId) => { try { actor = await ActivityPub.fetchActor(self); } catch (err) { - // console.error(err); return { actor: { name: username, @@ -59,6 +69,11 @@ const fetchUserFromSource = async (username, webId) => { }; }; +/** + * The `fetchUser` function fetches user information either from a cache or from a source, with an + * option to skip fingerprinting if the user is already an ActivityPub URL. + * @returns The function `fetchUser` returns a Promise that resolves to the user account information. + */ export const fetchUser = async user => { let skipFinger = false; const now = new Date().getTime(); From b92124420cb082ad077e347e7bface2212bd71d8 Mon Sep 17 00:00:00 2001 From: Justin Nguyen Date: Mon, 27 Nov 2023 23:50:46 -0800 Subject: [PATCH 026/100] add more tests for account --- lib/__tests__/account.jest.js | 19 +++++++++++++++++-- lib/__tests__/files/writeInboxIndex.json | 3 +++ 2 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 lib/__tests__/files/writeInboxIndex.json diff --git a/lib/__tests__/account.jest.js b/lib/__tests__/account.jest.js index 5d5a143..6170294 100644 --- a/lib/__tests__/account.jest.js +++ b/lib/__tests__/account.jest.js @@ -1,5 +1,6 @@ -const { isMyPost } = require('../account'); -import { readJSONDictionary } from '../storage'; +import { isMyPost } from '../account'; +import { readJSONDictionary, writeJSONDictionary } from '../storage'; +import fs from 'fs'; import 'node-fetch'; @@ -36,3 +37,17 @@ describe('Tests for getInboxIndex', () => { expect(getInboxIndex()).toStrictEqual(expectedInboxIndex); }); }); + +describe('Tests for writeInboxIndex', () => { + const inboxIndexPath = 'lib/__tests__/files/writeInboxIndex.json'; + const writeInboxIndex = data => { + writeJSONDictionary(inboxIndexPath, data); + }; + + test('Check successful', () => { + const expectedInboxIndex = { id: 'inboxIndex' }; + writeInboxIndex(expectedInboxIndex); + const jsonRaw = fs.readFileSync(inboxIndexPath); + expect(JSON.parse(jsonRaw)).toStrictEqual(expectedInboxIndex); + }); +}); diff --git a/lib/__tests__/files/writeInboxIndex.json b/lib/__tests__/files/writeInboxIndex.json new file mode 100644 index 0000000..012f7a6 --- /dev/null +++ b/lib/__tests__/files/writeInboxIndex.json @@ -0,0 +1,3 @@ +{ + "id": "inboxIndex" +} \ No newline at end of file From 6e875278ae63c4ff52334c6728b36f3df06f02ec Mon Sep 17 00:00:00 2001 From: Aditya Mandke <40426312+ekdnam@users.noreply.github.com> Date: Tue, 28 Nov 2023 00:38:34 -0800 Subject: [PATCH 027/100] Delete public/.DS_Store --- public/.DS_Store | Bin 6148 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 public/.DS_Store diff --git a/public/.DS_Store b/public/.DS_Store deleted file mode 100644 index 68c73466bd77560b3e7bc5a1e23e0c17f35e6525..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKF^|(Q6n?&z;&4Lh0Mac;mRQSO%bgAo1EG`wu@MBrfqF?(^#Vy8H7y;gN}1sY zFtRbQAThztZ{P>;JCNW#+XwaajuBPJFM9rLzxSNy&x#!b0P9ZU4nPwCI4WWN0v4wT z*-2Mq!}MH4WNM5TP(DcIAWCJl;_W&d1CD`pV}QQh282-Hvkmt5OPj)7)a{>2RO&St zKxuvDHlXm+X+o;vgHO_O+H~I76NX~*uIGL8+aC|_m z$5N)zaXpNlB*R(1dFh_aCt;Eg$0{I+hv@R`X_Cis)|JydE>&!x4czm*esgO+-@U%y z5}o#qMN7r0<>44` z46F?Uv_A+`Lf>GeQEeSqs4D}K zf?gM=WX{%=$ Date: Wed, 29 Nov 2023 17:49:53 -0800 Subject: [PATCH 028/100] fix pref display bug and add default image --- design/prefs.handlebars | 3 ++- lib/account.js | 7 +++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/design/prefs.handlebars b/design/prefs.handlebars index f6a1914..441e52f 100644 --- a/design/prefs.handlebars +++ b/design/prefs.handlebars @@ -117,7 +117,8 @@ Emoji Buttons {{#each prefs.icons as |icon key|}}
- + {{!-- --}} +
{{/each}} diff --git a/lib/account.js b/lib/account.js index 89541d8..eae7d7c 100644 --- a/lib/account.js +++ b/lib/account.js @@ -261,12 +261,15 @@ export const createActor = (name, domain, pubkey) => { icon: { type: 'Image', mediaType: 'image/png', - url: `https://${domain}/images/avatar.png` + // url: `https://${domain}/images/avatar.png` + // default icon image, later can store locally + url: 'https://www.shutterstock.com/image-vector/user-profile-icon-vector-avatar-600nw-2247726673.jpg' }, image: { type: 'Image', mediaType: 'image/png', - url: `https://${domain}/images/header.png` + // default header image, later can store locally + url: `https://static.vecteezy.com/system/resources/thumbnails/011/125/580/small/torn-light-blue-paper-with-white-copyspace-for-your-message-png.png` }, publicKey: { id: `https://${domain}/u/${name}#main-key`, From 96fe5049182267da485660af8239d8697d03f4ac Mon Sep 17 00:00:00 2001 From: Justin Nguyen Date: Wed, 29 Nov 2023 18:15:20 -0800 Subject: [PATCH 029/100] add more test for account --- lib/__tests__/account.jest.js | 12 ++++++++++++ lib/__tests__/files/account.json | 3 +++ 2 files changed, 15 insertions(+) create mode 100644 lib/__tests__/files/account.json diff --git a/lib/__tests__/account.jest.js b/lib/__tests__/account.jest.js index 6170294..6abaf94 100644 --- a/lib/__tests__/account.jest.js +++ b/lib/__tests__/account.jest.js @@ -51,3 +51,15 @@ describe('Tests for writeInboxIndex', () => { expect(JSON.parse(jsonRaw)).toStrictEqual(expectedInboxIndex); }); }); + +describe('Tests for getAccount', () => { + const accountFile = 'lib/__tests__/files/account.json'; + const getAccount = () => { + return readJSONDictionary(accountFile, {}); + }; + + test('Check successful', () => { + const expectedAccount = { id: 'account' }; + expect(getAccount()).toStrictEqual(expectedAccount); + }); +}); diff --git a/lib/__tests__/files/account.json b/lib/__tests__/files/account.json new file mode 100644 index 0000000..4450133 --- /dev/null +++ b/lib/__tests__/files/account.json @@ -0,0 +1,3 @@ +{ + "id": "account" +} \ No newline at end of file From a0287c21a9ae8e83cce16e5f77d88ccf392d779a Mon Sep 17 00:00:00 2001 From: Tigojiang Date: Wed, 29 Nov 2023 19:26:45 -0800 Subject: [PATCH 030/100] update profile username --- design/prefs.handlebars | 13 ++++++++++++ lib/account.js | 44 +++++++++++++++++++++++++++++++++++++++++ routes/admin.js | 31 +++++++++++++++++++++++------ 3 files changed, 82 insertions(+), 6 deletions(-) diff --git a/design/prefs.handlebars b/design/prefs.handlebars index 441e52f..97f737c 100644 --- a/design/prefs.handlebars +++ b/design/prefs.handlebars @@ -125,4 +125,17 @@ + +
+
+ Account Profile +
+ + +
+ +
+ +
+ diff --git a/lib/account.js b/lib/account.js index eae7d7c..ca1df52 100644 --- a/lib/account.js +++ b/lib/account.js @@ -875,6 +875,50 @@ export const ensureAccount = async (name, domain) => { }); }; +export const updateAccount = async (name, domain) => { + // verify domain name + const re = /^((?:(?:(?:\w[.\-+]?)*)\w)+)((?:(?:(?:\w[.\-+]?){0,62})\w)+)\.(\w{2,6})$/; + if (!domain.match(re)) { + console.error('DOMAIN setting "' + domain + '" does not appear to be a well-formatted domain name.'); + process.exit(1); + } + return new Promise((resolve, reject) => { + // generate a crypto key + crypto.generateKeyPair( + 'rsa', + { + modulusLength: 4096, + publicKeyEncoding: { + type: 'spki', + format: 'pem' + }, + privateKeyEncoding: { + type: 'pkcs8', + format: 'pem' + } + }, + (err, publicKey, privateKey) => { + if (err) { + console.error(err); + reject(err); + } + const actorRecord = createActor(name, domain, publicKey); + const webfingerRecord = createWebfinger(name, domain); + const apikey = crypto.randomBytes(16).toString('hex'); + const account = { + actor: actorRecord, + webfinger: webfingerRecord, + apikey, + publicKey, + privateKey + }; + console.log('Account created! Wrote webfinger and actor record to', accountFile); + writeJSONDictionary(accountFile, account); + resolve(account); + } + ); + }); +}; /** * The function `getAccount` reads a JSON dictionary from a file and returns it, or an empty object if * the file does not exist. diff --git a/routes/admin.js b/routes/admin.js index 856c413..2b4b1f3 100644 --- a/routes/admin.js +++ b/routes/admin.js @@ -17,12 +17,14 @@ import { isFollowing, getInboxIndex, getInbox, - writeInboxIndex + writeInboxIndex, + updateAccount } from '../lib/account.js'; import { fetchUser } from '../lib/users.js'; import { getPrefs, INDEX, searchKnownUsers, updatePrefs } from '../lib/storage.js'; import { ActivityPub } from '../lib/ActivityPub.js'; import { queue } from '../lib/queue.js'; +const { DOMAIN } = process.env; export const router = express.Router(); const logger = debug('ono:admin'); @@ -42,10 +44,10 @@ router.get('/index', async (req, res) => { |_____/_/ \_\_____/|_| |_|____/ \____/_/ \_\_| \_\_____/ */ - /** - * Render the dashboard console in the html - * display the feeds - */ +/** + * Render the dashboard console in the html + * display the feeds + */ router.get('/', async (req, res) => { const offset = parseInt(req.query.offset) || 0; const pageSize = 20; @@ -83,7 +85,7 @@ router.get('/', async (req, res) => { */ - /** +/** * Render the notifications by fetching the notification API */ router.get('/notifications', async (req, res) => { @@ -527,6 +529,23 @@ router.post('/prefs', (req, res) => { updatePrefs(prefs); }); +/** + * Update the username preference using POST + */ +router.post('/prefsAccount', (req, res) => { + // lget current prefs. + const updates = req.body; + console.log('me ', ActivityPub.actor.name); + console.log('GOT ACCOUNT UPDATES', updates); + updateAccount(updates.username, DOMAIN).then(myaccount => { + // set the server to use the main account as its primary actor + ActivityPub.account = myaccount; + // app.set('account', myaccount); + }); + + res.redirect('/private'); +}); + const getFeedList = async (offset = 0, num = 20) => { const following = await getFollowing(); From bfe522df941249cc75cc90028d31567f1cf22f83 Mon Sep 17 00:00:00 2001 From: Enze Ma <38894303+sora1998@users.noreply.github.com> Date: Wed, 29 Nov 2023 20:18:53 -0800 Subject: [PATCH 031/100] update (#28) * refactor: added JS Docs * add jsdocs * add basicauth object * refactor account.js * add jsdocs to webfiger.js * camel case * add comments and refactor * add more tests for account * Code standardization (#24) * add more tests for account * Delete public/.DS_Store * fix pref display bug and add default image * add more test for account * update profile username --------- Co-authored-by: Wang Dingkun Co-authored-by: Ever Wong <55682512+Melody-Creator@users.noreply.github.com> Co-authored-by: Aditya Mandke <40426312+ekdnam@users.noreply.github.com> Co-authored-by: Tigojiang Co-authored-by: Justin Nguyen Co-authored-by: Justin Nguyen <52771821+justinnguyen0@users.noreply.github.com> Co-authored-by: smruthig <75429779+smruthig@users.noreply.github.com> --- design/prefs.handlebars | 16 +- index.js | 292 ++++++++++++++++++----- lib/ActivityPub.js | 49 +++- lib/Markdown.js | 31 ++- lib/__tests__/account.jest.js | 43 +++- lib/__tests__/files/account.json | 3 + lib/__tests__/files/inboxIndex.json | 3 + lib/__tests__/files/writeInboxIndex.json | 3 + lib/account.js | 51 +++- lib/notes.js | 45 +++- lib/prefs.js | 10 +- lib/queue.js | 5 +- lib/storage.js | 111 ++++++++- lib/users.js | 21 +- public/.DS_Store | Bin 6148 -> 0 bytes routes/account.js | 80 ++++++- routes/admin.js | 74 +++++- routes/inbox.js | 58 ++++- routes/index.js | 4 +- routes/notes.js | 4 + routes/outbox.js | 63 ++++- routes/public.js | 10 + routes/webfinger.js | 30 +++ 23 files changed, 907 insertions(+), 99 deletions(-) create mode 100644 lib/__tests__/files/account.json create mode 100644 lib/__tests__/files/inboxIndex.json create mode 100644 lib/__tests__/files/writeInboxIndex.json delete mode 100644 public/.DS_Store diff --git a/design/prefs.handlebars b/design/prefs.handlebars index f6a1914..97f737c 100644 --- a/design/prefs.handlebars +++ b/design/prefs.handlebars @@ -117,11 +117,25 @@ Emoji Buttons {{#each prefs.icons as |icon key|}}
- + {{!-- --}} +
{{/each}} + +
+
+ Account Profile +
+ + +
+ +
+ +
+ diff --git a/index.js b/index.js index 86a9311..2c8750f 100644 --- a/index.js +++ b/index.js @@ -1,52 +1,172 @@ -import express from 'express'; -import { create } from 'express-handlebars'; +// index.js is the start point for our project + +// middleware to parse request bodies in different formats (e.g., JSON) +import bodyParser from 'body-parser'; + +// middleware to parse cookies in incoming requests import cookieParser from 'cookie-parser'; +// Cross-Origin Resource Sharing (CORS) middleware for enabling cross-origin requests +import cors from 'cors'; + +// the dotenv module for loading environment variables from a .env file import dotenv from 'dotenv'; -import bodyParser from 'body-parser'; -import cors from 'cors'; -import http from 'http'; +// the Express.js framework for building web applications +import express from 'express'; + +// middleware for implementing basic authentication in Express import basicAuth from 'express-basic-auth'; + +// the Handlebars view engine for rendering dynamic HTML content +import { create } from 'express-handlebars'; + +// the built-in Node.js HTTP module for creating an HTTP server +import http from 'http'; + +// the Moment.js library for handling dates and times import moment from 'moment'; + import { ActivityPub } from './lib/ActivityPub.js'; import { ensureAccount } from './lib/account.js'; -import { account, webfinger, inbox, outbox, admin, notes, publicFacing } from './routes/index.js'; + +import { UserProfileRouter, WebfingerRouter, inbox, outbox, admin, notes, publicFacing } from './routes/index.js'; // load process.env from .env file dotenv.config(); const { USERNAME, PASS, DOMAIN, PORT } = process.env; -['USERNAME', 'PASS', 'DOMAIN'].forEach(required => { - if (!process.env[required]) { - console.error(`Missing required environment variable: \`${required}\`. Exiting.`); - process.exit(1); - } -}); +const envVariables = ['USERNAME', 'PASS', 'DOMAIN']; const PATH_TO_TEMPLATES = './design'; + +/** + * Check the existence of required environment variables. + * + * @param {string[]} env_variables - An array of environment variable names that are required. + * @throws {Error} Throws an error and exits the process if any required environment variable is missing. + */ +function checkRequiredEnvironmentVariables(envVariables) { + envVariables.forEach(reqdVariable => { + /** + * Check if the required environment variable is missing. + * If missing, log an error message and exit the process. + * + * @example + * // Example usage: + * checkRequiredEnvironmentVariables(['PORT', 'DATABASE_URL']); + */ + if (!process.env[reqdVariable]) { + console.error(`Missing required environment variable: \`${reqdVariable}\`. Exiting.`); + process.exit(1); + } + }); +} +checkRequiredEnvironmentVariables(envVariables); + const app = express(); +/** + * Handlebars helper functions for custom template rendering. + * + * @typedef {Object} HandlebarsHelpers + * @property {Function} isVideo - Check if a string contains 'video' and execute the provided block if true. + * @property {Function} isImage - Check if a string contains 'image' and execute the provided block if true. + * @property {Function} isEq - Check if two values are equal and execute the provided block if true. + * @property {Function} or - Logical OR between two values. + * @property {Function} timesince - Format a date to show the time elapsed since the specified date. + * @property {Function} getUsername - Get the username using the ActivityPub module. + * @property {Function} stripProtocol - Remove 'https://' from the beginning of a string. + * @property {Function} stripHTML - Remove HTML tags from a string. + */ + +/** + * Create an instance of Handlebars with custom helpers. + * + * @type {Handlebars} + * @see {@link https://handlebarsjs.com/api-reference/helpers.html} + */ const hbs = create({ helpers: { + /** + * Check if a string contains 'video' and execute the provided block if true. + * @function + * @param {string} str - The string to check. + * @param {Object} options - Handlebars options object. + * @returns {string} - The rendered block if the condition is true. + */ isVideo: (str, options) => { if (str && str.includes('video')) return options.fn(this); }, + + /** + * Check if a string contains 'image' and execute the provided block if true. + * @function + * @param {string} str - The string to check. + * @param {Object} options - Handlebars options object. + * @returns {string} - The rendered block if the condition is true. + */ isImage: (str, options) => { if (str && str.includes('image')) return options.fn(this); }, + + /** + * Check if two values are equal and execute the provided block if true. + * @function + * @param {*} a - The first value. + * @param {*} b - The second value. + * @param {Object} options - Handlebars options object. + * @returns {string} - The rendered block if the condition is true. + */ isEq: (a, b, options) => { // eslint-disable-next-line if (a == b) return options.fn(this); }, + + /** + * Logical OR between two values. + * @function + * @param {*} a - The first value. + * @param {*} b - The second value. + * @param {Object} options - Handlebars options object. + * @returns {*} - The result of the logical OR operation. + */ or: (a, b, options) => { return a || b; }, + + /** + * Format a date to show the time elapsed since the specified date. + * @function + * @param {Date} date - The date to be formatted. + * @returns {string} - The formatted time elapsed string. + */ timesince: date => { return moment(date).fromNow(); }, + + /** + * Get the username using the ActivityPub module. + * @function + * @param {*} user - The user object. + * @returns {string} - The username. + */ getUsername: user => { return ActivityPub.getUsername(user); }, + + /** + * Remove 'https://' from the beginning of a string. + * @function + * @param {string} str - The string to process. + * @returns {string} - The string with 'https://' removed. + */ stripProtocol: str => str.replace(/^https:\/\//, ''), + + /** + * Remove HTML tags from a string. + * @function + * @param {string} str - The string containing HTML tags. + * @returns {string} - The string with HTML tags removed. + */ stripHTML: str => str .replace(/<\/p>/, '\n') @@ -55,56 +175,118 @@ const hbs = create({ } }); -app.set('domain', DOMAIN); -app.set('port', process.env.PORT || PORT || 3000); -app.set('port-https', process.env.PORT_HTTPS || 8443); -app.engine('handlebars', hbs.engine); -app.set('views', PATH_TO_TEMPLATES); -app.set('view engine', 'handlebars'); -app.use( - bodyParser.json({ - type: 'application/activity+json' - }) -); // support json encoded bodies -app.use( - bodyParser.json({ - type: 'application/json' - }) -); // support json encoded bodies -app.use( - bodyParser.json({ - type: 'application/ld+json' - }) -); // support json encoded bodies - -app.use(cookieParser()); - -app.use( - bodyParser.urlencoded({ - extended: true - }) -); // support encoded bodies - -// basic http authorizer -const basicUserAuth = basicAuth({ - authorizer: asyncAuthorizer, - authorizeAsync: true, - challenge: true -}); +const setExpressApp = app => { + app.set('domain', DOMAIN); + app.set('port', process.env.PORT || PORT || 3000); + app.set('port-https', process.env.PORT_HTTPS || 8443); + app.engine('handlebars', hbs.engine); + app.set('views', PATH_TO_TEMPLATES); + app.set('view engine', 'handlebars'); + app.use( + bodyParser.json({ + type: 'application/activity+json' + }) + ); // support json encoded bodies + app.use( + bodyParser.json({ + type: 'application/json' + }) + ); // support json encoded bodies + app.use( + bodyParser.json({ + type: 'application/ld+json' + }) + ); // support json encoded bodies + + app.use(cookieParser()); -function asyncAuthorizer(username, password, cb) { + app.use( + bodyParser.urlencoded({ + extended: true + }) + ); // support encoded bodies +}; + +setExpressApp(app); + +/** + * Asynchronous basic authorization function for Express.js. + * + * @param {string} username - The provided username for authorization. + * @param {string} password - The provided password for authorization. + * @param {Function} callback - The callback function to be called upon authorization completion. + * @param {Error} callback.error - An error object if an error occurred during authorization, or null if successful. + * @param {boolean} callback.authorized - A boolean indicating whether the user is authorized. + * + * @example + * // Example usage: + * asyncAuthorizer('admin', 'password123', (error, authorized) => { + * if (error) { + * console.error(error.message); + * } else { + * console.log(`User is authorized: ${authorized}`); + * } + * }); + */ +const asyncAuthorizer = (username, password, callback) => { let isAuthorized = false; + // Check if the provided password matches the hardcoded username const isPasswordAuthorized = username === USERNAME; + + // Check if the provided username matches the hardcoded password const isUsernameAuthorized = password === PASS; + + // Set isAuthorized to true if both username and password are authorized isAuthorized = isPasswordAuthorized && isUsernameAuthorized; + + // Invoke the callback with the authorization result if (isAuthorized) { - return cb(null, true); + return callback(null, true); } else { - return cb(null, false); + return callback(null, false); } -} +}; + +/** + * Express.js middleware for basic user authentication using asyncAuthorizer. + * + * @typedef {Object} BasicUserAuth + * @property {Function} authorize - Function to perform basic authorization using asyncAuthorizer. + * @property {boolean} authorizeAsync - Indicates that authorization is performed asynchronously. + * @property {boolean} challenge - Indicates whether to send a 401 Unauthorized response. + * + * @example + * // Example usage: + * app.use(basicUserAuth); + */ +const basicUserAuth = basicAuth({ + /** + * Function to perform basic authorization using asyncAuthorizer. + * + * @function + * @param {string} username - The provided username for authorization. + * @param {string} password - The provided password for authorization. + * @param {Function} callback - The callback function to be called upon authorization completion. + * @param {Error} callback.error - An error object if an error occurred during authorization, or null if successful. + * @param {boolean} callback.authorized - A boolean indicating whether the user is authorized. + */ + authorizer: asyncAuthorizer, + + /** + * Indicates that authorization is performed asynchronously. + * + * @type {boolean} + */ + authorizeAsync: true, + + /** + * Indicates whether to send a 401 Unauthorized response. + * + * @type {boolean} + */ + challenge: true +}); -// Load/create account file ensureAccount(USERNAME, DOMAIN).then(myaccount => { const authWrapper = (req, res, next) => { if (req.cookies.token) { @@ -125,9 +307,9 @@ ensureAccount(USERNAME, DOMAIN).then(myaccount => { app.set('account', myaccount); // serve webfinger response - app.use('/.well-known/webfinger', cors(), webfinger); + app.use('/.well-known/webfinger', cors(), WebfingerRouter); // server user profile and follower list - app.use('/u', cors(), account); + app.use('/u', cors(), UserProfileRouter); // serve individual posts app.use('/m', cors(), notes); diff --git a/lib/ActivityPub.js b/lib/ActivityPub.js index 333f6a2..6e647e0 100644 --- a/lib/ActivityPub.js +++ b/lib/ActivityPub.js @@ -6,8 +6,14 @@ const logger = debug('ActivityPub'); /** * ActivityPubClient - a class for sending and fetching ActivityPub content + * @class */ export class ActivityPubClient { + /** + * Constructor for ActivityPubClient + * @constructor + * @param {Object} account - The user account. + */ constructor(account) { logger('Initializing ActivityPub client for user:', account); if (account) { @@ -15,24 +21,47 @@ export class ActivityPubClient { } } + /** + * Setter for actor property + * @param {Object} actor - The actor object. + */ set actor(actor) { this._actor = actor; } + /** + * Getter for actor property + * @returns {Object} The actor object. + */ get actor() { return this._actor; } + /** + * Setter for account property + * @param {Object} account - The user account. + */ set account(account) { logger('Setting account:', account); this._account = account; this._actor = account?.actor; } + /** + * Getter for account property + * @returns {Object} The user account. + */ get account() { return this._account; } + /** + * Fetches the Webfinger data for a given username + * @async + * @param {string} username - The username to fetch Webfinger data for. + * @returns {Promise} The Webfinger data. + * @throws {Error} If Webfinger fetch fails. + */ async webfinger(username) { const { targetDomain } = this.getUsernameDomain(username); @@ -52,6 +81,13 @@ export class ActivityPubClient { } } + /** + * Fetches the actor data for a given user ID + * @async + * @param {string} userId - The user ID to fetch actor data for. + * @returns {Promise} The actor data. + * @throws {Error} If actor fetch fails. + */ async fetchActor(userId) { const actorQuery = await ActivityPub.fetch(userId, {}); if (actorQuery.ok) { @@ -76,21 +112,22 @@ export class ActivityPubClient { const urlFragment = url.pathname + (url.searchParams.toString() ? `?${url.searchParams.toString()}` : ''); const signer = crypto.createSign('sha256'); - const d = new Date(); - const stringToSign = `(request-target): get ${urlFragment}\nhost: ${url.hostname}\ndate: ${d.toUTCString()}`; + const date = new Date(); + const stringToSign = `(request-target): get ${urlFragment}\nhost: ${url.hostname}\ndate: ${date.toUTCString()}`; signer.update(stringToSign); signer.end(); const signature = signer.sign(this.account.privateKey); const signatureB64 = signature.toString('base64'); const header = `keyId="${this.actor.publicKey.id}",headers="(request-target) host date",signature="${signatureB64}"`; options.headers = { - Date: d.toUTCString(), + Date: date.toUTCString(), Host: url.hostname, Accept: 'application/activity+json, application/ld+json; profile="https://www.w3.org/ns/activitystreams"', Signature: header }; const controller = new AbortController(); + // set timeout for 5s setTimeout(() => controller.abort(), 5000); options.signal = controller.signal; @@ -118,10 +155,10 @@ export class ActivityPubClient { const digestHash = crypto.createHash('sha256').update(JSON.stringify(message)).digest('base64'); const signer = crypto.createSign('sha256'); - const d = new Date(); + const date = new Date(); const stringToSign = `(request-target): post ${inboxFragment}\nhost: ${ url.hostname - }\ndate: ${d.toUTCString()}\ndigest: SHA-256=${digestHash}`; + }\ndate: ${date.toUTCString()}\ndigest: SHA-256=${digestHash}`; signer.update(stringToSign); signer.end(); const signature = signer.sign(this.account.privateKey); @@ -139,7 +176,7 @@ export class ActivityPubClient { headers: { Host: url.hostname, 'Content-type': 'application/activity+json', - Date: d.toUTCString(), + Date: date.toUTCString(), Digest: `SHA-256=${digestHash}`, Signature: header }, diff --git a/lib/Markdown.js b/lib/Markdown.js index 1a8876e..bf500d3 100644 --- a/lib/Markdown.js +++ b/lib/Markdown.js @@ -1,6 +1,6 @@ /* This module contains the markdown renderer used to format posts - By default, urls will be linkified with nofollow noopener and noreferrer attributes + By default, urls will be linkifies with nofollow, noopener, and noreferrer attributes Override those attributes by setting LINK_ATTRIBUTES in the .env file Usage: @@ -10,6 +10,7 @@ const html = md.render(markdown); import dotenv from 'dotenv'; import MarkdownIt from 'markdown-it'; + dotenv.config(); const md = new MarkdownIt({ @@ -19,10 +20,30 @@ const md = new MarkdownIt({ const LINK_ATTRIBUTES = process.env.LINK_ATTRIBUTES || 'nofollow noopener noreferrer'; -// customize the link formatter to include noopener noreferrer links -// this prevents browsers from telling downstream pages about where the links came from -// and protects the privacy of our users. -// code from: https://publishing-project.rivendellweb.net/customizing-markdown-it/ +/** + * The above function modifies the rendering of link tags in Markdown by adding a "rel" attribute with + * the value of LINK_ATTRIBUTES. + * @param tokens - The `tokens` parameter is an array of token objects. Each token object represents a + * part of the Markdown document, such as a paragraph, heading, link, etc. The `tokens` array is passed + * to the renderer function to generate the corresponding HTML output. + * @param idx - The `idx` parameter in the code refers to the index of the current token being rendered + * in the array of tokens. + * @param options - The `options` parameter is an object that contains various options and + * configurations for the Markdown renderer. It can include settings such as the rendering mode, the + * HTML tag names to use for different elements, and other customization options. + * @param env - The `env` parameter in the code snippet refers to the environment object. It is an + * optional parameter that can be used to pass additional information or configuration to the rendering + * rules. It can be used to store and access data that needs to be shared between different rendering + * rules. + * @param self - The `self` parameter refers to the Markdown-it instance. It is used to access the + * `renderToken` method and the `renderer` object, which contains the rules for rendering Markdown + * tokens. + * + * customize the link formatter to include noopener noreferrer links + * this prevents browsers from telling downstream pages about where the links came from + * and protects the privacy of our users. + * code from: https://publishing-project.rivendellweb.net/customizing-markdown-it/ + */ const proxy = (tokens, idx, options, env, self) => self.renderToken(tokens, idx, options); const defaultLinkOpenRenderer = md.renderer.rules.link_open || proxy; md.renderer.rules.link_open = function (tokens, idx, options, env, self) { diff --git a/lib/__tests__/account.jest.js b/lib/__tests__/account.jest.js index a64380e..6abaf94 100644 --- a/lib/__tests__/account.jest.js +++ b/lib/__tests__/account.jest.js @@ -1,4 +1,6 @@ -const { isMyPost } = require('../account'); +import { isMyPost } from '../account'; +import { readJSONDictionary, writeJSONDictionary } from '../storage'; +import fs from 'fs'; import 'node-fetch'; @@ -22,3 +24,42 @@ describe('Tests for isMyPost', () => { expect(isMyPost(activity)).toBe(false); }); }); + +describe('Tests for getInboxIndex', () => { + const getInboxIndex = () => { + const inboxIndexPath = 'lib/__tests__/files/inboxIndex.json'; + const inboxIndex = readJSONDictionary(inboxIndexPath, {}); + return inboxIndex; + }; + + test('Check successful', () => { + const expectedInboxIndex = { id: 'inboxIndex' }; + expect(getInboxIndex()).toStrictEqual(expectedInboxIndex); + }); +}); + +describe('Tests for writeInboxIndex', () => { + const inboxIndexPath = 'lib/__tests__/files/writeInboxIndex.json'; + const writeInboxIndex = data => { + writeJSONDictionary(inboxIndexPath, data); + }; + + test('Check successful', () => { + const expectedInboxIndex = { id: 'inboxIndex' }; + writeInboxIndex(expectedInboxIndex); + const jsonRaw = fs.readFileSync(inboxIndexPath); + expect(JSON.parse(jsonRaw)).toStrictEqual(expectedInboxIndex); + }); +}); + +describe('Tests for getAccount', () => { + const accountFile = 'lib/__tests__/files/account.json'; + const getAccount = () => { + return readJSONDictionary(accountFile, {}); + }; + + test('Check successful', () => { + const expectedAccount = { id: 'account' }; + expect(getAccount()).toStrictEqual(expectedAccount); + }); +}); diff --git a/lib/__tests__/files/account.json b/lib/__tests__/files/account.json new file mode 100644 index 0000000..4450133 --- /dev/null +++ b/lib/__tests__/files/account.json @@ -0,0 +1,3 @@ +{ + "id": "account" +} \ No newline at end of file diff --git a/lib/__tests__/files/inboxIndex.json b/lib/__tests__/files/inboxIndex.json new file mode 100644 index 0000000..012f7a6 --- /dev/null +++ b/lib/__tests__/files/inboxIndex.json @@ -0,0 +1,3 @@ +{ + "id": "inboxIndex" +} \ No newline at end of file diff --git a/lib/__tests__/files/writeInboxIndex.json b/lib/__tests__/files/writeInboxIndex.json new file mode 100644 index 0000000..012f7a6 --- /dev/null +++ b/lib/__tests__/files/writeInboxIndex.json @@ -0,0 +1,3 @@ +{ + "id": "inboxIndex" +} \ No newline at end of file diff --git a/lib/account.js b/lib/account.js index 89541d8..ca1df52 100644 --- a/lib/account.js +++ b/lib/account.js @@ -261,12 +261,15 @@ export const createActor = (name, domain, pubkey) => { icon: { type: 'Image', mediaType: 'image/png', - url: `https://${domain}/images/avatar.png` + // url: `https://${domain}/images/avatar.png` + // default icon image, later can store locally + url: 'https://www.shutterstock.com/image-vector/user-profile-icon-vector-avatar-600nw-2247726673.jpg' }, image: { type: 'Image', mediaType: 'image/png', - url: `https://${domain}/images/header.png` + // default header image, later can store locally + url: `https://static.vecteezy.com/system/resources/thumbnails/011/125/580/small/torn-light-blue-paper-with-white-copyspace-for-your-message-png.png` }, publicKey: { id: `https://${domain}/u/${name}#main-key`, @@ -872,6 +875,50 @@ export const ensureAccount = async (name, domain) => { }); }; +export const updateAccount = async (name, domain) => { + // verify domain name + const re = /^((?:(?:(?:\w[.\-+]?)*)\w)+)((?:(?:(?:\w[.\-+]?){0,62})\w)+)\.(\w{2,6})$/; + if (!domain.match(re)) { + console.error('DOMAIN setting "' + domain + '" does not appear to be a well-formatted domain name.'); + process.exit(1); + } + return new Promise((resolve, reject) => { + // generate a crypto key + crypto.generateKeyPair( + 'rsa', + { + modulusLength: 4096, + publicKeyEncoding: { + type: 'spki', + format: 'pem' + }, + privateKeyEncoding: { + type: 'pkcs8', + format: 'pem' + } + }, + (err, publicKey, privateKey) => { + if (err) { + console.error(err); + reject(err); + } + const actorRecord = createActor(name, domain, publicKey); + const webfingerRecord = createWebfinger(name, domain); + const apikey = crypto.randomBytes(16).toString('hex'); + const account = { + actor: actorRecord, + webfinger: webfingerRecord, + apikey, + publicKey, + privateKey + }; + console.log('Account created! Wrote webfinger and actor record to', accountFile); + writeJSONDictionary(accountFile, account); + resolve(account); + } + ); + }); +}; /** * The function `getAccount` reads a JSON dictionary from a file and returns it, or an empty object if * the file does not exist. diff --git a/lib/notes.js b/lib/notes.js index af733f3..ebcfefd 100644 --- a/lib/notes.js +++ b/lib/notes.js @@ -18,6 +18,12 @@ import { ActivityPub } from './ActivityPub.js'; const logger = debug('ono:notes'); +/** + * The function `getLikesForNote` retrieves the likes and boosts for a given note ID from a JSON + * dictionary. + * @returns The function `getLikesForNote` is returning the result of calling the `readJSONDictionary` + * function with the `fileName` and an object containing `likes` and `boosts` properties. + */ export const getLikesForNote = id => { const fileName = getLikesFileName(id); return readJSONDictionary(fileName, { @@ -26,10 +32,18 @@ export const getLikesForNote = id => { }); }; +/** + * The function `getReplyCountForNote` returns the number of replies for a given note ID. + * @returns The number of replies for a given note ID. + */ export const getReplyCountForNote = id => { return INDEX.filter(i => i.inReplyTo === id).length; }; +/** + * The function records a like for a note and adds the actor to the list of likes if they haven't + * already liked the note. + */ export const recordLike = request => { const actor = request.actor; const noteId = request.object; @@ -45,6 +59,10 @@ export const recordLike = request => { } }; +/** + * The function `recordBoost` records a boost for a note and adds the actor to the list of boosts if + * they haven't already boosted the note. + */ export const recordBoost = request => { const actor = request.actor; const noteId = request.object; @@ -60,11 +78,15 @@ export const recordBoost = request => { } }; +/** + * The function `recordUndoLike` removes the actor's like from the likes list for a given note and + * updates the likes file. + */ export const recordUndoLike = request => { const actor = request.actor; const noteId = request.object; - logger('INCOMING LIKE FOR', noteId); + logger('INCOMING UNLIKE FOR', noteId); const likes = getLikesForNote(noteId); likes.likes = likes.likes.filter(a => a !== actor); @@ -72,6 +94,13 @@ export const recordUndoLike = request => { writeJSONDictionary(fileName, likes); }; +/** + * The `deleteActivity` function deletes an activity and its associated notifications from the system. + * @param id - The `id` parameter represents the unique identifier of the activity that needs to be + * deleted. It is used to locate the corresponding note file and delete it. + * @param tombstone - The `tombstone` parameter is not used in the code snippet provided. It is + * mentioned in a comment, but there is no code that utilizes it. + */ export const deleteActivity = (id, tombstone) => { const noteFile = getFileName(id); if (fs.existsSync(noteFile)) { @@ -93,6 +122,10 @@ export const deleteActivity = (id, tombstone) => { } }; +/** + * The `createActivity` function creates a new activity by writing a note to a file and adding it to an + * index if the file does not already exist. + */ export const createActivity = note => { const noteFile = createFileName(note); if (!fs.existsSync(noteFile)) { @@ -101,6 +134,12 @@ export const createActivity = note => { writeJSONDictionary(noteFile, note); }; +/** + * The function `getActivity` retrieves activity data either from a cache or by fetching it from a + * remote source, handling potential errors along the way. + * @returns The function `getActivity` returns a Promise that resolves to the result of either + * `readJSONDictionary(noteFile, {})` or `fetchActivity(id)`. + */ export const getActivity = async id => { try { if (isBlocked(id)) { @@ -125,6 +164,10 @@ export const getActivity = async id => { } }; +/** + * The function fetches an activity using its ID and handles any errors that occur during the process. + * @returns The `fetchActivity` function returns the `activity` object if the fetch is successful. + */ const fetchActivity = async activityId => { logger('FETCH ', activityId); try { diff --git a/lib/prefs.js b/lib/prefs.js index 117f684..4ae356b 100644 --- a/lib/prefs.js +++ b/lib/prefs.js @@ -1,15 +1,17 @@ +/* The code is defining a constant variable named `DEFAULT_SETTINGS` that is exported from the module. +It is an object with two properties: `strings` and `icons`. */ export const DEFAULT_SETTINGS = { strings: { post: 'Compose' }, icons: { mascot: '🚀', - latest: '🤘🏼', - notifications: '🍑', + latest: '🆕', + notifications: '🔔', prefs: '⚙️', messages: '💬', - post: '🆕', - myPosts: '🐐', + post: '✉️', + myPosts: '📝', faveInactive: '☆', faveActive: '⭐️', boostInactive: '🔁', diff --git a/lib/queue.js b/lib/queue.js index 82fa237..8f8ee77 100644 --- a/lib/queue.js +++ b/lib/queue.js @@ -10,8 +10,6 @@ const logger = debug('ono:queue'); export const queue = new Queue({ concurrent: 4, interval: 250 - // concurrent: 1, - // interval: 2000 }); queue.on('start', () => logger('QUEUE STARTING')); @@ -19,6 +17,9 @@ queue.on('stop', () => logger('QUEUE STOPPING')); queue.on('end', () => logger('QUEUE ENDING')); queue.on('dequeue', () => logger('DEQUEUING!', queue.size)); +/* The code block you provided is setting up event listeners for the `resolve` and `reject` events of +the `queue` object, and then starting a loop that continuously dequeues items from the queue until +`queue.shouldRun` is false. */ queue.on('resolve', data => { if (data.url) { logger(`SEND STATUS ${data.status} ${data.statusText} FOR ${data.url} `); diff --git a/lib/storage.js b/lib/storage.js index d6bb639..798eb26 100644 --- a/lib/storage.js +++ b/lib/storage.js @@ -5,8 +5,8 @@ import md5 from 'md5'; import { DEFAULT_SETTINGS } from './prefs.js'; import debug from 'debug'; - import dotenv from 'dotenv'; + const logger = debug('ono:storage'); dotenv.config(); @@ -29,34 +29,71 @@ const { DOMAIN } = process.env; export const INDEX = []; export const CACHE = {}; + const cacheMax = 60 * 5 * 1000; // 5 minutes -const cacheMin = 30 * 1000; // 5 minutes +const cacheMin = 30 * 1000; // 30 seconds +/** + * Function to zero-pad a number. + * @param {number} num - The number to zero-pad. + * @returns {string} - The zero-padded number as a string. + */ const zeroPad = num => { if (num < 10) { return `0${num}`; } else return num; }; +/** + * Checks if an activity belongs to the current user. + * @param {string} activityId - The ID of the activity. + * @returns {boolean} - True if the activity belongs to the current user, false otherwise. + */ export const isMyPost = activityId => { return activityId.startsWith(`https://${DOMAIN}/m/`); }; +/** + * Checks if an activity is in the INDEX array. + * @param {string} id - The ID of the activity. + * @returns {boolean} - True if the activity is indexed, false otherwise. + */ export const isIndexed = id => { return INDEX.some(p => id === p.id); }; +/** + * Retrieves activity info from the index based on the activity ID. + * @param {string} id - The ID of the activity. + * @returns {Object|boolean} - The activity information if found, otherwise false. + */ export const fromIndex = id => { return INDEX.find(p => id === p.id) || false; }; +/** + * Gets user preferences. + * @returns {Object} - User preferences. + */ export const getPrefs = () => { return readJSONDictionary(prefsFile, DEFAULT_SETTINGS); }; + +/** + * Updates user preferences. + * @param {Object} prefs - The new user preferences. + * @returns {void} + */ export const updatePrefs = prefs => { return writeJSONDictionary(prefsFile, prefs); }; +/** + * Adds a failure entry to the index. + * @param {Object} note - The note object. + * @param {string} type - The type of failure (default is 'fail'). + * @returns {void} + */ export const addFailureToIndex = (note, type = 'fail') => { INDEX.push({ type, @@ -65,6 +102,13 @@ export const addFailureToIndex = (note, type = 'fail') => { status: note.status }); }; + +/** + * Adds an activity entry to the index. + * @param {Object} note - The note object. + * @param {string} type - The type of activity (default is 'activity'). + * @returns {void} + */ export const addActivityToIndex = (note, type = 'activity') => { INDEX.push({ type, @@ -74,6 +118,12 @@ export const addActivityToIndex = (note, type = 'activity') => { inReplyTo: note.inReplyTo }); }; + +/** + * Deletes an activity entry from the index. + * @param {string} id - The ID of the activity to be deleted. + * @returns {void} + */ export const deleteActivityFromIndex = id => { const n = INDEX.findIndex(idx => idx.id === id); if (n >= 0) { @@ -81,8 +131,12 @@ export const deleteActivityFromIndex = id => { } }; +/** + * Gets the file name for a given activity ID. + * @param {string} activityId - The ID of the activity. + * @returns {string} - The file name. + */ export const getFileName = activityId => { - // // find the item in the index // first check cache! let meta; if (CACHE[activityId]) { @@ -103,8 +157,12 @@ export const getFileName = activityId => { return path.resolve(rootPath, folder, `${md5(meta.id)}.json`); }; +/** + * Gets the file name for the likes associated with a given activity ID. + * @param {string} activityId - The ID of the activity. + * @returns {string} - The file name for likes. + */ export const getLikesFileName = activityId => { - // // find the item in the index // first check cache! let meta; if (CACHE[activityId]) { @@ -125,6 +183,11 @@ export const getLikesFileName = activityId => { return path.resolve(rootPath, folder, `${md5(meta.id)}.likes.json`); }; +/** + * Creates a file name for a given activity. + * @param {Object} activity - The activity object. + * @returns {string} - The file name. + */ export const createFileName = activity => { // create a dated subfolder const datestamp = new Date(activity.published); @@ -140,6 +203,10 @@ export const createFileName = activity => { return path.resolve(rootPath, folder, `${md5(activity.id)}.json`); }; +/** + * Clears expired entries from the cache. + * @returns {void} + */ const cacheExpire = () => { const now = new Date().getTime(); for (const key in CACHE) { @@ -150,12 +217,20 @@ const cacheExpire = () => { } }; +/** + * Interval function for the garbage collector to clear expired cache entries. + * @type {number} + */ const garbageCollector = setInterval(() => { cacheExpire(); }, cacheMin); logger('Garbage collector interval', garbageCollector); +/** + * Builds the initial index by reading data from files. + * @returns {Promise>} - A promise that resolves with the built index. + */ const buildIndex = () => { return new Promise((resolve, reject) => { glob(path.join(pathToFiles, '**/*.json'), async (err, files) => { @@ -163,7 +238,7 @@ const buildIndex = () => { console.error(err); reject(err); } - // const res = []; + for (const f of files) { try { const post = JSON.parse(fs.readFileSync(path.resolve(pathToFiles, f))); @@ -198,6 +273,11 @@ const buildIndex = () => { }); }; +/** + * Searches for known users based on a query string. + * @param {string} query - The search query. + * @returns {Promise>} - A promise that resolves with the search results. + */ export const searchKnownUsers = async query => { return new Promise((resolve, reject) => { glob(path.join(pathToUsers, '**/*.json'), async (err, files) => { @@ -227,6 +307,10 @@ export const searchKnownUsers = async query => { }); }; +/** + * Ensures the existence of data folders and default settings. + * @returns {void} + */ const ensureDataFolder = () => { if (!fs.existsSync(path.resolve(pathToPosts))) { logger('mkdir', pathToPosts); @@ -260,6 +344,12 @@ const ensureDataFolder = () => { } }; +/** + * Reads a JSON dictionary from a file path. + * @param {string} path - The path to the JSON file. + * @param {Array} defaultVal - The default value if the file doesn't exist. + * @returns {Array} - The contents of the JSON file. + */ export const readJSONDictionary = (path, defaultVal = []) => { const now = new Date().getTime(); if (CACHE[path] && CACHE[path].time > now - cacheMax) { @@ -282,11 +372,22 @@ export const readJSONDictionary = (path, defaultVal = []) => { } }; +/** + * Deletes a JSON dictionary file. + * @param {string} path - The path to the JSON file to be deleted. + * @returns {void} + */ export const deleteJSONDictionary = path => { fs.unlinkSync(path); delete CACHE[path]; }; +/** + * Writes a JSON dictionary to a file. + * @param {string} path - The path to the file. + * @param {Object} data - The data to be written. + * @returns {void} + */ export const writeJSONDictionary = (path, data) => { const now = new Date().getTime(); logger('write cache', path); diff --git a/lib/users.js b/lib/users.js index f40ffce..d6088d7 100644 --- a/lib/users.js +++ b/lib/users.js @@ -1,11 +1,23 @@ import path from 'path'; import fs from 'fs'; import debug from 'debug'; - import { readJSONDictionary, writeJSONDictionary, pathToUsers } from './storage.js'; import { ActivityPub } from './ActivityPub.js'; + const logger = debug('ono:users'); +/** + * The function `fetchUserFromSource` fetches user information from a given webId or username using the + * ActivityPub protocol. + * @param username - The `username` parameter is the username of the user you want to fetch from the + * source. It is used to identify the user and retrieve their information. + * @param webId - The `webId` parameter is a string that represents the unique identifier of a user on + * the web. It is used to fetch the actor information of the user from an ActivityPub server. If the + * `webId` parameter is not provided, the function will attempt to fetch the actor information using + * the + * @returns The function `fetchUserFromSource` returns an object with the properties `webfinger`, + * `actor`, and `lastFetched`. + */ const fetchUserFromSource = async (username, webId) => { let webfinger; @@ -13,7 +25,6 @@ const fetchUserFromSource = async (username, webId) => { try { webfinger = await ActivityPub.webfinger(username); } catch (err) { - // console.error(err); // servers receive lots of spam Deletes return { actor: { name: username, @@ -31,7 +42,6 @@ const fetchUserFromSource = async (username, webId) => { try { actor = await ActivityPub.fetchActor(self); } catch (err) { - // console.error(err); return { actor: { name: username, @@ -59,6 +69,11 @@ const fetchUserFromSource = async (username, webId) => { }; }; +/** + * The `fetchUser` function fetches user information either from a cache or from a source, with an + * option to skip fingerprinting if the user is already an ActivityPub URL. + * @returns The function `fetchUser` returns a Promise that resolves to the user account information. + */ export const fetchUser = async user => { let skipFinger = false; const now = new Date().getTime(); diff --git a/public/.DS_Store b/public/.DS_Store deleted file mode 100644 index 68c73466bd77560b3e7bc5a1e23e0c17f35e6525..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKF^|(Q6n?&z;&4Lh0Mac;mRQSO%bgAo1EG`wu@MBrfqF?(^#Vy8H7y;gN}1sY zFtRbQAThztZ{P>;JCNW#+XwaajuBPJFM9rLzxSNy&x#!b0P9ZU4nPwCI4WWN0v4wT z*-2Mq!}MH4WNM5TP(DcIAWCJl;_W&d1CD`pV}QQh282-Hvkmt5OPj)7)a{>2RO&St zKxuvDHlXm+X+o;vgHO_O+H~I76NX~*uIGL8+aC|_m z$5N)zaXpNlB*R(1dFh_aCt;Eg$0{I+hv@R`X_Cis)|JydE>&!x4czm*esgO+-@U%y z5}o#qMN7r0<>44` z46F?Uv_A+`Lf>GeQEeSqs4D}K zf?gM=WX{%=$ { + // Extract the 'name' parameter from the request let name = req.params.name; + + // Handle missing 'name' parameter with a 400 Bad Request response if (!name) { return res.status(400).send('Bad request.'); } else { + // Obtain the domain from the app settings const domain = req.app.get('domain'); - // const username = name; + + // Append the user profile URL path to the domain name = `https://${domain}/u/${name}`; + // Check if the provided 'name' matches the stored user profile ID if (name !== req.app.get('account').actor.id) { + // Respond with a 404 Not Found if no record is found for the provided 'name' return res.status(404).send(`No record found for ${name}.`); } else { + // Check the 'Accept' header for JSON-LD format and respond accordingly if (req.headers.accept?.includes('application/ld+json')) { + // Respond with the user profile in JSON-LD format res.json(req.app.get('account').actor); } else { + // Redirect to the user profile URL or the default domain res.redirect(req.app.get('account').actor.url || `https://${domain}/`); } } } }); -router.get('/:name/followers', function (req, res) { +/** + * Handle GET requests for the followers of a user profile by name. + * + * @function + * @param {Object} req - Express.js request object. + * @param {Object} res - Express.js response object. + * @returns {void} Responds with a collection of followers or an error message based on the request. + * + * @throws {Error} Responds with a 400 Bad Request if the 'name' parameter is missing. + * @throws {Error} Responds with a 404 Not Found if no record is found for the provided 'name'. + * + * @example + * // Example route: + * // GET /profiles/:name/followers + * router.get('/:name/followers', function (req, res) { + * // ... (route handler implementation) + * }); + */ +router.get('/:name/followers', (req, res) => { + // Extract the 'name' parameter from the request let name = req.params.name; + + // Handle missing 'name' parameter with a 400 Bad Request response if (!name) { return res.status(400).send('Bad request.'); } else { + + // Obtain the domain from the app settings const domain = req.app.get('domain'); + // Append the user profile URL path to the domain name = `https://${domain}/u/${name}`; + // Check if the provided 'name' matches the stored user profile ID if (name !== req.app.get('account').actor.id) { + // Respond with a 404 Not Found if no record is found for the provided 'name' return res.status(404).send(`No record found for ${name}.`); } else { + // Retrieve followers for the user profile const followers = getFollowers(); + + // Assemble the followers collection in ActivityStreams format const followersCollection = { type: 'OrderedCollection', totalItems: followers.length, @@ -49,6 +122,7 @@ router.get('/:name/followers', function (req, res) { }, '@context': ['https://www.w3.org/ns/activitystreams'] }; + // Respond with the followers collection in JSON format res.json(followersCollection); } } diff --git a/routes/admin.js b/routes/admin.js index b1f3e71..2b4b1f3 100644 --- a/routes/admin.js +++ b/routes/admin.js @@ -17,15 +17,20 @@ import { isFollowing, getInboxIndex, getInbox, - writeInboxIndex + writeInboxIndex, + updateAccount } from '../lib/account.js'; import { fetchUser } from '../lib/users.js'; import { getPrefs, INDEX, searchKnownUsers, updatePrefs } from '../lib/storage.js'; import { ActivityPub } from '../lib/ActivityPub.js'; import { queue } from '../lib/queue.js'; +const { DOMAIN } = process.env; export const router = express.Router(); const logger = debug('ono:admin'); +/** + * Return the INDEX in form of JSON + */ router.get('/index', async (req, res) => { res.json(INDEX); }); @@ -38,6 +43,10 @@ router.get('/index', async (req, res) => { | |__| / ____ \ ____) | | | | |_) | |__| / ____ \| | \ \| |__| | |_____/_/ \_\_____/|_| |_|____/ \____/_/ \_\_| \_\_____/ + */ +/** + * Render the dashboard console in the html + * display the feeds */ router.get('/', async (req, res) => { const offset = parseInt(req.query.offset) || 0; @@ -75,6 +84,10 @@ router.get('/', async (req, res) => { |_| \_|\____/ |_| |_____|_| |_____\_____/_/ \_\_| |_____\____/|_| \_|_____/ */ + +/** + * Render the notifications by fetching the notification API + */ router.get('/notifications', async (req, res) => { const likes = await getLikes(); const offset = parseInt(req.query.offset) || 0; @@ -141,6 +154,9 @@ router.get('/notifications', async (req, res) => { }); }); +/** + * Load the feeds in the activity stream + */ router.get('/feeds/:handle?', async (req, res) => { const offset = parseInt(req.query.offset) || 0; const pageSize = 20; @@ -218,6 +234,9 @@ router.get('/feeds/:handle?', async (req, res) => { }); }); +/** + * Load the inboxes + */ router.get('/dms/:handle?', async (req, res) => { const inboxIndex = getInboxIndex(); let error, inbox, recipient, lastIncoming; @@ -284,6 +303,9 @@ router.get('/dms/:handle?', async (req, res) => { }); }); +/** + * Load the post using the GET method + */ router.get('/post', async (req, res) => { const to = req.query.to; const inReplyTo = req.query.inReplyTo; @@ -315,6 +337,9 @@ router.get('/post', async (req, res) => { }); }); +/** + * Update and create the post using the POST method + */ router.post('/post', async (req, res) => { // TODO: this is probably supposed to be a post to /api/outbox const post = await createNote(req.body.post, req.body.cw, req.body.inReplyTo, req.body.to, req.body.editOf); @@ -336,6 +361,9 @@ router.post('/post', async (req, res) => { } }); +/** + * Poll the new notifications, inboxes, activities. + */ router.get('/poll', async (req, res) => { const sincePosts = new Date(req.cookies.latestPost).getTime(); const sinceNotifications = parseInt(req.cookies.latestNotification); @@ -354,6 +382,9 @@ router.get('/poll', async (req, res) => { }); }); +/** + * Render the followers in the page + */ router.get('/followers', async (req, res) => { let following = await Promise.all( getFollowing().map(async f => { @@ -398,6 +429,9 @@ router.get('/followers', async (req, res) => { } }); +/** + * Render the following in the page + */ router.get('/following', async (req, res) => { let following = await Promise.all( getFollowing().map(async f => { @@ -449,6 +483,9 @@ router.get('/following', async (req, res) => { | | | | \ \| |____| | ____) | |_| |_| \_\______|_| |_____/ + */ +/** + * Render the preferewnce page with the preference using GET */ router.get('/prefs', (req, res) => { const following = getFollowing(); @@ -469,6 +506,9 @@ router.get('/prefs', (req, res) => { }); }); +/** + * Update the preference using POST + */ router.post('/prefs', (req, res) => { // lget current prefs. const prefs = getPrefs(); @@ -489,6 +529,23 @@ router.post('/prefs', (req, res) => { updatePrefs(prefs); }); +/** + * Update the username preference using POST + */ +router.post('/prefsAccount', (req, res) => { + // lget current prefs. + const updates = req.body; + console.log('me ', ActivityPub.actor.name); + console.log('GOT ACCOUNT UPDATES', updates); + updateAccount(updates.username, DOMAIN).then(myaccount => { + // set the server to use the main account as its primary actor + ActivityPub.account = myaccount; + // app.set('account', myaccount); + }); + + res.redirect('/private'); +}); + const getFeedList = async (offset = 0, num = 20) => { const following = await getFollowing(); @@ -528,6 +585,9 @@ const getFeedList = async (offset = 0, num = 20) => { return feeds.slice(offset, offset + num); }; +/** + * Find the user given the user information and display the result + */ router.get('/find', async (req, res) => { let results = []; @@ -559,6 +619,9 @@ router.get('/find', async (req, res) => { }); }); +/** + * Render more feeds based on different indexes + */ router.get('/morefeeds', async (req, res) => { const feeds = await getFeedList(20, 100); @@ -569,6 +632,9 @@ router.get('/morefeeds', async (req, res) => { }); }); +/** + * Look up the user based on the user information + */ router.get('/lookup', async (req, res) => { const { actor } = await fetchUser(req.query.handle); if (actor) { @@ -582,6 +648,9 @@ router.get('/lookup', async (req, res) => { } }); +/** + * Follow a user given the user information using POST + */ router.post('/follow', async (req, res) => { const handle = req.body.handle; if (handle) { @@ -622,6 +691,9 @@ router.post('/follow', async (req, res) => { res.status(404).send('not found'); }); +/** + * Like the post given the activity ID using POST + */ router.post('/like', async (req, res) => { const activityId = req.body.post; let likes = getLikes(); diff --git a/routes/inbox.js b/routes/inbox.js index 6041d17..2353726 100644 --- a/routes/inbox.js +++ b/routes/inbox.js @@ -17,10 +17,47 @@ import { import { createActivity, recordLike, recordUndoLike, recordBoost, getActivity } from '../lib/notes.js'; import debug from 'debug'; import { isIndexed } from '../lib/storage.js'; -export const router = express.Router(); const logger = debug('ono:inbox'); +/** + * Express.js router for handling incoming ActivityPub requests. + * + * @typedef {Object} ActivityPubRouter + * @property {Function} processActivity - Route handler for processing incoming ActivityPub requests. + * + * @example + * // Example usage: + * import { router as activityPubRouter } from './activityPubRouter'; + * app.use('/activitypub', activityPubRouter); + */ +export const router = express.Router(); + +/** + * Route handler for processing incoming ActivityPub requests. + * + * @function + * @async + * @param {Object} req - Express.js request object. + * @param {Object} res - Express.js response object. + * @returns {Promise} Resolves with a success response or rejects with an error response. + * + * @throws {Error} Responds with a 403 Forbidden if the actor is blocked. + * @throws {Error} Responds with a 403 Forbidden if the signature validation fails. + * + * @example + * // Example route: + * // POST /activitypub + * activityPubRouter.post('/', activityPubHandlers.processActivity); + */ router.post('/', async (req, res) => { + /** + * The incoming ActivityPub request payload. + * + * @type {Object} + * @property {string} type - The type of the incoming request (e.g., 'Create', 'Follow', 'Like'). + * @property {Object} actor - The actor associated with the request. + * @property {Object} object - The object of the request, containing the main content. + */ const incomingRequest = req.body; if (incomingRequest) { @@ -30,6 +67,13 @@ router.post('/', async (req, res) => { logger('New message', JSON.stringify(incomingRequest, null, 2)); logger('Looking up actor', incomingRequest.actor); + + /** + * The user object obtained from fetching the actor of the incoming request. + * + * @type {Object} + * @property {Object} actor - The actor object representing the user. + */ const { actor } = await fetchUser(incomingRequest.actor); // FIRST, validate the actor @@ -95,7 +139,7 @@ router.post('/', async (req, res) => { // log the boost itself to the activity stream try { - await createActivity(incomingRequest); + createActivity(incomingRequest); } catch (err) { console.error('Could not fetch boosted post...'); } @@ -116,7 +160,7 @@ router.post('/', async (req, res) => { } else if (isReplyToMyPost(incomingRequest.object)) { // TODO: What about replies to replies? should we traverse up a bit? if (!isIndexed(incomingRequest.object.id)) { - await createActivity(incomingRequest.object); + createActivity(incomingRequest.object); addNotification({ type: 'Reply', actor: incomingRequest.object.attributedTo, @@ -127,7 +171,7 @@ router.post('/', async (req, res) => { } } else if (isMention(incomingRequest.object)) { if (!isIndexed(incomingRequest.object.id)) { - await createActivity(incomingRequest.object); + createActivity(incomingRequest.object); addNotification({ type: 'Mention', actor: incomingRequest.object.attributedTo, @@ -138,7 +182,7 @@ router.post('/', async (req, res) => { } } else if (!incomingRequest.object.inReplyTo) { // this is a NEW post - most likely from a follower - await createActivity(incomingRequest.object); + createActivity(incomingRequest.object); } else { // this is a reply // from a following @@ -147,12 +191,12 @@ router.post('/', async (req, res) => { // TODO: we may want to discard things NOT from followings // since they may never be seen // and we can always go fetch them... - await createActivity(incomingRequest.object); + createActivity(incomingRequest.object); } break; case 'Update': - await createActivity(incomingRequest.object); + createActivity(incomingRequest.object); break; default: logger('Unknown request type:', incomingRequest.type); diff --git a/routes/index.js b/routes/index.js index 08a7cf8..69a42f1 100644 --- a/routes/index.js +++ b/routes/index.js @@ -1,5 +1,5 @@ -export { router as account } from './account.js'; -export { router as webfinger } from './webfinger.js'; +export { router as UserProfileRouter } from './account.js'; +export { router as WebfingerRouter } from './webfinger.js'; export { router as inbox } from './inbox.js'; export { router as outbox } from './outbox.js'; export { router as admin } from './admin.js'; diff --git a/routes/notes.js b/routes/notes.js index 5095a96..46040d7 100644 --- a/routes/notes.js +++ b/routes/notes.js @@ -6,6 +6,10 @@ dotenv.config(); const { DOMAIN } = process.env; +/** + * fetch the notes based on valid guid parameters + * either return the json response or to the url + */ router.get('/:guid', async (req, res) => { const guid = req.params.guid; if (!guid) { diff --git a/routes/outbox.js b/routes/outbox.js index e35bc4b..8ed8322 100644 --- a/routes/outbox.js +++ b/routes/outbox.js @@ -2,17 +2,73 @@ import express from 'express'; import dotenv from 'dotenv'; import { getOutboxPosts } from '../lib/account.js'; -export const router = express.Router(); + dotenv.config(); +/** + * Express.js router for handling requests related to the user's outbox. + * + * @typedef {Object} OutboxRouter + * @property {Function} getOutbox - Route handler for retrieving the user's outbox posts. + * + * @example + * // Example usage: + * import { router as outboxRouter } from './outboxRouter'; + * app.use('/outbox', outboxRouter); + */ +export const router = express.Router(); + // const { // DOMAIN // } = process.env; +/** + * Route handler for retrieving the user's outbox posts. + * + * @function + * @async + * @param {Object} req - Express.js request object. + * @param {Object} res - Express.js response object. + * @returns {Promise} Resolves with the user's outbox collection or rejects with an error response. + * + * @throws {Error} Responds with a 400 Bad Request if the 'offset' query parameter is not a valid number. + * + * @example + * // Example route: + * // GET /outbox + * outboxRouter.get('/', outboxHandlers.getOutbox); + */ router.get('/', async (req, res) => { + /** + * The result object containing the total number of posts and an array of outbox posts. + * + * @type {Object} + * @property {number} total - The total number of outbox posts. + * @property {Array} posts - An array of outbox posts. + */ const { total, posts } = await getOutboxPosts(req.query.offset || 0); + + /** + * The URL of the user's outbox. + * + * @type {string} + */ const outboxUrl = req.app.get('account').actor.outbox; + /** + * The representation of the outbox collection to be sent in the response. + * + * @type {Object} + * @property {string} type - The type of the collection ('OrderedCollection' or 'OrderedCollectionPage'). + * @property {number} totalItems - The total number of items in the collection. + * @property {string} id - The unique identifier for the collection. + * @property {string} [first] - The URL of the first page of the collection. + * @property {string} [partOf] - The URL of the main collection that this page is part of. + * @property {string} [next] - The URL of the next page of the collection. + * @property {string} [prev] - The URL of the previous page of the collection. + * @property {Array} [orderedItems] - An array of ordered items in the collection. + * @property {Array} ['@context'] - The context of the collection. + */ const collection = { type: 'OrderedCollection', totalItems: total, @@ -20,9 +76,11 @@ router.get('/', async (req, res) => { '@context': ['https://www.w3.org/ns/activitystreams'] }; + // Check if the 'offset' query parameter is a valid number if (isNaN(req.query.offset)) { collection.first = `${outboxUrl}?offset=0`; } else { + // Adjust collection properties for paginated results const offset = parseInt(req.query.offset); collection.type = 'OrderedCollectionPage'; collection.id = `${outboxUrl}?offset=${offset}`; @@ -34,6 +92,8 @@ router.get('/', async (req, res) => { } else { collection.first = `${outboxUrl}?offset=0`; } + + // Transform each post into an ordered item in the collection collection.orderedItems = posts; collection.orderedItems = collection.orderedItems.map(activity => { return { @@ -48,5 +108,6 @@ router.get('/', async (req, res) => { }); } + // Send the outbox collection in the response res.json(collection); }); diff --git a/routes/public.js b/routes/public.js index 556c509..c18d538 100644 --- a/routes/public.js +++ b/routes/public.js @@ -21,6 +21,10 @@ const { USERNAME, DOMAIN } = process.env; const logger = debug('notes'); +/** + * publish the post to go up the stream + * check all the posts below and above the threads + */ const unrollThread = async (noteId, results = [], ascend = true, descend = true) => { let post, actor; let stats; @@ -86,6 +90,9 @@ const unrollThread = async (noteId, results = [], ascend = true, descend = true) return results; }; +/** + * Renders the home page with the outbox posts fetched through the api + */ router.get('/', async (req, res) => { const offset = parseInt(req.query.offset) || 0; const { @@ -118,6 +125,9 @@ router.get('/', async (req, res) => { }); }); +/** + * Fetch the feed for the user and display it in the html + */ router.get('/feed', async (req, res) => { const { // total, diff --git a/routes/webfinger.js b/routes/webfinger.js index 201b8fa..8741d74 100644 --- a/routes/webfinger.js +++ b/routes/webfinger.js @@ -1,8 +1,35 @@ import express from 'express'; + +/** + * Express.js router for handling webfinger-related routes. + * + * @typedef {Object} WebfingerRouter + * @property {Function} getResource - Route handler for retrieving a webfinger resource. + * + * @example + * // Example usage: + * import { router as webfingerRouter } from './webfingerRouter'; + * app.use('/webfinger', webfingerRouter); + */ export const router = express.Router(); +/** + * Route handler for retrieving a webfinger resource. + * + * @function + * @param {Object} req - Express.js request object. + * @param {Object} res - Express.js response object. + * @returns {void} Responds with a webfinger resource or an error message based on the request. + * + * @throws {Error} Responds with a 400 Bad Request if the 'resource' query parameter is missing or incorrectly formatted. + * @throws {Error} Responds with a 404 Not Found if no record is found for the provided 'resource'. + * + */ router.get('/', function (req, res) { + // Extract the 'resource' query parameter from the request const resource = req.query.resource; + + // Check if the 'resource' parameter is missing or incorrectly formatted if (!resource || !resource.includes('acct:')) { return res .status(400) @@ -10,9 +37,12 @@ router.get('/', function (req, res) { 'Bad request. Please make sure "acct:USER@DOMAIN" is what you are sending as the "resource" query parameter.' ); } else { + // Check if the provided 'resource' matches the stored webfinger subject if (resource === req.app.get('account').webfinger.subject) { + // Respond with the webfinger resource in JSON format res.json(req.app.get('account').webfinger); } else { + // Respond with a 404 Not Found if no record is found for the provided 'resource' return res.status(404).send(`No record found for ${resource}.`); } } From 5af5216b3983ff20f0f835898429cd197e96b665 Mon Sep 17 00:00:00 2001 From: Justin Nguyen Date: Wed, 29 Nov 2023 21:32:32 -0800 Subject: [PATCH 032/100] add more tests for account --- lib/__tests__/account.jest.js | 26 ++++++++++++++++++++++++++ lib/__tests__/files/likes.json | 3 +++ lib/__tests__/files/writeLikes.json | 3 +++ 3 files changed, 32 insertions(+) create mode 100644 lib/__tests__/files/likes.json create mode 100644 lib/__tests__/files/writeLikes.json diff --git a/lib/__tests__/account.jest.js b/lib/__tests__/account.jest.js index 6abaf94..ba40afc 100644 --- a/lib/__tests__/account.jest.js +++ b/lib/__tests__/account.jest.js @@ -52,6 +52,32 @@ describe('Tests for writeInboxIndex', () => { }); }); +describe('Tests for writeLikes', () => { + const likesFile = 'lib/__tests__/files/writeLikes.json'; + const writeLikes = likes => { + return writeJSONDictionary(likesFile, likes); + }; + + test('Check successful', () => { + const expectedLikes = { id: 'likes' }; + writeLikes(expectedLikes); + const jsonRaw = fs.readFileSync(likesFile); + expect(JSON.parse(jsonRaw)).toStrictEqual(expectedLikes); + }); +}); + +describe('Tests for getLikes', () => { + const likesFile = 'lib/__tests__/files/likes.json'; + const getLikes = () => { + return readJSONDictionary(likesFile); + }; + + test('Check successful', () => { + const expectedLikes = { id: 'likes' }; + expect(getLikes()).toStrictEqual(expectedLikes); + }); +}); + describe('Tests for getAccount', () => { const accountFile = 'lib/__tests__/files/account.json'; const getAccount = () => { diff --git a/lib/__tests__/files/likes.json b/lib/__tests__/files/likes.json new file mode 100644 index 0000000..7ffd850 --- /dev/null +++ b/lib/__tests__/files/likes.json @@ -0,0 +1,3 @@ +{ + "id": "likes" +} \ No newline at end of file diff --git a/lib/__tests__/files/writeLikes.json b/lib/__tests__/files/writeLikes.json new file mode 100644 index 0000000..7ffd850 --- /dev/null +++ b/lib/__tests__/files/writeLikes.json @@ -0,0 +1,3 @@ +{ + "id": "likes" +} \ No newline at end of file From 6a6704dbd73bfc527bd0c365efc95c75e002bc01 Mon Sep 17 00:00:00 2001 From: Justin Nguyen Date: Wed, 29 Nov 2023 23:49:49 -0800 Subject: [PATCH 033/100] add more tests --- lib/__tests__/ActivityPub.jest.js | 7 +++ lib/__tests__/account.jest.js | 68 ++++++++++++++++++++------ lib/__tests__/files/boosts.json | 3 ++ lib/__tests__/files/notifications.json | 3 ++ lib/__tests__/files/writeBoosts.json | 3 ++ lib/__tests__/users.jest.js | 3 ++ 6 files changed, 72 insertions(+), 15 deletions(-) create mode 100644 lib/__tests__/ActivityPub.jest.js create mode 100644 lib/__tests__/files/boosts.json create mode 100644 lib/__tests__/files/notifications.json create mode 100644 lib/__tests__/files/writeBoosts.json create mode 100644 lib/__tests__/users.jest.js diff --git a/lib/__tests__/ActivityPub.jest.js b/lib/__tests__/ActivityPub.jest.js new file mode 100644 index 0000000..917c248 --- /dev/null +++ b/lib/__tests__/ActivityPub.jest.js @@ -0,0 +1,7 @@ +import { ActivityPub } from '../ActivityPub'; + +describe('Tests for ActivityPubClient', () => { + test('Initial state', () => { + expect(ActivityPub.account).toBe(undefined); + }); +}); diff --git a/lib/__tests__/account.jest.js b/lib/__tests__/account.jest.js index ba40afc..dd28130 100644 --- a/lib/__tests__/account.jest.js +++ b/lib/__tests__/account.jest.js @@ -6,6 +6,33 @@ import 'node-fetch'; jest.mock('node-fetch', () => jest.fn()); +describe('Tests for getInboxIndex', () => { + const getInboxIndex = () => { + const inboxIndexPath = 'lib/__tests__/files/inboxIndex.json'; + const inboxIndex = readJSONDictionary(inboxIndexPath, {}); + return inboxIndex; + }; + + test('Check successful', () => { + const expectedInboxIndex = { id: 'inboxIndex' }; + expect(getInboxIndex()).toStrictEqual(expectedInboxIndex); + }); +}); + +describe('Tests for writeInboxIndex', () => { + const inboxIndexPath = 'lib/__tests__/files/writeInboxIndex.json'; + const writeInboxIndex = data => { + writeJSONDictionary(inboxIndexPath, data); + }; + + test('Check successful', () => { + const expectedInboxIndex = { id: 'inboxIndex' }; + writeInboxIndex(expectedInboxIndex); + const jsonRaw = fs.readFileSync(inboxIndexPath); + expect(JSON.parse(jsonRaw)).toStrictEqual(expectedInboxIndex); + }); +}); + describe('Tests for isMyPost', () => { test('Check if a post is my post', () => { const { DOMAIN } = process.env; @@ -25,30 +52,41 @@ describe('Tests for isMyPost', () => { }); }); -describe('Tests for getInboxIndex', () => { - const getInboxIndex = () => { - const inboxIndexPath = 'lib/__tests__/files/inboxIndex.json'; - const inboxIndex = readJSONDictionary(inboxIndexPath, {}); - return inboxIndex; +describe('Tests for getNotifications', () => { + const notificationsFile = 'lib/__tests__/files/notifications.json'; + const getNotifications = () => { + return readJSONDictionary(notificationsFile); }; test('Check successful', () => { - const expectedInboxIndex = { id: 'inboxIndex' }; - expect(getInboxIndex()).toStrictEqual(expectedInboxIndex); + const expectedNotifications = { id: 'notifications' }; + expect(getNotifications()).toStrictEqual(expectedNotifications); }); }); -describe('Tests for writeInboxIndex', () => { - const inboxIndexPath = 'lib/__tests__/files/writeInboxIndex.json'; - const writeInboxIndex = data => { - writeJSONDictionary(inboxIndexPath, data); +describe('Tests for writeBoosts', () => { + const boostsFile = 'lib/__tests__/files/writeBoosts.json'; + const writeBoosts = data => { + return writeJSONDictionary(boostsFile, data); }; test('Check successful', () => { - const expectedInboxIndex = { id: 'inboxIndex' }; - writeInboxIndex(expectedInboxIndex); - const jsonRaw = fs.readFileSync(inboxIndexPath); - expect(JSON.parse(jsonRaw)).toStrictEqual(expectedInboxIndex); + const expectedBoosts = { id: 'boosts' }; + writeBoosts(expectedBoosts); + const jsonRaw = fs.readFileSync(boostsFile); + expect(JSON.parse(jsonRaw)).toStrictEqual(expectedBoosts); + }); +}); + +describe('Tests for getBoosts', () => { + const boostsFile = 'lib/__tests__/files/boosts.json'; + const getBoosts = () => { + return readJSONDictionary(boostsFile, []); + }; + + test('Check successful', () => { + const expectedBoosts = { id: 'boosts' }; + expect(getBoosts()).toStrictEqual(expectedBoosts); }); }); diff --git a/lib/__tests__/files/boosts.json b/lib/__tests__/files/boosts.json new file mode 100644 index 0000000..47e9152 --- /dev/null +++ b/lib/__tests__/files/boosts.json @@ -0,0 +1,3 @@ +{ + "id": "boosts" +} \ No newline at end of file diff --git a/lib/__tests__/files/notifications.json b/lib/__tests__/files/notifications.json new file mode 100644 index 0000000..39090cf --- /dev/null +++ b/lib/__tests__/files/notifications.json @@ -0,0 +1,3 @@ +{ + "id": "notifications" +} \ No newline at end of file diff --git a/lib/__tests__/files/writeBoosts.json b/lib/__tests__/files/writeBoosts.json new file mode 100644 index 0000000..47e9152 --- /dev/null +++ b/lib/__tests__/files/writeBoosts.json @@ -0,0 +1,3 @@ +{ + "id": "boosts" +} \ No newline at end of file diff --git a/lib/__tests__/users.jest.js b/lib/__tests__/users.jest.js new file mode 100644 index 0000000..9d1779f --- /dev/null +++ b/lib/__tests__/users.jest.js @@ -0,0 +1,3 @@ +describe('Tests for fetchUser', () => { + test('Initial state', () => {}); +}); From 54be768a09da9b914f1912d145a2cfdbddf088f3 Mon Sep 17 00:00:00 2001 From: Wang Dingkun Date: Thu, 30 Nov 2023 11:41:55 -0800 Subject: [PATCH 034/100] =?UTF-8?q?feat=EF=BC=9Asupported=20adding=20bio?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- design/prefs.handlebars | 9 +++++++++ design/public/home.handlebars | 6 +++++- lib/account.js | 7 ++++--- routes/admin.js | 3 ++- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/design/prefs.handlebars b/design/prefs.handlebars index 97f737c..25e8ac2 100644 --- a/design/prefs.handlebars +++ b/design/prefs.handlebars @@ -133,9 +133,18 @@ +
+ + +
+ + + + + diff --git a/design/public/home.handlebars b/design/public/home.handlebars index 73a55d4..3c167d7 100644 --- a/design/public/home.handlebars +++ b/design/public/home.handlebars @@ -21,7 +21,11 @@
{{actor.name}} {{getUsername actor.id}} - + + {{#if actor.bio}} +

{{actor.bio}}

+ {{/if}} + {{{actor.summary}}} {{#if actor.attachment}} diff --git a/lib/account.js b/lib/account.js index ca1df52..7097250 100644 --- a/lib/account.js +++ b/lib/account.js @@ -247,13 +247,14 @@ export const isReplyToFollowing = async activity => { * @returns The `createActor` function returns an object representing an actor in the ActivityStreams * format. The `createWebfinger` function returns an object representing a WebFinger response. */ -export const createActor = (name, domain, pubkey) => { +export const createActor = (name, domain, pubkey, bio) => { return { '@context': ['https://www.w3.org/ns/activitystreams', 'https://w3id.org/security/v1'], id: `https://${domain}/u/${name}`, url: `https://${domain}/`, type: 'Person', name: `${name}`, + bio: `${bio || ''}`, preferredUsername: `${name}`, inbox: `https://${domain}/api/inbox`, outbox: `https://${domain}/api/outbox`, @@ -875,7 +876,7 @@ export const ensureAccount = async (name, domain) => { }); }; -export const updateAccount = async (name, domain) => { +export const updateAccount = async (name, domain, bio) => { // verify domain name const re = /^((?:(?:(?:\w[.\-+]?)*)\w)+)((?:(?:(?:\w[.\-+]?){0,62})\w)+)\.(\w{2,6})$/; if (!domain.match(re)) { @@ -902,7 +903,7 @@ export const updateAccount = async (name, domain) => { console.error(err); reject(err); } - const actorRecord = createActor(name, domain, publicKey); + const actorRecord = createActor(name, domain, publicKey, bio); const webfingerRecord = createWebfinger(name, domain); const apikey = crypto.randomBytes(16).toString('hex'); const account = { diff --git a/routes/admin.js b/routes/admin.js index 2b4b1f3..9c5d335 100644 --- a/routes/admin.js +++ b/routes/admin.js @@ -535,9 +535,10 @@ router.post('/prefs', (req, res) => { router.post('/prefsAccount', (req, res) => { // lget current prefs. const updates = req.body; + const bio = updates.bio; console.log('me ', ActivityPub.actor.name); console.log('GOT ACCOUNT UPDATES', updates); - updateAccount(updates.username, DOMAIN).then(myaccount => { + updateAccount(updates.username, DOMAIN, bio).then(myaccount => { // set the server to use the main account as its primary actor ActivityPub.account = myaccount; // app.set('account', myaccount); From 3c5eeb034c7b886b8d75656f3654358683835c6a Mon Sep 17 00:00:00 2001 From: Enze Ma <38894303+sora1998@users.noreply.github.com> Date: Thu, 30 Nov 2023 13:46:58 -0800 Subject: [PATCH 035/100] avatar change --- design/partials/avatar.handlebars | 16 ++++- design/prefs.handlebars | 9 +++ design/public/home.handlebars | 8 ++- lib/__tests__/ActivityPub.jest.js | 7 ++ lib/__tests__/account.jest.js | 94 ++++++++++++++++++++++---- lib/__tests__/files/boosts.json | 3 + lib/__tests__/files/likes.json | 3 + lib/__tests__/files/notifications.json | 3 + lib/__tests__/files/writeBoosts.json | 3 + lib/__tests__/files/writeLikes.json | 3 + lib/__tests__/users.jest.js | 3 + lib/account.js | 7 +- routes/admin.js | 3 +- 13 files changed, 140 insertions(+), 22 deletions(-) create mode 100644 lib/__tests__/ActivityPub.jest.js create mode 100644 lib/__tests__/files/boosts.json create mode 100644 lib/__tests__/files/likes.json create mode 100644 lib/__tests__/files/notifications.json create mode 100644 lib/__tests__/files/writeBoosts.json create mode 100644 lib/__tests__/files/writeLikes.json create mode 100644 lib/__tests__/users.jest.js diff --git a/design/partials/avatar.handlebars b/design/partials/avatar.handlebars index 32e69c9..6a2f074 100644 --- a/design/partials/avatar.handlebars +++ b/design/partials/avatar.handlebars @@ -4,4 +4,18 @@ {{else}} {{/if}} -{{#unless nolink}}{{/unless}} \ No newline at end of file +{{#unless nolink}}{{/unless}} + + + + \ No newline at end of file diff --git a/design/prefs.handlebars b/design/prefs.handlebars index 97f737c..25e8ac2 100644 --- a/design/prefs.handlebars +++ b/design/prefs.handlebars @@ -133,9 +133,18 @@
+
+ + +
+ + + + + diff --git a/design/public/home.handlebars b/design/public/home.handlebars index 73a55d4..5ed0810 100644 --- a/design/public/home.handlebars +++ b/design/public/home.handlebars @@ -21,7 +21,11 @@
{{actor.name}} {{getUsername actor.id}} - + + {{#if actor.bio}} +

{{actor.bio}}

+ {{/if}} + {{{actor.summary}}} {{#if actor.attachment}} @@ -87,4 +91,4 @@
{{/each}} More - + \ No newline at end of file diff --git a/lib/__tests__/ActivityPub.jest.js b/lib/__tests__/ActivityPub.jest.js new file mode 100644 index 0000000..917c248 --- /dev/null +++ b/lib/__tests__/ActivityPub.jest.js @@ -0,0 +1,7 @@ +import { ActivityPub } from '../ActivityPub'; + +describe('Tests for ActivityPubClient', () => { + test('Initial state', () => { + expect(ActivityPub.account).toBe(undefined); + }); +}); diff --git a/lib/__tests__/account.jest.js b/lib/__tests__/account.jest.js index 6abaf94..dd28130 100644 --- a/lib/__tests__/account.jest.js +++ b/lib/__tests__/account.jest.js @@ -6,6 +6,33 @@ import 'node-fetch'; jest.mock('node-fetch', () => jest.fn()); +describe('Tests for getInboxIndex', () => { + const getInboxIndex = () => { + const inboxIndexPath = 'lib/__tests__/files/inboxIndex.json'; + const inboxIndex = readJSONDictionary(inboxIndexPath, {}); + return inboxIndex; + }; + + test('Check successful', () => { + const expectedInboxIndex = { id: 'inboxIndex' }; + expect(getInboxIndex()).toStrictEqual(expectedInboxIndex); + }); +}); + +describe('Tests for writeInboxIndex', () => { + const inboxIndexPath = 'lib/__tests__/files/writeInboxIndex.json'; + const writeInboxIndex = data => { + writeJSONDictionary(inboxIndexPath, data); + }; + + test('Check successful', () => { + const expectedInboxIndex = { id: 'inboxIndex' }; + writeInboxIndex(expectedInboxIndex); + const jsonRaw = fs.readFileSync(inboxIndexPath); + expect(JSON.parse(jsonRaw)).toStrictEqual(expectedInboxIndex); + }); +}); + describe('Tests for isMyPost', () => { test('Check if a post is my post', () => { const { DOMAIN } = process.env; @@ -25,30 +52,67 @@ describe('Tests for isMyPost', () => { }); }); -describe('Tests for getInboxIndex', () => { - const getInboxIndex = () => { - const inboxIndexPath = 'lib/__tests__/files/inboxIndex.json'; - const inboxIndex = readJSONDictionary(inboxIndexPath, {}); - return inboxIndex; +describe('Tests for getNotifications', () => { + const notificationsFile = 'lib/__tests__/files/notifications.json'; + const getNotifications = () => { + return readJSONDictionary(notificationsFile); }; test('Check successful', () => { - const expectedInboxIndex = { id: 'inboxIndex' }; - expect(getInboxIndex()).toStrictEqual(expectedInboxIndex); + const expectedNotifications = { id: 'notifications' }; + expect(getNotifications()).toStrictEqual(expectedNotifications); }); }); -describe('Tests for writeInboxIndex', () => { - const inboxIndexPath = 'lib/__tests__/files/writeInboxIndex.json'; - const writeInboxIndex = data => { - writeJSONDictionary(inboxIndexPath, data); +describe('Tests for writeBoosts', () => { + const boostsFile = 'lib/__tests__/files/writeBoosts.json'; + const writeBoosts = data => { + return writeJSONDictionary(boostsFile, data); }; test('Check successful', () => { - const expectedInboxIndex = { id: 'inboxIndex' }; - writeInboxIndex(expectedInboxIndex); - const jsonRaw = fs.readFileSync(inboxIndexPath); - expect(JSON.parse(jsonRaw)).toStrictEqual(expectedInboxIndex); + const expectedBoosts = { id: 'boosts' }; + writeBoosts(expectedBoosts); + const jsonRaw = fs.readFileSync(boostsFile); + expect(JSON.parse(jsonRaw)).toStrictEqual(expectedBoosts); + }); +}); + +describe('Tests for getBoosts', () => { + const boostsFile = 'lib/__tests__/files/boosts.json'; + const getBoosts = () => { + return readJSONDictionary(boostsFile, []); + }; + + test('Check successful', () => { + const expectedBoosts = { id: 'boosts' }; + expect(getBoosts()).toStrictEqual(expectedBoosts); + }); +}); + +describe('Tests for writeLikes', () => { + const likesFile = 'lib/__tests__/files/writeLikes.json'; + const writeLikes = likes => { + return writeJSONDictionary(likesFile, likes); + }; + + test('Check successful', () => { + const expectedLikes = { id: 'likes' }; + writeLikes(expectedLikes); + const jsonRaw = fs.readFileSync(likesFile); + expect(JSON.parse(jsonRaw)).toStrictEqual(expectedLikes); + }); +}); + +describe('Tests for getLikes', () => { + const likesFile = 'lib/__tests__/files/likes.json'; + const getLikes = () => { + return readJSONDictionary(likesFile); + }; + + test('Check successful', () => { + const expectedLikes = { id: 'likes' }; + expect(getLikes()).toStrictEqual(expectedLikes); }); }); diff --git a/lib/__tests__/files/boosts.json b/lib/__tests__/files/boosts.json new file mode 100644 index 0000000..47e9152 --- /dev/null +++ b/lib/__tests__/files/boosts.json @@ -0,0 +1,3 @@ +{ + "id": "boosts" +} \ No newline at end of file diff --git a/lib/__tests__/files/likes.json b/lib/__tests__/files/likes.json new file mode 100644 index 0000000..7ffd850 --- /dev/null +++ b/lib/__tests__/files/likes.json @@ -0,0 +1,3 @@ +{ + "id": "likes" +} \ No newline at end of file diff --git a/lib/__tests__/files/notifications.json b/lib/__tests__/files/notifications.json new file mode 100644 index 0000000..39090cf --- /dev/null +++ b/lib/__tests__/files/notifications.json @@ -0,0 +1,3 @@ +{ + "id": "notifications" +} \ No newline at end of file diff --git a/lib/__tests__/files/writeBoosts.json b/lib/__tests__/files/writeBoosts.json new file mode 100644 index 0000000..47e9152 --- /dev/null +++ b/lib/__tests__/files/writeBoosts.json @@ -0,0 +1,3 @@ +{ + "id": "boosts" +} \ No newline at end of file diff --git a/lib/__tests__/files/writeLikes.json b/lib/__tests__/files/writeLikes.json new file mode 100644 index 0000000..7ffd850 --- /dev/null +++ b/lib/__tests__/files/writeLikes.json @@ -0,0 +1,3 @@ +{ + "id": "likes" +} \ No newline at end of file diff --git a/lib/__tests__/users.jest.js b/lib/__tests__/users.jest.js new file mode 100644 index 0000000..9d1779f --- /dev/null +++ b/lib/__tests__/users.jest.js @@ -0,0 +1,3 @@ +describe('Tests for fetchUser', () => { + test('Initial state', () => {}); +}); diff --git a/lib/account.js b/lib/account.js index ca1df52..7097250 100644 --- a/lib/account.js +++ b/lib/account.js @@ -247,13 +247,14 @@ export const isReplyToFollowing = async activity => { * @returns The `createActor` function returns an object representing an actor in the ActivityStreams * format. The `createWebfinger` function returns an object representing a WebFinger response. */ -export const createActor = (name, domain, pubkey) => { +export const createActor = (name, domain, pubkey, bio) => { return { '@context': ['https://www.w3.org/ns/activitystreams', 'https://w3id.org/security/v1'], id: `https://${domain}/u/${name}`, url: `https://${domain}/`, type: 'Person', name: `${name}`, + bio: `${bio || ''}`, preferredUsername: `${name}`, inbox: `https://${domain}/api/inbox`, outbox: `https://${domain}/api/outbox`, @@ -875,7 +876,7 @@ export const ensureAccount = async (name, domain) => { }); }; -export const updateAccount = async (name, domain) => { +export const updateAccount = async (name, domain, bio) => { // verify domain name const re = /^((?:(?:(?:\w[.\-+]?)*)\w)+)((?:(?:(?:\w[.\-+]?){0,62})\w)+)\.(\w{2,6})$/; if (!domain.match(re)) { @@ -902,7 +903,7 @@ export const updateAccount = async (name, domain) => { console.error(err); reject(err); } - const actorRecord = createActor(name, domain, publicKey); + const actorRecord = createActor(name, domain, publicKey, bio); const webfingerRecord = createWebfinger(name, domain); const apikey = crypto.randomBytes(16).toString('hex'); const account = { diff --git a/routes/admin.js b/routes/admin.js index 2b4b1f3..9c5d335 100644 --- a/routes/admin.js +++ b/routes/admin.js @@ -535,9 +535,10 @@ router.post('/prefs', (req, res) => { router.post('/prefsAccount', (req, res) => { // lget current prefs. const updates = req.body; + const bio = updates.bio; console.log('me ', ActivityPub.actor.name); console.log('GOT ACCOUNT UPDATES', updates); - updateAccount(updates.username, DOMAIN).then(myaccount => { + updateAccount(updates.username, DOMAIN, bio).then(myaccount => { // set the server to use the main account as its primary actor ActivityPub.account = myaccount; // app.set('account', myaccount); From 8b81074a0c6ed1abdca4dea47fa58a96497c6c46 Mon Sep 17 00:00:00 2001 From: kashishvjain <66744312+kashishvjain@users.noreply.github.com> Date: Thu, 30 Nov 2023 16:33:28 -0800 Subject: [PATCH 036/100] Added test Coverage Checks (#35) --- .github/workflows/codecov.yml | 31 +++++++++++++++++++++++++++++++ package.json | 2 +- 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/codecov.yml diff --git a/.github/workflows/codecov.yml b/.github/workflows/codecov.yml new file mode 100644 index 0000000..0ac616c --- /dev/null +++ b/.github/workflows/codecov.yml @@ -0,0 +1,31 @@ +name: Running Code Coverage + +on: [push, pull_request] + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [18.x, 16.x] + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + with: + fetch-depth: 2 + + - name: Set up Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + + - name: Install dependencies + run: npm install + + - name: Run tests + run: npm run test + + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v1 diff --git a/package.json b/package.json index b3e4622..bd260be 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "scripts": { "prepare": "husky install", "start": "node index.js", - "test": "jest", + "test": "jest --coverage", "postinstall": "copy-env-cli", "lint": "eslint lib/. && prettier --check lib/.", "lint:fix": "eslint lib/. --fix && prettier --write lib/." From 6ced237f542a786bcedc95fc15af5205ff28b73a Mon Sep 17 00:00:00 2001 From: Tigojiang Date: Thu, 30 Nov 2023 20:26:19 -0800 Subject: [PATCH 037/100] fix update user name display issue --- design/public/home.handlebars | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/design/public/home.handlebars b/design/public/home.handlebars index 5ed0810..2f8b87a 100644 --- a/design/public/home.handlebars +++ b/design/public/home.handlebars @@ -2,7 +2,7 @@
From 6ff7ddf7c7a5a216ac23f42d2abda46ff295dcf9 Mon Sep 17 00:00:00 2001 From: Enze Ma <38894303+sora1998@users.noreply.github.com> Date: Mon, 4 Dec 2023 11:39:46 -0800 Subject: [PATCH 038/100] avatar change --- design/partials/avatar.handlebars | 8 +- design/prefs.handlebars | 88 +++++++--- design/public/home.handlebars | 2 +- lib/account.js | 20 ++- package-lock.json | 262 +++++++++++++++++++++++++++++- package.json | 5 +- public/images/avatar/example.jpg | Bin 0 -> 42294 bytes routes/admin.js | 7 +- 8 files changed, 345 insertions(+), 47 deletions(-) create mode 100644 public/images/avatar/example.jpg diff --git a/design/partials/avatar.handlebars b/design/partials/avatar.handlebars index 6a2f074..f9969bf 100644 --- a/design/partials/avatar.handlebars +++ b/design/partials/avatar.handlebars @@ -1,12 +1,12 @@ {{#unless nolink}}{{/unless}} - {{#if actor.icon.url}} + {{#if actor.icon.url }} {{else}} - + {{/if}} {{#unless nolink}}{{/unless}} - +{{!-- \ No newline at end of file + --}} \ No newline at end of file diff --git a/design/prefs.handlebars b/design/prefs.handlebars index 25e8ac2..56bafde 100644 --- a/design/prefs.handlebars +++ b/design/prefs.handlebars @@ -6,10 +6,10 @@ {{#isEq queue.state 1}}🟢{{/isEq}} {{#isEq queue.state 3}}🔴{{/isEq}} {{#if queue.size}} - {{#if queue.shouldRun}}Running.{{/if}} - {{queue.size}} items remain. + {{#if queue.shouldRun}}Running.{{/if}} + {{queue.size}} items remain. {{else}} - Queue empty + Queue empty {{/if}} @@ -20,7 +20,7 @@ Interface Strings - +

@@ -30,22 +30,26 @@ Emoji Buttons - +

- +

- +

- +

- +

@@ -53,7 +57,8 @@

- +

@@ -61,19 +66,23 @@

- +

- +

- +

- +

@@ -93,12 +102,12 @@ {{#isEq queue.state 1}}🟢{{/isEq}} {{#isEq queue.state 3}}🔴{{/isEq}} {{#if queue.size}} - - {{#if queue.shouldRun}}Running.{{/if}} - {{queue.size}} items remain. - + + {{#if queue.shouldRun}}Running.{{/if}} + {{queue.size}} items remain. + {{else}} - Queue empty + Queue empty {{/if}}

@@ -119,14 +128,15 @@
{{!-- --}} - +
{{/each}} -
+
Account Profile
@@ -137,14 +147,38 @@
- - +
+ + + + + + + + + + + + + + + + + + + + + + + + +
- +
- - - + + + \ No newline at end of file diff --git a/design/public/home.handlebars b/design/public/home.handlebars index 5ed0810..2f8b87a 100644 --- a/design/public/home.handlebars +++ b/design/public/home.handlebars @@ -2,7 +2,7 @@
diff --git a/lib/account.js b/lib/account.js index 7097250..b46f67c 100644 --- a/lib/account.js +++ b/lib/account.js @@ -31,6 +31,10 @@ const logger = debug('ono:account'); const { DOMAIN } = process.env; +// TODO: +// Change the mydomain +const mydomain = "localhost:3000"; + /** * The function `getInboxIndex` returns the inbox index by reading a JSON dictionary from a specified * path. @@ -247,7 +251,10 @@ export const isReplyToFollowing = async activity => { * @returns The `createActor` function returns an object representing an actor in the ActivityStreams * format. The `createWebfinger` function returns an object representing a WebFinger response. */ -export const createActor = (name, domain, pubkey, bio) => { +export const createActor = (name, domain, pubkey, bio, img) => { + if (typeof img === "undefined") { + img = 'https://www.shutterstock.com/image-vector/user-profile-icon-vector-avatar-600nw-2247726673.jpg'; + } return { '@context': ['https://www.w3.org/ns/activitystreams', 'https://w3id.org/security/v1'], id: `https://${domain}/u/${name}`, @@ -261,10 +268,12 @@ export const createActor = (name, domain, pubkey, bio) => { followers: `https://${domain}/u/${name}/followers`, icon: { type: 'Image', - mediaType: 'image/png', + mediaType: 'image/jpg', // url: `https://${domain}/images/avatar.png` // default icon image, later can store locally - url: 'https://www.shutterstock.com/image-vector/user-profile-icon-vector-avatar-600nw-2247726673.jpg' + // url: 'https://www.shutterstock.com/image-vector/user-profile-icon-vector-avatar-600nw-2247726673.jpg' + // url: `https://${mydomain}/public/images/avatar/${img}`, + url: `${img}`, }, image: { type: 'Image', @@ -876,7 +885,8 @@ export const ensureAccount = async (name, domain) => { }); }; -export const updateAccount = async (name, domain, bio) => { +export const updateAccount = async (name, domain, bio, img) => { + console.log(img); // verify domain name const re = /^((?:(?:(?:\w[.\-+]?)*)\w)+)((?:(?:(?:\w[.\-+]?){0,62})\w)+)\.(\w{2,6})$/; if (!domain.match(re)) { @@ -903,7 +913,7 @@ export const updateAccount = async (name, domain, bio) => { console.error(err); reject(err); } - const actorRecord = createActor(name, domain, publicKey, bio); + const actorRecord = createActor(name, domain, publicKey, bio, img); const webfingerRecord = createWebfinger(name, domain); const apikey = crypto.randomBytes(16).toString('hex'); const account = { diff --git a/package-lock.json b/package-lock.json index 9683b32..93405a7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "cors": "^2.8.4", "debug": "^4.3.4", "dotenv": "^16.0.3", - "express": "^4.16.3", + "express": "^4.18.2", "express-basic-auth": "^1.1.5", "express-handlebars": "^6.0.6", "glob": "^8.0.3", @@ -24,6 +24,7 @@ "markdown-it": "^13.0.1", "md5": "^2.3.0", "moment": "^2.29.4", + "multer": "^1.4.5-lts.1", "node-fetch": "^3.3.0", "queue-promise": "^2.2.1", "rss-generator": "^0.0.3" @@ -2798,6 +2799,11 @@ "node": ">= 8" } }, + "node_modules/append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" + }, "node_modules/argparse": { "version": "2.0.1", "license": "Python-2.0" @@ -3136,8 +3142,7 @@ "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, "node_modules/builtins": { "version": "5.0.1", @@ -3162,6 +3167,17 @@ "node": ">=10" } }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, "node_modules/bytes": { "version": "3.1.2", "license": "MIT", @@ -3396,6 +3412,20 @@ "dev": true, "license": "MIT" }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, "node_modules/content-disposition": { "version": "0.5.4", "license": "MIT", @@ -3468,6 +3498,11 @@ "url": "https://opencollective.com/core-js" } }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, "node_modules/cors": { "version": "2.8.5", "license": "MIT", @@ -4299,7 +4334,8 @@ }, "node_modules/express": { "version": "4.18.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", @@ -5212,6 +5248,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, "node_modules/isexe": { "version": "2.0.0", "dev": true, @@ -6539,6 +6580,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, "node_modules/moment": { "version": "2.29.4", "license": "MIT", @@ -6550,6 +6602,23 @@ "version": "2.1.2", "license": "MIT" }, + "node_modules/multer": { + "version": "1.4.5-lts.1", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz", + "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==", + "dependencies": { + "append-field": "^1.0.0", + "busboy": "^1.0.0", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 6.0.0" + } + }, "node_modules/natural-compare": { "version": "1.4.0", "dev": true, @@ -7015,6 +7084,11 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, "node_modules/prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -7129,6 +7203,25 @@ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -7673,6 +7766,27 @@ "node": ">= 0.8" } }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, "node_modules/string-argv": { "version": "0.3.1", "dev": true, @@ -7994,6 +8108,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, "node_modules/uc.micro": { "version": "1.0.6", "license": "MIT" @@ -8114,6 +8233,11 @@ "punycode": "^2.1.0" } }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, "node_modules/utils-merge": { "version": "1.0.1", "license": "MIT", @@ -8282,6 +8406,14 @@ "version": "1.0.1", "license": "MIT" }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -10375,6 +10507,11 @@ "picomatch": "^2.0.4" } }, + "append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" + }, "argparse": { "version": "2.0.1" }, @@ -10614,8 +10751,7 @@ "buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, "builtins": { "version": "5.0.1", @@ -10635,6 +10771,14 @@ } } }, + "busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "requires": { + "streamsearch": "^1.1.0" + } + }, "bytes": { "version": "3.1.2" }, @@ -10780,6 +10924,17 @@ "version": "0.0.1", "dev": true }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, "content-disposition": { "version": "0.5.4", "requires": { @@ -10825,6 +10980,11 @@ "browserslist": "^4.22.1" } }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, "cors": { "version": "2.8.5", "requires": { @@ -11361,6 +11521,8 @@ }, "express": { "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", @@ -11909,6 +12071,11 @@ "call-bind": "^1.0.2" } }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, "isexe": { "version": "2.0.0", "dev": true @@ -12865,12 +13032,34 @@ "minimist": { "version": "1.2.7" }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "requires": { + "minimist": "^1.2.6" + } + }, "moment": { "version": "2.29.4" }, "ms": { "version": "2.1.2" }, + "multer": { + "version": "1.4.5-lts.1", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz", + "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==", + "requires": { + "append-field": "^1.0.0", + "busboy": "^1.0.0", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + } + }, "natural-compare": { "version": "1.4.0", "dev": true @@ -13144,6 +13333,11 @@ } } }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, "prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -13204,6 +13398,27 @@ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, "regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -13573,6 +13788,26 @@ "statuses": { "version": "2.0.1" }, + "streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, "string-argv": { "version": "0.3.1", "dev": true @@ -13780,6 +14015,11 @@ "is-typed-array": "^1.1.9" } }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, "uc.micro": { "version": "1.0.6" }, @@ -13851,6 +14091,11 @@ "punycode": "^2.1.0" } }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, "utils-merge": { "version": "1.0.1" }, @@ -13963,6 +14208,11 @@ "xml": { "version": "1.0.1" }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", diff --git a/package.json b/package.json index b3e4622..561143e 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "scripts": { "prepare": "husky install", "start": "node index.js", - "test": "jest", + "test": "jest --coverage", "postinstall": "copy-env-cli", "lint": "eslint lib/. && prettier --check lib/.", "lint:fix": "eslint lib/. --fix && prettier --write lib/." @@ -39,7 +39,7 @@ "cors": "^2.8.4", "debug": "^4.3.4", "dotenv": "^16.0.3", - "express": "^4.16.3", + "express": "^4.18.2", "express-basic-auth": "^1.1.5", "express-handlebars": "^6.0.6", "glob": "^8.0.3", @@ -47,6 +47,7 @@ "markdown-it": "^13.0.1", "md5": "^2.3.0", "moment": "^2.29.4", + "multer": "^1.4.5-lts.1", "node-fetch": "^3.3.0", "queue-promise": "^2.2.1", "rss-generator": "^0.0.3" diff --git a/public/images/avatar/example.jpg b/public/images/avatar/example.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b3665b48a1503780620674d98c58306020220c50 GIT binary patch literal 42294 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 { // lget current prefs. const updates = req.body; const bio = updates.bio; + const img = updates.avatarInput; console.log('me ', ActivityPub.actor.name); console.log('GOT ACCOUNT UPDATES', updates); - updateAccount(updates.username, DOMAIN, bio).then(myaccount => { + updateAccount(updates.username, DOMAIN, bio, img).then(myaccount => { // set the server to use the main account as its primary actor ActivityPub.account = myaccount; // app.set('account', myaccount); @@ -776,4 +779,4 @@ router.post('/boost', async (req, res) => { }); } writeBoosts(boosts); -}); +}); \ No newline at end of file From 9d6e2f5ce99f87085ce91f914470f3a655696a87 Mon Sep 17 00:00:00 2001 From: Enze Ma <38894303+sora1998@users.noreply.github.com> Date: Mon, 4 Dec 2023 11:44:58 -0800 Subject: [PATCH 039/100] format fix --- routes/admin.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/routes/admin.js b/routes/admin.js index 6ca36e7..2241016 100644 --- a/routes/admin.js +++ b/routes/admin.js @@ -28,8 +28,6 @@ const { DOMAIN } = process.env; export const router = express.Router(); const logger = debug('ono:admin'); -import multer from 'multer'; - /** * Return the INDEX in form of JSON */ From c71cb3fcb632e06f87b154d41c0f5188236b4e7e Mon Sep 17 00:00:00 2001 From: Enze Ma <38894303+sora1998@users.noreply.github.com> Date: Mon, 4 Dec 2023 11:47:54 -0800 Subject: [PATCH 040/100] small fix --- lib/account.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/account.js b/lib/account.js index b46f67c..f1588b7 100644 --- a/lib/account.js +++ b/lib/account.js @@ -33,7 +33,7 @@ const { DOMAIN } = process.env; // TODO: // Change the mydomain -const mydomain = "localhost:3000"; +// const mydomain = "localhost:3000"; /** * The function `getInboxIndex` returns the inbox index by reading a JSON dictionary from a specified From 01a708126fe6d9823b7cde9a398416f49fa68fc6 Mon Sep 17 00:00:00 2001 From: Tigojiang Date: Wed, 6 Dec 2023 14:17:48 -0800 Subject: [PATCH 041/100] update ui --- public/css/main.css | 110 ++-- public/css/secret.css | 1228 +++++++++++++++++++++++------------------ 2 files changed, 753 insertions(+), 585 deletions(-) diff --git a/public/css/main.css b/public/css/main.css index c3d5012..9a5878f 100644 --- a/public/css/main.css +++ b/public/css/main.css @@ -1,116 +1,110 @@ body { - background: #F0F0f0; - color: #333; - font-size: 18px; + background: #f0f0f0; + color: #333; + font-size: 18px; } #wrapper { - display: flex; - width: 100%; - flex-direction: row; - gap: 0; + display: flex; + width: 100%; + flex-direction: row; + gap: 0; } #main { - height: 100vh; - overflow-y: scroll; - flex-grow: 1; - padding-bottom: 100px; + height: 100vh; + overflow-y: scroll; + flex-grow: 1; + padding-bottom: 100px; } -#content { - display: flex; - flex-direction: column; - gap: 2rem; +#content { + display: flex; + flex-direction: column; + gap: 2rem; } - -a { color: #8c8dff; } +a { + color: #8c8dff; +} .stream { - width: 100%; - margin: 0px auto; - max-width: 40rem; - text-overflow: ellipsis; - overflow-x: hidden; + width: 100%; + margin: 0px auto; + max-width: 40rem; + text-overflow: ellipsis; + overflow-x: hidden; } .activity { - border-top: 1px solid #393f4f; - background: #FFF; - padding: 1rem; + border-top: 1px solid #393f4f; + background: #fff; + padding: 1rem; } .activity .header { - display: flex; - flex-direction: row; - gap: 1rem; + display: flex; + flex-direction: row; + gap: 1rem; } .activity .header .avatar { - height: 50px; - width: 50px; + height: 50px; + width: 50px; } .activity .attachment img { - max-width: 100%; + max-width: 100%; } - .follow_box { - padding: 1rem; + padding: 1rem; } .follow_box p { - margin: 0; + margin: 0; } - - - .profileHeader { - height: 150px; - /* background: #111122; */ + height: 150px; + /* background: #111122; */ } .profileHeader img { - object-fit: cover; - height: 150px; - width: 100%; + object-fit: cover; + height: 150px; + width: 100%; } .profile { - /* background: #333344; */ + /* background: #333344; */ } - .profileToolbar { - padding: 1rem; - display: flex; + padding: 1rem; + display: flex; } .profileToolbar .avatarLink { - flex-grow: 0; - margin-top: calc(-50px - 1rem); + flex-grow: 0; + margin-top: calc(-50px - 1rem); } .profileToolbar .avatar { - width: 110px; - height: 110px; - border: 5px solid #333344; + width: 110px; + height: 110px; + border: 5px solid #333344; } .profileToolbar .tools { - text-align: right; - flex-grow: 1; + text-align: right; + flex-grow: 1; } - .profileBody { - padding: 0 1rem 1rem; + padding: 0 1rem 1rem; } .profileBody .author { - font-size: 1.25rem; - margin-bottom: 0.25rem; + font-size: 1.25rem; + margin-bottom: 0.25rem; } - diff --git a/public/css/secret.css b/public/css/secret.css index a90a905..14d3dab 100644 --- a/public/css/secret.css +++ b/public/css/secret.css @@ -3,11 +3,11 @@ --text: #333333; --link: #00018c; --secondary: #ccc; - --tertiary: #F0f0f0; + --tertiary: #f0f0f0; --contrast: #414141; --separator: #7777bb; - --shade: rgba(255,255,255,0.25); - --highlight: rgba(0,0,0,0.25); + --shade: rgba(255, 255, 255, 0.25); + --highlight: rgba(0, 0, 0, 0.25); --accent: rgba(250, 4, 197, 1); } @@ -18,890 +18,1064 @@ --link: #8c8dff; --secondary: #444455; --tertiary: #333344; - --contrast: #C0C0C0; + --contrast: #c0c0c0; --separator: #111122; - --shade: rgba(0,0,0,0.25); - --highlight: rgba(255,255,255,0.25); + --shade: rgba(0, 0, 0, 0.25); + --highlight: rgba(255, 255, 255, 0.25); --accent: rgba(250, 4, 197, 1); } } body { - background: var(--background); - color: var(--text); - font-size: 15px; - padding: 0; - margin: 0; - font-family: Arial, Helvetica, sans-serif; + background: var(--background); + color: var(--text); + font-size: 15px; + padding: 0; + margin: 0; + font-family: Arial, Helvetica, sans-serif; } * { - box-sizing: border-box; -} - -fieldset { - padding: 0; - margin: 0; - border: none; + box-sizing: border-box; +} + +.preferences-form fieldset { + border: 2px solid #2c3e50; + padding: 10px 20px; + margin-bottom: 20px; + border-radius: 8px; + box-shadow: 0 0 15px rgba(44, 62, 80, 0.2); + border: none; + position: relative; + padding: 20px; + border-radius: 8px; +} + +.preferences-form fieldset::after { + content: ''; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + border-radius: 8px; + background: linear-gradient(to right, #8e44ad, #3498db); + z-index: -1; + padding: 3px; + border-radius: 5px; +} +legend { + background-color: #3498db; /* Background color */ + color: white; /* Text color */ + padding: 5px 15px; /* Padding */ + border-radius: 4px; /* Rounded corners */ + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Subtle shadow */ } .toolbar { - position: fixed; - bottom: 0; - left: 0; - right: 0; - border-top: 1px solid var(--secondary); - font-size: 1.5rem; - background: var(--tertiary); + position: fixed; + bottom: 0; + left: 0; + right: 0; + border-top: 1px solid var(--secondary); + font-size: 1.5rem; + background: var(--tertiary); } .toolbar ul { - display: flex; - flex-direction: row; + display: flex; + flex-direction: row; } .toolbar ul li { - display: inline-block; - text-align: center; - flex-grow: 1; - position: relative; - padding: 0; - margin: 0; - border-right: 1px solid var(--secondary); + display: inline-block; + text-align: center; + flex-grow: 1; + position: relative; + padding: 0; + margin: 0; + border-right: 1px solid var(--secondary); } .badge { - position: absolute; - right: calc(50% - 1.35rem); - top: 0.25rem; - font-size: 0.8rem; - border-radius: 20px; - padding: 0.1rem 0.25rem; - background: var(--accent); + position: absolute; + right: calc(50% - 1.35rem); + top: 0.25rem; + font-size: 0.8rem; + border-radius: 20px; + padding: 0.1rem 0.25rem; + background: var(--accent); } .badge span { - display: none; + display: none; } .toolbar ul { - list-style-type: none; - padding: 0; - margin: 0; + list-style-type: none; + padding: 0; + margin: 0; } .toolbar ul li .label { - display: none; + display: none; } .toolbar ul li a { - display: block; - padding: 0.5rem 2rem 1rem; - color: var(--text); - text-decoration: none; - letter-spacing: 0.04rem; - + display: block; + padding: 0.5rem 2rem 1rem; + color: var(--text); + text-decoration: none; + letter-spacing: 0.04rem; } #main { - padding-bottom: 60px; + padding-bottom: 60px; } - nav ul { - list-style-type: none; - margin: 0; - padding: 0; + list-style-type: none; + margin: 0; + padding: 0; } - #nav { - /* display: none; */ - position: fixed; - bottom: 0; - left: 0; - right: 0; - - border-top: 1px solid var(--secondary); - font-size: 1.5rem; - background: var(--tertiary); + /* display: none; */ + position: fixed; + bottom: 0; + left: 0; + right: 0; + border-top: 1px solid var(--secondary); + font-size: 1.5rem; + background: var(--tertiary); } - #nav ul { - display: flex; - flex-direction: row; + display: flex; + flex-direction: row; } #nav ul li { - display: inline-block; - text-align: center; - flex-grow: 1; - position: relative; - padding: 0; - margin: 0; - border-right: 1px solid var(--secondary); + display: inline-block; + text-align: center; + flex-grow: 1; + position: relative; + padding: 0; + margin: 0; + border-right: 1px solid var(--secondary); } -#nav ul li a { - display: block; - text-decoration: none; - padding: 0.5rem 2rem 1rem; +#nav ul li a { + display: block; + text-decoration: none; + padding: 0.5rem 2rem 1rem; } -#nav ul li#logo { display: none; } +#nav ul li#logo { + display: none; +} #menu { - width: 90vw; - max-width: 300px; - position: fixed; - top: 0; - left: -100%; - bottom: 0; - transition: left 0.25s; - box-shadow: 10px 0px 5px rgba(0,0,0,0.25); - - overflow-y: auto; - background: var(--tertiary); - border-right: 1px solid var(--separator); - flex-grow: 0; - font-size: 14px; - letter-spacing: 0.04rem; - padding-bottom: 2rem; + width: 90vw; + max-width: 300px; + position: fixed; + top: 0; + left: -100%; + bottom: 0; + transition: left 0.25s; + box-shadow: 10px 0px 5px rgba(0, 0, 0, 0.25); + + overflow-y: auto; + background: var(--tertiary); + border-right: 1px solid var(--separator); + flex-grow: 0; + font-size: 14px; + letter-spacing: 0.04rem; + padding-bottom: 2rem; } #menu.active { - left: 0; + left: 0; } #menu form { - padding: 0.5rem 1rem; + padding: 0.5rem 1rem; } #menu input { - width: 100%; + width: 100%; } #menu a { - color: var(--text); - text-decoration: none; + color: var(--text); + text-decoration: none; - padding: 0.5rem 1rem; - display: block; - + padding: 0.5rem 1rem; + display: block; } #menu a:hover { - background: var(--highlight); + background: var(--highlight); } #content { - padding-bottom: 3rem; + padding-bottom: 3rem; } #content.nonav { - padding-bottom: 0; + padding-bottom: 0; } #top_nav { - margin-top: 1rem; - display: none; + margin-top: 1rem; + display: none; } #close_menu { - background: none; - border: 0; - padding: 1rem; - width: 100%; - text-align: right; + background: none; + border: 0; + padding: 1rem; + width: 100%; + text-align: right; } #top_feeds { - margin-top: 1rem; - font-size: 0.75rem; + margin-top: 1rem; + font-size: 0.75rem; } #top_nav li { - position: relative; + position: relative; } #menu li.current a { - background-color: var(--secondary); -} + background-color: var(--secondary); +} #top_feeds li a { - display: flex; - align-items: center; + display: flex; + align-items: center; } #top_feeds li a img { - width: 25px; - height: 25px; - margin-right: 1rem; + width: 25px; + height: 25px; + margin-right: 1rem; } - @media screen and (min-width: 769px) { + #wrapper { + height: 100vh; + display: flex; + flex-direction: row; + } + + #close_menu { + display: none; + } + + #nav { + width: 50px; + overflow-y: auto; + background: var(--secondary); + border-right: 1px solid var(--separator); + position: inherit; + flex-shrink: 0; + } + + #nav ul li { + display: none; + } + #nav ul li a { + padding: 0; + } + #nav ul li#logo { + display: block; + text-align: center; + padding-top: 1rem; + } + + #menu { + position: inherit; + box-shadow: none; + } - #wrapper { - height: 100vh; - display: flex; - flex-direction: row; - } - - #close_menu { - display: none; - } - - #nav { - width: 50px; - overflow-y: auto; - background: var(--secondary); - border-right: 1px solid var(--separator); - position: inherit; - flex-shrink: 0; - } - - - #nav ul li { - display: none; - } - #nav ul li a { - padding: 0; - } - #nav ul li#logo { display: block; text-align: center; padding-top: 1rem; } - - - #menu { - position: inherit; - box-shadow: none; - } - - - #top_nav { - display: block; - } - - - #top_feeds { - margin-top: 2rem; - font-size: 0.75rem; - } - - - #content { - flex-grow: 1; - flex-shrink: 1; - overflow-y: auto; - } - - #content .stream { - margin: 1rem; - } - - - .toolbar { - position: relative; - height: 100vh; - flex-shrink: 0; - border-right: 1px solid var(--secondary); - border-top: none; - font-size: 2rem; - background: var(--tertiary); - } - - .toolbar ul { - display: block; - } - - .toolbar ul li { - text-align: left; - display: block; - position: relative; - border-right: none; - border-bottom: 1px solid var(--secondary); - } - - - .badge { - position: absolute; - right: 0.25rem; - top: 0.25rem; - font-size: 0.8rem; - border-radius: 20px; - padding: 0.25rem 0.5rem; - background: var(--shade); - } - .badge span { - display: none; - } - - .toolbar ul li .label { - display: inline; - } - - .toolbar { - font-size: 0.9rem; - } - - .toolbar ul li a { - padding: 1rem 0.5rem; - padding-right: 2rem; - color: var(--text); - text-decoration: none; - letter-spacing: 0.04rem; - } + #top_nav { + display: block; + } + + #top_feeds { + margin-top: 2rem; + font-size: 0.75rem; + } + + #content { + flex-grow: 1; + flex-shrink: 1; + overflow-y: auto; + } + + #content .stream { + margin: 1rem; + } + + .toolbar { + position: relative; + height: 100vh; + flex-shrink: 0; + border-right: 1px solid var(--secondary); + border-top: none; + font-size: 2rem; + background: var(--tertiary); + } + + .toolbar ul { + display: block; + } + + .toolbar ul li { + text-align: left; + display: block; + position: relative; + border-right: none; + border-bottom: 1px solid var(--secondary); + } + + .badge { + position: absolute; + right: 0.25rem; + top: 0.25rem; + font-size: 0.8rem; + border-radius: 20px; + padding: 0.25rem 0.5rem; + background: var(--shade); + } + .badge span { + display: none; + } + + .toolbar ul li .label { + display: inline; + } + + .toolbar { + font-size: 0.9rem; + } + + .toolbar ul li a { + padding: 1rem 0.5rem; + padding-right: 2rem; + color: var(--text); + text-decoration: none; + letter-spacing: 0.04rem; + } } .toolbar ul li a:hover { - background: var(--highlight); + background: var(--highlight); } #header { - width: 100%; - font-family: 'Courier New', Courier, monospace; - padding: 0.5rem; - background: var(--separator); - position: relative; + width: 100%; + font-family: 'Courier New', Courier, monospace; + padding: 0.5rem; + background: var(--separator); + position: relative; } #header nav { - position: absolute; - right: 2rem; - top: 0.5rem; + position: absolute; + right: 2rem; + top: 0.5rem; } #main { - height: 100vh; - overflow-y: scroll; - flex-grow: 1; + height: 100vh; + overflow-y: scroll; + flex-grow: 1; } -a { color: var(--link); } +a { + color: var(--link); +} .stream { - width: 100%; - max-width: 100%; - text-overflow: ellipsis; - overflow-x: hidden; + width: 100%; + max-width: 100%; + text-overflow: ellipsis; + overflow-x: hidden; } @media screen and (min-width: 769px) { + .stream { + max-width: 45rem; + } - .stream { - max-width: 40rem; - } - - .box { - max-width: 40rem; - } - + .box { + max-width: 45rem; + } } header { - color: var(--text); - font-weight: bold; - padding: 0.5rem 1rem; - background: var(--separator); + color: var(--text); + font-weight: bold; + padding: 0.5rem 1rem; + background: var(--separator); } - header.back { - display: flex; - align-items: center; - gap: 1rem; +header.back { + display: flex; + align-items: center; + gap: 1rem; } - header .unread { - float: right; - font-size: 0.8rem; - border-radius: 5px; - padding: 0.25rem 0.5rem; - background: var(--highlight); - text-decoration: none; - color: var(--text); +header .unread { + float: right; + font-size: 0.8rem; + border-radius: 5px; + padding: 0.25rem 0.5rem; + background: var(--highlight); + text-decoration: none; + color: var(--text); } -header a { - text-decoration: none; +header a { + text-decoration: none; } .empty { - padding: 1rem; - color: var(--highlight); + padding: 1rem; + color: var(--highlight); } - .activity { - border-bottom: 1px solid var(--secondary); - background: var(--tertiary); - padding: 1rem 1rem; - line-height: 1.25rem; + border-bottom: 1px solid var(--secondary); + background: var(--tertiary); + padding: 1rem 1rem; + line-height: 1.25rem; } .byline { - display: flex; - flex-direction: row; - align-items: center; - gap: 1rem; + display: flex; + flex-direction: row; + align-items: center; + gap: 1rem; } .author { - font-weight: bold; - color: var(--text); - text-decoration: none; - display: block; + font-weight: bold; + color: var(--text); + text-decoration: none; + display: block; } .handle { - color: var(--contrast); + color: var(--contrast); } - .personCard { - display: flex; - flex-direction: row; - align-items: start; - gap: 1rem; + display: flex; + flex-direction: row; + align-items: start; + gap: 1rem; } .personCard .profile { - flex-grow: 1; + flex-grow: 1; } .personCard .author { - font-weight: bold; - color: var(--text); - text-decoration: none; - display: block; + font-weight: bold; + color: var(--text); + text-decoration: none; + display: block; } .personCard .handle { - color: var(--contrast); + color: var(--contrast); } .personCard .tools { - flex-shrink: 0; - flex-grow: 0; + flex-shrink: 0; + flex-grow: 0; } #lookup_results .personCard { - gap: 0; + gap: 0; } .activity .content { - padding-left: calc(50px + 1rem); + padding-left: calc(50px + 1rem); } .content_warning { - background: var(--shade); - padding: 0.5rem 1rem; - display: flex; + background: var(--shade); + padding: 0.5rem 1rem; + display: flex; } .content_warning .tools { - flex-grow: 1; - text-align: right; - /* padding-right: 1rem; */ + flex-grow: 1; + text-align: right; + /* padding-right: 1rem; */ } .content_warning .tools a { - margin: 0px auto; - padding: 0.25rem 1rem; - border-radius: 4px; - background: var(--shade); - text-decoration: none; + margin: 0px auto; + padding: 0.25rem 1rem; + border-radius: 4px; + background: var(--shade); + text-decoration: none; } @media screen and (min-width: 769px) { - .activity .content { - padding-left: 0; - } - .activity .content_warning { - padding-left: 0.5rem; - } + .activity .content { + padding-left: 0; + } + .activity .content_warning { + padding-left: 0.5rem; + } } -.activity .collapsed{ - display: none; +.activity .collapsed { + display: none; } .activity .boost { - background: var(--shade); - padding: 0.25rem 0.5rem; - margin-bottom: 1rem; + background: var(--shade); + padding: 0.25rem 0.5rem; + margin-bottom: 1rem; } .avatar { - height: 50px; - width: 50px; + height: 50px; + width: 50px; } .activity footer { - display: flex; - flex-direction: row; - align-items: center; + display: flex; + flex-direction: row; + align-items: center; } .permalink { - color: var(--secondary); - text-decoration: none; + color: var(--secondary); + text-decoration: none; } .permalink:hover { - color: var(--link); - text-decoration: underline; + color: var(--link); + text-decoration: underline; } .activity .attachment { - background: var(--shade); + background: var(--shade); } .activity .attachment img, .activity .attachment video { - - margin: 0px auto; - width: 100%; - height: 200px; - object-fit: contain; + margin: 0px auto; + width: 100%; + height: 200px; + object-fit: contain; } #composer { - padding: 1rem; + padding: 1rem; } @media screen and (min-width: 769px) { - #composer { - padding: 0; - margin-top: 1rem; - } + #composer { + padding: 0; + margin-top: 1rem; + } } #composer.mini { - margin-bottom: 0; - background-color: var(--tertiary); - border-bottom: 1px solid var(--secondary); - position: fixed; - bottom: 50px; - left: 0; - width: 100%; + margin-bottom: 0; + background-color: var(--tertiary); + border-bottom: 1px solid var(--secondary); + position: fixed; + bottom: 50px; + left: 0; + width: 100%; } #composer.mini fieldset { - display: flex; + display: flex; } - #composer.mini #post { - flex-grow: 1; + flex-grow: 1; } #composer.mini #submit { - border-radius: 0; + border-radius: 0; } - textarea#post { - width: 100%; - height: 5rem; - margin-bottom: 0.5rem; + width: 100%; + height: 5rem; + margin-bottom: 0.5rem; } -input#cw { - width: 100%; - margin-bottom: 0.5rem; +input#cw { + width: 100%; + margin-bottom: 0.5rem; } #submit { - padding: 0.5rem 1rem; - background: #0cc13f; - color: var(--text); - border: none; - border-radius: 5px; - float: right; - + padding: 0.5rem 1rem; + background: #0cc13f; + color: var(--text); + border: none; + border-radius: 5px; + float: right; } -.content .tools { flex-grow: 1; } -.content .tools div { display: inline-block; } -.content .tools button { font-size: 1rem; background: none; border: none; padding: 0; margin-right: 0.5rem; } +.content .tools { + flex-grow: 1; +} +.content .tools div { + display: inline-block; +} +.content .tools button { + font-size: 1rem; + background: none; + border: none; + padding: 0; + margin-right: 0.5rem; +} /* .content .tools button.active { background: var(--highlight); } */ -.content .tools button .active { display: none; } -.content .tools button.active .active { display: block; } -.content .tools button.active .inactive { display: none; } - -button.follow { background: none; border: none; } -button.follow .active { display: none; } -button.follow.active .active { display: block; } - -button.follow.active .inactive { display: none; } +.content .tools button .active { + display: none; +} +.content .tools button.active .active { + display: block; +} +.content .tools button.active .inactive { + display: none; +} -button.bigfollow { - background: #0cc13f; - color: var(--text); - border: none; - border-radius: 5px; - padding: 0.5rem 1rem; +button.follow { + background: none; + border: none; +} +button.follow .active { + display: none; +} +button.follow.active .active { + display: block; } -button.bigfollow .active { display: none; } -button.bigfollow.active .active { display: block; } -button.bigfollow.active .inactive { display: none; } +button.follow.active .inactive { + display: none; +} +button.bigfollow { + background: #0cc13f; + color: var(--text); + border: none; + border-radius: 5px; + padding: 0.5rem 1rem; +} +button.bigfollow .active { + display: none; +} +button.bigfollow.active .active { + display: block; +} +button.bigfollow.active .inactive { + display: none; +} @media screen and (min-width: 769px) { - .content .tools button { font-size: 1.5rem; } + .content .tools button { + font-size: 1.5rem; + } } .notification { - margin-bottom: 1rem; + margin-bottom: 1rem; } -.notification a { - color: var(--contrast); +.notification a { + color: var(--contrast); } .preview { - padding-left: 1rem; - color: var(--contrast); + padding-left: 1rem; + color: var(--contrast); } .Follow .preview { - display: flex; - flex-direction: row; - gap: 1rem; + display: flex; + flex-direction: row; + gap: 1rem; } .Follow .preview .avatar { - height: 50px; - width: 50px; + height: 50px; + width: 50px; } .showThread { - display: inline-block; - margin: 0px auto; - padding: 0.25rem 1rem; - border-radius: 4px; - background: var(--shade); - text-decoration: none; + display: inline-block; + margin: 0px auto; + padding: 0.25rem 1rem; + border-radius: 4px; + background: var(--shade); + text-decoration: none; } .moreLink { - display: inline-block; - margin: 1rem auto; - font-size: 1.25rem; - padding: 0.25rem 1rem; - border-radius: 4px; - background: var(--shade); - text-decoration: none; + display: inline-block; + margin: 1rem auto; + font-size: 1.25rem; + padding: 0.25rem 1rem; + border-radius: 4px; + background: var(--shade); + text-decoration: none; } .box { - margin: 1rem; - background: var(--tertiary); + margin: 1rem; + background: var(--tertiary); } .box a { - display: flex; - padding: 1rem; - text-decoration: none; + display: flex; + padding: 1rem; + text-decoration: none; } .box a span { - flex-grow: 1; - text-align: right; + flex-grow: 1; + text-align: right; } .box form { - padding: 1rem; + padding: 1rem; } .box fieldset { - margin-bottom: 1rem; + margin-bottom: 1rem; } .box fieldset p { - display: flex; + display: flex; } .box fieldset p label { - width: 100px; - flex-grow: 0; - flex-shrink: 0; + width: 100px; + flex-grow: 0; + flex-shrink: 0; } .box fieldset legend { - font-weight: bold; + font-weight: bold; } #emojis input { - font-size: 2rem; + font-size: 2rem; } - .profileHeader { - height: 150px; - background: var(--separator); + height: 150px; + background: var(--separator); } .profileHeader img { - object-fit: cover; - height: 150px; - width: 100%; + object-fit: cover; + height: 150px; + width: 100%; } .profile { - background: var(--tertiary); - display: flex; - justify-content: center; - align-items: center; - flex-direction: column; + background: var(--tertiary); + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; } - .profileToolbar { - padding: 1rem; - display: flex; + padding: 1rem; + display: flex; } .profileToolbar .avatarLink { - flex-grow: 0; - margin-top: calc(-50px - 1rem); + flex-grow: 0; + margin-top: calc(-50px - 1rem); } .profileToolbar .avatar { - width: 110px; - height: 110px; - border: 5px solid var(--tertiary); + width: 110px; + height: 110px; + border: 5px solid var(--tertiary); } .profileToolbar .tools { - text-align: right; - flex-grow: 1; + text-align: right; + flex-grow: 1; } - .profileBody { - padding: 0 1rem 1rem; + padding: 0 1rem 1rem; } .profileBody .author { - font-size: 1.25rem; - margin-bottom: 0.25rem; + font-size: 1.25rem; + margin-bottom: 0.25rem; } - .inbox { - display: flex; - flex-direction: column; - position: relative; - padding-bottom: 60px; - height: calc(100vh - 90px); + display: flex; + flex-direction: column; + position: relative; + padding-bottom: 60px; + height: calc(100vh - 90px); } @media screen and (min-width: 769px) { - .inbox { - padding-bottom: 0; - height: calc(100vh - 65px); - } + .inbox { + padding-bottom: 0; + height: calc(100vh - 65px); + } } .inbox .messages { - flex-grow: 1; - flex-direction: column-reverse; - display: flex; - overflow-y: auto; + flex-grow: 1; + flex-direction: column-reverse; + display: flex; + overflow-y: auto; } .inbox .message { - margin: 0.25rem 1rem; + margin: 0.25rem 1rem; } .message_text { - background: var(--highlight); - border-radius: 0.5rem; - padding: 1rem; - max-width: 75%; - display: inline-block; + background: var(--highlight); + border-radius: 0.5rem; + padding: 1rem; + max-width: 75%; + display: inline-block; } .message_timestamp { - margin-top: 0.25rem; - font-size: 0.8rem; - color: var(--highlight); + margin-top: 0.25rem; + font-size: 0.8rem; + color: var(--highlight); } .inbox .message_text *:first-child { - margin-top: 0; + margin-top: 0; } .inbox .message_text *:last-child { - margin-bottom: 0; + margin-bottom: 0; } -.inbox .message.outgoing { - display: flex; - flex-direction: column; - align-items: flex-end; +.inbox .message.outgoing { + display: flex; + flex-direction: column; + align-items: flex-end; } -.inbox .message.outgoing .message_text { - background: var(--shade); +.inbox .message.outgoing .message_text { + background: var(--shade); } .feeds { - flex-shrink: 1; - background: var(--tertiary); + flex-shrink: 1; + background: var(--tertiary); } .feeds.inbox_visible { - display: none; + display: none; } @media screen and (min-width: 769px) { - - #composer.mini { - background: none; - border-bottom: none; - bottom: 0; - left: 0; - position: inherit; - } + #composer.mini { + background: none; + border-bottom: none; + bottom: 0; + left: 0; + position: inherit; + } } .feeds .feed { - position: relative; - padding: 0.5rem 1rem; - padding-right: 4rem; - border-bottom: 1px solid var(--secondary); - display: flex; - align-items: center; + position: relative; + padding: 0.5rem 1rem; + padding-right: 4rem; + border-bottom: 1px solid var(--secondary); + display: flex; + align-items: center; } .feeds .feed .avatar { - width: 25px; - height: 25px; - margin-right: 1rem; + width: 25px; + height: 25px; + margin-right: 1rem; } -.feeds .feed a { - text-decoration: none; +.feeds .feed a { + text-decoration: none; } .feeds .unread { - font-weight: bold; - border-right: 10px solid var(--accent); - /* background: var(--secondary); */ + font-weight: bold; + border-right: 10px solid var(--accent); + /* background: var(--secondary); */ } .feeds .current { - /* font-weight: bold; */ - background: var(--secondary); + /* font-weight: bold; */ + background: var(--secondary); } .meta_tag { - background: var(--shade); - color: var(--contrast); - border-radius: 3px; - font-size: 0.7rem; - padding: 0.15rem; + background: var(--shade); + color: var(--contrast); + border-radius: 3px; + font-size: 0.7rem; + padding: 0.15rem; } details#bio { - margin-top: 1rem; -} \ No newline at end of file + margin-top: 1rem; +} + +.preferences-settings div { + display: flex; + align-items: center; + margin-bottom: 10px; +} + +label { + width: 100px; + margin-right: 10px; +} + +input { + padding: 8px 15px; + margin: 8px 0; + max-width: 100%; + display: inline-block; + border: 1px solid #ccc; + border-radius: 4px; + box-sizing: border-box; +} + +input:focus { + outline: none; + border-color: #4caf50; + box-shadow: 0 0 5px rgba(76, 175, 80, 0.5); +} + +input::placeholder { + color: #a9a9a9; + font-style: italic; +} + +input:hover { + border-color: #888; +} + +.preferences-form button { + background-color: #3cb4c7; + color: #333344; + border: none; + padding: 10px 20px; + text-align: center; + text-decoration: none; + display: inline-block; + font-size: 16px; + margin: 4px 2px; + transition: background-color 0.3s; + cursor: pointer; + border-radius: 5px; +} + +.preferences-form button:hover { + background-color: #e6b800; +} + +#content { + padding-left: 50px; + padding-top: 10px; +} + +.preferences-form header { + background: -webkit-linear-gradient(left, #d3d3d3, #d3d3d3, #d3d3d3); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + width: 20ch; + white-space: nowrap; + overflow: hidden; + font-family: monospace; + font-size: 1.2em; +} +.queue-status header { + background: -webkit-linear-gradient(left, #d3d3d3, #d3d3d3, #d3d3d3); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + width: 20ch; + white-space: nowrap; + overflow: hidden; + font-family: monospace; + font-size: 1.2em; +} +.queue-status .queue-details { + border: 2px solid #2c3e50; + padding: 10px 20px; + margin-bottom: 20px; + border-radius: 8px; + box-shadow: 0 0 15px rgba(44, 62, 80, 0.2); + border: none; + position: relative; + padding: 20px; + border-radius: 8px; +} + +.queue-status .queue-details::after { + content: ''; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + border-radius: 8px; + background: linear-gradient(to right, #8e44ad, #3498db); + z-index: -1; + padding: 3px; + border-radius: 5px; +} + +#composer_form { + background: white; + margin: 20px auto; + width: 80%; + max-width: 700px; + border: 1px solid #ddd; + padding: 20px; + border-radius: 8px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); +} + +#composer_form button { + background-color: #3cb4c7; + color: #333344; + border: none; + padding: 10px 20px; + text-align: center; + text-decoration: none; + display: inline-block; + font-size: 16px; + margin: 4px 2px; + transition: background-color 0.3s; + cursor: pointer; + border-radius: 5px; +} + +#composer_form button:hover { + background-color: #e6b800; +} From 434254c38b0f94bed4153615308a8fdb4a69566c Mon Sep 17 00:00:00 2001 From: Justin Nguyen Date: Thu, 7 Dec 2023 01:16:44 -0800 Subject: [PATCH 042/100] refactor and add more tests --- lib/__tests__/account.jest.js | 58 ++++++++++++++++++---------- lib/__tests__/files/dms/inboxes.json | 3 ++ lib/__tests__/files/inboxes.json | 3 -- lib/__tests__/storage.jest.js | 4 +- 4 files changed, 42 insertions(+), 26 deletions(-) create mode 100644 lib/__tests__/files/dms/inboxes.json delete mode 100644 lib/__tests__/files/inboxes.json diff --git a/lib/__tests__/account.jest.js b/lib/__tests__/account.jest.js index dd28130..b840c0f 100644 --- a/lib/__tests__/account.jest.js +++ b/lib/__tests__/account.jest.js @@ -1,35 +1,40 @@ -import { isMyPost } from '../account'; +import { getInboxIndex, writeInboxIndex, isMyPost, getNotifications, writeNotifications } from '../account'; import { readJSONDictionary, writeJSONDictionary } from '../storage'; +import * as storage from '../storage'; import fs from 'fs'; import 'node-fetch'; jest.mock('node-fetch', () => jest.fn()); -describe('Tests for getInboxIndex', () => { - const getInboxIndex = () => { - const inboxIndexPath = 'lib/__tests__/files/inboxIndex.json'; - const inboxIndex = readJSONDictionary(inboxIndexPath, {}); - return inboxIndex; - }; +const testFileDirectoryPath = 'lib/__tests__/files/'; +afterEach(() => { + jest.restoreAllMocks(); +}); + +describe('Tests for getInboxIndex', () => { test('Check successful', () => { - const expectedInboxIndex = { id: 'inboxIndex' }; + jest.replaceProperty(storage, 'pathToDMs', testFileDirectoryPath + 'dms/'); + + const expectedInboxIndex = { id: 'inboxes' }; expect(getInboxIndex()).toStrictEqual(expectedInboxIndex); }); }); describe('Tests for writeInboxIndex', () => { - const inboxIndexPath = 'lib/__tests__/files/writeInboxIndex.json'; - const writeInboxIndex = data => { - writeJSONDictionary(inboxIndexPath, data); - }; + const inboxesPath = 'lib/__tests__/files/dms/inboxes.json'; test('Check successful', () => { - const expectedInboxIndex = { id: 'inboxIndex' }; - writeInboxIndex(expectedInboxIndex); - const jsonRaw = fs.readFileSync(inboxIndexPath); - expect(JSON.parse(jsonRaw)).toStrictEqual(expectedInboxIndex); + fs.unlinkSync(inboxesPath); + expect(fs.existsSync(inboxesPath)).toBe(false); + + jest.replaceProperty(storage, 'pathToDMs', testFileDirectoryPath + 'dms/'); + + const expectedInboxes = { id: 'inboxes' }; + writeInboxIndex(expectedInboxes); + const jsonRaw = fs.readFileSync(inboxesPath); + expect(JSON.parse(jsonRaw)).toStrictEqual(expectedInboxes); }); }); @@ -53,17 +58,28 @@ describe('Tests for isMyPost', () => { }); describe('Tests for getNotifications', () => { - const notificationsFile = 'lib/__tests__/files/notifications.json'; - const getNotifications = () => { - return readJSONDictionary(notificationsFile); - }; - test('Check successful', () => { + jest.replaceProperty(storage, 'notificationsFile', testFileDirectoryPath + 'notifications.json'); + const expectedNotifications = { id: 'notifications' }; expect(getNotifications()).toStrictEqual(expectedNotifications); }); }); +describe('Tests for writeNotifications', () => { + test('Check successful', () => { + fs.unlinkSync(testFileDirectoryPath + 'notifications.json'); + expect(fs.existsSync(testFileDirectoryPath + 'notifications.json')).toBe(false); + + jest.replaceProperty(storage, 'notificationsFile', testFileDirectoryPath + 'notifications.json'); + + const expectedNotifications = { id: 'notifications' }; + writeNotifications(expectedNotifications); + const jsonRaw = fs.readFileSync(testFileDirectoryPath + 'notifications.json'); + expect(JSON.parse(jsonRaw)).toStrictEqual(expectedNotifications); + }); +}); + describe('Tests for writeBoosts', () => { const boostsFile = 'lib/__tests__/files/writeBoosts.json'; const writeBoosts = data => { diff --git a/lib/__tests__/files/dms/inboxes.json b/lib/__tests__/files/dms/inboxes.json new file mode 100644 index 0000000..c3557b9 --- /dev/null +++ b/lib/__tests__/files/dms/inboxes.json @@ -0,0 +1,3 @@ +{ + "id": "inboxes" +} \ No newline at end of file diff --git a/lib/__tests__/files/inboxes.json b/lib/__tests__/files/inboxes.json deleted file mode 100644 index 7f3445f..0000000 --- a/lib/__tests__/files/inboxes.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "id": "test" -} \ No newline at end of file diff --git a/lib/__tests__/storage.jest.js b/lib/__tests__/storage.jest.js index 27263bd..ef83cec 100644 --- a/lib/__tests__/storage.jest.js +++ b/lib/__tests__/storage.jest.js @@ -1,4 +1,4 @@ -const { +import { pathToFiles, pathToPosts, isMyPost, @@ -15,7 +15,7 @@ const { getFileName, getLikesFileName, createFileName -} = require('../storage'); +} from '../storage.js'; import fs from 'fs'; import path from 'path'; import md5 from 'md5'; From 9825c2fd52deee11af5ceeaa8bf9b15b5b93c2d0 Mon Sep 17 00:00:00 2001 From: kashishvjain <66744312+kashishvjain@users.noreply.github.com> Date: Thu, 7 Dec 2023 13:13:41 -0800 Subject: [PATCH 043/100] Changed the USERNAME variable to USER_NAME (#44) This helps the server not confused between USERNAME of windows and of the .env file --- .env.example | 2 +- Dockerfile | 2 +- README.md | 35 +++++++++++++++++++---------------- index.js | 8 ++++---- routes/public.js | 8 ++++---- 5 files changed, 29 insertions(+), 26 deletions(-) diff --git a/.env.example b/.env.example index 1701099..e41859b 100644 --- a/.env.example +++ b/.env.example @@ -1,4 +1,4 @@ -USERNAME= +USER_NAME= PASS= DOMAIN= PORT= diff --git a/Dockerfile b/Dockerfile index fe3c22e..40c7913 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,7 +17,7 @@ COPY . . # Env Vars ENV PORT=3000 ENV DOMAIN="" -ENV USERNAME="" +ENV USER_NAME="" ENV PASS="" # Expose port diff --git a/README.md b/README.md index e5fd7e5..2ecd377 100644 --- a/README.md +++ b/README.md @@ -5,11 +5,12 @@ This was created and is maintained by [Ben Brown](https://benbrown.com). Currently, this means: -- a stand-alone NodeJS web application +- a stand-alone NodeJS web application - with no external service dependencies - that is hostable on Glitch or commodity virtualhost Including features: + - Follow people (on Mastodon, other instances) - Compose posts and deliver on the web, and also via ActivityPub, RSS - Fave, boost and reply to posts @@ -18,9 +19,10 @@ Including features: - Block people or instances Not yet supported: + - Media uploads -## Warning: Experimental Software! +## Warning: Experimental Software! This software should be considered an EXPERIMENTAL PROTOTYPE. Do not use it to store or exchange sensitive information. @@ -32,7 +34,7 @@ Do not use it to store or exchange sensitive information. Because of the way the Mastodon works, once you start to engage with users on other instances, you will start to receive traffic from a -wide array of other instances -- not all of which is necessary or +wide array of other instances -- not all of which is necessary or relevant to you. As a result, operating this software on a small basis may result in unexpected amounts of incoming traffic. @@ -83,7 +85,7 @@ When you are ready to start, run: ## Config Initial configuration of your instance is done by editing the -.env file to include your desired USERNAME, PASSWORD, and DOMAIN NAME. +.env file to include your desired USER_NAME, PASSWORD, and DOMAIN NAME. These values MUST BE SET before you launch the application, as they are used to generate your account details, including your Fediverse actor ID. @@ -91,13 +93,13 @@ Fediverse actor ID. In the .env file, put: ``` -USERNAME=yourusername +USER_NAME=yourusername PASS=yourpasswordforadmintools DOMAIN=yourdomainname PORT=3000 ``` -USERNAME and PASS are required to login to the private dashboard tools. +USER_NAME and PASS are required to login to the private dashboard tools. When you launch the app for the first time, these values will be used to create the `.data/account.json` file which is the source of your @@ -111,17 +113,14 @@ the real URL served by this app. Also note that it is embedded in every post you write - so if you change values in the `account.json` file, your previous posts may break. - ## Login To login, visit `https://yourdomain.com/private` and provide the username and password from your .env file - - ## Debugging If you want more logging or want to see what is happening in the background, -enable debugging by adding DEBUG=ono:* to the .env file, or starting the app +enable debugging by adding DEBUG=ono:\* to the .env file, or starting the app with: `DEBUG=ono:* npm start` @@ -139,10 +138,9 @@ Cached user information is in `.data/users` Follower list, following list, like list, boost list, block list, and notifications can all be found in their own files at the root -of the `.data` folder. This is your data! Back it up if you care +of the `.data` folder. This is your data! Back it up if you care about it. - ## Host This is a node app that runs by default on port 3000, or the port @@ -173,6 +171,7 @@ WHOA! What happened? Well, a copy of the Shuttlecraft code was sent to a new, un 4. Configure your domain to proxy requests to the localhost port. A sample `Caddyfile` is included in the repo. [Install Caddy](https://caddyserver.com/download) and run: + ``` caddy run --config Caddyfile ``` @@ -186,33 +185,37 @@ caddy run --config Caddyfile ``` 3. Test locally: ``` - docker run -e PORT=3000 -e DOMAIN="your-domain.com" -e USERNAME="yourUsername" -e PASS="yourPassword" -p "3000:3000" "${yourRegistryUsername}/shuttlecraft" + docker run -e PORT=3000 -e DOMAIN="your-domain.com" -e USER_NAME="yourUsername" -e PASS="yourPassword" -p "3000:3000" "${yourRegistryUsername}/shuttlecraft" ``` 4. Push the image to your registry: ``` docker push "${yourRegistryUsername}/shuttlecraft:latest" ``` -5. Deploy the image to your container platform with the required environment variables (`DOMAIN`, `USERNAME`, `PASS`). -6. Configure a web service to proxy requests to the container port and provide HTTPS (see "Reverse proxy" above). +5. Deploy the image to your container platform with the required environment variables (`DOMAIN`, `USER_NAME`, `PASS`). +6. Configure a web service to proxy requests to the container port and provide HTTPS (see "Reverse proxy" above). ## Customize This app uses HandlebarsJS for templating. Customize the public pages: + - Templates are in `design/public/home.handlebars` and `design/public/note.handlebars` and `design/layouts/public.handlebars` - CSS is in `public/css/main.css` Customize your avatar: + - Replace `public/images/avatar.png` - As necessary, update the url in `.data/account.json` inside the actor.icon.url field Customize the backend: + - Templates are in `design/dashboard.handlebars` and `design/notifications.handlebars` and `design/layouts/private.handlebars` - Some common components in `design/partials` - CSS in `public/css/secret.css` To block users or instances: + - Add an entry to the file at `.data/blocks` - You can block a user using their actor ID (something like https://foo.bar/@jerk) or their entire domain (https://foo.bar/) -- Restart the app +- Restart the app diff --git a/index.js b/index.js index 2c8750f..8a6b7b9 100644 --- a/index.js +++ b/index.js @@ -34,9 +34,9 @@ import { UserProfileRouter, WebfingerRouter, inbox, outbox, admin, notes, public // load process.env from .env file dotenv.config(); -const { USERNAME, PASS, DOMAIN, PORT } = process.env; +const { USER_NAME, PASS, DOMAIN, PORT } = process.env; -const envVariables = ['USERNAME', 'PASS', 'DOMAIN']; +const envVariables = ['USER_NAME', 'PASS', 'DOMAIN']; const PATH_TO_TEMPLATES = './design'; /** @@ -231,7 +231,7 @@ setExpressApp(app); const asyncAuthorizer = (username, password, callback) => { let isAuthorized = false; // Check if the provided password matches the hardcoded username - const isPasswordAuthorized = username === USERNAME; + const isPasswordAuthorized = username === USER_NAME; // Check if the provided username matches the hardcoded password const isUsernameAuthorized = password === PASS; @@ -287,7 +287,7 @@ const basicUserAuth = basicAuth({ challenge: true }); -ensureAccount(USERNAME, DOMAIN).then(myaccount => { +ensureAccount(USER_NAME, DOMAIN).then(myaccount => { const authWrapper = (req, res, next) => { if (req.cookies.token) { if (req.cookies.token === myaccount.apikey) { diff --git a/routes/public.js b/routes/public.js index c18d538..84857d8 100644 --- a/routes/public.js +++ b/routes/public.js @@ -17,7 +17,7 @@ import { fetchUser } from '../lib/users.js'; export const router = express.Router(); dotenv.config(); -const { USERNAME, DOMAIN } = process.env; +const { USER_NAME, DOMAIN } = process.env; const logger = debug('notes'); @@ -121,7 +121,7 @@ router.get('/', async (req, res) => { layout: 'public', next: offset + posts.length, domain: DOMAIN, - user: USERNAME + user: USER_NAME }); }); @@ -135,7 +135,7 @@ router.get('/feed', async (req, res) => { } = await getOutboxPosts(0); const feed = new RSS({ - title: `${USERNAME}@${DOMAIN}`, + title: `${USER_NAME}@${DOMAIN}`, site_url: DOMAIN, pubDate: posts[0].published }); @@ -187,7 +187,7 @@ router.get('/notes/:guid', async (req, res) => { activitystream: notes, layout: 'public', domain: DOMAIN, - user: USERNAME + user: USER_NAME }); } } From b9a8b34201bbb9f465ac1b4794191d87debe7f5d Mon Sep 17 00:00:00 2001 From: Justin Nguyen Date: Thu, 7 Dec 2023 18:20:14 -0800 Subject: [PATCH 044/100] refactor tests --- lib/__tests__/account.jest.js | 91 +++++++++++++----------- lib/__tests__/files/inboxIndex.json | 3 - lib/__tests__/files/writeBoosts.json | 3 - lib/__tests__/files/writeInboxIndex.json | 3 - lib/__tests__/files/writeLikes.json | 3 - lib/__tests__/storage.jest.js | 4 -- lib/account.js | 10 +-- 7 files changed, 54 insertions(+), 63 deletions(-) delete mode 100644 lib/__tests__/files/inboxIndex.json delete mode 100644 lib/__tests__/files/writeBoosts.json delete mode 100644 lib/__tests__/files/writeInboxIndex.json delete mode 100644 lib/__tests__/files/writeLikes.json diff --git a/lib/__tests__/account.jest.js b/lib/__tests__/account.jest.js index b840c0f..92f3f7d 100644 --- a/lib/__tests__/account.jest.js +++ b/lib/__tests__/account.jest.js @@ -1,5 +1,15 @@ -import { getInboxIndex, writeInboxIndex, isMyPost, getNotifications, writeNotifications } from '../account'; -import { readJSONDictionary, writeJSONDictionary } from '../storage'; +import { + getInboxIndex, + writeInboxIndex, + isMyPost, + getNotifications, + writeNotifications, + getBoosts, + writeBoosts, + getLikes, + writeLikes, + getAccount +} from '../account'; import * as storage from '../storage'; import fs from 'fs'; @@ -23,7 +33,7 @@ describe('Tests for getInboxIndex', () => { }); describe('Tests for writeInboxIndex', () => { - const inboxesPath = 'lib/__tests__/files/dms/inboxes.json'; + const inboxesPath = testFileDirectoryPath + 'dms/inboxes.json'; test('Check successful', () => { fs.unlinkSync(inboxesPath); @@ -67,78 +77,75 @@ describe('Tests for getNotifications', () => { }); describe('Tests for writeNotifications', () => { + const notificationsPath = testFileDirectoryPath + 'notifications.json'; + test('Check successful', () => { - fs.unlinkSync(testFileDirectoryPath + 'notifications.json'); - expect(fs.existsSync(testFileDirectoryPath + 'notifications.json')).toBe(false); + fs.unlinkSync(notificationsPath); + expect(fs.existsSync(notificationsPath)).toBe(false); - jest.replaceProperty(storage, 'notificationsFile', testFileDirectoryPath + 'notifications.json'); + jest.replaceProperty(storage, 'notificationsFile', notificationsPath); const expectedNotifications = { id: 'notifications' }; writeNotifications(expectedNotifications); - const jsonRaw = fs.readFileSync(testFileDirectoryPath + 'notifications.json'); + const jsonRaw = fs.readFileSync(notificationsPath); expect(JSON.parse(jsonRaw)).toStrictEqual(expectedNotifications); }); }); -describe('Tests for writeBoosts', () => { - const boostsFile = 'lib/__tests__/files/writeBoosts.json'; - const writeBoosts = data => { - return writeJSONDictionary(boostsFile, data); - }; - +describe('Tests for getBoosts', () => { test('Check successful', () => { + jest.replaceProperty(storage, 'boostsFile', testFileDirectoryPath + 'boosts.json'); + const expectedBoosts = { id: 'boosts' }; - writeBoosts(expectedBoosts); - const jsonRaw = fs.readFileSync(boostsFile); - expect(JSON.parse(jsonRaw)).toStrictEqual(expectedBoosts); + expect(getBoosts()).toStrictEqual(expectedBoosts); }); }); -describe('Tests for getBoosts', () => { - const boostsFile = 'lib/__tests__/files/boosts.json'; - const getBoosts = () => { - return readJSONDictionary(boostsFile, []); - }; +describe('Tests for writeBoosts', () => { + const boostsPath = testFileDirectoryPath + 'boosts.json'; test('Check successful', () => { + fs.unlinkSync(boostsPath); + expect(fs.existsSync(boostsPath)).toBe(false); + + jest.replaceProperty(storage, 'boostsFile', boostsPath); + const expectedBoosts = { id: 'boosts' }; - expect(getBoosts()).toStrictEqual(expectedBoosts); + writeBoosts(expectedBoosts); + const jsonRaw = fs.readFileSync(boostsPath); + expect(JSON.parse(jsonRaw)).toStrictEqual(expectedBoosts); }); }); -describe('Tests for writeLikes', () => { - const likesFile = 'lib/__tests__/files/writeLikes.json'; - const writeLikes = likes => { - return writeJSONDictionary(likesFile, likes); - }; - +describe('Tests for getLikes', () => { test('Check successful', () => { + jest.replaceProperty(storage, 'likesFile', testFileDirectoryPath + 'likes.json'); + const expectedLikes = { id: 'likes' }; - writeLikes(expectedLikes); - const jsonRaw = fs.readFileSync(likesFile); - expect(JSON.parse(jsonRaw)).toStrictEqual(expectedLikes); + expect(getLikes()).toStrictEqual(expectedLikes); }); }); -describe('Tests for getLikes', () => { - const likesFile = 'lib/__tests__/files/likes.json'; - const getLikes = () => { - return readJSONDictionary(likesFile); - }; +describe('Tests for writeLikes', () => { + const likesPath = testFileDirectoryPath + 'likes.json'; test('Check successful', () => { + fs.unlinkSync(likesPath); + expect(fs.existsSync(likesPath)).toBe(false); + + jest.replaceProperty(storage, 'likesFile', likesPath); + const expectedLikes = { id: 'likes' }; - expect(getLikes()).toStrictEqual(expectedLikes); + writeLikes(expectedLikes); + const jsonRaw = fs.readFileSync(likesPath); + expect(JSON.parse(jsonRaw)).toStrictEqual(expectedLikes); }); }); describe('Tests for getAccount', () => { - const accountFile = 'lib/__tests__/files/account.json'; - const getAccount = () => { - return readJSONDictionary(accountFile, {}); - }; - test('Check successful', () => { + jest.replaceProperty(storage, 'accountFile', testFileDirectoryPath + 'account.json'); + const expectedAccount = { id: 'account' }; expect(getAccount()).toStrictEqual(expectedAccount); }); diff --git a/lib/__tests__/files/inboxIndex.json b/lib/__tests__/files/inboxIndex.json deleted file mode 100644 index 012f7a6..0000000 --- a/lib/__tests__/files/inboxIndex.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "id": "inboxIndex" -} \ No newline at end of file diff --git a/lib/__tests__/files/writeBoosts.json b/lib/__tests__/files/writeBoosts.json deleted file mode 100644 index 47e9152..0000000 --- a/lib/__tests__/files/writeBoosts.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "id": "boosts" -} \ No newline at end of file diff --git a/lib/__tests__/files/writeInboxIndex.json b/lib/__tests__/files/writeInboxIndex.json deleted file mode 100644 index 012f7a6..0000000 --- a/lib/__tests__/files/writeInboxIndex.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "id": "inboxIndex" -} \ No newline at end of file diff --git a/lib/__tests__/files/writeLikes.json b/lib/__tests__/files/writeLikes.json deleted file mode 100644 index 7ffd850..0000000 --- a/lib/__tests__/files/writeLikes.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "id": "likes" -} \ No newline at end of file diff --git a/lib/__tests__/storage.jest.js b/lib/__tests__/storage.jest.js index ef83cec..d18279f 100644 --- a/lib/__tests__/storage.jest.js +++ b/lib/__tests__/storage.jest.js @@ -26,10 +26,6 @@ const zeroPad = num => { } else return num; }; -beforeEach(() => { - jest.resetModules(); -}); - describe('Tests for isMyPost', () => { test('Check if a post is my post', () => { const { DOMAIN } = process.env; diff --git a/lib/account.js b/lib/account.js index f1588b7..df6e83a 100644 --- a/lib/account.js +++ b/lib/account.js @@ -41,7 +41,7 @@ const { DOMAIN } = process.env; * @returns The function `getInboxIndex` returns the `inboxIndex` object. */ export const getInboxIndex = () => { - const inboxIndexPath = path.resolve(pathToDMs, `inboxes.json`); + const inboxIndexPath = path.resolve(pathToDMs, 'inboxes.json'); const inboxIndex = readJSONDictionary(inboxIndexPath, {}); return inboxIndex; }; @@ -50,7 +50,7 @@ export const getInboxIndex = () => { * The function writes data to a JSON file that represents the index of an inbox. */ export const writeInboxIndex = data => { - const inboxIndexPath = path.resolve(pathToDMs, `inboxes.json`); + const inboxIndexPath = path.resolve(pathToDMs, 'inboxes.json'); writeJSONDictionary(inboxIndexPath, data); }; @@ -252,7 +252,7 @@ export const isReplyToFollowing = async activity => { * format. The `createWebfinger` function returns an object representing a WebFinger response. */ export const createActor = (name, domain, pubkey, bio, img) => { - if (typeof img === "undefined") { + if (typeof img === 'undefined') { img = 'https://www.shutterstock.com/image-vector/user-profile-icon-vector-avatar-600nw-2247726673.jpg'; } return { @@ -273,13 +273,13 @@ export const createActor = (name, domain, pubkey, bio, img) => { // default icon image, later can store locally // url: 'https://www.shutterstock.com/image-vector/user-profile-icon-vector-avatar-600nw-2247726673.jpg' // url: `https://${mydomain}/public/images/avatar/${img}`, - url: `${img}`, + url: `${img}` }, image: { type: 'Image', mediaType: 'image/png', // default header image, later can store locally - url: `https://static.vecteezy.com/system/resources/thumbnails/011/125/580/small/torn-light-blue-paper-with-white-copyspace-for-your-message-png.png` + url: 'https://static.vecteezy.com/system/resources/thumbnails/011/125/580/small/torn-light-blue-paper-with-white-copyspace-for-your-message-png.png' }, publicKey: { id: `https://${domain}/u/${name}#main-key`, From b58338f554a06b32f6b08c5475ddccb591b98d4d Mon Sep 17 00:00:00 2001 From: Justin Nguyen Date: Thu, 7 Dec 2023 23:24:28 -0800 Subject: [PATCH 045/100] add more tests for account.js --- lib/__tests__/account.jest.js | 22 ++++++++++++++----- .../files/dms/justin@shuttlecraft.com.json | 3 +++ 2 files changed, 19 insertions(+), 6 deletions(-) create mode 100644 lib/__tests__/files/dms/justin@shuttlecraft.com.json diff --git a/lib/__tests__/account.jest.js b/lib/__tests__/account.jest.js index 92f3f7d..d2c77a1 100644 --- a/lib/__tests__/account.jest.js +++ b/lib/__tests__/account.jest.js @@ -1,6 +1,7 @@ import { getInboxIndex, writeInboxIndex, + getInbox, isMyPost, getNotifications, writeNotifications, @@ -24,7 +25,7 @@ afterEach(() => { }); describe('Tests for getInboxIndex', () => { - test('Check successful', () => { + test('Check getting inbox index successfully', () => { jest.replaceProperty(storage, 'pathToDMs', testFileDirectoryPath + 'dms/'); const expectedInboxIndex = { id: 'inboxes' }; @@ -33,21 +34,30 @@ describe('Tests for getInboxIndex', () => { }); describe('Tests for writeInboxIndex', () => { - const inboxesPath = testFileDirectoryPath + 'dms/inboxes.json'; + const inboxPath = testFileDirectoryPath + 'dms/inboxes.json'; - test('Check successful', () => { - fs.unlinkSync(inboxesPath); - expect(fs.existsSync(inboxesPath)).toBe(false); + test('Check writing inbox index successfully', () => { + fs.unlinkSync(inboxPath); + expect(fs.existsSync(inboxPath)).toBe(false); jest.replaceProperty(storage, 'pathToDMs', testFileDirectoryPath + 'dms/'); const expectedInboxes = { id: 'inboxes' }; writeInboxIndex(expectedInboxes); - const jsonRaw = fs.readFileSync(inboxesPath); + const jsonRaw = fs.readFileSync(inboxPath); expect(JSON.parse(jsonRaw)).toStrictEqual(expectedInboxes); }); }); +describe('Tests for getInbox', () => { + test('Check getting inbox successfully', () => { + jest.replaceProperty(storage, 'pathToDMs', testFileDirectoryPath + 'dms/'); + + const expectedInbox = { id: 'justin@shuttlecraft.com' }; + expect(getInbox('justin@shuttlecraft.com')).toStrictEqual(expectedInbox); + }); +}); + describe('Tests for isMyPost', () => { test('Check if a post is my post', () => { const { DOMAIN } = process.env; diff --git a/lib/__tests__/files/dms/justin@shuttlecraft.com.json b/lib/__tests__/files/dms/justin@shuttlecraft.com.json new file mode 100644 index 0000000..2042363 --- /dev/null +++ b/lib/__tests__/files/dms/justin@shuttlecraft.com.json @@ -0,0 +1,3 @@ +{ + "id": "justin@shuttlecraft.com" +} \ No newline at end of file From 9ae95f0d90c4e6dcb677949b6c3db5939eda6f3e Mon Sep 17 00:00:00 2001 From: Enze Ma Date: Sun, 10 Dec 2023 04:07:52 -0800 Subject: [PATCH 046/100] revert handlebar --- design/dashboard.handlebars | 8 ++++---- design/dms.handlebars | 10 +++++----- design/feeds.handlebars | 10 +++++----- design/findresults.handlebars | 6 +++--- design/followers.handlebars | 4 ++-- design/following.handlebars | 2 +- design/notifications.handlebars | 18 +++++++++--------- 7 files changed, 29 insertions(+), 29 deletions(-) diff --git a/design/dashboard.handlebars b/design/dashboard.handlebars index 66a73a9..901e184 100644 --- a/design/dashboard.handlebars +++ b/design/dashboard.handlebars @@ -1,7 +1,7 @@
{{prefs.icons.latest}} Latest - +
{{#if activitystream}} @@ -9,7 +9,7 @@
{{#with this}} {{#if boost}} -
+
🚀 Boosted by {{booster.name}}
@@ -19,7 +19,7 @@
{{/each}} {{else}} -
+

Follow some people to fill your feed with posts.

Suggestion: Follow benbrown@hackers.town @@ -30,7 +30,7 @@ {{#if next}}

{{/if}}
diff --git a/design/dms.handlebars b/design/dms.handlebars index d7d7750..7b4651b 100644 --- a/design/dms.handlebars +++ b/design/dms.handlebars @@ -1,6 +1,6 @@
{{#if error}} -
diff --git a/design/findresults.handlebars b/design/findresults.handlebars index 52df3f4..bba000d 100644 --- a/design/findresults.handlebars +++ b/design/findresults.handlebars @@ -9,20 +9,20 @@ name="handle" aria-label="Search for people" value="{{query}}" /> - + {{!-- --}} {{#if results}}
{{#each results}} -
+
{{> personCard actor=this nobio=true}}
{{/each}}
{{else}} -
+
No results found.
{{/if}} diff --git a/design/followers.handlebars b/design/followers.handlebars index e0d072d..f09b796 100644 --- a/design/followers.handlebars +++ b/design/followers.handlebars @@ -1,11 +1,11 @@ -
+
🤷🏽‍♂️ Followers
{{#each followers}} -
+
{{> personCard actor=this}}
{{/each}} diff --git a/design/following.handlebars b/design/following.handlebars index 47e9106..93ae271 100644 --- a/design/following.handlebars +++ b/design/following.handlebars @@ -5,7 +5,7 @@
{{#each following}} -
+
{{> personCard actor=this}}
{{/each}} diff --git a/design/notifications.handlebars b/design/notifications.handlebars index d4d2942..e82b482 100644 --- a/design/notifications.handlebars +++ b/design/notifications.handlebars @@ -1,19 +1,19 @@
{{prefs.icons.notifications}} Notifications - +
{{#each notifications}} -
+
{{#with this}} {{#isEq notification.type "Announce"}} -
+
🚀 {{or ../actor.name ../actor.preferredUsername}} boosted your post {{timesince ../time}}
-
+
{{{...note.content}}}
{{/isEq}} @@ -21,22 +21,22 @@ {{> note actor=../actor note=../note}} {{/isEq}} {{#isEq notification.type "Mention"}} -
+
💬 {{or ../actor.name ../actor.preferredUsername}} mentioned you {{timesince ../time}}
{{> note actor=../actor note=../note}} {{/isEq}} {{#isEq notification.type "Like"}} -
+
⭐️ {{or ../actor.name ../actor.preferredUsername}} liked your post {{timesince ../time}}
-
+
{{{...note.content}}}
{{/isEq}} {{#isEq notification.type "Follow"}} -
+
🤷🏽‍♂️ {{or ../actor.name ../actor.preferredUsername}} followed you {{timesince ../time}}
{{> byline actor=../actor}} @@ -48,7 +48,7 @@ {{#if next}} {{/if}}
From a639d0d9c2d7de6e09c17e10f02e0f831c22f1f9 Mon Sep 17 00:00:00 2001 From: Enze Ma Date: Sun, 10 Dec 2023 15:29:10 +0000 Subject: [PATCH 047/100] handlebar rever and some small ui adjust --- design/dashboard.handlebars | 56 +++++++++---------- design/dms.handlebars | 57 ++++++++----------- design/feeds.handlebars | 74 ++++++++++++------------- design/findresults.handlebars | 34 +++++------- design/followers.handlebars | 19 +++---- design/following.handlebars | 19 +++---- design/notifications.handlebars | 86 ++++++++++++----------------- design/prefs.handlebars | 97 +-------------------------------- public/css/secret.css | 8 +-- 9 files changed, 156 insertions(+), 294 deletions(-) diff --git a/design/dashboard.handlebars b/design/dashboard.handlebars index 901e184..f1674ba 100644 --- a/design/dashboard.handlebars +++ b/design/dashboard.handlebars @@ -1,32 +1,32 @@
-
- {{prefs.icons.latest}} Latest - -
-
- {{#if activitystream}} - {{#each activitystream}} -
- {{#with this}} - {{#if boost}} -
- 🚀 Boosted by - {{booster.name}} -
- {{/if}} - {{> note note=note me=../me}} - {{/with}} -
- {{/each}} - {{else}} -
-

Follow some people to fill your feed with posts.

-

Suggestion: Follow - benbrown@hackers.town -

-
- {{/if}} -
+
+ {{prefs.icons.latest}} Latest + +
+
+ {{#if activitystream}} + {{#each activitystream}} + {{#with this}} +
+ {{#if boost}} +
+ 🚀 boosted by {{booster.name}} +
+ {{/if}} + {{> note note=note me=../me}} +
+ {{/with}} + {{/each}} + {{else}} +
+

Follow some people to fill your feed with posts.

+

I suggest following me! + I'm benbrown@hackers.town +

+
+ {{/if}} +
+ {{#if next}}
diff --git a/design/dms.handlebars b/design/dms.handlebars index 7b4651b..e79ba62 100644 --- a/design/dms.handlebars +++ b/design/dms.handlebars @@ -1,36 +1,27 @@ -
- {{#if error}} - - {{else}} -
- {{#if feed}} -
- -
-
-
    - {{#each inbox}} -
  • - {{> dm message=this me=../me}} -
  • - {{/each}} -
- {{> minicomposer inReplyTo=lastIncoming to=feed.id}} -
- {{else}} -
- Select a conversation. To create a new one, navigate to a profile. -
- {{/if}} -
- {{/if}} -
+{{#if error}} +
+ {{error.message}} +
+{{else}} +
+ {{#if feed}} +
Inbox » Messages with {{feed.preferredUsername}}
+
+
+ {{#each inbox}} + {{> dm message=this me=../me}} + {{/each}} +
+ {{> minicomposer inReplyTo=lastIncoming to=feed.id}} +
+ {{else}} + +
+ Select a conversation. To create a new one, navigate to a profile. +
+ {{/if}} +
+{{/if}} + app.pollForPosts(); + \ No newline at end of file diff --git a/lib/ActivityPub.js b/lib/ActivityPub.js index 6e647e0..737dd78 100644 --- a/lib/ActivityPub.js +++ b/lib/ActivityPub.js @@ -81,7 +81,7 @@ export class ActivityPubClient { } } - /** + /** * Fetches the actor data for a given user ID * @async * @param {string} userId - The user ID to fetch actor data for. @@ -439,7 +439,12 @@ export class ActivityPubClient { } getUsernameDomain(userIdorName) { - let targetDomain, username; + let targetDomain = ''; + let username = ''; + console.log('getUsernameDomain, ', userIdorName); + if (!userIdorName) { + return { username, targetDomain }; + } if (userIdorName.startsWith('https://')) { const actor = new URL(userIdorName); targetDomain = actor.hostname; @@ -457,6 +462,7 @@ export class ActivityPubClient { } getUsername(userIdorName) { + console.log('getUsername ,', userIdorName); const { username, targetDomain } = this.getUsernameDomain(userIdorName); return `${username}@${targetDomain}`; } diff --git a/public/css/secret.css b/public/css/secret.css index e0fecfd..3b7ff55 100644 --- a/public/css/secret.css +++ b/public/css/secret.css @@ -8,29 +8,12 @@ --separator: #7777bb; --shade: rgba(255, 255, 255, 0.25); --highlight: rgba(0, 0, 0, 0.25); - --accent: rgba(250, 4, 197, 1); -} - - - -@media (prefers-color-scheme: dark) { - :root { - --background: #222233; - --text: #ffffff; - --link: #8c8dff; - --secondary: #444455; - --tertiary: #333344; - --contrast: #c0c0c0; - --separator: #111122; - --shade: rgba(0, 0, 0, 0.25); - --highlight: rgba(255, 255, 255, 0.25); - --accent: rgba(250, 4, 197, 1); - } + --accent: rgb(250, 4, 197); } body { background: var(--background); - color: #222233; + color: var(--text); font-size: 15px; padding: 0; margin: 0; @@ -41,37 +24,10 @@ body { box-sizing: border-box; } -.preferences-form fieldset { - border: 2px solid #2c3e50; - padding: 10px 20px; - margin-bottom: 20px; - border-radius: 8px; +fieldset { + padding: 0; + margin: 0; border: none; - position: relative; - padding: 20px; - border-radius: 8px; -} - -.preferences-form fieldset::after { - content: ''; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border-radius: 8px; - background: linear-gradient(to right, #8e44ad, #3498db); - z-index: -1; - padding: 3px; - border-radius: 5px; -} -legend { - background-color: #3498db; /* Background color */ - color: white; /* Text color */ - padding: 5px 15px; /* Padding */ - border-radius: 4px; /* Rounded corners */ - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Subtle shadow */ - margin-left: -7px; } .toolbar { @@ -408,11 +364,11 @@ a { @media screen and (min-width: 769px) { .stream { - max-width: 45rem; + max-width: 40rem; } .box { - max-width: 45rem; + max-width: 40rem; } } @@ -789,13 +745,9 @@ button.bigfollow.active .inactive { width: 100%; } -.profile { - background: var(--tertiary); - display: flex; - justify-content: center; - align-items: center; - flex-direction: column; -} +/* .profile { + background: var(--tertiary); +} */ .profileToolbar { padding: 1rem; From 4b4fb0e3ce2634f2aa3f5d1ab776c91d2d370e26 Mon Sep 17 00:00:00 2001 From: Justin Nguyen Date: Sun, 10 Dec 2023 19:33:58 -0800 Subject: [PATCH 051/100] add more tests for account.js --- lib/__tests__/account.jest.js | 124 +++++++++++++++++- lib/__tests__/files/blocks.json | 5 + lib/__tests__/files/dms/inboxes.json | 6 +- .../files/dms/justin@shuttlecraft.com.json | 6 +- 4 files changed, 130 insertions(+), 11 deletions(-) create mode 100644 lib/__tests__/files/blocks.json diff --git a/lib/__tests__/account.jest.js b/lib/__tests__/account.jest.js index 75dd4dd..5b1f507 100644 --- a/lib/__tests__/account.jest.js +++ b/lib/__tests__/account.jest.js @@ -3,15 +3,19 @@ import { writeInboxIndex, getInbox, addressedOnlyToMe, + acceptDM, isMyPost, isFollowing, isFollower, isMention, isReplyToMyPost, - getNotifications, + createActor, writeNotifications, + getNotifications, getBoosts, writeBoosts, + isBlocked, + getBlocks, writeFollowers, getFollowers, writeFollowing, @@ -22,6 +26,7 @@ import { } from '../account'; import * as storage from '../storage'; import { ActivityPub } from '../ActivityPub'; +import path from 'path'; import fs from 'fs'; import 'node-fetch'; @@ -38,7 +43,13 @@ describe('Tests for getInboxIndex', () => { test('Check getting inbox index successfully', () => { jest.replaceProperty(storage, 'pathToDMs', testFileDirectoryPath + 'dms/'); - const expectedInboxIndex = { id: 'inboxes' }; + const expectedInboxIndex = { + id: 'inboxes', + 'justin@shuttlecraft.com': { + lastRead: 1672531200000, + latest: 1672531200000 + } + }; expect(getInboxIndex()).toStrictEqual(expectedInboxIndex); }); }); @@ -63,7 +74,7 @@ describe('Tests for getInbox', () => { test('Check getting inbox successfully', () => { jest.replaceProperty(storage, 'pathToDMs', testFileDirectoryPath + 'dms/'); - const expectedInbox = { id: 'justin@shuttlecraft.com' }; + const expectedInbox = ['firstMessage']; expect(getInbox('justin@shuttlecraft.com')).toStrictEqual(expectedInbox); }); }); @@ -96,7 +107,46 @@ describe('Tests for addressedOnlyToMe', () => { describe('Tests for deleteObject', () => {}); -describe('Tests for acceptDM', () => {}); +describe('Tests for acceptDM', () => { + test('Check accepting DM', () => { + jest.replaceProperty(storage, 'pathToDMs', testFileDirectoryPath + 'dms/'); + jest.spyOn(ActivityPub, 'actor', 'get').mockReturnValue({ id: 'justin' }); + + const dm = { message: 'hello', attributedTo: 'jay' }; + const inboxUser = 'justin@shuttlecraft.com'; + acceptDM(dm, inboxUser); + const inbox = getInbox(inboxUser); + expect(inbox).toStrictEqual(['firstMessage', { message: 'hello', attributedTo: 'jay' }]); + inbox.pop(); + const inboxPath = path.resolve(storage.pathToDMs, `${inboxUser}.json`); + storage.writeJSONDictionary(inboxPath, inbox); + }); + + test('Check sending outbound DM', () => { + jest.replaceProperty(storage, 'pathToDMs', testFileDirectoryPath + 'dms/'); + jest.spyOn(ActivityPub, 'actor', 'get').mockReturnValue({ id: 'justin' }); + const mockDate = new Date('2023-01-01T00:00:00Z'); + jest.spyOn(global, 'Date').mockImplementation(() => mockDate); + + const dm = { message: 'hi', attributedTo: 'justin' }; + const inboxUser = 'justin@shuttlecraft.com'; + acceptDM(dm, inboxUser); + const inbox = getInbox(inboxUser); + expect(inbox).toStrictEqual(['firstMessage', { message: 'hi', attributedTo: 'justin' }]); + inbox.pop(); + const inboxPath = path.resolve(storage.pathToDMs, `${inboxUser}.json`); + storage.writeJSONDictionary(inboxPath, inbox); + + const expectedInboxIndex = { + id: 'inboxes', + 'justin@shuttlecraft.com': { + lastRead: 1672531200000, + latest: 1672531200000 + } + }; + expect(getInboxIndex()).toStrictEqual(expectedInboxIndex); + }); +}); describe('Tests for isMyPost', () => { test('Check if a post is my post', () => { @@ -174,7 +224,39 @@ describe('Tests for isReplyToMyPost', () => { describe('Tests for isReplyToFollowing', () => {}); -describe('Tests for createActor', () => {}); +describe('Tests for createActor', () => { + test('Check successful', () => { + const expectedActor = { + '@context': ['https://www.w3.org/ns/activitystreams', 'https://w3id.org/security/v1'], + bio: 'hello', + followers: 'https://shuttlecraft.com/u/justin/followers', + icon: { + mediaType: 'image/jpg', + type: 'Image', + url: 'https://www.shutterstock.com/image-vector/user-profile-icon-vector-avatar-600nw-2247726673.jpg' + }, + id: 'https://shuttlecraft.com/u/justin', + image: { + mediaType: 'image/png', + type: 'Image', + url: 'https://static.vecteezy.com/system/resources/thumbnails/011/125/580/small/torn-light-blue-paper-with-white-copyspace-for-your-message-png.png' + }, + inbox: 'https://shuttlecraft.com/api/inbox', + name: 'justin', + outbox: 'https://shuttlecraft.com/api/outbox', + preferredUsername: 'justin', + publicKey: { + id: 'https://shuttlecraft.com/u/justin#main-key', + owner: 'https://shuttlecraft.com/u/justin', + publicKeyPem: 'testPublicKey' + }, + type: 'Person', + url: 'https://shuttlecraft.com/' + }; + const createdActor = createActor('justin', 'shuttlecraft.com', 'testPublicKey', 'hello'); + expect(createdActor).toStrictEqual(expectedActor); + }); +}); describe('Tests for createWebfinger', () => {}); @@ -207,9 +289,37 @@ describe('Tests for getNotifications', () => { }); }); -describe('Tests for isBlocked', () => {}); +describe('Tests for isBlocked', () => { + test('Check actor that is a banned user', () => { + jest.replaceProperty(storage, 'blocksFile', testFileDirectoryPath + 'blocks.json'); + + const actor = 'aditya'; + expect(isBlocked(actor)).toBe(true); + }); + + test('Check actor that is from a banned domain', () => { + jest.replaceProperty(storage, 'blocksFile', testFileDirectoryPath + 'blocks.json'); + + const actor = 'https://blockedDomain.com/enze'; + expect(isBlocked(actor)).toBe(true); + }); + + test('Check actor that is not a banned user', () => { + jest.replaceProperty(storage, 'blocksFile', testFileDirectoryPath + 'blocks.json'); -describe('Tests for getBlocks', () => {}); + const actor = 'justin'; + expect(isBlocked(actor)).toBe(false); + }); +}); + +describe('Tests for getBlocks', () => { + test('Check successful', () => { + jest.replaceProperty(storage, 'blocksFile', testFileDirectoryPath + 'blocks.json'); + + const expectedBlocks = ['aditya', 'kashish', 'https://blockedDomain.com']; + expect(getBlocks()).toStrictEqual(expectedBlocks); + }); +}); describe('Tests for writeFollowers', () => { const followersPath = testFileDirectoryPath + 'followers.json'; diff --git a/lib/__tests__/files/blocks.json b/lib/__tests__/files/blocks.json new file mode 100644 index 0000000..f6b5d5e --- /dev/null +++ b/lib/__tests__/files/blocks.json @@ -0,0 +1,5 @@ +[ + "aditya", + "kashish", + "https://blockedDomain.com" +] \ No newline at end of file diff --git a/lib/__tests__/files/dms/inboxes.json b/lib/__tests__/files/dms/inboxes.json index c3557b9..1a23d66 100644 --- a/lib/__tests__/files/dms/inboxes.json +++ b/lib/__tests__/files/dms/inboxes.json @@ -1,3 +1,7 @@ { - "id": "inboxes" + "id": "inboxes", + "justin@shuttlecraft.com": { + "lastRead": 1672531200000, + "latest": 1672531200000 + } } \ No newline at end of file diff --git a/lib/__tests__/files/dms/justin@shuttlecraft.com.json b/lib/__tests__/files/dms/justin@shuttlecraft.com.json index 2042363..1f2814d 100644 --- a/lib/__tests__/files/dms/justin@shuttlecraft.com.json +++ b/lib/__tests__/files/dms/justin@shuttlecraft.com.json @@ -1,3 +1,3 @@ -{ - "id": "justin@shuttlecraft.com" -} \ No newline at end of file +[ + "firstMessage" +] \ No newline at end of file From 846ab9bd069883eedd712c6b69dc481750c7b93a Mon Sep 17 00:00:00 2001 From: Justin Nguyen Date: Sun, 10 Dec 2023 19:33:58 -0800 Subject: [PATCH 052/100] add more tests for account.js and ActivityPub.js --- lib/ActivityPub.js | 2 - lib/__tests__/ActivityPub.jest.js | 103 ++++++++++++++++++++++++- lib/__tests__/account.jest.js | 43 ++++++++++- lib/__tests__/files/notifications.json | 6 +- 4 files changed, 141 insertions(+), 13 deletions(-) diff --git a/lib/ActivityPub.js b/lib/ActivityPub.js index 737dd78..a96aba8 100644 --- a/lib/ActivityPub.js +++ b/lib/ActivityPub.js @@ -441,7 +441,6 @@ export class ActivityPubClient { getUsernameDomain(userIdorName) { let targetDomain = ''; let username = ''; - console.log('getUsernameDomain, ', userIdorName); if (!userIdorName) { return { username, targetDomain }; } @@ -462,7 +461,6 @@ export class ActivityPubClient { } getUsername(userIdorName) { - console.log('getUsername ,', userIdorName); const { username, targetDomain } = this.getUsernameDomain(userIdorName); return `${username}@${targetDomain}`; } diff --git a/lib/__tests__/ActivityPub.jest.js b/lib/__tests__/ActivityPub.jest.js index 917c248..7f16625 100644 --- a/lib/__tests__/ActivityPub.jest.js +++ b/lib/__tests__/ActivityPub.jest.js @@ -1,7 +1,102 @@ -import { ActivityPub } from '../ActivityPub'; +import { ActivityPubClient } from '../ActivityPub'; -describe('Tests for ActivityPubClient', () => { - test('Initial state', () => { - expect(ActivityPub.account).toBe(undefined); +jest.mock('node-fetch'); + +import fetch from 'node-fetch'; + +afterEach(() => { + jest.restoreAllMocks(); +}); + +describe('Tests for ActivityPubClient constructor', () => { + test('Check successful initialization of account', () => { + const expectedAccount = { actor: 'justin' }; + const activityPubClient = new ActivityPubClient(expectedAccount); + expect(activityPubClient.account).toStrictEqual(expectedAccount); + }); +}); + +describe('Tests for ActivityPubClient set and get actor', () => { + test('Check successful setting and getting of actor', () => { + const activityPubClient = new ActivityPubClient({ actor: 'justin' }); + expect(activityPubClient.actor).toBe('justin'); + activityPubClient.actor = 'jay'; + expect(activityPubClient.actor).toBe('jay'); + }); +}); + +describe('Tests for ActivityPubClient set and get account', () => { + test('Check successful setting and getting of account', () => { + const activityPubClient = new ActivityPubClient(); + expect(activityPubClient.account).toBe(undefined); + const expectedAccount = { actor: 'justin' }; + activityPubClient.account = expectedAccount; + expect(activityPubClient.account).toStrictEqual(expectedAccount); + expect(activityPubClient.actor).toBe('justin'); + }); +}); + +describe('Tests for ActivityPubClient webfinger', () => { + test('Check successful fetching webfinger', async () => { + fetch.mockReturnValue( + Promise.resolve({ + ok: true, + json: () => Promise.resolve({ testWebfinger: 'testWebfinger' }) + }) + ); + + const activityPubClient = new ActivityPubClient(); + const webfinger = await activityPubClient.webfinger('justin@shuttlecraft.com'); + expect(webfinger).toStrictEqual({ testWebfinger: 'testWebfinger' }); + }); + + test('Check error when fetching webfinger', async () => { + fetch.mockReturnValue( + Promise.resolve({ + ok: false, + json: () => Promise.resolve({ testWebfinger: 'testWebfinger' }) + }) + ); + + const activityPubClient = new ActivityPubClient(); + try { + await activityPubClient.webfinger('justin@shuttlecraft.com'); + } catch (e) { + expect(e).toMatchObject( + new Error( + 'could not get webfinger https://shuttlecraft.com/.well-known/webfinger?resource=acct:justin@shuttlecraft.com: undefined' + ) + ); + } + }); +}); + +describe('Tests for ActivityPubClient fetchActor', () => {}); + +describe('Tests for ActivityPubClient getUsernameDomain', () => { + test('Check when userIdorName is not passed as an argument', () => { + const activityPubClient = new ActivityPubClient(); + expect(activityPubClient.getUsernameDomain()).toStrictEqual({ username: '', targetDomain: '' }); + }); + + test('Check when userIdorName starts with https://', () => { + const activityPubClient = new ActivityPubClient(); + const expectedUsernameDomain = { username: 'justin', targetDomain: 'shuttlecraft.com' }; + expect(activityPubClient.getUsernameDomain('https://shuttlecraft.com/justin')).toStrictEqual( + expectedUsernameDomain + ); + }); + + test('Check when userIdorName starts without https://', () => { + const activityPubClient = new ActivityPubClient(); + const expectedUsernameDomain = { username: 'justin', targetDomain: 'shuttlecraft.com' }; + expect(activityPubClient.getUsernameDomain('justin@shuttlecraft.com')).toStrictEqual(expectedUsernameDomain); + }); +}); + +describe('Tests for ActivityPubClient getUsername', () => { + test('Check getting username successfully', () => { + const activityPubClient = new ActivityPubClient(); + expect(activityPubClient.getUsername('https://shuttlecraft.com/justin')).toStrictEqual('justin@shuttlecraft.com'); }); }); diff --git a/lib/__tests__/account.jest.js b/lib/__tests__/account.jest.js index 5b1f507..9083134 100644 --- a/lib/__tests__/account.jest.js +++ b/lib/__tests__/account.jest.js @@ -10,6 +10,8 @@ import { isMention, isReplyToMyPost, createActor, + createWebfinger, + addNotification, writeNotifications, getNotifications, getBoosts, @@ -258,11 +260,44 @@ describe('Tests for createActor', () => { }); }); -describe('Tests for createWebfinger', () => {}); +describe('Tests for createWebfinger', () => { + test('Check successful', () => { + const expectedWebfinger = { + subject: 'acct:justin@shuttlecraft.com', + links: [ + { + rel: 'self', + type: 'application/activity+json', + href: 'https://shuttlecraft.com/u/justin' + } + ] + }; + + expect(createWebfinger('justin', 'shuttlecraft.com')).toStrictEqual(expectedWebfinger); + }); +}); describe('Tests for getOutboxPosts', () => {}); -describe('Tests for addNotification', () => {}); +describe('Tests for addNotification', () => { + test('Check successful', () => { + jest.replaceProperty(storage, 'notificationsFile', testFileDirectoryPath + 'notifications.json'); + const mockDate = new Date('2023-01-01T00:00:00Z'); + jest.spyOn(global, 'Date').mockImplementation(() => mockDate); + + const notificationToAdd = { message: 'testNotification' }; + addNotification(notificationToAdd); + + const expectedNotifications = [ + 'notification', + { + time: 1672531200000, + notification: { message: 'testNotification' } + } + ]; + expect(getNotifications()).toStrictEqual(expectedNotifications); + }); +}); describe('Tests for writeNotifications', () => { const notificationsPath = testFileDirectoryPath + 'notifications.json'; @@ -273,7 +308,7 @@ describe('Tests for writeNotifications', () => { jest.replaceProperty(storage, 'notificationsFile', notificationsPath); - const expectedNotifications = { id: 'notifications' }; + const expectedNotifications = ['notification']; writeNotifications(expectedNotifications); const jsonRaw = fs.readFileSync(notificationsPath); expect(JSON.parse(jsonRaw)).toStrictEqual(expectedNotifications); @@ -284,7 +319,7 @@ describe('Tests for getNotifications', () => { test('Check successful', () => { jest.replaceProperty(storage, 'notificationsFile', testFileDirectoryPath + 'notifications.json'); - const expectedNotifications = { id: 'notifications' }; + const expectedNotifications = ['notification']; expect(getNotifications()).toStrictEqual(expectedNotifications); }); }); diff --git a/lib/__tests__/files/notifications.json b/lib/__tests__/files/notifications.json index 39090cf..02b8cb0 100644 --- a/lib/__tests__/files/notifications.json +++ b/lib/__tests__/files/notifications.json @@ -1,3 +1,3 @@ -{ - "id": "notifications" -} \ No newline at end of file +[ + "notification" +] \ No newline at end of file From edf5b57a3d50adfdd1e13f1e52bdffc803577bee Mon Sep 17 00:00:00 2001 From: kashishvjain <66744312+kashishvjain@users.noreply.github.com> Date: Mon, 11 Dec 2023 21:35:37 -0800 Subject: [PATCH 053/100] Create User Create and Login Functionality (#63) * Test added * Added test post * Write to env file * Added Logout Functionality + Changed the name of the files to something readable from test Added a endpoint for logging out. Changed the name of the create user file to accountHandler from test * Adding the /account endpoint + Rewriting the envData variable * Added the create user functionality and UI * Added login UI and functionality Co-Authored-By: smruthig <75429779+smruthig@users.noreply.github.com> * Added handling / public url - If there is no account.json file it will redirect to account create. - If there is a file. It will setup up ActivityPub client Co-Authored-By: smruthig <75429779+smruthig@users.noreply.github.com> * Static Code editor changes Co-Authored-By: smruthig <75429779+smruthig@users.noreply.github.com> * Installed lint-staged Co-Authored-By: smruthig <75429779+smruthig@users.noreply.github.com> * Update package-lock.json Co-Authored-By: smruthig <75429779+smruthig@users.noreply.github.com> * Update package-lock.json Co-Authored-By: smruthig <75429779+smruthig@users.noreply.github.com> * Delete package-lock.json Co-Authored-By: smruthig <75429779+smruthig@users.noreply.github.com> * Added package-lock json Co-Authored-By: smruthig <75429779+smruthig@users.noreply.github.com> * Update lint.yml --------- Co-authored-by: smruthig Co-authored-by: smruthig <75429779+smruthig@users.noreply.github.com> --- .github/workflows/lint.yml | 2 +- .gitignore | 3 +- CHANGELOG.md | 130 +++--- design/createAccount.handlebars | 50 +++ design/login.handlebars | 31 ++ design/partials/composer.handlebars | 4 +- index.js | 200 +++------ lib/account.js | 13 + lib/authentication.js | 130 ++++++ package-lock.json | 669 +++++++++++++++++++--------- package.json | 3 +- routes/account.js | 6 +- routes/accountHandler.js | 48 ++ routes/admin.js | 2 +- routes/index.js | 1 + routes/public.js | 32 +- 16 files changed, 897 insertions(+), 427 deletions(-) create mode 100644 design/createAccount.handlebars create mode 100644 design/login.handlebars create mode 100644 lib/authentication.js create mode 100644 routes/accountHandler.js diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 8f5e43a..17a1115 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -26,7 +26,7 @@ jobs: - name: Configure Node.js uses: actions/setup-node@v3 with: - node-version: 16 + node-version: 18 - name: Retrieve npm cache uses: 'actions/cache@v3' diff --git a/.gitignore b/.gitignore index 8c959a9..8831aaf 100644 --- a/.gitignore +++ b/.gitignore @@ -321,5 +321,4 @@ $RECYCLE.BIN/ # and uncomment the following lines # .pnp.* -# End of https://www.toptal.com/developers/gitignore/api/macos,linux,windows,webstorm,yarn,diff,snyk,node,tower - +# End of https://www.toptal.com/developers/gitignore/api/macos,linux,windows,webstorm,yarn,diff,snyk,node,tower \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index ea75f39..30e9316 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,60 +1,70 @@ -# How to update - -For now, the best way to upgrade is to pull the latest code from the main branch. -(One day I'll set up proper packaging with versions and stuff. That day is not today!) - -* Type `git pull origin main` -* Make sure to restart the app afterwards - -# CHANGE LOG - -## 2023-01-30 -- Fixed the missing edit button -- Fixed a bug where people without a `name` field would show up blank in some places -- Fixed a bug related to missing environment variables - -## 2023-01-29 -- Introduced a background queue system for handling outbound HTTP requests. -- Fixed follows - outbound follow requests got disabled on 01/23! Oops! -- Fixed communication with Pixelfed and GoToSocial instances. Follows and stuff should now work! - -## 2023-01-23 -- Added linting and code prettification as a pre-commit hook -- Added Github actions to run linter rules and enforce them on PRs -Huge thanks to @selfagency for these improvements! - -## 2023-01-15 -- Added a prefs page -- Added the ability to change all the emojis in the UI 👹 -- Added the ability to change what it says on the "post" button -See a video of these features in action here: https://www.loom.com/share/c8fbe3b099f644d596cd2db26e86bc8a - - -## 2023-01-14 -- All new nav! There is now a list of the 20 most recently updated feeds in the nav. Click "..." to see up to 100. -- Lots of CSS improvements! -- When you search for a user, Shuttlecraft will now also search all known users - - -## 2023-01-12 -- Prevent buttons from being double-clicked resulting in accidentally undoing something or double posting -- Prevent the account.json file from being created with a faulty domain name. Thanks @patrickmcurry! - - -## 2023-01-09 -- Fixed a bug causing new posts not to show up til the server restarts. Oops! - -## 2023-01-08 -- Added support for incoming DELETE activities. This causes matching posts to be completely removed from the system. As part of this, increased resilience for dealing with missing or unreachable posts. Thanks to @ringtailsoftware. -- Added support for editing local posts. Thanks to @ringtailsoftware. -- Renamed the sample .env to .env.example and introduced a post-install script to copy it into place -- Created this changelog! - -## 2023-01-07 -- Links in posts now automatically include noopen noreferer nofollow attributes. - -## 2023-01-06 -- Support for light/dark themes. Thanks @anildash -- Fix pagination bugs, add pagination on notifications - - +# How to update + +For now, the best way to upgrade is to pull the latest code from the main branch. +(One day I'll set up proper packaging with versions and stuff. That day is not today!) + +- Type `git pull origin main` +- Make sure to restart the app afterwards + +# CHANGE LOG + +## 2023-01-30 + +- Fixed the missing edit button +- Fixed a bug where people without a `name` field would show up blank in some places +- Fixed a bug related to missing environment variables + +## 2023-01-29 + +- Introduced a background queue system for handling outbound HTTP requests. +- Fixed follows - outbound follow requests got disabled on 01/23! Oops! +- Fixed communication with Pixelfed and GoToSocial instances. Follows and stuff should now work! + +## 2023-01-23 + +- Added linting and code prettification as a pre-commit hook +- Added Github actions to run linter rules and enforce them on PRs + Huge thanks to @selfagency for these improvements! + +## 2023-01-15 + +- Added a prefs page +- Added the ability to change all the emojis in the UI 👹 +- Added the ability to change what it says on the "post" button + See a video of these features in action here: https://www.loom.com/share/c8fbe3b099f644d596cd2db26e86bc8a + +## 2023-01-14 + +- All new nav! There is now a list of the 20 most recently updated feeds in the nav. Click "..." to see up to 100. +- Lots of CSS improvements! +- When you search for a user, Shuttlecraft will now also search all known users + +## 2023-01-12 + +- Prevent buttons from being double-clicked resulting in accidentally undoing something or double posting +- Prevent the account.json file from being created with a faulty domain name. Thanks @patrickmcurry! + +## 2023-01-09 + +- Fixed a bug causing new posts not to show up til the server restarts. Oops! + +## 2023-01-08 + +- Added support for incoming DELETE activities. This causes matching posts to be completely removed from the system. As part of this, increased resilience for dealing with missing or unreachable posts. Thanks to @ringtailsoftware. +- Added support for editing local posts. Thanks to @ringtailsoftware. +- Renamed the sample .env to .env.example and introduced a post-install script to copy it into place +- Created this changelog! + +## 2023-01-07 + +- Links in posts now automatically include noopen noreferer nofollow attributes. + +## 2023-01-06 + +- Support for light/dark themes. Thanks @anildash +- Fix pagination bugs, add pagination on notifications + +## 2023-12-08 - USERNAME Crossplatform Compatibility + +- Fixed bug of USERNAME variable not working on windows machines. +- Instead of using USERNAME we now use USER_NAME diff --git a/design/createAccount.handlebars b/design/createAccount.handlebars new file mode 100644 index 0000000..30383ab --- /dev/null +++ b/design/createAccount.handlebars @@ -0,0 +1,50 @@ +

Create User Account

+ +
+ + + + + + + + + + + + + + + +
+ + \ No newline at end of file diff --git a/design/login.handlebars b/design/login.handlebars new file mode 100644 index 0000000..50a98ea --- /dev/null +++ b/design/login.handlebars @@ -0,0 +1,31 @@ +

Login Account

+ +
+ + + + + + + + + {{#if message}} +

{{message}}

+ {{/if}} + + +
+ + \ No newline at end of file diff --git a/design/partials/composer.handlebars b/design/partials/composer.handlebars index 41d9e7f..9647e90 100644 --- a/design/partials/composer.handlebars +++ b/design/partials/composer.handlebars @@ -2,7 +2,7 @@ {{#if originalPost}}
Reply
- {{> byline actor=actor}} + {{!-- {{> byline actor=actor}} --}} {{{originalPost.content}}}
{{else}} @@ -16,7 +16,7 @@
{ setExpressApp(app); -/** - * Asynchronous basic authorization function for Express.js. - * - * @param {string} username - The provided username for authorization. - * @param {string} password - The provided password for authorization. - * @param {Function} callback - The callback function to be called upon authorization completion. - * @param {Error} callback.error - An error object if an error occurred during authorization, or null if successful. - * @param {boolean} callback.authorized - A boolean indicating whether the user is authorized. - * - * @example - * // Example usage: - * asyncAuthorizer('admin', 'password123', (error, authorized) => { - * if (error) { - * console.error(error.message); - * } else { - * console.log(`User is authorized: ${authorized}`); - * } - * }); - */ -const asyncAuthorizer = (username, password, callback) => { - let isAuthorized = false; - // Check if the provided password matches the hardcoded username - const isPasswordAuthorized = username === USER_NAME; - - // Check if the provided username matches the hardcoded password - const isUsernameAuthorized = password === PASS; - - // Set isAuthorized to true if both username and password are authorized - isAuthorized = isPasswordAuthorized && isUsernameAuthorized; - - // Invoke the callback with the authorization result - if (isAuthorized) { - return callback(null, true); +const authWrapper = (req, res, next) => { + if (ifAccount()) { + handleAuthenticatedUser(req, res, next); } else { - return callback(null, false); + res.redirect('/account/create'); } }; -/** - * Express.js middleware for basic user authentication using asyncAuthorizer. - * - * @typedef {Object} BasicUserAuth - * @property {Function} authorize - Function to perform basic authorization using asyncAuthorizer. - * @property {boolean} authorizeAsync - Indicates that authorization is performed asynchronously. - * @property {boolean} challenge - Indicates whether to send a 401 Unauthorized response. - * - * @example - * // Example usage: - * app.use(basicUserAuth); - */ -const basicUserAuth = basicAuth({ - /** - * Function to perform basic authorization using asyncAuthorizer. - * - * @function - * @param {string} username - The provided username for authorization. - * @param {string} password - The provided password for authorization. - * @param {Function} callback - The callback function to be called upon authorization completion. - * @param {Error} callback.error - An error object if an error occurred during authorization, or null if successful. - * @param {boolean} callback.authorized - A boolean indicating whether the user is authorized. - */ - authorizer: asyncAuthorizer, - - /** - * Indicates that authorization is performed asynchronously. - * - * @type {boolean} - */ - authorizeAsync: true, - - /** - * Indicates whether to send a 401 Unauthorized response. - * - * @type {boolean} - */ - challenge: true -}); - -ensureAccount(USER_NAME, DOMAIN).then(myaccount => { - const authWrapper = (req, res, next) => { - if (req.cookies.token) { - if (req.cookies.token === myaccount.apikey) { - return next(); - } - } - return basicUserAuth(req, res, next); - }; - - // set the server to use the main account as its primary actor - ActivityPub.account = myaccount; - console.log(`BOOTING SERVER FOR ACCOUNT: ${myaccount.actor.preferredUsername}`); - console.log(`ACCESS DASHBOARD: https://${DOMAIN}/private`); - - // set up globals - app.set('domain', DOMAIN); - app.set('account', myaccount); - - // serve webfinger response - app.use('/.well-known/webfinger', cors(), WebfingerRouter); - // server user profile and follower list - app.use('/u', cors(), UserProfileRouter); - - // serve individual posts - app.use('/m', cors(), notes); - - // handle incoming requests - app.use('/api/inbox', cors(), inbox); - app.use('/api/outbox', cors(), outbox); - - app.use( - '/private', - cors({ - credentials: true, - origin: true - }), - authWrapper, - admin - ); - app.use('/', cors(), publicFacing); - app.use('/', express.static('public/')); - - http.createServer(app).listen(app.get('port'), function () { - console.log('Express server listening on port ' + app.get('port')); - }); +console.log(`ACCESS DASHBOARD: https://${DOMAIN}/private`); + +// set up globals +app.set('domain', DOMAIN); +// app.set('account', myaccount); + +// serve webfinger response +app.use('/.well-known/webfinger', cors(), WebfingerRouter); +// server user profile and follower list +app.use('/u', cors(), UserProfileRouter); + +// serve individual posts +app.use('/m', cors(), notes); + +// handle incoming requests +app.use('/api/inbox', cors(), inbox); +app.use('/api/outbox', cors(), outbox); + +// serve account creation and login +app.use( + '/account', + cors({ + credentials: true, + origin: true + }), + accountHandler +); + +// serve user dashboard +app.use( + '/private', + cors({ + credentials: true, + origin: true + }), + authWrapper, + admin +); + +app.use('/', cors(), publicFacing); +app.use('/', express.static('public/')); + +http.createServer(app).listen(app.get('port'), function () { + console.log('Express server listening on port ' + app.get('port')); }); diff --git a/lib/account.js b/lib/account.js index 50896f7..77d9428 100644 --- a/lib/account.js +++ b/lib/account.js @@ -823,6 +823,7 @@ export const removeFollower = async follower => { * @returns The function `ensureAccount` returns a Promise that resolves to an account object. */ export const ensureAccount = async (name, domain) => { + console.log('Ensuring account for', name, domain); // verify domain name const re = /^((?:(?:(?:\w[.\-+]?)*)\w)+)((?:(?:(?:\w[.\-+]?){0,62})\w)+)\.(\w{2,6})$/; if (!domain.match(re)) { @@ -873,6 +874,18 @@ export const ensureAccount = async (name, domain) => { }); }; +/** + * The function checks if an account file exists and returns true if it does, otherwise it returns + * false. + * @returns a boolean value. It returns true if the accountFile exists, and false if it does not exist. + */ +export const ifAccount = () => { + if (existsSync(accountFile)) { + return true; + } + return false; +}; + export const updateAccount = async (name, domain, bio, img) => { console.log(img); // verify domain name diff --git a/lib/authentication.js b/lib/authentication.js new file mode 100644 index 0000000..c0f2d6d --- /dev/null +++ b/lib/authentication.js @@ -0,0 +1,130 @@ +import dotenv from 'dotenv'; +import { ensureAccount, getAccount } from './account.js'; +import { promises as fsPromises } from 'fs'; +import { ActivityPub } from './ActivityPub.js'; + +/** + * The function `getUsername` retrieves the value of the `USER_NAME` environment variable. + * @returns The function `getUsername` is returning the value of the `USER_NAME` environment variable. + */ +const getUsername = () => { + dotenv.config(); + const { USER_NAME } = process.env; + return USER_NAME; +}; + +/** + * The function `getPassword` retrieves the value of the `PASS` environment variable using the `dotenv` + * package. + * @returns The function `getPassword` is returning the value of the `PASS` environment variable. + */ +const getPassword = () => { + dotenv.config(); + const { PASS } = process.env; + return PASS; +}; + +/** + * The function `authenticateLogin` checks if the provided username and password match the stored + * username and password. + * @param username - The `username` parameter is the username entered by the user during the login + * process. + * @param password - The `password` parameter is the password entered by the user during the login + * process. + * @returns a boolean value. It returns true if the provided username and password match the stored + * username and password, and false otherwise. + */ +export const authenticateLogin = (username, password) => { + if (username === getUsername() && password === getPassword()) { + return true; + } + return false; +}; + +/** + * The `createAccount` function creates a new account, sets the account in the app, sets a token in a + * cookie, and redirects to a private route. + * @param req - The `req` parameter is an object that represents the HTTP request made by the client. + * It contains information such as the request headers, request body, request method, request URL, and + * other relevant details. + * @param res - The `res` parameter is the response object that is used to send the response back to + * the client. It contains methods and properties that allow you to control the response, such as + * setting headers, sending data, and redirecting the client to a different URL. + */ +export const createAccount = async (req, res) => { + const { username, domain } = req.body; + + try { + await ensureAccount(username, domain); + + // Set account in the app + const myaccount = await getAccount(); + req.app.set('account', myaccount); + + // Set token in cookie + res.cookie('token', myaccount.apikey); + + // Redirect to private route + res.redirect('/private'); + } catch (error) { + console.error('Error creating account:', error); + res.status(500).send('Internal Server Error'); + } +}; + +/** + * The function `writeEnvToFile` writes the values of `username`, `password`, and `domain` to a `.env` + * file. + * @param req - The `req` parameter is an object that represents the HTTP request made to the server. + * It contains information about the request, such as the request method, headers, and body. + * @param res - The `res` parameter is the response object. It is used to send a response back to the + * client after the operation is completed. + */ +export const writeEnvToFile = async (req, res) => { + const { username, password, domain } = req.body; + + const envData = ` + USER_NAME=${username} + PASS=${password} + DOMAIN=${domain} + `; + + const envFilePath = './.env'; + + try { + await fsPromises.writeFile(envFilePath, envData); + console.log('Data has been written to .env file'); + } catch (error) { + console.error('Error writing to .env file:', error); + } +}; + +/** + * The function checks if the user is authenticated by comparing the token in the request cookies with + * the API key stored in the account, and redirects to the login page if not authenticated. + * @param req - The `req` parameter is the request object, which contains information about the + * incoming HTTP request from the client. It includes properties such as the request headers, query + * parameters, request body, cookies, etc. + * @param res - The `res` parameter is the response object that is used to send a response back to the + * client. It contains methods and properties that allow you to control the response, such as setting + * headers, sending data, and redirecting the client to a different URL. + * @param next - The `next` parameter is a function that is used to pass control to the next middleware + * function in the request-response cycle. It is typically called at the end of the current middleware + * function to indicate that it has completed its processing and the next middleware function should be + * called. + * @returns If the condition `req.cookies.token && req.cookies.token === myaccount.apikey` is true, + * then the `next()` function will be called, which means the control will be passed to the next + * middleware function in the request-response cycle. + */ +export const handleAuthenticatedUser = (req, res, next) => { + const myaccount = getAccount(); + req.app.set('account', myaccount); + ActivityPub.account = myaccount; + + if (req.cookies.token && req.cookies.token === myaccount.apikey) { + console.log('TOKEN', req.cookies); + return next(); + } else { + res.redirect('/account/login'); + } +}; diff --git a/package-lock.json b/package-lock.json index 93405a7..e236573 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,6 +26,7 @@ "moment": "^2.29.4", "multer": "^1.4.5-lts.1", "node-fetch": "^3.3.0", + "nodemon": "^3.0.2", "queue-promise": "^2.2.1", "rss-generator": "^0.0.3" }, @@ -40,7 +41,7 @@ "eslint-plugin-n": "^15.6.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.7.0", - "lint-staged": "^13.1.0", + "lint-staged": "^13.2.3", "prettier": "^2.8.3" }, "engines": { @@ -2682,6 +2683,11 @@ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", "dev": true }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, "node_modules/accepts": { "version": "1.3.8", "license": "MIT", @@ -2790,7 +2796,6 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -3047,6 +3052,14 @@ "version": "5.1.2", "license": "MIT" }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, "node_modules/body-parser": { "version": "1.20.1", "license": "MIT", @@ -3089,7 +3102,6 @@ }, "node_modules/braces": { "version": "3.0.2", - "dev": true, "license": "MIT", "dependencies": { "fill-range": "^7.0.1" @@ -3264,6 +3276,43 @@ "node": "*" } }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/ci-info": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", @@ -3400,16 +3449,16 @@ "license": "MIT" }, "node_modules/commander": { - "version": "9.5.0", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, - "license": "MIT", "engines": { - "node": "^12.20.0 || >=14" + "node": ">=14" } }, "node_modules/concat-map": { "version": "0.0.1", - "dev": true, "license": "MIT" }, "node_modules/concat-stream": { @@ -3498,11 +3547,6 @@ "url": "https://opencollective.com/core-js" } }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, "node_modules/cors": { "version": "2.8.5", "license": "MIT", @@ -4286,13 +4330,14 @@ } }, "node_modules/execa": { - "version": "6.1.0", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", "dev": true, - "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", - "human-signals": "^3.0.1", + "human-signals": "^4.3.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", @@ -4301,7 +4346,7 @@ "strip-final-newline": "^3.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" @@ -4469,7 +4514,6 @@ }, "node_modules/fill-range": { "version": "7.0.1", - "dev": true, "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" @@ -4573,20 +4617,6 @@ "version": "1.0.0", "license": "ISC" }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/function-bind": { "version": "1.1.1", "license": "MIT" @@ -4869,11 +4899,12 @@ } }, "node_modules/human-signals": { - "version": "3.0.1", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", "dev": true, - "license": "Apache-2.0", "engines": { - "node": ">=12.20.0" + "node": ">=14.18.0" } }, "node_modules/husky": { @@ -4907,6 +4938,11 @@ "node": ">= 4" } }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==" + }, "node_modules/import-fresh": { "version": "3.3.0", "dev": true, @@ -5019,6 +5055,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/is-boolean-object": { "version": "1.1.2", "dev": true, @@ -5076,7 +5123,6 @@ }, "node_modules/is-extglob": { "version": "2.1.1", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -5104,7 +5150,6 @@ }, "node_modules/is-glob": { "version": "4.0.3", - "dev": true, "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" @@ -5126,7 +5171,6 @@ }, "node_modules/is-number": { "version": "7.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=0.12.0" @@ -5182,8 +5226,9 @@ }, "node_modules/is-stream": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, - "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -5248,11 +5293,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, "node_modules/isexe": { "version": "2.0.0", "dev": true, @@ -5710,7 +5750,7 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "optionalDependencies": { - "fsevents": "^2.3.2" + "fsevents": "^2.3.3" } }, "node_modules/jest-leak-detector": { @@ -6187,9 +6227,10 @@ } }, "node_modules/lilconfig": { - "version": "2.0.6", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" } @@ -6208,23 +6249,24 @@ } }, "node_modules/lint-staged": { - "version": "13.1.0", + "version": "13.2.3", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.2.3.tgz", + "integrity": "sha512-zVVEXLuQIhr1Y7R7YAWx4TZLdvuzk7DnmrsTNL0fax6Z3jrpFcas+vKbzxhhvp6TA55m1SQuWkpzI1qbfDZbAg==", "dev": true, - "license": "MIT", "dependencies": { + "chalk": "5.2.0", "cli-truncate": "^3.1.0", - "colorette": "^2.0.19", - "commander": "^9.4.1", + "commander": "^10.0.0", "debug": "^4.3.4", - "execa": "^6.1.0", - "lilconfig": "2.0.6", - "listr2": "^5.0.5", + "execa": "^7.0.0", + "lilconfig": "2.1.0", + "listr2": "^5.0.7", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", - "object-inspect": "^1.12.2", + "object-inspect": "^1.12.3", "pidtree": "^0.6.0", "string-argv": "^0.3.1", - "yaml": "^2.1.3" + "yaml": "^2.2.2" }, "bin": { "lint-staged": "bin/lint-staged.js" @@ -6236,6 +6278,18 @@ "url": "https://opencollective.com/lint-staged" } }, + "node_modules/lint-staged/node_modules/chalk": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", + "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/listr2": { "version": "5.0.7", "dev": true, @@ -6415,7 +6469,6 @@ }, "node_modules/lru-cache": { "version": "6.0.0", - "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -6554,8 +6607,9 @@ }, "node_modules/mimic-fn": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -6680,9 +6734,102 @@ "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", "dev": true }, + "node_modules/nodemon": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.0.2.tgz", + "integrity": "sha512-9qIN2LNTrEzpOPBaWHTm4Asy1LxXLSickZStAQ4IZe7zsoIpD/A7LWxhZV3t4Zu352uBcqVnRsDXSMR2Sc3lTA==", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/nodemon/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/nodemon/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/nodemon/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/nodemon/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" + } + }, "node_modules/normalize-path": { "version": "3.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -6690,8 +6837,9 @@ }, "node_modules/npm-run-path": { "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", "dev": true, - "license": "MIT", "dependencies": { "path-key": "^4.0.0" }, @@ -6704,8 +6852,9 @@ }, "node_modules/npm-run-path/node_modules/path-key": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -6721,8 +6870,9 @@ } }, "node_modules/object-inspect": { - "version": "1.12.2", - "license": "MIT", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -6787,8 +6937,9 @@ }, "node_modules/onetime": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, - "license": "MIT", "dependencies": { "mimic-fn": "^4.0.0" }, @@ -6943,7 +7094,6 @@ }, "node_modules/picomatch": { "version": "2.3.1", - "dev": true, "license": "MIT", "engines": { "node": ">=8.6" @@ -7084,11 +7234,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, "node_modules/prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -7113,6 +7258,11 @@ "node": ">= 0.10" } }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==" + }, "node_modules/punycode": { "version": "2.2.0", "dev": true, @@ -7203,25 +7353,6 @@ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, - "node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -7674,6 +7805,31 @@ "dev": true, "license": "ISC" }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -7774,19 +7930,6 @@ "node": ">=10.0.0" } }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, "node_modules/string-argv": { "version": "0.3.1", "dev": true, @@ -7896,8 +8039,9 @@ }, "node_modules/strip-final-newline": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -8021,7 +8165,6 @@ }, "node_modules/to-regex-range": { "version": "5.0.1", - "dev": true, "license": "MIT", "dependencies": { "is-number": "^7.0.0" @@ -8037,6 +8180,17 @@ "node": ">=0.6" } }, + "node_modules/touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, "node_modules/tsconfig-paths": { "version": "3.14.1", "dev": true, @@ -8142,6 +8296,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==" + }, "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", @@ -8233,11 +8392,6 @@ "punycode": "^2.1.0" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, "node_modules/utils-merge": { "version": "1.0.1", "license": "MIT", @@ -8425,7 +8579,6 @@ }, "node_modules/yallist": { "version": "4.0.0", - "dev": true, "license": "ISC" }, "node_modules/yaml": { @@ -10439,6 +10592,11 @@ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", "dev": true }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, "accepts": { "version": "1.3.8", "requires": { @@ -10501,7 +10659,6 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -10686,6 +10843,11 @@ } } }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, "body-parser": { "version": "1.20.1", "requires": { @@ -10722,7 +10884,6 @@ }, "braces": { "version": "3.0.2", - "dev": true, "requires": { "fill-range": "^7.0.1" } @@ -10822,6 +10983,31 @@ "charenc": { "version": "0.0.2" }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.3", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, "ci-info": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", @@ -10917,12 +11103,13 @@ "dev": true }, "commander": { - "version": "9.5.0", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true }, "concat-map": { - "version": "0.0.1", - "dev": true + "version": "0.0.1" }, "concat-stream": { "version": "1.6.2", @@ -10980,11 +11167,6 @@ "browserslist": "^4.22.1" } }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, "cors": { "version": "2.8.5", "requires": { @@ -11486,12 +11668,14 @@ "version": "1.8.1" }, "execa": { - "version": "6.1.0", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", "dev": true, "requires": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", - "human-signals": "^3.0.1", + "human-signals": "^4.3.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", @@ -11626,7 +11810,6 @@ }, "fill-range": { "version": "7.0.1", - "dev": true, "requires": { "to-regex-range": "^5.0.1" } @@ -11696,13 +11879,6 @@ "fs.realpath": { "version": "1.0.0" }, - "fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "optional": true - }, "function-bind": { "version": "1.1.1" }, @@ -11865,7 +12041,9 @@ } }, "human-signals": { - "version": "3.0.1", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", "dev": true }, "husky": { @@ -11881,6 +12059,11 @@ "version": "5.2.4", "dev": true }, + "ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==" + }, "import-fresh": { "version": "3.3.0", "dev": true, @@ -11951,6 +12134,14 @@ "has-bigints": "^1.0.1" } }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, "is-boolean-object": { "version": "1.1.2", "dev": true, @@ -11981,8 +12172,7 @@ } }, "is-extglob": { - "version": "2.1.1", - "dev": true + "version": "2.1.1" }, "is-fullwidth-code-point": { "version": "4.0.0", @@ -11996,7 +12186,6 @@ }, "is-glob": { "version": "4.0.3", - "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -12006,8 +12195,7 @@ "dev": true }, "is-number": { - "version": "7.0.0", - "dev": true + "version": "7.0.0" }, "is-number-object": { "version": "1.0.7", @@ -12037,6 +12225,8 @@ }, "is-stream": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true }, "is-string": { @@ -12071,11 +12261,6 @@ "call-bind": "^1.0.2" } }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, "isexe": { "version": "2.0.0", "dev": true @@ -12403,7 +12588,7 @@ "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", + "fsevents": "^2.3.3", "graceful-fs": "^4.2.9", "jest-regex-util": "^29.6.3", "jest-util": "^29.7.0", @@ -12781,7 +12966,9 @@ } }, "lilconfig": { - "version": "2.0.6", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "dev": true }, "lines-and-columns": { @@ -12797,22 +12984,32 @@ } }, "lint-staged": { - "version": "13.1.0", + "version": "13.2.3", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.2.3.tgz", + "integrity": "sha512-zVVEXLuQIhr1Y7R7YAWx4TZLdvuzk7DnmrsTNL0fax6Z3jrpFcas+vKbzxhhvp6TA55m1SQuWkpzI1qbfDZbAg==", "dev": true, "requires": { + "chalk": "5.2.0", "cli-truncate": "^3.1.0", - "colorette": "^2.0.19", - "commander": "^9.4.1", + "commander": "^10.0.0", "debug": "^4.3.4", - "execa": "^6.1.0", - "lilconfig": "2.0.6", - "listr2": "^5.0.5", + "execa": "^7.0.0", + "lilconfig": "2.1.0", + "listr2": "^5.0.7", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", - "object-inspect": "^1.12.2", + "object-inspect": "^1.12.3", "pidtree": "^0.6.0", "string-argv": "^0.3.1", - "yaml": "^2.1.3" + "yaml": "^2.2.2" + }, + "dependencies": { + "chalk": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", + "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", + "dev": true + } } }, "listr2": { @@ -12931,7 +13128,6 @@ }, "lru-cache": { "version": "6.0.0", - "dev": true, "requires": { "yallist": "^4.0.0" } @@ -13021,6 +13217,8 @@ }, "mimic-fn": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "dev": true }, "minimatch": { @@ -13093,12 +13291,78 @@ "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", "dev": true }, + "nodemon": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.0.2.tgz", + "integrity": "sha512-9qIN2LNTrEzpOPBaWHTm4Asy1LxXLSickZStAQ4IZe7zsoIpD/A7LWxhZV3t4Zu352uBcqVnRsDXSMR2Sc3lTA==", + "requires": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "requires": { + "abbrev": "1" + } + }, "normalize-path": { - "version": "3.0.0", - "dev": true + "version": "3.0.0" }, "npm-run-path": { "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", "dev": true, "requires": { "path-key": "^4.0.0" @@ -13106,6 +13370,8 @@ "dependencies": { "path-key": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true } } @@ -13114,7 +13380,9 @@ "version": "4.1.1" }, "object-inspect": { - "version": "1.12.2" + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==" }, "object-keys": { "version": "1.1.1", @@ -13153,6 +13421,8 @@ }, "onetime": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, "requires": { "mimic-fn": "^4.0.0" @@ -13245,8 +13515,7 @@ "dev": true }, "picomatch": { - "version": "2.3.1", - "dev": true + "version": "2.3.1" }, "pidtree": { "version": "0.6.0", @@ -13333,11 +13602,6 @@ } } }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, "prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -13355,6 +13619,11 @@ "ipaddr.js": "1.9.1" } }, + "pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==" + }, "punycode": { "version": "2.2.0", "dev": true @@ -13398,27 +13667,6 @@ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, "regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -13723,6 +13971,24 @@ "version": "3.0.7", "dev": true }, + "simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "requires": { + "semver": "^7.5.3" + }, + "dependencies": { + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, "sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -13793,21 +14059,6 @@ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==" }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, "string-argv": { "version": "0.3.1", "dev": true @@ -13875,6 +14126,8 @@ }, "strip-final-newline": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true }, "strip-json-comments": { @@ -13960,7 +14213,6 @@ }, "to-regex-range": { "version": "5.0.1", - "dev": true, "requires": { "is-number": "^7.0.0" } @@ -13968,6 +14220,14 @@ "toidentifier": { "version": "1.0.1" }, + "touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "requires": { + "nopt": "~1.0.10" + } + }, "tsconfig-paths": { "version": "3.14.1", "dev": true, @@ -14037,6 +14297,11 @@ "which-boxed-primitive": "^1.0.2" } }, + "undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==" + }, "undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", @@ -14091,11 +14356,6 @@ "punycode": "^2.1.0" } }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, "utils-merge": { "version": "1.0.1" }, @@ -14220,8 +14480,7 @@ "dev": true }, "yallist": { - "version": "4.0.0", - "dev": true + "version": "4.0.0" }, "yaml": { "version": "2.3.4", diff --git a/package.json b/package.json index 561143e..369d01f 100644 --- a/package.json +++ b/package.json @@ -49,6 +49,7 @@ "moment": "^2.29.4", "multer": "^1.4.5-lts.1", "node-fetch": "^3.3.0", + "nodemon": "^3.0.2", "queue-promise": "^2.2.1", "rss-generator": "^0.0.3" }, @@ -63,7 +64,7 @@ "eslint-plugin-n": "^15.6.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.7.0", - "lint-staged": "^13.1.0", + "lint-staged": "^13.2.3", "prettier": "^2.8.3" }, "lint-staged": { diff --git a/routes/account.js b/routes/account.js index 1831e14..84d70e5 100644 --- a/routes/account.js +++ b/routes/account.js @@ -1,7 +1,6 @@ import express from 'express'; import { getFollowers } from '../lib/account.js'; - /** * Express.js router for handling user profile-related routes. * @@ -52,7 +51,7 @@ router.get('/:name', (req, res) => { // Check if the provided 'name' matches the stored user profile ID if (name !== req.app.get('account').actor.id) { - // Respond with a 404 Not Found if no record is found for the provided 'name' + // Respond with a 404 Not Found if no record is found for the provided 'name' return res.status(404).send(`No record found for ${name}.`); } else { // Check the 'Accept' header for JSON-LD format and respond accordingly @@ -88,12 +87,11 @@ router.get('/:name', (req, res) => { router.get('/:name/followers', (req, res) => { // Extract the 'name' parameter from the request let name = req.params.name; - + // Handle missing 'name' parameter with a 400 Bad Request response if (!name) { return res.status(400).send('Bad request.'); } else { - // Obtain the domain from the app settings const domain = req.app.get('domain'); diff --git a/routes/accountHandler.js b/routes/accountHandler.js new file mode 100644 index 0000000..3585adc --- /dev/null +++ b/routes/accountHandler.js @@ -0,0 +1,48 @@ +import express from 'express'; +import { authenticateLogin, writeEnvToFile, createAccount } from '../lib/authentication.js'; +import { getAccount, ifAccount } from '../lib/account.js'; + +export const router = express.Router(); + +/* The code `router.get('/create', async (req, res) => { ... })` is defining a route handler for a GET +request to the '/create' endpoint. */ +router.get('/create', async (req, res) => { + res.status(200).render('createAccount', { + layout: 'public' + }); +}); + +/* The code `router.post('/create', (req, res) => { ... })` is defining a route handler for a POST +request to the '/create' endpoint. */ +router.post('/create', async (req, res) => { + await writeEnvToFile(req, res); + await createAccount(req, res); +}); + +/* The code `router.get('/login', (req, res) => { ... })` is defining a route handler for a GET request +to the '/login' endpoint. */ +router.get('/login', (req, res) => { + if (!ifAccount()) { + res.redirect('/account/create'); + } + res.status(200).render('login', { + layout: 'public' + }); +}); + +/* The code `router.post('/login', (req, res) => { ... })` is defining a route handler for a POST +request to the '/login' endpoint. */ +router.post('/login', (req, res) => { + const { username, password } = req.body; + + if (authenticateLogin(username, password)) { + const myaccount = getAccount(); + res.cookie('token', myaccount.apikey); + res.redirect('/private'); + } else { + res.status(200).render('login', { + layout: 'public', + message: "Username or password don't match" + }); + } +}); diff --git a/routes/admin.js b/routes/admin.js index 2241016..1ac2c07 100644 --- a/routes/admin.js +++ b/routes/admin.js @@ -777,4 +777,4 @@ router.post('/boost', async (req, res) => { }); } writeBoosts(boosts); -}); \ No newline at end of file +}); diff --git a/routes/index.js b/routes/index.js index 69a42f1..12607b5 100644 --- a/routes/index.js +++ b/routes/index.js @@ -5,3 +5,4 @@ export { router as outbox } from './outbox.js'; export { router as admin } from './admin.js'; export { router as notes } from './notes.js'; export { router as publicFacing } from './public.js'; +export { router as accountHandler } from './accountHandler.js'; diff --git a/routes/public.js b/routes/public.js index 84857d8..f3187eb 100644 --- a/routes/public.js +++ b/routes/public.js @@ -3,12 +3,7 @@ import debug from 'debug'; import RSS from 'rss-generator'; import dotenv from 'dotenv'; -import { - getNote, - isMyPost, - // getAccount, - getOutboxPosts -} from '../lib/account.js'; +import { getNote, isMyPost, getAccount, getOutboxPosts, ifAccount } from '../lib/account.js'; import { getActivity, getLikesForNote, getReplyCountForNote } from '../lib/notes.js'; import { INDEX } from '../lib/storage.js'; import { ActivityPub } from '../lib/ActivityPub.js'; @@ -94,25 +89,16 @@ const unrollThread = async (noteId, results = [], ascend = true, descend = true) * Renders the home page with the outbox posts fetched through the api */ router.get('/', async (req, res) => { + if (!ifAccount()) { + console.log('No account found. Redirecting to account creation.'); + res.redirect('/private'); + } const offset = parseInt(req.query.offset) || 0; - const { - // total, - posts - } = await getOutboxPosts(offset); + const { posts } = await getOutboxPosts(offset); + + const myaccount = getAccount(); + ActivityPub.account = myaccount; const actor = ActivityPub.actor; - // const enrichedPosts = posts.map((post) => { - // let stats; - // if (isMyPost(post)) { - // const likes = getLikesForNote(post.id) - // stats = { - // likes: likes.likes.length, - // boosts: likes.boosts.length, - // replies: getReplyCountForNote(post.id), - // } - // post.stats = stats; - // } - // return post; - // }) res.render('public/home', { me: ActivityPub.actor, From 8e420a8a2d6ce4362e1f644581c642cc51f19b99 Mon Sep 17 00:00:00 2001 From: Justin Nguyen Date: Mon, 11 Dec 2023 23:19:49 -0800 Subject: [PATCH 054/100] fix ci error --- .github/workflows/lint.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 17a1115..8346c8f 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -37,7 +37,7 @@ jobs: ${{ runner.os }}-node- - name: Install Node packages - run: npm ci + run: npm install && npm ci - name: Get changed files id: changes run: | From 7809e361ec23b41c402fc0bed07a315f82db2a21 Mon Sep 17 00:00:00 2001 From: Justin Nguyen Date: Mon, 11 Dec 2023 23:13:52 -0800 Subject: [PATCH 055/100] add more tests for ActivityPub.js --- lib/ActivityPub.js | 1 - lib/__tests__/ActivityPub.jest.js | 130 +++++++++++++++++++++++++++++- 2 files changed, 128 insertions(+), 3 deletions(-) diff --git a/lib/ActivityPub.js b/lib/ActivityPub.js index a96aba8..dcd8519 100644 --- a/lib/ActivityPub.js +++ b/lib/ActivityPub.js @@ -94,7 +94,6 @@ export class ActivityPubClient { const actor = await actorQuery.json(); return actor; } else { - // logger('failed to load actor', actorQuery.status, actorQuery.statusText, await actorQuery.text()); throw new Error('failed to load actor'); } } diff --git a/lib/__tests__/ActivityPub.jest.js b/lib/__tests__/ActivityPub.jest.js index 7f16625..ba215e8 100644 --- a/lib/__tests__/ActivityPub.jest.js +++ b/lib/__tests__/ActivityPub.jest.js @@ -1,4 +1,5 @@ -import { ActivityPubClient } from '../ActivityPub'; +import { ActivityPubClient, ActivityPub } from '../ActivityPub'; +import crypto from 'crypto'; jest.mock('node-fetch'); @@ -71,7 +72,132 @@ describe('Tests for ActivityPubClient webfinger', () => { }); }); -describe('Tests for ActivityPubClient fetchActor', () => {}); +describe('Tests for ActivityPubClient fetchActor', () => { + test('Check successful fetching actor', async () => { + fetch.mockReturnValue( + Promise.resolve({ + ok: true, + json: () => Promise.resolve({ testActor: 'testActor' }) + }) + ); + + const { publicKey, privateKey } = crypto.generateKeyPairSync('rsa', { + modulusLength: 2048, + publicKeyEncoding: { + type: 'pkcs1', + format: 'pem' + }, + privateKeyEncoding: { + type: 'pkcs1', + format: 'pem' + } + }); + + jest + .spyOn(ActivityPub, 'account', 'get') + .mockReturnValue({ actor: { publicKey: { id: publicKey } }, privateKey: privateKey }); + jest.spyOn(ActivityPub, 'actor', 'get').mockReturnValue({ publicKey: { id: publicKey } }); + + const actor = await ActivityPub.fetchActor('https://shuttlecraft.com/justin'); + expect(actor).toStrictEqual({ testActor: 'testActor' }); + }); + + test('Check error when fetching actor', async () => { + fetch.mockReturnValue( + Promise.resolve({ + ok: false, + json: () => Promise.resolve({ testActor: 'testActor' }) + }) + ); + + const { publicKey, privateKey } = crypto.generateKeyPairSync('rsa', { + modulusLength: 2048, + publicKeyEncoding: { + type: 'pkcs1', + format: 'pem' + }, + privateKeyEncoding: { + type: 'pkcs1', + format: 'pem' + } + }); + + jest + .spyOn(ActivityPub, 'account', 'get') + .mockReturnValue({ actor: { publicKey: { id: publicKey } }, privateKey: privateKey }); + jest.spyOn(ActivityPub, 'actor', 'get').mockReturnValue({ publicKey: { id: publicKey } }); + + try { + await ActivityPub.fetchActor('https://shuttlecraft.com/justin'); + } catch (e) { + expect(e).toMatchObject(new Error('failed to load actor')); + } + }); +}); + +describe('Tests for ActivityPubClient fetch', () => { + test('Check successful', async () => { + fetch.mockReturnValue( + Promise.resolve({ + fetch: 'fetch' + }) + ); + + const { publicKey, privateKey } = crypto.generateKeyPairSync('rsa', { + modulusLength: 2048, + publicKeyEncoding: { + type: 'pkcs1', + format: 'pem' + }, + privateKeyEncoding: { + type: 'pkcs1', + format: 'pem' + } + }); + + const activityPubClient = new ActivityPubClient({ + actor: { publicKey: { id: publicKey } }, + privateKey: privateKey + }); + const fetchResult = await activityPubClient.fetch('https://shuttlecraft.com/justin', {}); + expect(fetchResult).toStrictEqual({ fetch: 'fetch' }); + }); +}); + +describe('Tests for ActivityPubClient sendLike', () => { + test('Check successful', async () => { + const activityPubClient = new ActivityPubClient({ actor: { id: 'justin' } }); + const post = { id: 'post' }; + const recipient = { inbox: 'justin@shuttlecraft.com' }; + + const sendLikeResult = await activityPubClient.sendLike(post, recipient); + expect(sendLikeResult['@context']).toBe('https://www.w3.org/ns/activitystreams'); + expect(sendLikeResult.type).toBe('Like'); + expect(sendLikeResult.actor).toBe('justin'); + expect(sendLikeResult.object).toBe('post'); + }); +}); + +describe('Tests for ActivityPubClient sendUndoLike', () => { + test('Check successful', async () => { + const activityPubClient = new ActivityPubClient({ actor: { id: 'justin' } }); + const post = { id: 'post' }; + const recipient = { inbox: 'justin@shuttlecraft.com' }; + + const sendUndoLikeResult = await activityPubClient.sendUndoLike(post, recipient, 'originalId'); + console.log(sendUndoLikeResult); + expect(sendUndoLikeResult['@context']).toBe('https://www.w3.org/ns/activitystreams'); + expect(sendUndoLikeResult.id).toBe('originalId/undo'); + expect(sendUndoLikeResult.type).toBe('Undo'); + expect(sendUndoLikeResult.actor).toBe('justin'); + expect(sendUndoLikeResult.object).toStrictEqual({ + id: 'originalId', + type: 'Like', + actor: 'justin', + object: 'post' + }); + }); +}); describe('Tests for ActivityPubClient getUsernameDomain', () => { test('Check when userIdorName is not passed as an argument', () => { From 5dbe650e62c2743b22b6cd707c88f4ed0f6d2028 Mon Sep 17 00:00:00 2001 From: Tigojiang Date: Sun, 10 Dec 2023 19:22:17 -0800 Subject: [PATCH 056/100] Update secret.css --- public/css/secret.css | 43 +++++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/public/css/secret.css b/public/css/secret.css index 3b7ff55..36d0f7c 100644 --- a/public/css/secret.css +++ b/public/css/secret.css @@ -733,6 +733,9 @@ button.bigfollow.active .inactive { #emojis input { font-size: 2rem; } +#emojis .emoji-setting { + border-bottom: 2px solid #d3d3d3; +} .profileHeader { height: 150px; @@ -904,6 +907,18 @@ details#bio { margin-bottom: 10px; } +.preferences-settings { + border: 2px solid #2c3e50; + padding: 10px 20px; + margin-bottom: 20px; + border-radius: 8px; + color: black; + box-shadow: 0 0 15px rgba(44, 62, 80, 0.2); + background-color: white; + padding: 20px; + max-width: 40rem; +} + label { width: 100px; margin-right: 10px; @@ -933,7 +948,10 @@ input::placeholder { input:hover { border-color: #888; } - +.preferences-form legend { + font-weight: bold; + color: #00018c; +} .preferences-form button { background-color: #3cb4c7; color: #333344; @@ -967,6 +985,9 @@ input:hover { font-family: monospace; font-size: 1.2em; } +.preferences-form .form-group { + border-bottom: 2px solid #d3d3d3; +} .queue-status header { background: -webkit-linear-gradient(left, #d3d3d3, #d3d3d3, #d3d3d3); -webkit-background-clip: text; @@ -981,25 +1002,11 @@ input:hover { padding: 10px 20px; margin-bottom: 20px; border-radius: 8px; + color: black; box-shadow: 0 0 15px rgba(44, 62, 80, 0.2); - border: none; - position: relative; + background-color: white; padding: 20px; - border-radius: 8px; -} - -.queue-status .queue-details::after { - content: ''; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - border-radius: 8px; - background: linear-gradient(to right, #8e44ad, #3498db); - z-index: -1; - padding: 3px; - border-radius: 5px; + max-width: 40rem; } #composer_form { From e1d3a3e4a6b3a3d3a9f00485d6ca23d4b0cd8de0 Mon Sep 17 00:00:00 2001 From: Tigojiang Date: Sun, 10 Dec 2023 16:06:15 -0800 Subject: [PATCH 057/100] mock my post --- design/feeds.handlebars | 12 +++++++++ design/partials/note.handlebars | 45 ++++++++++++++++++++++++++++++++- 2 files changed, 56 insertions(+), 1 deletion(-) diff --git a/design/feeds.handlebars b/design/feeds.handlebars index 7c48688..b2324c9 100644 --- a/design/feeds.handlebars +++ b/design/feeds.handlebars @@ -7,6 +7,18 @@ {{#if feed}} {{> profileHeader actor=feed nobio=true}} {{/if}} + {{!-- mock data begins --}} +
+ {{!-- {{#if boost}} --}} +
+ 🚀 boosted by booster_name +
+ {{> note note=note}} + {{!-- {{else}} + {{> note note=note hidebyline=true}} + {{/if}} --}} +
+ {{!-- mock data ends --}} {{#if activitystream}} {{#each activitystream}} {{#with this}} diff --git a/design/partials/note.handlebars b/design/partials/note.handlebars index e270b5f..123352d 100644 --- a/design/partials/note.handlebars +++ b/design/partials/note.handlebars @@ -1,4 +1,4 @@ - {{#unless hidebyline}} + {{!-- {{#unless hidebyline}} {{> byline actor=actor}} {{/unless}} {{#if note.summary}} @@ -45,4 +45,47 @@
+
--}} + +{{!-- mock the data starting from below!!! --}} +
+ ⚠️ summary of the notes here: ......... aka content warning +
+ Toggle +
+
+
+ The content of the post is here. Hi CSE 210, the code freeze is coming soon.. +{{!-- + {{#if note.inReplyTo}} +

Show Thread

+ {{/if}} --}} +{{!-- + {{#each note.attachment}} +
+ {{#isImage mediaType}} + {{../name}} + {{/isImage}} + {{#isVideo mediaType}} + + {{/isVideo}} +
+ {{/each}} --}} +
+
+ + + + +
+ +
From f0da2adad26847590db8b85ff1258154a9cdbb99 Mon Sep 17 00:00:00 2001 From: Tigojiang Date: Sun, 10 Dec 2023 18:53:55 -0800 Subject: [PATCH 058/100] notification style --- design/feeds.handlebars | 12 --------- design/notifications.handlebars | 34 ++++++++++++++++++++++-- design/partials/note.handlebars | 47 ++------------------------------- public/css/secret.css | 8 ++++++ 4 files changed, 42 insertions(+), 59 deletions(-) diff --git a/design/feeds.handlebars b/design/feeds.handlebars index b2324c9..7c48688 100644 --- a/design/feeds.handlebars +++ b/design/feeds.handlebars @@ -7,18 +7,6 @@ {{#if feed}} {{> profileHeader actor=feed nobio=true}} {{/if}} - {{!-- mock data begins --}} -
- {{!-- {{#if boost}} --}} -
- 🚀 boosted by booster_name -
- {{> note note=note}} - {{!-- {{else}} - {{> note note=note hidebyline=true}} - {{/if}} --}} -
- {{!-- mock data ends --}} {{#if activitystream}} {{#each activitystream}} {{#with this}} diff --git a/design/notifications.handlebars b/design/notifications.handlebars index ecb1610..19e44a3 100644 --- a/design/notifications.handlebars +++ b/design/notifications.handlebars @@ -3,11 +3,41 @@ {{prefs.icons.notifications}} Notifications +{{!-- mock notification starts --}} + {{!--
+
🚀 username boosted your post at time
+
+ note content +
+
+
+ {{> note actor=../actor note=../note}} +
+ +
+
💬 username mentioned you at time
+ {{> note actor=../actor note=../note}} +
+ + +
+
⭐️ username liked your post at time
+
+ note content +
+
+ +
+
🤷🏽‍♂️ username followed you at time
+ {{> byline actor=../actor}} +
--}} + +{{!-- mock notification ends --}} {{#each notifications}} -
+
{{#with this}} {{#isEq notification.type "Announce"}} - +
{{{...note.content}}}
diff --git a/design/partials/note.handlebars b/design/partials/note.handlebars index 123352d..1691472 100644 --- a/design/partials/note.handlebars +++ b/design/partials/note.handlebars @@ -1,4 +1,4 @@ - {{!-- {{#unless hidebyline}} + {{#unless hidebyline}} {{> byline actor=actor}} {{/unless}} {{#if note.summary}} @@ -45,47 +45,4 @@
-
--}} - -{{!-- mock the data starting from below!!! --}} -
- ⚠️ summary of the notes here: ......... aka content warning -
- Toggle -
-
-
- The content of the post is here. Hi CSE 210, the code freeze is coming soon.. -{{!-- - {{#if note.inReplyTo}} -

Show Thread

- {{/if}} --}} -{{!-- - {{#each note.attachment}} -
- {{#isImage mediaType}} - {{../name}} - {{/isImage}} - {{#isVideo mediaType}} - - {{/isVideo}} -
- {{/each}} --}} -
-
- - - - -
- -
-
+
\ No newline at end of file diff --git a/public/css/secret.css b/public/css/secret.css index 36d0f7c..1b7443c 100644 --- a/public/css/secret.css +++ b/public/css/secret.css @@ -1038,3 +1038,11 @@ input:hover { #composer_form button:hover { background-color: #e6b800; } + +.notification-activity { + background-color: white; + border-radius: 4px; + padding: 20px; + margin-top: 15px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); +} From 5d45b53b2574497da20ed57b2135b39c67711e6c Mon Sep 17 00:00:00 2001 From: Tigojiang Date: Sun, 10 Dec 2023 18:56:46 -0800 Subject: [PATCH 059/100] Update notifications.handlebars --- design/notifications.handlebars | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/design/notifications.handlebars b/design/notifications.handlebars index 19e44a3..3325285 100644 --- a/design/notifications.handlebars +++ b/design/notifications.handlebars @@ -37,7 +37,7 @@
{{#with this}} {{#isEq notification.type "Announce"}} - +
{{{...note.content}}}
From 31ac04635da53557cde02917f12cc52cfff7cc87 Mon Sep 17 00:00:00 2001 From: Tigojiang Date: Sun, 10 Dec 2023 19:00:02 -0800 Subject: [PATCH 060/100] Update notifications.handlebars --- design/notifications.handlebars | 30 ------------------------------ 1 file changed, 30 deletions(-) diff --git a/design/notifications.handlebars b/design/notifications.handlebars index 3325285..27f92f5 100644 --- a/design/notifications.handlebars +++ b/design/notifications.handlebars @@ -3,36 +3,6 @@ {{prefs.icons.notifications}} Notifications -{{!-- mock notification starts --}} - {{!--
-
🚀 username boosted your post at time
-
- note content -
-
-
- {{> note actor=../actor note=../note}} -
- -
-
💬 username mentioned you at time
- {{> note actor=../actor note=../note}} -
- - -
-
⭐️ username liked your post at time
-
- note content -
-
- -
-
🤷🏽‍♂️ username followed you at time
- {{> byline actor=../actor}} -
--}} - -{{!-- mock notification ends --}} {{#each notifications}}
{{#with this}} From 87ab1e38dbf2ba2e869ebc43dc1f5b6b3f91c729 Mon Sep 17 00:00:00 2001 From: Aditya Mandke <40426312+ekdnam@users.noreply.github.com> Date: Sun, 10 Dec 2023 19:29:56 -0800 Subject: [PATCH 061/100] make the ui more twitter like --- design/dashboard.handlebars | 4 +- public/css/secret.css | 190 +++++++++++++++++------------------- 2 files changed, 90 insertions(+), 104 deletions(-) diff --git a/design/dashboard.handlebars b/design/dashboard.handlebars index f1674ba..4938657 100644 --- a/design/dashboard.handlebars +++ b/design/dashboard.handlebars @@ -20,8 +20,8 @@ {{else}}

Follow some people to fill your feed with posts.

-

I suggest following me! - I'm benbrown@hackers.town +

We suggest following our Professor Thomas Powell! You can find him at + thomasapowell@fosstodon.org

{{/if}} diff --git a/public/css/secret.css b/public/css/secret.css index 1b7443c..ba7e181 100644 --- a/public/css/secret.css +++ b/public/css/secret.css @@ -1,15 +1,6 @@ -:root { - --background: #ccc; - --text: #333333; - --link: #00018c; - --secondary: #ccc; - --tertiary: #f0f0f0; - --contrast: #414141; - --separator: #7777bb; - --shade: rgba(255, 255, 255, 0.25); - --highlight: rgba(0, 0, 0, 0.25); - --accent: rgb(250, 4, 197); -} +@import url('./posts.css'); +@import url('./constants.css'); +@import url('./content.css'); body { background: var(--background); @@ -17,7 +8,8 @@ body { font-size: 15px; padding: 0; margin: 0; - font-family: Arial, Helvetica, sans-serif; + font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; + /* position: relative; */ } * { @@ -105,7 +97,7 @@ nav ul { border-top: 1px solid var(--secondary); font-size: 1.5rem; - background: var(--tertiary); + background: white; } #nav ul { @@ -145,7 +137,7 @@ nav ul { overflow-y: auto; background: var(--tertiary); - border-right: 1px solid var(--separator); + border-right: 1px solid #000000; flex-grow: 0; font-size: 14px; letter-spacing: 0.04rem; @@ -176,14 +168,6 @@ nav ul { background: var(--highlight); } -#content { - padding-bottom: 3rem; -} - -#content.nonav { - padding-bottom: 0; -} - #top_nav { margin-top: 1rem; display: none; @@ -207,7 +191,8 @@ nav ul { } #menu li.current a { - background-color: var(--secondary); + background-color: navy; + color: #fff; } #top_feeds li a { display: flex; @@ -265,15 +250,9 @@ nav ul { font-size: 0.75rem; } - #content { - flex-grow: 1; - flex-shrink: 1; - overflow-y: auto; - } - - #content .stream { + /* #content .stream { margin: 1rem; - } + } */ .toolbar { position: relative; @@ -333,7 +312,7 @@ nav ul { #header { width: 100%; - font-family: 'Courier New', Courier, monospace; + font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; padding: 0.5rem; background: var(--separator); position: relative; @@ -373,10 +352,11 @@ a { } header { - color: var(--text); + color: #fff; font-weight: bold; padding: 0.5rem 1rem; background: var(--separator); + font-size: large; } header.back { @@ -401,12 +381,12 @@ header a { .empty { padding: 1rem; - color: var(--highlight); + color: #000080; } .activity { border-bottom: 1px solid var(--secondary); - background: var(--tertiary); + background: var(--background); padding: 1rem 1rem; line-height: 1.25rem; } @@ -460,28 +440,12 @@ header a { gap: 0; } -.activity .content { - padding-left: calc(50px + 1rem); -} - -.content_warning { - background: var(--shade); - padding: 0.5rem 1rem; - display: flex; -} - -.content_warning .tools { - flex-grow: 1; - text-align: right; - /* padding-right: 1rem; */ -} - -.content_warning .tools a { - margin: 0px auto; - padding: 0.25rem 1rem; +.note-activity { + background-color: white; border-radius: 4px; - background: var(--shade); - text-decoration: none; + padding: 20px; + margin-top: 15px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); } @media screen and (min-width: 769px) { @@ -498,9 +462,10 @@ header a { } .activity .boost { - background: var(--shade); - padding: 0.25rem 0.5rem; - margin-bottom: 1rem; + /* background: var(--background); */ + /* padding: 0.1; */ + font-size: smaller; + margin-bottom: 0.25rem; } .avatar { @@ -517,6 +482,7 @@ header a { .permalink { color: var(--secondary); text-decoration: none; + margin-top: 2rem; } .permalink:hover { @@ -587,30 +553,6 @@ input#cw { float: right; } -.content .tools { - flex-grow: 1; -} -.content .tools div { - display: inline-block; -} -.content .tools button { - font-size: 1rem; - background: none; - border: none; - padding: 0; - margin-right: 0.5rem; -} -/* .content .tools button.active { background: var(--highlight); } */ -.content .tools button .active { - display: none; -} -.content .tools button.active .active { - display: block; -} -.content .tools button.active .inactive { - display: none; -} - button.follow { background: none; border: none; @@ -730,6 +672,10 @@ button.bigfollow.active .inactive { font-weight: bold; } +#emojis { + display: block; +} + #emojis input { font-size: 2rem; } @@ -809,8 +755,9 @@ button.bigfollow.active .inactive { } .message_text { - background: var(--highlight); + background: white; border-radius: 0.5rem; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); padding: 1rem; max-width: 75%; display: inline-block; @@ -837,7 +784,8 @@ button.bigfollow.active .inactive { } .inbox .message.outgoing .message_text { - background: var(--shade); + background: var(--separator); + color: white; } .feeds { @@ -862,7 +810,7 @@ button.bigfollow.active .inactive { .feeds .feed { position: relative; padding: 0.5rem 1rem; - padding-right: 4rem; + padding-right: 1rem; border-bottom: 1px solid var(--secondary); display: flex; align-items: center; @@ -884,6 +832,10 @@ button.bigfollow.active .inactive { /* background: var(--secondary); */ } +.current { + color: #fff; +} + .feeds .current { /* font-weight: bold; */ background: var(--secondary); @@ -908,15 +860,15 @@ details#bio { } .preferences-settings { - border: 2px solid #2c3e50; - padding: 10px 20px; + padding: 20px; margin-bottom: 20px; - border-radius: 8px; + border-radius: 4px; color: black; - box-shadow: 0 0 15px rgba(44, 62, 80, 0.2); background-color: white; padding: 20px; max-width: 40rem; + margin-top: 15px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); } label { @@ -967,13 +919,18 @@ input:hover { border-radius: 5px; } -.preferences-form button:hover { - background-color: #e6b800; +.preferences-header { + color: black; +} + +.preferences-settings legend { + color: black; + font-size: small; + font-weight: bold; } -#content { - padding-left: 50px; - padding-top: 10px; +.preferences-form button:hover { + background-color: #e6b800; } .preferences-form header { @@ -982,7 +939,7 @@ input:hover { width: 20ch; white-space: nowrap; overflow: hidden; - font-family: monospace; + font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 1.2em; } .preferences-form .form-group { @@ -994,19 +951,20 @@ input:hover { width: 20ch; white-space: nowrap; overflow: hidden; - font-family: monospace; + font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; + color: black; font-size: 1.2em; } .queue-status .queue-details { - border: 2px solid #2c3e50; - padding: 10px 20px; + padding: 20px; margin-bottom: 20px; - border-radius: 8px; + border-radius: 4px; color: black; - box-shadow: 0 0 15px rgba(44, 62, 80, 0.2); background-color: white; padding: 20px; max-width: 40rem; + margin-top: 15px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); } #composer_form { @@ -1046,3 +1004,31 @@ input:hover { margin-top: 15px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); } + +.form-group { + font-size: smaller; +} + +.emoji-setting { + font-size: smaller; +} + +.stream header a { + color: white; +} + +.outgoing .u-url { + color: white; +} + +.inReplyTo { + display: none; +} + +.to { + display: none; +} + +.mini-cw { + display: none; +} \ No newline at end of file From f9930c80ebf7b422b8c1a0c12b6832bdb7c078c9 Mon Sep 17 00:00:00 2001 From: Aditya Mandke <40426312+ekdnam@users.noreply.github.com> Date: Sun, 10 Dec 2023 19:32:03 -0800 Subject: [PATCH 062/100] remove mock data --- design/partials/note.handlebars | 92 +++++++++++++++++---------------- 1 file changed, 47 insertions(+), 45 deletions(-) diff --git a/design/partials/note.handlebars b/design/partials/note.handlebars index 1691472..7bc0cee 100644 --- a/design/partials/note.handlebars +++ b/design/partials/note.handlebars @@ -1,48 +1,50 @@ - {{#unless hidebyline}} - {{> byline actor=actor}} - {{/unless}} - {{#if note.summary}} -
- ⚠️ {{note.summary}} -
- Toggle -
+
+ {{#unless hidebyline}} + {{> byline actor=actor}} + {{/unless}} + {{#if note.summary}} +
+ ⚠️ {{note.summary}} +
+ Toggle
- {{/if}} -
- {{{note.content}}} +
+ {{/if}} +
+ {{{note.content}}} - {{#if note.inReplyTo}} -

Show Thread

- {{/if}} + {{#if note.inReplyTo}} +

Show Thread

+ {{/if}} - {{#each note.attachment}} -
- {{#isImage mediaType}} - {{../name}} - {{/isImage}} - {{#isVideo mediaType}} - - {{/isVideo}} -
- {{/each}} -
-
- - - - {{#isEq note.attributedTo @root.me.id}} - - {{/isEq}} -
- -
-
\ No newline at end of file + {{#each note.attachment}} +
+ {{#isImage mediaType}} + {{../name}} + {{/isImage}} + {{#isVideo mediaType}} + + {{/isVideo}} +
+ {{/each}} +
+
+ + + + {{#isEq note.attributedTo @root.me.id}} + + {{/isEq}} +
+ +
+
+
From a5bf3671b69f97ad3c5c3924c9f3535c5a1e595e Mon Sep 17 00:00:00 2001 From: Aditya Mandke <40426312+ekdnam@users.noreply.github.com> Date: Sun, 10 Dec 2023 20:56:44 -0800 Subject: [PATCH 063/100] change background color and text color for dm received --- public/css/secret.css | 2 ++ 1 file changed, 2 insertions(+) diff --git a/public/css/secret.css b/public/css/secret.css index ba7e181..4debf68 100644 --- a/public/css/secret.css +++ b/public/css/secret.css @@ -781,6 +781,8 @@ button.bigfollow.active .inactive { display: flex; flex-direction: column; align-items: flex-end; + background-color: var(--separator); + color: white; } .inbox .message.outgoing .message_text { From a3ce40ff33d032a73e06d4ce61f7b9086e290d11 Mon Sep 17 00:00:00 2001 From: Aditya Mandke <40426312+ekdnam@users.noreply.github.com> Date: Sun, 10 Dec 2023 20:59:47 -0800 Subject: [PATCH 064/100] the earlier commit changed design for the parent container, now testing for the specific message_text component --- public/css/secret.css | 2 -- 1 file changed, 2 deletions(-) diff --git a/public/css/secret.css b/public/css/secret.css index 4debf68..ba7e181 100644 --- a/public/css/secret.css +++ b/public/css/secret.css @@ -781,8 +781,6 @@ button.bigfollow.active .inactive { display: flex; flex-direction: column; align-items: flex-end; - background-color: var(--separator); - color: white; } .inbox .message.outgoing .message_text { From ec887b487170d52e7e00ddb69f213f41d2f7c2be Mon Sep 17 00:00:00 2001 From: Aditya Mandke <40426312+ekdnam@users.noreply.github.com> Date: Mon, 11 Dec 2023 01:07:58 -0800 Subject: [PATCH 065/100] delete content warning and reply to fields from composer --- design/partials/minicomposer.handlebars | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/design/partials/minicomposer.handlebars b/design/partials/minicomposer.handlebars index 13b8329..35a51f6 100644 --- a/design/partials/minicomposer.handlebars +++ b/design/partials/minicomposer.handlebars @@ -2,9 +2,9 @@
- + {{!-- - + --}}
From 58f1f35071ba192e999043e406d2c627941b0b44 Mon Sep 17 00:00:00 2001 From: Aditya Mandke <40426312+ekdnam@users.noreply.github.com> Date: Mon, 11 Dec 2023 01:34:40 -0800 Subject: [PATCH 066/100] break into files --- public/css/constants.css | 13 ++++++++ public/css/content.css | 72 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 public/css/constants.css create mode 100644 public/css/content.css diff --git a/public/css/constants.css b/public/css/constants.css new file mode 100644 index 0000000..c46d5a8 --- /dev/null +++ b/public/css/constants.css @@ -0,0 +1,13 @@ +:root { + --background: #f9f9f9; /* Light gray background */ + --text: #333; /* Dark text color */ + --link: #1da1f2; /* Twitter blue */ + --secondary: #666; /* Dimmed secondary text */ + --tertiary: #e5e5e5; /* Light gray for tertiary elements */ + --contrast: #555; /* Dark gray for contrast */ + --separator: #1da1f2; /* Twitter blue for separators */ + --header: #e0e0e0; + --shade: rgba(249, 249, 249, 0.25); /* Slight shade for depth */ + --highlight: #888; /* Medium gray for highlights */ + --accent: #e50b76; /* Pink accent */ + } \ No newline at end of file diff --git a/public/css/content.css b/public/css/content.css new file mode 100644 index 0000000..38dfa77 --- /dev/null +++ b/public/css/content.css @@ -0,0 +1,72 @@ +@import url('./constants.css'); + +#content { + padding-bottom: 3rem; +} + +#content.nonav { + padding-bottom: 0; +} + +#content { + flex-grow: 1; + flex-shrink: 1; + overflow-y: auto; +} + +.content { + font-size: medium; + padding-bottom: 2px; +} +.activity .content { + padding-left: calc(50px + 1rem); +} + +.content_warning { + /* padding: 0.5rem 1rem; */ + font-size: smaller; +} + +.content_warning .tools { + flex-grow: 1; + text-align: right; + /* padding-right: 1rem; */ +} + +.content_warning .tools a { + margin: 0px auto; + padding: 0.25rem 1rem; + border-radius: 4px; + background: var(--shade); + text-decoration: none; +} + +.content .tools { + flex-grow: 1; +} +.content .tools div { + display: inline-block; +} +.content .tools button { + font-size: 1rem; + background: none; + border: none; + padding: 0; + margin-top: 2rem; + margin-right: 0.5rem; +} +/* .content .tools button.active { background: var(--highlight); } */ +.content .tools button .active { + display: none; +} +.content .tools button.active .active { + display: block; +} +.content .tools button.active .inactive { + display: none; +} + +#content { + padding-left: 50px; + padding-top: 10px; + } \ No newline at end of file From 86f4b182d7e2aa00f477518c2ec9da5d4ab26063 Mon Sep 17 00:00:00 2001 From: Aditya Mandke <40426312+ekdnam@users.noreply.github.com> Date: Mon, 11 Dec 2023 17:09:57 -0800 Subject: [PATCH 067/100] center the content container so that the website looks better on devices with smaller screen sizes --- public/css/content.css | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/public/css/content.css b/public/css/content.css index 38dfa77..f29af0b 100644 --- a/public/css/content.css +++ b/public/css/content.css @@ -67,6 +67,9 @@ } #content { - padding-left: 50px; - padding-top: 10px; + width: 75%; /* Set the width of your child container */ + position: relative; + left: 50%; + transform: translateX(-50%); + padding-top: 1rem; } \ No newline at end of file From d700129be71fcfbd443a82a015882dd95c8f2cdd Mon Sep 17 00:00:00 2001 From: Aditya Mandke <40426312+ekdnam@users.noreply.github.com> Date: Mon, 11 Dec 2023 20:00:25 -0800 Subject: [PATCH 068/100] remove border of composer --- public/css/secret.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/css/secret.css b/public/css/secret.css index ba7e181..1b68fb1 100644 --- a/public/css/secret.css +++ b/public/css/secret.css @@ -516,7 +516,7 @@ header a { #composer.mini { margin-bottom: 0; background-color: var(--tertiary); - border-bottom: 1px solid var(--secondary); + /* border-bottom: 1px solid var(--secondary); */ position: fixed; bottom: 50px; left: 0; @@ -975,7 +975,7 @@ input:hover { border: 1px solid #ddd; padding: 20px; border-radius: 8px; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + /* box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); */ } #composer_form button { From 534d01eff7460d15cf32d89412115da288623252 Mon Sep 17 00:00:00 2001 From: Tigojiang Date: Mon, 11 Dec 2023 22:19:54 -0800 Subject: [PATCH 069/100] fix the composer form style --- public/css/secret.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/css/secret.css b/public/css/secret.css index 1b68fb1..ba7e181 100644 --- a/public/css/secret.css +++ b/public/css/secret.css @@ -516,7 +516,7 @@ header a { #composer.mini { margin-bottom: 0; background-color: var(--tertiary); - /* border-bottom: 1px solid var(--secondary); */ + border-bottom: 1px solid var(--secondary); position: fixed; bottom: 50px; left: 0; @@ -975,7 +975,7 @@ input:hover { border: 1px solid #ddd; padding: 20px; border-radius: 8px; - /* box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); */ + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); } #composer_form button { From 5c3c0b53118202e9c8765edbf52de92d06b55cbe Mon Sep 17 00:00:00 2001 From: Tigojiang Date: Mon, 11 Dec 2023 22:27:25 -0800 Subject: [PATCH 070/100] update composer --- design/partials/composer.handlebars | 4 ++-- design/partials/minicomposer.handlebars | 20 ++++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/design/partials/composer.handlebars b/design/partials/composer.handlebars index 9647e90..3747929 100644 --- a/design/partials/composer.handlebars +++ b/design/partials/composer.handlebars @@ -18,14 +18,14 @@ - - -
-
- - {{!-- - - --}} - -
-
+
+
+
+ + + + + +
+
\ No newline at end of file From b8d7d0dd38b1f74fa87bee0f06f5e44862e3e87a Mon Sep 17 00:00:00 2001 From: Tigojiang Date: Mon, 11 Dec 2023 23:10:43 -0800 Subject: [PATCH 071/100] remove ct warning --- design/partials/minicomposer.handlebars | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/design/partials/minicomposer.handlebars b/design/partials/minicomposer.handlebars index da6ba0c..341cd9f 100644 --- a/design/partials/minicomposer.handlebars +++ b/design/partials/minicomposer.handlebars @@ -2,7 +2,7 @@
- + From 71ed492b0b58b10f207b6488132accc4a757790e Mon Sep 17 00:00:00 2001 From: Aditya Mandke <40426312+ekdnam@users.noreply.github.com> Date: Mon, 11 Dec 2023 23:17:17 -0800 Subject: [PATCH 072/100] Make the navbar stick to the bottom part of the screen and not get overlapped by the posts --- public/css/content.css | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/public/css/content.css b/public/css/content.css index f29af0b..6cd8a99 100644 --- a/public/css/content.css +++ b/public/css/content.css @@ -66,10 +66,8 @@ display: none; } + #content { - width: 75%; /* Set the width of your child container */ - position: relative; - left: 50%; - transform: translateX(-50%); - padding-top: 1rem; - } \ No newline at end of file + padding-left: 50px; + padding-top: 10px; + } From 85ee96d07f2b5b342ee371aaa99a148a35c2e4b9 Mon Sep 17 00:00:00 2001 From: Aditya Mandke <40426312+ekdnam@users.noreply.github.com> Date: Mon, 11 Dec 2023 23:40:53 -0800 Subject: [PATCH 073/100] rebase with glitch instance #1 center align the components when rendered on a mobile (small screen) --- public/css/content.css | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/public/css/content.css b/public/css/content.css index 6cd8a99..186eb66 100644 --- a/public/css/content.css +++ b/public/css/content.css @@ -68,6 +68,7 @@ #content { - padding-left: 50px; - padding-top: 10px; + padding-left: 5%; + padding-right: 5%; + padding-top: 10px; } From 99bd89d7e33810e7aad9b35451d8e67dda299407 Mon Sep 17 00:00:00 2001 From: Aditya Mandke <40426312+ekdnam@users.noreply.github.com> Date: Mon, 11 Dec 2023 23:42:05 -0800 Subject: [PATCH 074/100] format file - make the indentation correct --- public/css/content.css | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/public/css/content.css b/public/css/content.css index 186eb66..6694a57 100644 --- a/public/css/content.css +++ b/public/css/content.css @@ -68,7 +68,7 @@ #content { - padding-left: 5%; - padding-right: 5%; + padding-left: 5%; + padding-right: 5%; padding-top: 10px; - } +} From fce718a10c033b6e8e0e4a146e88af8495dda028 Mon Sep 17 00:00:00 2001 From: Wang Dingkun Date: Tue, 12 Dec 2023 02:44:49 -0800 Subject: [PATCH 075/100] feat: supported turning on/off post features --- design/partials/composer.handlebars | 8 ++++++++ lib/account.js | 8 +++++++- public/app.js | 10 +++++++--- routes/admin.js | 13 +++++++++++-- 4 files changed, 33 insertions(+), 6 deletions(-) diff --git a/design/partials/composer.handlebars b/design/partials/composer.handlebars index 41d9e7f..edfdc0e 100644 --- a/design/partials/composer.handlebars +++ b/design/partials/composer.handlebars @@ -35,6 +35,14 @@ {{#if prev}} {{/if}} +
+ + + + + + +
diff --git a/lib/account.js b/lib/account.js index 50896f7..6d5bca4 100644 --- a/lib/account.js +++ b/lib/account.js @@ -553,9 +553,12 @@ export const sendUpdateToFollowers = async object => { * @param editOf - The `editOf` parameter is a string that represents the URL of the post that is being * edited. If this parameter is provided, the function will use the same GUID (Globally Unique * Identifier) as the post being edited. + * @param canReply - Whether this note can be replied. + * @param canBoost - Whether this note can be boosted. + * @param canFave - Whether this note can be liked. * @returns the `object` variable. */ -export const createNote = async (body, cw, inReplyTo, toUser, editOf) => { +export const createNote = async (body, cw, inReplyTo, toUser, editOf, canReply, canBoost, canFave) => { const publicAddress = 'https://www.w3.org/ns/activitystreams#Public'; const d = new Date(); @@ -667,6 +670,9 @@ export const createNote = async (body, cw, inReplyTo, toUser, editOf) => { url, to, cc, + canReply, + canBoost, + canFave, directMessage, sensitive: !!cw, atomUri: activityId, diff --git a/public/app.js b/public/app.js index 776bdd0..b46ea04 100644 --- a/public/app.js +++ b/public/app.js @@ -196,9 +196,10 @@ const app = { const inReplyTo = document.getElementById('inReplyTo'); const to = document.getElementById('to'); const editOf = document.getElementById('editOf'); - + const canReply = document.getElementById('canReply').checked; + const canBoost = document.getElementById('canBoost').checked; + const canFave = document.getElementById('canFave').checked; const form = document.getElementById('composer_form'); - form.disabled = true; fetch( @@ -209,7 +210,10 @@ const app = { cw: cw.value, inReplyTo: inReplyTo.value, to: to.value, - editOf: editOf ? editOf.value : null + editOf: editOf ? editOf.value : null, + canReply, + canBoost, + canFave }) ) .then(newHtml => { diff --git a/routes/admin.js b/routes/admin.js index 2241016..fffa0ec 100644 --- a/routes/admin.js +++ b/routes/admin.js @@ -342,7 +342,16 @@ router.get('/post', async (req, res) => { */ router.post('/post', async (req, res) => { // TODO: this is probably supposed to be a post to /api/outbox - const post = await createNote(req.body.post, req.body.cw, req.body.inReplyTo, req.body.to, req.body.editOf); + const post = await createNote( + req.body.post, + req.body.cw, + req.body.inReplyTo, + req.body.to, + req.body.editOf, + req.body.canReply, + req.body.canBoost, + req.body.canFave + ); if (post.directMessage === true) { // return html partial of the new post for insertion in the feed res.status(200).render('partials/dm', { @@ -777,4 +786,4 @@ router.post('/boost', async (req, res) => { }); } writeBoosts(boosts); -}); \ No newline at end of file +}); From 305ac41fa08d1aab4a4c63d98d8ea07d4088f289 Mon Sep 17 00:00:00 2001 From: Wang Dingkun Date: Tue, 12 Dec 2023 03:03:22 -0800 Subject: [PATCH 076/100] feat: supported turning on/off post features --- design/partials/note.handlebars | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/design/partials/note.handlebars b/design/partials/note.handlebars index e270b5f..87b5e1c 100644 --- a/design/partials/note.handlebars +++ b/design/partials/note.handlebars @@ -28,15 +28,21 @@ {{/each}}
+ {{#if note.canReply}} + {{/if}} + {{#if note.canBoost}} + {{/if}} + {{#if note.canFave}} + {{/if}} {{#isEq note.attributedTo @root.me.id}} - {{/if}} - {{#if note.canBoost}} - - {{/if}} - {{#if note.canFave}} - - {{/if}} - {{#isEq note.attributedTo @root.me.id}} - - {{/isEq}} -
- -
-
+ {{#each note.attachment}} +
+ {{#isImage mediaType}} + {{../name}} + {{/isImage}} + {{#isVideo mediaType}} + + {{/isVideo}} +
+ {{/each}} +
+
+ {{#if note.canReply}} + + {{/if}} + {{#if note.canBoost}} + + {{/if}} + {{#if note.canFave}} + + {{/if}} + {{#isEq note.attributedTo @root.me.id}} + + {{/isEq}} +
+ +
+
+
From c7ce8bfbad6f5829df637f5a10dda2f7870977d8 Mon Sep 17 00:00:00 2001 From: Tigojiang Date: Tue, 12 Dec 2023 11:30:40 -0800 Subject: [PATCH 078/100] remove docker files --- .env.example | 4 ---- Caddyfile | 3 --- Dockerfile | 27 --------------------------- compose-dev.yaml | 12 ------------ 4 files changed, 46 deletions(-) delete mode 100644 .env.example delete mode 100644 Caddyfile delete mode 100644 Dockerfile delete mode 100644 compose-dev.yaml diff --git a/.env.example b/.env.example deleted file mode 100644 index e41859b..0000000 --- a/.env.example +++ /dev/null @@ -1,4 +0,0 @@ -USER_NAME= -PASS= -DOMAIN= -PORT= diff --git a/Caddyfile b/Caddyfile deleted file mode 100644 index 23c5f04..0000000 --- a/Caddyfile +++ /dev/null @@ -1,3 +0,0 @@ -localhost { - reverse_proxy :3000 -} diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 40c7913..0000000 --- a/Dockerfile +++ /dev/null @@ -1,27 +0,0 @@ -FROM node:16-alpine - -# Create volume for persistent data -VOLUME /app/.data - -# Create app directory -WORKDIR /app - -# Install deps -COPY package.json ./ -COPY package-lock.json ./ -RUN npm ci --omit=dev --ignore-scripts - -# Copy source -COPY . . - -# Env Vars -ENV PORT=3000 -ENV DOMAIN="" -ENV USER_NAME="" -ENV PASS="" - -# Expose port -EXPOSE $PORT - -# Start program -CMD [ "npm", "start" ] diff --git a/compose-dev.yaml b/compose-dev.yaml deleted file mode 100644 index cc7fd0a..0000000 --- a/compose-dev.yaml +++ /dev/null @@ -1,12 +0,0 @@ -services: - app: - entrypoint: - - sleep - - infinity - image: docker/dev-environments-javascript:stable-1 - init: true - volumes: - - type: bind - source: /var/run/docker.sock - target: /var/run/docker.sock - From 6d3636a12cf795495f62b126363370ab885679e1 Mon Sep 17 00:00:00 2001 From: Tigojiang Date: Tue, 12 Dec 2023 11:40:07 -0800 Subject: [PATCH 079/100] remove unnecessary files --- .dockerignore | 12 ------------ public/images/avatar/example.jpg | Bin 42294 -> 0 bytes 2 files changed, 12 deletions(-) delete mode 100644 .dockerignore delete mode 100644 public/images/avatar/example.jpg diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index 296b14a..0000000 --- a/.dockerignore +++ /dev/null @@ -1,12 +0,0 @@ -.djlintrc -.env -.env.* -.eslintrc.cjs -.github -.husky -.prettierrc -CHANGELOG.md -CONTRIBUTING.md -LICENSE.md -README.md -node_modules \ No newline at end of file diff --git a/public/images/avatar/example.jpg b/public/images/avatar/example.jpg deleted file mode 100644 index b3665b48a1503780620674d98c58306020220c50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42294 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 Date: Tue, 12 Dec 2023 11:42:00 -0800 Subject: [PATCH 080/100] remove unecessaryo logs --- routes/admin.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/routes/admin.js b/routes/admin.js index 1ac2c07..216ae49 100644 --- a/routes/admin.js +++ b/routes/admin.js @@ -321,7 +321,6 @@ router.get('/post', async (req, res) => { if (req.query.edit) { console.log('COMPOSING EDIT', req.query.edit); prev = await getNote(req.query.edit); - // console.log("ORIGINAL", original); } res.status(200).render('partials/composer', { @@ -537,7 +536,6 @@ router.post('/prefsAccount', (req, res) => { const updates = req.body; const bio = updates.bio; const img = updates.avatarInput; - console.log('me ', ActivityPub.actor.name); console.log('GOT ACCOUNT UPDATES', updates); updateAccount(updates.username, DOMAIN, bio, img).then(myaccount => { // set the server to use the main account as its primary actor From cd6e40d078485cd1137e49d44afa5333ac5ca5a5 Mon Sep 17 00:00:00 2001 From: Justin Nguyen <52771821+justinnguyen0@users.noreply.github.com> Date: Tue, 12 Dec 2023 15:04:27 -0800 Subject: [PATCH 081/100] add more tests for ActivityPub.js (#67) --- lib/__tests__/ActivityPub.jest.js | 140 +++++++++++++++++++++++++++++- 1 file changed, 139 insertions(+), 1 deletion(-) diff --git a/lib/__tests__/ActivityPub.jest.js b/lib/__tests__/ActivityPub.jest.js index ba215e8..b6793b3 100644 --- a/lib/__tests__/ActivityPub.jest.js +++ b/lib/__tests__/ActivityPub.jest.js @@ -185,7 +185,6 @@ describe('Tests for ActivityPubClient sendUndoLike', () => { const recipient = { inbox: 'justin@shuttlecraft.com' }; const sendUndoLikeResult = await activityPubClient.sendUndoLike(post, recipient, 'originalId'); - console.log(sendUndoLikeResult); expect(sendUndoLikeResult['@context']).toBe('https://www.w3.org/ns/activitystreams'); expect(sendUndoLikeResult.id).toBe('originalId/undo'); expect(sendUndoLikeResult.type).toBe('Undo'); @@ -199,6 +198,145 @@ describe('Tests for ActivityPubClient sendUndoLike', () => { }); }); +describe('Tests for ActivityPubClient sendFollow', () => { + test('Check successful', async () => { + const activityPubClient = new ActivityPubClient({ actor: { id: 'justin' } }); + const recipient = { inbox: 'justin@shuttlecraft.com', id: 'justin' }; + + const sendFollowResult = await activityPubClient.sendFollow(recipient); + expect(sendFollowResult['@context']).toBe('https://www.w3.org/ns/activitystreams'); + expect(sendFollowResult.type).toBe('Follow'); + expect(sendFollowResult.actor).toBe('justin'); + expect(sendFollowResult.object).toBe('justin'); + }); +}); + +describe('Tests for ActivityPubClient sendUndoFollow', () => { + test('Check successful', async () => { + const activityPubClient = new ActivityPubClient({ actor: { id: 'justin' } }); + const recipient = { inbox: 'justin@shuttlecraft.com', id: 'justin' }; + + const sendUndoFollowResult = await activityPubClient.sendUndoFollow(recipient, 'originalId'); + expect(sendUndoFollowResult['@context']).toBe('https://www.w3.org/ns/activitystreams'); + expect(sendUndoFollowResult.type).toBe('Undo'); + expect(sendUndoFollowResult.actor).toBe('justin'); + expect(sendUndoFollowResult.object).toStrictEqual({ + id: 'originalId', + type: 'Follow', + actor: 'justin', + object: 'justin' + }); + }); +}); + +describe('Tests for ActivityPubClient sendAccept', () => { + test('Check successful', async () => { + const activityPubClient = new ActivityPubClient({ actor: { id: 'justin' } }); + const recipient = { inbox: 'justin@shuttlecraft.com', id: 'justin' }; + const followRequest = { from: 'jay' }; + + const sendAcceptResult = await activityPubClient.sendAccept(recipient, followRequest); + expect(sendAcceptResult['@context']).toBe('https://www.w3.org/ns/activitystreams'); + expect(sendAcceptResult.type).toBe('Accept'); + expect(sendAcceptResult.actor).toBe('justin'); + expect(sendAcceptResult.object).toStrictEqual(followRequest); + }); +}); + +describe('Tests for ActivityPubClient sendUpdate', () => { + test('Check successful', async () => { + const activityPubClient = new ActivityPubClient({ actor: { id: 'justin' } }); + const recipient = { inbox: 'justin@shuttlecraft.com', id: 'justin' }; + const object = { id: 'updateOne', published: true, to: 'jay', cc: ['aditya'] }; + + const sendUpdateResult = await activityPubClient.sendUpdate(recipient, object); + expect(sendUpdateResult['@context']).toBe('https://www.w3.org/ns/activitystreams'); + expect(sendUpdateResult.id).toBe('updateOne/activity'); + expect(sendUpdateResult.published).toBe(true); + expect(sendUpdateResult.type).toBe('Update'); + expect(sendUpdateResult.actor).toBe('justin'); + expect(sendUpdateResult.object).toStrictEqual(object); + expect(sendUpdateResult.to).toBe('jay'); + expect(sendUpdateResult.cc).toStrictEqual(['aditya']); + }); +}); + +describe('Tests for ActivityPubClient sendCreate', () => { + test('Check successful', async () => { + const activityPubClient = new ActivityPubClient({ actor: { id: 'justin' } }); + const recipient = { inbox: 'justin@shuttlecraft.com', id: 'justin' }; + const object = { id: 'createOne', published: true, to: 'jay', cc: ['aditya'] }; + + const sendCreateResult = await activityPubClient.sendCreate(recipient, object); + expect(sendCreateResult['@context']).toBe('https://www.w3.org/ns/activitystreams'); + expect(sendCreateResult.id).toBe('createOne/activity'); + expect(sendCreateResult.published).toBe(true); + expect(sendCreateResult.type).toBe('Create'); + expect(sendCreateResult.actor).toBe('justin'); + expect(sendCreateResult.object).toStrictEqual(object); + expect(sendCreateResult.to).toBe('jay'); + expect(sendCreateResult.cc).toStrictEqual(['aditya']); + }); +}); + +describe('Tests for ActivityPubClient sendBoost', () => { + test('Check successful', async () => { + const mockDate = new Date('2023-01-01T00:00:00Z'); + jest.spyOn(global, 'Date').mockImplementation(() => mockDate); + + const activityPubClient = new ActivityPubClient({ actor: { id: 'justin', followers: ['jay', 'aditya'] } }); + const primaryRecipient = { inbox: 'justin@shuttlecraft.com', id: 'justin' }; + const post = { id: 'post' }; + const followers = ['jay', 'aditya']; + + const sendBoostResult = await activityPubClient.sendBoost(primaryRecipient, post, followers); + expect(sendBoostResult['@context']).toBe('https://www.w3.org/ns/activitystreams'); + expect(sendBoostResult.type).toBe('Announce'); + expect(sendBoostResult.actor).toBe('justin'); + expect(sendBoostResult.published).toBe('2023-01-01T00:00:00.000Z'); + expect(sendBoostResult.object).toBe('post'); + expect(sendBoostResult.to).toStrictEqual(['https://www.w3.org/ns/activitystreams#Public']); + expect(sendBoostResult.cc).toStrictEqual([['jay', 'aditya'], 'justin']); + }); +}); + +describe('Tests for ActivityPubClient sendUndoBoost', () => { + test('Check successful', async () => { + const activityPubClient = new ActivityPubClient({ actor: { id: 'justin', followers: ['jay', 'aditya'] } }); + const primaryRecipient = { inbox: 'justin@shuttlecraft.com', id: 'justin' }; + const post = { id: 'post', attributedTo: 'justin' }; + const followers = ['jay', 'aditya']; + + const sendUndoBoostResult = await activityPubClient.sendUndoBoost( + primaryRecipient, + post, + followers, + 'originalActivityId' + ); + expect(sendUndoBoostResult['@context']).toBe('https://www.w3.org/ns/activitystreams'); + expect(sendUndoBoostResult.id).toBe('originalActivityId/undo'); + expect(sendUndoBoostResult.type).toBe('Undo'); + expect(sendUndoBoostResult.actor).toBe('justin'); + expect(sendUndoBoostResult.object).toStrictEqual({ + id: 'originalActivityId', + type: 'Announce', + actor: 'justin', + object: 'post' + }); + expect(sendUndoBoostResult.to).toStrictEqual(['https://www.w3.org/ns/activitystreams#Public']); + expect(sendUndoBoostResult.cc).toStrictEqual([['jay', 'aditya'], 'justin']); + }); +}); + +describe('Tests for ActivityPubClient fetchOutbox', () => { + test('Check actor outbox is false', async () => { + const activityPubClient = new ActivityPubClient(); + + const fetchOutboxResult = await activityPubClient.fetchOutbox({ outbox: false }); + expect(fetchOutboxResult).toStrictEqual([]); + }); +}); + describe('Tests for ActivityPubClient getUsernameDomain', () => { test('Check when userIdorName is not passed as an argument', () => { const activityPubClient = new ActivityPubClient(); From c23240a578527d5ef7602ba0d627d9c3614c7959 Mon Sep 17 00:00:00 2001 From: kashishvjain <66744312+kashishvjain@users.noreply.github.com> Date: Tue, 12 Dec 2023 19:10:57 -0800 Subject: [PATCH 082/100] Update README.md with CSE 210 Info (#71) --- README.md | 53 +++++++++++++++++------------------------------------ 1 file changed, 17 insertions(+), 36 deletions(-) diff --git a/README.md b/README.md index 2ecd377..eefad70 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -# SHUTTLECRAFT by Ben Brown +# SHUTTLECRAFT by the Confused Mavericks This is a project to create an "easy" way to participate in the ActivityPub "Fediverse" and other indie web protocols like RSS. -This was created and is maintained by [Ben Brown](https://benbrown.com). +This was created by [Ben Brown](https://benbrown.com) and enhanced by UCSD CSE 210 Team 6 (Confused Mavericks). Currently, this means: @@ -11,7 +11,9 @@ Currently, this means: Including features: +- Create a fediverse account - Follow people (on Mastodon, other instances) +- Customize your fediverse profile - Compose posts and deliver on the web, and also via ActivityPub, RSS - Fave, boost and reply to posts - View notifications @@ -40,23 +42,16 @@ may result in unexpected amounts of incoming traffic. ## Warning: Known limitations! -My goal with this app is to not use any major external services. +Our goal with this app is to not use any major external services. As a result, all data is written as PLAIN TEXT FILES to the disk. Right now, the app builds an IN-MEMORY INDEX of EVERY SINGLE POST. This will work for several thousand posts, but ... maybe not for 10,000s of posts. -I'm not sure how far it will go. I have ideas about being able to -shard the index into multiple files and page through it, etc. But. ALSO, there is nothing fancy happening in terms of queuing or rate limiting outgoing posts. When you post, it will send out HTTP requests right away, all at once. This may cause issues. -## Acknowledgements - -This project owes a great debt to @dariusk's excellent [express-activitypub](https://github.com/dariusk/express-activitypub) repo. -My work started from his reference implementation, and there are many lines of code cribbed from his work. - ## Bug Reports & Contributions Please file bugs on Github: @@ -66,26 +61,19 @@ Please read the [contributor's guide](CONTRIBUTING.md) before sending pull reque ## Install -Quick start: [Remix on Glitch](#easiest-glitch) - -Clone the repo: -`git clone git@github.com:benbrown/shuttlecraft.git` +Quick start: [Remix on Glitch](https://glitch.com/edit/#!/import/github.com/CSE-210-Team-6/shuttlecraft) -Enter folder: -`cd shuttlecraft` +- Remix the repo on glitch: +`https://github.com/CSE-210-Team-6/shuttlecraft.git` -Install node dependencies: -`npm install` +- Go to settings -> Edit project details -> Change the project name to what you want. This will be your website domain You are ready to run! But first, set your configuration. -When you are ready to start, run: -`npm start` - ## Config Initial configuration of your instance is done by editing the -.env file to include your desired USER_NAME, PASSWORD, and DOMAIN NAME. +.env file to include your desired DOMAIN NAME. These values MUST BE SET before you launch the application, as they are used to generate your account details, including your Fediverse actor ID. @@ -93,29 +81,22 @@ Fediverse actor ID. In the .env file, put: ``` -USER_NAME=yourusername -PASS=yourpasswordforadmintools -DOMAIN=yourdomainname -PORT=3000 +DOMAIN={your-project-name}.glitch.me +PORT={not required but can specify} ``` -USER_NAME and PASS are required to login to the private dashboard tools. - When you launch the app for the first time, these values will be used to create the `.data/account.json` file which is the source of your public account information, and will be used for many operations. -There is currently no UI built to view or manage your account. If you -need to make updates, edit the JSON directly. - HOWEVER PLEASE NOTE that your ID is a real URL, and it must reflect the real URL served by this app. Also note that it is embedded in every post you write - so if you change values in the `account.json` file, your previous posts may break. -## Login +## Access -To login, visit `https://yourdomain.com/private` and provide the username and password from your .env file +Access your website at `https://yourdomain.com/private`. You will be prompted to create account or login if required. ## Debugging @@ -154,7 +135,7 @@ SSL-enabled endpoint. Use Glitch to create a new project! Glitch will provide you with hosting for your instance of Shuttlecraft, and you can start for FREE! -It all starts when you click this link -> [Remix this project on Glitch](https://glitch.com/edit/#!/import/github/benbrown/shuttlecraft) <-- +It all starts when you click this link -> [Remix this project on Glitch](https://glitch.com/edit/#!/import/github.com/CSE-210-Team-6/shuttlecraft) <-- WHOA! What happened? Well, a copy of the Shuttlecraft code was sent to a new, unique, owned-by-you web server and it started getting set up. You just need to make it yours by following these steps: @@ -185,13 +166,13 @@ caddy run --config Caddyfile ``` 3. Test locally: ``` - docker run -e PORT=3000 -e DOMAIN="your-domain.com" -e USER_NAME="yourUsername" -e PASS="yourPassword" -p "3000:3000" "${yourRegistryUsername}/shuttlecraft" + docker run -e PORT=3000 -e DOMAIN="your-domain.com" -p "3000:3000" "${yourRegistryUsername}/shuttlecraft" ``` 4. Push the image to your registry: ``` docker push "${yourRegistryUsername}/shuttlecraft:latest" ``` -5. Deploy the image to your container platform with the required environment variables (`DOMAIN`, `USER_NAME`, `PASS`). +5. Deploy the image to your container platform with the required environment variables (`DOMAIN`). 6. Configure a web service to proxy requests to the container port and provide HTTPS (see "Reverse proxy" above). ## Customize From 6e3a8179f99b2d94fc8f9383f246bb30982ed8de Mon Sep 17 00:00:00 2001 From: smruthig <75429779+smruthig@users.noreply.github.com> Date: Tue, 12 Dec 2023 19:40:45 -0800 Subject: [PATCH 083/100] Documentation (#72) * Added and standardized meeting notes * Standardized 2nd December's notes * Standardized 9th December's notes * Standardized 9th December's notes --- documentation/meeting-notes/11-04-2023.md | 45 ++++++++++++++++ documentation/meeting-notes/11-05-2023.md | 52 ++++++++++++++++++ documentation/meeting-notes/11-11-2023.md | 42 +++++++++++++++ documentation/meeting-notes/11-15-2023.md | 53 ++++++++++++++++++ documentation/meeting-notes/12-02-2023.md | 34 ++++++++++++ documentation/meeting-notes/12-06-2023.md | 56 +++++++++++++++++++ documentation/meeting-notes/12-09-2023.md | 65 ++++++++++++++++++++++ documentation/meeting-notes/12-11-2023.md | 66 +++++++++++++++++++++++ 8 files changed, 413 insertions(+) create mode 100644 documentation/meeting-notes/11-04-2023.md create mode 100644 documentation/meeting-notes/11-05-2023.md create mode 100644 documentation/meeting-notes/11-11-2023.md create mode 100644 documentation/meeting-notes/11-15-2023.md create mode 100644 documentation/meeting-notes/12-02-2023.md create mode 100644 documentation/meeting-notes/12-06-2023.md create mode 100644 documentation/meeting-notes/12-09-2023.md create mode 100644 documentation/meeting-notes/12-11-2023.md diff --git a/documentation/meeting-notes/11-04-2023.md b/documentation/meeting-notes/11-04-2023.md new file mode 100644 index 0000000..252b107 --- /dev/null +++ b/documentation/meeting-notes/11-04-2023.md @@ -0,0 +1,45 @@ +# Meeting Notes + +**Date:** 4th November, 2023 +**Location:** Brisa study room + +## Attendees + +- Aditya +- Smruthi +- Kashish +- Ever +- Enze +- Justin +- Jay + +## Agenda + +- Discuss warm-up assignment issues. +- Clarify communication responsibilities. +- Emphasize open communication and mutual assistance. +- Group meetings every 2 days for 10-15 minutes. + - Agenda: Bottlenecks and updates; communicate if unable to attend. +- Splitting work discussion (page-wise or technology-wise). + +## Notes + +- Discussed warm-up assignment challenges. +- Clarified communication responsibilities for assigned tasks. +- Emphasized the importance of open communication and mutual assistance. +- Scheduled group meetings every 2 days for 10-15 minutes to discuss bottlenecks and updates. +- Agreed to split work, with further discussion on approach after the ideation phase. +- Ideation: + - Explored Fediverse issues and checked existing issues. + - Considered ideas like Pictionary on social media, a bot for generating pictures or riddles, openAI/dallE API requests, summarizer bot, llama 2, message/notification scheduling, delayed replies, and more. + - Discussed enhancements for Rattibha and Shuttlecraft's P2P Single User Server. + - Introduced [Postmarks](https://github.com/ckolderup/postmarks). +- Decided to rank all ideas and report encountered issues during the ranking process. + +## Next Steps + +- Explore and evaluate ideation proposals. +- Rank and provide feedback on the presented ideas. +- Address any encountered issues during the ranking process. + +**Author:** Kashish Jain diff --git a/documentation/meeting-notes/11-05-2023.md b/documentation/meeting-notes/11-05-2023.md new file mode 100644 index 0000000..8951265 --- /dev/null +++ b/documentation/meeting-notes/11-05-2023.md @@ -0,0 +1,52 @@ +# Meeting Notes + +**Date:** 5th November, 2023 +**Location:** Online + +## Attendees + +- Kashish +- Aditya +- Smruthi +- Ever +- Justin +- Jay +- Enze + +## Agenda + +1. **Introduction** + + - Leaning towards solving some issues for [Shuttlecraft](https://github.com/benbrown/shuttlecraft) for the project idea. + +2. **Pitch Preparation** + + - We are going to use a slide deck for the pitch. + +3. **Issues to Work On** + + - [Issue #100](https://github.com/benbrown/shuttlecraft/issues/100) + - [Issue #110](https://github.com/benbrown/shuttlecraft/issues/110) + - [Issue #29](https://github.com/benbrown/shuttlecraft/issues/29) + - [Issue #76](https://github.com/benbrown/shuttlecraft/issues/76) + +4. **Slide Deck Structure** + + - Title slide + - Statement of purpose - Aditya, Kashish + - User persona 1 - Justin + - User persona 2 - Enze + - Risks and rabbit holes - Jay, Smruthi + - Fat-marker sketches/wireframes - Ever + - Project roadmap + - Thank you! + - Q&A + +5. **Statement of Purpose** + - Why are we using Shuttlecraft? + - Most pertinent issues to complete in a given timeframe + - Why we chose these issues + +## Closing Notes + +None diff --git a/documentation/meeting-notes/11-11-2023.md b/documentation/meeting-notes/11-11-2023.md new file mode 100644 index 0000000..afc58f9 --- /dev/null +++ b/documentation/meeting-notes/11-11-2023.md @@ -0,0 +1,42 @@ +# Meeting notes + +**Date:** 11 November, 2023 +**Location:** Online + +## Attendees + +- Kashish Jain +- Smruthi Gowtham +- Jay Yi Yang +- Justin Nguyen +- Aditya Mandke + +## Agenda + +- Discuss next steps before the lecture on November 14, 2023. +- Divide tasks among us + +## Pending tasks + +1. Test Cases +2. CI/CD pipeline +3. Slides +4. Setting up the agile platform (Jira or something) +5. Coupling Example using JavaScript + +## Work division + +1. Test Cases: Justin and Ever +2. CI/CD Pipeline: Kashish +3. Slides: Aditya +4. Setting up the agile platform: Smruthi +5. Coupling Example: Jay +6. Understand the code base: Everyone + +## Next steps + +1. Complete the tasks mentioned above by November 12, 2023 +2. Meet on November 13 regarding updates on the above. +3. Refactor the code by November 15, 2023 + +**Author:** Aditya Mandke diff --git a/documentation/meeting-notes/11-15-2023.md b/documentation/meeting-notes/11-15-2023.md new file mode 100644 index 0000000..6a1f024 --- /dev/null +++ b/documentation/meeting-notes/11-15-2023.md @@ -0,0 +1,53 @@ +# Meeting Notes + +**Date:** 15 November, 2023 +**Location:** Online + +## Attendees + +- Kashish Jain +- Smruthi Gowtham +- Jay Yi Yang +- Justin Nguyen +- Aditya Mandke +- Ever + +## Pending Tasks + +- Get it running locally first +- Clean git structures +- Write unit tests +- High level functional diagram +- Write coding rules +- One iteration of refactoring +- Issues +- Slides (PPT for coupling) +- Questions for midterm +- Deciding static code analysis tool + +## Task division and ownership + +- Justin: Tests +- Jay: Routes +- Aditya: Index.js, App.js, remainder files, Clean repo files +- Smruthi: Lib +- Kashish: Lib +- Ever: Lib +- Enze: HTML, CSS + +## Deadline + +17th November 2023 + +## Side notes + +- CSS needs to be changed (excessive use of divs) +- Jay gave a demo of running the project locally + +## Meeting outcomes + +- Static code analysis tool: **Deepscan** +- Code coverage: aim for 75% +- Created coding standards document: https://docs.google.com/document/d/1SbdCsNVItytVbgHE5-8_ebth-mmNxH1jKp5L7uggWNI/edit + +**Author:** Smruthi Gowtham diff --git a/documentation/meeting-notes/12-02-2023.md b/documentation/meeting-notes/12-02-2023.md new file mode 100644 index 0000000..944b6df --- /dev/null +++ b/documentation/meeting-notes/12-02-2023.md @@ -0,0 +1,34 @@ +# Meeting Notes + +**Date:** 2nd December, 2023 +**Location:** Online + +## Attendees + +- Kashish +- Smruthi +- Jay +- Justin +- Enze +- Ever + +## Things Discussed + +- Current UI is too simple, should make the UI better (add it as an issue) +- Reduce the current scope, mainly focus on the the view/upate account issue, the password issue and better UI now +- Discuss the test coverage, aiming at a coverage of 50% (or 60% if possible), who adds a new feature should also makes a unit test (maybe TDD) +- Discuss the local-first issue, test if we can follow others and see posts from others +- Other things like the meaning of add link, clean the repo and so on +- Set tasks and goals for until Monday, agree on having a meeting every two days + +## Task Distribution + +- Better UI: Jay, Aditya +- Finish account feature: Ever, Enze +- Add more tests: Justin +- Password issue: Kashish, Smruthi +- Other tasks: clean the repo, edit readme.md and changelog.md, use const file + +## Deadline + +Dec 4, 2023 diff --git a/documentation/meeting-notes/12-06-2023.md b/documentation/meeting-notes/12-06-2023.md new file mode 100644 index 0000000..eb5bbe1 --- /dev/null +++ b/documentation/meeting-notes/12-06-2023.md @@ -0,0 +1,56 @@ +# Meeting Notes + +**Date:** 6th December, 2023 +**Location:** Online + +## Attendees + +- Aditya +- Jay +- Justin +- Smruthi +- Kashish +- Ever +- Enze + +## Agenda + +- UI Work Discussion +- Code Issues and Resolution +- Create Login Interface Redesign +- Testing Strategy and Coverage +- Code Refactoring and Documentation + +## Notes + +- **UI Work Discussion:** + + - Aditya and Jay addressed UI issues. + - Messages not showing in the latest commit; ongoing diagnosis. + +- **Code Issues and Resolution:** + + - Messages composer issues identified. + - Comparison of code for issue resolution. + +- **Create Login Interface Redesign:** + + - Smruthi and Kashish redesigned authentication workflow. + - Added create and login UI, removed external dependencies. + - Added logout functionality. + +- **Testing Strategy and Coverage:** + + - Justin discussed current testing status. + - Goal is to reach 60% coverage; 82 tests currently. + +- **Code Refactoring and Documentation:** + - Work distribution discussed. + - Code freeze tonight; changes merged by EOD. + +## Next Steps + +- Complete code freeze tasks. +- Prepare for meeting on 12/13/2023. + +**Author:** Aditya Mandke diff --git a/documentation/meeting-notes/12-09-2023.md b/documentation/meeting-notes/12-09-2023.md new file mode 100644 index 0000000..582b3cc --- /dev/null +++ b/documentation/meeting-notes/12-09-2023.md @@ -0,0 +1,65 @@ +# Meeting Notes + +**Date:** 9th December, 2023 +**Location:** Online + +## Attendees + +- Justin +- Aditya +- Ever +- Jay +- Kashish +- Enze + +## Agenda + +- Discuss individual updates +- Assignment for the final demo and presentation +- Decide final scope + +## Notes + +**Kashish and Smruthi** + +- Fixed bug with username on Windows +- Implemented logout functionality +- Main create account functionality has to be moved from index.js + - We want people to create an account after the server is booted +- Implemented delete user story + +**Aditya and Jay** + +- Added mock data to UI +- Made CSS changes to make UI look better +- Shared usernames with each other + +**Justin** + +- Continuing work on tests +- Increased code coverage for `account.js` + +**Ever** + +- Made a rough sketch of Miro board +- Uploaded documents to the repository +- Had some questions about how to test with Glitch + +**Enze** + +- Had a question about a Glitch error but didn't have a screenshot ready at that time + +### Issues to Address + +- All the messages show up on the left side for Kashish and Aditya, but they're okay for Justin. +- Kashish sees Compose box when sending messages. +- The latest message shows up at the top instead of the bottom for Aditya and Kashish. +- Fix handlebars files + +## Next Steps + +- Address the identified issues +- Complete assignments for the final demo and presentation +- Decide on the final scope for the project + +**Author:** Justin diff --git a/documentation/meeting-notes/12-11-2023.md b/documentation/meeting-notes/12-11-2023.md new file mode 100644 index 0000000..1824c18 --- /dev/null +++ b/documentation/meeting-notes/12-11-2023.md @@ -0,0 +1,66 @@ +# Meeting Notes + +**Date:** 11th December, 2023 +**Location:** Online + +## Attendees + +- Aditya +- Jay +- Justin +- Smruthi +- Kashish +- Ever +- Enze + +## Agenda + +- Discuss all updates since last meeting +- Give demos of all work done +- Discuss any issues +- Go through the evaluation rubric +- Divide work from the evaluation rubric document +- Wrap up by tomorrow + +## Notes + +- **Aditya and Jay Discuss UI Work:** + + - Messages not showing in the latest commit; Aditya diagnosing the issue. + - Messages composer looks off; issue with the composer. + - Discussion on why the issue is being created. + - Justin compared Aditya's code to the working one on his side. + - Aditya, Jay, and Justin plan to discuss the problem after this meeting. + +- **Smruthi and Kashish Discuss Create Login Interface:** + + - Redesigned authentication workflow and architecture. + - Added create and login UI. + - Removed the external dependency of 'express-basic-auth.' + - Added logout functionality. + +- **Ever and Enze Discuss Their Changes:** + + - They will send all their changes in the Slack channel. + +- **Justin Discusses Testing:** + + - Current test coverage is 40%. + - Goal is to reach 60%. + - Currently, there are 82 tests. + +- **Work Distribution and Tasks:** + + - Add the login-create user board to Miro - Task for Kashish. + - Discuss work distribution for code refactoring. + - Kashish, Aditya, Smruthi, and Enze work on documentation. + - Justin and Enze work on Testing. + - Jay works on code/repo cleaning. + - Code freeze is tonight; everyone gets their changes merged by EOD. + +- **Meeting on 12/13/2023 Agenda:** + + - Go through the code and working to ensure everyone is on the same page. + - Any end moment requirements we might have missed. + +**Author:** Kasish Jain From 1fa03ba398c344ef147dd9dd048f52c91ca6aaa9 Mon Sep 17 00:00:00 2001 From: kashishvjain <66744312+kashishvjain@users.noreply.github.com> Date: Tue, 12 Dec 2023 19:43:19 -0800 Subject: [PATCH 084/100] Added Logout Functionality to /account (#64) * Added Logout Functionality to /account - Calling the endpoint /account/logout clears the cookies and logs you out Co-authored-by: smruthig --- design/login.handlebars | 2 +- routes/accountHandler.js | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/design/login.handlebars b/design/login.handlebars index 50a98ea..695d51c 100644 --- a/design/login.handlebars +++ b/design/login.handlebars @@ -13,7 +13,7 @@

{{message}}

{{/if}} diff --git a/routes/accountHandler.js b/routes/accountHandler.js index 3585adc..0a628eb 100644 --- a/routes/accountHandler.js +++ b/routes/accountHandler.js @@ -46,3 +46,10 @@ router.post('/login', (req, res) => { }); } }); + +/* The code router.get('/logout', (req, res) => { ... }) is defining a route handler for a GET +request to the '/logout' endpoint. */ +router.get('/logout', (req, res) => { + res.clearCookie('token'); + res.redirect('/account/login'); +}); From fe36e10aa8521b8576c3b8ec04728527645033c4 Mon Sep 17 00:00:00 2001 From: smruthig <75429779+smruthig@users.noreply.github.com> Date: Tue, 12 Dec 2023 20:01:28 -0800 Subject: [PATCH 085/100] Added pitch document (#73) --- documentation/Pitch Document.pdf | Bin 0 -> 1057465 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 documentation/Pitch Document.pdf diff --git a/documentation/Pitch Document.pdf b/documentation/Pitch Document.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6e5c5b1a33f605a64045e75f0ae0f70568fde8a9 GIT binary patch literal 1057465 zcmeFYbyQp37B3n~ftFGz#hv0(9Ey`tiWeyE4y6#JxRU|}iU!x>#U;4AySuwP1cJZx z`_8%NjC;p>@0>fv{qOFKm7T0T_g-_ZtU1?|UuZvnlwjdtWZo9zpQu3xdeh+T_ou-2XPZn4PJi zgN+?J!^0y$5@3UPnE@;Tri=)_%pELE|LPY5C^umW*u-qC9T0@}=6-nF29OY2jy`^UmbbB3_$k|mgF{}H3|5!^ic4?Z!z+b&7b{w zU@=<8lSHJao&bo@kK>hA$+oMJy_DqS*;$y4p@5+7y_KrE>NM|U9A)iyJ}2hZXTPrp ziFABcKJ*v}qepSqfs}&AiM|F81)1o*dqF#rzz{v6*>S~4+Q!dc`(ripY<)N4dz1oW z?2WTy*~n4Ow+7@}ZUOBV#YNS9M6wx{A2DPyUXCWK^+|5Gp&PqwYNe}L6;>xHR z#+bfHK+nYdnEif?(wURNP?&un2}hUB>#SSNJoHW z)E1ADq|z&C!}4hgV@@=6QOmeO@)E1AT`284Vu!a?Nr`OXs9J+^-;{=F>ih6?3crG9)qnTyA?vR^acn&m$jRjNzxx<9O!-u z+pIR>ZJTib@kL9>qY1QXrN8cMCj?oN96avItCLlqBKdl2AHQY&%v_wo4or9Gfoz2+ruk*iDiQ|t(|5KL`RDaX3|C_RL z{JZs0b~JMM%lt`O{bd%U5!!C|&E}8pp*z?)B2-V^+ytR{JnV=ENtv3PeRcTzvzU#g zjh*s0Lt_NVzqFd|gSmtKXHz>d8>??N)_)8PAHqV)8QO!;IsRB8ghl+Pet#5G`Jc3# z<8Kr5FZF($d0YX!l97;>03ba90FV$bz~ekX41oF+1r_BfDk=&p8XD>|^jGNU&!3~? zVq#&uBETgiB*4YTCnlq%ASR(E#mA?7OG!;f&&b3`M8U$&!oW_;z{v3DAxLOwXz0(- zanR9m7>MzS8UE|zu?2wr4Cw;t0vU-4@B|wP85`-b13-b`69wt71MrUn=?OA|U$ke> z(O)14DqjJfAR!|^d5VmJ^7JW!+7odd@Dv;6^&1XRR2)S^G%8zMPVb2HXVf1`Tk(`e zPiVM|?0lZ1;}Z}P5!2GqGcYo7^StBb;};P7C@vu>B`u?@qN=8@p{ZqTV*17GtGR`} zgQJtPi>sUO4?q8apMgP8JWMcvU76t^2^FADyyn%YU|qCJ370%dwToE z#wRAHre|j7R@c@yHn+BScK1%t&M#n>SMckbKXM@fkpC77@&319|C3zU2)Uj-eTw`P z?T=hYPn;1A8T%>98xGXhqKasSwm4Lr-p_D9M5LFtKBwkVI>9rt8%4*b;a;UZ{Uh36 zlKp3b`TTE5_CEysmt1oI3}ht4kB5v600OR+f*8`C{NMH;&Vkz-n=ApTwvdoitzt<~ zSci(DxRlTTGJA@>EjiC-F0(V1S~!E^KX^(oM!pdnRL)^2sK6%@$5jC+isSwtY09H7 zQUsLW_X3;?r0ONmc#0V88zo{|Ffh<9oA(B_-KCYrnEjQg!^4~4`C}MeD{kta=DvAk zm;Xrr9TOC-DE=+p4_EO$%0HV_MAWpme2@q-d1L-!R>ib4$NXG7&3I4iYrctc4q*Ut zBq$@9WdF_Y_qk}I@}2Gi9(c7Q4ZQdTYu69M&Vu>v*&U+aFy&3G7chO#4|Qxh2w4gZ zN-D~I_>@^U81_dnQttOhaz0!ntCsQO3nUenoJ_*b`09$dtid^W2EUjoEb?^lHb)M_ z5vVKS$mC+)%y4%fZm+IH}*D;JwlOw&P;`!$1w>t?6YfNaOXSDx;+B4Qp``OF0EuHbmZl=EZ0j2 z`S8x69bH337L7mn9|7GExcX=cSAf&c1E8PxL+VtMJv=^s;*jQGWc|$efoHFXJ(POO zMXMlBJ5m1VU@hwrpkh&}8F#OlKe;*uht!8FisMDR5x0Va+np2VgkleIzh$C)v4{Uc zdIU`6Cr(8;W-huC1aV5Jj%;f0fOxbpy#|Hd$&^~w-iRB~qV?QdaP4FSjclSb_W0GQ z^rMGtM5zXk9_`2J_(&%wmmB=!UOf|t!22l=k;6_ZpuihnW!j@sTrX& zWPJZ`n*hZN_!lcjy68_OqD1q})@$11L}c}k0N5#7pb*eLeW1zk+-mvg6DpF(4=3RE zG?{aIqus)+WVYkgx3)Un~X=xs}|aGMR4Ew)1%zF#cDPg6I;nUkS< z$x;&#ZnDu+jY1Y3T1lA-D;nIi*YC;XXr<9^b{+vs6hjqS<-bZ>cK}Z>@UF}bYO`Mo zu586I=t#TLOtT%wF#%5}wBVndpd;Y#e&AIFxVDW#nZdpDJFwPnhdFLANNl_LCwuw+ z)wGF8V~6)})42}T&x__mW}yz?81<&`y|_DlNZ}OQ>%GgfH0H|$OssSx$sJJQgu_J2 z+crEJ#cl)1ERV=M0Up=&Iya zXFc9gp~$OJx+ydqw&o(+ADHpb{46EHIvHCaZv*&D4aU^FUXGz4#c^u~CAV>>XOl)~8kV z64FQo12mdR&Ke_u>6sKPxFbP3_=iB{;KA1=nh6%2Vakn;cac=eI~+p-sRqpJ&1+e* zIENsW?5ZIB(7{^IPLab0e3AY8go>XR3ciUZw;%dFOd6waHh=2h*{T&R4@|2^4&5aX zRys6eR<)j}w`Yr_&Ww-?e|n!fG0oJTxZ7TEE_Jsb%3R5$5<6GU+rbpMbM^U1pCjXo z>M%X&1vEv3PK${978FBt_M6Eo^bs&kQRGelDar}kTRMH=YU zVBTR=-f}i;qhSDGV4_%l)gzsNWz+R7TpJfc&(iL|ZFM$CaNfgx^2~hb4ZTLjF@5dj zgX3OA#>b!trVNI*{1AXhOn1njvG}ckR{7pp3TZ48Q`MWZ&V#zs*ZoJ3pa%|ak$``I5 znS8Ydo5x`0{heV32Mpm`)h|kgVi?$3b1^^WJbV3Dzb%TAJ%iy%m@aUoh`W{h{Bm6_ zJ(L=(WJ(RcVq3|3@0lHkPA1Nl*K2p8=6_M>+EoD5N-<4S|f zZ{DWogg0Q;n4bNcin*bTY31(?mLEwEbs|ySVM4c;yE^<{nq|0B=nEicaJ!+wzbx?dgWAhAnGh_g{G1LjY(Q= zMPTNX!_y?mTk=NyOp2TO$?L}C_Z0nj+cD*9`mZg#sACBxvXrQvQc)c$rsR-U2G2EV zHLUa3N*Z7MD)zG!!N)DA?={a^g%i0QC6L|!4z7ONrvf=fKPmdqr!9MJrQ@+PFWH>s z`5F{`O81~Y^mOk6l+sA!HL80_e2#qp*_{qZh*0K9G>wAKx@8E;SqW* z${1#1;WXV9jul* zoCeLymY(qsiE6WWEaQ?7UwpBAF_DtdD0u01G6qjwD~3ERsGA!dylB6VKY1_Gd5P84 zu&~txxeqE*ypvm#%>cUM{kHWz7?OSjjG#F29PG}LBdbY{=;M^qCE(TGhLJdrgn+f~ zE}N>|W%q+!QOSvj-;uAZOz)U=@C`&zcHfm70iV3|kUaI3vf}De=VDrWvAmpj1$6Op z1%`TLD~3D*{4C|3J61NyK0M!(hrD}&M<8*0E|LbPU4J1gyV8|l#s!=!G62ziuD$)? zw|&1@X*kTYs$U*fxw*Kf#a#@D5$~W(S@%aiX}x>to(`?}fs3E4(8-ryX%^5&@viPZAriUF;Sr$uTnO4+b5&5+Sv_aDjJ&N_3u@S4 zpfo7MI)1aqyxh$kmeFL-(e{=_yuTbM-ea$6Y;Lcx9`@j677NelwBfG)#`Tu6F4cOi z;UuhbKaK%k^Ya-pUZ?AqOsrXG@f$Mi9*Sf)O&;s7GEqCOI##|R7RsIC9$G-v>eXu^ zyO)LLl{_sQ6k7guTZIQ6I13CJK@tBW-1%qN^B_~jT z-@5zb!6j~~?Y?kz9_%;ezG3hJ6FffZ#Qh-Eyc(%xEIkzqrtn3F+!t1h8*2X+E`p*>r?+se=98coTA8pqvEteRm*0&*SAFV zZ8yM?hpe%KYr8K(BdldiPx3O@oC*!apV`;SVy<8HT_{J`ru=v};O0yD4|?9O1<6Ay zh9r}Tp^Gs?H*1Tm)Qn6%ITywB9f>qtN7c1YL%#3}2JKx8idv5_V{aLs=U7~(T2xYE zCA%tr{IYVraxg0Y%On|n@6?Y5__7wtI8eFPJ5jA~QCevdiwq`2C46^gT)IG8}?PVyrjWBnUij7WzGMUkf( z0dA>-&2-+iwP&>K+YUZ9AFZ6t`3tfGAO9fk;H{-Xw{+grM9$Ew=V?MVW zCczM~JuEq^FKetXPPLtm?4DC{U@D@uUtdI4tsSXM(v=vjTF|aBzyg2v{MiGAa=+AC z))}?pA(22O`GJY%DBOC5+GGYVNP9`q@zU11-ipnh329Ut9q!s0W3n^XGXJ%#j}fZaly&cfMRL_6wlUzi6KuwzPXY1sD|RbnNLV z&l2z_HF!Ovyi@Ex)Z)k3XO%$UxtJ4e*ZFj1fYjC*~tv18np#6Ny@*x*%jz`R}V z@zG-9b66EnVpXRpi^QzQQevU3oT?_+a%mM`o>a(4~i!rgVH#EZK+nXSNT$!zdvGEaXL$JNiH?15g}LZ zUvm979+8rFN;Fff0gC2FbdHdz=-t{-=7`^#x69!X^-wjfR zL5mL_0bf|iXC;$zdmY*vzUKmc5`&fCco5~3)N0C@hHZ7qxx!*#DsM);t4 z;DW(mRb5<-@$M1Ob4~kP0^_$2rYKp#@9_pu(M;JRAS+=6{B+$5Ox|4N?v-`ICL5!D zP<)ayPYdkzE=KDBqw*y4YsnJfucDpQ9RlNf?oM?k_#jN(?q!h*w><~`I7I#)Gp-2d zjqSpz*7!Z#*U+t>Jk5W|_)hopgRr>mGIo)1a0lwqiJa*ggJ zF}9Hb$85P!9QJm1^x?QKo>StGhtbv?wlD$U{y=@<{51izyYCUe4&^%il6ookzMpuF zvB_`;%T}*>4MjFtgd|sf6D{|Gr_04>K+oKsj&qMUXF|mko@%J6ZIJ2g}aGw zuSr+r>qY8pYUh)4$-0xn0pH;=5yu+(*gy!SC*dPty{%EblRc0-P{Z*9p_k)n_jlO# z$#C$+pyKoA7-=$SF2k5WD$v2A-Nz`=nivgEAy+jtA1s+`R+j#zocOK=5#q$Vn@2#x z36ZKZJ>Dd@i%n-J*R5om-6vnp*^+p-^-Qk-pr1>(|1r26RxjxD&HJ+XHplmd_(tXu zrLH^$jY!kjgn9o$)%%HcWHhM>RY{TH>bo)K?v4Z_ zcLeOM4IeXK%!=2COj^&~Jb(fo0kNUs!f1xqMh(v0VI&>X8V9cs_N7rLWn%^N_jC}5 zSKoT_=tz>8CZzq3S=t)V3Z=#MRKOgo)Z{5sduUo`UGZ4oRaA+3Wx~fp=25Y@F`V!2 zhpVVWnGwYB1mxJe;I0}Sy6Gr2nLM+?6cXu~&yA#lr009mHng-@%mZ5RNUi&BOq04s zebO>qTePnl_BuFsSdyh>m`soR&GgBK9UvwvtFdOK`NKd?1Ug3Znj6+seGx^QmPn+U z6pQL6X`rd#jF$&iTY^Z_B4sf75je|!t~oFrLUnXb|KQp^yaO!qSp4*b9`{<=>*qa_ zzobupTE0q!)s*%lKrcWyZ|`(IFKi)@4n~GwtDSJ|T1iZD_%rJKzR= zn++yda5*?o*j{#ld{UHaikB}qaizXy7_`=aiOI@mvm|?@556W|qMz#Az2zxIRK}Ih zd9Q}y>H-6}I7|Kp1yQQH!M_r(GM^dd<$nVT3~<0oVaaYohY#dZV!ea3xN2zsQBqmy zyMkz9BwsZ~^^^O!c@h*J|5xHykOqVvQ>J~DVVn#T-HCMUd+ z;pdKd`(jAmyh~`PB~a0c&2n1vWW8ms8qy#}9+%k#K=!!81Uf$fyEdoo$=N%pjV&#S zf-L>Elc)G59KRTU2Xg7BQ#=zwGCR3yV>d53h`mu*TGBxpCquvY##|AY${G*=Q{1MW-a;RTY9Ri zH*kW}#4P8$*;$#_dxkjV3Ch0max#4iwa$pdqj!+UsrFKvae{H|JJ?q3D!KY?$ALvA z!tS^vhuQ0mHt??1t5?;6)XcUizuWJJ@n7xhA)jKc(&enK(=Nro+zil%TTTook;PI@Br|#h6k$nk;@XZh zm^p4$>T_+eDmFfYejF?In$2nF0CMQ?PB(&Fj$6f)oSVm}Ki2QRrS_(;xd0AduYAR~ zpV5f7e*fBr-rCJweQ}Lrf&=a{k$t~8o?8P(3+gW&&*E|6X;z?`J>@HlxX2s%spCU> zfi^!^VIKoStz{$7ItmiZBF&pymY*zG^?a{qzQzk|{DER)J2Nfp!R`42G=80OiN={n z>iG$iy13MH+Gc-XohM1ZbWgbr4SiNWeOF%+PSUARKNa4R&Rpd0Yw5fJ7F z#W?M(nk_m~`L>ejDXFlno7zfJHYJdpE+k1M16+CU`v^!2`gQZmHo+3aQ%DTX6#3wf z&nL9yKs>JP1v(KHa)idQ#S6pQ*~FN!uct?w=qBQ1Mr@#jE8W=hN8NrD33%rYQe#6u z8_G+N_du-JzsK?v4-Wh~c?gbHCv{W0S6d_lE>_&GpWo$QlTHe{CoyY(wR)Jf6sl06 zXw+*buUM2-FB?A?>=@5vJIQCK9ZrKz88UP+9h-PjC?(6p=)ct~96YVc<~}4E)y7#s zCdOQG2F9I38HS$IS7(`n5Q&Vgw5!*51y{zOP6~E4&PBWw=bGHvJDJMrW-UEaw0&=~ zFf~0C)bCxfIo?VOD{x0E>haJ0RRMwfn~*PzGr8Mdg__Fix z(vWXNQoE{5J6n0xOFV>r`9|R}Mz4fQB=ul=g>675;p;51HC$(5^~^=1&}7 zz6^JtLYqYEzvfqltIww}Pp*zuxLRA&hoKBIrx8FZ{y-KoOq%sL9Qb2zD zpUiQchsSD4bOhrJjI+3xT`h+4jQ1U48i57L^mlYAR4l27+K>UTpI!w#cumlbcd=XG zM)q~;guyh?He2)N`xsec)W+uqC-yqUzq~dWwg`XL=R=Oo3U`5c*d=w9-U^y5Lz4Gr z;I8_{7oGUT;aFMvd0zF%c(yPy&^B^wjwH3j>bg-erWj)@-lh@U_=TokT-^igioA*B zXDRMQVf6I+y$7VoszJ{46*Dz$8@3M(SyQDqGipRU!)IweG8C8TfCg}$`KD1b-Q{x5 zz_qkJSn?&H6F0ZEIrL6bXRp5gTa>3E%|}$}*$xOY zYMm-O*%IZQ$|`!8cv)mGA$!5u_C&{fy4;=O6#C}W&v$O=y3miPNgb^m>!H#!Rw3A* zjx*!tLd53h8v(Cj64|xvM*!CT`MU;V!YFaJ`)=iXV38)AnQl>AQGO5ri~_^z3oOLr$AF0rYj3T3A$8k%ZsSMA%}9)9vWb^VEa)mD{u$Hr#rfk7^GHqOjY zNZVS{o#KLr{wc2WOMHkqr6G=MRE&`IL303N3C2$@@+ve;u}#f&5wWtG@V7jeT#|1! zD!+#-gK$A~wGQVp5}(+~@`ZyD%Z5iEE%I|HQNMoYb;`$GBm1DUf@iyM8W$L=OQ$Dd zn_cyjYo4|692hfu1bise)n5G)VOKb3)p4nGsU~9N)$mXm%F5U(uTxfc4!R4q__oE0 z-C%i7afjTA)XMXsGezaWaU7o7rUea1b=-J!*xR-se*Wg>hN8$G4zgSQa4apffdrDq2>9iz5WwvDM$2O`D+gE`KDgV~CT6D)b8p1FGZ&&l(fl}+?-p}SQW%>1s zk2!pd#|ekrZ`8dHPUAz5ucav(WLvb>T}@et5>zK{pq_ao*2C?^pKsgjohQ*VfzC|3@?_c_O8DEt=orG zgfq-sc>2Gh4gSV&pwY87YgKxChsDTeX~ttX7VS)g*x2S6*|!L-<>N%k@o#(~Jly@1 zSHQ!Y#%tS?1;I0wnC#?4@*6Ia)*j6<9Z>m<<42c|6P1{g2-%98U!Tw;Pkg6zYj4X2Dof$z*nUdjjCDBVBz&7+rSSELG z*u;7>-aNluL994)EZ?ExsQ9;c^YvVKqQ>4+gXV{I4y9z`S~W$KODEEb_p@pJtX3x+~Tv};Cn*9sk2}@42H486lKN%$E-!^0j#V&2klOCd zm^TkQGoj)Sc<5V>zfq6abF(^%a=EOF`F$D3c$Jxe&VKjO4Ldz%n|-^zSHEBKTr$&d z$aV&;ALu5Wx-*+R{=Tfv77?t* zTAkBxfNDpZ7*LoJvjUMD!r$3G0+4{~dU84eB)*9S0UlF_%?q9{S>Lp-t?W);*)+oR z!FR}mM@ETbYuc_cnGuAUc?aUsS>{*7+36_B(O;yutnz_*7f%`kI+`%bPCaZb>U76M zxqC3rYNgSP+p(8rN@w`a6qLqehN`-JZj3vALPp}QxA|V$sEb3 z^Py!#o+7PC;I5n`aRRD1bY+uwAWN9rJ!=?~5vJQfm*rA#`3R^*6haG&#NIcSqfCAr zg{;YEo)n+sV!pH!qflehmClKu4z70=DwA4Iqz`hCrndE$Bzo$GttWd*(!w#*PFIjY z#}b!t*e!^56*oWObfZ2-{NPJACfu3vqlPqw6zvhPKTRmP6s8JOQ=^EdYD!`lVlvFm zA9ZuopWbqs%oO9v7*~tD9X*S{Bkhk_aVS1sGxGzMIAS}R#E%zC&!OFwTkl^WcE5df z?6GFm_UW9EjQnxuPw=<$#4c`OG2;156?c>b|W8IY~6x*RikXEn<6P5L_uwtVKqN7$CChfd96opb}E1#4xTy@svUmcl^9G zWPj+NW6 zZOPrq-lnUS{Fc*EpEQ@C_J&aBihEZw@qJ8p;=UJ=3&rQtt01e3P(Dks+x~Q#v0}`oD{LSMrY5@Vw*!dly#Zz8_Oj8EJN# z%LNmO**=#!mpSXRJF=7WpupQYYg5v2Q&>)UKvc12zqjW{ZpZeBNlOn3G_weg@w&0pD<^gq%JCuhi&S5_%DXL;mySLbP2~j zi5MPddJ{$-JSQLmOg-wsWnH$P_~V^-(_WS4{7%|yFp`dgK8XnxV{!o!LwsGYQj#P$!TR=S+VZ4Uf?`5_ysaT=T`iot zzGBiyj}Dc{_I~wBVKcR_DaY^hD8|`8>dLeldWSQ*_V#t2xDj=O^B=F-)xKCIC|}|^ zT5iFY0-1X4xu&TGx73$30z~hAk;jOv&L`%`JSTgO$6nM|*pVD;;yslf`(6S+OH z4Wx(`r)Z$iy9D8CApI+3J1p9j*NDGWWspAj9u|~r_;9sjflngO*!Mc9p6mw#gZA|Q z7nfIX6)+VUWIns_!uKL0BSH=^mR{5(O^c(fS?xp&L0%QpeFGi{-iX zsyMEi5iUkJnzEWdJBR8zk!_bnx7%KO5eXB$^ND0zdl$v)3eR^Y%U{bpvp29?gMjhA z2l50DDEjF^Pjb8Q&aMu$)7awHC|>n6i)@qzHlp%2pF_@|nL?5tmrg;Yq|$F%M0{(D zNr#CrXc^V=Dijrc^LPk

^s1oU{2+h}6JBZSu2do!VhY&>d+30n{qkl2c!Y2D26? z9Efxpqk3sfVZZ6Fe`kNAiZzF(T+!`1t3!C0T$lr!9`EoR!>;u-C$TpJdVDree`l@NWwuku1 z!A~i=OYS?uL*P);qy^l*HO%VHD!tiZf)W@VtZzpQKLSE-#fhAQ?*_|`{iUp2*$z3& zz-^7y9NPxXkb&;(?(Y2{SboLey?^;@w(rf-Z*i?=>))LOc4*BDg! zYo&cv1?g^0aZbC+mntFE)kWF1n~phaD6+Va*`}pO8QT}-1>){buUq*-rdIi+I(M#Z zV)NM`=7UsUAF-3}_vhvH2iwpq=XbzQ>I3?i9t7ZZVJBv7jm5VS-nF&e{jZ(3Z@Wt# zVqh1&HfeBMgK|Yu{F1lq&@^Op=JO?iuCZU{D=Wu>i`VAH6aD5gN_G3`+v5gulw`aV z+d9h~WWZa6Hr`Xefe5ygRMqWk6ZQ8B+=an!ZAg6?S_-f}gWB3v9hkZ@cE*7ppwg;Y zOg8zYXRW!#XkzLxW@EG5MQvUU)33uTwklafVkwh12Xo1S#dWFCL#!;F7t9C{W{1h& ziZ8>@NA?wo@jcCoN+7mSwM>Ev!?m~#I?EAv@rMXAlo~vy4BwVPrw0JsbPYl#?<+q3 zOAEhUZ#aHMK|hJ~o`9~&`{ejwaCMPsLI+;2Rof6Dp~=$Y^X4!r)}~n8qV`Q%7T>tM zk{k6#q3u|q_N)#J03H(VS>g*dtG(xq`%WBi}-$lC@`DC}!{(OAvF zt{(x}13;~g_{~SaaFOfG?~Da?`(0|*uZ$wOVF-}htN#}KN#lEbs{+GoR#uv}!aKsl zIZB1a4|i|lm36m>(%nO6uO@i={1a>r0Pu9X zopwz;t4Ru6jprL}gW9oPdFsmv60fp{#cT=>`|>a|hYH-d%g&^b#OwTysA*MVZidUA za(FzAQw$}aGG|p7^zcQ1X(%X-BdSAI3~nzFhTUvM_eJMPME)E@-HRV}!J9E)^7WYw z^`RyKxOfrVNj*tHeWDQU&AR>)(orL#%zblE9(bZzC>*NZ%R5?6zcXaMlCK;mM8MNr z1d*wL`|xCO&ImUty!{=yzMojqMB9M2rJ?vtd_Gt6H13kuG|>4)bRvrgb2F?mMjXV-}BncMy{^wI`byIO(iRAB>l zr3v*p+LoN$tO-6M3WkpJ<6ZrbYr-|Wlfl~6qo5F<$D*Ho2=Mi(7MgIX*+aptydD!q z=F%T=fWFeakJBpgIU{dV-Bid=NxOe(%YKJ{qT(!KURvuo&X4u`Zac?#JDHRh~5P(TY0K(_Api0 zL+pn(d{{-ag%eRpZ2AtIs;wf42`F+zKqR8sLXT}1je+pBY3iBjeHSA8RmSSOf-@jX zcXu3~5^xEeARoj~C=bX8Qbh?vA^D!0HUA_hj6IY7SSjNNsiQEc7Os0TuLTb%2)1IS zei?0cPj@3OqC!1>pM9Ztg9$3eogm;2s;uTeegU^vJC%pxC#22vySmbU4EdIMJK)AZ zp50Ui*S;0_dh@y+yp9S{pYSI+XnzpS5Lqusg_2M1KA@a9d7tdJ2byI|lFFnJ9sTZ3 z5CpqIz=k7Eg~PAlWzvzV<;FG^-(#asIxur)6v^F&V+E*t2Du7Fv|miRHD*+sNfv;d z1XyaSD>Vjw)+;^h!b7wEg>!+UvB{>0i1~!PTtBj?z5gr^7 zb#OAjUI&D0m-dkR7P-}{e`4rLteZ?lOI_zekHLGZv=OYXsF0KDB<4sT1L6+Ipyu6R z?oK);hEd=uTzaDKmiz3NcnN_+U0JjEs!D2Wgr2RN-38zsn(mE6C-g@t)y33RKu9KO z&MTSoBqd|!&*{oGZVzDvmNWh23zJ;a2;e>*b2+TvuJfY|Lq_fYw-=~15r{49k{_Z| z^@NG3#m}}kt*vI|!7-;K{902lC}Pc&Xpc#tx3j1Nv87O=D-NP_z9-uoV-W2$mrsfx ztC>;$%73ho^TWumE&2OO72hCdy-~Dkgj4Aa{fUn8s^kyJdofBNe5F8yMMtk~sdW7e zc<%;10X;}7`~V*i*gOI47N^IbI`7?zQl)g`$W%yQhS z^Ba?7DP~mi{jO_-QoHg}DvI>^5$wdQ{GIcyWjD8-E5JqiCV zih+cdE43HdW9gkU`-3x?D z;7vDG9#6oV+m`^RdZ z_S?Y&AgLp?qQ?bM?n{J*>5Lzaf|G;>-W*f$ftvzx;j>*+?H`YzwmVfyZa`L9TyKgWFf|h<0G&^v5&QymaJp|{;$1#z*4+@ zJpn{==|_NCq^^S1M4Bb*irEgwSVMD1BHN`cj`qfUX}7S-jT)})1V?J!FXx?`lp(GF z+XO4xpb)6lp*s|gRtjh9bXuaRGywQtvSWmA!}M)7b@`yb8YtX({2OhAYuk%mV1$T& z5m|}s3GVY18}Lh`N>*2T$h*f%BCB0A5x`w3M5ByzLfX$&76r-QoPr)CWm9jqDIR>7 zLt(|kYb%d{pdp)^b&9iMu2N_{qBgx?4)*hs?DzscjsbV{IVg%tZ=s_~A?FovWVeQ0 z^eB^7qm2aZHxa`*5gu0xbLD8oXtndO(1xkuPh^-Vp29e3_oQhfM9yY7pu!Gx) zX+ccq2g9ZuHDTJBG=(1x?jpj1fL#q&>!>B%HUJA+ZOds37Gqey=kcAhqZ6~f&>i^n z)r8{?cRU6AOz3c!zXb9%))uJl-46#59Qt;Zfpfm0g2q%XuhbI<29KxXbI0AK3&xuj zKGM=x)L#)$=7L=#Edr;LW%IO4; z<~GH*DjeV<8FQ}}%~D{cl-1`A?Q9J__-L|;uLxqdxp zqXGDP5j1xg7GvOd1f|n3COqmU5^2x7#JhQ!w&P~g4hit@mw#WPF<)MuLTt{_UtJ3v zaVicfQ%N@gJza=4DxN)^?kHlNmpEz6O8)hMCu{@tNaN5l(mnBP%@wKzuah1*45o-* zcmk%@lU=GU%i~`?T7;R^cQ{N6nY~qw3<8RKy$tbSJb~Q%96karG>V#WI!wl9zxRgv zf)(~Pn$f@;(QwI!R<-3D7Eo~{PXxMDIwCv}-jAaQ(8%Y?co_S7!l*DiC|laKd&APX zLGH8}inX}7R9;L4a$O?gsKvx&u9~#T7`NgCEQaR#Le7}`d6r+j#px+s17*{c3gbQk zQYNocoMQ~xEmA13oYfD3`^L-tiyk_QvB@vf2hG1aQCQYrcONNZJUmPe?WjXNjcB78 zqG(=K?#!X&R*h%&v^NhehZ?uns!yFRRI1m%)Zg)C&wDGR<948YDn8b35u11QyOnxW z+^*7HyXICths!rcxzq~*n1Ci`9_!RT@UPpJN6rbbeH0>NGnHnAD)DcIJxi4SMa9rd zSF>oQmw4Zh^m+8X3&OoR-~Dv@uF%H%Wdq9tgy`^2aw;G0g;ilO!i*Ioe-2k!Jt@t? z0x5!OFI;qJ%#|-;YV|Yw6}rNfR-;lRH>EJ1^PKKu@^|%x?|gHlz~z=ERBC8}*`zoZ zdhf4#FQ5+a) zZ|^&7zO$igJ%i5N5x&`Gd*o{^<ZFrO}EWha$X=bz1hJ#MQQ=7}L zKy&`hZq|;B{o!6x-OmXx6d&Zid`X!)FRB|D=_x5~3D28Tn99Igk&%}_Te!y$6>wNd zm!^p`X4;m;>1CYD`xV}v$I}51W0{j%1F9;4u^$0@&`-m7E$~RTxX%io5!sfhXbKjo z%7wYceZxKFIF06>^P;DIlSStX5!b$Ytt)bpy|q>%VrR1Fk_U_3n|B3W+|$?=_y=y! z39hHpJE`XvB)KJDOSH!AF;5ONF!e{k^aD?Sv0j(Js3(DgMEZnrHX*-mS^}=8U(Vb! zSHsH%boVdg6z^vXM<0GwQ)Jnq9i?Wu5vfk0MtWkOUFTPELi3b<1=p5JNj%3BqJ9A@ z$iXz%ILD^SGr~in`2|2z*0=W>UdCL5JFY&rfmvm0HjBq@q+T0+H#H((r%6@5z&pP> zs9%X#gOC?zy5ryTO1${C8i2(Ctk)mFM`SW@rzb_;O@54gL8$%zu=kcxalLVxAb}(# z1PSi$?rwnum%?3wTW|>u!M$*oK;cq_y9IZGySuwXG4=16-s!VD-7~#?_S=4_bL-T( zb?-fI)oai15r$9>^yORZ3F@&2^xfTsD5qz^(!2eZ8r&X%*7S-6Uk&UH%&Fz4S%8kl z_ViCoDf>^OoTZWx+G#Ox@XaQKjFgwMH;2a7%}K;NlnDL4RDs>b1u6*@e<+zLFfQ}Mkh|FL7`YYww0~h~Kw3FPMpn@( zCifLoVo&IAd(a#>YgCn{V>3)z3gR1OSs*s zX}UQxWxWjd{s!Cg<*payhJ%_}Wa$OATic8FSM~Nt#mekcUlsODi!+k$3kXhIQ~c?n zO?ZY&JiD97ZZjlIV0;nWmt(iqy^G0(+g;2cQL;NxuBM$nNj;Z55afX(6D_rkgm8oumm06=7K7L&P-_IS9nsweb)9u3> z#Xpj&sFyp@p$fwGJy{S8(tBIL!v7wW!#(h#k)L)L%<2cKnqbMAqv04|Gw35y^^ky zoRk(Xjf(d|+V({)0R)R+Xsk!Gti8fXL|6b_bFC11DlUHy1JBs^>-KgV@7FD5>(5ME zYIe`(J&YMj9S@zLJQtWkmrP9Fv+I799h)|L_F=0cHoPhF6Vx!#(E)cS|H5I}*`b&E zc%%qV`d|*AGBsMYK01fRQgjc$-t-qxsx1t*rC->4upco z7$0Uu!_T6#Gl%hes-MeF4sA?`=FqqBN79Q@a+0YKNcM8hA^mKLFBR&3sz>Ks>Ngspvx#wrjib~UVAvO^!hcj2Nm%YKw(kJT_ zpe~ggth_cm^DKQkQE$ssgYjksCa#B?kOmvOv&!l__uTTR1Q`8Xp%HBc(O&h5671c` zRoU7KFZaX|)W$dub`F-0FC_Hv3Z(QU+B~GSPgn>@;EOU4z3(KI;NCGhzwDh((yWG- z`<$9Y6(xKJ1sAsMrW=+$jpvDQdbnjH*9G9sQ1a46l(NAg^#g}m#oMN~%xVG_n~F@NL(DUJOK>rt8R)eX7poAWRX`Ue&Ihc!;Vg?8y-l z!KyuMXbsXI9!&M1sSvsQ;NKD(5OhL8EBupHb_P44Vtzc)B!}i>3N4{OcL@)g$eRa4 z<1Ri1NUiK_(OTXdQX$Kd-<#slPzd852(CZLNc3iM0JpvX=GvS|SZkg{3ijx_WF}YNoJ2y}L-A(3xoo6zFSIG#k;lMDKKAy>W#@GFgTnypBB*wsnh!7L z^B~x+c^q$P7tew?ru+UHtkS}Up^{5TLi<_SrRoOrs6^NPj3>vyQRB-#eYW;hct5dC z$-QG}ek6EbK2JuflyyXEE6SI<4Ntpf??^ow$*D{@FXIVV=8LlUbsZRds}Wl) z(02c%Ka93+fq>*Q;}+$)3vNj^9+5G2k~x$4``u9*5hA;V%5GiHkQ zY(%`N=-`kD9m3!X%REMQ+dI$_q4}PCfkQ?IBSgwR2uV^d>B?!nNKp;7=c?F_r^&2M zIgdYEi*BlP+)VpX>d}Mm`bb4Ww57?Uizpfy?k-cHqgNI~7x6F+Ea6?m3t(bAbdtKE zJL@CxBTmle=UBgB57HhOFQDJ#-OSFEIp3SO5Z|lp$mh^4{k~r%N$2mA;MXN?r866< zzRW|C+xgt1A+B`SjX66}4^vxDd%vF%uON}?8eTC)p`m}!BIh6v-eXKiS`4o2Dr;s} z^H)A9kG24n#@0r`!mQzj>06SOlE=O@kp!3IJCh%UT(LlfZa$HliD%aHCmRDY88e`3 zK_OKFWr+QT;doA0gNVQZhqle4&u|P2^B0kka`)#j$mE8CB#sVs)kU4NR%;(0&lx?< z8u%4%cU<=+yhznzbAaW2M_RPN=iTN4+|-u*%LC&6M@XEXDFnSg?;iR%wi6br zRBeVNkcJ+}3KeW`&zLz|QffpM)0#HIeVpsQaI=v66q-!}eV$zfl$@^b%erDcQlxlZ zW%-Px_b!O8_3!k0(t2L`=%JUcSU^2_uOOpNXVH(O7KxBm-ff39EQoLa`cfStn!_*> zl$Q4TeJe(r?v~Ffu6(uXbnS>JY__P;BwjZ}gM_&frczO>@ZsN~j!yWg=5%!!ZA6fa zzb$wk?U=e2v58=h4WUrUxci=RbDufx`RH});ji~hKW#gGVs*N!_lQY=^iZQ#**Ili zP}>^SFC>MGcJ-(^;a5Yw*%9c)XBi)!yp@iqf{dVEj+ONZI@t{RVjkIUtc5+kFaEfMG8uY9x1d3KH%#z|xOHKF zui@#B-=Bf%ceV~mB9F^WqWT&liCna-$vbTn6j%f(*&pXEOIOh7SyJFS_Dw#TWjlfr zHP>ot#2k{YG;W(lmHE1JUnNDa=5DO$NYy2s*pr(OZq2U;2wqn}LOZbRnY;ym1mK-j z5U~9{b*jKE-OKcMV%NJZ@S({q)>{Ptc{~Ut7unv>3TX~+F-oc^3doQ;$L`Eju1+SY z707DXR6q?fVrE%S>oQ7MAiEsPq8B++`;71wi}Fs$BtaU*LNi`VW{tooL}C<=%a)lO zbur0!CE4LiK2|I%iqn}*#owpVK$8PKSf9CGiqzgq-atbB0e81o@iRqP$h4m$?xwsc zHWykqC5O+a;v&GVIk>Oc+f4+eg9=0T%@6B4eoXC#;u~{xC=Wn{Tp6T=&<(Q1z=FLx zRt-(O?5w9|LQmYDO^Vbs2Xf&45l1(jy$_q~?Zl)-lFkbdi$_T~FAt5(st|J_D1>Vn1C+wGU3c+vBB0Bj>#|d|NiW&!~3h(W6-!hrEhN14N_d^5q#tPQU@OBu@eAo@Ou}IGgUP^)! zW}tA5x@;+b-a>6){t|G~0Y+7@dWf)S8 z5p|VDBRO6+UEBX5{`ljW-qvOKYPl*aoY;$X|IM>i2g$XG--c;xv@65G+=i{A~FX?&z z014jA?q8v=MThlkN4DnL>@OQDe&})cb4!nA*96%aHa_MXC#MwJCPpjL1CX#*)qI)U zqn|t~@Ysax3D2^g1h;1kEqwvfIbDlEjV>eg5 zXA!I|{RA;y9wx7FL^`*u3#-EIpIROGZD#lOBMqC((6_r(PXNLHc(|9i;b& zDbL^Q*xh43Ui6%!`pCwMCNq}5q~3@jhSlk_FTo$Kn28-uGynz%pBVtr&HO%GdXgR7 znXNDe#yFY%Ur(ktA>q|Iap({#*_ywYB?3FQ?=pZ=*1 zf{N(5Zed$B(>y8=6#fvfkK!F3mHy<_!(&z9ZlhEqPHcB#z-{#RROQW!&8C+XO5L%F zz;-VgwQf5a*=%Z3jlkuD4u+K1ImGa@{G-C~b3E}mh9|G(@d;4=Sx2Y=vsnpxaf^aqP>q_K#h@i-N+ha3e2- z!JI?xnF4vR9Zt%q+l}FDZ_TC+YeQQ(hZJWKGIkT`mdfWB!s}ZW!5(HNrFN|kiL_*erkQkPe`wB;JWe3cQCYXle zx)=`l}VKwOz%RR1QJ0wk8O=8!5DHH25XSD0EX{M3Xg9AZwjZWZtks z;#i_BW8!i?AmCzuhNk0|QnF(8lf*W&fH0T%E1IJ|ZzOc|mI?#?HVS%-+Wv40W@+z7 z2usqjE*yEb5gsmCzu@RDEFf8dOk}a-ZZT_|vNDqhx>COFVFPT!B(hN>$1>EZneiSp zS;)3bB?KnUM9Ar zcm8&*+F)Jn@t>$^wlvyBjax|X6%iqG*w=oc*M32-aHue*hE%z=tcX>F$1$Lil6Y256`Phq15JYh>$4il5eQq&`YOR%IS_P9CqN zs&XRhFDa$+EZ@_8=^Etu?2FW~W#H%Ia+l()H-K%R$s!&FCv(h*q3_v89=4D}3=g@V zHCqeYageAr5?!=Ya8j(0?Z6ZkB2oSNVJY{MVVP}5&%PZvw-)Gqisf5$pvCJ;85>_; z^^SDa7qFwHI!<+oo3=22M*~9OCMqgHV%I&?ZfGL7jkl|VERQktXHiYrJ*9x`EgL2giB_lExN zBcujq@pFmKSX<3G(9=Q`?_-@0Y22zT8m1-Gyeei~EK@xOUEvQ7uE6R+dfWe#$N6up z9skwigpQ9ND^V%SKg}H01CqFRU?LIa2_1oI>p5bWO+tAOLnhHo-8O>SVGl|iP`o? zIsFs+fWf%=7nL{(&zoP^Tjpv$!LI5sGCt>ZHhy{4JipQQ%f9Ww)N{mRbn~$BhLj-M zC4`p}k@#pvH!h~HwO=`CX$^o5#ihKdxU^2$4ZPuZpF##5mr<{XcJ7mEv7YY=(>1Uk z(&+hBt3Ep`JqtDHLWuU2`GztE21)+>f+mf>Czl>4cGM^B_DDt}vE*Ryd@{AkDT9qL zbGedSV9?CknW)H!wXD0*^ z4r)C4A60{+^)q6zO_v2vlR)+UGjw-tzePic;|t>z(^ja#dlg8CVT zX@(1fuqTQBg$$DWmeTlz#}Co7V2J5U);uY~GOKG_!YkYt*~{^$S*T$Ic_u1tgKCb0 zG&GWxc{ziAoWI`!L>zOe zvKTjp^=-{H++bhM))mPWSU2#f0<&=$bCl(e&w?L5AV(*1imBu$jAH&(Cb^i+A-U-<>A1swDv! zxraqZk3p&;8e_n|N2J!{EA%kaiS{Nq}2ggAzhurS)eHH2e^EBdQ!VsG(+o=ziQPgTwDp4q$?s7 z%_LRo0$TTaU`y9UAxENzbuVDt;+`bIu}n*x<4!rpRInq-$eM&6kI{q#aJTk|v}?<} z+mc0A7a>#V92~>VG~(kAo)f#*-i+3eSTp`%ENt2$$PR14r?mooU5N-Z zH>8j4tT#r3(opg7z6a_OXoeNl!3$=NepvVO@at>q?t>v)2|B;Bw$z%$F7+fO9rwE% zA#X3~Af zxT3twJ^+q11)^eXMi6z91;atFaGFfv&?9sMrc3v=<+w*-RLa&FVL$es|poE)!h*XZQ`MsC0-Gvyuq|s#dwbgt*U}uN zDTSk54DeaA7!44q|89`&2?*+i`t1Dylx)w8-ayxu?7) zlC-4^5_(V0@69Tg;}zMjG+zB6o}EMqVbuk%T=NlBnK<00I4pm2q++S2zb4!EV+alr zxXH)9mfFLJh_}iyv`J6&1O`k(=b?v(blWPzgovb*O*!ulI~E>+Nt~OD&VdPC4JI#) znfI!jSkuo4etC)yjZ<^p-)}41S?zl-K<*Mey~s6=0S8kM4s^=f7VxpG6rigRN}$kPEhw2+3mbrJ<7T ztEMt04C@?m0ciXX&ilag>L~-(pG9m9ZT*Na5w#)2u)>J1pGOl&o2TgUf+yt#YME(2yq6IfNdY10;HU>A?3usR z-R*eku)bQ{`Lc zEUF1YOmbIW{5bSY8$0en<1J}{!`yA*$L#?1w@#>1$c(LajEwq~PipX5A!bo7(DQ3> zSPSPxDYkHC`K`t9E8J&qwnfx}-K7!%pFcE|FWoDE>)Y}(H207#nfmssAESkaeI`u} zw1N9a`$G<5w-C=6mnR?DK3&22p4b64DF-j~eVeXUqm4)i>MA-JhmN$LD;p7S)iqZE zPTRI`LEPTwz9}uwvo%9tPD!MNGjrB4FVCrprJi(*KnNn)+`Iwt+)14u^8Dcmld^=6 zSZ0lX@e024u@mE#^+NSD3yTZAiz=gsfn{^>$E^{#0MXBWY{J%L$H${J&++`_Mi9ox zwZT)LXsmDs#-79d zdTXOa3_6#l>RftGH6pzUpBeN1LMiWaB-N$4akJ4U1><(nMlMAK9wXH! zTwYXGa@*@7EHg^014Jne?7`2tlPn84^4YpHqFt!l&p^=%BsBM$qx}nW!~VZfxjS7?dR@2dHFh)w=2FyrdE1D*ThRzr2V zcE%6OpoAEI)Vhu8>RRwbVGmW3-k#<4sI7aEVS;XxelDmU(1I_l2pI9XSju!h(o$bb z*&rc78FuqN!?fVKVwecVJ{7<9IkRtiC&Ei-m8c2A=W7A&ev0_xPf-xyLFRMbLg`u3 zYY`x}nU6`rIqFh65nmfksoc9Fh+}Ge3_}_DxrV+cIgVLrd>f~&ur4CB>`s45_rxjU zNht1jMO5EN5#q@HJqMXz{aUOe<@{p_6l?0`Me2EhJ|D4s-q*ns$^RCgS?~E`?}j9# z4H<`VemL3ilaTiu%j2|9foQZZZKd||u$4oC_zuU8T5c~t+RmP*=UOz z(R1xN*FcGLU^sl9wl!LmBT>2ES19*l!hs>TyGieGslHG0DOG^mQ!rp?b@>jW^jAog zI>_eTWbI$HX0eBqrDe@`vh3it0?J6v!BVB-mnD(4ZMVnlEQ>PjHZaH*d$i?72AA>` zuH5HnKLgeS=tbEq!4^wgj!`kbwmv zD+im9SiyQmhAW>?bIj_^@Y`j#WHvJ2)7cIdz-+J>p3$wHU2QqiwNe9;OFS`7y*(2iXX z(@T#rJ%9YBA3sIvOk`$QYcpz_r|b&qvjl`}1FuCui+OFe*+V<)E#aH6WgOA>2uMWl z3g?k6Qf$qPXu7b8#QhRjhoZk^VR7x(OrMGKeT=B=!T0;4?_aL2b@N4!KfBW!9J5J>)`GOU$aM1WIKHTiEh!U4sQ!-@6B>22Yt8-YsZ8q_0f2 zm=6dE@U9r08AO|v&AaEwWe>YYcqo;GkCQzD^$0G_1XC!o zqm%>5$wSEk0~n`sBa*0xoB15mT$xl=brfJw#z^|NMP{_T0hL*g9F7m3 zeJU~s)HTp%k`o(e?(#f24+C1_=}l0&MzUtynEs%#<8=BC7aHE8Aw#dX#_ZPgOWz~O z8gNga?fW6VG=nGl0Qad%mOx}WV$WQ+TDRhiiN*55WUGW<5nS8=Rgm8>KR;<`fvbRD zlr2qXOZd9I@)hg-T()v1a)Lj9aanMY@JtLrsw}swjUnYcbDbbzxd*O8lW-t1RNs2u z=*Zw>(S4|VMx~qNUGbi066J>dBuB)&rGdz<8jDV6K zwNs)H-M#;$u{9XBj(%zbWd4<)T>IN)dzz^i$UUlw?%QB7v2lLwPb&o5Y`lovt&f8+=FAN15WH5<0*H=|O6%Y*PJmwd!+h(B`t#69{LCr-Ut^IzdC zgsT@N0}=PsANu`To%{@^B6{!5yx^_wa4IMwfn0;NH;dv?P?P6v^)-U~7(vF5%oWs9 zEeY(g<<5AN$y>PxF~s=o<_oQjSyg4tD=AFsdI%@@z9@lsX{dPhwJUzih60hdnlRPj`}RoTc4gVN}POW;Ewlp5f(c7 znkadTM3n(D2wnvAn|jplaw~G&G>^iK2ML-Xluw5FakP&TU-4=(Pf(UX!twk~M{8P?3Hg;9K)wPgN zNH!x!Z;7l>?fT6t9P1U|RVPg;NuAJ1P`|VK(Vq&&7SbYVCFy<3!JGWNsun8PTZOmV zS27Z~-~UBf_WvTgv__(h(ZffDQmb$@fX^Dn~IRQi!IyP*z| zQ#36QGY{M;<&i&<3hHr@^_Ff-9))wvvYC&};s4@wApXxyXk+xwXXp;%25w4Sjj_A7 z@4%(%)U@U*W{^6CTR+ONgu$^hR>!3rJvC(U%jqVhkKEeJO@n16nn@lZar2VK{r^yR zdsYVjxt8Ess1A4ZNmB33GCfzo*U#E;W(aWS!X8J@O=F>9-e~XsTDer$UtJ^$N&2`W z1YTbsjM;?z+A7|i|hWC%{lD~)6rdP3E6`Nky;aEFmu)|Gbk@%Q3Aca z{n)Y%wFPcDH&u6O5^UL-Op#dZT!JZZ~~#DYVJgRaj^D z%x;3x8-(}prE|O;Zd3_kjM7-dJRVwsCz+qb>t1+r@E6vjL2P*ubTCclfAN(F4}i-l zpwr;*fP@3?w`u6qS46O&>Wn{*;_21!@BJVZ}4NV-fHVwF`N z5MXE}$rtF|f!sWxQae_~UuNCB{6nJGR42l3Y#Y=^U}AYy)%OpS=Vg4ybfZK!6}f;o z6voeE%O}L81TgC~qHGk}_@+Y}{K?F$o+-u&4P?ecs}R<&57S=wNFxyu2}4{TQlHeG z_}xBn2+;T95q+Qh{-}0Y^-%&#<-guk5p-|93?dY0X(iZs&R8q;xNsNn_X(E$vVn6c zK%D)pEq%zTh>7eZ%5b2byIhv1H<4~UlywgpQT+>b^_>(RYJ8p~P#AvMkn1llRorlt zATPiQ0xHYD!%{Kzj8Kv)&RfS)nKbrCo=BHhj(~%GU0!7~sZ&;2lAc3YLeO7XQmVKB zmYN{uNS7B|9a9)uxZ!9eR)~-FbCfnc`-a6)Uwl7-CiZHsKxz+7);`nc-PaP-&E0QH zShvO0>W0nE(xxV>XX!_VSoOr|FpgLe=rIDUz6ziu>d=1G~v?I=);s{(a4j3 z3$O%46Cc6SsW%}b!RTLW`Z%eqc#QboXaWesXQ3C*2erzu)AAFh6J#W?AP)cAapeDt zvFZQ6=6^b?>)-xPqOS}8&+yWJ$@To#z|sGEoap~?c&L<<5iBD3f0Z8kKcaux|3}>L zzs86D+j!vrnHcJxd6MaSeuKJPVvE#AR5xd;-<>pTlXY z@bG*@sG;2(4*&H7Z4MG;$Mf%atC|__Mia~_nl1karq!c6DWMJVpcJDBlx zt#SJDpe7Cp`aoMUdEB$#pV^1YUhTzk4XhvVIS_>G=#Yb|e$}XDIB@mu;9^*>{~(gk zk=WDC1sNp>UF%jG%IYb17jDt12tH?H3*d1|tP@I2nc>_$vEp+QN+o5%GuCn&2Z)mz zI=o>zy&LB-=7|yD4A!u;>wF8MX#EoTq)LF#MktjPXP1jlfRXZgXjb{BM(c|=2P%?D zCI#nb=+3*C54U0pBs#y2O^LW9Wk_n7!)4E~KXSX{2#1aJisc7hKa~iJZ3N@4Dsw!1 z3{Z89rS}}{Tr*gql!ZOU8aXdEVwRz42%e<;?bOB)4S)&og8@}wyvZy%RYvwUjLIzG z>6MHd6EU#M$Vu*5Li#oz3p?S8myhB3L*?7t=sFQHKv~$*^Q_`89DF!cDok{JVe!#z zXvH_0&Go8JrbufDZ>cl|K-NyLmhe{&YzL_Iy<{)(kwj{|O&!rt557hs#3kc2-$BOD z^4SKGuR=ufp5jsHVBJf)#?Tj%y$?*k0tbD=*q1%+o1WqoZ;(B0(V#ILav8`B~TuKl}9P{ZNFIhu+1i-ic(&1aF;L*+0 z*-x6FXU;ZV6sO6PE@|$_)^O(PMRUZE-WRC3sfNn_gW(v$BsIqv)4p>02(sH7sAKkU zMRh7hi~gT#zTDQv^sTN9PAV35mb)>}w+wA{d;Sk?JnHP7*xy*y(}HK-*XmX9*qpCp zxF1!rX3Z#Ub~=u{1;3Rrq~ny-Ha&1`Q3UUUxbkk^Ct8i6YP?L*<9SE_F6Z9gj5zJ9 zZ(Qq8Qr`9ntwHp8N37&ae)wr?!Q!u`v5Atm*_hqH=B*W5lV48Wz&rjx3QzHvj>1$@ z%D$>vf@bR4-vl?$l$Nxoe~ggqmOLLG06n8UVW>DJ5-=?Q&u#8r=-+leN4<@^QY8CT?M{SS) zZB$RJUUx9WG9sxyJ$_hy*k{T1g-2El^MPH+e|^3Io!5psC{^=uj7!$-@D4d|&kC_R zudp_u=yaW4T% ztc0~$@wA0&E+AQhrc|3TVc!M74g z8o3(23ZmogGkc#Ke*H@dDNy|`9 z-)kbpVprNPp&RW#LZqb> ztN4j2RNts0bBi9K=T&$W3G!0yzqVOB1C)lg3cv&7^=1$LvO9CZd?Obhjbn}O z&rUpoR&rSLqucGTgxVzxh#vc52~ITxZbq;a0)lOx2sjRHPYwlA48uIC6?^xb@I7o7 zdCyJBexU1y^>rC~3Yey#XsEpnCPdpo`Z!T`uV?U0e^JL(yLcHa{$=L)ucGC(4FI8E zC{N1pV_>ye?cb7H@A}{1@)}Qh5e|Fw32sgj9(lm_Giu)y1=T|I9Kz zAq9N`ir4r_9?Dv5yp?yzCoDx4XabSUI|%Tz`IT666z!e2BhnC&z%{?P;wf6 zQQ94gKL=AE!*`Nopc6hXDkHa^FejvhPjm(c>1) zC6S6V$~I>B<5Wn5JD602$rv)*Sk8QWZdV~J@lFz=AG$5)T8z>fp>C?}k}hG%r7Eg@ zPke6Ogde3sN5ykTX=aZ7C8G>Cj1v=aP-$91T9t&B52Wrsti@<7UI{X0t;N4f$e7?r zjN+J$a4$~g`C|UT*b}n^H8*+F0(LvZ5?>+UYox#yT9A1y)=liEiVV0o)*_lI@d=A( z|DLF1lR8J59va0v>vRSFVC)x@qSp5=ItfFc$o(6d!39{P=m8HW2bG%Jj2w><-(n>I z)s{19ALk#izX`+R5MpJvW_YAxAm(0Q}Wx$G@c9uXmzHZ18v&u+g{ z$0CH@D%0r1w zhqO+Z(7j07s7}%4E$5exV`b+zf`(?_6FqC-JXEestb@@B%%gcC>)Zy}fs&1p0w5O5 zk!1M4@-@%K$BKo!Tb;H#VE)$^hc}i$=x50@Y|r1C$iosx<3g?V=(6UK04=}RJ^$$e zg)g+x!OI{W!aTENx>ngKNzlW3UmFx`o4y3Z%QH`=D=qoSjKU`Om^e|Ng<}SqJYk!c zl~wITsEC0xuPoH2V7I8E5Jj(#atty8BlAb-OGgn8hfAkQEOPYy(v+b4T^%w>mqyFZ zn5u<-@~&lc&$YDxr8|e*2erJiDSF>38d&>-DAl&K%Gp}j>*O^W=d+Tby$68vPkE#6 zr=fD!|x<~Rx-3xj4YaCN`@Ye_*xVeP-h+Ha>{8}9T3N_i<7C7wh72>=FOwr$h z59iR(xx**;MEa(O?-<}arV3n3N7Npi4ba*;bdN0B@if`@5_fuynosdJ1!vL=M8(IL zdVTe3{I8N6xIq|`;V-;B$e7bFmIr~IMeX7P1ckAvrza&nl4jw+LscQ+M+>rjM$}{1 zN_nAaeaWq(LiNUYn6dsnMr7Uo1Vm2e`6_JkZ3RA4W6N7XYUAmqik%HzKN+fJ#w$^I zBZ(zsT_-9gdd`#i3<8#5vM_zrEHs3%iXf-R?;)|PI@hrLh7NoG9ey?;aPW}mEtFNN z>q@Z=^+?VfX~2sA=nd`9DO*I<3p?B2GEzGR_k>tj)d)AwNaL^e`jzur*s>EwUZhT* z+J`TfH5Z#7@yISXqdgfGZ7N2N*JCTK z1N3}0-&_GVU0WZlW=M#}HagK+M7P7aDcUe;O8STR=RD+EI2lM8CSi^8Gl^zhOu~PO znVSZKk?cvFcRuNaIQ8)jsOPtVUKm{9@6!OocTL=w4FT<{l5US~0rhOrgw4iSIaplL6c zRi1yDLHuhR*6GCst~tvcwSQa9{8mPJWHB#>z^UkoBrwXDFZ7VyvS>}jh&5z?fxzHx zh#c*0L2u6eBXz{dUqQKsDe?Rn0O|)IIQipzNU`zlaIu4jTdDNIo3Ex@aJVf*OySfR@Le=wniOAOm^5ktg+T)`` zP(F?`loXnOIM0v7W>eSOA8u(G{aB>w{Wm6j{SI|fcsjS5oG~c$HI~@dP^N_bNbpS& zbG`Th(^Z(}ybiM~ffI%~i8IcLX!a#^OZt?M^Ip6<8_Prbm*s)8Y3M5&Sb1C|Osc7e zz^9Nxib$yNC-E^6qWLnD4N+|QUhIz^1d5K_WeGj}MS51$WEPd=T(>4=TQXe!&%TO$ zy+7?F8@3D!sQr6;- zA>4l%&qU5}!ffE`SY)JBY6v!6o%IP;nu3u}SeB*>OObjdmf^(A7>D(4%S@Yhox;a!Eca zXmF=4*@PV6OqO4={t|B<;@b3i$6+Xi!rdTGW)^!b{cI<`m}?4AYLREB`p#ka1#dQYAjE5I4$JY2p|I7+w3*gU7D2rCEM~0Za9C>p=jHg$flmxu zz@u3q38Znrz{1Y8Uczy)3@jPrC0E=R3mEh^(0Bc^My}RC?$cl6p+N61xHzq>2x>KHb8beY^iAD9)Yuv{$fHW9p1nqO0ea z27i~{LT&kFOY72{LM~`Ou2#rxXW3Yt;_1iZlNDX-QEELNa zDI{s1T!%$+;)+-I7n`|J9uzN)pVskK&Bt$LSG zK|udajoMpiU0}4nY7)I3_o?_1=6!FTREEU;(r)nh&S@(*Q*_T@8GNC&IA3}sjxA)2 zw+}>R_33jJwIq%oy{ip0#Wseaw&cgeT7>J~QP-%#IPBg_w1?uEjSut8vO{Td99C~X zC}!uh#-8 z7@yNefy~9{aOUxI1=}Y5+UHL?7jG8IoeRqd!oquf-*&tL+SV7IKCqw@;_ZleOV!X2 zg~W*EVL*0uyB>vRC3Ne@6Ny@^1oa*j(+p@;QjN(9aO`vDztVLF*A^MLhrc*@I|=Ry zvO`E^>t)9%gUSwhUJ3KBst;MW8$^O&x{jjN1*=&;zKa;nt0yaLe3%|9hPd`IAmhT* z>S94cyspta!!<GLYt~v%)J}}HLfm^Mpj-?rnKTT5f%RaO#{mo@NBYpWZ$=$ohu;>K zk(xuP4uvGPt85<_GPtq-xNfwVc30HD3qHctUXwg}x8(ArM3@&&nUC2SzwB1s-_cv? zy{qeB4OS!x0#l!anZNIOw`bzMquUlfdX zWxojvFUy~#d}Wk@v|PfqQQ?dZxH$-z+2%1+ia(9uA= zEf_N7*;j`X4L|62{cNjHC8SWZLb&%ykF*fKR=Mh4C1^UGYaF-WyuIOv0cU`qg&^4i zt8I3~4RfYOH-x&0fKr;EymRG5pRFDWLzHQ&VgaoS$q}t$U8qP+2CX<#a8iHGTjsQc zay^@a-C<)|nbzC)Na3Rc2^o+iDNCd?^8{oPSww+!HgFEj1&~xW>KSx~zPX#~NOCAfDkSy4n$a%KV$P%3-ZU z-VLP87H!3Fx)iFs11^$gEDvK+-oCzhzlat>fT&QXy-#^=ikye+GR(9yJ6?f{Ah2Lf z|E4UuZXhs4=TR3jt4IC1X4<=!=e<$2uhn`@I8T5dQmR}sa$l(&Pdn=ncr~nMgeW#%aKb zYsk)Vrrg0_H7eUY1*cm;*nGQWbE;Pon{q6Dwwpo|n`c|hvz~#M?9`^>PKdXp2Xo_$ z#PUe3d-`4}Usb}oBqieVY}HIpVh{ho>2zN`xMCh{%&c)<0j`E{jSZ@7M{sg; z3^f_)@@L8j$os_Y{_x@OwjVE1t(DuqYV&iBUa{HC|rfN3d~W2%?H+b$d7nZ zy56=f!3-sc>;363)uwWzHbJ>l?vw3h^W2J%M)zS`z4_C?ROmLc)}o`!@|EnMo+&v! zn*oksM~y*)<)2L%SZd9)KMaFOC)8Si-r!0GEp=TC7o~R-Qd2V7pGt*a4&70)D$=j4 zQ6GEf(ZPzK|}D-E$TNzGWya`uhQPAv@2@U z(4R}J9wwn+J*QRoi;3^kee%KNqugJO6%>aa1P(KIeO~TUCqK1PG|nG-zI;-=s$yJ6 ziH4|T&Ee0+DqoBej>~T@O%v0-R0x)j7%Qw^z_U3Jz7>Y@C2Kk!4}rcBo-?-#a@O?7 ztXtogjN%|iR4>4P+v#M=cYGckBMmat@g?RbxvWN!FaqNoV#_LEsxkNh`h+^rF=bNFx{B5qBk3iV901A@v&IBn^E?9i6iA zyE`)a>U*D(@hH#|dBRd8ab%EE}Mo9I! ztRE?0G=_R77ODI&RunqnCEpRB%{7rR4eFXdiQV33Bq>Jk4`+NAlgGUW=Sm;(-P5u9 zP|a$XecRp;$vd5#`a5rGB*`QVI(XYDUJv<}3>Df8tPAoAUyzwEOHb?9QiT;IO`eL} z^2PiWUok=WkP{R@iuaYNQ54-k^RTPR206`SSzw=Ho9-)y~{hC zVx6Ws5n`ayt6$~qEK9rseHl7R&RN%u@{e&yMFZ2UA)BN21ST7thIL|%sv7%Z_r|n(_YNgy*>cG2 z3sMANglwNOlWfKLo>^5qv}j>toZ;Ufrb^37-+ZHD7!nJEj1Ps2=xXVBdQ5+7@iEO# zAGzJs=xCnqO(+6nc|frAAzQ%`76fq?*vxDBr+e5M5?j}~BQVQ+m)vw;U8;`ck}Nb^ z-_+n#+a~XkfmvwDZWrdJKCuA?sc1o=0C$*Hbr(*efu-FvEU|3viCH_as5Z-n$YTjg zx?)7LfT4m%FtWz9a+3XWU#@8exIMHk$bLY_I5;f$*;{<_&HNR{A{By(8ysCYv&w_i z8ia@_-~1gChhQ8nH16258cPcQsv%DG+@`t+-Ql$Lz)wGFVj5w{nQ!REb6(8i=$^++ z2b)Oa>OPy>h~#^M(2R?{7u##BcFIi} zDb3PmQieMjJ>QNA^(wDi@@O5wKeM6!ty5qFZTUBbBf+7cRSpaOIm=q_BO3Atl_}F3 zco>8hcQNZu#6AzzVGQ%(=bX+zIh8I>aH4qiPixTiTqcMb>)V%ToPE>!cQ=Pk-nrr~dqgz6`%dhK=^~G8HHH5^vR{K+^u2?%9jC)$n@z>zgC!-c z+tkMW+T2(yhfIUd8=Yl(-m}leN|#|vTD07pV*aKzX$?m3TQ~Tj-ixUUiGnV5$g86M zw#Ni5Ni0zYHffcX?w*E)WSU4LV3LpEG6_EdKgrFriSjwK8z5N-BM!!B(rEW{`=-I2 zmOnR7-(ERFeF3W5VDXP&52<60h<@p&+jzrJ76|{aSP;lYcl4#iM#582|7#F+5m3bO zwGl(v1U3`xRMn`X`6u*;I8}V5J}sOx6i#oeFA^K?L_`b5RNxV;8&)&34r4wvd{+rj z@~>xRBz4YNyxWUeoW{W8Z0qXnR$rpj^`vhL`oaHzUuX7;c$SE?VENvjJ@F=Tjvw=+ zjOqod0Z_%0f+au;U~=gbH)6gpz!KrFzWM&1SKtRf$qg{&QNL+@LbH0zj>Fff>bYUg zBn&6dT7%k4p=xm@`WzC1^XT^E!9>#}KEb&1#Umv(Tgo}5Ej1biv$tVd8>MW7ON1CSzv1(q5AN`MNq%t^ zl~1Muq4W z@B0AOQ5cnbZo3gHN)s2W#l>3cz*2@5m;}z`hC}-ATuIBp(l4*@h_GMM-@qr6U+`5j)&}=S)xfL&n*Z@; z^p}v{-n;$tpTb84x7ON*A`386d74ahGP}U3s(bNZO#|fO3(1x>pf~sMgf=^@+Ic(b zrrIl$PHkgsPPjko+IC8N)SOUYuCe|_;4`&iU+S(!8+j6!E;M8m>g(>o4Xldml|jLh z@5f16YDfCvjgc`GHN~|yz-!+{&Sz9!=s5YZmXKngi_qnz&DaTvA!$)q?|AQ z-?kUg)1qgEx=rTzSH>jxEwYO#Z_oMBzTpqfpKxy9I8(@%L-~&l?qEr|Zx?fxa6Cxs zO{3VlU5)q5$4}{1z*|U!j%-~w>7Bw`w6O8Bkb3Twi0*STO(YT^7|EULG##;}*P7F$ z9WY8?*Y;yn&a8J2_+0t93=V!0z-2i;@#p8MFHR$R$~i_t7Y$ zL2*`t_GQZWm3T27SQNKcyrR{4r6bGCi>{8K%AzjfhXIp65#`?k&|Kq+nIhBpei-Se zF+y#o<5x(Vy>A`jr=seAvMDI@P@5rWCG z(jW~yuC}Z+>-n(vG$0%CMd;#fL@_ED!BecK9z7NQHCL;+wQ80{ zexj~3YrMptudwvpIdZ9&s;kVk}VU%^na|4BaX_F zvJyUg;O@m?3iompeRRp0(8XqX@eh63O^| zD}gVdTEbOzu(zC5=QUNrg{F*D<_Ac|B?7Zq-P-Fup-VY?kh=NdZ@Qu+LGzXF<+m@Z z2j=bcGRBI=I?r0q6tAfKsP389{M1GS8J}}T<(7#5M(u#_a3ETeae%xaKR>@9Qe+zC z=Ug9p#f9N57+Jqxy%6;Q|CHwFmkg+|#Q@bDuPt=CX9CmK=&t*Ozi zv?PWv&wY2wqO0E5%>#=ZWm++7H}YQ}IfR%?4on|TTOQjgqCOA0Kyxx=v0ToMMUPBs zM2}Ky>`e-gSsD86`D!!DkBMff}&nxH&!ONV(; zu*y?!wsDt?yAd+(^ybac&C~Xt-JZQpoo3GK>4_l6>2l0kzw4G4{o5HIubWIuT8xG0 zu4He&$2xsCOS(j(Q=$gWWzOA>FglXEq zxfhwc%5J1Qq>mExa>#ZJwSDgwZnd@+3?M z8P3X-G44*Yf14r=+TWX)V@_bl?%*I@ad*GXTM=MyX0Tgfl`~9eOve9I9UrWRqB-1r zoyC_&7giFWROd7Xtk#(N?0tSlZ=_GU3lBE=84W<5(wt2|B3D9 z`<#Km$!dVlimOtA@PNJvP!~viWuCgUWA0EnnjDw8Dt+#gAc8@T-Y)^{A-T)*;vC4Te5{Ot=f z2M6o#cYnEN{_X)P;b89y%f|=H^y>>NEDI|rPvtKuHdq$6-%=odO(rEHS64G<`(H(W zCEqI=Tbr5uJ@%fj+U zaV2L56IC-;SRGI^ViK@SYG$6UuuQ*IEArQ?=wGkWuzJ7R|D8QqUPmj_KQx7 z-#(qqKz#kB2_|_nQ!6782TxD~zi8lMWrk&E<^a{iBno00RL}*M<=t=8FsYciIJh~R zn7P1$3jNj-!uIwKpaQIa?HEaC2RFyx*ir=%>TG21;%EeF%LL>ND+;}VqgPy9oz0BwU_H~@HI+Z%aUkC`#Ko4$?28HWfdw?%RNizD7d@Im4P8ID?&C z?2n6Xz!}z)&dZz6x|gGStp<$#u}=qdH59r`Sse*ia4)7qMBiRnQ7V+0)+oc(7u67~ zmB-!*)7lniD7xDhyQBVs#9Hwll$sPP;6fmyxQ5!GUvpB>lpGNQK$Z#1; z$J5^6a#T~W)3dx;_`?#_Gj;X{O!}hkAE6F@*bRagXLmu*dI1^d{&COUFEmZprrmU; zr)Fzi*H!B$pIblG3>ZzpH|_WItwA2^Axa#bv`Aj2H=q(-VJ8?5a|8@g30z8NtB~1v76DRvl~?bJpZq z#So9v;vKK~(Kk5ls*4P^q-q>AN1`4#_J>%4Zq=@~cWH0jhLhx6Q3Gfrh8IG18H88i z=f;d&PZ!uw>qR&sr%);VLL=b_j|ZjVtqjapDPLJX(e}q3Qtp}Vdv(`L!n#lPQk?jA zk+NxblM`%5r{I*x8akD-6qPB>5<`{R^V%ZtX2o@C%-hyPrKL|&8gs}B@8_h5_v!LZd*8N4HZ+pTuH4CF;!XQbOjs#l^A07kwXiY zgK1KxT-#g0iUV5O0#YPrWih+$3^yBZ-z6B}i(cNkrkr~qe5_Q1ny)JFmdNta1NsGT zBOR(!n+C`w5sO`Sjw zPo9}na}sWC0--&-75DY5R1mV*NF;2QCS5=p8w<~cD&I$X;jt^h5oCLM1xqssdII7M z+}sb7hpFeriTp|dbYx|x2in5SNos@wM!xLrZtW#y9~jm346>hMo1E&4R%L;!(;?ya z>@)8%;+sdW>he$(Fzpa;*8xo9esfI4nvb}Q;V!vi3Oe7=XA=DmM1R;C#}U=mhG&S* zy6MR%BQ05L>lMK87x4^KD{TAdBa~y5%AL|F*C=~WvT`X?*C;N+lKDx>J@}|ZAd@zp zA=-VYjb8B>B4GjTt+0tRu)RNz5om%&hV`n@_YzrWQ~lYH`!&?z?-{FL3>R~raM_xf&%09+*8 zr~S(|;q6CVqLOfz4C=@r%B#_7*wn_p6JkqyIfSh2IW-?A&qpTPr&qW|rpdGar@Hw~ zPW=*SEG!& z|4P@ea{Nhz|EF{f>n~Le(y@QiHGe%U@w=}1t1|lMbj@$o|Iy=Cwji|)(&x4yZ7gPH z;$RBWj=$@gU)odUmzMfN*OaRb*`o;~+kMoDfNS2fCu2GFdlzIZiqAO!E+O_#EaXQd zB@CjJ?oSl_d&G`UB?~Pl@b4owlPp@+T-!^$XJ_eOColm)(jX8A^Em+A&wB{ zcVb34>~rQJscq7C^1V>7;_(WtRJ!_uGG)K?Q1EDVpL<={d3`gwXphRjH()yL>jx%s;tgS@YA69b0qP2akJ#BRq zKyQC|OL$uV9=mfjpNsR@vx>NmeF+nF*?RwZ(R9v-fQSDUIyMV!50jx`HUze)d{$an zq(HkUJoc@E33>Od8_5WI&+tq(AG?E_Wg`1noN#{ZhQ8yX(-PD);i*A7eFx8vR$3F8 zPpxsd9|MTTorvunpHuL}#lzQK=+72wC|m5b|!M z&d`pa>wL474J_MsO=5N<)1e?x{7NdKt!Ae!*7J5H*C}Kyhy$#OMt;4(KK)b)W4x{B zL8`07v9H=;#71l#2k{%ZW!%@I_?uxoS<8`$=mPjzEt@whw$xXM~$!c2o>H_n8E0K4Bh3RXT{C9-P@8%pQNRs?6KYq8Ibbd3s{xa}>8z-<#f1F;Dv$D7O zHJ(5QsSe1rd&kJe&C10A%f`mc$i>0M%ni%Q!Nth_4rI=`jy1C7wX zoWo+_=H`ZFk}|Whuylpx=3@V4ui82|t2!E)fXe*M)cm{Wuzt5P#YENq)wpN-*EZ(s zkJohovW$eZ1OV&}000L11H3K)L;+9`kWi2iP*9Li(9lqCVUb~BVPIg<5s~1LvCy%x zvCuIwaS14haPi3SF)@khiODFbXlQA0h!~g|sF^9KX{diy0tO8Y4f_@r4Hg!S8W$6n z`ak@7?E;{@1-FJa1P3Dpyg>m2M*(~71rUMggarHT1^DX=>p-oLt=Rctpj-B_yS!WmMJFH8kIAX`7gunOj&|S-ZHpxqEnec?XAl z2n`F5h>TD8oS2mSB_%Z{H!r`Su&B7CrnauWp|PpC_<92Y0S*EEi!ZP@9-uck z3Irqx3lyrbGPIEs8YyewTXd1Q?CNe9GB%ZS3}fd>SWI&E4T_6jto_E>{~cpN{}g9` zF!ndT76I_!V4xol90ec<_(@Bh(<1ge#0iF?ItYh??d1vhfL)sSr^Hv-&wmF~>i5U~ zvsbm5j%@=F^7e5-@$9JVsW=FC{bkrX1Mr`%_kW)k|G(-(x0zo*u1XGDlbQ-BKpr^x zT=Z&$pM@dgY4)WFJvv?1m%XJ%g=?om8Y=QSkxo(0$b;?XX?7bt)5eCn8O9y?%OOev z)g|;%@42ZhvHIELby+3cBP|1Y5FWix&LSfti#jyE zr0ip}EI6EpxGS_ep3H%;l>LC(o7b{w_ouLjDhg(*w-kd*R|F;PZI?^KHQi(bq*tcg zr1cyG{(CCZQ;XMR@nVJ}oXl&YdiB-Fl?XZ?^>}<+(J+jYQaH-6c+bkCzY7tqgwc)9 zXv$W8xpqM8^D1PCoSSWEuK>U*I(@1;TWG4^Z@}eRVsyN6RoQEOGj&iB0$8Q`yb}E^@|l~bTpvGLtl(Ek zl0Fc9cFD?j-n1UhNLMK1pq^=o+Z059dS|t9LewLT(5Ae~t|IA1?$uk7{qAYR-)&F* z7$gq&BFbFD&D3?O>7xMeNSMI{MV#(6qtrLHcjP%GNNG86B~{Dsyr%}b1n}lb;$1w7 zWt|hqn1AGOfw@PSy6utAS%iXOY~Cf^m$S=qwPYXcj~MrV7AhBspFmZHc6gWUS*r~Uk;)4m2~hzT1^;Qg-olNtzKa!H}LCzS9T zF}KH3_tpJuDhC?V2SC&(ppl!Ir5nFFjQKQa2ib6|C>cQtyudjDE02px!Rb@w&q=`< ztRA4^XywsQKAT=bxC`j8)k!ybPN|o%umo9@Q==plb>jOdbtH;9g@gNS<@P>@%PmqO~ zZ|QcUw+rVnc4uWC)>@%!8qMxOV^>aC99;?QpL|2g|INE6~Nh)aRdWK1BDO7Ms~oMEyXn8%icOMeSJW$Z2_03`=GBe2eOr zL=#f^88zq|OWiOA}h!j^)N-05lQCG*W4;H z+N)1M-S1Ozc8`{ww{^Z$^E(RnLXJBc@^Vn@2;a`l71AT|`HFG};}|M>Q(@$L*my_H zrN#{%!MDClW?O>c+WH?#WL+@w=hNCx7Bqw#D4l}3VoG>5lKa~g=0I5V=h`iUb8*-^ zZtuV%#+Dy}+Rcybz#(f8m(Oj${Rq0_n#1@?3AUoLMIZpI3irnq@N12E5ODlnvxZ1(*daASTW0i$s zKIz8G;G#T5I8<1hrI0!GuFw<(20uavoB^J@Xet5hU}bnJVUub<pI20ZO-7zs6#Vc~Fr-fCv{_+y#=T6HD#zHrSnd$U^YO-dMcgx>PyVutNY`&`}51p6I zdGQ|`9e!5-{1n;&edImg!<&Wrt?c&l#0C!CbKch|^q%0$x>GA$_ttqCQ+Os!m`LM! z(Uj|`H*dNAvcSlEWAeB&8llWLS;HjI&+y6n8r#;M!(d^&9}|}&Z{CB&<`SuPNlY&Q zO=6iEr%T^+Um$V8VCB8G=i_?Mp&16AToQN67$7k_ifUH@x*0>s_e9|4$$0I0@6L>J z{p9FQn(1id;(ol>0Oko4ZW5_o!60BG+t={v!#cKu<{ zVbBTk%((}oI$`Rj5IQPs^5lEzWoA5xpMl*2O?PP0^L0!SKr}ZXuBa1M=yqd9Vd{Z& z=#H#8e_j+f%Be2=7Ozu6FY9^&`RPGmaFG`uhI_Nqs^u|L^TxFBz>}vOf6W=gHd9Wo^(Ht*y4|c!9z>0c; z*))J`gWI&Dv?1aC?$AyyakCmy;dzjLTUpemT70DK(JzQ5ndfQ6CtkR`KX+8LNHHwV zl>{H`OouBZG8)!#tsMKVnn<&7i&)iYHJrRVWhZsV)9tA(CZ# zkDEA?)hm3~p5_&xQ~#njyrVnHbR-K(5D83z@J;_&3I1RHoHl3H#c9^3pJj)Wbs$CH z`UK1X$o`Y+=D(cSUkXa^&%~)+8{GXAJR5igWJflua|oxgLQ{SJ^a>Ew1{8`54ktWD z-z)D(KleWsfhA7e0S5?)C+t2nWciC%js3_MI_#8-5eSal^DP!^T1zBU%UX6A{+yFn zHnBy82J3*ng7vxn-TT)pEP|OVZ#~T)Ve*8vy;kZeZu;G*Yu54(~snqxHE`smr~QBqR$lCxrawzhRy}jwu5dX_ z3ahiMH$-kJ)b*{J*bpB!^hkHM;^f${WtOQRsMmPv9V0=~TH!;L0@l}qn4sGIuRQPP z5_%V}QhUAIQdf%>%WSHdv`ot|=fC8V+td@DZtT+X zgBd&0@kG)G{QGfFA_4zhWqzOgyJh??h`+*E=KS~3^Y8V;QPH1>qXi+|K74ouR8+qL z_H8t*|3y*=^DlhV8whn^UX0@AO?EJw*j^u~()9Dz;xpDg5a3Rf6MEb4QB z_C)+!AI~prMp|XNcl9=L@S!X3$z;%v;U$Eq3LKFLXC9a6N?|m3kE~AeOi^h^aYWRv z43SKZgfRC1)L;Kz=l<*bkqhW2AK_Pk9`Ht^OndQPqyT^KKd0zF(b&Ik{J$$r$8+`~ zKy?11p8Lln_3K;9|G|v?M~B4p`DnU!XseZ-;6s7&d+z|4fvw2vyDh0)l>W$Ys5eDj zL?1k(%PzH-CHdf0-v3~&I<}c&cfkI!yoA)))X=2-^9_u~E%bxt_q{urYct%>(@wHx zYwe%%2c2ALB-9Ss^H$FqZIby^3%WgWR&nA)zeSU)cz}#-fsE3jqlycM$PZ6;7KPh7 zM4cqqOvn6?&KxW88%Ijn){A=kt@v7Vlrg032R3GL@T=N);F9M%FT^blsA(FuroKY~Ju}F{7<&&{;r=Td3}|AH zOv%q_UCm9(kR7ZmllvY}K<#FS+as?Tu z)UJq|&Bi*^_H}6Uuu7L6AuNr|-5q50)@MVHr`%OgdWT==oS2Y&Lnn zENI{9u}M_)z#pMt!+V{rb#g@8Z7!Le7i8qE97xzi^K38c=#>x2w`OR4E||jObxOZT zCC!+9s=N)kR#rgDl0>BtPlGPAds$X$>9)4u#+?Fz1S zc-8%}?n(BAto>Yn)Ig!`{COpMww2x8BTkRKUqWNx3}X<04@4qub%6C`lAfciZUDiS z6RCWXOGU0MU0ta|b6C3V)oF-JHw1X^Hnl4bxFcDWz5Mok6w;Zba4-2<9Xwo&Nb9-l+!ArD*BX^uZ(3B zSR(5W+0U!6ecv{uydf{ytKxI7z~R%ee!-t}{WwZKPH?hiAWYm$ZMRLUW@>leHLk#> z&2&Mq)=OmXNBfT6Y+6;Wr6%53?4qdO1HhTN6&#r+U3&crf{%Xs<~^ii2fP9Sw-e9S zt-xuY^K}qUTs2HlRkz97q&YeNBoE)(F*JyE=@+P<*Y^Z=$3Ka-oZB^q<%eoSG#Gqb zkd>rL*o7w{M~24VZ9?$rn``8O@TLsTWlSize+5`&$d4$JPk{v{5j#TLs#k9v`^p2c zfacHZk_&t zqivO>@zD6;Ye#c!Y@4Q|9-bC9TDo+-!V_W06-LBnx${;*YWozC?x;gMEx7>gID}Hvt<4iaESHN@@oQJu2qtnvSicb zhAIKPxc&;~s*d#A&Mc8l!X#+3wo_c`x1Cw#n`VBj%dc=(|C{}v@0O2$9wauBni=_# z7=~ZHQnsF_wPpYs(S=VwgVj} zI;*zU>dNP)6sPnO$ah=NID_NdC98y>P=*NB^BQU2r;ia69qmr1ZcK2Z0^m4B5*NY7 zTqc|{>3;ZPAU2lYdGy>o+yrk_Vp__>_7P^|uS=T|0)Wg?&5Te`$l#y1_fkjd8>Z;} zai5eM&%b}uBjt^+;*rvG+8Kz&yZekE;Oq>oI#*lFg=pRa%({Mn;6K&5Zaj2!IM?ij z;s5HV+H+*)USf9^eM6G+Hg20neoigi|S3DmEq#nLW!T;Y;Fv)|=SFRp^V|K-0m+@|6n159u@s z)Fb_h#zItImuYW%^)Qcm)@t{{u0}M68a% z#Jx?4kZkQc5Gy0?Dj3HqI!r&=Yx(A)%2tQtxx~U|cGP19K7m`5-$D2K6VDX3M9NZ| z`A~0~DU(U0eQ8kJaUSFz@Mf&PL|nB`Q*H3cJZ{-2190NesjfppCXZ+|#6%7!ZAP_EM6p{h=Z} zCmO%V`xrPpsYg*6_$2AJ2{($mCg(9@+iy>XO8Fy{Ey-^QdQa|G*kuB?_q9`%?9E9J zw?yV*bi`?bD`pgmoqQg7sqT$R&ma;Ge5Kb7Q10ye95|x6d#tCt^sVLbODdnIlw*+Q zF-DbAeIP+Yso{;rN1xB{CRy`{?AL$|KhuTu;k2M9halke7tsmVtOo#9AYOk zcFwreOr?ny{ng`0h_OhW5?hd@E;6qYBrct>tDbtiyB_OZ8AOCs-~|piITyY^`;r}z zYD<8;U7@}_=qP+#*Y`Z|AZKVH%O-ToQpLj6{AKq_E5}9^6H`h`#D#+o{R-AEVcF6} zx_W*UMkZF~TzZPMSt~Blt=>sg0d-)};vOjb-snL@O!5~teOxHI^lvppqjoeM$fDK> z6BURcb(il#hrf-jD_VGlT2`vCYK{=dGM&eI5?_(4G8)U8Q*KBsVpv+N|L~((oN?ldj(26Tt_9)MDT3CId~t)O$$DOsx6RWI#%#<| zZG$+z{rqpXo&6K@EAJFlr`$wM8|JyFhEXHP0;_re4g4ZWfUF(yuDzo2nTbMKn62ii z>yVkJA9KVEgHce&3wVu$KaO;=&V%^tS6l78ZVKavr^g#Sw-#$VpaIAp@aax6`w8>9Vll|DP!8X+cNf*#N(R4*+SssH?Yh{GD6bQK4*R` z(eK_{uxe~XzWPZTxB_IRNovu1UOlV%v7%W2)Nr|B-s6pr*yj2b)>UKo(?*7*()`I) zirpy#Xu{yYi3!F2azWsvB)@T@&ScT>QNAN_Gq&G-slz2IhGp61D&G}K9izDP$AE=} zq5nuxxAR8tE5JI6lnrX&^f8tP|F)z7*X{J{aT2Bnms~DAaYTCHS)d$jou>Q-=v?(_ zK1WA62e($VEBfGsJfQZ)C_MNifSF~f`EyTK8u6n2ZB1S_41_1U_rAC0(3P?}_GRE{2jWb2)p=G=sn4=suu8J>bcOJ~iY6Rr zB4Q`_L7Sx@%IyrMo7i>Im%^RWY=0iLhA-?|`A#!HS-jI=sPfyf$0Xz09`Fu&;sQZa z8>D=KD}1Ro){t!6Z*Gv6r1{q=Wof3*?0Y}fx!MM1cFZQ`EFZPZwQdp9^KorT6=pIu zTDjM@`8z2GGPH7WLl=+h2j_d*p>w#e`MfZ0FNt41A^9{vVu{;*QCga4k)G3X2sJb zZotJ{8)YPFeb#mRE1>-4qFueSyv&cmY$Iff;mJ~PgP^U>%5|h^Ub$mdV3Ok%fHN53 zxrg`BWoc%f!Rf0FAzfG(Ze=Ke*>v3_H$$OYit4ed#6sK`RF+IcpRI!|)QU6li=;p+ zoBRyP?uJJ1q;x>cAzneFmP~qaB8HSZbTL)tmBdBuiNm*7z}`0M93%hP-O^LrxK^r* zVE7Bg0gqiwMv+Z|?$Rhm;_Y%vw3@vVIHSxS_qdbp$@P3By;~O4dqukq1aPIuO|7!y znZXW;bzwB$?--{0fOq6KmH6}5IvFn7?XyggX=%;cnv2X}R9|lhXg`Q^YqKckcS0Jq z>Mf05@V5@Mkm`6sYqrj~O8Zjy+8fhZLFJe>%oqr=An$=&Zkzn9M9GQFD??ZYtvzS| zGk%Nz(Ea%LHHX^LKYT4Y{(vRtJyKpx<2dYwPa-OAwGNk^FNQ>d@^Bsbx}P+kx}nbY`L zu1LlXZfIpHrEp0{R~ny-n{)auUcDJQ7dbB{OGyF9^RvjUTm|HV9;VVBv+|Y(RiRrg zI96y3ns0Umt{2JBexoz^uqv}DUdHtEt3wBLxdc+Ca;o4X@QS|IGNV2$0 zwQ|2;#{zdCN`2NHKq=AUDeNfbj5(> z1?mlZFCV(55lFM+wML7)0yHD%WT!sam_R*-IksUL3xi{K@wryCi*|3y6Dl#ziBFpM z=&g@-53Ze!dLDba3!mboy*(MJCJ`!!ES~KQY4@&Z^^t|>u)(3 zt{X1SsaZ#kG1m;b9;&f`nn_MkJ_0!5t(jnjlEIZRsBxm+Q&?L z?e!N_(G~xPy|)gFYsuD!8%Tl#3BjEN5AF^L1PBlyNO0%`2@b)XCXnE+!QE-RX&izR zf_vlc4vjZopL6ZZ^W6D;cjnGqndkn|yREAB-nDD*s44L!rLhHpY_Z> zEor+wqdUv&xwZ1^dhQrzLBbfFPV`QUrF~$_m`Q|&;z z*}yDJ^ThM!!QGBTMek)BhVy!uo6%IXt8!Ou(c7iiS#hf@4y{fY6lQeH4&za%{=ugT zE>H9yuJ$E#MhCks!pv?sXS}X_23mieK+{qx!>6}XT}ya&MRF%IOp&|v)PH!Q>%tPL zRNwV99FC|_JY%uAbFXzJFUxT^&2l3b6)nmNkE?#*kQEeVEVMh0a4w#LYDwaIDVd3P zmRrDChNblP0JK{o9th`kHA90pQS^ztB6`PIHAvF)Q2+L&dUuW&M_vO-;`5Dnn(|(g z3rpt@HktVHC>A#_?*UO+2ea#!)EW8O^RPKLAJN@AmmO(rl?S@kDC{dzZrE2pE`$a} zM#}V63buVjV+OULi8oTu8hC4#gNEp)B*E^b9)m?hnUF}eX2o}0&vd34CFciU2%n20 zy`1Ur9ho$L1!~RbQX<5CYmpuf;Yc(acq&Ij?m;W18Tq#cW|d0)c=?ca-fGUgE3HNKen9qI4fnpq+NvOE4Yt?vQ`Q%jI?J z?i-O8UV3#XleF3)MkH-dpzd`uCkH)3cdUlO&ijHL60{i_Ey(QJiPP)?JgJILNj?w_ zqRjhwtB6|-KA&_JDqC*|Rc%%*a*Hud^KYG~j#ZV&@>p3DU+;LFN_NUhBS;xOcRPJi zY11`i>sT^jxT$vOnpFd4pO~7>3*d1$c!h=~n(nEQPV70r+D^?iy9qPsW{+AU zbn3658>b{+jk!J$$_f!JniK*KgcD1lN?yddNUWq@hwu5V$-6tWulY-CYhUF$u@4PI zdbrFZDKcLWQV|KQDyO2}>bm1&9n?4`t@T>b`5f(1kN4vq_8orNH83o!-KGiYWO^qL zL+}cZ;p>9fI+5XL-1*t+$m4P{&yv6pjC6NhX5RH@4zJyXMdhs1-HKKxAf$(eC!#ks zjrM_QpFZrLTd$oF$^(yY$L=1~AeuqHc72{zwM1rKMOjKY%M+Q66Z0o%pCGdU>qX3< zfj>jU_tyu`HmqiY%NXe>HXQaNiwc<)I(0inW>7|CmV-?=cT8mU$Hr{&x3jd)tJL(&y^Rv)(gxTOm-K{AWVhB4vrm=PCHu6#9(O{O14gJtMPxoUk z%}um&%g%Dob9yJrZAGdAdKMHIgF&BKQD^SV)>jFx=r@F>n_g<<49YCEv5o=a>8QLu(5u0Vn z!Z4Z2&%6?;k<1jmWWm(}OjZ^+!5te?o-TVVVf%ier=qq|NSAfS#tHb)62aGUq?GW@ z-pY|C#qLq5ok6ZewwfZJ*&0kC-T!2Wh;N>^-9yXY>zRAWr87iaTB|M@6S!a1Sxjux zSW!^;03{5!K1+0_toGIp@ru(~;M(pgT~WqUvt&5~gUYUJfvjqTDPUK=BKd?${*Wpy z4YhWRW`6e6cnWQN;_)uh1MB+cC=i|)NZ;Bp!Dd|77-!f|laL!_@KT7)eYN1H&_+Jb z29#4zZxeJv5vq04x@>nU7o%#}?7fusxE*I@Ku)JNQLARmjt+O2pcA)kA6cO zf);;1H^s53&F3X=WE^}W!iMt>q#LM5BdMx3-_CxJ|Mg8w(0uH#uys9jGW0rrA~jd7 zmlHL}$>Fa`>-xeH=)ie#4}hy{>}=#+JiiBk?g6I!%D!0t3RX7zmmt{|s^wp~m%sMt z{x0?Ym5yUR>AZOBCAoZCh)VuH_{2nZ{&;YIWY7I6m+sv|1!O_KCQ)aigi1T{4x(^} z$Hqdv&l{IlC;+(p4=Cy+xi^|xLe997!j39FhbY;)%|s|F(x|>qO}5ZOt|(QcCm^%v zW45ZclXB)WL|RNST&zRP*;QSuOd&B2nw2dE3F`f;%wsl-^)qgc-3f3XN^i7I5k8N} zC+S@-Ti~{?TO@hiJj()lZg=_FBOeLEm2OO2K~Gx6d%D{?^Bpl$ojlfi zdJh=C3dwQVZxs+YYuhy_2tJ>ukU47Y*ygvxWh}R+{vNB>YYU_LN*xAxHbqNG>3UxN zBs=RBeVh|?8+1x_=y`=ef}H7^sxCwMrpQk&QppUz_HqQ-E}o6n(Yp`m5< zqQ<^EJ|h5{vzRUKlGd=(f#UP#xa;Iy?@snQHkc}V9@Qzlh*O)^5*<+K(e?77Y#q5} zUp~$5007zC5ZalZo>UGj9Fb}~MRbY|}-rT^S04XM}X z?y;Uq9+B}|%{4mVjmoT~{|3No!;OReby1n${GxwZWJY~@R(yYtc*OfkpY~Sim97tY z-0ZGPBDG%A=hh^~2_{Rtrp1@SU~?ITTx0f>*L^i9a&m;(gD|K6UW`>D~jP)mGnnOTQkT$<=262#wB9>(=CMJ!h&o)UHkT4y#lWAIz_KSzg7x zZX16Gf3)Pe(NH2^o;7wBDmZqyQN=B$6%}g19bk*G8iP(pI4}5Cz@@switxyQZ7pxE z!6fD?des+2y5{;=UG3`&jSU4v^Vz9^*c9*;<7j1w7>~*L^N`0~F_VgpPE7czdsIHk z_3*qgYj&ISa7It|R~*r0(PU&|^-ugn%2cS&hb_64Tno2PL7nT=tS&)wJ)d^^8I>P1 z8)|H3=GBuZF@CqrYHV!?*=O*Cj4g;qM=nb;v+s@;r&Gr<=Ej2=z_(Kwc1$}swJpG` z(2}j%DUXEG$%dFdPXa~JSL;u>FzFu+(R;J-i3&jdruIf&!s1~y**a}3Hdx24=wYeU z-pxA$$nop*Y@*Dt{qmKFKE~``l~-3aG`yayXh}jTRn1V251)ddU@n6#vDSKBC$S9U zd3Bz$AUs&-9`M5(-V$=hY2PP@YV}6+j=L{5tE0`t7kF1&RPbbBpeSI|> zJHDEn{wcLXn5uFZQer_Dxn z#KB~jlr1Du0mNJDDzV@#|ESv7Zq4f+)`K#)MKp=?R!DW`Hn)|ewHTOarpJv5T$(h;15}E`7RgD z1gQOGfm)L%#j+h&hVfm3vMU<0pEvp64Xn8DHXux#51yFaeRTMn1;dJ$(J*bSlv{nw#1Ytf9Ub z5khaXc!zmWxx5>--t)OC8aopn7VfwV5U>%CS)90s^dOy0&_cdidwCnGxCB*$897R; z&6f>&d}STwgIcXqA-mcN%ATwiSFMLW<->_g#@_=w3ZIXgw6y3sReqO#hMzc}dLm2{ z|8{}0Dne03P+Jve>CybRMq=yZQ|#NOTi zJl!TdLc2BgJ@rKd9h~g9_&;1?bOs2N6R`s0fXye)bKKN zRZlF~z0y`CZwHs>`Pq3wLAqsC_4(^21B27z@&LHyHRI^m^$01!wg7%^_mozM`x0%9 z9a)&9*dB81?k_-_FInzfV-sKBnzb=!)Mx9wo^&m%56SE)@8`}F2iW&M9 z3`7r`k1Eq4cQ>y1BS+26fb}Mi) ziR_g5oS=~B7nt~>id^bF%Jv3)=|oWSZ`~Qx_qty1b>IP3?u`4Ec`_C6CVvg3@~bdS1CMTyS%EWX=Q4D+kqO*zpN2+VN4PO43R zFbb{#GwyatFo(+3P0$g{>VZ?{@bPcT*0^AJtGCA=TS)rz2TJ=_ybY;X6~|28_)J#R zY`A_Vdti>iMC<2{obM|=otJ4yEz+q|w2vP&Fd$M)sWa>!>&Ocw(G5;YrJ}wP2Nj6= zJUgBWXtJ>?-D*giyB3dx8P$!IQ_ttqG=|B(4oN*hp`+s6|Cu)C)jHa`X?JO4Y}+~} zoN)Qk-m`E^ad}=1sb4U0JM`kVeK;u0tCwCqrVenik==O2nCP6l1N9*~7W0_sPDpni zsIRheFhYMgobb%|Rx-gOjj1P{>L~G+E}0|6UZNyV7t&!#lKm*CK1l(wukC;0zgWgf zr_y|s=+8IwL?y?~Ps#4xxb;FijG-z91xteG0O%)+jyAUV&DC|9u3-a_cokLNVIwek zs4{v!MD(NJ(htt(RCPn}Gdl4m?jIl@nZMs2m&Sl@Ao?zi7Wm{#X?w=S~OsNDoZJsloLC(di#Y1|n!J z1QT@Onb+7OmTHDNzb1!7#FV)!{Y(N5)8hnLx9==#uk=Y&64wqdrzbDO_!4#tuv5ot9|NbyQy{58l(<@a%?SwkipC zoV6~kEnQU0D(iB!9VT0nx1BIGS{s{ZL84jW&Cpm5WBOh~N&7I~L1?IT{0M=0%#a?q zwD|M~eVZlkoVJPurtEWR?5^1;E-vozNXzHt0(TNVr+56s#S)++k{v6W0CGz!%;hUD z1M74a6PhhaW5*|PWy@qKLW7bsrTsK0dV1#m8pl2j4TL;%eO3>oCdy2sbBwB}ie(A$ z!#1zYiZb3Gu}?*+cb`~YFt^Jz+tBUtka?}6VbI@vpF znU(@tiR#_^mKXSnlqX3TSHjqshueo8N+%_UQ~hJtv#Q%5&P&kcL-nIF^K->m$I@Au zilGoEFR;Gmo25gVsF1k9z_~?U( zt;*|{Qfkok35*J)pcNEwqt)r-v~Jns;NhqYn9+9rB{{@2Oly^siXSk$-`Rzk9&x_0saq@s3XcjVlJq+ks&*g!G9qV3_lo09;}7-ZgPAawM_GvJ5`Re4xu+1 z>O%$uv~aPFw!YpNa1Tf@&mz2&^2ISz)oqv{Uw3dhCyG*)A&P4M4g6U;4K%Pgb+1+L z!%oAL4!gl$C{cY+Ce+w96EY>B*9oiFeC$-2K*~A#23zGR5OjL|lTdHpOtZpmL)5C+flwjI`= z+h7t+dru^o0k8d%(OtDw@}7ybE`P7fHcN(31N*;=gZJ<4_kTGrFCEEaqBgrj4xuw{ ztrvg%_LAtg(?!C7Pj?#Po5M5J#r7etlqd&QdB?6_TbC)v*z-gW!kWZZndyvw`hB&J zPH$SHj_;M-Ck#P?&DF3fglMm)hOe1IN-5fjk&$crHQApPy$897BW&uV1I%(knjmms z9MeOmv&z}8Im%UWCVMv-;$3!Z6$5Pc2@y}oWogCy8w zj6 zCIFc`WA=<5&8?vpl!IlKK!BNDACzO7AbysE?3kZqhChXpG~SHlZ?MM;>sR4&FEkvY zTfUoiQ(2y9K9KlPq*%B;MSI4=ie&W;*JiYXNylVGF1{{BiI}%MZ6x41vkKOsmcA~$ zWi2<*ioGRTTx&T^W2d`wu0k|Lk~SR;mYWrB*Yd)QHq|18ZHP={3D^QLq*3LV#*Y^Y zEj0znKV>-@d-#c_xRbNI6Z%k!i_uF@?TzDU)^W2dI)tX}7IQaIE=CH)DD3n(6WIXx zM0}QrU!Ee6w-<|jyS^SB+DKh0-^Vw5kqRp3?67Ay2JH?ZP<9OIjut!a0gux-7Pak& z6kT0E;_OoBu)}edjs%&-U)>3pst~!MdV)xGwyBBq(v-!eMn!ku?GV2r@V~f538PF$ zSJ+1|y8TqaGjwxUV8`pY7`h9!dNBu_4$f0Q#eT%(%N->yUkXBT3w(EMTfQ=V{&-CU z0nX!x#0qPVN4+|U&D4+Z-+f)~GNp(h84eQcBfg$Jt}Vb@;e6;8*wJb#Qkz1r=rsGx zZJtqw;wCF9I>Q!XrF-eR0wz&Rc{g5@5Hd=Yuc?z0oin8Lvs4F!Z_uRclCyLesJflJ zS9|SJ=?>PL)0T03kx{+Zy`4e^YYx5#kZ(09<|uIlucRPpjax;_vmKTPu$CmGG*yv& zYO%ZUm4CYX=G3FSJ|xGjEErMC7t#ov(rjHycU%DmlE8q0Ui{uxl!+uFnX_z)Y<9J> zl8qYgg@plYC%jWstaP1*D94;R`IiziPK$LR#w;(YjOo$*L|pf^Ztb%%kf3hXd9&9bEFejEwM8LG?F9Y&Sl=L* z#L?NHw}r4Sq8#b|OKX~$s=|`_Rq);U?ba#5%`OthL8y;I^ZQ@aMj&sH$Y6Hpmz)izi>cF` zUn+;?n>ypFpZUBx5!VPO_us1RiiB`Hiu|6j_-`%Bw2l1U*2wSGN_Uv+$R&PnOYFC5 z&S^3vXmY=|CHH%^>cZ?L3sj6=+7R8MPs%5v#{9PbHG%cNCg%K)9A|x~8~d&yRypFw zhNA^V5;5CtR{bVTaB+>Ay^4MQWVhe0h+j2PL%bsvN zz$|3*PSJ;EFt4x-G!9+9-9il~R8>PaUbf=8e%LjbRsh@4%^rX(*S$mNYv269T-yw> zF1K+m-sUzmUsV}z87<*cL{B7)j^T2lz6S*0sEx9-an{smbAB9y1evgJsIbb$WNim* zVSxKMM;8|5tH;mvyk(C$M?dl?Zm{8BJd)n=^wfgL#h)1Vc{Z1x1Nm+ar?O&aZh!5A zI-aJfy!RA7yKO&Ff(xzPt;k|ZI$?hnHRDe+UG5JJ72+^!tgMPyLaZ4m*7VKN0^BZy zz>1IiO^;hDMfIgR>ZCVbp=*MbKI}g0^Zj&tI*wHfCYoCO>2Y$W}J$^D#Yh z6XIB`kzb!(b^{#Pz4BhKJwQGzyT#%Dp2ikp7taWP2ti}G9DXXSQGbWYNheoJesjj) z_hc85#>;Reji#`N<)j`6t&$4w8c@}i3Qvsjc|$;{kc^C>uZfPkYyB@{UY3&9B# zR%uBTpCUa3t(T^BK&AB5RHNnUawA^5iAg{K#V{6t@oCv}C`5i4glQg?TUj&G_t^jq zwLd}M#AU$YT?uo$g?K`S2TPvwozo}CMkI08GMIRqe$1L&S}=(|SC%qy=`*I#<}}vN zz;@_~;UcUlVYoS_++UyvS7k9$?qX;Ri@oMqMvHd zt#0Iytfpyb=vDI*}g?@ul*EuLB= z-vd-41_kj$lNg>0Q;@aa)(c&$qX(4V10eKOcF(ZnHu?4$pCf4qt&KO3`W&F1!KKk; zFGrNEjfsQtxOR3`<>2}=-=RW&u~7@x>r6kmH-{Fa8q>Dekiw2v7^YuIkA1#GE>R*= z2$`JsN&!VAd)RWA-Fc)=W-Z@@>bjI5)=1 z$eH!~t(ru;T_{c8^q^B=cInoSvs>5b84cxP?n5xj$QMOmpmc3c>D7!fr5OXPKPA7yuIylX&OT9 z<&f%V_152l!H$~$2XI8$zkw#U{$1LA;eqhCVg+V2o{*LgVMt=Puma7BU(*C_khOhWU+sGV|z&c;v$;n0;DeY`&Py`N5=4k4sp0+{!iPA zCo}heQb`4<(rXP;)evW{zt!aUH*e=38>_+Z#fjARu(GPH1zPCYam6s0&XEAplgPFW zi&o1C4Bgz>I_*nOdKIcuvv0HHmpnEj+ikV5I?S^K)y-?y9MI0_=d`nb5=1&YvvprB$boPK}t2Vd1 z)1bUwNpa?gF1PeSJxVAjE(k8mYKYy32Ghke-v)K2^5T8=#5xsM=>pmwQHL+LR$hT- z#`*sFkHV=X2UcZlMu#MSyDgk$Fej_v})WhF<>DV1(-oiM+PiIUtA5q8{anP;x%p^p% z&!FwIT$v=6Sr9VbWU#Gjag83pUh}^%KSCvwRDWcOCC9oCB%zMhsD=5 zWAwns^IIeiyrsn)J`+}42x56ff<`Khm13aV&Y0@)LQ(mSAr+*#di*)Qys=nH2q2^} z#-LvF%7GM@#|NU-Wyl2?zZEvkG;a_ZttoMbZFOHLIUKT(4z4_Ugt>&J50({pa6Z1e zl^s&?pS=(N!bR>M@k#$%KmTJtY5ubV;?LFp%Lj@8AI?)H?cN3R5c;KB9{DrW+SX;9 zNCXIoxI;=Z?Eq0gy%L*!q~uJs@KWxy}XMd04mL+|8Vn^W6E% z{kXH*n!Z(EBAYkzrY4Oad<+Tuz}X_l|H})BKWq8oZs(Z4raf~7+g{DHZplVJUf2XK2S;{Qi=s)rHQ1x8@er{p~@yK6mLcfX$7P^(_1->0! zoo78c@Y%DP{|-lONgr*Z$-k8tp%r<{d>s}+m+~$iO{iD6+wI+(Zt<%D*7-v4O!3!` zcotf={jT=_w4nnP^$l^A4)Xk{kL1m{a3vo1=+eq~Hc9fXXa!N09bDEOykL*K_@NF1 z1sfl}x@5A~E^59+VY&8x;*aEe9$;(r|5D^;DiY3(i%U+FE^9i1aMf(e;_}!mY84|| zRgpfUoFObH^U*g&aCCqy@<7|K2)Er>P6F#Qt z2zPxs++F0xzJMRe|J-4S*o~sDM;{lnjHjiy1rl)m(^E0`=_?V^c@<~6M@@3-mn? z5gX{tyHgL|TV8+flV_|oL(?4j_TOqNux$O%I`Er0;NgCWot^s~ps~b4M~@{FR&_wn zyd8`DEkB00S>waUS4dBdkrn7DbP;Ju_SPOpLAUyb~2V zhXk6AbaT`fEW2c^b@A_h<0o=e80CKX664s0EK?vt1Xz3G8DazY#}1-tc`ku)-CQny zTyM0lm`yaLiI^K{pIwCUx(8AosxMM?afXUp~Av4__nTq~#-o<%(y^Rv10x z*1#fneopL3Z`q!4&-Z1G+VLTZ2+_&JPCKma2HcFS#cd!gVY@IluN3k!dxbqbyvLk| z)nyeTuy1vaXnm=>(1Rmm>87U=s(H*2TcBTEO5$q&a-R&vuiE!bFP+%6=6=r?e$hkX zU6@t?n4!`CZJirT-ZWgG(4kmox_E8%OicC8d-5K@wGG-;kH~J2JCY10=nT#jh!=#H z6eL#!s9_l&9uCeoIS;b%w?1$Sd|hARuQnE@;)5`#W*g~^5qR0=Y?Qecksm)yxlU9~ z62R~7?5+4#@$I5TA6ufTd(jOf@-TH1ow{?g*773I3w;HMKkW^DGe&NuhS2?aD)+?Y z%wSKDCf{NnCm$*t!kRVOM7BburP(}YUDFr7AH}#%ZyF>$DDlYw0N+fXQ0Yvkp77%L zsr8u8(VgSLBqY|tF37^p^%D}uVa?M1nVkm-8?dMR!1>GmloGGI;qf7+;SY1Oz`i6x z5>e6wy6GpPYH_P1p9V!PcSzm4({yzDjgyi7$B4GOjic2a;R%q?oKIb2 zUDK#sTF~4+SCeM#xGQ(8yoFOFJi!pvqMqqHOum|GQ*JeGh@^9i5)enq#ZH#1)g0&N zpno$PQS5!ix~5!3!v0E%CxU21-w6%;9fo_DpK>l%;C9NF*}NBz2c* zbS9`2TJk)8diaYz0qG7g)t41(i*o zMiyK)<=3|{FKJ=(o(nx>f_uEMCiUXo0Xw3*5iY4OMt+hBLgUx~LQhw*n@PfyA`7M* zi5!8BrJaxSZmjZ>o(5VngtgEN(-Q#+&dV*g4y_0(acmLsbj<}ZV|#J^h?&($mF^}) z2rHPCmFAgRL5=H-({Entq@?j%iDNGW{se59?i9>~!ts0%6L9qEoDyNS3sl~QR_y3{ zL-tFE{Z{znF-e8!=t3?xTFOWGsW_F6T#`f=W_vzTm6}(J`W9fJZ}uqHmxryCvT787}gUwP|>CHRBI!ajzoPC|)g7ks64}dM2gx`*HZz^2T_gXq+tu8{P zW2ycYiFm;=QQ0jLF^=JaRBbD-nRV9_Fe4L1a*6vd948Bok;J6UTUM5o z6=3u|026hg0B(55I&^Y*%Da9Kc*Hx^B3{z5m36D%-+u(X!eUK4Mv}(NMibIW$8CKC zdsccMurFUNJ?(H~P^;RQ{qUZwPZ++1S%!;4pne?Lo`Iw5rXw?cZ7|T*0?~O-MmEdx z3|o%0cgXtA3aR5e>?NN$YaX?IeerewT+UB3M)bR_QfV%A@m{fF-;*R6S7%$7^(Dh@W$ahde7u!6n3v{CDBsCl7=_Cc$qnNTR_qW` zK@P8>*GL0Hc4P#kt9>@)H`&iUwK?`2lF{V?-@1OQ_0Yc2exaAbZ^@XfY-)wrH+jm> zjvwr)>?cVrV?m*>$G#E}LGML&3$ga1MLLSWh$E!ng`V~`p_`)m z*sc9)v&TA}0po>oi>J=*#B&h0psz1wD!}oq5V<~rT4mrhF(5}&K_DNymrncSh3Z21 zsBV8F{pv6MN4pt$ZVw6L*kXRyYT3}pT`yVKzk?(BJ@chyO|ObCJGv?yDGB;pwkrUgksH_O@2t8P-mkhf$E&J{z5e1$P@7IN<2YwusMG)z#Z4jnRlG-q;tctM*T!b9G*u56y|+lZV=z97x)mk&8skXdEW zU&$kLf#wBw%L|c`?f>@qe=sueAKME1J9Ye@%eMO`P)1R~=QDuEi^cv6zVz7{8-m&Q zfW_yL+|4A2D?-3e7KE_}=iLeODa8orFdAuQ|6hs!>yQ5%AAk04_}2xgrF-~R>qT#A ze@99p6IBDYOD4u|5YPXquRl#7@keOtzXw$Pd!0qmACfR7C(eZ;4ez_S36cNHGxGQ9 z@V~U(|DD5RaafG5%&Huva;yxesgzKk2cMMehiK#jJj=7zAezS?{H1FW+uC403)I#>A>lkU~Y2^Q`Q#Np!vEcz@XwI!OH-^!WIS zO!AwA0m1tKe6|MDlh=Bm;Ly*F)nR5-j@_)In$!KnfzCFrC32?Jl^8dSCFF+-Z#D#X zUY=c#6MGEiASK9 z@?u3`9@gHjAcLfCm1eW8M6HJMAThlMu}b!=)APC9#O!^hR~kNOU$zzCEIGCR@!KV7_ll||5@6}f)1K1drC87>eGxBFT6i3ekd+Q@a!>Nbc9-mb`7Oo5VI zO98HWSfr!%F)MZ5L*D_*OUWPC>Gj1H61IuOAme!hIc#XuY;Bk9=ThnY7u>OZnE7l!1NWUc`7}9Jd4vE*jvO-6OV+?or=+QCVP3<1v@K=jQ1Yv&iC7q`RMr7tES?r zP{+UD<9vFvr-BrR{`&0%+eAKg*rwZ2H(ea5F0k1Ngg>pn2aJFXem(7CkB5fO6(z%d zWPSET=6oB@D6~eP=1DpW-kA#?>rmTUA*v&Z2&fMm+FeRc1bW^=*TbgjLsdp=g zw%IUWYKw1wO4rvm=jqtPzpx7iON1{6933}X$wD5aD9z2;ieA_t*sgDGCZ~cv2r8~p zSiR|l?pu92?ZN2dK})2?>)@L!#Wa{c>2;dj9)09DxFM4k@>-4Yxh$2`l7k$CVI#xS zB$|IeudCrFFIfWP%hhoc$8oJ9H>1&&pB+E&=R4?mD7F_(LNu0&e*7pGI3_xufFsfO zu1^Pob753{j}x{~wr5XrQWl`+W4E2Pt>;s>LHkYyYA1X#V@l2Gf)8?J&?-LQVm`qA z>{fiNGq2Ob5jY=kO*GR(CJ%63{*vPj{mChr1UHyj+@PwT9RfR% zXVvkz`QPv&WS`~3Fq<;Y8>_tL>o$dE$6%>xDJKt$)}|V~_rv;$&hxrzN_mR--hRD9 zA>!{2E}mtxam)uwF?oTbxd1E`LDovQ%-%xK#7foTTEIbif6`-y~0~^5GGcTp)Ul{tlI8Y-jQfX*%n(DXuS-V_mJ7_|cAx6f9kE4x64|88$8k+!eLmy8>N#EZ zVI`Y2gt}wr&x4J)69z|Juvek^R_e<=U({|C5<9Q=^Y#bBZErqSR|n@N!(ZLfp?w{C z*pmJA%;p}T8+-;m&+dfBOkwh_RWDv;|UMC*!4zZ z=;;dHrKS%$GTu(R!#GFQGR}9m{%sN=xW8HO_W1f;ZEMEWJ)pxQLPgIV1l-(mNS8b^ zgA0bPjChIT+}+4q5w3{0Sm#!)Ej^DwAFbdJ<1N=S)Pw17CFcsd3P0&!$PGDJEt{ZY zIx6=%CQd7zcRTGQkuTBT?zhWaX`)%f=hB~-cvv4TSIAipVedybwl zAyCmt2ZaiR9Xe8`jvh20Xsusn2yY{3CY>pSInM5w-ZelXpKbWf%#%<#w0%%x^e^cv zmiV6h{>JhR&!pe{uVOAdmaqs6anUKTRbZFV(DL??)-19&B&#!L;Oq-Pm@AFoFJzVi zGgq61^RdgJ{Tl=lwAs$Tc@MC=EAAh-;qXG1zG6wM+a#M$btw?+2W2dc-ar^cXIv#* z$ItrjUTp4N=fzLNcMG~}ar4fRtv8M$xTjoVa65Z^@VXD*NQYj1G~wV=qA1j4Ovp;=F6RP0zgf{vk$KD@E{-pKe z_l{U0tpbrnKZ-e$1kyaIb32)9+(;GV$G1Bjx|){o&q0%}qVK z-F`l#K5Th8nJ1#jEM6=Ehl@5Fve(304%7*4q#{tSuX&-Zgp(Wb74?;m(*(Xz;VAn>~{&tpB;#7`b(=0byb>vB-Xnn3<~wt}Wex$*SDxr$_Gh$E$`4}7Eh5%QtIn#ofLX6Jl0ac*v!s4!Z7 zm>sktR||E2FM6UushYPX(hVkyRTzal-s(W=_gJ6!P7m^Ao<`We#fH7mD{%*Nm_i!@ z-f%oOijjF9Z}M^ciTk7M|5W-JtUs8G_5Wr?W}^N})*_vWf8*~0l7Gw464@@nH6g|f z^;h6B+I|V*7yJ;m94PKCkpru7Di2O)9y`cODo0E*(AT&s)}x#QjO~U$cxsWzIB2vj z7uPE|jX5kzznMr?liySFbY$OOyU@aEuvoLuUnTn_ELl`SE}L_ghddaLO#X6$MUONw5DFLmVDJy zeO9(X4vuPCacLUSD9?=w=Ik~nF1M7uEXiQm=)m#|Kc<{tV|U)yY6 zIvg1kavuxy^kjS3D&`F`ndUHyMS)M*)B5UaMy)gJgnw1)8?aKIuPG&OZXvsLXys}_ zBYy9L1^%y~jf10jBQ9+kN&g654WM?73)}Uh@4tHJlQ`s=5cdF0aY7xG$%0VbF{xoN z8&3Ox2@^s2_hUI`m!DzXJ3Uk$5#E+xC7!?GKur90AqExQ`^1O6(hEMP@cYY1Kyed9 zC>9C48%z@}6l&_@-L#Td_NToulk=L6oi2tk?5t_)zETElG&VX94G-uK5SIE*O!C(| zi&~kJ69!Ot1&uH!jpGWT%9G-zRjOGaUL515m?t#2G#0~j^IfDLu0?0Btu4Q5TZ`2m zS4TZ4DX|pk+!g>A8Z5pItu$#!$}`p91XPMSSSqm^Oq_j<=1bE=bTO%u-$EVcgap1ViPd(a71rBi1@6CC0f9TaKSsWxpH_X5|5~5$FZW+N+(g zqp{ZNZfNmioOIw!%M??5^-ZH=n5R({bKZwDDvBE0atfY?sP}P8exf0>vE9^+@i`V^ zGNp}jY2V887#z6lPwjh%zR7Tji*`t`A2kO=7D$UNu#e?^1?9mk65Sz9AAC+9*+V}s z`EqaTBazV`3wP3a$Hiof#k*4+ovzevc z`xE=!0#{I;n()ZCl}toxAuPyr4@d^ZfALH6pOqI&WdDr{^YY2>T#obWD|+$i+Sfg_l#}(Bkf(nS9%Md0+)O zR&M^Fw?d&~S({gOb|*plRtxLxGzR_qA6FGT7}QtAt*8=ITj_#T6C0BQ3%fdWZ#tho zApOv}>A%H_T){5Caub}=KF4{FD3 z#rO+DQwqyCB}TtEl?-TT!$jh&l^7M01fWMHk8W`|yBqrz4@qVRKDt}D;=#Qe+!LzZ zgX=gj`WWiya=aEG2N_41O%%Juprx1hfE9D(dhy}XqJjE702OJG5J<<^NbXu;B8@Ot zu^}Zt$7PiO!O+qfZQbbsu~YW0mA3aX9Zz?1{ccg~^wVGV@b#U8>9mi|e|b=~gwr4I zCJF{jskeBtQR#2etT8>0V|4A>)-7<4Ny57mS zd?I<7Y%AZ|bF6Yk>E!ww4m%0SAn&^AH<0d0Ow<(QnwO>*xCbnP#+hO*`?{D3CU zKK?x8kM$-0wC~j4P#5&YX-$IuUzb@0_Kb#66^KNF{K;U;K@gJodpoP#V$j?wQIDXU zm=gWJ_BFEqfW_$*Q!-rd#|;g=V855{M&&7e-Co-f6e!QPL};k@(fEvUPnWg2^S?V z5O_$xk&U&MxRkwjx>mD>4U=X`4^1bX0cPX2yopP5P`7v62`CNdqI-}r3&;^kk#gKO zZO&}ztiqh!Y$;o&Ak3;=p=ehv@Hk!3V>~4#F59@)Q@m9F7Hu1-!9>OAXVXX8*i_Cg z!5j4Z(LP&@^SIko0O&YP1d(>z~g;}?woFuHADY1sb+_0gr56o zfJeUmjIP0^szieALa=x$Puend-h$uB{6~8820aH0ZRbOy?||2vPey0=t2!y0R(XWU z%tEVhGJNnJRIg2@>qCs54z0*5x}!vHM!+xO65W^ulb$ZEI}a_XtX~Pt^Mo}gkBd9# zj=}3Ia;2yuTOCevSLB~Fb?dhh$>Q-v`iZqM?f5q?k*$fdCx@^*MS60)j=<(CpJLPv z8)dSycVm)>=@l;-;`~BN`XO5m^k~kkuKIna4IfX`3e}EE0iHr}pHQEx_1GmUBeS() z2ePR>KsGD{t0aVqtm#%)R+Scm8K0}RMvW=ksI9`?U_rd2SxGE-g!GPZnG zT3=eJ%d8>vS{?RYtg0b(L-(Zk8&fPLwSwzgWtWr6swx0W#L`W-kEMAW(*Xd2$7I$q z166@lN(Tvb*280}?Q!rsq~<{DhD>Z!(ga#`;lE|G<>4KmpX8!h0)92B!@g_7{vg;@ zvCi6eq*J|`r+wvqG9KMft`!BWFLOcMN?uW4t}gUVh@ZTMVs9bhf4P4FSFB7_x)DFlwm`XhuKp+Qv z4QsjkwIsrA!T@i+_&P|@Rx!K`S=TThvs3W_%Bc*0n0%;IIcEbaGz*CsZzB+TmM~FG z<>&6WhK>y(vJ%ufxov|}T$7*@)g}|ma?e}SY!*MFIaO3yTt-%JQ1K>`vRi+hpVH2Y zxM+epd7#|dxAd0keb(7*JFEc>cSwNID9DX|n8G<2DZkiDf*toHQwdijagAntS7T;* z?zrKcAST^r%jWPwTuWRmTi(>HEJz%YG4K@o83lbrZ)o+65;Ea_rrPf>6cD0iAW7XYXI*$AB;gQa~RC4IAs$d^` zx8p<~VRezv;f(oSug&=RIF~WwP;XoZRWf(7Fu&y3@v5r+^Zf^L`jzmkVLqrVf}58< z-mN{hyHm>$(L{|$jYqUga9w{ ztUBSRCFV$}+krgFT28Z5;TTjt!b|a{$QUOVfjFm=uLLJuGWIAjHb!9#7Bzw0j``zh zcTK|So@m1n2DlTBQRk!3fW#;?jC^v&=bgAy&Bk&~jgvE2V*5CA!8Rtv!#(&<8IByD zRN8$6m&!6@Vml=IHVC!P;aSHH|hqFn5yGL+GC`QQvTvpd6@^4htlm~SQ};bA)2IE zA$m4em>}Vq7OXHmr)iPdapw6%N1VW}7#N+0h_#Ve*rYa)D#TGtlM-^X{ibiuM#-#z z^(w(_J+X5OGGYbu2td2)Xr;Adk!TBvUP@Bc_CP0TOqFO=%$o2Lr57t|u4LHIV<=ff zrxeVb!SyR~0T_p;sP$+Bbobij7tq*?Din)Wht?^wwgFWbpXmsF`>V>F{$2Y0-x%9| zsdRHmxqBs>&j`!dxb51k#B*;MVeoP#T&N%DuDdegspIqjxqq`~tpY&bIzkC_y&sgQjvZxOtgigr2oiOj39vatP3Voux zDd~0#HUCox{>)a3y7n98SCVRJXI!%e8<6pf5SLiN13r1%!B0Kbsj*rL(TV7?V#5@1 z?~d{O-a+T9(^BG;5_GJP`P=|ZKon!8AOyP*`p;j}gNHEO9p*@I07@s`Q* zj>?<6I_A+EQ+%%PS_HId$m`1LMx%{t?fnLOBZE?#P&!8F_CoD^s1nwqt&1HsWJA%` zKvjVyzTR23x_|TOVo%n`T`_s9TjO-far6g3VWynZ0@e9z5wh~=99Lg(*6^1woivh= zWs>dZZ_pC&p00(lY3&*g0u38R=!P9mW?1DNZu>UNGR5W*CB9tt?^p_M+9!dUy4fwn zRwcMkOh^%}nc##J$Wets?${}vKt>msb_|`bNw4lb-1GHQR6Wi=DlRKd*hX-LbiIx^ zKxd{Ca~KO5fe@ZKZNU8W4OR8Cs<970-Fdu5f7nk~$(A$XB+hH}4(R6*geafj zjNP15B^eUaKfz?4zZ(*kvL-w$95^)g&4{F`Bx&aX`a-OBNE?uYr%Cy~xlq5ATxGO3 zFyg3T*6i%&){BafMUl`CvxZ`WvTrg=Ca$ZZUR%+jzZSn7L~qg zP>m-I;wVpgG+|NfCK7V!H)a_aIYxHRw<^qSOB>1H!^zj=_z*d9`7r5eH^6)EXeLb1 zq-a4~j8?!mLuaO!v4ps?vTyJyUu@Ki`%-Ny02908e%fSvb!qsqB*DbQl&jCISIMVt zClrftcqciIpS{OgSXOiy=wjpAv$bMJd4U?JCjV^6Q}C|VWXRBGhB`}p(#Jx;PqtV_ z*?et&HCKhOaycwJxP4HYIy%2H(ZU>Ni!+U^FgZHHfuHJ%HYvvtxj zg|R04RB&7T6PHc>ixUza?fTCVzTCsi%EoE?%)UE0L&fug(0V{d7;6+ph@_BcM+Qu# zT-^a88SBAmnN3_0Q78(ga1^xai!&-Qh8~9shNS;(v$%&C8=Pkrm$Vn8){s3G$XUGP zLi#pj-4In6(1@BpErM1jnU^1XF`$5aw5V116GT4}lM@x^kiFvb3ctp#k~|}7xKi|- zlBRl(m(lRo$D(2*e{=q#1dH@Yw4=DcI+%8E@I>;6WBNN_9+iFD=RX7!+28*)gAaR# zH3a zd&t96fE-I8b0XhffI$b3w+zx@P6&&y6Em`Jg#dHv*-? zqht=bLOafN{Cl;k_GI5P!A8K+!L0(Zk70*94+D(*Y~@8Uo7z?E;KN$=xkVdeG$i}f zX$EmMbz`w7#LRPII??QjFTEC;){--2k7MnhvkJKAJF-Ar$#40|;!Sd`~Wfl_OMe zc`0{vxs@PVey{^xwlG!juNaPyk;RH|*G@Zg(Hh`D>GKt47BD6W__478`ZthT){E|WCJ1Nf3sBQ zSAfjmWh^JJyGq24Y#^BcIcZ7m?*ONU-6CWKdH5v?4d?|q&O!UAen@+&k3_*Cw^ToU z2h_}+j-d+We8_*c{%Mn+e)98a_^tmCF@K(Y4fjB1Y%Wpa*HGQKPnYuZ_(GdrIq3h) zS*PD75cxlKB|kHK|6)p_KON-{v%tT0D)qOr2mCvOQJhEct=5tk2;w(QgIl{hIcF1j_Ql;Tr{RP>!qm zGn+@k+_JXPI57yT3#v41Lh6n-=T}^*74R<`67_$Lxii(pY&{wHyn6~grQT|&t*2K z5An;@37Q+vvm1&%SU4FLdonQ9PhNigP3FZe3ypJN_g(JJcB&B=XEP1O;FaM%Q{TY0 zb%Eoh1;?VF1&I{RE0>p_FH=(#oR5f?DdJirD>r8ER3LjMP}~_)`8$^~-h+PcvgV?9 zJdUCHMIVsf>5G>|+u{v-5qj<5DummCKwD?6sKlF{KA{c8Y)k#Vxq#3I-KPB$z|jlj z&A9+Z_?0fIR;j%Pw)@TzTRvZ(s~B69DD>3>svU#nz<$pYnwZccOA$|CS^K*R=52OD z)!6IEomgUmnwi~xoTu)~)I&gu`?1p8&rC!EE7DT+m?IpSgK0+O@@W?kh zT7mo7EgpuDCIKS~c%3Low7I!0!-wu_9zZJBq?C%>d8tmalCryl{sD?qd2c#c&(jDJ zJaCxDoR%Z?8>lgU6`6x!oU7KPtXs4EgJq#)e!b?p4)^n3Xd(^)|uC0y;{}{zQVtgNboInUko0=QPIF03_0KPDH3Y!XC4vqujJ`jep}QE$r>Q0nJ(CAM+dvqtapmEM_u!jLgmOm2y+qdJfQ?o-27?jukr zR^l5THwI&31FoGjT||2|6jq8E1#f5U^`+!lPI}F~qpwr7bAR+YY%iC!Kgty|Ak*4<|r+z3|N-8?gHWoyaAQbE*SvS`Vgmakq>Wo2|Y^RPue0O@Q z8zrq=j7*LXP#mu6b9*_U?0v(J0+Ss6b|43@N2Dygvcx^UZ(q;?m;q>!W3!=bGD8b{ zn_CoDarGMTPwWfjljOxbJ@V+>lS!w@nsHI8V<@zBs#LG((N3O0frU;0wKDZPD52i8 z6cLZ|jgoe*8A=g+D)(G**&&#u^dKLCN!t(1=mmC@j2x4N(G-*6`>U0pcGp(?%h&W zg4}4|uP6O5$CC@0xA6*-y_cI$m80gTCZ!0O;#=;i5eB@r>#tCE=ZS?vjAY|gQSR;NCBTlYJj$obf$X-U`?haL%n??< z3Ai8Z65t5txRe=nqBhe1x>$Vho@B~?Du`^^Y2IOK_QU#|u{%{O@l5}hGp*UN7xhs~ zIv_)NHX`|z-H?2+eQ(IUC@#R2?M?3)_-8c9uxiuVfbMiZDyT@Vc;m; z+`-zZTX<2$ti19QrQ5WNXo8S~`OFU+d>EIVSq}7os>@5MCJkN;yr}GEUD4Rb%;4*soyt{08dQhc*(g=gU~y+3NkQ_#s2XcBe&4rWiSSVa^v)lqn}M&0y+4Ot%pt zey=vink*RD#dsm-9urVfRdWkDsUSQJLlE2%;{0^P2Zb!*fSNAlE2Do0T;M$>8i*!_i z-fxyIbuwmHy~R)i6FVfZna2I7*G@xaF`?lY_8su}#VE2atXY0v6B;5xLZh&Ap;0E* z47jQN=Bn<%ZYwxkeT=Uxb+g7fxhliZh+!Bka=)?t{zABSOy}U!V2@vBCa7Es@K7Y^ z*ozU_-dw5Y2V{r6wa@JIx$p3G#rgFTT)5S8eG3OQv%)F-lD!#i8DWHa+l`|HA6^N| zD(u~A>d!4CfR0QrHrLB)YBSyz9k6%y6Q~ zx|Mzd;fCb+MO#v~jvN@L1z!qnJRvbX*8F3LXS;YA>RxQ~ZSOP`WE(RdzuXkWFtk3yF1-fPSX_Cz10@+U9ZTB)8HmL@Q?ztb1Q>(1zk|r{H&(As0AG=`*(v>5El;unQgShPQgkAzmoKf@Sn;PV zi4kP`mZnA8yxyhuB`uWJ>N~*XIImpQmfb7=I(#(zmt#isn7@+L|I$!)vSIw%3QA;v z4g6EXbOdnQyFx3N1GDJI&Pmb7erag&r!F;78kC@4+LiyQ$Gk!5pQrwR#Navd9B?1u zEH}hDN=5WXk4adoN=@&#k&7EIBv%M#edAsQHLK+4WN`u|Kfun zLDbQ*$+LbRd^7*z$GY{XgT+pcP%5aLfAPnhY?X*<|AM4Q*9dpa0d4WV7p z&WphOmzD(mJsPRM;uzw;%#EEK{xW5LjA=0mX|M5?>?_Ncfg{D?`$$JLerX3}W&_@u z+OW3drv4u48<}9Xv^~;yz?RvEe*HJ}Id?gzAa_l2E|UGXbVl6%NW_+Zp zdQynW-R3Kticuk9>dlmg z)Efc)Qteg;oWVxqsCk7;i!~Sy4wyCd#|S_kc;7%i(|#ATI;WerG3?$wYh(mu1MZ4b znPE>nO=bhro+sLe6k}Bvp-PnlR8b`_-^Q!=+9!`Ci={KKzsjx3uI@Gp_4S}g%p{H% zz1+27)Mmk!cw#+o=8+#sWf&p&CG&Jh;^Ij8r2v~?W)GHp%BCcV>&ahqJ_dO+e5`K5V*_MYf5ek+{nS<@N<80cX`wQlwuO^oUEU$bEBe_` zMtzmTLmL;JrI%FOO$OB{rl{W6-4L!b>4jPysC7>yNUbXj{Q6*Sh4M+gKuO<1Io1A9 zP5$-ks#eMOr>c{{#Wm@#q4?uH)DBd}@>w$-bzZB0yJ2owGYLnK3kC35B`c7?eiD_V zeF2Ft=_>L)g3tHgutIvRO*-{TLpikFx1SLZci~iH(PWIm)|w4z@CZDgz=zgUxXwJ3 z1)U3CEA}CE-pC!;^LU`?x@ZpxHqX5qkOjH-f^rNhy}KDZv0r395fG?e2qcQS)#_N2 zT#Q(P1edX+3V37OGQ0c*cyB6fPa3{h<*u^p_7TzOtT#h}WDiQU9`6iQ#UVfLp6TpU zFsBt5|J@kl|4ab%?*&USbsI)2cv1u}Mzhq=^_A%m++M{mz^8az&mMch_LF%H?KftL z!8peXpyU_R*!Ib<^-DD>y?2$^LJDK=LcZ0eh)Y%wN}jHdX;J6P@g>KNEz8e94DU{b za)A8#`=X6=>f^K7=p#uQsa<$NH09YSYd7xbO!nJv@@SEDM@ab9B7m1RNCE`!B`pFt zae4oeDY~}n;G}SSDcoQ+8h9vKQo(s9bJg20S?ZO(T|HAp%cQ)}=arx4%ACzq7`Fk7 z*Yo-gu>DwMvsHVIiwmOs`Z`P)Y96|>K%9QRL1^A(EjZSTPPG!nH$obbHeV)(&8(t? zCQS8uER&^9FkW`@^g96ce3}=%8-gv!UF&Z?C;E3Mm@QlMNu39tFA4QmIMA?L^anVOSR6AtCB5aH zOQZYP&I)+df)QpHoTzk%OD*2pTYqwHELBFk>Udx=CoT98oBb&=*Yc6yU|?Q7Ti#SQvgnTjyg;(hg%^l<#3F<<*$Nb6M3^ z{maD3k*sqP>C~4N7shpA0s)Mymwp7d4R$sn*mzr!lCXW5PnFu00;+E#o|no{+DAsV zDSM8QOFO7{?R{L%zNHJT5{Ts~UtD6bXx$j9fGp6DNtP$5ASZ{BvxDc1YX~*BOv%~? z;VDF-mLl<7b&nx(blAHYGj3`J*>1y>beG1#&931z#=&PgS(cv{G}&x4Gb@mvLs|Q^ zN02ZfZjJ{ZP5aGC9N;dE5biUGk@&R}Q)%N=f@%?)MR`B?iY- zTpO>!l8(VrS@p^sn@{am3JJ-k9`yHcx8Z_#{<+A1p^_KPsv~WhHg&v;2ho=e(EF^z zX^X~hz%8X-iIs;WOXZc^iH?1u!}V$qm*ey< zTa7|cWjrfAub6^dJH~8tM#z21HQ zh?74-Fn$tIzNO>&QNo$2PwvoOXf8U@F&jkluqs;SYe{K}MqSiOM7Ldz(4)NU2O8)e zhlyk2D@>;lJ+Tbr?v~cR69uSYlS2bT1xA{JlDt9RMS8eF8?sP>mO}|{9!_4&Q75Y& zL4Zcf3=X@EXr(`mf##QsDWJ+2Nnp;G*87jIoHNjAk3q_)RkHkl%ppUoE>^A}F-BQF z{|Uq=>jvNNSm^yDR^Y#!!)f@3!4WH?5@F%I$ScSNS$@n9JE?a*{?P1?9@}qR)V@XM zdQ3MP8w{|CO_>IEg|kb3ZHPgU5&hi#X^sE8oWVjG>wyNXu@VZi_@Df7q~5alCk8YA zlaqTZ^-5JfF_bmJ_41DStS6ANzmpPvn2Ie*igf4PLK3|Jp076)ovAaYVr~E1rfLaf zEe*v5p^)Z7`|q1Ft=|F3A5b;%0jSrp_n&tt|GkecX0*$n-Th+5pSJtyDE}Kzg_h}j zYqyWoM#qI#z@MXdJ`d7f{iVl!A zt3j=arT#5?LTonr?O+G{GXl)P6gcs;pWZH3=i||%$KS%C0Ik2ivf@Y9z5YOK-QK9q zJ&(@cxAUPzOB0(7 zeLFZ1eOFfT^{c#VPZ^(T+`apoJ&)%-;sMbAw7-8~5b0+<;_tWvzquX}>*;(r_Vii4 zQ6+rA$&abKTl6T5yIb&lN7_r)B-L`3dhfV;587K%`1zJ42glontvkn&<6hgwUpEjy z;c+R`v@_?~YbUZeIuooGwN`zo~0QMa9=K5ZL zAR}z_(U-arlLUF$cwIx)$U#b6;>TFxzDz|z2)!XIIh@KQ5Dt7!8uQA600v~4*O@#YlE)dM6 zlDK9GF+(HEFK}e@y`%*|XSpZ=5e<*~-HTCydcG}5%+4%J2p1{Hen{TSYWq8YMGal{ zfq464k9hND8zPGu+=N9@JbZniGB{s9v*ChqrVCA2_!XCoy^vU#<% zBlGc^ui08IyrUuW2}#l~tA}qUIgzB@OTNig>&gsZtEz&^WBJ!nLboX1y{i+=0m&Cm zWh6fvOV*y)F%pYaA-ZWWKOf~vOa#Q|E4n+rK|*u8VwhrbN`)e{rzS``$_2a13_pU@ z<|r3hXF5NFr!(yNbYVtPA8fxue_&k8jSX^%7X3ubkU%bU16PtO>9}(8Vzz58w8r!I}8fMt*2wDzY+n=88=z21g`>X9!xeRUU zCAwP#AQ0sZj|>cC?{|1g$N-iA1kd>cJrx&lAo2rat)uS4?tyXEl^#dC%$Yqbr%!F} z=Te374kJmj_jmlEXCE|&kMqS%l)grH>tpvmTq2y3@!^b>GF8LnQ8tLyWScoSzn+mS zGOA>F(*T7O!Fx8mX)Nl=hU)Bcq%E&Y9*FRjc_m-myF2=hwoZ21hoo($pw8YQeziR1 zh6PhI_t`tu4=pZQE~h-Q#+F%WV%-GXm@BU`9omF2Qi>>g_x0r@=!cf0aE!JTD&Xeu zm6~eqise~r36nm!-%TEm`2N8CD!WS3t=~P^=~mER({vJ&~Ue@fSl%<)5zmE#QGagi&5uQ>{7uGpKvJJW^Q3q^Gz)Y?EM2wSAHkJM2TDsxyce>J`-vZ#=_)aMFeR;9 z$l$km%uw?wkvMolL_lQuWHskXM1OFxoBRzpGwFt(@V8u6x;KH-?r0&&UTkS#8O{B4 zE9a-m(Q-jJA+~ZkQunx+nPteE$nO_-T(f4(DQ{iC_j!S+!dK)?&JzLuyp5WWdfEh4 z`Fyggldw}`f)?D{hN&;Z>Q*xozKzQ5Q&0os9Zm#aV|H_X?lG=eqV~#H?tqs=1=T(@ zU(#$Md98LF01Y8TUMds&`h@T`*k)$lb~{w~i_M@_JG zWR+ov-588nVAp#t`}}P=5Q0+vc|tO9#QvgNg94{7)yDBGWDW5^K$#+uTP2-ss}J(c ztxkMlMo^_p%xfZ7|z&RB(51&h4xPsA=2?> z^jGg>Hq(5<^jX5%a<$jSKN-vNHYY=)eo z5TM%=c;lY_#9VhydoHjW>^#~=&BbC0F!w;ey-WijHfa{nqfVS<4Kg~|yj7s{Zk#UC zL}>b}=|aVEna<^>?xC_ZhVxH z+cAwsj@U4&p6|8Mi|=lk<=hWN9WhSo4A;*r=xY44vW5p*`0I{ne;wSH%#0X$Nk+~c+>tmjd=LC zDvDYI#z>yxhJ&tNG9=$58r72j^}?=^;d~0d+=30!IEd?8S%Nu3nu*V5mu8@ctup_V z-dRdxyujy0og+$i2*Mrqv9cr~^PTBe>n9-sFV=F!uF}KG*D8}z=B~Z#pU4B_uiDPk zzj@=2G?YTIt{C((S30B|9I~eJrY38tz@h^s*fTXIks5W<^B^`_9FU8iQ)_QqdfH~M ziF1gy<=ZH_NR7LGN@&Z6@tY=RnWkJ_2Ep9`bi{?w}qYe=5F?q2Qtv< z-M5*Cim#TGV!hN>PnCuiYG7sMQFMH91omp|jetBZC3`pG7L<qq<`2da~0DvYGO0?I^_Ea7~2?O;BSe!?xiqG0f`q{PKje%NY~#KiWTog_0o+g<#+ zBaGmZeY&m^y_glrfI`Tzu7 zjCiMv^ci}xEa2EQ)vQ7n+>Qsmvg^2^6^GJ+JkN=^S?m1!$;s$o`Uy=EcS`paB<|G@ zAD0zLbQm4*f7s3y_0e>W{2CG=atsYG-7um)Q(deLrD!%Pwal*2NYD+XbE7t$CdPNV z!y~twV$~kkHhTw#>V%^n&R;ak7Hs^FOeC+Ih4VJG;pHF_wwB%S(zX zI4~G6I8rgAuX`^PsL{}HZ_RwNkjAijE3{>?EGO;5|5W||-|hD&n&Jn9!{4>i-?aIC zXbMB+fGg3Atx!wri$i@Y!MobqbFa(+hv6x<)Hki--t+Y`DJxh`!hzF|0%+(g2EiD@ z!u0+fZQ>h(<}dX=IjTx?-C?uZdS)o7_O*1>hG0ksdbPqFsIsHMlTFQ=48wdiXj}ZJ zf$AHP?#+A$yx&zIVZLD@o5Y()|M*lgaxoX=EIHxciU|L_dL3`}!F#5**e=l_SY%wR zOGEo<`kD9anryV@h|`1Y@gUFl9dEl1BzPXH$dc{G7cCmzT_2j_(`Ioqb-|CHT_7qv z-snn}!m420-o{p^2wpEw!P8evhgfZ1e1aFu0vV|uo4JwMd#lI*j`NJ@2QvmLctP~J zB0P^u6q4v=$Z^8vUT{KvtxQn^Zu~WH?ft#5r%i4OwtzLaC7yUXu=Xf|4V%KV? zoy;;?#DTCjZ;0-#5cX-yCkwe`^^tsGsNbsB2elZj8mmQ2_?Oblk=ct@4)C50ACyL} zPeKvB{h>}BOrMj<_~aB`xO1#WR7zx(9Ru%KiAe1Q)Ti*Y-mN4-FyG4Py4^PPypKCs zyw}eDtV}OPL(bzXv{o;WD{F}oa3{Ko$wydh1RJJzvcDa_2u7Gww4#ltzsl{P!i7*+ z3AiIrpkL(6nFUi=L-$p<%xJ@6V&y(RGJxW#$8}cas^(*bdqguRoVz25&=oA7vR!*j zB<`&kyNhS4f&7VI4?c?3>=Vv74a^D;XX|opc$c$cqa2~OoXeA7{D_d#b}&Hfg35i^ zNMdYZBn{4fzb^J_lI=6cEa#&aJ5uM`#Q=baM#hlbx%X409b}eZzz(CLgK_{vq;b>^ z!8%!hr%;=$=j-8QlsZUcvmR=8S`9g((-nYsf*pwV1SVeDu8(8g#g$sEf47v#4Uw*mAo9KbjYFJS%SPJ1Bb_sOELrBM;T-cds=*>?X6r*?q@Lfzc zz5_Z?GP$8T9$Wv}~hza*HA`Hm>G%*kD>+ zt!ARLsFLi!F*GG8cXdMNA#ki_H(&tLc zEt-*q{g5^C-7Rh9pkx0$gH6W6Yo1lwhq_`J=g|NYvc`Gb$Gz&9tFH$CIdzf#^k)4z z*Z9-x`M2Gn-#6FzZRhy4^PYc5yPsb2(@Xx(N^?KGFe{A*#Z~u?P?*0hl{EzkV zGsOElTT|U!2MWqNZ8-FMN@avTM7+E-Af@+{d%tEQW!m6ZYZ5xYwKcym zlh7?*!@v8$AHA0YckmcRl`txud7O3@-d38BbHjxs4ut*rCOtzNdh+r~t62hQ_lkhO z3aC8X6WtV-wxlTU(JQe@d9J{1AjM+Q9QGw_I=m}tscB3FHf^E;XN(`3l@D4BHZu!h z6l6KKt6jaYbwe?3V{Hm(U2wir^XPU>W`EiJur4o?&`c0t8DqArj^D*%mVTc|P%xq~ zJ^hh?F0pxh zjQKge;*(s3XQ@aSOw_R>^UT--WQzBpb)|=7)eC)-tZo9`EsEfibibC67_L>?ZtpsZ zkfH*`MQA8rc7~-olDJt_lM={hVY6mu5v6?Mx&siJxx<>s^hIb>+^Q{Q!DXApb8m#z4BLFM#gj+Z8R8?orK``I_~c&JK3 zr(bh8gh4Jwdg?Pl^PK2<8?hJlNqHb1t9>hd$MdW8)aQ+j975C2+r)90H?mV!k1rdP zdE70hz5~G5x^3fUlsa{Lm1RXT#n7x6!DumS{T}uRN(&4sYw}LwFUEWQdUYUzvWGmQ1={SzS%Sp@2VvEln8Zg|RD zWmabhs%Odp?pdGT2x z+1PMg(#2XyWQ3YjZs`Rds6*TJ7)mJUuAB1Pa_n%zt$XSf)js6c3>Or#g`NIx@&2R3pbQBR?#W>RuL+hkG*P_z93Py%ARheM*w0c zjjxe6dbPe^YdurzVv=ZG2vXatKqf7Gptj%mq7SMKVvl`P6(3ICY<=UU<1zncoR&NL zSS#6;Z9T_ewDjT7b-JKVEu{u6XJ^~?vI$K}jLL8!-!9GB12EJnlu5p>YSg-Ll3Hn5 z>Qk24OO52OeO%&fqFtTGo3&OA^VefEaaBs+0Zgcv?QY5HEbHFNTA=kdVt2VJatBIR z_Y|7|UBVXk@md%p$uXWbm=DJJbg29quUW)98`?|fRcff#X)V^q{`Ps`l5ZFuU^Vk> z$|ZZ|?1LP#tD$O`eSQc$f0%09Sh{nA_9@)Iqt_7?Gj&W7e7g5huRgBu%+S-&6)*N8 z>en>Qh2k50%I`#C(=#_N0@~8kH*&pObekdeCQ)lxlBFus3P@j zu5sS9{N)BmL813RSdW}AWY>Kx6&1;~3F8Cap3y)1@O)?){wC_%!7Ot5$;L{`ab(f{ zGJ)&K>9>q?HJ7bZoAWmsRp%(^^XQ`MX=8ZqmCXK=4akI^KxEeWP2EB={izl``fom| z2THCOMWZEn%{ZzRh7^5s>VwuMBP}VfYyB3Iu`JqjdCMNuI&QVP-^>wXC~$?hQG`$N zVP9*$uDS$_aC+7XDl=dRtlSrUeJ|vspdmaFqv2xF!~eB3b%A*~2mg_5B+_Xk%&7FY6) z@hkAOtHB4FcevZU!HAG!;u05+jJZ~4Pf-3Dui?<>@TUs0TOZV&rw(v}?QuQSK4zqQ z=O4;n?bIPsN2=q@&w*DJ2i5bFG%+rPRwp%P38V=w_KQMeLTl3}00%>}^u1B!l)~`t zqvIqDbrCDKI2E0l@~F1d`KUX-zH{+yXAqmTnX_gE|5k$c~Ou~10| z!6(}~DiY5(eBp(T(gV5w*Jbhl7;r+tR>RpDr1@Mc^e2+y*P=mwGm-*Liq-x$*06d= zm<)Cat)3~-PRo$7RslcdjPOkPWp{#>T_D$s4jqsA5j~c>C9IoK z-S0;GnQ%{r+@5!AG*|U8B@Np?&Ti0g+_2NVJI_^3o_{ecX$j`a@n-^Pi4&>BRQ_Um zjQWzZFS%3FFHMK|D7!CjX;FGTSsj3VW4)eBu)R_AO4^R})M0LR+Q{g|&~!hY{G-s3 zPl?gz!$hj1^W|Dnzhjm4hpl;ku5o{d^?&mk_Yb>Wzhkg}$hm*I$?vfIALJ%phFM?uJYf2d+%M_wMQL8 zpR723sKl3bqMI_fp^_o{FdvK)?Ps?sBXaxWu#LAbts7%aGLy6yW{xXp0g;sLf9$-6 z=;nMMPw512OTYizB|^_|&MSBagZz%e07bOinau(lC$a0vlvY{nmeSCJz|A?{n(`Ne zWu<-@)*HTwM>OYDQLqajYMuR#;zR5#Ff8TsVK4D^&CSpSPNFl;w)l~hz`#!z;8cN< z4;xwI3siBPbizx1+^r@c39=#fddzk22Z3SKjdRS^2N5^LKvxL!K3^LRZeV`r8AGaO=_jmJ6lqn{XH0 z7?%Xls8QhK-6)Z(bbvKoyiCZdc zSz+hrrh%CfR}^!%e>4q>h&w+cH-?L82dOHyik{Eyv+~+i)adWIh~q7|ggQ3hZlDUv z>!iUR0&)3`bY`U!t8L?~c3*uvtgGjJn|gu!{b6GKIamB}Pqu|xcCDE=)^GF15^z_} z59Har7J)(-7);dp-4H7I({0^)AF;B*;db~0} zY_#01$O*&QZ;U}kGa>iyMNk;{h@UNfDcP%tcJ<;1E9>eDQ7j-%GOItu(#|y7iy#fR zQulV>^KD`4GoU8-@e7W}QYT3~2LpX_v~Kq*=UEUPt;V4Ewj`JN_3eWG7_Q-!uOw5q z4i;ZJABMPK0ER1f5Z6`=@Qd|s=)CB&k#sn13;uP@f>^hPz8TxYn6B723vx|M@%=#T z38{rGLv@W&i4N<#IT6?y z&b0w84oyZ5=RgvCu*`4Q~+|m3)PNBy6uFi)odNK`8 z`CpkuF6M2`eJ&LZK^`{ z-rBLWH7@n&Wok^+-u5^M24=b&_q81^c)h0>`ugXB ze_We04u00r!MKu3lIHiR>n{oI4JpcWJsHQ;l zVS|gyQ@)Z?()3{GfqWE7ijpCZ+1SrEu4rd<-H2PLffAw+EkexC5SJ>;q!c#z)@{Woellx4Ju>Tm3Z0(cBXGyT#R{KARA%G%5qwc0S}o zpWuhHr)ENKJYn|HyBRkL;UzI<^Ou;@ano;Eu6g)%C$;(4GcZTo$RAEEbdZAR1LQXf zpBvU6?Mj8Eh5I+P4yGFI@D=C1+!eg(j@7omf5!eLDjCRpp&9l=62i%P`%}HIy?e*Q zpw!+T(5_d`c8~6r@<#ACMlV+^v5G#m=GXp6gq9uJw*12DY0~8#^@jz;FH*8W2^$Zm zIinwrKFzI0^tRQK_dG~O{&m%9Yq51?<*vP->vW`Ky!*G!nMkE#!&0(i&C4CoC9>aO zd-uepWmdA2&Eo5qUf(veYJ#UnOm6V!dQ)a!*D`d1vStoL$1mlidK=EwEs~_B8|oH; zMD%}cQh3%Dch2zLxu9{5CHd>z2CbOR@H)la&`-1ZgEhW(8iUdMxwP%|(sB=K+q_%a z-Mko!E0xUccak?s{C-;BqRt*TzGt%64YlAgWUSVr$^1Pzw(EEVc?Jk8-f|Xdz;k#>VazL(3tPHkb2%v)2kkjaEHnaCFb|nr6ZKP8a$F0 z1}ghkPv9<9S&_*zr#+g@SJc#03MNu7d_1YWC73G^beO;fR?W`aRV~5j85dfMUMJ4q zzSyXs)gto!KrhGtJ@sAWA;zr7;`UG)-O25~O4^O=ex~#wll)Uw-B3Ps8uPqUC+8&Z z`RVkc{&T3E+pBNyK6&R7r+nJ|>zn*NKy<dvDu&PeEXVB^o|11r=v!Kj__$ay#Y~U`#ycfI)f}~Q*f@9?xDxO z9g7{JqanDtHIRVyw=!U^1Ok4a9>JzspEoFYRTW>ag*Awn-}``Hm?YSJ)Zwzi5Tt*~ z7E;i8ZLAc@!y+FSZa}5K&+vFT(zWs0-Ql#+OMz;hkAkPRR0uKh>a;d%jpavtCuqSv z`I<{lwx*F#G|$Z+rZksIt6u|An>bC^sg<_e;G$IR>$|#?)uWd%gWrv{$jegv>lZ`c z*T+fC**=3bIsEy!zFl{pg?awUN zo3gFXF;*o0tExQ(S${rKIC|?fGR9nP zs#*-22G?7o#Ir!;M%e#n84?dXy7E7)>;JUuiG~1Fs$qS8haY__qv?LV$5{QjMX~}I zaT=mCN*~*L{%{SFr725Sf90-T1F5*--&O$opq5L~lT(krY|fW$D_jGWpIigs?SFFc z&wNG~rtIecJ0haB?Eq5&m_Ywoxnum8)svfS$>GrApkoW~u1$*qc6cW!ycXa{y$oU|cUc@9g~`@;GefbNjJ1kZ$7|DERGy`ny2~z&>#J|FIgC3{0jR`}5%d zYH!(QxXXL;mP++aJLG`b@hou+{50$5Zsl*KQJMJBpxA(&%M9D=gTteq;1_e;@vv9q ze%IH(Y-ImK!59IciNz32mA!)v?N2WJCenJ9cMunRc(3N`M_0fzB?Xh@%gf1G&)@zo z4e2-mno@pDy65d!|39qme?!9jU#jc>JQ;rNgDNumLTp?N@;vs}87>U1YH>vMu{QLX&d0?eW1@c* z{q-@xGYpLk|JOI6*z=J{YgLQG|Fy8=%Q4PACIUW z`PDa{e=75e!G-%G<5YuyX3jXNn)x9w$ElkAQ|+n$ct8Cg?@-l{Utjq*eZPA9i@sk3 z_$B?0{MFCMe~vLofUbWvVdjp!fI5E)cNu8lS0Aj+535=ph5$7ITkS;00R>}KE&fHR znGZ4+7atRj1g=>A(?7G5(b2eH1+4z{(K!Ye|NB4f`2tPGoR5zE{XEcCcoI+ zmmi1_ZaD2OwTA`k4W`yLE4+5te8=UsR(|lcKJm=*k&`;N{?Oi`c6jTc@-@1_E)zkX z!gxuz?4%4T^VqziN1Q317AGCjwQxHnci`0c#XgV3j#=_d5?g=gopg_x4d9Kkj?2$S z%%5Jr`!rcEZq;ecBK@|k{d|vRq+@Donf;Z+9)mAS7VX~64Slg#+7mrrSSE{*KA$yH zOj!&cuaT~axz*gz799MGqO2XPQAE8AHZ(Ok8RW@4Y8GWQ{OrJbue-eB>Zb>HLPfE~ zc~(`TdpKBe<0Boxmhb*@i50X9{4vGoNUab?uXJhS+QW|UI{XhAlO@-axuq;^kmj@3 zaEG4_*^j@b;u}C!l`6h zhTr*H2dw2FUv%!1lFwxmdFwxRgT{>lo>%Ws-QNOtYmc-rfX3yb4&>$*9!2atvqj00 zq?_m^f3|)8slp0!+dgko)#>e*%Hr=u9kiVPc`yKBWr|>!-GP^WpNkssEWR*mo;>#U z%YxZD3F#7vwfb%3-dxSW&~x@ll@7bUpF;;5|9+eJqj}tM^^(?FR>a|HFL+~_4qH>J zX!zb1v)A~beaFf?cj%#1EUA8wrMdp^FzgxK%)kG3|L*tEjo+p& zdIkNMOlGy~WS$C-qh`K;S4r7W(qgFSu@Ge_Y$t`&59`#oY^;<^G z6G^Mz{4Fw21pn;Jee^SsMtYM&mS%+RhG;SJ@1MJ({rt|HZQ8_oA9;Ujwb1oeP_Iob zL-XWAW$uE;cR$H7Wp3E#Yh|IqifF4Z;fEqF^{$4exPKlF@2ut0^QZqLe}sE((uI4f zi5&m*KS4RO2=(cSZnJfq+gG;_4D%#$ujQCTo!{5Sg|>|}YHWw>3Oo}UllBMMd7Sb# z_u3RyLKUo2|4qfW(ChP*;UF#JCHNu^f(y>aoqPH-sct(g2}gOy5olE`#yHwE2&7mYn1t;JoMq|*;@x=N9wOQR-am3{G?7& zxI8? z7f$_&;GB9(816U_&sivd7w4OQdlS&3%})ySeeJ$KCChBJM4MFzbuP5&=?F^2Z;tJW zrQGP zOTeaQot$+zup3@KJtAQ zALpD>Xvp#^`v*=Mj@w<8Ehs8~zW7OKSJr4@(zHo2& zNjLR#Ct&L<2!$1kUiYft$9(r)T^gQEe`cyplndB2tTi6yy1BXFcUHnrSmW#O-w>Bl z)YJA72?3~c1{vEA+i2S}0#kh}#%_AH9qdeoA5QU6=3l(|!n9nTzxagwDc_gA%V}9h z96I!dPpo!3r@>9$HH#dLYx&_fu(xMV0`+FDnq3%w-;NyFV}HgrugIIZ>1NJafq&Lp zWa1{mQeyR3Z%&Du}6>mp-_07`>A^4-E)Svp100dhkk73^}fyg^D#;$cVe!>TdTv9xsbosiP)x5cP6XjryeC8sZ-na@+s@9>m`Q_?wc6f4tboy@cI*Y~vVnmZrdvf@ zH5zc-m%6`U!=8zoLGBts7kt<~UD~yvD!(T{?ql?Nfq42LMQRCm zFZ-&+a%$#3$(6gX8%(ATf5Mze?ucP79F@P?HK)+f9PyV25Fdq%wWUq zX)f!ZQsk$Vf_v|$&Q`YB-g4fMWuX_KgjXQ%|H3n@4E4wW3wkWeJDPHP?`eM z7S8)kZI@SpJb7=H(!X2pk`3o$%;BeoKk}Sh11Xa21rgKjT2Y;&qv@E#FH?vW{#+$s z1l3`ie2w}VGe{c8uM(qSzM7ULoxV?Bp`7|9inpt&J3WeE?z{KZeDQ}MA0K$qOqv)f z;FAguIKtR-HtI0SUb=zu%Db($Fz`YsoTi@|$j!@+fngwlezdbCTYSZvevW8E2{hU3sfWb&FlQ{@6)<8@+g`Wc1A5on29!lSRs^(m({*a^eEc-um&q>pf~@!-|98P!&|?-1yL`m7g*k%uOfVHxRsXsIlFUe zJZyL(iWIWt!@`%x79cm}lbha@-7#+RTDKwjHJhhwXLJYJ0a6>X&td*ptzX=ym7@cLQ7 zX;6;&rW>Fqir;U7p3x0r^*sA^ckCz1)nlhUJjXu7+9q|*uZx)1@-W@3{QXKn)$S9L zUHeTu8rvR+_oLpsoqYNCj|lc&?BzW6jA|0+Q(pE|#&#g*)R-aM<0WNzS7ln^WP6s) zne#mF;lWC!V))(6l0lzlccgg-adUz5A>A}q@1w<}?L-xYod`~B`=2b(aL ziFAdg-4FB;4&Ck`jCL!GtGPS_75n{mRo++X9^Ei6ezV*lSqgrr z79T2qRpWYn&)}0J+^vg$VkVAH<|Y1kq`kfAu2JGurp*^-es}NtjSUZaAH3RmUQg#! z$T8f+gy6_gc)Kgdk;$I4#-01dCcPIJp3#1O!N4_1Ge>2+`874W&*#^^UHU+A*Dm`Q z5O|o_yDO{z?HZ_Kn?b?+pkNF+<3ni<@#l!<3*&lTQz{p1+hYzcoxgb%IQE{qPM}hOxxQnlBp~*C{C}Dk&=~tykTus;Z)*x?}T}jazr_*tKit4h;>>JqEg( zT6)?V8ha1z)iX3YXnb(DF8DC`z+r;}2M_$JL{3>*S#`bYc2(8w2Q)P_5Bx8`*8T#i zt(PY#4lBs*2g$3+DX7Vpml1B+x8tfskGhuyz>4_JIw#ctz55ns_Ch^Pybhai?EohDykYgckR|R zFf=-F(AW}UWqs7f_VgJ?CubL^tFIpn?jI0{2)}@gh>Sv^W8>lz5-%quU;Fd=jhnY_ zXXNGID<~|wUtIF2s=B7OjzA@Gr7}|@90tk=#pQzPGOz$FS_L96M=sPwRMX7 zjwo$A>8*VJ()Ru4f2`keDz~!fsfwP3&sX)Zn0{3aeanvq-+qzy4`u&zgkAmLqU^sC z_Mdd|K^qn1fFDmm4P*~`xj+cChPiXodxX{Kg%$VPzvaYm->Z|pXr!PWZ{oi4a&POS zS>UrYW6F_2`qG7*T8LFyTlIQG6*`w>MY)265K&nUyZLp(dP519Moi;B$8`k09@ytY zar8jsWtDm|;l>?xLLzy4R5s;=nKX=tjGAU8U$KSZ3Y#J2OoZ_$_`*z|gig8h#z#!{ zTgE4o{qk(D*A5co9f>?L*oEd0h{#2&qjM32ydF-b7um0r^jB%Tn-&b$;oHb|$V79^ zX?}1btP^oT!`iDEmVj38L_g}=RZ>reU-W?$px1-N1R|3lbl67X6sXdU#Vh7TSH(NG zm9||0oA@rn9D%y8s_Z6Np?8x`aO4bUto`C(z#9evAsM1UMe)}0j=u^U34KgpNOT$E zihdoomh4La2|NU+28Sle@`eZuI529uGi2ReV@{Sk`heVbzy`C)L0zAKsPBeVBS1t0 z>v&t&`o0CPbrM1ZX#}~!;IL7S6dBiM-rbrA4K6RHF~Dd9dc^bVJLu3`eTo=q%IP$7a@x$7A7M$d@1#u; zD+%1ph!9%tiRacrvYIfJm0SzikMgXuya?D?iJ%0Qo?kcuwS2@{bD-RbBzFq>+a zZE6$bco`RQ6hA=cvW`sRk}Fr10)qc;)F;`k5J#x}SlLJ|G^Ra%fIjFM9jPO8$4d*BF-)s}v@ zhuE%P110)~G}GL$w8C3mBPwpo5grxwO)c=_`O%@w5abthKkv}p#^or$7{a;z)^h;@ zM^fCLz|hzH4?Rk7I#UwDDofHFsuTo~UeR9th&VCC9U+Obs|Sp9$0CH*MNMJ2!LMefQ!UJ?SS`OhSya3^@QkurhH%0LQjZW}g{9>u zO3FAp&Ue=~7PpdWM#?3u0!*?}VD$<~)JKw*M~@a0^cRTxkh$rI?jIr(yUz_OR}!{BG{x@jb=sjm4ndW1o1=tLBq%87poLet8{v-f#0_$Txb)^HR| zzRBst5D%#Aj^)MT>nU0V!uiHt?w;C*L)%Jo^02*R>-*#h(kg|4 zRa?PNAE9Q^{NpZ;j#S;Z@t|+G{sh}35;Adp`x|A~5rwwF%egCeX$_;y)`qH3X-WG$ z+pCZlfkXl+EV~eGL7r+SC$WK=8hnz#e*z7(Dz;n$t(#5GH=kbOEpH^Z79M*N$eJtT z>I0!wsjw|S`!>(Y6zHB(rFI&P%+$J`_eSi_UO1H7V&d;yvwHU19;Puc-^|xQLodo# zVcIWB{nK@Mhwz^k+&URRI`qOXG)Fk&J1cX<@Oq+Yjb#SQdTw7j>D@s`ObK zFw0me-4Oy{Au9i|$=uTpPSm4pihSNiziBA+c^2g_OU4cZp{?=~S_$Rs2Fz(cV~&Wk z-aez6zx z9625;=1{`7eo8L|&CNt5(O`&7W^Hc5I}1}+G$#-2L|va(!kNK>Y|!vpXHPuSK@G1S zc!P{r54n29fbb@TBS5LXQ--2+iw)v!v7~ym0Au8tBVmVti+;8(e9{R|+J=Q8vPcmG zew&_-ueq^PO*Q(_t&-BV2V5<`D?BvDi_-(b_#(>BqCsppfp&#Z>_mYP0$6>z$P*lfRTFfgS#^xQz+)uY!%+w*jx-8JqRVIaR2VBUu%s$o zOt-K}VU3Y!VV~z<$#+%btuj>f;Y4+kX1tdMj5vaX3q6Dm8a&rB1kuDVgL|gv6Tq#A zPTcc|ddC8Q%aOruZTB|=KS1fJcZyH=lvmtSR%A7rmquz22D;#PmaF^COOf`gAmuD= zuMI#>VX?zD6Tca*JcsPJ?jAoLLb|ov6M-~-2jXt`qj*C=&VW@!p|Bc(ggR^nTK9&4 z1Gby^^+S9Bj!e++hgXswb^DUN6n3MGoe2795OxO_oj6jleu6Y0ycreq)%Z2P?%)$78y*Af9m$d;;%}c`%#*fZsy_Sh0LanAr z&xTWJu1VI=wl-rop-oiRh#s1#e}@%M5~T5o;MlSY$BIiHu)tQ;h;=T_RzljLZAsX+ ziaHbTUeALSLs^W8M}w0k1WFJcOM&%j*N)>8NW%boC2HUbNuCgt&$;QWqw}vBC<9b| zIXD($#altI`j?ya!93~?LWm0~{rb#MF(<*ooa1k;%JzOwpR6h!F$98c66bbCi> zVn)sSf_9on+9n!?F809?KDUo1U&>V%^5&R+nyz`S*U8yFlgFxbd@H|JmrwW5re<}f zX1l3wIV~ej+!?z627|U{8r1tJHeJ_rg~hKwR?sl`QbQKDlDS;?q?J!_RMDWuskE0) zgwDZKG)r16V@$xHWKqqFO9Il+k+IU695G`A-F5AS>SIyF3VEkLr(_=2F;8(>$^Ps# zzeI*$&5D3|%siJ?jnN54H^Xz5mUt^s3gLnC9}u?8>gFyqxvf>J!>u>8!{`0%h6zzb z#pdZ+I77m13fB(}7n}=46`9pn%bA@fk+|kEw$xwFaK5i`>zCt+g zDKLSC`+HRt7R zfn7;h18s`De08Og)==)w$R2}WX=P(r4J$^)W`#E>tyuWyoBosN?pB)Q7<}l)ls>P6 zQCt~uy#W6=1aP#o9kGmYA~Sw4QfV`J&U9`kOc<=e)D@2hR>K6#sk9Xs>$`DYwh_F& zWW?Uo3dr!>Arr;Uqw_7%11^1AB=*mJG0FK@3`%caAQp#~v=YaWPZqRrJ);Rt_p++C zBg9Zyzm~Jrl;B5U{nJaaM(q9F5NZ~qSI}Bg_R%fN4tkv8v*lQ#FeibBTbLj6jjep| zti6*S14TEdHm$^@@no}LHMM*qW@u??4HOo|EgY2w=Q%GINoR7rZippr5qb8-;VVUn zLZnPHCn(P?q%YpKx2KQBVy=PY>ZSJQ@Z!{v5ZNZ8v{~EzC&NB=nPmyar2N>3$&Hqf+g#Ob*qw%#j-{J!#dp`%kPxXO6qqGQWhD)sJWfJ0L$)N zmR%3Ixbxh)Z#Mz&tqi<3ZY*^1(CE)CvTLD7R_;)iNy6G12s1j{3DFSdne=VvAB)&c zh={D{de)7x(a8{&2%pe8YCyXANBTkZh%WMaHJP!@GYUncjzoTwnstMYg)-PWEyLrc=8d#R&G``8gL8cWdjcD zWD9`^!MBtSs`xFpo`qEw#bWEMd-_f>=1jJSU8bZXu3k=U8>VL=PH=sFZcb2YJcUQH zJTG^lT@fbRV{A2lF{c}@xBX+WM1J+)Q2aQ4&P(yhcOkp2)HDx(iex$?2hC}tULu?F zm6C+Q(o+H=c^QKV3E-*2B-{+Doc1iNI33-|_M*nEziMAt{})%ml+Qp#4|th}ek7Do z-bVK~%n&&1i1a5ExFYv&kKDlkD)JHaf$E~G=r@lV68CH2Havn zjj=ep31ZQSXboexwba4k#4n{6%aiLj*IG%1k?7EP631QARzpbRH*ZEybVdNocWw^i zN7PT-(US(UL2)%^(q}66co3#Ja^`~tBz2-SY+GQUaZh(3iF+IiSIX%2i6%AC&Qf2v zx0QKQT&Z%F@kn$VrynL~^mP!$;Z>-plj2DkTw9vU_WrX%rSuMio)xiZ+LT0R4E|Ln@cZjndbscXZFNEsy5bDj>*E zIFi)MkyHNW_iZqNlS=_@gF(^5EMxA$D18dpA5CY^b5Z`26{-WU2(mdCj;v6kxOsEg z75lIwL?;@>yp19es4WHw^p16|1WGsTXF zeyln0TF=M8Y>cQ*xN4Q>P9v&kH1})9J-2F5gP)JSRwXuW}}v&4z6d=6c4h@lMM^RC(%jX6NV6*n}@&#?mNI*FoDYu z)-6_t+i+`8;(Ul4>vpg2A+E4hGFRe6$(+Elz~?=giG2Z_T-vUC)r1e|1POQNNWDj1 znjH^X8YAU43_3l*q~J}RBs8Vlb)*kn^Q&CDO5AwYymUrMvtXcG%U?HfxuoqVWxRAQ zjZ4}|XC|gn<@#K>3J}i(<^?3d*a73`w^Zx3?iM(}Os+ z68lcQlcSe8o`{lTx2DhfmO!=UEPQ<4DJCFd-f{RKmg0-t#vaZ@XZ{;_1SyDQg)6yo zBJnxn9qmC%N%c2%jy*C$7+iNVy6B6E6YJ7sV6(WQvHAQ=k#`FgPL^pD!#zt{-Fy2M z;GKWAtYqoqjR9fD3o4k=e39_2#d;G;o6acf6KQ?)EwagBZ4GE!Gq%YuPY~LR5{7Te3Vi?@_vif5GD*LlVDuDgvh&22T zH%maI(+1Wp`YMTQ%7D{_l`oKOG)7pCMl%ZoJ7UU_xEboAR~xGKnUug8k2y5 z!;f0Vf>K%Wgn%{BZNv?LWffi&5Y|Bc066)?k<-7^Ti=ObNMKuf*bIOX>ESnEiQGa* z!G5k>U^qOq2)C+8YJbqc-fw%Xen~7`Vu~wa=)75i z-7llR<~S~Rlbk2I+seWhoP*mtzkTQv=gjk~g8)6xF-!;m6^Nf0!!&BtefHK^-)C%h zD$W#%9^ruT3EVf{U>UhSE=g>>=2Kv$hHxy22|%_qMa_Fu9@0hPX4fxP|sysk2K7MhJLqd z*xk7Zva@Ykg=~bKkl$NaLiTa{HK$8`e7xkrn>=8Zg;(~Hk8mJiiWMp|%CqnUjw!kA z$_b?{iv<*vtf3j(xrhd2kcr#vnXv7?B_-U-`+UGfR8fs)^#E7_G^@~gr4CyG{bB;* z50b+_0^&+3f&npO27k#~fX7(g#zqKy)5tMAkD25azkAU^&;@wLFgCQL=^}z^vRms6 z;9lAuQBA$Me9v!bG&%dX39G#;;iMwUJS_+=6?%2x3dpA|9xx?bczpeT4xR>EC1uLj$os$j$-@jED>HuVB~((iAD zSfe=lrw}yTeLoF#_5llup*RU$*t3eZ%!%mzLqkE|)3tjB*T22@S_Np(~eg3eD~0X7&{E@p4MOaGv8 zy`eFr1)fz3DF3|Cf4U(OjG6Fe41z7Dpq$4JQ@)mfb;UCUeU0n|SgY2>c*VXh@$BP| z%Xg+Ia4R9=ND`X1 zYIVj)_xe6~7z1TD!|8XT7+?{ns7^VD-PC$wMbT_u6rhQE-^zfYvj=oXy)}tqKf3qIkawfRk4J9XFXrggyT6h3?0MY4f6J|g zJ%LdOb^)`c90rsGsFV__V-5wmkZ75NbIx=p3KTpZwbb|xuK1?Z>^|GTYnR1pZ=Y8) zS5gYkb|)|R^+(NH0^Dn(Rb9}j!Lv<`-(Vf5UIpRXS>V90y>=0m%Te;kfu%-a{q(2# z3&;jp5G-KXUxnPw^vcHx5%P|}L?|qq^esSmG99*xs<7@8&C;2|V+qCdS4@I@EkA}5 z^6*vE&?JJm93>a^sPKv&`f5E5iV8OvOl2ipF$Ql6V!gjeUM?YoeCWo>L?F$yg`fuD z5r(D_EOSMOYO+VbP@=?AZVwf#FTl@{zElN#Vg!7E`A1LiN3CVYf}eF6kWU*G=~+OR z{U;(C9S6P_LrmZ$Z}?*nn2_!SFosS%Gk8%y&iD4KnVq_k3}nO&bqNy|lrZxdF=8le zWnghDsQIBsfbXgvJ}tHLf^icWuPPSGcr!C1I~{@ZLa;OQ2PusjzTGqYppHrGq$Ro~ zIu~(*m6*tu^1GN#Tr)77KeDBTZxRh_tXczo-2OQG1Y3TU^%6Gm4oewY{+$d7Hy*Ic z)-mcO|NTLR?b8D|g(;U<^)d8dG`CO z(HTCa@n(4F;-!X(#?ue`@VC)b2oaX-E7JFGy8Ybq(W?QgDOh5fh^7^Vk@DvdFB7;Z zEYJR9)%_F2&)-%yj4q~-s!KM{En_;O{3SHkfTjLkoi|1*c9{%mEorB1>ZJw|3zE3= zNaLz%OI^!CX{?!$G@1K=_~PTlpe(fTk&K<|KPfX7BL~A_LdIkzbxD9o3AYdX-93!G z5dG-D1-O(yxZ8z0Nk5(dO@m}R}H z+Wd)u$>5tGx#wD*f*$DB8U3LiDlsc!Okn$9#rQN>Z)A@H3w)vg&#z^$^?Vst{6{W< z2@4@bSC4y3O9q018^-g+jAcwVI#REIbf*;=gVYHhS}Zdj3Z(`bgtTB+3_{yY`XC`z z3ul;q53u%6_e*({Q6)^4cKL-TfG#1G_3~V1Y%L$7nG$r)xy{CI7Qbx`M5Xn!MJJ~2 zFQnMtYW#{HQ_g2Nb8FW?PWcnpOJ#w8Zg%^*o1e_KNZW)B7yaYd3+9ch)W(uUsm|PU zM0ug8&1$8pApJ|`xldnnUX2Pgli!CzWkt~}6YEtf;&YLu$F2DuBmEvWU|9N&*ZF}> zpcBJ&*~_(A`0vIG-8_={q@nl3rW35oG+vPD6ej1|L@tI1aO6D+=f^LN=`Gz6MUPHM zXl_oSQdI`+0NjQD`1|Ov(44j{2Yf2rG-{7$k))(XTYyjWfqWLvZfc;9;#-3Jh&|x| zpl9jZU4ZnA2&l2v?2r?*XU!aIww9TYNYsfca7t~q$%vr@wdPbhuQ?-f;hgBd$ zw^{$x@>g4h&Df6QPa;;?!Aiv1ZnOYk7m6;0l$98)ghsAJrH6@;4L2owO6(W$VELme z{*#q3auwH-mXpX{fFDn2#skZPk6-g?qhbcum2S~2<%2S8nW%^%UF)wLyR*5{iH33~ zMrcbTdzql1k#+)>F7mpaK+U@Rl9?5`c9)3gv* zZ}Cfg04YuneVdd(;8$-fa}(2I7682?dWPn?hz))KIOv<$Xr6I}5vJKb-jq5T3htf{ z&z^bZ)Neqnz?G1qe;uo<&Ie79{PFRm%hfCB8bK;0XzOnwKsBU-7yuF3R_*)#Gi-3` zpAC#^s%t8g!C>=pKj?n$t(i6s+d<*P1-3LFL^E|;!0k>nos~c^ zffeN9JI*RY&ah9r)Q={Y^f@SM5dmZ8NxkAuMCFOV2vS}u*TJul3<*J!=D{H6vqW_O z*=?P545gaR&H2Zo%6Pv@jZZ)W%M~1d@yTPd8VF>48I80^cPb)gOXc-fr*1Z6iwxo+NXd}pP zoyAqzkHz9@^dP5nqTXhTcraGo!NCz5sN;n@T;glNFs0ZKb4!q`3kpjmhA??%vmhCv4HNkZ{H~pY$ zPQ4*PRIkNFl%x>Vi_w41TcpiQ5Pk29t3139ny+#bomS%4&vZa9j)c6xN_h>j)!*;i zbB7>A>wJodwGcfOM_-_D$wn`&C=>Pl(y1x!tjt|-)K08sX9<%5j<}rY7iu<%E1`-P z4}3_EARd@Bz4$38hZ&@qRx)flC+0fBo;-;V&hu!sf`s``xQ>&Cc8uCr{mr6=*ymQV zknzzkv_#u`x%J@S>?~SzLy(jt@3cy8J3)JK?!CCg2@oy$huBP+0*p6eW9{WV+48J^ zI4Pbtoopw7MT8cU0>57_@>yU+3qyic$*Pof^AFC|)QR{c79_4y>mBU;Fo4f6^gy$! z(2fvzxp~(nx$PSQ2R;P^O*C3DLm1o4B(N#F1H3AJKiR+Bb>zaG(UA)MBjFJ%a4Lmb zn41XEG+>okL^rVAX~R9tD1`#7k`o{ShHNgakv>$1hnBPjVblW)5;**OCc3@U9Z2v4 zz#K~-I#JJm^{#uK10->t5GJK`!sGIdc5wyHM-zqgm%ao2q2SFQ$y43l@HM2p}d1-Po<$ z$NYf?lc;jADnwPRrih{FB553Uiibm0EA(2lj>lhGQ5sHsz_u z@y_YF^i90ILzb7vvlxeR#i268c1agvL)6ck#j3!@;+_l6GB%(XF2AayhjHT#R_Dt~ zP6G+A!6{;9?NbWM{G^dEH_-$i&$>?D#V&Lj-Qih|&!ENK?gXs+g_V(zta0AZ2D(cS z#`m{;HhQYgG*Ej{uWx%p5yp9$T*9%Bz0``H6IeS3CN?J((4etrK391bo-UD0)K8D& zEaGiTfKd(Z@(bTpD1sQ~%mKhwWPq&SL)+gk()Vn+U86sOG`H`7sgs7)4Ppw1#QhrF z;y@zXM-a3!Xto@+dytPHJ5g2-(elUK;sciP33N(zz(-i<$NCfLNC88_**Hm;eZ!A5 zdVIZS-x{dd-e=DPC;l|7Xc7QeUZJ`3`UOUVy;n;%iVi%iK}=pDL^7J(6y&wSh_2Xt z&54n%A)wP5YXh)LfDsEtavCr(N##aJ{332#v4~gEfEL9&?|C@W#e9<6xHA^79vu{F zOnL|62VW9lSr+hn2n02SbX{Cs-!DS5kVK2qG^(LP6T&Q zgimB*XHcZC=jpUV$IYlR~w?qsb%OWkrLv=C~6OcWq{hrpnL zaMWb-eH&Nz>c(ZX#sH6sr|QY(2ZOva0NLF<$c+%>z6Oe*YkA$cKh*EHpnUKSA18qz zLhPj_e9UV!wdgKBDQeQ>-pj(5{y)%EI*HZ<=ID-)why0{&OH2W!ba*U3`DeIO7SBA zEPFYe3y5%=!ryMZIBLp&<70Af((bKC0Ok_KUqS^pN+8Ey#uW4Vo4IXtI_nDu@S!re zN2fuz(Sjr=T`Prl&*jp zpIKPeitljPQjNgfrzU0kL6K-jK(7{+h0iEkB23ADfh8!`$9HC-dz0^B;7T0KX)tmP zbkSML$6!=PpL^ba=<8YyuMZV@E}_c#S%88sW5RY1phtKEtVvKQ-%|uNPP%q)8b*rG zmy*WuG{Y*14}K1o;xKV+i~03jOqOh*T*ARed9Hy@99a5uzO3#6HHj^q8N*YJ)<6#n zw9Ww|dqOiOO1mz8=@wwFb6Wz`d+oHRX{6AVDb8Ce^xwDfOH=+o3M-4eZc5m}MrB6J zB{@e}9nMsfdta(Km9j-Y>?yN3e{d_S!)c}*sLrRY+GN#lPIRm22RTpZ@yjQqPJ*_d z^WuMxXZr>cmhv|H*5K5@XGZiJ&J!ul)VncdW~=(WRNgng@@KSO$Qe!wRQVvsI@3@# z>*qcOgcdV{2mP?l)ZF8B{@AhU_LmDL)PZ=HIf`t#@0@vGi1XD&rR;Cv5tM@*L+=yE z;*V4VjuhzKnsf{Og#!|9P;Z?WV66y>etcwaZHw3bLLpU1)6en}ljM472uJeLJKBp< zcx~(85(N|{sw0W&%tcr#wnF7mKGwfAUqZF;^Pz#9x2JMxSZguwF<|woceF6(ItADI zXW%ObuZghdkWD}l>9`UJ5d zx;i&OT=6JR2*p`gVpsj9A>iKUy7XH0R~#dE^@;(>YDg1QNRjvYIPt z0}|Kw>GHKE8+_-WCk;Q}{F2ULCA7_Y0=yd&9DsmIm{3FM=jCeHN-=ti!h72Dlk4!a zhFF$(h#W<~gh#s{$IoD^B--{rcVq#P?(p~;afx?Mdt5^Qp~E5=47LJ8U64?Jbc)O; zim0?tlD@#f*CcMV*s~*m5sR(A5O)UI3oPo-bS|KPYB8MzoP<=y1%Tc96e<5T zGcgTt`WYXl`9Q7HX4W~!?x&9~q5q^T_zhV1Et9IuDGsWAF0AAdiYJ^b@A+esR#Yg{ z16i@2pEFix&35i?Wt#<2~93D>R~}ZNTGo2B%q5Me7$HZfD%v;Qov3Zk?(h8 z6*}=pr3JxfXLeaM&K3PgM|3|NWoH%Ruahe}bK;D9SXTU(5uqbaqc3Rv+q0`(wGz#W zrF;Un5|Hh6NPW7!Y{n$zPDYkzhNmGiUZ&|3I!2helN0!^R^oWa+)2PNons=%TG*As zC-xwr%g`p}`>ZdG-yq2`&n0a$bvjY^dxD#f7f#vVXb;GH-U_$TZ~?puWummezlEnx zoOaHt!m??BLDIs;2kH6&V%m+b8!fRkmJt1Y^a}rZNYvMpda3>5n*d8eOb~T^(J_;d z&Vy6w1(O&Fon z+-1>Gc_1NWZdRs9x$t0u$XH3KfvG7H%Dlhsd)|NE(>WchW6I;h^Zk53+i%2WAPINJ z2dkGn0~enqj}2U_W&lxab(^M^t^%H^NpD@EuroN|@K%CD&7D9wGeRGbN_LX2N2PhH zjkdX&(~}1)AH~PE2M1|!CKc;G+VhID*|S42)x&C@j_KI>XA?!}INCTcpg<3$1g}BE zcYudkrbB_RK3Pma$FodeYn1%3dD#!JYi~z%$eJ3yS1Gfw4M=e*$aNQYE^$`0H{ifr zu$R@g3{?lDt!Zlqw=2EKJ@{*GMq!iUL1Rh8bi|&aBHm0`c6an5?U6DeefGXRRRo5G zEr)+YkGi2(8RmDK&IdL_8liyb8tqm0<|xa7yoCFG%j4WT4SwP79!eQUl*YdEdR z=b?!11(z!IX99s!L%rE;2IT`LT2c2S(X|-KH^S}C&xIL`*bhM3agGS8j%4*Wi7?D+ zFiVYB?)Um2OP&yZ82VY3jbB2VM?Hgn?77IS<7shegVB0uAj4MJ88kbj=a}@Qln-;r zSa#}q=*$Ttz|fEdF%J2EOZlyM!S%?WP>MFjwLHKAcP*>rG3TF7y{Wpi<6tyNu2SC` zH>eX&9U7gvf8t)p#G4&Er4_u6B7~Q=@R>aO<#fbBPxhg51*4d&V#pb7{wjOuN&XUQ z+aIun$?>9${N>3*&kXav-bM#gLim*bd!loogacIaEng188jz%ZHp-oJ3)`C>yz1^U zY+*C`KSlr{NvilZJ%nEglyC4Co=i=hrsC_6lc2R^@1Ba)l|^|KTZ=$PaUH@tlx<`j z*szzmzQ`4hrCt63cc)Qw-f4N95z6%GWozqK07IGw!v@@QRoDiz3f#A5Vst9Lz~-|n zBhZ^ePcjk87{Bf4Pjo9Knv+|PtHWLP9uj-HGFyg1UK~+{Gk2kh?WgY4uk(yI-sQFk zKK;t7qA<2qVzn+;9ZD=^rU%G*ICuqA6}2QJv2ee484HlngTrw=22Cio6o)$BA52}~ z7giGm5t`KbJFYr>Wk2gpbeaw)ylHkY3oQeWoS(xQhfQ&<;j>IWO%Fw$Sk z=#c?i5@VmrCUo2>o&ZIsCB#OnV?BAcqU_@-}o!JQ^*7e^@U;_=Y0|nC{-Usj_QOwVl4ZI#PPY;>I;v;Ks-7 z1|Q+fK4I~Pt?LYfkycM^!#V3d`RBpFhnTWyM=1JgLdr{ZVQm%4TES z5VNgl4>`eL_RRPA*-%PQ2{kPoIF=Mk;eearg&W&U79TY)2dpy-NTreDrGpHGJc+o# zs8xvPLhYN9<>}~M@+6$BV}u3YNESLHjKZ;uR%evbagoM2-34L;IF^Xd>b5w>1D=+F zIz?p}6TOm0r~^dCw$Zv}**DvjPJKd0MOE5?h-JprE`lzxb*Y(G8tN#T?YGaOYT)BH zO{sXkC3QT$F>{>M0tD>AmwKTKl3@>yu@P9AyR0+9>k(C6Yu16xD&8*u>*J&yNJJO^Xj!06=nP5oS#5rmvYhnsX zPr-?vs)4bV^fF?j6rczrlP1L2>4@19B2oXzOu1dOIj(=705X&p*jbQ^9 zAwZVR2k^c$Z}JxTa;vxC)*{VAWSE65FMq!IOT@#=Wun~%51{d*tK3Qr>Wj(^<{vyg z{++2SB$w+|&FpFO5N%K+7?RA_W#tPwq3hsS${2~K2T$o&Lk*FemWI^w+Jr8pYdjdbsaXn4YrIV?|M_b^HBlH-}VC&WsNZ++%60J|3p`Cmbzuo$ z3Ix^#uY6w{_TH#AY=WL(RLOqzN}OTyDk3e0+R3}vrShL;Z?8D3sY`lL6|V=vItk2| zgo~dGUP@v|q)9GOKhDTfl?`b-!n4Q%RL}M<8>w^CXg(v7BPcbA`iTJLzI(FCPo7;9 z!%;5!)uB-NC|u6KZ|1%N)JXqeMSs#c;E7BqKiyVJf_(T-dm3S!N1u(Mlb+rynePKD z=uT-CZgVS{1)va`IG^v!UoDt2;i2U=lP~IA2HZvg#`<5A{&+nNaP98WJB2&hk2S2P zIKf$E2j*M%b?;FRu#LyUV|alv(1P+$rd`hD7-XZ!*sX^{zbT1g*gT-o#G%1b92;>$ z4AgXAtMIIj__~1LB&PMe*Egp#C16w0D4N z{(^e18lBSx-PyuWdTHg8eCrGVrUn&S8IY&FU+Vh73?|mxLT;eudYg% zWFEigaq28wsUg7ZHBvo%v>)hVL2guYRG9W`U{L1q%ckJXvM&X;v!xbB3Z?e7J?(gh#-j?QpslXM+5jB$E zsA=m08%%JQUHia83~qQ`&>J5+9TB*ur~?CV?sF&J48l#+_)B>6>~Joon#);HJPvu_ z1KBv>h+dlq<;vXif0CoEbO~R{o(U4!W|G`^w-*)PQjiT1IIv2F%rPQMs|!(pM6)44 zLzg!948DOO{WZmg(hI#pwVw!llOL2?I3+foASAJue8B$sEBWuF9glB4f5JW<4OF0LjeIB~NLYJ?qy`4z{EE?Sn#Bh7v-?+md@C>@SlLo)HnlT-%CB8Kti*4j*#ZIHs zKH(V9uH&le8{>?y&N(zk57=&LHh5_RriJdylUJ&kT07J(UBY*kS4E^V& zxgUE8p`|q1n5-||mU=9&#Db(!gK-NQGwRcs^Vj*;|4R??nAdH&>o}FnX#KDEz$Dy|&mA@+Y%8+av2-poctp@2W|InU0{@gtPwP;N~g{+NMd2*}s@d+xz2sDz8OpwC`U z7KO5MuytcT4D%vP&HgcZD&~MdQU5u4;#2;lzD2wNUOtf8`2f$7|Go zj4Wyw$%Z4YnWKC2VKHP@Lfj6``c=*(zf&IAf@!yWr zsc(>E4;nCPG;ZoFDw<6DGmR39;0~cqT)chCJ*{T%b~@@l@{ynhcdcXIO@(gU+;{L+ zpg-EHJ<45E^UklIiMEtg>mf5u(TTMV|3x=&r7Tex2=@_itHR4FzBpSeR@IVC5-}Lv zE&l!V^H4g%2+KauFtxt?3Hz8MNS&BZhxg^k?x5-p1HWI%#u*faAy4=cKTX`GfsSm_ zG{{U{`-}#h-FhYOCwah6+qX&_+#N%wQq@?AlF;@It(gH=_t~^7?rv$%X$7T-*s;Kj?%v z+kb1rDe%7DIrLMUDCL(M`L{Ky=?09$-VyCVgb3dU#F&9B-h{2H08&r;CIt=Hg)BXVA z{B3zhj1m!{ICY;2>@Jh}Oec^K0m)i0;2b7x5il_*@~vK(fvGn}Yz~N?*5Q~jyGD|u zWjZ_eq3vAl&zc0ZcP#C`z1s&t^_M6v6lVKk?ftEFJs;w+OD401`=* z$+9&%%GFac`SQ+Z$ao#TWQg$QMhbZ|GWD~SJuNF+iTr75K~SYvrmNVyKK?dNtHRbH zec;kKvj<;t)HtK7m}`tgoB&mn=DF^nJdNAF1~Xe=Jd%-lb*P?2e}EY+e;oHC`hFl# z+WW4eF?alA)!;_gFjgK+lGfRw+J0gTILM5WN5GHO#N*ru>`zzK`AAk&veB>Ug!pH` zTW%B!A{ZqMYN_x2!)CWIKRduI^F*E>GrADS1zXN0pS5;Zjm5F1=r5_`wUe83=LqrL z$iNdtD%<<}XKCLl0KaiYkrV^{F$g|#De)XsxGY>$A(*){xTTbA=!PmAb{_$9_cgyc z^ZwHg;~3%gp8n;@x0Eqnc;6Y<>2{1y^Go{!%{dUIYH&CL?Cgqc$Rxi@j4~@!*@Tbx z5Ebf#T+F*V!T^D7iq+-LV;z@rP~nC9FU`_OeLQM7lF$S7zj_9An?Q^L!w6pcR`VF^w8jc zYuS7zIcqvR;?Jfcap>3O0qZh)83G21S8T|DQVU--P7CIc1m7w~XB$;jap2U!z#D0A z@i9x^HBq2j3ntff=TPh^B7L0k%{{5m9Ql~h)B_dsR6zY6nEZ}IHAb;gl}=bJX4P38 zf=7~FqwwhhlSuhED=W}7KvW=r5>`5QV|67sS2RXlGZ=T>f&um7_kmTUms_t5t3uNP znbBKir^ZJl-#lgujpe$bJn^Zv{@j>;>76S{QsI;*x?)3t-XmKmIFqIiiA8iYRK9QK zX+E&G89oyYPtomRKBY;>fIY%?a3j4(&An8wYshJRO=@WCh{OVa^mGXj3y1LswieWP zY-TiF{uIN6a$f>f8oc4n)R-}Yv0LfKY2QL#_Md7UlT$XiU;6Mx_l835@?^JwPMkr- z1Yo!Y<3+KwKO57S@%mQZFR0-8fDK2xmeC9UQtu`fuVjG~Q^+fT24na9gf3c_n~&5pJOyr!sJ;&V zl|5nDSvE?fr}!SPFEQ(?egf1uaGN%N3d9_Ij_Sa@BCxf&^C>;M0i6y)GWOvhcI7uT z4y4rdY+)_*n&w>m$;|XX+mK@&d2qF2IKQ)UX3@Bju+_ zJXK-`2yvnmP)U_xS`^bEtIIiW{1##SSQERvh7qFrrmXbujlca1xAor$iSc^#M-ZJT z66l4C^O^1~-DaE%ERf#9Kh3pFyx29SQ`;)zc3+h!8hvDdCPH&I$qiuC-HZ*ZeacI~l)U{OD zzaVvJ5fEgJT|c+@aHbwg6Qb~yXFi?6%=e!$5Bi&1TP93K>LqjIo{I23MlaEJhquOP~EXCWGiS(8!(lQ3K*iRs7rX0-pu zIfRsNG5{7Ps)|vzg{N5i9F{CG4{yKw8OKLfB z3b@f*$V>zgu%>DZ$Jq%YX4v7&5yiOXzmiZ?x|@3`X)O1J5Siq^Q{A-hqvp^4E-uL5 zwExeD)q$&*IJ=vwK!BC#oD%VGe(^~q;sVCmNrO9(cN35bQMkt%93EkWF2voP!h|-7 z!mBZBo!(*kKc*_r5B*^HP>u+@pGa}aDf|4b7hmG5_&s3sX6I5;v)=M{U17xdLsZeD z38q|_5bfn;;TVF_i^ic#Daf>d6pGh3;mqIxX87FzZ`Zv4i*;7=0CnJPvJ?Td8?9d{Uf^GQy_!onm89g*u4X67NKh=O2Yb<$RoiH2~jYkAqe3y|b> z+^n`H9q+_(%9*6j5#4k)ex!647{IMTgu>0lKwwVzADWqfS(UCZf?P=1ohZ@UakCJhlH1pY>@FUiDz1NS^T}Uw`!{Pe^Jo9?t<_O`zS6siP`h!l2SJeBKYZ0mCDPMN5E?lQ0fM-7LcKn#1b3Ki z5)c*@r7L$v4X4h}8c>Xt7S*-7yYfE(o`-x7Z~K6i?-oY~q=D?$IK>Cu(D6!+$E6)O zg}bY}GrVRi77aZfNGm=i@w% zPLN=`L?H=^4kh#tMR2sIyyB++r4aL5hdXfiq&h?}W<>l4w<-$o*UdFbJAy(>X^tmSnD)0@lF$_! zkKo5=4fAM9Jk2|H4D+_;QAw4YUp+W)b7MJvrRt#1tW`b;_(q^7FkW=R#bo?<%W8Q0 z=Qn;ruq36Jn^7K^DeQ4Dl3T&t^)t_{2>DD6?_T(YpqG5TZYO|4ym2kdbjwN0^0H^rmKte2KV$q^5na z#v1qt4Q5km0Zr~+?Wb!-a0A(#RW}lT*A&wDQy}u7I4!*iMdKqPR@$;xY!XE?oz(Tn zb!5jRS!+-|7fVz6rd_~L=h zFJn250e4V^>?#x%r57(xGMSf(77}T8BwfU`s~S>$ralpGRXh@q66qRUo*){`{>HP@ zuWibAF}=5^*yk?=E}>rbq-7mzhmrnU-=v%zBxjUFafhtZU$53ZYWv6NlkGU-kUwG0 zo_YZ=h3m6OfSc@MI)`@TpPO^hIk@sh6HCYon8q;AxF+Iv83Tl(Kp0*mM;7gefxj6{ zKK#?a!Rz7*0@sDg`Za}2Q}e^0ZYe@asf#?6AfUj>d)5#yKMhW`vsGi>rwY(_JjAn0 zLd4m$rLGJP!620~Fg1fm*@pRK_nL+2(&+I9+vEJ&iqSZr0_dTxNet!H z5)_XmE|IDP9fj5LEIW$+pi8kU(C+(~xbq(VChv-0DB8FhgAGeS(UF+W;cOS`CIWP` zx`FE3PNaDQ^H>J6YHYt@=k@6?1cpgz2MW_~=p??rpGf|5Xga6%PQnfQyng#$0lGF% zn&?U7a~Ar5eTd?=7RCg4oOr2PRw)-Sg=anmGA(ulTu0?c31y8}jcp!3B@a~Jd6-2Y zhd{b)72s>o`E@tl{0)U$RfdJhn?Bw?)xfNC^qaT@bvhz3F;mjd9kxXy$Fs|ZUhcUc zLjAXrQZQCY7pPd`6S8Z>8F`he} ztpq~sQcIGq1n+lmcCSm?#HdB=;@wWDS}%OMgjBUODyart)5(w1OIOrh3e5Z3xSjeO z8QT`-GR{~$yzvCXp_pZtKPs4Zxdr9UCmb1Fw6WmZK39_bON9%Vnm5C)%fAqpUB1A5 zb|3rvM?<+W<-u3oJEU_U7cDRCKsQFe#>o-zjaP56`Bhk%XbuqvlB6vK{Nx>R$Q^OE zgH@O!ln!6fb@!@lqKcl9Ba=qgBpBv@dJdUA7ilpJgsAq7qDQ#hWYGVs`iv=Ws|Q4-FGFC22Ftj&)|7aiV)R$zPpW^RuT!5H4**#DVGzXi-;F)=j~yoJ$E;K1qS3G3RYHP6Ia zoMK)(ZHnTuLkrM(uCv-CTm|w!&G`faisgZ|5OiQ73d8^~Z8=)T{ir`enFQQklBRYwlW>GE6)F#oekNl9cKV&!s6S|-8H`K7>ga@% z)ybmQ2ML}^l7byWDv#SuokOOau|yHrDrQ7{q6Q-`=!v%CkMO_Qalwbqlm?>IoJ&lMKCa{YZCG ziw1?EKA!2yFzd9YlmABb;Xq5Hg;jlcc| zd%ff-Ffjt)Nu*UMA}*jXL3CBchVsV?b_+SZLS!tgesf(RY>!CY17DD~9tw2pVF*Vn z$mePjKzkTx7%W@(4Z}1a6z2WkH!j#6KK?fQh#Auk?G6zxH3p5^N;gbC*n~vpf-p4V;9!_S`QlTy?Q~w}Oes?_}enF=`A~sz-D4 zHy=2=;bI47a9~@qhQYs^d%7GEGvFC1tp%NVi~xno`kzyfA;wQ0)n z=2dcZjcmwL11A9TG@7!H!C-HB(`&M;C+_8W2yYu(!X1jwTFXj%J{h8><=xf!S4ICp zDo=ac4LV8`3*&nDx|my)NNaY#X)3%V$Bo#+TdBCA2+I#cLCfV(uG;9Q9yyLzI)_pp z^>PS=%DGoI17oRs`p16mWm9eyQ4op*k4j@dAoT8J8~Ix#Mk9i+)D2yR55X723}iDEQv6z4qL41IO|;I1=q>)ZK1Ah?9;KQy9}-PY@v1#t)k+0lyCpHTy9V5 zYtoFxgEu>Ifywz;eQ|iPQq?n4(uBR1WE!Di@WjA3a-^ZbG&#j@;9ixu=i+QOqR&2# z_$kPlIOEp~znDB@+NYM|6J5bm@T>TyQ!}*>QfwYJYJo7>xmyh=f`ADKyV|1eq zQn=A`4)a)!!e4i~TW~b|&G-7Q0^APEkB^j&)2wrbS#S+EMtpRriQ6dqR4V;EIGuE3 znyf^=&(ySyMaT3{{A}l_o zs_|;i?156u*2Z6+U}C7ZT{4gehy8CP>Y>#BFDXPvE)5^Wvm+3cAP!j9d*19$>8GzR zo2KpEx)q%`CDD9Zv{x@Y?|hR~Y8ci@sk9b+_6ZFm}@`5Bp0Bp$y1IS0cXkx}TQHl`;lh@*x!7 zF8HJ70nw6bO-JF{q>%A8pVABCsG`^rU61flKKT~myE@aHN?iEe+&$DozUg&~85lTQ zppIKC$xQ%Pd9k(;A2@IxuGS}2sKLNJfb8i^Mi+LHQR8c;(v42ik}o?#`#^CK*Iu69(8GRe($6Ge}1?>7&A7*QDgJa#FQbGPl}8`Be~n?3MH zA5mU=c_lZ#k4P^KM;eE)HLjgb&mjwrof!+S&DAJitHfqMVH%z)KmK9CN$<3KaNfU` z&_a-N>C2ps0DtSyY_=9%8Dl}x6pYt)KX|Tm`vX2Cc^iR?>8l4K)e zhwr92QoQy7`CG2W4LH1t?j4Z}1(9xlzTBR_n<60JSma9kZ=cFI;ZuH()dRaQT6~mF zLyikKrqS%$vLMOrJ%8V*K>ITr?yCZ8^v?3gw=!_x~tn-ILU9k>S{H+abA_2fZdvi)Sk z__FOypixC0Ee_+v=?HrEiH{#dywFx1`$544099UkEieZ_T#n7_bgv>0J}Uog9Jkqj zhpBluy#rItoQO11tV5?KXyaU*0Y zeH!^4v;_tx*YFQe=o+T5^YE5x;ANqCGe8W|15@g46csB75or_q`*-%Ojt3{sfe3As zVg3Yrwr}+KYAzdCtKAkV zTM;Rfpe{Ff$1m~BBwmaVVJ)M+$i=;`cvOVcCGIc)?oSiSJ}ioe!fgf6a(J(kWc~ky z#)Pk!2y|O4rLhIZ18BKN1#N5($1T*%LLuz+Z%wQN=fYF-XW>owBjXI9?a`3*q-jd? zI3LKOdG)6!*Tdy|MOOWvf)q<4Ej|hgY8`Qq%~^Oo89Zi55k;tx{!P{+aCP480zZSa zuo`IJxFOENxos-k>rYCL(&$CBz}O4N0E*)uG&8at0(BoJ19JJ*H1_50Hr52*M~&ad zbUs%1af@|!)g2HfI?X}YTNYQ$bA##{7J$FSoiu?PJqf6oB z2__Htj5D{-`LVzQFp5f&$x5BI<&S56nnwfGfStkf&Riu@NE zjHVPbkga4`|1~rgk1mW(Ew@9&465P_M2Y6pNtg>-O3_KC8K>MC$cJi-|BthAG0jVo z6)!K9HvWVvaxG3DW&MVj$3Mf)nHxSgPKCGP>$9O4p@Wnm{eAh4m*cdntStCI&Eh}F)=4I8yDmcx{O8q2lh(cKq3htxmi>UhXo2Q?7D6hYU zZlw6PF)8>A&%S;}tLrpHU>ArPOr4Dh(o!`L)|VCOTc5!a3StG^+K}IRO9qJNVni#$ z%U`((a^q3#hNYOV71w30bu-6X+&-7cm+Zns-=&zaIT_WZmBr)n>^+BETXH5!@fHyC zes8}TO?+MJ(45Jf?G^d*LjbYzpZ}T@u!<1H1nGB97D=PfMltVEK4*A-VtsC2y~Zw>AyEg#;VfB3srwD6kE>@-(uj*K1v zA5`HkTF(RBh69BT1UZemGS|iUtenUX4Z~bEMYDjI&u|)~T=uZ?dl=i?C=<9{+U6SD4-$rLcMOW^rc$P8; zQ>JlMJWf_N0cZx+GeR$X)Q-S($7vqcn@^(@2=ah!!;%lmb2H8^M-BIo`m#7@L_&5y=p0FWBIC4OKO+YD*SPTbIp$H#93J_f7;#%E z(|thYS`~D+$tv8u180r9U^z*G?-e*_zAU3@p2h)FPqo;raWbhU zV+X*m@d>6qK|7@J^=375W{ChQo0+<0bH2HH531%KjL-~P4PvkgE&8(UGdTBI;Gho_ z&mqlfZQ(%Atp%Zxvdag(q2->T-LDgtC>Tu~aRfX~@KOjZ2flZLj_|LKh@l8o zt%&Hjn%sgChs6QN;c?d?jtxyRrt{+ zMyW@F+8KwiOCrjlXUii)|JD?}w)w(~a7(LjA*0zRZbUw8i(HydkXeq!Qh}%JJ(B%* zNpwE0yF>_&_=pYaj63vqIOV_CkJ_qHZS4SZ%PMOQBro}ZOB%X(iucrDUwmu^rG7!{ zh!-6j?*x^lA`fL|Tf2EDpL(m&S_n73O)%vFzMC2Qq|CByFwI8+0yVS!CFx`(3h+WQ zLfNgiKBK4e#5|%xrd-r&nRm+hB(%0*&y2*CMqnl`kkA*KsBN`iU}b1Q@>U!LieZTK zbVXD2jG@@3hMN`Z;BV5QnFhhZt}#6X6x;1y(?~$%UJrk}W1GZgAT8lM4;!z5sCv<| z?3dT*JN($+%%ao&F*+_lJuEP+j^66-SnSm8!UV2d;f&Kz@5eJY(gi8rR!7ClFz8q* z=M$HqFS1tz!OMsLCInnV0&5$Z%9CX_&hh5e6)Oh-g^6bcE3HorF9^Ycd>ycI_|`sF-LmO6rQ^Z8?aqA6MBB zLFvRid$j;~(LO7x0GpIoxYWzU{E2A-Y9*`Q{6ZewZ1H%B9U6iZGoCRcKi|zFNkNf3 z7gj{_hIX90We~6Yp?>1ivx;vkidF1AZvIhrvqJ$ja?Lf&W#{wxlm=vKW=Y4ZDCTO) z<(*%0$29k%2lsxqtCW`3F&L!v9qOfE{Uz!o!r89S{EbI;$DE<2L6EGPLk~SfUR23 zjIpR0XeAWl#i?x$^5rw2+&ITGfI_5`Cb9RrD&$TaGGdd|fqrT9jFd@Ez%ut-SK}SL zL2(=?4#Ne0!>-nQNH&wxN*HzO&2jG%`PfS4KSn2q8Bqo`e(5;R@MJm>-6s5q%O26|>Jy`4ev%Hr1KqRB<0u6xJHq&?jOn9%R6L!;82y%>+`Z{pi|aHWCO-SU`z5-Qhz(766CY_pzTOsKX%Z`!>;CI(0CFEOaXo~9{pZpGB)*aXo zhKt>T3w0ACgUiF)X+A~%Zx!M7D21;}-nb3^CVkou_>_GCMIY)-v@f@PCjQb?ncJDd zOD~d>+x^x`(DyKi54Qv&9S%8oPJiq;$fw_3yCsR4SwoNPhG?zXJ^u*;OzhXCf!OL* z`i749Bme8dDUEUbr8>Wn+N&^34(*LTWBRbje0=sTAfPjUyP~*sB`y+1AFvZQMs@Vt zOtyN#!%&V}DGR;-{wE(v& zyxP;&2vRvU^}r`cBQTcXCt0!1IgH{{KU|M7`V)Fk(==_?ieeb(HZXhd|1cj0Ew@M> za!M*>W~zuIP|7AZ&|2kQm?CGUsr+d`Bew16abB=+u7h?xj&qzD=$w<|NCJv~l)PCsUeqtabxfaiiWX?B%Wa^LfTIU+@J_f*ft zLVCIx+bu}fWCboUJ;ha3J29J)9@0wAY&(}$#;fZx+<|%)yGxU-Fq52{TLU8H%d~fo z2;c~fc!Ono=z;CrX$pP298;y39W-V9ia%2Cg4Z(4>CcK68F_>6R|Xxw@dAsR__XYp zl5rc9$}UEw2XfnYd=nR)BmB^}|6cXSMm3cCOmVI>4y8la<7N@psHco?^>P^~bCf5u#!?PmJgO#WUdZTd`m3*~sdc!Z5-&vz7v zVrhSfEuJVdFaJALVH}+*Pn2D!FxO>6@@U`nq%3rEnsRZjFitN%yd$G-A~`n3>6y?L zx)3y`wDEeahza_Y6?ff4my2b79=Rx&bMm>D57~8**vrL$FX)5PMmO=V`lXWi1a1+g z3)rk2-UGIb_MnlKu1vhKcrFH_e*FCA#o(JiAIepcr(G_9J?PL|V1Ea$?j5Yj0P3hq z!Q-s2uQ}Rp)%QZO7Ki)RMPMGi^hOis0DfzFT#uQ1ZIj0ka7SFkhDjze(;>eaz+KtY zCJs64U6}9uL-*vDS-oBz;KrqHv+#CDHek;p4unb z^C@c|_jbeq(0BhJh!WTj5i)l?7>gM)*6Yjx_$HOdk9pBkjsa|%!Kku25VjxT6#%qr zG?GZy!)-I0j};C5#YLN^2VEoyfaEhFb1g9LfUkRqm({>&B~4YT3wB%z3y|~oYdnYC z^v(YmEkxrJo<9qJd2E1l>5=o_?an8!ky!r*SLQEa-lM^%yj#|{8FHp{DedChVRfu# z=*pCv@vcr}T=eU4_dowJ`g-57MP3B*jogx(&zPxF~$@m@< z(CzZ_&<~=FzvU0jRro|opzs5H9lFtb?EwmnjTJ=6Hj{t4#LqG>pbSi>lC^MJ^Q$hR zl_Nz!;j)*yEWTeZy02&)S43`;9_)y3?5B?F7}X!UmSNT#tICl5-hJ;l@` z%cKmI^Y{;F9K}Y*@MFFGQjnx}ArT*OwxIF|!lz;Oa(a>q%l^&91n?h--0xlPJK)P- zqX0$TP|*GZRj~P5LE6yGMpc0dRm68}1?)mn?cz#*Y%9L4<5PZ2bm9~*8AekdeV>^- zz3-RAwHiIt7QaKmL6pHdH2c4nR0z}dqG-7V_z_~zjICmb!igY)>c|5oU{%c_c`2k% zI^tZFf~d?JVsrcQOop}J*nC=iF+N8D|97e-gLbd{!xHp9vu@hWO^;H^Ze`G}b&@k= z{P&ulUweLc!3s;JF3Ucz`+K4M?fbbA^*=^2Ho&fshVOLoOFt>p!Z{ve>nuO~W3*xT z2u~GhAZnR)>g_X&f%t6w5hpK`KlHoev$@>6IfG?R)O}CfM(cDSj9sMia_~W8u0EO@uqvcgHGt09HCsYX z$q#?EJgIiM_9a*FCJv-iA$cN`Yf|yeypS^5*07bYKB0Vpid|sfi5t6s3%O!{EaD#{ zK5UV>oqs|t9|x6Q;e%3F9lCmbKHl2%g^g-B49xb2|AqID%asrW_*hzlj|PvOQhd-l3V6(3QP{iGqp$98M9@pEmNDYk`79) z8cdi0Xx{7;GU2PV2Hfff+smIV7;9M1U@OD?VOixDMb|TINOhA1uSAF8`kQ8g`J4+% zyYShP-UKMTO%GXbw!alJ0&4zL$e{KpxQYP|U18jGT8qz-rEU7hh{>>iEHR^q@S!-% z%zQUhF(E|c_}lwWdJ;I%={>>4)XbY8pfoKy`s`+S6h%^)|kFz`LkM=42%|X>P zqhu)CZxA5%rI?2Q@^HFd(dk?0XFvK(61EtrD!(`t^T0>oPr)lr)%G8@`1)6yB9AEa z0aq{z1e3!B_H7k=0w)2-9>>ogiot$zr2$i4?{ttffq{O!EoLcF&aMMR9XvCUqJ9)WxVg_%jXO&!d*$d%P! zd6f`*u4tmbjKU|B7EV$? zKM+sWtR4Zj{l?6V>$@^?tOBhf!t5!1OM_<`r?t$RGcliV%J=CAfxbuLXN)i3Fu}!x zIAxO_wd=0C$NjR2>Ko}FhsylZoO33k09l$3h;(%J)8w)np6!)#@IwX)JBf`QS)_GW z5glws;HUjxihQQ%PkWkMy1o|kk|sN;k#u#SlbY3In^C>J=GN2%(OR)9qB8G4pxWOF zwCq1fFk)r~5FW)Skr6dlxV>z_V*N@fMsaT7&FtSYIsV#=b#jKNjl?FoTiMHSn)|>5 z<+aJzlIq?iNY|qpN}oazMQr3zxHSG-&-vrPt-+F9_XS~jr0?N7qW`9ljY+6?o}1_* zzWmG$L9+ByZ}kawXj1)FYPuNnuSg)mU&B!fIK?EE1Iy)%=4~1^U>!}&9^w4hPRks2>x-2pL%lq zRv$>*i?09Hj2WP1j7o7##~#TyC(3NE;4XFG)!8ik)^r5IP#Z@_k?)v^Y zp;v5$^1+pzxWYIWVtgQ>4&m>cHHHZ5<;_NQ#Iy4Q2u}reInpNNpr#sn7`0VkNASn; z6#V)Palt%%Mk)C^1FfnT?E;4&RUGdRo7~k97wdG{<&)i0h_7RE4X+Bi75qn&eo?u& z)Z7#Yg_v7M`ypW}^M=gP4Xj|TiR_GvYAovj;w^?qk)#~oa8>{0%(+|)^q=laVkhWm zALMVsL~j2p2@~s5D51!H@!c&BdoLrGnl;K=SrcAu%d#a{H2>SP(-kpXX;tI`r=++6 zH=6RLQUvM#oV|oH_urM4vhI&*&VB#vl6V~RHNwAoilD_-*|61#?TI*<~R&IHy zRCKA}G7p_RWo8~g#nW9LQV3ZpqIqDe+YXvKH8mwQ^UTSqydlA0>tu?oJfI07Q-e|i z6!VC3|6YB*zyJ2v=0x7_=kt1A*W>E{5`sJPSLV-!8YjVlj?54e0f6}K)d^L_Mt45b zpbfm~rz_bbS6000QFs+g+@w8@UILfW1i`|kJSUmjmNWyG|8LC}$KZK5|1CUDKdQVh z7Dv`yj}N0jYSJ1z5_mandH?=3tu-{%epSP_{yI~Anb7`n&g|_8?Gq8Qyd4&glax42 z5pHS58SDIT{r1ApxoxNK=9*N71iU>1|0q}pT%>##l^Y}BG~~@((((~Mj!Na{Z?2=}zG z5r(!d=AW+OUNC+H?9f#lX!lm%H%U}Y|GL|YIW^3;bR|cpu~rRK8V>CZ=pX9Ae|Zvk zHD?u=e3A^Zo(T=z1R5wcx#|1mgH7{Xr*1CwdV(U~GS8t`Udp^X0Yk_sLNoF6zVuUj zs*MC1pp)(<6FI8d_J;V^|cdr)xtZVconc11QB zcncxSZ*Kvdkg=}woS4POJ`QFnZZ8zIu7ZgnhO?FU!uQh*y`IdP3MI?);7g!}rydw? zs;BF3h(m3BejOnI^O0R2JZ|NeS+B8UI=lAB>2d@L_(Aq>Zx$FRn{?5js1b@N3&A;f zd?kN11XszSbG<5{>wB8uymQpJ!ru(_B3SrQ3OSiA@N+d2uPMps7Ts?05Soxn)WL zp?mFJ6!CiMXP3dLCF-6&vr{d zF#;aIoI!BF!y&|Ph|>eav|5gI}u-ek0-&u?aqnR&| z&0XJuDX~cp==imE3@fPr!mLnyZk1Ef;P!bmXuR2uJy*3#SI{LM!%OV z6Tsz|*Xp1&yscj7 zB)^x21kE67^Pz&khLi&}Px^-bA;-(+vFD;*f9!~Oyn4%9Qe5t{sF!e$i{;O#3k*70 z!TLP4&@}bSJzga4al?xpo9+GMau#@aZt(q(mfU!&5`@mY&9ZO8K6_Aui$P+NoA#q- zo||@5AtrkYJe60w`Qpadx}N&8bR_A)v>Sh`{(OokbX*H}LqJ~}E;pdpI4Ty%D_zsOdzVH+a}Env#h=noeNRg3 z(n7S%o!gE9jO(iScZyQ1{eg)$k*-U+lXEhjk@Hi z!!Y|aJ={C)aOtn~@akIovKWYNdvq@1)ciopYNj(_~+&DWcIsDUUUYei)6 zoE42ee&zv-1)lY^)ze0>63)JwRq5qPfcq}Sdb&%GHCV;%2ER`h9UmN|j3{qozFY7P zGcn?#kG`-7un+)1K@sr>vAA+H3P%lKjK7DFhjxFs{2D@|*`@&{?f={`DBL7=6H~nz zrO!E}vTY9p3zT!mGT$6pl~WOgo<>qew(2Dka{{aPzJ-2qUt3QPun4Ope z^t_KH(VyjlpYAhFV^w;=*z3!Bg$@EHG7r;N2vV4nk;f^CXRqCTIf=&5ay3IvCMW7O zgIsSfMGP&(3xTaK!d(wakE)y5)Dwb00;DMyu%W?GBtKc4*Y}cW3&+jnGdJu`{wzx) zB+XKWSB}n{uofshoDuch?QhYu20-gony`!ycVpS znP;@9jgc6_(r*8*I|SB`sQi|NqVUbHW~^N6}6@JdCtQ34~(yl)fu$vCS;3;-9^qnrHm5zyY0)&l)Yew`u^BZKPPt* zJ^XDLr8-&Je0b5WH-xS()A2DN<_Z_3utsax@9COe^M|}?w|mhR`#W=@LT(kFo8^*G zg+Acy;eT=VCxGz_ZSy>&!n~f8FP!O$rtFe13vFS++B5zo(OTgtGe?$^(-bygkwj~A zqe1;TmCtCC!es1GWC5rKXX zYV4pcvN9-TwWxwM1FKh)dv34FrD*I}m{Xvl9eh}88xTd`3bn6+TFk>Rm$w!&aTpB+}Snm<)I5nsV(D6CEmduXT~;YhE_N9@<2p5xr8;?iqjaQbo1g#rAhE!ImXn# zbky7~+B*BxsBD`!&Vu6vuH@Haw8AihW&sjr&`br6XRim7_fj*r`*1Hv7UH@gz$RYr z30UK$H~^v&;EQ>40GHLZz?%cdrx8mW>Zih$Zn`h?K4RD&b_U?s@!H878-46m;&x%O zo7RD$?hv(DlFN#*>t6VQz&YSlKfPc^_+jrW`^_3lV5olyWW*quN~GS&UJi&`6-h6~ zwy2&&ER=9-rYmti_ZF;g?r{#Q_^c&yH-B{th;VxsieIhRLRy!se{p=fo<2BnPYyVu z7MP!rGh90N9=uR$OCq4T-(iKB7GbFl`?Z;0s?0^3rl<6@F?Bejm3a>GYbNQl%eGGW z#Ls{xtcm!It`m*X54tSl6eO7oJcAT%RC)zmItgIXGX_d%!`KH2lyjt*r{t+u(m*G5 za}dxGI-N}|LQ|TGN%Dv0Ut5NSNS`sYhG*Ay1`smSoT$E?4Lvf1_}z=trd#O_Ri?k5c zkP$A`l&^)NAvaKxw^py4@*4a?2@V-!od%SlU5=pV1=F^E){Pr$@@a0>vwR4{7KV}@ z$VM=giqU#d7WU}T_e$pdRVI$HiUb`yw zRs>q+z0Rwk&{}cSovY$%D+T78Qy<|D$DJ|wBF&2M>^Tak4vxeL{L!S&0g^i4XRw1` z<~AFH#U$zM#{y+I5Yh63rsz5Yh2v2}7>ytzZQZfqtjG}N1MaV&cCd{e5l!i*uir<+ zY6j1@44p|l5cR&3)lyJv_s`t2dZY zuy9+DSM`>9KmP3ir|c_(GI{cI$6A{<&t0wx5LyHAL0rHOy*7gNk)vT8xMlZqDR63%UDi-k$z)ng3mv!Om&a9dayICi&V zJv2p!w%R{S?z5{*v;boorXu6<@EJ2n2AvI%J9L3-t0rVM(iWK(vs4?TO4e)C&A?HlKrk{V4F*B{K4wu z%OXpgQ}fX%EtmQrR`H~){Fh-ioH%vx7JH|K*TG5phNj2E!V?)vzBw>={Nro+p{5TX zOibO%qJ)V-%SucbB=#EL;+k7BB2WO^R7a6tQ9>t#%1`>9bELNRm;u?R-VZRqqkrCf zE5pqJ$XO<|`V4gY zm_PX=HB7Ta>{o$A-tRo+)s%8s7sxz`0i!Nx>g0AoKm(d1LZb`2xB3eF0l0FHmiZfo zHHZSSw%W?*@}UPqgn!BTQYE!vW`{9d;w|w5HK1>!5FGV)_9}F{!9=<>LWEiKZe~|} z{|DOE&2F=ZK~?jwt--Bq5Tf;v81;ab?PR}JI#@A60+CX5zs&srPk~Wbshz>0c9gRF zPI-;gJMIYRDOoep7rBJJj0B~iaa%y|%z}$0LFzN=$SG7b`e}&1Fb?Hy8!46I853cZ zpVXYvIbaf-sk~x25>-qJSSo2mn=i@WiQVBdz5BGah0i&4tTwSMnRd-@DZ3T*us-4b zZ66HP0E&9Ed9^wjY{V=p)m{OTMlRc%0PT{SRUKG=G9(}wC%kSGG(*?+3J$D4 z+cg97oGf5`i!V**C8%@;&u7+mRy5*tO4N-}P$uy$kxeY<5xt&DupA;sYN@`f?X1QSy|&Z9louAWtN1tGnd)I93)=YTM~mIpN3C1mM$GYP-gxHbF2@e`&90esQSy_ zeAZ-$TXx%c0x(v};yn{e`j1g?hPn*JOp*|y!vyGK!vJsLjSPxe!V2j}eM>E~xu)NA2ea*R zQMj5s7Y_7~dt>@Y_+;OWQL?-leN0|&d|^2{2*doION3nsW!{ru{a#5sAhf*XP-u4C2_mzOZzc_8T%qVV^R7I8e(?hKSK~ zPXAkz^5miYv)4nqJ%P7Z-Yi|Q7es`F3fZcmmzm!VmJGctcLLa=Oz#(&R{%7W`dN62 zhiXQ*4BtN9ydxZ!OYQ0iOrdI2jPaKX;h{KIN5l(pQ9Mo^MD$X}U9tj9>fL?gKwGlOKgx{m!TPaN@EGuM(r7qUu4n^5sk5o85rh?w2m1q5CiVD$Gu4Isi06O3q8 z;>$|@By4-H#C6MH-cJ2?LXA=qEWR~il8^6!d~FL}q-3!%t)#XrsDpZ_iYws9znh^2#9;!liO(=Z>y)gEp=EJ!3FGTLN}) zXF0DSVzl|bZV#s5lg=iZQvk@YKwXeV_)EMGyf`M<5|5%ibJ?V5hRxWy#11uo^_r1M z>Z+2b=e#M}y3$|H@Pr$RETbN~lKNQ1v&@xeFL7+PuY*1domR zHIU;|VM9eeaCD~eZC0T6ZwrL!vd@FeR@ePWYr7kHbYG zX~W~1Pxn(#+bE1{aKSeYh$25T6K)^7%_^*|53EcsP*OQ~foXsQ^_e%fbN_|rWZR(~n=i zA~a6^POk)7aWN`uG#@Nz& zSPOldEVK?sB?f zS89R<=zw!7JpQ9*XaQ#?*UiFH`FE>>)U^^r>#xaRCo7F&+$*aFiIgmWtjJH}dPT}A zy8_@+wOGK$rJG&*MSKKb+(`5Oh7Br&PSrDW2}WfrUZJZ&ExA#gJcO2x-0tvlhFPGB zRT{sSCAWpVD6e~N`?Y^kik`fh1dhU3lY3mC{3MfWtSa!SjtQrQv$%*-HL7x^?6nUC zyLSi8#?wqpU==lmTiDuFf%m#3Y?wYE`}8L+OhS2&ngupF+y{nwtmgg?yS%60vjZzH zDCn-!*^>7lwNK!In`uM;)yUka!sA24nbf4XnNGXh`6d&<-Vz@_S$+6+lEe^E?rDrd zN<;Z#rX)j>+-8B0Enpi5KkJ4s3*u=MZZUPQ_cW=ZJqFKR32FRe|JmI3veN%6ufuXh zOv9~CHBu9jMY>Ei=>555kItu*<;`W2n2=*#;=YzRwvGLA{SxIpdh6$V6akx%v^}Nh z0vkdG5rJXDw`<%Kg<`WJN>!?w5@QQ=id(ATLT+H-vp-+SI=%uU%t`w&JFVW$cLv)| z?QM&fI#z+a^bdo|G4_+_EZ!83CQbv*oMeK{AI~b8-A8uB^s?T=uK!cn>-m_PnrkL% zK6IDW3SB4OiZ>;DYe4i{Hy7$^Trv}y^FgO3_Q+m__6>!NX_GZkQiuhLp{`K|JPJL{ zH&7$KQqiNo8>GM^Dlq>A``@WBpBoCvHC8)jaJpwC{1Fwo(*zvT#gYF1;@(pI4LIN5 z5z~gl;ZFk^%-^opR-CHO$B0rGCi$v!0-__CkL*9O{SHPT8Y)`m0d*FTTf^9sS zMu$LlS~vi-kQ1TlOc5YVVW^%LRW;?OK95CU>7s8n@r|hL<2Uc~<5J}y`5o1f%LfzX zEsRs`-Qr)!==ALVz%vHTrJ=~&&QhBp_XGVn29UllIDA_+E6khlChl+s_V27&`to=V7*=es;FP zH+gcGN;h{JY8ms2u$mP{a71~`P08YS(_(5EK+mF_Li$v^H!1X!2Zf`OUr=xy70o^Y zPHv3D-b4DAkSHo&T$z~O7g!Y{-2tud0I47zrcX1TXT%MjFZHDnti}4|)$&;#)NONA zhm&A#TCdKbJ`|vuybjO6QlE79Hm)l{L`#G1#kb!PQ;WG*B>+nNa0cG|fLropsr@9d zL&X0C0I$wmjyDbR@j=}h#|EDN^Tk^g{wdPnw_jNTK#>Dgx!KXVNPc!RbPppVU|d`7 z1||kx88kkk$+_RW&Ppi^9Oq?`vRmfdG++&Qh`qa_l|PNQCqn>&{dvix53ob( z-Uw&oX%MfVRM7-0t1o2A@4F>BG~5_3pH*HzVd;WUu!}&~+Fxj1+4M-088n*aRaPqC z28rU0rQEB<@?#+k@h8W%l#JU!Sg%_WTmm-}uO@B19&pXCN%i_ujem(N>0poG`>M|@ z@ib|-G($~R2lCU;yl|Z2e{RoF*i- zHmom|%o3%}H4PfU$e5vsnv@uCzvHzXOUZ5V^&^XVF@PHa#VYQ&J6Tg*g7@(6W+_H>P#8!oq_ z@U(=VUDJ-5)#r1=99e&Yrbt6n2%1))#8h5xKYx7XjkO#_*=z4--z~e&Ij)S%b14J& zV60y*vaFc$_==y&7TfrUvf^SM`is$KtkG4r#5i*%6V;5E)r*pb95j3qOK_E}c+L9y zIZxPO5?;^mGt)wLrH0r&eKA2q_%3N`6>*VTdS9im4tsBVx`%%qWG2CCv=WkuiIzS$ zU*W3;6XV0^vl;4g>ivKG4&ww0Yr)wBw_X*VdofiO8=;0Bj|>_I7p!FQV<7LnG|A?Y zvM}ET%A=8h1Op)1V#KV=T^^F6A<>Y!S>z@F_9Ts6xu%;V99&ZnIRGo;%OCcFpfuny zlS#4XyP4(d$A(8TXH~7rhG|g3ENGU%yP89 zHfFTx^XS48sQpZ(Ikm*^XU?iO9i$Vp8^#IUHo+AzTSqI}*2W4jfIU>=He= z{98}9z|MJOqLxZnhX#vLzd0Fn3XqLZT8c@&0`mdZah^}$q4}#V-wS5XGuQruO}0?j z2Et9!LU4p~=)-xwg+-vn3Bahq42o(k_LJ;qP!59-^lT{&{hMKv)u+selD0>nz>nV; zYF!FpZ5p=il!QXZcu&J3aE$mRKSow z(|1A=^Fh}hGBrV=2cS({5{!p7KYOIxRBDffVJ)%QAHNKgWF`tnZ@F5gB&{UNgF6;B*c_BI1P2X_^;%I5tPgaGZ>jLY&-nHP9_@q1fJj31N~f+MU%v;1j@hjY z0-dkvYXBu|eINb61K<0fM*axH>SJh(mJh#JxSUEk=OC%@Bs~q)HKl@YQ9w(amQD_G%OV?WuZc+Cf_0 zit`ygK51m{0j)!p1u8JVH?F0Eu7ZIzV%%|X93Fi95R?%ddHnxMaK5P5F%x5_6c@Td zFVOGf*c9Udz3Kum4DO1jy8NIrmY8f^=Y4p3g-cC*$q5}Q!5%IEA!_v~op+?HGSIuJ zA-CqMJ$dWpSUvc?oUI=c?4_v2*hkx3@q6Ot=Ue{1vbW4d`d(BMi6#C@P27(?s4nlQ zBU)I%u6N%0aAVvH#d(V7E}&TV+V2)@ZGFvYC^ns3p|7||o8Vkz0jtxoFkYwh3kez@ zFbEng^cV*6(>(GqXQ+(uK_bQh<|lGz6e;dhwQ9DSoGg2~Iw`#Qs_%4PYI3)Pr`E#X zPA$8L>rtHOh_cLC(pD7f?U!N@o(EC@+UeipgEJ_)9d7?M<$IZw(#vAoB8E)>IUq1@ zHv(*^<`P@dU)T#rVoO;)ZdlG>1x{i$f5Dm8LiJ_rfLP{^Y zq(vzSb-7cMeIiQ}LR_Fk?|dBDf8=q&DOcctblrV_4b#{4n}g8E;%1LB)@%A~VAT-v zUvmAe8Dx}X*8fgz(m_~OR50QdaP6s@?IMb)L+P#uKN0OjAH@H~9rz&7i30B40e&ws z41s8{mo|OFoYD*?P0gYnLZ{`imXAbuuOdN5{^}(C@JRh%08^+_etWR1t_!3xf-tYA zg`H)W!6Ta*7;yesm2Z5*#Y5+AeZ|=TTBiQjLSxr89&|ryz!pE)8Vou-l?3x~QphEo zR#YvzzuYbS9}{h3Om(1w>V<8`oU<*XxY*F75+)3(AG=m)dWutZ{!z>1fC7^Z8j^QW zFA6VOTon4P>ktB9O+21d7bO5iF4+Ll*otN-mZ&)~O)!QD$VUQxC>2$Hye67~RY9JxfkJC3 zChy1x{OF^N0R;PDfL_>gwOrwBK&jHyMnA53LKTfYw%^* zsvXuzp$#E5mX&B`F$a)M5HRWw;%29Q3taQV08BvXvx`%TB_4_ro-A5w#E+zl3{MMv zEg7|SJ?k5-_G$;F9<01xK(5ahU`PJYOe(#T+HC@yR~8& zEP)pTkar!6uYA{?4!cb15c<2)JUE5Yey8`Wr$$BV`k)C> zqeK#Oz{tg2vGk*=VGCn?) zL_a7SqXb^Gbf%;RxI{qZ~&>+j;8z1HelPw;z-K zfK7W<5U5%aNf!}IO#b%NU5Iz_f%ugzi`cZ6*BzwR4_bh=b#<`4x~yKaly!7qB(E^UgUkp;^br9H9(0><~Th{+j)EC zuD3P;F#SK;4l_uIY2PZtDI5W==b@6n7szI{Fud$b2}dB zB1*u2cXU^Ol*l?h>i3YVX-JY7Qx$Xmny=$GAJO<@tTqx9fL@N{&BCuMxT7b&(`P-S z1}`7Jsic1%^xWGM^YyRuelzW?hRZ67SC>D!TU)g1BMg5@TTB*vBM3pFWO~$M#B&snC zliNI5c^Bske%Ue={8N4pi1fXz^c;ULDdAS_VeVP>W`+bN72+6)F9P>mTqFu0@enx4 zWPFw5>AMQshxQ;eid_D`uwXX(k5G4x6JV4e#s9?BOW29o-eYhjepkDgtdwanOEJVu-6Dbho|1AumdgJVD zNxN|?F4N{5F|;gZIw!xA0P=_Nu1deVHBA6V+L}SvP{HRFz{BPjhsY^`Hpq+~QT1=H z@(F>32EDmN|8k>}-+qqH$DLw9R+q%0QzgIs)L34RVTgX*EII@QHWfFn6>1=#Z;OK) zQIeB;B?^kNJw%QvJZcZy2`H!AEr2`TfDF#|18bl|kh|B(Z841owe_u{wK1>8!E;DU z1k3J!a5X)E`|Q?m^nTOqUftV~n90QObbfM^h5sjoMTv3UlenW)U%1c4k*05YwgYtr z>(+N1)S_#8<5&z;7}R^A?2TXb6}e{Wupej*wqtMRzYHEqOa%dA02_+y964fvD`eB_ zdMtvj^5LOua@0xG&!tD{L9@HjWL7OEUOek_7UzxAwbn@d(bj77lkdSa5s1316&+~R zsc7J$b1$#4h`#lLMAILPwYfDg=rS`69TXQzv$2=2@+yERQ3N;sRL7K-*f+5g+@L_%WiyabC6)d^; zEL|g7dz*?26N%H!%Lv=HP8nRSvL69CBJ}8-o0P+L-Ws0jY+gQ0mRB0BZn(2@Rxs-5 zAIQdromOnn_P!Pb7;s5B24BTPXy3dNRn!x)sCR9v|BrWMV~?{9ZrtjR6M8>dOK~6| ze%lP9ihmw(MO0ke==E<}6KoFG(n_^op!O0riM{lBy=iPY=<7JtTOUL?5)7)y!51jM_JqMUYq1WnTLAT* zkfY6?8?u34VHVnt#9*ANLu=$u%H5L9a8$x_--C#4yD+j(RrnC-~r!a;D z1xfJ24RxeB_;saMp1sRc~^WCglyO(Eq16n~C>SV~!E zMp&Xav?V}(wcE~2<6cb>(39vV+t$Cw72$|iMZLR@Z+~YC~tq)2VUS9Y2gl^u&d(A*y8SM|64O{01`M`iOUgL5q=$cVv)Uv zY*BgrLe=zwXWQ+oZ|S0La04pz;R0_Gx(s#iT&}*ylB}ypOLrfR!H+g44y9YvNnXjW zFjqfnVWHmdj|FwHG~XFVs52%zr;Z^?_FUP-Nms7G%_nRj;{4m;P-|6GE~Rhy1#lvy zoiV!7o%#iBDIz2V8*mA?^mKX+xVt1SXexbZ$2llkYI>WJ5v7HOFbBh>-GYm8v+jln z1=zOE!>7eyj-YjpJ^?1h5Mc&z@aVxIuV|fV(+~cp=_ic9o`>FVu>wDVMG02CkhL?r zx2%8~*Fg6y(yjV1D^s08XVJ^;)-$kx(wA?WXJ9`&Wc80mj8eCJe{EGfDxbOU1?+Zv zb;}gLMX}4$BuLy@1#h(T@s#RB@N$=A6FMIY*7~DK_hzchRI^2H9 zE$?{MH@*PWC9+pDI0wKRU!5d4G?ZS8k%U~$nFS?HLt+0a{k0*kxiMhzHc%FTO;EnI z5%AlnkEYFPSq?YPD7rp$X@yj<;XUt{=O698-6Sw(aoN&eWw7{(C~k`R03O& zA3r&Hh|R(|MHR`5wA|QxwE=&Axd$V@EP}Z1SE8@A^TK-g$$yeY%?EJf(YFLxoVG{w zR!R#`mVqj2aqS;en`cy3-sQ~Z^IgoDJvDf{KD%(R8?=`<0$pKM^z3Wn-)NIn2(g>W zYRV`H=HHgrJoqPIEE?nQlioe#t-xs^Gz{T&OUp%ZQoa<2(M^30bs7l{oTqGTyL*e1 zo($-Lih6jn7T&~849MLk2%gpJzSyr^@Z>Zz0T%DE^?NFgHr0-x+QQdbCp9G!bj9pN zieU*Vi)jCKs*9nf76AwhWnjMF4%Fr@@FwZF?u1!GbVdh;&Y`*Wc>=XDnff;u>%OWU zt7aJIqL1ii?WYIsM^qGF3IiAP2FZMe?8U%@O21TqjNr~9-Qt`Vrs->9#b-DpE(=s( zTc)DI$yy-*x1&p42$4VyNkG)2@?>&}zvYQcOmVWZnk=UYH-Mn4f?{y1Zne}%oL+ST zi<9U?XaLyzGu?-SgV#h9v#oVmA^wZ^u<3^%f0AvtORYu~N(7)ra^wOi0Iit8zt}Xl zHTY8BeCPMD+4!Yk{;*^f;5@;tPHQDXuD%DOrnP_z4&KAqd+l*147*?y1`jz=kbanTilLyb|C~Q;7A#xO6XVxkS z9|S(B#pPT2HCnzD|CH4%NxAXdPhw*4e7?|X5GAJ2+2H5uBnIk_c?Z`HF!b5x%zHxJ zn*fxS7kRw{rBHIsAWM8z?A5V?EZ-x3#b(vFc{Wkwp-(WiWctw)+<5A zhhPTp`Kt07FV<6FbB)6FIjeD5( z?1awe4$K;v84OZ+Z?Uh$yxWV?&6DBl`v@L79Jr<|l<-n8fNyrq`0=g!fs)2D%T8uB^dFI;j(q_NlF3~l9<2^G$Mh+ch$dQ?|Mz) zKVwd0yYFI%g?PfDu30cl(a_2c($>e5hV)_ZtOwx8?E@Z%5ZOm+eeqrz-T>8pnN<_0 z(Y+t>ky2(D6MBJaIME>D2HGpadCZ%t6aCWp!2LT=f(AUTaH7}fs>8?(%G2Ho2!S~s zUsB>bpe*t#otcpHU^eKBwoD%xi7$uf9Ttt=z@RZq`WOBQi`7*q&Rpe12wbHiwZxHC zvM-RRI|0lxieI$&bwYNMkd^EI{7>|7o7+evj!~%^>y}+5qVv@ANJ{aWJIoMdw74Ic z@ZxyhHxgIw6KxAy5W=e5!Yv~LDeUk}$zaiERyVht>NTG0TCD-nj}Ir9zVXJTe4Voi z8Z*K1&h1p!=gTqUDgst}E2c2j9_|;X4=UgBi+cNe*Y#c*v`b5we-4#DQE!hplWMOD zl+()1Q-3>pe>wWc{~Ilj_9BM$DCS3hpK{(^K=u*0!eUZ7vFO)5l2UvRQ?}Nl?Tq|u zPvRKNr3XM~R@Eg;8^6>^ht#3&9jfMR^3c^F_Q^k5ExqS{dU75fp;l_aM% z4Ph^C=*+6us4e=CY&YnG_Kf1^4L^!X9Bw-;LD42SKBe(A!7SW68gz7a zu1-!|&P6$_87HJ6v#@&D$d`LV7$tBmHE8P8VfxC}zJH$-s#IUmj2K|1Q#zXkKmXyT zf`;WLi~rSanml-+DG|qAy{u}!IP=*hc3SyHYr$zNeX--+^y|HVHPuYD0mE5>!<#$C zEo3Z0{JQj&FHmxP1xF1M&wgvW0?K)tAVuR8y$UuXR9NY zVwp15*O|(B#IhaF0mh*-|6B8&-e&;uOw-?`Je1)zU3}>YR{H>aYa&t2rwie+2qk0P zzq$A3jkduUc;{es6gGcxn>1pDfaSA_lFp01hUoL3_gu#8xkhQTQ8gRQtQ0H(I7~Qq zEaw&*VCzH9eR9HWL1C%?puez#2ECPVEJN&IKwwMl*Qa zKAlT3R9+Vw6=#BxxanTqytnB-!I+hFs)(WjJrBb=^P=Z4`r_m9?mneSbi`bdr>4_L zE4-M3p7MIa3!aNL@EFnsQE>o0d>#4b9;~J<$Zm0P-(FRxfl?B-` zwI4C+`$BfHnp9u~Px-bMxQNBAsr)<6{aftkv9{KL4N3AFFzF~LZ$%^UPlH!4`<5Q- zol80A*sz{B26NLlI9?MwOv<7ZrQDd~XLCV~;LVG-1?5gMDSiw+3X!(GiR5@Jcy0vv ztWUl#{J|-AcIpzwf8nt|Xy(B$;VvSoiHBEMp!C~qa#DVLW5(lTZ9jJZmN_zI!9py z7gw9;L-CXB2Gx_cFpx5_IPpN#Q6Y@5F7qvQIo8|lNu-~_8^#xQOuan#Gfudl1V`hx z1$2~^``F^HU=D7p!p5T*4tC>4caBFT*i8C?e#L^4(uG$0G7hK0`Y+q_pnL6;%jnvI zNC_yXx)&)>-EJ%R7#``V=}!l81cp1Yvgd8H@W3Tm91L$Zh&JASKYG`OO&?IeM!TU1 z=Xs!N23dR?x4-re>yagjiY$Mgy1&rAn<=Hpo?l=^vttUX!Mjor9*$?vg73xr&!37$7rGFljs-V0CGUoK1QC1oHYQxL>{$g4tFN0 ziW^2fo0?nacg$g*b!oC3*<>}>l>U@Uy$xVhk`Q^l57iyw#YmBYLm5nO?bFk#hKrQ? z2{U{-NMu0z{2bjfbw>nF0*<#_f5D-r%&7Rkw+UyFxfB3jcIb;U(b8G8B{CTUc|1#A z!a7leJ=s*GURmSXUb=IAHUJ#fX+)XmlfD%s;%uNxBSIbxJk@z~WDI4-Q& zM;dmS-|`s-B3z&$4&8>6qdT?Gdk_qOfA=`p@reWjVh(;nj*k?WOabDiJMPr45?(}E zW5nD@WPCLG4GIVBrvre;AO^-#u+OGf_rxwq*ucqroS2&P4HX=oYjTT`$V`-O4jsHl zra(%KGt^_4o*JwtKo%V42g#T#zm_>T(#y;Z3P0t6U=ug@WHu}d`*Lw>+* zReq=Vkf+KyOmwsPz5P6x*V4PW6rprzbv6i{^-5j3i2d3avu_7>!Mv4LWy4WYEC^gR z2op|br>v9>8!le=H7W(hY;O4Pit+;769BpTLe7j>z!?3BD`3Cot4Z6m@S29_`+H=O zxuBtMj_`zq=zVS?zCQ&8CX2vAGW_Ux!%zKU8p)r`n%O_$UE8=7spe{)Pcc?)jjl3yJ<%0*w${UwtbIl7&wMC z#}puIq~ObN?`gkdXof2CW|cQ6REZJ%ApQ(DWnk2ROpA^DLlE82JknH$Z2IzK(Cekt zZ=LgVTPr1W4jC&^Fr<-yqtvcU)(bAht?|2Yj=fOQiey0%H_kmW1%`yM8`9)earU+{ zs^2hh!!R2TMs6;YAMwF(Gr@&0LWa{Bd}2iAMruWYU1BaZ&i`2M<)SkX79r2XLC^_s zPYFuwQh0J&np9-}g*#}npTEVf%gClZWL$ioy#SpP31Mn>MqBwimDFIkCTW>~h_Uv7 z2i>=K_M&ezx>kxTri2abOlpanyL`fE9(ySg6jcGVh|WN>lz-;FFi(hT2qB<(EIKL@ zswp|ubA^WUqf=22QILa#9@utRtluIQJy2qnUon^a?^j;lq(ow(b5Rwp7jG065nw;> z0%G8iwcJLjn;7wSt(!PmobYyi>R?j{i9t84;syYtYuH8G>)YlCXZ+Cojmw<6Cg4Qh z|8g$TfG=fGw7{$}m^l^j{Tvy;*yy~m%V?x<1PGM8q>AJ=SjO6En^Am+JuNOFUG|c_ zDsSFAgcH9B;C}7by$AW(-UVmj!~lZnP5(HN-kPnR9^guxvAcT@?YpCM2ViTQpROBy z`sLbl6PK9TTB&BJ3YL_)vD{-0Z*?32WalF*rwe))b;lJ!AItUfTvS7q=jiQ#E}=x1 zkfX1~3p0ou*9dO7EA{zq;?7hYfMsFN6_}afcKcq8-J$_r?G`JD;*DuxYErkXSOm>A z?Ws1HfUN^0XJy@v0~dejp!|3Tgdat}tn%YN!S(qVBj=_^9?5J^e=VpJ+W&1E8ba&$pfJ<=wk3`0 zmyr`~;fG6&Genp#jgE)wC7lXy2Np2Q4!*gN75I5xXbj}3qmG>q{;q#7JVbdWDTnx@ zdQXGWyK2PHL;-lP6^`^GGZ%!R{Cgdz(ze*0Z=tNpN~rgb=R5xY{6EOllCH1?m`&4D zm(GJx{{LlD@~Y0)e&YwKWBk`K7c)}jQcIkftem6X73w}~&K9ydhMp~K-KwE5l%k2f zf6@ji5^$x1YR~7JiOhnVO~8FdP17IuEm(dfMbx)DHCuq2)4)0 zqMoA&;x2B2ZPzlKvv?7KyuDtD3zJaOZH^L~#4J#37Lh3|(7nx|Eit!Hs^ zuwaPa-4x+WkXb}h@)P{NF1FuS%Y4YqpjFujBQ2Pt4H)?TX*K41b`FQDH&9%o6)Ar8 z=zUFtnpSH^!leV7sshM81131pH&DQ=fv0`IC@{t~*AO-hPI(r( zsNEyX;}SvkedqsW-+4{FW+8O5@AfX%G<n`f25CizdD{Vl2-MJ$^Z>wjdH269cLy zpWYrnNd7Q6L}jbfMX%G1+1cY`X15PKqgsnWy}24Bs8&+3m<0J_Z2GI+t7w-8xLOH*vd+CT4t}*f8)7`sO6EVuKq8J|H(pL%0m4zq^0m- z$X;vbw{0(Eh+&KSpr^h7g6-*ZTS9w?*re-4f0z25p?Dg`OB`1CY8cMEazBJB5a-|zSF`=f_{tjAKo_viJ# zUf1=!;&2XUkvFDS%>s*=DnOAoUA?GcIvPmj-QER00b$w9jdcb!KJs^8GAvMEtt z1>kMIK(kv=cU@{a^iOgUYO!0*6H(Rd){GJTm27!>o1kcHJVuDr?Sb;WK69>C5slAE zQARgn4G&FXe`nq710K~zYMD4FGRv2nqu~Z#s0=-MuNVSl3jqsg_ABLqx6q=yh^o&1 z_HcQ`TVxpASCPAYYL}h&Ts6lg?Jpot*5)4<371ct%=kd{?PX}hq`NqM8%c2G@vPdt z5f6jTMO7d6--xV5;`)}qn9fAc7+;r2NgWLr2!-K=r1*V*>ow7pyKHYJ?fL5sDvS|8 zdGoiPY-~cE4ys`Yi;g(5`L56OY?f-|F60Jb;JW6+(x*h)t5F#R(%)^X%aI#+-%637fg2(=QhL zCxwY8Zr@ZKG|EbuZQ^hLpfesAL^Tq|iVzY5(hdz>o(RpGzTt+Om5;BD{m$|IZ%_a0 zido_Tu}0vE^(*EA)}I>m<*`q(KUW0&hO%jJ%5=OLkrFY{sWXr!y-pHL9lx6Tni~Hk z^?H`zg0qAD9T3X7h`M5>z9}9oTWYR`)itX|0LZdy^th4HI`_WOTkT4WTlF*Mq_F52 zqj;Z?|6#T(_gIFv&%o%cSk`c8CWzH#okagAdbO0_uy-brRDrKgJ*pi)-mkup@PjXY z%QL3@@j)BDLQKJU9*a-CN5iAD6DrM%vB{a{zuteJw4;s`x^UAbJnVLIBSV@;8o@4Y zbuSFhobu(ayVl2ee>viES+%zQev)v?BpT5(T`VIombIZ%QnMSOh5*X%E=OXLiZ z2kK>FUkKE!PivuAm)}>F?ux?`%2ft2G7Wuf>1DA=Yj5K+3}#C>A82G;M!p*{9#B?D zH2Fc&`26b8qYIf2pxSw8SRC zp$f7c#T@FNl>!T;eB$=(-+D8m3aZ@v9(T4ucM|PnYL!)N!Xi^#RW8y*dDS0OBYa36 zX4b0PM!1M7ku^=uiWpYLVW}f0Df{nBpL=$4KSG2=Y zIIQd#x1I34;=+_UuYTVf#l>L#O<+*VH9WQN6v`^A?}FX)-*#Lj*^W@`!`~>%UBJv1 zoS4p|2S7Mdwvf^ApQ3msFm~!E$#h;nSy@M6Qw6k3p$E4FNs^=q&HJAW3%0?6-anu_ z-YA|#Oi}szT#D*(4019h`g&#`7bq>y#HZ4QG7tBA4l_zRXH6>SN{H3E-`9Jp6d8`^T@df_v}=7XKoS3fvF0|j@+;kKN^4)ze6+-G5?G#w$m3gFv-J2uV(1yf7V%n2? zl?#h?pMfqqZpDs&%z5Mp@gV1Rt>gOiWyE6!^(Y|M-Y8-8%CtP1k%{4M-A+Y6^79Xn z*XO&PY!niE6R}|)xkldi=@n<_E%Sh(###TEUc_SKh~gk0jOxen4wNkG)!%xT7qcU= zsZ(z0zLSGNtIgEps>T>5=Dd_f?epNi8<~th2NHqHVa>(4}L0+_>AV0dvR4vAEU%k&jdI*Uu^Swz1mtUD&tI0oZd|eW0x6a;d9I- zR&5Oc;4!*-io!7Fm)*~mQA@8RSVaRTwIw-Vl78xC!C!kH&6B?M0NDGhO}bwLna{Nj z8i%f3_Y!03(&d)RYm5I{H}z4v8xuV#YL8jbhJAxH&KO-VJq$WOhR-sInECU%zHtli zD*IZWMmv}<^TP%zND*w5(#qtPIybX+`?f^%$M(llk%;PMSex1CBpIz*aB>UPQ z7te~o1gECl2Ff7iLiR|+xWxD>-R{qx8?p9B1;!|30T&#O|CWrn6HPx<3=4t_Ss9n^ z3>>KP`gSR7#ci3J?k+k1c@ZChsL^{|%qnKxT(|V&!{A4I;iAsmW=5>27ZTXP)~g=| z_Vh@Jlp#Bd{e=};B|JU)jbEr7wht}ZrXQYa72_Uew{7h#O3F6Fi)R_Kh7;LUjz3}< zLdp@kmj*6-*so2owNV_406@*tN@IRLas~a-ZpZamWj$I3jhxfDBSAu7QNCAt($|Xf zA|&WPgo#**6dYC3W4LUHsVWka!1c3b&h z;g48Cd0(+MAQEjdou=Go{{!Z4y$_pTQgn?mgSX?(X*7nN=peC;fXPlT)=H$dx)UKD zNk27eoNhKLflDr!&2Ki$A-n1X+y2(eHBOco@^&ffcXWAK=JyHJw}@X&*;!Nu)fMLh zjXHLD4eVWE!5-J2{6;)ESR62Va<}F4-ZaLRqua`HJ5Z7PS%AwV}2+rNL zftK^6LakyhQxEnJ=SveOsW+TQvR-*h?!HzmJ^sMhYGxzU?V5h|4Q}0aqLFXI!i1~) zndgP!**hJEG*o~gi~`6y+X+Nl_{dc;?J9dvJBB*#q!FqKapv*S;#kem09&4?LTH5^ z#zRllAH7tS*CD5VhM=bU3BiQZ=Gh@QvozifU8)83i_8!+7pbMBZf9sq=45vZNkk1R za;@K4!%ibu9X!gu7|vwm#%#NuafEdHvDOu)5hTLQox#s4t&Xzb?IJCfxbz**H&niNwYzK3?F}0d^w1sh9;IZG+uT0(SGar zycY`5r=~zxCU%klyH<+wjBB}=9V2DYOOG%u4~j@Q_l?E7W9lgDvFrjE3^w%&GNUO+ zrDiq?UQ=O3CTJ>zc`_6X{g=CZNKkR}K|0squD-`S`iaNpL-j3*GOg5#6?E1s(~UmN zWjVnIkp8^e$lcoYpC@vV->#^IjNMOZVcgF!6BnuH=^ys`e+bz~um>;$JH&Y*a=e$G zsTD1r{eu}C^sYcBNH+VcxWVe>@$rryMR$iTu=8tAh<`CH@IJJ++<3(%=)FQ!k4n1*7PX55p@2eLr?KdK1spi7|~9?hMwwudd|C>W1D@ z4+?8tH@Ivs$9_oKM77DRJ8kXCFg${C)Ik-ByfCJ(1-wurwYl++k4MR}=Crw7lh!Dw zo*pJu?UzPLaa0u^ z-kB#7&sJFuK_WrYEq*F;B3Mt^^8A_==lWN+hV7JN22Mux0B}K~o9aIf6>>zBYa!;@ zNdm0Dk>5~-SjTe>?A)CXu?dNfF;XN(*AEXn^+)CqAoeu4nO16shk}dWVw!EB3bTtI zqpac*cjIQE^sL??rj8$V=U7Xtlnw zkT!qypy5+G*D~&7Cd)T}T>TIY=`}Kqxt4O#!$wfoJ!$6B@zTqf4U=ezonQ~IQC{0otB`p3+dPseT{FIsGriJ%(MzIN9{@Xi4G;^kW@ zL7auzLEpdJb}Db&m$$0y7I!RgZmn#gi6-2=-ZXz(q}vlg{w*wukk8ua{g7{wGWQcV z@--Zgw^`ymiT{9jvi9?A#b&Z@wuxxg`6LH!VwKTX{G&zueCMr^wXLj-14CF5Rqr&T z@>h8l>ORl2t{7e8?1tY*9*C5O^ig0iA9Ok4$bOxZdefAd=?)97b*yS zeJ~DxjQHHAv-_H~L$F3r$lym)Y-haxO|Yn$fAHtW#S2U)X2uUfMq%rdiK70g0xb1v zaxMD!rvtOI5AF9^z1zfyTtrbqY~H6}Gu&>W$iA@wcm@ie!0Ts4Xopoqek&hg#wIfH=i8!u-I{%?|%~?IiA3u zz@ORxz5z7)ckm$ovO-+^pFc}sdfPl5;g3hzSI{W*KsrJ3BC-9Wptq)M!-U5ial_ww zl3H_)V1NJ>w^4%-0v1x$XjURHwRqT4B6&?znstC;Gvw|-*pSSSw+q_$d^lb~vMr!9 z;R-S8OEMQs6?rWC7_PdU27ID*mRc41$Cu78x9~Tht_0Ny{3%wy5)nnk%RUId&OT^b z(X&qtTX$-Ur>iULXA{W<$;HTOs$K%~=X$E~Kxjbs+eMPBNa&mKaXfqc6+PAC``Ba! z;aPDNGW**xe`B~z3l_44x(QcUe%%5kUI_WCOamxC$*yYmx8wEW7s(98i`U8aqHt#6 z<;*EFpQAED(Juv)=;U+by?#T5z67qv)#|#@ljXlKEDc!~L`e$9}ir6jq+d)#>>A^k7eJ;Byerd;E zr3nZ{73&oIA^qa5Ni=!c+8t)+`#{b4f?{1SBYWy5KLlvWWhc)JF#{;xOyo&Z4=Wy4 z65+zGd0gtV&$LDnUgIC}8P~hZ)52rNNZGnZ-?HW1?HbFwc2$J@um<~7)~2t5k~2H> zz5do4aHoBfykp!f1b_&W4og=;zKiRWa@$pA%1!wb?r^<7zS#U+_oa}YeolV!@Kaa) zV~}#6ZP0!alpKpHI%g;SdMN3u!S@qj5Q?A=x44kB0XgL`={Uq@6fG%^+m#T zl{vm8K*RYscoLgbjoRy#B~RHQFiy`OYDZ$1ET0;L4upox<7Bnsk1X255J`qdetYIZ za`HUSbm#WGyaL(d-!5$|4S6Ej4W8HS|8DwQue=!%#5YzQwnduBwJ$}rJ3H+^yt6;h zm|h4uxq8#Mq!xSFQDjlb%hJP2!3zaS0p;Yltz}&(5j}70fE-86mT&}G85Pe#94R2` zU7HS!C)xH=(f(J&jeJeGHj~CMa^SyqY%K z7cppS7-IuwwxFBO!TJd75ICb(=fsg5@#n_Xc$t{Qb<*iKT$+}o-~JW*`%tC)KDPf*VrE`oKuQCy7sci^p!R3XlIT`%nh%ld<|l&cOv72F@ zr)7HpKh`T2^M_hn$_bP7#L{QnsiI9qjnpl*52sc|-Y&K{UDeInUMp*`cfRbh3kdPp zn3_mPN38vUu*;n>a&E>TUv;#y*7k^3 zEBQ~8cz$e8liAVIg}H!CG%~2Jrx&;?wBv3QHA4ZoL)}`@a~!Wu+A7h?>$-`XjukS^ zzzWh1d(d>AZfc}F_hD$XvJ_H07XuaN$z&d*Wymtmzpz*<;+0;+K-rhk`9h!LI}sKT zBanmu!+^`DoA{v-i-1yYD#G{&5Jm`NHIGqQ42B%`X#Gd5^G;K(t(1}rsUDIhr3Cd? zzdSqa4tKGFnug!_1G2Rf1)-C3o~B1~Gg5wd3s2(lMREr^ur$6f27V~~IWmWxDbpFM z$;XT%-ujI%qMGM#kMx!?Cj9%DS+N{YSe_ zM^X(zs3fH}Jg1{5*BOr{HtM(`;{tSFD@7wjh?qu8616R-)&IoS!VBiF009Qsf5 zF!%>Lg*ugYWVm>ilEh~rbFe$yw&aI^DN`W$_CZsDEz6_Qk1l!IN^ZX}b-$UEU(dq} z2fL9O-wwjde;6k6E+$;1k>6*2ytcS`5{$s=SkfQ9ux@NGYNDsRQ-{i!R?e0)R?3it zObrb5CfJRSHL zoa|ms@NrXCk@*UC%G_sLT-xDEcM!f|IIqhwg~eBINZ`p;mdnYFdcjqvU^#fh2keyj zDfY6D7#C8Y?rj9WH+x;N0p8)6hMM9pV8-`~iy*NcUelG!omO;*CjH(kJ=#l#k7+Zj zEz&GAzcuQMqLHPYrm2pq9qK6GCrxc_29W%#1+n z=*>IJ7lKVAHLWsijI3CHGF2?E?{cLgC`mCvp8ZqYq1@OrM zL{~r&@^e$R9?u>39z#SD-65oOD6t#;I2@f`RE0G8F8$jM>WQQ2Dum6N*|#WkQfb2D zVY=y^pQ?rmWCulxA(duTMz;O~{Uw$YG3dpg?xvc4MH z;jB`Vx9RmH{}a!>_}M>;+3JCV6Q?$mP72R+Cd|+tZ2xEoLzHbuchCmy;KZccYJ-le zCtrVQk*qFi;lcLx29py{c_0A(>Msv2lu26~2n(xjFdrHUkG43Bh;_4rcd>>OW_|5? z3d69O=m6^^<~K@mX2?HF3SYPjpk4j_ZR?kPJuO9E^_C^w3}b`B$>z zBb9N;;leMEob1T4fk7Q)f#Z`j&X=Ni3zNB?dTE;q#ox6zl>zmEDbaB2Su2QoaV*pN zW~Y2y8@R=Gc@3kk)u<*gsoz;fjg4h>=!3guJ~%Ly-5yp;!=J;SljLKJZX=*k{Xq0y z@464O81=fXN#gvnn=kzti`VH1dBYEPGsCmTT;4)K&KOY=wTWhif$B;41*r1ecxjKp zQ`YTDdS23#q1Z_52W9K3ZPykHd>vvJa1R+Xc}glLXDxY|jXN|I%#UQ67g*u3Ctn-S zm^{$84Gv;QqMu7HWIJUsU3z&sfwR{trgucu>s7Th#E}}kD*Af9L~v@G`8^Ji!N1Cv z@VB^vuc7Dx70L7#)O_xWU4zXp!|FA!&a+WG+8%%+8%HOL9vxTa5F?PdJj$xZ>5s+K zdHA(N3tq;don|K1UrJl*k4rcA zIY+!u8E!$p+S5;GTfJhd6G?4BHurhd4-OwT$J@>vsY4 z4E)`#aU@NY^r}^zg;tK9CHzL(Xx!8vii>~S^3c_WArP@KsPr?_a|dexJ2+#LRbO9` zMY`LLUNRhYughoc-W#qI$NCzLdfb8eBU%yiOchU@V4x@j90MVylIT@~}k) zf6yvPuu&=a?zG)i3R5FE7mzHSFwm_+-;*AelLx@Qar2&B0~rPPAd2H~4^)3##lOvw zXGIwIF^U(kF;BwLsRwi+fYQ<5<>+LB(vByKay}|3ERO|!MH6>BYgrmkuD;)I%R6^u z<0VHt$J~sL`?8~;AN_(Mq%u6(j7Tx8!~+mdZK1qExK$QkYyn1|wQr36gD}gu@#j9d zp_6$BB0 zcof7{EoOybd#{YA+q=COLQ;4Y(-INXX2i4U8KBrO=k45~#(cNWV_(6zW!&`bJ_5-6 z`8Sep%N^Rb`mz~!){)i<;%|KG@UBSM*SV9sHZI!PO8Z_^1aK=>Tgue4M$#)pU1I5m z=TO}@;Zgr%Dfz|hkg&!rI45>APq)3Uc6l#v8R6M+s_-ZIwY*PX{!vNzSUMl;oB!&s zp&gTx4cLX#)%1+a-FP*{g@5m!_CdMP>p6G*XMT+un@Y@vjt$FJ7XJ=NvW2P%i){%O z#g-b+NuX7;S8HfXz4f6llJL`|r`iYn>uzWg1Mcg9Bmk~EamcZW_RX5ZGWZ!uw+bSq zqYW)#=}@Edw_e8Jog~M;OFCgo(OBPQ6k#q4=9nu15_LwZy_%KOl~~nn$lVJQ0xnYY zNLy;fln{#AJiHqH-I&LN2d+ItjcG!6FQ15MP}j`=N3-?5jyF3Podo);fMW2&BV-V#6S8R3J;-QHSSJjtByW4W5*;WPVV8pLa!yNCPvMkjGTPF6%9 z%EKgbTdr=3hh!}FABMv*hWZC}UtKYi)P_QB*NCylQe_6)9H3j9jj9@Mgcwqdh#bfR z@=N;`x8jDP=K9EX^v(D}@(H(NQ&qF0LDCVzq%iC51M+s`@WOU89;jd5lSksceOcE&`uLI40li-=*#6&-3~nk%Wa!Go*34eL4C0)pXgU${?y9a0syM zCCwalAtzPhV`fj>z{LqJOSEu7{9Es5YVj9+befL4d@pYsl?IC%-Q?_cH z+nE59`y4M z$ByNHW%oR*Jmgb+`-BTe0z{Cu7VPuNPjGzLNOm#g>EzITmA6h5CcPT1Hgln$^ym@O9|Esj_u<}Vhb)O&{tCv+kJk!TdGdU5d&@1ax)(jQm0zR@isgyvmvTQx0 z5GHxZvkB0NF=cDBdB~!3Nz*Urp5@sU>(-ed>TLv0svT32RmkYgJ%Jj>y~K+WCwc7w zrg`3%g`Sg-B6fydE`N#r1;hVp>C6L~2rWN;CUvFC<3QP$eNgV<>1gqfdSE;{R_3xwT@%B8kCb#};o14p7=bDe@Qwb*3zm8sFxF>@yVKNpc{QfaR9&C&1kr8X zTu6SzJU#9|d7lWK-}<5!a8+106&Sm8OARF^&jS<-le3t9g zclvW^CDFIAFZ3w;nra*oX_OTpM@fRmx7i-Q{i~sJV6PCyxJpzygV`gn`syBp>yxdr z!n9cctSdja?JCwd8EixmBVu6$9V z>wJJabhe+UAkY8O6Nzg#ZV?>bv}0Vp3ft4{Lj0b2!+LOAb%Dw%`Kj(m=SUwB^_AGHNyQUnk_ak3aig#rEY~b;@>gI@l@zsAd zlUTIRb`9*rrF1=AN*78cO0?pJ^iH%Zz1|i9<)%=?%R%7$J}{YviodY)7M6e52sN=z z^Z`*^O2338pzemMJd5fDoB44<;q0JC)$++qU4SziHidr5OPQ0Mbc@}8_FT(exUlYo zgQSzfc+xV+Ei8bIAg{(*j;6=ynhgtTTvk#uzSR~#(&otD{Z51685B)}u5ME!EIp;4 zM~*A1p7?U^KJv;c?*ZlRcwe3=i zeHd2O0jGiCh}wP61~*b?(T zp`^H1b4Do+@%}J-RH)#oIjPl~yu317?Sg(7C^&kaTXHhAuo%nVO0Kg&4@%9sj2hgD zP$sn^%rLGyuRtyi6f*ZUz){+TOCimXl)i|%$*?dH{a!}u6~h`AcCofJzmafRBcLWh z>Dm;q(V~|F3b1hPY(9G6oS4(5t_4gVIYuH?3r_X$w_Fg%XaV%*p_@C#gd1W04{F<9 z4q{&_N=W7b7Lg-U*5>cw5M%hd04s9)_~&huMVR&w7OneG;9|Dz zeZk4c^%AO@?6RHgVG^4xEvm`xHI$$ltOa$K8(XtYAry0~A`$(2QotpqmyJL>2DLrU z`14W6W_+|27uG(Y)lm)bgf_>7u561#{oe0C`$Ta^6ZOu~t4CW}OFW_AKCf0;F&nue zCAk>7$8AyFz_KZQq4>VRG?1Ex8e zUn9N(gd9Aqu+Cb=7~ygY22dbtwGCSGc-HIKQW0FH6Uy;uhbiB^jjxsiYT@2iswE$D zx-qLbC-_oigni~09@6Fo$8z9fxs5G!bvwPGnDu6tu+FUs$@(`|X}4o-7nTjVy?5%o z_ak3R<`JNb_T4FH{V8Ddgo%cBkrR_T`NNsk<}qq(6mHjLe9PthoeZVUqK?Y^TklMR zcf+xTf%U(?7sWIZ)Hk^FY-lo(!6{MVqJsXo2Q6W}aU;yo-O=Wa^)dn^WoLX%YSEL0 zoLFNVTZcZZnB#oo-$jgUI>Tjnj2xDZ)$dJouqckki@`G2=}bNF;2x@u%!QQ}ay@0A z_Kg4{e0_nU1~p92+0v^PD$m|4J<(g7cq(Ag4Uq?JGz?`p*#F?PfDRN9C92#~tm2e?0 zrxi^lK|CK5X!W$Od$q%%MchjIIKCZO_hcLuV&zc)`wE_%G%j5}$M2Gu72JQjov}=l zQF(5zDuWw|zS!kP>Q674&YB8QsE}3~&wexag2Z#O`bT&y-)yPH()rof7xnpwhGUKE48ERiY+GFvG*Y4`i z=8qlZTmgUYV3qTzmaE1{r|)&K<+bvS{(G;`Ic)ca9|cE$_$gC{9-X@Ms$YNR=IW?t@qZgdlmC^e9IZ-Etx6WXDxE_8nk;(R0`8Ua zDy^t7R*h{hR%4$_C1ucUs^JAr*1|f`;_N?T&=R9&XNRJ6;?Pa4qEEmPqM}|Kz4zDz z3u4V*52lkpe1EGzx7bj!vNoLJ=tbs_I|^t+D+1PBTm!huyU=ZnFbG*#TY?kSZS=c8 zvHBHZRm!?QB1Ja*Tp@a$QCJl}-Cc}Y9S~7_@Sk|Y>Mg$IN&hNB-Hsbi4cr|rity_N28e&{fjX7&s*8F&&t~rrxq1>ljU7?8Mp=$` zb7j#DgS^EInhEr9S4(`MwhKrk*wj}}rI`j@{9 z!!d8*yaC`i#t^wH2bb;}=)MRL5q=>|+AK;zyJ`*|$2=Me(7q8iJO^Zm09k&&-kW

_)ji1~E!B22R0-}IbAANc&( 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

{}Niypr0G6_2lG@+7 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

P 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

Y?Iss! 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 z znD*T=5_A|zgcAl%Y5(Z{J;er_mH_-B-Qb~J(C#H0-wiD}N9qYXDAPIMCwCfj9DwB? zt$%Hw+Is5$G)#zOv1jq-snEiBV|+th5UixSq1v{@sC~F=J~W-1__&dNyh5#_!SVb> zHMFtr=i2L}fDp+uK>o31R<<6{nZG;};kYb2erAlQ>sstP1s`alwv@btZOv^gnszEn z6xLXpVsD$EM$v^1kgN4FGEmIS^ZD;~!oCghk=~xRKwI(>v0~xh^quKrmLu$-RIWxk zK`;`TZH2|%PP;#M<2_pL!Az4@d70AjT?^x3$(rg#_0V)wY>(LgWY$6XY3?1~9) z92X+MoY`KNUUU?xT-Ad-0BFiw;4ByU9hQkk-$Qs}r`0kYf!p}t5$|Dfg&Z6HgR6dX zt!bRj`|TUiXn?LwD8unWCH2=Z z>53TE*@^M!S(63zB(vlXDqRWPWfA2C@ejJKJ`xAk43n|V(|Ck|Btoz zj)tp!-@ZqN2vHIdqKgtjh+c;wMTzLqTN0fhdN)cCb%KznBT=J9@1qk$7rpmx1~Ud@ z?swn!_gB8pddmB(cfHn{Wv%(cShM%OuIoI{<2XJ^_m=zM=ABDCwY*@<9yZ!$;pIAs zvoj|-6vHJ;AvOD7ApcMFX!c8kw0XifIXA~tM|aLJrNAK>{u*n}vj0=jh=W%`uX3swDol1l<{TD;tY^$VdA!ffc&}qv}Z0v|j84Zi2 zTEjRv!}r&!&(y+CFwyDtmgvP*rY5^Gr##i{WNf>m?n6e$ydJL4m|A{2U8hgzq5OhS^C-O?B#Lz z!YOGIPS1?K$D9dG+rz?XT-o%M;#|95a&5|fixpQM<2mT9gJvz3C@5Nx8=NTM{))<} zEZir3%~#rdX6$+DO?Ry3;t7sa)&YoBFiQot0Bs9lW5Q?<4_rsp`JLF#yGn3JVgK|| z#IQvt>z~uoxOL+Qgp>dEBfeGcWJwB^5+VjXCCJD7fJeSCC5?-BOfZ>K#d_|{SUc`p zE5#c6v^*>9)(zrdKe+Mb>h93&#X{+kz)F1x^3hD%0$=Lx=SrO8Tb82 zBWg^_#bml)0g@9ve-Up#}%sY&M(4y-`ALtkZ>$px;MqzCRUC0Mh4}kE% z8Wx-PPZx&9NC>;9dUy~R*foqBaCs#@0O#nVWebxylRbN=Nuj~(#D`4v%;50X3cJ*k z&GIdxx)o;NW!98}jmD`OQIBQJagM$o+sgwNKuenm@@l0du*~D1{1H4D+uBc={CSkP zHn0fJy6u`U5gHWjXkdzCTWuj{ifLHV2$Wx-NHmLyD=L)zr10(%6j)_`go1S-P|>(+ zqc(7-gR={>9%c5Q=LRTK*S)k=m|Z!YcrC(m#ou0N%3?=Sf$iLe>UL0g2o!Z2$a^<6 z8+5(fEb`)rvhv=FK7=FXkpfHQ?_PAd9ZnRL#$wKk*Iea)k7eH+8dL0=CP=bOjd&mR zTFBshSD?6;5HpuIqP||Y!d(3y%07A0>Yp{UY+LI-+d{wkrRRp=BLHfC%at`FYF*Qt zzMlou`-SbhW$53!BhU#V$~Z5p3Vp|@WxSv1sZca0+XCOm9|`+j>juq1L$!&DsN-F4 zVu79<&Vt4dKoBYQhJ_4Z)k=d$WA>alUw&*pk$e=i@3=6H1>=t$51^FW63Ba~jrbVb zB$8Z3@a@p8V&OBcB;3gL^v0gp!**@ON528PrucC|w`PnaQm_T_Vl3ZB?B1Lm`THqD z0?-z>9fjQ)*32ewi;v;O(PUK%TY=G%%ypX6PBxqTxXD7- zcgS^5@QOxw_qPxD99yn11^kV_K(zM8o;5uPE}7~AW`z zw&Ze6G)2jg_+|b}e)NBmH2troNpY|0XylErzInRT;uWLYO&-3n`>33Q1ZM7QdHn8J z$FYDxUDHVh*hELluR!liKuDVXc*|UOEz{)EyH{p0m&r}tn*ds|e7b-qXUp_Qt$SWvYE#YpNIfh;{z+*j()K|tY_ zP5nh)!sjb4a+Q1jHgZp0C@_(on&~rsYp;oO`+L*lnemRdj>SiJO?wlloSa0UA7h)S zv)N&7Y0Z2_T=kh72{8klbT)E^01mJ=fMf*?sE2oCRMjiHLH2)v_KE}kM$gbd$wAxO z|9BBJ;}>sDA$mpjw5I15cFwewXjCi(IrzT4VD?zIUGknprhgBXmm4Ke`fM3h$L|WT z?W0sgNBh1h%)xC&g;xV^tlO*GdLZmw-{?0K8$?ho_^K zK#t1HkD=&s;c*`jrEFS=H(dL8as@a%@lmE%ep=mNg194b(4LGgT5)mtK`=$UI)LT6Jjbg|76=jXob z7k*Xyr2t@Ezo;-V=^5)k7=1;Nq}L36E7nT6;{|$cV*H#6x}X5f^LgA0`?v!W^-)$$ z_iTQgey)W&q`nQeh9Cl{fHdEn9#&37cNYJI_>Xpr>VdB#h=zMB^e8PT^VA4iRc#oS zn$+A;&1Xspe*o7qGe{=M!pfotc?~BG5&l$ZKdT)pbR=wQ zi*^SbX7ak|tct7FHFeuplnsJ{>vqGJpcNQ;gr9M7(Xr`kY3Zu3ZE}Y)BSn?46o_g| zoWPCDw83r zFLXfxz3_ZZ2hdu6UD|whn#7ZBF0D@D zAKO76+|73`#imn`=nkf`?t>hQB}&Mj z2=_t!)3DIcR*Dk5^7WiTpL8W(kK@9W2>nEkgQWVhF*49=+k$n+JIl(Ex+b_tmU(m} z&@Psg;tYH6q+pc{U=0$Lm)L=O1GIrd$K*qmIdwv8vp~x1bzIWFPcp^m%kk z?^=0R@IsZP54Qm2rJhoR!-J_U-`8;1O(^0+=q8r-E)F)21au{X#V737_x5r zr;)nMpAoc25cEkTXp;LpR!FgB7-Mg4G`%|GyX);AR{~=^<~x!X-n|J!Kh-z( zUA^hi?j~gAT(UKvk%nvSPAkW5#nc39N$BhzssfeUPs0O1egj^B+7#2INwfwj-!XlD z1A6!nnD!}=pUIrSLmG|7gXpGJ25OG16E`CN)WY$eucmTFh%6)sqgh;+<}GhlrY(eL zl(&Y6fLarNrg-rfijukD(Q2(5JDn?ia)33Ndp7<8sF!%o4LXC^CvDNxA6+p12uz)O zb*`sgz8`wN%rX00A6;lmP&@gl!@X&D{?TVcid zIzjqs_jFxq`VxNW2!#>O0eNs+oZoYh{>0;h(-w(M!l9<%?CgUygHt^QXg}Z{fJHe6 zn61VfIPW|W@5Cp-mlcGHkAg|%_O@GRZ(2A#ZgbtKke~6C?sAGp8V3ws?6W;_+(Hoh zxHcQD35Y&txIM3y`qk5L!r2`&OC^U^pciwA2ogqL&!qd7Z|AOVFZj}}I_ln=aZYy% zxZfa}?E|KjZ2qZBnNeV({pV&oYh`Z5o*7Un)p-Hp)B)|;hWyU`Wd5&c7= zVfVpAue`K`lcs|}_`v^m-fCEgYGEb_j^XU0L{dMnyWJ8|=9G{0 z1bH+90h;+wjKs{SHn&e{7F0Ma%0}xGaM9=`79T(dfX04v@%+*4LOyq2w{W1yjjwp2U*kXHv=on9Uj28dXTzkgK@h2}- z?;)3)`LF(6ztEen;SN3JTDX}NI3-TmWL#|UTGyP)I=EfDGeB8em1n$Y!hVBw?o5Q2*<(X< z{8~#>2lQ66^qQf2?hy{3)IkTMpIhEsALh}|Qmh53u1%9AQKyr|M4Y+zyNTKw0 z!1tn86K>sPPj>?xTj({+1Nh;l?oR7#Mg>S0;K~&nMln(|r3K*6QdVz%S<8I{8cCkL zJ#1{IDnpALnWD2&ISNovO;WMXQMb%NY>IJKldrqueUcULa}!cdcK=`)IVNU!rfBV8 z0Q>lMH}*-8rFg^1E&tamtuIc7ql4(jAS|oDPR%&fqUiVy7riq(g%c_P*?paTZwttk z?{_SNVevzNr5k3DKPB!D$6S=2HW02l>rTXXEQlfCT%Z0keS~SXW4f%$+A~e@HIn(H zj31=I1+9KqTo5(xI(5U!fI9(S2|WR7UNOA*WK9$GM@E?)Z+eO|de?5T`%y-gkHFVi zdge2*J^tEg0}I$Kyz-wzwZjOqxDqgg7{0MK{mFztVqsuUphay(&^a#fJgcluwS3n{ z%PtQZlJx8jc>V}3R{ki`y@}3p7ifST$=}1xJwb7AEEd3W=Ph>xqy3FpZFBzquDZCI*4*m@9?DP3+h9bo$0L1eiKa=l4*}+?RQo1;j}#I1qy#{R&2=og@R!3#3|`KoAE_NuliU3 z&o?o~z+8PVx{B&>PL|+4E(}k6K^o3q8=0;n{Wz(3t`3VSf>Posu17R$J7fEBf zSlQFfChpT1?tJi7>E!3yO2CjyUnG~S;r9IVcUVap-;fkJG$sjDyPZ33ekP{hV(1wS zBcL$FLD$n?;9OCT8m)h1sjG4}qW{uetz3!ubl;#A_v%t(sBO{a9UP9T8N%0Hb zHiF)BfA0dszXBNk9Y|lH7hC)^o_!g2g6>D$hbizM zlH(XphA!U$IZ--Q=W&}4cbOpYpWCgYsyU*aHSf8kmEMbf=?dNtOn z0&rmj{lT<$0G&|m;TriP3) z$^*acJ}k7aqjd55xSd$AsI{xLHnIYjD+JF6K?0Pc4VT(4UbYindopODZb;t-V>Xb% ze$goQn?hP-T+2jH{{w-ZmHQ`7-sixR-z4f&v-ZpQU74T6G`!$(q*Q;cB!L;#^~~2# z{tM$RS=rZYqqGF^!2khNE1nxEKfZ4b56l(7rhkivRJXTdd4M9Wttb)>QObIRuKiK^ zjOBIxryEaWZ$*DI;H+r7d)Qi49!WFMF_ngohFm>y;S=4V4G1bRfgVPKuzt9;RYLwn zLAQX@bmGq!0-yYdwF)rA1aYifKsvgqLo$sz-Wg-T9iLgGy7gR$ne4{-NLH^j^eHBr zS~>!|ySV7@GF3Fg?PqU^aEYXLkj1sPX zTp)G!pd}H>j2iwR-b(Lq(>`Z<0Q#Fa$?|rWoKYk7)=t_*Z#PnWJc!B1rVqm@KEI)V z<1L(N(^@-)>y$+#up8t>qmMi16Z;VBsFZ*3&TY|UW;mjEPd`2 zud8bpb6AW5Z>&?bi1^27&Z>1Dw(g`oD7fkO#PU;6NzGf$S!jntYvZ_hfs0Z!Hyh$B z(DEIW)j^IuUTYaY%&%$uxWOG2{qrvn;0B!Pu!t$>p%PPf8Gsu-6QC`WDD4j!X33yZ zVZNOx9BU9App1q`;;nmO)l7(S$LQo+E4(!W10~yT(+pb^w|_yi}fB znX4Q3849e(xU>OGH~$x^$^TYF{#X;RxFl`&8_H*LoSRh{MPSk4K*RZCv6lrJ1N5b# zzYQ`7BYwq(cxe+c$kL+n9crwBAWYBrhcj0|xy6g1!AZ$aI7@?;0K;-Cg`u5{Q&|oSD-|j>+EvlZiLqh& zD)~rt!+#?7%;6Y5ORXmXrPA*+p@exezm(H++rsGK_dZR)>`n4XJcg;BGVGs8k^nKz ze{SOUemC2q=`GMRb&Sm^t4v-t(f2r}i!?-hxw0|`K~GUfFVr1ZS;H*_$L}oU{9^j{ z>iie}Ndj(aP8M!gYRY?y8o1UF9@uZkpO7?}ZQy zduI=UA&FZd^@ua{WBHv?jO1vIztaoeoJ2?46Al`RLf13Hc$}2fQ8efbMuS7)IZ?H7 z%Lilvd6W0+44M-a8{XKQ!$HU0QIOMndkJQe?MG2(i!vsAl*Tu7E=KjAr;zYf-j`ap zS`LfPbU&~VoHsRhn2k*uI$kh0?Q8hDk)>>Tk?6Sl7bpx^1Jm2(S?rHKQJMq%?0G7r z4!ntN!Yb)7FdPWmy7k>2a5=`&CtYPq<3AyGENBdt3?$HIvx81Dq!Ctj3!0vs#6fy! zSUiNZ7{_UpHG8;dP`Ma1=tIArEbBfZSxERQMzptdCrHXf`RxVtLm6ZsO83rE!NSMe z{XPD5mu95SegP=ex2jx86KT^ZATLIInAWVcHZFhIqieab>^5}Ky@T+eMYh`ld0FAzXf*)lrR;Gsr2|UZz{2L|B0u7~|ywK>Mv3KRboh?369MT{}?tGNm}a zerWTG7T(h$*er_uG+tv;`dF#CE_{95$=ITrRwtm&sY%U`;+p6lhL-5$D{%%9aNUl` z?9@^>#gwz)9xfN4p|Pv24IgS#^M$hX-yAoG9rCn7 z5O0pmyU}N_2*WsAfuHZhuO_ryr$DLHgb+B;Owr-0vRbczMwK@}ICK62z4n2sjMc6j zlv=7nmwF5V+3T~Z-mGh5t+ma8-|YX63rR>NEqXY=gxeO!9)SLq@7+ZM8p@ZuFj|Zo zlkgmEt)^2nP+a!b8BG73a512|kL1QhOHUNnoF>M`7j3yAegV4)e5Oh57S7i2&x@5Z z=SdK3Ce9td4o#L_BkkTk_2EGsMLIv-)gU)BQ*slC^whlquyLe&<6V!MVXNw*9c!Jl zUfGjgB&kckv?`^Y8-iL>_?gtk$}xj41fc3QDZ7W3AL4}*1BbIQJRu6#lk*n$(n^u( z1#M^aUj%8y%yTagit||=$PN^J=)OFwkHLQXXc_tW)Rf`nJ}DG+mjM(cr&>}T-g@&O zfUF?BxQeBx?)}%aH~n3$^O`QYi;Y0HcV|kb^+QdZ%plfu!DxU&S?WCX1~YbjgtW^T znSD`P6Ij@ndFD-{F@v!YxN_WPo7rmr4p^qqX7ey)<8L}&HZP$d8#euWKuZW=j5d>P z%i^90P)OsmJ4;wdy#`Ia$=4-1Al!2;zM;HYEK_7j3E(FUJfCy1C-1z6)s98@fx2;# zK(g)Y0Qo8LTXR-w`YOXYt-o4vC*-)Idsg*XQXD#CD($zG-84Yu1yH-<^uhoVTVmeD zXJ`F9uG1uMv#&IvC`Po)2fxSIrLF}=x+kM11K1x_BA{4jVB#M_!WIV#^!&b4u{}$N z$bTM}l7eo#aa5x)ykk(9YeSy*H5ia+`T*YM)@q*U)+&gA%gUv%unibo1Sv>V{n#ClScPcwHh_CQs3RoL2c#boUBhE7J$#+mukr0RlQ~=z9 z0UMVu=2d17!<-e5$7Yo+URHr%r?<^*mthQ=%T6|d`eXe!i}P#kI8OTJ7~U3mk@AGZ zT6qHVB`&;7H7+do=}k?n$)%3*?3(kkXlyan@^YXsj_t0+%y4(lnx)0|>LWl;eUb|a zl+Ys0@cGis*c#($Gf|UXo8=}^*h3>u*ezFp_5p>dG%C5K;TxLgqrk6m&ikcKxoqg; zPTW`6d)V5NMoa4lnC;cg=V`JnZW}fJAMStPmQbK>JT^f~Veanj76HOezQQ)pYa+m5 zbN%n^VFp&diN8P<0o=vAinTSR8I|9F)A7T(i&Z3jd6~TQF7!3ds8ETD_0X_%;>u9? zigxO^IrTWK259@4Ml6!^dNGmHE zh-hxQ{Sad~Rla#}ZZPDRytiwdw}5Zm6SVbBmoMo;0BQdC2jkF6B)y%`L8qDvHsb7r z%=JPjn`-Re1&U_SOaZ67`cJD;pPJYd{ti^} zc02o0wV?JpNo7oOA_It1VbdfG%ec(QvkdqcY__x{v}5#$NOw!mr%DaDQJtEE-#F`) zy@1y>-+wDNrvlZ}w%+6j*y?$TWL%G4h>l!b0B7lrBqLozV4m4Sqk{)_>6~TM7T=iR zrGYEvFf{3k1bnTBK0@i|pJcC?!m0P~Wk}5>EvMKC%vz+0J|@_ZR$$MH-1kT?C1;wb z3V*GtzufhLw`1MO`8}xoC4jRZWa}~h?f0x!bZ2TDydL>UCGnPs!Fw<%2*bQK*<5yn z^+E@T{H$vnE8`^4-H}Pckoe#SJuE1ZWR8uGV+F)Bz0~YpSHMK1z9sp;z^!Gsfy>M9 z_4vWlIuQs8=tesB& zW~HSq$tC)=KYK}M`l`!}GRzR7YXfOy10=yXCgGHK^ zSN5oBw3YYi&;*?zlRR=yeGcMPCUr@GL)rIg87gm{!o;;IqD zy~md?XirWD17(4Q>|v3Q|En?2a}Tv*X#j3?{)GKQRmSpNmiB}A8Z0zeOcf%%EXVXB zQ$myErzp>v)mx*;tJ9uFj%ZV9EyMRz(zLrEz8V6;wrEDxw$QlK(}}&aTjaVvp3(^T z?Un)tt0`Y`MrmqE|6$`EybJ#;PY z)PWbgHn$YUDqs1Q>ccqi_J}4^81DM;&MSiz+jz5DIK|S|0*EbD92-tcbnKOYqVKtg zjlmY1I7x8+IkeT60+NCOu zaRUOZ|91<^zlm4%&<5dR+{7>=!K!#vdrf)MNeK~^h zslJSf!pIgIL@fH(nm$q4r=_s{2FbV+e~u=>sjbx_FWFHWlULJ=FFq2QPU_g=0>3<0 z8BRF`Sm?k4@{FnBbdLLw)y9i0^aoq1=OkN|UUb{itUO13;@bk3nS(!fHIb_GP`)$Z zE9-+WpqNxpLqF59a)M@?M>0p0u&Yv|O~Ph__3`t|ejeo}|G`D$17Vo%Vmrb225AspdZbZBJB&ylMHL9W& znTG(vTff20yYD5*cWZm()0tz4N?jSXOF%&nHi-e<|E{oAvex_s9s_S`M`M=2N0Rim^bDL7SNzkbGFGNaY|AB+Pbtg zwb1!4f)3rW)x4@ruRP-uNK3O${7fPtZ_X}F zF6)a;y3@gZLrc~+OP+a*_{rn;qX^@OmereP?%H)JK(bV_jZ(sk^eEa5J@-FuBAT`G z2;F~Ey#4FzBaI@Ac|V6d&N14GaxpfA)qjBPV}L#iu@lKscOci#{3`f(^ ztZmRRh38Cq$rTJxW>1wP+SxZLI7Kx)JK~fd!+{w*W6o8t(oN zhuMNoN8cKI?$5c$&s`qnruclh*C+RW?h65IKoENQ8mC=ee?-o6h2ba%x=-<-M+#sr z6iMJtzEK$>&uHfHLR|>Qy;D8#g+Yg3K*IAM#(nYupHmrMQerN|60O0rUS_bclZApCbuFK=KsRr}rH_uXMMKyx@Pr1Jo_d z0^BlJaGFJYumK}>CHb&H-7EfeW6-5{8-aZ+KzT)$e~?kh(QrhuV#=}S7ihM#q6aE$ zcGtJAZHZbf8!sJd65QeRLf02)50U>QN2C=3r(!?#f2ytjm0{}tulN2xc(wldXal*` zRwg@nifUC%@hI6B`B%Jo>q#u{bLtw_77KlpS8XE#9NoF|lfBuSo-aCW!7Y<9EbwJJ z@X!BhP61c6G(ReL!NL3Z+^e=CmFt}?$d794=iNy+y7_)pYfS3bj;X{WBVs zlACwJDM%Ok)_&{(Fo&}Li%sBvw^0!F;+0T$>)?1uEj4teEIVni7U8^H8hcCGlk*%r zcXz{_?JE5+BD>Nj#-L8(CP|?!*nxf;i8>>;* zuN7|df5qkG&hNn}#RqOm&6-4nTd7P~)%F^+vGm>S_5^}7+N5M_m$&ly_t-*^_a-2c z%Sui!r0-`Dmgh^Tge=vIayTnw-A_51KBE@H>GC~!PtBxVrVl0g9YUW3dRt1DzW6V+ z*Wa4%UbJSUQ-Hxr@c|7w^?svz(^Qer{p84zV8?C`&6$o>7H4VC%(t^n5f|ur0U}2O>yQuUjDTfwe0kA&Hc^@%?%bm#tD>iyhk~! z-4QJRJfT{1W0<&&G_E3HJe1lJ0B-zGh9zLt`};j>W1n=z)(H!Zs!5N_n2Di1pEB(X z%kq9IpQ9baR@yS>19=9=6T_xnnYq^@%(wD_-@)3{40=+gL}$#Ndpe4CLNr*VZ~yG? z{G^yojVvsIk?l$vw|)={e1UngU}n@UmQ6wVJ3A?UW-ogBe=yZu`}b-k?J%Kdn3L~& zY?W{ucw)S`p8$PctcKc$*^(JAI46`pGa62gSpN%D$>adaL~5_Nl(o?>T&S zIpFd>@$N;i2LBV}^_s@|ipKceF<Vbk^ zw8RShvKgenj}-cV=iTC204>h5*oSXUyJfQDskh&4x*29@N^w#OXKbSXomhVq(ca%T zT|hXx>Q%Z9F0Y8Q!LFpsYg903o1Bd8Y}67rdDaHK;b0sYb000$Wo(l*rextQ^2@TP zO$NnG<7beCo5ec>Nl&@F+Td>e3e?HAzBe!4BERD9SYn~!ULpw*O=3yIU6=T1EAiV3EXj3aevm{GZ<++1&@U7Xq4Z+LO|YK#HT{TAG4(S(~255 z98oFo0}Vo(dsr6->@Mhd7=BScEzj8Uy_S)%D|O?j+U6;sxFf<%4MVBLs!9T$j=T%z z5?_^FyDaps+s<#%#3oOiS=hfzdeXNl-98x>WF3V{qC z6)!{qo-juIZo(?`j=enXn1#-y;MgL`in2a{U?`qIoQyRCYIE%87Q)yNV&&5HZRyym zzDVPhGCAxzAV=Sh=6~Fowow-qAZJ-J6JaR0O2b#DCr6HWugDf|ugdY9NtLsR<6rlF z8p!i*7Yt`HTLi_v=aS&FOkF+6iXWD9P+1bum`Hf8PZxQ7rMr@9ru3UegF^4DJLo@77ftG~oba%a|4KV;3dB4J&R#SXeg@lrS*mfXXjL7fb*QIEy%3fm4 zN0pCUzo&S+2mj5M2yJdM#sS#cD?UtVss5SH?EA6V@8__Px1u--z>HI*ZF=@0!124! z(o4q$)|K>u`!=C^b6n3(Ddet{6t}V{J;eUmE)6pA&XYEy$a_nHSx=ek61lUjrKBuV z*rJQ6ds=9kb+Jj!WGiNj1CT*K>)y+c%7kG+SBwiXdqRENe#~BQpfKhuVaTBDxQ*x> z9er7gRK)SvVq2px6gl~Cq}bp&-v#9wOaW?--UCWF&Pez*fX0&tmZK$2Gv)mO1g=PC z?TQ{4P8d+4$53W?y$MTFj#=I}Kx-My_9xB{y8p*cS8>WkxT{XM8(>2L4@IzCPju+< z@tkH=+VP=P=q&AHt}?)8^y2~28Qt2uV5!xdGS%_>(IeVq`bQ!8UzRdHu!b?5?StgM zen$#b;|kVdWWTwxMY$}549y^Z15YN=yXXt170qs5ysy1L@~P|GoEQ}rOz7FPIk zdxcmV(H(z;_X>WD8(;H^S)mL(wfv>I}O76RjWS zSh5p8==44}c#R^L`R<$P&>Q7ZH3!D(-d&9Gr5x}4=TdndHpxl~%epTy^a3~rkmLOAY#*n-7RVQouy_gHyR z;eC_b{!#A^13ovvS~w0!Df|<%kRP;2bC!%0f7qW%NNPt39KN;7dy0S2NgSkv6hPO7 zV%SK0;sZr?AF|SP&CWZ?+CCkD2X%RgWB=R-t+6w^D=75Sg9k}G$UalCY{sY6;`N4x#CjjtF0ZPg$L%BCde-_WGT zd!hv!{C2(%%_?OSoH^1_l*t)2v01lWV9Gj|hr8n}45z*T-&(_^i76+O+82`*)5_mxeG+>nc?CJXn#`Z8(5l2z zO-dc!=z+~*?`}d#F}`B3Xhu=~+bk0iV~STR>}_mkljAspCVW8VeVmC~TwQ{t3@ilc66uU1BAYC z_nbArb-zv*uTysu)4mSaaPQucJ6O~>FXKtN+Vloyfa?B{Kr#WRL|z`wjpu6qhVvE( zWmZ{8T~7qZlQ+Oa%%2L6_$zFZdv1%&=KiV@~Y0um)J!`d0WvC1LU{4`DGO!vaz*#6L^AL78|+oQ7t z_eE_S#B<=S{Uj*1jcsIV;WY>#a(Y|~rmNSCf>Ayquum&IZ>yRpbzh&~pC`{M?2L^k z^zOPxp~F^_w?eXpUygBvV3@xC9_H$N9}QW4Qn9lLsTv|5n$ts4=lXq0t~>(EKwwbLph#7b&av;bM~Ha9kE|r6vwLU?!7Ng`yY~l zXf!~(>Y#uG^nfm56qg6P=hSCQtKT0KQxB--hyFZW`3uzLi)1r#=ox+)y^F;u{SX_w zRY9_VXSc3un(!!d=}JqTY}PDt@cq@)l=9}(hKqXO?iaxRcpoiMu?jGtFzGvj1rWhQ zI^pdiDecp;&Ne7%%`jt;`EOX2N7Ao`WRWqTcoqk;pqB&v44hDED@PwZ7q~t5dYxWe zFp#U-ii9vzNHdsbo->E~V1Jcoe(R-^}=gpO82KsW67=CBnit9qjHykK1|M7QeTZ*Eu zZJcMN{UgZg&s36^t}-K}a{Woz)p)FBMUPBcCoXfX1*|)E07Q4m$=s-Rq@NdjX=s0s zA|Q30%FXb&7t@1N&R%eArSX7Q75jSWmaZQYbv&|?gzAO^Cz^e~UNkhSdWprx& zWToH?Ec5Uq$!#ItYX$L04o7p@31hXHml8K-Li;7;O)V>+i!ScC*RFUDlFX;#422Lo!WY{VfGKui*K=Ks6Rm z|6a%b>t!yE?py`ZLaG5LzN2zRex5t)Uh1b4V&!boD#>m6>=7b>JCfWQ>6|+Tk@&Q@ zdpohpv~`e{=Q107B6P9re@yzh8!+ml7oz5j;`K-$&{xO2Va?!$mN`a`Ry#fIVyr=? z=9|cM&mYv>hUsX&mPzz87%^7fU&-Olta4%n%Wr`#VAG;J~ z^%0Lf8X>3Bw~=gzg=}L;hH+=h%0B{v`H{oX42jAyUXtPL$;0o~7|O7~6N!jF5(m3q zFSwgw)IZnh91c1?58(lLrd#D3!l^@LAks+|5-D|r@u8%!Pj3{ai7G+Et!ts2<%D3FwY;>lL=o9>i8I?0n zVCZ(0Q9fW;*&FDN)ER&Lh{G~O>J49c6HypETl@ssQo0C4^*8;&kU<90f84CtM@Gwm z?t!QEOq%%9Z^Aha$=K81BKzq7#uG@L5wihP`;*#+(BoPDbbB2;ZUywOxMWXG_OSU^ zH7DL}fLzIYvN10*%q5w7d{Z!`(!Wfw9v?>qM=%BYj9nJ6|cD_EnYFP6Q_lb6w3F#;IafeQX< zVc^f&)dT6*fzgQ1@ON*20(R7>Ec*>#YxjnQ=_+9i7p7bjXM&1@_~!01CSR>%y+-Sj z9MHV7>pg~_{0e{V#3oHegARctNXH3?V%Z!H)+N+2KELt0Io!)Sn1`xGy1gBMy?Ym1 z(8^0Z{U$d1ID%C+PR05`(@IXATnErE2=`Rt1zXXqjj<_GO4646}ey_Vllwu59Ivzfq{HYNN_U zC|dC2Rd6*waEsnmH6liK(LpA!r|m07b2-Z|TSyx=E0Oo{3KJ0jGV!kN@8c`nP6F;7 zkI&%6tXrsUe&vD-Hy*g};*Yrv^4$Fy)vsV6=C_|%b5rm~RuL{n$zh5#a9O6|Lyv2CPS z{pkY7kgSQyvA$SepPVWWAi5AE%K6W82>`Z^;7Kuf6-Nu;{Ybz+c*Zi#SuPcP4)!1A zpt2CcMu$niTdW}^7J!fOk<}&9^a$xqwBu?uL9hiF^*->a<~1QMzrGU*B$vyFp&`rE zkZ~~<6Jxaqz^%~K{;p|L0!=?HhbH*QCwsROXj{>UD1lRdqKKr;6djSDJ@O}rf?XAs zy?q3QkL62Ld?Zy;o&sltaEklcM$lnz1N7=mH^>LEf4*V{)0{fO#LUU2%gL3#1Zjjr zwjSl)qSgXIF4rcJAIhb01!xUwqFL_DL}m9yAapjv;CSNA0QREPc0^XaTl_&My-g*c_pqUKQ7oUfuoynHYG5D>H%!VwNB?^|;en)y0|@Hcjz_5Nt5kN_2Yk6E9HxwTuzFY7+JrDDWNIck*+gL{+Xt z^}xWw-5&sWV4*q|)L2~+eM1Xq9Cq@uKo1(~R46XBLC~`eBp( z(qyNA7VQAmWbVIAeQgQI(Wav-=&Sii+StIKKm*g4i#)yF06ej)z7JAoRe}6~eK*6T zMAh=bfQQ9CPgg8DF8NbE`5jZs#)sVK&fMN#mu?p$YQtOL-mDCRakd&Q zV+D=$Zl)g@cs@&}HQh_;xqgG)V{Nm{WV!1^5pD78SoLa6C7#q%xYqsL7F7Z$tG0B| zi;bQ)j}{c~J#=y?;3o%cJz0N&6hMEE`S#j%k>4K2lyf|Ep%J4qiCl8;tjB`+4^@E# zh41`nlgRr%YMoO`Q?I6+*z3(1*3)mMx3mFi&SjNYP!{BxV9CnjA! zYoqBItZlaS;wO)UOqWd0-#-`VI;QdZ{>4U46AUahMm|_x@}vM(#!i1pgog_lGGiSt)%?}?x&J`mbW zrYBHWr)K=%i)Z)mzW)rQ__hzV8DtcKR*PR=hAr)*xuC;Kmr_=hE zU0GR{0fkU~7aXPER5v2}#D~gJT~e(kbWNuoK4eqhr;^hL4p!v)N^bmnR7!`25{+uqyldEhSBt&e3gf61t$v4BVE`epUKt7;-K=XTt8wpse4{PK4o{ z`&Jxu3tbko7ASmF?VI_*snXEetn!&(TxS+CJ7H>MsvnTHZKA2W0^jZhZNK?C+dfRh zdG3Sdq60)y1{Fa=K`d#2Z#<%f|5I9Q3@wn-P{r`t1Z~4f00Y6oQ|78@wKaB>(-~GU z&V_Qa@Rr!vOVxOa(|g1;(_4jL&hi&W5XV&&JogHvvT>5VzfY@2ByJtT4sf?V4%a%a znhZ3>T+SQ`ZrGRcxN}uX_u24prGfS^)GX!?n%76$Ox?C>R6I zXlgLALOtfH-BUM!(1rTj3ao(Bd-kUJ_~CaThQ0TP5e>LM;p3*_u5h@^H?Vxo(JUfX zOpd1`r>jn~`06XVB;i-s1N9{j-d)vGJUYyR#$2Fsab6((7xuf-t?Dp}KE&sQy;uXw zRWq+O!rk%@0aAz4aSvKN<-%U<-NT0=a)9I={`MvMX5lq;)#^P?PeB1*!q1iO)JH_}8=) zCn@3^M>Rw?d(kJoi_TasbaQoAAvo)!Op1KlHO;YLc1FFOQ47Q4dxm)(bG`+^R(yli zeyCi;OSrZfeMeUUf!D`JIdjQT$90>C=XB7IzE_rsjU1=hfutQbcy}w+#zmigdkl+GW z{srQX4l_f4PMn=nx$yerMpCUF@d-Ar#1fP#-{Mf-jkss#Q`K|!ZT*eq8~!=t?ktdQ z=rrc7=xN)59)a2CsT$e~DNqyWJf~js@($B4I+IXX1O$yEME)e@Bq{A4PF+`ggfwPg z8+bDJ%F{AF*l&Da(D@zareivfM`N^}kC8m;y_+x~eZEi*_mI1(^}xk{yOHd7>we6?9`mB0KhF748|X;m#%lFybyjF}If4Kf&G zBZ54br4M7%Z-6^3mUL*{Sbri~buu715)H!m0evLVlGe370toiClyRsM*b2*WM1;51 z4uG6Y`}tkYf9o_Y-P$EpMNR(r0S>dbf3$pAbO+#HtRX%&j!qHo16>TK(VB7P+n8tP z^ru>mORcsox9kZ-UvxdX8j}a4Tnxw8wShg46u-Ce9Z)eR`cKVgQH@`ZTW+D(xEV&0 z@!~JgkrN4gQyt{=_sG~Fj4+l~Z^An}Y%@RBX#`*T*l^0q z+&0L}2Ph~(=^{j=N$(w`w}h4ikWPY>2qB)^r@haf+0V>A zXJ*g)o&T45@(EJ?x|5UlpSM#_39r2QnBtdmbEo_JI zh)O$v{_|d1JrQg(&$g*{s>IQF@a+I27Ig+%(HfoR@ zJi>{drqDVUmRRnfS#R$@IGspU{2Bs#79*Hx{SRp1Y&Hn}l-x_iOtlv0JIFm}tNa%4 zynVUIC{1kuJ`Z~5AGTrI+_oin?1(oHb1-lh>3QGnq{PoLfZhyE|6uJf%4d2u*rcG%Ze^qN+3ppl1R5W&H;( zsrqsUr589JCyCTNJm-D3MsxsKRfAjvK!|gcps63DFlems3!$TT__=BCxKjggZkoO8 zO~zFw-VNa{^Xgl1G1q*@C4_8KX!r#=2$Bar9dLRhGNEm!z|54PmYY)2_Opf?EqZzd;cnf4Ng1>OA6grVK|1#wPUyaUg_(KQ=ui6}CfId^y=_ z$44=mf~ozQZ?2y!pWwP+;;(=_F;vzljz`4U3$`sL>IaI=s;v6Kjb7m1bQrG zDo4&TuBO{e8MNk~GX;(gA2=(HReZk;6&d*&V-R!LP!DgK^`*d=;MmmPpi{hQng^bC zTl*)$M=#EvZVVBZUCn(dKz-=g*Pv0Vg@<2Qm+Sbo;3NN#2B0J^TeLh2W~G@7gc6^V z+q*^>iw@VSL8hj!WCEdSka23rIEu^bjaOpy6n?fiq4&a=d&1{jkzW$GDZ*96gBnL7 zYH`*l|sGYJf31 zqtrF`Z~=awFYL%*7+$Gbe1M=aF%;(f51qoNW8iP9~E#WI^ZG7iGcPv7_Hv;izNQ?mv73#S_ zv#NV~95WvD$#>|EuyrkO+@=X{*gCV{PV0&IS&GH=n!sj~*sycnxUI}~*b>x~(td&= z>~A@2bQte%qy4dEqRZma3Zniu4roCE44@Kwhr=2-Y_4kfcj-PHi(1K@MVbwZ#}tJu z+*C;5t;5^o)JNHCEtfO0pZ(;i+j?+}ReJ_jbnIx*Tx480=L>E>S|T=`s4V$?mkC$b zWk4yb{v;Es+*oNg;A~Ve;6Q70cEry)pREX1;8`JHC5uH*^fx+aAe%RnX1vFC}XljxIi{Fq`RT zvVO-rkjHfV;u`{3+b;sqPM-aQQo5T+yOJw^)9e2hdiwPP)A%q1MqgKz-L-9EQe@5* zWts<^m4#_vohhqnw_sDSz}Y>oE}vjZcViMM?K{g)J8YW-du=e@#1CMN5NtyS@m6XP z0q?AaRPB~vZ*8uix+U>&Rw}D6;1hFP=k#tokR`p@+bH1y3F3(I5qGuf4HN5y6O z#M^3#QcsWVzYf}VQ5Lkua|kOR=DEsJR^qo5S=Pl8+9WlCh41vh zpY90End7B8`pAG1 zb19LntM(Q=kHMgT)DXo%(^u?UiwS461)dZ=crtR2{ZxbPLHrbEsNL8l^5WvcfX!d$ z)_8A2Cf-2F%%H$u=#7kQfhn|Pz~P*S*H!PmCo^ha0A16dglusTTszeuX#dH4eXDTZ zj7I35Go_^*RbRgXcH=%aU?g_8GvXJZ_88CJx)JtS)3}#bkJVuvIOL+^9>&<^9QWqvu6uzMiUVf7&%a@dG)3Cqrge6*{fUY!)FEET8E-o{mb zOb8oKou=u%OS28FP@W}pIQayn9)fHOeuGejxG5s~66tZ_Nd1K zzXYLp=>vOKI}z7oY25l+&vb@Pt$NQ+Im{dWMu|LipIFjSrxq2+Y#}iJOSy5_Rg>ZSd#Bwy?b?C^C=Qv5Xzco^-vqRBqX6 ztK&}U$uG#0y{G)t)8<~Ji+XZX9g6;Y)yt0E@sQ&)-eSNcS2jj?6&?;}2$aQJL~5_g zZN+N2dAad-ia+e>XP3Xz+RCA?a5R-~2W6me;p)@s%13e?|B^K-UJ*2)y&(@0&N@bUe!ag{TZ5iZJjL z4uzeGRVIFQJk(Cy64CO>y}cp>e+@ZoBJKAb84S*IjRLS$skeD$YFN?S*MGl%#2weg zqEM`!iJ-Met+6<1&Xzc}(;vA%)3Vb)@&tLB7fyQsg+kw4u*vUi*+|fY{dPQpdxNuV zYh=*9jUOl&p8~eyo(zL1vk4c;jLB=`qFhgG=UoEZps?Qg*hli^0u!<; zF0HFEu>aJ2{cOK5shWK^7d8uQFhdQ7=4D6FB2sQ9+! zZ_q6~7}c@IyAqll?~l_tb?oeUBu*Zw(QG zf?q2_koPUThryxLQR58(PN`5XOVg^Q_9>_kQkoL(_Z!q|!7LU<<-^=1MOKZC&p$k~ zn0DolloEr=k*qpa5hx*D7@38NR8CVWury0O6rjNT1?3t!GLHi196t(wKQY*e>8Qqo zzH#}aGik7cg@<|nqS+5?&>xnl7trp?fBPo<&jDx}fR6%E#W4I^l+y6B&B$}t`2iW} zM-XZVL}~Wtnjuh>QiCSXN`ByLe<(;*SbXkt|rxkoO!C<0OTHbUS^1&J>xj zBKbztR9@Y_a2viTB)qnzsWt}8Qm#z$k7hV_I$+DVcKRi7w5ZMquuIym2#9U3rUgpN zBdnU*d3ogd_KCM~1a}_C@dA+#enru-yXi8S7s2gYEo{UV@drF*%^mm_N3(C$JtkNc zl*sy|l|ki#kZKGYi|VP+7LdO-xDTLF(3b#{v}i56(zGvC2|%%zY!WpAF0_t(Q7R_x zh^ZG-VykrC@0Z?vNZR3WXvPNL1$t(%DfnI0`_wKxaE#?S1(@?71)?Zo-Dt4%0z#zS z>SQZyPw5`7ElG26z6KoSDv5#^^&&0(_#YA5ByNdz-;&z5=@qald^`h#`&s!Eno2hA ze?F){8y3dpLRx-W1WYLsxS))4s}k^7z6!a(XDgcTPDP%iuXCNu1Jn8TMR=?~kbM?? z{>o^nc~qPh^JwNq^WFfeE~qZR2mQG+-gwAtRK!aQ_CzFq{JHwV^a1R(Cx1B`asKPw zky3MJops2a- z?-t^JlSmxp`l+zyMewhfkx%J(B^B1EaevIke?Ej$$k|)ab|?$my3@O0aM%&&hC@V6 z{{1pLpCi3iKCT{KddrFXr^FSzJnliywy>1(UEo$Vr5F4%BzeHye3?Q+8-?xgUP=x9 zdXqiaQXQS%@MJLv*=8J9otcfgt@8ZB^7%@ggiez}+_=wYtRkbqIJ-!CT9CU&%Xw@) zaBtj$dK%4}I9zfwn;GIh7`x%S93Li3JIkUw#Y~KC$DksDd1s~_TDm>WR(1`S+CICp z9v||LPkG$qz)(vsh2c)_>!Wzh-q#N(QTcMO{NWLz!^>Q*)z@XN_=w&8J}S?<`B;Op zu?`1V1L^I!K8#9|*baY$GQ5rkxe|LcHQ=wG;aBQVjj?%s-Ld{Hom z5edqF-f7%He4)7W81&HvL29`1jD zauq3fYwvuwz}_;P-w#6i0=h_^N~8o4U)17-gM@WPMQj>1@9=55GHfT&WA2~ku9<7? zR#YU?5a0}(rD&?)>iN04Jmn>IY0nq;j0{LNz;9Hsu_6|RWZEx5UB){4SED>EtqS3p z&317B#}Bru?bo7^x|OiMw*@o{7H$dq4wbB4GWrGF3vSy3xd7h;{c)qc3GT~pH1%T4 ztCX+Lam4kalEUqqeyq0cU!L@Gzatc~()0y?H-7nzRQ(~ioo}+|)3L-C4oXi_FF94^gy}%m}t60K4(GatE?qQHT+RmpH}dVW$ELx@)q6x zqSyZQdY}V@0Ot*qn^fQ`8=|Smc9xyZGRaf!TSb79Mkn7H_dgw`Kj!S3tD9yL6}AP-RfIF-TP`*;uDPGR6{uLCbY+dtxB!r9PIUp# zLNN#hPC~?RoJ-3!?PWyvcf>At0>WZ74Mp5>O)MP6fFrVAn4f=~VLaI9l%n1`bHP^r zvckKhvx37f<&XYIi?M-juZPVfT4;mz%YNboc+nB0oNuCwLl==sNp<142S%kxb#<5gUPwoku}ixt>!Z(ED20|3?EAjKO1q=we_ zM~87uv`eLy4)w>AN~uA)UiTHX=(N9r2;a|bK0EA^pBnaBLDDPG&7UW>Ha5q;C@l(4 z(X$)?7C(jnUiYBy@&*Nevjl@*2O5!wyz%&Y`Cryi_$~IY&>m#1Yno}FBnz_Z|DZ;?9p<`m=qDlm-KAn}5 zcG!%;(Yw?QKmifNolNGJwc|@xjTPm3Qk}mc(HRA5$HG&voO9hgg0GOa-$bq@9Cv2i z^jyEs$mJf`03h!umyVbq9_9o(7851z^AD2mbB3#rD1Qna2FWpiNDGNnDQEusvF%bi zTXo|GLA|H#xxOjR(2ld+6o{4U>=*k%jj_F3D^35DnTRk!X6I=-H zsK@sASYOIGdwJ&Cl}#ZQCD2g>bMj91J~nuW_gp4@BT41tbMlVT>F8vjh+dSS_)Qyf zJWjJ!Cz@!RV>g+pk2;?)IeCXu%wru)<=w}e(Y2&0A^8{t<_-f zY-oHq*!`1acz^Ao?-L;{rPA%GoyCr$-Noy7l14g8j-#@sz!|U~wAe;}AW;IeWL~`D zo3ETu_(A73kRf1kl`xs@6hB#=l{pH_oFffIBXMG+gb$^!eF@)eb_pJRLPgp#M+RPK z;Aa-DoV1QrQx~f|aDV=`&~WDRmzUE^0k%haCOaW8sp{sKc?_dwkE!U!n{BoyXSrW- zF}Dug^ElE5TM=X1bk;5C8y;QNuJP~AqPyig%W^verM2AY%QNx$z(5Bxr%aqxUKWV& z;xK%v#CEXoiXxTGLX3F-A+O24DsCsWLjKMReyj&~fS$$0Km}q=ENXCKuPCp!3pU1a zr++IQ;GGVF0tj2iuPH9$z=If=U?jHxrj^Q;Ee`&{>k!}yjH$I*Ry01D257nitGyD?`gnVO9k>yi zoKLm}$59K}`X0Yhjd^*A>5cf35A^W`re@r@JiQKk>d$O2-f=@j0tXMROgE?@ZhcOG z$Ncc5oNyZ@bNBjV$Fyub{s33-Ez{^n z(sH)yt%0E4rKzzm)bH7l1hbuh&waUMPTv-|sVcK~6EEOlg)`Rm=dV_iX2mq4C2oZr zMK~pspNA-j;gGHIY6i{KlL~512brdi1T^gpE|@0woJNK#dh~8hN$xHGBO?lUT)>IJ zBmFmtm$IK;WFJpzk`LZ~WbmEJF||T$j{3Y`Vs|w=KxdHK!`AY7-l>;L1lbKt(-=uQ z(n-MpcU;Q#Lov~@LN7-C&$)iHP^G#2$9LJ?Byy5*=hl&D}xLbjKx!9Hzk+l6ce3Lea zzi8ufX($Tk-otO-gL#uJ2w1VmqwEhwrfXm42i-ssSGiteq^*}wree#+*|*6*@Q8~h z8aCF^d4@dKIeh?9LlV^zut{w~+pQF6WU z6V~|tyEmmCw<56ur=jM6>h5WF@d@c%$+@@r#=RasciKLl3#%3U!qbaysve^i6f}G+VJN5Lj!T;Zw){EHeIV2QjqL0_nrR9%(W^T`f%~xLL&}bxuxu1* zxr=5RQcIV*Pg@nZMmqItUo0y4N^Me#7Nw|`x?Zk#0zy}B^ioWSP!*C?vlQC32vMlv zPPOUKVE6J?G_;P-+gJ1hoUt{V6G8sgQ%(vE)1lnhgOizasuJ5^#6i$ThZolVGexP` zc=puwh;_qR-ukffj#~%@vhG77(50J}*QUcJ|9*CP*<<3(A$-Z;4aI;g0gv|LkObJH z>>1ig$UICB_CW^|y)Hm#k^z?~t<&h@esm$u+QI0?Jm0Hq=hRii<$h{0m7RV3G|}|1 zQweW@fw5d{$GyL?qDU*CwsNfQfIqn zx(2t;>h*h_V>m^d#-!`;MSc-rxfCn*ZSIh(MxT`UeKuEIb?z1F(*>F?Jef}OwzKU} zVPOU&vCVxOWWYtK53JhekLzC!fZFfyH0jR<$(BM-2QmUX%ZR*$!>6uWK}xa~l6RPF zXJmU1olZ{sr}EW_%SEWN3#lprXLX`V=|pE*pD6|*aIwohrDNF$QN*9D>FVlJY@TKyn>OBuQyMo;|lnqTTEup@J`+Vw#An(X;%iC*r@il9}Ajj^`3 zM(iaw^>tsJ0qW4GWfpp5kHr(06Lb~xsZqy5SwGMX)1&H9X=o`ZFaX#Fo^zPLF<~`U z87nL5!u_)nFv>J^e@yhSFr&y5*-#;Y3b*h!nMdxt+e?uB#A(QZ8j#2HU-fL{dNd*u z+@Eh~Vx%->%|b_a^v(;mf(AIw-H8+^G(q8-TW%%wL4La7HU6vC=5Ki;1)!y#K=?Ey z5Kd+(vF8=3ng~>KvpsO+pet8#SswT*CiM7T3m7~V_q>q`q#Rz6bBTDdC{6`s4xNRk zl>*pDgym=cxmNGE&jqmTqq7UhcL?ONINE!DXJpQ0usFefiBL8+fvxfn2m|$dUD`k| zJbK5fq6T~&GZEG|-`TWIrLO9TFBvx5r2T@V6-Q2gspq!$xkHC(flDn%n; zdDY2p^Bu#!USkk{+_`je77+Sbh>-Spt8V`kkp@@#%y??D|Hf|4_T}TjO*pqfIYpVA znoofZ^AjUqzdiSXPMLYtN95z7z+uwys`|gFd{R%v zuz26K#qHgZ*T1~({~sdi*5t%?e~Xwsd(Tqyh40nw?9Xt?k*d1WiPW0=raNK5tiFyd zM{$`E??emht#5pt>nXF+9T#P#L76wdEyMp^0Qsj7@}E90!T5avb)D>FKM0g6ys^1x zGFbDH`PJ?A;V?>K)k^@kN2OE2&Dlu0o;SlT47p%SbHWknpXKB)(F%C8w30n(+k1z^l~P6FbQK^Vio_fh|wqZ!_yrG|FwLu0o#c9{TkBc zc(0%*vvq^+RHGsFRt&(*5#C&2u>g+1WGlUKi7-doTP=SKVZt~$&>?iD;*p=^ma9Jh zQpAi%=)Nen`QQy@V|9HOJ#+Z*7}Acc7RRBtm;Qq4nO=cr*8KQWYzV}CdAW|&9h+2R z^H!fU4|+(L_R&yT*|meBpCcC~f2R4vyLoJnE$~5m4%m-h;zceJxv~Iv*9&O4n;iWc z%v4n6oCwYJ?G+i{O^y&j0Ao_4Ab(K_*oj@jsDtAq3yazOL|a^atMEzK^x zTQe2j8UIk+{YuQ4?wak1<}A*g<`;v!EViYNwr=lws$*AKK|g+8LkjKw2F0eH)|{DhLH4-vU^TQ&xDf%kI4{4 zR9lnOu!8Lim%EP3X@9-Y^!a6zc(P2*<)5$PBxm8)*9Qq(mya(G9zUzQf80QP%XNsX zsF6KDSKIw>Lf`0l#~DwEO_5I6eA7EITCZg~Kind{hqI#_7PDdu2`}$OZ%E(2*q) zII8l5kAu$DPfl5Y|Ee^%Ee~lj&sHUX-Ue!Z z1}23LN4mhU!Jye5T7ilvEgd^Hc+%YXjVi%)>kjJUB8uW)cczJ+0*|w-w7&*J`$_Lv z-h+xF+l=t=BX&s(3R5b@zM1%!Z-@+XYYySNB#l|>IdNQ1B_eQ(957yX=-#m#Fh&+$ zcD<;P-;Z}zsnoP|EjT;loO^C?_Z&_C1-~wTfR>OGOb4`F1!^8_L5#lz)NVb$*yuQB^y5#bw-{)35; zm5!wbI&bdVJ7vw)qwawL#3gS*lN#wqC$mr2)M$yRrhUG3)aU2!mtCKej|cY&V{FsZ zVc6XuP4mRIgOuN(kA}}R-xux-sDXZi>I#2at(j)DHAfB+hFDm?iSee{M%E|$ilFL3 zj@|(czL*dhxuc7?nvUr}eqx_2MNe_I=g{@idrr|`*3o)CR&KNo<@^H2=h8OrkQrM^ zt=#-=M|ad)7@PW}6#P@fgA1CR$b?d32XnZT6wReEjT#e4!Sr!0$vG!W3@4qXr8|UrZE)#nZU)_6fBkU7Yt0M$?%JCy{CxIf5e=iht|Ka#0^{u1^(idTYdrXu* zzix1L_CD#Zn}*bmsB}<_S#{jjlW~+oP5$~J=I&U(rM&VOw%1t{!pv2y5B@n+4m!x8 zU&p-8tS%2I8l+Zl`@E-q?o9lNen_Ut;W5C24^j)BjpFRx{r%z?iYT#wlf_Rf$c8A^ zE~rFCvMr5l)lFDzi6r+V=2@*JW>LZSc(eYQc2Z&O%~!vYVt?*}}^P{oplD0PL+y6yIhQ#4{j8&KdoO%(ReW=D_C%YcGE$aFegC}OQ^)=zu9p04q5(C z7jI_h@7Y5+gDwb$k}*@=!5msTXDHDlaR#?9qD1e}EFRLGR|4K-(7IhgFW>!({rsO) zV*pPah_?881JvLokH2QhTtrO8q*PQI`$O}l#x>~tleimu-;n^xaof!Z)2fi#>CEKb zd${y~CTl%lbZ!niZLI0#qwvzCBR?-)pP@)mLs6(HzQn|_P9(eJ1;AEmt5Ey)EJXEX zQ1`>1Xbc!h5$3O6dH?_>mjroV{%U$c#sNL4pc7ZZ)T_PHUVF*!g*OP7$}K&%hY}RK z97D&O?G=qx`89`~a?HEd_5T8{vwFw&k_pNk;>8ZwmC;g3*(ydZVUus^cA;|u;fB^1 zazHZtjUb~+pw!fWt;Mkv{xF-H(o~$OqHLf6)vp{>u*!P}+T)xA^^*$#9JdFumh%kikhNHa!oq}CbK*X$8f9UfoYXdAwwvt(8mFkdU%@A)x_xTLoxoZ-to0n|=*vcS z2$#H)sTo@WtQD1J;N9zaw&PEMG_qSWo7Zm;Sq;YRFlBe_ay@o)ILU88us?a5Mv#b3 z*gL+tFQPixHsgcv5NhW%_T|0~^=k;hHRL*qY{*>}NFNQm*+x`>l|M=qk324XKnQDmgcr61_}f2^t^$PPz|z0BV@n?*n(!<7 znfm)L1W@BsQ-FoMK@=E61{JoDw(9FFs%GDLG`3uUe%ykFqSF*E=f)$uGNsZt>f~d; zO)61aWL+tqoX7l~ynTdGgZt}qSQ{))GUy)hj#oMhyE#jyTbS#@dH3DSj>um+$&%Fu8WU-|%isJ-Dqf`aA zzzq0oTUaYX^D&R5Z$pKsf9Bu9Cs}~{`&wF`2Y3tN04r(;1J#!@rwK!-wp+{r;le-8 ze1!`kFze=~Z{z!nvB$McHPRREeyycmxB3Gk4+oky14VFlE@GSb41=aP4foL;D|Usb zE`O`IBUBFh9hJ*277vZe6h-m5zMeg6qdWZZ)FxzH6!7R{yRwBUiLT+>`>|io#(TH3 zDD>Yv{siZ33b_bWX$Ju8no{Fg->+EZF9|mm$M~*4xe(6l^hU7o<7>(ww4y7$26bLk zEYCESOVApY@aH1z)|^UrxI86Skn4f;y9#t->!%yQI|kgf0)B%w$1E!zPwiiTPinC; z1W83$0gf7gu#H3Rv##UqwcixS2ep0 zE`RyJ801a?8|lIA#tu^Zh4d8FGoR#BUILH~9wNL&N}PNFaBxgGzb-UUt6`W^`6kn% zsA>pI)M#|gok=D*YV0ComSzBt&dU1wYUQi5dPuMHix<>%5VWC(T0zoW_VZ_nrWW>T z&%ca*o-jL6z5$IE{CT}e=1&_|gBd4 zh7k{29=yIbjbzg7NA;Xn>_Jz5h>`cTieNp<>cGaP3beL>(3wbE#;am+`|_jWSITcF z#@77?sYveq+rg+SP?sc96A=tuPu03Uv;84J(}u@bO@|&9CU7ELflh0Jk(2k4ygWC# zv&@9CD*03x&rH1Ftr$H82nKI3uCU-Su+*LXc{Zg&t-k1lS+ z;F>PkyE!ae*c0~aJEODs2;0*-%@{glnnbU-u|O3JG#{f}b(DIWugNoC*HWY>pECU$ z1h}~{dlo~qMc^SM%bpgrJy@z?WKZKoI%b?t{t+(mZQPe0+5)$I`o^#W`WaZi%(1Q7I9UfQ zf@%Rfe#jlFlyB@YEv|9NtqJ@7L97hXuiYB>mnK?Bhe2PaXqsEuhPRwv(ZHd{t(#ll z2!hjIls|BvM&EgIUAId7PhOO3WB1A3RMZKb;EH{7MRR1t2LfZG!_xs{C-yjCjw52- z10}B_2eiQ>7^zg}4|dhYdT;pVN7=%qxl=%0h}sQv@Ui+vftjxQFh4ToOy;(>d<9Pl z>LpwA&Zi@xCRuW8QFT5EVe0PwrLTHj@zf37qgTL$wU+4Gau6&@GVLwy+O?n5{`K`^ zx!I;VLtetmU@Nl0Snv&!XvQLvskhkNIpGYe8r|6tYp1~SA_^QNfoZT>T!?CbFIq$% z6;ypT?`A#pv9YRA=Cn_j@#`$(?96iF-jgu$2dW~pp>MkXdIPMlY<6$+&A^VC){)F{s00IH@zlb~kS+e=BiQNCq z|MQ>4C78*{M^V5_7*$QA?QBAEvTPe+f3cW>H%IL2HaZMm2X(x<2G;>{f2(}oAaPSD zCo;P9i>zU$Ol0-+ICM&KwYkE)1f=DmzWc`XLI&R>Vjs*j;92soJD-l6ai!N%ptzD=VRYh=)(OpzdR38 zrwM+0h(4bKxlf+JbHQ0C_tS%5+wvvy0d_etc3JKvevdei((#bJOgm z2Oydqv+%zuGi*3yWmSJ!GVa*&eG1}kvV)9>jd~TAnmG0@ z%IoXx9)uHVs0irAFle_pzt+S`Ds8I$bPF(#>UIO&U+X2T+3}V5Y733$HKKgG{#F(mq=Jl%Lo3LJ0Txy#iA`BBEeVe zl3Q0wt8*PRF|#a5XV*)qy)8%2pwDT5Sp+@x`WlQrQv1uKRo!i~e(vP{Q(%^)Gtb+v z5VrTgA4(T65>IQ!uM$g)A6J<4Gaa5;b>}hZ#{fk%Zo7d@q+N?x%Y0>0dN=0MI$Vsm zA!(W-v1PKrslelbYi1%VNoPelZ5j93hsZy8%S@(C@BTVWZ`)$ze2e1cS8SoheQ8q8 zdaU6qw-9qr?GWY6B%%`<n{tNHk%y_dZ~=u zO#6w5*#qe2_(p_AigcWbshldb_z@*?K{$*&HIAgkEK+WaPU4{=PgYpCt^7IIw<*1p zqEnGuwEoU8j=NU~TR!E=K`pa@z2#aUiFkk!Mn}mpn92#9^-Wd(eowo|=UwWsrB)CN z=}@h1BADB6vb-{)ZA&y?j{|0?uY+V>L_Kp{76R=j#vxh3v1rxU+&*NvGfD*b&N>i0 zFsk(CIXbfH-N+^Syz)xqa_G0pZwdUOhH_v0^%7kIwNM(L8r=d7dS6(S`zmnI> z;$oaLrpn86`IVKeI0?8FzpyeV6$TI9iB7A6Uy$g4?RigP4No}U5O&cfM06+xzKGSm z6#pz)z5RkIeDD@ZUx6_FEI=E4mRPvB?)!u=xj({<`40DDc;D-Y3f|cn_8u|@w8I=o ze6Yyr!&zE?z@)jq*rN3r=cYH;c&gsry_f!F5 zRyl>$pu}SJ=tW7zvD)LxhTUI?%6ng(k6gfPZhB9YKZWbDgP1@!XdLlF(RDT}X(WF0 z1QLg_W3MRxa~a>I=Y48uFjQO3;rQ`auOY_O;A_$Rlb-b^!>E^iZ*7jGpO860WYbdv zY)S$|(2jX6@yB99A)YbH3(C?iipqP%uDtkpigx(ir=}k$#FM@2iHm5a)eF&{jSO8F z%Tc}8m!U-dp$(I98s_}`#_)Gi=}CE)h&k%`I7>aXd#APjo5n2vfrb2U5PZ8yuMA2M zvIX*!Emu#ZBQY^pbd@tbmBgi&xjm2IJ6arazO7rW;_?zww5nDWAl71WdX^l}o?+aS z>q0blc+_O-F3NG$lyGHlRzqfw(Y#(oeE@ad*Gh$?7xHy-kBq(oc8~0_hJ9+MgMRn~ zbg`*LDhRp|S23oy{eZT{i~QwV>CX|k(K?13wAmy`XrKhX7>_a@y;7HXwMyVxa{21R zB=rLY{m$_4f($F>wD3y($uDKo_-N%%iI)0y|NBFB@p`6SLRFzw;ktggnen4L0y<1# zRPaKTDNuWWfrP?nBYqCad3BV$i?XhB58IUm3Xhb^zf_FfB2;{-iojs5zK&sK_@o$8 z0wDKP(Ks_&i|m{G&b)mGhTqh(*3)m*D<15RP)lnX3O(e6~|-;kmIfFS?>;5EnOKU?DT zno`&S!Yz40i6VSZApIkY7+l~#AvwCf3oFd6r z%~=E7dVzvK_<=*r=7#ZRpP^A{gX5J=>st@0p}#?Lpd)cWz+vE=M?2=&WzPXNV@mkJ@5-_DC(XD?ez0Tsc*=z zBeyZwB|EpTxRvNKNb{TJNUEHQ&%cfQOaar95d@g_`;=;&&r~NSwLMnoWnW}E@)Dfp zBn_RW1WZYaU7E4S%;m=#Ej&)5uTfPEe}hBZau-+i7-|FsK~&hMV`=*N<` z)d&3xBfXBHtag|DzrP!Bc1d-QWVgAJ^fXZ$;0y-}eKLDhbS=7twlS!25yh;AgPgHH z5^(2WI`b$289kkDwbv_i&r-tr zlewFYe)zXf7vId@29L$0hcMhc%WzfzB%jHaHZK0Nlm zU4!#^!#ybv2tuo^X^}%^W!QuH8ZR{2pX7S& zRFMlGkMIX}Te;XIL4K`WT@8-;gj{?|gP+*%ZiNC=sb_(5RoPFm9>sSWQu*KKS%Syx zz*IWN6$CxmAHhm)el(KAQzJohlSltfKdMy;U4xI20a~W-C4U5xQz4*5ntPBufg1uz zprur!x`ilDB=bycqwSMdeHUJq3O_5~doq#u1q~w&by}P=1swi1!(Jr;S-pJ6cioC_ zUJ>WXfAs|%qVZi`8$84dBXN){;`g--@7P(t$>SXn>qET(ooIZPXT0eJ=!{*nFC5?M zuy>c-0ROaQWRC0FzKh5|t|||C&SjUv z${UkIbHq^oU(axw#pcR_^6IJkBP>nFjk6_tT) zskVGywE1ul6p$YnN{VgwPmd&lb?fS4?%NkVp1L$e7g)xXl5wgGx5xfua3oe69>2XHm<$|_OAjdkE}%}LFh8|HFFJnV9sr2Xe4$wfVSY$uMd&F zX$CX>&rmJ2Tlb(E2I&;!1gw=fvUT4Qz5OwahbVCs5R$<^%u@>&Ox81*g(UmB#_*+)6Y|!!j;ckGj+?O_ zNv%C?+ya07)!nZf9tSFy8$!I%5=i;dpSJpm=7(VOBcL@l`@dn9{_nH=|2$Ve?F$AH&Ajs_X5Bau zDcpzq=hJ@?WW?&XyHStagWLf%aRYA=C5HwY4SBqOgS?jmx*x!bBA){fr%ytvwszV4 zlM2%Ahn!NmZZ@}Ks|G~k+lLb(Dn+SR$X#SMR0pP5cS2`v7}}~1AZVD$;9~>+7Sr#F|bT!XxDjREgQ|4|Do&1ae{nE$pu5TUA z&JIfW_bn%G7{ho-f3}o5!Y9`c3r#_JnJNj|Z)9c1v zYVTPCM8<*2j?y;LLTc(JbKuiKH>9so?2w1TTfrR(pb<93j^;ovXuHHeJ^fO}+?;x_ z;Rof-g^&{C=18yir&P2oG#kpr4g<+Xv_WSVscid&?P8IW*{6wn4@dad56^J!5;$Zx zzCgDVvVUZjl28^EBfxBk#gr~3NJ*=-!HK5-_Hy$gzaZ=zU~tKzTqOy2%ro4lPxCG4 z&HKqa=?UTDC2s>&CBhqkh0b9OP4;;_L5ShhgfbyV zFFpV_6&onwhvZHgKor3PD~&gA znC$s3xf@jLL)kL#dT2y2vn!Wx9~O}$J#Be%LO6GaT~T7aBb5B3N~}{$`q3y%VB->} z%D0-z=&}EYy7z!;GTPfcgP;fq2!eDX0;1A8NLOhhRq0KdH0iyDB1n&bf`D|8PNesM z^p5mi5_%6Ugpzn)&v(yvzL|T^T6gBInKgq8d4-s~n>X3n`~QEQ-$PM!p&iA^#~jLb z1ZXAZE)&s#sJ=0OYMu%Khx$pYg$BlmL>7o(Gxjzt9e_FSLaDtoI^=76{feGf1)tw_ z9l|_*1YfSG3RU}AS6LII=mdC5D9I7pwD`wVcvAn|Ht0+^<%|n8wLD)zGU%Dul3zU~ zlF2F&-UKsx!1f^Fq7|GDskoQb>e&*2j*3a=Z*MO%z=tQd&}eCaY24`5xKeZk1R=D422Zt=OnM=6(DXl&I?$r%ATzcnjHI*A+YR5Il z4|%}a2?)N8=LYZJCh}Z%@>JDYn0nlGa)UyhmMe1zB zx9AzZ4%`*DsoFte`|_Rhm$^e@)&9lt-CNlJ;u99dkzrU8>BteEm#WLl+VB@vm3YT2nN!LQQ4%zn)E{SwhAfKdi;Ee0MY#Gwmr@l?Ah3zdY)ij%!xu zK8@+Kpx~cvQ>W<3$b)#F$t25imSf~l-!bJ@(;oG+?s{nyFTDY8KP$G)H)9iOaO|^^ zH0SdmgCojjCbxSxT!-YOC;)^&wwBO;WMhWp!ET}o_GuVTdK{4H;@p#Q(zDhHB?rB(E(b)Hx{dP-FT5P6 zhnkDHD6_oRUVOFsi+HAxr5yd&s`Ni6{eM&S`G4Z)|GttG^=t?=E+q9rLyFrWFYO=X ze^}^jH2-_H1Xtxl)A!ff%~#~@hj)j*JJ#?4vMx&w+>j~bj6n@L7x0bv`T(9ybHcMC zI&@F)DIyPZ?|J2XO-@BLpd7L(wN5iVBa8O@0VOG)xqpmSptt*X(}`Pdg4^(uZU?m%>jwK#^eU94lGx-F;B~fRgqRm_Ci`8 zJp-T=fdz3jqrwbB%vU<$vvch|?=t+&-d5ezJaF~ZxH)pmkYt2$>wc$|)r7+Y_D*!> z7p?5ZzlG;4XbQ;Zbye{@43bJQ4~J(r01*fU=(EhdV1TSL z2xe@4yY%2_Z;D^JaX|Uj93S~D^$VN824HHsQ3tUexy4gZI)e1;tux%-U!MzS6za6B zyS}M(t;amMDyYgnc&sj%oTR|B=Uc(SHa#`xFqMu_-LjGEP<8zS;+MlD z2+r^TRc7FldN-I?RiW}rGn>CfrwuYkNh33h1|V&^Q_X@MI{4a0YKaB$@g6>R*!%>8 zAnA(b_M&i>se?0z=jsAGJ1I)0PC<0Jf89*TIYBH9He=X9r$Yo#Ut;B;WiCF2e= zE2;H?h?Tn7e1NZ}O~-LejXI1H-o6IlF^c;2y?zbRVH^@PIk1&1@^<)l%zn8D6g7oh zdIYdx1Pnr+g^9n%Qb94){w-O0a>e#&5ieaJeT%D~BW3=ESP#!ES_4qpQKK^2I}nHM zB~Yqe!al#rtG6GaY5j~ZLnmroWtOQ=S|iSi{1uU^FZ5FR8J5(>_6S+zB<}!Ct6kjV zYXxb3c(mF$b=kFy+41~~ShyKJL+_kEYo2ZVhJ2zQbWG^we8*R=Mj zgTKpB;ErEwRO+r8@wauocy+6{8Z!JNtFlZqd*?Y28*iMk@-+W;?cmC#(jU-2#2Yy6 zGj9K7fG=mt8&Q*HvpSrCj%FLF%gb()%XA)d**8_vAnb!M)i~|*M$tHj4|?A1`2bHB z&7ADL=4`~Ko_?;fsYyk+oSPWYK5he^Nnk>;;eLyG`6dwdQ@GPN3*p>cUx*D4HuwhjF}D~2=MU(8;AjTNl^U!7V@EjX8I4X0BEPOS3nN_M zQNJc@*6Hrw)M~A(s0#bhP#4J1}cHGPi-85BWsw<{STYc^MIEJ@#a5JcGUae zs^#GGW;h=_I&AS~klAu>ugob0;QG%Z1v7Zt%_BD3h)%s<)l4q@ESp%x8T1uoY7Q}yTXbFGB+|?%Y13-}4a*pt}8^~usrcLQwb}Ino*4etu&C;;L zt^iuT{^wTT{(#ynJ_Ochkq2U?%l?2Y{P`xd4L{U%eONtT0Cbqh7XNsAdlx^~q^Zx! zlE;i}nor(aY=PFM>j0e2a$2#?C8g*9fvU%2rU9msik<+9_Zh>n;PhGJA4s{7ber5+oUe(uiu7#}I|?J_<{s+Cz*D!CJPA4L_pSV_CUs(RZ*_$Dns<~X`3l@cQ)T*YueNU1J>`^3BuHlECzv_2?Gj>1*CeoMLC5fOaUvTYzw+AN}f=QsL) z>-+x}52N_aKcMMKrhPY}3MhGsYII!yIx?X1I)JbrP?hLvlsdaGvvu&hGfr)kUc8ba zaSBLMrEPV6GdteT^!rges!71tt6xuu}I8E zy7jc*WO)-YSH*O>^&#R25AQsUtsPf7rQU~`rjNW2dzJvLovKTgZDY+rdV$TF-h7u6 zOH5_A$Srem^O+IpngJusA5hnM(z11CXJbjH0x`Cz8*vy4OhwFzSBkrL7ctRFV~BLN zE2gHt2MUB15_q9;pKgntpBFDzC8eW*CNIrigP|d1)}>(O>ZuNli4B0;Cr+eZ(x7d} z4=6`E=@TstRoVDBz&@V^!M)FL?s$hn{~5{xpa>$5s^sg(0w3)NDt(j-sNEpkYbzwZ z;A1^LgGt-w+i2bYI;f=lmdmq9N{Oi|*wh6BZExg={%|v+&Wvf|mFvfZGP*MzT2|Dq zQFkKBux(C$rootPQK{f5Km&gZX;bfq+_k}PlV)<%YrBfTNb+^m)4W%o&F>L8je~=6#{J^2C3E3?OnjwJh?G zGg9dj#fiU73keueVfN#S{duRHA3WSVHD+^`3s3rDiF zzBC=_ex1ye6V3A0ANCz=p*(zfEx&q~e|ixEksAVT(aX01TYv^8Id8z)i6w3rB7#&c z_+W!KtZwd04tQ|&^bEE=@9NF8eKu$d5zCPaDwfa=0u6)c!~rMpU2Oh?^lDNvcLkB7 zh2Ba&##>KCHjnKt+Tq8O?rEfMuQSyq_AMH!(>?pBLVa` z?FDz=j11R3pl*M0(k4SL?8I!B!|>L|9WxW~<1BeC#+Uq1H0v70xw}lhMeh|Zq!PfP z5+rYbV+G;^^|V+>>=SnEZXbVL6*t^I$6#+0PWf2lX(9SX>HkqUW#kksO@lG*_A2r# z*6*#0x{e? z^y3o6kxsFP)bn=vrVl=qhW!>NF4z?@j%8Sjy9>tebscIP6F4^OP`y#-XGRqeA4~{) z(OHpQ0i@m0(%i#H%GN~g3rB+DSED? z_L{Pc(;u5}A`Wk|t;$#N_eo36=D8lUxzkAz{wy=reKA%ubDz{uwFVwZwr&{lwLMca zzRN~amX>J6^mg~J#P+$T@xP;Q1G8+_)KE=X%lC&2dJjWbMjy%+%iz8F|3-88zczlU zw1LLg4xe3qMoPiY z3GqF}I2K~2m|EL-Z*)Ac<%X3Lp0hPR0AFqXjoZ_@TGeh@nZ`52_C}yvgn)qmzt*Au|9Fi5XO`H?(bCP`)ymA_?~#+a9kH+|F(2{Y14&6@ z-ZviR?mo^|#JtK5X4ZedIJ#T8Iy-$ZbGIUPcl7|iqibvFZbK|CBuvb!WMyk@;|?4P z5%a!q`rzdH#@WmQxXDW^Pg@HsEyd@=yw7dj-88IRUpP59J2_f8x)X~L^D5YW0PYmH z*^9R?tt^}@f&cN^%F!CQS7CABRJ4etrHTLhDgK%HvjV#NN+13 zfNtNqMR@DxZ9+mqBBI;Gcc@73kdWM=qr68>#Y7KgW};_ge89%T@!%mBD*(s~8(3Icy|=cpwR3a#@bvQb@eTbL7XB$BGAbeQ%h#mj zZz-ucxq10N3JQygE32w&YU}D78rwTMySjUN`})VmCnl$+XJ+RR$kny=jm@p?oulKE z(=+rr=Hl}2xbQ&u|1m7!@BitzD1dR@ARxdeApAQnyc=G?Cq4ziO&0!JlyaJcW-j+0 z3IyM#dLEx$@r#I6PzyzE?m9|*pG^qCe)M-}{}|c-+Q35oZ;k9f2llUV&4KRV;{g{B zp8_NUI=}osciR8A|DD%+MpYhU@Pve1Q&phwFf~%UfNAa1d+Df%K?!2pl%{t&ls%eI zL+IDU-%3oXIy^m?SdoVH6ve$x|FFb|ai`+~Xo3kUUCAn9nEk^BiYMRDRO6giZv}=J zDTJz&;=4n+4%$Fc%EB9PF3d6lM!vx$-dgMU>z9g;NN1})pWHQGVeAK0U7OnbQBpF4 zkVAUaA?)hKG!qJ-kKfN+#Y!XXZP;oWYu|CydXm<8dVXH8WMu9rc(un#pHM>QI@A=a zXO#IyVdG3Dot-*Us43_{ns`QD)F{(%&2);OnfHC-M+#89k zQ^lhySE_$Nyhz5dQmCeaVqtN$CKjM4Cm)eLUkcbN{_+Mljyqfhv^L@-?%J=%4y1pi z4o>Ug9Q%*57CIgXryfm)Koj z#_5+&+aV41hpOz17-;{Os+U96652-M9e_d`ve1G-nazf|@g~={z8X1-e zWl5N_(HYkb7VQIlD2*O>y*Dfv6FSaXrfOqeRBp`)dtg+0DkBV>74WouJHfl}-Xe{} zp{>HF7VjkVE>bHRps;S}n0e=;t!EFLWf9iRpF@^WH@5+fqYf3W!Vuwf$WSSD=m+s0 zb8fr780`g>m+;(Z#^9S{7%bNOfl;SQhJ5(IomVkZAt5#}Q9hn{%QrPF77j1Kv+}x_a9yH7E6xSiW#$yQ8Db^hHFJ z?0JwPez}^RjpkR|<4%T(UHC&xD8h+EJX(7a5w`*vX!c1^@6u%p6e|~SnxkpwZ+KfZ zxei{^W5qvnw%;f;Yk)WEWknfAM;flb)H>LlAyY0dUq-0MIp$C*A_i)-1S4N{LmoYt z&ig6!pw)->ciellG+?;x0+V3c*9`QG`$)Ix4DIt~_Hl=7qQ4oZtxSnn7q+MSx5f+? z4f{UJJsoY#{2ju%cSx{XhIG2QZP5Ac#PPu`qdVmM%0PzcihVLo*jtCkd;Kxxw##;N zj!AcS=)>}}0`KkL99Nqgh=bGq(R27XYp+f3hCq9BZVfx5Qz@25vXZ$=p zPaWv0syl+~oIa4b#a)zBishxsF=|%F`96(F#OO>^V)}{I3?m0GowR`(27>d!fEhJ9 z2OHz!V-uK_#yVKRV(5EmWWDoO-($S zt*X73>8IK)MM?ZO79M-*hC{Ac?53V_8mibcc+^$bMJ*A~>LF#LT4lvbt-n2gI)M}>oH!Zz z2q7zPCM_^gFB)L56YUaZQ~erABSv@N+9Op@y)C3^V*Dzhh~tT)&DW5q$AutR%(WA8 z$QszJwI*sbW%lVWveqoUba~7MqWR&yb}o#z^4W}#zT>UlX)wQ2mA_a$2ERy{(kSBe zVxt!0fb(BWzbC7HqTG;UnI^54({k9=O5xADQU=J-$uR1#8~wQCg^s(kUyu=>E_Awc zsT-Y@AGZ0{g#+3U_Z|F>sk=i|;S3SXi;SG_7(?qm%i#jQZjI19?n&=Z*An+Nx_F~D zaabL_bttskQ08bMuK&=y;18%=s${=~61j6IH(u_PdtAOz6Q#V`Ez+Q&XEC!;^`;F@ z6|E6>DMPj$ztHU(m(*V`U5`(9zH5BbXQuSEy+QvJ5C2ac#fWS5JnuKJalfY=rh5c z2ekTU@@vnQ)fMWd7pR%uu853FeHy87YHxIZ=2X)z!a^-7{fzz9K~LeRJawCfrU^Na z5{exv+goBn4UK#mrA+p!$owYi{$ieKzTBI(N1B>_f1%FQE@8*IVfauykNspfqh?F9 zP0eK^v4Y1_dOxSxYehZQ!}P9!9lb({WU{Jd5t}F_BYga`Hq_q&AW~fFDkC$aaWtr; zpL52uO%07uX1h6s(uW-1`QJ0H{v2{sAs5yhf3;7xGcB>h+26B|x3YY(UQB-FWs2j; z$OQY}@5$T;IwHO^5QW^G$=0u*1f&$A5P--o#^mONv4ydN!veY?aus|&$^bFgFFSbG zT&EJPznVdGOH1jyz|S)RXM6EC-=*2jme#*~2@PNKojB71vKwp4V}Fc53XSqx@*58l zbhmN=Q%Z{$!lj%fDSz3Vow+-my3^Yl`6=Arun?Y^zjMd2jjKYHBBqy6t6}$aci-3x z=n^cI7p)=)ZRK-(NQ9|}2Jd?w8yTxJ-c=AdeudChEaC{(yntd?O+~K*kG?d;ROe0It3F0eOV6m#L+ocfwO2t{T;e8Zr zqqPi35feq$MOhws7UbK`0qn2X@B5BLj-C?KVq8Z43!i-%Ex-nET{KJg|337@SL4Gy zhJ_4ovyoUF0A-_lvip-4eBM$ zJwqk7x>Th+CVG*l5Pp*;R4%d>fX?r^GnwxgKkr6shlr-sDU(#Rf9^>T43gWP|9vv$ zu}bq;{}0F{pA)R=Q?m1qCC(GNuT)ici*wmBf^^fc*@nIFmwG43OHlEE-8FUEYu%$q zO-Pc+YOKj|hkD#|KpxOP>K}wMbR^<{N!L&pbjvUq8p{dVJ3Q+OGEbs3gU`HF*$muKv@1;w*ou025|qOCMr4#~q$ezpv8dy{SFy%=7~9ajZFi+)p~^#;09xt{-4A`*k}jX7#Fbb)GR(;b`gSC3&!L*(+ebtW)~% zolDL9I-q0?;Dg1mL>_R&(N0tY5pVbn95-6-h_KGf_fJ&_=t!qx<9Uh=AtRnb~$U5#qc#U<-KRR z9sz|0+l?Mw*o6V=nq~*CN;a+!8Vsar8RbIJL6z^ zF9urFb`Iv_?R28$sTOv^C^-%N4ww-Ha{)w~s)K!W_fuX*Ozmzr{AuIlfhgApPs2|2 z%fe5KrZBeyRd-%_4ec34CD5WzuOmPz_jk0Ca+bZ>A-Ow)eA|* zRr`$Wzs~x8XENY@@zrZ_jT6Clr-eiuEd+^1UY*O-G9M)=yaMoVwtS2Bd$Y}Iy>Sf! zjKI{dCSBgd@VX{wD&ieQBNO#gnt8K^byg2d78QJ;Q^L~lf;zQ^p75*O*VAW?FbVd%;7?%kGD*^0&@c8$M=FMr zAeke8U~U;$kSQzGn3$iep&3^Rfu;#44`s+9TSLY$hHVM8^Ty zZ2anxbV-a_!_jV?8}xLlQgg>g%^T%UloH;K|7otg{~hn_A-wIuT{$|!LScgu)r#?R zY*hc!{Gd4G5xZ*7#EP4VyPI7`zeZ|PfC}1fz4&A#CXlBQ1q%%t-{4zbR#{Vg_+7|8 zME?_;8M$XfT=P33Vqgi^!V#EHdbNG%7?63;+)vuIE%69PZ|OuwMTGCSXrQuX@>=>>8-vY zxvND83wDEtOokn}Sp7QpodEb^t>#^}`jm%S0eV3)>7G_|S`O!r{4#AY&s0*H?`5m} zr5&hB6UNUMS%dcXJHBZxJEH^;b5RMbu?$t;c&Op6;KiwNIVeI{=6jN3!5u_nN-8%tJcUazDaCuhmE356J&so9T5^u6<$lI|esK7M0s|8lnQyuaVk_h;}jC&U09!Drh8ll6%;x{BCV z6a|nuDWRj-)=Dl7Tg9B+dhSqNKX@>+>T^>gz*Pm(X7e%c=diXPALRZgud5f{ap(cn z@oEOoS%*M+mBctBR-Q>T-5U0$w?b$hya}df%m4awpU<=QN@>p`i{S6NwSi+Iv!6QZ zWCNx$1Ol6G;}q&mLp*hoTkn04U+^2`?-OE`B%-necL4eATtZ*?ng<45rxXD+QdIyd z=-aija@~dP=U3!+USzTyd@bE@i@cB>W2||Hy8c7GwUgB3U@!$C*Iv)H9V)Txaf9}JR=(q> zDWIt(e&!VZO!Az|L~nG3%kQJ7HbA+Mg|T3!k0>2Xb<;YYeOPy&SDbh4g-rK93&r(k z@b3`qaZW7>W2{kuFJmW$e$0Fq+ZqSn^aW(rO<9B4JKIRdR9FL4C?V-?h$jjjR=WA8 zjOky)-`AY-lI#XPs^_zrv+7zUqlUC;b=+l2Q>`%~z(luPllQdV*N9sP?RiHwi` zfF$pvqSS9)8&;x3J22HvoP^DjCbsMlzP%{P?{_jvoeA;51}Dq+ykUAroRf*O zfU305X+x=?xGG@{>}&`Q^M?Ea9Q8Ex=v*fxlLu)qo9A>Sa}b80)#vVPKSXj*P{XLuFfa(DLg04k=D-e z;c;Zou;%3|H=a2IWTn&7nIzXNG#@4D9B%2CAKq9rzQ4DZyUsi?ej>HI4kfacna|)I z6KZct*f9rliLUBt`x0J7e z?ojED*6y=Kbb-v}e8bXv=Cp6$18dIIyQS=}7!W`5Yib94YKNrGGrvKW@pji^NmLRI zr%$mwT!&5dN^(qfe00~(reVo)3Y3L|n=|hV@)x!RJ4nZhAIQ(n8yRZa02W7s*meu-`JZKkQ*~ z>mD5^@H;EcB!GjrZu6lLBc0AmP%S#>S zjmdwaok(>>IiqL1ll*&DukB=E(6fiq!(xjw+bKLlSS}G!rihA`>HmQ-%QxMDP`GPa z--$)r*Kei=A;m_6&D9-mNf%I~+3lmc`eVMBmp|^_>_|-tEw#bm#>ZeEg2iqj7jp@> zV5a*C6I!B^}K-bB17;O~s#)%A~FdN{XoN0yl6kc&s{1-9fHDr;9raRB; z5_d$WY3j7-czD=sE!`%8xYp|-=k-&cydCK<)ze2~!iFv6y490hmP8)*4-!OJSy?NX zer?(BlauVmW0E`QJ*((H(l~#zB$P1BFZ~G3f%dX)&oDJ$cGc;*eF{^qtd44LUm9NY>;OC< z^p{VA2)Ca4p6r+xEBB8m7(@}T<5=yil`tMKkGW=8C^{i^()yOh$V{Z z{?lctedH77!k`N5^9c>8upW%h4=niWPO>P)FUo@i#oM_PiNVT3yiSsz`ZZ8 zytaMoZk)Dm+lS%jqdPLB*D{jcbG4f7F1xfd5N+X!=>*(JYUUh}3HNR&sj~T9?kM9e zFa~{jR(x^&(#NjPC$$Xv1e+x+XT5T}^o9TVv`tumrobA`4Dt-s8a`(>iDTUoY4Up9 zsQ(R81s;aTmye)Br==HHIaMEt4*Gh)jeM0K(E_%%?590@hdF7mdv?zT$^qIw1&hq` z=QA*h8jx?cJTq-<7x%&{`SxB)H@`p!9|hM|)S}Ar>J!$84n;EJLyuW5<1;b0&tNt! z&7tZQ^(_r9OfA6vJPs1}kI-3wX9t95sv-@s?>AWv@_DGf@0mokh6KqFueWJ!77e52 zRk!Sb@S2Zs;iK3eU+_sZ{O22JfGEn=NQ7boH9D-NStM!H(6GBgj`;R!tip{#T9BVP zP<%T`DZtRQsUo@UkR;;5lCLc5-!+-j&E!fcum60u=KDrc7&tjX3*kaAK#6 znf%EV0;fHtVoP)%c1+ssaFyha6~cJZRu4l~!5ruqc;5%Y6El5LNcH=VL0IU^iT6^? z8-O@E-Y!3^6xZv%7K>%2tJrkEG<|4DBLKhdHrEPp#uBhf8x9H9 z{g9QFIb}6jk)s~;-u;!7A%;4!t)rxUuW;h9Ns`DA9GCu!AVjA9XZzc?{1o5OFA^Gm zUqAqXy3hy-rhi;-(qS`$#3P`DIQ(6g5+Olwx4Q48TL*;Vnj2YkpH%d%ockho!7Xv} zpM-~jbg)ceNC;ebY@k|)V!5;Rcx+6g6MC-3a9U1@T-sG@w&5{Lo!fYHks$wgE8y1} z{rN7!8M8S;x4Vv0c%{a%NTr+TPmKxnK-xb!RW+~>$+iqp`eAXRdf(a0w=zNeFn*cs za>#$tmoi&(JZWoIqU3LgBN`%#v{+mkDi}GJZTkiV&rGA z7aY2s{wdTV61=l;^2|9?XTFVh6dF^;%vpCi{@X7*^gnnaKCluV(} z4mDpuT+a$EvRk<(BAk2Fho{;i<4O2GD9~>*E)WtN{}&$BSE>m3Gv#* ztBVxRWo)HxtrU{)CmHpXhI*84Y43`x!rx@xpBg6mBi$Kt%%C&rmH~tdqfR>2)C3FE zT2m>o_H6~FqgB#8Ft4M`?j}D7nV}7wDkWpREI}Mr`<22!>u$;~Zh-C6w~e5#KrEBk zOFwNjlw$5y`P93#V#dl`x(I@0m%O@HUGTe0^mnd>1yC#1nAPuK?^^8GkEKa^FSA(| z;Djbuz7YZkC~a0f>o0!3CbIIZo{&6=y1VUA~!x|E9)?c@hp zds3H~zrAYKE%;5Q7s8iQ@+>U6TWxxSQ9t5&J>Z-dxsWjb^8!1sIr-(e>Z>B|auER{ zbFp`{?^e(&)1#)^+$fwS%U31Yih7wN}DNi;^p^BpSui$zwebH!tY znX`^ytOH1#d|4-0#?4d1IkWHZAPKqiel8w}fStJ{zO+Z^wtu^3q2IZzSN3S2ATk-SWW_;+Crgcn!|rU7et@V%D;;?eRP`8!az%Ha-xo6Z>exOKRuI#k`SHo~gI6-u9&DTs-VACm z(`KGGXzn+S!M#ySpWKk96nb0etcyCWj|;avd37xIKmgO#g14ZLP|NuB#=%~|3sfUT z*7bvNj(S=W2W~)&(Kt9Pb2P@eHoM^$9m(-|ea&?*Kv`V)Y`Qc0o4+_JQzvf0$0h$; zWtieSObp&B;VCSk`bu1w>D5#>?^*IawkK!iAe@ID&CrPEnHf(+nMn&uw_Td@hBTh-MqpuOatVDjb?32hj{9)=uFAvuD(FFfkZZpL-)``) z%QMs>iD3)spw70$_V`0Xt@G|yM`NbB0C`1OOHSul;LvQ;ly9bU4wp?~RB;sOuiG=L zK*#ix@VqG{#xgEimS1kbMVK@3S{!t zeCkV-s4wt2cyco(jfQN&#dV813(W>i#*~WNh|zJ*FaaO9DC* zcH}QV13;Io7C)?i;!(0TZUU2DwC^xFM^K~gP;x?kwN>M}!ZKuljm+pSXp`auW-|)u znSn1qYZ5dda~~dn6GhieHFcu`hkbPuvv%pLctu4?ZX|9+CqjWj?kjYo-u8)3pd3?3 z)Z=miC?0?biJhkBiHJSdK3F#`n#=41*f|^0_*=_!rWBM%fVXGrP+DEJXH64W0pG*u zh<3GDTv;PcU=M4}Yd;$l{ETss!Jt<$)1|oKOPSeb{-T|OdcT2q%6p5fOb}70{+5)$ zO+v@A!1sQ=>T?1EgQ)U&znE`Muk}yKJ_0<~kmjb9uFVI{&med}HTsxHRCS$rdsT*yDs2svxENCOtSE zz{*V%<;xB&rK((?W)-~8VUaaMCab2?P9FAEDF++2de#SPsN9)5ctCjxn{};?mZBf; z&^b0Y9N%0B@_kvbPPo${gCag!{uD^#MB_cx@!IOqjA**MqD^wrHO91rSdaFp`=UNX zi4Ay#kfKc6mr-%vlq8Y4^FBrK9z2RHx3P1;)GmqDo6Z?~8m3VU(%=Iz;;EQuD>n@F zoe90_3B!#tv)SxdFO$k*P5@i7>_OI7xzl0b^@T^hkx3%?2*|kXDl2Putf&RsHWKDO zj1L2LQ>Tw|F!`nFPDq6+X9oTb@mlC_E(ix$i|E>Z=I>7Djy^{1O5eS+?wsN7AJDiM z24HeT2R?7{#KFSGy)IJ@S!ZNHK(<6qlx1b!-R4R@z0voyn(sayA_xAjnu@-I0iinlC2hoU+}C*_@)Sti$}ujLDO z#x^|`I|f3pA7l`&@W~KgdaaZP38{Y)aeL-aKcTnS>$fk-fvCpEq@qh?N)TV}AF7`S z8uXr0MTrei$!qm+$#$!^SYk>#Yo#esXTz|-<)#QTR>F<1Ba3ne5V^#;8Xg{&s@kLt z>3A0ZsR&EBY7$68wySQOwB9$% z*cu@`zf8GXX8_NBbQS$+L3S&*68etsCUEs6+G4Y8VqrTJ4imyu%vwJ;9zTP2)yv4j z&o-6`1DP_ZcfoUWU&KfEzEhTp)qiolw{x|)84@Clwh0w7cn)F#^N%|7unZRAUi0DTR_ZjRK5Kh+k0j7J8}GZG$b-#-3_%@=h#U~vqZ~8<4 z!VVL}EYxF4iou79fHtUCMbifU2-k&?Dci1)o=?}pnt_;Kn&ExM>6v1v->&SKdAyhN+s!FSG+nZ3qga@xakM$ASZ&nzXnh7T0?0JhVn*w*IrV5C0tE% z!rX-sp=!f;Bbzk~Y<{mX6om+qBh*TlLqZ_LS4uM-%wIk{h+*R-Oo({)biWP!)jF;) zn|2&}X4Yl;24QgZsl)XGM>EEb!+znu$Pz}KtJR=0gMOUgz}}v(H*xI0@y{rNu}|Ks zEJojE0wfD2a@hdP#}Sy!9~hG|T%EhZaAKeSfE0AWC_#DLBnEnOpxk^M;g^_^1|*h= zf51^^9);@SW-w{Rm9<-C`VRNz-*u2*9eVge_jYqHn3*R%J{bv5wzmOulP7 z!ep@3EwoOjRZwcpPZfAb{w&>LNVQ4PCIF)xo2=w6GkA|*r8I+6l6iJ10Dq2YD*OYo z^;e(zE}}(ue^K#A7ct~$#lDF*cGtA>ksp)#-cdfbpj-4Znn!DR+(tTX4}_)O&a4*6 z;J$XU^35gju*|xutir#fE}uqwjR%e(NL4hgI*d&|5Kd|;$mrO0WAm~un#G+7HJyR8 zT&|QUb1zQr#({%H&R;>QVvkgvjDC(#&MS(@ESLlH<|XmQ2B(C6xwZ4>_EZvc&&nsTu~TD2GkjpT!8RuUO(cE6540x3iWuF%ZH=d0Z0+RqNDa*IH$dL8A4krM>Zlfr;zqW z?V#P`ZlT{Wy@D8=iC_`ShzGZCatT>RAt;~ z{$8ku=mCrkIhJw@*oJ+I%NVS%tE?H| z3|OaFf0c=0fUMTE`GdzGH8>7i;=V>sT~Vj~^%&qX!)vFipZ1MymgJW|s`-6I9~JYO zTr(=6ra*_9dgXvr2#~SbJosPPKEE>S6{c1@_;^<>@as+g4H15Aqntyx90@QdW*Wf} z&DE>|kxEJv$+eO^2oYp?G!Vfb%XhG!0pjY-D{V&{lx?(GU?B9Es)JHF(n8U+^+C9xObA z8^*Dx-8y+Q&iw_g;6oe8Ad9unuEwVAzs2`KD(9Wuo%@JYp+A4d`NX0Gp1ZD?sE->7 zyjPb5h@dAOiGQ-w>$TTP+`T7uZ9fGBX@EdtAkX}qh8^v6_1FblHsH7Mo-g-C)a&4- z#5#>Tq9D+SxB%voRQyod75Cv!Je-c?c$lb7FK-3hQ?5GB6ITy2fvK3l#!Z&S;| zRyTGYX{=5vXu*oRaZ5UHS_kimu2Bn7Mz_o_qC6<_M`}c%zC}8C!RPhzAn|1f{%_qu zU`2_JXJ3wW^mty-S5eFADYKr7BE%kpk74;hMvi-Kp#Ms(DOG3u`qLYWW(;YO{?-!F(ftC5K!?4P zGmI^Eh5)PnP9pVKoe={+?1n$ed|SWp`46b1_G8Aw2zRi_=0a+pvB{Z`;^>%bt$-R2 zTdeoe$~)_6rcW&Z=3~a;*P_fA%w>1)nL(!_FFjrZF69AvHo81_CB4MR|Lxeqol+v9veV;l;768qlZUoMpLE|ew*e9+h60H0EObE>8!@IzXQfOV?R zdKHY8`$q3F&OTN+f4wz7xh!|Q<9p`3OzVj2K~))iK;$VQnXmFRAkXa^VC>jzUiiq0 zgoiKJhz>8XIB4=FBsbj*U-i z5FW?=0d+SQth66ss&f43MsTtTEfVOsWM<~khq$xxy8lMmdqy?&w(GtD1QZbj0qH?O zQ4vszASDs~(?kd$O{z!-BfXaZN)drjqzFQ&(tB^AO7Fe*UK45vA@1qB*1Og^`|PpD zIUgK}Iy8)#IiKf#uKT)w*J?bmVgpLHvVeW7Vtc;9095r6lL+0@2UeebLi-5v zwjLDdGyI%5fWhpo4-lfNi+q7XFCdWyu`&J;sP@38!6V6lAHW&^@b37L&7za`+ky35 zC@U6Nz__X~18p3_YW4OUzt%%6q!|rf??aj*5LBm@0w1}RdV!Ca9P7rNbue*K4Clp`#(`%eEmzMhr1@qS!h%A*Pk|PGwn=sfDeBaJfe`KACTA;1&+` z7W=76ATL)LZLvh>rVw44y$iGt^^f%9^?7n7``$4=)XB-WKAS!*a?IHl{!zFO_AI#s zarm;6Oj6;+7K>WjG4rv`d+HpunY(V`V(iUy8%Mz7dCXn?ASJ8ip4I)m95vgJ)&JeKI>P zj|}xN2u0#JE-52Nzr(uEi8w>@2yswQ;kpu7>TL8?OqI`^?`qVPv~XA-upvGL2RJX3 zg-6!z=#D4(EZ@tA??l%CE(-?2jwNw}(r4$0=}?-8euXPrGR0&e1s1E2W-*huwH9d@ zb$({!pBNwi_I5W^!XC67?r<_xjq`sHf@RhSk+VRQOzh8^sk{S~?G~*MHOr=A?l}QL zEc15-ZF6uA7G0s=>g-@90ruy+0N2*J=o^8AGe;09qL$%~vbn9`@MB5%C>ALCKRNCt zT)fN!E6Wv3sD2)N#8&sctTcHWRznTv_6BtkHANj3=xu=o#fNR@jHUUR?M+A^EW)Qi z-wrAA-SfMbz0`ocJiVO(YX_kac6fQZZZA&d_m zE+Vi2WG5Nju#OwHPN-N<6~y=C%$wuO0N;YQGge8H*nzVt)Te0e`UD@D5W4x(hZ?qI zbVui1*I%=YYG{xBqkm9ZT(ld8XgxN$x8{zJY8)&RVM-7h`oI^IaLZw1qW4}0QQ`%G zuRI$LPcJJA9H$FT4KtD11T_Jdz}+!U1{5If#$*b_&uuaQ>4i{=C z1F0%1KQJAtn($IXDVJQtJdph2tef<}u}{8Q8u|SbZ`Ag>-q%E@(i&G_J~zr{7Zv0o ze+q8hqi-vmVCs4Nd1zt7_`HPiP%Q9xC?AJH~0HG_(dqbgx1Pv2X=S>@nhcr_ZKzVG}vdq9ua^BA}7CX1uFfJo*ZS zH*^3hX11)CjAm?Iivn-WAa11%xjewUEm6bU9jjdYkjNbOg>#k~sKZN49qzpKJFkQd@_St@%`qY9a3QVol>>>cLLGH1)6lPIUsGV~?F;zM`UwR$ zvGxOO1Ul(zQyTASJJmb-UM6IMx2`bG^)NE_woH#(O`3g>bHq`PR@@jR-5$1a5vOnO zg#D7^>yis(*<7Dst77y(^9#1)lNU!g&lS zW=ydgBhK9f#YVW;61veL>&B^EFc=`z{v{3x0mmSQdaL|io*Xcu#1L)8lDLsKH5izAq`P?1v-qdM$4_Zf*IK% zgOwq*M)y19x|`u&!aF5tfNdC%^vT==fPOqD7ZO%M&Obuy?1+qII631@;UM}Zxcb*q z=DV$^UqDc|5SRri#blqWHk z8W2>L)p$}p?BHs4$tGVqDDn+1sPg5N&BsJK`EA90#Z}Z>eff4l*5)O|HJC9&*kx8u z+h9{3fy$1fYtPqCy7O3cvtkLsSJv!oqX;a!ulRctveo1AFCn|OE8stp;kA?G*?R8EvkKQm z>ZZAFkQBSf}$3VACod1YPTM0>uyja}hnh;W$r;*~V!% z*M5rhy%)kY5;?DRj@s$s-XwPtUHV{s@w!m1L`%L^qOYWE!uh)T6XTjFDQ{-vmXQvD zr{=cNb*G2INhMNI~i-FwPb%Tq!QDsgGagb4$>MbYFvZ*W2n`rXAP0 zCrfk7R@bZA-A`7dLfJj(0PAbBErXG)^L6P)RyLWFGcxYiU+l9?wG=lucXH5X+P@;x zRW^9Xu!%dj7&N0Hc$vrnClnLhZ)i!d1G*nlce68Kg^ zPI`={Z?%nMdE{RYg<7U+sz28T*-Kk~GZM(?%c zx%OjJpKb%J2~6j-0Dh-0oiC(2H$%6f*V$Z5W7ia({&{O;%TV(TzphP!(koe>{^t0* zu^&kNqF~lI6K%9aas|R?YR=i7rvtk86grNs#lxAJk@ypSfR63>6Qwt@boeCC12=e`W@P( z0?rli_5q79@$l9kQ0YXz6%+THp^uMmXBO1kg(6B*5U-E^fWpV+4wmxENKmB)vQJO1 z07j3gou1T?_1{@TjlDx1b5f3r1p`xnUa9o+nwI6jCEkS4^owAK)h6%|C8}?Bp}Siz znW#D0C^u|>mkp#awp-Q4j7K6kPQL%*i~syF!dX9ug%c+-2Wi>R7=`cha|`Lub^@q` zx?6sR7ikTRm9}QKN9JO~9Th$UKFoslh-Isla}%&xC2*fMyMSfNeeO3LmP!ex=;2IS zwOFMqsr3F~jHg9!#M-t+S)utyX<`;H&Cm5{$-fr{T^0m^fwc7!&1Bx2tF@b9%lXI% zFU?#899O0_diF^#F^7Zpf-QXL`~x}~$D4^T_Yx`lUdV%vRf;93i~-A$2DlxqQIuaV zvz!PH1k)blc&^<$cFD1|fhU_fzqkh74bLEQD0{xk(95D?7%w2o+09iN6D)CGq@bB# z+O0B^w+*lb3C{PyCwO5e&dXsJ#mo(>ag=B#^a*qgP@%y4wi}}^(P4hv!3zd>+=G2-e0#7B-7;~fkra& z?odG4j$$ga_)1XrUwDmWYz*9871Fb;{A$hq2gDBSO_RGy3W!I?MpHd<8@dx5h#IR~ zh?RZlv4LAke+1zGpN&1>y~sM( zi21L#suTtcYPt~yz)0#UP0GJd+W+}Va{a@P>S0c0?NLGF5vQHJi>QB?2J46ErZngg zGWtS!4<+yBtMuPyi>C%`iNE|`T#5FToM<lIY2U#M>0YgN@7@a$}bn~0C?NZBlqZb8gCJWWNfJM z;DG%rRd1+Z2$t?P$>0G1yK8AD={VASJSTDXZgjD@#BX0J{Gz(n>=PBgE`Gv zHc%G1yg#h;W2SKEFok%;>Fb$*2iV4~O0;C}eq@-|j;-q}JBHsx*h^D3zC9#Dwo&59-*DbQ?jIt_ZF4Xzk%R%7uEdDfgki^ z1L0ElFe`07f(;6Lk29(&1`Y%TZsuD`mz^PtFC`|%4Cyh+iHma-{Cp~}DtxTWjgQ`3 zPBpd`FIQO>JY~)qAKLtq{vP-~K z(cP`vs_RqxqTjU06OpUg!P~Zcf5iGr=om)j|xR7+01@R5vt5cW8 ziqF4wGrxx{Sk+YAxbD(Y)eFhuB2qMb|7oY|Lg*z99S8i?HB)~qbI^>m)spWcJ!m7H zSzgL(O24ADdjSpb3R-R?*&*IU$8yNEzx|Z&RaZS&u1?b?W}CXIJ$0A9zt|7})atzY0A_(Cgij2tS<4Pwxs3HcphG~Bcm~ibvr?x#8?Ys{q zl`Kt#WNqo6Z+H9N!i|nqd~A7(e60B;)tG@C=%9e!lT62ks_B!X1l@q)N!M=~*#0b6 zi_AU*+}rtH+gllbkPEMk<6-1a#}3AQFtrq~*k`X>@GOIX+oh8F`T@^LW-2|GULsrS zSozWlA31ZSoW4{mt5$u%eZ`dZL80;Y-Qy%Nl_kDOa9> ziuiFCh*MY)*qk!4r!$Rvl)CXq#xN6b1ITx{O>6mM+t<79CHB8>d{lF-jJJvnhzDfc zk)_h(l*KH!Uci>0`N2bxl{^_9U(N?Mf1!Je;(SQ09Ok|Lx!rRA$>fZ}-hFW`<6>%j zMBh0pKBQKd#W2?(^2sF789eF%Gz4ENz6~g{_Oy!f8@#-8zmUKDq~aa7!q439wxnMB z3FeMU>77nQc~J)eJqswo<9|S`#}D6gC_Hrh^eXAcF?f$L&z+NPxIE^g=vdF2CWMP< zJ5&rD<8INs$9ti->=Kn<6F!!(by-QO0sM14n~;Qc&nW66#fR*qyL#ZHrv}lII)!pH zG<-u@L96MzBj*uwa|3mR&H4qtUYIb;RJFxn)_e5xKY^2Ny4se!1CkCL6}s2(D?az#1dKS`U>DD(m$+&J zovQ;f`rF^LxKus|1xj7=m8R9Cid}oiKLmT*f@br&J$4Lb)Z5V|#O87Q5TvGq93J?S z@G^reAT^{7;~|fBv|`>lDk$p6X*!u2#~Axd%X&S{-8$UTZP-T%#l()g2KceBDT0U5 zn}yIeBj83^4pX((jZM(qUFmhpv?L5ld}`jxbq zseE+FW>~Vt`NS2z@v+DI;Ym5woHid9*e5r2OmBL3tlA8uU;aE<5x6&AK8A$4{}YOM zOuJzuuV$dyuJy(J?X3`t2unoSLQwt>)3Jm73SJHqqggqh6nelkU!*Z|T*twu{7t2# zB4ob*-gHFT(u;$W0fcUqteJYnYZO~GPvmm){mbOtgOh6l#~g2TPj zfXhm@I#em#n+KSS;As`f68Xz3ztYrXfDM*T{tLk!bMIttmXmjQ&$Rmb&A>zPIL8NI zXUubMO3D$^`sfx;hH-*+j zRgaqrm!8@ri?)97w4I3UWUhwF+GqWo*FEiiU#AKE?YlL>yt7bpnsO~ARLcpgxi##x zyvIcIuX;^x0)yum7V%9m8X{;MYvxdmXa=&E8cO%(OF4JK-gn2T4L? zsqoyW6jSKoNiTU7E>mQQ6T}Q}D8v!z4IHLY>mF(K&&vdc()ASYDlF18p>$7k`9|8z zEBMq;T`JD*$ne?~LYIFX;It%8`x`C5v1ob2RQ zFrlIZw)nW$bnbX22B!p@E3)53s;iKD5B-`HK>gCyX@NS!sb2nc(F7qL;U=1%HNtTL zOPg1_E7M7gx5@kwFKqUvkFm_Qwl;Mklq2SkivArp2aaPCBmB@fs6Pkb4t&PBo)6}ir#_IzA7>~)u!Gh1B+ zVe)*)Fr=&mQTx!PD20$`7CVq1QPW-i9O}&7*YG|wv$i@;ydxXJO3W+?`VC%VD}@~y#`sqC~sNy z7A=J7^GHS^%MaB7smVOC_nA$dsjr?<U)##_gN1AM3gUcjiQBB1EZ#vh_HL)s@|;~(|s<)3Ha z#9C`LwxolCj%VB>*381k$clza5~e2?=0wdy;^KZE+=n<+wiCC~O%P6F2@etGt#vdm zTEJh6e6-z1b>{>0q-WsX)}$C0Am)5cZk)J9$Q@&7EHfcA_iHvEi^P12@b&PuHj8zM zIPWgk{7j!b`72)jgUvOwlh|ow(#;|DbKVk$g@>1Uw*&I4zJY~UWF>p-2_lI)h--vA z-q$ux9ZvTc)c&8)N!kA`mG_O=hIG!ch6Opn9xpoxyJMB&%-D951ed%1)R5?&)T7#~*hZCAHClMZC zhhieId9K)!v)vFKHPoBs?^UaV(?{fII?e=&57_b5rB%@#6}1?BN#-7rvVs@vjK6H3 z?r^*-71GBS^XLh~Pm-Ujcxvq-jsF85>fe;7{~x?3b&4B5Z`#@ac1Ly?-CDpoHVt+B z>VIE7DnMSRP!ObZS^`IZS){(0_(I?rcUBf&hD6@@au|Fdpv4v}bI&yNa#`Ms`X>;J z=KbyOCD%N#-94U^y4b1aH}03}TD@9x+$H(}tpW7?@?qXsmg6H~Q8dbymB;;D^T(@_ zj+|NOoflw@|Ct%q6v&wpUXI7oPF1Papk9pUo5dv0PrJ=C@ZPx|IER!u{ERFr@bm^G z3qu)z!-01*FdZysp;tBwypIahQ$-|RxEyQ&xNjtp&oY_()yIXc={y0g{`+LMsV+pi z^XRSldPz0h<%(xl&-8$WF{fKNo0*Sv&wihK72Z528_{D^H}gY!UeN%#t|+=U&v=<+ zRzEzx(^eZ=sZCE^P*AL8*>UmFL3mffW02AaW3l`xYsCcdYe(^xp>A4t9Nqn)ySMzA zX-FtJBsQ|x@na4Ua-3_r8^y5O@ruaA?JMpR!V&L$Hz`0MYSfN_Ge};#?OElazW(co zR@PW|p7*&a&OFJWqUU2o2^?6-T%qWb=(XGaj~96?F4w1N7j0gxP(>? zY*y4|CLU+!Uw^=Xx8T4UaYV>)h0=|(g79SOmzfb}PK`8AkE6CXz_@MXWkU5OY~?KM zpp^et>BuNx+Ha^fIj^x^tG~6#Z_$zPy)r>3L?l40$Nsr7t7B6qW%Q&c>q(f{sTKRP zoaL9^CKZ((M5zuSyf1~8ZLHpG*}zF?+hgyt7d|eQREYo_;=>Iir;cOJ-}d-)%IjmT z%6BZj?e^W_HMuzxskrBx#Zh)(z!ZmJYr@-WC66Ddnr(<_Q?lUi51mh>ZsFnK(WbE; z&KXRxLzj~&p?8r@s^q!rCrB{vZ7bflcucfM$+J+H?n7_QRvl=MV6RoLS11@rxR+}~ z$yUHWwL+QdWlXu;MuqcV_WZU}BfuNEUY*oaSJESSD+-o#-xsnvCZ(KaIsMYQHZTWH z{>7JhLog(h6!hXkTRYa)ZSP*kc3OR0JD66=z!o#mf;KDY8!CB6 zxKQwOtvUibV4h3ac}r*~&EUj--*&%%28p`A*jDd;b@_k{$O@wIdV#6>#&hW8ZOF3! z6m_RL{Ecf%@f9LVVJ!NpeBFp(Yih#y;k3%tZYh8)J?=q+bj@ApTAQA3H;we|YTBiA@St_n&TEBQ7BP7zzA432l%wiv@2+o> z4U0nWqVhw z@TD4xq%1y0MSn7p^ourB9qNUUv`w!wEuD==8Plk<=S8W<`5Db0Q12k+>}`q4By)S` zY~3b#qi1GD>(=pDi=gXpPOjl^9^R!=fcF{qAp~@>J->cE`%C4Kyog15d$S)wR>_Fj zOAz?KXoEe3tmu`{p4rO@JiH$xZyg14H0h&0T2y$WfbVJpztE1nvgxWm-IXIfi{&Vc zjbs5q606_hSl0?0t-v&?P}89bMZ``~9Qe>Yh1M#qo^<6jew&}bcWfotn1aNQn*wQZ z$(2(Vkk47b(qO>jO8iHaa#$mtvbZQ&O7!9%>odbU6_w-1b5c66yX^zkg+-hyVqU#X zezV#`3<)qhw!h_Ueo1cZ#|P|DDo^##kc2nHn;4bM0@<5UZfaVLpAx71b0AGWQJG%O z1#WSASjJXZ-gcaJc!zlGOHIU_VTiPEwo^{SGJ0taWi?P_$<%RcN7svYSSbUzUa45y zfHJ>jZ#GCEUXb_*eK)N%mL?S4dH&-}y09eENL)`^t7Q!-bEEq?G&1iuvx_K3)0-cF zMhCqcJNDM?P)oK+RN@WRQ+oJV+Ya6pJ$fV8eg?8!9BZJwI}MhU_6R9|AuW3+42B75 zdG`_B8`Q6rhO!$!{eLa#{`Gpl7s@GqWGUav3d{#Cn(5om&QBlGAf~|XL6=9kaY2%I zPGAY?gphM5FCT1t4SmeWYYT|>RR6+&3qtn{76g%~#QCLmIkUfHx3`%B4$qj8D`AlEkX#&fmA zl;y0ed4q5Ba+CGO(=Wa{?#dPWO(aB6(~vW0r>lfM%#+cHodHC^@|*u>uH=7&$!a(P zT5~;WAGN0b-)~>AIH}26%aj0UN?AbJ{olZs8rouXy1IRi!tf9VD-NU?84po|pq-Xk=@qw=u@#1uJc@W%b3w>X*% z?cb|Wio867lta+6e?Ex}-0ajogNsnn=1`pzO^%9O3I&%ez92u>U$Za~^7Djz`qYr| z9%9r)Zq!ou(oV>dtRF2vc*RMH!T5KL?ua!NRPU?_Vin}8WVU?*(JCQ)ecEa|>F+)j z31l{rJwB8K_eLo@f$6+di2~U6^qd2J+jVBRoZHQ!>&PPh6BEPM3n-5M!AII}2g^6? zpIYv|qOJZMh{yqSHLxyd+lR^PK{-Y2Umx(oiT=rYKTvO_-k0k57Tf2AQbkH}rp{uL$0_A^ zvs^M(Q736(Si&Nv2#{k0bch-UH*k$ISm*NSO^;Al8#+>1s?M$CA6lT$qyFc=y(Dt` zmo$}x*+CSFqQ{iGe?W_Up0CGkE9T^eJ^3E;zoF}p_-++nTDh0?6V!m1UTFZ?5QluY zE^Y^WbP`{nx4v~A1wyR-bQ6ba@c|#0fJFu*T*KaO^X43ic6$0ozSSionNd%`2;yn6k-p3)fhG36y#+%oc=e04B#P z0d$rN$m$RyVERLtGkWDZ+dm8D*Xd6h}EKXK^coHfOhdU!12waGB|pM#exlRIff16>eV zvGPZEeIb?q7GQu^vTwKwkH-)uo5Q$AhO;l9*r}XeLlQjD(j$Ai7wQ#ds!A}Se?U92 zTnJsf{At)2x@U1uQc0_Ie(r#KjN1@_U4M-o_@WCtZTx+M{%(!JeK8epsbYP^O0ztW zfu{J5z=IJ@3e{@FAZJu=zVCtP%AN7=yz{7PDk8I1EB0^qhP)kCdN)&aQB>^{v!$U* z+4%=_6HU8KqztHFHfIftU?#KsRdKP=Czp9C#{4 zC}0tvLu&TRj{x)yS*);H=?H{vXLterw9AU;Y8b&m{E@E@4;a`Ez4U{JCDMRM8ed9v zOR|IM-&ogRV@y_nD90z$dHxTxIX`V3Ugi=XzbH@=pXXz9TYDbKt!c9TV!b}@G-UL5 zk>BH8#^STMyvXg~3>3jF6XZ4I?Q(_>=vxi`datd3@39Hhb$SJ|;`N4}W(0{yfoBW; zQ%Uyr#O6fA<924XTb5FOQEXDKMNe@SsWQvZ-~>pb^VNi@HK8|QLy-(Ml#_cMD@K+b ztgl!*SRcvxKFSRxCrcsql`5s3I%s}MEotrO+2ue<^iRt+BKG^RRyTy}Nh_(ASAlo# zba(1)w%Oy>8$uN6c?7w0xwd=l$RCx~2C4&TCS0qmpsWllEf3B}z=O%7V-{XynEm+U;z&OKE?o70rZX~1gBZHf z-YrJmW>I9w^S=5UlCwP>sw;=|%z+VehbfbQ^$C#AK{(GgR>i@3+3cJ1-lEM~)ePf76P2ldyaM6wRn>dIpcR zDidN>0o0Ge7=`rbC%jlvUuixS%y>ZhY(xK#bgR?1)vb!QA0taRe~@Jg2Jh~l&{A7h zYSFv9#xXhkCfi_kdC9O*#p9@MS=)yU7O^qVR!;0MuTjRLpYF0r}1yW2nmoa)>7k>xfXx`>IV+n773R~ zwmsrt4L=w0P>!VI^0*U0bv~gmlJ;1naRIZgTK(IIa zm2URO^E1n|h3H0}= zvldtmM0Y+O7@cla%jmDOrKLJGozof4I4wMjdb@A4QG>9O{c+c5haj6{AYf1g^mGo|SHwCCD5`E3;vpOy(GuB{eIzJB3@JU_* z1^t4o&CWE4Pq0mbh*}Dx+0Y(cr_*~;1D$uA(s1R$Jlfmat4uVJ-rL}hTkYtlqf)lZ4=eOmDj;k1pfzJ; zDRLd=sOBc9NSwu1e)|-!(}%p9(UDejbfr>87o_gJp} zj3MhF=?*SGgw_jG14n{+9pZ4po2Unkn3J_y&VnmD55a!d4GWf#Oq*!I5udrVdHyzQ zm(DMYZZkvQ522BJMoc@kBGVK_&wkk3+el$JO4+QW+O+oT8srhLj}d^~V-)xG@v}8_ z-@WgFYo71v%2D2Jv~7cwqoZn?qRMg$3d4mbd{r~HHrJK!0IHZAY~?q|Yv$q=?%RcY zJ5wzWEWW(ck&BY3+vShAckMjk$cPrFr-xPEp5DYeoxRcLQwa8|2CTkm$O6sr3cWB# zJ@nY8aErR6bssnKa69QBSPQxYC%n{%lZUWRp6C3Xp%jZYbv*Jb2H;4Sn=^GYrPKXH-;w&%uarUJKnTWqzFS&U8o0N>}^476u z;!NHgM9Cs1)}1<8=^^ub*qaUJgM^98bb|ca)Rqrh0MSZkULS<`Vy5bS?eF-hFU0e{ z($_A@j99si8h`~Rdb;69kU}$I3}e#wNENs^T_igfgi#lp3Fj6|_rFqaqoS0Zv0G?Tl-;yr+GtAJEEKdnQni5%0M2W2u_(cK7F;&!~z?Mo+2j9z0zCT8}=Q8T!fu&DWiPUO}AF ziCJ!cK(qY}hy^a~5iqHU?QT(^%LH|GoN9tn?0~+-2VyWS5MB2}*;Qx7BGNz2|6Tkd zNHW3MYY$ttoLz54;7yq|pHo!2h#$bW&fkNe=B4pY{V$%wLZNiXFwtg{tWHG9N1b3` zl#YLO(-blnR0;ElUX1hS!HRuL9~1Zhol4NlFKn~tN&hahGtlcDR9z_60$~{SGFxUA z340E)IM4i!jAaJQ*T(ptG$*Gw9nd-3PK%pbAWFI*A(fIp{?yMb5 zvl+4?!}*Wn7oJ+hEm7SKBr+_Pmd!)-M>CI~ygQk5 zxX`SDqJam{I63h@9zb7k>JC0D@PrJJVNg*p-U?30&3~C(-6_5`US3G#a%(w*Aikb_ zpw-l?dVv7FC{n>7cP}}sQnn<}nFX+q0%^CDY&fdtD#EpCU{?xhA9+lq=z3kj+^dwD zk?hGw4A}f)0S(=_(7q3p9@@&rXJx9rTYy z?9boEOe^3$Ceo$|d>Bzb3NZC#C3K_qN8_=OO>RYbWl0qf;OkbfDDx$R=W4FB@1p9J zQ8nN&hWy=#3BgfqbVkEZQxo;PIJNE0XE6Fl+dxtv7Hjf*0TYMY-(O}C)6qqw>n>u{ z6oF{lMBXjr>tp29NQ)8nV!1B+68`ZJ%EIjP4Rw~+a-1Zzp*yxG(j&6q==|t6^BFG- zWUkMnFvYd-(A)a7?L$0cH!*#6Cn3Te<|6A z*HQL&Yz2@J$qiGD1c`&_JFIbG@MAZWlde9q9dsi<9_X5Py!0t2S!K{J@VbVP4hnIu zyL_cxu9wGlbxi9ah1#0e3O5=gK0>TmTu9bt^=5C4L=SqfC&56G6q`PTsj_lmmG zoz2Lc4+s(ipKqA-_URSDsbjWyZrgJkH>m)!iS=gg%^Tifa4Wb4IL^kF;o9Y7!~;Tr z@(cC_UxI)a+hWfRx{X^sq-9EXj|F;lRwi%x9T!H0JRm7mh?E;vXjUUJHyI=`qQZUC z@^)=Yh|N9ko9m4Rd6ELT_0+U2=z3gMKEjwFG9eIC*>$g`3OV8Qg%|vyjmU`o9q_X@ zJRNQZ>Ybp^e<1xXnCwJ^UON$)ewm&6;M%;7a1n~AI!6z3_;JF*M5e} zc2`waxjM+C&!to;yP14A$4}V3gXBjA%0@aXT?bbAGDe7WZU^ez-I%@J*B%u;kHrbh zpYhsLBC3>q_}jZnd9b^Rh1;j&#j8vqqb&N!HxVERZ~*YWk!5u{t@6VrYpP>yMz^iF zEy*tT2{c9*a1-M6ezX2e7zn8_c&+ZLKi74i_Px%c4;dMzsMcnk_G=?WMT4Y4-I&Pr zhoU!x*5%^5s|kzRU1Vf;YOrnNP_ny7TUP#{m6G z;Q$bJHsLh*SGZfOj;SKIag5V@89bfQmDy?isW-;8Rk7FPHDaiW2{){8uD?At0&HV< zWw*&a0<)Ypwq) zxA@=il>e`2 zMPw5mAWHLla~O&H3`a=dKEJBwUiEx;6YT7Ty1c4NZZw4k5k<#%x#N!y(~0DF5m?dV z`v2@IJ@|K5Nq_*FaGJaQ+XHo)bkguseKM(Z_BFSDUJ(l~OEWJfukkkeiC{22jMmM; zoYg`pF*V{7V#;ty+S@1Tg|N>PueXTXhLvF%uX|Ew8U@5J-XfO)`+X}`x}?`j8pC*o zbUrB$a?*OTRJdQ#X0s`+a|%Yvyqmv?iOpP5_Tk`FhW$VT2Is?;B*5TY(^OPa|8NN| z){LiSRr$d*nZC9P_0X0!Ksq2)D6K)~lFRWWRoJ=lxXhLkE4;py8L1#Vogbxc@H2Wg z;TSwMqcvDQ6Q(kLq#DSfMO0X+3Vb2stO~mkY8t!s6FXf0xot$zak=4xyW_f|w=mjU zDav}_vzK%ZFi8JQ!smO@#`!ny*9~`6WdvaFp~;kQUx4j~WZknm1nIVYI50Qi{HuX_ zJu#J0%ff+SRAua(ZF}wBeIOV7L2xTzEP_cXw&qQ4*pTN&IO5)1mPuaD;wu` zZ$wJs-bnd)cm3+Jd(hGuW%0&Bh1-R&B$N4L#V($W`we7G!1TG7?8^P{wKNHr*xAIo z0H`?N>9-j}*VB4{Rz$+MRVOOMo%V#rmGWv5ud&kjWDU}+0pFLu9~N(uf32R18ZPkyhy3t20PP@gB|V;NyHu-GBva8;q~?cUemSN+~c zyOv~KA|0hjjS6qYd!F}Vbe+DjC6RQgMLp*ZIRW4DLSSif*mO6wFq`Am(=1PUfIg>N zsNf=?xb%r6QEE+mk_zKhu5E}GzkBuD%C4?lpoqOqxW@?@bLR0LC)!5a4shyv<;qX6HL~IpmtBJaYAwz)&nSJb z+Oj_Qs?<61&>!-HAE(_O>k@4=-)!+IU?W*JL=@cCYe%_mN&1vKAI|J@wT(&DO?)d- zm&l5#ELz^vblT&b>Hitl`>rKdFo(Bl$3XrokS){G>bG_Q8ii}4B$|FaksculT0?p) zrbl@y`C{uM25y-OMdgP=RV~T3kQ4;akP}kipv@snYu9mAKx>Y6B#$W0Ikt0pika5S zY$$))N^N2-&l;c!pt;Ds>J|@>kUN73l5ksz-@%LJLAO#)5z9b?se`wyH|>%UtEHh( z@r72HM`;XMuOIQ<2S{iGx`Ec@1>5oe2pwkZ@lqH^6hk<6;ZdeQJ%Ep#7lqEB zNY^@VElLQ4ApoxRg3<{8v}ax5bTCvM_MVdGH2Zi@;zDnDX}MRhTWz|7<>d| z4^V<+CI$;b>it2bVC2FUSbzxyT15vAk|UF;(=db#Bh&2YArq z!7h|DW5Pg|fn*H~Cdgk#E{YBV@DkSiGyz(O`qEFLr~FXfh7q}&cm3NHenC0V_v)YS z87`q-{fL7Io54oQx~_HXT1>h>mw&VF6A$|S8RRAOn4yL36t)-98tD^Ty>kis`v1ztK&WlXl_j# zUdQf#U8%cP=oA!VNXlg6KKeLvBbAH(iJd!Th11Cjid2d`*Uh~9?A_RkjaAVQJ)hQ6 zBnhu$cpKJl)C7okb^>X4HL}-h{sCR1MP`-;Dvx`pKIfW{F)d|Oa9x35wU z7w2H_K1g-mfha(K^Lb@M57MC26K(1WN8N{=YpX86w)Hn38+5ubHPeE!89R`I*>ip< zqnMwJ9M=Lr1^>lR`b`X-tZ~v~i+sIE7W*XS65F(FrPMxEKWomK<8vUSa2?u7`{tE; zxnbzRajG?lGdLLU_kuG<*4?zRoYtTFq9D7AxK@QLE<9+3JQ(&e$Pma%pFKZa3wgqo z$4!&lbS#DJ_q{)Hl4nb^d3(BHsf{V3JYP7h%}H%v1#~8g+0V(*w_&ZA&vd!i7x-nB z0Spax5%}g1mMG@;x^61tD%G_O&3{0RmIy8G%jqMd00=!q5IdJtUb0_O0kx{@Tuh4$ zfF7{Zrb51x9J{uFslnF?(j|eGrv~$g%vsXs)Qj)IX#rsU30GNTx1e@IPE5J%Ns{jT zSV<%ud{}IV0%(en)XBOzpY8Ex{>}-`ceH|NstjH0 zSOLTF?R&A$xGAr=a)g0^A+QHztpF>C-=u5M$(x03y{6hGi0mS}ngtJ-#yf0!h}Sp& zfM&o9A`LyYe9{xPd&OQ^#0x%MFy{$!5Bk+nH_u!eGB0T#o)|p8faio#?Ly5Pz)6mJ z&cwA0WdLGO{RddJNRG+>_JG~w_wFo%AGIoCc40>V^&u)e?b~19B=kkd*00rdiRRpxfP6w-02zX8}uOhf|j}DcFN1XRJV@bAcs3 z!^P1+?1yMQHY(tv*tl~*{fYa)aJA!wIIhu$B0Y_fc$Osi2gH^_ZNvlw5sHQEadxGb zmX_JcgfqK7<=j2z-mWf!mX}vI)`g4@U*oNg@$X=;eixtIL{qVkhwe`B#upXf{9e*F zFn)i>ySX<)JQv+bX2j4264;nTyr0uMJUJ8MIBXy(uV2QJU1ydv6ixz4zV|N(dyxGkw=u zcdxz2ICt-R#u@hmgD~Jjm?iUHe$VrenF#lnnvoYOhxXKnZwDoNS^}aYo9L?X)M>=k zTHAj|nf^b%PERE(EdK_%{07~Q{kPYkE}$aTr3=0Jz2we+EwF|9kfH=e2TsBh{ia*P z+r~Zi8B5*gUd1Vt`l{B19^MA#kltN#1<*|mqb^UoU4A*!TRM5SjxW?eE_s04pyG9E zWwq?k-p4$|rMDp>ftQ#2)ehG-@Fwzk2qrZ&|TfDRZOL#Uj;5woa;1k9}UlCyyzg~j(ik95^PRw{1=qUGBBmao(4E14oqzb0zR6K26X=T4^VUz1^_hKHoAEi$ zR?=-TjX;nE5V#Wg(Db{nbi|bfUVj(PZ?1OVF%p~a&@Mao=F(m(o-P4U?>~f|Or5VI zt-IfKl<>RivxBkO1B$evH|N7unQS=dLqkElzS;l$Lj;kizJ*?0pXI%O-wr;Zn$xLF z0vte-J=Owt3-jx&zE8hUzEQ0)9`5w17e6iC?gPOkEVyMa86^oDJ@iP~pS^M}`Vmno zOM@~47yY7UsX&*Yignv-mHjqWrxJZu!KXhs!3F!MeSSPrJo18gc-$Bp2w$^8(!(CN zLjQ_rEO#02X=Y<}B*lr6F1ns_McHoNOoMzvIAf)ZvA?=}GQ@2sZC4`O+i(zkw9mqB zV>DWN;3!#Dad=_arM6nwenIBNW%7F$zGHBJna5Zl;tfGfR9BmkVEgkdpK+`r8hr|= z=oJ`LabA97Xyaw7YJxfL+8Ab1?h-TK$c`dlj)GOS(#C7AdmIYZq2rL3*1eYJ81Fa; z+ZA3bFB7p}wYcp^9aEID{MCtoN9X?l{cC*=_!XzgbLVdbJQ^uWx`oyq;kmWwM^odk zM9cI})p#kJdFSZ-PUX}c5n)6}RBuT7Y`pu=TY^w zMHp#$qGiK-f-|;N1Izs(VYznny0Mmr!R~KRQA*fp%9$@HcpiJ0UFo1rwjg<~4@+jF6WeAUM&?%77P}ut}j)0RJK*C&|9CoP%$r58ZcxcVI;$^Jy z#R5Dmex(xI?ke&3q6X|s9^~P_>Vl?iQ=1_t!Kzj+qt>nV(W!aB%sUhX6b5L!ayf1# zVbS^EpKrcgQoqdD8uOE{c-uMEHm-^HLYdj6iL%7}dx;I1{1*-^eZ`c)ihiXhN2kE7 z0&i&gE$7}8Crw_~p+AfBDfO5(h|r?+30qMfuw~9ie%&w?DG?+YDe&|m8+AGe$+QU~ z0A#7D)aM1n-5kjAf)EL3io;@BkIiW0De`T}*I!Y|5FbqC1>MapWU_Fo4(R}wd#!i` z@9^iEPFZu@OS<%?tS(Wtik}ev%Iy~ZBm_g`AM}-{G99(Adw@3GJT6EItJaL@qe%hK zwI-gHde(*Gww@~sV}YxYW16Wtqk9%}a-|m+AF^Lesutu*Nj56*)N)1g66_ZDuDtb; zdswy4nc24VD~jh^5<5v;krR3ifD5%y2peS0n^IJl(D`vEGFbzuY>-;p<1FLJzLKc2 z@;Tm8@Fekg4ub6Ybx&ha!6Mbj`#grM{0e9Y$&y>9+*sBi`P)nz913;f6o4f#y?m!O ziLOMo|D_HXaKi)Q%=WHGyz8`Z>AJDp=S9s3o6xR9@hNO=q9NAtWG?JcP?T*qcA}+N zs8S!Ji_8|p70BKM{csR@nEa`INJu*9UUcq}G<#Fd51<|eZ+VrS?$)C6j6pZ*lGomV z1EtZ9lIt{54|w9A&rRT^l)vIskgPT}^Id!oF1<=g z>74R;8eH^JXz+EY^i{Q24cJEi!FifE+(lK11e zF=i|xrcPJl9Y6oK+rL`RF$^=9A;)BL2;dg4jx>iOI?4|3EEyZaJFL)xsCojhio97_ zk+S>lY0_+Hz#N79T*|?+#fCPqvo|L zd1KJut<&heTX<*(NDP_xQq$WOOe(wX6x662Wj)88fX=%}{8u{e|M2Jk1F67&#`?sb zlhzZ(dXs{r_+LhSO9Kx)F%lS<`mQaNd@Y>)Uf|5S8kZHfQ-?Qoyzk!#-5+)E|BbKi zu{wneLaL^n+>4UP-H{J=QPIzWUHQ-P)CJ6zt*6l&C=%=zAheyU8#UK!dg+yiEDgXD zUt=4CgmM8|;J;P}|FfT~=eRsdrkasVwWIb-a%q>&DKGVWJR2crk8^<5f1txN2?a}@ zu0V-PP(w3n5#Qe=y!ZA*xkUXy7t{&mOMO7x%Cy~Mi`3|{_%z@p#PE}6q6Y*Yc=!(@ z@;@C`Q`90Pd=`RTEx+-})zwL|O%$;6r#}j*^?xU(im>9A9dpRuWJ#<@c0j$7)rLFz zt7Se8&+@%qRTVTis}UBW%XUq7U!DK_vnQPbDgM>Tyo=faM>~2%ajh}H^hS_|U0-W$ zKm){yy-@|5Nf>ar$*$uDlu!&v?%*-nmIPE`sD2$8?~lp|Fd#PT|D zQAf}D*942WofUaq{?mH~{*V7aIseC0=f7RIZ#)v(SWH>4N2{es?TH;dr)QhnkC|1g z1t1;e@HJpvF4wju>k!0;ge~naL)y)GPZ=&wml6fXVZS^9^Q~%sPWMi^nocn?b9pdV@=gHb_vUdLA zNl8DxQJt+(osP{Mg8uzz8uXcQHe82KS^*r@p~-y>HoNbt$@6k1GePq-uAp075WSR< z!&`qAe$3dt2uU3H_JI%QbwerF=O$2euWDS{Y9iVa!2HSS%Vw=KsU7vu|2wzpe|Ni| zq~k+ycN=iRslngkj%5+Zw@o}HRX_U%fF+?1$EnKxCMV~uJrOQ}%PNCEF@$F-fAXQdP3&&Ggf^XxmrgU0 zJKvE}?vu_XQad6WYt`C_jV7rL9cOL9X=l4Iyf^Me5x3C`iKpa$`^WQpG}^p)!WSg9 zth7tsiLtD%@C#yZ_)4tj@5r@rh!iXK`eNy?>R8705o@hp%-C#CoQvv!|%DmEK)0zR@s&8}ChEG3{s$N&N$`?%2JNZq= zoi5gq$b(RJ42Mdgb`4NPwvYAAa%1s%i}mU*5!cU+UFUfkm_bbsmKOANlpA{trAFKr zBtKjt%qjtY+Yio#?FfE@RDZJ-CLg4cvvNC$8skw%rtDP?$Gamayq>9BDixAX%7jA# z$S~dKT_3T8`66ZG_6#Rf$wz~~L7M&Gm%v87%W4_>nd+?I0gU(M~AlS{Vd`1Uw^hvzv6<|`r_Z9PQrHmVu4&-6D6GuU7G3%X1fsp2TZ4XKh` zpDV>jIQifpM0MuCie&p8e*B&J@93p?7#5Ia0mt^AN}dD2fq>;Lf`*~E^!c7-HLDN> zOn~pu=I*Je-nP(M7*O^irG`c6x>NWYLQ13K_dV4B{0Y3K$ZHkn7iY#mI52|>;yTcI z7iO4-KD`HQ)Fn@VN{O4YUR04V^<%~Z(k6?n6zj}sx0o}p0ST!Yf50lvm+aAA+@$Dx zj8O5VCPp>a7_Fz!47g0NzOBGJ2?Pw_BjyU>D^c%F868+W_6G!_Tq8nQ4U{7<>g}UR zmx}Igq&_0j`*Q65S$J-KNCOf-K;U=qF8K$z;}$Q4p{eJYy?NKTB;x1qyue$^pDFUs zRzV_puUsEKVy_d*FlHXwNwQo1fExQLn}w>$K7c8i8Z9(Z!%ano>Ec6PAB+8%UcQ{e zc4R3J*_!l)h72@XJ5bN{7H!_EoU~txk{niNJNJ{n|`cNpGX)@4t z<$^v>n?XDDCRX$ViEHDmGOLb3&57$*^OE^SwK_Xqe#`;LgLF5P3R~#E@g+%Xxbq1o z4}TK7KF^nqp{pTY*g$U)hk!4C!wpE@Kix>ZL5xgV3_M#*k`mc89rmRo2&kpq)8qgQcl3ax2 zy?Pt3IrA4}2#zEAPCt_JX01VJMnWKNRhR>BBGiIY@^oep5?-#h{#5%O6w&6j#%oxP z>su7E=6H#n{REwPbR_O{jpyZiT$H6lztu3uNuTn7DCuGTl#QXq1$b@nWT-6U?^$&} zIEUbje~;tN%HhQyx*dt0*@yCF3W12DFxK2Y)^?Uc{bc+4)gU{k;7bW9wv8D^r z2AmkQOs*!}2u9m-XqMb5d10(>-nXg}Qt;O!4K|+VO0XGvHIg4@ zL6Ilqq4TWFST?rL-__1?^6vHaGMR|y7WM)+1-vMo2?m%`Oawv;{j)D;D`AYHro&Q* z?Ub(t5cPpac$r8q;0t{en?2mq_sP}~bqtp-ob~N5)7MdIFPL$6_$@!Z^MlQ=x(4E` zl~b@IVn3Z(URV0pCjWiRAs}RPL5IQU4i$L19tE_4+HEKm-@oYl2|#0O<*ugOxUnF_ zi#svaiFHzXDz%Bi`B70O`4s%K4Kmu)9+3~H6EEbpj=Wul4c3F_$NWhezdb+WccK$0@ z&Y~}L8el~g%pV8n4DFg%mnFMn?pR$7KG~TpFz_e$B=)pbOwLB|$NOL5ZsSX>GP>F* zFS=!V^dCZ+C!>Y4%EuyoDLSF8iS=gkoGC0S5iN(kqoA0fm@N}wL^>AoxW0z)<@`*Q zL+OiVq3KGy{J^KYd6!Z1(2*lo5c3jLl5h+Ts?&x>Wv?$13}FdQ5^*OltBAkSsD`q% z5xCj?+&wop;C-|) zwqm0Cq+!&R-2uIOy{0a?Qa+Zel=q-t2b>Rwl^KNCuf56`A0IbbTba$WfibG_W&&eL zI;iyAR>Rc_fH!w=sM)D7no-RB>+Dm4fO9`Xq!Y$zl@5#Q$Xm!9Z7dOZW64%#oD`Aa zv&6=Zshq_ZRxYr%M7U`)z1W(Z37_!uuE$GX z^~`dOl+f+nb!4Jf2huFRLitIq4UN@F8rY9J@Yfl6b3fWjQPpSd$D2MiI^cmp;|Dai zJ0+}p`o%$7>SmPF#@g<3ea;ebnrp%W;V(WD<3?+uE&{tv(E$6)<7RagzNAriTGJam ztpx2F;PM;%UcGmoP=o21YI9Z0AV>iX=Uj~5Ej-LN=ddAa6+ zSab7QQ&^|k3l$P?O&HolvJE=y#=U7D`6~XXs)Ie6@$QjixEAEf}o}7I;C`* zcOS~>Oj`yY42X#6ilHbUB8WJ_rR3F2`ALKKYu-l8*G*55F97Dqxkj{6Z)dPhU!CU# zhdOui_zI8+3C-vS&sJ38-8UL~cWDAU+#m2copKbLo!{`v+>OXl`eAd-2%PkVr5O5) z{3lUQW*f!;F>sj!n@!`}fxYzVOMzb$Zx2++GQYgI7cj>JtYZGW-`9lnc0=ueLmNp2 z)1|Hu4`owR{q0=2)Rj5P2B$G3j8O9%q-*1n5TIGAw}1bt`io$qX4AnTAiIC^(9w(< z%BQ|GN3SKhe2XRBiZ66tCCApkCC+Lm-bP^%FDRyHfRi^on0|81V8+TrER|rAQ4Fj=GN7iwwzFI~et< z@O<5eQQoAQgUS+uiL49V_~Hfts!+16+A7_XIeiJx0e%LZpJqrJgb2Ylp@`dh)}tXd z_RkjQsyy?NmU`=okL$4TxB-cz2zTS+!Ga4`wO?Lozx`@Kq;Cua`S21IJm5sB7FLes z&X6M+Cw6|IBUL0#xi1Ti+h!$X8?B#eWhGhH+U>l0ZqB>?qlx5^=kky4X)qKw7fFWt zfK{~VZA#w`OP;&o4#Y^gV2bTk`+1)za;>$CMjVv4o$|gfl&|XlnEE7~)a#wE3XHSi zIXjWrE!X4KS3NCbmScKX-Ct|)>S`MfVDWyaMIW~@wV`VVBKDkAFjrMK^Kpt!bfNqe zY@Z@lKPBXRzPq8H*_>&&Z*2b(StW|LzzFU>|z{hV@#Mfv@{s|&2seF9NyW?VYp zDPBmOo?v(#^Q!`F>Q<+l7GJLH?&;rF!%O#7I2lJ_&feOj()aj7uMZb8a?#hau9=_Y zMiH1@&FCbYz9FRh^BbeKyTpHk>IL^Ml4#7a=!<9HTz`XhM7fkQI!?kgD=C6AN?s)a zh2zAD4*1f%FdHENlPL0~@|}iD1m7Rb1ZWRrv+B3-p`+yX`7YtByo|O|GEQ4u2tekP zy<&{oUP?R519-RUYnF01&)toMtz-npLPIl9O?jet|4~#K^lD*B#OK4Ur{PifsWrj< zH$cJkZjRxd)kkDGxq~Rg-+rrjm&&XR@{AY`4sPzjC!RR7c z5rJPQxnuXblB6cadq(doO75+&M17EQKZmF|^#;ZSWxc-0FX$ieW|(EN9Lpp*t94Ia ze;w%uP?y)y-f5K8dt4q7@`8UB)B>K-%F4G1BTsm!94WA%}_}BkiY1Z042N=tp71m z#RojYtL=5tIA0kY`~fO3{zcEV-d8Ht!s%m29|?h8{-Xu>Gs+Tr4@AFH^HLDJU9Jm^ z6gF$9Me%w4Z0)zgN%K@~m(vgdH|6Tax{nX->^L=qQWtc@;EQNZkCMHPlv}l%q+kDwWGifjjco_V&S@_oW1JHuZrWq^=BAT9VX!eHJi0p#(tZ3zg{s(Z9)Z8M`wpiT08SE+YCq()4zR;(i=csndUf7aE)LG zdi3zpE56_Y5JEW5!})pttBN@Np|xTuxw;>_m(!!GIww7;QZk%-EU!sK{s?_BK7W&4 z;MBkgXV&3F80#1^nFJQjfw?}30Ndg7G}a6d&}0ea62S8=qem0+>IlF5!%oVkV8U7l z&?ox(Lx$0rAa7p46i3t_!OL_djU#zhu+Dy=xW$Lb>8Nv0521^*0e~n6(QiJLrN2Sx zhF&3Tyh&tADyey)QgmXY^^9v_op!eM2f#w9r1Ib^6~I*rD3C+*{!A)BxG4>z{&yzh^N_Yg;)5n6T`5*IaObervA|K$JEv*&h1&8NSW)3T;sATE^>I|& zF;ZYuy<3=y7gZhLpZgok^G)HWBeQuw)K^VR z)GT6ZA&LqhHjoz(<*?uon2+QnuxzzY5*SST9M;r~5&f+r=Da(1oB4`y9XjrUGg?fmK{vUutny#+Y-^I}rM-}vu_*id#xd}$j;U`YAth-*aT8+-&p zvSD~BzcKY7txChP6f~SA%~tn9+L;KfI0=i&^nVW>w$oaq1KHTZ%5Jq=0cC5(bxh-BQ zcvJP$w@>EtES ztu*7;@2JhDJCO5xjHzaOJTtOuJj`j<98n?VNj^f4D#cAS9l?s}wRg9{&d==Z3Xinz z%fVe@7k3x6a?|781jkOtN(fgluE}{PGB+-~$33 zrBWbd2ar5A!XoAgI(K(#hOYx>B9;~A3jPf;CL*SAdhNv?T^N8%%n^P=9R|0AwS}c7 z;a+3bAKH2VTOx1~*Xl)=67@34 zuE6|a^(H3gZ|q(&^FO*kgdUC)7+Jhez?^nuplhzkgi=EOrWc24$&yD7Z9XV613LK6 z?}bY$$R)J3Ct~>{<94<62 z(zwPMIP%cAv$LcZ^AmrAy0(mio3ufyxu%t&M>hkE4Ao0|?{Uee=bf>Jd;bR2nyCXF z0P`<|3eJ`w+U#DF`-%93M=Q4y_h<%MwGvg52-??<;$@hHhsg70^n6Ii;NSm15?vXr z`dy(UH_7FO%h<^5B`q&uAX^JqGy^zm5Yy8}%X+Cjj7T^0m>2`cpWl{d#n zjM)dBa$7to(= zLt*gL$<)g|?;Spub-4ypW#Lc8fgAG|Y+iE3g<^+C^en9$e!?@>f)z=!mS$!A;rZE{ z>XY^`aV&PzYc!`odu=l@Vr2VE?^ehc++pWpEhHE?u99f(qMCEhH*Sx^I}PN{l;I@R zIbQ{5z~Fn~Hz)u~-EXcnX}Brwcc6tLPX7iqLDxw?s8$?kXE#TA1cui7C!ge88dl`* zH3{h$lndyOdPK}B$tQ`YZH)QvW0Z&N?0qM1_>VB)HloE1%l>YB{zPzbG~BGH^b`$p zdGT|I&#qDrSQJDhfOiAVno#1~=e@K$`nW0sI`C_v)o-a{LBd1(h zsx4#p?fJ19Of6fQ=>!~wONPT+7M_yL` zP+k>;oaYkiin4)naY&~B1VO4$`pI@+k-~wg!`}%l&sDC}jq#5C9Bc*vv zla^X@)h({1FP@;&ojz!%nQ%wkoJqbl4?JWUV94Z(&(v@D%FYEtL3KEMBmSvnfOY`H z{oMt(TkGj(=>bvS6!L~hPDI#?=9gn+wub$44Dl&68<%v`EQ%b(Alwk1#d?E<tGHQFZ1N&uO%q=c5RT`eMIx1pTvK)IHQ0U^4Ae)lM5Xi6hOWDKSK~d$YR~#S^ zSfR$JPE57J>~YuEK3GNlwSha)VU+!~6blVYC2ku;PP{O-mFjvP=`zoE@Gk>{O2B(;{3|=Jr*g}1QCA!*?aM- zu$Ejg?PZ}w2s0sQsohktakTIq4`A2!{;ZAbHklfP&Tf#|QdJ|o@npO=;d)7TK&U^*07gTkk_?LnrNuG+UPd#li<5`{rN5qBykAII_ik z)3{6CytWKT9XZBaZOUhmfa7y2)NZATCbW@X5({Y0t+ z_-w-gZ4?*H=~x$1WF)e7iOyVarrO?q*#)+3FQjB={g)um#Vrfd#6Z3(&qdv{sv! zsSJnz(*pg^MeyI_2neYqIs>9}hhc9P=R0FlwRP0^v>W*|x|n2>`y2GyL(p(Iz|P~& zvUMNPTg{B*5lZlUT6$hbT@XZnNO6R2Di9({Ex3NobgMrcoGv1{LH_ynSRV!TwIDAK z?Kp_=l~(}P7`Lu}YT>(`#;Cp&XBO@I?-xC-cl;M4FBf@)@j;DTEq zgRy+SPi7SQvqn_EAHl%x?+TGekf;o#HoFLk(oJ=SI860cH7_d%0}<1Io>W5ZNFEO@ zlGTz1w?Gif#DRS>D(L!3!dyWXl~FhFtm>t7*r^Kuz?_&2B8QKLa4+R zD>gns>eS?y*+J7-+35a+P*j8A2*UIVjC- z#FaUY1F#oHmC;Y22Okk<*3G8D898PQe)kqf5`id+?s@1`gS6<|@V4vZdyZ)9EL z9$I~s+-bVScm~1ozUlF5Y>J{GJTS&iSB@o`6wDUG-*w)q>P~t(|84y7+>@`adZzoK zKSDozd!|C^=X)OHWJ*CW|4yKv@~Jt?({pXBEcr35>KH&Un9AAJavRnc{UC3W=3zM9 zlfM~{uX|%|*&RXNgaEXf@4X*r&=|~yF=0W1o57+?ue&nxf%@SyVq*yG(Gj;OW)hi$ zUDRgFuw!B{>bw(OYmt|wqORxxD$>F`MjLkJvL!Ri% zbvV5w8l@njz+2iuZ$`1pNUL#!!6)rpYK#(3pO9|=UJJ|JGngtDh< z4l$A9M+Yw(&5XY+#?O1Zr$Ny0W!~`F8$f>+w|ITCjaUFM3y0E<9&+llC>CKLnrQ+^ zCJ898nWICzaQ`vg<4pgB3H2(`?T-EnshgT9YT#EGdmnf!`}^BmwFHaF4N z`Y0^dBX{F|Zd8d;sUv71!{O|l)!AkTp&bXPfmst;YtAj(sEt=wKLD25cjO>=@Ydm0 z*VY`v4F~WzK~8ZFo?+C&vT7RTd3B}p@P6C8D?d7I4G?207<9-^1AcH9PB^~^*fTQi zc6&qC`gP6=i$6-$g9nE*SC)V1alR)V0%nIUM}v0NnAPXJEog5psHUO6H(c}J7;5G{ zCpdKYUPP-Kf_kUgBPHE=ND(^kcDkHOIUw@(?a>rx@}r5u{8!059!$O#ith|k0hdsk z1#nASDYm|&H20g9#?x|-f)bgEz~P9wy}xAeY}`Gb&-$9tJVu+0hBpEQh|hC-xN=si zww3Pu1!BH@&jIHm5g|jA zgIC680C@xfk1Kl(ZyNP{Bs%R!6>1OGAGDAe2kLk;BVa0JmpdFSq7MWLHhZSY0Tn{_ zRgE7~8Oi{Jk9trgzIS|GbxU-p#WCg#X;j2-- zPZ=H5FJHa{raH$cjehk1jJP2e&N9k(;=N$OOGpd1y3cBWnkgOTue?W>PENbhJEdv0B*GJ(O9(s}%-3h}PjJ27OY0Nfr!`?mjJh{ImVB65mqjDP~?-ABPYs{!1-N zAWm~AP-c?&6LiY`O?&Ys)gXKcu!W@`MhGo&D-{Ya6VK1I_Q0K@Vn#yjs>#^ii}=3# zLfeU}jc-5cvvP7`8HJ7`{w@X-(caMGR%V z)7Ols*bDvVBQzJB&|zI)=*38?3YvL3c* z*8CCIP?p#e^u59$Ka6YZ&YM_8X}Xx7(n}4FvhJ9(r0c)~>^(4*ve2&ZDR?milS(K$ z57XR5JETEwU@=WVg+~+|SxzvhHht7dtO6$Ij_**6s^wnE1)22`fZu*R&ZwEK)*zryvkLb(AKsp<>GNNF1TxoSP~a597h2I^(62qkZK z`qWoW-i}jzl_8li^~_2FK z$J%o#gI^opUlbjTJFQ7Q;Yb}$X`K#TBq@A1@rY|o z=%K{4a-7eK%2utIow(=kRqOs|ewIc9I2ODxY=^_CADnx{D7|ES`^P$H`?le~FfKrm z5#7yib!nt%U{dInrWT#FQ{2e<~m#&>ov{uf}dKZ0~-a4BXoiNvYE4v+tt~ zz?v4PV}S(!-ZgC;OQw}ae&yxqpRpIVqA{tMf_rxE`c;EzgPFtjMvr|NxY3`LHDc9I zysQMi_JapaAld~CM}%?zG{c46ufQw4CZgb%Lj<-+>AfFNAE zdlzVh>3!*&ob;@D*hdjh5O)skpzvzchwr4E-ENO3N0NtDt$luzsG#Mrr(=`Cs!xr@ zlrOyWJ@rKrA$m>Qa{b`0-3ZPS*-x$lVnxm1{;^@ROXV8cv?Ll6Tb!>ym6P0of13=2 zYBe9lF1!_ad;OS0s;&N=%+ed9r0m*|4-13$&G^S+Rfjn?^CeJ>9>I8z%P$POB=iky zAH}F-yA;{UeV~eO3rF#9DDs%++g2K`mU`xzHV~7l4PQXs#`SyC2aFqJAovLSvm$jS zRt6yn5B$hafe{053v7ZLNXA~`Tv%%rHt2xzg$m_qEqF4f4;EE*ns5fNK7d?;NeZBqRuX9cmftXkEdVtLq znh*F~XkJ8pNHqDHQ!~j*eAc8uEhr5Invo754ExjIF1ri&v!~@Xo)!C2Z_IR%)xD zcF~*O?)=LI&PK!Xs`sgC7ALIzfYU@blbUBNz6|RBGG}|Pz((co2DX>CgSSq5g zPPNBC{6&c@1h2ZNkT6!w=VUIs|#Pra{#BrXdcorlB2GP1> z?9Z}W=O`yVz^#oFMLqbi5aTXqM+1k?<4sN5AT}y!c0EXZ@#`@lwx=Q8#}BYu+zX_R z{Mjay+N=&l^EqWd@5|ZLuVDGvr_i0pWScG!FU@?M{{3foY|_g{i7^#^QpAf zh5>UMiQJzGhSrXY+r+B3Dv9YEp`h7k)ZY}Fs6e{^k~0EAAEtkPF?0RzGc4aedB_}N zm4t9hv~FOwrD1XFl(==3JHZ3iO?`5UJ!WJewB)Nl{YA;+NOZ;oyhf`x;YX8TX|-0Y z%40ET{Re42{I$AcMZ%Q@1+bBpX8p>6GI1ejW4PnJi@|0&jqiYpYl=Wn{Wf={<1!LnYY#AtI*eX%UH zIrlb}2S^&db#8e+CVWgV13`r={3ctl%~E3_bCTjY(yQRl(s{b*D?e$2mNZey{IptI zR~2{tbAl&VYImGTLI|11*h8+_5Sf`D$5ZfQ`n3?S637X88b3oGxGue|(8sInab@A2 z-@H%dlbnW;y8)iE;poEl^~Rjz{KklsbHgO7wDF#dn~4Y7F;m+s{$CiHdM_>UTQ4(AzHYjHB5IaIBd@BaYTRMR3TXba3an z+yiNfLN*s;l>6{87kwSDhX8^80_{3nw@O7y^mop z7dgyy3r)I=)vt9trm?!0EdI6h`A-JG-OR;59ZOlAb(SQ-ICrBu=lr1%`yZ1ljH_rU zS$5<}>{6S%b@q=+8t|qs$FfB%{L7@e$x7mbuDf@-k@Z`fG`tgY&G>GP)wQQ}3L~pe zfd?I6rBL8*$m&;jcj0?MhIM@WK3cuPA&yLZTM58SVg!wOOejfbphq}oaN8)($s_Z5 z6kczS7eh5$4_+L;hk}q9H;}YLZ`_C$b9L^-!Q08Zm?06psK-LHc`J>R*YGyvt45Pm z*Er!!3<3SSmIA*)z>0z*jb40V4j3CQ2;z2Qvc&BDvi}JJz;x~s#wL&UG26sUvl-HT za=)+G#Dr1fq*?JSb*_*48W0V&=>@`SPa0?@@08I!VfuW{=4CWq-!8u~Wt5bMk>_3# z)^0kjt4WEi*pZKBV|yH!VDrYjiT~>lbm>t6t2T~4#wl|%e#^;5cE`n`KVUrIr{rQn zW9h@%nbPNk6g9if6J7XS{+q`yHzCV6sluxOHLsIc3|9>TJSt}la8HRVEP(LI;JI@U>}1wb9~`rd}m*FMjBCzUyQv}Utc+?E{xIuqVqT{ejP{sus!GcBKu-6 zRuKXmSCPrd={e)f`V7Wt?W--SjI5T>rg!jh04<}^AK{VfyHaaYf#5B@dchOiXhC}C z6Xa= z%4zZ(PM5?5_a%=-(!XzbwINNjvnFQK)+_(IupDP*D%dO<{9~%INPOEtkpDO6 zL1C~eRy9cC5{s7T{o;yGUXQNP@c}cOuc@QH@|E*atv#v_njI_`e zC979c(jcq3$@-3ehS=pEA8VLrPtQvKYQFMFwZtEl`TWN&U*zVbk!OO7?l)C49hHk| z5Py5YSb(1iNpdNvc6ZQytmT?u#!&7&pC@{01GCLx!SE^dm&2@aDPvD{?JWUPdZqE` zTnH5G(Wo|ZJ?e3hY;uVCavx3MBm8uRKLqXIHHZc7n?K#|98VUOOn;nv9aA&D^6sw(7T>8GaKm^7-R&Z1QOx zR`o|Jo?XN_%Yuyzo8P(f+lY@a-^25~vnhNm{U zp;f>8%GWMQwV9|kO(Ik6G6Y`ZN!16-S}g)v)lKq@8uZm%JVNceWEqd$y~ix6lR7Qa zK~+IB`ue=40h=JnLsTRQoJk<6Y6#&yECa))raLICKOfB>fy1L-4Kc68o0TfVodL-4 zig*)b#(xO@*J(T-QpH!EadCA^r`B`VGI4cPze}B;)g8LLujQ5P+i(HS!{>pnQ!KIZ zvZ7llYCC|ufjN4o_(XVD1|r!B1}*2`47rSW0}XXTZQQEH(K&1*_Oei68Z`$rBHII{ z5v(=1V_s4A{uRH{Y20w!bc&Y8F(x%Q!Kgd%{?DBx{2!eomd>i(3z$Gc zNLuA#Q|-O?HSXSohV>(#v4kw_n6ryo(ot?dS@+-H!3^#G3}!%rCIL0phfLodbq4-G_C+ zk%*fFInVhWyQ3ca)k&lBi1f;!>G(^v{_P*QmiVcPCAVGvO*#q~#c-L0ky!|49hKMi zbSvUHr_W32ql?GslS(eabj6>0Sv85CvpKkQBb2Dq{L?5eDq&x-ngk!dnMPfMOft`y z$jnN%I-gnM^N+}>XSshsHv`3iqu~fwJCR<3%DYq>KZ~iupNoaf4s`hp%??bCtsH@B zOFFq}ZXn0=>i;M{bw>^(V5Wm>!0CIw`*w{jR&d=1!sRc=@H3y61|f}Y46x6v894k6 z5?OsXX&J8);}1N^89jI(myZCZ39oRf3rwbRDZ<*?HIaS#5%LvcId{9$)84+j*k{Zm zjnVXMNG3`VLXDy&h0U}o0_4j$S5QsNPfo`M4|Tw-^L>G{oY=<``2`WZ-@-YkzDfj) zIlSRjO4Wt`g32J|Mt4b15vmzB2Xj+1%3-oo-`pb~a(X`Lr4C&7;#vwnV|@tn0Cqg0 zm*7aQfg_{(*R$}44IXt#Hhu;aRBu944CH**QWG{zn}OBZziUZcs|dCSoc)%_tO%=GTuOtBmSxK%&6od0+k1yKwQYT) z0o2$a(mSCFN>h3ds5B9SfOLq8bm>y0g(4s|6afY4y+)+>4ziKnd+!7iYJh;>+ULCI z?DO6Cy!YJi-sk?o0}p|$nKkDeYs@izg*>Y&e&m79l#q5Ig>(3~^{S_!%KV^J274dT+G6eby zsJ;5VgNC55;a$>G$-NW?-(%`BZQ|mATE(;Bb^BlUpb;SNY}>UYz52bQx@*5dC#Ah= z|NA&Vy0B#!jlR2Jo32#HUT@h-&>aW!sEbkPuass=MuQT z&=b>5O7~sSJtytKKD7EtTJP*{G7!jP3pUVDpB1_Jd0f%|FkQkzrZi3 zU;mO;i-WIDi9|@6?Ul5J9g+c`(>RIu%&hdoo^s1MuNJNQljlnT}V&UX1b z>%|D&4q=$WQ?^l9$Fe3aPXAF6AaTIS(exb@dw2ra>L4!C>*ZY_4AUF9#@EBFj0v#) zv1bo~#(}F(Ij9%Byce2*qY~QMH=MQlp>m~ilQ=g%YhNSMNw&Lx8}VYi&4+A=(F7Nd z$}U(jGVVn0eC>g@D2SeL{qyww=P8`J-$qUf+Z2qB@6j2<@Y@-J|1j_2k-bHfoVgu} zV02FuypDhTVk~RQ1v?@y1CVO`gd)#!B_e>AWWZm7JsT~KXU?`hgSUN2A6<^W8?&ZroBsLEVEdzmSBE{< z-XSYYqW^nT(Hc22hAI89>3x1Y*Ei`d)X%Eep94o)7cL>lH!rCM>|7$As>fpmZ^|8p zd)$v)Nj(U~Z+A9|je0p2%U)*Q)B7B4Z=Jj1CkxI$l7+8;z!M(O&~ibFqKHiE%JD|s zvyPBUvlEUymZMSxlNW1keFZ){{UW?^)9m5XLc)tU>9QT567G%q`^Yp$T_U6(fA_>_ z9^aDIUg#DMq(5ZIop9C>5MV2>j9*()jHJ`(=BQHC5K<-Z0)l-hQVqEA5U%>@+4uM_ z*~v9BN-0@L_akoX1|T-}FqiNOdpFyQpLKjmpKkFPPL)EOaN{%N*SOvFSJzns214-+ zhE|KA^k)7l%U{)=?0mcdlHh_nMk!Mt^|x3aSzgjx^%UNCZ0Bsp)wf9IV^Y6dB3nA; zD|_vq@sRfqIXQgfwjx$WOw3tCb4%+~Na!1shggqf*EL`VUJUZEEy;cD%^5v~Ff>wy z&g*6C@*aV3I)#hKTh_o#jqn-c_|`JMaL|p5Ct@p zO!rIbj;)6!#*fSqr>nN~gvqAkr=XLw|0(wU>+kRL*cI=(eW2_RXbak(5gXoc)ExLP z3fbQ`)t?*eFBgdaJ3|Oxe<3pE3iojgW%2yx9K$dl-!2QCeU77J>33u8+xL!p-lATc zyu{`%akw*THQ03L#6F9e?4P8HVR;>qGV(Y~Nc~otvV?naz!4lxhF^;U;FzSFSpv>`>OO zt=&MhvM}fQ-STSVpR-+g9Hn4?UdpaH>0tsmEor+*%|$?SY=lV!eL>|08wmw%h%#%z z2Qj2$*`D?mb`nBHD&)?av2!&Oa@=_KwdJ3v_9=HK$Aj)tp$d1^}IEMB&s+-ByB@tn zD_Yyj{XwbZN02Kv4$7SSsu{hkhK1&mFTsUrJ8fuY52*e3xBwnAR)3-Ed-Au8z@14) zrTCXcZzE1vjIPV7Nv$8=M&8`pZUy{L5IsYO>hz3Xb3F4wJ9lgm{hmI6rk)97xeb7( z*`%=)8lG#TgX$7DZlj}pu3G|XBJ)%tCuXzEp|Sv?x><=9F#9k=m;9;Sb(*xy-C+}9 zs*&23NIk5a-P|etHRBy)0uy;Ofh4!78lc;eUu()VHer|yEqWa%T$a} zOO_;ibONlkpVaI{oRvIe-qHEI$wq%Xgx%S?WEi11S8hria$${SbeQ|qKDa$`(-@ij|Rsbr|ZWeL?b}PK@_|Uxud*je|^iNXIbn!O*l&g+v4Bs zWPPl%s#8?goc4cq%uejLe~Yo%KutYvzedXY6ia{y)kMucBf7l0sBp{)KtPGm$vh<4 zcqGuDZ&h3Fg{r-srAi=LgC6$ESzJ(|Ivc0Z-(cn#DmdEuY`8?R=$1V_Y%Xdg`tSxo z+Vh6~*E36-wyLt$_Vai`75Vh^qwJM<9l)JJRfI^EdMWV)!fY$jX-FCvr)dU(HFb?j%Ojqxy{ZHt{jA?zb$k5RzS zW=0^3vTig6%rh=hL=aW(yUSWGzdT$DsqIxcPn9pF8yhpwToTw%n@L#Z19k1F0I{CbE~dNlz6QG zm}LCHmkA zoYCXW*#^CXLndAR0AB|O4+hZrStu6bhoo3>x}+VqCyJB^kJqJa6e|cXH$%OWWbq~6 zG}$)I*RzhIKRlndsrGA$nR^-SycwkqdWG-rI-~WoWlzvee9SkwZ<}U3q#BuZ+ZSBJ zUjJk7IKfXZ40h}1_GC`|O(bjZ=?Jo%`=e;YW9{#_s}Wh_I?+=XiDrRnUp|??YA17W zGnJb;MsovLunT18_z%NP*KH=pdqPGtyDG60-@&P`cu4G*pdH1JyUtunQu#mXh<$%* z&dU_oQ~5wRN{VMg!8Wf10v~GGEx>?Lc$tM(B@x`g8E4_tqKOA>mfa{Y=%txoj zw{J1;nBH2HqMu=dTbOM+<`^o+mPTy(*{bfZeoX5`yP=i5C}M*s5qV+C8}APTjQnfq}jq4>PiH#W`TY zF}fe9bGa-cLsITxv$xc(3gEKUFxl*1K`P%oUZs9M4`(p;a;Cq%2mLU{LjQ7eiH-Bj|=Z0i$40)bG>^u|mvHgpI|uF*IV%K^xPA=(=2pYOhTZH zv_+<#09(~FT8?WAmg1?v=Ck++~y4 zzaMvqRuNE{XYUcjq(ZdQ&V{Ng*bn4_0?0$^vxn#;0@vaxz`|>gR{R)cmjlT6`hf-J z{rzn!@Ow)TOzNjH{m#>>VRl0^(7&JrwSdyad$kV*_(<)afr{U*pq3;oU>af&Jb4<# zBS2*sQ+{qpx3hRIT5w;1k(G@&{I+??pt_q%rWL2z6OBLZIl)erL?gQWjgl8>IfhBe z(ybbu>_)lA;cbrG=YzS=JZSp7c{?ire0Q);bP7Ph8nL_O8ngNns_+d0kbu@R8c8Ts zpzhIaz|wW>b@jP}&tF2`Flis$qBNQCm+6uIdMi`VA!{Z51R4pLolS}!1Y@}KKQyup zihQ3joT^{({5cJvtG5yI8&egPbs3XemG9IWW_U$DY!T77oG_CDJhoh|%OQMz;bIwc zsoLA)sQ|Z283SJ_!O7vLhE0s~))Y$g?~3|{lw9k+g8=g`w(ZR=9Bi`c*}m7qB5N}T zJG-$v-cM{&*V)i;Tu$*t@ItYTCTYb&S#%~06W0nbQ`$AaU2;OB$SN7DqAi6gu8x%m z06}8vcnh$+^+P-(+!$&q^P!#mrE4<}=kM|H1aJ6WitZcao8L@}2SCe5Cx~E?(hPSS zwV`H`o%qsL$C(0O_E(ZsCseND$ z@0I)N#&$Ez^;(zdgoH%@I2F;R%hd`@_8K5JIr~_yt%8tGVk;NS%-eSxL6S!B=iJkfO8J1PG*@J)-w@iP(My3SI zdbXEf9zs2TOIP=Vzt;0Bkm3|RecGuvTWV;nPtSz}XzUxJ#@OXu*&uyG{a0Ee`r8Kv&Gy9iQ2lrg4LU?|c z$#uy?_Qt#MYRQj|R-?00ww50Kg8%wEe``yY+E(s{7uP|B7{&arHFIC_vz}m$D>ggC z;i+%D^GM2Y$cRJumCdGiqq`1!sdwjKiTa;*GS9vdZJQ7+L8d4>q(1J}is($eZ1j2j zU0p!7hqNhXJP9AxZjcb_l7D2Zv(W1dfVX`!j$bl=_COjO!a-hSBLpogn*5^YQ|8I6 zq!c^9h6VG$f#6cf{v64)+Y)jj?w2>7q)ubFWs2f)caXUGRTI<#kY{sQREG|CxISzx zd2~@Zz+AZd)5&ocvS?rs46xI>%3tShGbA@OGs(6@Y7?~Yr;atgALUC>AGIrr*}YX! z6_-ibtg8CJF^)Sg4O0I)k@piv3O$WVmd3`0)1SVjC)6v5a_*3l_sE<2Ryxl0Le|a? z;-bGlQ@OUm*SSby$~VgDz`X^K<`ouC?2xh*GwtT9CkTyDeRf`Ss|O#+UbppKB3w5qd={Uze~25aAQrje1SrX)lO4_gOjW)C2oPHiMalQ zv;A6S(iJd0dGC8a)XH-h!{HuK2fyWlx?!DQuvVXM?|@Bmx7CqfA#RR;lZ9HO1Eu6j z{OLLmbkzQ{7#(n~mw_CA`FsmWsyLgn+Qde8S#hxHX@TML;>0OMydrx>V|$M!X$Ex> zQy=zZNTA}vsYmsP@i?tBpX!E?N9rpfIM6Fp!OLQQ2-3p^(8Wr>K@*jjQq$YoGpaLh zov7S6npi3#fLeV+zi&m$Hu^6y|}V@-V7td#gJU z?yC)Y=dm%~y?5)Uqd8u^i>-2;Hu{RV;M*t!=koYWXM;m2G< zGO_p8|8RNKGUAb34P4N_2EmALJn5XfTRmFRt<7y#PyaKB)&0fZOv*~)96o=si4-qv zsDA5_XZ|krl`5y1KbX4e;vyd9k%T|&gL9-*q++LAny_Ep3#2{c_Ydn{o+}=891C;rLyWP&6~TAAs&GVc2&02}-bdfu3f3vRE~4fY~&Gjpb* zG@5T8JB}|(+gB1_{;uJiY6NJLE<++&n6VAH$M!)n%ujbY$-7n^ZLgDn?4X`Z4)va) zr(Fo#wfrS-17o;uoo7q}-3i@)zZ1A~5~=hftLbJg|eHxXbRa|x0I(UXXX zn(|>xahTnM_R{#HW)jgwD2WeUKXto_z}Uh=jL{}mMN$&Ft%B*AJzF1Y08|@K#h3ev zFS2n`OS6XeUfVNQcRgGFaDjjZdYd6`xu-f_6YBO=MAu?_f?lv8leB8 zyL`Tx5$h87^_;5`a#j1=_p{1nz{gK;2eSz3{jk)NceyE6`2iqTu4bYJ0qCuVFBd)) zyZjiN+j9Qe#ySFNDr2@sytrzycmmx`c_95t*I#db)+)iq%}lz*!O#C^@Kv{aS^`CodLEB7*)bk^21CTuJ9vg!u^I53%V{JnEAc-Q)`TXwa}Js1*6&dTl`;`{=+4?0z}I70C2_Qi^Aphp=Ga@>{bre_Xp71UHcQT1refk2C`u9 zC3QPMgU6J@c&1dZjfsqiGj;-W18p=2vmmv$`DkmeQ&v&cr*G?~#>Vo^7d)PtEe)`a zPNrOD;q4STnnP^%H#qR~@f(X=oX_fvRy$k@}<6BQ?;aC0u0ONF&?0|?UD1<%F*UE($R*rQ)bowQOYZ367p`Q z6bQA+*wD5{t(uM62Ri{y36+dTJ6#iG>L6*223zG9H4X0Rfw|FH4_oM-Jo~n&{hqk- z2cA0(o<pHV9+08xh zCo1`>%`6_=5zhcSt{C(4rjDFl(?RW`3&{#(e^L=;;|x2*E(LK%bD3rj<6FpCE1a^O zLWQ1_UGJfRML23}ErqJCsl0i#4|wm%ufzflm`CC}=Q-YCi#2s-Z3q)p9=U>Qg|kc_ zm#xw0MPq6&$wgy9Wh3*UNe(9|;pH`0*xO4{^xsM@q%lu|xZ`!TBd7pL%c~^$cN^94 zr8ueO&Z#oJiKn;?o&HZzj_ZI}RD3urY6mb1eE}?5^C=}iNDy$gbIB(jzY6CCNpume z;|_J0x0}7#7Q_1K+!Om1%T5iJFZSe*DGh(EZ;z;A ze})$zI&RHB(K;&X6>D97If8kAu08MQa=#5Y6*EEBU(C*`dw-CfZTrfdq7<(ztN%CV zR;f?F55!ivof4n8CVXrxLx<^R68R+w!&1YNfRZ)0;?TmNh#K?#=?ith!_U+kdb5Hs3a3xQZTlOS9^%i(V|4+J4RJj`P2d8Li#Uq57QMG(I-+!g zJn#6=ixa0oG)iDgs86s(M!ZYmTqY((rLq4SM0({^fn|YWKG2nV0a~6?ja*Vo0}_w9 z`mab_``@gh7shm)t!a;sb$S{-Lv(n?N53opZJk*IfdsOU^odQ^-=Hm9Ru%2#JU|08 zx7e!;E2wZeiI25)X15Da4=G8K6$f}j%)bC$Tw{3}alP4m`~=R9ne-hE{uW@ z%CtU0A2p}qK_yK~s18PZBE9U2j1HIL=fYHEPNjk;^GwSFj(`k^5e^n|BuHx$vvpRO zY4o$;ON47dK{yD!jR#_08~l1IgZos!dbDa8>g43DYlvesK86;DF3XHy58;TQ=8&g; zsRSYchG292et@RGwQ6c5T03DPu5pAz z6D@W^W#OCM7nKU)P{7t*!TKqc)2}gPym)tf`KfYV{u-aE5Ts896QK!$hOOtXC!UUc-KQnJE8MCye6R!(v|K$W< zvoU>&s|tB9D`9nJQs!b|P1lq_Vtb0xite)(yuQJ|grwQ@xF7$*O)B$;i}u!vXW*4f z>ce-?vM&Fn&eIC3rtR!j)WuamE_?q{7WXldzFw>NEmJr`1-x3@Kx>T8E<|`yl>Mmx z8kwIrqiTI{XvM$WVlJ_(cIBi^H?IZD+x#F3p_cLv*{@b3N%(}mj_-1|1^l51XF933 z9jwltJp|+i=vwngoL_nDx&ma3hl_C1IrpmeN)P_%Tl{T{Ssd&lBtVcRIy>A$Jhz-D zCXnYCbXK_na(6c~y~ZgeZhIyd$dgPbE+ftNAbA10II55YKECufQXrD1^*>d8v!dBT zR^vuFi(J#cT+H0DtKoJ`YuQ12k{cC+qcaKMLqm>zb+>-wcA?ydP6 z`}-scuDUl8$lWd=ws54r0#5&%fq4Z$hY$-kGVSy z^1YFCvuQH*mdH!q;AED?hLaiqA;~hNJ5s7!;NWbvoYEL1qoS!UGmE-L+~#2IMI-9DO! zD!U29+otPY z$QmiaR944Cga>4J=9gyQY#UyDJ(Qjvx2P6Zy(P_*us`+WO3M08;l0EI`@l9BB|-W( z2oZK+Gwvf`83N#X6InhL(M`{`F@E3Z|Doh0R~&1ifbCnmCHQGdbateWx}m;UW%^q73jYUZC-tE{vZ}^f&KwOES^J$x*)mYKiZteT2zFB$fM|jfz=ca&~;x zN0K%PSUs{m+?z`G2SIXRzPSl3-~vXOr;BFQhSxBmW@EzeJWL+3hme^$E5jq;|}Oj&F%%RoDLO zMVvC9kAI`$5B%4q2HwX3N<$T}o%8Ej)?Ky~ycEyXXghaeRJV;fRxxAgPAB43!bX55 zzK4F6K<^PZa6$Mdz>LkF@PcYeCn!eGN-!?wk)vqq8I$*@Tmag6svfWwWEdgn7q?_v zY0z^=t$w+f7_Tec0sjUW7Q4({$4f53Xl2~Q$;A?~Q`CD~@ASbYp5O9*4sP(Q^0RAX z!kgRUmFlGn^<~e+Ch59s)qkt=c*Y#o3;pUw6KqDlb$6XJ`b@xgCm)B#4b#=uXQHc}GHxha4Pt zX&nJvN+@Us8yvXj^?J!ro#E%}oOj)9^yEr%2dQZQf7at%S$^O>Ad74n4_G{34;`Cz z^_xYxn$E;_i>^13)I$I{fbl>j^aq+*xb_RS8OcbNyvE7%t}U?j(Nhrb8f1#LUEHlv z1oe2X$L#e@36zXTq>$d_6{5}lVsDrUH?D0l?&K2}sy&g3)X|OV5pSV3R3=nPD00Q( ziVFuFKqpkdPB#y_uOq~&43ZlnvLvj8*+a7Xv7Nd3%V>pDlB3jMFTqTAt>=c!44u-J z)pN~eD{@7%dKWf}H5@VY29hsgo=BLz_J^cXH)P@WIy_hgbKL_p0%^0%-{4Sq5;Npe z(78t_RxlXJQi67o_U7maxp6R|OifTLyY0^MCh`H?G2FwA<^1oR-T&yiV~R%`quK!5 z`=hT9e7Z@b@;CYim6zHfoxXCK__o3b)1}BVcCigi7EL~8)wdW3dUhqt$IjU5no)a# zy37YP#dFb8j!T0FJ<+?gB$r?l4w?N~BQ;0qgm_(nU5_%#7^KuWY%#~Tkr7D#Ca5Nb z<+)R3y}C}5V9%DZX=FbNt!W1~6U|01TH0y8*AGDzHB>LI>X+CoF;NwyGG`Dm)8jD*-Lv93Kw~XTKdOAL9oefE0b zbxaOj_Ou(S7rYVUFiRvAA_(=g9I$4TWfDwgB^Uy6s>_mOGpuJ@U21d}ZTGseO5s3F z_~Xm7*p3gdFqkD2vdOOIeT{asq>K2usULh~f8Mv{2>q=Bb;tUWwdPz2oo{T?J<-ed zs!3tMhuW>p=LU{8?CyBL&H4|IuGB zatBEIM^?_qxe*GRh_ZGu4^m8DnTNe7>__*pr{}vO)w{#x@mqL_L#V;&zOURCwj*k| zo;!1rr@87!5Ud+ilo}$(CP#<8R-CVNZg)ja`-%&Nu!R%Eqk^r!mKM5b(hE`~Mwu-7p2Y}2H zLuApPuEaJNUiglE&>Ts5(D9bEC$rpDWdLW@qrBxH6>r|%e1wkj;x1NL?5EPR5vK{l zyqo#s`|fm2v$SMOGiktZg#j)&QnZP23t=-_BFsR!GOgUMfjU-3*K~^z<>NS(01XgS z#jAGF#yGpKoyrLeb0dnz$fRb*guGs4)qPj+BvImdNp@AUq#f?hT2`%<-VedVj*C z+x~Jdwd}2hkt@c>L_7)VCh#T@@ZV0yzsgN8agGht>fV7R7 z1$*zRX>|O8p{=M zu7u4fqn;5P;%0b<-@|TMnlSiwWLoKrSu4?J!jqfkOb?*#W7U%MR2rb?*VMgCanc?A z%Yuw^CPjfo>8AGPH493)Xu|c?CaCpU<`PTRnQ~jN$MIcWcKzB+$f7x;0^yc!heqoO zW!G&}L5?dx_5fh1QkxOM8uL)RT7@M^2V>mul4Fz+i&>W!3%DB4#@EB=zaK;1B0RqT zji&se57{H=#m%bnV!8e{ALjD!5ktIcKnKDzD(xy$DeUXrMo)Yj&Q3!>r3Qu)v|dXRde=rt{a zmTfOnaoU$Oms?pGA5Q^~iNJ4pabpR!@!2*O;EDKWJ*-#5%p$>>PH9f=I<*N21 z*+;YWz`NYl{w#X9F=>?lGu&fgA$G!7)*980jI3h#rDY{Yb70G7L>+(BsBgv+3iIyzAK6Zbz1lT0Um#$-|nUM}Y~f7>O+*Fv}Si_ zszU!LI_2X^xEq0o7&ax25I5l%eor@lqT@in3UtqVlx0W`UxF{M>Nk}EoY@3jTzg`9 zcP;6C!G}%~2Z;NrIR{6?HT_}x-Qpd#-r0SNLahBKPprWkS6yJFK3tZmkb0s#63W@_ z1l{m%yMmXlS2VKcbA;>sVgdZ5>>dF49jYfyZ%of?+%)91f0w(Sd;v~7l5Jx3k;CbR zio)n@hPS4&>at@$DxODkzkM+Q!Ewi`;{-#F5H#Bq)`<<>iEfM94$){c;HAr&?&4y> z#j$+k0>5EL8Lxtw6`j~(LQ+7(WAe+NS8I--2B4K<+qvCcM$4eLiHZ?ESqr*zIy8<} zQ!d5fBzLACMWr3S1VILL+ZaekbmZ8F1=b~kZdGR^PhPgb($IA;hV;f%CXMN?>1ahM zY$&9Gb$ap^2lmG~=Pi9TLw^ z0`|r%TTA-0lJTTCd#*QlE%fapA~o>$u?M$ z{9!)4$G=mIHm{7Aw#jI{p|7GZ7R6|_=db8N+u9TwhP{;DmhPb!*s=TaR3?XL+2Mf) zR)LOCxG_%!2w>t6L9~x*stn!PNOsV~fnqDSi8FH^c1n>WVAg;$-Cp=RJAEK^F5S|w zSb6{D$;63nCu9IPKBQhDyc?`HMGHiZi8FYQ)SOF3w-tS%2mCCXVF?HX91X&oVc|xD z^)IbTZ1(K!nUm-_szTLw_x!J^ED(J=l6`3M8zc`E^%<;Pti{PCWn`L5^EwOr0ZzD_ zvXH@-$i0HXa~VsL7r5-P())IRMZoC|4BuCPDG?c5!o8%E=Yk4hxR}HA99IQG3cB_o zgNmMeJ11GUpus2~-IK(?;h&77lq)0$I)HK6*q^HOe|}xR@+v$4A?P!ZIArYJIsBw* z>bq6^>Dw2+oUymv0WK7mw=7?2%dKACE0LmnzdQhE+eSK^KpFQZF94^pZz1jm;Q`~d zQ$PEVkYLjw+85u-p%wVd7h@~Wx=cZ#Ldf;3;JmZ@K!x5WgKt24G&vnI`3`Z;-wq_;$j?4i*LdP?RC(ux684R zSEl`>SsVQ#nC$2K2b{6gFThtG`UxzEU0*s0CP1)fvSOZwJ;^F?&LEzstCBJl?Kl7g zYlMvS5pWOg{COPN^Ew;AgR;c$_#jWF3%w;+MnB6j;74Xoq1dpkq=WE_Zy2CtQ0r5% zAxD0Z;$kzYx!gf}D|ebqy_}52{FqOu@Ms-4zgR6oz}9o3W3kVN7P-?CU7>Y>$oj5R zvYf_NEGkfB@0z;@DaUg}w49aM>jQPREzB-b9)!^;heE7O=!Yqv5AI}ER6ci2TSXO8 z_CTEt-V*`Q8|nfr^?HyvFCjkuLIIU7gxrZcAoKfRlZy{~*3b~C%5S@yk@z;8_*ZCi zl#qNkabq@qcF}N;%AN9(t5jy(RX8mA=I!#Z@hI#!#(c&3nRCPuXVob09kcd>wZ5Tr|V9}#BH@Eg==Fgu-M z-t_hItFxax3+7zRs!=!isNoq}oK_ViH(0WFk#C4B=iG0@4sd>$7CltG3#$vVU&|<$ z1M7te21=POlR6zdpAQdI-pHu6XK*)x(BU;to+J~>qyng_`xDr|6?zLv9^dtqlgDz_ zx->-|8b;{6_wT%wm8cKhjmUNAUjm^WaS50kIr@rR=)hOvC!DX0`vTeE4!J=45^8|` z4Z4G;ZBLwr5e~g*SL(e)FQc9|+3m^v z2TyI)N4scddE*w3@2q6sR)DAE{*C$;Qjy?7D0T-#MU-1GA&{GCvbhpySondJdq61evI3io z`F7@g)DbsgE*H#_I)M6dJaRFc{3I^F9Ac3BZi zox~qn(Q#N9vS&u(iIRr}Is*y;1K<>&A%`s?%QL2^PE4+%NY3KOTfUDx>T}=hJ3gRW z1&O+s1*tpuN3Luf^KsR_k<-7vYD$13UU?U8*Knw2TCOU-e;uSlf5kJ@tf8VIi=EMu zBZzH~L%sk;Bv0Yz=Qjj!k;v?I{{)2}@^+PvRBZEle(5w}KmY3eiJtXbm!rT7iBv=)i_k=Cz)qxCKIwDNyaB9xUdlUqbtCDm)Z}u-R<=ia`t_2 z)nhHLD}gLq{Rn8@MsWhn+M5oXZ=vi7ws#SItWSX34`ql!u&Wj zz`l6O76x>L%Lf0u;uV?@_N2n1*KE%Y`cFy+TwulCg)cF-e1~zreNnA8dpAtr++R4X@}qO9R9};sJ#F2XC&)z7BAuv zKqIdS8`I@%!ApBiDWS^NZ^qvyn9F*+Ui_gwm9*Z5Do705n5VK^`K#@KNp}kI-#!!- z5pFdYP-<9< z3@<{bt>BwEa1&ns7|4<`f#-H0^q&I)#WZT;3$ax?gECsqo|&6f;vVWdL3+LAN^q`_ z9uANM{pR!)vb1r4=yz0!>P?p07b!IKne{l^p{GgLQ}G5*A$@0k^;13<{zQ{dPk7h(9l#X za6VQ6gtWPCFullosUZ!L(pn4R{bWMFtop{~{>B!)9!pxlh~_`%_n*rE470+Xx6+7b z>`%9OymJny(KF1S@|Kr@wAMaF{WSy1e_h&F4tbHCSuZXJ{hY~2t@>Gl>BbGCfIZ)b zhobAq+n3N8{6RbKEig*0l5LNhIry#C#oEO+xb@loKC}3X3Qxlgj9u~ko}z@V&RIZ* zFuZ)IJW0VOr^Uj;j_irfR%wa1gG3sj`{a7&{h7u!DobpDHIirG)qOx+7yfUSF_<0) zYbJL;Z}XoMS88+V$hQ=hK9To9v_omV!f3-ppNoT+RYRpoInIcN3P9OM7i1!&#oRT zkN~Yivn^F|(w+M`V>r1C@VO8M_640T*a#-b);kSO_gbY4n25n}OQV`F-xT7AAH(xM zWf?GzXFynlEcSnrQC+^EZJ#3@u{UqhFCR~w@(h|8{G%vcyJp2-WqX*(4b2?Sn=E&< z6vyemHTS5fNbHAHO7MU`F9vZ74{tLet&Arnn_@&t1n>nt+Qo0ibAE$7k4s%b1^bZU zyw<+&Pj98F!bVmiHSu`$X%3)b zXmlZQ#NHS&a7m6=R>scM%GADhTUsD-c65M!;2`@*{s+;7z{9<MP9w9eU^fwOzm5oiXEFdUv!}6%jQeUIzYkwau?~Iu>Qf&ibOnu2;7xsfnK7&rdyc{iSTer*9e<+Zrhb>hD?G9;%Do zQha?-8(#MtRKL!7dAFkRzb!Z7r)x4VuqSOS4_p%Thbas{GU_aeJ^TqyH{;-#SgVEo z6`KFL<)Gzq$j8gu*wvv~{f$koKbVTD1cu_|(jGR;EtuCC{11`#|6mIMK+@zRwaQrO zUwwvhb&)nZf**Sry!f#AFh-x=Sd`{3_;%tcdZ{Te8`~9$J}!A@Z)TIEPaAi?i_51# zmF}=*PrDovA}5G#{3de2p&v6hK%sLtRFXKx$+6+N1EVX>;?H;CHEeXi~K zm|$PJ8S+8kn9ATYv+CQ~@||QtQl_GZRsU%VlR=kR>MjDX{o3!n%S?F6!e+YLkjsAk ziwG{uskc*ORi@c3mzBHk{hmwFyb{KnH)I}1jgNU^7#{^`^iYV-q(4{E!@%3GBKvBZ zd=rJNq2x4|wi(P~;3Pixxp{UJ;RA|r%~vj`tURc-bFOdJRpE*amCZ)M1MtdykN?j% zn)vDce?P%7iFu*F{wSbt#F50R|6|ktOW@*d^-?>R5zAll47(8451s1VGUe^yQ%qs+ z;uIjGvykYMmEE5CH;XMkAY%&erto8M=fpc@h>e0~YhnvtBMFPJ96|n@OofXY`qu>f zYnGs@sQmBt1i3YXcS_-F(TIz3H?cB-N%m-`BHnKUJ`C=#HgQ0{dZ=9GO)b<_pLzA( zHoS&vSlsX+A!ZV3xI6`x6*IEec~X^8QL)RBk!_a4M+V zNlGNR=6FN)Y=D@ciBE7|E`HT!z5h7FFou7Do8>i-wMELpUjx3QN07Gvyy?N^0%${t{@i5WLwV>FKTZ((gup zLIWKnoj0{#bVpkQOtJ_GxTM9}WhKUC%o@+LvP+h%kgl%0in|E{Gg-tM9{~yyiqr{9 z#`^CCZ(Aqkb6il2seWeJp^Ac0`pHAty)?)E7iaGo)#Tf)`vwqE0a1EQ5RhW%RcXOO z6A=OF0xBR)Kza*=A|N1yBB&@u=`|v~g-$5adxy|_LJbh|-;eLR*4pQcvCdh0>`!3~ zJ}{Ce+;iS@Uf1seknL!`EhC5NpRw*PEIAXTr%I8RNHW`qvZIRdm_=yJgX7()xiy2@ z>1#cA3N<+qf=vSHUm72uR?MbO&PGddCio>j?%QRQlA`1=6394YBsLNjc4$^|c1yBh z^Gr=sCk8OCB&`Or60Ty4O;4{^&~M0cuc~_+#Yg-sNbDbnARnLQM1lScNYl!-%1g5w zCOQ8yZMjR4fT@$%)hV|B53=k3NOS$)Un{0wAnH>#@CvT&tYUy(lTG+B?jOA)5D&)k)SH~WURc{f&a7CNYP%VW&PN2QBZ(aViX~< z&4Omgxa)I?So*JB&g1BZ_)G;6}s-jJ29^P?`!+t@1(jSZmOB@gg#5WBRfr#^-dm_ zra(qMvuLIHdpI|_CUXsIAwEWCJWFMDSbeN7H^lJy?Ha zcUz}TdC;rg;SAUBlqP%qUjUms9Cda6945{sYq8WmpFI+~n+??S1+sx4N}q@*;C7xW z-{D<>8;v*)6>6@nzRlBr4n6tepIQOzZ>JtCq7uYzZrl(l{LZ%RO#!Jf6nJ-b6L=>B zpA7stw#=V)P;Uth`I`(V>iy`nQKB{euM`LJ|N8s?9b^p3eBMst7#3>}J8sCCHcv$I zn|(3_f4zhUB-NvgQO%zusIb4=d)Y_T7_d>L{q!}n@S2}B&d8?bbfms&T@5lu(+R=V%H*MK6{SL$P|AvRX zYX6fNhu*v^faB_uDF>X&W&!p_=8fgi+A+U(99FVE`3c^UNY@`87$0PR^UXGMqw>rv z-8uO-nLeKjy|bu(u9iq{M0 zw+6gr+I$d8^I@L77D~!?V$ugv@1q>!&?W*Iudhz0_W+Ary(nlBFe!|EOQcv_%zx2z zBH6J%3f~AKdPTR9Zbhq&9eZJbr3rk!;fdcoKsdlM)uTr2m?zLR1l(S7 zxgi!-&sMO-7ks;(s++1lV&y(C#=B{GGg0KvsX|tY;aT!)gdT7l^f&cK;0T|MKbwzo z({I%JQ^pFgndEGRZZf`%-!!Up9H_U!(LKR4SDvLMu3c$U&n>%sBJ;3DhosH5$ZRS+24hbU3343b@)|0rEODikcw}S%7s2M}so= z5L@}Nu;pIeDF9T%+f6wail7OY5~6Ts!#%fr4Vyv9ztl*CfUg&XPReebEfcUWZnxPu5>Tj({dYj#gRS33FTzZ z_W?0|&5Klx3aY9>7#`TUW&62&khzsfaM2&> z!c2I?k)H$Ttlt0bLvDt>c`X7*soyb|DB^$v^i!_CQ6QASMJ!_%L zfT%Tgh9x`h{#}OtKBA*vH`QVq@hnyzj4()Bxj}j~a5e6yhCKyg4bX$plpc}LhiL5xNc*z^y|Y`C|j z4~rdmppk0J;nMaH7wtB|yAX@&yTwin=EI8WIqLcLEb+5bnoaQv;DyjmWlRca@MldU z8(~QuC;FM|xM-*<<@{C%6D{9+w|7@5C~Elg2pm|8u%$&sKkszP*=pL`6)i#Me$K3X zH`A0FZ>n%5F?QL+UP&`Cw*tIVb>Ar|5;V7=Yv~{6!Oj9H=FsMSUvYrv^HUvAz#jbp zhhAj%=g7y={d5c?R4i=ubNJlemOdfhpYyB@m%U4$WN7|%Ck_K%FiM8s0RDF)Jt1r{ z40P$9BnX105W_a&*d3}hM{} z(S&=9IHJHn0#-JLSi^dG^Lh7*&OpeOW0}FtK;{9NZ`Hd;O3W?$SY>9DozV%pC-I%f z#Wv3hm{hJ^260h>L>RmHqqxx4AHK!1xRWKWL*oe%cxoNo^^cXIBXQ75Y8^nH1KN7%a{mVygA4*}c@rvA z@|oieHJ{5TMEM%w+kBOaud)!~7{NjKX&7Zl>MDN|+b4`u_ob_|Qf?(L4`hblsloS- zABUYL%s&jn?bb_g%m4KEt6I3XPWFfJunAzm#_Z9^tLD6V80nm?@H%>PwjW4g&GDIT z9w$-Z8BhdiaL$lP^3fyNtYaPXI=xG#T<-ZfkgE{j4%VDmk|AQ5vvszXIQ- zn7%_d8si@WXUpFFJSCca`A6=HE*DSg%bL7zAwQ15nGFHsuiRXux6E?1!|n7QG|qNX zL5e}fKmUWR{9mtmj_h+^GmK@9ivuWA0X-aN@yB!(`NZveD2e)upKx9m-{ofe0`mvg zY4B|Ybk#IXq?gaAN(N0VxbWc5*kZ7VzD5nhw1!5XcxP+DuWj{HY{h@YQ-FR}Ls;OJ z0KC=HJ$qhewihdCZ&e;?*4^1jV-nOwb(gKgv(awv%JmfIO2p1bOQKtloU*vjApzPl zXa4Djr$4dXDYg`a*Cbez?W+Gk#b?E@Caok*E_(_0VQxomYVJDb5JH#O>RqwZsV1Qq zr#8c1jmB6mvJ(L9udUET5*(@*K)43v`S^)Ac&Wtk?Ni2zx|va$2?WP}SsM#djwIaV zFBAY&@8!f+_8Ixfukv5St1*>33;x#*yHC?Br(kV7cI_q6*$>}VgUzn8E)CphqU&xr zZ?WJFZAUZz8W+LZC2U-kDD6_aR7i8uO408JDl2iEvJ5}OjClG_?1(&Ds5?;(x~_T5 zIVKPe@JjXDs}NR0o(BH)^xR48axdi<#5o##dVRfjglzK^{g|*3PO?(MF38%1?>E!) zs2~q5G;ym!ZwT>=ZDEs;9lY$yR=K#qAuvUm`1=S^jD!`us1rSepnB*S%5}I=yYF$= z&PwS9_)ly4tD~hcMb+YIAD7ngv-Zi0-YotHQZbm{NVj)XV`%QtBeP-`_VtMU2jt}c9)Rh2`|hHOSL z%@Fx5HGzRU2VtyG+HRz!|rI{$E9~NW`Vvc*EMMv0zVodv{kr zJMnDB`MDQ~aOe8fU5S2+L$Yb248Fi;twnrOnB1ZT9$iiW(g589x7|R{D;T|cVc7~J zLj@_y9@Dvrx`^IBD7md0)(5&)vkltx0~A((BQHwL=8@<&({t;Dcc2n-SPYozvpKt- zL#{h4S@el|r^qnJh15Kdsp0o;Os?Tm6gGzH{>$3RQY-6iNqXN=W8|}%t_)fSDAiMZ zW7v^n=Z-XR0k+lY$zFI$UFR=6_v3n+))kS7=W)^=@bOnYj_z??yw z4F}ba<~2sLs-=E53!kO7gU!#B2{T;DzZlwdDVomGvd+@8^>Op>J?EJ%iYsGswcQUW z6Q1SvL@UkKiai`3j>^tjuT87-a`N~_{cUoTy4(x@`Ig${rwVQ``7`K(daz7C4Xuv; zSn*u{j$OR!+qE@rdM)vtaSFvFqKZ;r$Lx;uxugAU$$DL3r(2uLfI-YLg3!7!jbtU< z!j?Wb3;UFAA0jdKgq)44h6?!(IsgPby)ReLRzuvJn6@9#m_klHQ)ShUTdX^K85js;c#y>GEQ2DAw~Ixpq#c}-kc*o0LC>pbl`M2>vghT7X8R8d&k!N? z+65M>j`kUwB77einX7Dcca1-i0V1HSeuz(r*kywJxsg+jr={p52VupTF@Q>cn-*>+ zJ#LzG-YeDR>g|5(jn#p4Ear$W

@zlo%4{_`f@0kk4x4-SVN85`bD)Bv2)yh;hW)X> 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%0AgHv;sH?G*C3qARnvr;~GY9 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

H5C((Bc6YZFhV0Z9h1w-r7>D|E+*% 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 Apa1{> literal 0 HcmV?d00001 From 2915ee7726837310cae07ec7acab2388e237e64a Mon Sep 17 00:00:00 2001 From: Justin Nguyen Date: Tue, 12 Dec 2023 23:12:55 -0800 Subject: [PATCH 086/100] Revert "feat: supported turning on/off post features" This reverts commit fce718a10c033b6e8e0e4a146e88af8495dda028. --- design/partials/composer.handlebars | 8 -------- lib/account.js | 8 +------- public/app.js | 10 +++------- routes/admin.js | 13 ++----------- 4 files changed, 6 insertions(+), 33 deletions(-) diff --git a/design/partials/composer.handlebars b/design/partials/composer.handlebars index 347437f..3747929 100644 --- a/design/partials/composer.handlebars +++ b/design/partials/composer.handlebars @@ -35,14 +35,6 @@ {{#if prev}} {{/if}} -

diff --git a/lib/account.js b/lib/account.js index 133f92f..77d9428 100644 --- a/lib/account.js +++ b/lib/account.js @@ -553,12 +553,9 @@ export const sendUpdateToFollowers = async object => { * @param editOf - The `editOf` parameter is a string that represents the URL of the post that is being * edited. If this parameter is provided, the function will use the same GUID (Globally Unique * Identifier) as the post being edited. - * @param canReply - Whether this note can be replied. - * @param canBoost - Whether this note can be boosted. - * @param canFave - Whether this note can be liked. * @returns the `object` variable. */ -export const createNote = async (body, cw, inReplyTo, toUser, editOf, canReply, canBoost, canFave) => { +export const createNote = async (body, cw, inReplyTo, toUser, editOf) => { const publicAddress = 'https://www.w3.org/ns/activitystreams#Public'; const d = new Date(); @@ -670,9 +667,6 @@ export const createNote = async (body, cw, inReplyTo, toUser, editOf, canReply, url, to, cc, - canReply, - canBoost, - canFave, directMessage, sensitive: !!cw, atomUri: activityId, diff --git a/public/app.js b/public/app.js index b46ea04..776bdd0 100644 --- a/public/app.js +++ b/public/app.js @@ -196,10 +196,9 @@ const app = { const inReplyTo = document.getElementById('inReplyTo'); const to = document.getElementById('to'); const editOf = document.getElementById('editOf'); - const canReply = document.getElementById('canReply').checked; - const canBoost = document.getElementById('canBoost').checked; - const canFave = document.getElementById('canFave').checked; + const form = document.getElementById('composer_form'); + form.disabled = true; fetch( @@ -210,10 +209,7 @@ const app = { cw: cw.value, inReplyTo: inReplyTo.value, to: to.value, - editOf: editOf ? editOf.value : null, - canReply, - canBoost, - canFave + editOf: editOf ? editOf.value : null }) ) .then(newHtml => { diff --git a/routes/admin.js b/routes/admin.js index fffa0ec..2241016 100644 --- a/routes/admin.js +++ b/routes/admin.js @@ -342,16 +342,7 @@ router.get('/post', async (req, res) => { */ router.post('/post', async (req, res) => { // TODO: this is probably supposed to be a post to /api/outbox - const post = await createNote( - req.body.post, - req.body.cw, - req.body.inReplyTo, - req.body.to, - req.body.editOf, - req.body.canReply, - req.body.canBoost, - req.body.canFave - ); + const post = await createNote(req.body.post, req.body.cw, req.body.inReplyTo, req.body.to, req.body.editOf); if (post.directMessage === true) { // return html partial of the new post for insertion in the feed res.status(200).render('partials/dm', { @@ -786,4 +777,4 @@ router.post('/boost', async (req, res) => { }); } writeBoosts(boosts); -}); +}); \ No newline at end of file From f66411ac25b0df7832553820580511a6ce836bb0 Mon Sep 17 00:00:00 2001 From: Justin Nguyen Date: Tue, 12 Dec 2023 23:39:29 -0800 Subject: [PATCH 087/100] Revert "feat: supported turning on/off post features" This reverts commit 305ac41fa08d1aab4a4c63d98d8ea07d4088f289. From 252f1983845c47721443bec77bb1d02568addb8a Mon Sep 17 00:00:00 2001 From: Justin Nguyen Date: Tue, 12 Dec 2023 23:47:56 -0800 Subject: [PATCH 088/100] Revert "feat: supported turning on/off post features" This reverts commit 305ac41fa08d1aab4a4c63d98d8ea07d4088f289. --- design/partials/note.handlebars | 67 +++++++++++++++------------------ 1 file changed, 30 insertions(+), 37 deletions(-) diff --git a/design/partials/note.handlebars b/design/partials/note.handlebars index 3edb171..4a5fd40 100644 --- a/design/partials/note.handlebars +++ b/design/partials/note.handlebars @@ -17,40 +17,33 @@

Show Thread

{{/if}} - {{#each note.attachment}} -
- {{#isImage mediaType}} - {{../name}} - {{/isImage}} - {{#isVideo mediaType}} - - {{/isVideo}} -
- {{/each}} -
-
- {{#if note.canReply}} - - {{/if}} - {{#if note.canBoost}} - - {{/if}} - {{#if note.canFave}} - - {{/if}} - {{#isEq note.attributedTo @root.me.id}} - - {{/isEq}} -
- -
-

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

-
+ {{#each note.attachment}} +
+ {{#isImage mediaType}} + {{../name}} + {{/isImage}} + {{#isVideo mediaType}} + + {{/isVideo}} +
+ {{/each}} +
+
+ + + + {{#isEq note.attributedTo @root.me.id}} + + {{/isEq}} +
+ +
+
From 1316636a6901b9e6a6bd2e3f591c382ffefcefd1 Mon Sep 17 00:00:00 2001 From: Justin Nguyen Date: Tue, 12 Dec 2023 23:49:40 -0800 Subject: [PATCH 089/100] Revert "fix: updated note.handlebars" This reverts commit 9fde75a557a61e1cc9e094435caa16de76ea232a. --- design/partials/note.handlebars | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/design/partials/note.handlebars b/design/partials/note.handlebars index 4a5fd40..e270b5f 100644 --- a/design/partials/note.handlebars +++ b/design/partials/note.handlebars @@ -1,21 +1,20 @@ -
- {{#unless hidebyline}} - {{> byline actor=actor}} - {{/unless}} - {{#if note.summary}} -
- ⚠️ {{note.summary}} -
- Toggle + {{#unless hidebyline}} + {{> byline actor=actor}} + {{/unless}} + {{#if note.summary}} +
+ ⚠️ {{note.summary}} +
+ Toggle +
-
- {{/if}} -
- {{{note.content}}} - - {{#if note.inReplyTo}} -

Show Thread

{{/if}} +
+ {{{note.content}}} + + {{#if note.inReplyTo}} +

Show Thread

+ {{/if}} {{#each note.attachment}}
From 86e050ddc367a2575bb3aaecae3c83f4f2855425 Mon Sep 17 00:00:00 2001 From: Justin Nguyen <52771821+justinnguyen0@users.noreply.github.com> Date: Wed, 13 Dec 2023 00:25:53 -0800 Subject: [PATCH 090/100] Fix README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index eefad70..dd15756 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ Please read the [contributor's guide](CONTRIBUTING.md) before sending pull reque ## Install -Quick start: [Remix on Glitch](https://glitch.com/edit/#!/import/github.com/CSE-210-Team-6/shuttlecraft) +Quick start: [Remix on Glitch](https://glitch.com/edit/#!/import/github/CSE-210-Team-6/shuttlecraft) - Remix the repo on glitch: `https://github.com/CSE-210-Team-6/shuttlecraft.git` From 81af59f5a1ea427e0bcc79670f589bec3ae43e92 Mon Sep 17 00:00:00 2001 From: Justin Nguyen Date: Wed, 13 Dec 2023 01:18:09 -0800 Subject: [PATCH 091/100] clean up tests --- lib/__tests__/account.jest.js | 18 ----------- lib/__tests__/notes.jest.js | 56 +++++++++-------------------------- lib/__tests__/storage.jest.js | 2 -- lib/__tests__/users.jest.js | 3 -- lib/account.js | 1 - 5 files changed, 14 insertions(+), 66 deletions(-) delete mode 100644 lib/__tests__/users.jest.js diff --git a/lib/__tests__/account.jest.js b/lib/__tests__/account.jest.js index 9083134..9109a50 100644 --- a/lib/__tests__/account.jest.js +++ b/lib/__tests__/account.jest.js @@ -456,24 +456,6 @@ describe('Tests for getLikes', () => { }); }); -describe('Tests for getNote', () => {}); - -describe('Tests for sendCreateToFollowers', () => {}); - -describe('Tests for sendUpdateToFollowers', () => {}); - -describe('Tests for createNote', () => {}); - -describe('Tests for follow', () => {}); - -describe('Tests for addFollower', () => {}); - -describe('Tests for removeFollower', () => {}); - -describe('Tests for ensureAccount', () => {}); - -describe('Tests for updateAccount', () => {}); - describe('Tests for getAccount', () => { test('Check successful', () => { jest.replaceProperty(storage, 'accountFile', testFileDirectoryPath + 'account.json'); diff --git a/lib/__tests__/notes.jest.js b/lib/__tests__/notes.jest.js index 95c3243..e0a11d3 100644 --- a/lib/__tests__/notes.jest.js +++ b/lib/__tests__/notes.jest.js @@ -6,13 +6,7 @@ import { getLikesFileName, writeJSONDictionary } from '../storage.js'; -import { - getLikesForNote, - getReplyCountForNote, - recordLike, - recordBoost, - recordUndoLike -} from '../notes.js'; +import { getLikesForNote, getReplyCountForNote, recordLike, recordBoost, recordUndoLike } from '../notes.js'; beforeEach(() => { jest.resetModules(); @@ -20,7 +14,7 @@ beforeEach(() => { jest.mock('../storage', () => ({ ...jest.requireActual('../storage'), - getLikesFileName: jest.fn(() => 'lib/__tests__/files/likedata.json'), + getLikesFileName: jest.fn(() => 'lib/__tests__/files/likedata.json') })); describe('Tests for getLikesForNote', () => { @@ -51,20 +45,13 @@ describe('Tests for getReplyCountForNote', () => { test('Check with existing inReplyTo in INDEX', () => { INDEX.splice(0, INDEX.length); - INDEX.push( - { id: '1', inReplyTo: 'AB' }, - { id: '2', inReplyTo: 'AB' }, - { id: '3', inReplyTo: 'AC' } - ); + INDEX.push({ id: '1', inReplyTo: 'AB' }, { id: '2', inReplyTo: 'AB' }, { id: '3', inReplyTo: 'AC' }); expect(getReplyCountForNote('AB')).toBe(2); }); test('Check with non-existing inReplyTo in INDEX', () => { INDEX.splice(0, INDEX.length); - INDEX.push( - { id: '1', inReplyTo: 'AB' }, - { id: '2', inReplyTo: 'CD' } - ); + INDEX.push({ id: '1', inReplyTo: 'AB' }, { id: '2', inReplyTo: 'CD' }); expect(getReplyCountForNote('AC')).toBe(0); }); }); @@ -80,15 +67,15 @@ describe('Tests for recordLike', () => { const note = { id: id, attributedTo: attributedTo, published: published, inReplyTo: inReplyTo }; addActivityToIndex(note); - const request = { actor: "Ever", object: id }; + const request = { actor: 'Ever', object: id }; const old_likes = getLikesForNote(id); - expect(old_likes.likes.indexOf("Ever")).toBeLessThan(0); + expect(old_likes.likes.indexOf('Ever')).toBeLessThan(0); recordLike(request); const likes = getLikesForNote(id); - expect(likes.likes.indexOf("Ever")).toBeGreaterThanOrEqual(0); + expect(likes.likes.indexOf('Ever')).toBeGreaterThanOrEqual(0); const fileName = getLikesFileName(id); const fileContent = fs.readFileSync(fileName, 'utf-8'); @@ -97,11 +84,6 @@ describe('Tests for recordLike', () => { deleteActivityFromIndex(id); spy.mockRestore(); - // To-do: check notification - }); - - test('Check with existing actor like records', () => { - // To-do: check notification }); }); @@ -116,15 +98,15 @@ describe('Tests for recordBoost', () => { const note = { id: id, attributedTo: attributedTo, published: published, inReplyTo: inReplyTo }; addActivityToIndex(note); - const request = { actor: "def", object: id }; - + const request = { actor: 'def', object: id }; + const old_likes = getLikesForNote(id); - expect(old_likes.boosts.indexOf("def")).toBeLessThan(0); + expect(old_likes.boosts.indexOf('def')).toBeLessThan(0); recordBoost(request); const likes = getLikesForNote(id); - expect(likes.boosts.indexOf("def")).toBeGreaterThanOrEqual(0); + expect(likes.boosts.indexOf('def')).toBeGreaterThanOrEqual(0); const fileName = getLikesFileName(id); const fileContent = fs.readFileSync(fileName, 'utf-8'); @@ -133,11 +115,6 @@ describe('Tests for recordBoost', () => { deleteActivityFromIndex(id); spy.mockRestore(); - // To-do: check notification - }); - - test('Check with existing actor boost records', () => { - // To-do: check notification }); }); @@ -152,12 +129,12 @@ describe('Tests for recordUndoLike', () => { const note = { id: id, attributedTo: attributedTo, published: published, inReplyTo: inReplyTo }; addActivityToIndex(note); - const request = { actor: "Ever", object: id }; + const request = { actor: 'Ever', object: id }; recordUndoLike(request); const likes = getLikesForNote(id); - expect(likes.likes.indexOf("Ever")).toBeLessThan(0); + expect(likes.likes.indexOf('Ever')).toBeLessThan(0); const fileName = getLikesFileName(id); const fileContent = fs.readFileSync(fileName, 'utf-8'); @@ -168,10 +145,5 @@ describe('Tests for recordUndoLike', () => { likes.boosts = []; writeJSONDictionary(fileName, likes); spy.mockRestore(); - // To-do: check notification - }); - - test('Check with existing actor like records', () => { - // To-do: check notification }); -}); \ No newline at end of file +}); diff --git a/lib/__tests__/storage.jest.js b/lib/__tests__/storage.jest.js index d18279f..99b3a19 100644 --- a/lib/__tests__/storage.jest.js +++ b/lib/__tests__/storage.jest.js @@ -300,5 +300,3 @@ describe('Tests for createFileName', () => { deleteActivityFromIndex(id); }); }); - -describe('Tests for searchKnownUsers', () => {}); diff --git a/lib/__tests__/users.jest.js b/lib/__tests__/users.jest.js deleted file mode 100644 index 9d1779f..0000000 --- a/lib/__tests__/users.jest.js +++ /dev/null @@ -1,3 +0,0 @@ -describe('Tests for fetchUser', () => { - test('Initial state', () => {}); -}); diff --git a/lib/account.js b/lib/account.js index 77d9428..d34c092 100644 --- a/lib/account.js +++ b/lib/account.js @@ -887,7 +887,6 @@ export const ifAccount = () => { }; export const updateAccount = async (name, domain, bio, img) => { - console.log(img); // verify domain name const re = /^((?:(?:(?:\w[.\-+]?)*)\w)+)((?:(?:(?:\w[.\-+]?){0,62})\w)+)\.(\w{2,6})$/; if (!domain.match(re)) { From 636106a1619082ee56946acae9b07524f9c63694 Mon Sep 17 00:00:00 2001 From: smruthig <75429779+smruthig@users.noreply.github.com> Date: Wed, 13 Dec 2023 09:47:54 -0800 Subject: [PATCH 092/100] Added 12th Dec notes (#76) --- documentation/meeting-notes/12-12-2023.md | 39 +++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 documentation/meeting-notes/12-12-2023.md diff --git a/documentation/meeting-notes/12-12-2023.md b/documentation/meeting-notes/12-12-2023.md new file mode 100644 index 0000000..d6d238d --- /dev/null +++ b/documentation/meeting-notes/12-12-2023.md @@ -0,0 +1,39 @@ +# Meeting Notes + +**Date:** 12th December, 2023 +**Location:** Online + +## Issues on Glitch + +- Justin unable to create Glitch instance +- Messaging not working on Glitch anymore - high priority issue + - Aditya, with the older code, can send messages, but Kashish, with the newer code, is unable to send messages. + - Decision: Run Glitch for every snapshot of the code after each commit to find the point of failure. + - Checked all commits + - Pinpointed a possible problematic commit - main branch not rebased. + - Reverted the commits. +- Boost, reply, etc. options not appearing for Aditya on posting + +## Documentation + +- Internal deadline for documentation: Thursday. +- Pitch document done +- Meeting notes done. +- Pipeline document - Kashish +- Raw Research and Ideation Materials - TODO +- Testing document - Justin. +- ADR, Sys design - 13th December meeting. +- UI/UX document - Aditya and Jay. + +## Miro Board Improvements + +- UI improvements not updated. +- Architecture diagram - needs to have ActivityPub and be less oversimplified. + +## Code Management + +- Closed unnecessary PRs. +- Solved Enze's merge conflicts. +- Pushed LoginUI PR. + +**Author:** Smruthi From 3eb07b9bdd84229ebfef3827b87e00eecafd1f33 Mon Sep 17 00:00:00 2001 From: kashishvjain <66744312+kashishvjain@users.noreply.github.com> Date: Wed, 13 Dec 2023 09:48:16 -0800 Subject: [PATCH 093/100] 68 enhancement UI improvement for login create user page (#74) * Added a basic ui Co-Authored-By: smruthig <75429779+smruthig@users.noreply.github.com> * Added the UI for Login and Create User * Removed margin-bottom --------- Co-authored-by: smruthig <75429779+smruthig@users.noreply.github.com> --- design/createAccount.handlebars | 32 +++-------- design/layouts/authentication.handlebars | 17 ++++++ design/login.handlebars | 31 ++++------- lib/authentication.js | 1 - public/css/constants.css | 25 ++++----- public/css/secret.css | 68 +++++++++++++++++++++++- routes/accountHandler.js | 6 +-- routes/admin.js | 2 +- 8 files changed, 117 insertions(+), 65 deletions(-) create mode 100644 design/layouts/authentication.handlebars diff --git a/design/createAccount.handlebars b/design/createAccount.handlebars index 30383ab..585cae8 100644 --- a/design/createAccount.handlebars +++ b/design/createAccount.handlebars @@ -1,12 +1,7 @@ -

Create User Account

+
+

Create User Account

- - - - - - - + - - -
- - \ No newline at end of file + \ No newline at end of file diff --git a/design/layouts/authentication.handlebars b/design/layouts/authentication.handlebars new file mode 100644 index 0000000..7be415c --- /dev/null +++ b/design/layouts/authentication.handlebars @@ -0,0 +1,17 @@ + + + + {{me.preferredUsername}} + + + + + + + + + {{{body}}} + + + + \ No newline at end of file diff --git a/design/login.handlebars b/design/login.handlebars index 695d51c..a91c51e 100644 --- a/design/login.handlebars +++ b/design/login.handlebars @@ -1,31 +1,18 @@ -

Login Account

+
+

Login

- + {{! }} - + - + {{! }} - - - + {{#if message}} -

{{message}}

+
{{message}}
{{/if}} -
- - \ No newline at end of file + \ No newline at end of file diff --git a/lib/authentication.js b/lib/authentication.js index c0f2d6d..4f77512 100644 --- a/lib/authentication.js +++ b/lib/authentication.js @@ -122,7 +122,6 @@ export const handleAuthenticatedUser = (req, res, next) => { ActivityPub.account = myaccount; if (req.cookies.token && req.cookies.token === myaccount.apikey) { - console.log('TOKEN', req.cookies); return next(); } else { res.redirect('/account/login'); diff --git a/public/css/constants.css b/public/css/constants.css index c46d5a8..b2e1df3 100644 --- a/public/css/constants.css +++ b/public/css/constants.css @@ -1,13 +1,14 @@ :root { - --background: #f9f9f9; /* Light gray background */ - --text: #333; /* Dark text color */ - --link: #1da1f2; /* Twitter blue */ - --secondary: #666; /* Dimmed secondary text */ - --tertiary: #e5e5e5; /* Light gray for tertiary elements */ - --contrast: #555; /* Dark gray for contrast */ - --separator: #1da1f2; /* Twitter blue for separators */ - --header: #e0e0e0; - --shade: rgba(249, 249, 249, 0.25); /* Slight shade for depth */ - --highlight: #888; /* Medium gray for highlights */ - --accent: #e50b76; /* Pink accent */ - } \ No newline at end of file + --background: #f9f9f9; /* Light gray background */ + --text: #333; /* Dark text color */ + --link: #1da1f2; /* Twitter blue */ + --secondary: #666; /* Dimmed secondary text */ + --tertiary: #e5e5e5; /* Light gray for tertiary elements */ + --contrast: #555; /* Dark gray for contrast */ + --separator: #1da1f2; /* Twitter blue for separators */ + --header: #e0e0e0; + --shade: rgba(249, 249, 249, 0.25); /* Slight shade for depth */ + --highlight: #888; /* Medium gray for highlights */ + --accent: #e50b76; /* Pink accent */ + --authentication-color: rgb(8, 0, 115); /* Twitter blue for authentication */ +} diff --git a/public/css/secret.css b/public/css/secret.css index ba7e181..a49d3e3 100644 --- a/public/css/secret.css +++ b/public/css/secret.css @@ -1031,4 +1031,70 @@ input:hover { .mini-cw { display: none; -} \ No newline at end of file +} + +.authetication-form { + /* min-width: 250px; */ + max-width: 400px; + margin: 150px auto; + padding: 20px; + border: 5px solid var(--authentication-color); + background-color: var(--background); + border-radius: 20px; +} + +.authetication-form .form-label { + display: block; + margin-bottom: 5px; + font-weight: bold; +} + +.authetication-form .form-input { + width: 100%; + padding: 10px; + border: 2px solid var(--authentication-color); + border-radius: 5px; + box-sizing: border-box; + font-size: 14px; +} + +.authetication-form .form-input:focus { + outline: none; + border-color: #3b99fc; + box-shadow: 0 0 5px rgba(59, 153, 252, 0.5); +} + +.authetication-form .form-button { + display: block; + width: 100%; + padding: 10px; + background-color: var(--authentication-color); + color: white; + border: none; + border-radius: 20px; + font-size: 16px; + cursor: pointer; + margin-top: 10px; + font-family: Verdana, sans-serif; +} + +.authetication-form .form-title { + font-family: Verdana, sans-serif; + font-size: 24px; + font-weight: 900; + text-align: center; + color: var(--authentication-color); + margin: 0px 0px 10px 0px; +} +@media (max-width: 600px) { + h1.form-title { + font-size: 18px; + } +} + +.authentication-body { + background-image: url('https://i.postimg.cc/wjC2dDw0/1-1-2.jpg'); + background-size: cover; + background-repeat: no-repeat; + background-position: center center; +} diff --git a/routes/accountHandler.js b/routes/accountHandler.js index 0a628eb..dc8b21d 100644 --- a/routes/accountHandler.js +++ b/routes/accountHandler.js @@ -8,7 +8,7 @@ export const router = express.Router(); request to the '/create' endpoint. */ router.get('/create', async (req, res) => { res.status(200).render('createAccount', { - layout: 'public' + layout: 'authentication' }); }); @@ -26,7 +26,7 @@ router.get('/login', (req, res) => { res.redirect('/account/create'); } res.status(200).render('login', { - layout: 'public' + layout: 'authentication' }); }); @@ -41,7 +41,7 @@ router.post('/login', (req, res) => { res.redirect('/private'); } else { res.status(200).render('login', { - layout: 'public', + layout: 'authentication', message: "Username or password don't match" }); } diff --git a/routes/admin.js b/routes/admin.js index 2241016..1ac2c07 100644 --- a/routes/admin.js +++ b/routes/admin.js @@ -777,4 +777,4 @@ router.post('/boost', async (req, res) => { }); } writeBoosts(boosts); -}); \ No newline at end of file +}); From 4370ac41fc2a78b26d7d16bfec2126c3350f0be3 Mon Sep 17 00:00:00 2001 From: kashishvjain <66744312+kashishvjain@users.noreply.github.com> Date: Wed, 13 Dec 2023 11:07:00 -0800 Subject: [PATCH 094/100] Removing some TODOs and changes to the readme (#82) --- README.md | 24 ++++++------------------ design/dms.handlebars | 1 - design/feeds.handlebars | 1 - design/login.handlebars | 4 ---- lib/account.js | 12 ------------ lib/notes.js | 1 - lib/storage.js | 2 -- lib/users.js | 1 - public/app.js | 1 - routes/admin.js | 4 ---- routes/inbox.js | 5 ----- routes/outbox.js | 1 - 12 files changed, 6 insertions(+), 51 deletions(-) diff --git a/README.md b/README.md index dd15756..3a39e27 100644 --- a/README.md +++ b/README.md @@ -96,7 +96,7 @@ your previous posts may break. ## Access -Access your website at `https://yourdomain.com/private`. You will be prompted to create account or login if required. +Access your website at `https://{yourdomain}.com/private`. You will be prompted to create account or login if required. ## Debugging @@ -130,7 +130,7 @@ specified in the .env file. In order to play nice with the fediverse, it must be hosted on an SSL-enabled endpoint. -### Easiest: Glitch +### Easy: Glitch Use Glitch to create a new project! Glitch will provide you with hosting for your instance of Shuttlecraft, and you can start for FREE! @@ -140,22 +140,10 @@ It all starts when you click this link -> [Remix this project on Glitch](https:/ WHOA! What happened? Well, a copy of the Shuttlecraft code was sent to a new, unique, owned-by-you web server and it started getting set up. You just need to make it yours by following these steps: 1. First, make sure the URL of your Glitch project is the one you like. You can change it in the "Settings" menu. -2. Then, configure the options [as described above](#config) using the .env editor. -3. Finally, login to the dashboard at `https://yourdomain.glitch.me/private`. -4. Done! - -### Basic: Reverse proxy - -1. Clone the repo to your own server. -2. Configure it and set it up to run on a port of your choosing. -3. Configure Caddy or Nginx with a Certbot SSL certificate. -4. Configure your domain to proxy requests to the localhost port. - -A sample `Caddyfile` is included in the repo. [Install Caddy](https://caddyserver.com/download) and run: - -``` -caddy run --config Caddyfile -``` +2. Then, configure the options [as described above](#config) using the .env editor. +3. Finally, create and login to the dashboard at `https://yourdomain.glitch.me/private`. +4. It is very important that the domain you add while creating you user is `https://{yourdomain}.glitch.me`. If not this will break things! +5. Done! ### Advanced: Docker diff --git a/design/dms.handlebars b/design/dms.handlebars index e79ba62..ff5b4c6 100644 --- a/design/dms.handlebars +++ b/design/dms.handlebars @@ -15,7 +15,6 @@ {{> minicomposer inReplyTo=lastIncoming to=feed.id}}
{{else}} -
Select a conversation. To create a new one, navigate to a profile.
diff --git a/design/feeds.handlebars b/design/feeds.handlebars index 7c48688..3d429b7 100644 --- a/design/feeds.handlebars +++ b/design/feeds.handlebars @@ -23,7 +23,6 @@ {{/with}} {{/each}} {{else}} -
No posts. Reload
diff --git a/design/login.handlebars b/design/login.handlebars index a91c51e..4cdee14 100644 --- a/design/login.handlebars +++ b/design/login.handlebars @@ -1,12 +1,8 @@

Login

- {{! }} - - {{! }} - {{#if message}}
{{message}}
diff --git a/lib/account.js b/lib/account.js index d34c092..e9eed46 100644 --- a/lib/account.js +++ b/lib/account.js @@ -31,10 +31,6 @@ const logger = debug('ono:account'); const { DOMAIN } = process.env; -// TODO: -// Change the mydomain -// const mydomain = "localhost:3000"; - /** * The function `getInboxIndex` returns the inbox index by reading a JSON dictionary from a specified * path. @@ -366,11 +362,6 @@ export const getNotifications = () => { return readJSONDictionary(notificationsFile); }; -// todo: expose an interface for adding to the block list. -// const writeBlocks = (data) => { -// return writeJSONDictionary(blocksFile, data); -// } - /** * The function checks if an actor is blocked based on a list of banned users or domains. * @returns The function `isBlocked` returns a boolean value. It returns `true` if the `actor` is found @@ -580,7 +571,6 @@ export const createNote = async (body, cw, inReplyTo, toUser, editOf) => { if (inReplyTo || toUser) { if (toUser) { - // TODO: validate the to field is a legit account to = [toUser]; cc = []; directMessage = true; @@ -770,8 +760,6 @@ export const follow = async request => { } else { createActivity(activity.object); } - } else if (activity.type === 'Announce') { - // TODO: fetch boosted posts, etc. } }); }); diff --git a/lib/notes.js b/lib/notes.js index ebcfefd..06da6cd 100644 --- a/lib/notes.js +++ b/lib/notes.js @@ -149,7 +149,6 @@ export const getActivity = async id => { if (indexed !== false) { // if is cached, no need to check for file if (indexed.type === 'fail') { - // TODO: could retry after a while... throw new Error('Activity was unreachable', indexed); } else { const noteFile = getFileName(id); diff --git a/lib/storage.js b/lib/storage.js index 798eb26..393e79a 100644 --- a/lib/storage.js +++ b/lib/storage.js @@ -339,8 +339,6 @@ const ensureDataFolder = () => { if (!fs.existsSync(path.resolve(prefsFile))) { logger('create default settings', prefsFile); writeJSONDictionary(prefsFile, DEFAULT_SETTINGS); - } else { - // todo: validate settings, add any missing keys with default values } }; diff --git a/lib/users.js b/lib/users.js index d6088d7..8ebe9fa 100644 --- a/lib/users.js +++ b/lib/users.js @@ -99,7 +99,6 @@ export const fetchUser = async user => { } else { logger('fetch fresh user for', user, `${username}`); // attempt to fetch a new one async - // TODO: needs to be debounced - could try to load same user many times quickly fetchUserFromSource(username, account?.actor?.id).catch(err => console.error('Error updating user data for', username, err) ); diff --git a/public/app.js b/public/app.js index 776bdd0..5bbe4a2 100644 --- a/public/app.js +++ b/public/app.js @@ -2,7 +2,6 @@ const fetch = (url, type, payload = undefined) => { return new Promise((resolve, reject) => { const Http = new XMLHttpRequest(); Http.open(type, url); - // TODO: should be a parameter Http.setRequestHeader('Content-Type', 'application/json;charset=UTF-8'); Http.send(payload); diff --git a/routes/admin.js b/routes/admin.js index 216ae49..d1c1d7c 100644 --- a/routes/admin.js +++ b/routes/admin.js @@ -100,7 +100,6 @@ router.get('/notifications', async (req, res) => { notes.map(async notification => { const { actor } = await fetchUser(notification.notification.actor); let note, original; - // TODO: check if user is in following list actor.isFollowing = isFollowing(actor.id); if (notification.notification.type === 'Like' || notification.notification.type === 'Announce') { @@ -340,7 +339,6 @@ router.get('/post', async (req, res) => { * Update and create the post using the POST method */ router.post('/post', async (req, res) => { - // TODO: this is probably supposed to be a post to /api/outbox const post = await createNote(req.body.post, req.body.cw, req.body.inReplyTo, req.body.to, req.body.editOf); if (post.directMessage === true) { // return html partial of the new post for insertion in the feed @@ -673,8 +671,6 @@ router.post('/follow', async (req, res) => { // send unfollow await ActivityPub.sendUndoFollow(actor, status.id); - // todo: this should just be a function like removeFollowing - let following = getFollowing(); // filter out the one we are removing diff --git a/routes/inbox.js b/routes/inbox.js index 2353726..6143d9d 100644 --- a/routes/inbox.js +++ b/routes/inbox.js @@ -87,7 +87,6 @@ router.post('/', async (req, res) => { logger('Incoming follow request'); addFollower(incomingRequest); - // TODO: should wait to confirm follow acceptance? ActivityPub.sendAccept(actor, incomingRequest); break; case 'Undo': @@ -158,7 +157,6 @@ router.post('/', async (req, res) => { if (incomingRequest.object.directMessage === true || addressedOnlyToMe(incomingRequest)) { await acceptDM(incomingRequest.object, incomingRequest.object.attributedTo); } else if (isReplyToMyPost(incomingRequest.object)) { - // TODO: What about replies to replies? should we traverse up a bit? if (!isIndexed(incomingRequest.object.id)) { createActivity(incomingRequest.object); addNotification({ @@ -188,9 +186,6 @@ router.post('/', async (req, res) => { // from a following // or from someone else who replied to a following? // the visibility should be determined on the feed - // TODO: we may want to discard things NOT from followings - // since they may never be seen - // and we can always go fetch them... createActivity(incomingRequest.object); } diff --git a/routes/outbox.js b/routes/outbox.js index 8ed8322..28bf004 100644 --- a/routes/outbox.js +++ b/routes/outbox.js @@ -86,7 +86,6 @@ router.get('/', async (req, res) => { collection.id = `${outboxUrl}?offset=${offset}`; collection.partOf = outboxUrl; collection.next = `${outboxUrl}?offset=${offset + 10}`; - // todo: stop at 0 if (offset - 10 > 0) { collection.prev = `${outboxUrl}?offset=${offset - 10}`; } else { From cfe62c44a734e37c07ab020f27a7f96a68548589 Mon Sep 17 00:00:00 2001 From: Ever Wong <55682512+Melody-Creator@users.noreply.github.com> Date: Wed, 13 Dec 2023 11:18:24 -0800 Subject: [PATCH 095/100] supported turning on/off post features (#81) * feat: supported turning on/off post features * fix: fixed the message sending issue * style: removed useless code in minicomposer * style: used expected shorthand --- design/partials/composer.handlebars | 13 +++- design/partials/minicomposer.handlebars | 3 + design/partials/note.handlebars | 98 +++++++++++++------------ lib/account.js | 8 +- public/app.js | 9 ++- routes/admin.js | 11 ++- 6 files changed, 89 insertions(+), 53 deletions(-) diff --git a/design/partials/composer.handlebars b/design/partials/composer.handlebars index 3747929..239522b 100644 --- a/design/partials/composer.handlebars +++ b/design/partials/composer.handlebars @@ -2,7 +2,6 @@ {{#if originalPost}}
Reply
- {{!-- {{> byline actor=actor}} --}} {{{originalPost.content}}}
{{else}} @@ -15,9 +14,7 @@
- + {{/if}} +
+ + + + + + +
diff --git a/design/partials/minicomposer.handlebars b/design/partials/minicomposer.handlebars index 341cd9f..f76fec0 100644 --- a/design/partials/minicomposer.handlebars +++ b/design/partials/minicomposer.handlebars @@ -5,6 +5,9 @@ + + + diff --git a/design/partials/note.handlebars b/design/partials/note.handlebars index e270b5f..b86c5b4 100644 --- a/design/partials/note.handlebars +++ b/design/partials/note.handlebars @@ -1,48 +1,56 @@ - {{#unless hidebyline}} - {{> byline actor=actor}} - {{/unless}} - {{#if note.summary}} -
- ⚠️ {{note.summary}} -
- Toggle -
+
+ {{#unless hidebyline}} + {{> byline actor=actor}} + {{/unless}} + {{#if note.summary}} +
+ ⚠️ {{note.summary}} +
+ Toggle
- {{/if}} -
- {{{note.content}}} +
+ {{/if}} +
+ {{{note.content}}} - {{#if note.inReplyTo}} -

Show Thread

- {{/if}} + {{#if note.inReplyTo}} +

Show Thread

+ {{/if}} - {{#each note.attachment}} -
- {{#isImage mediaType}} - {{../name}} - {{/isImage}} - {{#isVideo mediaType}} - - {{/isVideo}} -
- {{/each}} -
-
- - - - {{#isEq note.attributedTo @root.me.id}} - - {{/isEq}} -
- -
-
+ {{#each note.attachment}} +
+ {{#isImage mediaType}} + {{../name}} + {{/isImage}} + {{#isVideo mediaType}} + + {{/isVideo}} +
+ {{/each}} +
+
+ {{#if note.canReply}} + + {{/if}} + {{#if note.canBoost}} + + {{/if}} + {{#if note.canFave}} + + {{/if}} + {{#isEq note.attributedTo @root.me.id}} + + {{/isEq}} +
+ +
+
+
diff --git a/lib/account.js b/lib/account.js index e9eed46..756d815 100644 --- a/lib/account.js +++ b/lib/account.js @@ -544,9 +544,12 @@ export const sendUpdateToFollowers = async object => { * @param editOf - The `editOf` parameter is a string that represents the URL of the post that is being * edited. If this parameter is provided, the function will use the same GUID (Globally Unique * Identifier) as the post being edited. + * @param canReply - Whether this note can be replied. + * @param canBoost - Whether this note can be boosted. + * @param canFave - Whether this note can be liked. * @returns the `object` variable. */ -export const createNote = async (body, cw, inReplyTo, toUser, editOf) => { +export const createNote = async (body, cw, inReplyTo, toUser, editOf, canReply, canBoost, canFave) => { const publicAddress = 'https://www.w3.org/ns/activitystreams#Public'; const d = new Date(); @@ -657,6 +660,9 @@ export const createNote = async (body, cw, inReplyTo, toUser, editOf) => { url, to, cc, + canReply, + canBoost, + canFave, directMessage, sensitive: !!cw, atomUri: activityId, diff --git a/public/app.js b/public/app.js index 5bbe4a2..ef38679 100644 --- a/public/app.js +++ b/public/app.js @@ -195,7 +195,9 @@ const app = { const inReplyTo = document.getElementById('inReplyTo'); const to = document.getElementById('to'); const editOf = document.getElementById('editOf'); - + const canReply = document.getElementById('canReply').checked; + const canBoost = document.getElementById('canBoost').checked; + const canFave = document.getElementById('canFave').checked; const form = document.getElementById('composer_form'); form.disabled = true; @@ -208,7 +210,10 @@ const app = { cw: cw.value, inReplyTo: inReplyTo.value, to: to.value, - editOf: editOf ? editOf.value : null + editOf: editOf ? editOf.value : null, + canReply, + canBoost, + canFave }) ) .then(newHtml => { diff --git a/routes/admin.js b/routes/admin.js index d1c1d7c..a3a1633 100644 --- a/routes/admin.js +++ b/routes/admin.js @@ -339,7 +339,16 @@ router.get('/post', async (req, res) => { * Update and create the post using the POST method */ router.post('/post', async (req, res) => { - const post = await createNote(req.body.post, req.body.cw, req.body.inReplyTo, req.body.to, req.body.editOf); + const post = await createNote( + req.body.post, + req.body.cw, + req.body.inReplyTo, + req.body.to, + req.body.editOf, + req.body.canReply, + req.body.canBoost, + req.body.canFave + ); if (post.directMessage === true) { // return html partial of the new post for insertion in the feed res.status(200).render('partials/dm', { From 8108563cdd4b7dee7e0f2affbe7282c83119f304 Mon Sep 17 00:00:00 2001 From: Ever Wong <55682512+Melody-Creator@users.noreply.github.com> Date: Wed, 13 Dec 2023 11:50:31 -0800 Subject: [PATCH 096/100] doc: fixed Glitch link typo in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3a39e27..0a03bb6 100644 --- a/README.md +++ b/README.md @@ -135,7 +135,7 @@ SSL-enabled endpoint. Use Glitch to create a new project! Glitch will provide you with hosting for your instance of Shuttlecraft, and you can start for FREE! -It all starts when you click this link -> [Remix this project on Glitch](https://glitch.com/edit/#!/import/github.com/CSE-210-Team-6/shuttlecraft) <-- +It all starts when you click this link -> [Remix this project on Glitch](https://glitch.com/edit/#!/import/github/CSE-210-Team-6/shuttlecraft) <-- WHOA! What happened? Well, a copy of the Shuttlecraft code was sent to a new, unique, owned-by-you web server and it started getting set up. You just need to make it yours by following these steps: From 2da99e45ce3f4f4f3aebe3fb85ff2e8dbd992c7a Mon Sep 17 00:00:00 2001 From: Aditya Mandke <40426312+ekdnam@users.noreply.github.com> Date: Thu, 14 Dec 2023 17:05:28 -0800 Subject: [PATCH 097/100] add wireframes --- documentation/wireframes/images/index-hi.png | Bin 0 -> 242306 bytes documentation/wireframes/images/index-low.png | Bin 0 -> 219729 bytes documentation/wireframes/images/msg-hi.png | Bin 0 -> 225136 bytes documentation/wireframes/images/msg-low.png | Bin 0 -> 214929 bytes documentation/wireframes/images/private-hi.png | Bin 0 -> 323121 bytes .../wireframes/images/private-low.png | Bin 0 -> 287255 bytes .../wireframes/images/send-msg-hi.png | Bin 0 -> 285253 bytes .../wireframes/images/send-msg-low.png | Bin 0 -> 242514 bytes 8 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 documentation/wireframes/images/index-hi.png create mode 100644 documentation/wireframes/images/index-low.png create mode 100644 documentation/wireframes/images/msg-hi.png create mode 100644 documentation/wireframes/images/msg-low.png create mode 100644 documentation/wireframes/images/private-hi.png create mode 100644 documentation/wireframes/images/private-low.png create mode 100644 documentation/wireframes/images/send-msg-hi.png create mode 100644 documentation/wireframes/images/send-msg-low.png diff --git a/documentation/wireframes/images/index-hi.png b/documentation/wireframes/images/index-hi.png new file mode 100644 index 0000000000000000000000000000000000000000..d7339b735cdaacc358dddcfb3ae78f1b39d63c48 GIT binary patch literal 242306 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

#c6aP25zMcAh#Wwyia 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 literal 0 HcmV?d00001 diff --git a/documentation/wireframes/images/index-low.png b/documentation/wireframes/images/index-low.png new file mode 100644 index 0000000000000000000000000000000000000000..5af4242871f6ac5ef04499aa03cf1f71b372b990 GIT binary patch literal 219729 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 B>?QyJ literal 0 HcmV?d00001 diff --git a/documentation/wireframes/images/msg-hi.png b/documentation/wireframes/images/msg-hi.png new file mode 100644 index 0000000000000000000000000000000000000000..394d050c1de8aaca2aca742bfeecf644a077fff6 GIT binary patch literal 225136 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 literal 0 HcmV?d00001 diff --git a/documentation/wireframes/images/msg-low.png b/documentation/wireframes/images/msg-low.png new file mode 100644 index 0000000000000000000000000000000000000000..5eeee118422430e1d1a7b26e89b76a40dc5380bd GIT binary patch literal 214929 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

^qA?o#}^>SvTSJ65xx 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

Kl`?g1IMd;hub4?cW{P3*Ws7 zeo3y@nx;QKqHD`N4H<bDlKUfqsR+iiQNz4VQ$yu~sJNUAvRVp> zkTO5vGxD=iJXS;ODxHZ0CC}^$3g^Q|U8mRs_p7pVGB!KJc;S->aTOWNewWI*dxd9O zLo%8)*HXl4;W;Ur)$G$^({sN%uGXR|c0#D~ILYM&)A~gM45-!Tm6n^&7HfO_?fBXU z09i>iG&l6sQ{}|lEfDh7xDB>Yv*a>2iBTc-sP&oR=oE`R*X-We$jY9P&ft-Fs59*E z)e~}qLm-a+PP9`I6O-FWM~X6qW&e+68o@&2+yD}irHNkBb0(V{Q&OZpXh~;fm`PVE zh3_pEUdR~gzHUmvt#->O4)#aE=0vc?XoT6Y^LEgZeNZS##A5QJlr;E}`YE|a;cNTi zay~HgrOYsn+qKa(6urv*huZ9$of#POewlZ}-Pv4(smzbhRGm6$R>|2{SWK=fH!*D_ z&(-rCX5ya8VBfwU4dyP7F`jdAk_^dYS{`2*D?BL1ceskrTsP}}_LQo3>d4`tEM=|O zU>c!)t|`g|Xz%?L&Dgj|qNxI|bDb3O6x}TNr|y?kgyicnG3ZEGRajO)zlj(*PC>in zeEXYku2ZUv=^&KT>1`6F@ljFqy;UKK=Q)oS4A+&pL4uB13aBc6|Gyp{=c*eb&I*vFCHJH0*$4%5mSE2??v^c+W!ajuh#p)H@UTeTrtM zu46xnVP5$83du6=YBU}Dbc8oot7t+hL(AMKmx`>McNu$qK(?kW2w!oZCOL7q&^}w< zw5B%26lT+~PM4lC)u1|u5@%tm{XmY2tBi5StgSKR9Zu-ro-!^y>R9MZ7fc#1>^W-c zcH)|E;lP^^Dm22U-Pn=RL@Lne%N3#*imY7Hi(kCQzlP5gFUHQXx6!BH}ZJNut zXgcE}l``uy+r5lEkSS&(Npy!jiP4WimKaShIwKXYbWiw{R$3L`!k+gSFoa-uAGs?r z!{;`3oz}G3+K}Z#;X>|YxA>E@IDGV)o)wLEO^OwHdoJ+?n+-2ZeV^T$F#Ui~*8ti*|s<^ks=)jyTJ0t6$#T+i*rLC!uE2Oe}Ij%*D6nv%wac3fi0Wl=hd9cdHA=Kl|C?;Tfj`#+8o zMFXLwL{{3nB;w%CXi0kyk#?yl?SqOEk@h-CrCr)PrKF*>rGaQKnwr1ob*dBhZM;8^ z-`8I+r`Ncy=k?r^*ZvaOjtnvDfOC}@>hYst32n2oJ9%lj>?eF$%rY4-7CN;bF1!C) zvt`(o!SoIq;FV2mn*GK1DvX~l1rk3>Y4Eyd_l?gF(X`qwAoSOwVKc2TL{upzNwxE_ z;Y2?>d6&zTF!w8=_AH?TImc-Vr?uz4Ma_0)I@xledGJ{u@^ypqu z1Xs1iS`nlq${De*Dv3y-*|RHcK7niKbK%#kqC5G(6xC05kv=Bd@g`7^UGGisI~xyP zd)^Xfp@hzIq0nu2wrGTOu;WZ0N~SJ*%qsWki3beq$-$^%4H1~ zxb5-`8p%4c%kEQv@^rT( zpv6D&$F3X4r%uwRymlQZm40u$!zk%6musZV6_WS-HAlCj5sO{-Ai>;eHq$AtmtsYJ zccEC`CZQJX##zmjy-%ba4UTiDWgLacbS_zo3$wc3QbKp3BHO94`4cMS`>n%t6N`+E z{%PA0McXZY1Wgu$Qvj}{mi|ppJ+q$N=#B{sY93zO*hp>J^QJl|T1)0~fiW{`_3;Q$ zQHTVFM{#K62p|m*&G3%p%ZBk|98ECplTK75DEg4%<+maPWL-sM0&3S@g4akX%2c8{ zSNsvvK^vcsUZmG*!<_5MhftF&Dsth{+C+F5V+rRhbcQiuwUGZ8*nrL%KaQf`WVQRu zI`C<2Hva6sXQObw`9>Qc5u5>W@Wqz2$aEgKAKEn}my(%g{{dX+Pqio-Cw1Yp2Vp1A zaKN{Sd9NvO$V{JVd3w%!uY&>HsecVC8%+m1DnrBrb^67HgO0-xtIqtV=mZ`B76`0F z1Z2m8=stDii6K#BhdHOVvY;s=%sbO2ij?LZ1a17a_rXIg;*!WmlmOzWB_}=8;!j78 zR;CVowJaedfY9(m{tRqhB+=IMj;vW$D6cLFzE72n25yw9go;aY&ndjJL617A@b+Kw z{R@aNxJ>8@F~4$}keLM>s`mb~z@qWK`h6zJp+Y*vxBW$~88(*Hqket#QaB!M|L)Fr z@80QG@}P9cG#JUIQ|a4L{0Cn@!fG5$ex_i^vWX(djHQkl$^8PPR10f_2vol@k9h@w zyUre@i}I#Gt}M!O6#AJox`cXN6VCI83#LkLE68_hkH~Xpm1T@82u$BYgk*6OTbU^X+ zIs*P*f}uq`5iSPf2Gj-bY>RJ`@?Pt2IIZRT9ntM4BA2x#0+=gTu9Uudi|_g-j~XF- zi?aP)t^88FzcB+JhAMvqIOZFxv)YAA1v06sPErS&Zw5}HEH440feeW(yQ^Lgs6k_z z1`!BNVZ>lR>=iNmzuOPu5u8dEXtHuD&E< zPw_!2gyWGv50BesaJHvHn+U(oPo$J|PvN^vFVunVVfR!EJU&qe_J=iTKKpA3GGtItiob}OFP)j`4A@*FX!+D3g;3hS*e4F~9j>ogA z@Q~Zlq|aku4Zid~e=Oj=Zp`G+&=7Uf{PW9|cuz~=;`~SoxSaK&h$Kb#RT(}L?V<;# z#jG^4CO83UjABd(LnyJQQO@3NHo*@&i76P8^`oF`O#6DWb*|9W!##liN|VVk5z6IC3oS@*}>HFPo3pPGP(ne$`1IcZ|kdBX#Mu3vI}{|i6c%w z*u@Aog8RdLXS#_l^n^Jrc=x2>PZ(K<0-A*`uB-bh*=y@zBefPZmr|n{6XFukT z*!LXyni@85jB&fQS%l@#=~ySh_r)&cUEeCXYlaf2t`8>VgU;o#ZnH2`lw`oReW&ly zHKfUwj}$Hp6k2q%Dl50hCV%4(`!0#5if7M<7Gq(FUn?qQDZipp183c10Hmv6_kS*E zrr}g==$T*@4w|%Vkdab zggCrF6tEB7rt0`#i$dso4_PrIr2$t$RnkTuI1K83g?WzoT3);7d(T{jfv>b0mN4$S zY>(SczWr4o8>ptmUnGLb7ZG3Z%9DW>nahJ|_0sD!!%q4_USsAb82HOD+S);jhCyBh zH{O)pBQ3Hy>ViWoE;F)ONx{DNyswQ+j+Sikqo9l0PAZ2A-ElB2uiBdCHUPGpH^ zfEW7^q|w|{80M=Us9;YTJhVPg;(h#3-3Akc@#AGohZ3Og zdKrr94bBAM6F%|!!%v_|^DRP5?QHn7Vqa;eTo_!v&t=>;lbT)eB^sif*e!`7Hd3qtRKtxhE5&rNMXm9ecUjIN)=bTt?H_69FVg{kqlZ{U+1Yr~OovaNd@H!?hkVX1u(8y*m5PzfsIH=1~_CqnscuVp?}LRPR%@FC|5fEnaBdUUxH4N zl}B!;hjeEZfy~6j#1@D>dhF`7s+ZcA(8CGkvJ|_I*?$=`2!=v#zyfer-#F=TXfvo?6(MiaDGzT`}WLkM(|c%iqB{@ykR6> z1}nNg_hG|v7K^hd3aB2({Uc$=H&orhnXso(ui`PQ*r}u6KYJtgM%C`kH8-HOs7mE4 z^&ndADDd&ACp=p8J&3v5_nz8a;lf^j4cz>gIT+yWndCG-;J}rXk~;&VwA+xI-ntrj+g|OoloXphNwz>8Dt!Z%H)SWTXKiiG zwPprV=8l?e_S3XAK&)D9Y$j~+dzkRom)pm7olieMTae`7OB5IOz3R%RudjA<_aiu8 z_S2ww9c3-Cr_AcxWhZPElBBc?c|DhP}V#(TM zgI^VN8lk_J6lyy8)FmCXia@0I_DLA876tqSXlT6V;Ig6Kz_D4~QtBSPAlv4{pS{{h zP4m^rbis;|N&&q=Q8F^gS%-`k39TXP;CksJoNtaV&gB`sIXYG~4R{|s)zY~znb~5L zl>cp)1U3njrUOlyc0+5Mzd@4y-nw({`D!_fiMhk>Tlbxgw-+W~TOvC!B07@RjfCF~ zqjNeh!TcE?7#&Qlp>gSgGNuJi^s!C7hiZxYUKYWGa*mPb`|b-r`P>)a;t=V*|M<+? z2i>CfWjn5XzG<6})B)XBjMf}v?hE}&g%u&+TC~{Ho$4kciCiI>O?(g%sE`Vl$5kon z!sEgr*YZ5shrb3JED9Mm*pt}e#Vyj&kx_+72!WT`YXSmctWVOn9P;Dsm+PLMdsu+~ zD+{pVG_PA=Ij7M_B*#f|8- zO-Hn|1`=~mi$o?BUZ0<6eieOeA|_7)(jPLjdY^baNk~ZOv;%T&J9|)MGL7oC1kBRN zkd0=;N6goBVulK4hdmHy9(i7W{#!$3F;7y#On=@itWv^3 z%OroINo;B|6B=^seUVleY?p>&`04TJ4z`K6#^&ewywOgoq!sK%DmoxzVRVNN8ByfK!RtzHxD;xv(tjY8T0Pe>Tp1 zH^jT6>iLuMCtLH5Z8#!5<7f{J3qqS;fu%)NINLr_5gJDh$RmU1zZ@1%BsdZEQT3Q& z?Db8}Y}(4Fj8AQ4svQL?+oW}p90WMBuhr5%R^J{mNmgoi^r8 z-{(>)oc-sAXGjL0$QPLd5ZvWULVcUOPo~~77_sY|MHZFv4G93;N5MFH3Me4yc+p99 zTe6cDxp~-77qW9w4g_-@a<`zPr#$a1Bk(|IUy!`JJf<{5fEj!{SVsVg3FRu^A}}y? zQ9DfpY*8JRIB{otc}t71Zay-Y9LxEfr;W#-N#XF?k|QH|{Lm=F_t0Y3gX72Ui}XJ` zko(qzP^!FHB)5DXH1ca_fs6R%_nt7V$v`~g@0co3nw*H?vK!96Vn2Fo zca@9C`_|Tq0&5=HC?*{dAD(gxl36o$c8S4G6Wz1Xn3DwlhHcJyP(hIT&&v>#+e{Lua2|A!Tk z=8Un;pX`lzz?EGGHY}^qyG!1&tW>THvX}t~4sjUeSwJgU`NCoz9kOQVP_&!N=w7Ht z=#B1x7RTA4vEg^1x_&wXa;V~!D?JZVgFb=sTg}h~dMwwDZi#5VD7gjOR&Cf{fk2aW z!B~h5XnGqiKa@_DJjhfqpfN(<;4rT-H#b)E3T+%!QMk5U0dUC=A@iBRjE6I1JV1JG z&;ZPkWi4_nM{<^9DD#C7it}cNuEC;Suu2 z04ca;m|)P4{yxIZKVN{AarQ+b)#H9f#ew`MR)(GDA$=}3Bv^6C`QsO8%>)jJ3U*nt z#z^mJlKSENsg5>M$NcwjNIRoLuD4dW0T?(ak|Xc$w(Sk46EaqQE6)x+<3qUAGC0sM z#4Mmni;vl29yC6skE8|i`eWnVr3cvux^H^a?L<ec2VC`i5RVE3ap<>-fUH%Rm1Rz(f%i9JkT|3pRv zL!nllsPA*}xUGrP&{J<|_ma&=;@JiguNRHpKQhcBk}x{m^?+NX(HvLWZa-H2kjN$f zJqmWSQnl0ra3poo1UfqsT7lkmBXONtz%#SvC*OC0H^~z$)Nn0dhz>D1F3xtM$ScXG zfvNAQHOG!vKe`w*`S5}Le%W$C;$c~Tb0n&A2Nz~X9!!C)cH;px35A?KUwdb6E9H~ytD$+mB*IMbbWd( zB&CSxRrz0NvIU(l#|8wYYE$~H>}Rm`gP}Hi!BURSV`VfiT6+}~I10VMt6xiLU(ps$ zm*&|)I!s;*ioqTeY5;j3Aqp_+ob^Gk;h zGEcTWF1`g}T&a$uo3o|_= zUqU0;^K$e_Gwur+U6XjLFiNw<09T)(DjX+r$NSyiL6E!3)THWnMTO%BM?ZU?FN1_E zO{zihq_-U)Lc|_KQ@-PN`d&$Q*y56yP8=hTddfvHA`SV$9H(+S zzqDI4Dkznr1U#PyNao6oAkMtjO*}k}N}Ao+XEWXPYu8FYm3k;`<_C%XL~gBw)MR!~ zsK+I9&=5b1hBWy$WyKDGI&kJGPIJV!+p5d+kgs5pRmCTiRGBx6;PP7bV>O(}p|bmo zYE2FGcki?Mx8|a+WmARD*?@VzneOpm`^e#*;O(6d10E}bTG|3Cq=KkeUfT+QssJc( zC{?BP8KS)8j`+&Nlcb%Km`7-;uKvtu`Z7^}#;l=wHAg}vY{x)*U@gl)t(?I78@>kbp& zJsz(Gzvx}d+e!LqwIq& zQ44aTQ%E>63>1@dbC6y16}(D|JRG~hq5pn$#s>x>W#Nn$t^)se_wM(C=6}es_Kipl zI+aSHxZ_e3m4MJcTc>r1vcj^6s} zv^cV;akvUJ5lTOe>nevSzJe4kv+EcO%`xdk70DJr*U>ui-Nh-hukvYm3y3uZ&{DS1`Z0F)JaQ?m>nUnLfDx9BW&xw*RN^Y>N zyL&IQ)6q^P+9|63RDH)_d)?9cz5t(NqE*ba5>!m^aS`HBiH;$YqwJcto; z8A3KF6^0Sy`0KCGh~iVxx-A?c7kD((*|f8ubD|B1DJ?4p5!P?yTGJID*gG zV)iMIexS6aWamM=GK(hk7+jcNRc6u9kq9N8TVu2<%B&=qK6*JvnIV4$dkiVFKlF21 z1t);MR+tD{o;^S&*NuZM6IBb~>}H?&Fet&DFCYym$4`hIKWz`YBPV@0axZz37|?#2 zd@`5l0#q6c9s~ENpL!)&#okBWrX)*+hzJ&d9panU^DN@NJ9|>z^WJQ#4#_=lI))%2 z?LMkTo_FnIW8|5Gr>R-xn{y+#Ps(nz0Ee1Glfck}2ae+rVl~m*r<&9)s}(xP!R_as z30y{O3g4`##=e{Xz^s(zxtinCA8s8$4yEI}A)SWBmMcWtUz(4@nDtWNNqaM!5(dR% zJ~wYRYucFv+kbogu=sAIDzJi_VK6?Wc7h@$mibhUyYQ>0*~@1aBHTkIqIsjtKd#$y zR7O5%+*UotPH{)OCqT&tW_Z*p{%C9RKnFaPD5`t zHPng25ExImGzs=ZP9=q_>d!)zEVpasqF?vE19=leOCEa z;%x|8PkLN!Ei}%%rIXPe1Ge~3x=aF_QJeuxwhR&a2o&U81ee;wla`1S+dxPk@c0VO zNRf_jzL}5hhf#9OdEn>=!X%=PN2SPmafZbD-_&21F1~?6&YX*QznsnUWN53g+Z}XG zyt3Y+eQVPvWWWnJie&SIv?#Z11_vp4=J`ofi=E+Y_STM!1wF=a?&=;kkL%4 zcS1x=R4XgV?m-H8Ub@Rv%&G*PCBr!8~E-p;zzPz*bOUEY>q)Nf?ZgUxR2!t%VIrP^8JZM-f68vC{kkQpH zu={(FcTMxe*g+U2jqLvHnI=NQ$jW0&XzI!2bB3%#{~q5#pirDGp|& z3jFLoS|Vu3E1CP|S9q_+aWYk`Yd6II#IPB%-blOL3CYk`2NE)AL^Y%_DTOXh-@L=_ zp{UuH1AYJG6wA%cGrZuizCA4!U2QXy+H0loWbz0{#n2x>n6_RY#rlPo4ZJ)Qa*o}xmE{iLHg z4)HYCzYAL!k5-@GU>T@I78n)ixr0B7Blm^66$t$@(u2X2C_GV^87caxKe+!Ws zf`yZUigeRlvUN7RmBaIw6&>u<* zq9P1Sova4Lg6L7PjHOdkDopz2SU?^&&#`+$L~bhlaxPPhCvBA5#8ZA&NpOXbaBW8Qe3#8KvgQwqI7JDpVu2FHxHPwb*Y4EQ4<9g`F56I2Mp=k;NA|b6 zt6gQK;6;NvlY4Z%*K3f2Cl%Ha!0CB+bsea@UV60pXgqikm6~DX(lb|BhoJlf8dKd0 zc-~a@j^z*Qh+|Gh`d-hG&K)SYIq(5w=!2om&Vm~0+}zwQU|09wrC#aL@IHAMnSV+q ze8Z63g*go%=a=1BPdL(YBn9=v-yYq*6(-84s-kxPsN<+->II-VnN8@>p7j$t#;u&@ zDl5Z1B3k^qdvU9h#x(^^KM+evz-zMWH<6#;HwV7{Z4ge8R)>5Xv3ma_)~3eb%JvBk zEkN(K#DXt?of{(x?%Uqp-e=#BQk*5cA6n4C(Z&3;z4}y9@?CcWR!Dt9g9(_cNKi$Q z0_-EMI9BdgI{q?WB_l)mb0`7EXONe8(;;xW=$n~A^@ro(U7*6*fRjpG^9Wd{{)a8~ zh_6Jk!@GW)G?$E$=343kgrP2Q8w)VC!NK@?V+wqtz%78+&U?N_zfLQ`@2LNPIcg37 z7HdI8$q4Z5tHaqnG$GfsDj0K6=HfMIrM%=9Ts{~+@HhLvel9Ti6v!yoQSZDnW(X+C z$jtN~Sf)Hk>SWnRXn5N%DFyK6Sw<16xrAVXQWu0WcQ?pH2V02m1dHu$QQTktB7H*^t9zJ)WIslJSmt zveRi11uQQ@2+d50WMB^lSBmru`*q64R$hmB2nMv&1!`>ZA=UFiLY%Gd-^cO!N(1=+ z59$ekNZ%d{IXioh8TGvyA6<*^Mano@6s8U2^!0c#!5fAs0u^8mVUyB0YbAE zKl45b&H_7>k^Kce<7@T><@{ZOF?&2l)V#ZwZ~hNFSB|e1X5NM~u4YpF$r101T!(l0 z)X)^p)y@6a#t;B#>ujg4mnGc9hK9&(Jsm;?YESESc$j6mYyt@kBO*NZoKjdppDQMT z-KSO-_*;CncS=mIaB1fS{p3R)J(ukuc+BUS#Nl6eX1uT=xV=t$tAze;r> zL=l&@7EUxo^iQA;L<75)Slu!ps1cHFjF2WHChOD}HEB%)2DSlDtOy1s_{nmKa6Da2 zZ>s*lebC9_1Q8jf4l5D_axF?NZ@++_i1&)?>5WXyf62reMCIU%dnqbwbid)D2z_*q_I*({<)$z0b z8?hmD9W|pQHjsu7cE`slz-(4VY_aplWfQt_hh!3htqdx3a<}OJoojb>o%r#ZFG&bT zsLumWlCUdBNGcU2Utqf&3Umjv8+phTcs2kO;z3RL7@M8_*MUe4NZr@`R<@dV9SZQ0qk0s#H3`(as@;ma&>#hCYa3g8r&;?#jLh(0lFVG#ePQ$ry%*QQS(mZKr006a_ z7>KSdl@Hy+9~(UeH(F>{-`UwWa`jK8nM>qUjutO8a8Z#!S`%oPN|=M(0}kz$hA-*D z5WR)jVahr(?Vx_)T#4rAF$yIHbSTY<@XRkSe(N&GKrVxX%(p-Q#(*_tiDB=ckffE! z<+#iN&o^)0G@VYd{mZ+Vyma8nC2MgR2m29UrJd~Foi^&0M7o{%WkZZykkdy+P>Qe$ zz^&DZ1u_ADnNHzd6G31AySnSL{c`05tcDGvVaUF#Kl~yokHD!aH$qCt5fPD#-#)+Q zOm!qD;PC3>1P+M5@I);3Y$Ko2%5Jf$NOe7#P5cT_@5K`}zO_Vg0Q{^9D^tV(nAb<0 z58KtZAubdq3*3F~k9aWPz|SxJ@fQ}*gYVov{HGC{M)y#aKRQRs=;5&Cy@qGXw4`Z&I)xUb|kzGh}=6{{&tkQNaw z6+{Dx>I%D5rqE7~BJ7F_*nz$zqy6dS-5XnOe0{O&ul(~J6^p%RA$YojwhJP?b{T+z z$br7qihZ-(^g4fM9rj@&BglH)iA7bw8qAMn?*|&etzMjK!%Y1XZ2dR=?R0v9*VT5c z0&^L+q;R8BO;BWdCq^z>(c~x;Sz&Nni9yf0INX+fLvHG>vZwMnOZajl@f#=z@E5h4 z6n90MCfPk0e7t(tt1n(T5cmZ~o#qvUg{b<2rLuJM((qF`kEoz?Iz>F3=71GanbPEN zibXQ(q56QfFD{z&DTP>lKHUE-40w;C0kibe1T9fiRI~DyUtfrm0!3V@4y5M4^5!-{ zO@>TiBu#VX8a3==4ymjtp+}NCkP?akoI6#RY>4|5zy@z8TTgae`&3aa&EHRLo4@eY ziygP~wAj@qc=3f}2n5T+=kpJo=A`Bc=FvGR86uK?pvmkZY=`BHHsnh?>L_e}jE=5$ z4UtQjMX!7-2}>aBpE~9vKmxTFB!7+o`&=Ah@PQ9MY6?EiDKmY}O`11N?XQO>glZ+ExvNfVR1wMzaSI?0CX!Cb z)fBP1N@-|%?89i^A(H0axfk~y;OKP%TfC*k++BynWO+80HsR$MIUDFp;~q!%c!i4rd4c`GlR94Kf=UpX#pemj#Xedq4w(s zto|AM8WeHzS+#C2nlngF6Eb$o(S(+afqH?|Ai$Ehs?1V>RDE%UO^uBTytkkTS1CTJ zgHgfa{;dG*^d^4)!&$xAgrK_xET>%|?4PLt6_ zdHruIYOqrd(NumiSBn+=vC0P8~g{q;M9Ox z>Q}{vZ#NY)>&yB*+JV|d2yX2ipfYosYQEjc^fv^4Lew`g10EY%2bR&#ue~GSpO^wi z5CJbRodE0WXR3+CLq6Aa?yn=&nJ@%FF+p#8wyUY$IC;C7eAkP_)Q;w8xs$22;>3fo zqDcxWv$1bdd;TfuI8h?70KsAjF1ezot&Ppd{nyXUbV+%U-XA=te_UJIeT>rvou}si z5}`|0upl){&-#*3XX%LKDM#lUK-DZKp&Hd| zB;in{j)t0=BT6Y#-6O42^+tl-wR3juWJ^edt=Kp|wM!xCtx}mXH(^WFpg^<)U#tEc zO9JsIVhh`_8K2i;{#0P&aC@D+)n~*~%^m0Zq(>9+w?Uiws1J-m%{i&p=(*QtF~ zDaXI-QS1=3l_FUT`Sep1G%W+ePt44~`%kdgBFCGU^g@XQqy=~$@N#^06k_hZBi7X& zNsY>ag7{I!cwXKL=-bqhci_w*x4OUdckvg+larIaX({?pyeo%;vwGpW2{bVKVtrlT zHdLv^a|w%;9-F*b=5_ZPNHnJP&ndfK7w@$77CfoXZlrgs#e(Y>YFe!qkqX6ey#p<( z+(EXU@4XmWo{|b=V-CM49=ASi%h}P%C{?h7gHWodT@KiFin-whhG^b}9F!1dWnoGj zWD=L>VGc*rM`_7MnlEvQ1WuVZA7 z*r7H9{ZI&~`{PA5i%e4UaQ_argvLN4L23TsN<~$<8YAPrwBiO5+v@7sbX5auWkUDF zA{mggZfv~^j>I!ZA}@nvA4fPQPqdDBQ;24Z{Fe+mI5&!O+PHcOJL`@k<}G73ikjLC zy~II#_Do#0jWWU4DDJe$__DiTPL7FvG2gc_uwhK@WmLB3e=CJFkIzSp%@l=qHE;PtjY-w$L^~gn;jOPU&Qot6O#vho$76jan@Yr zxN{H@tu=*O@|SnFOH6XAD+^kHs^+y73u%qWR~wev2Ngo)l2Z8GmFIh9VsJW&O}a4U zT_6l2sClPawLFgAD1Ka8|Mp=;+v?TYk|lyhBq(zpEAFDnmhBo}6{D%s7$0BwNU)K1 zEzzm%lpH$)!*W*_vmaG1}3xO4T)%3f9W|nsM(Y8)BPk9SEF&aM4IzZm7-0J{GIw zm6F`A^7YxUX~Pk0+19g3$DcOK)`eA1s{Yd@|3Z?mxIpBr4~Pv2Pk$_uFO$V{ikOd@ zXuTnGtx`D;F~z(^oZe*~N>~)VBJQBMzoziSlglN(Z(rh{hgN`T6*bSQw{c<1 z^3%IJ+Y#QpQC$$N~hqTpdZ7MXK%=;d9*!s@sb<3v4SokUjHh!@qE=7R-kXqqLTySJ4o;_pskvH^D z?P*;2o)i6%G|WnIq&s@oV%|(l(&;;k7skq>r(a!@RaqkkTF-p_N8OZgJ}> znyhLe=urP@BJxrRJfD9mUgh~{{z>qrt8zZ`_Q5G0n7k0tnE19^?Jj-aYQov_K`r;8 z$}Z5t_SHwz=C6Svw8)`&5T*F|()u4V(|nrL!I|$5J#6sK(4Rg^IPEpqU28v|qq+KYJB7o|m>*o>|5@dK*S-8p11gnk`XqHU6#U+_ z%~0+C%pU_aCd3r%WpVp{z`Fl+*(-5ugGIa|nig)G33XN4NU_Ii5sUTf@trb0S|rA-vfu4#p=AN(rvg28tQ;QBV$aXV8_%s#R~P>MW- zO)TH|I~T6wSM(B*e6{P@x|}`##UC~{a4}tY(=;5abK85OXKZzOaZr~&hj z868G#6_Lso!%Gg1qIMAvPlzpj!~zk&Qx4E?PjkC7KI zZZr-UUW@h1ySlm-d6d`3ci;Bz9dO?gdb})q&=CwUitBA}Y5`||6Z8n9tjKl=B+d$K zet97yg{8Vb$aqqEk&8z~>Z-#sJ%R)G0yuCz6bx$7umt^&l0j>*f#l0wH7sxHR7+@M z;5^gfF*-OIujI>_H(dyi{`!NM<3uRmo_LeXCKJLaU#uburMR#)>wB)`u5UtJ7)B4I zt%27I1Y>4iaEHjU$h4S8^6S7a@=~}RniM1R2E{%%E8Ha%yDzXR%`bnjn)`$G=4!1j zJ&o}E_whanLpewpZr!Y(Rz*6UyWjEv?;bn~%3Q#PZr=>GuPSdHudT8fCJCTDmDtm_ zY9ir;mk8W!R3QKb&)8Nv4{5wh*-pW37Jml438)5gvfanKY0ONM_btH}W-_GN`ah>X z@h-k8hknd(VqR`jy+WTHqoP=~=+a?0cd96wZAs=dc`trK#tvuOsb#yAH`FJ8>cpv8 z0=ePPFu0(U*lViwpk|Dnrs0W~+XHb^OgH?_ueEnOatod!kFPLr5e>`or_r45{$NgcQ@+NAWF*Us^N-~3ortfO+$7VnyunZf4>hbylPxLAx!Xw%RsLVlx!DxD$N zU#}c$qr(M3-u+9Ub>;Aq=0J^`3+Ko4HhLdZ;Y}AWVB!Bv-0NJlhDgP6ovv?BQ%RuD zs9_A>p_^f5KR8o&mE-3pxH;%h5Ttgltz81(vy5F={y}F=h(}RAdkhY?YcBI-G>YP?$Cq}G z5nQh-D*3K|V0VA0VK?rpjEUimLI-sTlcg?p*zT>AWHFkY46If1qAs68)eLIV>r{=h z-R|L~bpor`O|Y@8pF;~vqv1_)EBR>xLEsQcRYYT=M| z|Cuav1;O?|bQ)axo-4D=^y$F{wST$XR=;x|0+1|^z;EkCij`e^>Z6zBa3cLlX(azFK$(nm==P0uW)6ji3zJ=#uTRBQ^BiS($ZYORM} z1pv6*8M?#q%dD6C^C7^OiHX47dw}rOzmNnoc&jvpm(qL6KifRIG`Hz0T*q11o``)UdsFyktTV(>VoGg>bE<7NTR}s7D!XUyO^>xqPPYTH zzkUflObT(^MdiVT_bXjOn6AN=8jkpf&j5WiP(bM1>jw5qrJqtG%l=2-eOVFjUq`K+ zrhlP*#@pL_UBc^6zk4?U6^a%~r&ArGSGJE~LOp)vkNCaFfp4@>9oWj`rGjmB{@B~A z&*E1Zkf5Z4Udbc8Hj{Sqn+}8mzg+vu`*8}`)|$6vQ=hIBf4Wj~boKVdBp#2INoIb17Ih0*r?us!fs@;9;QUrJGAD52=R5}r)$;Hn29`CX~ zP1vn0C~lJB5_cP*LI2r^$50f{3^dRGmP8ET!9N){#&}qdiVV@ zvns7wQ?FmY-n+Gh;KRb)ge8*-amF10v60T-zjrw;anL;w7UCrZTQr^&!*kz%@g>4K z(FINs2R+)mo9FfU`f^_H5pTlV+sT z*k7KUn$XqeH=iNira#^@w|)EeaCtWBvo910XC?~*LNY;jM<1hezsZy7q z0@;t1gft+%=bY|@sOj&{ViPQtkzz&sVyWQ2a)YX;jc9nP^mQLYxji$IrtfIPK!ahj zBpRD9_RYRXjaM&LG43arENPjyTWji}p^U3Vwj{DKm+r;rp_jc694Fh(BbjuC4FF>f zfVq{Li983g5D1lwQ8WC7=k#aboG7Z@L)gz*X)q_UeJ^Kz08*NswxOe^uP}YV2ExB+ z4Sa3G9Ww*?`hJLs`^%(0USVN`$NznC(>eSU;cH%@pv>5cRvMRrs5J2`2K2_kFC;-v z_QN|b0kh`0C3Ruj%JvBR{MUv5nGawLl0&P-pdGv-BJ>qs_>9L<{kq9|^!ZD+OCmzkfNa z1Aty$e)i7N*qmpy%Gnl|{R0DIXRr(uA^04xXVlO3op6m=$px5qF}Zkg?_==;GJo3& zOdmQ8TZsRW zTe+F=)W0sU$H+Ngs*j=A+LB|3iYy3=F@Z2^M(O2Id-%wk4e&-)l+4~_sY?In1Z=tdDI7iX`zI_b$M!p@@kE0zU9#Hq5~ai&GFF;HE&dME z```g94~Ad5Ri7}yn=Z)$%6XeyfDqa$SbyI8(qZ_c_`)v;8LHPQ4xNFs`Ne{ck+E9(AsfM#X5vA~Ggo_2 zuRSF?DKI8cy+3(_u^I@aA|kk^b?#C43y7I`*1&PE#i_erK(_ODplRA_ikR{lu;8)Ayw3Io1>GeR)< z{wF>Nn!@DP_p8*X0r{2_*4EXur zR*vj2(nwTJnXITrG6*n40@=IOsCWk5oK5}sk31~8St#X#{d!&J_ zEbmtr`yuDq-)5c9idTjO3H-G|9Uh$Ibdx6=gCW%%qySG%d-@@Gkrhfmu=CaXtC}?r zO6}5)mvJx$g}|k%iE0jLD}U&IFS3@15lQ_eoE*~U;zs+&ppG?T@70bVxAY$tj`qO(zCu#vsj%wM-1j~CoJh!(K79C)vJh_~$RI{8j~Fio6>}u8>>zj}e)o;%`v4>% zn$HMs8XRJ9O~LmJPvC^Kg^wNEqaUB5F61<)QjH=QYTyP23r3K+-M<1 zAK;iaTrs=6ax&OA=-e#F6v5Is^$MjXB>=)@m|jL{@$MXekN0RmhKMnz{7n*rl@3dl z%sg|IaMqjP-HaZIAm*=o*8Kx3#=s_6IAoop@Ct+oI;b_(?1cM&bD`}F&|CL1Q()y- zFlXQg#*`Z|s1U*uW%@S3;i+ZvAub>Wu`mvcsiD>Q+^>&Q7EpLe%q^Wa6=bw0x6F_9 z4;!s>mGI*l>YrmqZmm$*#8`ur9WXA;2wdA;G16Os-pYdh{e@a`>}jVaEiS(jP%^lE z`N5U7yf-W{fS1d^c6~i;;SCD?scu)!x4ote<&KRXz;bHR6vB%DvI9Uw&#u4cAUyi( zi_aL`+pvlAl9IP&V;uk%psBYybMCzO9O0Sow-ADrB0`O zmKa6@V6_OUWmu+}Utchx8n(2VNYr=)eq`z~W#WA}av z?wpl2Jwdd78?|z}p~4-l`UeaY+fAN6hwasFfK?u2QX?eVt$yO?gR+9~NV1226oIAm zdH^kJ`Fo_CH7PQOf!{B=@j+*KI5Uy0Xi>E&mpx9l?5`Zt7&xY0#FkaNTpu}4ud(k7 zflp!1*_jy=uK@MeXarkBhPbI=AR)mYha9ByGF;{Kpne*pnQUW9 z*2ep3s(E>Nw~9yB-RuG81h4%JjEKicH2rU}!Ez|L&?%TTvR*mfqllHJ#I0+Ui`a7f z!Gi~G;o;$H6)xd@*5|ch>Msm`q*ibtrPE6~&xZDel#bLo(rW~e{N@7N1UIT#@)49N zrX#SIcYR{td>VE|W$js8^7*~tIzUks?Z#MzJ&x6m%m)wV=DGLb4}%--z0vp7;WsZ| z0U!qXM?LBcW>F9V4+rQt&vQI~=d?6EF@>9(TS-exOOcTr`rGrp$rfKKcmxF%6z)SY zL{0?Cqq>CPW+!?9HKSQV_}^Uk!;Q7y36!~F5$1J3*Q!Q^EUUh{drApM;U(kewZDJ+ zqTnHgX9o?1MDcj7f6eX$c|}Rs^@=^KX%?{svwS-DloIjZ(OiKW;MRyK z!mX#s6J{~h@SAFQ!Un~F?Q&df9$N8Zd!ek(*7-{H2~S5>`dzy=>+0$T#3>;4y*Cpx zG~{x19=M{TpANol{8=aw;tAJd#U}^-31+uHko-VVOoy=r#1uxy>C~23vV}HTs1|M# zBlTd{jvb_5D?u(}pO9tcCqE0xG=t4>zyuF-9mkFp{f_{Xe_zbgnBUSVEKMNzzLRBu zid@KS3#D;yxldoMt&5Z}0A_(pCNkybFdi@o25cY)=ZiXJm>0v(2Z-;7mLIDsM!eil`|$CMC|sr+p*cEyi|OHq?yQ~PA-a7h&wqK>i|^4ubvL} z5wI|Py=vcWk>6~Fzj*9B<-?apSn0Xd_k^u>5vckf4>_0?afB8MEG_Zmr7seo~Z3)qfnBeF( z#ArFEGt55{$R8poh2*txciN2N^AxI^D-60x!?#>BVg_L;QBFlW4b(ii*lPtnuFRn%!{|+TEC zn95I0uUty1Hsuf2(4$~@!y@+dJ0494rQY_%PUVAE0}5(ur97lxm&NR zpWReHaDFj=_o8FyeCPX83nQJ}i)9FVFbP0M`~(lf@0L=B{IYRcu>`;DMsUEg()nYK zoG8Ik8|c8vTQPlTD&Ab1hp%$|*`-VX@4qg*e1XTR&dZ{tNIW*6wRo*vd!mFw-~@zU zt;8_N$?W%-k!_Au0YKbeZQ{K02!Vc=F3y7S&XeF6vz&{=go>Dy(wcbb{gObpMqiOuh%L6Lx2^t7B~TU z?IpDprC&uelgIjEHvkX+U6U}{po z^UxZPz&~0e|2mPM&>OoKI0H?1<>ZRnpd4D1>J-eVl($>a+YWrrhwiA+x?R#u12(+e z+sczMnM5AY6LH|?^>@;YL-#afE@&>vK0$;Hf2~sc4>sTxTBdrU`tZEVmA(r7RCSeB zxm0JErigg;g^#q*EvioQOqpb!0DPp72U&}oqges!ZveKI$OIXtQr!ea7P}UH*qpW2 zH;ML+8y^Xo3uy>wRkBC&Q(JnRM zVr{ZKn;=7X51zH)z@=FmPT2SFE(`$sqZ+vz2^#5bkOx#0k~kl89SUmc4P?Zm8=Bb2 zw=?lPD6*h%A|-do2-okjn{YheJw ziULZyu8K;HG)O2au1W|Z2#ACN(%s=K5(A@_&S)r6^#yeHmvK{JdHTbUp95KrG(Owu%B?cig2Xec z=jJ(BVK&U}Uq<1MBG1i}ODvx~H*2=nV1U^0Ghg9EHT7w~vXeJ+)i!nAbscZhr4@I@ z==ZO>L&sq{1esQK^N$t}OswzUzOzZW=k86w1+b?m4=zyI4Vq|MO~|TcBhFino-zKhG?;akZb0urL)=1%?2SU$`F00)0VY)wWo{|Nj1DMzutqLd1 z!$nZxa>FWrTky@f-1t}>x^?8_TX=Q9O3;Nj#^&bS1^3p1%m1ewBH3GO9r} zNqT{BpG)Em{_I1_LuXZ3opZ~}7SdJUWWo``gslfRt$XV3H7gcHDYpMipin==5J1_D z$#cmB(R=oZdVm9OYkh3|M9>6c5w8GF>TZp-N~lbxY_(1_}^}cg(#D0 zA6&fOczt_Qt9=SUCFuYd|D`;p8v{3VG$)|o3c*YVL#(Wdp+G_iAT5;TI4JpbC01tLT?p%^r^q3Uz6={*IK=?MEWNANKse+i`z zHQZ8H<0D&tnF#>(vmpOuyr=#mh{5=_g<_`#iB(A;y{{3oS0wpyg`|_0MKlk{!V|}5 zQ%ryNZ9A1DD3$YRzsx+gABV$na&te3m25`Ej?~O}v5eTQwH%0BA2x*woVR=c>z8x0 zWD>zNA&C8#4=j+fr~a(jAaSinSQVs|gYP!AogCgA{1^Zb+ce}M;TF3NzuU^9*wy%h zPAeiSbvFoqshZq_Umit}P0DG0YzyVkjT1)rT!1y*u@=|cTBmH6rtuNda(HCI;jBQe zNTXV6DP zRJsAOTPgb^SDg}17vV~ryonmQ?pIS__N?4ae|)UMe7nMHwto|ICr_V&lf$jOf*rH&;*5Vf&$F?3`MD_Q%f9IyOWg|C#~SoOK&pvfp; z?d;t3;N&$0?}$&vqh=JoPDcT#U8nC8w)hVou-RzPcbiWT=IqK2aG^bBmXza=nOE20 zqZQl_U->9Qq)2haS;qp=Rw(UCgRS$L;^y$L?r5g#%{Gxa9AJHQ=`f!BMTQn+H7_ZB znGSHva$fBMrw_z)IosO9kvA?2w$)H*%&V3A)lZ~E48QgHd zNolFm7kL4q%opa>;P2hw1I7N04z=f1DZk2^dj*@dRPu-c-fsNAxU+GI4UAD+Fsp&Y zZF(BrXtJf({D-<)Zwd-dvOGLniAEUo9!9fC^tTjzeD*8(TbqV;>)*nX9%wka3BNSk zAnvI+v#*lwH{cXVd;0J<>;lYGZ)&O~(rqpN+@DoQn4nef~^ zunlQ?`-TPJUj}mcGzkQ-G2n3(e9wYRmJ5Ogfj?*sedXollorm!EB_ z3}y86NGS*1PC*-o5uT@ht9$T^R>gwcptHgSJUsZ$ib+E!?ecUXjd|rb9ELec>AQ|X zn0H{SC_a#C`5Y9)|IwGy_W?49I63^25NS2qO=2d{q({wQ_DIr&Tw}0Z9im@rz*lFW zI+HWhFdX^B7a&|SS(Ug zZ2FGSzB_vY+-{q^cj{Ah5d@JEY? z9|UoN*ovH+qD;g@SFP(pPz$x7i6O!m<1x%Sh_RJr1tC zu=tQ~B22SC!UrSXi+{steoxo;{zb>{@xiLCPQa>anT7nnQYY`t3F7PWv2n@($#x5x zr!owvM%Sf%@N34`PYE7J{FeTF&aQqkffD=O(!vPAoBrF-A8AENC?z37dQBJ_n#x4! zHDbS`Eme8l?pNNrOxV7wg0(v7ZvbdeeaY_FJ%(+x+i$f6L)I&be;JQIK)Rn1opD?0 zlYTM&A8U>3(>e5nYsha{Tgc6Lv2u;mMbo`?MLNG8_UB#5yp~HVhZxb3CJ5?>{c=il zop5u`O?7WINvJ+E+@!m~6@opUUS7SHIlL=XUS-g@FWv56xd=8UAn{7}dWlap5(`3Z zB(A-pqX@unA1~z7$f&^_ujlKihlS&GgNsMVFI%k!)wPAB zQ8ys&1U__iLuEZp7*szhT++h|u4tB=jBm;cFxuYFYue=N9@@TPG1Z&-c&$$?#* z=bvAA2e))Cq~LD2oIuKDg;zW2#9qSBfAA1=9j5Y8I2l1i-?+mxoZjd`$8w4a>} zTWV33!Y7lYIIs&^v%}8AB^9u>dLy@01*gl6RpFW zt9Rh$s#p*+tzNO-)dAA6L0}*XS1K=LfRbBRQ#8B94$h8?E{~5P2>#kQpnNh0oP3I; z10K^7?-g?9!>v5W5|euh6aW z<^_-lsV%Vj&7cqUD@p(tXUk56!@0;#N*mUZFJ%R58SXdzvwiU#3~(PuiedctWw=3h zgDoOmx(8J1N4oa zHp>OCIW`KSOB7|f-Z;`hNTumO%1WFtM+p1^ETnb$6B(?iOG0hfo9Zu2+kcjja1Q~d z&Iu=NSnGjU6*{EraU#P2Oe$UZXs;MEA57A#8=-g6*`^22S3>9;Poka2$&>kNR zmT-_6ytaHe6E2U~OxWCE9hYGW?R0+OY0yDw%2zPmgk>RtzVi2P|6uI^Wn_E}^|08V z9f;TuAaeJO)ca58jsa!44G;nx%mZ@i-H7YWEjqPbP#-8O)PdJ+U~46!T^1Qi0wqY zRo1{;#e_H)-#LYSItG*y53_+6j7uFzG0A}DLABxRGUByi1P%yFhptf^qIziPWh^*Z zb$Cgbs^ZkK{0iV>QaaoXq->|Gf!8OGX|ak)o(z%tK5FMe=^{T8+OOj8_mIr%GMsw} zx%ju9hF)C1kpyf2{xND6v}e|;yPDZw*4*p_Hd+Qm#}3SYe780;S_c`n(PWRg028d` z7NOxJIm8Q<53~r)Nh!1e=^%I~$S9>mfmF$Ue-OYj_Z%F`+ju~!4^r_Sws`Q9H!uUOQ^QH18 zd+B3b3aU2O>+Z>hU)(y)W7pM`G1KLdUt3#ST4`GwMdozsGEA79#`&D65czWir>@F8ynz&v5~bma=mzUOvJn%-5$)%` z*mA7{j-PieUhfe${SQ^j2&j~m$Op3x?6?ogI*=5I-y`!P>Ic{516%zqu8L!c>=Qf+ zILsR>pa#5nLI%a}Hs~U{u{v%{Bek=|K|kXYi2r!tkWNK5JR9mw3D=)Z1;+1*X6nfJ z@b9@iK)$GdXQ{M@Dj$m=Q0f{HO`D(N+(-G2jE`Zyd4L=oWe)Vk93wWzfg zBPzyscOL^GiDC&gj=I3wt}A^orsb0m$xlqSwOW!?1Sq<4ibTKx7H-LoP5;u{{JGQy z$X)U$DozTm%P--`$uyN~RguoTZsft1^72-2Z+e}fuR+RI6pJy@AFg3pA)GI>lhZKB z9c$@WvfS^Jd=E{EG~$fhBUJ@IxR>1QU~*_n=n~}s6ERd9aerC_7|&fby@gZmD`eqQ zS-xYi%OG?5Z=P05yu=8A#aw!vDlvW2y8I~1(^nuH7NU@x9#<|aZ z)DCnQcw|J)iP*r7q}CPA1prT)n;VlOzx_ftlaVdemCUwL;0D~zVb@f0n6I*Mx~t5p z>iN`d3!}77S5iZ#)b*~2e3&0nHh_wCh!QAhvfk}}1$*&`up{Wlfq?~JDrab)t52A!Q@1G_byl;FqbuA#{0*yU}l z*)w!->I0C#Mht3lrwymHXt@@dEYHO*3mW+(TwuYtGU!ztr(W-hqtKxcnRzc53DeGj zXz$3$yUXt4Ml%|+Ml38u0|!SRBL-4^Fm*_U8QbxpFtn?`n(iMuMw|YHba26EC~*mP z1k~c|!aZNi2`sbu!8VUNrLD9gAV%uI;~lFcLK0{Q^xmAujhAvpqbxt;1WwHdFXQSsi@4;6fJp19ke7A-g z4s0!px@oX{i;`nAKfM!Zxcw{_6y1xFJ|o*2-#pQUe9_Wb)y#FK;A@r__2z3w7Kq_M zyMFG84X%jUtmo0Y*#O$3$KK!EFkqqu*j}K%o{duI=hV7mdZ@VoA z{tb3B^}=tBcs3Mf6y@FM`{?Z3bB|cJ;%-Wc5=HF3(V<7+0LgC`U91t6H<(K6_98{> zQ|Ep|eM6Hp<^HPQ}*++jk$K^Xjfagv;D(hk2xvO)s zNTWu$u3j51PG-FVW;nxZev4fyqdXY~BhTCzBQ{QGiQ>Wvnw6BBG>3g$NXU#}Ys7)T z@m`smYB8daV6?ebmqtr{_gU4)KG;QE;TYJ&zb)BOMuysyx@#G&ylA6&`L#U@*e?Epl($Ry1~v%(iU0fb)9hKSooDHBv$@$WCmZ?ux#H z=#?Ui3OY3P@*hMG#aou1SnnEZTNjy^+@RW0od6W2Dxg6aPGnv;oxAODd+~{5m!umm z>}``~S4BHmS#F4Q39&GlODIy<<)DDne4l~Pl6rY7}{6|(p|Agf(^r034J%@GLm!uK#4X`}mzb~cT( zDTY&FUO&E&x)a)tY5luN>ZQfhF%U>qdt6~B@UZ$d9B%K0jpP`oTZ(9!(S4(0UNy55 z=cDNrz9$jF^~PX6B(>6g4uyPcH{OAqTE)`r7JMX)8M!|nWIV<-Lxp!ca}QK_AA(QL zCyQf{;fS(k4>ZRG{Q>6-U0aY9WGcEM7F2_1y8P>yYrONbGsU8eO9Qb>y1mK(PlqE( zwZ7kCFC7x3Lff+6l}w; zOuG^=MSx?B0v+uo+V88+agb~KnVhbhK_+VFu2}2B(rH7W6Aa7pdR9SOYhR|PN@dw* z(J%(I(@CLwkmaa1noz<%UT-s5r{H#9N-$iv6kW&S;B={&2e8F+!+bxv!Ukc%@u*2~ zqkrcHdl+S>P>RwE&p+|=qt}sKNvXxYMvjK;&7{#mmvhHJk5J&kvYIMxyzsyD>Ozcv zA5ufOu$(4ovWr=8HSnLk1oqRB)Og`fZ}xSP8(E7B^&}me%IH`$M9ijIMKCG#?FEfG zpFr4w!vM%+ z0bT*2)`D4vEl#&Cf-*-7_Mg-WT>_{pClU~qSV(p@UcePA7)*3|aBK&)rKaqg1NZN| zmiDQX2&;Br26dy7;#cprLqbE5yd8GGO@r>v1l`Cq8+ZYSr{NBwYEdVz z4*Z9{R&O&mk&S{NQRX{Di>z30Y~DbzrOw|UgFGWWv{`*z| zRg%NTFl2d3sNM+*gsa73EqkL91oHLLhJi*3xN%l925*YRfRRySWRwWz^7|SvvS;JK zVopw;wWezsYT4FZ5;$9`od>6wAeZ!ub@`{wQsrBZIcsv7>gecb-MZPy!~*>A*>P_V z_$HMirceQUpuvsU)6q|o|8X56D?gFBAE$S9Udg?);8NgS-ewk*L6|ua$`NgQeJ`BD z_ou-EQ{oAPf=UL=Pf)#>BViPmhdt8?%Ayziv*x_ED6fcq)o&)OTmfk`lxO6b9cApG z5Gul+k2b7X(gNjZ+rgi=CDPZPFM|Vmy#-tbF7d-UaItR1Wr65(WcTvKKAF7) zy>(!9j?lQCaL1G}S zU=;ZX&(ksF33liE%W>SdgUqVkMtf!|HAi?f9qfOLwAo(YNJDa!Gr42Hg0~&H?McS%_lz#)6kEc z{4|uCkDW@q*$J03YQ)YPaTu|f8-IFxFjamQeAJAHG%~_!1UyKTPMdul1<7eeCTr!? zfju(jsT~}nWXLL0=1DoKm^(&s7892Wti4GmF6|!2QrI&Czci10H zF9IC}3w-x4_gr1t|DdGDb+lNS4XDD4p9HeO6M~;;tJ(~(KDvs|CyGWk zpUCLULiE0!^0Bt^)-dSE-r2zA*}yn(36$E$*4$M03$kQFXQ+E$qW?jX21g(sFUw4T zE$T*-)qhG}ZVT-aHl$6Nl>+FS$124s$`tFT4z|nE=7a@K)+=*lg1MmIoNXQEB{=YM z4358xcNYr|iu{gDj0*eM3%Q&ms?*?n4%7346QdJ|dSC82sMh$P>}OV(C+KRe%;WC} z?(vu4Xg6oEJy6+C^L#ZIu{M!M67u)KpK>W$X;)XnkhZzGc{!b?Y)hamx?HchjuSp< z!N!g{VBPyf8)<&oZ7?T&ld(^ds}L3_FyGYjeb`NQU1!;un|Hi1h+vNT?_30KMz+z9Ie4Ef~qYz zVP!H_gLX$Jl)&%@b-ou=P(s9jrkB70Kih$Dw&6d$BFRI5y8Fh8QDf@_dWpZI=kZll zo{q*w#kMjtvt0{_soNer*RgXr2stqz@93oPy8PwtG?0UQp!ob0rv2W1pVt=5J;C`` zV|k?c$2T)@k4GckaP_IXO}ME%B>M7vD&@&CnX|?%2C30=IB;YK7{5F80)(+@`BLF~ zwGicWZRy&V9k@P__7=nM9C~=~wpbBp?p0f8?GRWEJPWUY=G86a=jZQrq^w(U$2d{y zOuW{E^nsN_AsF_`Twl<`o1Nfh-ie6G)5~HM1oe3wH4>_^N3BLx%hmR~yNhUnL=aUNG& zjqe674rxF1<p4u=9}`9&HoL=}@gH!$|XY3_x5htt^W&G|rZ+QF$pyLlUJ*m918 z<+r8*{u34y{;86_xrh&bu4P^PCEp4=XEiJE-)1)iR|psuaH9q6k1WMP2b9S`fQI7`miG88LX;Hy_nal*jLUnh&Q;P}%3zwrD zsP}L#fZkw0j{jT5jCN6mBj|)RZRrA+J{<};Dd>9cO*+kEh%OktzD9pN)C zJDBc3d`NMEN(~hPtT-Z8vnMXg?&6!1F<+?E$drG*QbtZ%;H#}0_)0|PiunxpoU!`+#o$XZsW!6jrt2JrmHu1TvojAI1TmfT0AmzP z4nB#7{3EKkJFfR(YvpVKyH&4^&3QN~t?D$L3q%Fj7TyLf{MDw14!eA?wrk4GAI5vo zaKzl&(>?14sq-yb69i0vLGSiy)VX^0*X*S7#oFeJANd-@|>j zmts_QOYwK!derBgdU*-r@MdTy=5L@l#yO6z3b%gdZ@&g+182zH3&85Rx^w`r2ie{d z6`NKHQjYsBrWMBZ4N=4WJ%7C!)P%hSncp3wa%1I`kp`36QFmG^S|R(>!%iS8_j__| z$-vy-!dKPA~kW^L9ZNd*H_24o1anW_P!!CJN(4?x9+i8AK}YhJTYY zB3(CzSPMWkwobIsp0|T|CKZZbxbk(B1u!phRii*%gg`9B8{=Sc%QDJCyhZkaQ4$-0 z!92GD=V|GDJ6yYVS+?8sMPTB~k-zR^_EU2A)K6Jpg~#rpc76hem~Gv(Vfx1~V=%wu z9Y%}jj8@{S{GeKV1Dqi>|6LkXifQeacNF2_*(C*j+4PR8K05(d5={!tGf7S3Ac{hM zXm5f2|I|#!@1W}zZ!ntQiF7-)g8|IdUBTb&IR<;Z!D6(S^16W$BdD);^y9)P+{yp( z`TYo2Iqw!aqf8TY z93e;^Fo%Wn4*2RZ>1e~bmhn#AZdr~`r=*m zox!L?DdlnM8)GW#@(Vp^6lk-@{YP)nnuEt=vE!WrSxr{guGlRrF@erEXa^g_SZ8an zaFGa(A`@HO7H(J-`AC_cm9c=}Qb?ooB zx=YIP*_PnW8Vjb$dO0kRh1cT*YnkYQc^Am)MZr)hg5eB+Oyb(lIMy3thDZ|u#~ae~ zhF!LD|8*Ngdo7FX8QFT_ojQP(*jfEKVUnm(f+IT!VJ@xaQ>|_zu?o-}cBl2an%0{+ z@C&xFWUWyZG*Y`|xe9xHCA(>2KK{Z_qdQP=8K&l(iolXRv+~6(u{XV!pv+c>5Lj#nAfT zLtCyPD57q1S;lYMC47S24r34!8{dZiBv%ZS_2ze1qYC@xZ<;@#Wn!Wb7Z)!)5f21b z+xBu^P2*gj<`O|!oO=MBkjQ#yxu(i|51|8^vdR4n@C<*8AW0uGOMS)fByz+R#c=QOd6I^bVkPg3@lLz5cWM8O57W?7M>3u(rp5 zq6ekb(%4mL?ahC=Pe*ZxOJf=oJEaku=j*)i@Nj|DeJVa~QZ1Q|#e@R>dK*}#}RN6{il(mH> ztonil_(=(%v{*;TmYh1*EVwFNYkmGo-se!SMD>mk#%+!&A%(oOJ_48Kz0Qf+JXZ#0 zI~N3uao%lPx5jvzBL9{1VDN>6ggAtk{ejxPhe|@zv*ZM@2s&8#;nAPC9#EAVq9-{U zO6Zjn$d~yJ681{NO5^nRot>RfAI2@`G<=o9UUM6qAqwj;C;1o8yKU*72ChV@92#*K zjLKS>Z#1~eQ-ZINVUspNSzbP(c0y6fCwDUkuZ%{_UEv#Mi1- zjuKaGH=A8_dT~5o_4k6@uAsoCb?=ThRF}_Pj?;Ugsu{Vdd28w9J3~vKSQ@2~)ZDfPD?qvc0G+g7AeuT!SqQ`^p$e&%2S2zUm90 zq=-Pt#)q~P$f(=5D*BvAt%clwtUkIfXNX1+uFHhY_0_{&m^XjK7QSk_t>q$M2mQCx zOHmcP?;MiY5})gqU%!>?jGEwil*i#Z)A3^2R;*{G@@}K)YC?T80pI2O;<;rf)C9y) z8l?QS_A0R$c(GZXlo7t-pv(#Pza)Xok82B*LTCJ z%(6ID&Le)Mmq7?0K&m$LCo%Qay|Ef9cZ$Rt^jnf3c-xr$gb&<6&u-q+q%iS4&!)zQ z2eH9^SyA_S9N6XJc7L&!%a5klJ57nmLD~F{Gt7HS)wgi{u?4HQj?|sXI!krX*oa}o z;E1lgY}Gc)I>Fj?zmx8qsE_C|UAHf&jx<^={6WN)$9K-}*dn*%4DC@6ae?_EhlW(_ zy?ggR41H+3IyE+5Z^|awK5ElGJw0S@(eokaDt=W~RPZX?z3&s?VOt$uGYXQliLNWh z2d3b2F>&yU@qSR$C%}6VPN}aR^Z^~Xax=cPN(_jiAj922V~WU$DyED!WuXrP0YUVu zHt>eA64dC$6_O0_?pQc(6>i3pPs|A*gwfE+?Df^w_W2Q5>^ ziw64D$;jAVluVlaqzPXU@PjdK zfgw%oCTt!ZUJybpU!O&yEnGg(Tgv)DUiclagHlg? zbZot=2ufvJ{j>~;h(1*!@m_02s*0^>=pNx$-+!pofVS9pWs0F9Vr3wq}H@VAmBe79ekyOh)<~L zUUuVu)C@(~apbN;?nHmb9SD6LFDvyT>g!h%wfbuatyQdy4z(thh@`TmUlAtA_;j(JjiQJ@Vz$x$n-`Mam$nVrl8HIC_8#qORJcuulRA`|8C_gwR57Q zfjoMbkPrFh=Wn=?!I^)z!1eP-l+2WS)%xXrB&UQQe*J2!B`W5amcBWTSGn+0U{3{( z5dmsnLfqlIvj)?n4Bmo?b$HnT*2e!d#%G}+NDuMD|MMDSD%ZLip9}DPefxi<_7F2% zmmkfeyFr^+;ocOJ1c~D@x%^9oy9ep5y+vxDv1)nXysN)?{Sfgae?k=;=aiU;_8egc z5I@{Qg{}UfX9@do78>jAjzZ|zgx~2xV^OzDG>ASTd`J9HNr`q1hQyb!SzbcnMjQ$2 zIb!v54R?mHRzY{G7)*M><$SP0Rf^QJKD3kUT;#bPthsGpTsEPLOcQpXk6{#2>I<~bq_|L(aw!>IK(|)A0P}&7djiYu0)o2!apF$kjF_PpO=O3^DiEl{h>9%bDt}qKcNEq z;>$F|jnyJ>KdQ(0nla+V{-Uvpalu* z|JB1sXszaQ1OdR~o;NfmQl3sM3PA^;v8QRQ_$waqcSO>$Zaq0VC@D4L2-Tq2J!ryn z6Y$VYE30P%M_KRwXneuh7cCG^PUxvG&l|xJkVWu{Ps@#_9{M|I&!m z*#cv5rFE7hbiNkxhHQBB`5Fzcd4nJXIc_+7G2`FqpqL=EX8!0f;nM#BoC`kQiR{Gv ze+fnKaR=BvhOyKMP_}_)oQcp073G`cJjt_Zd<>|EadG_Sb)^jd;iWr`qt^6@NJV zXSMxrT5XNh74zB^0SsK)<>wpD5Dt4tA%oMN>iA*e^A7s}&cH)Fbp-qKt4&G}(XUPB zZ_aD50+0SQ>+TQwa$_V2ApOg`%0v`U`m;_z= zpDrUz1w4rTr~dIu^}iDnZ|$udEB_f8cx&f>ZkKHxf&vX+9$#TQ%Thl9t{lmJf>|Y| zhOE1gTL}mgiD1&$KwPyqJer2+Bf@vY58pV8<{%JX-=T{0ZT! zFCM=2$o$v0|K^QYk|_U^xBvF(*O!a`n{~)SS;vATBx!dvR_Xw1ya@tKS)P967%LNg z@i0dguG}h{E5T`IuA0kkYRE^xtXE5@L+Ri6rQ+I^TqwK}EQ2UUqsn*!q!Z#l`u@Y% zzqx1D<=c$+uKRrd{$5lzs11_XS{A9^FMPip!n9RJfx<5n6qv^c7Ls1TmE5kpEu6?@ zu7faHNSN*o6MXGoO!Mcn0?P(&^f?{Ex7;WW#U)vScn$Ec)S-jMQg$ah6UR!vIMi3W z{B1@?7j%_PM6H-8uPaCZ#_4NjXbEH%KR=$njIW}wz>~1+u|%_zgs{(AJe!Xb^_9?R zqK9uYGE87V)J$>RM6*+glF7>i_%iU*`g#0BO`$%28B;~je&=fv6o}-Y88MR>oE{D$ z>g)Gf`!*vZ4F=>v(TF1wDIF>3YpMPNk2*dm)BSQ&+rWI};vL+f3HC!UutC;jW7h^t#AJy7)l)gObL;Y-aA_9}H6{9v%lul-zRownQlq(h zrY=ZGCWb|iMsp{aXpTUX@vr*cgANKIPCZQ}U_CxXd2dYzb@1gTXpBkEVeZa()jj)O z3xs8WRHCmlt#tMx!QB%ULezyyl-U~1RaD$mhtCB#caS)2^_^{ookBy5wGqM-i3K&G zUFq=m6mfRmIj|yAJ}5H$Dm(B09~1cBq^)hg{}rkGf90g@=d7ln*DCkhov2-580{>G z7(afx)4thOUrRJ<;D4&{g0j#-Znq?b-%8(2rQ(H6Yrv(unK)Sey^Z>{E`r4|C8gDR z6uaQ`sISbofuw*q4f8kbFeG%eitrf`oox7HoJg@i%C$fE-qW}yCke;hOGvSeyM!4e z*5~(-H6T^lOr&nU-`Xu0&Q{Drf{F7o1OBk>HV^STbEiP}8wUEO{&X$iFLKKPgtYa^ zoGszVs|7*~#Ymq?;$?gT76Io$9fM!BCUydJ<}IJIgc+$t8hNB(5AmSX<{@s9T2ZD< z{08FALgN`Iq};Gt;0hjJ5re%k+Y#tb7no) zv>z8~*IS?|ElhRp5yi<++1nb=WXz)fQDsp$e1T=BMs-0pzgld#Nj1i;AVBWGDG3RQ zf9DQ)Td4LY1y3i%;~jMz9+W&}d0cWK{A8Vup0s7JXPhGI z>3Bu=k(iPG!H-_q*%*wChSQLcK`Q^XIaQ2hsn39*v>;ZWH$PN1N-5#_oB$)Ajj2dr zs_dcQM6R~u7YTqxh}yQF+DFlS<63@R1<8J zck6l9P9j&u*Jl_MIbK7zY%;u%VztmU>g!uJc!m@^OgNNZ9gfMyO{I;#EsO`ioubZ~ z={w=~4;D3IuGG)L*(x6s~Dp=5dRG8(>>JDJ8>{0@{9oF-M+NT?&mL#@J3m+BDo_2EDMRjnL zQG$VUc$3Eof40LMO2^VU9|8B zGLjSjVo3O{z#WAf3oL_|?rYOjLHxl|-bIIq5&zyecv zpr`eDW2=ovSGAtuZIg@jF_bSSz9N_3N`ko3wq#c%}To4C3=f< z|LyD69JO(vPa0*M6dK|^9IKkh9+NgwugKfDTY@1;TatR8>IDBg``#kzY2i=i6EqFQ z5*-$&C%gySZcw+h@RLq608V>6P$Bqm-;iy!Xt?rEAD@DDVDo0fES`WFz-oN3n@b~4 z-R+bo109BcXT1K6g7J!C;mC&K3flt`4XQO=8?F@5B(+_;#`J7DJr?FU7yY#O!w)Y`7oxeQ9<5ks^yk!@5tge(`| z_g0S9daZm$m+9k{+vAs$u7s$B*9xo5RNqKYyAm(sevq2|ZgGGjrNnT?xrK^lQ>Df2 z8F$}Vwa%YWu^Y@Xc|YNx8^>~Tf5tGzjE>RkY>$hY)-y#qd zu*_*V*iVTshdR2oo$iS=n!DaA8o*!9HYU5mT zJ1fVGqc~2HJ@UBFKX5ys+>2%BVY>D1zDC#OJo2ZXQjQ882~<-(JLYZwVV_C&T|PsW zSp<=jkYoI|`w;o|BDTjWJ2J}s>57>wF7C8y+JE@|K?!wzBeKWuFxrL9X$}_q15~-_ zo%QNZKC9f_JvZN7=Qd0u!4#)GgbC*mykj$T5l^m0Y~5|#GL$AZ@ZvNxZEqx=XQMYgTF9gFU;JG zI7)+W`@5Vqf7nnQA&a@=-&S=&^26PQYkbqu%2)54s$jqUF1-i$&^s$}WfDuYmRYG| zSd6qV3mWa8Ld`B7c2VTx-g)KWYoF$h-8C8VYVlyjlJWWG?x4nZ#mQldir=m3!P;(9u^UdteUx^x zy$@*1lRFiB(K4g}i-oaWPbR^-j^l!BjFoG80I@wp3w4#9Eca5(-fnt)g{Ef&7e5$7 z6`Yv3?_JZRbBk?C!nKzwx3^|pG3os$qgYd#!^^HW*2`2v!QAQ^-@L)n&P3ne&gI9O zf4sx8J;sy6VS=G$KsB{vc|f$4wxr&wC?-S7zA1P|)#XE{Zdmi5WoT=vbGg7mUL=xX zUVy22QP5sv>5b8}4GB>MjPf*`T=)Y`>ogVegfjmemJtWjzmDak(E4AwQuR-p*36yz znfmd^4w#b{&MtRHrTZr{y2Jv26Cx=AV}=7E@bQnNb!(`pF=tOD#}+azyk@Em={dmj zm`#y#d2Y6%IA(DXlbp(D$y7tvZS{nbVsfHrk)el{?|Mc5(>SLnRX%!;$L!uN718dm zEh4+_Rd*D7#s~#FHOFHXClyY0JYT#;HYmdOg?j*h@oD@Wi|}S~fZJ-ExC1WRD{wzR zc8toDvaZz;JWVg%-~-`{bwp*dH^tV2w%zEi%<|7BGPjKR5Tn)^7R#L>M}ZP$KGgK& zgOcAb>#!fb%pa5R*OnusCD(E3ud9tcM~A&c9lNVAuVT3zaV@WK9&V2dnoYIMt*)oe z8|;ZZvUA%7M)u;|frnL?G~E{@WH~d_qPOMq+vr%|^_(Spe8gm6?|lu^tC*#pC2ftu zbXmWnnzDYzGZX#8gC6?JbfO%%tggqAF#v*eJ8*dlXKma$$6{`ITEe8}nZ7YK#)2-3T9>myn^Bxnv_3$vaJr*Jgtn!x1i+kOhDsAEpRtynMT} z^TdN92D+M#G3Wjki)EJdcX1g*jwgH0|2VA8dF0}7^{)i->>fE zr1yUzkA(kTEUZCxdphB88-i-nPOn*;m5qbHWmi8OL10Q{@DkvB^a&qR+%Gd`5GsjuAY3g zb6RBKTI;8lP4U(S7~6C~RTCkVy}`0xJR6RLm>J94&vuVSbf~9Zm`zk@rPSM|$*V|q zy>H}Yfs^QD9Na$M;`%dRXiny)^XnF6Ul{6dm0=^5-yX$qr%xf~?xb_*z$w>m+YHT5 zx4ga4$B<91awH8B+C6=6#rv)Q^f6woZ2_qFvZ4pJhdApjrZ ziio}5;pfo*%&o|oLWCB<%0}c^qO%q-Zm;S!J#C->)TkU#Yl>4J?qi&AT{E5cr3=Jv z@M{gFO4H8|glGghZ})h}U{~~X7io9g(qOmyp=CzBKznX#4n|K|>R<-eg0UGYjnSHz zJ0|zHx3X?j8h6daZyUS;w_=)M87OB;wMD3w!EB%h81minyVm7jz+7HQw-JC7qn9j( z0e@2GZU=|L2xZ`7qN@(Gj3~P6G&#=ws~1w6Y?I5Gahrp*eA4nkSDf&iW>NcnjppY| zw4#nG=2jM`pYhA)jTOeJgwld~xin)MHxhr4rXZ)4i-S6f){7OZ&}v-R0r0%f<~>i-#yd}8ray+pTlX}- zF%&Kh7%BIHOM?o1_Vjc9srTWSloxvW^OxU@xjNY~kJ#xN@Z6j^T2n&Z7K)vzE^dES z!>Vhr0Fd%LF#ryU09LyYDb5)1H3X_I9vHrys8t9^9?EECwC6(M@JZ2&xjhP`D8*DI zk0q?AZHGthID|>w-QdM9Vi_oi(K1)v#br4!IWcS_cF|R#_?<*=L3N>C$b+_eft?tB zL#-jZX3>+QFN>tjr_>%HDzAia;h0YPLH-{!&nIn<_F#RI|vl5lr0F7sIYrVE?xQ(HIU+&r8ma zT~6$^wX=&%rV#88Vu;BR_ie#GPUNt&2YMonazBB8+7zES+~~j*(yQ+&7X(rwO>NEQ~ObOT_VAH-fvkKwJz{CgAk&gAUd%{ntC4o&6@-Tq_Y!ifN zF6q>_O%Y2k7JWE49X~Uk^XkA^|85QatIMu*WJfNzPm1Tqw=}xTdHYcpmo^?uw=EhO zJ3!59e;{UVHa}k9K)_azl%sb*bz5EZo$~5|nSocMO`Rew%I~=zFEZE58*vVKvrucc zsU6z>w3%s?f6~1%)Tw4%TlCMs`H6qiW<>)$C1}_^%F%s9C<5%s$6{K?^C$B|`&rBj zO2uCk4tlkx+JY^L{)tNk+E?C!5*M=N`v7J)b@PkPFD4xi<9zKL=@b?N^)!0!?26ZD zN>JpAJDeWOw_VV>f`71Xx+rpb!C+!a+Ve!it^P)X*q2dGF?)`xq*xn}$^UUU^aPog z5N1knvIS$9njg&NZP4I*%7Msg#%o`pSfJaAzaor?FqtGh%;^LD*?Q(q@w!`;PVv268$a1G0Z!ADKK`P;3QDAP>Dk%Y)(si$yP5)Dmp%`WrgmTG zq;OJf8!ghN4cDG3yfq4Fy8AK=xaJd8O1QYWFZwS-R9%9sU8`>)M07618es3_$m!St z5RN^2rt3|6Nx+cyPSm-qvPYA1Q3i?en>H#ThEEr_L7g?L4@(W<9sSqO1PN8gU@S&M z5v*d4z|w4?f<$;Ehi!2-J*NuaMXxKxr~MrA)|nK%oZD~pT>jgO9(z=%FsBV{nOj(E&Rt?`muCE9H0xLrZhL53Yv z#aSwSeao1GOCLuzRW)6iQw3JDDJ{k=dURQtExDmt)|} zEYwpSe>yPg0En30RMN-dA62)crr6H+${d?()Wn4_EwLaBLB%wkza}1R?#c;VQ1rtM zyaAHyG$4Pa(SV98IjZ?A~CN!>7ZSljA#{ba)433kMfD z^~E{ZO@9@B3G*|rz~=&>^9>+eW&pJF3b|d@r?)3m5DyIxcUoxQ>&;A_d|4kQeHW*m zXb0?enznLMunPZYDqvIp0E2$(j2Z&D+n2#$oK#Vs{+g5Y&2_G~+2)2x6@4PpudHEY zq7gmIGv3RzG%CigFFCu!vL*p(-$ik2AkoUZWQSlAJrI9d{?nnvSw!%2aUQS?eY^63 z73P3mVo+OrF=Iy4{N;2D;7{B(aNGG{JwfM%)g z)3wC6ORcrtui*9_nHWC#Hrr?HDV#l}cHGjIde^D{Vt@_r>)QSoSm35FLDyJ z5A0`}KjC9ozEEgV<8P)pB6m(x*GYmtvpCIKc?wDg@G9C2YGf81qokb(9fgMjdz!ZPtkJ=HSD#%A(nmWI7g-bmZw z&#-SZ#;v4>R*`S#3;N`%esd9v-LtzkU`C(x;AVoa$G@L_Sa*cNqb}~cy7MW88_etr zCzq(3C|aC=hVvA45dHA|MQ2yAtd6vUx+qEoDvvVN5=ZMm2M@C;@BOFeip7)%&44Ja zpf+4iBI99M{q^NHUDZdH6k3;C?79lFm~Ky(W^zomW*j-}g1d0YT;f^d?=BkJCmR~w zx61vYaV5%eVo5Pw$AawAAKQA|EwW8H63y)EI0Dkuz(kdEuND!@Ps-Q){ozagPWo2xX9hS!^mN^lTpyVS1 zARr#CXik|LoZgz00Ah1Qx}gbwencY(DO)a!KZwp2rIR3Uj?TwM^%RO^v;nO#k|esG ze0w2ovy@lrQu{wud?~5TY1}Ga%1-0ft(K!ybuBXykH-xjkwzt7Qn zE0rriG-qbHAU)4VH`h3g{sQa8E~jjqJVvvlY=dFbUC;4A<=@Q$mFTTRKbZsYI}7#c z?X=X}I9jhYwzTcOe{ia>T3%1HE_d$DBP$E@laJW!J3r+ESbK2c*weKB%<0~8L>AHU zXaV7n^Gvr_i%QKPY~vY(6K={0; zF_5Hj5|fdfDD(#@Ew$hug2kuL`|Ws`H%DvzpWqQORYMhf)<+*kp>U(&b0kW2xv%iDxA7^$Q?${#{(@Ms zq1w$wlBL_EIW*1;nwt955gr;3N&2kO+Ee%#r7OZ{cVh54k93fPv745O5|cGkR@C~V@QaNjW1cH|BNgUR%0fV-aK zlG;uW|Ek}603%!8oFevitkb}T70%u}!`p@EN%X#&^ zhpVbCc%FDguSas}l+|?u`^EdC9XF_(`1S&?4paLFrX!gU`ne0l-@i{kaQQ6M@S?k;JNZqN-#V<0F9DBayD2q=hjmwbnrqH6#~g8wamNiS=6ziZ+hTM(-Nfk3SsS24%DQUL7C+x|y5&h@{^hr$alyl3 zpy6Vq71y*sScqNIC62q9I>*Pe%D2-S#T#L|>wr~u*3qkjyK4M0%8P>Sbv^(3Ry|=TLF?cS_ zB}nCD?vU*GEu%Jwi(XZdrrYS2Aj)M9ZfwCF|d=*x6SrbV=!nqy2U~> zov6G&zxm?bM^F)$$RkWq_@7>cFhUG-q5IIJvXvvktj{)6wNNXW#o<`DTGwoG(Ge0O zZweyuw#33!O<#GA><&jQ1eQ$j5bWrb=om8>o47!NH8TBk7|$EVNTqDLV0~{mDdqf3 zG@QidgHDw$Udz(Y#6QKiD9Xd*X33zOeW5dr@%Eb-#j=lAx8%pJxa52no@1#HjaL0= zc8%fo8y2#&b@(wcIjr)h2;ZvG))h0DD5(<>Exgav%U_#S@yJm*igX&DmJ;V0dpRk99gzIYBku^VclD zJ+ITArtp0H`NZiKf+wDrvDHq$E<1hJHt3!fQ|IS0#z>Vy?t48^o^NiZE^z<3%Dc2l z%s<9-zWVtQX{7P*p=k!$g$9OKi@rWB1lm`Q>oY)QgGagj1v8~0(z7L-@wyZ6^sy@y zfZg}Lkz*)gb~UfX9h*2XH8;Z3S0q?_3)*EL88oegs! z5x9D3_|xpd6wp3u+%Y#_ASAzowW5z!%itU~;t;1I4=wf={F7u7%(9$US!3aUjEKJ` z)(NBLe~fSe<*bc=dMShZvi$qTyj=xp0`NvWc8P?j;dB#wHh%>*FEs|v(q?L$g~B6& z9LUPC&wQOl1?HL~!6%>NvP(c^ypb6?fq38?u~rpNf#6G4(B@Ix_dSCJzAv+M4ci|4 zZPLdzZ_=E&a@41F%Lx5K4Z1HuNaAdLvG2XpXECH`=`t^*f6zut+La>oxmsB4E*+cv z<}vY;GnJLiH${Yx-@PQW7qxcj+3O;!%WVepTx(mdFK+9LJ47v5NsmV^T{rh9RUxV) z&zCUC`nX7-l#bz|{QE{`KE1DACEgu= zCnuKG`1OS4ET;bZZsr*5I+xYBi;LC9yZ8+X>@|tK)7PN)&w5jaziQ>TzxLMMva(HW zz*tT*R!~q;46t0x4#~3Ks838!4lM3{byFad@lBPiIg6o)ZJKFIXXlxjAm487szUqG zPSQH@KJmbfrmF!n3u<^`VvQ}iMh@pS?dOjx=W19^X+oSfZ;VFm zPDLGamO{uAJiWbohyIL^7Zo+noL`UsjusVLjVApebGXA`bfL?Q`9*ml)wGeqd)sgx zig0r!0=bSEA=v=mL~(kO&O7b?KE(W7Zyn`IH@|3%goG;Gkx{v2C1ZV@WFFu6d-fwP zvASQt8-i6l=BpkheL>otXP)WVn24eTsk0?|Gz4U-NOTD|1)Aa;&d;NJMFFKK_HdR> z05pr|0(M&oo8GTT)L__ZGEir%J|qivvaOO&dWqa|zosJ1cMpZp3P&t=R=SAfkI!=6 z;nw7|8vj&v@2>$D_DBYV=~Ucm(7a*?Ig2J2yQ-mUdoS(%m*}qy^C~?8myI_N&X$Dg z*pSn0SU$V~MOG8FLj0R8;^8h^eM49Oy6IPk5VjSLy-?wH*+BF+br8>k*9nIA??1+; zxsvx(%d*mfGb1n3#5qbJ5;Cq!{c3qAU+6p1IjSNu`A`Q1j|iv^IjKes9scjK$;Y`5 zZ?<%|66y$bytkxuG&bQiw5eq3RUUn-(G;*n>Be`bqw|)joUtge0#Qb~5q+wCw@hVn zGM%=Ppw4XeO6}syQ?sNocLM0hR+A<|-=E4TrDpf_u|Dkv5E@8 zv)UjZQ;s2;K~BB4ZhgN-`6&7eW~CD?h4T`p;xAIgBw60}H-plECpk1%uMAX5m~V@j zhlx}3{)tc&UrJ6%af)d+4DamhES!AnHv+tZbk4lI&B5|lc!2Y3(>b+#KG?Bv8ielM zkPDZ(%al)Ik}~0SvqfRi{#bpR51HJaIBoa5XmvT+wYT+8Uun?p(K%H!5-RVFqw-4T zgGF8UG`W@bBQd+c-dE+Ht5*N1WB1btbP8V}3dUIUy&L479Kx6SNSA#zi&npnf&9Dc zT0&=;7{t`+G&voFeWmkVK%m1}0#j z0}=L&w$+44M>#yQM1fDer2qkgt01xw2$Hey1L{pF*w9J1UAB_G&h|Ka``OY9$KEIwYs;Ot?jE==qE+1FCl45Nq&hIA-G|tg03lT6}XvGRJ_2g|$e$?1_<;iqXnxWsT=~wqt zlCS=SBcqv?8LPz+6Bl=leZazcws7T6*4)@TffW6 z(sF3OEf}%Z5p(C$+jgHQXaFjlf-?wlXHWA4fiGZ1oh3ERmCBeXvR@pjqVt?HCmV!- zCzko2K*QV7)o0;v{gUIV3mrxIRJ&sSBqek5TwJ$V>%(r{wpWi|;a<4li9K^6xz#Pm zC#=xsR@+F&`D!8s{F`2BVyAIq?0nJ&ZEyScS$7f3T_-++cKU@YGuc#=+=n4jLka{*p-vaooSPD4Ett~o+kwWm<{m^y zS>6K^+F*)RYyiSlaaF4d-vl9vzfP|6=Mk?mr2s}TTX2(Rv(ITLx3G3(_vnYO^y)Hk zh-$Ue*4E~Ei=O{DFRwLgKZuYHS&sNzwtaOE9tkFCr(WDXc?got%TmxwRnDV>h-yns z8mA^_M3-{LB{OPtF2I9+GSmq{0Y^R{2sClh6ox~unho$xPHSGC-A~vt%y;U-@RL)L zeM17o7C&>CQ!Yei$+R=7l2w$h?AmYl+|HWXv{_u`O{l%mW)~0|n&xZ1S3#;hJ<1@AK!)>ZnQ7q*G7C#T~XnF!Mp*Cwy;(ngW* zOBGRtjb-ZnG!>mE^5e#S&nZ*Wjr^E9PCvUG=*MBg#T==&t=zxWEyA3fZo7gNm}2$# zqL84B)$Ho#-NhEWdGfRD#0n3>_2|!yY^N;vUyfA4kC`#T)@pc?KbammK0dwE&^cM--<9>u{BoFPzhGVHqEC z)Gys^9hD+#s>^Mp2nygx^An~gxwC0EHyu2jh8k82n>A~`Rx zh$A7I;~BZCkMBJeFBVQ{7*`g!&wtx*QH}e$d=*IAZYvjM6zFVxAIkzBN!wnYv@dqR zXJ@_TsDoo`K79N*L z@>A3X;X)|OEUiKg;l~B?F`&StXY9tKo*aWZz^`VjDUy8JEo8m=xHezPQ&LUN#)j=$ z!TY~(yZmUMvHJ=|I-gfpEoHNP$->NMQE9eVo1}7Ew(C8;NNA0z9X}p!fS8oZvxoL- zLN+#X{-mtQnc73`Y3xBQF+v#w_Xl;FYR9^U22&Q${*2KTi6z z+j%>yv?yMtlBv2Jrbg$E>LJTiSfuswtv2 z+Y_+D%Yfj(7a{HDojXG-xemni`I%~tf*T0iCdC>_J?<-&3%%zwe7w!K?=d({wLI>O z%W7Qr*7p0DcG|}9Vzrd#3~%!Eh3VQmrDoE%Y;;n$>xQ&jtQy|Fxp>8#B&*c1u6ur` ztJZNeA>Kdzpjqdkbe90*(MaIxp?Gu?G0B`EkU3Y=vYCGuD>9Dg?FyT8^c9Q=?m)z% zz(IWV zt0`i;@EE^bX>Id55`&1-p{ft=CN%mT@v3%6Td^I?rw$eZf0)NsPV9&7_Si67(yRLpN zEiJ93FqyemIx{`|mfYq8Q!%mj&VXsQ4Fe73GoczB929QjV>kcE%G}n_!l)i&PBxO; zp3K$pPVc4&kR@WcqmYm} z#=I|e*UL9HfK|#DZ~=u0YFOss;^ye$F$Jf@mhGF-%z|%vi8Vy}*O~FNz9`$iC0lSc zFlls;;u(8}Z(@%{<2^5%6a|)4fGoN`xYbdwxVT=bSZZ-QHTfJ-V@I3z>{X4RE4JGL z?d>=gH*Hbo$U&$Ek4o|eIubD&{p+kajglqSPOPS62VQB%447z?--)8*f;+;PQ}|^l zlBLAasu9wkEFjohNp6pXX1}cKaCqgnWdSNBYJH>0Z7^lju0N5JC#<{xT!6%>Z(8%9 z$NZ|zX6U}XP%-mCA~P;5!X9mFr4zi105Rma6EN*u5ifzMTvwaql}k5_a1*;yX3JJG zm3_^$*K4qDTpL^aYdL$LBklEgM~ib|MxN`Do+knb6OL8$t&6Bvp@YV2nGav3$sRrr z0i(=my~90D%Kuo-R7d-h;|xL7Lr>BiQ`0PGIT@3@MX$w;pjparlhT%G(Jz!urTAU_ zo1ylTKAz0BqH3}Vav3Mb3DCXhwXNj@BlZHCPSqD}S_Sv)?T*^#F{f!3_Ff2JtH|{o z*20`8Ss1jNNK8^M(;lr4p&xlsvP;-Cv?5&ENz81!oS2v-?wZmRQEy~q7T{GYm(_7c zXY>)~EJewDrka0p$_!hc^>)!IhR0Fc3sG<52F_}r*BHF5sz#|0$+lk0om zv2O_>Si5@a5)V+QGaE`{#qAE=H!<-aup27-mOlyUIj6-pr(6;f+He}yWIkkW>@HQz)vZ>{+Qp2qtlrV- zja&#|9+jqP`3H35N7N*m1AWTseQv#Sk|h8p>YfNu^n_P0JA@A(C+35YahCdKs>5+1 zF5sWtp5PZ!F3RGFNpK&Aygw1E{-;UnLyiB^I7Fpwjrsb!lqHr{T+khmv(3t`19i52KpO4uIwl`ZT08*$7f$N{ zp3Rw|AUV?*?N8mS1UL#&DS3HUz-`hV8p!usE4Nwewou(0%#D!0u3C8Cuz&A^%wnBG zP#w0PMnFr95q6z8HWlF=EaG%kikOshqYup~_^oSJExz{bx!zz~(Zp?sa+k28cy5=NH90@iE}K}P?+ic9sJoV97&Y&Q zZ#_+}>!Ac5h0N-comlA%zDt5K^d)r#on?47q6M{g47>5Z_$s{rf31XP89a6?Ecn8=LqJr+i|HuBvUj*GqTrXDtXQ7SoZsWDO=i=*n>BXn?5_EA zT3Xh6$i>BVnWmbyCPrVduiq9IbF=qal!X=7#53EZeDsvtm0o5FSZ@Brdy1DtVRtp% zzG1#iyJ8@rX0LxYv~b1)gW1-4pf_{OE2eLxR3?y|+0W+ny3ggv$45?bMrVG+<><%j zGp}$NcH`e!ZnFeV``S{6rOx?sh#}P=?DpM8DQQ?5PG6r0jR3XaRmi-UmtD(;gCskN z8G~P;Y}JHkbxUS6Pa)E0I{$W7$L6W`<0`VZWfT6GpL~2%IQPn1x-?xS0=BN_CM8QZq-1g&Lqs0^@%aSZ4hjqK@5nB!#yo~AFyaDw{dmWV$SO`-Vwk~Kl%tVWjh?epE8ma$FwGBlZ^#K46O zNE1Iq%f1feAVaGTyet~kGX&8)1o&789IQGmZ*R|77Xx>;PH(QEOE$w`q3pn1ADQd= z@M1hi8Lf07tLF)gwc?Jo7rk`|RpNqu-F0r4G_b+orWy%bxQ5;c-DsN#t`ptccAo3U zaJ;vaXAH~BC8(Of^l_L^??u_`8vvX9q#+^qvq_e_fcVjS7&vVKU#$guh{Gx;#CMt$ zdwQ>Fh6TQg>=E`TB)}D8wpj`ojlrzo${*5yz_Zml!nrdt^gboy+WX1kUb9P?muwZ~ z2=cC7lTuL0xumV|*uaLu7~M-JC48jL;L|z98%MggzFJ-NGa$@hIGwNR(maM6kToD5 z{+_?WDXLq4DFA!8K9E`|PeDQMc(e@#t+m6#BZ>EnX2l$!qIhck)BVJ1GblmKX;Pmm z+6(Ik)aaA8*VvVRe~Bi`YF!fVeX&(+1D|3WFmN)QQds9cNAfz&g-5rM2DgPjYZFFm zfHTC-G&6JOjXQWuR}m`6H{tjBgZeW;VQqJ|Y1ce8c$?-RRq9%`!)*ENRbnzp$c60F zX9rJb4T_&mn-OXkdkpBH+Gi3xBpJ2OyA6lj0#`a0wli<>CungTvK>&fTtpy@7KK0t z%90nZ4{eCYIvst)rL3ZYWJP%?STOSWHa<$&_RfO}Q{K9nXG5+DRa?9iZqcL&G46i2 zh+7m(Zx_N!B$IEtiuNQiaoRq%VR;$a6st z5;Kv_8>bCT+Wr}gu=tR%Nu59$;aE`nl^U&2f4Gy02_QmGs#WkgO|QLu6K7qSxs&P{ zJX|lA_3r2hMf@OVKnxcxGxe- z{I&p*hFT<6n3p%;DT~S3<2tXd_|c*#XECU+oP<7ci+V-Y;XHHhL0* zcz+vw+qU_b!}HPSLLQCnc(ZS3ImRRMe3{*0_0E#E~*41 z_+XlvjoM})ZXY1kIo!Nr(fN|!zb4~a-DKA2+xBE9@}^R4IUWBYP1RD%`dIs1SFP0h z_h++xHQe-jJ3G&%KrKf=XGXvt&sgCunYQF=(U%I>vu*&IJFnSYc3UM?u|rld#ByRT z-=AY{d(*xeDqGBEC##GCuNgml*m&hiOLI5Ah=vNu(l|eX-QEu6;(J!cJEo>${uFWw z$IsZ_(@a6HQujnbPSb~#n!se}4UGcP-Ci;eS@^Wvnm92{MY$W82 z=G92t88r^7iIrN?X?>yczB@_7H+dQtYq&}{MX|H}mWYlH&(gA03-@AWSoSEIl$uQ2 zkW63Df21+p1=2CD7Eiuihw$dw)oc4v&htF-(@Ry$tvUD%$t2@V14nU0G<>VG9u6aL zI3f*a%Y+lLL|x=opP0*bSER_uX6IR_1W$6sie%<-Xw^#JD6tM)ep&|MsFVgC3E(we zA7gaunVPB5Dv+*;d(}3vI7gj^-@RDTh4J(zg0nJC=s0EvyKQ}7!L`e{ZUom2a7OzW zS8)yTwMF0Rh=JEsWx3zBmzoxq=RiH=vgj69G+QF@LO<)B75(jLg$iFlVB7TMb~{5N zXYf-W`_b>v9V4vkb22J*8;o!rJFm*^R~q~XoqPpSEsM!l>t!Mn?_Gj;&gyik@F&YC z8oiF8I~T5e!E>TEFllB7%afNZFE8)fIr&mTC({Z&=S3OTeUIOH^z~Zp*q)P+KS|%C z+j4Sj>>PE;UgHm|JE5X=JlsT9aoBP;Osb``m#{%T)t^X1iLi;Mf+o^sDg;tA0a-CK z^89~1tMVN1*Ud5-GhSS@nehp67SGW%UmBJD-&p!f0NV!lazlw_m14Q-xQA#r~P$)IFG}F*bXMY zHGViwM!{g3$u(78F$V>!G~obkD%6gjB@B9}{tf|$1}tmp)Gb1olYlQ~p^-*i&k_(3 z%m$w$24|HYgiDv*^+KqhgX&a^tqrv>s#cw_=dMGP%64t*_H+ke@wyz+t+&Cd%4nE= zYMAi1I^jkC-!s7XRzL8M%=)>Vw$b5u{Hj-K2B#uUNmfqI=0lwg<@1>p|CHpnaYf9p zS7Vj%XQi@i=-!QeU5MsLTTd}Xm9G2 zpc9M9-Kr8RQWj9Ot~(XbBt+?A&7fMC*;W8(`SNc2(Ev=gf;as|T0Pi{BW*$NbDDTb zn>zU^(s2E>AFU*7FEz41{upk8H_D;Pcqf4LY}O66?JkK0-+`0sskcLD zQI$KvTpo~x5Kal=1^--)Pp1^IRv+QYSLD*C6(W?)hz2Wew{H{Us38T~d#w~T$ce02 z00WTCH>Bc@kU_E8@C*`RAEDRSxHqhR+itXmNW=e>%cS5U6mQz}{+X5;I?q86Bu$S^ z0S2!p!A9|QiDE*89y&ClN)rKPhh+)g_P2qTdduPFI;Xyh!V<{7Rf95jp zbL&XiQE)*dA8^;8RS%bTZU&eMp>qKz)2AC}Lr^i*L@Ll0SVsBMhrpO0UhJPZ#&S9` zs+)c@Bk2|VO2>)i6ExNCea5|MYwoP-|C4T}yv(Ak^Xh8fwM)N!8eQCG4XS?9En*uz)FrQj#2g_4 ziY@^c>+|(Gq)uqr2&3ek03H)V8YehD*5lIeikDaL1$ZIvpwpfxrFJPy{)5PHl{Kyn z*_56`QdHb((f4}#(G-mxqfnhVqVYH;ow}?CWA#FRlVMVZ2kHk;Vcow#US%jWNpS?mH4 z=AAwcJ_u%vgy{rMWiRaQF6`C9@!T~w1J0ajY_OK)m-QyMT`Qz0`^oOW09ZsPC-OSY zt*@W?-~myfldlqw{;>N6Fu<^tm&^${L{}k@4}nJSd=19(?R(qn$urvTa{RFA*W~0f zPLQ0OGE8}!mKTS|8otzoRh}vGwN7h8*9W)qNg&+Vg-Pv|JU&QKFdF`_?a?1dM(b4wiIdY` z9er_?V{xJC=L{k&?+jPK-@s%u9y-bLP$fYI`mU#1CgJ=7Kd&u)~G!{~AHJR*NCI5atp0LVh>?(3x{{tCPc z^b|SzjlPigIpvoKD3I}CEMSfbE#`0EE&A@dHAjRL0-5CZ=rgJJF);T@D;VT%t$$3rtT??+ZbvZ-v}gNxe8d0=<%<6@ z>;$O5ZvAjmEGrXJ(*UHd$ra!pcd*0>gACi^Yx26(NujKXq&efwetk9MTAxQWAqluJ zX=0RV%TAcU7xLVv746$i~+yh zZrF)dwpYzPYxHv*x>vPL8t(Cd&qrAhn(D=4ulP{W&MJ@r`qbh2gW^(P2)T}AB8F0k z)Lk#Sy0lS_N-T{F8H2dlC_gm6FCHPkX>1xWecy+qq>P#GTcC?h4$E<(e4@V0WajzE zHR0{mz^##&p)XQhw-)e}V}r-WNh_|N>@m*>EALxnww;}PV@X*lMG0z@^J}o+g@M!x zfNOLPW>Qw3r{IA1NOv(1f-McC4mPdD+%Knc=nXW_=U%IL?0 z$iRlHMO3?nje@w;EX=-IvL^zRHNW3PiIeSxCMqjbjGBx*L1VJl3H76)R7#yv~UWvjS9?5f{QRmIbBM2q1o| zcs@Y>(jmjA2Vx{-k&$tl1KXD)K|md-A{}`nCqZ}m}mLwpsog*w^|cS-A1hH^zp zEvMz7j&CEaGjz~*t3D;8hIfg=2Sb9N(obE9uz~d4g*1!q)?Q_MV>6Y$SLLZYlmp9# zVw}u7^l6V3Wz@)Hri~!5tD_Thg7kg+6%Id+g?vF#h!B)NAr^SFL;%s zOOJ{JlpleimWWQ54DFc3$~AXhLrlDzoLTm<&CM%a8k7LOCU4b-l=RX`14y2JfuI0` zD*et05(-C^v|RIjaKaR zRjf3epNraDEnh1$Z+2~r)f|I@wJ|<&#+NQTGa5k}JJSkCxHPoCfKxM!{a(~N#Pjqw zhepI@>HKLAU)}VFX!CIIQmp0@l#jK~MR<=Y&zublIPn$X%@JypMKvRhMyQJEqd(p| zRK86W4lCX>8?H1VL{&Cy7jBwQ^7Ic~N2V`GByw3Y_?LN9*P{^rC5CM0g0v)-uA0MG zh$m6@3fn!;o>so0-PM9o9m*|5iIP*3TZXrD5T~b&c^A}X?O!L(9<%O$*SqoYa+Lqh z+E7K?@JXncT>mKH%A%M+;}GG;SYFtGJt}>l-m}1wwe{MQ^nleTyCwDnl_R6EAzRXt znX-y`?Oc~7BFPXd7pZicZG4W^7c0jqLo)}5uF?b_#IdcAtOhgaHDSgUs0JS3Hg#KS z3M^jy@3LeuqaFIVtFVt;yYtz zy1Uk5PU;kEz;e$WITc4Nv&KoY7-{PoH>LR*Z;TCdZ>&QG7u7d6Si_if{l(aO{zR~YoB#p4;Q2>NO3IdJNR|22I)c>- z)o=y4+DZq~+-3NpgG_>WfSTPv-ca3q*I)N$pR4!ULE&O8lsiykXvs7)H(J3gGk#(% zW3oUJ3gFw)BS!E$ZqtvWv6|zEJ!HS!B1E0Wy$Se2qML=FkMy)CXum3Lr|NP`_A+AF z%1Fp0G6t}9@ve4L8yOorMOewm$nfm0k1p2JXW)Mh-M!l-04UI2mmnylKtSc4yLMRI z@gaCltX?4XjXWlTRE#hk4pXt*C><7p)CZEd$X`69!$_cx@RMen=s#L^{L7T9JbnT> zZH=q_46zU!SqtOVqdz=`p)VJitChjQ9-2ft&+X049@Zru=K)znCasS7i{voMc&3tM zM>jP!U4-JcQW*gY2yI(_IPbk|6u7dove;Qrp4XO-fSN|JHP&xttQMR`Lw^K)S~v?M z15pV#Dkh}JS8!%#^6p&B>kCwAT_o{D@p1~Yy|4I1m1+2LilP2WBHuVpb&rUT2-V^HGRh30$0Z!cR_Lqmh4KKWohz#13ehds6Bq5luQSJeJOi3JG( z)Tq;se0?S{&$5NjB)Vsk`R>^3@&b$DDkSc9fwxYH2SL#bd)$U)e**m-$w=%B4o>?? zB-^>yKa0YSAx?nDc|Y_tAmB=YR26IY7h1aXHq{;g5pbHHM)$gUZPKgDIK;C1CAwST3SPLChO+nd1+y>LInU|5ME{40&iP zflYK3f>qAUcY-L$5uZ{tf|D6=Q)OC_K5eI|nvur$gETz{EhD3mKAa74XU7kps2&%f zDO~6QAM<|(9{>L21A=s2b<~H6+aImRJy?X)uk$IdfBwQF8$M&0Sq&rm_jv!U2WX&u z?_|}1aC~?QH-AyAmwqrWM~}-s7f6D3Yc4LgNoZdDe8#WutSbiF)0mu91Lg7QLAMKe z+dVl{7h`yo0115d!qQ4K;CFYkhHmMTt-l!^jQDn*O4gwfA6`Y&3kRQtHHcu7CP7Ub z7Hs0w;5+oseh$K87Ti<)34Hy(GdR9TRwvPx{&y3G zU?Rev-JyH*V-%9-VLubJ-q$dq{6Fs!^vJsqrS>(&#vOmMd!bRQa zxGvIeS!96aFwp_sJ-GYZ-ZaHScR#%8QA7OT18XgQE(z5*QNR;00P?~yA%~7zfz_kF zZki$l?Ok048F;L}2-KnO_P1COKx;0=8;$aGKbDsY6Q+pk{@XK$2Jj&Pp3AqDO!vF- zA*XHmRth&t_y=JcmpY|Z4&EM=GolOnbEVH8h|jMt05%3o)ov1pTB--Ym>u@$65T<& zT?7Mx0Qhn;l7CTqa`-JhoRO9@B^Ajipx;+ymztBy9cBS9LYfwf(Gwh|Y(FgWsQG{i zGnuZ8M_~c}@8lsn?tf$Q{_lkSe>Y)ZXJnR_^9^C79JIorYJ+|D(k$xZVFSv*V}!Ch zULuMDimE|dR&zr3Ml9w>79 zgMI%0UqucjK3%N8SK;9B9w;gg2IL4&QW-xSVZMz-on=c1_B+h}THWq192cSj?^1`L ztg=KrSVb(uT$aPD_%HM8;K~2K5U6avh7t#=;EQl42Ac-eLwEX>j2xIchc5n?<8YtU zn?8m8v}XQ2pua7HKru_2Iy6Z~7(4BZ$b$)Z6!-+e24s|2EU+rJn z=WzG`6Rpoez-4Mfb+WN>B%h1pCqUc1#liob{2$FmIIZ&nU!uIr=xlI-=u7sJ4}~tG z{SmjQkSqQm^6-y^JT#@nu$`<84+Q4_1{p#vL1e3bnHjZLfblPZDW%JJxlU^}qmC1QYlT{Q4y8_p`Q< z`5Nls|GLS6_(*~_ntb|mzrBLJ)yb`2e(24>7llv((g+jUKKrsr{!U5Zeei{w$aCxc zY!y2PLr%vyJeKEK0*j|ik$N4V>3hEDFZNr%R5smxYdfURDFn5q*$8x|q+pM_F0D@l$=l zgLRC41dG&gU|{So(p4s~b%bwJub$Ub9LHtlJv>1N^7Qi}QPE?>{f*N$ffFrF#1G9K zOah18r`-Bm2eJ!YV`brcTFPZi1MW=!eC-2u|MSA*`)L|irt6KV&`!?z()~+67yceN zdc_RKmv2OmCNsNqr`3shPZ!o)j)cHqkQGT1u2+L*>@?}@QoQ6l;UH*Lg7Xpom~@}O zD*01wvgi8`z?LIT5i#!I1`FAQN=y@Wp2j174 z6r%&l{`G|i&k6jYz9@v8_tiCeiHpexp|&5Dghqq+?hRK0KDR*fMYQH%aS8=`51#P( zYJ5J?Jwnb;cbYyug;#aJhpJKA?XAoLvhl12ql2CKUmlu@h0p)|_4K#zUs7$`N>M8p zf*1ixJD+9q=HA_WQze?$sCz>8F9F9C*>i&oa;N9y5p7g|hia#c(-Y_VNsbHk@w}IQ z>p5PPgd!4%&<@kp9~>wj9>NACESA->!e>a$^r8mMvuB)fm6HT4bE}5G8CyNN`_IB}YY8`AHlstZiHNznC=enIaXI@=%36H2yZAhf%x!Ic*u;&BROvQFaLR9>=)nLfpP+ebY}YHpkM92{ZMPP5cT zKe~C|0$MBF#&WbKbETZYj8#LHBf1McZg+S@8fr##SBZL& z%N;0Z3f8ky6Wd;1FY`A2j6GDTC8j>Kl1!Fq|!R`nG1MsRU+ZL>xy zbz&H#!z;_ub&@X zh0(gR&Zgh^N^bbfAyt@+*ecgU7af3+ET<3iN!oJA;y415k=k}rbyVq&;IjI#zmAYn z6uwchY|va>D_~}{eCa)BECx5{Zxkfn2X}$3vW?~bu#iiv%}g=};&L2Kkm%jx{Vq?xWHy_CZqVHsv>%Jqg?HdCJq0rO$I6 z4kI4S-l2=HVwE{r4l{|4sOk7oS;HzNWrrq+79pD3^ydk@$s5t_Ski_Vg61&~rjXaH zw7^65=-{1T_O zF`Z!a_tQMS<9)MB{XQue_gQ*RVW{(+CvBd> zde!R%kDZ$7Q96lePT|)Svts83|Ble(B!C%VcaD~Uvpa@2_vy{QrrfZzaPlp7137|8 zO*h&krQ)#Hd2?Db{#f}B8OUb*!a6j&#)M6<&TtJ|jYSAOqPX`p>0tX@X5@TRH~Zc(0{X<Swne%d1UeUNYArX?ej3{UijD1L$bt$^GPj;04Lj>2y*O!K&HlqbwJj zqcpYMRt<%wj4iTVDm)@sWpJ65{%!JBGM&INU^1o=G^vTQI)yo8(Tgj@`}v1H!$}t~ zf9Mq%L#}EibZ`z$hQkgXDmCFf4zu*geG>2J@#k=~xevq6tqO?CHh+BrlqbY8?(H~q zocuC=`?eaE??uTc=toY_oYWl(?B2muu;r=MY>d0Wh<^JY0#q4&-2dxN#xPb=o?yVO zG-}JwH;S0Z4jip$KLLpwf@@Q1YzO;}8Y#|}{!ZXLD9ulGVnFsA#v5yNF2XPty?Y7M z+v=gC`t*pSLqb5ao0D9IJ zV?c91iFj%Sucs*tBJTZH$3FA6W-v@k84vGY&j%k*YQ^5TX-mAnBAF*Wo*ZWhe9t9v z8plT1I+{qmh!Z#Wt{BWcIBvU=*QPXm`^9)~7hm^3xFACqnq@vTi+Ip) zOiNz>p&~VP5&NsQ>}`{>b4whl&Xo6gWP3ZD4db%Xw|1s!!Q^+C$wbsuu$srbnY{g? zkgbyuirmd(5bL<)s(igI>=7?_i*`*K?tgn^!9pH3o;bV;;dOy2sG?QLK@f_ufhg6_ zW@s(a;G1#i5v$rhw?~dgbVnaQuhg^aj|U9Y_?s<3D!B51kfq;yB58>YI9$ zW1ZVaaB_ONmM#fIXP~=Q%%p_PA-f#*LA>b8)-g7uixZT6;MPsOMr9m- z`GEa-QlysLKC>0b1Q?V=^lmM4$ zE|f9RIDdP__lFTBxT!uxLicCl)4 zzS+yp^Fq9QJ&l}p|pFSHm6%+(o$ z*ugZvCthMnDN_>~8WiVdHi5gU?M-ewneA3*>d0-+eJA;HV;q2h6B=Fk4`FnnvNYxK zM6}PnU+av6J?PPojb9p-8;wQFa`&ql;Az;D)H2;JJQW1&?H2JV-u0Np}S zrbF)@^c|eeo3d6840S-NUVrz}e#U0w^fv=( zSI49?|2~ZWwc|b%z;4)1(r$_zD_Js%bXm<1Y1I#SD$7wiTZ$mmdu^{`W&w@lIj8Ais^b8iwq3pt6DT8f6myz zO_u|4{x28N{YXP8lBtcHK*7q){t|uHA7At^0SthCiQCKYGIyX$)Z)SKHG(o%<1e0%}B!yOfm}r z%2-q7&xpm)Pi_S-DWHcWG36`dewW1QA^etVn!ja$>I~`e^ZAsHEd8Z?qGb{2UPx(% zN#U@UB{aEDP1A(3!6))^s$E7Ng5*r1&o%&5u4{&LnV$DxP_{BN zqD03GUM-OU2>=(Ilb7H7{gBQeL)z3sxz-*$NGR%!A4&2%=!ap{`A57moB~LL-Bpkm zaRQgMlA!>k1Z6;;3u>XfDP1{Fa(xXJw_1n(eW#Hce#~g|t_P4_Vh9xv+ed=_Bdz&g z778kj5G%;AO8rtq+V0CMKQtnhG0d{kjAHEsbjV&jw)$XmjF71mVPF%f=Exo<8WG>4siy;}#aYXg(w03ahK3E9efG#T0503hpb0euG@kP4dL=M3vz(?%h zScB$XZvq_F?prb_%Ssn1A`on>ua zz~My(hn#T*ALtNaI3RD!{37&E)t`$v$+!Lm zX`Sk5s#pCTkkbr9gJC2vFLZ!e%53FMSO1-2E`|l@yncTdwf~T23i>G;FQd{x@u_sD zp!-5I$=;;;)~EW?fO+{SCD7W2U=hhX*M1!sZ+!-Ts(X;f}P1_JN)PoGcVPz)W`(3d8Ka|#M7;8`7pF?LsY1z5; zrO;2f4+F{6NHoysBF*DWYmvH5PQbihzh+Q~?qx_pYv0LN8$e2Qig#I3PnCu%16s*V z;L0PM=qyM!|Be1j6qN11Suc2xA>tE?k~JjE0*6vUz7^2X=&2qZgFF*Ca+;55?2c)0 zUmFD+Ye4QRtt~{-fV7AVC>pzZmyp5*OK7DiU+ejFi4FtDYEW|w1dU1%HWP`_izF}( z|LgPj|8zLxU&#d8{3NS=T$FfaCQG_Iq>MHf0?!vm;@=54M}QQ?AoC#v=M44(j>wvuAZk6w{N?LBVDVAuO7Ma6Gy~W? zkmN#Cpp?-lbXd9yZTnV1M<|v%Z}iH<4dL;xzdJ>^>jW!VlR_K6l;A+zgCK`oPst&- zEJf5}+_UN5Or6I)(0r-S#rF+-M9RVRg>$0C+xI21gt^?)xmqFZG3z57dDT;xlO~5A3fW`glO4LQ zg3|b@^&?eRFA&^_*2S)UnTg|v!-j*WDT$}6!2$ztKVB`&;dddNxcMgGSrVmt0^XVL zFU>X_CCBlXJn`YFhn8jRakdZQ-PIM(1@>l2#MhR~T+D~8O3a6xUQEbJJ)K{OSa6A2 zi+vWni>RyrL2{`6f+X>^gRk62j(z&PIfA1&ev4;xFKTx8^^qbfgb5l3?Y?`@|2zuX zQeD9&Mo2Y>!I+&L;`gE`fF4xZr8Ha%$mTiH`E&DV(H;Wv{!qsM8q9HGN6do*Mj3M3 z-P+&YnqSsb^yi?WN2}%xn22)YL$sjYBcJmXNQ=v1=-x)_!V_t-4wWva&J9A-H4+M- zO5P3P2a{S0q*sFHD^#ho%|d;J zzYLij3<(1M#qMWua`L?E*v5)_u^pjWO8`Pm>QsUu2Q#I;^m%a&WEqca!ILH($r zmM6ic1R+^~`|wDOU-j3I&qNX&SJfbgd;$u6#B@!hHo*&Q2ma50TQ?R2DO~h~76ncUHiVZF4Pp$h**Z31@;U8Eat-3w`5jclhLS19U}0JcMC>h{ifB-Bw;Ep-l-2kX+8wIK}BLR*wq`9tUbd*!H> zV1vA*d~<+&dWk@`+Y7%-rJ7rOt|RlFzF>@2-Q55LEY;96TP-h5{}_%2^zv*q^g+6) z^{4|A)lH<7aB1%Wexe{+H9D?J3Or1>$bHBy!C9alWrqIRG6Vyb07jsG0(EwI$bkVvp#&A4pCJQWQ0e)S(~4r7^7h2IacyiZ&f`m;-yzxxfqh@X;!+jW&(isnoA7ZHWQ@j+x25pnGOtNYShrxrv zNlDGFw=lDl@C6Z(;UPo1wnb~AyY8uFdKicP!gfDA6c*^H9JX=V2sNBwT0}Gg=qYP9 zk4-p#vP`_1eU8bWcW0cV;snyjLCGlw8ZAvH##GTJM2vi`ir9S)D>AsK}IrGG!{W$k1RYGa)LoO2&-eIycvDH^}!M&-)$6_s4Vp@jN^G+Shen>s)J{ zYyOocIn5IX_X<|7t70XO_QK&k%xtIDGH|tXkCJGy)ws+(;yc{i)3XBEdb7tnPF;Z9 z70YnL%IyuDFqSoTco6*cEl@d=8kvv}hM*^SF=K5Se1=b$* z$J`T8WRd~o;v!59-uWh%$rymcghS41plHjtt-#GrcOQn4$nx)thclKis4Oh86}zqn z;uuP8N@onN%ME{Yd%k`X?uVAdr@^7}z8YW3k2#J%YGJ)B~2BS{9hqR#5Z~wJw3h1)YMcww>AnL4AUHV2bZ)hb9XD5{sl zlY=44WZIwu_B-w+k~LXQWO8Am^T!W(Y6uJ_5u1u|e2CNIER&$mCz2Vz1b>f;%9g?S z?F1rs7Uh)l&ClOsiM7!S-T4qGFK2Gz&gwuYui=2@xj>+LE)@k8!ya5j)YgDHZeWPF z0`KdiY%3M)7SPPZM?|PY>`aQ7L#R3cdO*{x`Ozlf8pTTpO2TPPEbSqOIRZ2C#3{*PAthkNSdL4gWC zH}G4guTrD@CFjth#gq47gT{VPClJY4O@`L~h;Pw--Q84!A$O7Vm4$fV>{_=xaOSt6_zYLb4!9~D?G$YrIe0z5l z#OX(Q^j@c+x{sD@xA7oaGBwyS+E1^WV|L81E5(R9*QhSmG{a{)`yuH;jVre^6p z73|D~iwO3>T^c)&4#&5gAR%H(yH+kLA@c__=8Ufbed^I(HuX+M3ICEgDJp8Ct%C#o z&?zevEt;U<&95k?KIiQGRx9=jA^>MSuuvv@Qs)BHzz*uU$#HD)8Q66^;Djsn7=F{& zOt-dW%6TzaGolcoO&-XdPOZ*tK9hyikq(G{wa5xPi~`tie|;zXM_9y*gm_RlbI)VR zMDMUt#)ySH?~N0SsTCIv`jG=?@iC7c@!8tjpM1ES(5!|VrJTx>niQ=easswqqKwRa zV1U~0WJl3@ObQ}G$v4umXu1{ks&R{bFSn9X2+hk4{T!HgC-(9Zd?(eRnU3}0yl~Fx zsuEoJ5_l8Vp_JeSZclu{`@0Ipj>Z^K6RY|dAYPliBUME&28?5ELseDP-rhrqYt}Qy zPWegY<%#o}5>oqONUtBc5r(C&7u4W7z-|qa=2Ao*k6a%C(-2&`wY`0zR&$9F6tD+x zdOuvaWtTH8Jc&vSQdr46SJ@Y<#G}xGdesJXs}Stg)L@2bk84HbE>ZbzmXzPJVwGtg zE-k_X3JgL&1y({vYHn#`&_WJZrXCH!hIO0O-cOjv|O zxQLaYFD!9SuyG9$@8RE+?qqLkX4H&AwPOlYf*(XPkry*wo*g_1QxmvmtkYk;@GN$f zu!WQiUJNMu;56@IMX+S#>F~z6Y{bM^s`qODIhFE5is}iLVMhXfFJsjvf+^ZWQ zv~S0uSmC-=`CCR@UDpo;ONSGb#U`XDd5y8W?=N}@+XL_!A!lnO*%?7SPhQ-0w4GuD zSBHZ)ooJ{(Ks)rYCm6D2VNL5ah0;|#S?h}4-PGn>iElvzo=)dRW!k*2EV}Fw1K4KE!IU3;^ml+A%4>$>53ar}bSeihV7BvC zj;X;rZCc$;vzD4^%bU52-~OW}V94Sw(AVFur0Bi4FGR5np5**vu7M8J2sD_Tp7hiYT)M_{loeY&@aZHu#TC9)`FX>7+b*saieY3LbFD&{HYpGwy8Wpq zj-)vsBl%A!%oUh$uKhf&51XJ-h2lP=6U{&UE(&z;4zo1&McdQ&!Z~1bNLz+zv>8$% zHvpTNL14`@sAZx0nHe_i6FZTK!aV=s43wzcZhm8Sb$-46IH=9Xd^}B z92U)TYQo`}q4N$);*tTox02on=Kg{!>hic8rifNGHr}beh5{i!UGYQl%u_K1c=`6g z_c*Ld%6|{MJHLu@IVr{Wp>FdfFBVI~bNa*3iXw)U@;ul!oQEA{I#Ja`wD91xc7$aY zhh$z`L_5vRG6@SO)`%QIwfh}4HKhEGr+}NS@aIRy+F#$3XHD!>_6&IARV^){_oxGj z%Eey-mYkz}NRIS<$3bt&Cz1d4j&MC1Xlazu8LfkjQa)D zFk$6Te_SA}JETs`L(;>WIo-a;PWmG?RFq^+bc+{y>G=pRXzjT-@Lx`FIF*9M;_?IM zXrMPSDA^aUQFjb1)1Fer;ZgX{^MTFM z;se1FnOH3V`R}3*G>X^*?7+aP2VH@j{~yv^^{cF-MF=3DadjH8Ty~*5;sRj9LnwN-5ijrt(_yW~5z;b$C`*Ri zkh%WDMKi6W;*8g%si9_}W0XF6?+N^uR29jjxjnT)vhOCq&BVmiPB;BDjM@{WzhB3S z6Ut_YtNHx{p{e-=XFA41W&S`&FRy4)93Lt%unZe62Q5m-h-uirfp9#r7Ge)X@c5ga zkC0R){13u*Fl0nzpCu+cbNS0(QZT-tPqyDP#)M>HhC!3JCQTy9G0A*`tg7v&r%8-t zH5TBP!mBz_zf;=b7II3>zA`0l^zo0X?FVtY=aC7O_^+BXVcR8z2%kxH^I+8ah z6>j1q@T2H-abL!Zi3|fuv74@~$J&3z2_m0DoIsUG|!TptL%YR$~ z5q7XAyNfYaTJUC#5XNP(x3lxCsHm_IkHikrC3qzyV`fKxYVgOMfd_rm)LfL4#Xw6u zAPvT#7>o8$9jV%&1QpL;m7Knq!pua2t&3U2i3$_-_&+F#{%JbVCWr$lSs7z~DJI*$ z$=SXO@ZiCedjypkH4oIRgV{2TrJY2dn}R}Ze8C;NX%M##bbmt?E{ z%Vk7;vxzx&O7W7TiI$dDH#qw_XzIxQx>0$ z5OyRkl;Xc$JPG-Kv+RGe`_WGS|Leu;6eQ1u#k7CNNvqpHq5MQX&+(41h|Qm#weP9iy5(b%KGlZlIs%qh!& z>oU4xoG~+;2{<@)hqyRtsDl#^7m;sLT!8C|W;70ULTiZ8Mq_(SjV6%$?=mNy+1LTX z%VgatNlc58iY@V0|0Nj-DgH|`QXctV<}#=rk~CgvJ8$7iL}QY$1b+yG_JOnX6)ZG} zxViw%Qodx}MaWE%uIk5j&53js9Tk}6k=h|ZpAXuklXxG$z98ZLgeI*|+TvIcb03VtGkRDWwS)A9Xbm8`J#POQdmyGA zNLNp|+W=Vd7MHSQFg;d`rs9rH*{S}}gmX}%(nk}p^ZK`&%uy02h|cw$n#$O9>L`lZ zJGk|yVwocF3O3}0N?{LNXcur&pxBxttyJe<3-=iA?jz&gLZT(-ra04UnJ;vcc>?+? zBCp`uVU79g{>ElneHBnWcyWArPo8;npe8i{tj)fi@|E5eNDd{jijJLkOeV}(rR*)x z7;g0=kM1o%jk!mcJ%G*G-u1u?dy62X>!oGVN!|j+i@@?a^Vzp4IRfy-n4F`pc->Z- z4cpxnRFwh>pxBbFvogHR;4P|Wg!X`t2Wx7Hk=j489Aqn@wo4XA9I+sRuwkD?@?e=0 z!jJX?eFL_NXY4IV-jf{}1n4Z{Y6g z2zC1titMnvs0BPoM~!sq-|tMugFM{t9yc)plttnaJlcnQs*9i%VnS*@=^f1hs0z)^ zQdRf9Nu9by{%>~>8t-?f8Wo-&gK57g~2khKiv=I z96IIyx9=yh(QtfrrfrrcDR06IVO44a#LjpJb3RKQ038UQe0{rJ$q{t)%!_}==uF-~uN5<(fP^MDnLYAk z)YRsBvr!g0I=(_XNl-76wvNd)GC7n!$10O@M|HFTL8GYmQBrFf8v^^i@d|*=)SXA6 z2}|bT7p-dQq``=B!Mwo|R;~&u$<5Q5-`*&2c*3M}K7Od@jvkYkN%~tx57z`dTrJBr zg6Xkus5U$QPA@94BQgP+R@s?PRkV_&WXU@Ki#Rv|!%aTN=``$RwPe^1t*kaxyOw(* zxQK&;&{9rEFZ~ra+XN6{!W&$^K8xna2f&negmv_Eto5AYt`bK!=(cPJ46}sq{ZHE5 zq}~BFxMZP1Kl4JJFNd5gLdQ0Om!~#QNY`vxe|*PaA&n3%hs)PpvrT&Tjhij1tKXs6`7( z$6y==b;Ya_2zD)p!CKF!Cli$=TEr}}2Qn^XWCCG}pzOYRb`a2#1+KD6Bo2Rw33KK> z3fs_*%F!djo-`cuNe0B>TPMc>Pb?$y+lPKZc*C!N2O}sw^jh@7=TKpz-7oHcVbg`x zU2>VppXtjFD)e*Ja^VKb6#Oe*JRS9{pl>;Je?%A>(&9>jKUDhV^#Pt159L1}ve){$ z4f+^dgi_)A{YM6e24zrv^8vD#c&%aIFA8^S3mkY8y~hRse9Rq3Ag#oIvcb-PDP)N65T-zJA zUHeESl$^7p76BXR5WEP%x?PjC&@~`jj}UJvpcigeWW3HEjx%Lk?Lddm{=1$!>JTv0 zf@C^Sn*%@z&~b;_s`Hd-f4Rc-;;F1Yn#TVkMP!HOz&cde&*M?|n$N50*w&OUS0bOW zypPYZ2h`7$uOARV0AxMlzXA-M+|je;;&zHxc0E-T%-l59(l)KvlJ5TfmB9h79KeU! zab3~HkT$i%uuYBY4Wzl=?hkR*qLpj4tyZ?{^QLk877%_B;msPGBg`YOmukmpgGS3U ztWVz^wQ=i@8y6t0T`S#`--QJ;}==+Px z(g7f=hBIeav1s0W9n}(2VRC}VtHsO-)|D)+4sEVRFnp_scazs^)YuMa*-14y`8ox{ zVXIhFXCB!freP^D)P&eY&&R^ONse#dUtK490H1EA1x-frJH5WGUvab*TGZMRhaDix z-J8g=-6!(ZNj)T~!kthce@N2q@pZni3Ffx&%|Y7tIxV-wIsriH_HO{I#FFB}RgmO1 z^62mvORWN7ucMU!K>OV2g?OFz#&>r0dR)u20w^?>Z=VdG{T^=AVpnh3Q1L?(|A7p9 z;e4|Zvy=JJI{+Ojkz+q)K6et{-jH<#i!8KH7y%wIOUmUHYqwkkT0H5$|MVrR8vq;8 zOHw9VD;vvf`-&hpg3oEvu&_fbW4lED_wwY&$J7LtW%JJ7;FC?(DX?i^UHPFzyBWa9 zbjCK7-S=a+DiH1&dXzBvz0#fim}y!QqpILluIFZ2w6SiZso^Ut-_bV!A#1V=6IOHK)PW+y{Yg+5SFNyeeJ}*9!4kBkGTTy_p&&2 zgfDO2SCAa+9^ZXcw1NsjQyddWK%Wu;Yx<1!>y`|w=b^l zG;O0LXf7i_2cki8(`=EdJe$J8e-%b1@GYyz17xF{pLIbJ zR>0vi0!%^v$wSc99X|m0C4!-E$AJ)e3|`rAJ{7{?8LticwCeWu_Fldctvlk=-X3TN z5vJc};Q;tZ*`gZtVBS+{KzqG-`b|=82L&vu!Fc0#1G1l3$>t*xE;YXDRUfYN*PjpU~=ahJ&mK^saRG%~t?-CHegQhk{2fWJT7leY))cWl8%= zFx%pYo^{UP-UgWLW*#=NuB~PKY?4q;v%^^zW(VkQPd0pZKBcQz%{n(=Z^+ zC+5fB2e#iI9Zx(qOi|@S>LwZDs5ta19@M`vgS$aNdmQ%}dM|q;I5nh=gqBV8>bWTf z?8j;W>h;fA_T10JYtcSH;HXA%(LubEj?j)P9r*d4kKn^~Yp&9Jb5p8>N~ZTa8B8|S z7cy!cJ(%?TAy<*3$T4Y8>-UHG3|WdShC0jnq>QcKyFRW5Ys+1YO+K`fg}F3<7WMO` zOd@)^{bcfJG%CCvVW#`XZb__d8u{EmQ#! z&gS*D(oO5~#Yy?=SMOa1<X&C(WxmS+Gl>r%$tcRvXdzpl}$!cHcuggLI8GeBqCuEn~eoQhV7ow?tu$ za6GeHUvu`8Clb#!)^k8xV#=AU>}+}3=@C7Xa98`w+{fs02<8sVMsO|L4(M{8t5lcw zX9pcQc}IP#bwYX_Z+22BS&`Y7iGmI^*hCnnK1AE{6q)gWTViW#U>Q%P{BXkoSV1XVqMs02{ZBIUj-Cbqb`4vnmMP6=3sPVFhL z1o?E`0bc!L5uH?g|M6OKuiCo9R?+~ZxvJ>Q(xj+slDv1FI`4R!$J?*bH>OI|RQn17 zN`t^J&m_If7xVE6ckYe*iW<_(Chfs?M?Hz7N!~H+C9~siu9|NmD}wpjg2;sQei>_j z#rTsHgQ~G~UwrDzFy^9YiFY>gEgEYA7~Vk3GyuRA!71*=KbSu|nJ-UkL6@_=@kD?P z$TPi@0qt`u!0a_P@2GzKf4?H_>2L&AXyFRffioAdn%covPsmpNwEyB8AxQvUU12wPKP%6?zu|HF z<5KoV4!ZX${Wcjklu02qlMIc;bipIgZ~JccF-yiffYf_f=UPCv{3f}hu4VdRZRo9B zJEEBxt4CJEqw(M(z%bGsIV&FS*oz>Kr9ZlU$r(~<05k4Y-Scph!CX5cH;{_YyyDsi z6RC`JwnWllafs7E1s_rKP|PX=@~H_Umxf+?e?js$id~Q4kH6oM!3Tqj{!vc+6g&L0mG-j zU>6-H^mF;b#F$m@_GM>)uV4cZ&$ZbC_qQ27eY2O<6Y$y}Sq&^@J~R_;^l3`&`^SJ) zZRtBMMJ58-MJ!Uww{tC9CILr&GAOal52Ju0Fmpo21rXggq?DME6^*wRk6Fhm76`xT z7Whl`p(z?X5whIy97Y8)@bqYQ*b0zDW7KF76)H3J3%;DCZnfthqO<6-TxFjp?Q*M}Y85F@nXz}N3@S%YMF*PI z)qrSJf_;{Z09H={Kce817f7aA*(7veI8zGzC7^E_fZp}JC02X0H5vYmzm#P6!-b{z zhDvs)zSq&Pz~Grj(E%OH^yk}|En{yN`!HVuD=5D|Z2TQGGN<^}K8mS(5XhC|b%piV zAdK=@T_HQ!Kf?%`W4_JrbC44?3sP_G=V=6En}-T01G$Y70oJg6X7UTi@KqL(tDU}K z{wy4}FL`1vqP}|m%#SxNgh_#J2XB`d8Bi%EGlPEagp<0l6jPNce#NUSX{+h%R4M>qz2}ql3mDH2_^*sgyZ?>fkp(f~V8)vJR=bz=@+R&SxGWcdb3II(R7EF-vD- zJ(wU&84!L*(WL`$N1Jv}<{;O2eVO!8bkY@qC)KcTzjqxw^5&3HHVcj7`RW@09Jd{u z)?NP;jDF*Cj1mnh6j1a*>Y6@uQ`Hj` zUZBhZ)Y_A4jkLx zm;0yS9jA|>Zuw)`(Cm^7=<~M{h=}}_V!~PE&SFn_f*}~{1S~8hqN^oL~hseBuh-)u)-cSU$!)*Vc({x&8&{v-XDGUt~Qu5(|%J!g-4gU4@T+5 zypq)fjOFz=r@t1_7kRN-?TDo#E6R#`{0BZIzCCU~B$a)L4&!erXY^YEC_PrZ^wg4e zrJaMrli2f9mI0fp9O{mkcs@$X%ZmR_Ba|b&!KQ%B8~4!jTZb>b+?0*BWqR$)ucU&`uzcN>6lE=JGJQyQB?6fZN2>jki~5RCgZuBs#V z@^&}-sd)7lrK4s8`s956k|xYaPTK{Hys|rkH2Z?%LyVkscT<%F1X64O;Wo%p7N*;M z<(M7hF!J6U6subUqQ^)u!|f0#FGAH^))E5m%bEv9h!F&tHVnr(p3#p_Z#_IP^Z0ma z&~E>ws&Cc`PszPN;IT*HpdK+TLJ;I=NK}d)s5JY=xZ5a5c$u4;F6V(tsE&ApmSqv3 ztII*?b+d8!6>k0#ja8G0W?ZFk+DpOslgN|w5UVvp!tVz>5+P3RWv5{Mx1K^gc#Wu2 zdY&wQY!E;Hd_ko^YP8|_a!Ni*+E?q6z=%i& zjLy0=S6I8^mok`C0j7~(@tDc`!%l^Uv|M1F<=UyT#50j^fO#H0t$3|Z*^F}ajg9NF zva-zT+{?x5FN#*|i0bX4qz#!JDf?R>{u?xO->%H;y)ysS{wIM4#8ee5Ni`e`B=Os+ zzM8!Y7OQdqOTr6+2S!yI$cM23ZLB5p;wwZr1U+f^E_j2-q%rzejb9-QIC)i9g6kK8$SXPx>!$W|gSC*P5Jp`}jOnx#=_pCKn*ba+yG6fy5KO}8ARXSE@eUtkIrDjr z@#s^WbZ)N!R*CvIqD~u@eCJelYoF2NYE(ki%B23f9QUi#It1n51IECUnm}OZA zSqgRp2`zkXwEtl`eGUvN_-^1QeVs^*-#&1LgA?=p?xRF3pK}UQvPwg?HKd8*`R>4^ zk_2Ch3CIp|i~@77W?X&Y7z!wtn~1?VcnJ{|#Zn38mwhME@p$jw-V9EEQMp9h(F_Rsc;Ee-H@^qU z%1SOPooIv< zURzDMJkc^O%xrQB;&g%oXCX2pPCM#r?XvMG_|`_>Kix`lPV#6sID+CCt5lhCz|~yC zYK^9?1e+(W;EPY*U4D*`Kq|L(69sGq?!mLm1*HMAd$%;#X@~~KJI_KSn4u%sjQez5 z(^p8ltc0%(Bu_18l%;**N={83L0-nTZ%+!p^eAo@3HcVn=r1d%XBMLwx} zhth+m4Y#=S;1w zt-BvH6Xed~@U+8?_gDPLF-g8LDW1 z_$cwAZgXPx=k;OWzR%blFTJ)B^s08t5z)|ozQE-4}u;$qwAEw%Of_3MR*WoB~BH?{oLCA;x#Qd2F8;A^VJ{6gE zGRk*5H41@@PlD&3HTHa+3SGhI*5G;vX zDyKF$mIIO!^6lh5Gg?Ls7VrhL+0`7BZyf_+x(L~)G>dZla(3;B?>&F<=s5kCA-(%! zGywh&g*y?bSgU9KFk}hWK*}ahopYNPU7O>xz50SI)gFK zaj;{Ryumgxn5b0g309Y=3*???2R9Xp*B?zC{sMP6rwzi?ta+Sidm_w11T}FWy40o} z0xRpnP*4PhB6_ko`-E+~yc16NRTrG)Lv^$t&4RK?X1G5EIU5dk=kCa_F!06`l7B+{ zsjo%a6%8iTwZS@(p9)^pmIP_LpjOCTI0m;brI%K77V1cqgQ+raCzGL4(rM!3x}Tq1vrG9>%3c5)zFp#LbTT^u7#0AOMcT%9=KoI zxl&MeH1|&2PZJ-!LBp@zcI4lP9w5Ck_XzH9tMx=LnHrs_uk_q{gD`& z9kBCS*zSmfu;9JLf6YkXIHASRnVu-bO#l$qKxcQ3)MJXEgry1KGAQx9@Ijx3^kGDo z1pD9xBR+O)5Ff+-O?CAU`S^!b?15AhfA7bU7Bs=d zUbO(50Qtv-rXU-qJTnd(^x$s?KZ;jXBed{i=XorUw!4SbrQ^?^r z36jL z7Af1{ltb6uiB`e5l7NZ*Hm!zK-0;gla9GhCsfEc%_$uuPh(r0(WUPWL0=l}qDA{r{ zNLEpn4{|hP62I8s@iITS&h2E}+Ie!!flG=Br2ix?WI&2#$^1liUC8mZM1ui_mRMjF zWWRdBX!+lu-|P15x;|{OHpWc9-t!xptP_5u7pu>m!w6MYOdvg$O`&%&nT%hNdy)Z6^zt;RSqvBlZ}iF$b8|>oOZB;I96{Wm>a2Nkct6L8M?QH zh~o{g^2*A$`#pW{YO}~oElqOFM`cl`m@ad(Qm=pDwEKTFNJSPce4BzEap7Pk-%j`b z6wwMu6t@aJ<@H?gg)CKZw9FYdA_8}nXnw9W*C!#54W{+(VA?ncQ(jh#>9W3;p_N2f|gK5>O~~BbP+->`Q7J;h0~_{lW80-*T#r; zGEM4GgZiovMorHBPeo3RCnR6Cw32p{@!@LOl*%AxF_erH7@i#5S0=}C9nxd|_g#ab zf2cFh>I5~$tRHs+M=>9Ny?5Rc zI6<|q?(9RzgbVE+`sy28ciV4gFIGF^kHXmT%KT9ynv+Xa4fqCcX0Qkn#^LmlpRYL* z9x(wD;V%alO_d)~_}iU9J^nV7WZrS#`7lAVyTn_6=lT>)7_SPLDriCp@SQU7-Kk(N z9qcq)=>7#&aAE5z?9K4@RM5c zw|Bs_DJ+38mNDb>86)#9LkZ}W=X-B%V4gcbaD!_>oN|A1xJY>&BP6F3JiGBu-~miE zI6;5o>uNELCdCAQ<#bN71G;KVKv}QNYJGie1vN9t?EPB^EA>}{{o}fcM#}!_#zaNL ziHt}dmh)?{>nK4P@xQOqZ9J1;qdeDOWns)S3N{%|m*Sx-o9%gX-MvN#uz&$gmGeJd zFGkq)KEtMJtQKJ5C!PSSQ#k5^#`bwm;rsxPU&mqC^eSm|WqG0Jsqo+ls#T^L1^4#{ z?4F`@c>jr^=p^4cG`yGU5ELQ|>;L_Afa3w{f#sx$CNFl*e}rJJuxhoEkx*@3(yN|n)u+$p11w=~CfB0=Wgg(+6A}<(5x4{&2 zVaO<^yu7P_yKoneH#D759h#(%tOgOJdLH9>h`qRL zK?d&9iuhWBflL^61QX97)I&YU+?t0bZ9VsooGS>u3KbmfrZ1c^1^?^ni92J8rr-@J z%Mjx@*tjh(9<_D%z5RN6de(JTzXM*y_tVr&?2(uZ?IGOkE!Z5l>t4kEtpJrkJ6h0l z!Y)t(Yawj`0YqyDs$*!#WEkKrsG>6_X*c z91>fjJ;^P1@*ax#u5ZqZj^>`iG2M z4|uI#BovQsQ?(zyRyp5;!L<;7_v;5|=%-6&9u&YVw(e5UMbl5mi>00WJlb#aXdL_Y z@kQ~`x9{MtTi4@0Z& z%7?TWGy~Rfs%?RX8>{atMTB1gTpfhFZb1}I;+FmLVG7!Es-lQ$q>2@8k{j7dU&kQa zzkH894E4+6e=n2r%61vzKO8q~sMLxF7(&`FH~X;z-Dp~n{_`hunjI#(aKLIuKXfn; zbr*^j*N6k4VzeOKw}#Jj77>RHE`J*rNLq_QT+>e<$mA=DdKG64Z#nAaET^sE_<)0< zaW$Yrrg)5%30AKo#OFidAnMnNH^290{y zzMENaU-hJjX|OjVY=P+&V>IoFg7(u2NjQ;$R%R*jnYkzc!`eG-sN8xE%!J+xcjh&9}aFELm1O| z-EFCr)$RsQrtO5G&d6MHW?E?7m^|Wo5NoO=^ke?LnhH7P3YHAI1NTFE)wS;#n_EYo zDYOk5gFTT!b;YL8$5mBL7_%S)i)6MyS4w|gNpvHE z>v_F&Ka2&QNPxG>7s$PUcC-{Rz}`pkblM}3ytEXErlDCEg)(d_ zSFRj{!T_1z;NWjzwh;EdirOClU_x?3b>R2rkhFXE{y_!ovGMV*dv1&Z%5_`2ey~(c zP0jPmt2Z9|SayAz%lOxv()7>c5P2xczp&mVsZ(k($%Clvq;#lSV1dSrik@t!Z89DWx7K}pY|o|(ok645mC{=g4X4*PptR=%s-1F=OIz#^ z!tF$xE6*5;WkS`Qfj-e%sW%!Pdl81YAYv}Mm)y~hM&1k6C z{q274VuU{iX+bCbX^j|$*Eu6~x*KKsXqfoR&b>Po6Uu~AI<&0YEkcjGO?}`fty#%^c$g-jE?cXe($GM}BG;r8SNBmPJ&nzkKLMcHY>^a-x!}a)Mu0gsi)M3BF+8=VZ@wXo;|AlN-P>6_;J# zcve%eW~w}ZNfeB{aX^ULU@-CaR#T0l#0qvOW-xErx&smd`|?Y!v9Z!H3tolP$##G^ zPOsY_e~Hc)3JZ{X-n0huSmk-@hexH;7ZCOF+J~<7=X&>Xc=E$d$ukZlxGSpd3uq7nXDYk-N zZ!t3wCxj0CGi3Z&473{+F;Ay`EtbsyO>j|n`I73D_73k(D_o+vpWLpMKT(@r=)z;$ zAVN{^JR?spBZjKx=(;MO$oByj+gHfY%YUbupFS%bi5X=eC;#)aZh-k*^3XcQP*DfoB@t0MLkG$$>xcfTN0mkT)A71D%??0@&4I_N73)Q zzITOl_mch5;B$n16%0)>5xi z%YA))2fbBY{y7_EbQUUyn~wn=R)t$jJ$x6{Hc|KFjFqMIM}PSag!@7F4R8`!P_5}` zI%<7FWfeKp1f(jHyy1~;r5gf7x3}m&g-RZU36ryvH8HY*nPiVY`TDX6G)(Zvxl<3L zs-K1ktos3zp(>EP?(|E!04UJPDS5pI*ozc+f7Fv<{jfSRxT>;%Un z0ZL8*Wm0`n8Tq7+$lFhy1L$l!Uli>_3sI{;zb4JDaW;v^x4wW(|1M|pt@jG z|CiHg-O>ZKRAq6yCfxdxkM-d`z=8PzOaQ-O=d-L({{yw~OSjp)FW5c?vL5|yxQvsm zh}|dy0d-UTd(k7Zlz50O^x-$R@e>p|X{*%s%bTng=0CbEi&c24sXi}g?Ey^7R9Gc5 zkb6PS*ZS`1l68$TG4BnjS7lhB#tN4nMT3`lX>fR#4m@dNN5c5TXAruTN{lYC1%-0A zblz%}u7~KTV0kFHFUMp<>9LBtI~xa4%V6ipqRu+a0-I7chpSN3D8$|E2)o{OkxSQV zYnw+qvWH&W*lZs93GjpbGS7CM)OWaGbn8INXL#j8=U@bJP0<7v&#>)+M&`d}yliDsi3hhJQZ=w_&GPiG!vlzg@|GmgQ?a0U%Z zi!mFGOojMxB8%Qi7D3$%exz@oLK|>O$bPQJaB)C05DA3dwAGMhg=VEq`1{RYJqne08!anB zt;Cd`%nm>!1}aG{1uNigJ-d1gsvkjBEhi?!Z3R#Hh{K*I;&{zA+D^=1%i^K3?84L2HEjHNCG$Y8NEO=4?R$Z#)wyZ1&}g z>2)T2wr@Q)_{sp84zXoNZ-V`=s;o6Ajp#BweJY4N2c|HcRCw6Wz zY#2Gf$h+jW)mK7CX>4L*MWa$=XQhN;!(s1(QG1JlMopap-U3}mq1*m`Gnoc1Npv6} zeCotq=*P3H2)E+5aO&$A%Nxtx0q3Hm=(LV&wXzRtLKq#fr7?oa{Lwyu+tr9UF<6`A zCf+RfT@KpIcJA6wR%8_z8w;Y~^V0kbK@`Ba=|267FZsJr{2Fw^?S#}vkcRkV)e$fQ zw65-^SmL*%!ut(b8pva@zh*mWsFR&(#~^HBYI+%pS|t%6T>tIiFD=kV5i||cpmaC$ z_8P*V&~L$akqXlR|I2v;@vL3o!=HR`fCfBNE^EsK>X0$&5m^DUT+gz$f%`B>XpFa) zsBxZwl}Y7+wP`=GWa%>6%LE(sG@oYtWhmC^%n2*J+-LSGNWgroSuayY*mDrI%|P)z zw+KE5ZsWHNTKVnkpTc2wtX|Kd+-(+VKvZHrIkNfI(KV>-Eyh=e?&;^Oz79C`%JXbN zg(K|U!09Y7wt9C!)iCrWEIl(i2;0AD6g=eD=189%Jh+^Og(E-^c?Jf_v>VNZ)EBcyR+$0D1CDBEsxQFC?8BD=>Ys{ovx|} z4;~=+>UZw5)2E?Wv~!pZJa2^Ajg0=vZv&%upn0Ivz6iBK=<`|ZFsq40cK8}bM#ejX zX!HguUT(}(kr}DkF*`MsojwCK`K!>x75i(asvi`a$PV43jPis^5`!d)hcIZLaG9tM zuUIz;He)e3SgA>$ScR3AHcik|^W44@7K$2sq`D-aA$0s*m+Y;vFnYk6L&jxk_E$KdSSfCHPmU) zJi=%2{Q$Db?j&i&Yp-6*t@8R#CpetfU{V!dcwBw2C>&vEv_+7sjOS(z(-h-Ar2=7J zIPZtfbnc6M4IRkh$p7e1gAf_7*1=^fSeQI(QL2Hn$_rk!6ieDJB#~5$8Iu&W8xx_v z8T>fDlvo742i@7L8>b z-q5^a8<-_x?rDiyej8wv!P$)FMvwM;dwfKmNFw8n{!3O516hCAH%p1Q)p&}VLs z4hBa;406GRW1F#i|Vq zt@A+&m~kztZEe(LZf^4TFw!^fy{-bDXQ9Pv^g0OH*Y9ub3R)V83@|}j$*2w##3QW zTHTC~!!K0bM7q454Ns$v`$6dAliusc9$GEevSl3J=Y-W>myg#K&g6kYEiHzgovgY# z%>*6Bo|0$alXSWWQLd?;$$;|w1}L0A22HaE4<5YUBMLPlPobmf18SYq`Jlcv#m?}t zQ%53zkHSGTUZx=XcFQ9VBUx45%Hh?*{p(B~A%^r|CCxq{G5iDnM%)D7MKMli6w767 zOH`NHjRhqJgPO3k-U(6G-$E@Gqmb;V>L~%@;LMy6(x#b81Zw}wJ zZ#rek&gHqJ+R_Vbo-zs=lk(u&llctlN)l`8YHHHHPlLpYt1meXF57^5bUK2%)Xs4n z)WMf_?n1^IYQ`~dxzR8+4KKFKeo`8%1*jhHOUjpBd)J}`l8KYH%vL$DGX8P`CQKib z&4qat`sWv%b6o$TSx!yw>O{fAgoFWkDgMv|;Of`6w{4W2?osVxumr?=%hnncb2YKz zI116V7@xc6eNb}<3b^%cn1trBQivo-x~@GwbRW7M-B6+QRS5Xo*Y~JE45h;H`D%sd zpc?~4^F54WIK1zz1cP{ef;VE;2ta;}RQQkeBGf}CAk~nvHpAhZftHqqjJsCXDfY1o z98;VK~(~`(cxr|s7rwT^& z=*={{zwIO8LX;WGwl>9PWiP>3(4;X7TTJh)0ZdgB?j%z)_%HJib^LwrU|roOwdqgP zx}I44%Y#xAy8~ak`|(JB@9+`Y>%3GkA0p3SelgzhXlrK#OHQLQx^TvKr?L2%D~#+<_G7sBE`!TZ+ltYS9cn$GSWA1K@>vvw zF33W0LXHKbm>8Y;Ej7878^rm{!;>76J}8Ihl>mov7u;&{=za^-m1+!ghqW`J?S#>> zu+U=RtF7{I9})hC8?lJ^0aS5HaplkzT?S$P;)jheQue3p9BH2RkNOwglnoDY3$RxX zLY0u@rDS3fAAbYkMP%LxEb-!24rb_SH?!(l9x}Z28X;$X-N{|)OF((K`;u>m2n<0O zmcH3sf01|KRC9!vC=3ZECdDI;!ym5s4tJjiV~M$n77!QPfJ;V0)TI!_g0mjHW4)r` zj~wm-MB;?rz@nTuTVloR)(E&E**4`7$el#Spk&wp4GfJEfbPTKf%nVgRcX)(%Rm@E zpVEm14Hn!0PY6u$=fthUn1wTr#T!ME4&Tg<) z{PG@NsrxiMl%4wtC&8}y3!6jvfQQko9$Ml?c6-4eB)-yG8sHpD2ubKK*TV>R=|&mf z)+9XJf;63{CEf*e!cgE_A}mXUKM>EeMobGZpQ?)BP{xl^>a=~6G=6#WwzQLo2!W<^ z4YdKm#7r|$#(()RhsKe%g&2s@hO}H{Y1CG72rA6W*3EP!*Z{oxT2r=B;G}fwCWPJb ztF^iyabTIEMBCwy6(UuV{nyDGcrMS)N5$`k+z*pZjSG>R7Wgm+`IIV7oJWmAxzey} z05?4EJKV(M`o>CaVN!|6*7%J;>IgrSPk2+_WRTR5+;~KbKH_DH?X3N^cI7|E)q=cSakwisUe|yqRG*V-y zR(&IOk*gL+%9pwa_Z_wa*2X@1tyi61i8ln}%GYwLagu%UqdYH0KsNdaEXSl z{cU@)aOWb|!`fSF_JIacjYzOjkSvA~M2cU8?FmCoHiJ-TtA9#4vdA;KyI`}Xr^swv z<}btvA)#2~;;v(lYLnR0>Xgfp{T*}kNN1mEF1x`YG~furWISvH%u#^ZF|Lk5Y^N8G}W(vgG?Gv1&j32eyroaK_&zLlMr6COFoIO^HX=a2h;X)o1L(NYjMPSSumksHw!8*8`xxy6K#<>G5d{;ah0e5 zASaU%yKov=Q~7daGLAEK^t!r=WB*nqry8YKjH-4y55G~!-rO80o}C`?Y+5tIpR5Fu z|BpDY>9uHRl`@{Fp1plPYAiFY6dbkPf~V&CK9f~YbdZp%B)-odK5P{LV!nNNs|71( zdx<7fYITidC1K^8NuS*;;&&sEjLX-K(P zuNCY+?)d~^lMjQ&Dw-?b`{f}1`PujslpcF@Mv{QI4Btg;LK^v=(x)dcAed`hxC5zx z1InC~D>asEn@){VGa71i?y#>@KbvMi*wc0Jps>>!7~H~wPuq%shaxwX6GMmoFbT~l zPkn+>iBrb5{D~{0h5A}B+au_y@2@&W&20baWSy+z23=$m;@3dXga6sRMv>q4?`NZZ z*c`pKp4%m?3uO2TJR~W3ta49?yk}4Nr>Y5c!>uh39<1J)R)A)1cJoNd7{uinP%+tO z)ht7_nFFw;FehR;E%ZpWP4KLLo&^VCONanfh@2rzK7uklgRLU!Yf)Mp0}rrCyMf~It61ANo1Js6e2ckQDAZ1 zc=?DZn@GdR(o0~kF_m@M*8$Jlq?++)HMW8zsWqWvP){x!+Xw81zepi|20dWb?DKQt zF^F7-0qUEB6MfXo)J#FA+u3|^atz(wC*_~48!ft2cpWK61*9DJaamlzXulBKeFW$9 zHup`d`P-9`QzC1LCE8nuI=)X+XcucGFzzSb_qj<&`TCB+Ra?=S`8FXmbdlmK+$@U2 zh1)q0=fztii|>Kkoy6Qk4`s;a-EXE52MM{EiaYn^0(l)#-=g1z*gfV$(nCDi{_vqH z3=Cuw;u}W9fPH>WCx;`RTf2I`hJ9;Q>$%7XyGyon zyhuay@)TJ12ae7a&PG|bfc>P`!JX=gmb(?%59)C@T`?uK&>P^#V1r~<5Z_P+jW4V2 zFwWCIM<#C+EFzTiVKpZl-MU<8VBT{WU=m00*zxy}Ngmp;7;SKKO|+lH)?w0#o2ydn zxe@NsOfz)$tM4Yb(Vc_SeZum<#)x{I8G*DBx8Z%}%G8OZ z{^N(OIiLpHmCK0+*L=^#Gq7mCegnIPW_!LjY^K^va;t6ppL!cn_WS_y4{Xg%y8d{} z9~@gH2b?)+(h`bwpI3z-GRGP0HGg6!b*q`?Rcyhv-5$6nl<$r;Sngg+P(jGN$@Vz8 z=(+e?g?=~^v+6?Ti3S*B<^!V^JC*nhwM~toH9@VHe5Ob>POEALsi3)%UQwwm}N$!sM2e zv?d@Sw_lV4&;wp%^}hVf2W^hJ+rI=Fs~;uwIB+1tKFag4z@khCwsfSzZvwAWzc!es zx=<24NlHf3=@6@6>CNLBHw@-d2gMMXX*JRdF zt~Q-6Qqp~*&2)k*0ColnA94(W9LX#ZjN)cAKjj!@>SFTJJq8;-J+pcVc8<(PGK4BA zDNnvkO;p+Afoq50!FaHhkkS*DdFEw7%&R8O{Z~NA(ge3Xos%2%a*X2YiOz zj8&wC_WUQjef#!yW8_Wz%dZ_8^S@r{_{%;lAg%iQ8=*OP>o%Mh-Y4S=(A|6k?@yF5 zUmxkQpGCSM&*}UBs|@$_EBL<{vTgs=(1#D4{;y@QTl>c{4vx!$iS+dLPKrK%|NEEI z$-oB?O0fN}6U4t;_MdnTKieKCq-E2RlttVlVP{FsEID)TIwB%&jY(ZW%x@8Kup@*0 ze?sfO4PnS}L0`DT=3kwwe_fvDkiRZZ;%Ucr7F^7O-)0RhRXB#a+jG_L>WBv|qOtSJ7;s1MD|NE8yca(vQ2F?;EP!-a#C=jA-VNm1z zu-e5?=7IWeTJS+we*UYifDbzq6ciNS){02$E_1&34cBtvBxO+}m6DQ@Qf$M-+|zO-3=jk3OOIlBJs z?Uy(A@;{yVILOu0*BFF@ce8ydn}Byd(kP=+BoT7(QyfJ9;Tb=tM-r@y{i}xte9RPV z-}yQ&Jv@YScOe3F$ebuQS`WS>h%BsbKLgXGy?%$RDBF0stN7quRlS&pn~2gqDST=H zJ}*Kla+1(c&6u18T`7P695XChrO-?Q|222cqBld`QJ2LFm-{HyI_ydXRK>*fg?4^n zti~?OH27w*`CSt8s{0C)s-rcpiLcFD;4W40%ipq+XwY>sEBJEKs#=TIXQ60N2)(1y zpUWHoRD(V{i&dfs5Frzv?Q;ZinA=3j)VG3rwEjsl!X#_{{v3t}d-~A;NcRdLmwU_o z=#RJh-)8XpbH{5SemE(p?a+At#t@+5M$@t%#oY*Oh3wS(gxWzvbRp2s2Ru(F$&n2^xK*5=krPQA}d?>MZQrSw};&)3_j zELjL`{F=*I9g$d`*>mu5a~QdS#^6%U&U1ac1dw9+Wr zkQleeVo%P^PmA6HAJFGCb``*^PK z@aat7L&AG%f4va;nJ$N2tJJeYC}FH8I0rXCon$ZerLGb7fl0=09B2z|ZVYf3PWbDm znDYc$>G!q|=k|5QUx-z_v*fN17sPcZx#(5}{TzT1kKA6#U7jT-nY*y`5venr}F&VTx z+a`xt0LXS{;G%`O6T~86H3>nRKg2p)X0f%rr&N}y67@3AmYe6()i5hu{;Z-fM()q3 zp;D)$s(PLq8@fDLF0owK!k=SSGqjvELFktu%3k;yQz*LD^@DlB#bK9cR8^B&(4yi= z3e{lwcaC;5LrHH2qe_}uX65?GMyhkQ-UL5Myno(6bYKu5;>~UZfn){CJ`N5|<&7x} z>uF>AJX)3GUj3GzUXkaF*q;~k5>MA6T5kLFx@aumqNH-Ya8+loaclEm{1+wcNSwcdNIpe!YvE zCaJp@7jdy@Z~aZb$!@VUpQ5-z=?q6CH3+7AKFJM)?ZI}AZo1{0 z;DCDe1?%pK3gy&Vx#iRXJe3sDbFeo(1kO#XOa00M1p4j|^)VkAiwZmZF~jKBavu_( zbi}8snvq{sDli*q>i`r}hA?>{g8IieL|ZNCQLDE5whXMVr{Q(`Il=BQ@rO~ckmN-=$u z>q7oz7o6o@?R`rj4kI~lLXsyABqVZUiswz0vflVKU^(J*8Bd~=#qEB$Jg?;@Ajm2hcyY+8tI%UVm+bhcG_lxrxwX{diVPOBj$7hzD z$JNo*v5ZwO<*WsT{yhSJbd%m<*X~~r=-+1_+sR--W9hz{hgY@e3RC3r^ z|3oa6o@wk8)qu+RSb38Pb4na5uumRiv8Y~x7MZLppo>zv;bZBRwyB$6h_;m)vHa%m zK-p()ym_xTcMD%iiX_LnH7fOq8nwQca^oh)Wxbxy;~ch2UsKcE7u&yLl(XK{H!IbZ zJCHU?THXl2VUD6lpKN$`G*qrr+CDF-c3PK&W2^YMtmEYD>%f&gaX4e#nL) ztWFda!{URldl*huB}J9c!EV1rO9Xk{high*S zM?EOAkwqT>T)yA30}4|KT$;&lgqm^__Jv4c>2o1_2i9FE5fLziy*3tij8(Ig3(*+a z1X$hhI7KV9ycDwM#0NTP0{9e&I+`Dn%NYFxXc_nV0K);L0st;3pq#DxE>Cb)$+L6rb>Sj>66E*t5N~|T9Rkx9|5}okcEx0X zF;%vfS$559uq2-b+dZ9o=G2Fp%xqJWvJw# zBXg8`Exmg{qBmc}^@m%jEpc6?Q_+&jNKUtP1jfo>q@aqdpNm}9`AIdE=;?1m5TWCbNg z`No?!Yob19xC0xOr0o5dPmNNE-7~-RSf%Ao!TB zks?0KOf(t@ftPUD#E&c?i%us9hDs|k&#myrm39E!Jc`i_QKW2mb%tnAA``%_#4S5O zxZgK(=VLU!W$8?E`5iyt=)R8tm-%_|?G0;egLMU(OFub71F5?;E6Nc$Sn*TFh=QIv_3d+m!Pj5uY-^yfUcpZAohEcDmwDM9fr4U`^W?HOXZ31?A zX-w<2cbxV)W(th{EveFRHeR)Gi!BQ?V?P5)vU}Lss}-c|yA6Rq-&`d)o=fQOFV)%6 zPrM^TMM6oK;dg3(->|$aS7be!ooRj8-4&lkz&3-jDSAdtTjTwssdjB}i$m#-+x`$r zG^tUcB}wKp?5S1~yM0gM7@ZgJN~#fbGjCCfJ#Z1!AQ@PGLY>%^>IAH=J7 zXX1d2R>ewLQHfVVOiZHZ>=1VY?QSr6X-$~i3{!1lZ}abEjDJ%jAP&S0K|WbxYb_3w znLT7EC#qO-s_nXtisSb?I7g5*B}7D|Z%`*;Qig~O*2yPjc#rJEQcVEt#uc5}i(PbO z$OP4ng32P$QIo)(N*dbKa-K;-sIT=0at%z^1VMo1TQra&2>AB*X4tTv`e=uMYgH;; zorFMI(>$}=H4HqCAkUcV3QwOYvrdG7{iIkmtju+{dZolzKO8-4i5A1X{}V!)Q($L~ zIaJy*zh_9R$k0vZ0hvYYN>-`x>?!=fOJaS#srS>0HjY1=@kn~Bsjsh(pPm}{?j=UA zuH!jJYAL;m8qW98Avp!O><#g^kAKrIGbg+3b=KcF9kOhXt3MBhFdQBd2Keb|CU#;P z653D}?%VzLkHmup&i{K$-|Xe7fk z{HPgR>6kF+JkFF`KXOS-zb(`=>tScNTO_<{Po8~Ea1Z}Y&2jm+OM4#&fBlf0*l#p! zh%>C9#A1&p<|Z2S|8nzwPS89-X|&oV6%b3;JQHPc`vCOlD3Hy3hB()oE8%S))%&~s z7iZenU`aPluw1hOW6B$-Ug2mZWYb8!+{T<$7qhi8k*TZ|V6aBOq3dgvGw1E#XQggQ z=8NI+|FKwkeu&`U$vpdZg35A}FNeqeY^u!BK`cpU_UQYZEe4AK-4BIo%qIp%_AVZ_ zjsNl%|2t`k&qA6h*rxv9oiU`lf}pILiwcFEZvw{8rikzeVhTC1_*_&Xi`&YoQOphs zkD~Q}`Y%$7Bfb(1`}b{g8B;RaS#yRJcCm=*e1^>Fsc zlP=a*d4{b`!>P-lit%`VAQyDFtlr_P6|L6vBl0x-Y$?%{-C5@^-%ZDgx)ra3Fk4eP zHW%5zf9HPP5+e-zJj;kqR7QsmE=jV^H&~OTLUeW7IuLSYn-6-pj)fM$Q|&*tzg`r1 zcBjx{0XEjExC|kP&MxUTGw4Jd3!fnkE>y!cB!t8Z(KIP&i&@`=z5T)`L*os$pW%Tx zlOy-(Z)S?pr*kn5SaUh;JbS<)H-vw(d5M|TFUzUb|1|kQFIcWtzhcd+{#n#)YN{Et z?q*=MhJt}Osx)J1@9BtSRyoDlmI&&s%As?Np30FGlUWk52_LlCtJ+BV^J#3vjA-WG z6CNEEIk}6N**X0Wy2rou2bz;bn{ioZL{dc4litvx@o;vxC|}zC6j9|U@lpM(0;Q}b ziT+&z-vwUiky&tF^TJR65+HM_R`6g+QD|$>=h2a6x5N$VlRa#{l9fH{?YOag@`3h< z6db3=dl`>`M=R}DV9mq+qv%`;k_JhXwpK*2&h)XV5ucTgqbU+yl`StfmczgQyzeMC zhea^Qat-zRYyU<+zcX0g##jFP6k@!4I$Yc={`H)3zMd<};%=pBHd1x7x&_P6Wp?>a zTC!g<8Ep?DwV9jzPqU2<4CDnBO_o-Nl|~gZc?>sT+f9J2TFXI!BZ!9el%0(RZU?nZ z3kQEqHnP(GJJJ{hXH3D8-;VyLS7&ep?*nA>aBuNflqk-%gN3nuR)iQkW*>HhTGSHC zZI9n8eewS?Ib^rVcvh2VM^G` z`et@JX?fvGqn%4^=A)-I+@fznBPsE{?%v;mXuy#Bfo+TW zAn|e2uB~o|Q3vvlY_1!^7ze6SJw%D*cPTG+00bKhg}_QP&jr5DdXmkS9}-L0HOicB zT8*XZCiaM3E-Ky%o5|T6ahMo!7=81jIZRv%KOm!MfQxWviD-FT>VWj6cc7n7)Oopr zPQ%W86Rm5HH`{hea*`Pn(<|oLn0;7C6fiJArr7^b_5-d9IH*(_>g^5_ zrdxlHyBG`1VX>-G5B9B-V-abkrs1!B!(FT-AZcgRc5TPHn%#UAq)+_8MR6Fln~&6O zB0DLFAm5`ZWFrUaN>VJATH7=S6xcSGyhUSTMRDfkpXJy^AMUj|ZHewrh|;^U^Nxib z^Jn}Xx!yb6<&3BR<6jKg8J~u2+V1|i91}1y!!xn&Z-v<<23R<5m z!fH&xooI7U;gz)xwma1w3cpi<|6wzlPNqG5`2ICwqi4x8HM+?u@!#;dwx4Yv9CD?j zA1uwtwsCPZ`qJdMIio!BE=9{f)U@}pMJUFkvOYVFLy1NE0@gIFzNlTK(uRmEbpuCv zgoc^^gRo{^?C!v6izt4+OBBVG^G8Y)ofC7SomG*{DTbRU3`ox^do3q}F zMCw$wF8EXeJij*Iu^kA{{wFXeK$jpQ=Dg@XB=m`=Mdl)%u=oLgPOe-?DkQby}7RnKmIUZ2q0e7kYXuDvx9RL8sVmOq)|>9;JQ`wi!_ z9i7I}jt&O;ipn3KYKf(5RB{oqm+!{3lgyjNMoyQf6*ZunYB-EPFBzMmUvGPDZ?=r8 z*N@Utj7|EF`mdROOH;M1TkwdvxJDo)r-`*cotKcq5tgArw6jnwF<-S3w!B`}thXNR ztJgd1@C{o;W|S$E-m*Ka_|7ghO`9~_t;B%}QAcrvT3=9%Y-Z~DDjE8t`h2&xZC7rF zS^*QXozvpK5w|luCE(_}x7F{f{mbE0^VLBG4zG%-!D z!Wd0{jwBRH0##}`&MSK2+a+cOEN;t-IZuCfsf-ZIb&}^;FNx%QaqnyBAaL+I${nlM z8Ts$~L4WnqzJMu(JxVh>1n$c6z^NE0G>r%VvL~9s2$$1TVY&Qi^7nu5 z=-u!Y1Wr?AMJ;HrbdA*;NpV(_!z?8)m4Mdj<)J;u&J6>GK#YkNAv0^UJzRs|y78`? z4QI<8)@%*6O--vZj{7r`Z^QN}kNjSgdT9;&2v9%GUDrX>*Labp!2A+%#4tiE;goFY zIzhP%EhF|J27ggl{4D#f^Y(BV?r)5*W@>0#$!>#+LhLawAV0u_V*2W6)XmB7xvq+F z*na-na&wKqe|e~?&F55{BfrgM?a3FF_JgzB1RU1W)tgK8rFoNe>Kd4wt~~)m#oG!n4blZe2OZEWfIx zgx>^2_Y{|zn4`XZmsy}95@9#YaOyJmvw=#Rt(-@cCT`1_i-+f~fyB_!+STw(sCZAE zO${KpN9gYe*z1WxdQC=T70dGfpm z2I2;#IX1V%amkewB^1xTA?Fu}Vp6Kljg+bT#2apK$7|+VE$X;~PphcAK0f72Lh8?b zgZCo>fi?djs{O_E{6E=D(~)84irhJ9!oFaieAESQYRIyR8Wy$H?JI4EG`F8VX;#8L zT8nU9a6o%+zOdWdM0B&}>}1S`!a|Y`CYu$@H>1Ul-< zDZaKlpFyHAm~$WEk#Eh*v7LBF6X*vsevfdchUG5)35%+|^?pzZ8yuFrceJ**z_P-- z@S0T7buH*p4OnVI5rGiH*$pICoi*EguL?t}8P(puZbbr=9C)m1yIYm60|YsxCin3l z)Rd;ep6fQ>PyM0B%pr?+74KXdT6n)D?;McM@Khe`Ta z@o#+mMqBDn(ze$ol|z5hkV*-AFI_ZUKw3DF=dNY8R`SL#63j$W3EqUK@)WEtKH@!} znP$1$*y_13G8J)G>G7Rc1pZQy@rDLXg%T2qN=o9}cT4xO>7x?S=$lLwl=@q_S2^OJ zNVrZhA9OJjKItTm*j)tTg8LpPEeDXjKl_b*tde^DOiJA71f}?DX#j7uCP!5PUrQ7l!TsHkJM!2mHO_mi)VChd8l^2u6Wx zwr9#=VB0(LZy4OpZspFeli;X!Asf1&z15_g+X!~H_boZvqKV%^`z$#ytp!^_Bhp|) z$acB|kx0a+;$xqpno%u-k7KR1(_$n-G!r=tYI`35li6%w;g;73%uPf{hcbLh@;K6k zfHAGAeL!!*7XUgz>#pepwZhk&5`Um<>}q|PA>6eg2&#NvPl>)pR=qh<6drqPeGZPv z2%!Rv>r#zb)#FO|W%hj1-hZKpkgL?8fP}!Sn#Fd>8tVu3Q4ozBKQF0tcMwAoJ&}KT z-H(-LfIaU%Zo}SYUtr@zdj)B&H~wooi5d9=;G`f|QJ|&_Ag8drp>hEO{YX18v3U{Q zyv^O)WtC*BWTB}c4TtUl^iB$CcXM!SLM2k>672@WO)i|Fc@w(k?=P7kiWIM z?=omsJ8spLVjuVeGdD34KIS(y)e=~OH|igXnf;K6zG)MzSsKf}*Hm=1tfwr8al}N0 zmP86%rmTS?O1ZHMs{H;Qa%P2&Tq^^O0m<9VVMb2Ct2hB#i*Io7NFQs7EaZ37@A-Ab z#yP2}CsFpuKuR&My=wjG3`3m+nI`d!QP7ueRXd894k}FcF3W}?IM;SW-j$9y-s(1 zR_&a!tQ?DJc;Po(CfXPD5+5(q#a?;KGqzU#c0T{{wJ(ov{_x0L(~IO^WUN{_7Ww$6 z)45wmj-L3(Kj`m3CrO;@xbL6u`t}fB(V%u1Fb{jCJ8dpW!M+Q9aod@saA%fj$gqE< zX^ji-!%A_IegJ=RKV=RRDHfx=QPNiSZ3IZqdq9;wzM;s60;mQm?it*{RO;?5SwPz> z0|}FN8W#rgQeeiy#ei=V%ImW-slF&X0^LW z&l%5;96L=Xt8@(7G7k&q8>qL7aqyW1YD&{%giz9wo$+`ws1E|(m6L5kjW3QxEFGl+{=gE$R zR7}aOnaF{MQqn?H>_YKIcf(|=m)aP#QOR?%)$Hve+x2~v=e$t<jB^sd6|IufDCx==$cq9e-XCoj*TTTVOOq zk#xl@as$gS^wqUOPkwMwV7_$;j{J`$< zbh9*S^8aKjU_{S zJK^;5omLFp_P3^J#<}M-FiNZ`YO$yzww9w4;kKugR2K(Lv(`$61$B%Q8Uv^WNd=_t z-t{7SzccPl>$jlQ^8bx=7LA6xYWm}wLd(Mjp)rH{eV@mOsG?~W5H znC{!E(0}p79Iy5F`@rFMz%;!Nov9}Di|<9Bj(M$@qXhH6Cb>ilyA-BJCAi=jR6oU{ zQPSL>cbOP@0#UDBp|$a12vJg3xD5)(?IWC`}Bdg#rp&gj|Zw}NZHd9(>0PU znpY070O4Ko!CcdcH%v4Rmb{&de{mV~7O9nQpG~^Pz{r0|hMOtHc=2|)!ZN$;=O*0U z1;MvTL==5W2bC#|+}v2z-EC2O({E)fA(5dN#grH0?n$MD(~&L~xFeH399`7<2Wc%r zc;rg&E)a!=PsuCU2LxrP>B=Xv#2eneJtU)-jlv`PIIIzFZDSJ>78AdXWk##kMhUD> zmzs2?jwX~`ajSfqB%-yH7wVyCujIv4%%YO&G;1nu$2zK9Jy|FN|Ulw#>Jx%I^HVPx% zmGD+K(Gx!-D8UoI`{V4|$6>d@qFJ(qVfX8gBck;$)$$0;&d;FLHXN^#?f<$FakcZ* zfAB+yZM{B6r$c_ev6}wSTRktn0Iw)FYT8F%)ggBtlEpcKhY>iBUVceH9;P@AvC|rD zOiXejKZjN0iDh=dEsgBfPvP)U`k>D`MWog8<%=8)*@V4vn_jNXV)5)9tM*tTjE+|C z+5<^|G2CgKDmEq^=-*1Y+1RLd=DEYdjencMmX%}{~#LX;=~i!#;B<> zMevnvf?cimbCBRq%%9XLL+qa%=QO$3c|man0w-IaT%vBp1bLDl-%DfO4z*4>C=HQ% zGxeDF7fK#%@7~Mk-%LR#T|=9eedzi2xzu@LPCK7rBA!TqC4HdJaiFBc`p4tBE{n!A z^~ORR&G5|8`4eQUIpHxO@h>m#ga(DD87(f*CdQIjMhM0^s$O(T3wZe$dr`CPh>{&U z1A}s5`1dQ}K^KC*KfG^y$BR_O<{<@Xm$l7`Vv!n7!4nOIR*D|Q;JbE;6?X{&ebd`b z<5+q&ntA!cR8Mta<6??Ny;PnOr*dYq`2{OWba01{>0Q-wcev*E-%w7i}6tx55o*NujYY^iXuUfceA27(BmDTKGFYAwfPcpi~)*o(lD|j?E zYm9eM)-&WWgR$y+!snmUyNW9en+^s?&<#U#)jA^N^_7KH(7eG*MtG*MMV4c?6ufq~ zhBX*X7u7N%gzvf(WhwdWcW|sJVeChUzc5{Fa+eYzzWFGF32Xe6@9}1yy@jCS7k0MB zJ6;SksWbHM<9gxUB6sj#B^}<&ebiW~xPWmhDZ@9=xr%jjh<4 z3qL4#(P?u@Utbt%9^F*~(1%`zW&3+!>CaDr*<3B(_#KG8YEQ2TyR7#>|6oy$aoLZv z?Rx5WT{8FOda|oGt>ada@OJvAlX4~=F?)W_d=wxkFghwWdq8@nSPLE5lsk!@geybP zw@3yW9-RE4BFi{%!u(S2g$7bAVdS$4L?LJp0X^E7Af^L1;JN?w@4V(5AmF_ctnjC< zzodywXHiBIrAyv_q-ZalX`+bv_+hTEC(E?RWT;J8V0>C_cBlX>#yKP;;-jX^`ja*X zNjo}b^)C-d8&=HUyg7r`;J~I0_N}IRp=A^9+)lZQ;h8D$I8cr}l^2V4%PcP!J6ijS zMT*MJl&?sey)U~l`MNN}m&-cFbAmGwCuiLrGGj5CnxRZdPr7M`xMxP326K1f(H~K7 zHJm&%`*OVpN}No3vkPy`b!y$?P5sgBuo73c7U~3#48oK{5 zx5Lj5AI5^RaLQdEkL%_IMEU9ST5Xo3T|kJ86f)}f)n49$dvrt*?g@2wI8%oN9*+M?Xt zBJ9{DZ{YQj1fg@igM))YVuEIK%B6-J<_ZF5j`!jiqxYoU}ULj@0u4aW_9|}!xA_@Lsy%ok` z>qB|%igDklEmkx!@uY@hvKrTu?|GG>bA_`57qyvrd1V+Mya^EV6vtB=Rr*%(YT^^n zie|>&EOje>I8thNTzUt9qI00)t&}1i8*`R}anbNn?Yx_5fyqzug`E|LtCI_g-LuV# zRk|-i6c?UetqlM+WIyiLvT8ZP^oYtuF-14W2ohDi>Y(@FCM8HHYZo zx&Lu2|JzPLR!&FdCU54QKRNUD5=a_@hOCkRi&EP$MhFIi`Kqi~on6fQx(M|I z+JTC-(<^+olJ6Igj&=QrVZvTtrX~hrkA`}o8RPVXa3fUzF=)4~*3oA}S=v<>vUDM$ zne=7GHm*UpC^{%O7>@?;8l)`?r9Vf?T>RF61quVL&3at&pJP?pAMORNQx@l=1MK6t zVAZM4W%AAe7;XvY?-={(DyT_mbR|Sj6`o?4j>jZ2DWSi=!XaY0IBm_ir&Ab!)|4vJ zwoaby$-EeJ#$%{hlhf!RRoi_mG2e&r;iLOP#BDa9c!hrZ^j0uUx$qSm5{I|Cfg)KI zs!BCWZ(nk&N255(vxgpR4?SsQW?YsnXlQA{ciS6_TZIM=dQVke%~SE})u@pKRddM! zekXyqcCz=dkGgR*WfX^cSwo_NzU8n`9t9`VH|ic*R(>=Co?nhVMm;yAJA{@l~?dQ_m98 z+@Qx^y0?B%5m^F|24_eygl~BhQln!99RvcAQLVIWCZ9PJvot7@Xl~PF;FBW5=K#N# zg4TA=TYB%g`EW4#QDh>ds`+277q{l$=p6UzbpUB}XTY2YHvkt_`zoLYW)L<@$6*>% zEIPD3m-VCZ?Y6bKJ{KVe=ynK(?Owbw^Waovz%yN)%g%o#CwCz^F{Y~JZ^}69*LPbP z&6NB@nO%s>MeDsJ1PFl)O}yBlAL1yCYw8Pat7w$qaIStJ=|QR17>jB~hTsPJj!7(swZq%hqlEJhT8pDitx;*+n1Q$%{yzqXBbMoxtAE^)3a7LW1cneJQP*i6N z(qEoh?ane??c|j#aB6fn_@U<3D0ZgyM7ZRWv^N6Das;ts3y-PY6veJyqhYc%8m}c# zcSyY*J1c$QaWKVD!E2PmlzdH4Ia=(;cMYl6U!Nto8Gi;X?Wy^xxP#pkAkmWhnrlA9 z0}TUl(BgQDimU>fK%ur2hs9B~O4pM40&KQ!?Hz0TBwd*X~gz+b!y5xZ0y(j=eMWWAu7FhZ%2&-w$`yfrngH#So?!>e)j>B)k8$#2g8 zF-#LvL;yo6lv!~5ZUEKHE2CkaF!< z9s60UxxMz;XUz2sI>zHgLU{WI1{h7>%XX?+(k3cXr;Y4fx;fWIy0`@*Viy$GRvc^G z`C=kMV?X#ESKYSRa5vw#DYBm*Sk#CP3Q?4u$NBJ59x+QJApbov4CxPuztyuN~8Km_dus0cKT$`wu|Q3=5suDI0V4l`sR^ zoy_i4yuNg0_mGNhbZ*Z$HdmGROIH=1u9x6PU-5@n!|x0WocZ`F1I2 z?u87)Mh9j2t^}rVuK!{>i4Wj{a>bIGN*sn7Ju!I2EJnX%@dY&L0_ngkNI#p7mOC9a zgIp;_Jl`dcx3g54cy|_))dLv3__MXgoJloWEZ4n;X+3s3C!7~uhUEKyzM0cu*a1z0 z48W`w#Ftg%Yylum0h%MiUe~3oJ8tX(UB4Up?JmF+u>ebuXV0v{^&&kH2YMm5X)(#0 zknqd_RGh$Ga+TThnL~AlHhUFutqtQ}p%Vwmmlh4l*|#qmOaiRUoI$Ck{f^beQ@PlD zU31ORIpPA7u3OQCi#@e$?(r2nXH)Myw7wKALM8ao6lhD)vW` zExjv&j_!`K#o~)@+i`=%oZT`VzdCTc&OT17m$S278O2HD4km~J*aARx*xg2^WaqP%=9cX zs!XZyg1qU&dn3$AT%oxe51PW7Lou2|_QpT9HBCCV46$erKTFTH`-60*w-4{}zi)d~ z16iAx1>PU8@cbzr_}wB$zqWhT?5n3Ft7T2Pll{B8yYZev>Nt0Pb_WJwwm=8#{B_K6 z!k>cMBqS&p4>N3?x|1vw9fM0tO4nkkr27=~y+phRsysYY@3&VBL|d}97-Mhwm=qe~ zUAUoLSsov)nP=QdU)2|OMW@)Pon}g^{^!xV8{AH(pv(6K2>sPN3LnmqCIA1aTVVL@f7sW#GRYBTql%QZY_iF@dNRW-6X zH05RF3|jT7YWpy6>J_n&?Wix^A{{T1OkG=l!ob{{-9A}TuKcC=9n;G@+2>u{^lHRS$+TT_ zR>m){M>R%Oh@e&T3{_bQ>hvck9}evBnk>9v$oH61Gg#10+D>CuJotR~p{cX?g$o%> zu7!_LEKnmwhbH+`@-Sy9@luZ@V=e>-Jrv?4qyL8r;_sAF7T7lNo5f=J|6J=$(j_wX z`Qeg0BnvpgY1Yq9KrN8}b>qwp=J2n*@0}(i>DjU~N44jr<3vWbuDGe0A0e)mN)m zEcvA|82&EJylnl+1g&8HlbstsCMOv)?)U_;I8JUY5CoD$)z-A^mHx^~nXw$9U)&+% z=jWg8&-t)&`||pwYg;vUb`I8~J^(Dqy*^_MX?_CStDVVJjlgg5E#!iJG0Im2jRQ4H#oL z$mxlXis4-WUh#CD;Yd!SSrD>Wk6>VCmL$`7`uv{g1|jJ&q4j=!gPKoClHtyZ;@!&(=;ZeVH*_31fv-Q!K7flfOvb^mFYi9vWm!zo_UI;JYmc7lv1T2PBXYgITOWr*R>_qyvxKHiySH`lujbiv29)U~J~ zf}_nT-Lc87(fLnCOny-JC!j+w^ki$HxKkBSSPV)YVvjtQSjuIu%B0WkS%7GQrW0$p z)8Xy?hai3(cwcKT-=@i4v zP4$f0;v@~bMuoFoHTMbY?5Q*4CqF1U(gJ(a%7h7GK+nIz{X1z%!YF*!&|vPzMcTQl z=3arLwc>bvs?Ik~4AjtXOg~<}5F@K;VNobR?T~L#o*&5cF*$^?byq@i?N^yL69>1H zcixMmR2M?tKE2Lod`T>YPxr-&D8p-~>wXuH{K|d_K0fAnWa<8=pR>I)b=I8MO}+t0 zp*1b){TSe0?7^oge);m{c9sKt%(hb*5MPtOQc$jdLpkg0_tYW(a?2Ni_=>WkCvy$h zZT*Rd3;nqdxtSi=nWoGXhppw0p>DsV+1Frj5R!apQIV!{ZG80X%75wVePz8>{nq8! zpEIHx1{1AirTMUO9vo=RD5z&R!@>{lNp~pEu?b?{Z>7EqyFWQu$n+dio^^6PKu&{@ zL<%lV^i2aFsG3mePu{z4KLL!z=tLAuWM{yPHUtAa&%=7pr9j?BQXXA!c!(A!6rVS& z(S#?5()GT<9^<$o&Ona-z3OJOdC;x6vp%Vfc}kv2K*c9Z>$WO)y9k9*f=MBFhXGD| z6>J?+fJ?sTAxJ5B*%W|PJ&0n-s-veJXm*fc;ho6`5@j8SL2O^J(HMl4TbsyKYD|cj z(_+Ua{JqDVe#St4ciL$9TSvafP8)b3MAHOw!T=iiWq$dVhXUCkTsHc7bsHDwFlZ2qPZB}Q}ePN(P%EMw$ zvy3OJ=Xr(c>Ud0O)Q(44Pq~v##qRD2RA4o3NaxpPivN6}n(jf0xmC=`e0ZPEwZl

`J`FeoJ2XCAsNOBhx!w%4LP`K2i0*Tn^~*{{adm=TK>C#w zibr3fP$D@_q%10Q7^-5o9s7mR3UxRF)ZX?Qs>njqZoXg6e5jBWD|A(zT3MnL?(%)n zOTFGu%+~=sW$mi%QXyWTRIy2=TBC)Mew1X`Zi9xf;(T;86Z7&I^+$! zbW_(r_ILadg@^rNr!f2Jh|d_W@#v?d!Oh0F!8oT|)}DNiBfiRq=KBcbx|`e0IKDuJ z4@^q0(|z35$7#yefA)R4T4mDeC7Q3_Cz3?VM~8VD5gpFpGWtWnwHN0gVulWRkc*kJL-$071#`Q-Vx~eJd~Cu9AE#vzsD5!~(#7&2cHz9l3b4Hrtx>;<3}> zNGJHZ=&i6oFc5LX^IsQW3G=zdaRLC%yxgFuK(2gZj9XY(b7y_watN8wMd5#M?eQVU zoS?^1;Zn3R2J(9e5N%0Z#PP_SJ;qi+Mx+~r%M|BxivLO-{tG&Tg-Ge7#F6LZBv7b* zIMrN;M1j-9@WpfQPeK2_68Zh%ZJrMgYwSTEX&XHA8m#X<0hJ{h`cP(NCAd(~EMSHq znmm#?&*vmk9IfT6O6wOv!oNP)i2nSo0m465^mj+#>)S-#H()*EAu5;Q>G;6YxzB&5 z7ny9;Rl*njqWbo)|8&XzZ|;1H>kI^nyG3K}Wnrx9q^r4tTVN_`bK7#9SMI%-=-qkF6r!0hF;~q{FH!<9k5ZOa27t5_K#_2xnbYB?2KSS$x(WVcUdvAz za_%9AW+!9T!=c4SO!12HQ0YaNA)H;5F zHiqFyoV$X2@k&95;Gex)T~ReOZhEq`MQLA2#|q3~m93bf3+pl zS753Pq_3tlfkfFcpYhFULl_d~WXxi77Ca;q8FqB@|@@Oq=O4X#a z?{2MNLD%a=;~Db1n^M)keqT)=nA>ElXxQHUV}7TBLb&!E-OX3x)o)?w06tp_>}g49 z^|#Bq9t;1qYs-rJpAYYJh%_B|Aef3TU;GZyL=o`*#|Ym?My5e))Ovb))oaAqaafz}*%8Mc8I~I~ zco9&dk%F=7;~N-UNpib8X_^^<{?@}iXf49T`9-PiOd|AJNlRngcAz|K@K>vHui!E3 zkAL;*1U6l@n}4y;dwI_QeG|yF#u9;-Y7p+4V_k0>@RZ&k7FJo2-$)SYSgdgRzX_to} z4dR86q}*G;1}WN?8R57^+G8~lYxuV(`bz7oH?4a|M}nB!$)6nwFA++Lr=I}-HWy`@ z`3`5C<)eWv=$-&H;4NyCxp~sM1lf*qdeoV&%E_RD>NSVdcNQR#ja;Po`OkE+ksYR> z3bHR1BhZ3|VbKsC4HJ`2vCWjUR5XuNFoR5(=Z{@(yeb&z$bbgk)3zkO1)wSFh1K$@ zS9rcA_F16F{t($9s~%sFasw@#rRfb=%}X`y%RHJ@KnN;01-%*S${ia3d+h`i=MS3& z=n>h%MQ{-kvHB*i>iGpG)56f>0ql9W(E9_VI}CziZAR(!zGSAbx_+B~7!+SXPo`a}bM( zjxIh+*x_B9c=gQucW31l(jJe9k34zk+5R}izfYWQ66e>iU$&6fo9ypyiMUXUx|g@X zf;T+@OYu4+fSapZ5Zz+Y76t>mo{RHFr=di?ttvg|Cu}(?#Go=W%5vQ(tfmkmT<4k0 z65bV_ja?;`YD5~>ZgLEAc-d~%t73Q`RZ+FKT3`4AVyYV)&M~_+$9*IiERENq0NHgX zEAL#K=h85;Z2}^iYgxBj4Qfyrx`?s)4a@Rnul52sA}oyVW|lVr8ouyKhShOelfO&A z`4oPu{pxfl5`AB)sk<}aNlHg?rQP?|Bbe?TK;I{Xk^xErmi2R!BG%tO$7km4w7rNX z)gnj+%$p?X*L+bIh}X=;-$Ay$8+NQTrq3BTW#QymZ2zefVlEzLAI}}h-~<*OZoOWY zsb&{{iw{A`>Jr?78v&70$kRTLd_f=ZT;h*U{J;02?sfHKYjiBybQHD3a^3KDDZp)Z zM$&MyK!lYiZYurGNc`=WO&TdeFtbp~GkN*56-^eUpWTW+4j9nh4?AEnX$ad2PTS(keB&po`ofK> zJ6=Q^&ar72``Vo)k1FHuk3J{a)iU@Zus(xAwMV1S0xzue6pL?JA@G&)UFt|wgAo|; zU}!%rPMrgYD2`xXx~f7)M(Q(N)iKlhf&{<?$C$`J@$=SK4+xMYly~UiiCpo+ ze*sSl`KvTx)Ni{43Y%*7V}#GI{_~RxsRrmrEZS~#0mMYXTa-tm9P(zZMic4)b~G33 zFv@tdj+CkR7e4tm-YL=|lMhw1fl8en6*m*Bgh?lj#zjm$|3CJ=I3(A&d$YIVIp_0v_rA}& z_wzgdoaJJ#xz-$W%rU+r<`_hML)p){C33X*qVe0H75tL?Imokxc=#zH)4Cdvz6YW0 z<&gz-wQAk;w=mGAoY7VSFFQ)Q$CDPmJ4Bwgbr~grxx*=!=`we;KpKJA>XVu{M%TtHTky0+ga zZ+9CZ8`M%O5@4Fqs7bOp`WGq*$RRL~*X(Ilm72aqg+c5GRs_P7qn{5}r7-9Pa{D@g0B z;(w$tE4349d1+w~aM8r}rW-1dtu^Ve2wJQWNp!7kJYozsAj#6VMIW_LNEHkUXwE0>{;uwZ2{gz3kzLjv-^))%9$CdG2^#fXdvh(paQ&Kh=yTQke0AG5aJH>v^kF=HCn8NIw7|K0v7TyJ z>LV2cI1&=8w$sx&r5z?EWAN(I*_Uvrk=`*<92{2M~0XSu|KXH;UPq)G$ z`n>FZlA8#X1zC$k+zh?~HbfBOF$6^SC8=?5tQyY^sX;*3KpzPa6Na3gtI%t3$HiP^_1i}w)aB4#(#XRZAb zs^jLUg7fbM#J(KkTVm%CPwg@01rUVsfL2;xR72>qTZBQab)h^gC}bEsZFiVVyFWaU z=c>uyMz@?MMX;H&4$)wrI=G)e<;Y`CxRrm1KMR?F?b$zb$PLWoHnUQpsGlNY#^19% zKpl-V@CcW|wRb<4Z8v^9ztNrfO=nJWAUaHj^)%6JkHTYSrjH1odwu~#3;G}H&thHO za=;@ysjm1T7pdvM2$^Ewr;lWobeg?zEHx=eS&ZEHZkfA20B*#cN&9Vo<^%Q<1CWY3 z#md8@XQKQa1adTz^?0g1*WMC((zm|wE98CzYA8p^vpQcr32A&i@v5oU@(tuDevEz? zqP&o*7wCK!y0Eu(A?@)ZEC883TH^VT@2L88(mq*PAP;y+GIV~SW99X}#JrR`H=g*@ z-{B-tr(o5?J!dZDJ59M8>OxaJ4QQKuSUT4p4kFWs4bq`QjuxHYRu+4uJ-x^##20ei zhSms)r{4!$*1fC9x#ELo$SI6k%7SwT42|V1Ih6~!50G}%IV21upzm+d;1$f#vTuGb z4Aeq#A@E_(=F=YB&3&(9adK2TTQKPqfHa6vs?j7&3Igp8*$Oj?)jIH~d74EG44 zB@miDw6h0NfyRekw?DxrBV&*PPk9bB^TxjlEk?TnB^*;u6avoGMGiVR48d`PA0)mS zSxE@U>P@0FYluIWY0>5~zYLOw*_j(+rieudzR!erk^#fe@AT^@PXEE7`1t4H%6%U# zRr*uG0eyHoUH$t7V?#jVc~bC}@Up4br_}&wKu%u`G@$GfG)huFMa3i<4zR7hm-z?1 z0C{6R-B!vF;HM${ymFqQ?{XLm_iaAl|ExlyBLrVv*_&g)P$#SW>H|88`0agnSB=P} zkbsVuS*We@Q3avgKl=d;j_ZNLMLx+KRPy2Be$dkAAT90Yz>W{{pSB2q0ILHG8cjmW zu{Fmv?s_9Q^TK+8avDTpWOs;6`ST|qB5@Kwi}vDT0Q&Fo%|;R+0Y$!BY_!Pm+{9em zQxi7PndFZL^h|Vs#xJ;4;?;JyKsG{LXNmX1WHRZE>GoS59v(77Y;Nr%H$jkZ^$B|T z@VRMyEKzVT7*t||@u_LB$!`>R5|LMnk4mU3ADy8aay4q4jg#x!DL~$vPe<)d35SB9 zfd~1=KQI^a!LnpkHLH7XnbQhdgE(7(Yiwi{Q*xaF7<%c|$EIH~&$aiw0;$!I-40Zgb1ay%Wjvg=5AtkmfgjM(=O|r0b}|IfUSj-lgH>BzONpy!b7V z$}ep!paUIdnhXkEqoyjJ zK!~ghISO+<7fB<_`Tp=sUE~>h#47`u1m#7xFwx)N|0T~c6?_E!9?PxLJYVRPnwFq6 z*^cJ)xda$LCFxR9WryqcpL80^=?8_|i8zXMEREI!Q}-uwnxq7{3e~G3Ajh3i#6qjs za9WajLFeT4GgjGJeD)GWBd4yeZvTpvHQD)qFd`u`GrAwCitV6s&Y7@)jE243f0Igz_|7DvBphxAYr|C2 zs4qgUtYlfL>0OmiuSF|$iE=^K$*F4FDi;fMZx>)XXmTF}Dox$f*ZI>Ll_BDp?+WPZ zQk^T8Q$;v6W(9)lDMY|fg%e6TP*%^5d+Te>%&NJS5w^o_J0O7Dnr`+?USj;H-w0T0 zHBc&!_VF{@FWJ|kzhqjDe(Dg{W2kcG?enY!Z`B6LVfbFHglt>KC?A}Evd<%n+!J&! zo6I|Qj(ZQzBHVUv576+Otrid6Z!&I8Z-9=0eAB7S!lknykj8Uwg23wFRNNYy;H0WV zR-ZN3^|;>qo$wN1+Yg&ITfWTHswI-W#4*TfO-h4cq6O`R>H<_n5IBw7-QgQ`>d z?K$WD=8JN`fy8ek5s4^aC+xcs$07F=De)n$8_i?h)5h}>IVlqP^5x_Au^+_rL_u5F z_J7{<(kwI9lP+l=&;84fknoktc0OKS-k9tqBJ#xC5ivOi2`e4)txqfj>iuj7C}ypID9_Ed3iMv581a;W|^Ew5-_wStu=gKO2Y8PlWu>o zsP%IlXfExpjF*2U$8I>*ZLy0*zE9x7Fsw`Cy9ex&)4C6n;mu1SAw-uT8Ssa}*-og| zKkBY8I+||48(aklO&GPZJX4tRoMohvJL&TpXCTfZu6=l;iH8&Vw0f&Tge+RKZtV32 zwdYdJQMe~-$k3)Wu<$UCKxcbiTnkMMR~$QUq4iRJcxUj(Q3?O;c!ayo6m@hw$T(6k zPOIMg))b+)8W`#fW}F|cW4#2|5Z`qU@s(I{r)+E3M8zBrDD{QhQ|7aPyFUgHP4dVo zs~sqZ8dfoYn@fL?o+zqm5Q0o!KU?Iy&a#wwR!pg;No`9Jz7x_jz4%fj1%p%KD;@%` zxx4Lfa01S1MM6Q(BT!L?WPTCAPBffiIs;&hbUyHn*cV5nuk2yp+AM3s^eZh5ub!K* zoe{t3Cp91QRl^NW7Sh{bH3n(%Nz?usmCl6peXDjeRKte};0h^3UzCTaqd^7A0Rbb` z(Yl+QXO?>&?@`GwiMk}fE4ykQgM*O$o8K)W9p|NQPo zu8ga!u}0 ztH&0;msb61N0VS<5=${XT~CeuMJZ6z;zL$@130>vt@u@Vhryg9JM~0(<~;~Ff~qSh zj<~v>b|^|l65_TzhnENi+?CItKVNhmCDzowFf%%u8ALR~m(#av4+qC4#;BU!5*h)h z>qRAGQp4&eBmsHT190>vxnX$c#nijJ?y6wf-mpGRE0C5HM?~7DnML5$&I(-`t=nT} zAz8-3WA?{_dU_FfHJ=PHCvo3`+SHlV>Jkux&zbyuh9LAoTbNx~PGUdk_wlT%Bahm9 zuZ%uR<@PGh0F&lD^ncOr{d+YF9xq9113Wi=(-;E=gNt4u^8LCe#Ljd4@bnZd{=wz53uR7y>W8XJ??+SZ+BJB&419B;AJpy84C(-R#8cgQDP) zINwILmQyFugOnt*?eZ1br1i+QuQu9`_G*PCofG(GE!y+cAv=DWArTxwPEgkDW?+ff z+`?RleUU&gI2g#HA%Nte3}jHt4j{*DGIvt1R)R}xGTTa06fenvkzj-uOMiT#KiLj3 zy>f^am)swcc71Yap%8jNb)5rnWT0a!NlU_4{T6b*~`cmWv!d2rHEb zXDpx+CpD3CASwXZpGA~mc__r9SmQqT=%gneuH3`nhOPApCX z%l9bYfw4X(NXK88MM4l##aTfXIj2+v4=7I1r;*tfjUhqnBQHjV*HAVAZ?)qxlGF~x z+1UIFrq%qIC2!=k>vFcdP`0$Og!+-bNL37XLpr+*NVwY3hgc+Y*AQ2146rF)Z}LLj za{HK0^iR4K9jnE|Bm8g-=$4&yU@ch}wq_%KyY5Ym9wYc2vB;Tk}-fwC(M6%uUp+6pkX5B)_!(`0HK5A6o9sfb=`U02`Nb1P!WG<4zFSV2(KXU;bRc?p( z$Bl?ueJ#3gA+Cj2GSlu{-Suex3N0O@D{PYbJjaP$GY2ny*s9L(DPMih39?8h@2}wX zj|O+$tdH@`1&EO>Ry}&~AOgg}<<2*rQq|sKdM31!BW;=xspI#L6Rl@Ls;ZS&IXkd@55YQaBSfMrC%JOADY$ccl}@pEi*&Eu^(`!3LuE_}Ud@aO!zH@o z&X5~?NqH0a^s0=DPmfN6|9ycXr1?4zLna~=&hS*2%qW3tPl7p@y6Yo47a%h{EL)>n z)-8bt-wP0T;cBXNKj0D0g*hb8l2lSRcLo7v3yX8fUo9>NDpNB-JffVM?&~6yNM3BW zRMDP*azVA=CQ$54gNCv_-Q9skmAr)73GU1U@gorLiO^jOezg7b!?A?3Od zL56r&MK&+BXa{Fvq{H4nj`HZUs(p%&jWr3W?Q0>(iLV13o+*qVj8jzG!`q{PpV+)-z} zGSZq2sW$QfEsu?hka`V2nw`0XU4T13zR{ZF)dHTW*6m|=+X<@avF8w^6?b_kuD}to z>i*H4C)1Yc=+b&yOH4+D=}zwBSv2bW01okeY;1>B=0*_!^DrH#3z0w-K(9+xX4|-- zQ${4jv0@?cgjiTl`Ltu9hnUj^$%?{R$XHMYOm)WA40(SJ9Isrur$1VobWLy&mf8eP zO~{W4DCRmQ41=5%%LrQTLp)WI z#-*pxpz=3b@6ruV;lsB&cjG|#wmf@{rkQ?j9C=mKPq9@HyxH>keUsW@76 zS^uZkvz?G0e7pf5_js-uaI6daF$lT7<2@IJ??L|Y@v~wY8CHBEQZoAU#X|U0clRKi zXN?3$C@BMYS0i}q?vwQ^k7Ig}dzEtkseLN2d{Cn=@Xv<7ViavW%}? zP>%2w)O&mJH7A9X;Y+@d!CT_W;6n%cgmUbmJjM&Cil^M1Bl{`d^gEPUdI9lzLP;%1 z<(q^Y=0nQGUox%?iq!P;gV)hgvBtq|doGqiTzaz-s)az1JH6aK;4!niUwyjy#@>43K z$Fl_Fyo(O5K7&{z*?a$_Ss@F+*Ik(*NX$02TJL~SMa|ym;4M}U0YnWTiHRiq>gm~t zzvA}o+j!+%mp7Afg;>2IVZNprDNH8*HqBvdi(zj#t{ zq7YOKqnJ(13Eeog%hIF#u~0ftRlcSMKc+YhvKZfxd~eR)-13xP_ceI#G@<7I-X9O4 z#J$+IDG2dLfoD?-LfCwLZtae}mm!l7hozNfUn4 zm2M!_(P?HR0o;BDmD^%cm8)Ffki+6g1U^A8{d$$Bb0rm%~c{%LK5052k4-61pQ{tf_Be_jtRO*}FY zjU@Bwp=PKe;0cahD#%)EBzai>T3eGYN*vCYgpm3}u#RiopaFaUP=Mq(65IrV_arzt z9uaE5@5q6V1ICUS5czNgwItv4c^Q5bg5>-_UIrwTwW`M{FQ(}xq+AM*4U25Mt1O6w zxzbJRxqG$DcT(&SzVPC>uMO;(!HNUb7felKs}I^;M;xuROs#2`AA!9$N{Bz)s23RG zTY05dDb?s~{VSyt%CQ&rX4T=ppo_P$MEY(hZsRSnh1jtI5<6}NPYjQy?(q{CXg3BP z!*|*=!l>u?q8Y?woi-z_&AqinZ!%;!xT(ifQ52ymw8WE_?JtQOV1ITzJm!w)T-O#p z9$$gRRWaak#GOUVCyPP+NarzsCJ%yQJ%ie zFdJSukg6R!N=BHI31O1+upp#&20%jBAu;|>Ghid0gJ9FmoKQGaNzH=47%weV6`+lg ziVt>!oO~$Hey?FmOrZX`t)&zUM5OqoG~$}aSS^U|EX*92x^QZF*&kBInvQ(3b`CdZ zLYR@&1n+tu^}%gB|EOMml9-rF078zEz?95OUX(irT&QisGi(P{z!Pv5T*gG&&TuXi zYSL4f5gGVB@T9mqc9Ce{Api<1uwy$NtURS zTfTZzKCoeoUk{yQIA&dE$gqAPf`q;(*pm+CC9za|8fh`_xIF>_0vHAK+kTZX=gQU{>%_=1->0tjRxY~X)ljfBt?4IYsz!gV;{B2BJOl8wpz+Kw z^M@&qtMTV8eejOV8^4h}rlX;;Fu{0-?t_r0fn>X3)@IV-L(49YJ@*^_+)WzDZqj%> z{`b4-o3=*8M5T!Bm&?(m;+zYx*QJ3; z!&-hzp|5f&-NN;;h^8~#U?))s%`I+};!<022kklAp`Si#_!=v!b^X5K6*V1d&FRH6 zt_1??GjC?=`EP^S)Odsjn!su1Vf?ums_i<*YK~U|V*ZQa3J8I_N2wYRKkxd$Z+-rf zwz(DX;vzfN&GkQHu4s1OfA%aIOy0|ImcCTuiLxl-dxd&qbq3lejKOe|#v7f{hJ)7H zE_&A&+cpm|pauR~nXm&?*so=!HUb2#zsXn(!}9=GISwl!iE{j`B(-Xm#h6~1vei;KF2Wbcfh zc#Hq{``+MaQ7j|8CG1PerMuumQ-*UQAnwcOg!b;;d)y8Qrm|`w>Tpk`1p1AC;X^j$ z{RP~ed+Qv`RM08O9FrK0Jwx1Cv%=0}___1eKAQC#OyYR!gCtfQLa{>8adO$NcUWOn>aoW-TdPd386M=cMl*;!}AxBdZOHWJ`Y z+XuA1&!?N0G;wa@4ul?D5Kh|&MEO0d#2EcF$Wf)7l6rMtn_p!GzFd&1Z zS_VW)|2WXvAE;{)fiUmT%!K|aHMG+pXCFDKMvcC+I{I3nt&3aNcf_Bs-XQ+0;4c;H z9{>W=8JFMwdjzHp{$dTA%~Ky-M%b9HGNOchxkLM#gYqU?Ci`na>_=P4RWhxU%$f_P zK}i+Di=Ff=vxp?Nhou@tumA9mSIJ0@sBqN-ZOj*ZLJ}i2KD9$fLq3wo1cTB4f{>F5^kNuT*fe~ZkNC0 zkV9~*eD)T>v7+Ku892lnM@o_vR0Xx+3I`mvLyvH@5Ju>embJrB=;$N3Vpbw&@s;f<1n3c10}-@adpTJJeP{L8;r_rRcS(-hjMlCTK|tjK zRg}TQ*u;}@K_F}5gi+>(L|mgn(Mqa4zoMP;)KZZ>>yzln$MfOJUfW2Xp7wPA%(ms& z(Q{lMN*HvA_MYe3<{!c8`9qC(m)>dotXmTCdXU-ecxr3OzHYYXCIaVQZrxRKUTNFg zrsuw%Rc^y2Zc*1pg9Ds4@7?AwKb$=D~Sr?R(6R&T+2*!?fm zRl*{TiK$JV6{Qi9FWt4s{bCGOKIZkr2kBx~E|x4WFV{3SHqIWl2V$}c zq8`6Fytn>*M-=$C1d^-Hz7BqTg)?)DJ?0~AQr)eL&DuJkWR~WR@QVjr9`Nu#G3@o!34zOY21p+ zqIbxrr;NvP2<*g*>i1{QQLy(n&uLIjmyFcG{&r;HWlrO_F{TYQxL*~S$_;7={4A|h zcLW)*b|0&rXnwm9J9=jmH&^?Yg$eB}_|{Qew-Vg+^{XC5y-x)E=ae^3D|lS`JE5#5 zSSagn=q7>HGTbxeRvp zgnN=t4ri;FozffRg43V)gi(i!s0ifsJl!wv0QhUn^@^f+Q!c6 zsE{UQGw{-)=b{%&BsM;JS$t|#Htutr%0RqyzQBk*3#&wZ;h^sc^v@LeS@ld5u;&y` zMmV4#=)-@|;9XKk;~14-*$VS=v9feilf1PdZJ!HDMW;+YUH$`qkJ44{Z#q-+cjKE6 zV0bHp^XsUL#^Bz<_j4q^jZV$dk6NThIM82ZQdl&W>(@DRX1uX0pX!x#eo|qf^yJi3 zdf~|fm~XI22lA+9c6>wcaTvUh4wa{H$h>^7*Em%GBsGv;zZI=%_tZ9ut7gPX<&&Ov z?qFc7&V|UTR~m`d>wLaCCaP*{Uqj)G;RaiKrJ5{F=hlFgmnq!Hg5MgA^y04jwLvH%~700h9yiZJS2_%fB7^}s8MQpF@I#-PjaeCS8^gXmlU;>8s=FI9@? zCZa;6wsxnf)0G+?d}BTb2d~%1fEMsd;g4h;LQ*o0N7Trx8wV6pRR9m5xJlm@X0j}; z;K}pH8_?Iwt*uQ=6wpCvA<7hc3^@(hFhqv(bmmiAOY8{AI7!7FBBc5=oYx*=I3ZK? zch|e?UYxgj^p9d@z9;uJ823> zBTuBh8Ho!lx~NN-;q3aV{y<*)1^igwMWrdT3z?%Bk%nP9an(SOAxv$vKq7c^!(Uas?OadQLkE0Vs?%q;2PH8ax|%sg;rEX<=xj$<=>4+LB{;P zvAuVc+qMsI$b_H9S0+EAlH4;seN-7g)py#4bL!1x6O?23rjV~bG;lw4q9RJ>5yfcdJ8Bb_Vb;nD(GxI6n|ZV0(%ffQXhMKeTh=5 z=g&%f-+12er08#3+kd-vv+B)VJs_H9sbqJWA=~vxJxlXw*uYE;DKYg)1sN;0{Lr-A z=kg?^=`EM{cP+RcOr{HaKg2P!rfF*T)|^QJ@jXW-3B`PX<^8WhW$Ixz8es6R!4wZMJ zppDP>P_;+&`-l4b-)lEHpxzE}#h|;!p{31l?|HeWrcc(r>y#H93_%a5vHDI}zSLJ!}@2hr%2(0(I}vYYQ;uXM4MHQ~^>4y_9QK7tYS9fMvLj2*3!;(t^@BPo z(0z;h0F##RnPx;{0|Gq>)a@f)FT!p|ym7c1fdPqV=KYOC{>-THBVOZ6`Ba-jLz(>{ zt!4FdYTg6>32D_f!zfgke9>+qMk0#*VE^4QEm+gqkSsEH@u#H6Bqf5WNGxa?x-b(8 zaCeXJ#r+B){4P)Og@pxKU0oL5e;@{Ii9n(|~E_(ySZjRoG5$l*Ie!W2bAc6y?)ZeI3eg!U8R&%cB z@YcRAJQg@Xc{n%+d&O%ufm#+D8Xcu_b#=YsUwQx6@vx@$^G`(=i3Z&Ml91xp6IDMp zgINx8ur$7q;XEy{>ps1}@H7 z4Zle=peyq>l9H0rZtM;(4(?lj5=}Zn;tL8z3rho2a;0m3L|p(1D-HYL5K{4mjDmtf zWxP~pk_U(X!wo+XYw&~AF)M6i4$czA0ytpZ-^bm(^I}>njwM4$A4A13Ju~B7P*6ar zo8J9TLI^cLQdihTFA%RorHsZAC!y!PfG1xJ4qK2Ae|OD^aM#E8J%|6>BKxyCB6gs%kcm{tgVK1q87iriKx_g^*&LVyg0oU|n0iOBOEl8o2a3`eD7 zek+rMFDWT0RO(nAW|4T|_?jF%smwZhbKmjCK>PF4t46^*5eY-o7Xw>tI)@)Z%}Y0y zM&~)0R8?Uy*v796Cr8b@clOB|e26Iz#(ZZzVy5a;UqG)3A}diD#G=JXyz!f`iHG@M z?29Y3{(blTGtQc#y&8X^?jfo_#!iDAix`A=5JPj~UK+nt4kz|D#g(&bABB2FM=cO+ zdaesS*Bk`^Gz(4^Xl7p>`Q0{Zfi%I5r@F38WYP%-2)x!@2pV@4dC^}bvyuCyAN&AO zwPa5=Ua9qoql^d#I;O}NgkSWmW1deShNcP7c;*KIJ+>i5%un}PvU zOOhvz&nOQn9_ik2KHnXp93%5o{hqI z1Tf3^%LNhA^Y)FS4|=sWAkqf6Hlo`ULbt{P+t66!JV;KtS369xVTH_Xgl^x00@1JA zV4&4MZ3Uw95cdkAiGc#IRt>JRc7t0u{Iy2AUp2zXQ=p|IEn?8fdv)pefc5kAmL-k{ zU_;vfYK!g%H}wu2g-^J_E$o$9W3>y25^$1K5?uRc);+MQk8>jE&@)EvKL)|1wyWUP zKXU(Jc=(1DGsbv$hj0=h_E6Lt-1>zT5HX`DiD=ceI6(W6bv>$h2N-Ja5C^v4ka2?5 z?4LS%3|l~LFsMxU19+I7ZQaG-e-f5+8Rw_}Sx(HJkohlM&i}{?gvo#Fi;-x} zv7meQ{Q)odZ-71-{HQz$qAnEVEmw*8M&x`zwNUX^q)D}=^XWojy$-uvtN?cruECLnc`cYqN*5zg&KI|7h zlaxK!@G5*e+%$UJD*Gp8h5qo*h{lU!iA8I?3ui&bo97z$IVu^Oete$B5Wj8ZOISiamXynSu@;a#v8;;$p= zaI9bhd>zrP*Cx=Z6dMVu)#oANw(RO=X=%y8z`&Kd`x@E^Aie-dFX>3-d2VbfZxoi_ zXlT?lcrY@`>toQ%VF8pMdMdBUi9H%4lJ2nU@8*h-G#mk|^@9O-&|rEmXp^WqigfH% z3_ps;&vg1|oNQO=O(_6>hL>zTd z!mKwoHL;cybpvKe?=iuEes}{{jSOsro4>>=HkfZLCy;*1Dav3?j6jY8xJhhfd9i=X zb*_lad&~G)w1)bX`!So0loV!3U1f-Qc!PjRfIB_qFCLu@rWq3or2h|t0cHOi8Enps z<|sNB0JCJjUi^pIer}Eb8)@c???pgB5RsXgdEBh5rlv+QzXOi`mO$sj;{~l99W3+n z^C`NGD`(8w!{>1`v${zgIu&0RHlyY2ud9QR05o``3wL82z0jtKo*Fm>bZ~YmO0I}( z^Dq7t%+_7MxS)V&AFX2WvQ5!FM+=6(Q0GCVozWNBi+&~YrqAFQluP8~M#F{;cJj|p z@P&tWkj!CHD~gVSoSEK?Jr?l>Qh$T-Kr*=N|FgsbMfvX}DZbY~O8DP|J~n_^o5H`< zh|px|UkOrT2D*O|@c+s^|6gq8feY;)<@;|j@(q|a7E*N7aP%RP^ylp4WZEDhD(e3b zh2wyg`87=x&E;515fA?fz|HuJEnCrQ>Ldg?1OimJJg|S=O$y;FEw|Kv)UmsOL66l* zVC+-@hjNwKN#NBwTIu%##?_(Nt^s?-vLJ1q7&_oSi$@UvGkBr`>-?f%BD=@UoG< zRAp?3=dW``HkL6M%yuf$320a<(1s6K_~y->zbb6~|Ese2Pfi5F>;J=ZBL2f%h$Q*1528y~)ve5ht!#gt_v1qnw8(oPJ`JTM zlS(MXU#iC6iPHKSExmL(t0&Ox%^CjugZrnU2pvlX)CS%g_R)PKIfsD&7gPa1<>V_J zTGPO+M6iTgbHZ_Q%XdR=nZFF}!0B1&xHgjnr70U+gbEn$upLnCC2NItMV&RWR0-;R zNbiaEh4vY{6M83>R?T)}mZfqz-wX~*Frf&5T8<74<< zwXd#Vos#%{R`n1=inkcOAioAy{*Yx%%)n9Ok+X%6yms)tjmmC4(U31af9K*-)JB+k zTE2Vjji{{v5|#RHFk&eo*8A@8vG`|W_Wd`1?j%%F^oHX8$wnWb6BK9OxUXe!)&7dV zjn>J01C4lFXtH8xFRkRp3S!ZIGYZln|0> zvG${)IzX)QzAw&U52@$~gqzgh((~6*xPToi`+Y=I9YWK=TTbZb>mflPUZwB?PU?9E z0L~2GjIkmm8UdvFbcw?CACJabuT^_OJ#a7HjHX?AofMYDKpyMP97aioUPq`iRnik= z$t>Jr4sBcgTvi$jmu+VgSLPFw+MNbHI~MXg$PO4+na?-BZ)ecHK3^MVbS-Z{Iq^e} zc@Lvb3lyOYOt6HShn79byGQ0KEw9ry#H-U9Rru3nd@+sNo3Qk(aPiXYC%@~DeY2q; zuD7r77p~hv^t`(?N|$J6^cNKlG{Sz|dVTz^t_L)sU~Ab?xR6^Iq@IhO=kHt$2d?2% zSyJ1ZGPJ#GlL5SCJkvOU{ZLIB+^oG&YiGC*uf&_#iL2GBgrYM}cgd8_A+``25^T%p zxV|tJI+Mpa1obe_CiHKXo;^JKhQ5Frl1)+;MBw*UJpsl>E8<=R&>`n@l6iB=7}RIH zsC&1oT-VQjsd{BmAq%=dmi*}cSfXv;CKOc#718!1?V9wV%qW%kP?D^YenQp=G_kV1 z_<>Z@G~rBNG$3?%W5};}(AU?+Rz{77_=Ur<|&!-lq~z3@sD- z-Zk2_T9+rmxR(m=v1LP{I3u%rY_*@D>(9iIJdxLjM!er^CEG)dXxA(#xLN{jp#-Ds z1&d~*MDq6@ZM;b-#+BD2lo((&o25_y+sCJM;)80z{$S{=es*e6wQyef7Qb90^mhKS z_}~Qd_KaquAi-$4z? zc{~7{;|k_9=<4o4aujP@h(Rg}D%w>Y>Xl;{iqq|f!hbYKb4h9fS6Xesmv&G%&$o5U zO;tb1X*Ig0JDqWzdYxkwv_$04FtgnXG>9L`ysyX#)a2R1mpAst>u{Fathd{{8~0u$ zGSuB=EB3oS`665Y~(Gc^>#GMKX!g>q@*T>V+pe*lJ?%wBj z`99o;>e6<^D}h4#d@LmrCi6pcaobjsBl&Wz9*#`B?rOuEbb@0$9hVirlhxxXBI^%bYq65bYRG=Qk!LkEYqK4;f-{wz@`?f_+8d*<(v;z-N>l@=5>1id z0U8eIU5r-<6&yX0Nw@Adst(-=W#2{gP545;3A-&XwhF>|jPWRt(gv-ECh)yhX8l(D zLz0?4Of^?u7aoGD%^nN;a2Y9pz^fFu(NU#XT|Zx3n}9uc1CR z_uE>&iPu?F28yG`(hJQVc#R6K14`<|8Oz-J^qTG{KQM+er?nyOv9 z#o14xyE4wQLbE(ny=-2=jz~Ju;k4Q}njP~ENtMDa9?-W-I9?;2+hr!Vg92(Azwe%J z$Sl~VGZEP6GpF;yU7wtT*=4L)zvW71Wdn1sDD=+Vk@1~?WmcvMT7#rgxA|;8@P>d& zg8G}*6sO2NdsD*_lB*W}vF@GFo{C0lv6IR>A>#{o1r(nq^C(*`f9B(es)LHsoE3pW z`|SClb)2h^uAg%p96KGH8JlY9SQdt659|SEttGHIk1m#p6wnBRDhW)C-Xh@BS!16+ zsNLLQUHVAo8NV*G)I>n_LGun0&S2_q-d9Q`x6d3U-%`eEzGMrPk+VB;gZzAl_r=v;tRxi zsrY6IK^c_}3nV5TSYADQmZv@;FR)d>JX?Ab+ChRmUX+HQJ+g_H9G8XlR!xFVXipNi zJ-7MM=jAEg6`>(eFNOmj#7ixJt4aP%XU!8+p@`~_AIB( zcK(aA(A)q)PBA^r|D!B0!aLCQ6q5$+7^o0~bKg0@Ch?Lry^5eq}f=n@CgPH49+7B%~1 zpQ=~K%2J1=={ZMEvL4T(GBSn+?@vECd=ID1KWcehFh4N#w#4YQ17lZ0X1m6Ob4@Kv>59no8OD$ZCrk1xUrRD27_3TBW zpUZc4LnmG7GVAi4&xRvDsgk!?0F0to_=aOtVocDri%Q7i72ek^g|<6T)N2?vSG-O;-F1vLz~@<5{L$Zh`7X=pzj)hOKVn*g=d&P-nJna^}v$V5PPbWg*)zbR+{r&uU3<|w1&{~)? z*i2846@hzk*_@$6_G87H6=qv^+PBhtJ7ov*f5ay}-6?&Gz#?K+*ntj;It{h6ND9RkNGhAP2>7Y!! zJ{8BwlMAY*6-0y3Oe<9N(GR+k5ipjGXi_cPdS&?FM-pA5{Lueq1AYEelcQcC_?i1u z7n;Fx5EqBDvnASqUwxJVFrJ*{frGS=+0Hf$NS_3HGR(cCORJR^uP3Y!Zoc?vtjW-? z-sb_mKpxl;sa9W(HX@3Y^3eDDftue)ydF_>mI`$BnLX3CBLQnlwz3hzU6sL#^s)hn z469VD^q4$P!B9rKS)|RTHfp8_Ak9u_Pat*GO=qQAVxoeYAc0mpIZ?1F3wk?wHH8_? z=m+4HAUjS!f2twKN*mIE*+!;5HFo()GYfw)c|j6JD`4(KmVs7XE$0^Nxo#YP7NWrC@R*pGpl0PLtFClwur&2+^(?*k@Ibm`t_ zD1SDdWp}-MCuAKR@L->LTf1Y>tuPT_jXB5#_L)3rz})$kR)IXT%}%q{a1`8H`hf2# zpgEetY>D(@iFMe%eR}@(=Z$q9z>r2hMC3v3+!lXRdF|gEH3dIV*5*JGhN>VDeprnI z?Df@vdBB?>`ADa7ac-g{vtTMAus0O+$C!BGg!t;j+Yx6M?As-eiEht$4sE?E0!On- zXwp0WmKKqy{#GC4Nf|7XOX)guJC;UX-kOkq89#sa$H-9`7;{HBp>G)Ce4fqXhR}~C=or063p%+Q;)j96geDFRR?v8?u?~co&6)MOHNTi+u#Hz`+RmDz zXV9?YF;bf1DuEp4BtGJ0{ppB1a)qLjkQ~~06a~6Bas-)g0V_E96t9tq370v%QK)(? zx)hkWjecPGj2>+6lxd9{PC?PO<}J6WlQ^oA4d@iz>7o!q>Gh+OySd?%F~12p8$H)=kz zbjttOkvk=i64X;URvowCpdka-%DaS4XzEA`kcw$e2RuriWb|HuIOC0&@k*jJN00xF zxTQo++qiRRpbv6~Ujz~KaEG1~_A@UL5AqRuQ!^6|JqPH8;|(3Al6s0k<{qjDI1t@W z)P}gPpwrLm>=n?w6wsSktFrOVCh{^;gBJD51v3qtK+31@RJ*EKGn$j2n?JAax$?7irSF>D7e@9wwWb!-z(V z$({jfl0*MD<~a?WA_1vf@b?G>8x}52lkHP|9iOdGl*AVFcg_PbByIm@;N`t&JLMtl zw=*|H(1*2G5%$^%U;f6=az$3nDVGdyxC2O_8o!Wfln6e2o>s)p%H&s1*^NMFA>Dn9 z0*la)YIF?jt7M~iha>IKK)C6`NnWYhA_6K8S;|8%0lO$s!}4;7AqHb|Ide-L9fAPg zKu;yDYon3RbQq<^P*fLncYsE=bgB(9J#xbluWp>d@tD zDBlntW;pyMy%Q9}g#RlLu%`Jz7|Zzg3$ddxYgxw2+tIV$=rGxNM8`(buBe^>z?CQXa%OKQmm$8JSS01$md1om_0 zy+itAK^==m!ewJqi0jT})VX8F+!QoL+lGWuyz=jgycN4A`t4Srv-C`MwWlOBTK{e) zSi|5fGA{j&$grK@;nXvCeWe6zobxxhRFUyUk~U7V^P)40Hab`?!wo{< zmCd)60oVr&qsu{sb3s;so9cO3L#60TRFVB>uP>-&*B9aK1(rcW>$S4&#vZW!ohq(@ z2rZniPxLBW9xQyl{lKQCg6Z@`Pw>mR99hhx9Yg%R)C!jIg@oiQ3f~cR${AwwIV(dj z%Ml!e9?%RbswWhTebb8DPaQeQmp>LRo@sI#OxUqp_MQx{?5{zV#bOp8iJ;6(&^|k$ zi<#I6^D@wlWqGlBMZ*3%UWwNgYuqvyXoR&&37O4EK8WH0UUa6FB61Ak)L0bGLFk`H z5W2cG0x1}v=8e~?*-STf&pwY`>-t=`KIo906Zy~s#uI!#rgHarLUkAvqz=82!kcxFu zn(XMT)Ep#bNmJ}f2sU){hcsA${NYdFzEHUiVGD0)X=PBc%YfJ%oVUc|Zwry|2GTCJ z6KSD}*w1Rf{r(FI(o2(8&=L2$K^mg~Ko!oC-1e#0t;xOBVPW;6(0qGraiZEAx?f3v zJlv`N4rUU4K*y;+GP{eI;oha&Y*h~DFQxewzXAJcH-fmcm!!YC6TE@+^)m7;C7~c9 zRMnu5oBwEOEnja%z@reO*;v(l?s)B7VQ{k2vUx2I-1Hdl1lT0P1Z~rWy2vRgF0nNm zhdLTn%nALVEUjOD)JNR-SwF!Q$F&MfnCPqvyQv@^Zwj0ln3#O%^ZSl1Eb9Hx?^8~6sy{3uE+N5$n4DV?dx|P9eD}~)uiJ93H8f*7 z>k!x4{s_UP4;Fc!IZJ1@UOf{Gc-A|;p`E|Yu{UHK+y^2BGx?)CuOfcw)tKFmM2FIS z&tJUgQtw!4DO_qHFxAbqyJBN&D>;}|4X(X$kYI*k_5~oInW?o}+#XuG4r==54=*9! z+o`i|?_CgEiak5TaXPA+)j%) zgM55_OTlebP@UT`TPE@?9`wE5;vlpl&4M`P%pwxUS)2tJ_oQ z0?CJCx?7Ai3a`6LK+CUl2`Yx*yRoi2ccK)4CnGxXO?i&jx_U~$g)g*xc`7?3{@DyRNXJ0>wF|lE|HIx}heehDf5U6C3kafg zs;G#xq_iTUQqm0FozgA3grq@93JAzh(p?gxbax0N-5o>RpW`}whyA&`-|M;W`?{X% zdG^17IdjhEeB#~j*9&Y!+u6uJz{P>{LJgGsLc8Iy0?My25D%m}f3ly@vEZpT7ekKe zU+;e~+t)#5Di0ac(oqd2gyA%;c1%zT|4Pbx`g9HeZjNZK=>NMmeoq4+QMtrB_|Xz| z6J$QjMn}?)V0NIzash@b)mbpY^Q=tv{L}g z1Kuf5Gw_{3uBAP?bpw5>F<<5#3|!m%ngjpGPJ8DDrfaZp>n1u04qaSD4T|x6JcYTy zce(xCrD${m%o`mAv>AaHV(>5$4es1l0WHd)ODI|kL)%s>7*w6q2w#c<-}TQ&sbhYJ zz7cx0jUdda+^fy#o)IHW@PN&Q@&?SU@eyF%wrO8_DG9za+icFn{0@C1^y_m#s7|og zlW2c1FAF>XwW)C|Ow|YW!8Ggn&&l9BE|ftpruIPJ2>tqz05`Oc@!=Z!?*S<8<>r$0 z1aqg&1Do8I^jAH(ufThML19s(-8$Jg@uUnjywqaA_P1;FwCX*WcsfagBkQKh9ZX!% z@#5XugA+Bs>seX7Jca{@781wC&*~5EXJ~C>hDJSnN#JRGj&$)5OCIa&*#rQ@Ov_R5 z5Mv=cH^J!5;xy8Z6+$1o=O44Y3Z^Y0P6Lka4r;sU`TPv7Ql=Ui@O62#RK1+bHR6nN zQPLqpwwFOfwLk?>Yy4-L-T-vFL&}nBt0&$gf49lLKa8CT9M#V89yFxTH-J~f>LH*& zfN{gq*P)AyZ=L$-JYeh$;YKhesv{>U(2J|50q(ZOB#$|~(;dK;Nap7F8)N*B%Oi}z zK731DNd03dmps6F?aZYfvsPK5iypoq!x+V}haC-B1p)PRJTVETyuR(SGEBr&Ti2;Ncv_j}~j zEzmHKrkKI|6|sv#u?Hs~8}c`R*}`f`rGOUMfAzFHV5e#G*}?*UoKw#k2BW6 zjYMb&OrsJo($0sHM}XSk=brQ6B7-bLd-O#=y%lsMPUFU)=kb?+hxJ#x0lg;Iu}Sf8 zaqoF}2vMTf^2A9WpurrKB{VQ=OoS_dL|hxz?8e;TKe@ZGAaq^7k^=fV16goDujglA z78!WLKmv_NoI+RiCrab!{6inU!k~S21Tpx(xu9hrQWMynrnDrt1rX!bx3&snyq+By z2g%pLpg6e`F$eIH0Z25pd^xs%7--vdZ~)9ZjP%h5Cs_u(Ho5gNJO|HoV1^qc$!!8< zx-#pyg02NP+OI$T5DS?K|EY5A0A^e=5l1Xq{6lMS8#v)jcP@th?KuP2nL{BEdnP5; z9}jvr14b=L$9Wm^!8zcfi1OI}qed~zCt*$l7}k-XKmC7rSe@jo67JO{TkJeMed{MB zFh#+MlQUq8by7qgZwJ9#wIB1)1d21qB>Yv;Bt0*Mz+&!g$ctjWMFe!w`!BeEDNxWi zW&*mw%n8Q~z3D+(?LGa^RXa54Y)vpZ`+mDh$UL(V@g^xOmTZ89t6 zSeO6*F!cUvC5(!J#B5a6I)%Pl6Hs;r6<*kwj}~?Y<6ZYQ!2I7&Z}_hzg&lp`6Fp>3>it-`!R?au+j*XjLS_+2T$hA=rAdS>`dJIBC_)3eK94*8|WgAx5vB;4146rMtnB`d^sjd z&vWR9+=5(@9paluS3n>Bb)7Kh781h$x=!c~1BB84M}yE21y9EgZh=Cw03rrOJ!*+# zhv_qf4NYANzmDniV9W_xuYE3s)H+`}x-!0M9g2!qW)oowan?D=uXpn|JEkg+lrqK# zN>GY7{rKoP??E(Hg2CumYW)dRt@r%;&3_7X3_vKo3o4mfKi)vN6AU6s%H%HQ8|gv$ z5Ep@5UCe(TJs#r&7#8l)pZ^XEW66$Y1>?iNvjz6kf4#T9x>T~G&(o!sieN`(yj#JX z;m@8=@$qgOC0xKfR7bz~&xdylr(KsU|Jg)cuD<-=?D_vcjthW4;3{QlP<>%}jK2x$ z+ixkRE4Tk7*6M2Y;J?d=Rcy8Xb0Ts3E9-xke+A3?&%xHO&qe+_Lu|#2i^uV3s{|n{;5rNjbzi@kGIY&t?A{ZC8t)&tdpdtKoM;Hm)~WMrdQN}L6mud3 zn=@El;ctprzuPL`)T_1*${dv4ew-7}84!q$cGqRVkV3**Jvd-y=T!BcW1gm;*@<6& zIWdZ&!bWR>zsRV#T7CYn@(Exj{)<2)K3@Oa+kbTC!MKj4?%0W0DM?9vK^0#fit|{$ z10ub~@-Y_X{71602m^4}6tcc`^yG1YREgR1>kP-5cYH1^SC2iu>wf$pKM_Gqg5Y+B zn$q)V6a6J8@Ql;#n%vPoJoFsab0-CPBu>HUG5`4=+4Y}YP{o0>JtEXx^@G+OU`}`f z8-s!ac8s-vCj`hup9`yN|FpDPo4XatKv=W4HA>!TUw8*2mxg-r74X4>;%#g<=R)`CY{u9{|jQh`C7uwD$5Y*jWS8;S? z=gAdd{hN3a7QqH6(;g(v=R%Qr~FQc^bk_V&1p`&pX&C#J+p4XbReBu3>->dX^8d7=sOny2^7pI& z=uY~SkG*y#$AJ{?Z zFVCBS9(1|PH#wjq;@lLDVd!3m*yQP%Sup43*j><*2)q38kml^tAJ!x+n>*@g=0AG_ zGQfNf!iW8?VXQ(`Em$q7e`Hqu zbNA1a+0JgRv#GFKRUtx4hyX!{+%swn*ZHfKV;?q)sv`o|0G0J&c@36(mt#H zn53@a0G^c8#q?us;uwPSNNrbf0AVIYo0*E10_MQM>AN1Ncpbf=p-W>y(Qez$k$m~9 z4}VUBu?_;6ZKx_Xk8Y>da>W1#)}+(hs#>i z=l@dAp*7T>OK~G0j_%wH+D&v%2J}!*Vvxx!_+|L@UyTMmW0#VEmUtvwb2R!P%=j}j z7~!Jow#%3=g8u0-{YeJ(%V>3)z5VemYvbu5EuKbl9X`wv7x{0n^j!-{o!5Xc;|B(W71bO$W z&UrIw7vA`*;h>l40Wc#X{94hG{$D(;p8t6b|K~t4-|NSX^gwwktG{}#;g3;N&0ny3 zJ~lt=GmQBn@2-Ktn*D~-W>U#eM7GCS_^Db}(os8pTj|TQyD_`rOo-!EL+?ZQk$xg-THq9p`rwWXZADa$Xactjd zM2?fhlHg2kaM{JAN-1Xaj4%51AVB9P?V^XR4S-glb1o?%KT+*_RU(4xOp!~_)ptBY zR((V%%(rhbyI0#F)8(XnR~d0srRr8T2Q4je0s6;U@~tv@-Pa%Iyz{jrxnRdPD9CPdgClQ0SLBR7UCkr_SC9wv6974Pky-JB zP$TCr7bU}*UQ2{Y%pS9JJ^LZE7PXtBj|wW9G#w4%qaGm@qqNqG&Y#~_E;G8*G_z6 zjOZ-9)WWkPT7Stu#606bo8|Eog0j6!=t=->9sI%n9{d=>5qLwHF z>Hvn&RIK}5Ms?SF$gpygj0#jog@K@#uPobdOg*~8NL8KYfep~lE=a&4I90oyAHE?b zRy@?yeVwzH%CxsGrNY^iQQ6iu+NR<4FrJsO{Rg25t3&U;)o;j^WKH)w(Oc1P=<=8P z*H-~}BNB8%o14u5OjF+-c2`xcB-t0;ntM8CI|IGr6QD0P20=x_CPJXKDP?GRp-gsh#Abb6t%oJ=UL*W_2Zm{f?8eLQjm-F2h_;D{U6Y30}1= znGR`g=?IIqAJ6VAnypS5DK@>DdGIMPTR)w0D%yVNJ>~VXZ!4_1Z(aC?vNzkO8G`Cn zH65(in-`2cd9u}gsznImNPGe_y`Ez&UP4f)a74Km9Fy-X9?ah zj3r|;l&bA>tPN`>kQO8>T%ruLv}5uMLWb8`?$3(rRF_rM#E$y^WFs6+&49Yrp%88b zfHs9dEJ|}f#GzG<)&-#B-c+rk<9Xi?+A7q=P|Ayv?j0s|z_oZGCnb1UO5=%M*X)Kd zK8YaH%irhxyzcVnY1{BGx9##w)zXeTXzX`{{W4r&V7@mPXgc1dFHSf1*w^_>4- z#{KdNz7W_A;zW7I`?8wx8hm;JE|k>6lv_f1f*LmM{VOOnmJ0W1avoJumIR21$2lJ3z~k49Ed;!=FDUaDG(C zZ}wMd9_-t(5vpgK&1AEASUAYTA6{Y}UhsO@k|~=dcKf$}(S4W!!@Xkp0CPUE@oKwZ zQOkh(L+8dc)swc(y@#6Vu)>X(cwTxAUU%hZy+~;&g72C$^7?N~Gm|8!4N>t>W-03C zU0_pWxF4U$P|}cegK*a6q%Rh6QC1BM(HhKs(9l{~d$~Emv^O)*pQXYvj^3hVCRw?_ z3>ImOZ)&D*#+Z4yjX-`zE&AiM-lp>d7@QlT{t2upbnsA>p87HnXnOZhl}!S~TPHba2ak}Di zOTD}c!TYvyU1A0GJ|mk0VZZD*R~72i6bzie>rTlDlkR<-MWUnU%FjEin_ZMe*+|?P z?1i(NP?$o;+mKX0f~c?8MYUP+XY0H0FK=)5ai|5~uoE>jWW&b#VzIbj)iiWB-La-o zW&EWObj9`y1Yd z`{d)ZpzEKG&LPH!&$+-nj4e&$LK`YgkdO|@RlvCB5^LJ`nRFT1;nwt3nJVL1{k$W? z9G(!SCgk{G3Z_Ap)vfC;EmpQyEQUB0Y!NWnyAYs~O3N$$Wx*Xwu`< z9_crF5Ne!iQ*u2+{-!lRK&nrcj2Z_3Z<@Mqx5}mjvaQBGK{(emNga#J6Se}XJz2qr zYa?6ruiV_Si&E&o17A3aH3gTJI*+%=GEGw3sM$6N-L?;s*F{cdWRJZtXXDDDZTYaL z%eYj;v>T>&zENZI?Xz8A;oL|cRMhO17W%JJkQs1|_5me$f=kjq2@AXsd{9G32 zsTO~oRML�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 U)!FDnz3_qqdk^o4lhMEUKbScxVgLXD literal 0 HcmV?d00001 diff --git a/documentation/wireframes/images/private-low.png b/documentation/wireframes/images/private-low.png new file mode 100644 index 0000000000000000000000000000000000000000..df9ffdeab522e248842bb1aeb96cc98ffb663164 GIT binary patch literal 287255 zcmeFac{r49_%O^gYAluPl{8thq>{2GCMs)EN=Q|2C~!o*Xl zltNSz9!i!X650CBdp3+g`n})r9q;$P{nLGnnd`o;bKkGi2Kt(_*%q)dF)_{7*4nU* ziD`}|6BFxZ+)Vgn^&|dd_>b9Xo2EKb>Px{ECMG8}8@9n7bxZ>cm9y6SKxjMa6B<)yyz}VB> z=Hv|4yK#8#==WhcJJ+}FKNS(Cv@VrP)ucJ=la00G+3Ow?0S7U|Vz*RpQ8ymGZ}Pl3 z{?o^5pPqkC(%wTiIPHGHn}E zK9uOi+;gx#w4~vKms8rx%$59~&=rjciscXSAvXvKOQN{iR;=PMy6F_K=YWpzbm;_H zjCEvp_`KlNi>H!trk+RVX)Sr>teD~FyOmWgjBCZRhq90O^VdxT<0(k;U#=3d+sB+^ zerg38d-%Mte)Qh*MQ*9E;4j`!-|Grze)D@@6;zouo~jdA9NllNbSe93t6Bf0P~xDb zX&m+$cV|ao*MZo56qFDbFh^IL-1=mS`Nevvi@l@!qTy>J=HDORN;RvF#@eNoGQ+js z8@t6CeYX5^dm893@?^2!liv&L{Jv`({S|0Di}w09mTlgRg$2rPdMtjJR%Pyj;nwTT zVfGQoa+_~UCV}g#UmuQq4kR{bRLm(^Df+hKYw0(Idl(XEO19QJ<_=1>d8%qIUwKH; zaq#h{$NiF7#3T902E@#%xkOB=I2pIf}XYW*>@tFxBu8C?GK z)Xg45nKTT?ZPCl}jq z%Vfi`!*i&vXsgHXyDh_gVzYFFpxQ8U6_|!anwG5)nO?Z@wpck(3jsil9>OkNC7&+=haP z6n0tOtL%dTdQ#T!vonBUI&TsCUOewBd(yJ3QbDQ@6$F2bRx-aK8CdiE98c`ko93Jd z5b=@fpLgbmUrENCn>N3>uX@N{ceu^1j-II~G$op8hHGETSBIfk+|IAF zwPvzwzFfECh_sPJ`Rmk;1jURn?bee_NC>=PiCoIYX>K2=sg=90d0K5>^qxJILPtGMG`+7*b!aj( zb+TPz%kH)gsRW25Jo>8XOJId3F+J^be@wYFAmZmDAxeHP8nhmksLVMjRnCgjjLppE zX2yKN`3=V2j!501L;LQZKOE+D58EgZu=mY{@ZwOX^>?$v(-JEmVdwC12CKL;Ws4K= zx}f)@pWOTd)kcq$kSyYd;)MeR9r|$<|K%z8i)b8v@Q*q_SIGu~qU^=>5DyUZKM2k;TTo^Q&(tIn-ZnDDqrUAdy2HFF5~YxegXrDIzoUiS_); zFx8?wA=b#LmSUv)cCp01OW7-6z9OsdX=ueGep8kY_U!7h$j`K*G%2dk@Fx zr<2QrgQga`-bc48IJA_1W;B5ydEG0Z@VGw`M-=-F>-^|59}=kV~y zTKgOy-Y}I9==yn`pB!6WHaj(bczE>>vJ8x)m!As(S0 zXV0NE{KJ$d_(PYL&MjesaM-;a_nW!Qm?f}#4GGf`L;H`9ac{Yds+^-|Nn<0gsG!nr zXERTMfb2Uib+=*di1EaB=^C~aMd>Pba1E;M#VcJp%4yO*g2{5=f6Pb_XIyA{}B*SX2?!jg& z8mm>Ne|X$dkYYjQ>eylKe`@V(`yR=8v1%%dVR83X;053Hv%XUMi#0`H&Bw2$u)|z% zTs&-0W+h&*#p;jYHtLmBCMSaCFAoKP5g+(E+`hQ}F9eDoxcVG74$j7K1M_I2%+n3j ztv_?r+a{N#Bk1B(2Rp>?rW{TWl@qMMex>XcD{6mvdguK}8yNET`5EVgr0*3_uRJsxvk`1}KDiZ-xbPtc^(Knt zz3i-k7R#nD{tXb27%Uo<>fXQtzg}$Eh{ZK6kr{g2xb?Dwl~DIqmgzHv1nS0J(oV>f z0D`{x_>M6K%LV4v(topgr@vUdF)a39gUwe(Sgf)AtDZ06Bkc58nWoG1c`Swp`O;8Q z&~d+_W&4>xWmYV38b{GVQ14QpoRb~mO{X2qV#druojzat=l!67+oJEzVdZ=aqBQr# zi`~=Tpf9lwl|)zs2mj48Sg!3$;Dx6hL0h?}zgWEkfUHi` z6b~7ZVWVWwB!&|R+tma->H}c6>vG`@{Nah$vJyLelq#BmA<#KbB4!ipZ$Vt5_=ql> z{$hC0Cmfuo;J^9IZ!TbQ+u?*Jj|AlYLNCk#Lq)|C%ND;CNbYe$>uDy06M(;jC*>~| z1ENr#ffa`THW9K!nK3)y$!OK4&C^$XNHL&q?qUREgVN~H#N)zXvH|dM8*Qh*7&9E` zCDZ?E@={e*&1>uFPs!RVU~_oq79dq)X<&h?&-|xPwZ6o;u*cw8ut%qc5^z3yycX|O z0E#2T2m-x09=Nk@`cf_=69D$IV(YHEu=b;1{RS*<1B54nI1V41{$j6CTT|p@)d5r3 z&%KYXBLB0U5!c*uP>#$i=!gy*Z1XOxiymtE>e}|0rLf@fqsJTbarZ>Q{wlxMqvH$l z=Y|qF(^RoP&aQnKnZ}~3rnYBK6UEuV>mqf9 zKGr5zZnknNM(Vq)DJSqBctZ@yVi3~C-vrccFw@Oh1~C2B?xOEYECY(rr~1?QRAM#L zws@Hfub$>z^LN~nla$0Dh&s3&@7~|P!H=y~E%{oZyxTY(iAT-wgIn9?eaX{TEMGOw zSjCBS;_7#&Rr~PsJY%=CXi*67oSnLiIDXA?nEj_2pNDRW~XG{~jLlc>Xo1({kZB62MXf&dq<@{4bJ=a;yzoOn7);2I(_)N-o3X@ zC95q{yfBR(o6h&1ORa88e5A73k@w13I>18?R7kzEXSGVB$4Rd`wadRy$FywNc?GBZ ziqEq(#ZyM(ywqQ0k5~6yXS-@@P)mo;c)=OLLbnBKf{poM7vfS}G5c{iZ|`XCi?T1j z-FkN6Wc7aSq%gu-%<@?_@2_>0MfNL6f7Py!tg5j`p~JbeeqNYazn?bq(|@|tmFbkT z!4<&V?(WLXO96D(IMl)Cv4Tk0wOTEn4P?{Z3NO>Ux~Vz?E4*6Z0@oP0Q*C=rt@<|} zMUC7t@7k{1qH?^B>(Uj^2O{N8^USf3rX$jYe*-eni3YdB^7Yiug)o7grUP?p(G z1?re%;7<^fLT>w7VVzM0MLiVh;SH+rSL>W>0`YyVVofEaP4od!N}Dy7lSz;miYYr0 zs@mk(w7q@vn4eNe6tTo&Mb972Sw;`|0s#E4)s^c5V7>WsHfjUl!Rop8NPvf8s0d2q z1&+;4lDDVU0(3GR-oo$|dMr`-J}O}~y`T%6XN;&dmMoN>|fR)`EF+eYO* z9SP{S!y7Xfo<2cd4DrL92xYx%$1oLyoM4Gsx84!rR(;QZJ{bS@Vbqo8!fgPDKgicc z8-q=Rr{sM>*D1)7XDjtu=}ZcEJvh2CharxA2`QK|%mqtDM-J`d`QZ~S_*i#zY-?&%#E8gAd>^(rk`d*MQbpDkHSz4o3vvMKn84oU$r`%$G4m*z&|fLF1^AI%zS3$u^Sac0cN>o7Sr zDGTe44EJ|=cMEMDtr|$D$pTSPC9CaaB_`AB??R%+h#iqcWNpxU$k2=mZvw(_*8Rfr5oT z;W_*?<{$fDERz27q_=IA>+-Rm13L|mEHLiHZVkTd$j}hGBMqp6CT5s6fR19e|L z3E8ufEkII**Wyo6NJ?C0=-sQ8A!n@Z_S5~C44cXo4)<&GzI!#Nt!yZHAD5~|_pSQN zz79>xmiXvfoP>v&YjPmEin?9gmQ~=+q1);7L0WoM!B?3eaM(WYYC(r5nD(piE#uC3 za0fV9G34Vnd3aP1mvbrriZW4%(k>ngosk5+ zCg44&$Yv`9I8ec7amth;5BR_xSh3G>9z7<>ut|n5n<1a*9jzEvB&Ip$WZf3Y;d?NA56HT{#^WU|_7e#J4?uww}cL@SO z#dnG1U5aLg%A0Z^pV*_>?Bty~JRq(SY?&eTq-+BV-J!`#N$iHOnc%?ufEz!uE63@) zx2Ris?d3Ua6dI*n1S^cTHlf(UPh{7%d#dBiF!WU+`WF2kyZ^~_uu}F}OE1ZP0X#n| zaP#hfK!nLd&MaVE9$;OGWIl=oDa&(p_^17r;8F)I#uZawcNT^E&(_POI~Kti*7@?U z{6RD-@hG9~8WXY;>)2Md^%8#@NK62Z|5D1FtptQh$lDW-Wzxu3j9{MF#`qHmsqYYgcs!-n#5!6*vyIKqS=% zbHm7olz^;T#t+uSXa>M##vB83{H(;kgPzI%j{mjJ9rk33_Orf*kwIoMp>hg6`vfsKhBIgah`wTHpl5n?`713kHOY z#KL#O7vvnEI~&3e01n2H1FWk=RRa9;fq!11hDg%IYH~&9K|^4W7rAZM8LSH>bZ~x4 z_FeScBcTmHx_u}i3kAWxO?M3F6F(0B0Jk@Y7%*HEn~27@9h0xq=V0W49qs*`79!Db zo=CJn`+o%np}esfvp23Hp>06bhn1HLCjlu0&Wdf2LV&Eb$qNZN3MEOS#t_NUp_4Ks zrZ8R(qV;;|>@lPan0*8==AFCK_6g`wA?qX77;G1${7c>Br6{(15m+Dr3R%MRtVJeY z=SWZmWOf<#);_Rt%Mal>*8@3V62(|KCBTo$=$mIlp?PBn1LR_!-=W(K1>EVz7X3&e znW-Q3-lzCpR6c>qiHkr1n=2}HvAlc-1Ko5;kIf1K^cWwDdteE>0!2uVvxfU1$pIM89MSKx|Tpgw}s3aWkX4=CkRC46FR`x*jM=*_w%O?Q%d zPWW8ot(_@of2*(DRg0N1yMWGf;&TJZc$3&c3^df4WV5}|-BIUTN0A8%SmYic@lgKP zDoV0qDKjPsmfd+Y_bO#sGgy{waZDFu7$o@iMz3BJltI6&1}rjnZ_c5wuzc1QV;=|y z0XRO~{47L17r25g3s-p6xdCTYx>nK?14YbT1Dqd_#qA#>^aYffnHF{aA!7@77 zG9hSe@Og@vw#8lGhka7~T=-WZu)Icbl@yt!UV)Q}rT-cEPn;SS{kgYEIe8w-WwztO zG#MZ*O1(F*Nu&PHzX=K8|Gb6Q-StnQcy}WKR*IY(EjE$kK(B4r?&#CgF*SHr4`qb6 zHU2L>OphKwWSt2}pwC-bfZ%MhS7!&23t9Q?KugndX^KKylD|^Sei|J%LBZIy-$C1r zV}PI#4MSOG%xe(dx43I4V!1>Mr1Gu367*qHvb5j@x;9#)mqJ^Q@^By4aN{;b>n+gO zTw!`_8i@q`&}`BRG={PE_&JgsN0!1@!v*ihGL(~?;7G_S-?dhX`f9}(t5zt z>4+rM2ah#mt?;nye2(?343~{JAP$uA&e=hqYa||kGrVxN7p1w>7GNKhKcy%RQ?Aa2 zOOWf^Nq0mtkZ*H$4m&B^j*sksQva+b!pn!MB(nF9mSbC0%2Q4y%X!sXalb$SN8&be z2NvaZBY3?8>|oN5eM29P^5enr1$*-0Ak?tCu6K!THXo7<#Fi;^{y*qfg7`!i!E+Y{ zc~9XF7cbU~GulX$u^H5+{Hg<+>4hgd{D@yYH;A|mc6?`BDpV?rWDH?{ud)HTHQm+g z$f9_(;Dk^1vAX|O3QKmOBYcF52?qZ;v_ z3_atK|486q?ofMTkOfxB7z`VrPDsKL>s|1sy;z)}v`p{jC&t_AdTU#pmH$z$ zp;}i(Y<&(o##@pYlCv*S4fD~*b$rs1VisZmt21Y22{L1-c{<8Q*|DCA`h8%i48_qMzT93gnFV;^O2|AC3 zDIowb^wL3MTsU+N7R3yeOdwhE`5#YFKIy~ju{&$1VeBE^4eCbB}cC? zNa#YOu@8Pnj3h*9IJ6Q5b@CK{Y3q3)v~`)4tjw4;thv7^w6h$`qd2<~yTCGj78Tt} zNBCs4gd_n8I7J5KjXez$LP=6vzX8(Saek*07WV+HM*+^x+zIB7DuwcOVc+GXavnMw zLd6E+3^38Rwu6$mG0Wq9fPn|CZxO%tgygOq@|4T#7L>`I4gn^?*JVSP2X1=Fw>SJKZKydOf}O$ zdoS#nEY__ckALm!K^}?)*$!st2c+4EPOMPi;SMqO76%%^Qy+#w4m&Tv9p-WW`6%#f*BPOke3?ic^b2HXEbg+CYsLWorEBScCkM7eEy93XZd>HVj#+GGo-hfKwL2%EN#51Sd4t8HIj=_N~JY z3FiQ0a{4>a!dm*xf}sdDZdc#@czWV40fSvO+9duq9$bcxmjt}Asb-4VMTNL2aKmA{|N7~v!W(UEQpFuc zIn4JnAH0(i@Fe{Z7&=x>;kcvKIm0UGvt|H|a-gbMg&g|KDz!(>CeN@CyhWwp$$m=^!W>q^h*~ltTK}|&~FDz%IVwUm< zKp$jn3w0dtQ6wDstW4I5%W-->_9`S3Yx%uYO-9fKGXRb2&#Nw{I}qV0M!P7qG4S`} zxy;As#g9xLxW(d!4UY01B5N7Mm|VN#eC&Z|9k=fLJi2AbTz*g!Ee&{^yGQH8%Rv|V z9(qc)Vibjx;&7~reB`B|x(p(z`bK*guB@m}^eB7su7*BKT>|+T*|OYtDJP(H^30nv z5QmjMu$_%Uphj$czRz@IuF#7b@@t5?NQ-sYVB~tn{H@#BQ3%_6r!4C*bnhteb)NFF7-Wb{*F4x5mc@DK?z^e zi7H$>8j`=&Y);1!)P|e5FFrE8CupaB zD<#vrUag@d<@z^Dj*JF%8#qw%{tNwDQl0JW;)mwR!xx}t4TIt3*vd{>-4LnyT6IoM z&D-l&%$XSsZG1Gf^6}%x;k>Voxz5eq$DVH+KV^rS{kyOYIP6X~q(nRIYFq$&aB*!O;NIrT7Z{)t{j4y~j+Gj%cX?K0auWmtBzJ&&qia4TarBY{_Fu z)=0<<{d(Q2Hd_d@oFM~Sz>EgP@|BG>r(0d=vCIbWmwFt3dSqezFRWT$tPP5-U{tkBxVx12q9oaR)~fEqm#ZbjwNU<CYcsZ?)xD~*Vo(5pb-BzDkND) z8@RLrV*orvC7GX+dsoI$0v0FD-`BEQ+xy)|N6m4;udlFf_G;V6nINt?P92hjazsGv z;p2nX$#Y3Iv!UoLOt9(i^4faw$$By#XrQG$^oht6xOqZZ;$ZU!U77Or<5G*I>{xcq zVIICVsE}1_YTg*b2PiRJngGQJ!F-$;#p9TtlsPEDoG<{ZuY1Xr+$(ec5nMITgFakG zLRq~c68&+tP*PWK>ysCcU(yi*EnYGbu{XHwTllXeX%G!*&lubTHm%@Y5oOIxYfUB? z+u_LL&U?nQQiVe!_*2s9(c%exUkKX3$!BS>VWbA72`%wzv#O-1t=pW&U72^pwPUaP ztz&=|v?8+J^}b7WTh_wg-EWf6fMD>C@iK){VR;xX3|M@c#OGE2@Z6-wTS7Pyr6>}aUQUSW_(Si zJCc)=^Pk5n^xTe|o&3s5dh01w8pPKa-5D3oD?jPD;SDWC%|2|pLhIHIa39npXdQT$ zthC&zza_D(tZeA4@!m||)eq2uQPQS}zfY>*^L*-Z5?9^+Z-EYdp zH+W|)@G*(%_1>kr?l}EWoGKicRH`25KcUkV%j`NUF8=5*_}yKT`~X)8rjf~W(Vq3b zur1j77UD4ZWza67mY>s=_%aQ7`u+Wr0U61U=MPD4c)cyHQHjf-HLvQxaBH;OFntLv zPCVql{QGy_sCv(@DQ~khcf0gF%&V}#ZOw4+lYv9K>I@gy3aH)7xf6DE^<8;->5R7q zx{ipum371%$}vb0M*#tPtgc=~-bA{d1rR`5TTfp5%$*}j2PaXlEyuiS`9@!Y1Cp|(k;^s2HSPsCv3aZLkno3q_ERSQFnwzbgi=)$0 z%t&U;FE;7frbEL+YwMOqZO^`!!?hqO;R@G-H{=dN8*cZWkB^en${t#J&OOkP{XvDa7QWbiW!f985LZEb@ts2^Sh8 z)i1UUeV~|Ae*B%t$DvrUnJ0VQ?9g1C3O{b1LDGwz^{LsXTLYP(aYIN=eBFr<%R+D0 zM6cF1~@N0X+W(~x41!AvH0K8JHesL2RWaUP^h5>lYec_GAb2Rq}aNF}ih-k*@L z_vN;>sPIFqH|kQX@5U84bhBEcx}aP zol8p7lP^$Wc94MB&)z3=qy1Mx6#dsH;IL6^3yO70H}*&;b)t>K&1byAG6d6jJr!*p z{5&THZm(_?_^bDp)_eF(s9fpoqfv{a`vvnf=+=$}sM~$G{=FD|N_ot;C*LlT2qGm( zDDCq;@W&os$XdaSNr9(q`J+P&RV2NR9>EX12ay3r+AEk+j%KGVXH>&tuYt>My*8y( zH;wr=y_BO{dOI2q>T#Fj*M-xP@|{#_`->TYejsZ&8V_C`>9je87Nwu7Dw+nYC>xGJ zyMGd&B;^{zY42L4K;gM9Jf&v3KcfDJo&9pYrLiMbi-IA%mxdiymZ8e=*QA4XB(A|@&8JLmk?Y!D3z5T0L-zi{kLZ>{G_M zypDA_vsPz%iZqm%iQig*!Rl~#3f;JOI^i!^p$TnDeImGh>s109CXSFk3nlAP5G4`K z%{J3NDJOJH$+kB2tOGW6)dB@)A@H&<9RDn$gH@uK*V1Y?>PRfx*Ynfmf zq8Z>J_r%}KG+f2P2Ns^G#9cPke^t!n+?G=cc!*(`k0OT?>`2*&>FpHS#z{Hqr)b7x z;l7$POf(rfU6O;N*}x)6uTB3!Yhmd&CCVaM$=!6cmjaOzRy%DjCgBhlrdW##8`=Fi`p@7+Awb_W&Ocv z!9*6hrEgxB$ucKUA)BrPNvgiZL>tNEm!Vgmi?KxF1m+bH3mzpXoG`k^U7~eA0MCdJ;R4@WZQ-Fcz5CrM%oj~ zu;sryDi(=U)CJCM(6XkqDNKu7j3K!0sJ+?NpWk?y;IYMP`g_`Tx?3~BX+%1EdgP9~ zJxREK$HJ=G<<=Jd;E2R8$EGjBe2HiSuB1+shQ&=HS3}7z&aT(B)l0+vgG?&tRk0BB zvhqDGN0lQ#n%YW>N(%nsyCFV(!lccIWoPqT5Uhuk@GR9iKX8A;3ghc{Kw`?E0{OR@ znw*3ZhZY;i7B@<;V`5>%0E{x=(!)GRX^BpI#V)=xJg3YYaACp(3m1gvQUuq92XkTR zR8>A|DgQJ;g%|)C-FTexE{i2LK*V3TI?AsH#@DG^=x9NGU-a7l*fi}SggG^_)4vl@ zgoQzxRLsW4`iUG_e`EHuyJ*QQE#Hv<*p*XXV0F^$Il6>VjuTj4O=&TT~GK0TmMvMFl#=m3frtZ z76#QW^LHeoJ%`dOJ6l&=uw2Wgxk7E$vcGUzNm+r|q%k58;W5gPuzhSbpaakiFu zS~W+a(cfr81GL8b5VzrxY#5V5u9!V6?Vu=l{rM-^LpvKvwDqDGR!EKpDFc%QZ8L;% zrtGX7g;(Ea+w~XhIq32n=m2CGPmmt-Q^~nx-ueTXMNjJ-Aj>0RY1}`yO_)<*u%;A} zz^o0P?&DPY2|$0ad^*hgZ8}gXpJ-ws5Ue6}esi^pTuw5Wx3~v9T5jj{mOQnFypqS9$|JgptCw+4Jz} z7l^kM1dBqKA-gC|Sm-MFQA#^s^-Ot+;Zd6wSThV^Jvq{ zK*5ps*+Y%xJ_Ut^g@I?+v8jBBy27V@_84b88agHi&*fMie{=?G{Q7@Y<3r3-qOS*b zTeWsqq#a&{Lo-3z;;{=zq+R+V0cdKHuMdzCQf5uI@B zK}!Tp!kOd#MDxrSfdF?S-G5|<8I5qZeeMvP!_1i7oQ2yRs9 z$Y`f;XZZs*!tp>gmP!4qOA#aC?_c2eq762Gp-{KMA$6}^QqJTN@Md0g{z+_Gp0w=_ z9?)$+(e%CtEi22IUl?nb9!M!yt=5ffM-xah@|HuFH8lQaynQW6pVOL>Vn!z7ZAWVl zwJWy4L25?L){-InEiP0 z=kfdl)elbKNEc`-K)!ALrumK_j-Jg*UWdW*!LnwT zD)vpbAI3PsqoXvxe7E&R1*O^gYKRNNlmXd^8Ym_=YpT#~R9ClBYgj;v#}hl{GVN+& zI|erPrVC8|bA~(Q)PU_gj&R8Z3^(bdhlvqlbl}`lPZFURf#EME0bcr9SY$=Je9A~Y z;&Pzz9D{6VUp|()| zg&FV}2=Llmtz*AH^nG5t@bWx-$OQ9eCcy>uPZE^IVEv^CgA5g`A`h*tfcO2fn$(IlXyFK=D0w z{zBmJp)uZw$`hg3fIS45(qLD!N%$2yB4#OjP<~5ip3=24?&%|&30VsL zeFfww(c0sGLT&#d6_|_~CQy$j0y<#R)eIq+lLuFzI7(`_jj+`pNPWteNu##sgUuY% z)}w4G2euO-#vXQ=*POI=+6;(KzeCJ~_7C^Nd8q@pBFJ_QOH^6&XJ_T1;p<U!O} z>kl4&e)qlYGI&YK?XNIBVK&f~oZi;ClVh3Dk??b25tYv|XVk%8V_y`J0f7OE4EPI8 zEd`4t2`0s61Lu6ud9Ml+CsATMNRU?#CBvDJ-Ke>< zH)nz&B9kF69zszW&+gjT{9mArvnD5iKa|A&zXCK23px2S9RHwWAl9x1bAKze`(vw6 zxl#9a&R@_lI{)jEcAFF0I`&9=xt1>h9aTXdV>^l{LM{{ff8EhE!5lEEda!-%p8B>n z+hJiNe0l~kZBL=m$A?|mR^Cos|K|}YxtEm`b}%sAPJy7Df2{v_G}K)voh^eYc%%fe zqVq`ot{&ehzEh{Gjws_W_=*BS;iz+mWTVEGh~Htwg$HjbUAefg?9R{C+dO>k-%p_->K7rq47&I_+w;CfK3_K~YmLA~C$~k` z*K5E_<~Ept-Zh4&bW)$|LzeP^1M5rb0|^6D5Lu@|y}Qcrpu&3Xz>y9w;s6j;M|kcD zN&qEP7uK^jOkp)|$4ZF5_Za>gw@0ld z_`&?GcAzq;)h~ zWB^}TNo^7BgmEUMd5lO4;I|@01#MRoV+Bj~O5sxo#5=o{Tv(bkK~E)3oxL@!f3s4Y zFXY2mp4e4b~SZND1nEd3HA_gl90kP7<_-9aiOvGT)PK2t5vg3D6P})nQ zh9cGnY}(MP)5r3tA=p2F#vGe~{$PCbYWUB(KKBw6;(#fx)+>A@{bAlK=*hawsxoj= z;6}-_fE4irR``@r&8uNP`?AH zcdIso7o@9&Bx3zg%cn2nQicm{!xKCZDpUqmA9o9JR;PX8Cakncjk!Ns48qyo-pk6q zHiVa&L_lUcX2h{nXI1Inv`t2~a@8y8QM@yT#whfASTsa6>AGsB^3Tq9Z_Wi+ECkLW z=>S9;7%5Zm>`fgg3X$HwtyPqOp9OdkjEzC(4wv$~|5zx=BGOy~MSfGfLxszoC**KV zwl=diI;W1JV&TDCUJ^gs+MX}!5sr$tSjVn8lQfh0s+f%D z3!aHgtx*Tm?@&gDRwH!Cjk-rWCPqu8}ybA80(u^_~2ImK) z#X;&iHMl{1s}SNnW555&Dy}KcVzsPO0uT2NXQr6I7!InotO5hh4C)F=*RcheT!gd; z#I15UZ|{e%q+cZ7QZs`w(qqp*@@v{M=!3;Vq`~@bd8&8rcln>Lw3_=8v<6(Y)PO_NH&lk6P3vCbW8YSczA4!D|%^LTsRCPA+ z3$B%;ZHH7c2*q?~!A)H8?9eKhk_@H>dRHL~O0hvS-OfEQPutO(qBMd^+Hc1^gd`E) zMt{2RVU=33jW#`-XbMup_Nl1?IyL&#D%%T8h(E9+|A~7XuuWG^fq@ykZs$Ji<;bY|O}f0N3hHGaX-oBGM2ZOiGpWzg%C8zF@P3 zv|!8Jtvca1k5BQA7$fAagH_&Z&Af)dk(ddTP4ls8&Z*lTr%(xl>9il-ttk#~e}8^k z>2N?p$?f`+|E(%Jk;=;H4yB;K-j}QfAcfrWt?m$vySa2KcZhUM|MfX_1;lQLoU7EFi$w{YQAN7xV);xx47 z)JeA-WJqMAGzv0^eXROiO7L1;#CDpYnU0P%=!!MskdPTv@0z`zs1dUt8sOQ2@*5nQ zwF1$56n?RD_+;L${x)bGt3CxjPD#oP28HeM73>!LLY-d9iMH9j|F`G<8DghKW5EqG z|93Ybb}A*~T3u3k#&`3L89Sh4^#*p3E5x9&YAQv-BVC`F%rbY&NXl<9;KEz4SsjK> zLUa03FT-QMq54N0<<{S9D#tS$T*_HNzCmA4adl@~&vl>IQd9CgGfP0>zaP)3Vn($9 zVt`&|3g(4X&+A<1R&_KBrt9rzSIM)rYSmH9Xn&U&#f0>;JoaWjsSB7hi!R+sBKNsL&_15wR)X}lc6DTO`StvG! z9LIVz2|kb5;Bc^fk?4`R(XY>V3;&=dJ>vI3*kE{m zn}Y^oy~p6&z03yu;f=n;RE*(?&;){-dyR{pJnALs0`pwiFm>`d1N3UCjUamI1KG%U zi?+mYY^M^9gu#+KD;R#$iC19YgwDg5 zoo?H7mpuLP;KvnI7wB+8L!92a+tv4Yd3FJ`45;%HdHy~^{wD)Y<=jtZ)m4VN+9uJEqL7v}_;&^A*xox7dDLIT z>H2L`0Hq9g0FHT=ttZ#dAZG=EP@S%xSU_ViS}GcC(~tdJp%7_!a$~P?4zcNL-DS_f zrx$F~hM8<-bfJnMYInw$8uJ#H*5U8=vwI(w)Y#Ucg@fDOg3TO{1Lye?y8zP9!%Zi3 z-BB@;jF#uere@L95A`-{DWm!wid|K2EAMOZvCm6(K+0ri4cphJm9EH1IWBOLPjR#Q$8o% zS1bXhZKt+kmv@`9SAQG)YwkenU`uw?^Z9x5o_X*_jidU*aK3|8Dz_18^$kOI2`(F= z7g2PiL@)u6?|-42Mfcp;u~OOM)*a47q1B2;c377kIr(DK@)wrR*uMBMP0Fr0Cmm>L7fQ3zcL zxZcAx;)BCA2uc1ThV^Z()%UH!ig-G(l2T4p`al##p*d-D-TXKlWbSD}d8;%3Q;IQIFWNNR-*4*g-BDn_dELO0>oC>%R*nQ5#|Vu*M!ua% zL)HWj7F$6OY*boK8HNF~ka$Sr^wO5`t|bB72CDpj=CSp zE{pH!?R~lB#1+dWQ2(?|A5liFDM(e_<|bL#6TFOs-DhYH%GNxQCX27aa26$W)R8w< z2q1mxs0~qKodU~Q?BYdI&;rY)7+t3JDMCN)>HgY4n0F_h`9DS|`Cf|wsFTxFP5Q!j zg6GtSBla*|quvWi*!y%BVVh!?m*r02htclzr0g+HDprCMYw|?UB@`jvZzvhKpSa(k z0A;bxPy(Bd>it_*$5RIS`xoS&w6E*^c4;6q?=1W={T#>-`IjRuB^{yAz^cm%6r)!A zuZWla^N|!Lt#u%rU2nE#?2$FKl8)Wq-$EDBWfm9}_#~S@*zA}@7^>a%0PEL$p=fIg zhFb^>XU}0z%laU-z#eYsov!mhAM#)m_rLE4YhBOcSzG;(i#d0s2*}7Lp!;jRp4+FQ zdo0=?@{)EDFHN=EV9M0jf8)zta3AJNlo(jF?gq547L2+8Aaa0^VT?P&>rl9dK^7yL4JBwPARY~LY~Z@e6~Yr7R&!YB0d+X?dY_cHfeD(CAIC4WfOIP(EAO<$XD`v zvmyO*8HanfT~^Bu?eitJxnA9BOFu%1Mj@03DF~1zTZO!*eSQ_PUP{-VakCCChnl$l z*=zODw2lxv#K@QC+kX^#(s;KeZ_a!avR3GDi581XV-sEs4kLtuo-+9k%orNz83pN- z0Vu7T5|>N?6zcE+8bjBwgqnfC6O3vGkRo6r_KEIA7!maJRR*MXRd8)(G|5d^ExlYM zA}lj0M@_wWw1({cYnvb@L2Y8%KMRSKZo% zT3VArqYntrc_hSr6J*M!@PEAd(RwaYSsAsS7H0anz!Bb@+m4pKP6h-6=w`F}G^2`k zw-Ip<#~UTiWk)%_}zIeLE#$kT zoj^b7avWt2!qP3G|2xBYuVMzNj`HuJD+w2AUH_3=H4s>qWu#=YnZ`;VQ1^5W_5f&x zmqaJf=?&P&-hHn5=EX_}(JHSy@P{y2NtY>uDdc(vDwKuUlKFxK3m*Oq*Ax~?>-P|% zu=Vbtb8YCL{l&PTq0Z&Cb_)5LohZT}dJXnf_~|oK5VtQ;1k{T)&7&aQI{$A%+p$$Z zkdGvm!vHTPcw*A10+)IRoXtp1{{?kZ6RbVHaOD3@blp28kUWvGD*T{0)G+#<^XYG?D%r6^cB#k@#N` zKrvupE+oJuP+8Q;EJc4g89m3Tvj%yoE@L)Jt2UT(o#sTJLdT}qe$3l#3>>}J0Hpb- zA;-L^z!+_{F~%7o3)MiuMwYbgZh`$TnhRj{wD2U02}v2xTCyg*?T_9p5^~?SH!pXK zmKW_e6Fk(zq-1hmG3g7VNNcgco}hAds5=5($sv2t4$6J~VbL8yTe&A#i)tZoqIYkP zp3d1B2qB0W>!IgkZcrJC;g$elXpqL(@krI@+ut~8IMs{~KXg9EsEc4pb4JuKOrLRm z#6Ge)0EM-(|5f(r`4SQ^AKSu|m0TDUR*l9RVFM8CDbgj|d|96{s&j0^H z6Y2i-0RmTrriJEd^OQz%LR7lV4F&>8Bh8|01&c7*En689_^QkuE^Xln!4n8nnk8Zm zGjA+SVXd1+^dXH#?!AtA5?`4@DS2=kI? zG+ltEqaeRBC$M<2-JZ1SgB<-Jfe0f_-HZhbZOc%VH!}H(+C;?<(FZfK1b~<)hm6&7 zkN}s#u-VaAiB=p;1_#u9z8dasOsxe#ThnM^CmFEwS}YjXlc1x28fI*V`#&dL-w%S7 z9CG$AXbO68k41ZTYFtH2P8qqPd8mxka$eUq`{W#w-=uJUc-=9K9LV*mHJkGxs0Vk| zG`%mXLc?wu0N&@vO(_FeM@tAQh{&RCeAWW+SL!0$Dy0re;?ychsL9X+*}QtbpDch! z23W{Z_);9r?w9}#beC|#+2uhWeTeuFz<9fk7|XPGBv;rzcXRSo!Fi~tp|r=*Fh=b+ zctN}49PtE!+#PxD8M;AVmSZ90q@WA+>eeL69fOUz;qr++~_<^5yzqO;E!aWX`s!&Hcc=e?} zjc{4OP~lTixzmB(8St9}c1uu#vwSMmff_0_jWBZp(9($R{{t9PtL+Sei82Q(&|wx{ zO0(n9Kn?%;@yPi{-4 zpl4J9!Qu!ILcX|#&*Y*B$PflmHhGvw(eA1=0Q1LckyGU(eSpMT(yb-JECFhswl&#M z+g4)E1K)&-B0mw^==9-9_X`EN^015dOA{AUcY#R4qK21L0*NyKyqc(!P=PMKmejgl z!QZKee)BCfM>(#xSvaLA+K3H^K9s-wc)mHmNuBTrifQ@TO%{FUZpUm{b;}T}&4=&)kS*-~qP?7m@-?4p5tH{i+b zQ_is#%n8*yTMULEuPIqC=cH@rfeH&0^(tyRr?5MjkQ7)YhcAaZOVXEsmMEYTWud#a zpNG_4n|>04Hj7AC^dNKL>uP>Zq`>Dm!83|t-lDB};_fvx(bg^nHP5mxa%O|a^S`}M ze!(ie9RDTrUVIM(SxhYYigOA&!n5sc?M;pVs>g8y)u5-7s3UTcjB3(Yyv0mk%eWzs zWmqEa@1=t7sU8?cD-NwV{)GC|tCwA-ZEJ!vAZTDnkoLz7pooGLUDmCn=`S2K`OLQ{ zF%^ZW20%47n-bHa$E4EU)A1+0f(oTN_ANB8RkfK%oKUl(RC9FlZX z4`*(L;*>ZyWU$sVqy1|A$MGRg@7?ltL&XM8;hznlzB??7bpecZCL`jf^JQ*_+5{n8_Z= zEGyajInG=6)%b+(^ZI?C*YnTsug~?-b)VOH9_Mi$=P}<0c@>vH=0|hKpkuKQ{?D9+ zM4sRg7(G~J+w{cgECQQ-P6ZSKm1yvs%H$bnjEF0N?GTn%Mr^&9JW_ZHLdW~`C#;uB zE-Kqn-aoq+x|-)(a5k+jfn+b#*7I`v34}QFpD_7CqoZOyBJqfJ=Fk(E)lKVje>m-b zdGd*`W54_3fd|q0LR>wTd_rimbcy!ic7f5?h}IWY%_oT)2F%+x(%e2M*?A-K`qCD| zjtYK!&Arr)l1m`XWH&~&EeQ5w`^S6DEG?V1x7?d;>Ki0@vL&m&%Os4gr(Tb2DDM$9 z=r!o03^4v{*#!VZ(OTs3N*E$8?b29k;6hy{f7_Z5>zG{4r;;C*S(Kf(#W0N^fq1^| zR*#(8t)WyvQSH!r)c780n585 z_KA8zva&Ew`s@A3?OPFe9=@35mh0zEVZk3S%lAT!1`=Na+k}@CUvqGNgHVn?f#)!h zpa=!3$ND#=Q6?M&B}MLYg*wM+Do|=ypLz+&^ndv^7MMDw24hsil0@Aoy}T%)47P4?MlV(1^=^_U0m<6`~EOyq0O|MP(C*^5bN< z?N^dZWSHpk0A9_d%{pky~Y{`^|vKH?zse?AykgBfC_dltPAK%7clKo|=Z5)Jr&0 ze6pEaeddhIiL$RF-x$4|6HnB0xk$d)djw(2*bJ*5g_(@NOlm}vf3GT^3Q@=l6%{kwtjy&(@ihOo|wBM_aSY1jFYhyn}_pA{r&3W%ZrDgYbW#M zRU^nuK80wsP#gPSoWhP;z*fEOAy%u?f_M@fowm&hMW6e+#_wyXXYBq1RQI(JzQTuf zacs1dreWhkcD~@NaXgoEg0?6;Sq#7%! zEn>HuG#A+M(L3}g?XeC@Q$=NKCSbV6>@am9ay)Sne_Th1zoUS^ipzP7c%g4T&Y?IVj8Q9FHR};q1oT_FW zeKr0<>M&W>g`kWz<((E3nL|la+`|%$-|GSfddDLCE|?FL_0P-|X{tNTwS>5Du_&YS zah9#JLB8%^*e{Dy>LGC2&!aidAI2!3)9lG)-5GWlLkagA8Y|n)mp?hvczb!+@xY|I z7?Rl1+L!`{)U??A98Wu{V<*z`+wa2pg9J&E9Nb;Vx52-daBvIM$RA)E%OPL2R0$N! z^#O3B#*o5lB29BefH4~OG(6uA`L#Elxg^ePz6IHa+-h3(2Ho0wPp=RJzF{Nn0GyKl zAyR@na1EpQ9zBdlKY+9BQ9;+2aLC`1+3$B!-aVV5YWw%z5%VLEQWsxp^B9_JeFKkE zlv|~5N3`Evln0>ov``AN0PI$lgwRV-8h@m7|Ax(lg(6_IQr!b*X6dZ zJwVS;z^!u)poP109A$)w<8E3u~<4gxSnAWx&Hl?kK3MJcj*77cg z{1wt`lH_4vIEk(j&-^LavJ?g zN0$K>dPo^N_NrkN?F%j3#DBLM{Es=~dmnb=+)Vs0>+UUF^(P7|`25M~XKvf`HJSPO zvo6zHSFEOW7v+p~dLDw)xD{fn{-!;qOX2qjBJW`0Am-iG1+S?8#Bv2!G5izXvQX8J z@1nJkX=DHiG9PcZ5Ko^Ixp~mLsel$Bk#@OAj~s0CwQ~O zm}L`m*%j!?*Li&i9XtZ&($UcFDQ)UQg_m@@I9R_f1L@0t9HhqXDgBzo4-LC-EH2hk zH`Z-jN^|=?jH#-?(u_aRbmn~o)yvXbD6WMsCWIHx)rGEbbgZ zsDs40R_H!Kox5qP-fMwj(OT1WrP593xSff*rH1v%a<7nRz7tvZ= zihJ`e?m%;Ig#5wKp$B<7wOqkEG>FQLJIW_KuitCob#mueSrWt!e>#IKiXSs+{pme< zUD9(Cajr9y9d9*<0&1@ANUlBqx{GY%xu))4$gcxf)Y5 z{zYTo7r+w%E(r*KpYZSaK@e|6Lqm2YE5+TmJ8Nri{!ms{lWE+6IQbFIU>V5EM-Z6(-6kDObeQotgh(kstzyX||8#SY3dumSz`TY8D5VK^-Ws6IHIsjdV6 z-5{zAIK9UpmT&##87HzKkAeEgRmMM0F0~9hv()h~Hye_tBb2jv5c6!mryaZ4nI}I3 zA^rHgl2;gDHeL}$%!JR;g&{fbxT-H?8QzHULNhJ1MZLFZf4Z1;fO;HC3F3rgX)&?) z&;8Njj1Li+Zvh#TikcD_VeC?j;<80Ckq#)?;_*XjU??0^I9Kk2H*i_NzFaNxuswkR zOV!}?gBJBdr|h1{%TR`v7EV?{6j2eyN5IMRyA7{ZQR^16hk-HB2YHqI+pQ0A!LSc z`p1JDYE{!$2UA;S`qzupYF*LRh<@|%>`;klOJn^|a)UWbztt_LW4f9!)=a6{Q=JSugmYeiMAU#Ff zeKGlTZH^?^TUvI#0aUGeAjHL^ep)&E$GteazWR<=w;Vp`(VtgN1!ZKZKzYM$x8=s8rn*TNyI zCbLtx^|*!O>9RDPhrK{y<2_To3HfPV!3{}e(J9U15?x|t6#VwDsq)%3jio-md@W?E zu`BOl_E1oVFx%iY*{fI9h#NZG3VURIWc-2K!~>7(Orm4E z*_1avkKg6%(H-xP@@FMR-cQZRnT*V#bm~j0QSi_sQ@>Dgur>buPF2@!WFueB1(i*7 zg|Nk>e~aj#k)9pAMI-O>?X>FLUNW5Ykbl`#`}<1OtkNk{{TZHn>{?vLRu4+tbvQ3K z%)vGxm-_iKRi1E-+Q*S^K70F_zD(Hn>aeklwz$p34HmMD1gYXY*) zC;0bA&K8F#WDDbzs6B#gt5swy49g_POjok#FuiISy684`F&4K)S$Kfj{F+U z@x1l-=UzX(H!wyeTd2^~&^($PgHwqe2^oII<=%En+Ewe?0RP+%e$~w>&%3_LyE%@x zb4fEx!6K6`TU`ledZVVMX1a1$Z03)5mT%U|QYRHL33z$vnZILAd@zr7$&DoOai*!&{cTm1sLv4?}=&k5-Md%465#GnVTK+q;dYd z!b~S;s%gM(rJzpv$jMudXBtwU-jWh$wai`KY8&gMeyz1-pM0+sD_aQK)YkB)J{#V( z?yzt;x~JV&hV1yj&_A{XlWi|RAdA^rLr0;XO3E3?vy3M>9_MZh#*$J3za6xL69yZi zjNT_oKd1Kw=zCW{l&+$UuKq_Y)76_PgCmYN^8CYEP{eAX0~l~SrNSJ!1zR&TXt2Zm1X9^U1UrlBT)tn*?S`` zbtOLTl1u;5S+cL7An-uWOrJ$cUY1@k(^en+d4jMeN^@-K^AC6)&?A&yvW#L82!S1N zeHa~9_LI)fXNqV$0>#QGjRh^b!4WdE0l|HDo*s7Yj zqlxK}({vk~^t(v)0j~`{tOkQuXr%VM3FN*R?3&d8cSt^nw4CoV18zA3$8YSq#$=J) z>#Wb+d%pUat z9_o0Pkx0$ed;3#$YSds|Pj2We>)mzB;aIJ4WOUy0RjjnZKkkO{(M*AGq7R;K=en51 z*y1o0*uok-{)WrLQ+m3!^}eb(g|dc&Uh4FZ_xScub;t!hcJB>Q&YAoaeU5YR7!RvM z`My=|IkP=EYj)+PRvcnUB8h%AH)xW~eN2^JYZ??(IuQLuwm}a#Zb=Ac_UiFd1zKcJ zSih~{O5fx%T%q39R&srite`ZE61H%S=G)Pt$DfSlw{;_4pAoygx#fuYcpn1be z4jCb@JnH&~VVlAX%mAmW68sUzay)t9#O5OW)3+g>+WCIc6L00uz0ND;@?h4fjjXW& z6(otoiy*FjyCer3-0`nnVg9^&5-WBwrM)I&q2I|oW$Djk)&}`5ICWF*MmRnS34g?oqRE zb*B@fzC$iMO4T+q945VbY9Plg6>O6FQ5K7iUTW7E)s&bK8r3N0=HVBj?)G~PW4jEb zr&M}8%1W1Yep1%lc%Ig(L#W5HeUnq~+UB9)u?s8BL62%lHulmkd(s6b-j!FE)uN== z`9`S|_3gqzLg0odvi?5Vil}zx2v;wb6-?AKlunUkU6wk`ppDX7AKu1wjeQtDI_Q1q zsqLN96(3DS!V-lL^8Te!{1-ZyF`50C9oKzcy0t-0WmzW;Jx@s zY917Js3@$h?p-N+C3;K%qvs>jpBa@vAn~+CKeKBsKc#dz68s zNw_3qG^DFdm#M$beqyOhZBf|3HYLgL+)9=I{DDTj2wZS$C@dV_t4?NLM9LUQqe!!3 z)R)b(Cpu+5eX=Ou12A_I-uN7E(PsP4QlK)W#_5*?BwNKgHTC4Rda`9tztXuSDe^{@ zTUlzbu*CkoVGbABK^=vQU(;%``Wd9ATWLJalIvddB>{!oj{6KAD$|>rU0hl=!ijwT^nR$DcoP*O} zy)h1Q{I>n54`g(23EMU$SJ zkCL0woqO;4*`@*4^~rGiB-0GU<*#XdWK+uQcnewJt5_{@4dXT0qe-pTID8DJ&Ys-! z;IEK7Ph!-^sb*+UPyg+2_0 z%uR$4^zerAQX%>sNCisvzW%z_K3|u5+I#AQAgja7NR6krNPV~k#lg8%t@b_NLRIC* z>P=!Tn`~=#lx?&KR7){$N>yuKtjI(FCGcNA8Gx=Og8sseT613w(2M+t^um~wPvo?6 zC|=PwTPF#xh$EZTjnjid)^+k@NPl{h09iG0_|nG$ZfjldsUc}ZTOBT z%^ay-(EnTEFsg52%YU}(O#1K}_Rq~u1L}KVr~1~E3x<-OIWg^cm{D z;ET-;E5;ffR_IcDXt<1gTG8SJ5``rutuvs*YVc6md;T2f&rW2-!}%|sdkAja_QYq= zghPtxsIU#l$YYzY!LzM=qM*WX_x|Z^@;{B)3$A5eE&Od`B^uI}CL)1M=-7wm0dL;1 zC>4MkJ&+2iRi5BjdQ#;9_77L0d)tjXP0(z#&6}nQMYGpxOjbTf1|DK%&iB>}28BD@ zZ2V5}@H0!oJrl*vIsrP2v}tOqhs%R=XU~!w1Uu+AJT!^TveT-K1=p9hxv-i_?_--C*B^I6uG+VCg8{X`S1 ziXT}Was(WK%iumK%lUC&1*G;)e_kbhHrQ;cFNLNn=wdT%LJCctMb1oK!FtWc(bs5y zT7$UGh@^vji3MF9;$WLrr)5A0T&oiCJ)gcAj6*Nv+SG?%+>xw^=p9=fTl3UMOm}nuUwi zVYoupv&?lg!OVtIcFnh|WmrJr9|t@Y`LzyX3eYdl7yb#q&tr|xKB;AZkcBe7FI_; zZJF*A&0o1*jn+JCq&jb5{4O3Y2;2zTbiQ`o{;t)}o|5vlo!@1M96TOLCN&;HrF%HkY)XXHooYdv<-H6G zt{)w=GWY52b$E1kk9Bu7%OZIuzNkL7a}|yl&Bh}KtdLn|{1jD`YRb;c@dAExmaWBY zRY)GETngj}S_5}t6>84D869Yh`gZ8(mb9A&~nTpjIadNf-^X1y(( zb$SkE-zy6Tb?A&!bwcnb5#{NOj}%;w1co=YBWp%$Ee$B7UgovpMzm80Q=2qJ7k|g)IB_T3q2f*E`x^L4$m9 z=~CNR#o~k)lftxyu!-X2*f|sf8Pi#7D@+3(ZdN&6bYSa29B+h10Kcu5d4+D!=E9lL z2L4QN%4~F$S+&VtEA@LGRYPH{N&;tZ)>yL{8;daO#N2Gl9Mvu7c8-S58=`a?;Dys} z^A_D?9D)uV!DX2I>R^gIrEK%T;ZD&UvCPR&v76qFu3#I-+0RY2w1|v?zlXBSZFWeN z?PiL!)L2@X+0?YZL2#XIgJEpJ`R^iRmda8{*+xe0ed%E@0|^e`k=158F*&o7abRqY zM7K^4mC>x)ctN3t3B1zhED*!~>#8OkX0XsP!NraM&G;H(y7vLcU%BdxnwBG|!xJcf z{Fk1ciDEw*PJN$}>$Hes-8@&UMVJ{POjjT@!*mgyuNw% zVh7!vD@)h4GQ?=K7S?JL;FcNSrryRF&0s-3^W9Urar7l`Y^LCw2CfIe_IC``Y&wLx zN8dx1h3ERL?t`tBNBR5CK|aOj2ltjZ^boxHRfdka;K7|J=39(HcZrB~Xn~YO=liie zf-#dRZc{0(nsXzX4I;D_GdEL~k7hXVlYLpU=kq1Y0tV&8ET<2L@_CjJ%j@;k*?%a1cpF?pGEsljwb;JO%Wk&nDia^X1tZa zc5Ng%gl>x5GlZy(r0JgcI#Z7@$vz`>mRhiF^4@ZVu!7n+b-|^-bngK5DmG_JW%8ZP z8<;JEyyp6x3&FpdwnpN6Zp_Ge+z+~t@dLFGZpf&f0^_2I(mn>R+a8<2%&gBV`MW1m zEp_)EhNJ%7)Zp46xL6c&1_w*?#Ac@diW+}%U_L7 zu8;Wsy-2HlZ_7lfB`7J$F0*?4PAc{_8O@(YU)^%))ro!;RF(mky3!@!Fqte6HAVR# zs+)r~FTgcC=c>C%CPLC|{EgDZPLK6aVM|AvlR}R@?XP zHU(y3mC>F1PBT}YblpC`CD^H-`OEQ}H1@eG@^+*&uG^V4Txt1w<@&3jh^3iKpOoFm zpfM7m%)lrFc|$NY4f{@^5S2Y+puN}B>trf^hw!UI>S(=5KH(ApQ^(f(R?7L{3zdi6 zhsb5^65cE`re-?Sz;t68JnDU-^dqp1Z17O~aw9l15oA zSiG0Nb-e|P%wh9iB+wO#dZCQ;Mn+(=Xc9%UHj`2!flCDk>@LLY_`386X&A^$JhA2; zh3qU?Ctw>Jl|^o zG@5n2GZRd~Uat$DsLHgd4l-8SN4D=N+f~F$w?=ZfJa79A^DtKZXr^w7p$|e09`FMW zgT-p;{!C-RvjX?q^ri=_0$%v3{h7f6*Zd|c?*pfQazhIBgPiG()&P^3?OFazUen#O z(i>1{E_mR?7FK4iITR9rz(LBrW}VC+f$S;Jb5pw@_Ij}*6U-leJyr__v)vn_S=gN< zb0$hG@>-@#TCT>r&GbBXTCaI6e}FT9oQ+&~0yA-K~H*r)dn%&0&n z0(S01w#=YNCdAs3uh+z=vp|?OF!*K@9OYKzZXR$bbMmNHpf1RQ;M!_*qveyan3j(P zA)n_X2=2VsNp5!Rp`F{b``u8`fHM~o>*VV-odYoYNTtZ|qYlHS$u$hVkf}IK{o8g35$K7PB^&0lt*F@EPrkuNF*uH&h z(|e%KnA~XnKKZ52oYcrm`6L&<{+Zr{GV_tq&OnR)jC<(#>}b&tJrv{Y05QbP9(K3H zzlA@3-vC-%-m9WbEXZHH#<>d#GjM}wmjnpA6cq{#RLHV5Q6AC&XHztb%!A;wMfa37 zm__OhpC*faX}o3shNE7JaY{;BTG~=m-ad~m55j-x66Ud4qsA^ls~v+O?w9O-udSw` zf9-H&yx>XC0$ zcS6vs(Q@RIvS*-q`gV!#eKeFQEv`;IIc~$UZdLVdaLWsp?AVr~1j$Hz?I}4kW_#wQ zhg3ILceBiC_Rc}vu(+D}A%vS$9=M#pb-tM2LzNI?MOrW+Lai~Du58i_&XJvOql!wF_)xeSoyb7RiOR7!V#_2qG{0F*C-{ zl^{)y#TwX2tOVL^M{xW2b8v%KM+6}tRvbuba`F#{LNy^les4UW?JhFK^YDl3!XNCy(9Uf%hy?wF4L&nDd}W zeEduFqZV7nCEO|a@!_QR`q;(7xs{MnrWvjd-nOBkA-ei>Bl0LziubK9z<=3qs?*=8 zbpJdZFh4n9Pr;JxI$`2^a_!-xZ4(X|FW|qzW>N8w$d2Tr;!|N%uA+}Ji|OocF2!xVA&T#2>NuMPI)jMg=kr|GL&LlkC>JKc!eaq(^IFc2)IoMi0ikUMa*jY>){`{ zPk4wV7-T=LFual74+sn}2x)DEsV%7vsl>WQ zES0+X4Me!g+@?sZGAp>Ev z$?AQG<4s^WA!DT+5FWptLCes95088cGsXt__d_T$!bS#OQDUbn9oR95l0*_{zi~Ct zo*G?xnfLtAF+nx9?mO!M@%rbUEb#FEHixa}ll-S8Xp5Uc$D~Dv0pq@(iE57M%0PI3 zObF%Ko|gkw;(Hkwl2Sb$(ANIFY$C-iQIDRF82>@j21{KZb>$%i666cWPq*#4UnH`@ zTR>D)v?_xP#3Z{YUa+-z{y>GW_#ymv-@EXmQ+@FmWYGddDOO{j%{H0Ns(Dg0kfZOq z=PuD#9gbXOB`i^y6-Zj73_+dz1aL@ajSU01IZ+w9%SEYIp>OHSB+i=`@T z*%ct57r)ydrH0NE&KOnn+&RRf^8>zgM^qTtV+7(^Q5F`8#P*b<>YuQA{rlk`xw$}% zBGKJ4$00X&bK`L_VY5UK!@ph4_;;}NN-r2huxlFI$iE)QK;r!FJ`W{|^+K>nSX;`e zA?Fz`E`Rx0MW~BKs?Hx-fd8Jc0u7@0@JR;jpF3d2?*kn;=>6fdB4_US_ae}KzH*50ch9#Ii9C%$fYbx>=s(v#p z6p(7rdVNqd#A7}8WH57!hMHP$fG#9Mr(VBkuZqqSF_^L>44oI0Zi@v3reNzJ=5?Ii zhA++GE+wdxuZ~3eqY%9j)ddg3^UDOm6J<2^sULuIl|jC=G)FE~Xz?E%6ssQaAUWuE z609}hs56IwG)yS}(pg3b3B)6?O2uy;00pxU&F3fm(=A0j#JCvvU7DRn(+b$!RqL4H z$9O$3S3QX-MN!JqidZCafuToG1@}caMQq#4(XI29y<8@=oBsyL?++yZiH9J zKCCxNAje*io_o@j+3hnY^xx7}fG&wiVAw?+WMNpUa>E~voPMRD-Y+Q(l1iMObdvmn zEB=ithYqfiK#V_py8ok#8KJZf%trVSH2??-fN0(qdJEUZ?@lEvz7rPI&B#6Z`W*G` z46#ZhWMHMk-h3S`EyXS`jPL$eY`M*k&!WPdRl_ek0v}0j;4E{4xrU9{+UpOX5fd-q*xISOigK|6F2@z4qu^` zZsyt&0{JgeT$t6~;(F|VX%Q<(Z|s-e#rkzrP8NltHq*~2n0?hRe!{ZtsXs(+K<^_z zgBqGlO2*3&X-qso#Qh{*xp4^efe%||J1Q$N>G~uIl?VJD5alc}U|&umyq=p9M=4vK z`Sl$Kj{TRxvM71NuLBj2Z+MA%8WP6GSHk8!f1BwWh&%b63%tWCZlfG4C~u(;HWCTk z!6+)*=_+0Y@B#1O#qAf%nwQ#TQP|~1@fZ#43y^srXMoRLhSzY@R!e7I4Ra^8X6R;c zrT6(Tav&U9%Zejq?`5DdQhgVq2|C~DaK5Xv^1or#mEEW^$CQ?7e`xoE{5F%L%R@K6 z5I|0{B)aZtnFD;5dX|kPen}>2m!Yf&0E`5m>hmsEmw~>18>QK0yHjEu#Dp-b4(y5T z*!Fq!C;yUBQKt(FmVzL!tw1rVGr(l=5kar`iHlxn6`1llzfj`Ns-Fw3>GPWxa`%GE z0Op!jPDQIc+V7P}Yw_K^rck%u4rZUwRlAj=S30^o zpBE4$+lpK`#Rs(>s&YJax76LqwLb{LY_Q6BA9Y16VS9m{s6tDP2~zykgpD0GeBXX4 zc`bKbYy-#2tsB7!X1$i1&Yn+5WWBU4h(UIgP;o|FFJ!5+%T5aLDA>x_5e$yn-q?P> zmEt*u_c_=3vieuugkr-j3L?E{?VPtzCnF~t9|)=h!-OqMFlHzx&_USfnILvRjsQE| z=N#JKPck!00>%t&XIGaE*D0W|Fnu?}1+V8KfhBo2oU%SbwhZ-MC-l2eBu+o|c?W@> zi_P<24}WLf5|{FdbkhCmmpA)w>kK-A9ZpH{hAm(R1j@%-o`h+ZpWG9_-#d{3xaclK zLis54_bkLn#IHX@s6Et!J1|#-z-jzTNLkx)a@T>@%?hjV>111-R)*eiRMI!?np&@Z z;p9f2*K)$W5ccQD5-mL%>2kEixJ>#)U-QP}S_<5PrQ+RWa;?P`y;-Q=C=b#eA5)DI zzqa6_J;2SwTKblo$p83BiYVhf@k2EAU^?x^r77>`W@mOmUPb?q5H|lvW%5_uZCCbt zwvld--I;q6lB+{+;6E6VYI3QMy_>k7Ej^sET`<|Yc5Y5>k2S-Z?Cr3*0w{%P`##mB z>{s$*IB+LIH0*@d%F~z-r42`wZNgLMl_@BOr>OJ{n0F~83QBz9ZKv;2qZFeQ;=I6Q zdJjiNvg^B~X|3uW!7D2sAAovC$S6>0sOCY4DvNQiF{*dSf5CH|_?{NrH{fr$udTP{ z{1pg;#%hY$bn%yfrBv;GYS7B2T|rU+9CJaMa>Cq)DPU+rI;PR&;(PoQvf>Bef8~&( z*VJ4`EYAEFlc6cKL*!BH;^TQw@&coY>@C&+-jlB(4Zrb@A_IJiE^{N%1-bZ^ zzBKPcGTajHPd|l4oI)kaOB7WidZvM(?Q|spEn=Q{L?g!eGD$upFrPJab#=YW8;EL5 z66mf;E2yfeQ4i+mZE7tRJXZ)4(?W;<305hKxrqtKlSwhOW*{EK_Q|ke40V1P{vEOl zvJZ+pyqp^fiQPK{J@CjC6#g_fRCViK6Goq?w(SaV@!2AFQkDI*l&xY5DngW#=O@fo zQP?VAwER=j43 z>xz)$KaUMaV0Wx;<2vOq6)DA`6L;%%fz8ykYEcz_0gI6nyhgqmER7{QDY2tMm&8fE z6vDu0PwqhG{3EZYDuRsNBM%O@hIrAqS5oNml@D+>ZDVX<6Ov*-0zF)q;b*$%^w6qoB*_-qb^!@L zy!b?k;ap?C|KkB40E5SKdY{2+EOFam@~70u=u%a|()Bap)ig z&kYBFd#rT8K8U3UZh?D7;xdFIgdrRuytexyn)mU5C@=$zkx|(*%7Yn|3kbmfUT~ox z0C8JZkYAu8T7-Rc;4Gm8($ueXoQXRQnTp5)MKCy#EgXBXupKtPzaDszIk<`_8!=yY z5#Srh0@+`62``7SzX2pc)b$Yxuo&Kh#Sn^|54L?#=}R%?f8Lu!_aGbTA=>U~J*$*M zK9{;d@iOK|Y)PA=iIRVkEV4)d!2u6!xjG;m1GXcGn!n}_XQKEBTqTiqyjW?)X9Ru) zSnnKQ__soM@#hDC-cyXc(CcagGG|iLj$r1@f5$|B!Jh-yTy=c(4J^-v33=kL(QP~yF+1kg(&_<)UB&uC}`ynkh$NXI&i=)HYz#oxHOo3vcF)(h-GK5fF?y> zhQOcVPeJc)0tt_MNg+DOei%-{)&~8Li;v3g`wBLrutZt>=l9uBDZ5u->~ICDCAG1! zf%uM>h(GeKDcHb21&E$?0OJO=hDnZAWLjd@RS4wog|{Nsr2+>)6LPDr;?V4FYkAPI z`vRz@ZgrnBS7rKX!{7g&rLI)5Cwi6{7&DEblF`{DfoExVI)FZl17&# z7(O0`f7g_7aS7@YPd28uz`19JP5bWT5_PQk-Y;y+m+66Yd4Gc$Mk*ya*czap;4gH& z9?csy4_{{%e|QO!v&X@;^Hl)5`mk#am0Fy2)&PJJA>fh^8)DQzjDV|LB~Xb6`63pW zC_&B&qFdux#XC$k8p3geW{P*|yCL1Krs=ZMx(a}4{dKuu(Xyq)9cp=#Wbq2**H5YP zGrwyakm2ZM<`b82)$oQ&ism5Pi+^9J3)}(mu&*ED`)&|r#XMr#+GPspctt&gk=oHn zHe;V)`2VTD=%--N$LNG|VR1hddU80?+YAJecpCxFJ6<)RF3PQy2grr{0@J@PT0V*` z@ZS_+-wT`4doD(cI6j{CvgI=!Tqx?Bd{`hKTF z(#BPi)lp(0K|=S!?-HQ%!q4;p80iuG#ilQTay|C7b? zUlI}i(vI-VECv*br-8_UE?Z$xzuHXbFNETw{vsN6AU+}d@9#{-u)vAISkND4p)X4!jC4mr!2W7hh7=v~GQ9p7~kZ<+;pFLgM7k#1gmet_QzNiTcHk1|i1Kd`_( zg3M0&Q685?WuMj@A~}Q;HzMm2HUMRk+YEZGkH(^ z;MaG8A!Yl|`TffB$>jmvEJiTyD@ca8BP3A9dIx}>zG!Y(Jn0dw0yhGi8CgTO7t_+u zsspcl8WDCn4$CvCKMOg6aXi2@k$J`l{y7R|q({)HF0}{b$3Q8ye)5PDGZW+hszVUZ zS$F=|Cx7=#hXTgxv!Nv&KmW~`$%YAyd+7giiT$3Nr4KR{v56570h@oay#s6FZ29mw4R%b5;Bd0Q{;kBkB|eC`FHuT={#>1>vS! zLc;#nx6%eIS$g_oxf>1}wl74<}WTppvpu&X7b!2@s z;~GM+JjdU`^9Z`bg6saNwfrYpjhMVEi1fU;uSYn4c~-!N@CP%r^lr-+YzhlJgeJm< z8wv7b6gD} z7vQB}+kDXdxF|dPU%sXNzkK@_h$kjwL%CV&Ohtt5qSO*nGC0j^LA(A&Kj^lo63T9e;-W=}z|B>twO{9I zCCqt_L(wFeeOja-XxEl!?!SafhC%C+HIO^?=eZ`A<%4CmzVH@X2M%OA!%c7 zzH|2mZ&OKn;DVuGe-{9yDZlIrc=2Cdm#i-4B#(iF*y5pM#qIVSfv2sHzmZ#wkfN8A; zv2%l+^UfeOu_{zHqzmi0V|34ZNjiXMtWRXp1(y-I8D88F z(TTZi!jaGJUWSgvJ#gqnnVOhFFAGYz-<0CEC!>|0SD{|nEw{O z3Ge#-wkVDMwCJb(mvW7ff(23R=Svt~%OXB0unI7(3ZWo@fgvS@_{(rlGb;eL{C2?pq_pa`Qx*cE2;@Ru|D zc(DNI|5`whw583*{=~gns3hq>IiuL=`ST$+3V6+6n}s@&q<9tBg3=?+>2ImV^# z|9h@Fi4ata29A7L?X-#HB^B@%%~zh+6DP7F;X=yY3MYZ^#K+0UFX51|u1ivT z{RcHLL61HB=NiI{yHNGeZl&ERvf`+8i91_ZFdeSnjqof79(+M>sk&`Ml45L>J7+L( zB6Mryw<&zf$?-O8>f6g1ZkJ!$@`Nw`nj|Gj#R{fpEiTo5aE8yU*dDEp&;>KX<_>2n$!sfWjcQ7%_ zQph@Clf(DV?32?7x!E!jboSTSG+nNvdZ6g|vzE(xE1b z9_Tb=j@NiC7wg^D?>hqH`l=)SfKZsS5C;(^97+xhaj^TcBqk-jApU24x4t?e3Ks^| zrK!p|LDzMqIk)HLDxV+a?RgP5NzSJd|4gdjeq80-w{Ht$0^N2dUgdjT%olr;O1;Ge z4Le_}6|9drE*6?YKC<2CFNJyDyMZ<*(Wh2^`^t0xBHTB$;`ZR3owNKNo9^r@KE-GO zQNlAP*t7KuOpJ|rPMZxTnd<9v4w;;bEw_Jha5eJ4;2$H6I;eJueS_RYLS~-WaV%$C zfdqe|wK#P|x7ozpJmzG@laBWf_${id%`SI7Y!5UxFfdpp6%;|5oP3r8uhCj8w^m-4 z&LgTq2GH>t)^;=8Jw{bJ%%i?1{(R_ri!34%)G< zqWDXnSCqOGvOcy~7$MLIP4R|gyo0i@-`8V?3dJLZFq+mh{IYETzj1+)v15RD1<^BA zA&3R2Ln+~xictSpxKqGzk6;S(h5;>dnJb z>AreRgs=tEeZp5-_i-L{EN+8{6_#Ynr*b!>f(AEVjc8Ad2Uay{q`B+IpjVT;<#6_;X# zI0aaN`@6JTM3EJWwnVS*k<0oc>__)N($M*{a!ip5(Fx38rjQ0`zjeKGdvGLr;@tYM zK6)Qh53W|^9K*eWTjFLDTL!k13$Z-}mF3E?vSeHn%(Dk9n$DfR(_4@1^rfci$X-sk zJg<=q2I>vIsn+1id$DqpJBMd2(`opW7Aee+gHWjW7mbN4_^Ig;qQ$a=8rJ#0+(pfK z>CNKbKB2roIs0aY@*rc9$>_mLx%)}evziMgzFhY^efso{(^RrM57Z;yC$|qUqm`pJ z*Ww?7<8%{VWZZ^0V*V&cK+cWIbMpwjXCzIR_Zw|~>}Otj9!6ohjgyXb$@7yjzH9`N zN?;2Rf9?Muxw9SR@X-Ah={SNytpQ4Ph83iooSdgpwlb+Co~Q$8I|r%@RC1-Ir6MOv zy&qWWHvi~^9mzF>-I47v6JClN1j4~K2)*2oMfbUp`BNvZpW{y3O+UWYi|>GwDHOA> zCEq%?yh2To4C*=rHDEssuWm!f0rgSe{2SQgLRLIAf)yqYe}P@~+{k_QxIxF}AVc>B zW2ASUOfl62iWRGep2o#HIO?7Y=QKY*`}KC3#k;F$KjsayyPTNkc_D`50F9QFBHy~#U(`qawoeJsX)iqi@w z2|988m}-?tr-G_BY8uiG7mPp4^XnKT7I?^&g8^mpOtFeTJP8nkF`PO1lruh2^x9tG z_;Hs6DCqFu_nlsKFogjQXA2E4%#9tDzDdxREa`_o1cs-WxCt+IxzmFR70=`nck?#+ zv17*)`_4cjPD#RX_{L7(kzq*Aew>nr)>{nyqXpL^cLb)e{qq6u2UGU(s^5?8-%8*E zJ~3GCo-?a*}MhrojEjM@Qu@<)*HTf3yiKg8rQ<$YWFoluZz0hBR~H?*04W z#+J`nF$aG~O7Mb2E9*0r)!Vah_3OQUa@BCsb~KU$thIBS5i*j!P-WY+WZVkktQPuC zIqH@rO~^EzpUfFJlkt@5XY%EcNU5*3nyi!S-T}U^>!i2m;^Z3AYf9G%SN(6Ohn?aS zpua&EoNot0ksYkNuG&g3E#gXKt*mwX*w!wC;sxXh*yU>g#NiYWa)+uk{ta9E@tC&Y&~6!Q~9;NWD?wdfjvit<23$6p1=cyTo6 zv?=2Oa9PCj@4Nzr5TO8@ZCMADTT{T>M-or2U0~GE$lQ3n_w`cQl}C6_{#1gFAOPvg z!a5NmJ##Muoz@@gDolq1TMce&00^OlarX^3qSlG$k^Fc{W4Dm>^w{n@?T`xq{Ob`a zuJ%qN@EoIk(n2sAGH--2lnNa3UQyLC2J!&an7k$E3v|sMBLAC!8e7=m~M%6td z3GafGS%7ho3+xnff&E*`q4t)N%!IFmB6ruP-*E{XVLL`4I)Ia5XZCp%7|20LP~S)j zwo#U=qbV$WDPuC19mc%Uoi^XoiXMHOLVMQyxcZ?SW81hrhf4Dsq+z}Gh`R%L(~Vuks1 zbl*`2whjfw>RA_d{Qn}*&)jFF&1fPB`!Zf*MhOc9CgAGT>?kYlK zbikze+-Ma4c_+eP2w`G$-481Q4HS05R$BkwGmZ?csj-||7EMU9;sWu3pmehW~!$zUqSZQ?Cj2=~ljuR?EZy+`Hkwz`Ti(%xkM9`l8 z{{HtH=1+M0{;&&dhywo-9SQ=-5Ct>U69C@BS^?3HVyxN8VjS?^=^6PoSgX(Kcq7nq zE(t*IWC?$wIrB}qRkdYOX}p8qjd_#v_t)RYi=?HZlB&>f3rFYEAZgSY#c;Vx5?{i;l)`v71veqDs!Qd&!H1lR%AW1h8 z)--%F*khPo4i#b#3wYD|tEGJ3; zL3Z?=DZQJBb*uaO0WfLG&zPq2ZcckicJ^%o2m<7DBt26+~)p|N) z^3409oZ;vE!g1T$kd%E@wB$Wc5rAX z%hj!{%svZpjMqs8#rg1$;V7<|_xUmbPELDq_>KiqhZ)vi<7(Sz2_0}Idtxmj3B8dx z%4_<>QHKx&@0Yy!frg_|+nLw>BP{tyi<$*LI+QDc~5@hX*5qiIa35O$b?ykT8`^`%vEr zmNNA)-fEl5!(2&?cb>=8HV`@zA^iFTYEe`S=??K#KDDE!7%ZJuF%VjYOvFVP1a4%7 ztRkqA;`l_|aU0v#9~C37kHDc}LLEnFCC4zm;!nwfSHeTzk}#`pnu64f`L2T(@}OOZ zv{acxm-5&I-!Dibntx-pyD*(A>@yyep$mWSpfd_s1aA(6w4# zVV<3~1(F50UVv{-`nj$xW**aXzYD+XKQTgmm3Tzw$SwHj(nR@ zH0mlS{XWqv$lsp=5H_bS4_ridaUm*k+xc6Gn-_}2sQswkaSv|ym-TuHpcA0>N6U`K ztwh%yLJ(mOZNTKopHdgM|1)a1@hIS7rd_i`mu023VG5|IWz=l_Sj zHxH-!?f%8fP)MZ=5k;wpRLB_FO*9Cl5-MYa44E_4Zcqu4Qf5skQyC*ul+r|mOvz9} zLI|18TATgWKt0#*`<&}{o$H)`p3i=?_j_3Py4StN*9$D&Y~k3X;+*^fE5k@egT79n z-7p0d$hER@Turi_k6G0fvRwMVb$DoGECx_SkvqH>ufK#m>b*+S=rah*Tn9F_ReI&L znPK0PB9mQRg6p0g^t#3i1O_>rEXoH(r*JxR&-|J_GVI=iTm*0LG?-lL-2E~m4oNb+ zR_j$J5C3RAJ5%yq_?!=30>|G2T?y6PiO0hKu5?lN~C0CGGY z#1&1+zWAsJF!+V=R1@L7@Tdq6n!4^1Rm+D0fK8q?vf>!~avrWz-a$tawmKp-_PbBO z%TU8`bsa#53lCci4=VuT>X`)&)uM6;y}G>h>%;b0O1!SN55Smf53h6IW0~F@!7{?r z?eVCTbB*#e9VtMaRLnuT3v=zo?ve=bm>S~7l@|hlnnzpw>zglES!TOFXpMVVX?i{~ z9C(33z5J9K9&qM(79NxHN-QabCsH*z06Ewy^VZnZgAK==z%p0V^Mo}6!Q2{&w_L7Q zS00$Z_kdmL`hXfVofE|NoRF&=o|dGNZE}}yWy<<+Sc+m=jQEDZ8Vro~@@|GElNFOU znLJ-v)V$`Iqjf!O+r-7EOPfz;IxarQT=~(?4n}{iYGs;&OGHoi`-KfIp}?t6ElAP{ z9Ql0nqGYZ^fm$^PYN5V-jY`fJ+Z%NV2%iFK&EbCIH2=e%&p-$=6M?&5WL;Dk?gLXk z-PYWM`R2i6AFqfQAO+D|7TxSZ#XxOl8O4UAa5EbK^B(T?GUnsDn*mUjxkAw~#VKAk zh4QI$PKO+S(zGr#s&e@k?z|L)V$A~#@G40iC|Ss*iG6h)W>?MjEHv65U&7v-2|)MB z@+C*JICtAat|fd0*vLaacY`#7f(Kl^bxa6b?V52Sj=TuMkXchpFQdJL!K21=k3@)B zm0z8QXSrE=PDKPVan@F)WAh=pJGWR=^|bL*e?YshJeg{}^0!sR{Xi!N09O1oS} zfuy!3WLQGzc&)E%fz^sTlJ|8sLb&2log8xcTFQs2+Trghev2EHUoZ|ns`#Q~@o9bo zODSM|^tONm{GwrIqhaK!L=T6^ep-Zkj}79rtp|b`JwvdS173e*We_r zeCPP1K`N`$3oTTSkie}oM;nH~i*ZPIcXU=cf=9d}n#~PIwvQ*WFw4whe((GZh+jA; zkWQpG7y^{d8Nk875m@O2!%&y2c5VF) z#ksz~@M0s~mQ>=Ta@C$mUyiE-OqxlW12AD)&Tz`tZA2ht8!u_TP~``J8lURr6{+!B z!Opt6?isSm)ge57c_4+AR@J4RRm32nI`v3JLdR=|Eb+(c(m@)w@4*`q=d$N!J9VnS z=MXb3ayQC1sjQv(O<|-r)bX!)Ogr{~ z3fenXH!Lhqrbkp?^pYy`2dlD&w9jSkOFFzWTjb@TLE71JEdHx>vh?GgT$pDZ=-}j( zF7hmh!`oBf#xmMe@E;Gp12<7T*3W*ip_cSF!~yRE(U*%EGj{@iOL{=r`BTLzo8-U0 zGss&%eZl2pvuNS`T@B=Q&yM~)2#gy&f49*r|Sb?J+2+kx>fYx+xuj`K-@9GcgFeg3!&={q1 z#ZzEQK1&mF;&#-6YwR_$)_oBIc^k?$R+_k;^#vjeW~U>T$SYdkiP*DcjEONB!k%-*A|g<~aQ3>s4_3gb zWjvpEy2!x{=`Y|>>mg+yy3n5nek|au?|qbQjVTeU1=XDg zj#Erl**PO1R{ZGU439z~KLOkq5u1g_8hz`4Bdpad1Yq3b+xk5tT_J0b=K9KDHJYO_ znGmi1o(Ku?w!Tal2g;UHhIBm<6v?yCAM6rI1@@oJ`oPI>S-M%yO^xH^1gABMbE7Gc zM0_h^_N#jaL=&r!Iwhd&#awT>mZ+PR8xD28eQdZduKZ+Y_e(TKB6-7rmMy^ph6)_A zB3Rr0PGB_H|6)FF(5mxZ)DUb4NfCfR2sj4Z#S7)c<$!`G^SNceBQu8^Q0Q6EE$d3J zKkq5Zb_~$8XUiQDaENr}`!pe$WLBAnfKR^PmLLtFGAmemHHm%^BHFuW zey@y)%?kQ8viyv#gErLfSRK?cHA?(Dp^kUq&n_F<&&GR%rB z$#L9O4}>jY%WrYf26Q$)-yvDCL|H|}Jq)cEk+2$1FSR$hC)lRe&X^ErhJElo}( zLGRg+ScE-wNuDnv30(^fwFnS%-_i?O>*mi0)OZ(jfokuab>Z+pJ1`mPX9+&rq3JO?h9C%z-uCFE=2!VSzT;+k2ciS6Ql*V@nU>)H8DlV3t08~XTe^HuxLFMQ999E;msCoO=ohQT z!6%el3hoUTh-aB83^A!$J+X0$qPy3MikC#Gs3^4HN-W*0eLK{@GWMF`arpDQhmFg9J9n2s zm=m+=Cg*!Ey=UMZPL*&sJ^&`>rvPfq1Rn!&e7b(vdlbRs3Dc6Xk)%%xht(v0LhHRBAoA0K=U&@?1aP`BoX7wc0}IXX=n^8ML}7Z<>@A`5 zITbkaPMO8r&-c(f1wc|;&*3TcB1;j};iMddTV6%=ORw%Pw$|6TsRr7R#~nZc5#MI` z!cDiK;G(GEwT$nO6U^Uw9^&6!<;`e?tblqY$#X0C5>sq|&e?=3@l&8##5A$BBHuyN z+#R)yn6)J14W++<(r(uNELqk`p6wFOd&!5RZx9lb3z1#!yTnE8R^tSQlt$^E*m1Zk zQ*aP=UeJ!e3`Xeok)Rzg7m0-_(Ryv1S(L$YAf3r%xSu|Yee7iq@T4GzFBqnTHg9la zRs+*PdqIsgNC~;zGk~gD zZLV_Y{(uxKxlEfN^AwW-wNSACb3MCWWeqldXo+uYJ>Z;a%a`n%OT(0fMwz| zr)}_YNH+lirA{s+3#!D7kU$=^RO81YMhul7fU~UqH4Or^Tx3iumz#z?Bf;oDy-gi2 z#EdxrnY*9_;GbX)yD*0ne1fOvEKR^C_@mu|I5{aFNE`S<8PK^ti~P7EyyxpO0J>ZN z2{UFRrFvy`{ds##BE*H}%~Bc$vL(hsphwmI&Z8=q0c^q>2E||WK;~BlZM?`v44|$0 zKVD58tg!?h*!<>`UGd`(?atROQSxHpbwvJ*7Xdt0UKZSX)=*bN+k8S$UCFJ->e zSgnMJoyJ`-bY;mS?9#|8hgMzkqN7#~1knp*&j`$e>^>I2_HWbz@#ZfsQJLw|?p#|X zeSOu79&i;?L_Rn|-cUkiSMc%MAv~N4?^{pj0+Htko-3LBj;gFRBl8?#_!6seD!9X5qUC(nBy!z|4jV9O4;?j)zew1e~ z+^c1BJFe>DqsMSE-8NSS?=UtLGR88H16;git}*I+Y)-@UE%UTC`}mV9Rcch-a)=D#$Xfri2i)L zS!=)Ci*r4{z8KQOv9Dy`Uj}(a-pYT!Bp#FUUVgiHyRJRG73To-9;cD7x(@X8@PH#o zEwnp8u2lT}wWS@$;Dn;M9_As))z@UBH84*SO6zPm$YUjPe-YJRCojU%-JJ5brC6v^ zS+xgBcZb2_S86zdg9OaTDse6S)5K#9WLc(ahgw%XBy*gtFle>CpW8fXXTy?$Mn!tBX zUatpxV@IZd`;V1rjh9j`K4G2O(CpI{4-C-?$Oyv(iS3a$Z^YWI8j%VJj|u-CWaD8u zzA_OQY3!<%zVt(>XgH;5nY;P)wE6-sQI~5O`V2Ne$7(t-0C~8iPUVFT)kn<>kJ?xb z_Hk$*d1G%WCnFZh7m$H$XOy;Z0ieegUY7(>J+gqE=A7^S=y{Sb*y^Vtz}9m|uN>&} z*6~0R>WbxvEhaI>_Sg;<;GO=(VQFF>Z$t5?YJyJ#96=8C0g9FSF} z6hZ*?{LaqD1%3BNdPjzJOxr?Ksy$DE57?&oVU>GFJ>w~j19p29EAaWK&ySRvW&OnX3;im`^`=Fl zp*J{bZ@+1Uip!w~;K*~YFE)H2mF5;~39iws3mhV*6}3QR&x!eQ7S#~thx*dCpwP39 z?vHt>E|_r45)yQ&f%+o`oKkU#&xNAbl=Z{Wz=g5-Tlw1|CuPp1I%D)Ngcf0|Hig>} z&l{ponGG-^5;{Z@)68fxp<=&NME zq7g|~ksPh+slj29Pj4V#b;y6zD!o~*!s?>@_rrAkKQi?> zSEr#AkE%j7!f|muUpa(N71BLo7hCHuteS<))EsL{!3z#^nr|3<onXf~Gqnmc0^vl1}PoisIl&*t2nUY=jKdJmjNzZft*# zIEkZXuK`2Sv*{Asp#?(!D6}YFwtI(&X^Iep$S@r;gRkj602R#Zk(dN> zR3x$UsETr{-zZ}8@e!KKjG~}x#B(9ivHHKr7pU3*yq8aJsJ3vT+h+{D)U3WGiu$xea$e!ChERMy}>_$0Outw8m$t9(n$3MTXEbg>a8G7o4@Q z^MYBCi`GfO6X->BA|XV06sY6oHcwZ=yJ3cky*20EPcdU-41&hENjl&p)hc{SX8S#<&np`YV~XDCj*ds{H|Ej`JVH12(PCHUvvw<5)KQ$#OX2Xu{$B!s{%7mhc#+CbNP!LjvY2QLeYP!MIm+yeozx9JEnhv)Ija7 zp3bMdwbFZvDJ`0aRv*elcpb8gwlkEL*~|p@SPznpE3_6KXD=B!ShMV~_tvaC_D)W+ z$~$(H7HGz@;{%ddufW0h4BZk%^F`>E?BMH9KDa-se{)?C2Zb+a!iNE4{*eyz)K;%$ znocVK9j&k_lyTZHpb5THHe*%B>c@VIn{=AOj=SxHs#(MU4u24x^wf+?3s!X6hoiHw zCwJXF=B1?Y@9;Xw0Kx_@Ol_6?MGS;I;RBh5p&H0<^?GX@EGr6NPjKmfzF*Exdj&R} z(gVoo?`3waXAR?o5TO0^mAzVb%G=iAyzwY*-#A>>7z&++V>aA;hyq16-itCuI=%~s zs3!1l@i97?R%oZJIFeAXtPX2670))$JHVC##HHRr+Tfp38ZutKRDN--FZ494s@&0x z&6)_2NskeSmCX?^>NetYAd~Za1;SjcUr6yrjP_T)P)zhJ$P{CpJ06LsnSivmrD`07 zzAJ3#T;{cRa@0RvIvPvJ5amK~p)6sS+|+M1?QRYYy9*kZ`(XJFdtW$KW)FT#sW~u~ zA?1D)CxTT;Ym7S+E$xYr{@!Z1@0ql;Xm=2k1O+i;AAtWio@}lLGG%fu#tnaEG!e|q z0Xkzgq)mS-tH0$NSD~ZgKG>eQSorDyr+-Z~99wq`N@iIK%6mhY!RM0*hsNvh2x4So zya^whSawN$IRgO;QN@}} zfGxHq2w_j;n|vW+FY;k;?y2>B$gra*ms2DD{G#SbuJs&)bWrS_V@;9zFhw|2MG#HkjRG!yowS&`w= zPy9a2N-C%=k#MLEohm#y9(3k&uZ>HE zNZ%c~KO z(cb{FA!OoD1;(Y*6ojiX_dfQyIOga;b18E02x8%<-#LnA><7dzfBO&x5JHAS<7^;A z&s^_P@Sy;ue$_hc2_EG%L%c&FC>dxLqzEB|^WUCd2p}UgJEsYc&sdFiC;WfZdCINA z-QcZzTGKqJ>18`GcrgG%_#W26PzR88$Dlv~VM>4$J{P`y)}Qvjv;Lr?^R7ZFb`&XO_K9zx z2dCjRmR3eF{B`L8Z+l!{C=wyPfckq<^0oiw=B_3yv)!0QO(+BZ!+X?PrkjQxM6{ z`qcC_ka0;Z&q^N6#Ob6ooOs!iwfA-QR%tQT>+4ZPJ>hqHT6+9{zdY1l{osqsmf@Vt z=yD0+Liz&7+8UaIRh(me(}y`yaXM@ppO5|XuY=|@l>Ecbr=S~g3|@L6k)ECGZ6@do zhuy~Wvam*ib&K00&Qrdke9gE*TS=pppFr3(tRj8#wC5 zM|@gvCNI(=+D?~j5w@CE)dG$6ZW3R=SF+(&|6F z$EGnX$vzxB>S3h4G)MUI%bFh={ZwZ`yV8N}AQ79hZ2;sc3vOT8{Z`Y76O)9%$YNj+ z{eQ+KEyAIeZ2kQ5gRt3lv>ink-i&-OQc;no?wOXtVh^zKRE;Jo*i;=Ml!fwv6pIF^ z#_b99d!_=bFInAMt=SeDy=`8wOQ^y9&ckSw;d5-Q| z+3N}^;#nvD@OBSh|G|~*6?a?x!pEjmfY1~+YwH{1J)c(i493bH{Q>c2u!bmBi=Qv@ zk>KQt?(|Br?tY8d07Xzd?H(tCn)pp{*{I3LF>PCY4a|kE+t;`|q{?Pr8U+bg&dUJ( zuw|NYy02qwcMh)neo%&wKhu>?a&_GCgc6fN@ZsN@Cw~(1vENns<;#(4!ND)>7WiSP z|BPlRcs^GvEVH##8%7+z#*Gt;2v+dV`3vekn}@9P8wQt{9u(ySb}9tlc)LDad$pK5 zpRtiqB_}*fhhda2kkx<$_WlPfQnC<0lwE&eN?7?ZWC&(HpFuhgb;d2TrnJB;-ZuUs zVNR|YbG%pVSZj{4^8!#7d7eo&194#dDN|i5qAK1o-~6si!pxAM&tR&B+*0{r?ec$)MKZ7N$?HwdRkd+q7;KnNtLIx8bM!-)5GK~t@2JL#I z>;D-Xy$Zi)Q)p@snIXu5X{(b580|#T;L}`)JWQEuqGnci5C(e zW#Fwt$BBYRDc7n@7kB`^ML8!S2M-Ma4~IjDh1R!oO;w+gh!VChnz~!Kk#1 zTrZ&C6*zL-;pF~w+vbyAi7&H16x3`vK?))%M2dWRG*9)|OQ%=0+V2N!tqsdoa$*mM z{tVlJllR}PO1_mu}gI9AB{jJk7PT3vf zXLCJ%tX%taKe&=b^v>{FIUishPeB@<5aA>rs2V!%ex_n%yHw&#MMq<%}hLyJZXPX+N}yWE*iX{Py9GX#WsIYb%_mw;lgN zqnYcw!PmgjZzg7@Nb#)JYtQi0n_63(ZU(nyH4WKNI-&eHt>V3<+b5MMv2zyC4F=cV zB#P{WpSBTT9+V{W6ppzshVgLcuL^NZu+*egSscz3DsZSsBsMiVO{Zn+&>21dQx>g=Yx8-Ek+c&V_xzUbvU2?`cfuOL~Ov&OxryjZD`<%m6!|H5IDn73uv^ElMaJ}riHz}TvcVfaO- z_%gsez5!|ZcC|PzLyzk>)^FUwzr1YmnYqutd9s`48B}`~#y{#XC=zw|NR+dA1>9bZ zx}UycYV8dj)WO62M`rcKUfSI1GxV>eAs6*kxD9e0@A7C5xuDSCFuqHoFweDTZFHP3 zf&(~D76rNH!a^$T#rT^1 zW=>W!ksAjdX6V?lwUiNNj@njrfRXH$>znl~X44Cxxg{|y+P+0><~Hf#21;PSv?SZg zbC2VWRmQ8@{sjns7kTq)-rprq1IK2kbxCNJ9TQZT74sD^3Xbx~*+6sYB@jHVO2 zi_RT~9yaY)FW(rhExl`X!otE6LX0d7dSR~L3)q13t2+rEH#`F((uD>~50<~EQe8_Z z9U=Z-K0pprS|UMfX!lI&%8?}DlsTfJIOnqH}4wZ{B`d3RQnWH3L;1H{oDFxMr_{$iAMrb7yC?7q)*?_cQFa%1) zS&#hbAo%IwzX4!qLVP|P?!A_^Ol$Tcci}HDKz-~n6;v}NH#(;duE>7dmUN7I#t~iu zDG(eWYYU56NV#LW+(&Nbiu0g3FP?6A15vLsUt99~R_7;yG030$x7!GMkt$au&jV+D z;0RH`)g^)8rcSLihnkT|72qV+%3DMI>T$Uvh0t_x4`0^a zbVcDDm!$W02h0JQ#!low4cwaZd=6MF#RP8v&pFI~uD1N>97y#xS;7<{xM8EO8g+?O zS=eFVI;%fw*VXY!|DqibDR-^cokC8kO=+0%d@8917}S^2$-3r=a0tMlGKVmxa35KQ ztSH>5R(4NKvsZqkAWHp21k;dEA&de2VRc)U@@>+NcYA6&RP5REy}HRJ%{lt`$FE^E z8rpnq^D3M#?oD=%8|N_J3*nn89eFC#Z0-Ax{Wb&NqACbH z#VO?Rd+Y35+5PGR?U6^=OfPtgRC!+i=*>=UM`{A)+YDRT<*@c#>U=&INiN6th_8`>W&l}}K^f=D!m7laFQWlrJw>`&w2cK(~G!} zb9-}_RRZqv#yOwat^wgUQ|eZD(bbYI!@E=e?na~b+R$}By6No4OXUC@y$G23^3Wa+5X8AVVUedZiT`b*@eD%nZvzJh*R zWCSIT6QK~Tf2DwDLQ^u&zw~pg5Fq*}@f}OIu-O}brN58z{F~=|?ml(3k2cWgL=Gd= zBK%!(IY@8lTiCM9hRa%S^e(wLRC*_VMrVB@i$w4ET18#ViQ15KQ!A1oMA&I{mP)2z zZr5l_gxW%KpLkziZKujetgWfxF(;F8hR=R*C_lBDq|Ap59o^S8N%JLi?ocpkYy+>U z+lzN{Vc*^^M%#f`mjPgHm0UYecH0xA122n*BVQ zd>Lv$311c@jofEkqPnR|+abS%nOh`}v#^akWQjjI z_`&Ribxq)6waZd^?1y+m7GAoMedpe1w{`uK84~bb*qWQp-ei6&@o=s8kEi#IEb z-jg5p>dA=6nl;U87tX)RP=}MOD2f+aWCN91e%^nKZ z=D5f7pSs~fL(6n|QHG|wyuI1RH?$cw-w)akOjVGto}k4Y+RhHmQ1{|*EQ=Q1EViQf zpi^4EG+6d-ZvXD>Ezxj35&+@hKvMS14fuQjP6sE3IH0(v^03nu1kSg}$KKf3l5K%N3`La2)((_#BkO7ibC&`9&v|V z2!D4X=LAiz3@wfKXM5NAKh^9E*gp5nxUk@>X#S^tggc^()foc-rMjeQupFd=eBdNBt_<8}71j z*3WAn0zO+Cg=WfhF~EE_pIs?&jN$UX7*_b%S$uewr#>N6lE6yoq)T_LXR}PT$352x z2fDb*Ty9H+7;G#6Hn*XBhbYHZe_td~Kc2)-g2T%j4yLw-!j^_r;yC+CJ+Cl>9+Dng zMgcg#xn>S9x3O$-<5!VRn6^V>F;t)+{qNbm(SKX&!K42$#AWcoi@NJayEDXofI;dlz2jaDLX*fC!&6)1^{JWVFyR>kaqNHs*X?c z4uWYXO8B<}@d#lDsm&StsJDSqHhBLP@kj{AA{cr?o&Unmyf}pZ{q|wU)W}}|dNIFV z{yN&351yXf2hEVAR}khr1K7~jGBTRt^vI(WUJXlto)3{(8(S?x1xG&s32E>`&7p_ z1Rp}_`jMINYi12yef=BeWJucAtu(d&hrqxHCt{MX|5N)*KTaq;Q6In%9(}3VwKfif zuK~P2NX|XSE`%{BLY5H=u*SY^k?pwHI*irb<03%ygI*GFQ*`tK!DJh-#%dd%;{EG=hg6|SUnqk1!^Vn zKDHg$QONE-BR853a<=iQt$=mY@5!?uo^p~8BmpuEm{U5pf8NlW$-bxg`K!S~TnMY( zu5C~@Yv}JXE#AN#Euz=`+%%4~kg=)4#obpo!^Dab+nor{HntTRnZ4^iWA&#SMkwoY-yvu*0R-9Okfx(Vx$??~#0834= zk{ID3ErW+wR-QKJFm(5IZ-SrlJtTb#G6%a_VJV4hpLF>vKiIi^5xF;}d(;*D^96h~ zbs=WL&*}vmc{(B0YhPDqN=ak&vJ*O63I0K4{lyq$#Qf7)NvZ)25~rq7Ah< zQ{x-hO>T)%*KXp+C53YUP~q99H$r$cFO&&WL<+x9Lz;Fi;DJ1avGSM>hO0ls*8eN4 zEO+nh-_8z9aj)oLZDZ=5Q{R(#vR^-tcVVeB-Bl8BJx1552pbr}fOdAw)dXLB9?RW= zQMft}!4GyB=MLN#_?N;LY33CEkY7N&nH>&_Y>zArKy14>Si~758|WZQW(QH2x3U8% z=w=Xw#x39H6E5A@Tf^nam5@hl5&{ak~lHWN7uu>TkH?N-045)G{z zcbVX^O^r*5)chomy$6&b=I8JEV0l$}6785uZk*?N{}vc}rri-l4Sljrq=tlVE#LPZ zB19bvGJt(C16+swQv$WYPlyGXn`_4dpQjL_;*pmL{VNl13iz;^KXJUMX`>u~faesJ z`))J=D@F^tSAb;?6ny__5i}hHoG7t&E%!13f!1AFvV`+xitPtCjf5o>z$)Kb#naU# z!8(MIayJ;{gg zRJd%azWA3R`f$XNPKvQtwTYz!k7C zI)rpv{nM~D&>YJ0DNha|Si=thLr#dV)Pp46-yc2vGHC4bpZcZdf;5!F&u_ct3fHfY z>V*)z1+(_G?=@xM!l(J$s82Bd_P_lFa;U(b+w+oWy`;N~4Ffjf!pOb;QVP2R52L*h zK@3^GA`MV|*V0)Rh<1YCU!M97x8e5NMKRwrdPg5PybWn~?9TlHXXNXwGy$OM&>^1> z3&_jM)6>-r&!VS1vlw(-y^N~Z_OFw6lmYAZ2I}qTBH&C++RQ*G2u%fe%wt?!W49() zRwj{#A*@@#ffwx5@b4LrVvALk31_f^C{(&%E+z3v;S+D%xKYo_YPHlfq%I5h2Z{Wm zqZ2P83AuIxED?TpRBxzn+7=3e>0MECehRr8nhZ+X?=u1OGI-%)KNnx9V*E|#is3L+ zPE8deswanGk0X~P!-|uWbITp&KJh*gut}2S z|Fr15i`vR&EXufpL06qY_#1@W`)?zta6=%y@W z!rI|z+m?vgKQ_lynni3w4~NNQ@@hFbPh#})1j!myupoK&`a~QwMexcvRagk}Ul;1w*R?VvKs8je|;IN0mS%n>=WTlMv(FfQ zYsl0PHPA`6A;U|c`)l-Mbskr8UNEEIcZ#pLjYOk8%~!6>LxI0B*ulOhRs zgO80r+r(lCmx7;X9_`&tNaH<7<9mLMx*0a&cTLlR!z2+BEi%#73o(Tr2WHRyO3AB< zFE{@DIi6^TrSDHCR-+qEH$z^Dyj?8_WE^%-6N*6pB_WfZ);-&Nf#Zy$-y1VWM`>ne z=A_*?BQB9CDJE7N^_>_|cotuQV~*U{r9b@RIo+m>&#)*EK3WeCUr7+OIE2 z5(7CEB<)&62y`hPKzv*qbOAQ}mOLEVNEFo#~KpJ`Qo6iBQh{K5= z!ZTt36l#af*|TT!a&kx?2LiC+c{gaedRt67l$ijWLhS6yXrcprd|iKe{6B2bH2@#5 zmR;1&dJX2mim`owBm?)fhSD?~WxQ~Mf&0Q`#G(D$X+wy78SK5JwZ#9m#zXr~m1*1E zoX1v;MMY|yJUm}o#H(@JENAG;P`-Y_6jB-*aHsuiY866b>NdK!vzlg71&EkIcYz6*Xjx_m(PSTUY=Y0W`#1nZKjl#%6O$ydHv1${1 z-~^y269wWQh;`jVMm_DLT{AqluUY7R5J0U#&qkDyq2Utp^UEL)NZp_2@A{kwJpz9< zV|)wXZEcHyU_W>S6>MDRCF_Y%FML7K$p%% zegOr7#a@VZ>9gOSe{3uObedXgnLLlW7Ieg7r{_E_Qgu1O`X>GL7k9YH?r=dh@ilAM zrcIx2rsaDG{2V@XE(gblkS2SFs8rHUX|cVH1F=0{qf4m{5(67ps7fw6Sr&vSJg2a! zVb!CsS)?7{6f7s-n37ib?3PvxCs3He0soScVVYzYjLH8`&tTMLwB=J{^Y%>b(kXAA zQVMqV5{n>HNuP`Ijbsma1#x(Vm-BH#ijcrWAEJ=AwM{!}3iW$rNmz#}nAy$QL@vnn zRZ&dTKmwqgJHBb{Q+j|P)&qX<^WfYh!fAw=hycj-5OpXPP@^_lngtBX07{a|vvA=o zT3Xr#)iroRyj9mt0MeYNtre=#%Se2d@a!1_@d!8hH)S206*GE5e61Aj5nUCql~0)+ z@QR;t`XDR=p8&bwr0*NBJdq(tb+QY@r+nM5<*(ZSHq0N64jN=vQaCO74j>n&oFpyy z5D4uQZFI{9ZdV>&w2sxReAf)@#}Z^x`XQGp`qyWNo0CT1$op<-8AF`X;RB%CHBxp@ zJ?SE5C@C`OEG#^{QSb^WpQdv*+l6_nECw~^Eqmy)&?sa5Wk_j3GLhe`N_GZO51IIl z$jb0Nar2A>>dp^fdI_B``sa>}9%+Wpsdk*NXu{7)N*zO0Pij7g(LBH`cPuQ97 zKxakwM_@SFn!}+J;4rd>nnrvEvA-B(hfz1k%YQH(>cp3#zg1@X2vs{UxMB8e?`kt9j6DhW4(-rh|`!((9eO znhIy1I(2HfH59AKo^F9Y6YS&|f7G?ZyK<7V%b?~HX+wVUeT7g3niI{ymt_!D2Ay7!B4 z!-l?b#>krTP10=Gh-e3!DLY1BBZsT6i~h%(>$eGP-CM=#7gD6zX7MD^sDZ0yzvbOt zkI1;!ZzcSCL+?lwes@)Z{^qohL1l22?3?6p<}n0aT8q!K{_z+jT}jXuWA&;;;&Gi| zRV!L&Il9HtM*s$M?sK{&N>de2U1B|@rB0uE*ZuO{*AD@SW$jmuQe%ffT`9iRc{CxX zS2Pud=^V3bTj!9_*>GG^X=J2Ny!LD17YKL9T|$=3-38+FsI8b1qFF>d{?bO>@EQ^?=x^goNa^EQlxd=Xcb zPLNl}PWhtQu)T(g=*=d(10kD_AcGg$T!if+93y!)L2hrJ12=pOX9sB2diA)pAkau({%hLq@Rx2aO3~*P<_$f_ zziW1PqpITZ(1tq~JB7NsM0hmql&)b<`7rC}vM`5%crjt3dwViro4~tARA}rWLN?;q z>^Rgpt3w%%OHEi{LrP&-jIE=ohB+wC@E_YKYLqqAxRY2)bGS_kqmeYZlO}701$s{5 zdvp^hq4^y@fdCW*X@sG#%VMNEcN?MelYAg?!4rv5xGzWd?JYdzwh5HJVV$bO(a!kr zEJRC9u!gSh`CecfI5*93M%6U`>%`+s@*#XS-Le@;O(Q`Q#jTmB?Y8JTHQ)Z%J`|$|5_whVAIV5?*;Ur{H{Jtq zAAkL^kZK{rU21nb%QM)$VnKU_ZI{6d8E+_+hte_jZPctiJOmHx2*X9i785VnPjAx$ zK~RiFb__8q8jdH?>%o_=fjvR2Yi2l;FD|fCa>n+9X)GO2ix30`zENAqVfCp78O;m+~7r;WrD%g}M)N5+(vHpOKY= zR!$vKnwU+kC=&ugHD(ZlI0Y8uuTl*!gN07E2zx>t07*Ezw(MFRT|R~e2oQw@^CV%| zEAN<92(bQ5k zN%s!esSxm&K&}3?>w-U&c{w>5Ae+u*D)_I)dxma=kr?TH2C3$;B}m77p8R%)=W4J_ zc@e?^Q^+Q;Op!~)(2gX-PK((Qy@FcGoh&iHfYGNp9d!vtk;`HF<{>1jD(rSi0s1Y1 z_0R=U=9vefU7&dHUv&U){{ME?|JzyrKkh6rZ1>h1T+;(!w3)*sC#h24?dYWhQJtm{rYNY>1&y@#}f=mu+>U{WY7qQ zU;Q7+1KY{yQ1A{8FmB{sU_5VMWB#ZA=!!XUsn~lg#HQ5*TOLercyYW4MQ(wMmA1Xa z8tDHxb!rC&AkHrxQgn+9>e2eJ{se+XwVB1ZgAeT3cM<;5@< z&j&XQ9(Gx+K0TamnB!M`wHHS`|9r&pzbwI1@@M24wOw$aExD{mw+uZ4R`{_XRvN|O zC;!uvR}F{=5*7!WfNu-S8bIk>A}NAwxFoc};r;vOK;W9W=DWvRNr005*(Kn#y#~#C zCaUn`a41I=zlL=p$-*_8yLT=9*EP?=H5a<>T}qWv&MvHZl1ZE4(jHb3;LM`7eG}Qs z2Oa_x5{%v+xlK4|6F)9#F5G+T&y1@};c(p!gqP#x34Oc^CUKf!TSUxeW%`3#B zZU@1((b2HOe}r=bAWXutPeJNFGW6a-4k=(~;+223UvC8?vh0oGX5!wLv2&8~5GVOO zTy-IPe8)g_8?|Fd zkk|hYTS1nITEE9Al^dK{WG=P2J*0wW;e$#7$Fn5kCLKwv`Xrp_lvw21dRF;#+#1nSV7{>f%r| zrT0(pd4-IoOk5%&|4ZBSG$ zqVsSY0jEz!nDMt8U{^hnvxLUaRZ>=_*dMYQBzd@SYlRdPa|l;wq7P&j_+D3A=5y-O z%D_{8dS@r$fbfjMo)*wgq7RFBUShWlm_a;dhd8GE{hH8s2@M?pOSfW_avDz&eh`9p zpYm()IK`U2Mgs^`0c^fD9I3d4+aBj50cP&_L5N! zD9-ADV%NzLXnyk-CRo+wt~P!h9N-+a_OF?OA{&rjXlf1(vGI(Mgo)$6ypRaCIe~l0 zxp1LMv|1?&8{0M|5$g8D7`ErF<^Fw08mk9%wnygA8If5wt#NB&`o{W#lOdu^Ngn@S@rPDlSrHF*gLyQF$C^;-5@rl6QlYZPm-W8Ci^KAH^ zhsQ(W4oWAeukWI&*#uS&YLFnqP}f8%X5SRDDcr5J`sHG9Y|YWJ9ZxP{W8wQDHt!gR z5!nNoK(u=D)87ObH3|o4R7%{p6x1&|EdU`X7ouH)B+e~!v`ZKqwbrQCJ#*@fFDad& zWG{3W8fA#z{r-XM#MC!SLw?||m)41?;D8@)`Q@pHkRjI!NGBv~jHuLJk*SgschipD zmb{LmV?o?H3-8-R(%u#aWLt09CTSg}_5xU3yFdX|1Oo8t-Csv_~vr)#;PVYPNu23zQ}*TzVP^9XTDCnQ)zUrJGTWVvZPvwBz{~6{J6Xu zTs{HgR|^FTRwJXH{dQ;%zynK^A!hDbc8&e_JIj?16e^6kIDWbRG#40o%l9>iy;z~% zvQu?kzhNJs8P5Y|&GOTG_G&I&0VG(rKlS8=@3Z;xqC{0;L7C3+p?kSZ!nWp`g>qfW zjsT>e*M59tfJMRK#*UEqeX7;G@y<1^^N(LiI|!S;<1wr18W)2hWcS+MJ|xylVR8Ol zsmA2M$2+yQ?m1=ZX>2bttd}lc$@kM4E%ITW*;WcpvmwqHwMRJ2_2%K?Vno*22SBxy zyK%PsTblbwEsQiBM}VGA58%gz*)LyslmpDa5|29?KKB5nu3QWts@L7VdXNbTDy2sT zyYhgzUF!QV;0bdNe<>V3Qmpt`!5JxLW@zZR+VOMB31vR88C}jA=^WcMf#mX!;nAV zR2i&pT362S?n)Xkn#FbiB~#j*OTjHaB9H%wR6Job$iC5C^n)YtM@!ILQa|vf9yvkx z0cCF<@-%f6sJbPHI;0Cvn_37&E*-!rVv>IScI^oKeJ;-IMs#*^&EQyZ*hyrX?rfPx zpNMjOwRWlO{vG@eWDdMKTEBk!0ygAk+BNm94uJW4ZkVK5nJu?IS$^2|qpPz34fT0aMtX2bq-} zMD{;ez2acTgPl)-puS{Z*W+;WH}d+Qzt7O=%k>O(m#wMHBoc3bx;1LJ1MjNF#}Mi3 za6E}$&#YO5wQpta_#-rQ5o};nxv|bMW>edM?rh77Pz#M^FEy6f0L$^3+!Mkv_ckor z|Hi5Qya)2Oa7Rw(IDqXE=>~E;;-4o2E2-p$D=$_gD%W*mQ^N%n=Jz{#zBpFaQrP@X z*=~-sP?3}hy~L@yV82`c$LPytVv&CE#hnX}KAv;?r0>ny-jQoVkLGi!Pm?oXu>w|~ z_}x0T@<3KP|53?#ja5KSUnJZ4_W2zq&jI<+2VA{MYc;ALKIJ{`vR2)b=xY7bP(Rz9 z+`U%dC{a_#V0SBVC#hkoUG_*5%3%3c!vb_h=<+BJkuO51f zQ&r7VV3kUS6T5dz%Wk{(KqJqNSowELUj3zv`fL-vsY#L;;iKTRj^xiFrpeUoecRJB zJs{fL2+Qvzl^J5yXgI>11>F~Cvxlm(XLfyhHAD0nXFRYHtg8kFVK0_OFr(!s*;IE_ zJGWe~TMAvY2pbpV0Zy1{H`pz9{<>n9%<3?A8_8y z0FIvA@~rR4xg8&Yd2XIP>_`8ns`I>&do=Ity6)@wHlc1mnmZE1hE}+=sD}mG-$d3> zFI`=^LmfzW_Mrb$&_TqNr`O*JKl&=Q+Il2BWI0@Km2FPtRZuk8yEcZapCKT4J=c{vtRpW(K zS??IWJ|WfhwT8627)v(=+vIu($L(X7qe?UQSYX|oxt}g9dd?Z@TpE3_bd4o6u*^~7 znS<22EUI%>q$Ay>6%f)$X0nIbeF`v^Jky##+Y$LS;Z;i+?s{eGKlmDG7RQL2wxm`4 z41a?H?aKWR?j14#W-6t3z*0V=oX6~Z-2;cr)&nB#s-KP`s|d2HH@qtMvTD>jyMO}? zUvBbapCey1nZLmmRV{#4-hbWK?2+L*AXa(vu1NapS%pEpeTS~>Sr(ftsK#|FkhOPx zJnm-hyc?S%W%Gxh=2*R9@70SrdTOTR;bRXEXFqM)q)kCIA`XyWKalUxxtx75JTBg? zIR(BlfZuxnN}^wcBC&P#9Bk>O#aj-+FF&ZFNZ&I-0~wNj&ljNe&PGyq3SS-_kATNx z^{@3?kFn;R6$r82#eZ3PI8ca3Moz9;TE;R#c%6W|1TQ#e5sT1kcn1zh#F4i^cFF^+ zUaU>|9h!1nHiHtH(qhx-4AiU=ghQ8c(OzebM`~dN(h9JBZ@jK6!0HkGyfvA;r`&+7 z^U%|v_!6r|WN%iKw!bSpZOOb9`&jfXpX!KaNFPp|3I%-{hM$@S zuWR{R6=Zb)_{A06#6eDhG6Zm3du-8<4z>VwT#TBzh5rgh77FNbI}2Z)sgz%&C#QFG zke${URN}z$6E|4Dde9v4JHvnBq%A8i&qiD13lBOt45SepNMyLnETgafLLRWCm8`KJ zZ5Wr#+zY*@0zB`5oy0FRoXfHU*~EgapD*75ooF;GH4~Pguj&`q3B-7cech1?HQmF= z0*kagm!W-VeF*S211rwfjjj!0&d4eWRF3f`%SAuWr;Wc^4kRLP=JvU~(0)HRE_?Wg z$tgEc-5*E?_vIi`ub<20KHek7lLl5vQssDXi-*94d{)J$I-Qr_p3e+(ya;Y*(nrHG zAQl#g$@unsLHleeLf`)Uutftlc=69eMOv`8+n9dJ#TKI=ZJl8NpVGb3W8oBF)d-u^yshrNbNfu#r7z#LZf;%9D(5M6 zuI?dcF86UbhZSZVbqi>{6B){6)AZVW{(Mz0&quF2HK3{3T?k2-m-E_yk#a|Jq#XwO z_u7E8G}QVaGv7kT59A#N^$KRVEX4K)8Q>%^`(Nz6cRbc> z{0CfGRw!ggsZ@5z$hc2VX;>wzL`FttRx-QGNLd|{70M{tBW0Ie5g{WhduDIq`CK<{ zozwcw*YkT`&-v%P?sIqhj_dkdpZ$5iMW_!=?VZw_xWgu0Oex+$6yA{t?(`8xI1f?N zpL9t2FAJrVoeV>iwFSu6jqZ9t#3B`pf&-axEsZ)=y@zLWcyVAo-}#6*sbi5t5kl(l zv(+?DCo~HL8uol_P6k6<;%owu?M<|DmlW>9G&*XFm^5*Ml>?(hvx7sW@|=F4FC*Jq zpb6PuD6z#O4+wVBlOS&J$~l)7ifB7RAfZuxw8WQ?*C@>Skf!lT!#oA-o{&};~f zs4HBjVV|>~5u9Z`SHw*Gwy{KEJMiww9rm29dXP&6W{F%zm^(CtR*r(v3CCoeT(YzJ zKHr!5ht8}(J2*1pE@!XxNza4qHk&Z8Ro|EC=xDK>jMWgEI!}r%=IJdo1WLZGyrMHe zYJUW=)^dF<8{J?>=amiOT0n0Y$J>?JK@`LXj8X9)*%5r(I zeFSqUYfSA_b4JPqxOLME-sAYWfd0fgM=34TCPfPl`?G;Sy-=cHqm+~HeEMWBhX~<3 zRN)Ms1Op&FWo9@}1?cF9F2#w_d*pFt_C8MflHMq*dLhr1^9jvbV0s;IQYPYFHBN8XR~9CbH$mi{1B7iQP76}iL@~#fJ1 zSRmG)k@Oci#)HovPx=Y(9R*rE(<5=J)}ttpDlpWT|CHPYuAV#Fr5(*#AV)ya?FQs@ zMsK4g428y!b%ij+K()9y=Ju#%;ixjH^bl|#awf`D0Y|P4MM~O1 z&-uVzHeuOo)Goj_bv!z_cBaA7yfaOD^Uq(LP?}QEZDrI-Dw=PlqM;=pn@79AZb$tPWBbYA zi3@TAyLOegC1E3Q|fYS2FP~111kLty6Yxafzm&h3C@+ zc7P!x-?VSO=#!2H&v4sWF&yO9DM;`6WBNOGUCzIK>`^@J;(1`|ZG48}Tau+Q?xiaJ z9$?45N}K2QHttF9qtT7Ui1|8x(vQg=So2(gmfFq;0Ey1t0RzVxmpj*gnXUlXrMG*D z&-F%+9%Ga8B180|lA;gCz}BnZe*HG3?n-R@j)ctqXGuUB$}a;tcNUVVB1r!G0KD|_ z5iNWQX>~i-l9(6?NNrDPE63r%(=J8BLDoA}>);E$R?@kM{3HA(=7XMgwx^lSCTRuG z29;YtWja(klljZ<^PrWp^LQfem6rfu09Z zSIh7V#Ewcg^ak}*r}3Ul056CzU4&If4Q#K%aMB#Klpy|$W95t}w}v6hDfpJ=W%9NL&zf!x5s%v9h#5WSSOU!G}QE7 z0784zV_qY~ljh$oHde}7fH=bV7o&qsaGaxkb{=H*kT5?g`hm~Y7#b`|dP=JQ6l^p~ zO`aAZk}Ae@gY(-K-2)B8&4(#}Yyxo`JO`Du6z?F-19|j`^yhKrw&JO%JgRnC-7Erfu_*D?qs|~yU zqs%d6i{Vwd9x4IB)fYI^=@FL^C)FH`e5Wkg@qZ+K=e&&>g1#gOas`|BZ6>#ms==m=py<)s1k_jRPR%7b8$y&DIJDIsQ!? zcV)wJ>^|wcRA)(zmsPT_t}KYTKV?=&@nVCGo_*N8*^X zk8$=;3GikzABHI3z@dZ4SFpuKyZU9d>=Dkv^hOiy#D_NR?rk1??`h}fZLV}e3QOVO z4F7**#)yz;ACFsBA5EjNBf=>3ql@PWivU@gjY*=1L1{*)f(-p6yOIiZy&4u!m?Ut)LRQT0S}t%QQKp*TB<0ULnB@ z)aOt9ed-~bO3jr!)1LHtGXvF8$U+JgE`15Jf!c(k=3UNo{p&e{w)+$$zD`sZoMd}g zGiEKy#1pz*#S*Cy)bPM*TI3XZmrY7G+nF`^m{#SapMoqA3J!u>ZnJqEpWa>Ym{N?{ zai$G9i|ICUG(I?fQw{Jj+#s`;Z7^i~qIpNHnnihX-QrA%#NnwXC|NY~bGh1c=S)-~ zqSC`TjzA&n>g}}9;qtmvNFJ(cVGc?^&xn50?2lU?j5@sd^~np*FG8cs;O^)PkUKyu zPKV;p5rPsy8MMh3!Y|I-P$9Pb5lw6G=vHdk{Wb_U1k{6pOw*VV;Zo&S-1O?pnDDV^h>i-10)?5M%%#b9L>@! zMD&enKs|f^t~yY29~Biae`r;EAX_SH;6UaZI690|paI_+dQfWfn7Wk@9#zpPHrVI-P zY}rc*DKOXRbTZ%TQ2aN&sEjXu#Wia6XyD-sFwbD8W2}`fZX~n><#K(HQUI zz{w-*R|Gv~KoPjHdW#;i2l2kr!|RzmdhX3>u8ci#kYDh9Z+uP6w|RdkVFp;c7fdO4 z*^U)cZh=Bl9v>S)}2&C-nYII^^! zltvTk_*^^1r;@#0z=qlxg_`LY9NqAXNN5iF*i*=ZwNB#IA|GP$ z(M~f70fq>jekLVmz>PrVV;C$)Y7u44T3h^78%j%0*wkgUeB|d}G@Zf6r`5kgal3Q~^<|+>N8H}9{3uj|1`{BHL%(rCZD7~f zMW>rAcDW9;pL7~6ENO)@L7UUkv{S*s*tqRrO$40C1U_PR;*%Y0@aqAorVIl8fGMtOnM7VfjN zWg=Se`B#rEJ8f8+YzN{!p_T$kF3*vnV0iLk4OCuWPs}!NoaV>RsI5gftLyTIL{{Hw zF97hqqHIOwUPJuUQm;RV@rympYzS3v5Qkg59LpU-H7tSc0UVIZ8o2vN2qMBsngF2d zTOwBcS>6Cy0Tyn!Q1)E>`IQ6;W(br48dg_^PTx3bJs2`2LXE^tYS6ae69sqoH&(XP zg&ze9sQs#oeXad?<@O%XSd_*@xYqi35?vRE47oZdW^N7FZ2+u5{PF$%gFE`GmP=iD zpO7C?v!5uwY0`@XK|2_!T-k9)jX-w$m z#nY)TUl0J`H5EsCBtEUU+0(*v}c`wVZB3rQwL%4V0EM`6}Gl4p^JDm zlZiJmYadRadAPqZ$f7YI*T3~cz{9O&iP4N>1CfV^hqI}D2LnpW(#C#8g-OH29Bbjs&bPb45KYqJ+fM}13#^8Km6eG`c~5*@u2@d=QT6lmmX z#{5#$eqsF4$^FIj;L4mT>O=z&jTH!uQrsUQbtYgK(1mYL{PFr?rr>uCrt8Bcm5+t7CD#?dBZEC(a#fQ z*5l=Wb%=azrsI2e@ppsNSI{8h{EmZoFE1P+*PYy7Kqw6kTpAl3)&I2B{%-J_Wg{4E zK;8z&WqJJUKX0_ZfKf4QJ-P|68@``t`cLoHci03%!q9{*53>O&haS2^J_H*31I;Y% zL)pn6RE;X2tgo&8w|WonSjnTVydc5KF}y}UMIt1e!havTF$iAZ3qtDsTl4sTL{oo< zOkidnDTWCL2Seww2qoYWtie@sz)ez(vQXgw|4cvl5Z(>1vkVrw@~?h7%*=HR4sIag zhmhpcHh9hdvr$L+)RQ8&M#MlaZXjx____&$A0Ijm7`5> z!MwwJ68kwnca~P2+q``RB^C)MkE)Qlj?PA0*{}xXOk8DBe}@iJst!hSo^#!*)cYV5 z&BO6Z`Y+&)S)BcjaO7EdRBr?Ktjo|d>^dwXd~Y$B8T7k_MG>dfa5%uDtu8G1z8vhA z8L>pjSfRnY|GtFpGQWT{=6SGHG=m)~<&8=E@pE=<>nC7+_V82%A6K za$h|jyYZW9+XULc*0lViNMBKd$R+S({tifkB0v#-sMOtq zR25rKzz0cDVZMYR7`eo%g9kiys>R|rQg8!q4k!u9P9Rh7^a&s$zxHy|yG&UvG6l>M!SR3c|~?1o3Ft72XF6 z*UJZwBW`%RYxOEW+ez$pxY%AFQal{ZiKDPl?uQR*rEl7|_}N2TL&!Y+NE^ie6Tz_F zc~*tCXuSjBv!0_aUgm#t8>~81^`?$C^Wm4z7F0$9iB(118up+rR8Y-bFEyh9dNH(E z+p)p&1dnLf%l(j}C<>}(lHk@E1d z2VKd@-EMd2|2%W=s*H0N?VH2*3J7WJ_GlF!&@F!dNIL4T6WvbD!wYr&V)2vW!v;AO zZR2WnYQ~1m6(G~85-8^#vwCiLW_OFUX^NCk#H%r@i(VcR+A5~8Ek-Xapj*% z5ej?sr_0F(2z}@@Tih*}HiDOkj%Te!iR3AW1RKXK1b=qH)$8;EDS-}mjhOGM%!bpz zBjw0XmzBYp*UfbyhNnCYUtPQ@fG`7W(ZjRac;g>rRY(4FTbD5adjO$vSy2C7;(wR; zUn$0)hM%g@e-*`#b+N{?sQFH-LyDi|O1f2^O;wIV%Zc zK_RQ!_B%zta;s%uA`a-`SAKB)9T>`yT zIEp=Yv^4?p&GO6m2*Vd;&&zIBLl!;Il}iQk>jseemtMhC{{ki~-Bf?`@1C6pvHult z4z1Nha*)?@Kf6a4)fTF8K!D$x?G=Ab|92OzL`90bW+wPaq0$ieqWiq=YXbzsAW0Jk zVaeajHmr7|AV0oN@H07~HGwy8+cCXXZCQ0|`Opl1-;^pa7F|Ryu|3WJ2_70T+SzW$ z|2uy`AHm=p6MBKKX6c~Pj|FGyXMVyOl65j6Lc9}`lTn)2Ye6#q$3=Sv<{g>d3w3zh zaUqt9&NEd4ddX`@00#^aJ>mp-vMDtEp?K81)zk6MgZT-Bz^J04881H#;3bvGCdTm} zgPlHrYdY|uhb5_5i8fFdqZeX|`_1~0f>YR;bjFTi^>-L=cs#qNb>0;SXzMU;blVb< z7iQ(^Ld1*V20zU1(NG}%Nq+JnTnwIIYM}`zW>;hzA-4}sygj7=9#`OFT(l8`d_5U< z4pdrYf>#`*jdK6>aR*$eB=8E!7@lvz@8|?-)hgLKGGl}y_*7FRnSU4g-$lOhACP2G zy0PiiUVwk4`u~@zsKsEY{h}iPiN_P`jN)C+geSB3` z9?V+WHo`OnMofUn5KD6~Im4dG`oLQ9LLC6MI#DjQ1ec`ziMCz7WhcUdeSw2mUH%>B zKBUVy{|Mg%s&@yD;d2Nc-vWnOCyyA&34V`r?1LPvvKR7e8Ga(T1|?vug@c1tm65UJ)Rx&ciMmtuN<<-9fjV#=+KYLV#wMs_(B-o&D2{uih*Wo~O*7gc@(|eNZ3G zEko*TAc)Q_ueBV|$_P{Gj69Q(NIrKc>aHF52+aTQNG1UB$ z7y9gXPRAH(OIZ4ba{3bF>JS9)|CX4BtFO~vIpE>21@bB&7WqIF`hWOjea0yu0IYc6 z%lc&-0OO&g^8^k@d<=4^fh7sg@RK?}(Klo8CxO#sv4~y)rw+nlXrW4-r4se-km#EL z8qqXtT?P(qZGSj?x&HSE_N8lSzhz;@I>R-H0L4rmZil1(2?s5--1xHyk~fZnKEMn5 zk3L`)H)X#USo*f}2emRD!D2`V9QFSjhipWo?k9@t6}jgWib<}Z<3Mra|1Rr)!F2t*tp7^u z@0CEmgQ-Wv+}vD#p*!V06jx$4BfD46fBJX*h4~~kcAO9Du2MT*Shs5JJ5eF=fwAJb zwH#Io(%D4`s(hecToJ;rF%{}z zL`+UTI7+a|bH{#mxfL7WgDCVCrd3?xFBDVYYHI0C$iAM^DOe`HRKe3=g-d~ugdA0F3TioFn~aP z@PE+Gf<6AB?OKaGzzrC};lvWd9;&`Vj0L|oiHDH9%zo3W!-6uqN1<285B3MgCh-)B zDUMCz|E!og>i?JH1NEMuA3C#GTkh?{0|O+KY_dk0hasfFurP!8%>s!aazeRyRD{ew zJU)gz(jR$6Ys-%H10ju0B_#hvli@?;cy8f5-&;HMsxD8;C>^kg62j^RjZZ3TWF<-D(fL7 zLs6Olddu2QuM6+z{P=^s8mPSXDfQLgVIPB%+Y#T<{{`mYb);xz0O9%l#t_E9RM&$D z;B^=Dj5hux-dP}GpYdPy zGhQVDuAJ>NNlK8SQ!k|p2qV#$!Nsph0Iyty8b7_nRZwC|1Wk{el=&sf5jum|HjpyL zoqBTkRvazX%7lEmZA24FSQ7BlH zZEF0*$msHc|M{uLZhDrdKX)L6QT4OTBTIsfr{FG!QLFxcJ0pr{SN6RoWy6H?z%^ZP zD3AMnV7akD@rarDC##EFol?|&YH~hije%%0TqB(jyAPC5Fi`)k!{$TOw`YMB4Oe!zp~% z$B%^#+XUC>j=oQfKX>|QitsLlKBC7t34Cu9`w?z}=J|MexIWa6Rl|Qz3}KFd1A>(f z;yL!h5sW$K(eQs4^?zegvFf0VEmF-;M+M2dwBrN?`+TAkn@yY?h^5FH)5lmqTuFm5 zIZhnzOG}Z7iKg|npa1x^1cS6-EI{7MuhXry5rEw+9h`dq)^1N_xtWgB?S24&*{}E@ zT3*rnrI`OZEEn;F+g>)ApmVlw(+sLV*#?>ET(CEREDGiz$h|_tj=R4pPOT@9MBxbw z{@IR!GT}J&}K$BpG+1WXh14tJ4GyI{b+qOYK&U# z&%lo#{P;|*|0bogd{(j2@LIYl#ygr%W33DBJtRC5ibltQhyL z`{eglx+gwZJkU|6c|!u2zYCB8SJgC2}nez4@Zyp`}Ym(qEpkW_y3q);D2$V~` z-|p~F?cwKEg2bGu^S7PeCf;L}+Py6MR&Ww_k5LMkj7=TFyPCQu;k4Goi zdaU9E_U*=m-y$gAyvK$0$ZgYuNW>8<&$03(s@0wS=Z(WF2@nu&epw(NJ1M|E(I}~2 zzJD}pe<-}c#(tC$qQk%MHwQ~M|DL4F-TsH!waLeDT}w>cX%BwR(f{xm`vfG1u!$f3 z>ICZPe@m|=jK9J^K41=RM1T}HD4h+44Ngm6CG9!o1p&Inq(3P5N4~Z^s)@a4sf@(% zwUv%`l+-=E$dhu?5-d({%&SX(437<8hK6?Idv1`<2sZ>>bTLAJ_n+^)8W8wsVga0v zF9h(-Hc(54iVBy7ie<%86G>U$uj_O_5zJ>LKhyt)B)upAS95*yi8`dZd=kbJwqtP1YN3fR}V)01I44=^@VPuU2; zi)Nzijlg+Id^+c!GEGPQvh%Og`5tt92bH)P13&1VN5W{1rqnvR4|<|)M=u)=t!{uu z01N$>S)>AM@Sg(Ue@GLOPJWdWIz-8tb^?CJkEq=F0~uD&!#{Qx2A)U|YhkAwLPb>Ee7d```|ApI$(;0v^dU|QR#u}%*2!6$NIJELWS{V&kCY-5pU#DcUbQ!(V_6;VW* z>0F(R{RE@C`6U&1OUX7krj!!u%^}<8}7q|hhiqV-)r$4a`dM3O4EQh_-zFNqm5;{ z)&y9ypKp0?SzOu%P*lb*Ki?$T?rnPc^EH4h;{hm_I~RIZjy%>ILBeSQ-cB3BcID0< zIcft~XlLgZoEA!)oL}Tl#>b0Ve+~sgjROlnzhjD{5(#x$oaMPv^Ry}i0MATpdXBWx zAuyoy?%|K+OA9>`%d853Gwceud7MUo5~nrUee!zKq{Vi>3Ppq9m{7j6K1|9qkc;aW-6Qg0}@8iu$Ka5NuG!!}X| zVOC?dfVWy;>Np;ZLl-4@%X-`c2hM(K-UhIy4D7hCna6kU_R$3m%zv%q6JBUnqfP3g z;UCR9A0N9*+!g`SJ;p6RJby_;BMiDUE+j&i#%~hr=DS8*xb1g|0sx%A^AM|ARm}*` z!&g)~5PcHB*4{z9D$elQ;s`I5oK?z;!(|-tSGZ2U;QI`i%?CGS&n3Qe-D7Cd6Zmmj zmy>b!oyOuJ#PZPwD5*?-yEY3wk$w0ntqV}6w!ar0FGJw?Mkm?aFB zV>AOmfAkIz(rFCvXcv3ju|x2FBN-JA3A&-QqM``Y4IaIvvJKs{k8afPNpKxN-@P#V zsHlA3mibnY@}4aue=h3a;0r}q1ML>rQe0+6dCw*Bd1m#V1n7ZTIuk4=8J`GX@AUN!Rq90MrHuy+>-|9N+pKXaioDFSd%judV|i-d0h)!TRK= zx(?DF>J3(-=ZYhh6J@=!0V4IZm@q(D`f>@7?pTZsWeIJWjyH8+M@VLJqSqK-B60=9 z>9JK#zDYOOI3M8)^IU5RMpOll^@_rENwxenc=x;n9QT?gX1SXlPspbN$19G?Fn&OLHmHQcIkr%a(g-TMgI$FlCBL)qHVKO)NyIk&%ujKw% z^-(Yu_+R0VC#LgC~-U0sLQyNDO@+Cs4!$eoWCI?cTm?JR*f|c|-92hH#mDl)i@CFF?0Xs-s zSl!r8$JjqTN(e-$chpQgTiuHZE{We=C0x=ihVlYbj1IHUxdXIIB_=`)gZzciCc%4Tx zASUGl5*@!$Iv_g6Fu1U4hmju{OiBXEp!>3wc3?29s%ECgu$ddxh8o&@z0E9`DwSd!@1fXzR?H2(7O=_l3&WYYjsQq@3oz`t0R~}`cl?tke z0yd+%83bh+wXP)?V9~0U#5D7rt8A|UWr7(%A1lQ<^w-3+h2J7028?s9q7n`J(IPVh zM32;}!1H1XEz()5c9Ef%9Y;yoA7~`I)(6|J?}mlv3IS?9f$75eo{BK$_MFLt2rrR? zg>~7A8l&@nEKp8MHtETUO`bcDMk^VGfN0YSZQDvg|7d7}O0&9^4csn{eU{Z{B93n@ zoBd>%ct1Z>YUg#GW}nEqUMnrPKvqPUalJqKJYLFOQTwX|A^(BOQ$prR*K)6neQ*VD zlSPqW^dbwxMOiPSJ)Ps=3Z6jpIhpg?R{wMhS2m8t9YbpL5PWX|NpA$f_ZhpzUwr2+ zOB{i~Epl-cUK8*YG(i;${E@V$!r02gOvfSPQT{y|;2sNqLR4I-PMTUCESRX(P8%sY zQ7LJ-bBClCKvG{XD(N`s$7^#~w=Cd~MtV8f1)!c#var<(83vrym<;Z%ZKWWKf{Z`{ zpy@)b^i;JK0AMK)m&7@H(ap2(0hxB!3v1FzgjeexcVU)3#`>;B6a0zh^N&glmYL9U z?4KWt(9DYh00@}_p%w~Ei!F>4L{(}{3K-VLjbO>`!-p)|4?IRRP?Gk4T*--T8R$s> z1nRTlFBa}-mfN)V%4=5TEp%~5eZDd|9SazkqH5-E_Qoe=x?#9L+$|cEj^VSiEBR4a z^ZgKw^9w+h@!nQ83=1XXUim(f(0G;o$elN7mGPmhVfE2I*dcI4 z-7IH-bwh=6un|~)BnLIJlo!rBg43wVTiyd8`Xf=?4l!*tqZ=y_=rDB$Qp{&dljc6@ zg*oKI0;!F*(as>|Avb$j(PR9ZsRkahsD7QxKt8Eaa?uU}ZQszv86c(eo06Zj`Z`(n zKz6;=HWrGT(CxhHJg}@)%~5(CH^5SgAl`}@^r1tC;sl!HTK5K@g#Cw>@mY^WV6;Q- zrj+}n2|-Jm*MnnY_)G{kzn~^Y!7WFmt#qz)GXI`-i5KT4wN?OSByD(-2R@%BP})4D z<-0!C$zwM)c*pzW5rHvu;Q4gRPNb0|${~vBb5=q_Pb9t?lppW_0tAzcF8{X2ce&_O zqLCQ20k~xzd$Cc@WbNM6ZLG&huMbb>PUld_RSo88#q+W>3@Hxtza!y#$zlY=7h9h= zB7|aKv{U9CLM)vS|A-wFPY0GxiUE$icJW|fjZ*>c7zS~+P%T@)?X2~PC6lT>B5-Kv z0|K$#8umfr613sAfl+uyyM!275ICuO504Kf6a;j<>Ed&|fUfk8;8G!dHEH{>NILmI zbp#sRcR_>Z2*Ja@uL<8okKd2w4`T)S>RX|07misUb?IDq>Z8AH&b_bODxU= zg=+#|*hyI$56#^8^iR*ChY+UouFWIIJ?Zb)NBVBiuAIEDtWFnT9(7;o)P$8Sp!vFh zkDa1*0PdOG`jPEVH zM6o6Xtkq5a^MOA;#`1(%oc=~=+@qVcJrf|Z<3y2=r>j-hI2bh50TLfMuz-1wD%ECx- zERX(*#%v5kF+P(x|*vTPTI`1s#(Mu{_|Nk`nUIWpSfS*Wdl9RU31G0N_!V>UcUW z0h!+wsTC&f!M-P9WFQ(g1=kaSsR6|>TRrY-#vlT=t;2UU^OCho4l~vb-EbkHagBe` zlBpF0(9?(20Ll4_tXSt)c+*t93Nl|dIoXM(neJks$}D?T-*49W*WS}dNjLZdZ%`ou zws!9xW=>miI+UAI0SDa$AuzXVgJW9E(*asH_-V9Fil%5=(g$i|MEB-~Xe|pVg{8b0 z8+!e{9K@%-AaX$)ILJpA=DcL-s#Z(kt0WpM$Y~%KglX zGyhMd1flYxLmYI82tN0wU?TG7t!GE0f11n6WHAHU7dKWfp~pjIyh&7&G7x+B&iJDE z4~3In6^#;_q)#U&C#{SZ7u~C=ycUYM9k;biCS2S5EaQyO7*Ge0FwfVQ9PGX`-w8JQ zB)`*AIC5@`!2VEA7gl~gMsxApXfl*65XGAraDwbjFz7A|+_hQ3SDiOR@bX(f9Cstt zpF_oUXVp%VG89*{B*K}9JRM7?%*~hql!Ub*`{}3c`K-!<1lU7B(@b?gKfZJs`h(%O9mOAyum0m28HJA+UW zI4I6Mt=eQ-u8s@$H1>e<+6`PgD<=}G1v%s$Sxe7M*G7d<5?n1^@eKUrDb&!@cK!J9 z-oWH;^yj)rFFu`7;c~$==eda{FCn$W3qX3e&W3nu>O@DM%g454Sy$G9O=Q|EJfS!0 z%O(LS`+=-1M;@YaMG>a5eH`!_4mP9~0JoqrZ!6OE`=kTpQ)^_MSvw*@16;YyX4L|D zO5|#`713x&7jDms2K@faAm8nj&1wSs6A%P7;pnk2&xDyK+V>u>%VzW-Mo1K(4&0I)Xa#CFC5^iB+i@D~>Ea6zmY-4o`qXc16 zYSn=Opm%8`IGKM>mS(`3rVOHN>=3Hi)YT2Hto%Pb7tE!XoBrBJg+R!WspZisyzRxs z{U){XdblsETdg5b3n4}Zi&Ka>@Qg)}PQ=dgherepd30u}Z7>6okD{8bRqTxeFy z2yW%&puOe89-nr$NX=V(PJgD-O&pFkL?r;mEsO##>JFs7l7P^dP2DcX3YHa^IGkJ& z^C0#3{X8>)zFUhB_&*>B@2cy3<10y8kx58F7)9guz%Ay&tVqY2kHLa^5mbBs5{Nz( zenu!|Zrm|kT5+Dk6*!&IT2WM=gS9$=$Wcx)XsiBY-NH9vX=Q(0dtPdj+YB0?6N8;b_xR|+0T#WcY>Z#A<-YN6Iu)8=eY?}269e$T zO8MgZ{ z+WF02d#NRlFnQU7$}2$0Myy`pq+(dHifO#lTy@w{e#Df>E-nU1@gQGe-wJ(q5oHFcN@b6%iK^2Dpa-{e3T~F{=)3<> z*-Ge8LeyMgIb;J9HA_?NTfpoeDP*}eYX$DA3+;PIY2sk*Rx=mjLLjC^ea}xFLEuKa zPEs`cXnzG5^!$bLHNYY$ z7$-n1RogQ(_2%Aa45EdUk)J}0&d6Xq78?Ogd4Eb~auVt^H5+I8#n?{@C8(d^5jRb; zQrdE0)#3`ov29*>D|Z8B-~jF`eO^A>VL&m$&D5G$vcC@ zQBd9n9=+^XKvh8h4dVqB(bvygrc(=j!IzdIko77%!*?IJC6=`t58zBjZe48=F&7dA z_M(N$CRufjEmP@9#q@@x(v+=Hqljzyl~Z09r)kV}soa@2GbWy0!_qIt-m<$P3e%V_ zL1&|LWtc z1T{JupWED+$rPfcV-Dy*HJ2E1iS~8ea$y5IQjZvr$d@DSHbSYLRyAiHf#%m*4_>sw zZMKQM8Sf>Q7R-R-lIEtV~IIqKIKsBahzks;A0lt6M$2$mIj01$K4pwuW zrE-pAzSL~-vH?813ibA608LNK2x!SXtzLMRozb!ngF2@&wfkMjA~c_0%L(og`l@&3z4Dx{04}ud+L;8?=~gGF zssme!i=5=$pBG8o{7Yv1a=&Z8M)=1I_6t((aYj92tGxiW!-N4bM>!Gn+a?GlILyZH z%l>13Rvh3A3L9WqKe{lzG;_SHOPO>Rm`39^8B<$@zJk%M54CT{w+w8=F`GeZnJm~1 zawGk)V?dJ0gJN(2lG|+!w(A?mu)xV6R}YTZm7yGS#4`qZ!*pM+V7Z94a|FN4C;ve2eG>rB)X_5$0aVz0e!I=Wq^^;nT8uS z&$>&1>*LM^Eg$~Pr`$5z8InpUF55rSpH$>#q$??`TPUpNewR2ChmwSCV4EzOONx35 zM|whpE&3gEMHuPwdh8Kv#pvYOE@jb27R4TPw}!AnQ$XqHa68fAJj4=3Iah}Z>r!44 zQml-0uezw;1P9KnM~(+JxK{zKpUfs5zd7+j@zTW9>?_F$tFRUUR@6u;KOfV z&5POUNH!IFmna8;ppCqX&FmkDVE(G#{FSEUA|y-OPHW7aEf?FuWGR1uQP~j~ zflfyW(n9>-vE}Q{FP1`Ma|4OwS2tYvq+d-o1|zs8Ow++%|L%OC)2NA_q3VhyoysQ?nR`B3AVXgfYq89SDH` z0E;S* zl5Ez^$3lU>Buf75qyT^@pWR z9EH~BVQ?YHAnT&ne2mMGgA9hH0PHlKNoW+lxq=@7OHn;|z40h&0RnASb>u_$16OEF5bCI#9lm)>~g5qTUsUa|efXkjmWNE0fetL`+WW zg@NvIE{j>8Mo8x!=o4H8D2{M+GLQ+2PBNEX0}Bu8dw zR&aq<1d@V{`M?x&_L_|3ru+nmjz=KgOB{F(OwMdO6U=n%ZS5bHz{1rkCFYIYPedHb zrlrE|27aSd)w+o@wl4j3+E$=d>iFy31IptBT^F=U&5Ed%jk?n_wPQ6d)RZ~%*3W^? za|42(ydh)6n5W_}`EiRlO~KRAKi`7qkrPAYAS6rF-Tj>Wi7s?i4ypF1xCw=!lzi5!v25H#z6e9@SyPNXwg*%6vQ3GggBQ&i(6`NYDQZ0k3*rZ zvmX;31+LoghKe(62#}b0O}=?2rDVgXOx>0&l)tQ+j#47{3;An8<7IrOpJ+hL^b~r4 z(^&E1gYUZ5hP7adC>#9KfK2Lm4KDS3aoD!bC%2gx)P7nEcWH-2ChC_;b$BtdHh=lg zxk|i4fcr2@X#@2vG_h+)d{;9C)u%r&Fw~K>7ZJ(9$xed2jurJ6;E6wT`w7{U2CCil zb>^h0k^MoZbK_M#1>A@F$zyyg)O>knjrbqAkhoK9_M5)xNw{gqg5R|>G<~9 zFLW@Ihs`(jG ze81W*VkzYQA!2DVU?UvAp|^0%LbTlcsRDf#DBQd5!)KKjPfyI8?uTw2t`8C^I@T6c zMs3hYZurt1x|tAY`>w`>pQFlQTwVcdCA|rFKO=}Vv@l%FKK>MGYCMQFj)J}((#@x_ zA3(Xi;Gnr>hs*&=UgjenLB!zf4E=7Lz-*4l1W~=sxh`kOinF41$dk8_uHY$hq+Y_a z#94Oqc!RlrF)?W85db3P8}a=(b1m(F+Cwlh2}X(^-_P>>T-?3Y?Puce=) zF46A5J2;EN8C%*!T3u9<&IfhEkT4szw4i4L4KM{^K!sH`-X5l?q`DVn_%=-MgytD) zY&UI{2b=u9jP}g#_YW_8B7x>3ONgCmPWc17;MqRmCAfsDt;N)gNTm9Z+n(pNlHql5 zOmc>9^x&-lDX`&nnw_+hH9?U=^;>_ElNW>zwSgEyOG&WZ49~jp$)Z)y>>C^Iqk*OM|3a=_d=SwIR=x4% zf_Zg7e>1nq5yPvp@N4KnQ>QyUASl;OyUL_y{VD$*qAe3bq^s_1p+fRqy&ob9P{0i? zqQZ+YsorbnkGo9929o|?mibuaxwm`U8)w}b?Z^Dubo z)Ex;x@rTHc1+(iQCKo|;tEzIT_)=ITtpA~$oa7WgVt!k!&14UoYzQrY6`VcqdHMNn za1A`#@(}0a=sEVdq@yaPIg?k4B|ztELNubw}d1G5oF|Ez3O-(9k?CUs|%GjN25uf=C8>jU@k3>hJR>vI5J9V@y&aE zzc)TRv0tZKB~V14s8absikXQ_eCG2m8eHocD9WAG+QnW>46qalC|@{1rN4J0F`CWs zInItp6JGAlhRWXr!BwbB|G|e0bHgbj7zuio5#Ma46OuI7TvrQOc5oI2ooP!s@?6<* zT-TYFk1sFbT3EoJjG;a>{cS_Or3&s97KEztEBm8&sno^-vFiT9Iw?gBUPij5>^>RO zXEQa3beao-0E#8!2;U}QHTLe8_8F?cqknEV-$C|VE3Bi2Tzr?cDv{2QL}TNF{uVNi&v zAJ}50?_qLyDku7?QP$^F?8Ju4cY;1fMV*5&4W|cN)-i}#Lm`PAcrZ1~lTZ!DD7F0X z24?T!(Av5>Wxj-^hjs02=wP5miXh&r66&A`HZX&!D?goQ#t3d*pLPMYm;FqeTY=vJ z1^U{W(z2dvD6|H?&sCuYKXSF#^H(BO>V*;AHU>SbWGL&PaJR*(?qUJrhUT%I=#3uY z3s{GJPi(_!s3%sAuTlD_L+~~+Rs8lW>TRwnChbUp01)~T3Ij*GP1i&o zhRt+3t;q~D>#3jbfv_r8F4?2Pd%&y<)cql5hjVBEa;3#)RWkp+_Bel(>cVI6Cbp*P zmg6WX!`V(2Q|^|SjFG!98>|K@<<8b`+AV{BN<-q5u!UsT!USylPk&Q}P@e$>9 zzAk1uasA-3lS7YTAqG3zTn{})UP<7ll3x%SgElG>Jy6-N=yPX^xLr|M{JQ0}$g|-K zRMoF{s5qvW9K4&fA4xbZjDA&Z#*fJSz*b?xH9ki@P$!0Rsq_p4Cd^7Inl2;hFLF4c z7kytG)cb+b>HCp^i>OV5KHhyCt!&-X34TAlx_xd96LTexaq7~WV z<|?gqkk(jZTlwzOwn;oQiof5;+{|0&WL9pE)|+inEdJ}o>(zGlrcRtE5^WfW)q;oK*z3KhZ&PllZefy#*iV~4p&am#-zo;j zWNM=U9SAs%#%ILL4}avpx2DVASc8m-(BmcSIs9+!Ap?ggG?&3}Ih~{nvS^jVj?-BM zf)3S!#sb59jI-QJW87?VF(}bm@x==K7w03x*?f(G?DkoZ-}XiPDP!;k@4}MF@bkB; z?~K0_?nAgJyz!XsGuBnBgZ%V`hi>dXG@DR_Y9 zsI&BQIvxf)03d(N57{#GAf+_{Y=Sf6F!j9*DzcDFzs2Xsk@A8vwz zE1SfkGn?qH?6$3@`p+k)?JK5nLmE$}2Z^P`JLoD1A!5&>k7ug00pf6`os&$(%(;j(eXQNN`ZF@wY2$AZ6T4e~MHMNT##3KUbn9Y7;# z0aq&9^3)!-nxCS6VS{$|pLW6C=2)m>Zt`_*k-xq%Qr!PCBn$xqY{>{Gb!2H{dJeP6C!5TGYDA2l4X1fLG_3!3r&$&rRHP@ta7Dl| zo**^?vKK4tKrsy!_2|M>3UuRg=m(q!%lnE9ic(T|WB-q*#4m0qg8ghQJBJ^gszg9# z!NFMv!4AaP%$#S#d1|}IEy~s;R8`P8#2%aVFj}_S3Q)3+AFJ{Z7 zi|`t*8Pt1LMnOC%2-i#0q-Esf}o%3KU_idOHbe($?!e!KYRF61W=L}7!$DigK#98 zf`Zo+Im}dr#vW^&qfRw|=#~J)iiGi*KRj*{;A!-oSbgoEtu=N5mUKKg@D5%OGhs!o z0r{i|9*mk?V_+j;2rQW;3t9n0_&dv2izobDeVVmB!+qli0;bv`ZMC)n7hwh7{BNy5 zVYlEMt_SaUg3C|stwfA&cOY@b;aEtIcT#?=-C+3+=cT^` za6lm)PJDzAg6uir#`DBRBpV)nm5ktKF(v8;Hi{H#At9lcY1U3L)(7s9!1DN{y-IIw zoGWHN=`D?*HGX`P73qPXS!8Xb`8nYrlb5KtIGL1`)D!i)MZ3#-#^W7>cM)rxyYP;e zJ+^|Yt@N(rMZc&B2EahwR=>l)p*G7*hm-AS7~p(?4O8vcnZ%=w;q}npKkNlZ*kANw z&f1%yW4MzrjjDIMS4g?;uFcNbXqWH2>K2r$|M`13u05<2S>+ z2Z<4ully{ybz_jNM*R$b458*Y(bH{RMl*ViG(IF!A|mk6;0~#N`g0OdMJ;Sx;EHF6ip94}MpzMSA~v$)ZmNx*&Lwb5+)J?W87RoOD@{SG38f!D{W|PXc-sGm zz4s2sy8Zvh%Z+Txtjts@WRzVfm6Xv$_KK{Cl+9H}S;@@SBH3hSMMlXeJ0cOXW$)kf zlm$*s}M1gUKdS5q5&f^aE_YXht=ylKI zU^XN-!2&6+T#ZwWmJzlXrwlaaV|$oe<1`u&Nm$q4JputWWrwJA_nfuldQwOvdtD(I{@Ngu_$HEPE<5Hn0T{*A)|{DcKr z`9ijZm4>-Sz+6Q);P&PCKe>IcZ1M3r^fK}hozs3oc3sI2$g;^HG9f)t_Oa_cdzZ12 zu*Kqd&P1F%Vm4tI1-=VhtvabhV}`~W@Y0j&T21pUEz^7e zOcMJ{9KN$kS_muS8Jn_s4n(c6thL z31vO=qUiXMk#q%D8XvAXhATcBFdlGmaWWS);;y0JengU06}Z_%I@TP!oK?3*O+H#q z_Z@R(7~4 zO0sa9in!(;PN%ySblU2-($<2LJ?t6QIfH!R*ly7WawfO#S2CD z7`UxZO4ba?UU$fX5sY`a4bh`SEG4dm1ok5b}F z0JA5CMp#^2ocP4B?GT9tskFR^fE{ROEnzsFPLo8OVYl9=QFw{*RAVlVrg0$AF@l>X zck-aibh{C?ui8J>etO@fk6`dUHfImY+)sVa(C#yG8f_8GIL1xhuzH-8h-0_kKKx;S z*NLT1BvnS1-PmkMwlh&v;P6HMf+J6t-aag=CqJKHrnJGlL&aSsOHO^@!1iUE$^Hia z(W%SHyR|_%|BOITn&cXaqsi%qFEb{QBBo>8giXB3p_APUF6d(1#C1Y&WLuV`t3Cr1ndgr1=&m zX^UqXxg{qNN^K|fSMUiYcBRZR7pm=7CFq-fUIN!LmM7PFkUX$4YEsD30)R9 zDsr~w%qDiyiLE|r!OT*AV^%;XDyOsP3eehvnS?rgwH%9WCWhlK73x;R(i8%G10Yvg zwi`R-EatX8!>;+)P2raEVsrC?ZBm0#L(h#SoIp}locR36ygMlw)8h1aT=d@ zU1ZNt=bSp|hL_KB(A2;`o`WpMXXDJ+^ei+QdgTm?vf&K6Y+DmIU{Zl{XAA*S%L87< zxh+$XnCh8)bd}KSI11^KKfV=q%X$RF7vKF6ZW<8=O&i&yopI$2d|;P?k{PIDut^5@ z^&-vugvb0n%eJ~?4cEWDI9eQDJg1+eizQkjye~suqay;eu2@|Tpz7X2jstU2Bh&;S zM7cTk4SypG|CZ*3aEYJ-l|=r2$+)#8gu-1bm}RjGLk-vACN!k23G7EvTKL5tr6Tv; zU#k@j)_(n4K06axG&Xh(G^%LR19Lqa%SPOg|Dt8&i);atwV7_iclWZOJNv=pM{4iO ziRWyvy>RMg`zXy7y?++x;;n0JY=O7Qny|jbMXebwfZji&;Teqc;ff02tma8_5fYyv zDI+s;q`g7JBq#2E{_|E&p4J*auvDtE84MMbPA%^pP7 zna##9CHyTxCiIW^vv*PN%>V8A|161^gZTF2T?c!j5$M8-NMgo-E6dX}&u_$QU8-eh z{azoA=N3uZPK$i*TP$85n~1L-d5p z+}fJq3k=pMun&F{z!4+(<5YitN^s!Mjuf3|H-3=DjJvcl;ccSy_$qMeWfocN-H3M) z{)3{x)v7J5XHtujIw;FyrORShZ2ooM`h)siq$Z@&wnp7EmMQG3)O9YJ0a54*Yvt30 zZFsrI!aPPo>gLII2B8UhliR7PDCXf$Y%(vo>whS83`($p^2yA#x-k{_f?<`Ez+GUQ z-QuiYH?#8IElQd`aU?{hOdCXx$ZJQ+(A`&&%pxTDDBtk20AQDi8Ii8JELw zE<%Vc)L&Xf*ZdPV2xu_2H>2U+C(o{k+A^U@0shYO;X$E)S%36S%#6+A`}gk!qFPB$ z1RcDbk6X||h*p|B>fVMI1+m=gH1HyG1Qc~1xrU+yH}aRI$v3_ct#L`hamMezrDcur z6i)`Dtb|@`(;BxC1J~?6NcQvzlGr7$3ny`;M`&DeM2svfQT7~fO?f)J`2+XH{o+Yo zr@rGfJ#aCm$V8AcolhMX#DLXD4q{7XGzoq7o-LEm$M`WkDg$s?n~W6$G;D5k`!?mdnx%wxRBLC zl)CFq^V*D991G$ez~|gp_lZOI`KaxJ+U%p6Lj>%LMmRs>8L|R1dfBGMU6TCN&A-CkS17U)sx-Z-nzfHKWg%J1$kn1sW6w~# z=U|~E+?dz~L1a9z0LoX$*oeo+x>XZ`Tl9|-Bpw*fKa};~5MzjAymcNhp#;@#ySkRA z57ve%+-}Em-B*y}APHTjDU_0Bk9i808=~xkvqorgXg=`^V!kAafR;&&?81mFnQBrL zU5n~{NFn@1H_;MZUnDG}t-XRnrj6bJB*Jrh=DK?0QA6khbYRZ`&Ol_qnqUOk-lS(l zEG7k-N`Wig^)--FsqAY0+eQ1V_xs9|3<1ZMW>oy+$`V&~3L*WK`I~~b>Gl4>$^}LP ze?dH%{)8tLgY0JrlyDf2j2l~}Du*AE`Ov%Nw)dN2+}+6z8}}i*`f@FKzyKS!U{H#O z<$zo#vAx+%7<||!?aj8NtqRfK+^@?edj=*;Y{*OS6g1YzR2-HVxn14H@yrpgiopK1 zbB|&YPFm3VFfZ^!m-01LF2+NH+y{b2rw+l_cJ)+F!9w-D8>JFe=VsrtU>@Rs>5U$! zIeO2>XPX)O&Xxyn*X&QMetn8&BsU(qAmt3#I;h@vN09kfaYSqJq3lADbyRdHrJ==x z8wCQHB4MUU-aAYSlphU!ob`xb2bMUOgpBFj_8lqoc1&r*Y)!+W9Mj0TFu}}_dv(Rj zDDyimiAU9x?|<)zJ1cx!6qEA)a8v*&*2sJL@D|ou6n0O1Fo5_-i#ugWG6wynZ$8EG zpq&iMV*OHce!E50c}$A~Oq0}a*6(iKI`S>8{JQN8oIw3_F+_V7F*p?-z94M&X{7cr zS-xX%&JWk2f6JYyN=-UH8sCHg**?^Tg4T2<6hzRFx}hc-&g1rX6*Nl^jDQ17;c2iO zU*DqREM)=PJY?@^?#1`p(zoULphZpYx6Fq%lMeHPAvD=K|IxH}NximmZ5MUPieZkA zO`VciAX>?Y!pCNwIQu?%jAQpR&*9T?{tZp6=+h}GFy{9i`ZP=Qclb1KDtx+VW;lSF zvV02K>35`z-GadKkv)P|r`4b{s2sD~B6xi`grstxGW2C>8mrY423R(wTp- z=Q6=cB@uNmidubQ>%E$9cFvjjSk+nd3_kwYqLu3=h|~%P;=4iH5aZE?PCc}( zYZ<3Q-N6iAm~Ayi9zI!XP@7hhQ7s>neCAuGA?3w%|Fr;jG#!R!nb~mAxh?Zj>}S8D z@$doPBsc&Tg1AoZ$U9~-OLo-E~%xup@QCwa)YT1WD!t6 zz(@_1J4*87wTfREvm4MWdyE}FQlx>07iBj_ZkygRQOU_zpWIs?AJSV-og#tT?2iZD z%%bBPWuiLn9VVa0-Hof>VgVYY8_)PMhL|cFb*^tl{thM+@1?lbT?Ma+(r2au>g!GE z!tq@$u^Npp1alzYONNs!j8p_~M3NkD)22;L zFTP0yZrhzKja7QTEFR0NC*@XbndFVFQ!0syae?v7Yk$xSUI!Bq9yk1ts#Xp#u@OAQ zZ_PM?SjDp_b3}A6Lknr*aooDrd5|>5sB13M(yOdEi5VJo|A9i^7m`N|KT>yy%Is$+NXHetza#LCD@ zp_Ii*bz^#zC2Kn=07(T(;K;+QD#+srB(gTr+jYAU3i1Bu zn|^;lDOr%3Qm`}XZcm`YEo8k1J5p=g?sk{8A3lJPy#?NN)gDOohl~tfkasRJhZUE! zs35GNr^JkmjN!(Hsmd<1_8KZ-b2x8$y$@U>F>y>Pyjmb-U2ldTjv^IMfnE#84^1PVi0onhlBM1O0f?PEKc?)Nr8A>Pw)KMR|X4Kkp${kuhjyzTxy>(l7;)9KjiElmkk&fAV2jsw{x&j-;|;r zcaDO1z2cH{Xx{4D-f@S3d$_>4;vUjJh;pdXPp6XTonAAPe9@(4M15A_11w(Vo-`yi zWno7moAXRzr@r@#GM5z-6yv=_&+PllSE!yzX^neU>NXYMw|b`$yt*O`Bj_c|@X$~W zxU0jx+ROe`WraD0FSxAQDdm5R@G*ij!Y%oC4=HRZ+>Bd!#^ijNXtBS=(7@}@hkJzj zf##LHaS(dZwGhB8@t7$RWLbO)N=m7PlHR!tWv*g-@tP;Lm$ABfy^mpX@dYJ%?|tG4 zuJq^l+2K72Fbe!n4WI2oZQI?_PbBg1cLR;WH+%|$l~+Ku5q~;nZ}93>gw=Ogmc;Jp zIV!-gT?oZm)q2Q|YRIM$0|UPMhtl5*!L%4*S^?1UtlXH}w{Ke#%wF{~tdbV^%Lz$- zP5@tS9QSEoPay7o|8oXg5OKYZY=*-}lF=*~fO4|YnXv zV*7Cmz^-u@(iekQXinf<*iblt5V$Aw`S<+&tf`87=pRVa{9Mw)dK`|ICiYQ`9xTtF z$-9_{>H*Afw>WCA3ZlUZA;$_?!l$xW4!|z**JFpw85#D>iS&?=zE24dgMPoq?nHIuBrLY{l_-1;irx-S@`vZG}V8JMj=qoGozQ%3fhO z1viG|BY5XsiWBP%;lS!cNiC>2eDWAV5KI~UCa<)=voZLpYo$~Fe#`U@prCe%t(^E@XqsiiO5;{xR?xD{m&y ztoh3nGQ|EkIdZ3ot?x)o|5eqZi-T^F(v{@=<56YAfBNi5> z+4WZzCWSv|qWsO8fdlkuNC4ZI4L;=J_7DxK--)U+`?Lbq41O%R|INYpztq}_fI#%{ z?h@FIkVM|?p*bpJdM6uO3*any6j+3qTxu`u{3HbW`QN|Vv&QmRnf>KUgP_H)AH=cG zUoKu0p?-Ax?BA>gs%BK2bp}s$Ke#3eePUhIA$6VOc zTTiW}NEI0@{#H+zIMRnJH?IW04~1-_MUs&Ul2J~Vg{s-UQ;%X~91omdcTWE5sn>IV zPG8FHO}1NIh~$1a&>Y!Q5i&>-@ev*eMf3o6p!3gJ3V7`n>gEM011_@+m0gNYEpSJ; z-U9~B3$DhM!u?ju6=hDBDMxY)>^`{jDV)qt*ZF#9@?+_uz@|5TjE`OU{GZ*?JpjR! z7JjK82SoD=PhjcR5Ao6jgGNzol&>4j&>x?u7l%s0?!Ioposz8oVAMM+zFKV6PrpRS zv}Yx<8H$$jsrWa^zpihg677SDWg`uKdzSy^#OXtU&LC# z_;YXz4K~#oxx#Dd#I=Stv(_S{DeAB=Aix<^{3P(WaV@g?``6QeCcjk6n}O{v+@lPy z_}pofxLUt^(ixY3hSi}C6y#W8jpTJ1O&fHP`?U<5(JEO8XRv6il4uTRQ@kkwLc*dT zem8V1A>xPs98p=nejAp`SnB`sddw|&E9tfvMeKhkKs!IAmN*IF?v}zhT4JgSD6isQ z-rA3-f*@-s;*3rIe5|0tK_ztaCMn{+-Ur=G@k&t3SVup&;*{l+A zm_F+V1wV_Cy<+}9Ujms10V8O88gQkIk{m?j7$ZMj>8hFts{kH`JRZytWCa9&|U z8kDgcHP2`)giS2RD1w+FepoPghJvbOd%+XPQQKc)BDmc`^{>nTxkON2!T!L!rU1y_=`EXa|X}XsUV(!Qu4ICkp916LcIkx;<78q#g-HVAYJ_7;3PlH zO78yrS`h4#)#fUMS@TmQbse((*gb^0=p8UNl$ENu^uDvC8Eho~tjaS&Ai=hn1c(xT z1ig_-Yl)1|emLm_n8K|9ZeI0CC2n9#UXMFoQ^K!mbH9$Yk*i{oNfb6VPgR zC}k<6tEw}WNnUoO^q z)B#cwFo`Wf*n?X4y+rzT&@jyV(Wa0HQH1xe#_JeB7g$`k*pB63?2>T|vig9@N7DYq z@&K0RMR(vO>^iOc*7V&RaQ|ROy$7N!x?rCe{)m#T_fB|~5t4T8x3*Ym4?wD_jM0kE zujtjQR{~<(E2Z-%o)-ziOHV3jwc6<>e3;j@O+Sa~aAHtc? zv75L}dZ9+4q^wW;NM7xo-*QN5p+buz%G_Y#V02)so?D-u_`|x?~;)$dr$PDF>J@o11BU)Sx2p;KLPI9tPCv#j8U4SF>QX+6rfsz-Y7L`~O6%q#?{% z3xoIr0Ime;>PD6&$~63XitC6g#t$}jIy6QDyRpmgilD=qpC(ba`GIF&fo>>6eTUBo zNd!U^qc~x#jlGP1Jyk5<@dDg!H){eNPAV8sjCR9?(?M{`mxfKO;C?}=mf;)2$YCeP z71zZ7&HsJ~|uoT0-8!NyS@}QJn-rtLDIyr;JE@wP$vPLf9exqRs&|Zh94;%>+ zu-riiXXivky~J67*bV=}C`HY1s=A)7sC{qcpQ7X8wMrt>7eO0d`r0fY=UlW4e&Pd8 z5Y*p**7;_?&e`G)2a^YfJRTZsg#EYx9CG6!hx{y1VkUAugn0P-5YuZ_pz?tK+)KZ1 z9IIGlL8?VI=5k}-inR*QW9#RBUSH91SadbCOZ>85>^4_FQh^41B-_McQ$=UeVfR&a zO?Jj`l#O~y*B~CO5qM5TPQWdv?^$ryuK29Cois~4D9O`NhUIQ+3@zeVL zFFaJO@${u1X#x$oXV|lqj3$Aj+*g+HrU3Y3-tPr?rMp1Df)2`|q8DrzAXaH($^IX1 z`;W)wfXv!B!^AIe=XkQD5(4-fuu99uDsDLZXQ{*AsJb)v)bi6{bpZ#6_ z1D5X>6Gsm;{pnJ|$|v>@|Fz!#cx=%M@Dg!>#EVddrZ>jk$O?1A;55Xdb5ID97LG&l zph+T5OaJR-SZ;Eb+zkA6-0Lj$DsyA@!7Jh!(s$3p?L2t;gD9A9tM&nkEv$JFe-?)S zcx)4>3okY%W36E;8pZcE9n3=X+5tQ9a7(=S7ZLkepQ7)dfykvEt!|^9CTzk%M#X)@ z&q}!#=S8eTC#=Z*>ak(OkvUlZLU9aUTY69VHdN;VNe7*K=wN{t&~dy^$-sH<>rm}D zSbKDQC*-i_{v7Ekop+&ws|7=_{GV))pKkl#QXfmO|9EV*u|@6BLPpojb^XAhRF%ZJ z!BQ1`LV5@oTKH@-$by(Rwsr#|d0IMf(04a!VdFg5xBlmVespi6md4f9>|Raeh=73f z2nz^Mv+_cgt-H3k5tTW$!$H~9C`|sDDOk@$0lgd!G-1P0tV*yPHICR}8DKgN?JOuj z{C|sulYLUuW45z;I721Tt?lDVIO%7{2g|mJb?$b4bl|fH@1Y zDg8AQaKrJ_!1sA)VS>vuV|f+#=RY3)(}ENNs!?B%_p3Y@HX;%E5#Xhv!A_rAo}s?o zIOL`A6I-qGHk=uN(Fdll3RlC0vUyk2Oh?w-e=oSCMfPP?!9skW7G;`u{|MApI@0_# z;&KYM&gD>yEBp?CINYUbE-U^N5WAwHAZU$4b%tE!F=(jUPaj%G9sS^iA|$DH)G9cE z*IM;s{E@O;I#3V#Vl7_yb1x@u-@ki!icDW|?L};|;4OrUxD0|sw?bIYLQAWX8nzGb z5Bkx*cmg7bjDfBCYwY<8#a2I|Wris!DWNJ9G+F$S{20kkB3Sz=Hg@9yuj9J$VjCoZ z*Ia$fDPV8TtuF*|8f@(kf2M3SDnZvd5x04jHzlz;-vO9pYL_7sV92A0fMKXDL8XOYxQE2(IJ2J zny2P^IlU^VjRIR&`txFORQu@xa}73Hek~K{$QB`gcYeFd!z~!L;``UCW(wn#k|X!@ zFsD54-gCuY@;x5kPMfc91O1u9Tz0#%dx}$pqAU^*{8c`$%HJa6L|%|e7TK2JjXTaM zkis_V+M!7z=o9iXW@2I@mTI)LzkZ6<7-OYnAs(e!2lJI1A74aGT_;c+(Y0mw-$)-V z1Y~L7!;Nb+=Uruc9%-!(^CyyeA_hk|@Qvt{x#&2Cl5YbHvp^JKJ~)EW2$=W)hZ2?( zam)PW0doP4?R;Z@FL5;D)Pb=q-k)47zPE8lnf-m==e1J_QZKcHLKdoEq2xbGwj-nI( z1}ve|;E3MoUm%H4i8d8ZGu&grpcBX)3ojUL}o#jY2S-`htDfN zma*RNDymCr8 z#fXUXP@r&jLm;+#3~T#ZNniv!D@+y2MPAyGkw0a2Yg4F%=HGxF<}LFrN#d^Tr$shG z_p~#X3vn6qpIG)^8pI2Q%3?Ct`c{M~zVQfpHe$o9{Iz9>A zoe|Tqh6zI;H~|YGG}1wf9}xUBZ}4A(0C(Zy;9zzh!inTIIC#Mr3+*91nEpafz#d$A znaU$!k>*-Vn6Kt`Y{|!uJiC~mL969UD%By z3))qolFz4Ya;HFNwBl=MS71GW@r>N@ZILHkdmpM$`3HQq7zpqg60U99$YQ`$f=uyHe@763>sb&h|HR4-(*2_6 z;Wq3-FrPsC$Zx{9;k_)r55@~46O(%SsfDpw`*w4yVE72DCdTw(aC4PK4jHyz=huAp zdJOjKP?To~zq|3xz{`vxn3jn9KZh#g z5XGVqfO2ST^0XozbdX1GYw>7+2`w}`Q-&NY1jAfc8<{Y+z-MZ&`7v>4x!l$61sJ7~INR94<1}bo2;q7AUPiw{<)=#+# zML8-NY%Rc#U8;a+XYRI?N<^Z)VhoR~+?_zRVJX}jy6)yuppu(@RFh@5l#8v&!oB+6 z5C3Vj$4<@2qJy@6nhi!({SbvBp>CeifaH{v{jDb})uZ(&=+)b1^*2Lr7CBU6Vu4uw zWdzqyg6WsJA+FV7H8ZcFfO=tf=c9|_QDZH5q-|mq{3!j+Qfq(_Igmuq8s{m4fn;H+KJd0$)PLa}Wc(LeI~PsB z7wT#x30A+b5w8lEHcTYPLlQI^5qgtsk*1fxj|O8SP;&{FKg?m{)c-zk9N%Kj;oFld z@Aa?8#@?dsfu+71B$Pzr?DKK3GB(6 zQwkJuB* zg298bN1Q*l5sw`VWgmP~7+> z*oG9TDr(8Kf!Fp3@HG4-ezjqxQj%zeMwYy5OTan2xcnQY9%yhr?2auglNSQs-7l7I z;Ap?zNt=Q;YW2v8#OhG3eL$_a?xC;<*vt*~^Sr3U7$yebo2kP7|F_jmIY7=H{=HW6 zV04Mh64AhQvF1ZkF+ldmV&|3Cb)*E#0~;`rutB?9FOWp6kfP`_x=!g`cdus1k_I1< z3dMIUcz-v_*p_!>`%gZ`&m*ut!iF-(Ed;Qy!S4On3-$rbZ?@-BY~p2qhZJdfIyQHjDkRpE69j>~J#V9v~H;JTD=D z=I@bH+BKIH8`zf_94s&!FD_hcEhI++`-&wN>m*#A7RsH-5FBL*AbGJM5MJ{xZy~pt zU}^=2{_`aUPE!Uq+u5fkgPmrBJDEnTrDxooX52>~QabFh?`CHq253-C>(}heo5iOs zC4>$EEGLEL7_H`JW*B|x4%2lXzSm#@z{q5qkNvuUyXZd`Rsc9N_gt@}IF^b&ifj5w zPh%^aS8DJ7L=rV%OPiegoVee7fKaBaF2(Z-l$v_Lwm49@1Y_pEo{B9k?DH(xb7;P$ zhN5F>sDl|n?IjuyrY~g@EPvry`m&QM+p*NSU6*1 z-sp$mf`fSgtZR0C@uox5O;>=IIDDx8>^-CF4taarPH9f(Ho004!z{`6 zvT28rX-6~brST{haX8?`Vmmbb(iJ{D&?bOjDiC_z_L0e0r@7e9)`Fo{`Q+uesJXaN zrj9Wt?~!}2YLp7T2XZt?bhA+s1B9Mxmz}zGDwLyDHW<0C3|ij@@r8uzqaU&D4C^p2 z#sqXlI#Wb3_O5IIIZ_m|Ais$UruN+&b8v8>M_81jo`o}>912!#_LHegEduit(vj+7 zZvW7G9>1gTtZj16Ut-q3nysLzU@D_iM#1*O)7uM0o5an}N!#zc9IRx2?sB-aeQ0-5 zQ>M9I-c+RBF!8lWIgNQY_GK7#+Nbv5oOSYD+jQd}w=ak$c1-DC6e-NVD!%_z_8iNq z#Nft~+Mz@Mv4w6(L9r*F?{xLef&+&JwJF82q%;ST>6!Qe34Ug2WO->6a9GSaZ`j}J zQgWJ9(j4De4x_*KzFt23W%E5E#FHg}LtTJ?tCm9r#E0s{xmVB(G)DLqrQ_&r)#SUzhla1+BLzHq2kRQU_Vn>w>v6y(=#SX=2I}t00p<+?jBc9%4I`L2 z+o9zC`?)Nq`7DL$%`n(2Z;YV$zIU7&qWy?>46~l@=T^pIS8uBrX(w z&2jLCO(}<{_}9G(#DHJ->Dv&(LM=x8U*~j>t%_mzWgo4SkJI!`Cwc_a?bb1u*pb`w zfnm-Lgx#jnD}2;|1jC&}eC%$M+B}-#%0XASP+4d{+>3CmMtyGPu>+7j zc~hGuLa#75)U}nP^KDfV=&zb6d?tyJaq*Ehg~cYPMJ4O$mmN%weeRA|jL&>WgL0(~ zcGwRAaP5G`cfVj4gTn)tf_<*Q5F3QFHk#Lac%+TF_{X1z`DfSbx*!+cR4tu~5>4zgbu7yNR=zT{E6bK>B<(98-`bAJ{)(v@r@(T76dJ8q0VD%`a)2?^ zFBa@C#mqOwK->==XQ@gXQ zRtWQxV{1Z=V>)h54Lt7V{ZrWlHRNNd!Q3%A;@et2x;hv;vpF1+vUG!`7`Cx z=Qfd+%oOwP%XOwpfK*+Ts0Q_Mm~C)j|7+j`?h5(WLo^CPuckwhc9m>_qqtn7bo20v zf3iQAO`NGJKB7n*fPm`mEmYidLCP^UY^hseNpGflWTCpwsfLYl7EK&KG-6XDmNhL=D;!;(|f?T|YdftyQ$lwe7QvQs!mVPy-)~z4-F@3_Dr(K9~HZ3@Ru#K8f zbMzLy3w?gy@!0uZDxZb;!nycS?~WPoSb+}PfkXs!S0_>uH5(EINTTtDwsX3vBY-{s z%{zRgaCr&gal0$PoN|t)a*ku|fKU)SjTHEZOvfh##%%j_2iG+El0rn1~;x(1pMKyLa&r*Vs0u%X?M< zv4gVmb{zuvScyatH)h?LvB3c}h@Hp2lT^W}uP4lmq7Wt`Z)JvyXXNmMX;5RG+Y36k z%QxLsIP0~1ZRTCg!aI56a^9Zvk>3MGF_iY7CzcRo4TnO2S|Ndd>{#U~yjfRc$&4S+7o9DN1%Rd@Mek+iyJH`{kIwj{?k0B`%E8mVFG z3%@q={^Tqc!EpEpNtsKZX1faZT=U*0rN&zJ_>PYc!@+I%J3PwnY@Sv>@}9*=?ask$ zvi%S6+isC&hduNEjAtm2{UzxNtL=q=2WRh|z5Dsr7vA^BuItn;MXAmz$thV`HK~4T zs8pS7vlI?V%AGEl7M})O;Kgq%vySUg<6mM#Hm-O11M1{zPf!0&feLC^Ml)U5B^D>@ zc(3=>=25l7Abuu*iFw(k^U_v0?cqZEPv&3B9?L^dt;Yq zP!k!FTH;1diV&XSDfK!s2tX0WVjv9R~up~0hB8Nkgdr1Y-Qo^ zV0LSibK}eP>d+YT!IYLrt#l|`lP?9In z8Glr$o%`F}-iWl&(CZ;=lim+VhscP)n~+q{n|ICW~L{fPAWi}*+$PAuxUN3nK)(2o_ivsu4cfaECJ}as4L{Dbv%w^p5_2Z z)H8RFfo}%_qrY2DKVS{;Yc7>Mg@>ja_r`{AsRk(ew(=@hc3pRBg+qJ@9w(>ZA40N< z3vUJ+6II(EgQI%=*pO)U=)hM%X_it~SAQv9*NrZdS}V9oUJkb?qonD-6z{J(Xb&WJ zzG>hL+$Z2#@pE%rj)(vcphaBz41-^@B>6Qg|7+&cpp8VLZjh*Ud0J3KFV+E5du4s=OWGq}UX%ay0_j zmp@er0Z-wA#T(PtzWQXRh5?#FyEoz{1>ll4g)sqYVXq6iq^FlI8AJpU@5y{xN)ie1 zKX2qx0Xo&-R&-0_Ibr^}iIEP8kuiY8Bi_Vpt<`Q^eBV^$;S>`mV@pASJ~;Z4AAt?( zZs;`rEpn3qo4qt3RJ4TUt8Z`t%hp`FWXOTSiZvTA?8{@|ZIrZAZN}!B)!0%%ED>tHgfWCE7pU1 z6f<1Gg)Kt-Nj3iKsxU$}V;PS#Zm`!mD8LDMRFYO-O}l4G>XWw;P5hVAerpvQyhL)I zsi9V(^90wxks}2pX{B^Z?r^8t=p&uCNcZnCyU*r=z`+ozsazQ#z8N6YmUniC3HPcR zRR;5zO${|(F!ef8EYxnzo(C|aA-tUk&LKtbjh}uLABcGh;3oFAM*%!$Ho(DJvS+C$iEyWr&1xbKm$c0CW2^?Cxqd z8Tj<_rZwRC9MHblSs}=D_9X?KkBO3oKiJ8vR!nI2``N+ZNTz9D{A(M6WK>P zWP)T=1fxPJeWKyj?M=O|%lhvgY$hb%7Vyu#z%6EAfV7nxMB3>0wPu-J+GGJRcn13} z>bIiUk|V%w>WeRoM=ggFvkG1X_<5ER(Sd~XjR(>qdTXLsraGLK^HOULPpdU+-6pq4 z-bF55w$XL@p+|D*8N)m=bZcF$21qFhM!>PY+mzQEY3D{jN~brM4Dh0z4N97FhZM_$ z2uKPwe3--p>l+%hQ9}V{8||J2rw7LfmrbvHBj=i+wV$ubkq&I*KRKRtGwUOj-GMAm{I#q5LugwRsG20*tF-qXACD2J&_&EVLK z$7}@%TZRMrvVL)46L;CNXZ~qzp}QT)H`j52}zR$M8bZMxaSzUva4FD z4e_4@ZKf=Ts@&_r$x~eF)1mqf;7wI>Z2%{lm!kJI>PlJCPAaF(G7GLdVX*tn5neEG zl3pA$#znz@7r12oigdJuWFwE}ya$P$2`^PdNm9lrg2fdgpprlvu3_k_V}zA6BE@b?(Q zPzd$P#a>SQliKrMAU+u=Z$v4 z@kbDwCKb%}-;GSyDfKXa$5-x>ooV9vuo{rnbKcBY0DkK&bZsdOr8VC|P2}g@uW#`g zq|&DZqDZ1{OHQW?;ED^$)p@~)D^YIaKh?$g$^(C1j|{trb?=SN0*UApK1Hgc$nw5S zzuPYCQqPi;DUqC38x^|{cLEGoW%_mjqYKu6#AlH_+4r6uKBpUZNC%{PynJovF z8=#LrS^%)p2&VAu_U*lZ95nu2qZLfhqY0upZ+3^hmLr{I`trMw9Q>G2dRx@=Hm!uRr>jF)Wc4p!}942h{r!?nr% z&Pe?WHLCY$d2osT^C8>PKKnv6}+Rt@0w+U@vcw>D+L4dX8EFy|6^*v<`IMsr;1 zxd#t@uVC-&k59hJzn@T)v?QqIuIhFld$22u!6(XplmKH8uBw(#Z1x#sFi=30S6QL_ zxmC*7#VSyOx9oWJ%@}>G7o!NjoNCG+j|e{(`ls~hC0Hx5ja5_?a2e&2;co$M-|ez5 zT~*qhy;4oXf0z$HyGDGzTO;`x#B`2&(QZyR9sT^O69AD+VN4*iHEa0w4>HHIsQ&Rv z_2>qj?N59hpy^Yt6f&fE1+pRlXBvlPfb^u`JCtKR_C-JLOF9B!9L*|ROq5YRAl7$> z-G_)?!&=+FKcHnAw(Zqr267_Xm!3i_ojG|!>1rMbFjv(|cQGnUUf4?_t=L}g^(P?) z$6?e7h<$afksF;@oyEDvmT&Oihb-}n@3Xy&l8_jLAcIX&>NeR_lDkOn#`Jf6|5{lo z?#qx1p~~$gz`%`Pnkgj~c)gg!G6zW>w8+%JF3sWgat~C}$Z6?)0k9A8I>T8Vj-6kF zHLJrkh0_K(-(US_p+x!R`%q*t#sNbnETj_ux@`aS`#RWK0GuE5(*tb5k?@@sFeB&u8S-EY45Y$hE6AylxcFH(zS3_Gg;*)LhtsT+tlE6%b%<0BD~c zgD3+tv)y278uK_rwGU5#?P>N7B#?f%V1D?~_`+ne6SgH4L~6-(?V8PeWhnSI`hSohrdSE@M$1|F^`%NAtxsf@%TDMulHI6;yz{p zlZQ=n!e+rQms)TXOSe8wDOvg+^WE}Yp?Uv^mL3M0&xh=rKmd=W zkqkA15IP`-DD^V6Aea}ma2?hrs%Cjqb-br8eVGkbCRL4?=&nVz*@-%Z5){>RPqzQc z88W|pSqUdTI3le*)HV<-kSQxkunpjTRRPkKOS&p#9}-LObw`e6`!_E01|^NBp4o1VqDpz+zyJ}B&%CVB)r-7U zExkTal?gNvMnG^z{DMmky})lZE~@F=Q=W@mpYEPO7|dIHs=|VW1PfT2EFrRV`PNf! z)d}xu_Q;D}Vzl$GuWe$nH}A3Jax)kBQxHS_Y*CG~Rq6TE-Pm7YbU--`6JT8MxM4Up zgd9La0YxjrLH| z+!KF!5{NnwBiL%sushmWWgAnFc}$(~61<=T8}o`A)r9#8-y=Je_%$uz+fY@>1m7i; zuHbf?(FuIVoz=!~=Am3_4;Ex6#5gKlcu!|!2RBP(Dt8`M*?p@G{5) zhSIMd28Y4y+G##AG1#H(gBjQtC5ogpY1o;{xC!rfbfg(h?UrQvQ}F0I;6>_fVzt9f zhLk*xF4W>Hek$mSaXp_2?Z5j_M=J4ggk2nMyK>(KeRX4x0>D{b@W~XpcM^8T$VY6; zguIu2IlUXZ?q`UUXpp8_Xs0TIp)YlrZ-$QZL{O`aYdKhRBIn=dDRTnIjvL<@#B&^u zZD6rdL-0*Puh8M- z0#cm!w82F&ytY}@G~?n7z}6OnE)N}=9xb61iYs_9q{iUmrCoZtGDtv7Db>6i?h_Vf zFq0H@OZVCH1t<;{(2`1L&K*f)U}%~GKRqC!DCBy7qZ_+_wPr#GkJD@=it_F@a{z<0 z^EI^s*_b1ZF`TLmx*n7P#611py;sEmb?<^yvyFr30mc@(c#HC3hzNHAYVO6Hk_oJX z^3x5A+iGnRvI>4gH&*@~LxP+ns=5meXo&r%UgMh}gAn#evk1~(8F4{GLmE%cz{^?> zkiaEVqL(SZLKb`8?j78_+i!d{jP)f?F7?iX7)&Rqa=Gle{`jy#PQqrLr={SI=D)FX zg;M@Ke7r5mnuRH4+l)b;cDs-ZwedD_yY0{wPD?3$ehV4lNE=EeYvdy=`lDoaWmd2E z`M7c``s9ri%om^HObnP-j01Mzi3ENL>3`5MQzldlxwK$&gm8*1>e6v^*S0=kK62`;+>hX9XSuB>!amF(5UM;CWMZu}59?B+!qH@Se3%JbT{3ygSb>a{~#)DSbE_H0-8Mn(Gt@%=W|E$ zi=FmV$nzS0cw#>BURo$58JZaq1R2UrQ(h4sXA_4#i~=@rp-ipG>pPp-2!%ae`MQoF z18DaZ#b%F-!X|qeb1L`0bUD30=gFHn#RTQe@}l3K=*M3|b|4$!95Qit8{aunxndJd zGAwv5a=!n#&ByCuHN;oNUKi=6(#5MWTYtvLwTptQ#IIdgHiSImVD%f9+KmqwRKLTQ z3o|b5>43xyzp+tU?olwmOBuoUSB7IAZ_EUqTUXfnsI)gks7fjp=W9ZQI<1Ub0T z@;H?j`p(f5#KN5})JLuK_E)GLIQMP<85ZL`Rh5&T4hX2*uXRtGRO+<|CLhK_*5-GjHdSRXT=9DK zu{aa_J$K`zoS2qtr6ygyZy|5?*zc++j?sSe&_@I+(C5q)ZZah16ymm19}ZnaVX{eS z6X?gha8e79+O^*X?9FLeXiOn_6^bUI>_wG23$Jz&OSeO~Lwlm{y$$6(Og6*2Qy-8Y zO?BJtbP(5@fu&k0O4r29kNZY4bUxPR;U*}#I8IrvgOnTAW0_(V$ zKNizd9kJbwlBHcQ3LHd}W*{IGo8(0SaR4qvS$6^Tcuhv7G6A{+8rAn!I26@>H6ZDq^_K;xz(Y0`{{2>|Z$CYBXAZSK zf^4~LFc7}aDTE%}%jhui9&$UR(m^CarNliDLe!~Ez6QeB1u+fkEy-gLb|O{Mu(_o%$7v%&I*JS zJqSk8-Jr7xwpTitJOYnE1hX@57EEe-M@T!nCp#?;+>NYLi>)S;9)?eKg7VzqsaUR|w3e%1B?5*8$+h-{)RCncay>|I?UMOcHADrj>uS4R=<4$X5^iklaI{ zLL&X#Lvg(6A2=d!I8yaZ=%T-ZMikA?`|bojc#mYqhSCWfuoAGtLadLZ;%R6<;8#@f zqNU%SRcx+jf5Kid?gkLw6)eoWt7G$b{-F?#uCHyIS2#3wOc*YU@i}_J84p)>NF*`o z*F>s+7fJl2nn1?DiLbAEkNI%1Cr^R$cN-Z|@Q5!}Gbw{Rb0?5(dzSUIJfvycPS?fA zkwQpA!~b%*7*)+Kw_{l?`eA--^*Zyz?*JG1K6}aQyVRA%d>hsui8J82SdT|BI)#Pi(VMI!_{)04bm0}O*hC+6}2mC6aM zaMEpgfUHSS%WhCqbycoP4bOxS1+Vq!=RCI5bL|36YW~wI+RnT_cQ0-_ow4_PjLVFJ zR2N+@DqJ{CUX{=Cj}fZc(^$UNRp!d4Th^@s1|B27-pM)AOd+B`BIcgs+n~6WErR!<1aSj&ea%`CI$5bP_;OY#n+H=AdMa~-^ z78Dc&*$g5eND-)b4PH4k)MTW%BpyH_?FeR;Hdqi6{rh;;+Rf>Uwz!YFAF+o@^ zif;M>7o*5(9zR1^9-y}`zQ-XXVAD;wTTL?BAL$k1c3oV!US%b~DR>(f@g%0Yg66*& z*L$JcY!X>}OD3lwW&MEL?c=tr`|Q$gcd0poG9J)!D!Nn&wsM)trfQO%2Q${`W+>>M zHwLtXM5ifEHh041MUKoH%Y08)_HrMl?fw1zr>d3Z;Cvo7l`FT_`vorXnefRbE&-8(rL>RZP&QkN+50*A8`qDP2BdJ>(+YzEZ_cgEc~@Rg6pS-`+$?0XE!z z1DU&XKC2}FIR(Y{mmdiuudl{&D*c#Si@d9WYJ!Dc7jc&a|0nPSJ5hZFq%9Q|5}+_r zNgHyWl>;4(=6aorTYO~g8Abn4@mY^zmEM{gTCoQF6Eyns@+SS92#z!R7%ypRc03V1 z-J96x57e%;0W}a|F!BcUU!Mm&2TBB<17_4NQa(QN(Kwmgm~SP!BtAdrFVq789m=s; zZ&lb=YH=6TD%=-p0wbIXqMP|?jhC8jK3O%9qbSty<<1JHvyAqmuR1}UpEgl_m*}*- z)afHOyho%QuAa>rAh4t0f4jv-Ip)3*p%43vLS_zg6L0bx&^Ge{WYWguPf|-&0rqPy z5zh8Cgj!bFI>SrGu|S_2`wHEmF?k23I5}9i+=txC%4+XN%u{q~lDmMGoN=?sIj4Yo zqekp|#k5<}F6X#ULx}HPs6c!|=^@B)ccKhd`vcCT>>VpH&*Th2MjI%NaA$BcX+tr< zlutKW12d}6MYysr?|OlZTa<&KQ5s%6?n&nwakE_{c^R(SZToY&{a#z@i9x1#nG6Eq zI@bMhvBhSN<6(I(Lx!k1!^%ivTN=T{NKn~2a=B|aAh}Y(~XO-_gdM*ueyq_F~u!d13$Q zQHTO?CuDv!x=Vi@oG@4LU=AcNzY94~GSzApwZg!tZdw?^UE@6-w9hDoKRdrRR!h}6 zKGWK<6x8IDn9)e031yTP$;8r2o;pw_LzcSj3gncjXT{+P)UJPawklHL;Uc(RG*H)< z92hR<<9VdwTU~7LBp3@0B^Q;{1ML!_P6&Ca1`$?@Zw%h8%5icOjPVluV_*V}XjaF^ zO8AQJ67%gvLdJOlAa2(eoy+9t?)tgv!xtHvv)k|QWVC6w>2(ED`0L??52ty^-5D)T zJ|dtcr76Rp0wHCm#mVuWE2hHVzr{vTNHbnL)~<%M4GNn)5-5{LAr!tdE!nh+Q8Yda z5)l^rEa@B-=nZUoLJW?A1IkZbwl9FMyE!`_!s0fs>U$_4h*3z!m(ZM@YX~(^B~S}x zDJ2e8#!7N)FCir}gTN&61&g9$sskfe-0H02UZqI`4 zH)CDy4njMWye2|nFanw4`v>&j5p|VAY1Yh2yc?`Q6w3AU3>7d|6o$mx_}mb%dM5-S zjrcP&KreJ=3ELznGc>6@r`_HGMFO(UmR|#vs>$i$4BmkE&Z7o`{q#x+DNi011q8nH z9Jib0UDFWwfD(Er)skET1Kp@H+ieH@#>**E&vk=l4;X+HcL&vodgdY$5~KyfI28-+ z;ms;}C4A;vr2;?~)@!abqB_{wbUb~OjHF_C&v*cWqf z)@e=!<98MjfFv^UnP;THU+J4$%)hO#OtcMgVJbJR8vtOz3~pZ1x2TIsA6=;9`f? zab?pDsig5kLCXzr+hzT0qYoYV<{04o7BpXTCLwPD5(^Xk@%ZJq6?50P1 z1D~CUiPcEl1SyCFRI()3UEXhm$e2?n#` z6~&PV<(06uU&ZP}kb6HaF7D>B&S5mN6@hp<)TuzbV-?Jh=Yd-j#CH+`v358X1hm|T zU_X~pau|#~FSJ06P7Z_wS1iLJ0JyemPK=sGEMY&b9mMOej*87R)@9dz2!tp=&v+IR zfO^5wu8uu`8EJhD>WJ6))fZg#mtCPf^O&xP#ZC!5^R>Q8 zZ`(DI<=u#KexDNnGp2iX%4m!EIP7{+&3s78-;T_tkDiFl`dp$n{Jx;QfL^zhlIFI6 zZtEitYOO-S0xfM&bjU_F%#p=O31b5dJMwvMz`5$s0}2IBSlfi`G}Fhdkv9*_vY@(? z2Stguh8v)X=9%s43#EI)&gU*+HmB8JU)&w)AtN<6*|FEcK)86)T}RJ*J(G&`SoN0p zBHB(U;^xA3W)cA(tCaN%)Wn2#7cnI9XBiB~Y=r%vP^)FuS+-uzZ#bLYZ1|%k;K%f! zHnc3Uv6thTRONfFV5pPi&;|a=o0LFrY2^6e6|lXybW~$0ENJBS-O1hPc-4Q&mDESG zQR|zsEBXDP$Ml&<7sJf*#y;>bpF_%CQFoQL)oJ7&L}6>P&s>1WVGNb>n43v}B2@b6 z)q*paEfkiN2k#HjXbj@EhIe+DC`Z?2Kw{a5=O7)R17nTLs1Ze(XLS37y8R6RKb1DX z035M!QLt-oa&p9C+grr|eransuu3m@FfRqQ48X80Ax8k@y+Xbq<1|RFR}?U$l9toF zrIXkfcGvn*-*r~IE%%^lNZpz{5)P(!gp3qh9|V25NOi)jQyrQ!K$Z<@!_Fp_4J5sH1^0?IOYs`i?PR-`O)gD*V>59SX8sYXuzrqMCwBp|e6E)7v4%g{_CBBy zbE@bUp`F~UrJ8egmgoo*U8;e3EaUNMr}5PxJa@%SE|qQKaS3uUdtgFWVUXd;c_82x z%PvT8Z#S)ef=+i@z338w^m={oESdfD+3HWzF%QuUaTsS^+Ba;|hiQaj;Kt!B;_S7~ zUoC$DTu+I*)H6e^dH_s5=n2V?IOp~B#N-;{{rcmcZ95Jth2L{!hYOd|9X~40xRgpo z&f8<)5qLuIE(XAkSi?4RF9uWAU1!}UYtysUY?ZQdY^0(7ZSC!T4XSUnydiOb+X;NG zWB+z<#+=Q(XtTB4&0+K~!X=D5=<@u}FIj0itO@8l>bFmAyn!0^v_p$!qAq7n*c=WG zXLlOu(TdXU2sp;SZl=G?5b0mSc$ZCTCd64UuO)xzhlJqBTW5s@R0q5=`}_NMv=?`s zr4{d8)m$sJ4MO|F0%4|xeb*|MplL@A`QW~$sLO3YiTDJGK;t=@wTny++}^elk~_9r zl<4O3RSjddKZOiLs_C2}wHA1Qmk6m0lddCWqIpn;WDsdQ^^lfVcD%2Kcf?~Avk0F# z-~s%dj@P_7#K#i2a%mxt53ngcoZw8~6EnlG$o1_GPX)*#jbQqKE_$zs7u`@bMz_i3 zGR(v(PuJCQEpQ0;gvz+@nQ@^FT|1;XbHvj7O#7LfFDDos3nxfe04E?$eyuYjq{uw! z)fSA!S0?^>I&0&vQbY?WEP#-29vu3X97M1JWWFJ>^=qnITiJ(xVXwgK zLflvRoSgbmK$3Ql@@p+gwJ=EEAHQ?XFk-_sJoR5v3^QMXbj?m?YI@&+cZ-I_VDsAR z!6CTKO)NmY1|D0@JxheFSxjDK-!H;iz!Pt}TANQE%0bM((L4!{Q6@k@`LzG=!dDtb zn6W{pLgMymEh`O6g{PPkyW~@1#@sJod0Tp0z<- zJ8GS#({d;wbK>5@_B1VvDMEm$-yr_+-mgRe*#>bcckS*c#n{!TFm4f&-jcQ(JOm*b zeMn)mdtSPcVy>`tf7sSnZme%3nop|9$87!LqY-$7qvFO3$kbPzmOU{zBBfm>vSQ6H z%NgOVUmRkD`{{fKQp~y#EZk!YKXc-v0^gH;FuZ0T!Ypo*_WTdbf$T*L@Tg5C;9ZDA zLU4qnIl^v_-IRr@<3RRns{QIW{ZU2}Rt77M8UgzYJ(CTy!vs)K%MsF8{$RY9Jpvew z&>+{TS<>wrA>@vU9Z72vS(XBE>wv%|3ynXaLmzF=VT!~OLpwFjiyY6Y4{72dBZ1N^ zN2a8+JmDeDCO=tVF6~FZf=@2XjH~IK30c)w)@uc95k5XAQ8;u|j~%%n7Y3BswJ9mgK z8TRmYx9};4hkv=kobb>tN>8~x>0B{shs6=j z^n0`W*qaWCC2bDGmcmc4iB(Vz#e%PM|I@)GlLW}Ns@QN7F^Z<5gw()IN{-~+5#}|i zl-FvBnk`%WRw@N7S2RALxI*5s{;d-#WgJFkQRBm8>z~fx*U5dd8=i?t%3hm<^?n4R zaY6-NCcUh@crMZNYu(cRLy0l{=+*6>n-*`9950mu`NA}+%_|k@TopUwuUTkcBwA-b zN4Qf;XxP{#7k(s+T?g&tE%Ux@7{XCVJ%>+E z@?~>CEUS8kdKcY_eNl7`*SR{N6_b66?138F4z2ffFQ%ubeRTr5u}~>Xk6iT!OAUV8 ztSJm+svntsZ`QO0hJI&AK&oSuY~segZE0-x!<41Btm2XlJ5Q+kVKFryomA!f#sW%{_qagZSrvE4F>Ji*qNZQ2cG5JN=A(^_Ea?P@JU%YiX^q}Pu ztpiAfn=U?jEvE5dsvwNWQ4oen+T^nZ=HVxI{q~@&P%3I*FWo?vx*-E&GO_Zue4qM6 zLlf&lidU3~2MSjTyiun)R&40#g2|ai*b>pR7Y4~n<3IVaC=9fNl&i=R?KPO#n>8`_ zT2Ffl&<3a8K3FdGave@;j;!9~UNNCr6I19DK>OqZoYb7_%E;^cXRjlH{)NF^X|je! z7x6h6C^$PN1Y_W8*OE&IVFA9=Tx&ZQ*H z{CY&>kqA$4`9A1a9cPQzmV^HcvLHUU*tYC?O6Ym^iWnl0lnHX2usjHLEbXuW;5dG^B=C6$zmM5?LR#OPH zY+=IxI@Zr6^aJAPO5>Kn?vu;xg$eo|Z=-=1FuZmjak%E!p8CkVVjn)D>N8kHsjlOW zzcc#1sO#Gns7X>(4hulfX=-#(I#D(;r$?BcLRl&jhL85io`t#s(VtW;F2l03fK$kv zBdq<~X#C8A$%ZY0yGhbEJtV(#BVUDHyMq6tMmO~>J%23J3suga0R7p+obURLqI_TL z!$efD!?UyI4zU0B?wjC?>-Bb$8`H}!g>%`FHl^s1HW}S=QO zp#2m!EhHab_823XymGaS!kKkAPIurdEXwioLMIfE{VQJT*Cz}=mi{)7C+&Ob4;LBJ zbC_wrJupM-HUx3vq@(U&)9Siv@*n)$j--`Gi3 zhy2;7oWj;J%UR zAZ%NaM%si=*1%18#1)!O>Ech02}=UV2<5A#O-^&c&7NRl;_>D(V#4!RH*bWtYDu$K zrOEJ4(1^rnDFali4jx7XZ+RF zsjxcoAhAK2SVt;vNCVi(g^w-IZVP+88HA~6IGbh+fv2n%%v+UIyP5&b5!YYpb~BPTg^{!I^?CrG}Yxz2BV9aFcXn&mmHLJu<7Qnj&o;0|T257@iRiSe`^97n8Yuz0I;z3Di4wPK{ z`|i2U17wKm_Ho<&lRz#CaZ+-tg@gbj4d6*`u)pfKwo3+SZ_ajYP)yQ`2ys-L$wG(~ zIC5RnyJkM+A>rNJW(EdjJ=FHs5&-c_aF@mvAI{=NJ_9H=6|HjIdi=eCEf!acO4Roc50sF>?&7o zgv!)Fv*3U;K%=|>xu3lE1HhF;W@fr~34CGGw;rDRGE{!Fg|9|`ZwZt?y44){gu{ow zB>wpUU}RPL6$u(*wkW^>N%T{f{Dp6(K-mOnJ(I&7c{5WZ+IL-GGH6iP0F@+e^6d_# zgG1#6u~#iOoVoT~KiLgr6Do@wg@3qsi;FRB!$Jg5K#&;DeXKOpu<2Vg*Og}p0MM0J zhnIWQJG_0c_n>*OtDhX3-x4r{C838O!zj2I#@N6e1#W+FZeW*9=&2g7Qh{GJ7W!ltHMFj#a;KVvm!%KzZ+^4 zOu(I?4-nARv5#XYM5;ECNA_Tdegy~+4DZ@LyldxvEyyj!a69KxacvG1s^W^1_LN*o z!*a*T$M+yC-InD97lyb%$>02S7^RES{z^j3c3 zMIx&KD%4otbe`4UTL45OsiD-|sa3FqX?YK(g~ukpksxX$FiV{I*t{LsGR2gtB!RoP5kO-~G8F7dQ>f2r$pOkEBl`Z@rwy zT-tS<8Vb`+02W-KZP#90FW?KP6qQ#Tifeq`u&Mz_a&`MSR>ykwn4}V(c0hEQCUrmU z0+zv+{2g^#0)8KEZ%H}p$bly{n+0s9(~^SyXh8@c(^-{%hU8&PQywLH z`8G@8*h^dGq~~PQ{M1IT^o}6s#x(PWB*fc$0g_(44wNJjvm=^jJ;(5wSy2CvS5r3~ zxj{Eg_#i+PdOvM<{`^77KeuoYmX_6;Tq5J4=j}tg79z9+#0j^smlTfVvvr}i(;Jwz ztSN(&2>?z#Sj%ue5?N}k{llrit5~;EOyna&w^Zk?Be{PrUh%mQG0MQqUZH&el-*{( zm?+ZIFZp9dx5648j8zG6z^k z79aJs=fHg#2JPP~Lw-C&B;N}*DoLCLddGYnzjGzmKSCcM7;DbUS~d3pkTRLDN@kKR zpY22k9j_2F!!vGYx`+vFv#(Fkb7n7RFqVQM>*sMbh6ipika=|4=7%b!mTaDYI=hlX zzPY#m22o&oWF;cd@XHVYSf&uW>8J+c&0BYgC>(Up= z-&(~$dv*6)^Jie8f++d49p0K*1NDF9hD?6+!6EDNi1&9#&2Qhj*7}2<7c1TS2E!(x z+^um02v>8_>1Fb*fTm|x_byEXEcSLN5lEHi_T4C#8c{;<#HJCAgUQ1)f~PXTN_;5H z9&a>r-dH3WelVEMlbZ3yskvNb!3*f9bm@EqT3#z-f#~wQJMmec6~z!k09(MeL%*|F zV|P-9IuDC8l;XXB$Ff;8YrB}Xd27$Qa*n3=lX9!1Q`BfuWk5Cpb2s?PfXjQN{a;Ts zyfW~KnCP}0zvDU%9s;9Ci+vUGr9mGwgWXdid9Zueyt5d103%Y!wcZZ+sb({jj0msP z&+upUW<3nh!suhhO(dx({=Srnbp~~ zOK4a$?D=7?$yzT4E9z9uD^IzAe$|K8%$^6{x!2`4G?;p8ZQ%Zz)q#D=4gNx}G3;_u z5b?tc!YIUW;oUJYw@4>4F-B5_cF;+i4@Dy=ehTDkE})*SbGbVh5~;mZ0Z61 z+qBZ*V{=BJgJBaK#v#WpCO*!%z3oI0m6Qlg2O!o2lDl&0zM!Tb!d>@9`0Rd#AXSvs zS{uX1#iz-zEDK&#%c$B(53!I=@KsxZf=``(>~gjnMWLcWC}9{kXQ5;LCa7}L9VC#p zh}RXmp9Q>{XylqHz&d%Q)@nsJM~<#yR|=63&fj6$3?WNCv6ZpuKMN+`&P0-NCk@fR z1cItlWZNg=K@V-&*x1;?BvSH?G5V`NRwF=j)tQ6^0N*TCW7&g@r8OzpWf2(Xxcf$K z&w2{DE8>5x`f}s8(}xaT)NRFvu7h%bn7G<_)@C7r`#3z4`>|N#JMK z4NP~u1F(h^Aeoo4t3UVYw`kV)&qqefXkSfqkB}|^M34gbLCw(Ia@Sk-v+UOhZzppS zc?|6M$2GH@Y(5SW32g2ukFRdrB?HGghiJiK`s1|wd>F2Od75EuI6xb%ghB((*FpgV zcS+`|HfP>-)Lz4M(&yZWw-QTcQfeWDOM6qs4Xf!W_MQ|DjeCwo9nzTn;6gSPQvgku z8%fy%GKf8H55>h@6|8IX1)aiEb;1s}7cgXb1IJlCa_Xihhc@qOUKs#~UDXS5s6B0S z1$2RkQgs-77)kftG4Q1V+$T+cY`RYCQxe#JC{<(F=KM+#ZnL@EHy2+%C7lWxmO#ul zh&ZAw&e;qA`HVS0yDUffjh0M@*U!~2TN{>6wjqd-=g2s~bJkW8k%3#hv^Mbl*Y<=B zYE0?pWGP^OQ7RZYM*iU>sJ_)l?-@jhqRuXyUDs}=oe{Go0ur~*OxNYyQ}_hL*#nnq z)*)y4Q}q!QPNubz1*)AW^W8ZOmI2(0XgxrTDM^_m`ob}1`Lr`Y+t%uY?JLf9;GLDZ zALn7ofRJmuVXDrlLzj7+8CrSNHSdJQ`2I20kdiHiCl0_fOGM(Ypwe+av~0Qjo7R~wKVW%;z-GpRi6poSW1$SJO>O#>&f0^=%? zcZ}o={LcnP0`1EAm(s}1AexjgjBG95?|7;X5gxBc!+lqmUy~l!_}D?BX_&oUvq$fpkSCKU0HT`j0>&DFptzTF zVV&P*rr&iB*f3okwHG+xp#5kKbRGJY*Y3el3_MTeWzn%|TEXL%pK{>QTZrkr|2Ufc z6TA;uHpmkjQaloRw$78j=qfXPp%3GcF21reLs#013!|R{9Bzb%p|B6cL<}D{7H#xk zLGGE7s!-GNP#a)7m_%_JHvw=q59nsv&o4kQ&W$Mzs~PYZ88goe-E-w9ioSI$KOcnD zt{&i+YPJ`HvfyT=JKNby?}{hC$_5PcHEUFQJSfuesK!+!;k#pW5oYQmSyg~Ef&a8- z3fJHzT;7x@VyH#@5C#YONx~Sd74)x(tj)U)*#I2|G3%4}8o+!99DBaqvy^G+76U&U z;9?#eVBwW7RP;r@=hZ+_D;*7#0@;Xplt9xfpa$k8c&@&295j`M@|TB@rM$9wfdkzU z28k!3#CmaXs8e_I0~4&9?z~@Ora>CUea&F0Gp=of10(@t z3vYLV>EiOzOg8Q;Y(^f@v$k2wt`6M7EI^)i9;vCTOXu176vVTX)QSpsm+p8Y#(^4- zR&$VF3H6wBW&l|{1i)DOih)}>Reqzrn1Q+lJdlyX!u=qYw(&g^)3Ic}6-T?jhGF(F zBeG@ikhRU%o1kUJPY(63Q%Z(^eESxGX&v{>oUpNjzDO6bhWgx`S<=z`Np$pUxBA%o z@L!@@`>JQ#v{If>8QHCh+HI$;d>?a`t3U;7=hU7rr8~+mK)SLs!C-w6WFDm_hT&*u z@fCZ2DT$^7R266d_k7e+seQ-toO+Xa4%J$@Jofm02+}igDlz)bhz$ijdJo<+X4AK~syaoy z|5WQ~`PwbzBfeF|UU2)K^}N)e`^{L;azmNCSBtcwmp$4Kz_BEoxZMEF=Q597kD0n< z2CbVxc*%!Jm?z)VuR#O^=4j>I8peUIauKw(L?>+AhQQf7czo;=1=Z`OMBQeckF|s2FmURtgORq+ls{C@sAYvyAg91$kupS7gym1xq+=Mv_B$A?a10V)^n^9v zhtAJ*LpPI|uvh(whmB&`G79LlQ3K@yWYI+HxO@YF=VQ!zk$=f{1KMN_GuTycMgV0^ z7yAce8^nV&8>GbeAmu(Wi4sRKfPU^|IoK693f!d_L5X?jc3gQ7EiwVBZ3<`p1Jnsv z{{@6UV1Zn|Q_@%c76_Yk#~zI!1Q_%G&657h*3;ooxAe6m+`< z5Psc5r>~j>TBv~&`eTK;vWAYTc6KIh^DRSXZ&RHEj_}^%$*jVcdAV~W@!;gD6cH9i zE${@mb!4cprdIL&p z`PuvzHwFi9j+;fvMD&`p-IReNLOSVgPBD9Nw1M@%Va83h`cG@aHIIy^AxcD?jZD(TRI+F8b3bLObtlLk@qORe^2G2!;SG@66`Vjyk|ygG#@0j9$~1`BpJy}zffY2<%6&vpo)KtrgEMI?Q&L^iH{-9 zgAn|#z}WWvR8YSY$^l7_*FP*9seTXgcBxK%qSpNcAx|LkFmwNy@=L zbC#Fcvw~Y4XGf<_&c&%}$#xc3?sK6%m3WH>us+LZC!vLhLOQWB`=9zQ-$og`4)x3VJg z=Ua>BKbqmmsTvF>Ce`_);umHZId@*q zt7Y1=S)$&YXU$>uB2)hByO-Tp;8-JWUR1p)Wq)S{!(qF($9GBwZ%(TzJ{@73$|b2k zS2sI1p*278DXZVPHP5B3+c~t{{lvD^)-RJ&EoL_~+cK!Aqo5H)n0jpnj0Ev%&ST5i zI}Q#}+YqS3SZzjAr9C~T7?_xNLe4LO-1WH^^MF3H{|%kF&!u3Z_NxIWI1Xzis zCLJNa46*XFg)kjfUQwaSz{*;-QyopB7M5uX_Y6Czt!HWfzt3u&Q~Zb05oq>C#E0J^Ky@V!n)G_J@u+CsGcs<2q?SK~{E z0j#sq{ik;#jY|QpZspj4zZVDm_J_%^FfP4%^{Nq5G{9mhOE&wB3KY(`XofSti-E~K zg(dFqz3fPLBTxI+i+?X#_^YMM4A&?um-qGc^@Olfslx%6g(hX+e1XP{gV3A{swte4 zbw5~- z5p`KXk1%Y7nxtbCl+#;PH=bi;WTeW=%bRV!k&4?ltQ>z}+qq8iUjEsftbi}_pX?=P z`zp@Bdd$B4V#yUYKM-U2vVoO#Z9yD)PHrsD!qQza+jdQ{ z!;@T#!oYx2XUSGZpFHc%GMOaF20tl8;xV0qi?Gn2 zPMYb}b-C@ZQntfU*egV`F65{C$HmX*R8~u@vi}q#G8j&>Ee=}DF`Fso*XfAWlN8i7 zq6^;r+pQ#k3s*1wI|B{cqD^=*U{Ys2bKd$ck>UZ`5bRx!!NcQhE*A`uh49c!Q4 z{?DKMT_+azw-ET+i^2LR${t2`5F_P{xyAL98H+hyTQ9ncg!=|CKgrs?BrqmqBD^J}^NUl_hr$e|19;}Js}AOwrq zSicf+5^Sk_=3VIL??HaO>Vg|GVr=210-{@$f7hv_0NFK;vje1tz^Wo> z0@RwFo7S8HnKCA(>_<2u8L_v2SR#9yxJQ7jkJm(-GX zQx5{x(>IsxsG!iyyWX*E@WSS$Ocm|RXc@Q(3~4?BX9po8ce#6wFUu2KNg~M=me9bR z3d&#p3`}~M32YbXhiSyFA{bFcJ9=bm-MHES;V((+AKbKCXb5h*1?nZ_B(xY z{sr|s&HT%={_zhk0AKg}F&d^oQI>ms zY*$XDZsa=>7Jx~2&&F~ECG8~0iuTEUgt-!CkMDcaF&o5xbTgkTf4rV{w zRQ+iZTNW-#XhmDo+I$6OkQ+FJhO48ENpRqw*+f-!v=i#B86+R4U|lhjFAFnsuvnP2 zp`e*X-S@z75fEp^6COKkhdH!IMs)PuEo4>+dENcv;s{Vd#2;sEA=|$m6fC^G`=IC@ zSVreHk40>f4ch?^@n*&cla`vWmR=t|-TfODCSf;}jae@6NRZ;EFe$iQXJqP4N2KmA zymudCZ-~!d1k_^OU7-d)5%-lp@XH0R1i8l#w>}3Ufs^>fFifMKSR&kV5-b*t@re-N z{=b2Tl>Ayr_#X^qxBF4-pQkXN34?QHk+ZQE3iuGl;isDHc97I)erhU5(aGJ|S4$qZ zQ^(*RPKb9XqCixXtt1?gjBu|VY`w(f*?L%l^#AAK76Ec$EfnAHBpV6$JfLRj1@>81 z9!83Fn2{7W{9`42A9fd56Ahq-K~C@5!>Q819@gFolgcL_5^`e!VF3385c~ANgnaqK z1<%upGze-UIi#bpcZZ$++Em?nG#2QE^( zq7)vg82Wh{zFA@Dir1J^^Sz?S`~6`_fB*M?VI%wA-`>)ey&~EA1NM6Yoa+vop6l1I zZKj%gaVMEX>>9D3DIlpY70!Rj_i;KG7!UO2Y6+ zaIE&(ikwioSLB?@#;habnvDb2atk{0XvwdIWSDu zdyi?s2bBS>FR5tnV5WZzHwGaFcAn3lYnFlkY^b^~^5zzl^L zbk4jC_u94u-_{VeYbnp;jsJS{f7r@mFWAg7eJAP34~spLdiS~9!giJ)=wA#|(JEjj zO7MSVPr>j4-aTi5ugW=Dlr{KTnEp0CztZF(nw8I(R=y@tkHr9@^^whlr_a2;ffEc1 z-_&Ajn6Wi5)+dOX?8R`b1ga_S`rUl_p+$A8ez}co&??~`RaZy3@g#U9aIOO=m~bNX z>Z5U#MGq_`AGg1-2K4Wg)E^^Eyh!qh^zUp z4WJ_2UGwvbcaxwz1jaOz0Y~V+Hvfkp&0Bm!cR>-97ocBUWx@Y%maG^wiOq#>d`vRH z^-tX<(i~nvFDb^Qf&be|3oC_nYZRBAYy#DgQlgFlCzu01&6lj$ zt@*oCOx{L6yy!tUVPge9Iq6Y>QJJ>+5`WABDAhPZ=eEDD1Y)t^hj${MscfozFh%+` zuPsR~yAj6zc4HyZ-;1_P8 zLd1aRiz(9MlhWlW-}AW{@J6K$&gO`U%)kjy6E`Qquzzqr@=ra2T@b#emps*em^rw+ zE?49;FC<|x1plOuLeuw1AuKUf6xi7+>Z!H<{BTXd%W2Q?&68T4AsFWYa zLD0tyHB7@pye4h%ou21#JyaH}@ZF{R$Kmm95lTRTW8jZ+4btxubl`sDhnuu6!ok63 z*kB&CfUp&&@UH&JDu{|to`Zo~`s9u;G4S~IFh5#{kJ0_#8_0?kXZ+fBT3B9-4(;>0 zqX<(JSuG5Lw|n87<1_6X2!`)Grw4GR^qv`$zCIBlp*5afUamQeyyRj0@ifBUMZ#?( z|M)IC`vDGTA+C!FS7+coy3$1)_nniShiCp`Vr2vmvJRQ8?4Ta zU?Lk|fmB*L9f~)jw9=a{{An>oNKAtA$Og0Pn2CSxJu8*tp;Y z#J66s_y94UP)=&%4#-L%XLy$@FJ>W5!N+@}@67&YBxEro`}*vnyQEAjxp?^nVx`GjyzPqPQre`n(JhdJOfp=2rWrNiwMBRQ zxq$Ezv#m2slI$?JnOGU&-#_w`=_3z6)F{DH6*gdH^6MrI0cYCL@|5R7yxS)V$qk@F z19P2LV2t@qMO3{lNs`=2zQd0%)*+1lMM1K|xAiOg3P%2bx^3=pj#DWqOv>`e7f4Ped;&|d;{esu|M2N)`gmSRs*8i`Q zMgLh~yY9q0(BP0STaEnP04>wV2OD3{p(7l20Va!+FO!307?-1jQblfq;}BR9R}%}) z@9qR5RsK~ZCD~t+Ay!y>>3$(f5g-Jbr~v>dPKQQ6&+-lyh?JDe>UIrZR=EIeP!c;c zsK466S*!q^SsX(?ut>+`V|2PKdRgx-Anb?7`Kna$yKp<~7zHXtKLxZipjDe`QH@=Z zJ1H|3Fzb4dByH!naz0Rh>fzN~==i!$XZXr7rA+DeVjZ<|3AD}?E5KgraBCBzWt_4w zW*DLt)tyDMmB0_F1>!{CQ|~P+IuvB<{+Ejn8Yf$`oZJ26XihKt zLpiMzO4ZiT?!puCtfxiWi&^MfYKcE%1iu^b>f4aO4SF!F3Vp|~{TgV zAHdVlJ^yo@JZPjD_&TPPOXS~0>&}{@z;?|z0UInNKm!6UUwRO4u93w@Ek;%djko>* z^3#4z>-=~pD@?cfynXwYcK(795l@28{Ljf}tKcOdLmrh|SOq4Y54j6qa~M64HSs-t zkoa|R466Kf&PLl;?t1pP5=boH!|>FBh(-L+#MbQN?2f<_{&wm{+!nH z=1*IOy)&>mZyt8_+W;I?Yar!%7I@Q(`UHZk2+|L8feUhCB+&Z9QMK|ceEXj#yZvE| zB1;AnAkzgC4M0d{oMvE2-u~CilZK-w{RP02b*Ln3)1i5`Sm`}!NgG#aM-iI4pDSct z96YCIITE0(-w~G9x}6Y9YEw&toEj9jj=-TE9MnbXpg>ECKPF_seW3Y+krmvJ?-);7 zhLh;)Y>RtHcHsU#Cj^RR`4#W6Ny$C;@rIz5v!Ib5e_><9!Qk4_bv6UQ-k<}9yhfD? zFw?1l>}yq42i}i0qdBopfeO^UC{tLp2;i<8T+7rNW%!;P`xrPwV8Hz(SnYPq>C(HtshoM#}H!*Iu~rC&#M zcnnY-$iO0Yt$)Q8N{yr>qgm0c_LX`-Pg~g^pL5o!fLG^wX6P#kDS&{tgZjI}WXHyN z22`0)tiwK^pX->RS?T`sVXXX81?M}Q^;sV@0dZhD0ch_knfe1cAb9x++JcYm(m=N}1F^xBDkf94oF16L zxlbA8?s01rLi)zR>P3BacLm0oN@lgw?5>&iRbJQ*x6@*FG-B7v;ka_pnzAvU5q^I& zbjI*f+nKk0ckSLp+DKpvGHhFzX?b@Zn#9CXa&VaiTcl||b_}-6Jl%H}0(UW%DtI3pP@7M z?u0(NMb5F59r{mVWbDWNXsS?j>YBe9Dt}3Y8T-At78kv#6 z@}oLb=8p>&=(!!VORA&vfQ@d41ySuLo*l=y=z8dMb;O$6QLDOViaciICv)kuX&=b*@;BDRx0Fo2nl7YYzY4lB zSeHvrq(~XrBVRwY_?ozx{{O#Z1i;~ZnGmyY^jNMl{ufhsw)x}(8;wdK|ykmE^g-P?5u zTTsNiw)6{al+6BfGC6cMCVUp7;D<+GMipFz4&_>Kg1eSIz=;_P`zNvr_d?&5MI*cV0)tGF?;IpsVE5o@<#l zS#pZHKzaOzNu$fK(Q5{tyD`|I#Xrm-y1kx3BMY=eOvCT-u}lHu?^xe3^u>;_kQ^Ri z$jye1?0Gmr@~OH`ME@w|EVcZW#mvaG-EPsCqEzGp%4T_B{F!sl z5LM%WRJ^52LBb$;vAzah8p8v#+AXe{JF@p=fb`l&>J4C{$>(e)G{nNXo?E+ zNIqO6cL(lWcx(yR3Q1otj)%_FPqsW~$auSt`C@wZSgan5|4LM135f zgt+=Db2{JSNrwA7FV=w%C14Y>{@C%v&kBXavjonN67SIc{NvtdcwT!yX^A@T49*+o z4R#PIBwv@C3+Blr&3M-zW$X3IfR&AK_uVRnO>jE)UktudR&Y{W1 zQ_g|vg6Bl`#PiE9Gp9zny`a03g+4E+xwPd%r@(sJ<=Q|9`+Bx&8VBApe-;X4WXl+< zGM##*+)K)#Q>7+MGA>|_P4`?p4Ij~9!&;tH*D^DmBY{Im_9EI=;GZ*hU5jT&CgJ5V zap2iwd&b634M1b$6`-okxx%PRM^v(E&ah)H%)c$X>q|qqh}(1cx#_a}FPV6d0xX+r z26|kF)>~Ef2SNuOV=?U9-PAgs=DDKEE4m8YQ#0@3}g-LWMOmE|BGsF>eIE-k9ex%=Koo{ZCX9=4#NX;I;O$p z+52H4FoAeX{2;k+%yy)*9=T-J_YzasJ`xfT*0w-UG7uNh0Q+HkF?@Xf_z9Emd8oe{ z7s6Spovtf|mORuyWjUjk&v40m_v2|tP#ip}Q`4{3Zz7g-b4THA*0zy*6Fal?pF+<& zuZ=VBmI@zHq4RA9$);SCG6Z&UM*iT;2d-UIOE);3%rikj3?2b$_4N6f@_FjSH)Dgh zjwn+N`BOfrwT^^@oRvNqUF7oodSLU=jrnda5tsl^7xv)UH3V++5iDXrwXjs5gK_cJHp zW-A4_3h7ru@0_-vkFzwO{bb-~WDPdWs&D-MDtB%^jfAkS5rz#1T^UDtb*B_L?KNAF zB>gEMJ?nADkoTnidvuM0oWbv|{}g0Wxo6{4vHTvl7Tc_XXCp5bt=eh-98EQ-j&%mb z7t!krJbm|P^=#2GwhlADF@Dfc)2;G}4^dCYZryk?=|w&cP&~oAM7Uq~N@-?!^(zOc zdz8RQ7jd_qWZglI7=o^WHIGg&fxNw~wOK#3h)Dq_z9Bp0I+!2sVA)EmJNa#tS3N3Y z$xHvQ3mF}j6aiY@7hhg1m8qb$_a;O!oV^mitni$!gLizHd$(lU{*~8KbD}?7-@8J- z6-lIqhL74EUOHtmY?B1%oSCMPkHr~!czS|!!|T6uYXZG)M9f*?VZaxz04=$LdB5qATPrp|{b>_m9HP~U$G0G5&cz*$sW+=3LLF@RV~*8XPXKpL2}JklZKM84FWO8g>ToL zhxD9y{g?x^jcG) z_E|$DcYATfJr^DpkC|b1PmY^f)S(6MPE%La;98yhtec`@Mt{Qo(4}~Sdipe5BXoRX z(s61=3kiki%J9(18Spt)3XZC`^(``kW6{|C#HULfzRT*4+Z`-B^uU37!7(qz9Ub=f z4YHPkAJ&|&gr-u%GNbdb$sDn5qC%=f#ocwj$3c9l{^a?Urd=>8Wx1(!I>DKRPF|1d z#%kC$;JDw7?Q7>Sl^T^jBc5lQ3&)TQ0_8M(<5ufW5~JowF<(Hdyxg*~dL{J-X3%pishQ z5M@G;z8up~h%Sku#ZG7^i*>l6>3XtS_KSH4q3xN!L+MVfo7^?uJ-<20hsdg8|Ju&! zB*3gIjed}EA#T$nytH!8&jykXJcWLL!Q0mD+6A3ABMdoEpb@lr-aoP{k_IuQ(3oC3 z$T@hPdES5Grmwbfpi%hDL>RbWwbqsUxoWcNkL5(7{3wfKy&f7C)6BL<)*tpUTdYH| zA*GLa;9g=+?^E9h+#>7>XEy!Eyt?k9gD&FRC1OA#Vy)f84i;y~CR{*Is)j%N&#Bgl zY|;E2mD=~-UV_b;sH6ZoD;J@Gt+2yKOGk~AQ-?GXPVPo8?O28hz@hx-S@N#mOnn3@ z1681QtGiU!u-fHOG48rYR<2f;jkpBIdynb6WG8! zNL#RAm*;8@K$L4!JvOG2$ADQ6@`1vx&S2kAk>kk3u@?61QYUa&YkV%pZ@0|s4PUDZ z&cSCmeU|Sqc~fd1&akr?4zD8s>%SQb>7#btxlUakfygu_zOs}^TAsGGsH=4;4itn8 zYxRU@!L$joFv}&?3@+U@xw{_Z4tB(^K3_d1AX@9iVX%Dy{DsKC9od#lIb2$&69WW& zv|D^7`kr{krwT=6L(qg8^rCOn$vsO*{wXyy$^LMTzJ3@;gCJv(#4mCl&SO<9k{=Fe zx&PzDPgoI!;2nBhJ*DM(gAl{BF9`{cI_MxK)X)28>|KGamo%hhmMC5WCsgsACCW#I zD?@Ae_iIC!aouy$4qHB`m~*{+%osD^yd` zb+m%|WQphV!WS*j<@3f4=+`4Hh3gWs6ZzTE+Wu_lqlVM7OPSrtkW9`LI=})__gE~zbX0fS4@oOdL&=(u_ zukWLKzDlAeETHRcAn-~cTlNhD|8OgLJk}?m*4^sJu4z^Au!17*Rvy(|CH0G^SPCgWG0|C)-zfhzW{pWeFVZGjW3^fJpa&GU7j*shITV6ZRy*G$|gU8_1d-@!W5gRFpmq&J)w8s0w z+CrZ0u8-d4;DBzY1qrZjye1df?H}aWIHhojkf5fn`I!Hq&IJxI{pFv$ zb!Q$Jdt8(HtnfO1Lm|E35R6`s^Lw*D5Adf}=hsP4$?xk&DIejHiA^k;&#{nF^a*sY zk`50s^m%s&$As7vGU|c*Vii5!asGV}Ydl$#9U~Hn26s8$sI~Oz zZnZeQCxnW&2TJsY8KS`+^Ijr@*GF z^`LqsN39T^dg4rraK49C+u-=jNO^=Z;{>B_akM4MwB>DkHgH42G0-R=l4|fV&8f=v z6}ppqF0m&~)9E&Q6JV`0#k557cDSte^%3|~aC`ZLpeP>yBFY6ayMFHAip8yqegavySSfAY}R zbduZb(`QIS+CK%=F0MkZ=ddCb&1bTG+uAgnP)c1{X6i%GN7%Gb0}#YhOxT_1K`_Kv zJg!+P(^21(16uv5LRZnsVV~7iJptqrEy<*n00>1h+*A^pq5TyvitP8lyL05z_>KhO z(Xod2rg%!-kvwCWmy3GHli(|FcVIRZvO8>@P$PScE7+Hi%fJ_7B{`UKL~M4nN{;%z zLnDk=7TM#E#fS<|n)0k!2Bj|*UNT3kcKKc#IhqdVVU`sHXeo}M33w4e{y~;45PqnB z1aVvO#KM%*Rkkc-hnLpS$DwHwafP z&6bT7q~hswH2#s_$@IMI`w4ZZ3cDZK7)dh>2#Wq%<1b+g_EYn4qv9q zJvP*W>U_2IEL_qIITcAVW$SJPt+=50f}vjU%hS5d1nU_+Xm@5O1=WI>>$=vlxHH1` z(W~S|n#w^i^L44-d$c2%JCD-j&DL^({M2KMDy$7an@ORidlMFu2UCdxnz^CZByQKG zJU-2Q4(@g3~3 z>Z;pK(~Q2v@EMMcBS%KBiZpWPhw8f4MC;U~zOL{FAG)<*fsVU3dk(t2ktUY~rYyjz zS-JZyHtGg7*N4V#m9q`s0u0Gs2}p|$<+`?x-1C&dMP1QeBr~2E$$2DzX6^WM+z`o75w zbPacWE1b(I^{M-)nj~~u-e&I`lgRs=gVIiS;o9&y{rV2?Mfh13mxRxe%>+km13F2d zBj4%r6RQHVJgjDwsU)C+-U2Ri-^^xoih|YL-)u&t(qJi2+SRg%9|8}cJa^xdgkYZ+ zk0GHR96^?g&qUtxhI7Qs~ATdIOHUH$nN!BzjH9-n4` z7+<=Kq8>RuXOP_tocMyyv(6IjlzBHa!46z(v{;)R!;b0b@Nvoe^v1D0qo9v9Z@#oc z-sXOjx3cRv@I0KcYjb@wI*B)c`(U+@_lmgVt~|Ai*M01PE{eqh39$Rlkm#^ZAfeLY zLO;NZv!!7p_TvC6;Fkv-6;sV~)@51#7^LI_Kn&=azB}}j2FGby_Ufq0wcX$#Wy=L~ z{adS<)3Yy$JB1WCx4)dPQyi{(;ph=LF_-Pyn7m*=1fjbF#TRN`>w|-+7uy_Sk7{fk zESi4Aumhy8+2XbCTO=1tCv^(CY(%BU-HmAlDd;q8?(>-VdBm|0yRC`sf9J83%>`9L z6{Msd1usWwtg3`6`Nn-X%s_kO#;O@<;DK0oW`XvPOSkX!QIK1}FLuACd0kHzrUMAX z741`g^sb!0e}TJ6SD%jfYWuLqpuBYg&NK_YgtMtA6vK| z8LXW{uaa_Y!{+1Y$URr@7YEJX;*Ob{K~jefz@9{&+k-qfd!uLE1L$sV+Z>?-(#`CU znB$h0J`3+|opl0qnCKb=jHUhO=>4dnem(_e>8!Votjn4me4+DWPowM>zfuQl>nGm} zKMTJRP=2smL&#;tyK>}5%-S~965Z$agODjvn^wEnM2<%Y-ZeI^Pm(FEHJ2loAa z<%K_+V27J%Kg~Iz32^}?#-f>>O_Ki5@U-U6r8Pzi+0qZ}tcgAz7^Dp@6_*M~-bi%t z&$h?V3U@hd*SsZ=$`PLz570d>nAy?3BfWhmV4m%#SI_KJJGPFFP5R`?hTMRKVhdp9 zy`jLBTn=)pml?OPI~@{E-cWWK`)_^&^FATs!I7X2Fy?o1usgZ5LWC-+S0MSNHJ}m1 zB^A3Z5?QQO31JpDPp%U$=VHg$V>SUzQ`_GcI`xG*H5tx63%V~t%9%YM^HJs}pYh?T zNDzr$4wTHxAA1yBP}sj^x5h?rDFqe5U+=9+NuR*I#5Ub=B<8vKiB9Gmr=Ij0Xu{`j zc@IUPmxp>`Gr7I z3k`)O!V{`&FW5PPZjAe7^!J&s(sq7II%DeV`TL zgVkjsV4za^R*#2-d3tJ_lj#;~&xkk<#S&hr8Zlj%PN4P3?L}gElq9x#_fo3K~1@jJ+>S%?mcN9HwYJF_?-9D#Zi0|Zty?mN9V2jzPa$3x|ExH{>3XwcT5QR-KQAZc`D~qvQj`xcU?$_QG$vtd+1A>mgh9o!K`gO5H;Kvg>mRd0P5k| zGw<^Zb`xe5Et}8r4PP@;5s=8shoyGTj;asg_E(8q08pL0I?%1?Wv*4(03nhE*a$eA z@dEl%Z-|+yiF=!Fl(m<#7#isHIw*+XDqz+KorCbCU^tk8I-uY(p{M_dTqhu_JZy0S z!^JkLzrf>}09X4cZ5MGH}=zg*jmA=%j0KFAp40FO-llMV6Ih=vk$-1@TZ z-!Muj7w3j88O$zo5d882EYjCed>09sfR@gHC0zF{%CHvny+oDjNyFe=Hm&~&=q89}<{Yr990mjGCT?`^R%UC-=Gezk(hyKJBp zyzY`H0Gb@DTpt;4EgjI#S*0BYHz2L<75`^ZiK#TxF^kf$#so`O96)_-nU=`=XF)-^ z>@!q8LKc-Z$X`jL+|!V2GD*p$+unWbchwXE6)VK^yRlzg)>hQVBR(;|OLek+!(}$pEyr@6Ww5V$( z`1aGl>XZ2L0)VXAAAz^3Bx&)YnFxtC$2k0P=Ha^%;7b?8P2HnU-AmGFl1ys_&OE?Yeuafq3Jf~z)X_&Pf5z3I$-(|u3gO!)u_GvJ3T6bz zv*q?p%7F|ZZRJ}KO3wwNGm-+M8Vx;$&yJ)}@~*(Wtn=CHpn~>(Kz7>&c?YVA*CdH9 z<3W#rK%4~wE_Xv0ndpOs#Q<0>2Y=e}(EB-72w<=z6HdmlIlz_$D%c&LAw<(`Uqu{(%MbKog)miN&B#W>5Xc4tbf zv$r6^K2RHZk?%mrj`iNYt}=0;z2pLQ01h3;8p!@2{OZHGzB>h+dt580xx#Mt!x}z_i^Am`IsViln1I6NFx8oI z5Pdy!@yklc^rY6oocUL}OF-cjI19F&c4W}G~5vbE6k8Q$4OOIsk~JZ6HfN$L-xcBARCMPRZW}V0B@i<_JD#V zJ3?o_Pj=)lHyH3iB~d+`bC4Mu(*r4x%N-&Q~kSypEraKUwm5ha@Ue%w#9S5j;!mc|WLmdQN9aLKh zXJtGVB@Un1(O0gC~#_a6P&9?-wd7C57Ub(s)R=pC@YTJ$UvnJeu(KSGL zne)GK!jOD&(D4%VJHP}14%Q5BSf9sH{LGd`DTkPd{o`3t+D#uEE6_llXUF|(QeD^_ zDr$fgdI+EjEg^7G5QRz>eje%F`L|K0kXOKik(5F!%3J2b&Az0>YuAF>x^}Oi!Wq(R zxH%^ev8ZF8Q+NEV!J$4z@e`b#JTl)gd9)1W(d}Jbr3YcT$=}scRfPkqf3z|l>pI5C zrisXFWs_dvXEVn<~>;%*ggEQYZ{Z1+RjVz#q)VKCi>6mM8f=L@oGjcNSTJStZhAStVm#mHr=3lnh!l&&%o#E;BInbqozx{#;8q487jItQxb? zlS-~s9G z?7Xz*joq_M;@Eq1iU9rhJ zjE!p#LwPT0D_niXeJd+ku-&;+WyG#Cq-3~99hzLvurOc=em=Coj#}{Z3$0Ku_gi@I z!)!wAkf|(W0+kloN$lEq0z77-QE4Y)A!f)z?k0fEAi+xQZ(_A!q|p6j(n$)>gX~ri zGrOx2sk5BmLy#0)jjl>J>M998p2}MI;-3XMR`dhfU0-LuN=%I8>S43KxJ6Np_N+AT zoTUp_t~y^ZeMhX4vWo!y^ntU>XJyk?9>^vYta~@5pkXfi6291FYZDKjaa%4;H)}IP zd&&9y?Ww2s3-3r@cIT04Zqw$N?yqIf8@@^nCs%iD6nWd$@KvI^t)ZjO|8v;~yJ|bS zBH&7@j4|>keXhe1?W--CtSf>g#OI=?Nf$30WpvzAVG*=0_nn*ItixjBpeIQ??0=@D zq!&0<@L?G!X>KNmvw2BDtT2|^4O1+V z3x=0@E)JcnB|^|NI7!Zh(X51$MGrz_#oFzH`_U{6i14CkK7a7=Q}eop z?!QX+sWe`&c9k@vy~Nwe*It`!wMC@>jA zfd(vaP!a)wVZ;H_Ho<;|XO*qF3WLgQ+@Lp~TM1f6>fTENwdV{8@x^w!AAr83zcR$1 z{^EfsQfcY$39-$+6efMn<$>3C*pfHmaX{Sd;8MxlBFzco1RaNO6Ej*T?VA+>wCbOm z_n!K$PT2C|S`#0+>E9vLq$M~qv&S~c54kHZ&0V1zIXOA!98{M zMJrc&bPuUUb+ElWNgV1K5~7I3SyTvMQ|8hYA9Qp-N4eeHZT(Fz4l_sd z$!+{Qx!`21=-rZK1?(KQ*acKmO%PI$Da}3TITw;Cwb7xnp<>3}B{XmygZuF+?uK3a zK=Cy^T1+koq<7{yc(-ve?$eVsccgz=ff=#y}9iIKTZPc=9g>@6&Ui z|IO7WlisVtCin9OHEOjmj=K(LVxq6V;z$4B4K*dm(;3-uk}T||q_ClBqym`9r;bNL z$7xeod2B-%W~S`t{RTCLRzp{=2yhHN)ICsG%C=a!r)#IY#7sEFuW)EEMnO1vSm`5)N! z>9_qM#uth+5DupWr_unRYk)u|X>s%Z6hb|xFVn$2Bh2{6o zShDF?I4@Bj=9)Vl2iZlbGUXaY!QL>Ag~A zqv7Z0p9dy&yS~lM&8+h7qq3uUVAAffd{n*)6Z<%1!$6Q?5u{p25fi+(iDlv7n`>p4 ztW-(Sxkr~O9aMP~8J@4L+F5k$m=K)F%jNlA;unJlW`sQanh;sZexO$sedLcBdKL*3 zzZQ&m79RNK-P{L|5G(Tji5fa;Mvi(4S%+NYs9oVwU3SHfRdk7isS|}B9LAwCkX3*~ z##;znG`a*6QeSZ!^rv!cFcfm^KGM?(`XtB;Wx8t?688Pe)iSNJVZo%mh3vhb61Dg5 z4r;sz=pGK>ne6D_+=rbxlJ~~HN-W1v6P0b~cRz_jF z8gO4u zyxko~OIL*Q_eu;vOK^KUB$ZVk^;vLHgJbQD726Ac++3Mdv-Euwhr{UVcTA_1y|hc- zs%m{Tk7B%Mj56!DPT%jAoic}or>3Ob$azz?bp4=YLS$}giP1s6sL^(shaZ#J9RnYi zSHIP(mR0PR(kymjb+;t;5u)mtqYyq>E(>FG=Z1aigLP9v?nK*MQ#W6IbK zC0g-ClQ=5hp^uUV#0@$l_pnUw)n`UBrTR!!T3z=2b_U zIB59k1!z}Xn!!7Lxw2m}ggQnD>KKr4h^XR+>jEBZQ?eZ;Jf9z{02x7!gd1pe>U$q{ zrF%;Aj&^z0bRIUEt6GNyPwT6oh%TYsM{gBUC|fniwp;GW#i)Sm4QkFlqEzkzFQ5=q zH^**nlWR7i8}eA}{B%QdQI?ZmPro>W_c`m9rx9c5H4j0MhF6u&o(qy&X49s7pdF2= zholBt?|yN;dwg<{EN(xx?P)l^l!@3?Z#p`6m6OWm5t(tuVOA1FRdK4#KB*hXEN4Y) zZM%BE(4Mmo=}>QdUwLqK0~GyGR!*vx z1eZ?i%<9!xP)DF&Bd>dfAxz#jN zR50-71d}@aAl0JgRZG+vJtwA|5sfBf?kh*Rx3}i`4yL@})Y9;kDFvSN^Zbdu8GRMv zQ?;?*tjwY4ITY^tC#5k}=;^Avag-RGz`R3WqZIVF4hVR({dtSVzoKcuE4#KECGE`t z#1W&LBzS;)H3p|&^8 z;JJ630`=4kF)YY$(=P)pa2I9VVA%;k#lTxc*RSJeA#wrER-h#0WToh|-9zQNu4XeL zh>Jv><8^O%TD`5PaN(lz*Vg3bfyPz|F5qK_DdEz5rxO^RQl9QRf zfq|sJ9cs!aF|}V`kUyJTARc6Jpwsrb$Mof#V>Hpk@`_PbpG)1|EqU1T(o^`aU|C6o zdcvn2wVSmK-gPZg+7H`#|9Z#I#_xI_kM3m`K_-hZKBLOyv4i=EEXbRtDqgYFrhXf{ zHOL#<8>|=-mSfM1ayda`QzK`Vy(F~01NyOJ=ik0_od|SN4^m)Go})|7PGe2yE<>E@$t;YCyLbLYyvM`xN?P70lYy*TzERLYwUl<^eP_qfRr^I zkmtphf6VZ7uVyYM7$0>fe*OUJUQcaS1jnU2#OMKV(_4z3h)RNeTo-&KmyZ;LfLWS1 zqL-kK6P{|g!D7UU(7zOojkk#({`te&_)xCh~qL@-EtUgGO#-{qLT}`l_^uF1X&A;bDYGeQF=ujE`s1C`ol@`H0 zS9Oh+x&s=ao0TO4Y!cuSzhXEcNXfZf+Gh8ytV~t-&s#EXIV8sEGSzOkyc$mpvCiJL zbM$%gcG!sdoZ<0fUZ7x7Y6|JAoF1M4UsqOH2q8sovFA-U4Z3RHre3ZYbbWrf|e`XS)yCs z6L<0mcoW=gY>lF@L4(B+cEBXVxZOEvW$Zk>4Cu?v@X)SF9Scj(6_oS=&G-+l(;aJs zOnwM64`YpY#5BddR}|a9M8(pRx#4=K{~QKESa^Bd4*$xOM!x!llQ7nLNK7IahVU(1 z-?Xelb+d;^U zYcR~7BW`~8Q2?z{ZJx)?jH-CfJ7v6@fHxBhBKr5iGec3$jA`<-X=UJbCdzUFHM5T>=uZp98rpNdHZ2zrat z9J6NJE@^(RahakmawBgpTJex;Y?Xi989A7pa3_5;0nw1J1;6XcmC+Mqer30@e8lZ5 zcwd1YerA4_p+(Xi zP#E3x_cH*2lCC4AyUQ2+ajIh{kgo%y&Yq*)Jo+3N6(05_XId+udb;du?|taNr;oz@ zL;^a05>Y65?QEtZmHhbtY4^cQ_UK*fBVP0pT&s(!bM|Z8g>$=H8V~NG#pKUvS3wId z_z{GF;LL_m@RgmxUGOYYkLZsdJYcLZ$;8Oa6KPSSniIH5TS`;oCJPD_pb@iW8xwIi z2_7AVe$Ux@p!zZ2g!!4wSH|Y&zj6ZNSHH~{*eEcvj(vTu$S!TEy}U`Zluk97w}HP zeThFh`ysrS^bo#&prC^FPSgYW!v_yE&mMZdCtNc@gYdi7z^e@Gpp=*}R~G}j1c@FU zcX#hXcr(GD{xH&bMnRqpd;(Gi)d+?hi?I~FX?qo(!A@6*&Up{pIvcjtDrYO&406~J z`u*#sOA{=fSi(N^vz?0WBZ6qL+A!>($UdF3Fl(ky72v=rMt_&pdImJC=fPihy6v4m z$sXjR-+wlfIw2s*-Z1-k6YlI|KCn5@>TiR)wj4BsGIxplXkR>lSA=X-C0sBQjsEKq zkh>VKL-SUqt4uS_<~MhOYAW`6a~pTQ6**r%c@F{+nf5>|I=hv}i_r?d)0aOI*>BvisFqk9=^4z4|{5mxyc>Kvx z?*x3XfMGwdQkN$Wql)pGRj-6U-(Bdr3@_F*6Dwj4)SvzQf!h}L zx>5E%@g7nv{I0-Vq2?4UyZE*V@X#X|>oYylguHUhDfahG04+g^x{Q1bVk&>{x{O$p z7uWFvpw+084Fd=pSFG)m>KWnroXYu7YW?#Jf90F!!KW*HOZ5R!4B+7hqZ`eCuZZca z_bk-h09XWeWd5RHF*u-n%sBR*Eu;GPK|!-w1PKlaV|g~pFq-`93USO+TbUUQ$W%sf zPT`9xtze|a8}QDo8IhWk%@x!o;l8;>#2T2fRwVYWvNb1+erhGym*i5I>(QGxY~h@k zk-RlJ_D$@R8y)8rtxWYn@V0M@DmgorAsU2B-DM-V1Ut>O%-_G|-=f_fm{09Z--`s@ z@YB^vW!Rt4F5_x>HDsRk>F9_-Sub0in%EQNP{+GgmQ8-D@|-V7DAxJb0{ z?c7;AFHCx-h%+QO;zdDPK-NCLsml#i3Sqy!{1CBS4AV1y8IP9DMli$6UfedGsAVoe z@OMCbxH+C%Ot9STkVv@bb191^o}Ol5*HRMq3RumJkb3}ULPv=6Nn@(8O=BWTo~~$~ zd*ve?=|d@wgY`rD`uf{as?F|b+s(Uy>AK6-fZsKLF1*EkmKyq<3{e;@wXPscgg@^x z9LHGrcVzEUQQbc%-;hRWA*7RSyPR}*9@#7T#EpP}0A2nD%7A1I%>AKWjfrH!c}&Jl z_I+?;^Z_CUEsc`Vt3VA>oaNwcJe>Z~NbCqMw>^CyAwP*LLggC7haSu?R41bDq#$TY z`f5c{>mtaw)m?vgA4K^@fk=vJO(CpLXNj%n)6+}-k||D^-FC=hSk&6cLR7Py2QYKt zrgr{hBXR*(QS{)9vs)WGZ4a24I>4Z@=mqpTx))MKX|JJzZRGDqbxjduK#<4C)|1_V zeOl?}mlKh!KMCBVREz2jy0_Z}Hhmo#gZBSNPp z>F{)9VQ9;Z`r=?NN(d19KCO5XKLylmfLiBmX0(HNH@O{7t@g5i!I;`x2h&TWAYla= z!67_!j+m&;GnM|bF@#)Qgdm(FORNP7$YPhcn+~IME=ewiq*Kr#ERW*Xr1$X01B~hf z0tZ0>zish#2r;N8KfngRBhO^QQHXBB_vhGoX3{GfOR(P4hP!7N!RRm3tKK?c+w-Tm_^oERu zG#A3;C8}O6;sl1)^6gt3Byd7&xnOpRJM1CK7`4*ANd|=$bmW5W%G{AOf+3l)(YYT1 zD=2LJUs?cKfb0&inmAbtfE#GSS+?|X0!9-!G?09rKb|c5aE4R{^r&}9jWAP5LFeHt z=khjKq6Qvww*<0T-@rXjq$H;P@13Cee|;x_DSek8Lu^_L+LuMrRgsP8_Nb{b4wy1d zlI=$*i?~OfR30+HH74}}5q!R>MlD`BjMZhfI0bd@KFE=1Bb{c#e>B0M z&^-t^)ksRy$W>3ZhRL_fgWnkr4;&|1$Ca2~0fIg^4{4gO2u*CC$z+ z4wFXQYvnnUx;=uZQlaM7|EXHY zp*0*5A|mtq1~-pX(yRr|sjlc8>u=h}ui`!qG=XA;-FwGl>6FIrL z!sz-iK+Qzb_A)SrAWVEKzi&!ymNk){vkMGwfy;&4sLH^6IyXkydMP@i5gSZOCgnCK z#R2;^P;7DVH_Hd~E9#0e!GL4Gn*j0hagK%YCh9n;Wx$&Sm$;+%-vj0Bva>~#nH-krFjuZErWQGi!Wa>YoVS&O_q;6r!hKf&MFA?0 z*I_V%Vo~CZ-pFenD%ADWH_e8uasFfz}9FJ^D*~n(ceUNeBM0KKvDG1cR z|2u5@o->bZ`n-|Ya^6AU7>>-jhS(RWUmr7J{BXYB6{=bs^Z}!QChvP-HZ5p|Eed^9gHn2laJ+8Pa@dZ(Y$AsWcq>b zD#Yh6fL6&MA$2=Ml%~S4`(WaG9MbwGBM=rK5M}>|w}>@SowOb>mh`uHNHj<5AY#dt zPe>qtaMIEj+&fI<0{pZQqoiqxF3+RWN(cv25HE};xagd4IiE*&MnQ9D+Tpc^+K*R( zFOwt>Ux{w5K$OifHT`b{K9!~bj3XJzjn0JRzk~h?TlW)tk??oR0iBe z+D{mNFi=@V?BawciLv3Y7$l=SLCqfcvtxWK+|k*yHQ)Sc`QzTejA61LJVnHUAnFA^ zuB?#8jc|m`O7UPpK891y6kFE`_W!TG8RA#JU3d^8OQ_7!5PW^n^r!58&Da=?HDDdg z$Nad-yduBF8sK+s7A6-X{~T*TN2Qtms!8MiKgAk|gpB{)(m#c7{?#qL8`W*F46Log z#03U33qia1qcV=-O@Mec1o2k^p*_@%poExyrtDEB^&3$!BM-C}Q6|#AxWUKqiY4T} z>sXP;Rgk|jn@OMH=5b?>C_0zm?ZkzdXxOz__~-q1YPCs8&E9px*Oz|KF{R$fgi>d~ zkD-PQ2c&+>bsbwaUbJ6%G}#J%7k_fiLnAUQhtVYnG6vKjI9HZa48=(9|_z48J2lUr|`T?MYdu^0(mFxEtV+TS^urU4n{vLTyw z28mUbuYPp=L!#cLo0P>nHFl`yynXxjvesjrbeBhtgMDwgwCrmd#h;yh!TrPbdDq4J zZY11z zl7>xTdQn027$RYPBt0E9w*6>7)EEVaZhNMVhZlrE($UK!#{B6MoJ12`iSWE~1?p=@ z)p7}V+i?US6hMd8K?)iC+YYUZxZaZ%Dp|B*CZ){9QQBLIPDPb4mc1+BfcK6dLX2b& z7XcZm2F3;aOn|>LX_6|;Pj9E1EAbUVoW0ta;a`moRRuRyPbljFdXZRq;~nno;Un

K|r?hByI>P6`F!u@Bhoxo9c-Xg73fqKCr=p4gq)l5{ZlW z_ibaA`QPgP6Bq42GSx$0USAzyIJceSZ`{0jlU>txy_^`uWE&bdcDK5vUQjK3zro!5 z5Qm7~Y%DpKn;8pSH^uBjjL0Jk77iw?=qIo5UsOnO;EoZ+AFfU;IC`U>$Lw7+DnPhT z0f80qg{K^#uXE;Mb9FozcmERnj`=CPp>EoKbS^K0;IP|axm{GRJaHpNNsanK9^@35 zwNLp1k{wpfk##@57LpeCM|JTkVF+Wb*L>(Khq|w;OT+}F-}6sM0BFFt&?V_C{FRc& zGs$j*gOzLHWxj@L=HE~Yx^7Ns>mO}q#OB@-Wv}bh$|ETwj)CPwL&kC1Av0#WxhX4) zz&rlsbTMi@Cxu@T1??3^ur(@IWKST&d{imUH1ut&^t8vAP%#fo$35ov)reH3UzzeK z-y_$7Bf^vG@eG2|Mu0YF(rU<3Jep$)o+>P0H4Sh}1RC&ghq-TzDH>m&`6mu)iG_%g zF~ul}kcOZ_6~?%E-c}9sm@ckc2^gwGmJ={F5*BOH&pxpGPh*Xnxd(b$zVj4w6T`;A z?=X?g53|MgRab$J2iwm?c<#l7vO>%?H1OUy3EL!p1p#4YP`r`wPQ+qkFw^;a6<34y zp}ua$4#=ethMo3i+Kz%lj#}M0I*keL%r*1{Ilf#>To@ve?T{yp&6eP|lwfAHu4)$+ zX5EE_T>f5xEuR8FuC~0qA-Z#dVTn6AE(e|RB#{XnF@Zh+()yG|(iI>JvF6`X+VKA$4{!J`M7{=ER}cJgpz`j-GbFLu{(IGT1L}@FxSA2<&aL9wRaf2cy{; z;cBcvC;MOc1F3>GsVyD^4pA)_BndS2!8cBUkNKN)Iqe|@2nUG3p8^)e$p9thk3^B) z9M_Q9@Eu{f5h603=gOveh^+MJor0t@_5jxb%)_wo8k0c8vqU(FS&}V}q-z}Df()%5 zXmA=bD21*M>3Ksfc`l;H#VpBIh4Zn$>ojmbMDi)iyZbcv)2Eh~mU-j@-pyU2Qrp`=9D-44Vgg^RQF{_;DHy z^xrmqHB@oqGz1`5R6eD2uM1Lu^W7MCsZ~^d!*{Ns8ZLx4T{85wZRq&s9C2G{#=Jxa zAsdA3%HE_QTGjm^LY3$3IoGi7{zV@4mq|&rw251@%k;^5rKnk zpWOxaShdELxBwRP8vCy&1J(C604CpJt)cHeuGK@W)wA;)zMf>9K6kj@Y-q*6yDfw7 z>IDPa-3-n_W8dRLPEO70)eL~JuJfd?DXby=4r5k%oN+opktUhL!MZ|^ZR`7$0!ls5 z)7rM`J2b#ORJco}+E}Z@&m5X+FA(;x3x?Luyp;eQbW`Z{KelCBceCWhKd^iS#F@8T zRc0xJX@C%v);k<9orD;49v^mJvdi6k`qfg`b1jwFsCMZyt`!o|WtsrjUUPAEBpt#G z`Q)r&)ZW~zn#X`Wwh>n$T^RtT7x?6T^+W*Jn|Wo>{W)C{Frv4K3`76uh3K`z{?~6y zkbram-jJhQgpncebd^obmZ91$VosZGR$tQkai@0}1i@+7%k1JV@;AkpIz6XzQh=!u zl~TL!p7vrjk&fpr(QoQGmjFi0?L58i_kaZ{QSGE(Gj+HClWcT$cpFi}gbvDYO zaq-phRopWGf@wY122Fcio!0;wVbgfD&9VDgI^ev-_8wKu2Si#k|2dY}a<*3O*04S6 znjBjp3te(C-pk$f&nx4~9IiR<)Bg4ko4~UHr1M-?K{hVcMhieJU!uN`Rp0(YvzEA} zR=kQ<{wZh}ykuh=-0+5hID|J#Hvq`s$98%mTBXg{JKx}zjsEc-Ys=dL+wIfn`P?+C zu_|f8y;tG+=#UV$_aycip*%)f1iP%aQjJFfc`l`+#@c(3S#bT#8dNFC+u&>G8%9#c z3e9y{6>@F~^Z?vZ)Wck8Cw#gr^nd|ly)zF&$n`2|R=wl*VU)!t&vV-Bs{2(A)VczW zd~ayG;AwD5IkmGnt<$i0&FkF#X4}pFwiKsV#eQ|xwd~bTnv%bF`L5vTeU{SytVXlV zwq*I|ylP3OAF@udM^Z)Xn(FyO{e=q>8TnFLP0biny6sZf5cr+9M0|mJj_vDzf-eOo zNkl$v*?C91uh6GH{kbOxLaS^51VX;2FQ5KxKN#qNTP<(jbyySu-B z2Xf@4cJuVA+JRcnwea7yk+tH|U0USSpWvjv&cFY~97prb=Ok>`FL3wIG%7TX;WN}% z91`gGa>ujyqy1l)^LkX#-ac)*I4a$kv2b{n^1h?3sGq=q7V3;kqWh)n(&_S+)`y0W!$R2^ld?{pqb4Zdm%jzJ!c-otD>~~Z-Mc2-uj7l=oFg_v5T3!Vv5&S z+*b*Zg%)l1u-m^hSKikM$CNEw+MH{hh8mpe1H-NBeGOcYW*Y|tw)bWTIj%#XKWQ#A z=?%iq<|u9%{L$NQg%AqJ90%OYpyTy|EZ@%Si#7qi_iQ*_haNztn;*^m4Iy*t+?He( z5V-(}DLt1`4v8IB%al4w?Quoi&M_r~d>rK}G)giiE-pLj&ugcP#ww)FITpcw;UDm# zptG}PYAF_;a#GGN=#mRhOlYUxi?o7T0CV!4V<&jp9$?RBN7;R7P6K(h!7_WbR{O=u z)Q`JrUI`rXcJ9@JJCr-~+jsYHZ^ZLzRK`6??`;U=a;#xHp-q1Y`Ot-UZ*&;{PeKEa@!Zv+3H-T$7sno#5l-II~VpmCYw$+k|neM z>**ABcZvENyi+q<9{AsVk;fNkFT4qWnYfHT!_Kzb)0u}w#AlnXdsYvcrrNxD2%4IX z!sxcK-)vb5kha~!&xRkxnrkA=9GdOVi?vw;j+Q8wuw%CJt?0UUHr@RQQr+9}*TRl$ zmT$=w!lDt>Zcu9>lfQ1cT5hY`8Lq;OB1V@Xh@%8CINh!vcU~M;GG7o%;Syvou%|0d zyRtCJCU*q1&GG@JrZjCw;NhM;xaBooQTCs&)py)l@4?*2Lz>rTrThJ)g-2te@KkaByd9`b^&?l-PLZK^qg}#Bv4#Kms6X zzEZlXpfsY^OomM#@F;F-UkT-?Gk}8GNeR3_?Ud@4W=E{Z3=@29l7@TH4&yUz%9Jw+aPKpi`mlRUSKrdcfO~vTVBNqm{V4)Q8O- z!Dkx+hn^Ik0PHgtxcNsLuOsk)|EXft)mo=fS2K=$s^91@K$obIA1N2b*sy0lP;#j1 zM>CYd&prb-G^g0{$_NjxeGN=Lco8F6qTRMF6W?g}fuJtFo z05OHP`%URo32ObwAMB3Qg<#8^x1atsS!b+HLyV>c-Ptr2W$$>|xDX5Y z$xvT2W66zf+O&k{t)?}x?-bb8c!W4?5Yl20Tm~7yVC%(&9`MH+u(SC%z(8BwHT>4hQ6%Z(bfJYC`TC!>0T!5Gi?@``H;Fu(-27gf zrTI{i*_u$j1W;pq7IZgt_tyXx8OO$klY#vjrJyMtOj={t^wF73YlEdi*SVY=v+|>U z<^YJ>`}$iNTk<0%`jaP5Qsg55s=li4h*^7#b(Q9Z=rhgefw>*Z4W`P+vvX#bZJHxd z=iwps*g{lR8E$Q?9RPT_3)=jk_W*mG3GsJIn;mP#9eM0~-)L9aYt^3wDSG*N?q5~H z6?1_P!lqHOUQkz3!u&#Czv5joAXr|z?c;$KpWy#fofoW!D&yfD6f>NA2Ov-=t{Euw zNoKLCJdt%_u`PfRinF-CVRZWZ{v-gD<;-kW*_iyzS?C^a%JBfRy7D%5WV*6E?Kb>f$KK;TW30(Y~In99s=lto?B!1&bdpw5J7N4mz|KRXo_70gDtU!N`liJJlQp|EVIM{^8ux&wQ{usm4s=MaNdK+hTdp@@ zp|6zZ#e^=rWmE4v|Gjcu9hg|+fD0rl9qR7F({byJZ-SN91`8`IE0aa0OtP#G98R2c z`Zm*vdB)inN+}3f2(~1rm{SY763{!>lVh-1q*$-!Tmzs&)gXqwE0?2nPjBFGuU?e# zDvn+k@ua1?A{?jPTzKYyPvP4IMf)R_dTCdWI{W`_n^FIwl}1+%?evOZC`gsZUv2`4iZ8VDab5ASf{=5I$y)3ya6;>h`6rr_YhE><0ubgO^iKTF zJf{IH1l2+L?f%`gg)MgZ0JwX~FhGFY24K)oM^uP)w6d_eqNfz%eI9~s`b-baDDC10MyjH zJ%deAX`iW?dskdd19g2$z$xVb=z% z#-(<)b)R_bj#S@vU9xd+z+FBA#kflFEV*tLz;)i@kg(;_yHD{ve*shbv4}0m=lZ~n zehzuI04?S^lgr*b1KlMh=jJ$mJ1adRl@nA!Wm(E0VP&E)p=W!J`p+Io#kbm$aBkdkiT zI+?Ss2CSJSeTS~veis|Wr_I6Ap5@S#Ba%0ZFTiqN&EiY9R&w+nec-ypcBRSF&)z%A z(i-Q>9i0D2qqGIU+Ge9;JFqv$APva!x_bJwIh&XPk20qBB#6p9$+o0#1y>v`4Y}Y1 z@1FiooFL)m@f74&g8AjL3)KiOom;Jc(=-hjv-pp7HLti%YJkq56X?*zU)O(@Yk<2Y zq1thEZUfl;I@X|Mi3fU0-L|ACR6~FhHy`nb&@;&tU^m!V;tE&9xFZY7;L75FE2Wo8 z$r#+y1P1H<_HP1<9+MH*?};GzG|}rj0%Mp<44y&YVSHW<#GFj3e_T8_H|lAe)Cp8 z&d>7b&6)ua*35`#bzAiNt<3-%dh`yW;U)p(FTW+DJ(|c|fXeNfD+N$b>0w%(4|}gb zVxqHwRI{q|)U2d$EfzOFJDbV2MV$upUc{1Ito8|civecKBc zR~A}^trpVOE0;R+D_y7I-IY4?mGm-^1Z$9 zr(NfFX5FlnK~rbZ%wzU<>b(5M>8o*l)zgNmcMiD?`&Ic3`Yeb0I+}S!DhJEOtL;yo zPcY8ye#y?M-JMu+>O;#yry;kK;f|=Yx`Jb{KVvu<;Aqb=3MHApsLGi7*gbu=WVmSy zuaCw&AjT-R6xQ?`27wM%6*m^FRyij#3O9gUR2$ z9+m0e6zrK9dhpCT7c=qF!)Mv5TTjI!Xu3J5aX+NeDLMzZsB9yJIG!F>pGB;YxPs%v z=Y32HbM`y7nvgO%uw)VA8y0*#`OR}Op|iLyYXSr8871N25&tf%XP6GM=ACgN&j%BeyMg*#y1{DIT>8Y?SU2gE@KANGLB4I@PISU)HfNmC zP1<1&{{Jtwt>8T}p1x^I=L5x44rcEk9zZXFaY>0YPsPq78-!g9B&DOlhnkmGRJ6b6 z6I)8DUJtO}^&H^8Hq{=kY}j0~cuV(%rP;vu#1SOjVffq2Db4G$INo(uLAa{CD-N6v z>Jb%NB?C)qt?$-Bh@tmWf)+?W(Er5G0e^YemY8<+%V5Wz9TU+CT*_Jqv2z4Q_!5yy z+IrL}w$c5-9xei~qxldk{jwdmICVMfA>Zvym5bBQ&CT0T>t+tl6-zX{qppLJG5(q*lR21>2E?-GFg65A@!(8_k{R>lztfdWOFW-Je@!W}juvE?);sW8Q z^Eul~)AMCe6JVOpPX>_C(+)ya!if+ni9dc7wc&KImgiz@gL&G;fTgc`zF%ChIt^5V zaV6Hgs#}w<5lV_*NauJ!Kl|ah}LWj zkICIA<;tY2m~sjsyP_H*BbZb^U~ zn*K(sD>}Jtwz^`<1&ZDaZj0HPwIIJ1eR_tjfd1sw9KBBK!DuK~%4}CD(2rSkr`lF@{9Khe2mcgdYk-MoQhb+c&)+p59Vpplt@St5)z4+;C8Ab1+&SPZ8z9*e)wl-K1 ztl=jCb#lb;fsp0kqhdAVw~|A1hCa?o1Jiuy(+$M;)^O;2&lov3pmwN!GZeEiCZF#6 z66$(sP2zpiN(@DRV)D7Wx#5=G@q=8ot(VzN9&N2Cdh7)LG}VKx;+5voVF?&QO}fVc zQ8U46pOk^m)4T>KZVt$tP&co7@0lTD1Zb3-y1>E42+KCDD7od(RTg>TahtNTGGp-%FpJ_NZY|7qbIN74t%3k% zytCKc42%mnYjym!se?4AN3%2ZC~b3*d6397&d|a~Dqwy_N@~fXV8iu`Bh;sC8mWAH zF5SdKI$Q|Hl3DXKfLw-5Qj1fTc~!XDBuW&$iAb!FW1! z)}Mcoes8yrcYLq)o6l%)p*!>(MF&o5&#VD=ywPB_-W%^Yqsn8U0lUJ4T%G%!d5*T` zZ5g(I(p!I1eb{|vU*_=3A&_0g5hBdPntNlHbY1AkJktzkwJ5poeN=qzp%(R7tI%N@ zG5pdgBp^zTWZ9<|>KO@(RJ){xbL%82nxW zX)3W_<-iq+<2%JRL#kPD2OI&}3fji-Q5rR`z_-xr88feh)(O$p%77b5^;Z1$;T81X z77jiBfB-;HLUFiEzK+gXi%4wzgMP&gWvkF>c6|XWLD#;p zVfy78^sYcnfJIWWKD2?^LUyc?8&03u+qo|T_Eiq@!-PM7y?>eH1X~&Ux5mb#=RiTt zADo^M`GnVzA%rByc>)XH6E6yV@`9Gb1g?D)L~-N?1Xvti6R*CAjLf^zy7scrSA#Ew z_i7+?^Dt+~E`jt>Rdgr&b3Q0mbe_GcvyE?yh2Sa zWXE!ZMm_~`xff0@EAjz0{py9it}hW;KoA{q{-YO%7-b3^u>m!TFj6*F7jZKd-c{I& zrPL#^49785u?R9_qg~_^^oS!E8|0_Iyuv`RY`)!7!gTp-&p)PFK%}maFhhb~RGR-7C~P4GGY`P96fl=TB}}q-2p(hA_qpXn z!%Sjg)OC-3*pE4!*&pJ>N7pyf44_-~)Yx%R@{^NyFhG7Xi5IqJb%D&yzwkf&ih4l_ z=l+P3On)UW6HxB@z90t3y2h4aVO$R}uloR8$gpzN{=etHO(Cy>v`Uqy&$@`7kaDPu zw+`KpM0C}8`GU{@|2u5U>jXJ6UI@&NjYlw36BslH%$qnsqN2&c;`U zYyZ|WBns?Ur?e;zi@AXZB#kHQS*oN5!>&4AQbiEXF{~&3!1dmX%3b7;z8C0^#MqLBo9w}&c z6^org@DsuwW^fs1U|eLP{x^A#w>TSEi%N)>7=Rd3_}?qQ>JonD&2L=^ORZ%UgI1an z3_tpO4xZq8_wJpJk6?`0vF_n#-u2(Q?X zTRd1agkZ02J1dUUGcN?jYO$8@F7Dl7#QiE5NSdsofHoV&uJi{#>coK#3MIJnfnj`+ zgMos8F%>?bu)>{aP;V<61OKJ|=I0MVsNEisdQ0#&?zK;VazCob6k{uq6_?|o)vgO1 zE62q*hmlzyg36n^Wi?6E=O?-zyFjc9%&jgQeI3~k*iiAnlu}2y8Nte^=>p-&h5oGR zPR8Jm0EJ%aT+dFS3wSv7Bap;d^+l@lVHJMs%f(=0cLjmrQfA^Jb9Y^l#te%7Kz4-3 zawltG^V{`Q!q(*vEekg@z^xW=E8Gq`G}bw9dmFm|_F_2{P57FhoV-6&_izECaJdcdS%J9ftDnE3(xDT^=5sM`G>_TD_6>h0?TFG(4a zOJ+)`sLW-`&}q~ll%Y^aG?7LcAb1DH*;1#9?zDoiQA1Be>Ekbfi|x(rh(qnMQrYU6^LL zs4<33>ZW8o?l!6||AO_r9Aa@!A*QF^eHh?9PB3u*+w+Pe(6&Z%0-M4`9dEPd> z3=3X}EWn|h7{cN&qSHaB-$GmEGSrhy>qt9nhA7>~H?j}}ox!=j|H_*gYJt*HeZdDe zvstqngg|{=p6I_`Lc`<$Y&-k&yZl3VF_(f2FO&$Zya&gLNkv*C+_9zLD=hB=E`R_U zkmI19tFRPY5WMa)f^6ovTS;m6XO8XCC$w;kU}u#Ml9{k%&sN~~72(h4eVFf^_-%*v zS8RECeI4>r8D8B1cX>``<}j2k2-G$%&9u=EzNG0cycmf8Uvy{Svin0&5DqJRL>v#k zJ=LFt6~Krx58M0m*43_C=+n{8|0=PnAA=1YkJZqTv7g?2A|_@ z;}oY5mA5ypN*#QU_7%FEnSuy*I(J0$L9R+ zbegVBOaW%s<8h(qOB(aJ@o}8Vz_rg8Q~kt&tJ|zq0DtisY^auj11QTLgl^Te?{#FC zI@u9WPKf!BN&MDr0lO1W&iwEpuEI4DSi}w!0+0|3nrHtPFJU zlpUvU1E->o0maWns}BD@$1;(<<7E{Wfk5wV#|}r#fBVG`j4vk-&irWH2Vptg>Lc)+ zFLsR1iKO6cln$H<%6%&|#wv-DZ1#FjUwz_0d~zrVTozN63D%7dwU^&9QC*7Cef2t& z?q2=k2wwcebZ}FTU%e|_0X(b7vWaLQ9jAliDPBa_5OrIm8o{*FEg6>#1e^q;A?;7D zgFg!jA+Z(db3L}r61*-})J6E;X6MuH?>A<|`F>8|YM$Brw1n_>i+q3^O44L!2aw9# zp;acN-u!srUCmnFU8jU=v?$+02%XM#t>*;e7E?pq<9<6DvG?JqgOa(uMa0)8ZWQYY z?SJt-s7$E?^Ape)c7;0U40#t1sCZw=>Ws^xzDO2Gs3hp(ZA?QPi(ZVM&0M8%yO*SiR8kC+Zg|(9H&*aN!m4f6<)Jg9(;CloV2_3adwSxs( zv5yfKkz$AExk_Imn*P&8-3~TBRNH*VU6p|GP~!!oxX$tF5CFIg&Qp{|mGLL@i}8_D zg4aF&Lk8(^Vv5MIorLyE3fSACPrbei!gdYa>#l!)8P*^4#<5NSN6T`Es{7ohB@&=G z<==t^-fZ!O5Fa6~J?sb!mJmr}pO-Vfhhfjn=52%vvHcT zm7soWkCDCD_1DaLFE(SUN001s$2bn@Z^SPyxZuK4yQydQ;ydKr{)M!LZ`<+>p3+Cl zb}yl97(bEazC-jEFK;CbT8mbwPauH=6hQD&B=fE~&5?MpKg z^2Gf<#Q@E_984Q;q1jgtM`+EBt1a>b2-LyA)W{#0IZ-Om?XnpRyy@2ey15!%`F};h z;9kZt9ajENHiP$nixMD(T|vAX-Nw-2@n58{75_a}CQcM0k9kl?&>{_b;RigS`FD_h zV2_Z3Uj0jpSkstYo9O%oLGP}4qUQv~G$^gN&g%ni+upESd+bnZAKtTE)E00aNo|^# zdn%{q-2Vn(Kd|-}(b~_o-e9=gAH+~DWnMUCV8{&RCwK79fQAUH7G;yR=^F4P{Gpu4 z|NEsvjUm`%zvM3d10}(^3Es|<_bcAz8Qb3{33U3!EmI_-ebQN`Y@3V zD<}S~N)b?*(%3vg2DFsSnVY3_n}CD_Yd}Cir2R>Y>%`+Xlzi370c-9iX{bu{_Rur& zk-A1NzOT-?a3$i1^R&~oV)d}H^|HE*rY>Gu{`$yUax&;5kB%+)scP zjXFallVaq-zIbrgTxm`GTJqk7$dAS<}ejffMhM5U#qbM5x!-;cEeCy2;BlWDY^X z7-I3+qy1$vu(onBu(n@1?UtkkO6>-*Y^eImOi+Dj;VqqfIMLQ(ry)UZ>rhU{`GxZK&7kIFf(1&D=0_=5szdJRJE_ZHL&9@cvg!7Vn6R-)Q{(a96hePY-wX zJe@o(Rp77WgzfAfM}caOv40Vdb4mWaE4O49FKJaIVLKb3Dic$(;gva$(Up8oy)t!o z)bPufO9REl<${rU5HYyAi6Mn*Uggx*TIzp?h>{e%kTf|(ZRNS%a z+c3w$-00?CD#rtNZbr3;8uA_rZ|qXs&b~=0f}kGiJ4o^gLTm<#wB1n_|5@Ew4X>7$ z9V(%G0C5EA1c|$_K{2n0s{q%{5t?;h=*vQ?M>7+dpKYrh1W`dEfnVV@m_ z2_A5{AIGO1gkXSJ6ZGy8R%_u8a)O|{A!da(cuP70!!{P|cqjuYV3U1$o0?6&sr9v2`KYW=W_6hW%n*s=`0I6$2gJ663l(MPzh)_ITLa(I z{b8z#ZywmZiSI2ygW?i^_w{${h1=v5PxK)loyBix)4Sn=C<=2?OFHQXjpE+a< z_RgH2^OuhB5`2*me#pMH72Pjz>x?fnQaTRrp)*(nY*h?^d~336k0Gk*!B_q)g+ohx z5{`Z8S2V5ofeR4;t&K!%{X(JAZSbtWcc_4{f4zt|)6Uey4?ey02~Z#P!n^v(ABL@G z=5VI5TK$qMuZ<;lXw{~lNkNE-Zf-BbX{1gYH&!p<#xEyoft3s>L8MO8LTW|fWiOfX zCJZR|3Vuew8q6WSwo-A^hv_2xkjD-kC}fl>0*jCptZT63A|ROCp13E3Adkj5_<_BP z^PExw3PQLRqAZYyXt-^sw&cub%X+8x5*BKPU*5!M08Hh}dU%<+wP5Hv`1gV#Pzx5d z3rd5gw=X_;einuH?h5}Hgkm+6Lw)`u5f|igf{k>B_{k~!ZeDoPgZh2~X>Jit?Vb4o zmI(<0TdYKO1Jf2gC7ncdx1jc|K z+lcDS{(Krde`+HYmnAAdnOj^kN zhFaXzhl}Vz(tdI&A@7{LOS|X<1HEvw#6W%H;U-+{EzT?i~Yul!9VcF(P9G=uYQT@tqcqm@MVud2{7d%F+JPa1~fsGJv;J3-yOC$ zYG>S7P7yl|IJ^dYst>_GvJ zB{TN_Lj(-l=0B-AnYCIbsI@iv3W5j!56k8tnDtmobsgN==Iru0*6oiAws@fwp~H^t z6s+4Bu|Q;M=dZ$|+O=Sz)M8ru{{x{)b0P9icUITMYIpE=LGN}?87l+ zaiOB1zb>gQ87bL9ZaQh--_p{;Cn%_BqUcFDRS6F3Z2l5|sYfUE7O?c570bThN}chi z;j|O=i^^dSf>q)n%Gp7%LNoUEK?wXp>6QB+bey2X`9Ym0IFPYM$S#;lE+u4)8cOem zc>~mgzYacuAPRG8tdNMNNBMM-U{X@5AUm*_E1z5Q5V zC&;ev*4e`j2fORXCg>I0zCEwa(LSz-f#u$ElWFgo6H%RV9_jm|wLosoClIVmX6bgq zyCtoJLgCDoF?)`>A?VENN1a2n1(73Vv?#c2jGle0I1&97A^g7B8{p2qlM7HBZPS^@<9U}!oyjF^Ttmat7hpq!t+^G zKnw_y!Zn1YJWG%2(nD2)@~!8h5R%4=55_wT9hw4_RY6NuN%TY2vMCQi%|4?FR{83( zPauV@CDbebVsk^PLv&mYVOQxOpV$3R`PL;gXKu4A5)sA|6k9pw`1g9$%-|IY4RP71 zQM9Qu7?B=W!owPic#8-b*2R`~u2T6)gKz}~!k$6uRLg|>1i+=tIr#l%Yx$<#b;29| z`r-G^9CS!&m#>rHf#IhE-cMoeu5|j8p@6p+JWOrkB%)FIb)b2h34}_BOA{|7)S2u9 zQPDOW9%Bfq>Um{QM!v+rg@|#O@@$OM%=0k`Ala6|L)x=W{@mWZ`F%%=2o^hAOgQ}> zhk+(T;Cm+LYlMSuQV|AR24(P|%g`hU?;V6P3l9@6^Zr=|Y;vpMuXmf4uE!fDLIu>q z-Ee=m0&1QXvZ0Eg1I#Z%O~3{HVjK(kD}37>xNUxjd{418AZd|z#|s?83V+>}r)`A~ z?clvmr5o_J(-9*}cu<4tOAH8qzKYLVe}dHv0;E^1<4pSAGqS=S0BxetcaHpwBH~$< zA>iJkcJQmV3cy`}-40tpDcE}u-+o0HXWobTfeE)a@R)?86UwCUwp;vEA1s@u?=iej z1j7H#cbdO&SmKok!~RW(C(qd@8m|yi&NA#%5XhBQPZj*?712Bb-iqlco`i&02-T zKrMVBi0D>zV1<<12FnTeJX3hbd{sX?4-k=jtAh#{+=KA&hcZFPTo<8>n$5iqLVe4; z9MO`q?SwFtBcJCya}VEO>i)zL+`$|7ipgb^ID+Yk8B67fM3L_>sTCc(K_2i8gX zWk7r+JmG7yy%2a=3^0W(JDsD*AT*U7-;%+j6f@q`Wi(tc!26&9SE<%1j3^ghO*sYw%Zq2=R5&mS(2Zb{=2ss|W zf$9#wuK*~h^ym^b=3+oqyx;hEERs<9H0u-MtSaU)tg3das+cI+a4OHiyP$>ug0vs$ zQP70ng0S;nn3fKTp-BNIOe&YP6VUd~0SJvw+`@CJ#%aw1bJ}KhP(D6*tq$78*fVRw!klq2mySF00%(A z)i}+JyGG6aj)N5=0B*aX3PIcM{S_teLV03vqZ$Jqp*DY!0BTZ0n@jP@Tcfq5kac>{Pahw%m zg|%=cw5tE7OG6t6m~9FB+`?@q+S0YX&I;wZ0wqL+5uotIxJ+bANm2uKggHh3bq z6Wst8y9+ilmtJ&{(mB9TCqL%J!+Lo#Qq2`x4A`8p+OdGc<_H*j=c~#keXV;xbt7Cs zK#N^b3*goi$2_@6QwDWYiX*EKr3Jvme!gS4g~ZCX|HTG-1ilwGB|cCnf9~cQq16Z_ zzN&TV5VL+^S$R+{V!}Y0_OAHuMXo_fAFNkWyY>s2%E8HBuF@hF0PpK-#O0&-c(1}t!{fv6aA-&g?}AHH5%Mk7WIIrHAs7`Dmob{* z%_Cl2ru7C>NepmDzV-<6^+kgu z{N#EW$&m(ZmHH()D6T+Y?o@_Bi8VLK(_j)M=1+zvH%#?xh`nKwE^e$281`yA7(}b1 zfNjYUP6PgSK!7HfnJVy|+|`~kHK~8G-|r?R*@ofNRdm+El(%hV+go3U8!#jM@OL-v zUh!pkBQ{)fvpkt@e<)(Fxos=+4bZ_5#8yJbSP#obzROKC=~02cHlrBI9+nL616dOv zC(c^_d>FROuqo`-Gu;h<=T@t4Xr-##l`h#MRD@R1;Bl6mRugDT`7Hn=6+kGHVYW&D z!z@t?mh77GX$nCEgsyB#i+3$R7D|hN`nl-W83jeGPw${2~HnNG=d(FbF&X&hk54DqCtEY} z5vXEueB02+iI1wMnv!>BCu@gI~tbj~c3oJ05 zA;Jz`HcjR>flZP)^kr}?0HDr>+u=KMao%>NgaQiq;q#}4E~k=O z6~j~y+4c$BMm0qUq~C|*MP>(E#SR8Wr)SKr&bF@4_ft@EHv&NTS(W9P7Atg5$cAns z(KH04tb?+QQ{q{64g1V8)@POrI9du-nifzQK5+g}SCnfFEPH(|fEX3m_(a!1IY7T1 zs-aY;65*yDA%ax{o;TEToLRTEAK3F|&L-?e@CzJM1>TJ!SFP(UD->)##e~}$M_+S* z_KVuBJEv>Txlqg8ZNgUg^#k@D@nqkgshuC?PBzip)J3R&B`#NiD2G>NZv;B5J03Cw zjP-h@un1LI)ZfvI0BOqF^tyK!%F9M~7`q=AV!V_qE8cV92LMOzqwxB6y)MiO5@Yq4 zD_pyR3SLzY{|I*xD&w@C8msOS`)M6(jLwzV}oeN_)HF<1&qQ-Ce_gN!sN(fPhtf~T*M~hiDB(L+ z(WG)NO)VE8;Kfv3Ym4|m!hFl3uL)Vc*f)DdU+f{X?d7n|j}2uou&y4fI(4|T&z`;B zgye5eUHn_hLT@jP|bOcBAulLeP-CT>OX_*mC+-Wjp8A$X~GqyA4G zz_D=5!0sm`oe@k!yeB6*79K*#KGf7o-*wt@5cGZKg8*$DuqdSg(M`VM1m0%Hgl92t zkrk=E_2w-kcPD#Y%Epxm17fp)X47TzITaM9*nU!0S1G1V%C&JriHi$dd zmNd=V1;BBLDeF5er_=J!7WED2EKw{64w4P7yIX_aglBa(IZF2XM}QL+(}fP*Fy@{0 zqAk{%w*{&si$`9rb9LUE1@L*2iH(BcmmiMA#3qH&@*s3RHRxj*t?zh_7^hAH)LnVZ z036hQ0~fcG+-Z{hKKf0ptDTIUw^8n6jSdCVRTA}B@C=kvjR57j>xqzq&{Q4o2VJa0VH)Y!RqKBwSnhIlTK<*6%_Y`&&}!74eZ#e8|L$_Y zb3Yr-t)84{=7U&(gqkb@QUGMWpTaD&3}MDOoJy>tb@Cse#Hye)RlY+JBuQ$$99IoLIIQt4>)YXlix556pmV~8laSotCBu_&m`CTyv>AM$CM&6%}A z`vII^?*|~;sT`c@cHBb&K&`qZB$OgGb_nV1jsaJZkyfH|FAzzr;l18+EFIwg7&SS2 zi&YKRc&Xc1-d_IUTVS>-dws=3+I{{Cb3j_X1qWQ{Mc=wL&ke5?cqb4&;D5)E?sUZ$ zffR>zpKV(62o6x@Nw^M{4RQ6q|K7dRcSQOJSd_A=V_R4lht{RLCHZ(8CX2FM{c%pe zTIH?gL6QEv{Y?{nROvwozOeieFf66CF%q#1u2tfVWiWBhOuF&rb<;iJ=b1b67()_= zs;tt%Vpl3=K0KvXN|pwj*2TZamvQ2oGDZ1%%ZB^4pqrgf!qr6ts?IR#`i^}p=dCYw zZX2-DtOTkZ)r4=RPkF0uw`{~fsc0=KYsGs_RGf(H^R#S~Hcwug`m(`MFN?>9@`!|y z0eX>5G`6q62_Dd^vWcjUFDCj-wmjZp2E&VE2volt7*Sr*5;?`DY zU0IPaq2??sh0r(+#;ztR_ONzYWCcn2nbBOL2>EuMC%)l6OHfif#Kn-Jyk;O z0p12=z!Pu~9_l9GpbQ>SOH8;rK--@y*N=T>{@CK!PkVgX{x6XZ>QmH^AC5{u>Dr`feIbA0)En*o;ejb5-!i+C*d=8GsnhU z9S3j6Eh-gQRajkth~^D9P^@iO?X4GiWVmM4o*x5Ak&{xNuB?^H#8gg>b!|ZB>Ari? z;VI0~)iz`H;5!oAAbty@i!^Bt))9_vsY8!G~!o?`+kU- zwy~hC>(CmeGtSEs5W9?iv?W5Z)8~B-hz}pf3QrJaAUdY~?HO=1khOL2(MTXBp{rL1GfveVe|1wFpawQp zS&I&}(7KL;S6WOPm(&{aIt>OF$`%N#GOt=+x`QPiu(BP{O<4a*CRGhr40dlJZ;K7Z9y8ca|jcXA!X?X+!i>?LAE6X0;q<#7T*Rs)})xi?s$r=ItYD|*J z>Fs&R|lZK@io@&>$~C3VGraQ zB2d_K3w{=0MknSAPMDhT9-AhyYEpiM-OU9f^r}|&>|$9TRoTw7nLTQP7a_GBcC`I5 z_!+Q|nZUi||GF!aIw;A`n_btIcp25OZAT@!+ZIL3Rozi!+f_*4@@?Dlkju~0F7brP zsa=O36H!~nUs}C<%ZI~!x4-%guO=e8OUM81`QA0#_EUu#9aK8NX}`~ns&wTMp&;fD ztBmga^{{*UP2!atW^cak9uh1V`W`E5K9z7+YGN3zGFb$7XgtzF0skY z1{TA$j^(=XaLGtRR}(CUNhjPrYsdR?eLs416p+=AEu&Lc-mi-&3DNz-+g4x%hvu z2+@fnC7BAOb$_>-9J#4B0hXlB$`2a!@~Iitx%S^&o8RiL0|pomwzPYpt0y=qtwe@a<>hIJ5Hk6Tb*@zv zO;vw@@XvkS=t!`h?DNglZWp<9=G4;{w|6+Ky$9&=S4G0c?)s;LLub<-nV{};$3Kz5 z^{a_CsZ=J_MRSpk{A0Xp5Tv;0Hla$Io2EVeA2LeN9mn+^Eu$-nMx_G`y8Gqh_asLz zjkVPR?*CU)+r-O2*GBgGR5+z0i^<_1KyA8nk8rz7kHkiP(`#^)tr=?$7<-?7pIZ?HGeOJL%n+>!puQ(LwWRJH~e&H5ACvMq~kf6m3tUzs85&6vV4a{&$k+pH=xXP1^ zI1qhknCr6!!6S4Xa{!sII*;k?0)E@HmGo!w3d(wMkOmXy{lN?wd}8VV1J)( zZd?P-^bYZ#+hkiFnNvf(-E!Mrci(rik}lXZhE3nDAzr$U@L*&cls7P1sEcni1|0XC zb@|TNuNEdhdEU2ELlPVZcaJjxZ$bSgWHhZI;6ek$D?1fBP=F+^_wx>6i2_#FGr(?s zyXzQCBitMKAoPMP4ZstKfcG*N?;9;ikxT@pH)b6cVVWSwacEVV+YR7@|97DdhpV`{ z{SNZ90G$AKEuh6|)pE-r5$YfjzP_r;HP5x0Nxpa}upPtjla!-vd)(SyxpDo)d}EnQ z6~IOk2Z0l@fO{Nyz>;LJ|DkD)U`hWEAQP2A0WT(^iiO=ZdN^Uc_e(k=!o>-+p7bVgYaPpC0o|sT9Ymo#y&n-9E3Er+Y7x~-+(5Ca z*DjT$Yi7Wr%>4Q7SmVgZNH+&uj5j9JzZ|=}Hycp`8?4%>-v6B59vt7@h*Fw0_WEdn zFD0S`sO)*$X{04SU<#eo?Qt9=0ldJu%BVBl0-Cb828v0JF;wT^5 zWUV;qDrcQcL&GG~S6#K$qd`t4;$} zB+hpFoyOjAU>{rgrLGs?Dbk_o?(GgiF)RhxQAW24s1FZ=Ad+s8ffH)tsfC}~#}Yug z=c}`ZU+O)u)e+z{UM2Rd%i-4=bTPDk(NvEM0iTOMk?v6c?)jLY~|^XYD`SO4~AD&1Om%q z0j?akGu;nFsi8CI2jl>(3{p_W5SS%|t|!9v&S&$F>n7SMmR(>hyYHS#eBLDQP9c@) zrom#^Gk}5zwGfLQjaONPI}wUZrZ9j)-6o?aEbg>YH(h!ohc& z=?HeMHQUFUn!49wEb-k|`^>xhfe)ce^p1&K2MUYb-kX(ymH=3!4nUTk?uf-IoMXuktQ{LQqo2NOFJ+IEMy29{nQc&)DQtHWSxXES70 zcZb8lU1s;?)*alNKqaHCYsuAr)c2vFf9+*iE0qg3k#l;iEyBE(hh8)r*>Xz zwu+BlG6sltOr0%(U}5Mfb(zFviWQl1ZFOxo$a$KrOwOm=fag!~KQ+!|Wc9tf!3yp- z(e0xol}4Yp1>S%f=U?`IxRu`3IfXv-?E9GdWQI^2JG*pW zVm)gYbPh(+$0=13OM7BFH;Er#nycc zyjn3_od@!-{0@VNHx1;>sa#nJJBF@eSpnF3zYDMd1a;$nE?fq)5kEHKw)VI@u~xhrb35>O6-47%his8K zMTTgn%iF@^V5{pZdNzLtqk_ELSlQ+;CP_fp+D{zkDS79_@4plKSZX*9QKI<3 zRXxez{3G^@rgwReKe4P;pBhk42SXF1HNyYM0$3FXDhj~iHI!Jj-a-SVWd;7qkUyIX zmnc`OQ{if?jg5^05?z24U;`)JWnsdFc{(MY9PduZs`zPud~YyoT$^)YK7$Wf|7uS- z?J=*5$be=orCMH>;!%dt_cYoS#ytw}rPf=%tgot`sH|R7a^}i$91Ctt)$_FbJs-0y zdh6?Skt51q5eH{DSNtU8w>PmszWKVWq;sIGBryK0FE?bW&Cb2vd1a%+viEBcLrV8} z(;nMTf*<|VC{FSuYX)^9E-Mg@Wo{HoRm-~d<1;y<-)QzH8jp9b=dKX{WTeFsHKvtr zaqU8}{4SisdMRdj6!HIl8*1F?*dbU@8KDwd^ATLY=`Z6=qi*$by6k+$D-jYoXBM<6$=8a&4um} zK~FFg?HM#<2Ef7L^D0a=mPZdhv2K_GPDvV+IP|faYR{eILK{`SejAWU0vnhEqP*c? zW1?R#ThK-?;Nt7FH>|l2NK&J+IFDIy?`YqZcHcM`F)B&u-uaM<@+-AlcrA}qo74y2 z<`*fsejO5B6u^gkp!%X_P!~|3HIJO3=*aButZM@|nH-l8orG|gC0ohM^!te8G7e&I zVvXfM_nrPkP#4EQ7vU;vT}M;9V#6>ds|iOE2_&`J`exN*b)Q`Lt$$q4plVdJ>L}{# zL1*Q;jEq*B&vYH^}AHjv(Kw;TkOm$k|@SMTxojL2TcGY!Wx17uOWq!zN8lqlO( zz3f8bTR2v164lv6ZN^cg(9j~Cd35*3@Fc1MrsLouR^<+H9jO(+b>a1lf*};I_qmtl zK7u&(5Ybe>HII+aFyvpXx4-7y&caA9oXus!<8veK3(xyoa1>?KGUi$wy3Nt64>wux z_x!`ZfJe9aPs}Kz;ilU**l)f+7 zC=emtGPJH|?!eTd%#P2+Z;)^tY;mbS14QX^7NuX*iiMjQWKTF_^P30iH%y6C!1>w1 z*5W7Eu#eR^k-<+5V%SpG5knoy;g(w^R@0{Y!zp^@_E3gdR>4-U1QL68FBSQATZ;Nj zOP|U9z}TjE;Fd`TKAJ-F5Su^^*ZK}+A~UE_3YCuy!?*Fc`M`QylQ?k#3wC{Fo%fSv zSX3D8uIKa|9k&QP^m9xx;EKgZNpmx*7i1;jsLDo3|-M7S_prapu_MdL;?yy!CyriQZ{LCkw86XMYlK7UjiDrUHMPw*58#Fbpqb` zx0&61*xkr6j2|n;VjkDrmT`PGlK0MfQo8wzj+u5$x_=^LrMdu6*c!rATAl=-5M{4bUd+)kl4HZf# zrh%*Mx$Rn~=uZ#%G&p$0@}t&o!r;)7t`fLpr>n+Wz2_85kwFHKD{grJ6tP278VIr2 z=*uEP)LMz7O^yX-Nr{1sf@Ryy?UV7f0Pk05Ptf&1{lF#`l#hWdLhFdBr_s+iKDd3I zL4AX{G%n%cfG4<Ll0{kdo!~-b;D%*}&dbQy+`WV^e*HI3U@X4eDyYXBkoJ6d{MwNaMw*?`C#EOzZF;nK_1CMj9FIYf4u6mL;`3~=7EHbmQyF$xo zWo4cHn|lvsBsl>aGHI<_Z8>2*=nTEui%Hl~5%aQtk{w%1V} z!KcUhVuOkS#lu74r}vNZK9LxT&t0Qxm}F+fi-Mfzpq8gSxE9@h(h(^d1l`|K$(B1y zz#x@nnaXd5$IXH2YcQccihuQc5envXZ*(&dyWx$_5ruALqRD~gOs(wKIU71z-LAz8f*ajT+m%zeITUzXQ_<_`wK82ae{4bj@8Yt0n zzeOBJx;2e5-iYX$7PQPLLPbk`J5U$JK3I1^VNO(8;L!vqkA!fwKu&VdUHo;69!524Cp)SqxkJ^G63*9nB{po?=&;`Fy{2C;s5d#Yklqi|wkV&0&~C`N zN$A1J^F^Yw4>TH;wNoWtCR`@VU|K>%*n{v-3~B*FU`!pWk&qt&6@0_4=$wNKJbgx# z7>!<{dwV7=P#!uBshs&aM(|xQuMUB!Rkc6@=4)O8vu2yxrx1lQLTLZZua2!t~ z=e@!bBzg$t-O1&i_qNPJb zUePMFYHwc=3iw`vydIwvE<8CK*_#dbVf^YqY_x_EKMCLeT{R2$)j$GN#R4k0%FV<0 zH;>$)Ph>-Wc5UFEiOZh59#7qEs*1b4+fo_L7+Jb9U>^Vm-Fc?niL;GN&h6mgeTmd@p*rF zeGC~9s+tjjotTD7S`|dm@q?&q(c$25?HiE5O!uz6S0?DA4OC2D=Ab$aa=$DF!}-DP z&3DDk=rU{&8Ts-v3#>RnlX~ebVCmBZOU}@s1HuT*8O2jXAioABDORx@7tR0!9$4HS zK@E!dcz1g3sy)MdEuhdiEqtOZ+`b8n`#E%3MK{f`vs^xy$FSwTKzA5EuKXDV;wRUu zd?1EjaNNGkNg$|FLHW0%2pZ>!(l!tLCR}WPzJov4N0p4YRax?QgG3BK)uLcv&N?oy zr3UvvxJu$lCjrR`_W-}UAWX&f5J4Bz5ijs;74*0TfuntpSyvgpa9F`_ESD8^g}maz z&uHc^f17?ckgB{4BWRQy{IAyi(MB0UMHTkOO7Q&c70C>oTR?H-P`k-pq2fq_7A*Y1 zFA}EsP(KWac%}zGx{*(hPA_8|{_}gtYBOBBadKtsm<|rw%!BB_{Q)|LLGtHSDoV0; z_+}JcNTpzQ!#FMd`?mZ^5z!RboM7g3TZRa`qG3xOZ|)DBXc8F?=(FQ+_D1Ab)cSI; ztoU*br1B&%K0xtoS@>#5SQ!8vfgZLZ87F)%r3XkT(v(}?$Oi_nY-RFZh82K4<2ggI zVTtstTv3ZM#h4d2ROI<#(q6 z$ybX7bCNZq^xWAeG$HU?$J^SUv)t959ng5y74Sjq(q8 za)a_ z72%Kf(HFWQsvdzbIiN$j1Mh;6qyBHU|Knu~d14%l^aZs7M&!JGf*Zru>P;&_x%^Io zo&c6w1}x)m&eoitVAjA!(aqC3hA$VvQ@RPA#dg|0%_y~J4=i5+jxaugiZH4}P>AGb zrwW0Dj^LjB`auDaG~PWMjYpQoAi$|F03X%}13catQAfmgkP7HV02QvDD{m!9vNw&{{Jcd#2z zUk1GW)lU36UnDEcBn&pf>`h1%YD9o%TDiC82&4~H(NB}$3shMgOIS^H8*R|&W7(xQP2I^UdN#e;gjuR%l@CQ7xY8hUL zE%06e)$Ft~K)r2pG%sKy#!mr;eWl}tGS_m~;9>c(c_^bjN9BH#`ESWqYLrC;h}Uh% zw-vG42|Qsloz;v;`=%N3R0yzFzYRF8ICzF#JjDV#-H&6$M3@T*$L%9=sNcBIW+hp(ul>{K&EcU=x}m zVF2M75{3>4<7BLC&%&Z5$Om83{Qw=LXcDBP4eMP^^QHDxDt$(XI6{cB?i%Pp2O={< z5gU5xfM9+6G!_vC+}@MzN=CDUcM(F?sm(Cji*n0IbS0+M4T4%GJ_N*fhmQ#d3M)X? zKPG1Ry6E%pyYeMg5cv|I3Noq{)`Zt{LQ`BtBnzih8R}$ihB(i=9cUnpCqxsIGF3QU ziboe17p*BJ3`HzJ7OEVz^=nR!eu7wX<_7gPbNqD<1mJ)|RvtMg$dG{F9k~w}C;)3= z^0_7eTB$KPFb&=0V@W5WiHfQ2N1aY~3C(T-ir-n4AE65`~Xm zxfi4GQSa*hv8cczorf2fZ~s#W2`45&>gLIf*>FMCNq&X*T=2c%vq+85K?d-Rt&X@_ z)>T*=+rf|S?DeD%mQ+m)8!OhPD`|kqcK5^y9JVrOi614XrCD>N;01&?@Ua075gpWm z73H9c7?`Q4y3>x#Afn)3negs&KV-8-T*!ICCoEiId=Zqn`=#pa*QF1Eq6oMi3Wh>6 zgvA|2Z4SNyAGCA zzWD~zY(|icA4Zc@cH`yqQKU@Lv%0%6kxAaT;k65k@DH8jgfAkaKMmgZOKOVT zbn2#{iHJmGqjy>_UZMnz`1OMyAJ!(kK1=f{lk(|f()fyWXh<;9>WE!t2S|H|t$uZF z)@{q{>S|U~*cQp&h>r;^wzvs+>pXBaS)RQuVMi$bb>$M_2|W^Wdp8kHR9SRzly1&v zfs4g7-A?~jG%%K9B}r0TzMfEd;9*GI;N`K%2LST-Bs+91Tt9j65dIE>ztIvxh*&jv zpZ7Qn#*RjtY_>*Sn5nJ{itZ{6-fAdGZ7&NgK9(wF2x z*k7I7fjvGFGUhP*ekcTER}E9TmJx!wK8d$;=XK@2WN>qyYBar}^-9&y_}7*A&8?8L zOFbEQkjJC`dfm!hnI431v%;zi5rcF_C)mI3DboW+tGTuCho$_g*Y51mJT}K-{xJvB@I~%UdIzAAI00jdV2{79I@k6Ex#5pLyUg-Vq4UNAqY+H6KCa4wmP@7^?^u?Bu1hcltibfxnmF?eIjMw0(y1a>*Tu5A4h?T-r9;OHVWQqK275Z6s zN0WiPAa0v-DzP2o6i{jw9Mv4tx=PS-byA2xdyTzsy$hM6k-c^kGQFn_Fga{)2oH1n zGr%q)+6D(`K;fEbq!E~Pr(21S@TUI2QOe5EV+9*6_%$eVD0}w2 z7Xmm_=r{?b+_U~7_%4^QKW$WAZ7AHiD|i+3GVW(9ia2rC?BT{sp3ln}$_ri)7I4l7 z=WTMPhohP`^#5w()%?aEdnb$3^*I8OYt;Gx=Yw)L6C#f5**V}oX&na z>pf=2*8-qS=ysGT7@<>TgBLu?9dQO@a?Y5alQDdFlMDUHW0k%8oHjJB{E$d?+~2|D zhW<8-h9cei+1H!5zY1s`73T(yO+1sQ#GsEmWI?I*jFz;TfQ-Ye;?`w1GX9;!haxTW5OAX zfURx=n?D89YHh;3wVOMJvD(^g$XnXv`I`!6iO+H7y{%!!znELU-9+`bBm#onu07l4 zU?(r^-8jil4~uh`+DJv~L~kSEpvXpYQ~Z4WAwnjycH(wJc<_+_#`NJ>sMqmOO&M%Z zPaV2pSsNy|3|qGPC6mxmerL~+qPiRv2PWOV3~m28S~X)Lqv;RV4)`1?;?r4XcCxR; zX6JH9LPXiQZ`vszPe9DZV_e+Y1rID}z6nfdhk-|1Aj~Gn0huia`rEv8yonm(uqnou z`GEIDN2I+v{S|{L%Y`c*A1odXa8;-lnYn1zGR|lN`YW&|Zcps^PE5HL7HJpCspyPd zi@(-dR{isgwGaAzBQ1%;%Z(mmB3? z@ttV(k9@UTtyt0{x^q|ZsKVU-2&@Up3crvIc?x)G4eQ*Xu^Q6?OMVQvtO>C}XEr&9 zybFvvXYNYAa_d~Js#U|T-SuTNxAVLM@+1w_?Uw5M0*+CcrRU8`*P1CeiCBG@-_MDO zhVfq)$-ZU;$aWJ7@q5$@*V6&KxmOo26B0KZ@0XWYBt3z5Ss3jl9b3xT5 z^|(-AVrQMNSLm->Y(@;6Q6Ra;?*j+#fd0sM6llPm3<0)ma(PEFqhd2^xtNaKyil9XYxZIL4!DCbl^&I6m`7yl5AhzGkw1BMWMvj=f#Fj)3UqE(;K|=(<@aeXKt&!&t z23ndsFvYD^Y=5dzSzsU}5IokqXB8^SkV5N0sK)rG?|2d!_voFiPf)t3@DpO$Ld7$8 zgb!OTCG6h?iidT7WsV|BsAdY0^SxvL$NB~Dr~q3@zQZ{ofF}>S9i{_O*SNQ$JUy*@5n_YH!U4G08vJ#{_(k$3((kOV28>U{?SlqHLyf9Yos!jmEN2w z<$vrx)SeuP4E!tkRv?x^r)j|hp+(M$KR%3a8q=^d9JL{7tLmNuHdqL&if($E^>5@^ z0rI@UA+%SSI3a~WvrXYfA?)!`JzZ`n-}?)+ zK!{1*4!fUvprj^c*TR9g_`u<&`ikD0}m&NG6lk1~9d3#_-Y~nO}-DZ{*+0$I$sP# zh$~#3t)nHV)ZhDn2?4zbzIy1aJUD?*cgF)v`(fZC5$GY=cJH5R9o&JDca@nF+fO*l zpTY3c2pS70)}PkdEd+K%$g>kAh47AnG6wq~NfwabZI>V&F0s(68dm&( zX-8vIQ(o8Jhx>OTqbR~>*X#y9a@OfGqPLSE}m z^Y7WSC#8@Tc)Qz&O?XZ=$JBPXgM{Uk~z#&B@Rdz-j<$10Q70Uca z$1TGtl=fiV-$3p9RiHVJyhr?(Ggd=RB;U6~u{9DGhWlsp#`cm*i?cA2Calum#pDmc zE?KFJXqxG|>*y;HsQQ=-*%?HO@b?#U`pXy{qKRHg{&a>Y=VNDQ^x9ucV=K#JmA0at z0Nk2i1w-Pfw~>#%kY)PgQ(tc7)1lOBHqts1S1@!^H|5$Wsq^T;y~v?aLih+P=mo1^(NVX}WT?bOZ0quQ*~9sXY< z(|MU)&!pH~zr8Uk<5Y3O&&a6vSd1&!B+)u1=z%*4=c8w&{%q{=@5}!oZL`<%FM=$L zTOj(ay_Y+b2}UhyexV3iWCR%fNtua2Bm55p&!CR}hMv~3%c>|>`2waul z3lCZO!P|2gRtrqKyS~dJZHIr78h|yBXtStfkqEvArC;8 zqyuQl{>7;uO~)`)n0?zzltr|;Kl_|(aHv@My8ACBPu~A-FHdx8GmN^2d$2u%$?4!ydW7>_8?(`9y@SOefmZ8FLb(eI$B6 zKU~(?_&%jzHb<~*S@@6tyv?@IJZf0(y5FAtMFE2AEDl$%-cKj%>dXOItCusy(%@BZ zhsObzBT8TX1C>Ev_Ol_n8F^<0rstBIKL98JmMnv5hMg7#v^1?l==Y|pzCu~L4tj>! z0f~R{jP*qBl!p#Q!{9ysdu#973pqb243%OIGnu_hYX8O1zk+f+{;Vfu$iKL_dB|$W z@d>QYXIQJtGQhNrg^`2Cjpbp*m06FO(;GA7TMN+gZGI>_{p%UMs8eFe%`Nx`gZ^r#vbVc!Stt5w zzfUHm6b~1d?qLDC6rlAPH1?`zv3yKhczpmJGKO7Y1a`DP8HL%Y6P|({Ur9%F-#Flv z%w1<+-~Q#!G{C)67fG_2-ks;xmijEZvG==;xxf- z^D=6vTkmZ0L~Eaf0vSOh|Kfw&3AQe1P-lz>Jf*F7k9@a(*Zfk(WZc6Dls<8$I-0mVKI~~_EKA1nUTWIR86n_t{8-F@9 zbhgw;WJT-5W)Sjz>$vhJ)<=Wuc=h1HWb?2*BduZ^g`XRE6qTilleOawjX8zBOr%#8 z=&Lo*s}`4axQCwXoOjL0AoZxVqR41z5W6x?dgaZomDXopmU^8F$xlD`u3~`(S-)|j zs_;iij%Kl+$0m|X#qM`KGwZsNoG_EO&mdhlpfbFxy8b~4Qy-K0gZKXHpiGJ9$LRrT z5on-FPuruQ$z%zY(`w6TRl;nI1`W4*eeh1?sdi=@_)<~DsQB&5{A~xB1drN`P@Ov^ z=LHL_{bScZS2_aKo7Gv<{k{x}sk)hv`s2}F-bH&PUM#(&aVWSpN1WgnMkHdkSIcvc zMteMGx%+}rv z)pulzuk>6R)Uk;9{EH+M(-_%O;{x! zQY_mx^3YE1nAz2vYD$4#N^@Cxu;SoC^%V*VExp|qx14+^5^=|!>0cy32!bQj4G^+y zv%gw!b>?qu+%ZUlf)FCX%NGzeZaAm6#N*4BE#p3NV6Vd8d1DaIbG!r3%3x QE<18i=D?eM8voCl0AiFJ#Q*>R literal 0 HcmV?d00001 diff --git a/documentation/wireframes/images/send-msg-hi.png b/documentation/wireframes/images/send-msg-hi.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbe615f57758a99c07383ca2d7faa54c13bc12d GIT binary patch literal 285253 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

+ +

Source: ActivityPub.js

+ + + + + + +
+
+
import fetch from 'node-fetch';
+import crypto from 'crypto';
+import debug from 'debug';
+import { queue } from './queue.js';
+const logger = debug('ActivityPub');
+
+/**
+ * ActivityPubClient - a class for sending and fetching ActivityPub content
+ * @class
+ */
+export class ActivityPubClient {
+  /**
+   * Constructor for ActivityPubClient
+   * @constructor
+   * @param {Object} account - The user account.
+   */
+  constructor(account) {
+    logger('Initializing ActivityPub client for user:', account);
+    if (account) {
+      this.account = account;
+    }
+  }
+
+  /**
+   * Setter for actor property
+   * @param {Object} actor - The actor object.
+   */
+  set actor(actor) {
+    this._actor = actor;
+  }
+
+  /**
+   * Getter for actor property
+   * @returns {Object} The actor object.
+   */
+  get actor() {
+    return this._actor;
+  }
+
+  /**
+   * Setter for account property
+   * @param {Object} account - The user account.
+   */
+  set account(account) {
+    logger('Setting account:', account);
+    this._account = account;
+    this._actor = account?.actor;
+  }
+
+  /**
+   * Getter for account property
+   * @returns {Object} The user account.
+   */
+  get account() {
+    return this._account;
+  }
+
+  /**
+   * Fetches the Webfinger data for a given username
+   * @async
+   * @param {string} username - The username to fetch Webfinger data for.
+   * @returns {Promise<Object>} The Webfinger data.
+   * @throws {Error} If Webfinger fetch fails.
+   */
+  async webfinger(username) {
+    const { targetDomain } = this.getUsernameDomain(username);
+
+    const webfingerUrl = `https://${targetDomain}/.well-known/webfinger?resource=acct:${username}`;
+
+    logger(`fetch webfinger ${webfingerUrl}`);
+    const finger = await fetch(webfingerUrl, {
+      headers: {
+        Accept: 'application/jrd+json, application/json, application/ld+json'
+      }
+    });
+    if (finger.ok) {
+      const webfinger = await finger.json();
+      return webfinger;
+    } else {
+      throw new Error(`could not get webfinger ${webfingerUrl}: ${finger.status}`);
+    }
+  }
+
+  /**
+   * Fetches the actor data for a given user ID
+   * @async
+   * @param {string} userId - The user ID to fetch actor data for.
+   * @returns {Promise<Object>} The actor data.
+   * @throws {Error} If actor fetch fails.
+   */
+  async fetchActor(userId) {
+    const actorQuery = await ActivityPub.fetch(userId, {});
+    if (actorQuery.ok) {
+      const actor = await actorQuery.json();
+      return actor;
+    } else {
+      throw new Error('failed to load actor');
+    }
+  }
+
+  /**
+   * Fetch an ActivityPub URL using the current actor to sign the request
+   * @param {*} targetUrl url of activitypub resource
+   * @param {*} options options for the fetch, excluding header
+   * @returns a fetch promise
+   */
+  async fetch(targetUrl, options) {
+    logger('Fetch:', targetUrl);
+
+    const url = new URL(targetUrl);
+    const urlFragment = url.pathname + (url.searchParams.toString() ? `?${url.searchParams.toString()}` : '');
+
+    const signer = crypto.createSign('sha256');
+    const date = new Date();
+    const stringToSign = `(request-target): get ${urlFragment}\nhost: ${url.hostname}\ndate: ${date.toUTCString()}`;
+    signer.update(stringToSign);
+    signer.end();
+    const signature = signer.sign(this.account.privateKey);
+    const signatureB64 = signature.toString('base64');
+    const header = `keyId="${this.actor.publicKey.id}",headers="(request-target) host date",signature="${signatureB64}"`;
+    options.headers = {
+      Date: date.toUTCString(),
+      Host: url.hostname,
+      Accept: 'application/activity+json, application/ld+json; profile="https://www.w3.org/ns/activitystreams"',
+      Signature: header
+    };
+
+    const controller = new AbortController();
+    // set timeout for 5s
+    setTimeout(() => controller.abort(), 5000);
+    options.signal = controller.signal;
+
+    const query = fetch(targetUrl, options);
+
+    return query;
+  }
+
+  /**
+   * Send an ActivityPub activity to a user
+   * @param {*} recipient
+   * @param {*} message
+   * @returns a fetch result
+   */
+  async send(recipient, message) {
+    queue.enqueue(() => {
+      let url;
+      try {
+        url = new URL(recipient.inbox);
+      } catch (err) {
+        console.error('INVALID INBOX URL', recipient);
+        throw err;
+      }
+      const inboxFragment = url.pathname;
+
+      const digestHash = crypto.createHash('sha256').update(JSON.stringify(message)).digest('base64');
+      const signer = crypto.createSign('sha256');
+      const date = new Date();
+      const stringToSign = `(request-target): post ${inboxFragment}\nhost: ${
+        url.hostname
+      }\ndate: ${date.toUTCString()}\ndigest: SHA-256=${digestHash}`;
+      signer.update(stringToSign);
+      signer.end();
+      const signature = signer.sign(this.account.privateKey);
+      const signatureB64 = signature.toString('base64');
+      const header = `keyId="${this.actor.publicKey.id}",headers="(request-target) host date digest",signature="${signatureB64}"`;
+
+      logger('OUTBOUND TO ', recipient.inbox);
+      logger('MESSAGE', message);
+
+      const controller = new AbortController();
+      setTimeout(() => controller.abort(), 10000);
+      return fetch(
+        recipient.inbox,
+        {
+          headers: {
+            Host: url.hostname,
+            'Content-type': 'application/activity+json',
+            Date: date.toUTCString(),
+            Digest: `SHA-256=${digestHash}`,
+            Signature: header
+          },
+          method: 'POST',
+          json: true,
+          body: JSON.stringify(message),
+          signal: controller.signal
+        },
+        function (error, response) {
+          if (error) {
+            console.error('Error sending outbound message:', error, response);
+          } else {
+            logger('Response', response.status);
+          }
+        }
+      );
+    });
+  }
+
+  /**
+   * Send a like message to the author of a post
+   * @param {*} post activity being liked
+   * @param {*} recipient actor record for author of post
+   * @returns
+   */
+  async sendLike(post, recipient) {
+    const guid = crypto.randomBytes(16).toString('hex');
+    const message = {
+      '@context': 'https://www.w3.org/ns/activitystreams',
+      id: `${this.actor.id}/likes/${guid}`,
+      type: 'Like',
+      actor: this.actor.id,
+      object: post.id
+    };
+
+    ActivityPub.send(recipient, message);
+
+    // return the guid to make this undoable.
+    return message;
+  }
+
+  /**
+   * Send an undo message about a like that was sent previously.
+   * @param {*} post post that is being unliked
+   * @param {*} recipient  actor record for author of post
+   * @param {*} originalActivityId id of original outbound like activity that is being undone
+   * @returns
+   */
+  async sendUndoLike(post, recipient, originalActivityId) {
+    const message = {
+      '@context': 'https://www.w3.org/ns/activitystreams',
+      id: `${originalActivityId}/undo`,
+      type: 'Undo',
+      actor: this.actor.id,
+      object: {
+        id: `${originalActivityId}`,
+        type: 'Like',
+        actor: this.actor.id,
+        object: post.id
+      }
+    };
+    ActivityPub.send(recipient, message);
+    return message;
+  }
+
+  /**
+   * Send a follow request
+   * @param {*} recipient
+   * @returns
+   */
+  async sendFollow(recipient) {
+    const guid = crypto.randomBytes(16).toString('hex');
+    const message = {
+      '@context': 'https://www.w3.org/ns/activitystreams',
+      id: `${this.actor.id}/follows/${guid}`,
+      type: 'Follow',
+      actor: this.actor.id,
+      object: recipient.id
+    };
+    ActivityPub.send(recipient, message);
+
+    // return the guid to make this undoable.
+    return message;
+  }
+
+  /**
+   * Send an undo about a previously sent follow
+   * @param {*} recipient
+   * @param {*} originalActivityId
+   * @returns
+   */
+  async sendUndoFollow(recipient, originalActivityId) {
+    const message = {
+      '@context': 'https://www.w3.org/ns/activitystreams',
+      id: `${originalActivityId}/undo`,
+      type: 'Undo',
+      actor: this.actor.id,
+      object: {
+        id: originalActivityId,
+        type: 'Follow',
+        actor: this.actor.id,
+        object: recipient.id
+      }
+    };
+    ActivityPub.send(recipient, message);
+
+    // return the guid to make this undoable.
+    return message;
+  }
+
+  /**
+   * Send an Accept for an incoming follow request
+   * @param {*} followRequest
+   */
+  async sendAccept(recipient, followRequest) {
+    const guid = crypto.randomBytes(16).toString('hex');
+    const message = {
+      '@context': 'https://www.w3.org/ns/activitystreams',
+      id: `${this.actor.id}/accept/${guid}`,
+      type: 'Accept',
+      actor: this.actor.id,
+      object: followRequest
+    };
+    ActivityPub.send(recipient, message);
+
+    return message;
+  }
+
+  /**
+   * Send an outbound update activity to a follower or recipient of a message
+   * @param {*} recipient
+   * @param {*} object
+   * @returns
+   */
+  async sendUpdate(recipient, object) {
+    const message = {
+      '@context': 'https://www.w3.org/ns/activitystreams',
+      id: `${object.id}/activity`,
+      published: object.published,
+      type: 'Update',
+      actor: this.actor.id,
+      object,
+      to: object.to,
+      cc: object.cc
+    };
+    ActivityPub.send(recipient, message);
+    return message;
+  }
+
+  /**
+   * Send an outbound create activity to a follower or recipient of a message
+   * @param {*} recipient
+   * @param {*} object
+   * @returns
+   */
+  async sendCreate(recipient, object) {
+    const message = {
+      '@context': 'https://www.w3.org/ns/activitystreams',
+      id: `${object.id}/activity`,
+      published: object.published,
+      type: 'Create',
+      actor: this.actor.id,
+      object,
+      to: object.to,
+      cc: object.cc
+    };
+    ActivityPub.send(recipient, message);
+    return message;
+  }
+
+  /**
+   * Send a boost for a specific post to the posts author and our followers
+   * @param {*} primaryRecipient
+   * @param {*} post
+   * @param {*} followers
+   * @returns
+   */
+  async sendBoost(primaryRecipient, post, followers) {
+    const guid = crypto.randomBytes(16).toString('hex');
+
+    // send to followers and original poster
+    const recipients = [
+      this.actor.followers, // this is a reference to the follower list that we will dereference later
+      primaryRecipient.id // this is a reference to the recipient
+    ];
+
+    const message = {
+      '@context': 'https://www.w3.org/ns/activitystreams',
+      id: `${this.actor.id}/boosts/${guid}`,
+      type: 'Announce',
+      actor: this.actor.id,
+      published: new Date().toISOString(),
+      object: post.id,
+      to: ['https://www.w3.org/ns/activitystreams#Public'],
+      cc: recipients
+    };
+
+    // deliver outbound messages to all recipients
+    recipients.forEach(recipient => {
+      // if the recipient is "my followers", send it to them
+      if (recipient === this.actor.followers) {
+        followers.forEach(follower => {
+          ActivityPub.send(follower, message);
+        });
+      } else {
+        // otherwise, send it directly to the person
+        ActivityPub.send(primaryRecipient, message);
+      }
+    });
+
+    // return the guid to make this undoable.
+    return message;
+  }
+
+  /**
+   * Send an undo of a previously sent boost
+   * @param {*} primaryRecipient
+   * @param {*} post
+   * @param {*} followers
+   * @param {*} originalActivityId
+   * @returns
+   */
+  async sendUndoBoost(primaryRecipient, post, followers, originalActivityId) {
+    // send to followers and original poster
+    const recipients = [
+      this.actor.followers, // this is a reference to the follower list that we will dereference later
+      post.attributedTo // this is a reference to the recipient
+    ];
+
+    const message = {
+      '@context': 'https://www.w3.org/ns/activitystreams',
+      id: `${originalActivityId}/undo`,
+      type: 'Undo',
+      actor: this.actor.id,
+      object: {
+        id: originalActivityId,
+        type: 'Announce',
+        actor: this.actor.id,
+        object: post.id
+      },
+      to: ['https://www.w3.org/ns/activitystreams#Public'],
+      cc: recipients
+    };
+
+    // deliver outbound messages to all recipients
+    recipients.forEach(recipient => {
+      // if the recipient is "my followers", send it to them
+      if (recipient === this.actor.followers) {
+        followers.forEach(follower => {
+          ActivityPub.send(follower, message);
+        });
+      } else {
+        // otherwise, send it directly to the person
+        ActivityPub.send(primaryRecipient, message);
+      }
+    });
+
+    // return the guid to make this undoable.
+    return message;
+  }
+
+  getUsernameDomain(userIdorName) {
+    let targetDomain = '';
+    let username = '';
+    if (!userIdorName) {
+      return { username, targetDomain };
+    }
+    if (userIdorName.startsWith('https://')) {
+      const actor = new URL(userIdorName);
+      targetDomain = actor.hostname;
+      username = actor.pathname.split(/\//);
+      username = username[username.length - 1];
+    } else {
+      // handle leading @
+      [username, targetDomain] = userIdorName.replace(/^@/, '').split('@');
+    }
+
+    return {
+      username,
+      targetDomain
+    };
+  }
+
+  getUsername(userIdorName) {
+    const { username, targetDomain } = this.getUsernameDomain(userIdorName);
+    return `${username}@${targetDomain}`;
+  }
+
+  async fetchOutbox(actor) {
+    if (actor.outbox) {
+      try {
+        const actorQuery = await ActivityPub.fetch(actor.outbox, {});
+        if (actorQuery.ok) {
+          const rootOutbox = await actorQuery.json();
+          let items = [];
+          let outboxPage;
+          // find the first element.
+          if (rootOutbox.first) {
+            if (typeof rootOutbox.first === 'string') {
+              const pageQuery = await ActivityPub.fetch(rootOutbox.first, {});
+              if (pageQuery.ok) {
+                outboxPage = await pageQuery.json();
+                items = outboxPage.orderedItems || [];
+              } else {
+                logger(
+                  'failed to load outbox first page',
+                  rootOutbox.first,
+                  pageQuery.status,
+                  pageQuery.statusText,
+                  await pageQuery.text()
+                );
+              }
+            } else {
+              items = rootOutbox.first.orderedItems || [];
+              outboxPage = rootOutbox.first;
+            }
+          }
+
+          return {
+            outbox: rootOutbox,
+            page: outboxPage,
+            items
+          };
+        } else {
+          logger(
+            'failed to load outbox index',
+            actor.outbox,
+            actorQuery.status,
+            actorQuery.statusText,
+            await actorQuery.text()
+          );
+        }
+      } catch (err) {
+        console.error(err);
+      }
+    }
+    return [];
+  }
+
+  /**
+   * Validate the signature on an incoming request to the inbox
+   * @param {*} actor
+   * @param {*} req
+   * @returns true if signature is valid
+   */
+  validateSignature(actor, req) {
+    const signature = {};
+    req.headers.signature
+      .split(/,/)
+      .map(c => c.split(/=/))
+      .forEach(([key, val]) => {
+        signature[key] = val.replace(/^"/, '').replace(/"$/, '');
+        return signature[key];
+      });
+    // construct string from headers
+    const fields = signature.headers.split(/\s/);
+    const str = fields
+      .map(f => (f === '(request-target)' ? '(request-target): post /api/inbox' : `${f}: ${req.header(f)}`))
+      .join('\n');
+    try {
+      if (actor) {
+        const verifier = crypto.createVerify('RSA-SHA256');
+        verifier.update(str);
+        const res = verifier.verify(actor.publicKey.publicKeyPem, signature.signature, 'base64');
+        return res;
+      } else {
+        return false;
+      }
+    } catch (err) {
+      // console.error(err); // any server will get a lot of junk Deletes
+      return false;
+    }
+  }
+}
+
+export const ActivityPub = new ActivityPubClient();
+
+
+
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 4.0.2 on Thu Dec 14 2023 18:11:22 GMT-0800 (Pacific Standard Time) +
+ + + + + diff --git a/apiDocumentation/ActivityPubClient.html b/apiDocumentation/ActivityPubClient.html new file mode 100644 index 0000000..0d64775 --- /dev/null +++ b/apiDocumentation/ActivityPubClient.html @@ -0,0 +1,2906 @@ + + + + + JSDoc: Class: ActivityPubClient + + + + + + + + + + +
+ +

Class: ActivityPubClient

+ + + + + + +
+ +
+ +

ActivityPubClient(account)

+ +
ActivityPubClient - a class for sending and fetching ActivityPub content
+ + +
+ +
+
+ + + + +

Constructor

+ + + +

new ActivityPubClient(account)

+ + + + + + +
+ Constructor for ActivityPubClient +
+ + + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
account + + +Object + + + + The user account.
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +

Classes

+ +
+
ActivityPubClient
+
+
+ + + + + + + + + +

Members

+ + + +

account

+ + + + +
+ Setter for account property +
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + +

account

+ + + + +
+ Getter for account property +
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + +

actor

+ + + + +
+ Setter for actor property +
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + +

actor

+ + + + +
+ Getter for actor property +
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + +

Methods

+ + + + + + + +

(async) fetch(targetUrl, options)

+ + + + + + +
+ Fetch an ActivityPub URL using the current actor to sign the request +
+ + + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
targetUrl + + +* + + + + url of activitypub resource
options + + +* + + + + options for the fetch, excluding header
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + + + + + + +
Returns:
+ + +
+ a fetch promise +
+ + + + + + + + + + + + + + + +

(async) fetchActor(userId) → {Promise.<Object>}

+ + + + + + +
+ Fetches the actor data for a given user ID +
+ + + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
userId + + +string + + + + The user ID to fetch actor data for.
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + + + + +
Throws:
+ + + +
+
+
+ If actor fetch fails. +
+
+
+
+
+
+ Type +
+
+ +Error + + +
+
+
+
+
+ + + + + +
Returns:
+ + +
+ The actor data. +
+ + + +
+
+ Type +
+
+ +Promise.<Object> + + +
+
+ + + + + + + + + + + + + +

(async) send(recipient, message)

+ + + + + + +
+ Send an ActivityPub activity to a user +
+ + + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
recipient + + +* + + + +
message + + +* + + + +
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + + + + + + +
Returns:
+ + +
+ a fetch result +
+ + + + + + + + + + + + + + + +

(async) sendAccept(followRequest)

+ + + + + + +
+ Send an Accept for an incoming follow request +
+ + + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
followRequest + + +* + + + +
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

(async) sendBoost(primaryRecipient, post, followers)

+ + + + + + +
+ Send a boost for a specific post to the posts author and our followers +
+ + + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
primaryRecipient + + +* + + + +
post + + +* + + + +
followers + + +* + + + +
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + + + + + + +
Returns:
+ + + + + + + + + + + + + + + + +

(async) sendCreate(recipient, object)

+ + + + + + +
+ Send an outbound create activity to a follower or recipient of a message +
+ + + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
recipient + + +* + + + +
object + + +* + + + +
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + + + + + + +
Returns:
+ + + + + + + + + + + + + + + + +

(async) sendFollow(recipient)

+ + + + + + +
+ Send a follow request +
+ + + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
recipient + + +* + + + +
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + + + + + + +
Returns:
+ + + + + + + + + + + + + + + + +

(async) sendLike(post, recipient)

+ + + + + + +
+ Send a like message to the author of a post +
+ + + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
post + + +* + + + + activity being liked
recipient + + +* + + + + actor record for author of post
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + + + + + + +
Returns:
+ + + + + + + + + + + + + + + + +

(async) sendUndoBoost(primaryRecipient, post, followers, originalActivityId)

+ + + + + + +
+ Send an undo of a previously sent boost +
+ + + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
primaryRecipient + + +* + + + +
post + + +* + + + +
followers + + +* + + + +
originalActivityId + + +* + + + +
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + + + + + + +
Returns:
+ + + + + + + + + + + + + + + + +

(async) sendUndoFollow(recipient, originalActivityId)

+ + + + + + +
+ Send an undo about a previously sent follow +
+ + + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
recipient + + +* + + + +
originalActivityId + + +* + + + +
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + + + + + + +
Returns:
+ + + + + + + + + + + + + + + + +

(async) sendUndoLike(post, recipient, originalActivityId)

+ + + + + + +
+ Send an undo message about a like that was sent previously. +
+ + + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
post + + +* + + + + post that is being unliked
recipient + + +* + + + + actor record for author of post
originalActivityId + + +* + + + + id of original outbound like activity that is being undone
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + + + + + + +
Returns:
+ + + + + + + + + + + + + + + + +

(async) sendUpdate(recipient, object)

+ + + + + + +
+ Send an outbound update activity to a follower or recipient of a message +
+ + + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
recipient + + +* + + + +
object + + +* + + + +
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + + + + + + +
Returns:
+ + + + + + + + + + + + + + + + +

validateSignature(actor, req)

+ + + + + + +
+ Validate the signature on an incoming request to the inbox +
+ + + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
actor + + +* + + + +
req + + +* + + + +
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + + + + + + +
Returns:
+ + +
+ true if signature is valid +
+ + + + + + + + + + + + + + + +

(async) webfinger(username) → {Promise.<Object>}

+ + + + + + +
+ Fetches the Webfinger data for a given username +
+ + + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
username + + +string + + + + The username to fetch Webfinger data for.
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + + + + +
Throws:
+ + + +
+
+
+ If Webfinger fetch fails. +
+
+
+
+
+
+ Type +
+
+ +Error + + +
+
+
+
+
+ + + + + +
Returns:
+ + +
+ The Webfinger data. +
+ + + +
+
+ Type +
+
+ +Promise.<Object> + + +
+
+ + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 4.0.2 on Thu Dec 14 2023 18:11:22 GMT-0800 (Pacific Standard Time) +
+ + + + + \ No newline at end of file diff --git a/apiDocumentation/Markdown.js.html b/apiDocumentation/Markdown.js.html new file mode 100644 index 0000000..9b169da --- /dev/null +++ b/apiDocumentation/Markdown.js.html @@ -0,0 +1,105 @@ + + + + + JSDoc: Source: Markdown.js + + + + + + + + + + +
+ +

Source: Markdown.js

+ + + + + + +
+
+
/* This module contains the markdown renderer used to format posts
+
+ By default, urls will be linkifies with nofollow, noopener, and noreferrer attributes
+ Override those attributes by setting LINK_ATTRIBUTES in the .env file
+
+Usage:
+const html = md.render(markdown);
+
+*/
+
+import dotenv from 'dotenv';
+import MarkdownIt from 'markdown-it';
+
+dotenv.config();
+
+const md = new MarkdownIt({
+  html: true,
+  linkify: true
+});
+
+const LINK_ATTRIBUTES = process.env.LINK_ATTRIBUTES || 'nofollow noopener noreferrer';
+
+/**
+ * The above function modifies the rendering of link tags in Markdown by adding a "rel" attribute with
+ * the value of LINK_ATTRIBUTES.
+ * @param tokens - The `tokens` parameter is an array of token objects. Each token object represents a
+ * part of the Markdown document, such as a paragraph, heading, link, etc. The `tokens` array is passed
+ * to the renderer function to generate the corresponding HTML output.
+ * @param idx - The `idx` parameter in the code refers to the index of the current token being rendered
+ * in the array of tokens.
+ * @param options - The `options` parameter is an object that contains various options and
+ * configurations for the Markdown renderer. It can include settings such as the rendering mode, the
+ * HTML tag names to use for different elements, and other customization options.
+ * @param env - The `env` parameter in the code snippet refers to the environment object. It is an
+ * optional parameter that can be used to pass additional information or configuration to the rendering
+ * rules. It can be used to store and access data that needs to be shared between different rendering
+ * rules.
+ * @param self - The `self` parameter refers to the Markdown-it instance. It is used to access the
+ * `renderToken` method and the `renderer` object, which contains the rules for rendering Markdown
+ * tokens.
+ *
+ * customize the link formatter to include noopener noreferrer links
+ * this prevents browsers from telling downstream pages about where the links came from
+ * and protects the privacy of our users.
+ * code from: https://publishing-project.rivendellweb.net/customizing-markdown-it/
+ */
+const proxy = (tokens, idx, options, env, self) => self.renderToken(tokens, idx, options);
+const defaultLinkOpenRenderer = md.renderer.rules.link_open || proxy;
+md.renderer.rules.link_open = function (tokens, idx, options, env, self) {
+  tokens[idx].attrJoin('rel', LINK_ATTRIBUTES);
+  return defaultLinkOpenRenderer(tokens, idx, options, env, self);
+};
+
+export { md, LINK_ATTRIBUTES };
+
+
+
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 4.0.2 on Thu Dec 14 2023 18:11:22 GMT-0800 (Pacific Standard Time) +
+ + + + + diff --git a/apiDocumentation/account.js.html b/apiDocumentation/account.js.html new file mode 100644 index 0000000..eb1796a --- /dev/null +++ b/apiDocumentation/account.js.html @@ -0,0 +1,178 @@ + + + + + JSDoc: Source: account.js + + + + + + + + + + +
+ +

Source: account.js

+ + + + + + +
+
+
import express from 'express';
+import { getFollowers } from '../lib/account.js';
+
+/**
+ * Express.js router for handling user profile-related routes.
+ *
+ * @typedef {Object} UserProfileRouter
+ * @property {Function} getProfile - Route handler for retrieving a user profile by name.
+ * @property {Function} getFollowers - Route handler for retrieving followers of a user profile by name.
+ *
+ * @example
+ * // Example usage:
+ * const userProfileRouter = express.Router();
+ * userProfileRouter.get('/:name', userProfileHandlers.getProfile);
+ * userProfileRouter.get('/:name/followers', userProfileHandlers.getFollowers);
+ * app.use('/profiles', userProfileRouter);
+ */
+export const router = express.Router();
+
+/**
+ * Handle GET requests for a user profile by name.
+ *
+ * @function
+ * @param {Object} req - Express.js request object.
+ * @param {Object} res - Express.js response object.
+ * @returns {void} Responds with a user profile or redirects based on the request.
+ *
+ * @throws {Error} Responds with a 400 Bad Request if the 'name' parameter is missing.
+ * @throws {Error} Responds with a 404 Not Found if no record is found for the provided 'name'.
+ *
+ * @example
+ * // Example route:
+ * // GET /profiles/:name
+ * router.get('/:name', function (req, res) {
+ *   // ... (route handler implementation)
+ * });
+ */
+router.get('/:name', (req, res) => {
+  // Extract the 'name' parameter from the request
+  let name = req.params.name;
+
+  // Handle missing 'name' parameter with a 400 Bad Request response
+  if (!name) {
+    return res.status(400).send('Bad request.');
+  } else {
+    // Obtain the domain from the app settings
+    const domain = req.app.get('domain');
+
+    // Append the user profile URL path to the domain
+    name = `https://${domain}/u/${name}`;
+
+    // Check if the provided 'name' matches the stored user profile ID
+    if (name !== req.app.get('account').actor.id) {
+      // Respond with a 404 Not Found if no record is found for the provided 'name'
+      return res.status(404).send(`No record found for ${name}.`);
+    } else {
+      // Check the 'Accept' header for JSON-LD format and respond accordingly
+      if (req.headers.accept?.includes('application/ld+json')) {
+        // Respond with the user profile in JSON-LD format
+        res.json(req.app.get('account').actor);
+      } else {
+        // Redirect to the user profile URL or the default domain
+        res.redirect(req.app.get('account').actor.url || `https://${domain}/`);
+      }
+    }
+  }
+});
+
+/**
+ * Handle GET requests for the followers of a user profile by name.
+ *
+ * @function
+ * @param {Object} req - Express.js request object.
+ * @param {Object} res - Express.js response object.
+ * @returns {void} Responds with a collection of followers or an error message based on the request.
+ *
+ * @throws {Error} Responds with a 400 Bad Request if the 'name' parameter is missing.
+ * @throws {Error} Responds with a 404 Not Found if no record is found for the provided 'name'.
+ *
+ * @example
+ * // Example route:
+ * // GET /profiles/:name/followers
+ * router.get('/:name/followers', function (req, res) {
+ *   // ... (route handler implementation)
+ * });
+ */
+router.get('/:name/followers', (req, res) => {
+  // Extract the 'name' parameter from the request
+  let name = req.params.name;
+
+  // Handle missing 'name' parameter with a 400 Bad Request response
+  if (!name) {
+    return res.status(400).send('Bad request.');
+  } else {
+    // Obtain the domain from the app settings
+    const domain = req.app.get('domain');
+
+    // Append the user profile URL path to the domain
+    name = `https://${domain}/u/${name}`;
+
+    // Check if the provided 'name' matches the stored user profile ID
+    if (name !== req.app.get('account').actor.id) {
+      // Respond with a 404 Not Found if no record is found for the provided 'name'
+      return res.status(404).send(`No record found for ${name}.`);
+    } else {
+      // Retrieve followers for the user profile
+      const followers = getFollowers();
+
+      // Assemble the followers collection in ActivityStreams format
+      const followersCollection = {
+        type: 'OrderedCollection',
+        totalItems: followers.length,
+        id: `https://${domain}/u/${name}/followers`,
+        first: {
+          type: 'OrderedCollectionPage',
+          totalItems: followers.length,
+          partOf: `https://${domain}/u/${name}/followers`,
+          orderedItems: followers,
+          id: `https://${domain}/u/${name}/followers?page=1`
+        },
+        '@context': ['https://www.w3.org/ns/activitystreams']
+      };
+      // Respond with the followers collection in JSON format
+      res.json(followersCollection);
+    }
+  }
+});
+
+
+
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 4.0.2 on Thu Dec 14 2023 18:13:17 GMT-0800 (Pacific Standard Time) +
+ + + + + diff --git a/apiDocumentation/authentication.js.html b/apiDocumentation/authentication.js.html new file mode 100644 index 0000000..c67cc37 --- /dev/null +++ b/apiDocumentation/authentication.js.html @@ -0,0 +1,181 @@ + + + + + JSDoc: Source: authentication.js + + + + + + + + + + +
+ +

Source: authentication.js

+ + + + + + +
+
+
import dotenv from 'dotenv';
+import { ensureAccount, getAccount } from './account.js';
+import { promises as fsPromises } from 'fs';
+import { ActivityPub } from './ActivityPub.js';
+
+/**
+ * The function `getUsername` retrieves the value of the `USER_NAME` environment variable.
+ * @returns The function `getUsername` is returning the value of the `USER_NAME` environment variable.
+ */
+const getUsername = () => {
+  dotenv.config();
+  const { USER_NAME } = process.env;
+  return USER_NAME;
+};
+
+/**
+ * The function `getPassword` retrieves the value of the `PASS` environment variable using the `dotenv`
+ * package.
+ * @returns The function `getPassword` is returning the value of the `PASS` environment variable.
+ */
+const getPassword = () => {
+  dotenv.config();
+  const { PASS } = process.env;
+  return PASS;
+};
+
+/**
+ * The function `authenticateLogin` checks if the provided username and password match the stored
+ * username and password.
+ * @param username - The `username` parameter is the username entered by the user during the login
+ * process.
+ * @param password - The `password` parameter is the password entered by the user during the login
+ * process.
+ * @returns a boolean value. It returns true if the provided username and password match the stored
+ * username and password, and false otherwise.
+ */
+export const authenticateLogin = (username, password) => {
+  if (username === getUsername() && password === getPassword()) {
+    return true;
+  }
+  return false;
+};
+
+/**
+ * The `createAccount` function creates a new account, sets the account in the app, sets a token in a
+ * cookie, and redirects to a private route.
+ * @param req - The `req` parameter is an object that represents the HTTP request made by the client.
+ * It contains information such as the request headers, request body, request method, request URL, and
+ * other relevant details.
+ * @param res - The `res` parameter is the response object that is used to send the response back to
+ * the client. It contains methods and properties that allow you to control the response, such as
+ * setting headers, sending data, and redirecting the client to a different URL.
+ */
+export const createAccount = async (req, res) => {
+  const { username, domain } = req.body;
+
+  try {
+    await ensureAccount(username, domain);
+
+    // Set account in the app
+    const myaccount = await getAccount();
+    req.app.set('account', myaccount);
+
+    // Set token in cookie
+    res.cookie('token', myaccount.apikey);
+
+    // Redirect to private route
+    res.redirect('/private');
+  } catch (error) {
+    console.error('Error creating account:', error);
+    res.status(500).send('Internal Server Error');
+  }
+};
+
+/**
+ * The function `writeEnvToFile` writes the values of `username`, `password`, and `domain` to a `.env`
+ * file.
+ * @param req - The `req` parameter is an object that represents the HTTP request made to the server.
+ * It contains information about the request, such as the request method, headers, and body.
+ * @param res - The `res` parameter is the response object. It is used to send a response back to the
+ * client after the operation is completed.
+ */
+export const writeEnvToFile = async (req, res) => {
+  const { username, password, domain } = req.body;
+
+  const envData = `
+    USER_NAME=${username}
+    PASS=${password}
+    DOMAIN=${domain}
+    `;
+
+  const envFilePath = './.env';
+
+  try {
+    await fsPromises.writeFile(envFilePath, envData);
+    console.log('Data has been written to .env file');
+  } catch (error) {
+    console.error('Error writing to .env file:', error);
+  }
+};
+
+/**
+ * The function checks if the user is authenticated by comparing the token in the request cookies with
+ * the API key stored in the account, and redirects to the login page if not authenticated.
+ * @param req - The `req` parameter is the request object, which contains information about the
+ * incoming HTTP request from the client. It includes properties such as the request headers, query
+ * parameters, request body, cookies, etc.
+ * @param res - The `res` parameter is the response object that is used to send a response back to the
+ * client. It contains methods and properties that allow you to control the response, such as setting
+ * headers, sending data, and redirecting the client to a different URL.
+ * @param next - The `next` parameter is a function that is used to pass control to the next middleware
+ * function in the request-response cycle. It is typically called at the end of the current middleware
+ * function to indicate that it has completed its processing and the next middleware function should be
+ * called.
+ * @returns If the condition `req.cookies.token && req.cookies.token === myaccount.apikey` is true,
+ * then the `next()` function will be called, which means the control will be passed to the next
+ * middleware function in the request-response cycle.
+ */
+export const handleAuthenticatedUser = (req, res, next) => {
+  const myaccount = getAccount();
+  req.app.set('account', myaccount);
+  ActivityPub.account = myaccount;
+
+  if (req.cookies.token && req.cookies.token === myaccount.apikey) {
+    console.log('TOKEN', req.cookies);
+    return next();
+  } else {
+    res.redirect('/account/login');
+  }
+};
+
+
+
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 4.0.2 on Thu Dec 14 2023 18:11:22 GMT-0800 (Pacific Standard Time) +
+ + + + + diff --git a/apiDocumentation/fonts/OpenSans-Bold-webfont.eot b/apiDocumentation/fonts/OpenSans-Bold-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..5d20d916338a5890a033952e2e07ba7380f5a7d3 GIT binary patch literal 19544 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 literal 0 HcmV?d00001 diff --git a/apiDocumentation/fonts/OpenSans-Bold-webfont.svg b/apiDocumentation/fonts/OpenSans-Bold-webfont.svg new file mode 100644 index 0000000..3ed7be4 --- /dev/null +++ b/apiDocumentation/fonts/OpenSans-Bold-webfont.svg @@ -0,0 +1,1830 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apiDocumentation/fonts/OpenSans-Bold-webfont.woff b/apiDocumentation/fonts/OpenSans-Bold-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..1205787b0ed50db71ebd4f8a7f85d106721ff258 GIT binary patch literal 22432 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 ig3W + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apiDocumentation/fonts/OpenSans-BoldItalic-webfont.woff b/apiDocumentation/fonts/OpenSans-BoldItalic-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..ed760c0628b6a0026041f5b8bba466a0471fd2e0 GIT binary patch literal 23048 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apiDocumentation/fonts/OpenSans-Italic-webfont.woff b/apiDocumentation/fonts/OpenSans-Italic-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..ff652e64356b538c001423b6aedefcf1ee66cd17 GIT binary patch literal 23188 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 literal 0 HcmV?d00001 diff --git a/apiDocumentation/fonts/OpenSans-Light-webfont.svg b/apiDocumentation/fonts/OpenSans-Light-webfont.svg new file mode 100644 index 0000000..11a472c --- /dev/null +++ b/apiDocumentation/fonts/OpenSans-Light-webfont.svg @@ -0,0 +1,1831 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apiDocumentation/fonts/OpenSans-Light-webfont.woff b/apiDocumentation/fonts/OpenSans-Light-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..e786074813a27d0a7a249047832988d5bf0fe756 GIT binary patch literal 22248 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 literal 0 HcmV?d00001 diff --git a/apiDocumentation/fonts/OpenSans-LightItalic-webfont.eot b/apiDocumentation/fonts/OpenSans-LightItalic-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..8f445929ffb03b50e98c2a2f7d831a0cb1b276a2 GIT binary patch literal 20535 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 Z%0#`NexefPFV?Xj51H#Y#AC7WXn+Jg($4?@ literal 0 HcmV?d00001 diff --git a/apiDocumentation/fonts/OpenSans-LightItalic-webfont.svg b/apiDocumentation/fonts/OpenSans-LightItalic-webfont.svg new file mode 100644 index 0000000..431d7e3 --- /dev/null +++ b/apiDocumentation/fonts/OpenSans-LightItalic-webfont.svg @@ -0,0 +1,1835 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apiDocumentation/fonts/OpenSans-LightItalic-webfont.woff b/apiDocumentation/fonts/OpenSans-LightItalic-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..43e8b9e6cc061ff17fd2903075cbde12715512b3 GIT binary patch literal 23400 zcmZ^}18`?e^d=nJb~3STXQGL1+qNgRZQHhO+n(6?g`2m&|5saEwcEFzI(?pdPWS2V zs@A=3a$;gYz(7Aq%Nz*xKbeL0|LOnb|IZ{QrYr*l1YGvR;{69BS5Sbsh^W{PH}s};C5xs-P6IW9C4Fm)c^Z$WI+_ zKQcZN)>FvL!0E>qLGZ^0>VJS_X6<46!~FpQ65av=a!IPXxTrTbF)#)KQY8JcVfg_& zkYSRf`49QSssHG|en5%<2CiXlQ!y~@gw>Vptzt$wgxsPKit}n&C^eeb)HbU-}ZJ+KkZVV`{6!+%7Y0f))BOK zH2Lw>{NaG&{=rYh?Cy_YwQWe{ zPm`CO&kC-(_gf(w6)-|{nERgZ6RsvdyBDG14<$j7ef=mZG#)(n>lL4E#HZjlVc1)u zE$o?o=hs&I8f%}n#!Jd5QQsI^F^s|XdjMN+=vx7U80tLS<>49BYcJ}2Zb7;_b4nCJ zI9d41UOqA%q|^$a44I?u9?(!IlvO}R(7HzO$8%uu_(8b?NqPGw{Ccr70u!NJ)vkg7 zhp7B?S$&K~Wvl`^BfprjTy+h>;>*@(im`>|`Y*yivKb~$1PxAL3WLAyfv-6fC*W;R zsrpck_UUee_TV)GP*DReSb?~V2&ndnysdleTmD{CGROi&GB~TS74%qSc@XTvbbt#O z)u&fBL6jcTFEnr1-Ts$3LjwZI$7HQHk2D3Q@r5)p`Gl4g)(EP8!p8*hPh^AZLg#s#C=Gl%^P zJ7FDs<5F)`G^+1eKEG>r$M;fKlaNuVi+|Xo@lYJW_CDD|S3dilT$2#hEH5te6a_DY zm{_UmfV0bDk1^8^^d&_tQ=o`R?Q&+JLQh`?b8s20W-5U$936rK&xT{kx@688xQka5 zP?H1yNayNW)}(uaJ05?agUTul+k|4lQ{?eKeMqDVc__Q$IzTZ8-Z}PA#9-L`1?l0J z^MScXtR3)ctlwk@eh|G4hJ+Dj)d0@6k5jr&#Nt*9=2whm%CoZ@%sYpZYp4}XA9k1O`~IG z!6l`p(K);L;!+?BNq9A+23`lZgWcKY-^N^XzSaMQC^@3n;l?*TR<5F1UtNA4u)^5K zu-^iSVOYK^zVBjIdh==9lg8lFh-^V;gm2t4^GrK4C<#p`sP?;51|%jyKfc;^Ub(q~ z)-MjpeqU+$u-<<=^mvb0I8F~J(WFOme2(OuI@?=$A^JIakF5CG0p(8vA%=P|=D!!dn*2Zsk}gE+|=+6e=B2?oh&)453r z+Hs>geSP2xgV%4uKl(<{jEsP{cS=SmFu*&AL>=Xr@<`UyqX+~75^R)4pC^_-aTJ`X zenzr?s8Enlh)}pt;66SmOCUv{z@Qf6)!=Q2KlGRvJgEZs>n; znEDQs4faj+4RA*;r}_IU5d3D*GyY>_xTkM;U}|b)YGPn$=+W2rxZ^MME5qMk2s8{E z4nHs(8w=arud%N9Q_4txZ_JokQC~j`F~O+bY#X8o4J!@UiyGedXFfL4*Vi}wtB(yK z27&Yndc+g}poK&H+XNj55=RDNe8;@R^kK$o3};%U&pqNCc@_hb8W0wc6p$5=5Rehj z6ObGb`Mc|P_yCS*F(h2C#@9Dw<|yn^FHji`R86Fikf6|SA&81e6j4l2dCbG_+Hb;d zfk(fC?}6{0Z>+DL&-au5aY%6jJa7BG{vF6p0&CB@`~Cn(8^j0#^<9CI+k_|drDIZ1 zF?NVHRWWj+{-7ElELPeo>r1>W?JeFe?+=iG-vh)2h6gAKiVMsQj`uJTk`vSwmghJb znj735o^KE#Vk6`wrY9IFsw?a*uFnWDvNQBGw$}tXx;y+mzF)xpLjAw;4fc`a73P`h z9qypR;cTw5w-e2#w7Sg48;U2@YIK`Tuijj6*==_^Og3Y#yj*X#N9B_eGCX<>4TPQ} z8)!pfG~kBe;LeWqSC5w%tJap&vLFplSNQ)}T4wvcjy>VJUGH=?C+_dfQ_K?b`F@7v z-#_z(q~x6J)O~21HXG(f7mC%aBnrQf~4_n=?B01A);mbN+=5FpeWgogjt*K8FFw?#3uf#5pop za2ISAhrIc*AUZ5Y3+iFlUpjbD)nGbBw9dyogzp-?Csa+Rk0b)sFEOb>DLISm6yi5C znU$^D-Pn;vBE@o`4$<7o_l`u#%cF{C{NcDA`^WVO{Y187ss~gSsLhEYqs)StU^9@B}29I0IiPB|xaKgE^B;Lr^N_ ziBc*MOe8~f3**BwAr#qhp2`LbItZz+@n$=Un<4az9Fs}3>ve5TIvu!g8z3dBP%mxx zqU!hS-xMkYsl`f2zSpR@6mTFEhZRFL!wUzceYeG#%d5bdP0(nlT@Z(^u1hyt!p`y+ z?_3lrS(TQjUBu?CV`IeeMLfpXWhstJW?DiSR;3lHU5BSzK+~D*smNI7eNcd%)Ba>v zLaHyN6Um1&@#6CU7-Vp>SMO&%hbcq*S}VWx_WRTtOD zu5DILQszQpPKkXhlf7 zd=_>UC!ZgMxf~m7HHR=24MY}P&`5a1w74E(lBuZfL@rnYyix9rSM7z(Cs+93T!W}& zJioPvcHSM7J}7v&^;DMTVQWlgnrB;B)G9(Yhj!=eAlCl+5h%5{v(&SEQN?<$4HO2 zLVf1PO!3i2UJu2H_cT6w3wld}mHONvR`jb2TOy3!N|X0H7*O4F`k9OExb=balE_Zy@P(9q` zdiACoC^x-*@8V#Y_S|GS&GNl;U30w%gC!G*oCoiR38PGGMJlMq`k?Hd<#Kt6?#J>y zJAmyJbmM)h=Mml{4y~;ayfc1o*)-uMUWs`@OT;DKnzjpJ`FQIy4W#)M$^rb>kX2&O9RcVNB}Y6g)m;K@4`hZCM?1|a z?do=bVg)nl5OEb94g=xUmlWcy;FcN*MG{ySE<)U=YZyelPM7r0K$)Z&)M*hTyh1tI zG9>{jifYxcrAr%*I|d=B;X8yD#8*pfc^V9ly41MfXe` zze7%fzxur4M6D8G9g)~nx_6ojx+X<5%(2#T;YfL_T53nhk~k*dfM!NQT+S!OK9U2K zA`y@n>PC~rq*^Mc6^{e6LW9c_a;cxc`b% zBvz1zQOTAzp^v3nUX=eQfp(ZkZGV_ikQohZQBsnbJ5vVAW%?{DH~vOaN-`>jbvXSH zj=Om%h>c0=#{cnN+&@W8{RXeaTbFCU$Nk6bqOvz$VEz8pNXsF$ zbmdu>qLn_E4Hoh3FlpS~_8qg>>Nq!LHtUH}wK|g-TVb8js*`jGsx%%#LxG<9=~*Ux z0hTwk!H0tfD^9-P2P2O(x`(y@Sg(6quxv!EX> zc{31Ruxx1L6zO!&t1d1+<}&@jX)u?BuNsLU#Rwp1rCi68#fNZ>lcGbE;d&Z^1MH8R znNDi83aq(BdVg#-HN@uVwRRg`5NL1olDTdKaUjg-alhPmV9G(U5Ng+1AC^TYR^rxt zySjsZo$gswR+!d~4zxr*4I@tZz5PR#3K3Z1Ri7cSw|w>6>F~67+(t&SBX#1rwJ0GZ z?pA&4Ck;rq)W_S8$|^v)wUCF5Apgs-*8l;4;(~s$h##*sn*`!V5GGS)Vd|KIKy@WC zWKF{_+J`xznCQWcoLDu&ClHdfZ}T2^ljo=HWzg#*?z5~+jomW>qKWD+U?md!4Hg^> z55^NWzLw0nP40au;J7Ig~Ym8K; zK|lgrs6fOvfJBOv&!OZ6F@HYrtlf!R6|ijUjMT~tUyB>NI=(oPSpD?M}yArM9*A3 zgv1id2mO_LoamUbwtnXy5(1-s_a?>GWxW(Sx%a}~T2+<#_l+L$)OiAVC~IFN0+<&~ zhj0?)w3DA}6c|hY1u0(N!@$iJprLEvbwk5pXGoZMx(e*J>uR$SM~#VvVs=xPO|l*M z3;9rP1zAO<0r>`%(2#*`Rb|7u&8j!q5Lqe-kf|)uz;YNS*XR+CYp{HsP^`|9+v|u? z0lj*&n=-Rmy3xU-YML23D~6=q6x$!e&IW1t8u!o+%Fk^?un)as||0Ca;A^ftv^pmAgAO zibO{O+Q9X~54V8&X(ZWv%A^CAwShrSS^wo4#W^GaWpQe@2aB~puYl-34y2MZu6zc~ zPO(k=*#5BuyL`s$3w&~?SKos)H&L&9EFMe%Cs5tqm!ZnSQUEHDJlqwJ1B=Fnt4ewzJ|z^C2hG*M-rFeYXqB;gQbO!Dl0T%53wQx9^S)(jsnW&H%8pYF-b}H@VeS~8t--G>+-goS76>gdY>Gr-)h>u{w(!oV)Ip84n{>3$V`!8Ujk?v z`3rRZ?UAh8RbZ?X-T94tA~k?VE*cgV@Fxf&O)1{q&_$n|PQU8!M!sNmGDCQ{taO-c zw1kW-D;FL$?DB@hHQucVUU-;OqsHTGW89#1DoH$cjZW|2XK%*twldcx40Re~IS#5-Bk=KAQo;heDxkw@ z^ZdDqNa=b6Gj*r9S08rJ#pLS)7YQpSGytuFMvM|Iw)4-?=oW>{JNV*=guP~B;cfS~ z$@bC(q(PLCKcZ+J1F-_id4OX#R}E$37%BoLbQ(3>Tp#0O+`5Fs2xYsJWNHwn4pzia ze1V^<2o>dqermr=U~U9Mi8Pk@m3xrk*f_^*Z}-Dd0$1YAEr&s??3|ZEoJ*B-C`8oAYkYY1UU|#m?%pvG)c0t+)BHUmT&zVokJX zo4@s~e<5cRQ(6P;feUqH|1Y2^AB{VAPu-r##F`&mfyfY)F>sJr4L@r*6T?E;__wyP zq%zD9mNkFB<9&<>wGFgs=z)IyPxn6}hL>aPI7sq4-hKI!kRLGQ%JY4s+Ju^YTYOg9 zO;nclYBx8S{2QUlUcIFT%=TER5my+Fx48MeY$#PD>S=F2jt{tKdCAz=Zq(;iFGJhx z9$tBqtwFJ5N(gAQWCmi26Pq_b_XWfD40dgbMvt;w&vb8DkZl3H?F8f`E?n!#2Im+B_jmmr!jA5CF+bB3lvdpcS8Q0sHt;Am=ex?Z_is?@P29sA52sEHSV{p;TW;RbPvt0C%s3C8~!br5?qHv zOxGh6SpJ3S0o5o%8omG}-(Qjcr&tk0mfY5pZO9DUpT}Ija3rhaZKid>e0r-}E521L z_u5AhZ=8xsnIU98O(t9x&$n9;+u%^d1l*r|EGX8)FgT8R)F_xH@ee(vq8EZ43J5IS ztdT4-hnxVr(Ip)J%~{3SB*vG`XBXLER(B*dA#VNAM9p_X>NmmZ{uoQ{=k=u0eR=lx zNN@iU9o|Eg-BA<=Ioz4R*LqX~am_g!-~zKGro(OEZCLB5S?AaY5%G-2cu+2~MO*hS znD-^(!whg0Q4xV@|3z2_-upbr4KOr#Fq^a-x!Lr;V($o9@gL@=8K<~}JI@N5oDJYnZ);shr~wNEf1^;;Y|M$gUS9Kx=RxS;#~ zqugUP5Pv~dM8HFDN2mP@x9sOYLi&L{cjY-Z@sz>hwu8DnJ(MOev4q&|FFy7?&md03^;IE51i&aI25q< z(Ehs1Pj0(E!hA=BhIHls9O}$|eZ@S<{-QYDcz(PD^pNjX>~=NTM*G?L?{tG$ktNii z(THgW;RJ~U_7hSUv;;zTEe$40?;rhqoYr+Rqfv#J*|ApsDw8UpHwJ zfCL;U8zYubP2oT>6)Ks|+4k<%@Tb1XqBx+TPD#@p;awpyl=a4?HjY4v)YkWa*R|Zd zBSY~L68TfU$7LSIjrh?K#`Ly0pD=8@!Wee-z4IQ}5{I43cZ|~n2=M4}T3>CLX_No@ z;lLRzFd`ILUuyd^z@NrDsqPla6iuCP_9g%|Y3{ab?ve<-x>#$6@3_MdZo>&cZ4jwz z+lm9-pS=T}Lt^YcqZef^y9ESzTSxir1c9WrswW*zFZio24{rH4gFWByprD}c$E4s!`EWuPqL@U^5^c=J4d<}oe$Uw=|NeAy|G;E6!Rtfi0Ab)P9qYHM6tqXLap`!m2ff%?POGhuksu<3^T2&Ky#o#{{7V zT5k^t^GLZGqyQaeKgGT);~EU1swP@ho{wYeu?KB8j#Gn^r)(OzhzQk_EfUDJ*W=3d zc^Dllv1SEK#*Ss)p|?@sadk^9VK_vH`=8md2GDy_&)~4VmhW?Bt#)$W%JU_`0!fCx zxKVMKKTHZtjh7re*eb+I|HqJ{M zVIxU|M<)y%&&Vdab$2HrJft5Rp9=TvWF15AI$~LjXe%CjL4Y3x(}1o8>~a{_@Rysv zz=M;%`Uu}5kYT-m0j!vZA%u5TAYbHwZyeaS?8Mf0q}6%yUc;910-#_%j-Z$P5sjdw z1z@M4{;(~4FC*6&1D!Eu@*-UB;T5D<2*yyHa*Uge_Oh%|x9B>2OEfvZ=OLWd@cCqX zUwcxu;>}Wa`if9`D1Ozu1laF|&=Elzr6UwEBW^f_5rYvWm_tF^L&Z@i{OzBRr#IkO zgX73mII~h&cih1Ve3%FqGjSp;M}Li8)l}<8Vz>dsXHGm0+p0r87~lsfS^1T^Yt%;8 z{WE-I8W-|GmRF`shwd4dQ4wE7Gx$OV1hT9iPlh^-uYc>0yB(_lcC~unwx!g)Pn2wJ zGPgdhvSJGRo&eLLfUWY_qZ5HIH(c%z4(-=FO?kgNr*&?QH?@ug)MJkp0#M{kl6l)E z*d@7U(Ae^V(WU8--q-dXGg*3wv%YPCx2~rFp6c(EUCznWaf2TG0e|5hVR3 z9^6*sVH%bw4@P?0{%9V}cT*+jBB~v{TP!Av(@EEA#L`;7wUJjV03cc?4Vc?QU>$(2UTc}P2=J^j?b5{~9 zp~UHavUiW5$+P=@jn`$CcUjGn?Bv-N-+QvU@TsS2u;m^=-?97dj@Q^$h8w~mqX{2b zU^XnMZ}EJWI>lUSJvE~P%CtIWFy-WP7%>;gxDftxX5pvwK~X%i6BK&)ctHW@0G;OB zYN=Qc>j6Mme1_~fo85l#@?@6*ztu+M_xxmFt^l_yAhEIY5FR#mnW99d+{47DKa5}W z4D^MSqnCYVzd~l(d%yo(6%9V8PB8z8^41#nR=U6g^E^53SHwRs=Tg1WxxBd;MCm?P z?1Q&O)An4(h89)-ddQVw>6R}c$Oq^AMl5`IC9zUk0BNLf9&ZSEy#6IjB!V_iV0MS~ zz!b~&k)L+L`!HV5O&Pda&$rA8_P(H1iZ`J5wj+Of>v1JT!RSay{Cmi!Vvh%!RnLTb zcVA}jXCcPhhY0x0keX-KEDAnGpiF!yBX_p9bqa#db$+4X%h2q__Q>m@((E?a2>iLD z8>9a`U;=-Bfs$ZN#Ss6b!yhRei&ci|?ZeyL1{>Glpn-xrE(Pkf) zxyz7I4ZE$!9RP+*O}N;v8GXF_RG;tVkEA%b-FM#|0%^oj3lqrsNcdQZG%?YnMT7G` zAEB4G66lr(T-n;HUU&k|3zOyU^%e$&kL-1NE8H zlg1D0gyD2kPN{8fWt#Q!?%iTY;*|L6!Zq)XM-__)~4@oHG`$hOGHLVN8M)}ae+rYuMCdqV5U4=-vZ39`AwOyEyMjAm0f{;b z$Yi!tP}Av)Ff+3$c~2W6wtO@oTyM<4{zABVT3hpiE4V}vz^k!w0?}ck3%e-#agd;rqN0SG?Y0+H}hsPR{*%WEniS zDF$n6!LQTXeDkC^>Dk{#;J&^9oK=ZflU-kqcc?qNyd2463kVdso)s8sr5V-Q$Ov0Z zIf$wm%Puvy6R(Tnn1I{2%_NCq!?K@}eI&tLW+~K)Z6YlmJJVncgwi(@j2=4PTo&mP z33*zQc&=AGw026JkjityVV6njaCpAgu3sUuHnwu7wPh9*Re#9{emapKovtVJ)NY-q zmYYoAfxb5VyPenlE(E{r$b;MRgrZsJK(#-s9!na20XP2_UVZ)Nn&8Py$tz3O?`Jxu zG^8~_W9TWtFG3Jz@2}-V+?w7xL&Z{wMT}gFow|mbt)52OQvuG1&`TE;6F#c%GmhCV zJe%5a#EBV4h!=HT* zPwiG5Lyb)}!P5rG=ZPE$LBJkb{Jen9069Qv%Ns40&*ji^avgUNgTF_ZzeDMZnDRv% z_I54=#r$gyMvU%vco>)nr@!*xpI3R=h_zhKqDI1Wq-1@jvw^>b?AA)b_GlpXJJ(2{ z$TeIFNrDLa2LfKl-E0Cj9p6HLxQ`YcZ|kQ9al(@n-^4_jAmo%xSUWUn4Zy><0cEMzTOWv(E5(K_AevI`u&oGjQHyvbAmG zNe>FnZ#=^y;-czNZ;X3QV}ZwV{qmRZB3&NGxjwreWIQm8VAkk$aLEy-0fzEZ_{?X?)zF{!xHHg=5%YB_P=oUi-s1Xe&O7eN@CQ>Pk)a|U( zQr&QPQL4HdB8MWELKl&zM4QBV)hl)-KE8V@%^v^Y~Fe zPIs}%gcJTnpJru05TRXYv%fI-jhFeh)jM{QpQ5a`kepuq(xwxYMhq**uCn7dmtoPT zu=UeQOANhZ&=-dcPBr;QJiF*g0}xMRW5Uf0lsU}kbxjiLsE_W6)-+< z{*3275tDOWRS+>hudYO)=TJ3l^~w5|c12{XHSYTq{t4EqxB!R?rngiQt&?cScwkizzzgF-5vGTB>7Byh|Bgz9ll+4h>RZS_mD zdRK%Y0$Xs^|2iKZA(6s+GGa*C9KKgt#JM>g63S)ephJ(!yxF^x^iNTO7z_OxrNJGMNy2WDN_AzVcy&A|oeK|kPTz#WnLZVQ#z2+~i z)bPNK^e+;9{NQ`+_DSkewUeIKTo%+feDN1^F)|X=N$OsnkzrqIe?f=gdX)U(rj!dml;J$)uSK0E{<4VDBFtuKk0AwjY{z0E2?oHyN($n0Ss}d!KeSiU^}a#045u)VSW-Yz+VgqBQ6 zcx?&m#JF=YRkBe| z`57#LIKIJORvAdqTtLK za<&bMDiI^Zk_ghuGGA-11T-Oi_GNI}lT<7z3Y$ENL zye)z5$^JY1HBgow8~4Bw1CrI=_n-!B%X;tLxlpZ-Lye-DG*2|g4TT_wPuABEY+cXA3a{&cWs>>zc$SZfS~{VXLCdzErOpV$0e^o!G_`>4Mm>~TVCLG?Z*1a670 zp(3d=13huiSSoyR9kO7uh6ERzIWu`kj#6Ex6Tu} zG2~pO*>dk)tZ|4$IZ~C+wkzS#mWFQgB^~~OVOU6c>g-8brn;|x{J+|kz_cxIEBnK- zkg*i85OF5b4Vg0GSjT>sb0)8>k{-Fz4J{en%D?ndT*s{IvaK1kc$AGw7gW2O;WBR- zaU1Bgkvb}Goh;XnOiXAiS!{j0OG1d41|woI5OT%Omo`%a)*I@TZYz?VXe1nui2%#! zPBL8<-n%u6y=N!XZKWt5y}r!9I)^Fa%ufIEDbztUGos<^e2c+Z$zI6065-QhKV>A` z*yG|C>G^bHJ>}k@adA-){_@h_qUXMDQ@5wJkia6YbF5s4z!q;UOO~gT{_9X$>R-;H za22J!hF(TK;!lxUArqTkE*}bssJ&tQm^QksrI{icBkgXOTyCpg zQ_pI8eFWSs<6$82IYBqz5A9-6Ty2B`0Z-TI7O~aUQJzo)hZ{wMLC*}E65h=V%0%_& zDhpMiyy{A{$luKgJg@zs+oLH#8j%Je30_>VcX2~JZp2dcgKXZVaLe83W?w%2g|>%hF$|C&MU0(y2B2_yusN*J@m#h{LN-%`H@tPX7X7f(8qvjNhU z`zG1trh;8sBK`4clmN&F%p}YrbLWwUQ4AgRMCD{=EAPvqaw-0tZinFl zmFZcn8PRO7eWL5<8sA-l9gXB>jjzR>D<01!XV7*_@a-NYPX7b*D;&DpqcoX7bIqcO z09^E_;&lvYIvMnVa_@N*ANg1aY6C`L2Ts}QH9rb6DMPL90x$s!m$3DHhrl$4Mb~PV z6PcXegXGt*SLnp8xZDRMKx}dI0;6X($#>A*YhP0@48=r<=&7|f!%a7*Igz-hHB}l*PV;^D!+e<0I;n@Hzign%PmJvGd+ojmJ}NCrJo5awT!I8;y0==igVWsaOw<$c2XQkJY$#dBZ9c3k~bMaoE839(-gwM}{GlPbZieMcU zkc%=X=OyM8R`P`P1y#QyQgIH8wJhqWLqjVnS3#kzQ&{;LJiT(IGzhOAd*MYTq~x3n=J#uQdaF4F3eR!+ z10O1(LZ=MD)Swxdz^Sn&JTo=Am-yNb6IG{}BLYqK{flgsC9yMK7P{NGQaQFWo+ZwQ zEQ6T5Y@n-Cy2*S-XFk&`T+^>M>vu{KlBX%oG_$yTWnL~qtH4GuvD0_-wc1>aZrV{! z2WvSbozI#9qa)RL@d9maQqKn&zKKHN+9=jr(EF5?7Mqpsf&0!hFz_aw2ziH)m(ZO6 zVc7S%x%uRhn3^VM=i=%@nnK&&`;M8p6?!6jPIw}Ufd6FAtU)bdJ?Jk`T z^oCsPPy^vjviOx~4F%>2QIj2DQ+a$0^gQ`SPpqNx4}AKxlslx18<-^GmQo=mN3+fa zyyvtsSJB$%7a@@*o?gio47cLW+OF{l_Tt2_QNx2|KJ^3hI-xJ^Vx}LT zh-Niz_!++hW^ChIeVnCt?#8jTUGQqQUYK2bdl0XADZgV@rX1)URXC?R3^XAwB_Lxc zc2ORM;vj2^p~TW5d}+^Ybs7h}{(7DF$1eg8 z0r#AnGW=f_`O-Pj6@u+r@BT4~w=|0x|5VvDxDpL0w>*Vlk%xSKClstMtF6dwt ztc+zSUi7o8tvRReTyO%KyDK3O`<0~0Nw|3bAm4TbkCrfUvQ#I+Xn7fe9 zJ=2!hX{*7C zw&?Qr%l{NQ^=NZbiDpOO?@evrKz?qN+nzuFhUE+u%I;DZ^d;cT4~$022sDZc%60WonSa^`>Sb&VFh#s3N2dfOC}_!PuV=b5G%yPrb$xUr@Bq&wq6{!Kj>cf zwsn}!gD$H`z2ZCRdYH^~rRwEyoclwHsnF?6eAJ0DG7$@a-~Lm0`pbvh6i#0REQSOk z6hJ8{{IA4?Q-|9jpN~0gr8*X-TR%yS5CfwGaWOL~fT|-Ee}RMKXrmelAKc6A$YM)! zffd6p0e5s_kzr|d@e5s1QZ|6WxNw=$KyzS&{zI$D{~A`?(1|mdP80F@bV*|t93Edp zqAn3_Mp0`2`}-)MYsbIZ>^EKc4E=pd|>qpEBh$1 za6says67?Ii~iq7eH;0lS$1#HF7i2glI5e$CpPBCdR!bh(Y4_I}>;pis0%g!-Kiw#%&A>Fb8X|E=K_Hr=zx z$~=>Fw@d0%Y>q3IMwKV~*`zE-+v|k}Iy=t4HvDeMGrDc}SN%8_;)o#f@qf(hJsiC$ z6U|2{3~xs;B?Cb4PF$To3Q9X(-m#@aJDiOY=4$Fb*L}ELp;^>%KIl$wRvxG${;H~V zRNY0pY7P!9ZP(v7o=mb=)^ zK1*ojqG*S*N;&CSEJK=)7)HLLvWIOqI^a<+wJ~~H{i0(gmd#T7T6=vjMc7tfH*<`o z`=oHCL6zlYv^u#6Gx5H&=%GhrWte)yvRwd_QI%Set`@Zk0Tzv9?X74LPC9Q$n6kp0IXGZ$*32~kcZkRm zoNkVr#6-I@Y<~)JE%BEJ`7=(6X_j~s$O$In8yAfEQEdP;Ty$q3=}08zcHdyam3%r6 zT02kxQmHTj%F3YtfbSO`zj!9?R^rBtBjkj$>Cf z@_r{bRcZ-G3rwLL^+}{48V$upNJ)ZP))J_Y{yssy+KRB2AT$)zHCl`Z&7yfKs4_G_ zbQLp{iuT_QA8nP_>@^>(=aE;(iLt9|aWU!eD1?SVURB;h#1YjI>2BzgsNhxsEJYZ4 zKWdC8v?P7Rx>$?m(^j<%viib&Q^LW>MnLs%)@>AN>bPOUQfQ^jo0}fzXA*`II6sep zMmye*$6K$)>dozJuj8WBxW)R&6~ufUC5w=xDkyR=k$0acj%|o+B}OQif{3W*)Gx}9$L}AT!>BLaot(RP zQ`xu=C{iIyG$wriibG`QhqcE7Vj48y%SV=gdTx=tw@k*pVSB`mK)m_705JT}u+(s}QR>y# z?u=-nNz;Zfe^v<`}pUd5u4IyAp0;FtC`}$D8YZR1; zw=6@2d#U3$q?_XO8%9tI;RP!rwUymc{vB(K`ioKwMw2Mxj~5KQW#oz#SlGQsxH*kr z(8FL;p-oJvJ#lqts_AW&`6oR%KX zh+y}wG@_f@+QM3}*oct_LAtegf`?~~RSGU<>M|9|K{nB3N#kJx!Su;!KjEw=8UFg< zB?DjP>|AG8LC7it+b5TS_}o7vX?+$|;^%ua?Sk|oqXT=#@u=firYXhkcLvCWIdS5_ z=tq+XazG>IcQy{(u=Djz-`>fC3h^^oik=Z=0?8NC z$QIyC%WBHOl$q4SP0CbrIz_AXftqP<;IfT@s#Ns^Bq?|BXDo&pL~~Y;|1d6;F6=Bg zG^0*6j*jUhXOY)+#h;s7@d2*O00gj6>L?XwE?lb?y;QxR`sZg1i+UUh9Ja7%F?2Bz z*};qq9?KF&>})ED@Vk1Z`FP|JR;7%EdE}hEQ>u&Pza9l0W*m!rTwlrWZ2IRXPo$gB zO3fe)ti*dn>LoF;g!ZH(!_?wPq!bd_+HU^aQ7SN(L+ZqgzmVMP*3{cbE|ZMC1{eZ; z@O(&7%;X^hX8s)T(Y9K%sd{ zCh+kCX>N}f4{e<~KvO(C{fQh}RStT(^junlSgNc~Dgmx7voM-70a4KVMx+j=vK;T-x4jHzC(tlhrfX>19Oo zZ>8HWyOZSw{)O;vY5ny0aFhJ{dZN;FEPhZ=rq`kSOSnr?1G0)^fI-e{4R7mE5Axjr zK~Q)|Y`X)&)+(=$lbm}Xf^IFrSR%nt$1QLZ?$XGV?YfqE}M? z<$f!p0MOLT4r_PFZPt)1fVyC_tIv3dBcz2zot8XNBFqiks{%$NH#<0o;CJP@yKJ6U z#1e8kL6EJ_NA?N`Ja9GMeE<*#^^`+ zz*(;3KRy{eMEU9=-=Sl_#b&miM*MDIMO{KQp)I;E@qH zyBzmkwPn=2Nxe(D*A4q@|Jv$|l|7d|QCL<{nm%~!_=2fp7H>|F&)Xl7Ew-x2@%IUf z@%Z^O1}q&q@ZN6j0V#!#jM;U(*Oa8pH46qz&g(X@cYe+AzI|#ueabgKasAoNs}!3= z`v^pP&?c3zIK3DqWW0B*%L&0Nb(GXdtwIgA=Ks}dU2%Jbn5Mm2TpLm?ZZQ)~m2qs0 zInk0BC~*V!nusYZ+I43dnngxKs)MMhvjzkJ8Mo1(QvE_2I=h@HKTCt-78;KG2%6}f zkmE|>R2sVDsnURPzMTq` zZHV+yb_;vlLKHonKm`*)Pbz4qC9Iv6@DN)3n~QgbVfjTc4F3;wnEoH=u>3#JVf%le zBkKQ5$N!B4|1PaJkxCksv(D+xAJxT*$;qQ2M=MzmUfsKkoBsf8*A%coYOp`1?XSn64jnSoJ}x1dkYKAzl+9+^Fy z$@ch|D0)t$$)HtJYEWm~*{Jj)Ne)loBo5Y_Lib6fTbfkzJXRe}&gsdum(ya_v_j1a zzjXedSm&TLb?w_T<}7&R%I3y7I!*T?$Lh1w7s~I;A39a5AM3risC-513&m?&Mx>6d zng8L8;XF6{+wNVk^y47QoQbF9HOr3d`52EsHlzOC!)NACd+m@rs)jxO z_9q3+5AK$KdwA0_ZvVxjD<14SRIw+rh4wfF=dzEI^}utLtOu<+wP_*ZjKmU`hDCIH z)`KIG#ML2@rf-CXkiMvpa_gJ39&iVtDb-(i%bl|xiY#(1A-1TWVh{g?&`9s_^b{gW z5jfbh1?E~3aYLZ>2++|kw43{n{Dt1pQ4}Y{Q=Ovh(RQm@9}ZX}Nu(x_YXQ8k--fsO z6NcBBNF*@?FCYcf?RZ7;u6SMPDam)k``~SOkAH+vjdxUbdNL=f+7U}wRAE)YeR6a4Y4f>?#2%hKJL{7um)+dB=13w8PZa4#>-AJr>Ka$71{SSfYL{mS2S+px@)@9Ot@~K=syH4rA+y_S76#=7kkcZxnljMX)855I^Ll)o9}aozHaN}l=L(!aE(?B;U}IJY97`yi zCAYyjE`LBG&{du8~XflunEPhxk6!{H-)hNG1&w@~-)~1}&pqvyO z0>&?)Azxc=`Py*zyG?h$+j952ZFj#r>TY-6@kYN?yy0MZO_64!lwQ+;q65XFOd7$) z$Hh|H%Mql(UIfu0PY>$C2w2TmD<|10A*Ved&6$vC&om`x(sL|QoSryrOSTCSCVC20 zh-K_boPyIFJf(`oS>$A1L-&NSZme;(p%J6x3$ncT!-W?&Oxl(zRQ8j== z>IJXWZ4id_7+exvp0}y=ky-M)zmcDor+;>27nU9!H+nVhJo@?mH`dI%v2M_k{_{V7 z_=z3JKkt0D;-j;9AENl^Fy3L_A;CT>jVhdoJWb+Bl6olhp8}3ou(>MC-&_?Fjd7Q( z3|DGOlEWS!ofDITqi_`6$WPJv_cvLelp?odDb5PTF8u@1s-UCwisdV&+}v7I6;`WQnDtW+J*siN!`?~BX#fI1(-7=iy#tQqq=fii zj^p?bi00p1N%1VdAz)sl2beW5%cf#jq>ivqi+b}|)FF6u${dB@`A~(>5N{b$iD86C zDxMx}DGj9>k7`DWMsq8g*iIBt4#Z07snliY)HSwiC_;bS#>S=Sf)IR-e@D1k(F6|V zKttLP7zW0g;!@p;%dZteF16g{Qo}EYYWn3+Ex#P9?UzH1`lV2R5x{``iKbISCx&ic zhfWIhZaB0PYxpewNmes&qj|aZ>U1&W#KMrGeZXTi>e+#&^dJh!e_&zPK*^Xf_--e+ z()U$e7k9U`y1L9<_(`_b*UO(ZdffRrT=FDO*Zgc&Ynst^kk95A9s=Gc{O6;4*nF7#H#Z4QLBJ$}=H8-kIP`O-mL`E>GYD0HyMqC}rQcD@&{9 znJ|k4Y&d0m(fVsoZ>pcttEtc0Yulc$p6cbMIec4-S1vl%Bwtu?yg7l4E?v~Pi#9`6 zEYDp#@fq42Ido+n`DA>VFS`FzI0IjyO_DAB$Y1&?`Bc`ArL5g4RK`atItbR(`~!(` zY%@@)he{24#{Tjk<{7IxYTD|2*Gq5f;4)&I5D)4ypdQunuDj9JoJDDik7k>R0onrI za{wXJF&)!(w@W*sjqaEHQreEUA@sl-X^F9HGg2Wgt=+>8prjtQx+Cf`?tblUP2i^AT zphx{W=<&Y>I=JI^x$?HcKfgY-VoaR~8rKFVS<8G?rJqibL6)hnQP#)ni0Y)cC?X0b z%wr=>eA8+eB#5XX&}_&2iQ78vEH>J6XOw7Bl)rykv>*#gyi5PI?tj@ot-DMAbc7Wn zh~pC@f-T74U0Sduw11jNH#Jaq&_BIz-2FMU19>@ZpssvnbKmv`Y8CQ*_xY9$fez}K ze{LNTY@kL#-YV-S$XmLH-3)QSQm-b!*gzzk9N?>pjfvX3u-n<|UrQZaZ0Yb~!>@sC z`ZbU(zXr1H*FcW?<&b|N(7;O2LJX3^9bGh`7)wJtBKU=_EYyl%Zb<{Lui6DV74P|u`#y9$V67+k(_AI+FWUv zru71crv{6Rgd7h}QI6&`3DijNIX7I~1d76ex}bcTOEO@!Xy?F}PsB)owXOz- zNX=J=skEFZlA*M%!N!hIM?;YV2>TDEAda*)Huhn77~58z4Zp&YRYx=$xc%T*AsDkb?7!F4QWj#6Vr7VAK|~?-WKghPoGtxS8?n-P>exxCeg$L zDX~}$90aWn$`i?vOUub2dgb2E?o;h~*ppZCT8h^;&c%PxV?+K-N9;X^x_S3@gFCbN zuecLp1M6X+&qu;EEkdeU8UJAat~-bN`a2m|gQx%5Dw4lxhH5qL#LSVSr_Qb#Ii;*P zuSaoF{yn{goi#HWMvt6cUz=alFCSiP-xF8yU-6=F3`NpP8wkNg0xN6;tvMOWYEI}8 z{}EPNXv2<9jl_|(6*rM?TGFjbhjLa4%SF3&m@7;jkdj!ClF==q)Z9>!)@yjzbXUG< zVD!EGH!0D!r2Kx9n>uw%D(KTZ^`_@^pqn4X@qhTP2w&yq|H5Z~6qz`u(f{m^5`0yv z_=WeCn8en=GeZ`0NAcI}tUl!&yU+vV{Ld>fJM&B)w@9SreA=eU{zZ#YxuX&FSZr#P zf0&1Eg>lQXY5Xv7;B0sN74OPE6_)#ky2TegFq>fQD|e+KQLzC>?iNI}Mb(+YDV zzR0wdkvmV1cktS113Exu=V4kE{p4`4lp7$bMDuYgtLqnELnnuC13sgGjGUOH;zu?d$vFGCYO|wZNd@YjS&rg zU58;7iu`#{|8vNMo1S_?&3=UP__15R808JuYPCkKkv$8Ap5@_?93J*86t}}fA5??M zx~16_+45W~zFyg~{9HkjRx?5VhReEeVIb+{dlRRuO*AZ&-vIdKZI=WB_C5uT_Ev$V z(&B)8=Q^SsrW=CB|Hb$DQYaA11_lMY*pJ%U@UElUBKFoEjgt$RqddnYn85 zBcJ~LpkcQVx6AzM7+m}39dmOh2vh#`ZN=Ex761M=zt)3os4b>q{HzLaHWR8U%9LJ! zSIGt8Fgr6dl6J`(==oViYTAqj%xq8&os~qw9%QFc2|V26{~OU0@*`D|wg}*{i8UC| zCj~f+j$FIdfjNhbwhqRy?rD#M!{;l%Aeyhp$nzp!(Q^LlmP%gy3%Nj+mX-Nh$h{}! z2J)$I8>#hW;WcM`&r`XhAxr^Z;P=UxC+9Cyhh<{48|{3-jrZwGIZIF2C&r`hXq>k$ z!36$`-Ap(kn$GYiNlY>twY1ih@((V4I%uo&0%~u9_4h9f7dsRXnM*lPX$HX4QUd+J6zyZWS003g<3%vk%+GAj3VBpC7dk#o4 z{4@M#&K|^&!XV0k3_bt=iOB|R0001Z+HI3TNK{c2hW~r-c~4goBFL;lLR?4-32`BA z2D2e71{V^8v>0S~ErvlP28lt2!G#PVB1D8lM2HL`;>th*5eac2E@Frh7a}5vL`X=; zyZ!e~)*voE{`1ax_q}t^f3H48enO+_J1eWm$Sf+}0JRet^9332DW8YA?t<)x>yl=^f{Z_ftT)2?8kS_@znV+5o3GgL zQdp55Z2Jp1Gdp&|Y+*wJd#+>lvo2zfnv_-ym^S-Ra_U&J{O2SFO`giwyhBFEZL8d} zi;~Bn`sN5v%t|fxt4O%KjB;-UdmvLt>mNv%Uc_{OG1jtX5`i~{3G>FTnb)?%XqS=5&d(8bKdx1)^7bH4#Uux00k^P!%| zhdR6jQdd4)hkfl+%g&2>A}{Eb41~40-+&*d2l<*0_0)X$59gox=fic}85_l2=S4lv z3n|+Jr;(S(Sn}79j{3@}b$P41s44RiXcz~sRKK8C-$`E$oKXwZXRPr)Tw$t+H!P!H zb)p!tY3FqwMTcp$({w zoCW>>)uIZ&0001Z+GAi~(1F4Th6aWQjA@MTm@=4Jm{u`eV&-GEVvb|3VxGpliTMYM z97_z#HkNO!ZmcU`^GN7Zo?kJzKSD`V;aXRP9x4d&Uu{2xJ0<@xFWbZ zxVCX!dgvbn$SE4SWvqX=HiHJFgwTP_|XA{>D z?+`x)gx@4WB-TiBNrp(aNPd$lka{N_C*3B!Li&h|gG`i6pUf>;G1)xX335Dgc5)GN zU2x@x);bWiF2(bLmQ(wn89qQA_5#~{jJg~1QQS4L7sGmNv08;qZsWSLAb z*<
+ +

Global

+ + + + + + +
+ +
+ +

+ + +
+ +
+
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + +

Methods

+ + + + + + + +

(async) unrollThread()

+ + + + + + +
+ publish the post to go up the stream +check all the posts below and above the threads +
+ + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +

Type Definitions

+ + + +

ActivityPubRouter

+ + + + +
+ Express.js router for handling incoming ActivityPub requests. +
+ + + +
Type:
+
    +
  • + +Object + + +
  • +
+ + + + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
processActivity + + +function + + + + Route handler for processing incoming ActivityPub requests.
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + +
Example
+ +
// Example usage:
+import { router as activityPubRouter } from './activityPubRouter';
+app.use('/activitypub', activityPubRouter);
+ + + + + +

OutboxRouter

+ + + + +
+ Express.js router for handling requests related to the user's outbox. +
+ + + +
Type:
+
    +
  • + +Object + + +
  • +
+ + + + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
getOutbox + + +function + + + + Route handler for retrieving the user's outbox posts.
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + +
Example
+ +
// Example usage:
+import { router as outboxRouter } from './outboxRouter';
+app.use('/outbox', outboxRouter);
+ + + + + +

UserProfileRouter

+ + + + +
+ Express.js router for handling user profile-related routes. +
+ + + +
Type:
+
    +
  • + +Object + + +
  • +
+ + + + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
getProfile + + +function + + + + Route handler for retrieving a user profile by name.
getFollowers + + +function + + + + Route handler for retrieving followers of a user profile by name.
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + +
Example
+ +
// Example usage:
+const userProfileRouter = express.Router();
+userProfileRouter.get('/:name', userProfileHandlers.getProfile);
+userProfileRouter.get('/:name/followers', userProfileHandlers.getFollowers);
+app.use('/profiles', userProfileRouter);
+ + + + + +

WebfingerRouter

+ + + + +
+ Express.js router for handling webfinger-related routes. +
+ + + +
Type:
+
    +
  • + +Object + + +
  • +
+ + + + + +
Properties:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
getResource + + +function + + + + Route handler for retrieving a webfinger resource.
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Source:
+
+ + + + + + + +
+ + + + + +
Example
+ +
// Example usage:
+import { router as webfingerRouter } from './webfingerRouter';
+app.use('/webfinger', webfingerRouter);
+ + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 4.0.2 on Thu Dec 14 2023 18:13:17 GMT-0800 (Pacific Standard Time) +
+ + + + + \ No newline at end of file diff --git a/apiDocumentation/inbox.js.html b/apiDocumentation/inbox.js.html new file mode 100644 index 0000000..de15f96 --- /dev/null +++ b/apiDocumentation/inbox.js.html @@ -0,0 +1,263 @@ + + + + + JSDoc: Source: inbox.js + + + + + + + + + + +
+ +

Source: inbox.js

+ + + + + + +
+
+
import express from 'express';
+import { ActivityPub } from '../lib/ActivityPub.js';
+import { fetchUser } from '../lib/users.js';
+import {
+  acceptDM,
+  addFollower,
+  removeFollower,
+  follow,
+  isReplyToMyPost,
+  addNotification,
+  isMyPost,
+  isBlocked,
+  addressedOnlyToMe,
+  isMention,
+  deleteObject
+} from '../lib/account.js';
+import { createActivity, recordLike, recordUndoLike, recordBoost, getActivity } from '../lib/notes.js';
+import debug from 'debug';
+import { isIndexed } from '../lib/storage.js';
+const logger = debug('ono:inbox');
+
+/**
+ * Express.js router for handling incoming ActivityPub requests.
+ *
+ * @typedef {Object} ActivityPubRouter
+ * @property {Function} processActivity - Route handler for processing incoming ActivityPub requests.
+ *
+ * @example
+ * // Example usage:
+ * import { router as activityPubRouter } from './activityPubRouter';
+ * app.use('/activitypub', activityPubRouter);
+ */
+export const router = express.Router();
+
+/**
+ * Route handler for processing incoming ActivityPub requests.
+ *
+ * @function
+ * @async
+ * @param {Object} req - Express.js request object.
+ * @param {Object} res - Express.js response object.
+ * @returns {Promise<void>} Resolves with a success response or rejects with an error response.
+ *
+ * @throws {Error} Responds with a 403 Forbidden if the actor is blocked.
+ * @throws {Error} Responds with a 403 Forbidden if the signature validation fails.
+ *
+ * @example
+ * // Example route:
+ * // POST /activitypub
+ * activityPubRouter.post('/', activityPubHandlers.processActivity);
+ */
+router.post('/', async (req, res) => {
+  /**
+   * The incoming ActivityPub request payload.
+   *
+   * @type {Object}
+   * @property {string} type - The type of the incoming request (e.g., 'Create', 'Follow', 'Like').
+   * @property {Object} actor - The actor associated with the request.
+   * @property {Object} object - The object of the request, containing the main content.
+   */
+  const incomingRequest = req.body;
+
+  if (incomingRequest) {
+    if (isBlocked(incomingRequest.actor)) {
+      return res.status(403).send('');
+    }
+
+    logger('New message', JSON.stringify(incomingRequest, null, 2));
+    logger('Looking up actor', incomingRequest.actor);
+
+    /**
+     * The user object obtained from fetching the actor of the incoming request.
+     *
+     * @type {Object}
+     * @property {Object} actor - The actor object representing the user.
+     */
+    const { actor } = await fetchUser(incomingRequest.actor);
+
+    // FIRST, validate the actor
+    if (ActivityPub.validateSignature(actor, req)) {
+      switch (incomingRequest.type) {
+        case 'Delete':
+          logger('Delete request');
+          await deleteObject(actor, incomingRequest);
+          break;
+        case 'Follow':
+          logger('Incoming follow request');
+          addFollower(incomingRequest);
+
+          // TODO: should wait to confirm follow acceptance?
+          ActivityPub.sendAccept(actor, incomingRequest);
+          break;
+        case 'Undo':
+          logger('Incoming undo');
+          switch (incomingRequest.object.type) {
+            case 'Follow':
+              logger('Incoming unfollow request');
+              removeFollower(incomingRequest.actor);
+              break;
+            case 'Like':
+              logger('Incoming undo like request');
+              recordUndoLike(incomingRequest.object);
+              break;
+            default:
+              logger('Unknown undo type');
+          }
+          break;
+        case 'Accept':
+          switch (incomingRequest.object.type) {
+            case 'Follow':
+              logger('Incoming follow request');
+              follow(incomingRequest);
+              break;
+            default:
+              logger('Unknown undo type');
+          }
+          break;
+        case 'Like':
+          logger('Incoming like');
+          recordLike(incomingRequest);
+          break;
+        case 'Announce':
+          logger('Incoming boost');
+          // determine if this is a boost on MY post
+          // or someone boosting a post into my feed. DIFFERENT!
+          if (
+            isMyPost({
+              id: incomingRequest.object
+            })
+          ) {
+            recordBoost(incomingRequest);
+          } else {
+            // fetch the boosted post if it doesn't exist
+            try {
+              await getActivity(incomingRequest.object);
+            } catch (err) {
+              console.error('Could not fetch boosted post');
+            }
+
+            // log the boost itself to the activity stream
+            try {
+              createActivity(incomingRequest);
+            } catch (err) {
+              console.error('Could not fetch boosted post...');
+            }
+          }
+          break;
+        case 'Create':
+          logger('incoming create');
+
+          // determine what type of post this is, if it should show up, etc.
+          // - a post that is a reply to your own post from someone you follow (notification AND feed)
+          // - a post that is a reply to your own post from someone you do not follow (notification only)
+          // - a post that that is from someone you follow, and is a reply to a post from someone you follow (in feed)
+          // - a post that is from someone you follow, but is a reply to a post from someone you do not follow (should be ignored?)
+          // - a mention from a following (notification and feed)
+          // - a mention from a stranger (notification only)
+          if (incomingRequest.object.directMessage === true || addressedOnlyToMe(incomingRequest)) {
+            await acceptDM(incomingRequest.object, incomingRequest.object.attributedTo);
+          } else if (isReplyToMyPost(incomingRequest.object)) {
+            // TODO: What about replies to replies? should we traverse up a bit?
+            if (!isIndexed(incomingRequest.object.id)) {
+              createActivity(incomingRequest.object);
+              addNotification({
+                type: 'Reply',
+                actor: incomingRequest.object.attributedTo,
+                object: incomingRequest.object.id
+              });
+            } else {
+              logger('already created reply');
+            }
+          } else if (isMention(incomingRequest.object)) {
+            if (!isIndexed(incomingRequest.object.id)) {
+              createActivity(incomingRequest.object);
+              addNotification({
+                type: 'Mention',
+                actor: incomingRequest.object.attributedTo,
+                object: incomingRequest.object.id
+              });
+            } else {
+              logger('already created mention');
+            }
+          } else if (!incomingRequest.object.inReplyTo) {
+            // this is a NEW post - most likely from a follower
+            createActivity(incomingRequest.object);
+          } else {
+            // this is a reply
+            // from a following
+            // or from someone else who replied to a following?
+            // the visibility should be determined on the feed
+            // TODO: we may want to discard things NOT from followings
+            // since they may never be seen
+            // and we can always go fetch them...
+            createActivity(incomingRequest.object);
+          }
+
+          break;
+        case 'Update':
+          createActivity(incomingRequest.object);
+          break;
+        default:
+          logger('Unknown request type:', incomingRequest.type);
+      }
+    } else {
+      logger('Signature failed:', incomingRequest);
+      return res.status(403).send('Invalid signature');
+    }
+  } else {
+    logger('Unknown request format:', incomingRequest);
+  }
+  return res.status(200).send();
+});
+
+
+
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 4.0.2 on Thu Dec 14 2023 18:13:17 GMT-0800 (Pacific Standard Time) +
+ + + + + diff --git a/apiDocumentation/index.html b/apiDocumentation/index.html new file mode 100644 index 0000000..6f1a88b --- /dev/null +++ b/apiDocumentation/index.html @@ -0,0 +1,65 @@ + + + + + JSDoc: Home + + + + + + + + + + +
+ +

Home

+ + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 4.0.2 on Thu Dec 14 2023 18:13:17 GMT-0800 (Pacific Standard Time) +
+ + + + + \ No newline at end of file diff --git a/apiDocumentation/notes.js.html b/apiDocumentation/notes.js.html new file mode 100644 index 0000000..41013b4 --- /dev/null +++ b/apiDocumentation/notes.js.html @@ -0,0 +1,247 @@ + + + + + JSDoc: Source: notes.js + + + + + + + + + + +
+ +

Source: notes.js

+ + + + + + +
+
+
import fs from 'fs';
+import debug from 'debug';
+import { addNotification, isBlocked, writeNotifications, getNotifications } from './account.js';
+import {
+  INDEX,
+  readJSONDictionary,
+  writeJSONDictionary,
+  fromIndex,
+  deleteActivityFromIndex,
+  deleteJSONDictionary,
+  addActivityToIndex,
+  addFailureToIndex,
+  createFileName,
+  getFileName,
+  getLikesFileName
+} from './storage.js';
+import { ActivityPub } from './ActivityPub.js';
+
+const logger = debug('ono:notes');
+
+/**
+ * The function `getLikesForNote` retrieves the likes and boosts for a given note ID from a JSON
+ * dictionary.
+ * @returns The function `getLikesForNote` is returning the result of calling the `readJSONDictionary`
+ * function with the `fileName` and an object containing `likes` and `boosts` properties.
+ */
+export const getLikesForNote = id => {
+  const fileName = getLikesFileName(id);
+  return readJSONDictionary(fileName, {
+    likes: [],
+    boosts: []
+  });
+};
+
+/**
+ * The function `getReplyCountForNote` returns the number of replies for a given note ID.
+ * @returns The number of replies for a given note ID.
+ */
+export const getReplyCountForNote = id => {
+  return INDEX.filter(i => i.inReplyTo === id).length;
+};
+
+/**
+ * The function records a like for a note and adds the actor to the list of likes if they haven't
+ * already liked the note.
+ */
+export const recordLike = request => {
+  const actor = request.actor;
+  const noteId = request.object;
+
+  logger('INCOMING LIKE FOR', noteId);
+
+  const likes = getLikesForNote(noteId);
+  if (likes.likes.indexOf(actor) < 0) {
+    likes.likes.push(actor);
+    const fileName = getLikesFileName(noteId);
+    writeJSONDictionary(fileName, likes);
+    addNotification(request);
+  }
+};
+
+/**
+ * The function `recordBoost` records a boost for a note and adds the actor to the list of boosts if
+ * they haven't already boosted the note.
+ */
+export const recordBoost = request => {
+  const actor = request.actor;
+  const noteId = request.object;
+
+  logger('INCOMING BOOST FOR', noteId);
+
+  const likes = getLikesForNote(noteId);
+  if (likes.boosts.indexOf(actor) < 0) {
+    likes.boosts.push(actor);
+    const fileName = getLikesFileName(noteId);
+    writeJSONDictionary(fileName, likes);
+    addNotification(request);
+  }
+};
+
+/**
+ * The function `recordUndoLike` removes the actor's like from the likes list for a given note and
+ * updates the likes file.
+ */
+export const recordUndoLike = request => {
+  const actor = request.actor;
+  const noteId = request.object;
+
+  logger('INCOMING UNLIKE FOR', noteId);
+
+  const likes = getLikesForNote(noteId);
+  likes.likes = likes.likes.filter(a => a !== actor);
+  const fileName = getLikesFileName(noteId);
+  writeJSONDictionary(fileName, likes);
+};
+
+/**
+ * The `deleteActivity` function deletes an activity and its associated notifications from the system.
+ * @param id - The `id` parameter represents the unique identifier of the activity that needs to be
+ * deleted. It is used to locate the corresponding note file and delete it.
+ * @param tombstone - The `tombstone` parameter is not used in the code snippet provided. It is
+ * mentioned in a comment, but there is no code that utilizes it.
+ */
+export const deleteActivity = (id, tombstone) => {
+  const noteFile = getFileName(id);
+  if (fs.existsSync(noteFile)) {
+    // rather than capture a tombstone, just delete it like it never was.
+    deleteActivityFromIndex(id);
+    deleteJSONDictionary(noteFile);
+
+    // delete any reply or mention notifications
+    const notifications = getNotifications();
+    writeNotifications(
+      notifications.filter(n => {
+        // filter only notifications that are replies or mentions
+        if ((n.notification.type === 'Reply' || n.notification.type === 'Mention') && n.notification.object === id) {
+          return false;
+        }
+        return true;
+      })
+    );
+  }
+};
+
+/**
+ * The `createActivity` function creates a new activity by writing a note to a file and adding it to an
+ * index if the file does not already exist.
+ */
+export const createActivity = note => {
+  const noteFile = createFileName(note);
+  if (!fs.existsSync(noteFile)) {
+    addActivityToIndex(note);
+  }
+  writeJSONDictionary(noteFile, note);
+};
+
+/**
+ * The function `getActivity` retrieves activity data either from a cache or by fetching it from a
+ * remote source, handling potential errors along the way.
+ * @returns The function `getActivity` returns a Promise that resolves to the result of either
+ * `readJSONDictionary(noteFile, {})` or `fetchActivity(id)`.
+ */
+export const getActivity = async id => {
+  try {
+    if (isBlocked(id)) {
+      throw new Error('Content is from blocked domain', id);
+    }
+    const indexed = fromIndex(id);
+    if (indexed !== false) {
+      // if is cached, no need to check for file
+      if (indexed.type === 'fail') {
+        // TODO: could retry after a while...
+        throw new Error('Activity was unreachable', indexed);
+      } else {
+        const noteFile = getFileName(id);
+        return readJSONDictionary(noteFile, {});
+      }
+    } else {
+      return await fetchActivity(id);
+    }
+  } catch (err) {
+    console.error('Failed to getActivity', err);
+    throw err;
+  }
+};
+
+/**
+ * The function fetches an activity using its ID and handles any errors that occur during the process.
+ * @returns The `fetchActivity` function returns the `activity` object if the fetch is successful.
+ */
+const fetchActivity = async activityId => {
+  logger('FETCH ', activityId);
+  try {
+    const query = await ActivityPub.fetch(activityId, {});
+    if (query.ok) {
+      const activity = await query.json();
+      createActivity(activity);
+      return activity;
+    } else {
+      console.error('Failed to fetch', activityId, 'REASON:', query.statusText);
+      addFailureToIndex({
+        id: activityId,
+        time: new Date().getTime(),
+        status: query.status
+      });
+      throw new Error('could not get post', activityId);
+    }
+  } catch (err) {
+    addFailureToIndex({
+      id: activityId,
+      time: new Date().getTime(),
+      status: err.message
+    });
+    throw new Error('could not get post', activityId);
+  }
+};
+
+
+
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 4.0.2 on Thu Dec 14 2023 18:11:22 GMT-0800 (Pacific Standard Time) +
+ + + + + diff --git a/apiDocumentation/outbox.js.html b/apiDocumentation/outbox.js.html new file mode 100644 index 0000000..0249156 --- /dev/null +++ b/apiDocumentation/outbox.js.html @@ -0,0 +1,164 @@ + + + + + JSDoc: Source: outbox.js + + + + + + + + + + +
+ +

Source: outbox.js

+ + + + + + +
+
+
import express from 'express';
+import dotenv from 'dotenv';
+
+import { getOutboxPosts } from '../lib/account.js';
+
+dotenv.config();
+
+/**
+ * Express.js router for handling requests related to the user's outbox.
+ *
+ * @typedef {Object} OutboxRouter
+ * @property {Function} getOutbox - Route handler for retrieving the user's outbox posts.
+ *
+ * @example
+ * // Example usage:
+ * import { router as outboxRouter } from './outboxRouter';
+ * app.use('/outbox', outboxRouter);
+ */
+export const router = express.Router();
+
+// const {
+//     DOMAIN
+// } = process.env;
+
+/**
+ * Route handler for retrieving the user's outbox posts.
+ *
+ * @function
+ * @async
+ * @param {Object} req - Express.js request object.
+ * @param {Object} res - Express.js response object.
+ * @returns {Promise<void>} Resolves with the user's outbox collection or rejects with an error response.
+ *
+ * @throws {Error} Responds with a 400 Bad Request if the 'offset' query parameter is not a valid number.
+ *
+ * @example
+ * // Example route:
+ * // GET /outbox
+ * outboxRouter.get('/', outboxHandlers.getOutbox);
+ */
+router.get('/', async (req, res) => {
+  /**
+   * The result object containing the total number of posts and an array of outbox posts.
+   *
+   * @type {Object}
+   * @property {number} total - The total number of outbox posts.
+   * @property {Array<Object>} posts - An array of outbox posts.
+   */
+  const { total, posts } = await getOutboxPosts(req.query.offset || 0);
+
+  /**
+   * The URL of the user's outbox.
+   *
+   * @type {string}
+   */
+  const outboxUrl = req.app.get('account').actor.outbox;
+
+  /**
+   * The representation of the outbox collection to be sent in the response.
+   *
+   * @type {Object}
+   * @property {string} type - The type of the collection ('OrderedCollection' or 'OrderedCollectionPage').
+   * @property {number} totalItems - The total number of items in the collection.
+   * @property {string} id - The unique identifier for the collection.
+   * @property {string} [first] - The URL of the first page of the collection.
+   * @property {string} [partOf] - The URL of the main collection that this page is part of.
+   * @property {string} [next] - The URL of the next page of the collection.
+   * @property {string} [prev] - The URL of the previous page of the collection.
+   * @property {Array<Object>} [orderedItems] - An array of ordered items in the collection.
+   * @property {Array<string>} ['@context'] - The context of the collection.
+   */
+  const collection = {
+    type: 'OrderedCollection',
+    totalItems: total,
+    id: outboxUrl,
+    '@context': ['https://www.w3.org/ns/activitystreams']
+  };
+
+  // Check if the 'offset' query parameter is a valid number
+  if (isNaN(req.query.offset)) {
+    collection.first = `${outboxUrl}?offset=0`;
+  } else {
+    // Adjust collection properties for paginated results
+    const offset = parseInt(req.query.offset);
+    collection.type = 'OrderedCollectionPage';
+    collection.id = `${outboxUrl}?offset=${offset}`;
+    collection.partOf = outboxUrl;
+    collection.next = `${outboxUrl}?offset=${offset + 10}`;
+    // todo: stop at 0
+    if (offset - 10 > 0) {
+      collection.prev = `${outboxUrl}?offset=${offset - 10}`;
+    } else {
+      collection.first = `${outboxUrl}?offset=0`;
+    }
+
+    // Transform each post into an ordered item in the collection
+    collection.orderedItems = posts;
+    collection.orderedItems = collection.orderedItems.map(activity => {
+      return {
+        id: `${activity.id}/activity`,
+        type: 'Create',
+        actor: activity.attributedTo,
+        published: activity.published,
+        to: activity.to,
+        cc: activity.cc,
+        object: activity
+      };
+    });
+  }
+
+  // Send the outbox collection in the response
+  res.json(collection);
+});
+
+
+
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 4.0.2 on Thu Dec 14 2023 18:13:17 GMT-0800 (Pacific Standard Time) +
+ + + + + diff --git a/apiDocumentation/public.js.html b/apiDocumentation/public.js.html new file mode 100644 index 0000000..c1fe11c --- /dev/null +++ b/apiDocumentation/public.js.html @@ -0,0 +1,231 @@ + + + + + JSDoc: Source: public.js + + + + + + + + + + +
+ +

Source: public.js

+ + + + + + +
+
+
import express from 'express';
+import debug from 'debug';
+import RSS from 'rss-generator';
+import dotenv from 'dotenv';
+
+import { getNote, isMyPost, getAccount, getOutboxPosts, ifAccount } from '../lib/account.js';
+import { getActivity, getLikesForNote, getReplyCountForNote } from '../lib/notes.js';
+import { INDEX } from '../lib/storage.js';
+import { ActivityPub } from '../lib/ActivityPub.js';
+
+import { fetchUser } from '../lib/users.js';
+export const router = express.Router();
+dotenv.config();
+
+const { USER_NAME, DOMAIN } = process.env;
+
+const logger = debug('notes');
+
+/**
+ * publish the post to go up the stream
+ * check all the posts below and above the threads
+ */
+const unrollThread = async (noteId, results = [], ascend = true, descend = true) => {
+  let post, actor;
+  let stats;
+  if (
+    isMyPost({
+      id: noteId
+    })
+  ) {
+    try {
+      post = await getNote(noteId);
+      actor = ActivityPub.actor;
+      const likes = getLikesForNote(post.id);
+      stats = {
+        likes: likes.likes.length,
+        boosts: likes.boosts.length,
+        replies: getReplyCountForNote(post.id)
+      };
+    } catch (err) {
+      logger('could not fetch own post in thread', err);
+    }
+  } else {
+    try {
+      post = await getActivity(noteId);
+      const account = await fetchUser(post.attributedTo);
+      actor = account.actor;
+    } catch (err) {
+      logger('Could not load a post in a thread. Possibly deleted.', err);
+    }
+  }
+
+  // can only check up stream if you can look at the post itself.
+  // if it has been deleted, that info is lost.
+  if (post) {
+    results.push({
+      stats,
+      note: post,
+      actor
+    });
+
+    // if this is a reply, get the parent and any other parents straight up the chain
+    // this does NOT get replies to those parents that are not part of the active thread right now.
+    if (ascend && post.inReplyTo) {
+      try {
+        await unrollThread(post.inReplyTo, results, true, false);
+      } catch (err) {
+        logger('Failed to unroll thread parents.', err);
+      }
+    }
+  }
+
+  // now, find all posts that are below this one...
+  if (descend) {
+    const replies = INDEX.filter(p => p.inReplyTo === noteId);
+    for (let r = 0; r < replies.length; r++) {
+      try {
+        await unrollThread(replies[r].id, results, false, true);
+      } catch (err) {
+        logger('Failed to unroll thread children', err);
+      }
+    }
+  }
+
+  return results;
+};
+
+/**
+ * Renders the home page with the outbox posts fetched through the api
+ */
+router.get('/', async (req, res) => {
+  if (!ifAccount()) {
+    console.log('No account found. Redirecting to account creation.');
+    res.redirect('/private');
+  }
+  const offset = parseInt(req.query.offset) || 0;
+  const { posts } = await getOutboxPosts(offset);
+
+  const myaccount = getAccount();
+  ActivityPub.account = myaccount;
+  const actor = ActivityPub.actor;
+
+  res.render('public/home', {
+    me: ActivityPub.actor,
+    actor,
+    activitystream: posts,
+    layout: 'public',
+    next: offset + posts.length,
+    domain: DOMAIN,
+    user: USER_NAME
+  });
+});
+
+/**
+ * Fetch the feed for the user and display it in the html
+ */
+router.get('/feed', async (req, res) => {
+  const {
+    // total,
+    posts
+  } = await getOutboxPosts(0);
+
+  const feed = new RSS({
+    title: `${USER_NAME}@${DOMAIN}`,
+    site_url: DOMAIN,
+    pubDate: posts[0].published
+  });
+
+  posts.forEach(post => {
+    /* loop over data and add to feed */
+    feed.item({
+      title: post.subject,
+      description: post.content,
+      url: post.url,
+      date: post.published // any format that js Date can parse.
+    });
+  });
+
+  res.set('Content-Type', 'text/xml');
+  res.send(
+    feed.xml({
+      indent: true
+    })
+  );
+});
+
+router.get('/notes/:guid', async (req, res) => {
+  const guid = req.params.guid;
+
+  if (!guid) {
+    return res.status(400).send('Bad request.');
+  } else {
+    const actor = ActivityPub.actor;
+    const note = await getNote(`https://${DOMAIN}/m/${guid}`);
+    if (note === undefined) {
+      return res.status(404).send(`No record found for ${guid}.`);
+    } else {
+      const notes = await unrollThread(note.id);
+      notes.sort((a, b) => {
+        const ad = new Date(a.note.published).getTime();
+        const bd = new Date(b.note.published).getTime();
+        if (ad > bd) {
+          return 1;
+        } else if (ad < bd) {
+          return -1;
+        } else {
+          return 0;
+        }
+      });
+      res.render('public/note', {
+        me: ActivityPub.actor,
+        actor,
+        activitystream: notes,
+        layout: 'public',
+        domain: DOMAIN,
+        user: USER_NAME
+      });
+    }
+  }
+});
+
+
+
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 4.0.2 on Thu Dec 14 2023 18:13:17 GMT-0800 (Pacific Standard Time) +
+ + + + + diff --git a/apiDocumentation/scripts/linenumber.js b/apiDocumentation/scripts/linenumber.js new file mode 100644 index 0000000..f355ce2 --- /dev/null +++ b/apiDocumentation/scripts/linenumber.js @@ -0,0 +1,25 @@ +/* global document */ +(() => { + const source = document.getElementsByClassName('prettyprint source linenums'); + let i = 0; + let lineNumber = 0; + let lineId; + let lines; + let totalLines; + let anchorHash; + + if (source && source[0]) { + anchorHash = document.location.hash.substring(1); + lines = source[0].getElementsByTagName('li'); + totalLines = lines.length; + + for (; i < totalLines; i++) { + lineNumber++; + lineId = `line${lineNumber}`; + lines[i].id = lineId; + if (lineId === anchorHash) { + lines[i].className += ' selected'; + } + } + } +})(); diff --git a/apiDocumentation/scripts/prettify/Apache-License-2.0.txt b/apiDocumentation/scripts/prettify/Apache-License-2.0.txt new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/apiDocumentation/scripts/prettify/Apache-License-2.0.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/apiDocumentation/scripts/prettify/lang-css.js b/apiDocumentation/scripts/prettify/lang-css.js new file mode 100644 index 0000000..7f40795 --- /dev/null +++ b/apiDocumentation/scripts/prettify/lang-css.js @@ -0,0 +1,23 @@ +PR.registerLangHandler( + PR.createSimpleLexer( + [['pln', /^[\t\n\f\r ]+/, null, ' \t\r\n ']], + [ + ['str', /^"(?:[^\n\f\r"\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*"/, null], + ['str', /^'(?:[^\n\f\r'\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*'/, null], + ['lang-css-str', /^url\(([^"')]*)\)/i], + ['kwd', /^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\w-]|$)/i, null], + ['lang-css-kw', /^(-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*)\s*:/i], + ['com', /^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//], + ['com', /^(?:<\!--|--\>)/], + ['lit', /^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i], + ['lit', /^#[\da-f]{3,6}/i], + ['pln', /^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i], + ['pun', /^[^\s\w"']+/] + ] + ), + ['css'] +); +PR.registerLangHandler(PR.createSimpleLexer([], [['kwd', /^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]]), [ + 'css-kw' +]); +PR.registerLangHandler(PR.createSimpleLexer([], [['str', /^[^"')]+/]]), ['css-str']); diff --git a/apiDocumentation/scripts/prettify/prettify.js b/apiDocumentation/scripts/prettify/prettify.js new file mode 100644 index 0000000..4b5eb69 --- /dev/null +++ b/apiDocumentation/scripts/prettify/prettify.js @@ -0,0 +1,588 @@ +var q = null; +window.PR_SHOULD_USE_CONTINUATION = !0; +(function () { + function L(a) { + function m(a) { + var f = a.charCodeAt(0); + if (f !== 92) return f; + var b = a.charAt(1); + return (f = r[b]) + ? f + : '0' <= b && b <= '7' + ? parseInt(a.substring(1), 8) + : b === 'u' || b === 'x' + ? parseInt(a.substring(2), 16) + : a.charCodeAt(1); + } + function e(a) { + if (a < 32) return (a < 16 ? '\\x0' : '\\x') + a.toString(16); + a = String.fromCharCode(a); + if (a === '\\' || a === '-' || a === '[' || a === ']') a = '\\' + a; + return a; + } + function h(a) { + for ( + var f = a + .substring(1, a.length - 1) + .match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g), + a = [], + b = [], + o = f[0] === '^', + c = o ? 1 : 0, + i = f.length; + c < i; + ++c + ) { + var j = f[c]; + if (/\\[bdsw]/i.test(j)) a.push(j); + else { + var j = m(j), + d; + c + 2 < i && '-' === f[c + 1] ? ((d = m(f[c + 2])), (c += 2)) : (d = j); + b.push([j, d]); + d < 65 || + j > 122 || + (d < 65 || j > 90 || b.push([Math.max(65, j) | 32, Math.min(d, 90) | 32]), + d < 97 || j > 122 || b.push([Math.max(97, j) & -33, Math.min(d, 122) & -33])); + } + } + b.sort(function (a, f) { + return a[0] - f[0] || f[1] - a[1]; + }); + f = []; + j = [NaN, NaN]; + for (c = 0; c < b.length; ++c) (i = b[c]), i[0] <= j[1] + 1 ? (j[1] = Math.max(j[1], i[1])) : f.push((j = i)); + b = ['[']; + o && b.push('^'); + b.push.apply(b, a); + for (c = 0; c < f.length; ++c) + (i = f[c]), b.push(e(i[0])), i[1] > i[0] && (i[1] + 1 > i[0] && b.push('-'), b.push(e(i[1]))); + b.push(']'); + return b.join(''); + } + function y(a) { + for ( + var f = a.source.match( + /\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g + ), + b = f.length, + d = [], + c = 0, + i = 0; + c < b; + ++c + ) { + var j = f[c]; + j === '(' ? ++i : '\\' === j.charAt(0) && (j = +j.substring(1)) && j <= i && (d[j] = -1); + } + for (c = 1; c < d.length; ++c) -1 === d[c] && (d[c] = ++t); + for (i = c = 0; c < b; ++c) + (j = f[c]), + j === '(' + ? (++i, d[i] === void 0 && (f[c] = '(?:')) + : '\\' === j.charAt(0) && (j = +j.substring(1)) && j <= i && (f[c] = '\\' + d[i]); + for (i = c = 0; c < b; ++c) '^' === f[c] && '^' !== f[c + 1] && (f[c] = ''); + if (a.ignoreCase && s) + for (c = 0; c < b; ++c) + (j = f[c]), + (a = j.charAt(0)), + j.length >= 2 && a === '[' + ? (f[c] = h(j)) + : a !== '\\' && + (f[c] = j.replace(/[A-Za-z]/g, function (a) { + a = a.charCodeAt(0); + return '[' + String.fromCharCode(a & -33, a | 32) + ']'; + })); + return f.join(''); + } + for (var t = 0, s = !1, l = !1, p = 0, d = a.length; p < d; ++p) { + var g = a[p]; + if (g.ignoreCase) l = !0; + else if (/[a-z]/i.test(g.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi, ''))) { + s = !0; + l = !1; + break; + } + } + for (var r = { b: 8, t: 9, n: 10, v: 11, f: 12, r: 13 }, n = [], p = 0, d = a.length; p < d; ++p) { + g = a[p]; + if (g.global || g.multiline) throw Error('' + g); + n.push('(?:' + y(g) + ')'); + } + return RegExp(n.join('|'), l ? 'gi' : 'g'); + } + function M(a) { + function m(a) { + switch (a.nodeType) { + case 1: + if (e.test(a.className)) break; + for (var g = a.firstChild; g; g = g.nextSibling) m(g); + g = a.nodeName; + if ('BR' === g || 'LI' === g) (h[s] = '\n'), (t[s << 1] = y++), (t[(s++ << 1) | 1] = a); + break; + case 3: + case 4: + (g = a.nodeValue), + g.length && + ((g = p ? g.replace(/\r\n?/g, '\n') : g.replace(/[\t\n\r ]+/g, ' ')), + (h[s] = g), + (t[s << 1] = y), + (y += g.length), + (t[(s++ << 1) | 1] = a)); + } + } + var e = /(?:^|\s)nocode(?:\s|$)/, + h = [], + y = 0, + t = [], + s = 0, + l; + a.currentStyle + ? (l = a.currentStyle.whiteSpace) + : window.getComputedStyle && (l = document.defaultView.getComputedStyle(a, q).getPropertyValue('white-space')); + var p = l && 'pre' === l.substring(0, 3); + m(a); + return { a: h.join('').replace(/\n$/, ''), c: t }; + } + function B(a, m, e, h) { + m && ((a = { a: m, d: a }), e(a), h.push.apply(h, a.e)); + } + function x(a, m) { + function e(a) { + for (var l = a.d, p = [l, 'pln'], d = 0, g = a.a.match(y) || [], r = {}, n = 0, z = g.length; n < z; ++n) { + var f = g[n], + b = r[f], + o = void 0, + c; + if (typeof b === 'string') c = !1; + else { + var i = h[f.charAt(0)]; + if (i) (o = f.match(i[1])), (b = i[0]); + else { + for (c = 0; c < t; ++c) + if (((i = m[c]), (o = f.match(i[1])))) { + b = i[0]; + break; + } + o || (b = 'pln'); + } + if ((c = b.length >= 5 && 'lang-' === b.substring(0, 5)) && !(o && typeof o[1] === 'string')) + (c = !1), (b = 'src'); + c || (r[f] = b); + } + i = d; + d += f.length; + if (c) { + c = o[1]; + var j = f.indexOf(c), + k = j + c.length; + o[2] && ((k = f.length - o[2].length), (j = k - c.length)); + b = b.substring(5); + B(l + i, f.substring(0, j), e, p); + B(l + i + j, c, C(b, c), p); + B(l + i + k, f.substring(k), e, p); + } else p.push(l + i, b); + } + a.e = p; + } + var h = {}, + y; + (function () { + for (var e = a.concat(m), l = [], p = {}, d = 0, g = e.length; d < g; ++d) { + var r = e[d], + n = r[3]; + if (n) for (var k = n.length; --k >= 0; ) h[n.charAt(k)] = r; + r = r[1]; + n = '' + r; + p.hasOwnProperty(n) || (l.push(r), (p[n] = q)); + } + l.push(/[\S\s]/); + y = L(l); + })(); + var t = m.length; + return e; + } + function u(a) { + var m = [], + e = []; + a.tripleQuotedStrings + ? m.push([ + 'str', + /^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/, + q, + '\'"' + ]) + : a.multiLineStrings + ? m.push([ + 'str', + /^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/, + q, + '\'"`' + ]) + : m.push(['str', /^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/, q, '"\'']); + a.verbatimStrings && e.push(['str', /^@"(?:[^"]|"")*(?:"|$)/, q]); + var h = a.hashComments; + h && + (a.cStyleComments + ? (h > 1 + ? m.push(['com', /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, q, '#']) + : m.push([ + 'com', + /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/, + q, + '#' + ]), + e.push(['str', /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/, q])) + : m.push(['com', /^#[^\n\r]*/, q, '#'])); + a.cStyleComments && (e.push(['com', /^\/\/[^\n\r]*/, q]), e.push(['com', /^\/\*[\S\s]*?(?:\*\/|$)/, q])); + a.regexLiterals && + e.push([ + 'lang-regex', + /^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/ + ]); + (h = a.types) && e.push(['typ', h]); + a = ('' + a.keywords).replace(/^ | $/g, ''); + a.length && e.push(['kwd', RegExp('^(?:' + a.replace(/[\s,]+/g, '|') + ')\\b'), q]); + m.push(['pln', /^\s+/, q, ' \r\n\t\xa0']); + e.push( + ['lit', /^@[$_a-z][\w$@]*/i, q], + ['typ', /^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/, q], + ['pln', /^[$_a-z][\w$@]*/i, q], + ['lit', /^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i, q, '0123456789'], + ['pln', /^\\[\S\s]?/, q], + ['pun', /^.[^\s\w"-$'./@\\`]*/, q] + ); + return x(m, e); + } + function D(a, m) { + function e(a) { + switch (a.nodeType) { + case 1: + if (k.test(a.className)) break; + if ('BR' === a.nodeName) h(a), a.parentNode && a.parentNode.removeChild(a); + else for (a = a.firstChild; a; a = a.nextSibling) e(a); + break; + case 3: + case 4: + if (p) { + var b = a.nodeValue, + d = b.match(t); + if (d) { + var c = b.substring(0, d.index); + a.nodeValue = c; + (b = b.substring(d.index + d[0].length)) && a.parentNode.insertBefore(s.createTextNode(b), a.nextSibling); + h(a); + c || a.parentNode.removeChild(a); + } + } + } + } + function h(a) { + function b(a, d) { + var e = d ? a.cloneNode(!1) : a, + f = a.parentNode; + if (f) { + var f = b(f, 1), + g = a.nextSibling; + f.appendChild(e); + for (var h = g; h; h = g) (g = h.nextSibling), f.appendChild(h); + } + return e; + } + for (; !a.nextSibling; ) if (((a = a.parentNode), !a)) return; + for (var a = b(a.nextSibling, 0), e; (e = a.parentNode) && e.nodeType === 1; ) a = e; + d.push(a); + } + var k = /(?:^|\s)nocode(?:\s|$)/, + t = /\r\n?|\n/, + s = a.ownerDocument, + l; + a.currentStyle + ? (l = a.currentStyle.whiteSpace) + : window.getComputedStyle && (l = s.defaultView.getComputedStyle(a, q).getPropertyValue('white-space')); + var p = l && 'pre' === l.substring(0, 3); + for (l = s.createElement('LI'); a.firstChild; ) l.appendChild(a.firstChild); + for (var d = [l], g = 0; g < d.length; ++g) e(d[g]); + m === (m | 0) && d[0].setAttribute('value', m); + var r = s.createElement('OL'); + r.className = 'linenums'; + for (var n = Math.max(0, (m - 1) | 0) || 0, g = 0, z = d.length; g < z; ++g) + (l = d[g]), + (l.className = 'L' + ((g + n) % 10)), + l.firstChild || l.appendChild(s.createTextNode('\xa0')), + r.appendChild(l); + a.appendChild(r); + } + function k(a, m) { + for (var e = m.length; --e >= 0; ) { + var h = m[e]; + A.hasOwnProperty(h) ? window.console && console.warn('cannot override language handler %s', h) : (A[h] = a); + } + } + function C(a, m) { + if (!a || !A.hasOwnProperty(a)) a = /^\s*= o && (h += 2); + e >= c && (a += 2); + } + } catch (w) { + 'console' in window && console.log(w && w.stack ? w.stack : w); + } + } + var v = ['break,continue,do,else,for,if,return,while'], + w = [ + [ + v, + 'auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile' + ], + 'catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof' + ], + F = [ + w, + 'alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where' + ], + G = [ + w, + 'abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient' + ], + H = [ + G, + 'as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var' + ], + w = [w, 'debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN'], + I = [ + v, + 'and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None' + ], + J = [ + v, + 'alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END' + ], + v = [v, 'case,done,elif,esac,eval,fi,function,in,local,set,then,until'], + K = + /^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/, + N = /\S/, + O = u({ + keywords: [ + F, + H, + w, + 'caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END' + + I, + J, + v + ], + hashComments: !0, + cStyleComments: !0, + multiLineStrings: !0, + regexLiterals: !0 + }), + A = {}; + k(O, ['default-code']); + k( + x( + [], + [ + ['pln', /^[^]*(?:>|$)/], + ['com', /^<\!--[\S\s]*?(?:--\>|$)/], + ['lang-', /^<\?([\S\s]+?)(?:\?>|$)/], + ['lang-', /^<%([\S\s]+?)(?:%>|$)/], + ['pun', /^(?:<[%?]|[%?]>)/], + ['lang-', /^]*>([\S\s]+?)<\/xmp\b[^>]*>/i], + ['lang-js', /^]*>([\S\s]*?)(<\/script\b[^>]*>)/i], + ['lang-css', /^]*>([\S\s]*?)(<\/style\b[^>]*>)/i], + ['lang-in.tag', /^(<\/?[a-z][^<>]*>)/i] + ] + ), + ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl'] + ); + k( + x( + [ + ['pln', /^\s+/, q, ' \t\r\n'], + ['atv', /^(?:"[^"]*"?|'[^']*'?)/, q, '"\''] + ], + [ + ['tag', /^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i], + ['atn', /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i], + ['lang-uq.val', /^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/], + ['pun', /^[/<->]+/], + ['lang-js', /^on\w+\s*=\s*"([^"]+)"/i], + ['lang-js', /^on\w+\s*=\s*'([^']+)'/i], + ['lang-js', /^on\w+\s*=\s*([^\s"'>]+)/i], + ['lang-css', /^style\s*=\s*"([^"]+)"/i], + ['lang-css', /^style\s*=\s*'([^']+)'/i], + ['lang-css', /^style\s*=\s*([^\s"'>]+)/i] + ] + ), + ['in.tag'] + ); + k(x([], [['atv', /^[\S\s]+/]]), ['uq.val']); + k(u({ keywords: F, hashComments: !0, cStyleComments: !0, types: K }), ['c', 'cc', 'cpp', 'cxx', 'cyc', 'm']); + k(u({ keywords: 'null,true,false' }), ['json']); + k(u({ keywords: H, hashComments: !0, cStyleComments: !0, verbatimStrings: !0, types: K }), ['cs']); + k(u({ keywords: G, cStyleComments: !0 }), ['java']); + k(u({ keywords: v, hashComments: !0, multiLineStrings: !0 }), ['bsh', 'csh', 'sh']); + k(u({ keywords: I, hashComments: !0, multiLineStrings: !0, tripleQuotedStrings: !0 }), ['cv', 'py']); + k( + u({ + keywords: + 'caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END', + hashComments: !0, + multiLineStrings: !0, + regexLiterals: !0 + }), + ['perl', 'pl', 'pm'] + ); + k(u({ keywords: J, hashComments: !0, multiLineStrings: !0, regexLiterals: !0 }), ['rb']); + k(u({ keywords: w, cStyleComments: !0, regexLiterals: !0 }), ['js']); + k( + u({ + keywords: + 'all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes', + hashComments: 3, + cStyleComments: !0, + multilineStrings: !0, + tripleQuotedStrings: !0, + regexLiterals: !0 + }), + ['coffee'] + ); + k(x([], [['str', /^[\S\s]+/]]), ['regex']); + window.prettyPrintOne = function (a, m, e) { + var h = document.createElement('PRE'); + h.innerHTML = a; + e && D(h, e); + E({ g: m, i: e, h: h }); + return h.innerHTML; + }; + window.prettyPrint = function (a) { + function m() { + for (var e = window.PR_SHOULD_USE_CONTINUATION ? l.now() + 250 : Infinity; p < h.length && l.now() < e; p++) { + var n = h[p], + k = n.className; + if (k.indexOf('prettyprint') >= 0) { + var k = k.match(g), + f, + b; + if ((b = !k)) { + b = n; + for (var o = void 0, c = b.firstChild; c; c = c.nextSibling) + var i = c.nodeType, o = i === 1 ? (o ? b : c) : i === 3 ? (N.test(c.nodeValue) ? b : o) : o; + b = (f = o === b ? void 0 : o) && 'CODE' === f.tagName; + } + b && (k = f.className.match(g)); + k && (k = k[1]); + b = !1; + for (o = n.parentNode; o; o = o.parentNode) + if ( + (o.tagName === 'pre' || o.tagName === 'code' || o.tagName === 'xmp') && + o.className && + o.className.indexOf('prettyprint') >= 0 + ) { + b = !0; + break; + } + b || + ((b = (b = n.className.match(/\blinenums\b(?::(\d+))?/)) ? (b[1] && b[1].length ? +b[1] : !0) : !1) && + D(n, b), + (d = { g: k, h: n, i: b }), + E(d)); + } + } + p < h.length ? setTimeout(m, 250) : a && a(); + } + for ( + var e = [ + document.getElementsByTagName('pre'), + document.getElementsByTagName('code'), + document.getElementsByTagName('xmp') + ], + h = [], + k = 0; + k < e.length; + ++k + ) + for (var t = 0, s = e[k].length; t < s; ++t) h.push(e[k][t]); + var e = q, + l = Date; + l.now || + (l = { + now: function () { + return +new Date(); + } + }); + var p = 0, + d, + g = /\blang(?:uage)?-([\w.]+)(?!\S)/; + m(); + }; + window.PR = { + createSimpleLexer: x, + registerLangHandler: k, + sourceDecorator: u, + PR_ATTRIB_NAME: 'atn', + PR_ATTRIB_VALUE: 'atv', + PR_COMMENT: 'com', + PR_DECLARATION: 'dec', + PR_KEYWORD: 'kwd', + PR_LITERAL: 'lit', + PR_NOCODE: 'nocode', + PR_PLAIN: 'pln', + PR_PUNCTUATION: 'pun', + PR_SOURCE: 'src', + PR_STRING: 'str', + PR_TAG: 'tag', + PR_TYPE: 'typ' + }; +})(); diff --git a/apiDocumentation/storage.js.html b/apiDocumentation/storage.js.html new file mode 100644 index 0000000..6541786 --- /dev/null +++ b/apiDocumentation/storage.js.html @@ -0,0 +1,457 @@ + + + + + JSDoc: Source: storage.js + + + + + + + + + + +
+ +

Source: storage.js

+ + + + + + +
+
+
import fs from 'fs';
+import glob from 'glob';
+import path from 'path';
+import md5 from 'md5';
+import { DEFAULT_SETTINGS } from './prefs.js';
+
+import debug from 'debug';
+import dotenv from 'dotenv';
+
+const logger = debug('ono:storage');
+dotenv.config();
+
+export const dataDir = path.resolve('./', '.data/');
+export const pathToFiles = path.resolve(dataDir, 'activitystream/');
+export const pathToPosts = path.resolve(dataDir, 'posts/');
+export const pathToUsers = path.resolve(dataDir, 'users/');
+export const pathToDMs = path.resolve(dataDir, 'dms/');
+
+export const prefsFile = path.resolve(dataDir, 'prefs.json');
+export const followersFile = path.resolve(dataDir, 'followers.json');
+export const followingFile = path.resolve(dataDir, 'following.json');
+export const notificationsFile = path.resolve(dataDir, 'notifications.json');
+export const likesFile = path.resolve(dataDir, 'likes.json');
+export const boostsFile = path.resolve(dataDir, 'boosts.json');
+export const blocksFile = path.resolve(dataDir, 'blocks.json');
+export const accountFile = path.resolve(dataDir, 'account.json');
+
+const { DOMAIN } = process.env;
+
+export const INDEX = [];
+export const CACHE = {};
+
+const cacheMax = 60 * 5 * 1000; // 5 minutes
+const cacheMin = 30 * 1000; // 30 seconds
+
+/**
+ * Function to zero-pad a number.
+ * @param {number} num - The number to zero-pad.
+ * @returns {string} - The zero-padded number as a string.
+ */
+const zeroPad = num => {
+  if (num < 10) {
+    return `0${num}`;
+  } else return num;
+};
+
+/**
+ * Checks if an activity belongs to the current user.
+ * @param {string} activityId - The ID of the activity.
+ * @returns {boolean} - True if the activity belongs to the current user, false otherwise.
+ */
+export const isMyPost = activityId => {
+  return activityId.startsWith(`https://${DOMAIN}/m/`);
+};
+
+/**
+ * Checks if an activity is in the INDEX array.
+ * @param {string} id - The ID of the activity.
+ * @returns {boolean} - True if the activity is indexed, false otherwise.
+ */
+export const isIndexed = id => {
+  return INDEX.some(p => id === p.id);
+};
+
+/**
+ * Retrieves activity info from the index based on the activity ID.
+ * @param {string} id - The ID of the activity.
+ * @returns {Object|boolean} - The activity information if found, otherwise false.
+ */
+export const fromIndex = id => {
+  return INDEX.find(p => id === p.id) || false;
+};
+
+/**
+ * Gets user preferences.
+ * @returns {Object} - User preferences.
+ */
+export const getPrefs = () => {
+  return readJSONDictionary(prefsFile, DEFAULT_SETTINGS);
+};
+
+/**
+ * Updates user preferences.
+ * @param {Object} prefs - The new user preferences.
+ * @returns {void}
+ */
+export const updatePrefs = prefs => {
+  return writeJSONDictionary(prefsFile, prefs);
+};
+
+/**
+ * Adds a failure entry to the index.
+ * @param {Object} note - The note object.
+ * @param {string} type - The type of failure (default is 'fail').
+ * @returns {void}
+ */
+export const addFailureToIndex = (note, type = 'fail') => {
+  INDEX.push({
+    type,
+    id: note.id,
+    published: note.time,
+    status: note.status
+  });
+};
+
+/**
+ * Adds an activity entry to the index.
+ * @param {Object} note - The note object.
+ * @param {string} type - The type of activity (default is 'activity').
+ * @returns {void}
+ */
+export const addActivityToIndex = (note, type = 'activity') => {
+  INDEX.push({
+    type,
+    id: note.id,
+    actor: note.attributedTo || note.actor,
+    published: new Date(note.published).getTime(),
+    inReplyTo: note.inReplyTo
+  });
+};
+
+/**
+ * Deletes an activity entry from the index.
+ * @param {string} id - The ID of the activity to be deleted.
+ * @returns {void}
+ */
+export const deleteActivityFromIndex = id => {
+  const n = INDEX.findIndex(idx => idx.id === id);
+  if (n >= 0) {
+    INDEX.splice(n, 1);
+  }
+};
+
+/**
+ * Gets the file name for a given activity ID.
+ * @param {string} activityId - The ID of the activity.
+ * @returns {string} - The file name.
+ */
+export const getFileName = activityId => {
+  // first check cache!
+  let meta;
+  if (CACHE[activityId]) {
+    meta = CACHE[activityId].contents;
+  } else {
+    meta = INDEX.find(m => m.id === activityId);
+    if (!meta) {
+      console.error('id not found in index!', activityId);
+      throw new Error('id not found in index');
+    }
+  }
+
+  const rootPath = isMyPost(activityId) ? pathToPosts : pathToFiles;
+
+  // create a dated subfolder
+  const datestamp = new Date(meta.published);
+  const folder = datestamp.getFullYear() + '/' + zeroPad(datestamp.getMonth() + 1) + '-' + zeroPad(datestamp.getDate());
+  return path.resolve(rootPath, folder, `${md5(meta.id)}.json`);
+};
+
+/**
+ * Gets the file name for the likes associated with a given activity ID.
+ * @param {string} activityId - The ID of the activity.
+ * @returns {string} - The file name for likes.
+ */
+export const getLikesFileName = activityId => {
+  // first check cache!
+  let meta;
+  if (CACHE[activityId]) {
+    meta = CACHE[activityId].contents;
+  } else {
+    meta = INDEX.find(m => m.id === activityId);
+    if (!meta) {
+      console.error('id not found in index!', activityId);
+      throw new Error('id not found in index');
+    }
+  }
+
+  const rootPath = pathToPosts;
+
+  // create a dated subfolder
+  const datestamp = new Date(meta.published);
+  const folder = datestamp.getFullYear() + '/' + zeroPad(datestamp.getMonth() + 1) + '-' + zeroPad(datestamp.getDate());
+  return path.resolve(rootPath, folder, `${md5(meta.id)}.likes.json`);
+};
+
+/**
+ * Creates a file name for a given activity.
+ * @param {Object} activity - The activity object.
+ * @returns {string} - The file name.
+ */
+export const createFileName = activity => {
+  // create a dated subfolder
+  const datestamp = new Date(activity.published);
+  const folder = datestamp.getFullYear() + '/' + zeroPad(datestamp.getMonth() + 1) + '-' + zeroPad(datestamp.getDate());
+
+  const rootPath = isMyPost(activity.id) ? pathToPosts : pathToFiles;
+  // ensure the subfolder is prsent
+  if (!fs.existsSync(path.resolve(rootPath, folder))) {
+    fs.mkdirSync(path.resolve(rootPath, folder), {
+      recursive: true
+    });
+  }
+  return path.resolve(rootPath, folder, `${md5(activity.id)}.json`);
+};
+
+/**
+ * Clears expired entries from the cache.
+ * @returns {void}
+ */
+const cacheExpire = () => {
+  const now = new Date().getTime();
+  for (const key in CACHE) {
+    if (CACHE[key].lastAccess < now - cacheMin) {
+      logger('clearing cache for', key);
+      delete CACHE[key];
+    }
+  }
+};
+
+/**
+ * Interval function for the garbage collector to clear expired cache entries.
+ * @type {number}
+ */
+const garbageCollector = setInterval(() => {
+  cacheExpire();
+}, cacheMin);
+
+logger('Garbage collector interval', garbageCollector);
+
+/**
+ * Builds the initial index by reading data from files.
+ * @returns {Promise<Array<Object>>} - A promise that resolves with the built index.
+ */
+const buildIndex = () => {
+  return new Promise((resolve, reject) => {
+    glob(path.join(pathToFiles, '**/*.json'), async (err, files) => {
+      if (err) {
+        console.error(err);
+        reject(err);
+      }
+
+      for (const f of files) {
+        try {
+          const post = JSON.parse(fs.readFileSync(path.resolve(pathToFiles, f)));
+          addActivityToIndex(post);
+        } catch (err) {
+          console.error('failed to parse', f);
+          console.error(err);
+        }
+      }
+
+      glob(path.join(pathToPosts, '**/*.json'), async (err, files) => {
+        if (err) {
+          console.error(err);
+          reject(err);
+        }
+
+        for (const f of files) {
+          try {
+            if (!f.includes('likes')) {
+              const post = JSON.parse(fs.readFileSync(path.resolve(pathToFiles, f)));
+              addActivityToIndex(post, 'note');
+            }
+          } catch (err) {
+            console.error('failed to parse', f);
+            console.error(err);
+          }
+        }
+
+        resolve(INDEX);
+      });
+    });
+  });
+};
+
+/**
+ * Searches for known users based on a query string.
+ * @param {string} query - The search query.
+ * @returns {Promise<Array<Object>>} - A promise that resolves with the search results.
+ */
+export const searchKnownUsers = async query => {
+  return new Promise((resolve, reject) => {
+    glob(path.join(pathToUsers, '**/*.json'), async (err, files) => {
+      if (err) {
+        console.error(err);
+        reject(err);
+      }
+      const results = [];
+      for (const f of files) {
+        try {
+          const user = JSON.parse(fs.readFileSync(path.resolve(pathToUsers, f)));
+          if (
+            user.actor?.id?.toLowerCase().includes(query) ||
+            user.actor?.preferredUsername?.toLowerCase().includes(query) ||
+            user.actor?.name?.toLowerCase().includes(query) ||
+            user.actor?.url?.toLowerCase().includes(query)
+          ) {
+            results.push(user.actor);
+          }
+        } catch (err) {
+          console.error('failed to parse', f);
+          console.error(err);
+        }
+      }
+      resolve(results);
+    });
+  });
+};
+
+/**
+ * Ensures the existence of data folders and default settings.
+ * @returns {void}
+ */
+const ensureDataFolder = () => {
+  if (!fs.existsSync(path.resolve(pathToPosts))) {
+    logger('mkdir', pathToPosts);
+    fs.mkdirSync(path.resolve(pathToPosts), {
+      recursive: true
+    });
+  }
+  if (!fs.existsSync(path.resolve(pathToFiles))) {
+    logger('mkdir', pathToFiles);
+    fs.mkdirSync(path.resolve(pathToFiles), {
+      recursive: true
+    });
+  }
+  if (!fs.existsSync(path.resolve(pathToUsers))) {
+    logger('mkdir', pathToUsers);
+    fs.mkdirSync(path.resolve(pathToUsers), {
+      recursive: true
+    });
+  }
+  if (!fs.existsSync(path.resolve(pathToDMs))) {
+    logger('mkdir', pathToDMs);
+    fs.mkdirSync(path.resolve(pathToDMs), {
+      recursive: true
+    });
+  }
+  if (!fs.existsSync(path.resolve(prefsFile))) {
+    logger('create default settings', prefsFile);
+    writeJSONDictionary(prefsFile, DEFAULT_SETTINGS);
+  } else {
+    // todo: validate settings, add any missing keys with default values
+  }
+};
+
+/**
+ * Reads a JSON dictionary from a file path.
+ * @param {string} path - The path to the JSON file.
+ * @param {Array} defaultVal - The default value if the file doesn't exist.
+ * @returns {Array} - The contents of the JSON file.
+ */
+export const readJSONDictionary = (path, defaultVal = []) => {
+  const now = new Date().getTime();
+  if (CACHE[path] && CACHE[path].time > now - cacheMax) {
+    logger('cache hit for', path);
+    CACHE[path].lastAccess = now;
+    return CACHE[path].contents;
+  } else {
+    logger('read from disk', path);
+    let jsonRaw = JSON.stringify(defaultVal);
+    if (fs.existsSync(path)) {
+      jsonRaw = fs.readFileSync(path);
+    }
+    const results = JSON.parse(jsonRaw) || defaultVal;
+    CACHE[path] = {
+      time: now,
+      lastAccess: now,
+      contents: results
+    };
+    return results;
+  }
+};
+
+/**
+ * Deletes a JSON dictionary file.
+ * @param {string} path - The path to the JSON file to be deleted.
+ * @returns {void}
+ */
+export const deleteJSONDictionary = path => {
+  fs.unlinkSync(path);
+  delete CACHE[path];
+};
+
+/**
+ * Writes a JSON dictionary to a file.
+ * @param {string} path - The path to the file.
+ * @param {Object} data - The data to be written.
+ * @returns {void}
+ */
+export const writeJSONDictionary = (path, data) => {
+  const now = new Date().getTime();
+  logger('write cache', path);
+  CACHE[path] = {
+    time: now,
+    lastAccess: now,
+    contents: data
+  };
+  fs.writeFileSync(path, JSON.stringify(data, null, 2));
+};
+
+logger('BUILDING INDEX');
+ensureDataFolder();
+buildIndex().then(() => {
+  logger('INDEX BUILT!');
+});
+
+
+
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 4.0.2 on Thu Dec 14 2023 18:11:22 GMT-0800 (Pacific Standard Time) +
+ + + + + diff --git a/apiDocumentation/styles/jsdoc-default.css b/apiDocumentation/styles/jsdoc-default.css new file mode 100644 index 0000000..7d1729d --- /dev/null +++ b/apiDocumentation/styles/jsdoc-default.css @@ -0,0 +1,358 @@ +@font-face { + font-family: 'Open Sans'; + font-weight: normal; + font-style: normal; + src: url('../fonts/OpenSans-Regular-webfont.eot'); + src: + local('Open Sans'), + local('OpenSans'), + url('../fonts/OpenSans-Regular-webfont.eot?#iefix') format('embedded-opentype'), + url('../fonts/OpenSans-Regular-webfont.woff') format('woff'), + url('../fonts/OpenSans-Regular-webfont.svg#open_sansregular') format('svg'); +} + +@font-face { + font-family: 'Open Sans Light'; + font-weight: normal; + font-style: normal; + src: url('../fonts/OpenSans-Light-webfont.eot'); + src: + local('Open Sans Light'), + local('OpenSans Light'), + url('../fonts/OpenSans-Light-webfont.eot?#iefix') format('embedded-opentype'), + url('../fonts/OpenSans-Light-webfont.woff') format('woff'), + url('../fonts/OpenSans-Light-webfont.svg#open_sanslight') format('svg'); +} + +html +{ + overflow: auto; + background-color: #fff; + font-size: 14px; +} + +body +{ + font-family: 'Open Sans', sans-serif; + line-height: 1.5; + color: #4d4e53; + background-color: white; +} + +a, a:visited, a:active { + color: #0095dd; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +header +{ + display: block; + padding: 0px 4px; +} + +tt, code, kbd, samp { + font-family: Consolas, Monaco, 'Andale Mono', monospace; +} + +.class-description { + font-size: 130%; + line-height: 140%; + margin-bottom: 1em; + margin-top: 1em; +} + +.class-description:empty { + margin: 0; +} + +#main { + float: left; + width: 70%; +} + +article dl { + margin-bottom: 40px; +} + +article img { + max-width: 100%; +} + +section +{ + display: block; + background-color: #fff; + padding: 12px 24px; + border-bottom: 1px solid #ccc; + margin-right: 30px; +} + +.variation { + display: none; +} + +.signature-attributes { + font-size: 60%; + color: #aaa; + font-style: italic; + font-weight: lighter; +} + +nav +{ + display: block; + float: right; + margin-top: 28px; + width: 30%; + box-sizing: border-box; + border-left: 1px solid #ccc; + padding-left: 16px; +} + +nav ul { + font-family: 'Lucida Grande', 'Lucida Sans Unicode', arial, sans-serif; + font-size: 100%; + line-height: 17px; + padding: 0; + margin: 0; + list-style-type: none; +} + +nav ul a, nav ul a:visited, nav ul a:active { + font-family: Consolas, Monaco, 'Andale Mono', monospace; + line-height: 18px; + color: #4D4E53; +} + +nav h3 { + margin-top: 12px; +} + +nav li { + margin-top: 6px; +} + +footer { + display: block; + padding: 6px; + margin-top: 12px; + font-style: italic; + font-size: 90%; +} + +h1, h2, h3, h4 { + font-weight: 200; + margin: 0; +} + +h1 +{ + font-family: 'Open Sans Light', sans-serif; + font-size: 48px; + letter-spacing: -2px; + margin: 12px 24px 20px; +} + +h2, h3.subsection-title +{ + font-size: 30px; + font-weight: 700; + letter-spacing: -1px; + margin-bottom: 12px; +} + +h3 +{ + font-size: 24px; + letter-spacing: -0.5px; + margin-bottom: 12px; +} + +h4 +{ + font-size: 18px; + letter-spacing: -0.33px; + margin-bottom: 12px; + color: #4d4e53; +} + +h5, .container-overview .subsection-title +{ + font-size: 120%; + font-weight: bold; + letter-spacing: -0.01em; + margin: 8px 0 3px 0; +} + +h6 +{ + font-size: 100%; + letter-spacing: -0.01em; + margin: 6px 0 3px 0; + font-style: italic; +} + +table +{ + border-spacing: 0; + border: 0; + border-collapse: collapse; +} + +td, th +{ + border: 1px solid #ddd; + margin: 0px; + text-align: left; + vertical-align: top; + padding: 4px 6px; + display: table-cell; +} + +thead tr +{ + background-color: #ddd; + font-weight: bold; +} + +th { border-right: 1px solid #aaa; } +tr > th:last-child { border-right: 1px solid #ddd; } + +.ancestors, .attribs { color: #999; } +.ancestors a, .attribs a +{ + color: #999 !important; + text-decoration: none; +} + +.clear +{ + clear: both; +} + +.important +{ + font-weight: bold; + color: #950B02; +} + +.yes-def { + text-indent: -1000px; +} + +.type-signature { + color: #aaa; +} + +.name, .signature { + font-family: Consolas, Monaco, 'Andale Mono', monospace; +} + +.details { margin-top: 14px; border-left: 2px solid #DDD; } +.details dt { width: 120px; float: left; padding-left: 10px; padding-top: 6px; } +.details dd { margin-left: 70px; } +.details ul { margin: 0; } +.details ul { list-style-type: none; } +.details li { margin-left: 30px; padding-top: 6px; } +.details pre.prettyprint { margin: 0 } +.details .object-value { padding-top: 0; } + +.description { + margin-bottom: 1em; + margin-top: 1em; +} + +.code-caption +{ + font-style: italic; + font-size: 107%; + margin: 0; +} + +.source +{ + border: 1px solid #ddd; + width: 80%; + overflow: auto; +} + +.prettyprint.source { + width: inherit; +} + +.source code +{ + font-size: 100%; + line-height: 18px; + display: block; + padding: 4px 12px; + margin: 0; + background-color: #fff; + color: #4D4E53; +} + +.prettyprint code span.line +{ + display: inline-block; +} + +.prettyprint.linenums +{ + padding-left: 70px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.prettyprint.linenums ol +{ + padding-left: 0; +} + +.prettyprint.linenums li +{ + border-left: 3px #ddd solid; +} + +.prettyprint.linenums li.selected, +.prettyprint.linenums li.selected * +{ + background-color: lightyellow; +} + +.prettyprint.linenums li * +{ + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; +} + +.params .name, .props .name, .name code { + color: #4D4E53; + font-family: Consolas, Monaco, 'Andale Mono', monospace; + font-size: 100%; +} + +.params td.description > p:first-child, +.props td.description > p:first-child +{ + margin-top: 0; + padding-top: 0; +} + +.params td.description > p:last-child, +.props td.description > p:last-child +{ + margin-bottom: 0; + padding-bottom: 0; +} + +.disabled { + color: #454545; +} diff --git a/apiDocumentation/styles/prettify-jsdoc.css b/apiDocumentation/styles/prettify-jsdoc.css new file mode 100644 index 0000000..5a2526e --- /dev/null +++ b/apiDocumentation/styles/prettify-jsdoc.css @@ -0,0 +1,111 @@ +/* JSDoc prettify.js theme */ + +/* plain text */ +.pln { + color: #000000; + font-weight: normal; + font-style: normal; +} + +/* string content */ +.str { + color: #006400; + font-weight: normal; + font-style: normal; +} + +/* a keyword */ +.kwd { + color: #000000; + font-weight: bold; + font-style: normal; +} + +/* a comment */ +.com { + font-weight: normal; + font-style: italic; +} + +/* a type name */ +.typ { + color: #000000; + font-weight: normal; + font-style: normal; +} + +/* a literal value */ +.lit { + color: #006400; + font-weight: normal; + font-style: normal; +} + +/* punctuation */ +.pun { + color: #000000; + font-weight: bold; + font-style: normal; +} + +/* lisp open bracket */ +.opn { + color: #000000; + font-weight: bold; + font-style: normal; +} + +/* lisp close bracket */ +.clo { + color: #000000; + font-weight: bold; + font-style: normal; +} + +/* a markup tag name */ +.tag { + color: #006400; + font-weight: normal; + font-style: normal; +} + +/* a markup attribute name */ +.atn { + color: #006400; + font-weight: normal; + font-style: normal; +} + +/* a markup attribute value */ +.atv { + color: #006400; + font-weight: normal; + font-style: normal; +} + +/* a declaration */ +.dec { + color: #000000; + font-weight: bold; + font-style: normal; +} + +/* a variable name */ +.var { + color: #000000; + font-weight: normal; + font-style: normal; +} + +/* a function name */ +.fun { + color: #000000; + font-weight: bold; + font-style: normal; +} + +/* Specify class=linenums on a pre to get line numbering */ +ol.linenums { + margin-top: 0; + margin-bottom: 0; +} diff --git a/apiDocumentation/styles/prettify-tomorrow.css b/apiDocumentation/styles/prettify-tomorrow.css new file mode 100644 index 0000000..b6f92a7 --- /dev/null +++ b/apiDocumentation/styles/prettify-tomorrow.css @@ -0,0 +1,132 @@ +/* Tomorrow Theme */ +/* Original theme - https://github.com/chriskempson/tomorrow-theme */ +/* Pretty printing styles. Used with prettify.js. */ +/* SPAN elements with the classes below are added by prettyprint. */ +/* plain text */ +.pln { + color: #4d4d4c; } + +@media screen { + /* string content */ + .str { + color: #718c00; } + + /* a keyword */ + .kwd { + color: #8959a8; } + + /* a comment */ + .com { + color: #8e908c; } + + /* a type name */ + .typ { + color: #4271ae; } + + /* a literal value */ + .lit { + color: #f5871f; } + + /* punctuation */ + .pun { + color: #4d4d4c; } + + /* lisp open bracket */ + .opn { + color: #4d4d4c; } + + /* lisp close bracket */ + .clo { + color: #4d4d4c; } + + /* a markup tag name */ + .tag { + color: #c82829; } + + /* a markup attribute name */ + .atn { + color: #f5871f; } + + /* a markup attribute value */ + .atv { + color: #3e999f; } + + /* a declaration */ + .dec { + color: #f5871f; } + + /* a variable name */ + .var { + color: #c82829; } + + /* a function name */ + .fun { + color: #4271ae; } } +/* Use higher contrast and text-weight for printable form. */ +@media print, projection { + .str { + color: #060; } + + .kwd { + color: #006; + font-weight: bold; } + + .com { + color: #600; + font-style: italic; } + + .typ { + color: #404; + font-weight: bold; } + + .lit { + color: #044; } + + .pun, .opn, .clo { + color: #440; } + + .tag { + color: #006; + font-weight: bold; } + + .atn { + color: #404; } + + .atv { + color: #060; } } +/* Style */ +/* +pre.prettyprint { + background: white; + font-family: Consolas, Monaco, 'Andale Mono', monospace; + font-size: 12px; + line-height: 1.5; + border: 1px solid #ccc; + padding: 10px; } +*/ + +/* Specify class=linenums on a pre to get line numbering */ +ol.linenums { + margin-top: 0; + margin-bottom: 0; } + +/* IE indents via margin-left */ +li.L0, +li.L1, +li.L2, +li.L3, +li.L4, +li.L5, +li.L6, +li.L7, +li.L8, +li.L9 { + /* */ } + +/* Alternate shading for lines */ +li.L1, +li.L3, +li.L5, +li.L7, +li.L9 { + /* */ } diff --git a/apiDocumentation/theAlgorithm.js.html b/apiDocumentation/theAlgorithm.js.html new file mode 100644 index 0000000..835a829 --- /dev/null +++ b/apiDocumentation/theAlgorithm.js.html @@ -0,0 +1,276 @@ + + + + + JSDoc: Source: theAlgorithm.js + + + + + + + + + + +
+ +

Source: theAlgorithm.js

+ + + + + + +
+
+
/** 
+ _______  __   __  _______                                                     
+|       ||  | |  ||       |                                                    
+|_     _||  |_|  ||    ___|                                                    
+  |   |  |       ||   |___                                                     
+  |   |  |       ||    ___|                                                    
+  |   |  |   _   ||   |___                                                     
+  |___|  |__| |__||_______|                                                    
+ _______  ___      _______  _______  ______    ___   _______  __   __  __   __ 
+|   _   ||   |    |       ||       ||    _ |  |   | |       ||  | |  ||  |_|  |
+|  |_|  ||   |    |    ___||   _   ||   | ||  |   | |_     _||  |_|  ||       |
+|       ||   |    |   | __ |  | |  ||   |_||_ |   |   |   |  |       ||       |
+|       ||   |___ |   ||  ||  |_|  ||    __  ||   |   |   |  |       ||       |
+|   _   ||       ||   |_| ||       ||   |  | ||   |   |   |  |   _   || ||_|| |
+|__| |__||_______||_______||_______||___|  |_||___|   |___|  |__| |__||_|   |_|
+
+This file contains the functions pertaining to how Shuttlecraft creates the "latest" feed
+
+**/
+
+import debug from 'debug';
+import { fetchUser } from './users.js';
+import { getNote, getLikes, getBoosts, isReplyToMyPost, isReplyToFollowing, isFollowing } from './account.js';
+import { getActivity } from './notes.js';
+import { INDEX } from './storage.js';
+import { ActivityPub } from './ActivityPub.js';
+
+const logger = debug('ono:algorithm');
+
+/**
+ * The function `sortByDate` takes two values and compares them. It is used to sort posts in reverse
+ * order.
+ * @param a - The first object being compared.
+ * @param b - The parameter `b` represents the second item being compared in the `sortByDate` function.
+ * @returns The `sortByDate` function returns -1 if `a.published` is greater than `b.published`, 1 if
+ * `a.published` is less than `b.published`, and 0 if `a.published` is equal to `b.published`.
+ */
+export const sortByDate = (a, b) => {
+  if (a.published > b.published) {
+    return -1;
+  } else if (a.published < b.published) {
+    return 1;
+  } else {
+    return 0;
+  }
+};
+
+/**
+ * Given an activity record OR an id for an activity record, returns the full activity along with
+ * the actor, and, if a boost, information about the boost and boosting user
+ * @param {*} activityOrId
+ * @returns {note, actor, boost, booster}
+ */
+export const getFullPostDetails = async activityOrId => {
+  const likes = await getLikes();
+  const boosts = await getBoosts();
+
+  let note, actor, boost, booster;
+  try {
+    if (typeof activityOrId === 'string') {
+      note = await getActivity(activityOrId);
+    } else {
+      note = activityOrId;
+    }
+  } catch (err) {
+    console.error(err);
+    console.error('Could not load post in feed');
+    return;
+  }
+
+  const account = await fetchUser(note.attributedTo || note.actor);
+  actor = account.actor;
+
+  if (note.type === 'Announce') {
+    boost = note;
+    booster = actor;
+    try {
+      note = await getActivity(boost.object);
+      const op = await fetchUser(note.attributedTo);
+      actor = op.actor;
+    } catch (err) {
+      console.error(err);
+      console.error('Could not fetch boosted post...', boost.object);
+      return;
+    }
+  }
+
+  note.isLiked = !!likes.some(l => l.activityId === note.id);
+  note.isBoosted = !!boosts.some(l => l.activityId === note.id);
+
+  return {
+    note,
+    actor,
+    boost,
+
+    booster
+  };
+};
+
+/**
+ * The `getActivityStream` function generates an activity stream by sorting and filtering posts, and
+ * then iterating over them to retrieve the necessary details.
+ * @param limit - The `limit` parameter specifies the maximum number of posts to include in the
+ * activity stream. It determines how many posts will be returned in the `activitystream` array.
+ * @param offset - The `offset` parameter is used to determine the starting point of the activity
+ * stream. It specifies the index position in the `sortedSlice` array from where the iteration should
+ * begin.
+ * @returns an object with two properties: "activitystream" and "next". The "activitystream" property
+ * contains an array of posts, and the "next" property contains the index of the next post to be
+ * fetched.
+ */
+export const getActivityStream = async (limit, offset) => {
+  logger('Generating activity stream...');
+
+  // sort all known posts by date quickly
+  // exclude any posts that are marked as unreachable
+  // and also exclude posts without a published date
+  const sortedSlice = INDEX.filter(p => p.type !== 'fail' && !isNaN(p.published)).sort(sortByDate);
+
+  // res will contain the
+  const stream = [];
+
+  // iterate over the list until we get enough posts (or run out of posts)
+  let postIndex;
+  for (postIndex = offset; postIndex < sortedSlice.length; postIndex++) {
+    const postObject = sortedSlice[postIndex];
+
+    // process a post by someone else
+    if (postObject.type === 'activity') {
+      // Ignore posts from people I am not following
+      if (!isFollowing(postObject.actor)) {
+        continue;
+      }
+
+      if (!postObject.inReplyTo || isReplyToMyPost(postObject) || (await isReplyToFollowing(postObject))) {
+        try {
+          const post = await getFullPostDetails(postObject.id);
+          stream.push(post);
+        } catch (err) {
+          console.error('error while loading post from index');
+        }
+      } else {
+        // disgard replies i don't care about
+      }
+    }
+
+    // process a post by me
+    if (postObject.type === 'note') {
+      const post = await getFullPostDetails(postObject.id);
+      stream.push(post);
+    }
+
+    // if we have enough posts, break out of the loop
+    if (stream.length === limit) {
+      break;
+    }
+  }
+
+  return {
+    activitystream: stream,
+    next: postIndex
+  };
+};
+
+/**
+ * The function `getActivitySince` retrieves activity data since a specified date, excluding the user's
+ * own activity if specified.
+ * @param since - The `since` parameter is a timestamp indicating the starting point from which you
+ * want to retrieve activity. Only activities that occurred after this timestamp will be included in
+ * the result.
+ * @param [excludeSelf=false] - The `excludeSelf` parameter is a boolean flag that determines whether
+ * or not to exclude the posts made by the current user (self) from the result. If `excludeSelf` is set
+ * to `true`, the posts made by the current user will be filtered out from the result. If `exclude
+ * @returns an object with a property called "activitystream" which contains an array of objects. Each
+ * object in the array represents an activity or a note. Each object has two properties: "note" which
+ * represents the content of the activity or note, and "actor" which represents the actor who performed
+ * the activity or created the note.
+ */
+export const getActivitySince = async (since, excludeSelf = false) => {
+  // sort all known posts by date quickly
+  const sortedSlice = INDEX.filter(p => p.type !== 'fail' && !isNaN(p.published))
+    .sort(sortByDate)
+    .filter(p => {
+      if (excludeSelf && p.actor === ActivityPub.actor.id) {
+        return false;
+      }
+      return p.published > since;
+    });
+
+  const stream = [];
+  let postIndex;
+  for (postIndex = 0; postIndex < sortedSlice.length; postIndex++) {
+    const postObject = sortedSlice[postIndex];
+    if (postObject.type === 'activity') {
+      if (isFollowing(postObject.actor)) {
+        if (!postObject.inReplyTo || isReplyToMyPost(postObject) || (await isReplyToFollowing(postObject))) {
+          try {
+            const { actor } = await fetchUser(postObject.actor);
+            const post = await getActivity(postObject.id);
+            stream.push({
+              note: post,
+              actor
+            });
+          } catch (err) {
+            console.error('error while loading post from index');
+          }
+        } else {
+          // disgard replies i don't care about
+        }
+      } else {
+        // disregard not from following
+      }
+    } else {
+      const post = await getNote(postObject.id);
+      stream.push({
+        note: post,
+        actor: ActivityPub.actor
+      });
+    }
+  }
+
+  return {
+    activitystream: stream
+  };
+};
+
+
+
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 4.0.2 on Thu Dec 14 2023 18:11:22 GMT-0800 (Pacific Standard Time) +
+ + + + + diff --git a/apiDocumentation/users.js.html b/apiDocumentation/users.js.html new file mode 100644 index 0000000..45001cb --- /dev/null +++ b/apiDocumentation/users.js.html @@ -0,0 +1,162 @@ + + + + + JSDoc: Source: users.js + + + + + + + + + + +
+ +

Source: users.js

+ + + + + + +
+
+
import path from 'path';
+import fs from 'fs';
+import debug from 'debug';
+import { readJSONDictionary, writeJSONDictionary, pathToUsers } from './storage.js';
+import { ActivityPub } from './ActivityPub.js';
+
+const logger = debug('ono:users');
+
+/**
+ * The function `fetchUserFromSource` fetches user information from a given webId or username using the
+ * ActivityPub protocol.
+ * @param username - The `username` parameter is the username of the user you want to fetch from the
+ * source. It is used to identify the user and retrieve their information.
+ * @param webId - The `webId` parameter is a string that represents the unique identifier of a user on
+ * the web. It is used to fetch the actor information of the user from an ActivityPub server. If the
+ * `webId` parameter is not provided, the function will attempt to fetch the actor information using
+ * the
+ * @returns The function `fetchUserFromSource` returns an object with the properties `webfinger`,
+ * `actor`, and `lastFetched`.
+ */
+const fetchUserFromSource = async (username, webId) => {
+  let webfinger;
+
+  if (!webId) {
+    try {
+      webfinger = await ActivityPub.webfinger(username);
+    } catch (err) {
+      return {
+        actor: {
+          name: username,
+          preferredUsername: username
+        }
+      };
+    }
+  }
+
+  // now fetch actor info
+  const self = webId || webfinger.links.filter(l => l.rel === 'self')[0]?.href;
+  let actor;
+  if (self) {
+    logger(`fetch activitypub.actor ${self}`);
+    try {
+      actor = await ActivityPub.fetchActor(self);
+    } catch (err) {
+      return {
+        actor: {
+          name: username,
+          preferredUsername: username,
+          id: webId
+        }
+      };
+    }
+  } else {
+    throw new Error('could not find self link in webfinger');
+  }
+
+  const userFile = path.resolve(pathToUsers, `${username}.json`);
+  logger(`update ${userFile}`);
+  writeJSONDictionary(userFile, {
+    webfinger,
+    actor,
+    lastFetched: new Date().getTime()
+  });
+
+  return {
+    webfinger,
+    actor,
+    lastFetched: new Date().getTime()
+  };
+};
+
+/**
+ * The `fetchUser` function fetches user information either from a cache or from a source, with an
+ * option to skip fingerprinting if the user is already an ActivityPub URL.
+ * @returns The function `fetchUser` returns a Promise that resolves to the user account information.
+ */
+export const fetchUser = async user => {
+  let skipFinger = false;
+  const now = new Date().getTime();
+  const cacheMax = 1 * 60 * 60 * 1000; // cache user info for 1 hour
+
+  const username = ActivityPub.getUsername(user);
+  // if we start with an activitypub url, we don't need to finger to get it
+  if (user.startsWith('https://')) {
+    skipFinger = true;
+  }
+
+  const userFile = path.resolve(pathToUsers, `${username}.json`);
+  logger('load user', user, userFile);
+
+  if (fs.existsSync(userFile)) {
+    const account = readJSONDictionary(userFile);
+    // check date to see if we need to refetch...
+    if (account.lastFetched && account.lastFetched > now - cacheMax) {
+      return account;
+    } else if (!account.actor || !account.actor.id) {
+      // do nothing and fall through to the live fetch
+      // since we don't have a full user account here
+    } else {
+      logger('fetch fresh user for', user, `${username}`);
+      // attempt to fetch a new one async
+      // TODO: needs to be debounced - could try to load same user many times quickly
+      fetchUserFromSource(username, account?.actor?.id).catch(err =>
+        console.error('Error updating user data for', username, err)
+      );
+      return account;
+    }
+  }
+
+  return await fetchUserFromSource(username, skipFinger ? user : null);
+};
+
+
+
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 4.0.2 on Thu Dec 14 2023 18:11:22 GMT-0800 (Pacific Standard Time) +
+ + + + + diff --git a/apiDocumentation/webfinger.js.html b/apiDocumentation/webfinger.js.html new file mode 100644 index 0000000..07104a6 --- /dev/null +++ b/apiDocumentation/webfinger.js.html @@ -0,0 +1,100 @@ + + + + + JSDoc: Source: webfinger.js + + + + + + + + + + +
+ +

Source: webfinger.js

+ + + + + + +
+
+
import express from 'express';
+
+/**
+ * Express.js router for handling webfinger-related routes.
+ *
+ * @typedef {Object} WebfingerRouter
+ * @property {Function} getResource - Route handler for retrieving a webfinger resource.
+ *
+ * @example
+ * // Example usage:
+ * import { router as webfingerRouter } from './webfingerRouter';
+ * app.use('/webfinger', webfingerRouter);
+ */
+export const router = express.Router();
+
+/**
+ * Route handler for retrieving a webfinger resource.
+ *
+ * @function
+ * @param {Object} req - Express.js request object.
+ * @param {Object} res - Express.js response object.
+ * @returns {void} Responds with a webfinger resource or an error message based on the request.
+ *
+ * @throws {Error} Responds with a 400 Bad Request if the 'resource' query parameter is missing or incorrectly formatted.
+ * @throws {Error} Responds with a 404 Not Found if no record is found for the provided 'resource'.
+ *
+ */
+router.get('/', function (req, res) {
+  // Extract the 'resource' query parameter from the request
+  const resource = req.query.resource;
+
+  // Check if the 'resource' parameter is missing or incorrectly formatted
+  if (!resource || !resource.includes('acct:')) {
+    return res
+      .status(400)
+      .send(
+        'Bad request. Please make sure "acct:USER@DOMAIN" is what you are sending as the "resource" query parameter.'
+      );
+  } else {
+    // Check if the provided 'resource' matches the stored webfinger subject
+    if (resource === req.app.get('account').webfinger.subject) {
+      // Respond with the webfinger resource in JSON format
+      res.json(req.app.get('account').webfinger);
+    } else {
+      // Respond with a 404 Not Found if no record is found for the provided 'resource'
+      return res.status(404).send(`No record found for ${resource}.`);
+    }
+  }
+});
+
+
+
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 4.0.2 on Thu Dec 14 2023 18:13:17 GMT-0800 (Pacific Standard Time) +
+ + + + + From 3cbf9ffd46ef4e086eb0a10d44c6d78e5792a24e Mon Sep 17 00:00:00 2001 From: Aditya Mandke <40426312+ekdnam@users.noreply.github.com> Date: Thu, 14 Dec 2023 18:18:04 -0800 Subject: [PATCH 099/100] modified linter, ignore prettify in documentation folder --- .eslintrc.cjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 637c87e..b48fbc9 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -13,5 +13,5 @@ module.exports = { }, rules: { }, - ignorePatterns: ["**/*.jest.js"], + ignorePatterns: ["**/*.jest.js", "**/prettify"], } From fcc96f50a9b049c2639dad5b7f67b102fa249009 Mon Sep 17 00:00:00 2001 From: Aditya Mandke <40426312+ekdnam@users.noreply.github.com> Date: Thu, 14 Dec 2023 18:45:17 -0800 Subject: [PATCH 100/100] rename folders --- {apiDocumentation => docs}/ActivityPub.js.html | 0 {apiDocumentation => docs}/ActivityPubClient.html | 0 {apiDocumentation => docs}/Markdown.js.html | 0 {apiDocumentation => docs}/account.js.html | 0 {apiDocumentation => docs}/authentication.js.html | 0 .../fonts/OpenSans-Bold-webfont.eot | Bin .../fonts/OpenSans-Bold-webfont.svg | 0 .../fonts/OpenSans-Bold-webfont.woff | Bin .../fonts/OpenSans-BoldItalic-webfont.eot | Bin .../fonts/OpenSans-BoldItalic-webfont.svg | 0 .../fonts/OpenSans-BoldItalic-webfont.woff | Bin .../fonts/OpenSans-Italic-webfont.eot | Bin .../fonts/OpenSans-Italic-webfont.svg | 0 .../fonts/OpenSans-Italic-webfont.woff | Bin .../fonts/OpenSans-Light-webfont.eot | Bin .../fonts/OpenSans-Light-webfont.svg | 0 .../fonts/OpenSans-Light-webfont.woff | Bin .../fonts/OpenSans-LightItalic-webfont.eot | Bin .../fonts/OpenSans-LightItalic-webfont.svg | 0 .../fonts/OpenSans-LightItalic-webfont.woff | Bin .../fonts/OpenSans-Regular-webfont.eot | Bin .../fonts/OpenSans-Regular-webfont.svg | 0 .../fonts/OpenSans-Regular-webfont.woff | Bin {apiDocumentation => docs}/global.html | 0 {apiDocumentation => docs}/inbox.js.html | 0 {apiDocumentation => docs}/index.html | 0 {apiDocumentation => docs}/notes.js.html | 0 {apiDocumentation => docs}/outbox.js.html | 0 {apiDocumentation => docs}/public.js.html | 0 {apiDocumentation => docs}/scripts/linenumber.js | 0 .../scripts/prettify/Apache-License-2.0.txt | 0 .../scripts/prettify/lang-css.js | 0 .../scripts/prettify/prettify.js | 0 {apiDocumentation => docs}/storage.js.html | 0 {apiDocumentation => docs}/styles/jsdoc-default.css | 0 .../styles/prettify-jsdoc.css | 0 .../styles/prettify-tomorrow.css | 0 {apiDocumentation => docs}/theAlgorithm.js.html | 0 {apiDocumentation => docs}/users.js.html | 0 {apiDocumentation => docs}/webfinger.js.html | 0 {documentation => projectDocs}/Pitch Document.pdf | Bin .../meeting-notes/11-04-2023.md | 0 .../meeting-notes/11-05-2023.md | 0 .../meeting-notes/11-11-2023.md | 0 .../meeting-notes/11-15-2023.md | 0 .../meeting-notes/12-02-2023.md | 0 .../meeting-notes/12-06-2023.md | 0 .../meeting-notes/12-09-2023.md | 0 .../meeting-notes/12-11-2023.md | 0 .../meeting-notes/12-12-2023.md | 0 .../wireframes/images/index-hi.png | Bin .../wireframes/images/index-low.png | Bin .../wireframes/images/msg-hi.png | Bin .../wireframes/images/msg-low.png | Bin .../wireframes/images/private-hi.png | Bin .../wireframes/images/private-low.png | Bin .../wireframes/images/send-msg-hi.png | Bin .../wireframes/images/send-msg-low.png | Bin 58 files changed, 0 insertions(+), 0 deletions(-) rename {apiDocumentation => docs}/ActivityPub.js.html (100%) rename {apiDocumentation => docs}/ActivityPubClient.html (100%) rename {apiDocumentation => docs}/Markdown.js.html (100%) rename {apiDocumentation => docs}/account.js.html (100%) rename {apiDocumentation => docs}/authentication.js.html (100%) rename {apiDocumentation => docs}/fonts/OpenSans-Bold-webfont.eot (100%) rename {apiDocumentation => docs}/fonts/OpenSans-Bold-webfont.svg (100%) rename {apiDocumentation => docs}/fonts/OpenSans-Bold-webfont.woff (100%) rename {apiDocumentation => docs}/fonts/OpenSans-BoldItalic-webfont.eot (100%) rename {apiDocumentation => docs}/fonts/OpenSans-BoldItalic-webfont.svg (100%) rename {apiDocumentation => docs}/fonts/OpenSans-BoldItalic-webfont.woff (100%) rename {apiDocumentation => docs}/fonts/OpenSans-Italic-webfont.eot (100%) rename {apiDocumentation => docs}/fonts/OpenSans-Italic-webfont.svg (100%) rename {apiDocumentation => docs}/fonts/OpenSans-Italic-webfont.woff (100%) rename {apiDocumentation => docs}/fonts/OpenSans-Light-webfont.eot (100%) rename {apiDocumentation => docs}/fonts/OpenSans-Light-webfont.svg (100%) rename {apiDocumentation => docs}/fonts/OpenSans-Light-webfont.woff (100%) rename {apiDocumentation => docs}/fonts/OpenSans-LightItalic-webfont.eot (100%) rename {apiDocumentation => docs}/fonts/OpenSans-LightItalic-webfont.svg (100%) rename {apiDocumentation => docs}/fonts/OpenSans-LightItalic-webfont.woff (100%) rename {apiDocumentation => docs}/fonts/OpenSans-Regular-webfont.eot (100%) rename {apiDocumentation => docs}/fonts/OpenSans-Regular-webfont.svg (100%) rename {apiDocumentation => docs}/fonts/OpenSans-Regular-webfont.woff (100%) rename {apiDocumentation => docs}/global.html (100%) rename {apiDocumentation => docs}/inbox.js.html (100%) rename {apiDocumentation => docs}/index.html (100%) rename {apiDocumentation => docs}/notes.js.html (100%) rename {apiDocumentation => docs}/outbox.js.html (100%) rename {apiDocumentation => docs}/public.js.html (100%) rename {apiDocumentation => docs}/scripts/linenumber.js (100%) rename {apiDocumentation => docs}/scripts/prettify/Apache-License-2.0.txt (100%) rename {apiDocumentation => docs}/scripts/prettify/lang-css.js (100%) rename {apiDocumentation => docs}/scripts/prettify/prettify.js (100%) rename {apiDocumentation => docs}/storage.js.html (100%) rename {apiDocumentation => docs}/styles/jsdoc-default.css (100%) rename {apiDocumentation => docs}/styles/prettify-jsdoc.css (100%) rename {apiDocumentation => docs}/styles/prettify-tomorrow.css (100%) rename {apiDocumentation => docs}/theAlgorithm.js.html (100%) rename {apiDocumentation => docs}/users.js.html (100%) rename {apiDocumentation => docs}/webfinger.js.html (100%) rename {documentation => projectDocs}/Pitch Document.pdf (100%) rename {documentation => projectDocs}/meeting-notes/11-04-2023.md (100%) rename {documentation => projectDocs}/meeting-notes/11-05-2023.md (100%) rename {documentation => projectDocs}/meeting-notes/11-11-2023.md (100%) rename {documentation => projectDocs}/meeting-notes/11-15-2023.md (100%) rename {documentation => projectDocs}/meeting-notes/12-02-2023.md (100%) rename {documentation => projectDocs}/meeting-notes/12-06-2023.md (100%) rename {documentation => projectDocs}/meeting-notes/12-09-2023.md (100%) rename {documentation => projectDocs}/meeting-notes/12-11-2023.md (100%) rename {documentation => projectDocs}/meeting-notes/12-12-2023.md (100%) rename {documentation => projectDocs}/wireframes/images/index-hi.png (100%) rename {documentation => projectDocs}/wireframes/images/index-low.png (100%) rename {documentation => projectDocs}/wireframes/images/msg-hi.png (100%) rename {documentation => projectDocs}/wireframes/images/msg-low.png (100%) rename {documentation => projectDocs}/wireframes/images/private-hi.png (100%) rename {documentation => projectDocs}/wireframes/images/private-low.png (100%) rename {documentation => projectDocs}/wireframes/images/send-msg-hi.png (100%) rename {documentation => projectDocs}/wireframes/images/send-msg-low.png (100%) diff --git a/apiDocumentation/ActivityPub.js.html b/docs/ActivityPub.js.html similarity index 100% rename from apiDocumentation/ActivityPub.js.html rename to docs/ActivityPub.js.html diff --git a/apiDocumentation/ActivityPubClient.html b/docs/ActivityPubClient.html similarity index 100% rename from apiDocumentation/ActivityPubClient.html rename to docs/ActivityPubClient.html diff --git a/apiDocumentation/Markdown.js.html b/docs/Markdown.js.html similarity index 100% rename from apiDocumentation/Markdown.js.html rename to docs/Markdown.js.html diff --git a/apiDocumentation/account.js.html b/docs/account.js.html similarity index 100% rename from apiDocumentation/account.js.html rename to docs/account.js.html diff --git a/apiDocumentation/authentication.js.html b/docs/authentication.js.html similarity index 100% rename from apiDocumentation/authentication.js.html rename to docs/authentication.js.html diff --git a/apiDocumentation/fonts/OpenSans-Bold-webfont.eot b/docs/fonts/OpenSans-Bold-webfont.eot similarity index 100% rename from apiDocumentation/fonts/OpenSans-Bold-webfont.eot rename to docs/fonts/OpenSans-Bold-webfont.eot diff --git a/apiDocumentation/fonts/OpenSans-Bold-webfont.svg b/docs/fonts/OpenSans-Bold-webfont.svg similarity index 100% rename from apiDocumentation/fonts/OpenSans-Bold-webfont.svg rename to docs/fonts/OpenSans-Bold-webfont.svg diff --git a/apiDocumentation/fonts/OpenSans-Bold-webfont.woff b/docs/fonts/OpenSans-Bold-webfont.woff similarity index 100% rename from apiDocumentation/fonts/OpenSans-Bold-webfont.woff rename to docs/fonts/OpenSans-Bold-webfont.woff diff --git a/apiDocumentation/fonts/OpenSans-BoldItalic-webfont.eot b/docs/fonts/OpenSans-BoldItalic-webfont.eot similarity index 100% rename from apiDocumentation/fonts/OpenSans-BoldItalic-webfont.eot rename to docs/fonts/OpenSans-BoldItalic-webfont.eot diff --git a/apiDocumentation/fonts/OpenSans-BoldItalic-webfont.svg b/docs/fonts/OpenSans-BoldItalic-webfont.svg similarity index 100% rename from apiDocumentation/fonts/OpenSans-BoldItalic-webfont.svg rename to docs/fonts/OpenSans-BoldItalic-webfont.svg diff --git a/apiDocumentation/fonts/OpenSans-BoldItalic-webfont.woff b/docs/fonts/OpenSans-BoldItalic-webfont.woff similarity index 100% rename from apiDocumentation/fonts/OpenSans-BoldItalic-webfont.woff rename to docs/fonts/OpenSans-BoldItalic-webfont.woff diff --git a/apiDocumentation/fonts/OpenSans-Italic-webfont.eot b/docs/fonts/OpenSans-Italic-webfont.eot similarity index 100% rename from apiDocumentation/fonts/OpenSans-Italic-webfont.eot rename to docs/fonts/OpenSans-Italic-webfont.eot diff --git a/apiDocumentation/fonts/OpenSans-Italic-webfont.svg b/docs/fonts/OpenSans-Italic-webfont.svg similarity index 100% rename from apiDocumentation/fonts/OpenSans-Italic-webfont.svg rename to docs/fonts/OpenSans-Italic-webfont.svg diff --git a/apiDocumentation/fonts/OpenSans-Italic-webfont.woff b/docs/fonts/OpenSans-Italic-webfont.woff similarity index 100% rename from apiDocumentation/fonts/OpenSans-Italic-webfont.woff rename to docs/fonts/OpenSans-Italic-webfont.woff diff --git a/apiDocumentation/fonts/OpenSans-Light-webfont.eot b/docs/fonts/OpenSans-Light-webfont.eot similarity index 100% rename from apiDocumentation/fonts/OpenSans-Light-webfont.eot rename to docs/fonts/OpenSans-Light-webfont.eot diff --git a/apiDocumentation/fonts/OpenSans-Light-webfont.svg b/docs/fonts/OpenSans-Light-webfont.svg similarity index 100% rename from apiDocumentation/fonts/OpenSans-Light-webfont.svg rename to docs/fonts/OpenSans-Light-webfont.svg diff --git a/apiDocumentation/fonts/OpenSans-Light-webfont.woff b/docs/fonts/OpenSans-Light-webfont.woff similarity index 100% rename from apiDocumentation/fonts/OpenSans-Light-webfont.woff rename to docs/fonts/OpenSans-Light-webfont.woff diff --git a/apiDocumentation/fonts/OpenSans-LightItalic-webfont.eot b/docs/fonts/OpenSans-LightItalic-webfont.eot similarity index 100% rename from apiDocumentation/fonts/OpenSans-LightItalic-webfont.eot rename to docs/fonts/OpenSans-LightItalic-webfont.eot diff --git a/apiDocumentation/fonts/OpenSans-LightItalic-webfont.svg b/docs/fonts/OpenSans-LightItalic-webfont.svg similarity index 100% rename from apiDocumentation/fonts/OpenSans-LightItalic-webfont.svg rename to docs/fonts/OpenSans-LightItalic-webfont.svg diff --git a/apiDocumentation/fonts/OpenSans-LightItalic-webfont.woff b/docs/fonts/OpenSans-LightItalic-webfont.woff similarity index 100% rename from apiDocumentation/fonts/OpenSans-LightItalic-webfont.woff rename to docs/fonts/OpenSans-LightItalic-webfont.woff diff --git a/apiDocumentation/fonts/OpenSans-Regular-webfont.eot b/docs/fonts/OpenSans-Regular-webfont.eot similarity index 100% rename from apiDocumentation/fonts/OpenSans-Regular-webfont.eot rename to docs/fonts/OpenSans-Regular-webfont.eot diff --git a/apiDocumentation/fonts/OpenSans-Regular-webfont.svg b/docs/fonts/OpenSans-Regular-webfont.svg similarity index 100% rename from apiDocumentation/fonts/OpenSans-Regular-webfont.svg rename to docs/fonts/OpenSans-Regular-webfont.svg diff --git a/apiDocumentation/fonts/OpenSans-Regular-webfont.woff b/docs/fonts/OpenSans-Regular-webfont.woff similarity index 100% rename from apiDocumentation/fonts/OpenSans-Regular-webfont.woff rename to docs/fonts/OpenSans-Regular-webfont.woff diff --git a/apiDocumentation/global.html b/docs/global.html similarity index 100% rename from apiDocumentation/global.html rename to docs/global.html diff --git a/apiDocumentation/inbox.js.html b/docs/inbox.js.html similarity index 100% rename from apiDocumentation/inbox.js.html rename to docs/inbox.js.html diff --git a/apiDocumentation/index.html b/docs/index.html similarity index 100% rename from apiDocumentation/index.html rename to docs/index.html diff --git a/apiDocumentation/notes.js.html b/docs/notes.js.html similarity index 100% rename from apiDocumentation/notes.js.html rename to docs/notes.js.html diff --git a/apiDocumentation/outbox.js.html b/docs/outbox.js.html similarity index 100% rename from apiDocumentation/outbox.js.html rename to docs/outbox.js.html diff --git a/apiDocumentation/public.js.html b/docs/public.js.html similarity index 100% rename from apiDocumentation/public.js.html rename to docs/public.js.html diff --git a/apiDocumentation/scripts/linenumber.js b/docs/scripts/linenumber.js similarity index 100% rename from apiDocumentation/scripts/linenumber.js rename to docs/scripts/linenumber.js diff --git a/apiDocumentation/scripts/prettify/Apache-License-2.0.txt b/docs/scripts/prettify/Apache-License-2.0.txt similarity index 100% rename from apiDocumentation/scripts/prettify/Apache-License-2.0.txt rename to docs/scripts/prettify/Apache-License-2.0.txt diff --git a/apiDocumentation/scripts/prettify/lang-css.js b/docs/scripts/prettify/lang-css.js similarity index 100% rename from apiDocumentation/scripts/prettify/lang-css.js rename to docs/scripts/prettify/lang-css.js diff --git a/apiDocumentation/scripts/prettify/prettify.js b/docs/scripts/prettify/prettify.js similarity index 100% rename from apiDocumentation/scripts/prettify/prettify.js rename to docs/scripts/prettify/prettify.js diff --git a/apiDocumentation/storage.js.html b/docs/storage.js.html similarity index 100% rename from apiDocumentation/storage.js.html rename to docs/storage.js.html diff --git a/apiDocumentation/styles/jsdoc-default.css b/docs/styles/jsdoc-default.css similarity index 100% rename from apiDocumentation/styles/jsdoc-default.css rename to docs/styles/jsdoc-default.css diff --git a/apiDocumentation/styles/prettify-jsdoc.css b/docs/styles/prettify-jsdoc.css similarity index 100% rename from apiDocumentation/styles/prettify-jsdoc.css rename to docs/styles/prettify-jsdoc.css diff --git a/apiDocumentation/styles/prettify-tomorrow.css b/docs/styles/prettify-tomorrow.css similarity index 100% rename from apiDocumentation/styles/prettify-tomorrow.css rename to docs/styles/prettify-tomorrow.css diff --git a/apiDocumentation/theAlgorithm.js.html b/docs/theAlgorithm.js.html similarity index 100% rename from apiDocumentation/theAlgorithm.js.html rename to docs/theAlgorithm.js.html diff --git a/apiDocumentation/users.js.html b/docs/users.js.html similarity index 100% rename from apiDocumentation/users.js.html rename to docs/users.js.html diff --git a/apiDocumentation/webfinger.js.html b/docs/webfinger.js.html similarity index 100% rename from apiDocumentation/webfinger.js.html rename to docs/webfinger.js.html diff --git a/documentation/Pitch Document.pdf b/projectDocs/Pitch Document.pdf similarity index 100% rename from documentation/Pitch Document.pdf rename to projectDocs/Pitch Document.pdf diff --git a/documentation/meeting-notes/11-04-2023.md b/projectDocs/meeting-notes/11-04-2023.md similarity index 100% rename from documentation/meeting-notes/11-04-2023.md rename to projectDocs/meeting-notes/11-04-2023.md diff --git a/documentation/meeting-notes/11-05-2023.md b/projectDocs/meeting-notes/11-05-2023.md similarity index 100% rename from documentation/meeting-notes/11-05-2023.md rename to projectDocs/meeting-notes/11-05-2023.md diff --git a/documentation/meeting-notes/11-11-2023.md b/projectDocs/meeting-notes/11-11-2023.md similarity index 100% rename from documentation/meeting-notes/11-11-2023.md rename to projectDocs/meeting-notes/11-11-2023.md diff --git a/documentation/meeting-notes/11-15-2023.md b/projectDocs/meeting-notes/11-15-2023.md similarity index 100% rename from documentation/meeting-notes/11-15-2023.md rename to projectDocs/meeting-notes/11-15-2023.md diff --git a/documentation/meeting-notes/12-02-2023.md b/projectDocs/meeting-notes/12-02-2023.md similarity index 100% rename from documentation/meeting-notes/12-02-2023.md rename to projectDocs/meeting-notes/12-02-2023.md diff --git a/documentation/meeting-notes/12-06-2023.md b/projectDocs/meeting-notes/12-06-2023.md similarity index 100% rename from documentation/meeting-notes/12-06-2023.md rename to projectDocs/meeting-notes/12-06-2023.md diff --git a/documentation/meeting-notes/12-09-2023.md b/projectDocs/meeting-notes/12-09-2023.md similarity index 100% rename from documentation/meeting-notes/12-09-2023.md rename to projectDocs/meeting-notes/12-09-2023.md diff --git a/documentation/meeting-notes/12-11-2023.md b/projectDocs/meeting-notes/12-11-2023.md similarity index 100% rename from documentation/meeting-notes/12-11-2023.md rename to projectDocs/meeting-notes/12-11-2023.md diff --git a/documentation/meeting-notes/12-12-2023.md b/projectDocs/meeting-notes/12-12-2023.md similarity index 100% rename from documentation/meeting-notes/12-12-2023.md rename to projectDocs/meeting-notes/12-12-2023.md diff --git a/documentation/wireframes/images/index-hi.png b/projectDocs/wireframes/images/index-hi.png similarity index 100% rename from documentation/wireframes/images/index-hi.png rename to projectDocs/wireframes/images/index-hi.png diff --git a/documentation/wireframes/images/index-low.png b/projectDocs/wireframes/images/index-low.png similarity index 100% rename from documentation/wireframes/images/index-low.png rename to projectDocs/wireframes/images/index-low.png diff --git a/documentation/wireframes/images/msg-hi.png b/projectDocs/wireframes/images/msg-hi.png similarity index 100% rename from documentation/wireframes/images/msg-hi.png rename to projectDocs/wireframes/images/msg-hi.png diff --git a/documentation/wireframes/images/msg-low.png b/projectDocs/wireframes/images/msg-low.png similarity index 100% rename from documentation/wireframes/images/msg-low.png rename to projectDocs/wireframes/images/msg-low.png diff --git a/documentation/wireframes/images/private-hi.png b/projectDocs/wireframes/images/private-hi.png similarity index 100% rename from documentation/wireframes/images/private-hi.png rename to projectDocs/wireframes/images/private-hi.png diff --git a/documentation/wireframes/images/private-low.png b/projectDocs/wireframes/images/private-low.png similarity index 100% rename from documentation/wireframes/images/private-low.png rename to projectDocs/wireframes/images/private-low.png diff --git a/documentation/wireframes/images/send-msg-hi.png b/projectDocs/wireframes/images/send-msg-hi.png similarity index 100% rename from documentation/wireframes/images/send-msg-hi.png rename to projectDocs/wireframes/images/send-msg-hi.png diff --git a/documentation/wireframes/images/send-msg-low.png b/projectDocs/wireframes/images/send-msg-low.png similarity index 100% rename from documentation/wireframes/images/send-msg-low.png rename to projectDocs/wireframes/images/send-msg-low.png

)CdQ3F!eKyF|9D2V!F-rhUpJ8J+l7g0OBBVM#THTI&O8)>EGR%u6Gd9D9pm5!S}%&6DxW}^f|7=Y zPoO3(pTZY#?(7(|!5}5Nn!D%DotZmlW)?smSMcEE<^aT$6gw#LlwubPI9BYTffL0! zyu-EPCnz{Y#ZR&1d{F!hr_NW!&#~mXis$jseXDo@U)-kR7sMBeUt-T&RQw9By@BF9 z3f?cpmw4m-R{RHncaC**(V--ipJ<~6LkW2fi6RVfh%vcYt9@z>&M0LBSf-Q|Et8wU zCt43_*JB)mHR71wb`K@~5Cizwp{`A2uuJ^_Bcl3k{7ree$8&@l?;^2nagS+NqCDBfkB?pJws=PbK~+A7|2 z{gCDJKI-i%m4LD$n{WIwWR|c+NRy`C1#)1sSBI7FiH6z-QkhY&Q_|%I3exQ zQ`X1M?cZH4^M&BSyr;2z$+^SZUMA*0001Z+HKHROw(}?!13=vX`$@Br+fGR zZ%e`5O6%Txi$Yrz0gF{}p>fY>OnlS0Uevf}oDXW;D{d2gcE<2)oFcV80@g$H)63L{HN*d{8kVzKVW(;E)$9N_%kx5Ku3R9WJbY?JW^G#k0Wdx>E$NBBVtKRLiL?sA*s%w`TdsNz1=+~FRNdB8&+@iBD0 zXFTC4C-8-Cwv(4U=LLQ~^Oa4^rG|OTr5?ItoaPMYxxh`%a*kVU z;HYGAjq6;IY{`*awo0DlOMw(hkrYdb(O28l;MYvSx*ChcQW4f^QL5UdE3HbqvbxB$pfSg`>Cj#;?~00;nMAg}==M6d%RaIhCe zARtS)01i=0um)3FSgr#ump{<1pq_<0a34Kp8x=7I1^|9 literal 0 HcmV?d00001 diff --git a/apiDocumentation/fonts/OpenSans-Regular-webfont.eot b/apiDocumentation/fonts/OpenSans-Regular-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..6bbc3cf58cb011a6b4bf3cb1612ce212608f7274 GIT binary patch literal 19836 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apiDocumentation/fonts/OpenSans-Regular-webfont.woff b/apiDocumentation/fonts/OpenSans-Regular-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..e231183dce4c7b452afc9e7799586fd285e146f4 GIT binary patch literal 22660 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 ML;wL%uV=LY00kR;TmS$7 literal 0 HcmV?d00001 diff --git a/apiDocumentation/global.html b/apiDocumentation/global.html new file mode 100644 index 0000000..4b029e4 --- /dev/null +++ b/apiDocumentation/global.html @@ -0,0 +1,771 @@ + + + + + JSDoc: Global + + + + + + + + + + +

gH#%eQ9WTl^ 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 literal 0 HcmV?d00001 diff --git a/documentation/wireframes/images/send-msg-low.png b/documentation/wireframes/images/send-msg-low.png new file mode 100644 index 0000000000000000000000000000000000000000..a7fe5984dd4dcd1f3b4211d08aa3b21411bac4b4 GIT binary patch literal 242514 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 Date: Thu, 14 Dec 2023 18:17:42 -0800 Subject: [PATCH 098/100] API docs generated --- apiDocumentation/ActivityPub.js.html | 605 ++++ apiDocumentation/ActivityPubClient.html | 2906 +++++++++++++++++ apiDocumentation/Markdown.js.html | 105 + apiDocumentation/account.js.html | 178 + apiDocumentation/authentication.js.html | 181 + .../fonts/OpenSans-Bold-webfont.eot | Bin 0 -> 19544 bytes .../fonts/OpenSans-Bold-webfont.svg | 1830 +++++++++++ .../fonts/OpenSans-Bold-webfont.woff | Bin 0 -> 22432 bytes .../fonts/OpenSans-BoldItalic-webfont.eot | Bin 0 -> 20133 bytes .../fonts/OpenSans-BoldItalic-webfont.svg | 1830 +++++++++++ .../fonts/OpenSans-BoldItalic-webfont.woff | Bin 0 -> 23048 bytes .../fonts/OpenSans-Italic-webfont.eot | Bin 0 -> 20265 bytes .../fonts/OpenSans-Italic-webfont.svg | 1830 +++++++++++ .../fonts/OpenSans-Italic-webfont.woff | Bin 0 -> 23188 bytes .../fonts/OpenSans-Light-webfont.eot | Bin 0 -> 19514 bytes .../fonts/OpenSans-Light-webfont.svg | 1831 +++++++++++ .../fonts/OpenSans-Light-webfont.woff | Bin 0 -> 22248 bytes .../fonts/OpenSans-LightItalic-webfont.eot | Bin 0 -> 20535 bytes .../fonts/OpenSans-LightItalic-webfont.svg | 1835 +++++++++++ .../fonts/OpenSans-LightItalic-webfont.woff | Bin 0 -> 23400 bytes .../fonts/OpenSans-Regular-webfont.eot | Bin 0 -> 19836 bytes .../fonts/OpenSans-Regular-webfont.svg | 1831 +++++++++++ .../fonts/OpenSans-Regular-webfont.woff | Bin 0 -> 22660 bytes apiDocumentation/global.html | 771 +++++ apiDocumentation/inbox.js.html | 263 ++ apiDocumentation/index.html | 65 + apiDocumentation/notes.js.html | 247 ++ apiDocumentation/outbox.js.html | 164 + apiDocumentation/public.js.html | 231 ++ apiDocumentation/scripts/linenumber.js | 25 + .../scripts/prettify/Apache-License-2.0.txt | 202 ++ apiDocumentation/scripts/prettify/lang-css.js | 23 + apiDocumentation/scripts/prettify/prettify.js | 588 ++++ apiDocumentation/storage.js.html | 457 +++ apiDocumentation/styles/jsdoc-default.css | 358 ++ apiDocumentation/styles/prettify-jsdoc.css | 111 + apiDocumentation/styles/prettify-tomorrow.css | 132 + apiDocumentation/theAlgorithm.js.html | 276 ++ apiDocumentation/users.js.html | 162 + apiDocumentation/webfinger.js.html | 100 + 40 files changed, 19137 insertions(+) create mode 100644 apiDocumentation/ActivityPub.js.html create mode 100644 apiDocumentation/ActivityPubClient.html create mode 100644 apiDocumentation/Markdown.js.html create mode 100644 apiDocumentation/account.js.html create mode 100644 apiDocumentation/authentication.js.html create mode 100644 apiDocumentation/fonts/OpenSans-Bold-webfont.eot create mode 100644 apiDocumentation/fonts/OpenSans-Bold-webfont.svg create mode 100644 apiDocumentation/fonts/OpenSans-Bold-webfont.woff create mode 100644 apiDocumentation/fonts/OpenSans-BoldItalic-webfont.eot create mode 100644 apiDocumentation/fonts/OpenSans-BoldItalic-webfont.svg create mode 100644 apiDocumentation/fonts/OpenSans-BoldItalic-webfont.woff create mode 100644 apiDocumentation/fonts/OpenSans-Italic-webfont.eot create mode 100644 apiDocumentation/fonts/OpenSans-Italic-webfont.svg create mode 100644 apiDocumentation/fonts/OpenSans-Italic-webfont.woff create mode 100644 apiDocumentation/fonts/OpenSans-Light-webfont.eot create mode 100644 apiDocumentation/fonts/OpenSans-Light-webfont.svg create mode 100644 apiDocumentation/fonts/OpenSans-Light-webfont.woff create mode 100644 apiDocumentation/fonts/OpenSans-LightItalic-webfont.eot create mode 100644 apiDocumentation/fonts/OpenSans-LightItalic-webfont.svg create mode 100644 apiDocumentation/fonts/OpenSans-LightItalic-webfont.woff create mode 100644 apiDocumentation/fonts/OpenSans-Regular-webfont.eot create mode 100644 apiDocumentation/fonts/OpenSans-Regular-webfont.svg create mode 100644 apiDocumentation/fonts/OpenSans-Regular-webfont.woff create mode 100644 apiDocumentation/global.html create mode 100644 apiDocumentation/inbox.js.html create mode 100644 apiDocumentation/index.html create mode 100644 apiDocumentation/notes.js.html create mode 100644 apiDocumentation/outbox.js.html create mode 100644 apiDocumentation/public.js.html create mode 100644 apiDocumentation/scripts/linenumber.js create mode 100644 apiDocumentation/scripts/prettify/Apache-License-2.0.txt create mode 100644 apiDocumentation/scripts/prettify/lang-css.js create mode 100644 apiDocumentation/scripts/prettify/prettify.js create mode 100644 apiDocumentation/storage.js.html create mode 100644 apiDocumentation/styles/jsdoc-default.css create mode 100644 apiDocumentation/styles/prettify-jsdoc.css create mode 100644 apiDocumentation/styles/prettify-tomorrow.css create mode 100644 apiDocumentation/theAlgorithm.js.html create mode 100644 apiDocumentation/users.js.html create mode 100644 apiDocumentation/webfinger.js.html diff --git a/apiDocumentation/ActivityPub.js.html b/apiDocumentation/ActivityPub.js.html new file mode 100644 index 0000000..7d32b45 --- /dev/null +++ b/apiDocumentation/ActivityPub.js.html @@ -0,0 +1,605 @@ + + + + + JSDoc: Source: ActivityPub.js + + + + + + + + + + +