From 6ad516c0be0de90e224837181385d356d3f52886 Mon Sep 17 00:00:00 2001 From: Mo'men Tawfik Date: Mon, 16 Mar 2020 19:06:42 +0200 Subject: [PATCH 01/86] Adding node_modules to gitigonre --- .gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..19bfecc --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules \ No newline at end of file From c62a0e47ff117132ffb90119bebef808a0e66d7c Mon Sep 17 00:00:00 2001 From: Mo'men Tawfik Date: Mon, 16 Mar 2020 19:13:38 +0200 Subject: [PATCH 02/86] fixing the lowercase country name parameter issue --- app.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app.js b/app.js index d6c5bb8..56c4fb5 100644 --- a/app.js +++ b/app.js @@ -6,6 +6,14 @@ const port = process.env.PORT || 3001; const { getCountryTable } = require('./lib/byCountry'); const { getCompleteTable } = require('./lib/corona'); +const countryUpperCase = (countryParams) => { + if(countryParams.country.length > 2 ){ + const country = countryParams.country.toLowerCase().split(' ').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' '); + return { country }; + } + return countryParams; +}; + app.get('/', (req, res) => { return getCompleteTable().then(result => { return res.send(result); @@ -13,8 +21,9 @@ app.get('/', (req, res) => { }); app.get('/:country', (req, res) => { - let { country } = req.params; - if (!country || country === 'all') { + + let { country } = countryUpperCase(req.params); + if (!country || country === 'All') { return getCompleteTable().then(result => { return res.send(result); }).catch(error => res.send(error)); From c75c6ca6e312d72215def23ee849f1cd975631cd Mon Sep 17 00:00:00 2001 From: CyberDracula <1976475+CyberDracula@users.noreply.github.com> Date: Mon, 16 Mar 2020 21:08:14 +0200 Subject: [PATCH 03/86] Update readme.md typo correction --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index c8597dd..9dbd5e2 100644 --- a/readme.md +++ b/readme.md @@ -1,4 +1,4 @@ -# cornavirus-tracker-cli +# coronavirus-tracker-cli Track coronavirus from cli From 196c9e99d92688f17ce0c40b9dcb248dd971748b Mon Sep 17 00:00:00 2001 From: sagark Date: Tue, 17 Mar 2020 00:44:52 +0530 Subject: [PATCH 04/86] added errorhandler, all country json result is flattened --- app.js | 17 +++++++++++------ lib/byCountry.js | 4 +++- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/app.js b/app.js index e5385ed..6baed58 100644 --- a/app.js +++ b/app.js @@ -7,18 +7,23 @@ const port = process.env.PORT || 3001; const { getCountryTable, getJSONData, getJSONDataForCountry } = require('./lib/byCountry'); const { getCompleteTable } = require('./lib/corona'); +function errorHandler(error, res) { + console.error(error); + return res.send('I am sorry. Something went wrong. Please report it'); +} + app.get('/', (req, res) => { const format = req.query.format ? req.query.format : ''; if (format.toLowerCase() === 'json') { return getJSONData().then(result => { return res.json(result); - }).catch(error => res.send(error)); + }).catch(error => errorHandler(error, res)); } return getCompleteTable().then(result => { return res.send(result); - }).catch(error => res.send(error)); + }).catch(error => errorHandler(error, res)); }); app.get('/:country', (req, res) => { @@ -30,12 +35,12 @@ app.get('/:country', (req, res) => { if (format.toLowerCase() === 'json') { return getJSONData().then(result => { return res.json(result); - }).catch(error => res.send(error)); + }).catch(error => errorHandler(error, res)); } return getCompleteTable().then(result => { return res.send(result); - }).catch(error => res.send(error)); + }).catch(error => errorHandler(error, res)); } try { @@ -60,12 +65,12 @@ app.get('/:country', (req, res) => { if (format.toLowerCase() === 'json') { return getJSONDataForCountry(iso2).then(result => { return res.json(result); - }).catch(error => res.send(error)); + }).catch(error => errorHandler(error, res)); } return getCountryTable(iso2).then(result => { return res.send(result); - }).catch(error => res.send(error)); + }).catch(error => errorHandler(error, res)); }); diff --git a/lib/byCountry.js b/lib/byCountry.js index 35bd758..d067e5e 100644 --- a/lib/byCountry.js +++ b/lib/byCountry.js @@ -64,7 +64,9 @@ function extraStats(dataArr) { exports.getJSONData = async () => { const data = await api.getCoronaData(); - return data; + const { latest, confirmed, deaths, recovered } = data; + const countryData = getDataByState(confirmed, deaths, recovered); + return countryData; } exports.getJSONDataForCountry = async (countryCode) => { From c34e15f6695bf0a8f6a12c2c1b5b04857f81d261 Mon Sep 17 00:00:00 2001 From: sagark Date: Tue, 17 Mar 2020 01:56:52 +0530 Subject: [PATCH 05/86] added cache control header for zeit cdn smart caching --- app.js | 9 + lib/helpers.js | 3 +- package-lock.json | 959 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + 4 files changed, 971 insertions(+), 1 deletion(-) diff --git a/app.js b/app.js index 6baed58..f372898 100644 --- a/app.js +++ b/app.js @@ -1,6 +1,7 @@ const express = require('express'); const app = express(); const lookup = require('country-code-lookup'); +const morgan = require('morgan'); const port = process.env.PORT || 3001; @@ -12,16 +13,20 @@ function errorHandler(error, res) { return res.send('I am sorry. Something went wrong. Please report it'); } +app.use(morgan(':remote-addr :remote-user :method :url :status :res[content-length] - :response-time ms')); + app.get('/', (req, res) => { const format = req.query.format ? req.query.format : ''; if (format.toLowerCase() === 'json') { return getJSONData().then(result => { + res.setHeader('Cache-Control', 's-maxage=86400'); return res.json(result); }).catch(error => errorHandler(error, res)); } return getCompleteTable().then(result => { + res.setHeader('Cache-Control', 's-maxage=900'); return res.send(result); }).catch(error => errorHandler(error, res)); }); @@ -34,11 +39,13 @@ app.get('/:country', (req, res) => { if (!country || country === 'all') { if (format.toLowerCase() === 'json') { return getJSONData().then(result => { + res.setHeader('Cache-Control', 's-maxage=900'); return res.json(result); }).catch(error => errorHandler(error, res)); } return getCompleteTable().then(result => { + res.setHeader('Cache-Control', 's-maxage=900'); return res.send(result); }).catch(error => errorHandler(error, res)); } @@ -64,11 +71,13 @@ app.get('/:country', (req, res) => { if (format.toLowerCase() === 'json') { return getJSONDataForCountry(iso2).then(result => { + res.setHeader('Cache-Control', 's-maxage=900'); return res.json(result); }).catch(error => errorHandler(error, res)); } return getCountryTable(iso2).then(result => { + res.setHeader('Cache-Control', 's-maxage=900'); return res.send(result); }).catch(error => errorHandler(error, res)); }); diff --git a/lib/helpers.js b/lib/helpers.js index 6121496..8fed2d4 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -147,8 +147,9 @@ e.getTotalStats = (countryData) => { e.footer = ` -Stay safe everyone. +Stay safe. Stay inside. Code: https://github.com/sagarkarira/coronavirus-tracker-cli/ Twitter: http://twitter.com/ekrysis + `; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index ad88ec5..d85ea6e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,12 @@ "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -18,6 +24,21 @@ "negotiator": "0.6.2" } }, + "ansi-align": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "dev": true, + "requires": { + "string-width": "^2.0.0" + } + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, "ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", @@ -35,6 +56,16 @@ "entities": "^1.1.2" } }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", @@ -48,6 +79,26 @@ "follow-redirects": "1.5.10" } }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "binary-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", + "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", + "dev": true + }, "body-parser": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", @@ -75,11 +126,109 @@ } } }, + "boxen": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", + "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "dev": true, + "requires": { + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "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" + } + } + } + }, + "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" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, "bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "capture-stack-trace": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", + "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==", + "dev": true + }, "chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", @@ -89,6 +238,34 @@ "supports-color": "^7.1.0" } }, + "chokidar": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz", + "integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.3.0" + } + }, + "ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "dev": true + }, + "cli-boxes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", + "dev": true + }, "cli-table3": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", @@ -176,6 +353,26 @@ } } }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "configstore": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", + "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", + "dev": true, + "requires": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, "content-disposition": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", @@ -204,6 +401,32 @@ "resolved": "https://registry.npmjs.org/country-code-lookup/-/country-code-lookup-0.0.16.tgz", "integrity": "sha512-o8rADJe4VRJX6haq5gBpL4CJow0Y2ACb9EpQCxKpxHkUMqkAswSBijIFgWegcbUO1hjL6Y6cQDei5peQzWHY3A==" }, + "create-error-class": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "dev": true, + "requires": { + "capture-stack-trace": "^1.0.0" + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", + "dev": true + }, "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", @@ -212,6 +435,12 @@ "ms": "2.0.0" } }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, "defaults": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", @@ -230,6 +459,21 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -259,11 +503,32 @@ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, "express": { "version": "4.17.1", "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", @@ -311,6 +576,15 @@ } } }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, "finalhandler": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", @@ -353,6 +627,62 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, + "fsevents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", + "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", + "dev": true, + "optional": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "glob-parent": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", + "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "dev": true, + "requires": { + "ini": "^1.3.4" + } + }, + "got": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "dev": true, + "requires": { + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "dev": true + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -383,16 +713,149 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "dev": true + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, "ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" }, + "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==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "dev": true, + "requires": { + "ci-info": "^1.5.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "dev": true, + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + } + }, + "is-npm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", + "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", + "dev": true + }, + "is-retry-allowed": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "latest-version": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", + "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "dev": true, + "requires": { + "package-json": "^4.0.0" + } + }, "lodash": { "version": "4.17.15", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", @@ -493,6 +956,31 @@ "lodash.keys": "^3.0.0" } }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -526,11 +1014,48 @@ "mime-db": "1.43.0" } }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, "moment": { "version": "2.24.0", "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" }, + "morgan": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz", + "integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==", + "requires": { + "basic-auth": "~2.0.0", + "debug": "2.6.9", + "depd": "~1.1.2", + "on-finished": "~2.3.0", + "on-headers": "~1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + } + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -556,6 +1081,80 @@ } } }, + "nodemon": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.2.tgz", + "integrity": "sha512-GWhYPMfde2+M0FsHnggIHXTqPDHXia32HRhh6H0d75Mt9FKUoCBvumNHr7LdrpPBTKxsWmIEOjoN+P4IU6Hcaw==", + "dev": true, + "requires": { + "chokidar": "^3.2.2", + "debug": "^3.2.6", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.7", + "semver": "^5.7.1", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.2", + "update-notifier": "^2.5.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "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" + } + } + } + }, + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -569,16 +1168,69 @@ "ee-first": "1.1.1" } }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "package-json": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", + "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "dev": true, + "requires": { + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" + } + }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, + "picomatch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz", + "integrity": "sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, "proxy-addr": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", @@ -588,6 +1240,18 @@ "ipaddr.js": "1.9.1" } }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "pstree.remy": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.7.tgz", + "integrity": "sha512-xsMgrUwRpuGskEzBFkH8NmTimbZ5PcPup0LA8JJkHIm2IMUbQcpo3yeLNWVrufEYjh8YwtSVh0xz6UeWc5Oh5A==", + "dev": true + }, "qs": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", @@ -609,6 +1273,46 @@ "unpipe": "1.0.0" } }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "readdirp": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz", + "integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==", + "dev": true, + "requires": { + "picomatch": "^2.0.7" + } + }, + "registry-auth-token": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", + "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==", + "dev": true, + "requires": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "dev": true, + "requires": { + "rc": "^1.0.1" + } + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -619,6 +1323,21 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "semver-diff": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "dev": true, + "requires": { + "semver": "^5.0.3" + } + }, "send": { "version": "0.17.1", "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", @@ -677,11 +1396,63 @@ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, "supports-color": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", @@ -690,11 +1461,44 @@ "has-flag": "^4.0.0" } }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "dev": true, + "requires": { + "execa": "^0.7.0" + } + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, "toidentifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" }, + "touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "requires": { + "nopt": "~1.0.10" + } + }, "type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -704,11 +1508,125 @@ "mime-types": "~2.1.24" } }, + "undefsafe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", + "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", + "dev": true, + "requires": { + "debug": "^2.2.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "dev": true, + "requires": { + "crypto-random-string": "^1.0.0" + } + }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, + "unzip-response": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", + "dev": true + }, + "update-notifier": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", + "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", + "dev": true, + "requires": { + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "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" + } + } + } + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "dev": true, + "requires": { + "prepend-http": "^1.0.1" + } + }, "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", @@ -726,6 +1644,47 @@ "requires": { "defaults": "^1.0.3" } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "widest-line": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", + "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "dev": true, + "requires": { + "string-width": "^2.1.1" + } + }, + "write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true } } } diff --git a/package.json b/package.json index b8107b9..dee47b2 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "humanize-number": "0.0.2", "lodash": "^4.17.15", "moment": "^2.24.0", + "morgan": "^1.9.1", "node-cache": "^5.1.0" }, "devDependencies": { From 313971139871b6ce19d88347b8685c9602cf4f1f Mon Sep 17 00:00:00 2001 From: Mo'men Tawfik Date: Tue, 17 Mar 2020 00:13:27 +0200 Subject: [PATCH 06/86] moving countryUpperCase to helpers --- app.js | 8 +------- lib/helpers.js | 8 ++++++++ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/app.js b/app.js index 56c4fb5..9cda872 100644 --- a/app.js +++ b/app.js @@ -5,14 +5,8 @@ const port = process.env.PORT || 3001; const { getCountryTable } = require('./lib/byCountry'); const { getCompleteTable } = require('./lib/corona'); +const { countryUpperCase } = require('./lib/helpers'); -const countryUpperCase = (countryParams) => { - if(countryParams.country.length > 2 ){ - const country = countryParams.country.toLowerCase().split(' ').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' '); - return { country }; - } - return countryParams; -}; app.get('/', (req, res) => { return getCompleteTable().then(result => { diff --git a/lib/helpers.js b/lib/helpers.js index fceb9b0..cd309bb 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -145,6 +145,14 @@ e.getTotalStats = (countryData) => { return worldStats; }; +e.countryUpperCase = (countryParams) => { + if(countryParams.country.length > 2 ){ + const country = countryParams.country.toLowerCase().split(' ').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' '); + return { country }; + } + return countryParams; +}; + e.footer = ` Source Code: https://github.com/sagarkarira/coronavirus-tracker-cli/ From 6de7019e9a2100c01bf809165db4b7f6785d66e4 Mon Sep 17 00:00:00 2001 From: sagark Date: Tue, 17 Mar 2020 21:20:33 +0530 Subject: [PATCH 07/86] added last updated --- app.js | 3 +-- lib/byCountry.js | 5 ++++- lib/corona.js | 5 ++++- lib/helpers.js | 4 +++- package.json | 2 +- readme.md | 56 ++++++++++++++++++++++++++++++++++++++++++------ 6 files changed, 62 insertions(+), 13 deletions(-) diff --git a/app.js b/app.js index 318cd1e..9184990 100644 --- a/app.js +++ b/app.js @@ -22,7 +22,7 @@ app.get('/', (req, res) => { if (format.toLowerCase() === 'json') { return getJSONData().then(result => { - res.setHeader('Cache-Control', 's-maxage=86400'); + res.setHeader('Cache-Control', 's-maxage=900'); return res.json(result); }).catch(error => errorHandler(error, res)); } @@ -34,7 +34,6 @@ app.get('/', (req, res) => { }); app.get('/:country', (req, res) => { - const { country } = countryUpperCase(req.params); let lookupObj = null; const format = req.query.format ? req.query.format : ''; diff --git a/lib/byCountry.js b/lib/byCountry.js index d067e5e..8be752d 100644 --- a/lib/byCountry.js +++ b/lib/byCountry.js @@ -25,6 +25,7 @@ const { function getDataByState(confirmed, deaths, recovered) { const countryMap = {}; + const lastUpdated = confirmed.last_updated; const confirmedMap = _.keyBy(confirmed.locations, (i) => i.country + i.province); const recoveredMap = _.keyBy(recovered.locations, (i) => i.country + i.province); const deathsMap = _.keyBy(deaths.locations, (i) => i.country + i.province); @@ -43,6 +44,7 @@ function getDataByState(confirmed, deaths, recovered) { confirmedByDay: helpers.historyObjToArr(confirmedMap[mapKey].history), recoveredByDay: helpers.historyObjToArr(recoveredMap[mapKey].history), deathsByDay: helpers.historyObjToArr(recoveredMap[mapKey].history), + lastUpdated, }; } }); @@ -139,5 +141,6 @@ exports.getCountryTable = async (countryCode) => { table.push({ [rank++]: values }) }); } - return table.toString() + footer; + const lastUpdated = countryData[0].lastUpdated; + return table.toString() + footer(lastUpdated); } \ No newline at end of file diff --git a/lib/corona.js b/lib/corona.js index 1520d96..d1813ca 100644 --- a/lib/corona.js +++ b/lib/corona.js @@ -25,6 +25,7 @@ const { function getDataByCountry(confirmed, deaths, recovered) { const countryMap = {}; + const lastUpdated = confirmed.last_updated; const confirmedMap = _.keyBy(confirmed.locations, (i) => i.country + i.province); const recoveredMap = _.keyBy(recovered.locations, (i) => i.country + i.province); const deathsMap = _.keyBy(deaths.locations, (i) => i.country + i.province); @@ -42,6 +43,7 @@ function getDataByCountry(confirmed, deaths, recovered) { confirmedByDay: helpers.historyObjToArr(confirmedMap[mapKey].history), recoveredByDay: helpers.historyObjToArr(recoveredMap[mapKey].history), deathsByDay: helpers.historyObjToArr(recoveredMap[mapKey].history), + lastUpdated, }; } else { countryMap[countryName].confirmed += confirmedMap[mapKey].latest; @@ -136,5 +138,6 @@ exports.getCompleteTable = async () => { ] table.push({ [rank++]: values }) }); - return table.toString() + footer; + const lastUpdated = countryData[0].lastUpdated; + return table.toString() + footer(lastUpdated); } \ No newline at end of file diff --git a/lib/helpers.js b/lib/helpers.js index b850625..407a9b5 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -153,11 +153,13 @@ e.countryUpperCase = (countryParams) => { return countryParams; }; -e.footer = ` +e.footer = (lastUpdated) => ` Stay safe. Stay inside. Code: https://github.com/sagarkarira/coronavirus-tracker-cli/ Twitter: http://twitter.com/ekrysis +Last Updated on: ${moment(lastUpdated).utc().format('DD-MMM-YYYY HH:MM')} UTC + `; \ No newline at end of file diff --git a/package.json b/package.json index dee47b2..89476c8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "coronavirus-tracker-cli", - "version": "0.2.0", + "version": "0.3.0", "description": "track conronavirus cases from cli", "main": "./lib/corona.js", "bin": { diff --git a/readme.md b/readme.md index 9dbd5e2..a2fea04 100644 --- a/readme.md +++ b/readme.md @@ -6,17 +6,50 @@ Track coronavirus from cli -## Curl +## CURL -All: `curl https://corona-stats.online/` +### Complete Data -Country wise: `curl https://corona-stats.online/` +``` +curl https://corona-stats.online/ +``` -Example: +### Filter by Country Stats -US: `curl https://corona-stats.online/US` +``` +curl https://corona-stats.online/ +``` -Italy: `curl https://corona-stats.online/Italy` +where can be country name or its ISO code. + +- US: ```curl https://corona-stats.online/US``` +- Italy: ```curl https://corona-stats.online/Italy``` +- UK: ```curl https://corona-stats.online/UK``` or ```curl https://corona-stats.online/GB``` + + +## API + +Add `?format=json` at the end of any API to get json formatted data. + +**Example:** + +``` +curl https://corona-stats.online?format=json +``` + +## Local Command (For coloured ouput) + +**Install** + +``` +npm install corona-tracker-cli -g +``` + +**Run command** + +``` +corona +``` ### ToDos @@ -26,6 +59,15 @@ Italy: `curl https://corona-stats.online/Italy` * Add growth rate. (linear regression) * Add latest updates from reddit / twitter. +### Other Regional Trackers. + +* [Italy](http://opendatadpc.maps.arcgis.com/apps/opsdashboard/index.html#/b0c68bce2cce478eaac82fe38d4138b1) +* [India](https://www.covid19india.org/) +* [USA](https://www.npr.org/sections/health-shots/2020/03/16/816707182/map-tracking-the-spread-of-the-coronavirus-in-the-u-s) +* [France](https://veille-coronavirus.fr/) +* [Japan](https://covid19japan.com/) + + ### Thanks to * [CSSEGISandData](https://github.com/CSSEGISandData/COVID-19) for the data. @@ -40,4 +82,4 @@ Italy: `curl https://corona-stats.online/Italy` ## License -This project is licensed under the MIT License +[WTFPL](http://www.wtfpl.net/) \ No newline at end of file From b4121c638883ed311076a790de132cf2f0f8747a Mon Sep 17 00:00:00 2001 From: Shelton Koskie <495511+skoskie@users.noreply.github.com> Date: Tue, 17 Mar 2020 11:15:25 -0600 Subject: [PATCH 08/86] Fixed npm package name --- readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/readme.md b/readme.md index a2fea04..8ca9e69 100644 --- a/readme.md +++ b/readme.md @@ -42,7 +42,7 @@ curl https://corona-stats.online?format=json **Install** ``` -npm install corona-tracker-cli -g +npm install coronavirus-tracker-cli -g ``` **Run command** @@ -82,4 +82,4 @@ corona ## License -[WTFPL](http://www.wtfpl.net/) \ No newline at end of file +[WTFPL](http://www.wtfpl.net/) From 43308140b0514e7267b4f3c2369b286132918b4b Mon Sep 17 00:00:00 2001 From: Shelton Koskie <495511+skoskie@users.noreply.github.com> Date: Tue, 17 Mar 2020 12:51:51 -0600 Subject: [PATCH 09/86] Added some view options for users using local (npm) view --- readme.md | 49 ++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 38 insertions(+), 11 deletions(-) diff --git a/readme.md b/readme.md index 8ca9e69..460e16b 100644 --- a/readme.md +++ b/readme.md @@ -1,6 +1,6 @@ # coronavirus-tracker-cli -Track coronavirus from cli +Track The Corona virus from your CLI ## Screenshot @@ -10,15 +10,15 @@ Track coronavirus from cli ### Complete Data -``` +````sh curl https://corona-stats.online/ -``` +```` ### Filter by Country Stats -``` +````sh curl https://corona-stats.online/ -``` +```` where can be country name or its ISO code. @@ -33,23 +33,50 @@ Add `?format=json` at the end of any API to get json formatted data. **Example:** -``` +````sh curl https://corona-stats.online?format=json -``` +```` ## Local Command (For coloured ouput) **Install** -``` +````sh npm install coronavirus-tracker-cli -g -``` +```` **Run command** -``` +````sh corona -``` +```` + +**Top 10** + +Note: This command will cause colored output to be discarded. + +````sh +# Grep the rank of 10 and the 23 lines preceding it +corona | grep -B 23 ' 10 ' +```` + +**Your country** + +Note: These commands will cause colored output to be discarded. + +- Replace the `US` part of the command with your country code. +- If you want to also see the `World` stats, replace the `3` with a `5` +````sh +# sed the first 3 (or 5) lines; your country; bottom table border +corona | sed -n '1,3p;/\(US\)/p;/╚═/p' +```` + +Or, get your country within context of your rank +````sh +# grep with 2 lines of context for each result +# output the 'World' stats and headers; the country stats; the bottom table border +corona | grep --color=none -C 2 -e 'World' -e '\(US\)' -e 'Stay' +```` ### ToDos From afa971ad3a4273fd698eff71528009ae1067b8e9 Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Tue, 17 Mar 2020 20:57:02 +0200 Subject: [PATCH 10/86] Fix links --- lib/helpers.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/helpers.js b/lib/helpers.js index 407a9b5..207bd6f 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -157,9 +157,9 @@ e.footer = (lastUpdated) => ` Stay safe. Stay inside. -Code: https://github.com/sagarkarira/coronavirus-tracker-cli/ -Twitter: http://twitter.com/ekrysis +Code: https://github.com/sagarkarira/coronavirus-tracker-cli +Twitter: https://twitter.com/ekrysis Last Updated on: ${moment(lastUpdated).utc().format('DD-MMM-YYYY HH:MM')} UTC -`; \ No newline at end of file +`; From 1a975431b37e068d7a6ce3f8ec0ba0678dba6e20 Mon Sep 17 00:00:00 2001 From: sagark Date: Wed, 18 Mar 2020 16:40:19 +0530 Subject: [PATCH 11/86] fix deathsByDay in json format --- lib/byCountry.js | 2 +- lib/corona.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/byCountry.js b/lib/byCountry.js index 8be752d..9b61952 100644 --- a/lib/byCountry.js +++ b/lib/byCountry.js @@ -43,7 +43,7 @@ function getDataByState(confirmed, deaths, recovered) { deaths: deathsMap[mapKey].latest, confirmedByDay: helpers.historyObjToArr(confirmedMap[mapKey].history), recoveredByDay: helpers.historyObjToArr(recoveredMap[mapKey].history), - deathsByDay: helpers.historyObjToArr(recoveredMap[mapKey].history), + deathsByDay: helpers.historyObjToArr(deathsMap[mapKey].history), lastUpdated, }; } diff --git a/lib/corona.js b/lib/corona.js index d1813ca..4a84976 100644 --- a/lib/corona.js +++ b/lib/corona.js @@ -42,7 +42,7 @@ function getDataByCountry(confirmed, deaths, recovered) { deaths: deathsMap[mapKey].latest, confirmedByDay: helpers.historyObjToArr(confirmedMap[mapKey].history), recoveredByDay: helpers.historyObjToArr(recoveredMap[mapKey].history), - deathsByDay: helpers.historyObjToArr(recoveredMap[mapKey].history), + deathsByDay: helpers.historyObjToArr(deathsMap[mapKey].history), lastUpdated, }; } else { From d58e38185e356909e5fc47cf3309d2922279742f Mon Sep 17 00:00:00 2001 From: Alexandra Parker Date: Tue, 17 Mar 2020 15:54:33 -0700 Subject: [PATCH 12/86] add basic CLI support, --emojis flag, [country] positional argument --- app.js | 17 ++-- bin/index.js | 51 ++++++++++- lib/byCountry.js | 17 ++-- lib/corona.js | 14 +-- lib/helpers.js | 21 ++++- package-lock.json | 229 +++++++++++++++++++++++++++++++++++++++++++++- package.json | 3 +- 7 files changed, 320 insertions(+), 32 deletions(-) diff --git a/app.js b/app.js index 9184990..a804a4b 100644 --- a/app.js +++ b/app.js @@ -7,7 +7,7 @@ const port = process.env.PORT || 3001; const { getCountryTable, getJSONData, getJSONDataForCountry } = require('./lib/byCountry'); const { getCompleteTable } = require('./lib/corona'); -const { countryUpperCase } = require('./lib/helpers'); +const { countryUpperCase, lookupCountry } = require('./lib/helpers'); function errorHandler(error, res) { @@ -34,11 +34,10 @@ app.get('/', (req, res) => { }); app.get('/:country', (req, res) => { - const { country } = countryUpperCase(req.params); - let lookupObj = null; + const { country } = req.params; const format = req.query.format ? req.query.format : ''; - if (!country || country === 'All') { + if (!country || 'ALL' === country.toUpperCase()) { if (format.toLowerCase() === 'json') { return getJSONData().then(result => { res.setHeader('Cache-Control', 's-maxage=900'); @@ -53,13 +52,8 @@ app.get('/:country', (req, res) => { }).catch(error => errorHandler(error, res)); } - try { - lookupObj = lookup.byIso(country) - || lookup.byFips(country) - || lookup.byCountry(country); - } catch (error) { - lookupObj = lookup.byFips(country) || lookup.byCountry(country); - } + let lookupObj = lookupCountry(country); + if (!lookupObj) { return res.send(` Country not found. @@ -70,6 +64,7 @@ app.get('/:country', (req, res) => { - /India: for India. `); } + const { iso2 } = lookupObj; if (format.toLowerCase() === 'json') { diff --git a/bin/index.js b/bin/index.js index a5ce8bc..d0403bb 100755 --- a/bin/index.js +++ b/bin/index.js @@ -1,7 +1,56 @@ #!/usr/bin/env node const { getCompleteTable } = require('../lib/corona'); +const { getCountryTable } = require('../lib/byCountry'); +const { lookupCountry } = require('../lib/helpers'); -getCompleteTable() +const {argv} = require('yargs') + .command('$0 [country]', 'show COVID-19 statistics for the world or the given country', yargs => + yargs.positional('country', { + coerce(arg) { + console.log(arg); + if('ALL' === arg.toUpperCase()) { + return 'ALL'; + } + + const country = lookupCountry(arg); + + if(!country) { + throw new Error(`Country '${arg}' not found. + Try full country name or country code. + Ex: + - UK: for United Kingdom + - US: for United States of America. + - India: for India.`); + } + + return country.iso2; + }, + describe: 'which country to show statistics for', + default: 'all', + type: 'string' + }) + ) + .options({ + e: { + alias: 'emojis', + describe: 'enable the use of emojis in the table (may break alignment in some terminals)', + default: false, + type: 'boolean' + }, + c: { + alias: 'color', + describe: 'enable the use of color in the table.', + type: 'boolean' + } + }) + .strict() + .help('help'); + +console.log(argv); + +const {emojis, country} = argv; + +(country === 'all' ? getCompleteTable(argv) : getCountryTable(country, argv)) .then(console.log) .catch(console.error); \ No newline at end of file diff --git a/lib/byCountry.js b/lib/byCountry.js index 9b61952..ecd7fcf 100644 --- a/lib/byCountry.js +++ b/lib/byCountry.js @@ -79,20 +79,20 @@ exports.getJSONDataForCountry = async (countryCode) => { return countryData; } -exports.getCountryTable = async (countryCode) => { +exports.getCountryTable = async (countryCode, {emojis=false}={}) => { const head = [ '', 'State', 'Confirmed', - 'Recovered', - 'Deaths', - 'Active', + `Recovered${emojis ? ' 😀' : ''}`, + `Deaths${emojis ? ' 😞' : ''}`, + `Active${emojis ? ' 😷' : ''}`, 'Mortality %', 'Recovered %', '1 Day ▲', '1 Week ▲', // 'RoG', - // '🏳', + ...( emojis ? ['🏳'] : [] ), ]; const table = new Table({ head, @@ -105,6 +105,11 @@ exports.getCountryTable = async (countryCode) => { const { latest, confirmed, deaths, recovered } = data; const countryData = getDataByState(confirmed, deaths, recovered) .filter(obj => obj.countryCode === countryCode); + + if(countryData.length === 0) { + throw new Error(`Country code ${countryCode} does not match anything in the database.`); + } + const totalStats = getTotalStats(countryData); table.push({ [countryData[0].country]: [ @@ -136,7 +141,7 @@ exports.getCountryTable = async (countryCode) => { getOneDayChange(cd), getOneWeekChange(cd), // getRateOfGrowth(cd), - // getEmoji(cd.countryCode), + ... (emojis ? [countryEmoji] : []) ] table.push({ [rank++]: values }) }); diff --git a/lib/corona.js b/lib/corona.js index 4a84976..f0591b5 100644 --- a/lib/corona.js +++ b/lib/corona.js @@ -79,20 +79,20 @@ function extraStats(dataArr) { ); } -exports.getCompleteTable = async () => { +exports.getCompleteTable = async ({emojis=false}={}) => { const head = [ '', 'Country', 'Confirmed', - 'Recovered', - 'Deaths', - 'Active', + `Recovered${emojis ? ' 😀' : ''}`, + `Deaths${emojis ? ' 😞' : ''}`, + `Active${emojis ? ' 😷' : ''}`, 'Mortality %', 'Recovered %', '1 Day ▲', '1 Week ▲', // 'RoG', - // '🏳', + ...( emojis ? ['🏳'] : [] ), ]; const table = new Table({ head, @@ -117,7 +117,7 @@ exports.getCompleteTable = async () => { getOneDayChange(worldStats), getOneWeekChange(worldStats), // '', - // '🌎' + ... ( emojis ? ['🌎'] : [] ) ] }) let rank = 1; @@ -134,7 +134,7 @@ exports.getCompleteTable = async () => { getOneDayChange(cd), getOneWeekChange(cd), // getRateOfGrowth(cd), - // getEmoji(cd.countryCode), + ... (emojis ? [countryEmoji] : []) ] table.push({ [rank++]: values }) }); diff --git a/lib/helpers.js b/lib/helpers.js index 207bd6f..5730b34 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -3,6 +3,7 @@ const h = require('humanize-number'); const emojiFlags = require('emoji-flags'); const _ = require('lodash'); const moment = require('moment'); +const lookup = require('country-code-lookup'); const e = exports; e.getCountry = (country) => { @@ -145,14 +146,24 @@ e.getTotalStats = (countryData) => { return worldStats; }; -e.countryUpperCase = (countryParams) => { - if(countryParams.country.length > 2 ){ - const country = countryParams.country.toLowerCase().split(' ').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' '); - return { country }; +e.countryUpperCase = country => { + if(country.length > 2){ + return country.toLowerCase().split(/\s+/).map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' '); } - return countryParams; + return country; }; +e.lookupCountry = country => { + country = e.countryUpperCase(country); + try { + return lookup.byIso(country) + || lookup.byFips(country) + || lookup.byCountry(country); + } catch (error) { + return lookup.byFips(country) || lookup.byCountry(country); + } +} + e.footer = (lastUpdated) => ` Stay safe. Stay inside. diff --git a/package-lock.json b/package-lock.json index d85ea6e..86bd30b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "coronavirus-tracker-cli", - "version": "0.2.0", + "version": "0.3.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -305,6 +305,46 @@ } } }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "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==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, "clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", @@ -435,6 +475,11 @@ "ms": "2.0.0" } }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", @@ -488,6 +533,11 @@ "lodash.find": "3.2.1" } }, + "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==" + }, "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", @@ -609,6 +659,15 @@ } } }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, "follow-redirects": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", @@ -634,6 +693,11 @@ "dev": true, "optional": 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==" + }, "get-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", @@ -856,6 +920,14 @@ "package-json": "^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==", + "requires": { + "p-locate": "^4.1.0" + } + }, "lodash": { "version": "4.17.15", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", @@ -1179,6 +1251,27 @@ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, + "p-limit": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", + "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==", + "requires": { + "p-limit": "^2.2.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==" + }, "package-json": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", @@ -1196,6 +1289,11 @@ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, "path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", @@ -1313,6 +1411,16 @@ "rc": "^1.0.1" } }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -1391,6 +1499,11 @@ "send": "0.17.1" } }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, "setprototypeof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", @@ -1654,6 +1767,11 @@ "isexe": "^2.0.0" } }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, "widest-line": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", @@ -1663,6 +1781,46 @@ "string-width": "^2.1.1" } }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "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==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, "write-file-atomic": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", @@ -1680,11 +1838,80 @@ "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", "dev": true }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + }, "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true + }, + "yargs": { + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", + "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "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==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "yargs-parser": { + "version": "18.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.1.tgz", + "integrity": "sha512-KRHEsOM16IX7XuLnMOqImcPNbLVXMNHYAoFc3BKR8Ortl5gzDbtXvvEoGx9imk5E+X1VeNKNlcHr8B8vi+7ipA==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + } + } } } } diff --git a/package.json b/package.json index 89476c8..ae8e90a 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,8 @@ "lodash": "^4.17.15", "moment": "^2.24.0", "morgan": "^1.9.1", - "node-cache": "^5.1.0" + "node-cache": "^5.1.0", + "yargs": "15.3.1" }, "devDependencies": { "nodemon": "^2.0.2" From c94932fab5bd9336e00ddae741198d1ceab23ad2 Mon Sep 17 00:00:00 2001 From: Alexandra Parker Date: Tue, 17 Mar 2020 17:43:03 -0700 Subject: [PATCH 13/86] oops, remove some debugging code --- bin/index.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/bin/index.js b/bin/index.js index d0403bb..dc06c16 100755 --- a/bin/index.js +++ b/bin/index.js @@ -47,10 +47,6 @@ const {argv} = require('yargs') .strict() .help('help'); -console.log(argv); - -const {emojis, country} = argv; - (country === 'all' ? getCompleteTable(argv) : getCountryTable(country, argv)) .then(console.log) .catch(console.error); \ No newline at end of file From c0af963668f009665d5fcd22c02db87bdd099299 Mon Sep 17 00:00:00 2001 From: sagark Date: Thu, 19 Mar 2020 00:12:55 +0530 Subject: [PATCH 14/86] fix changes to country filter on cli, changes to readme --- bin/index.js | 43 +++++++++++++++------------ lib/byCountry.js | 2 +- lib/corona.js | 8 ++--- lib/helpers.js | 2 +- package-lock.json | 75 +++++++++++++++++++++++++++++++++++++++++++++-- package.json | 3 +- readme.md | 46 +++++++++++++++++++---------- 7 files changed, 136 insertions(+), 43 deletions(-) diff --git a/bin/index.js b/bin/index.js index dc06c16..110de9e 100755 --- a/bin/index.js +++ b/bin/index.js @@ -1,32 +1,32 @@ #!/usr/bin/env node - +const yargonaut = require('yargonaut') + .style('green'); +const yargs = require('yargs'); +const chalk = require('chalk'); const { getCompleteTable } = require('../lib/corona'); const { getCountryTable } = require('../lib/byCountry'); const { lookupCountry } = require('../lib/helpers'); -const {argv} = require('yargs') - .command('$0 [country]', 'show COVID-19 statistics for the world or the given country', yargs => +const { argv } = yargs + .command('$0 [country]','Tool to COVID-19 statistics for the world or the given country', yargs => yargs.positional('country', { coerce(arg) { - console.log(arg); - if('ALL' === arg.toUpperCase()) { + if ('ALL' === arg.toUpperCase()) { return 'ALL'; } - const country = lookupCountry(arg); - - if(!country) { - throw new Error(`Country '${arg}' not found. - Try full country name or country code. - Ex: - - UK: for United Kingdom - - US: for United States of America. - - India: for India.`); + if (!country) { + let error = `Country '${arg}' not found.\n`; + error += 'Try full country name or country code.\n'; + error += 'Ex:\n'; + error += '- UK: for United Kingdom \n'; + error += '- US: for United States of America.\n'; + error += '- Italy: for Italy.\n'; + throw new Error(chalk.red.bold(error)); } - return country.iso2; }, - describe: 'which country to show statistics for', + describe: 'Filter table by country', default: 'all', type: 'string' }) @@ -34,19 +34,24 @@ const {argv} = require('yargs') .options({ e: { alias: 'emojis', - describe: 'enable the use of emojis in the table (may break alignment in some terminals)', + describe: 'Show emojis in table', default: false, type: 'boolean' }, c: { alias: 'color', - describe: 'enable the use of color in the table.', + describe: 'Show colors formatted output', type: 'boolean' } }) .strict() .help('help'); -(country === 'all' ? getCompleteTable(argv) : getCountryTable(country, argv)) +const { emojis, country } = argv; +( + country === 'ALL' + ? getCompleteTable(emojis) + : getCountryTable(country, emojis) +) .then(console.log) .catch(console.error); \ No newline at end of file diff --git a/lib/byCountry.js b/lib/byCountry.js index ecd7fcf..197dd0c 100644 --- a/lib/byCountry.js +++ b/lib/byCountry.js @@ -79,7 +79,7 @@ exports.getJSONDataForCountry = async (countryCode) => { return countryData; } -exports.getCountryTable = async (countryCode, {emojis=false}={}) => { +exports.getCountryTable = async (countryCode, emojis = false) => { const head = [ '', 'State', diff --git a/lib/corona.js b/lib/corona.js index f0591b5..917215f 100644 --- a/lib/corona.js +++ b/lib/corona.js @@ -79,11 +79,11 @@ function extraStats(dataArr) { ); } -exports.getCompleteTable = async ({emojis=false}={}) => { +exports.getCompleteTable = async (emojis = false) => { const head = [ '', 'Country', - 'Confirmed', + `Confirmed ${emojis ? ' ✅': ''}`, `Recovered${emojis ? ' 😀' : ''}`, `Deaths${emojis ? ' 😞' : ''}`, `Active${emojis ? ' 😷' : ''}`, @@ -117,7 +117,7 @@ exports.getCompleteTable = async ({emojis=false}={}) => { getOneDayChange(worldStats), getOneWeekChange(worldStats), // '', - ... ( emojis ? ['🌎'] : [] ) + ...( emojis ? ['🌎'] : [] ) ] }) let rank = 1; @@ -134,7 +134,7 @@ exports.getCompleteTable = async ({emojis=false}={}) => { getOneDayChange(cd), getOneWeekChange(cd), // getRateOfGrowth(cd), - ... (emojis ? [countryEmoji] : []) + ...(emojis ? [countryEmoji] : []) ] table.push({ [rank++]: values }) }); diff --git a/lib/helpers.js b/lib/helpers.js index 5730b34..e3d1c07 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -162,7 +162,7 @@ e.lookupCountry = country => { } catch (error) { return lookup.byFips(country) || lookup.byCountry(country); } -} +}; e.footer = (lastUpdated) => ` diff --git a/package-lock.json b/package-lock.json index 86bd30b..933035a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -556,8 +556,7 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "etag": { "version": "1.8.1", @@ -626,6 +625,11 @@ } } }, + "figlet": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.3.0.tgz", + "integrity": "sha512-f7A8aOJAfyehLJ7lQ6rEA8WJw7kOk3lfWRi5piSjkzbK5YkI5sqO8eiLHz1ehO+DM0QYB85i8VfA6XIGUbU1dg==" + }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -747,6 +751,21 @@ "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", "dev": true }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + } + } + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -1284,6 +1303,11 @@ "semver": "^5.1.0" } }, + "parent-require": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parent-require/-/parent-require-1.0.0.tgz", + "integrity": "sha1-dGoWdjgIOoYLDu9nMssn7UbDKXc=" + }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -1849,6 +1873,53 @@ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true }, + "yargonaut": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/yargonaut/-/yargonaut-1.1.4.tgz", + "integrity": "sha512-rHgFmbgXAAzl+1nngqOcwEljqHGG9uUZoPjsdZEs1w5JW9RXYzrSvH/u70C1JE5qFi0qjsdhnUX/dJRpWqitSA==", + "requires": { + "chalk": "^1.1.1", + "figlet": "^1.1.1", + "parent-require": "^1.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + } + } + }, "yargs": { "version": "15.3.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", diff --git a/package.json b/package.json index ae8e90a..6926344 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "coronavirus-tracker-cli", - "version": "0.3.0", + "version": "0.4.0", "description": "track conronavirus cases from cli", "main": "./lib/corona.js", "bin": { @@ -29,6 +29,7 @@ "moment": "^2.24.0", "morgan": "^1.9.1", "node-cache": "^5.1.0", + "yargonaut": "^1.1.4", "yargs": "15.3.1" }, "devDependencies": { diff --git a/readme.md b/readme.md index 460e16b..a2b0cbf 100644 --- a/readme.md +++ b/readme.md @@ -51,31 +51,31 @@ npm install coronavirus-tracker-cli -g corona ```` -**Top 10** - -Note: This command will cause colored output to be discarded. +**With emojis** ````sh -# Grep the rank of 10 and the 23 lines preceding it -corona | grep -B 23 ' 10 ' +corona -e ```` -**Your country** +**Filter by country** + +````sh +corona italy +```` -Note: These commands will cause colored output to be discarded. +**Disable colors** -- Replace the `US` part of the command with your country code. -- If you want to also see the `World` stats, replace the `3` with a `5` ````sh -# sed the first 3 (or 5) lines; your country; bottom table border -corona | sed -n '1,3p;/\(US\)/p;/╚═/p' +corona --colors=false ```` -Or, get your country within context of your rank +**Top 10** (Working on native command) + +Note: This command will cause colored output to be discarded. + ````sh -# grep with 2 lines of context for each result -# output the 'World' stats and headers; the country stats; the bottom table border -corona | grep --color=none -C 2 -e 'World' -e '\(US\)' -e 'Stay' +# Grep the rank of 10 and the 23 lines preceding it +corona | grep -B 23 ' 10 ' ```` ### ToDos @@ -86,6 +86,22 @@ corona | grep --color=none -C 2 -e 'World' -e '\(US\)' -e 'Stay' * Add growth rate. (linear regression) * Add latest updates from reddit / twitter. +### Contributors + +``` + project : curl-corona + lines : 2821 + authors : + 2343 sagark 83.1% + 293 Alexandra Parker 10.4% + 120 Not Committed Yet 4.3% + 30 Lucas Fernandez Nicolau 1.1% + 25 Shelton Koskie 0.9% + 6 Mo'men Tawfik 0.2% + 3 XhmikosR 0.1% + 1 CyberDracula 0.0% +``` + ### Other Regional Trackers. * [Italy](http://opendatadpc.maps.arcgis.com/apps/opsdashboard/index.html#/b0c68bce2cce478eaac82fe38d4138b1) From e1c1404dcc56079b8f66aeba19c9376c3e31608d Mon Sep 17 00:00:00 2001 From: sagark Date: Thu, 19 Mar 2020 00:16:08 +0530 Subject: [PATCH 15/86] added contributors to readme --- now.json | 2 +- readme.md | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/now.json b/now.json index 3cdd750..0571a9d 100644 --- a/now.json +++ b/now.json @@ -3,7 +3,7 @@ "builds": [ { "src": "*.js", - "use": "@now/node-server" + "use": "@now/node" } ], "routes": [ diff --git a/readme.md b/readme.md index a2b0cbf..889f342 100644 --- a/readme.md +++ b/readme.md @@ -54,7 +54,7 @@ corona **With emojis** ````sh -corona -e +corona --emojis ```` **Filter by country** @@ -90,11 +90,10 @@ corona | grep -B 23 ' 10 ' ``` project : curl-corona - lines : 2821 + lines : 2837 authors : - 2343 sagark 83.1% - 293 Alexandra Parker 10.4% - 120 Not Committed Yet 4.3% + 2479 Sagar Karira 87.4% + 293 Alexandra Parker 10.3% 30 Lucas Fernandez Nicolau 1.1% 25 Shelton Koskie 0.9% 6 Mo'men Tawfik 0.2% From ab62d81f2420a1c0808fc351ab48267272095cca Mon Sep 17 00:00:00 2001 From: Greg Myers Date: Wed, 18 Mar 2020 16:24:58 -0600 Subject: [PATCH 16/86] 1 letter fix: CLI option is --color, not --colors --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 889f342..db5f204 100644 --- a/readme.md +++ b/readme.md @@ -66,7 +66,7 @@ corona italy **Disable colors** ````sh -corona --colors=false +corona --color=false ```` **Top 10** (Working on native command) From 1b39f7b7976aa7d2b7f3fd6483a3199f8ef26f9a Mon Sep 17 00:00:00 2001 From: Steven Black Date: Wed, 18 Mar 2020 20:20:28 -0400 Subject: [PATCH 17/86] Specify NodeJS 12 as a requirement. When I installed this for local use, I got several warnings and errors. Upgrading to NodeJS latest (version 12) fixed all the issues. --- readme.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/readme.md b/readme.md index db5f204..344450f 100644 --- a/readme.md +++ b/readme.md @@ -39,6 +39,8 @@ curl https://corona-stats.online?format=json ## Local Command (For coloured ouput) +We recommend NodeJS version 12 which you can download [here](https://nodejs.org/en/download/). + **Install** ````sh From bcd2fd403390dc0688d0cf5bc7228092daf417db Mon Sep 17 00:00:00 2001 From: Steven Black Date: Wed, 18 Mar 2020 23:59:36 -0400 Subject: [PATCH 18/86] Modify `package.json.engines` to permit versions >= 12.x. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6926344..8edd749 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "test": "echo \"Error: no test specified\" && exit 1" }, "engines": { - "node": "12.x" + "node": ">=12.x" }, "author": "sagarkarira1992@gmail.com", "license": "ISC", From 58a00db76dfc9f1744688d5ac5a1d6eea75640ac Mon Sep 17 00:00:00 2001 From: Sabu Siyad Date: Thu, 19 Mar 2020 13:13:46 +0530 Subject: [PATCH 19/86] Filter top contries using ?top= --- app.js | 3 ++- lib/corona.js | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app.js b/app.js index a804a4b..6a97e81 100644 --- a/app.js +++ b/app.js @@ -19,6 +19,7 @@ app.use(morgan(':remote-addr :remote-user :method :url :status :res[content-leng app.get('/', (req, res) => { const format = req.query.format ? req.query.format : ''; + const top = req.query.top ? Number(req.query.top) : 300; if (format.toLowerCase() === 'json') { return getJSONData().then(result => { @@ -27,7 +28,7 @@ app.get('/', (req, res) => { }).catch(error => errorHandler(error, res)); } - return getCompleteTable().then(result => { + return getCompleteTable(max=top).then(result => { res.setHeader('Cache-Control', 's-maxage=900'); return res.send(result); }).catch(error => errorHandler(error, res)); diff --git a/lib/corona.js b/lib/corona.js index 917215f..4a54100 100644 --- a/lib/corona.js +++ b/lib/corona.js @@ -79,7 +79,7 @@ function extraStats(dataArr) { ); } -exports.getCompleteTable = async (emojis = false) => { +exports.getCompleteTable = async (max = false, emojis = false) => { const head = [ '', 'Country', @@ -121,7 +121,7 @@ exports.getCompleteTable = async (emojis = false) => { ] }) let rank = 1; - countryData.forEach(cd => { + countryData.some(cd => { const countryEmoji = getEmoji(cd.countryCode); const values = [ getCountry(`${cd.country} (${cd.countryCode})`), @@ -137,6 +137,7 @@ exports.getCompleteTable = async (emojis = false) => { ...(emojis ? [countryEmoji] : []) ] table.push({ [rank++]: values }) + return rank == max+1 }); const lastUpdated = countryData[0].lastUpdated; return table.toString() + footer(lastUpdated); From a6671d85c7153e879e8c9ae15ab56355bb978145 Mon Sep 17 00:00:00 2001 From: Sabu Siyad Date: Thu, 19 Mar 2020 13:33:29 +0530 Subject: [PATCH 20/86] Filter table locally with --top --- bin/index.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/bin/index.js b/bin/index.js index 110de9e..6ef25c0 100755 --- a/bin/index.js +++ b/bin/index.js @@ -42,15 +42,20 @@ const { argv } = yargs alias: 'color', describe: 'Show colors formatted output', type: 'boolean' + }, + t: { + alias: 'top', + describe: 'Filter table by rank', + type: 'int' } }) .strict() .help('help'); -const { emojis, country } = argv; +const { top, emojis, country } = argv; ( country === 'ALL' - ? getCompleteTable(emojis) + ? getCompleteTable(top, emojis) : getCountryTable(country, emojis) ) .then(console.log) From 7a77b4ab8c73c5a0c7fddac5e944ea7ae39cf35e Mon Sep 17 00:00:00 2001 From: Daniel S Date: Thu, 19 Mar 2020 02:24:06 -0700 Subject: [PATCH 21/86] Render monospaced table in HTML when not curl request --- app.js | 3 ++- bin/index.js | 2 +- lib/api.js | 2 +- lib/corona.js | 25 +++++++++++++++++++++++-- package-lock.json | 2 +- package.json | 2 +- 6 files changed, 29 insertions(+), 7 deletions(-) diff --git a/app.js b/app.js index a804a4b..d9761a0 100644 --- a/app.js +++ b/app.js @@ -18,6 +18,7 @@ function errorHandler(error, res) { app.use(morgan(':remote-addr :remote-user :method :url :status :res[content-length] - :response-time ms')); app.get('/', (req, res) => { + const isCurl = req.headers['user-agent'].match(/\bcurl\b/gmi) !== null const format = req.query.format ? req.query.format : ''; if (format.toLowerCase() === 'json') { @@ -27,7 +28,7 @@ app.get('/', (req, res) => { }).catch(error => errorHandler(error, res)); } - return getCompleteTable().then(result => { + return getCompleteTable({isCurl}).then(result => { res.setHeader('Cache-Control', 's-maxage=900'); return res.send(result); }).catch(error => errorHandler(error, res)); diff --git a/bin/index.js b/bin/index.js index 110de9e..a567e20 100755 --- a/bin/index.js +++ b/bin/index.js @@ -50,7 +50,7 @@ const { argv } = yargs const { emojis, country } = argv; ( country === 'ALL' - ? getCompleteTable(emojis) + ? getCompleteTable({emojis}) : getCountryTable(country, emojis) ) .then(console.log) diff --git a/lib/api.js b/lib/api.js index 1d79d2e..6f811b0 100644 --- a/lib/api.js +++ b/lib/api.js @@ -1,4 +1,4 @@ -const NodeCache = require( "node-cache" ); +const NodeCache = require('node-cache'); const axios = require('axios'); const myCache = new NodeCache( { stdTTL: 100, checkperiod: 600 } ); const CORONA_ALL_KEY = 'coronaAll'; diff --git a/lib/corona.js b/lib/corona.js index 917215f..03c267f 100644 --- a/lib/corona.js +++ b/lib/corona.js @@ -79,7 +79,7 @@ function extraStats(dataArr) { ); } -exports.getCompleteTable = async (emojis = false) => { +exports.getCompleteTable = async ({isCurl, emojis = false}) => { const head = [ '', 'Country', @@ -139,5 +139,26 @@ exports.getCompleteTable = async (emojis = false) => { table.push({ [rank++]: values }) }); const lastUpdated = countryData[0].lastUpdated; + if (!isCurl) { + const template = ` + + + + + + Coronavirus Tracker + + + +
${table.toString() + footer(lastUpdated)}
+ + ` + return template; + } return table.toString() + footer(lastUpdated); -} \ No newline at end of file +} diff --git a/package-lock.json b/package-lock.json index 933035a..9c302ea 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "coronavirus-tracker-cli", - "version": "0.3.0", + "version": "0.4.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 6926344..8e50fc9 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "corona": "./bin/index.js" }, "scripts": { - "dev": "nodemon app.js", + "dev": "nodemon --inspect app.js", "start": "node app.js", "test": "echo \"Error: no test specified\" && exit 1" }, From fef1a7b08e7a7852050f2a4e13642ae88df6a3f1 Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Thu, 19 Mar 2020 15:10:38 +0200 Subject: [PATCH 22/86] Enforce LF. Fixes line endings on Windows with `autocrlf: true`, which is the default. --- .gitattributes | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..205021e --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Enforce Unix newlines +* text=auto eol=lf From c723685120fc04f128f9dcb9999d7bcd701ebb88 Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Thu, 19 Mar 2020 16:29:06 +0200 Subject: [PATCH 23/86] package.json: add missing properties --- package.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 6926344..c461acf 100644 --- a/package.json +++ b/package.json @@ -2,9 +2,18 @@ "name": "coronavirus-tracker-cli", "version": "0.4.0", "description": "track conronavirus cases from cli", + "repository": { + "type": "git", + "url": "git+https://github.com/sagarkarira/coronavirus-tracker-cli.git" + }, + "keywords": [], + "bugs": { + "url": "https://github.com/sagarkarira/coronavirus-tracker-cli/issues" + }, + "homepage": "https://github.com/sagarkarira/coronavirus-tracker-cli#readme", "main": "./lib/corona.js", "bin": { - "corona": "./bin/index.js" + "corona": "bin/index.js" }, "scripts": { "dev": "nodemon app.js", From 23876b3f9cad87c80b2c1c58952f410b40297677 Mon Sep 17 00:00:00 2001 From: sagark Date: Thu, 19 Mar 2020 23:13:17 +0530 Subject: [PATCH 24/86] removed caching from zeit, added table in by country api too --- app.js | 19 +++++++++---------- bin/index.js | 7 +++---- lib/byCountry.js | 28 +++++++++++++++++++++++++++- lib/corona.js | 9 +++++++-- package-lock.json | 33 ++++++++++++++++++++++++--------- package.json | 1 + 6 files changed, 71 insertions(+), 26 deletions(-) diff --git a/app.js b/app.js index d9761a0..41953e9 100644 --- a/app.js +++ b/app.js @@ -16,39 +16,40 @@ function errorHandler(error, res) { } app.use(morgan(':remote-addr :remote-user :method :url :status :res[content-length] - :response-time ms')); +app.use((req, res, next) => { + res.setHeader('Cache-Control', 'no-cache'); + next(); +}); app.get('/', (req, res) => { - const isCurl = req.headers['user-agent'].match(/\bcurl\b/gmi) !== null + const isCurl = req.headers['user-agent'].match(/\bcurl\b/gmi) !== null; const format = req.query.format ? req.query.format : ''; if (format.toLowerCase() === 'json') { return getJSONData().then(result => { - res.setHeader('Cache-Control', 's-maxage=900'); return res.json(result); }).catch(error => errorHandler(error, res)); } - return getCompleteTable({isCurl}).then(result => { - res.setHeader('Cache-Control', 's-maxage=900'); + return getCompleteTable({ isCurl }).then(result => { return res.send(result); }).catch(error => errorHandler(error, res)); }); app.get('/:country', (req, res) => { const { country } = req.params; + const isCurl = req.headers['user-agent'].match(/\bcurl\b/gmi) !== null; const format = req.query.format ? req.query.format : ''; if (!country || 'ALL' === country.toUpperCase()) { if (format.toLowerCase() === 'json') { return getJSONData().then(result => { - res.setHeader('Cache-Control', 's-maxage=900'); return res.json(result); }).catch(error => errorHandler(error, res)); } - return getCompleteTable().then(result => { - res.setHeader('Cache-Control', 's-maxage=900'); + return getCompleteTable({ isCurl }).then(result => { return res.send(result); }).catch(error => errorHandler(error, res)); } @@ -70,13 +71,11 @@ app.get('/:country', (req, res) => { if (format.toLowerCase() === 'json') { return getJSONDataForCountry(iso2).then(result => { - res.setHeader('Cache-Control', 's-maxage=900'); return res.json(result); }).catch(error => errorHandler(error, res)); } - return getCountryTable(iso2).then(result => { - res.setHeader('Cache-Control', 's-maxage=900'); + return getCountryTable({ countryCode: iso2, isCurl }).then(result => { return res.send(result); }).catch(error => errorHandler(error, res)); }); diff --git a/bin/index.js b/bin/index.js index a567e20..610987c 100755 --- a/bin/index.js +++ b/bin/index.js @@ -1,6 +1,5 @@ #!/usr/bin/env node -const yargonaut = require('yargonaut') - .style('green'); +const yargonaut = require('yargonaut').style('green'); const yargs = require('yargs'); const chalk = require('chalk'); const { getCompleteTable } = require('../lib/corona'); @@ -8,7 +7,7 @@ const { getCountryTable } = require('../lib/byCountry'); const { lookupCountry } = require('../lib/helpers'); const { argv } = yargs - .command('$0 [country]','Tool to COVID-19 statistics for the world or the given country', yargs => + .command('$0 [country]','Tool to track COVID-19 statistics for the world or the given country', yargs => yargs.positional('country', { coerce(arg) { if ('ALL' === arg.toUpperCase()) { @@ -51,7 +50,7 @@ const { emojis, country } = argv; ( country === 'ALL' ? getCompleteTable({emojis}) - : getCountryTable(country, emojis) + : getCountryTable({ countryCode: country, emojis }) ) .then(console.log) .catch(console.error); \ No newline at end of file diff --git a/lib/byCountry.js b/lib/byCountry.js index 197dd0c..79e01c3 100644 --- a/lib/byCountry.js +++ b/lib/byCountry.js @@ -4,6 +4,7 @@ const _ = require('lodash'); const chalk = require('chalk'); const helpers = require('./helpers'); const api = require('./api'); +const stripAnsi = require('strip-ansi'); const { getCountry, getConfirmed, @@ -79,7 +80,7 @@ exports.getJSONDataForCountry = async (countryCode) => { return countryData; } -exports.getCountryTable = async (countryCode, emojis = false) => { +exports.getCountryTable = async ({countryCode, emojis = false, isCurl = true}) => { const head = [ '', 'State', @@ -147,5 +148,30 @@ exports.getCountryTable = async (countryCode, emojis = false) => { }); } const lastUpdated = countryData[0].lastUpdated; + if (!isCurl) { + const template = ` + + + + + + Coronavirus Tracker + + + +
${table.toString() + footer(lastUpdated)}
+ + `; + return stripAnsi(template); + } return table.toString() + footer(lastUpdated); } \ No newline at end of file diff --git a/lib/corona.js b/lib/corona.js index 03c267f..44aa5be 100644 --- a/lib/corona.js +++ b/lib/corona.js @@ -4,6 +4,7 @@ const _ = require('lodash'); const chalk = require('chalk'); const helpers = require('./helpers'); const api = require('./api'); +const stripAnsi = require('strip-ansi'); const { getCountry, getConfirmed, @@ -79,7 +80,7 @@ function extraStats(dataArr) { ); } -exports.getCompleteTable = async ({isCurl, emojis = false}) => { +exports.getCompleteTable = async ({isCurl = true, emojis = false}) => { const head = [ '', 'Country', @@ -148,6 +149,10 @@ exports.getCompleteTable = async ({isCurl, emojis = false}) => { Coronavirus Tracker - -
${table.toString() + footer(lastUpdated)}
- + +
${table.toString() + footer(lastUpdated)}
+ `; return stripAnsi(template); } diff --git a/lib/corona.js b/lib/corona.js index 44aa5be..5391063 100644 --- a/lib/corona.js +++ b/lib/corona.js @@ -80,27 +80,15 @@ function extraStats(dataArr) { ); } -exports.getCompleteTable = async ({isCurl = true, emojis = false}) => { - const head = [ - '', - 'Country', - `Confirmed ${emojis ? ' ✅': ''}`, - `Recovered${emojis ? ' 😀' : ''}`, - `Deaths${emojis ? ' 😞' : ''}`, - `Active${emojis ? ' 😷' : ''}`, - 'Mortality %', - 'Recovered %', - '1 Day ▲', - '1 Week ▲', - // 'RoG', - ...( emojis ? ['🏳'] : [] ), - ]; +exports.getCompleteTable = async ({ + isCurl = true, + emojis = false, + minimal = false, + }) => { const table = new Table({ - head, - chars: { 'top': '═' , 'top-mid': '╤' , 'top-left': '╔' , 'top-right': '╗' - , 'bottom': '═' , 'bottom-mid': '╧' , 'bottom-left': '╚' , 'bottom-right': '╝' - , 'left': '║' , 'left-mid': '╟' , 'mid': '─' , 'mid-mid': '┼' - , 'right': '║' , 'right-mid': '╢' , 'middle': '│' } + head: helpers.getTableHeaders(emojis, 'Country'), + chars: helpers.getTableBorders(minimal), + style: helpers.getTableStyles(minimal), }); const data = await api.getCoronaData(); const { latest, confirmed, deaths, recovered } = data; @@ -139,6 +127,21 @@ exports.getCompleteTable = async ({isCurl = true, emojis = false}) => { ] table.push({ [rank++]: values }) }); + table.push({ + '': [ + 'World', + getConfirmed(worldStats.confirmed), + getRecovered(worldStats.recovered), + getDeaths(worldStats.deaths), + getActive(worldStats.active), + getMortalityPer(worldStats.mortalityPer), + getRecoveredPer(worldStats.recoveredPer), + getOneDayChange(worldStats), + getOneWeekChange(worldStats), + // '', + ...( emojis ? ['🌎'] : [] ) + ] + }) const lastUpdated = countryData[0].lastUpdated; if (!isCurl) { const template = ` @@ -159,9 +162,9 @@ exports.getCompleteTable = async ({isCurl = true, emojis = false}) => { } - -
${table.toString() + footer(lastUpdated)}
- + +
${table.toString() + footer(lastUpdated)}
+ ` return stripAnsi(template); } diff --git a/lib/helpers.js b/lib/helpers.js index e3d1c07..26d7897 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -174,3 +174,40 @@ Twitter: https://twitter.com/ekrysis Last Updated on: ${moment(lastUpdated).utc().format('DD-MMM-YYYY HH:MM')} UTC `; + +e.getTableBorders = minimal => { + if (minimal) { + return { 'top': '' , 'top-mid': '' , 'top-left': '' , 'top-right': '' + , 'bottom': '' , 'bottom-mid': '' , 'bottom-left': '' , 'bottom-right': '' + , 'left': '' , 'left-mid': '' , 'mid': '' , 'mid-mid': '' + , 'right': '' , 'right-mid': '' , 'middle': ' ' } + }; + return { 'top': '═' , 'top-mid': '╤' , 'top-left': '╔' , 'top-right': '╗' + ,'bottom': '═' , 'bottom-mid': '╧' , 'bottom-left': '╚' , 'bottom-right': '╝' + ,'left': '║' , 'left-mid': '╟' , 'mid': '─' , 'mid-mid': '┼' + ,'right': '║' , 'right-mid': '╢' , 'middle': '│' }; +}; + +e.getTableStyles = minimal => { + if (minimal) { + return { 'padding-left': 0, 'padding-right': 0 }; + } +}; + +e.getTableHeaders = (emojis, secondColumnName ) => { + const head = [ + 'Rank', + secondColumnName, + `Confirmed ${emojis ? ' ✅': ''}`, + `Recovered${emojis ? ' 😀' : ''}`, + `Deaths${emojis ? ' 😞' : ''}`, + `Active${emojis ? ' 😷' : ''}`, + 'Mortality %', + 'Recovered %', + '1 Day ▲', + '1 Week ▲', + // 'RoG', + ...( emojis ? ['🏳'] : [] ), + ]; + return head; +}; \ No newline at end of file diff --git a/package.json b/package.json index 11d7c87..e860ef6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "coronavirus-tracker-cli", - "version": "0.4.0", + "version": "0.5.0", "description": "track conronavirus cases from cli", "main": "./lib/corona.js", "bin": { From 46a7e7ff3bfc3f8df125eb29958dcc7a66c0caa0 Mon Sep 17 00:00:00 2001 From: sagark Date: Fri, 20 Mar 2020 02:23:13 +0530 Subject: [PATCH 26/86] added minimal command to readme --- readme.md | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/readme.md b/readme.md index db5f204..4bcdd51 100644 --- a/readme.md +++ b/readme.md @@ -11,7 +11,7 @@ Track The Corona virus from your CLI ### Complete Data ````sh -curl https://corona-stats.online/ +curl https://corona-stats.online ```` ### Filter by Country Stats @@ -26,6 +26,11 @@ where can be country name or its ISO code. - Italy: ```curl https://corona-stats.online/Italy``` - UK: ```curl https://corona-stats.online/UK``` or ```curl https://corona-stats.online/GB``` +**Minimal Compact Table** + +````sh +curl https://corona-stats.online?minimal=true +```` ## API @@ -51,16 +56,21 @@ npm install coronavirus-tracker-cli -g corona ```` +**Filter by country** + +````sh +corona italy +```` **With emojis** ````sh corona --emojis ```` -**Filter by country** +**Minimal Compact Table** ````sh -corona italy +corona --minimal ```` **Disable colors** @@ -90,14 +100,16 @@ corona | grep -B 23 ' 10 ' ``` project : curl-corona - lines : 2837 + lines : 2984 authors : - 2479 Sagar Karira 87.4% - 293 Alexandra Parker 10.3% - 30 Lucas Fernandez Nicolau 1.1% - 25 Shelton Koskie 0.9% - 6 Mo'men Tawfik 0.2% + 2617 Sagar Karira 87.7% + 283 Alexandra Parker 9.5% + 29 Lucas Fernandez Nicolau 1.0% + 25 Shelton Koskie 0.8% + 21 Daniel S 0.7% + 4 Mo'men Tawfik 0.1% 3 XhmikosR 0.1% + 1 Greg Myers 0.0% 1 CyberDracula 0.0% ``` From 32402f5e73cdf89d74ef08c25c1abbe85e5cf1e9 Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Thu, 19 Mar 2020 15:34:55 +0200 Subject: [PATCH 27/86] readme.md: Markdown tweaks --- readme.md | 65 +++++++++++++++++++++++++++---------------------------- 1 file changed, 32 insertions(+), 33 deletions(-) diff --git a/readme.md b/readme.md index 2c31503..f88299c 100644 --- a/readme.md +++ b/readme.md @@ -10,27 +10,27 @@ Track The Corona virus from your CLI ### Complete Data -````sh +```sh curl https://corona-stats.online -```` +``` ### Filter by Country Stats -````sh +```sh curl https://corona-stats.online/ -```` +``` -where can be country name or its ISO code. +where \ can be country name or its ISO code. -- US: ```curl https://corona-stats.online/US``` -- Italy: ```curl https://corona-stats.online/Italy``` -- UK: ```curl https://corona-stats.online/UK``` or ```curl https://corona-stats.online/GB``` +* US: `curl https://corona-stats.online/US` +* Italy: `curl https://corona-stats.online/Italy` +* UK: `curl https://corona-stats.online/UK` or `curl https://corona-stats.online/GB` **Minimal Compact Table** -````sh +```sh curl https://corona-stats.online?minimal=true -```` +``` **Only show top N countries** @@ -46,21 +46,21 @@ curl https://corona-stats.online/updates ## API -Add `?format=json` at the end of any API to get json formatted data. +Add `?format=json` at the end of any API to get JSON formatted data. **Example:** -````sh +```sh curl https://corona-stats.online?format=json -```` +``` -## Local Command (For coloured ouput) +## Local Command (For coloured output) **Install** -````sh +```sh npm install coronavirus-tracker-cli -g -```` +``` **Run command** @@ -82,23 +82,23 @@ corona --top=10 **With emojis** -````sh +```sh corona --emojis -```` +``` **Minimal Compact Table** -````sh +```sh corona --minimal -```` +``` **Disable colors** -````sh +```sh corona --color=false -```` +``` -### ToDos +## ToDos * ~~Filter by country to get cases by local states.~~ * ~~Move from npm to curl~~ @@ -106,7 +106,7 @@ corona --color=false * Add growth rate. (linear regression) * Add latest updates from reddit / twitter. -### Contributors +## Contributors ``` project : curl-corona @@ -123,26 +123,25 @@ corona --color=false 1 CyberDracula 0.0% ``` -### Other Regional Trackers. +## Other Regional Trackers. -* [Italy](http://opendatadpc.maps.arcgis.com/apps/opsdashboard/index.html#/b0c68bce2cce478eaac82fe38d4138b1) +* [Italy](https://opendatadpc.maps.arcgis.com/apps/opsdashboard/index.html#/b0c68bce2cce478eaac82fe38d4138b1) * [India](https://www.covid19india.org/) * [USA](https://www.npr.org/sections/health-shots/2020/03/16/816707182/map-tracking-the-spread-of-the-coronavirus-in-the-u-s) * [France](https://veille-coronavirus.fr/) * [Japan](https://covid19japan.com/) - -### Thanks to +## Thanks to * [CSSEGISandData](https://github.com/CSSEGISandData/COVID-19) for the data. -* [ExpDev07](https://github.com/ExpDev07/coronavirus-tracker-api) for the api. +* [ExpDev07](https://github.com/ExpDev07/coronavirus-tracker-api) for the API. * [Zeit Now](https://github.com/zeit/now) for hosting. -### Related Projects +## Related Projects -* https://github.com/NovelCOVID/API -* https://github.com/javieraviles/covidAPI -* https://github.com/mathdroid/covid-19-api +* +* +* ## License From 3f2d607976e7663da45f8d926683f869fceb89d3 Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Thu, 19 Mar 2020 15:11:08 +0200 Subject: [PATCH 28/86] Add ESLint devDependency and script. --- .eslintrc.json | 54 +-- package-lock.json | 946 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 4 +- 3 files changed, 976 insertions(+), 28 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 3568e49..996bd17 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,29 +1,29 @@ { - "env": { - "browser": true, - "commonjs": true, - "es6": true - }, - "extends": "eslint:recommended", - "parserOptions": { - "sourceType": "module" - }, - "rules": { - "indent": [ - "error", - 2 - ], - "linebreak-style": [ - "error", - "unix" - ], - "quotes": [ - "error", - "single" - ], - "semi": [ - "error", - "always" - ] - } + "env": { + "node": true, + "es6": true + }, + "extends": "eslint:recommended", + "parserOptions": { + "ecmaVersion": 2019, + "sourceType": "module" + }, + "rules": { + "indent": [ + "error", + 2 + ], + "linebreak-style": [ + "error", + "unix" + ], + "quotes": [ + "error", + "single" + ], + "semi": [ + "error", + "always" + ] + } } \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 775b5a7..e0d7224 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,6 +4,78 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "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" + } + } + } + }, "@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", @@ -24,6 +96,30 @@ "negotiator": "0.6.2" } }, + "acorn": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", + "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", + "dev": true + }, + "acorn-jsx": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", + "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", + "dev": true + }, + "ajv": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, "ansi-align": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", @@ -33,6 +129,23 @@ "string-width": "^2.0.0" } }, + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } + } + }, "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", @@ -65,11 +178,26 @@ "picomatch": "^2.0.4" } }, + "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" + } + }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, "axios": { "version": "0.19.2", "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", @@ -216,6 +344,12 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, "camelcase": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", @@ -237,6 +371,12 @@ "supports-color": "^7.1.0" } }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, "chokidar": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz", @@ -265,6 +405,15 @@ "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", "dev": true }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, "cli-table3": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", @@ -304,6 +453,12 @@ } } }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, "cliui": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", @@ -485,6 +640,12 @@ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, "defaults": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", @@ -503,6 +664,15 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, "dot-prop": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", @@ -557,6 +727,238 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, + "eslint": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", + "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^7.0.0", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.14", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.3", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "strip-json-comments": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", + "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", + "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" + } + } + } + }, + "eslint-scope": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", + "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", + "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", + "dev": true + }, + "espree": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.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.1.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.1.0.tgz", + "integrity": "sha512-MxYW9xKmROWF672KqjO75sszsA8Mxhw06YFeS5VHlB98KDHbOSurm3ArsjO60Eaf3QmGMCP1yn+0JQkNLo/97Q==", + "dev": true, + "requires": { + "estraverse": "^4.0.0" + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", @@ -624,11 +1026,58 @@ } } }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, "figlet": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.3.0.tgz", "integrity": "sha512-f7A8aOJAfyehLJ7lQ6rEA8WJw7kOk3lfWRi5piSjkzbK5YkI5sqO8eiLHz1ehO+DM0QYB85i8VfA6XIGUbU1dg==" }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "requires": { + "flat-cache": "^2.0.1" + } + }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -671,6 +1120,23 @@ "path-exists": "^4.0.0" } }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + } + }, + "flatted": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", + "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", + "dev": true + }, "follow-redirects": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", @@ -689,6 +1155,12 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, "fsevents": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", @@ -696,6 +1168,12 @@ "dev": true, "optional": true }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -707,6 +1185,20 @@ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, "glob-parent": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", @@ -725,6 +1217,15 @@ "ini": "^1.3.4" } }, + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, "got": { "version": "6.7.1", "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", @@ -795,12 +1296,28 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "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": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", "dev": true }, + "import-fresh": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, "import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", @@ -813,6 +1330,16 @@ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", @@ -824,6 +1351,61 @@ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true }, + "inquirer": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", + "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.15", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.5.3", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "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.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, "ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -905,6 +1487,12 @@ "path-is-inside": "^1.0.1" } }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, "is-redirect": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", @@ -929,6 +1517,34 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "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": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, "latest-version": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", @@ -938,6 +1554,16 @@ "package-json": "^4.0.0" } }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -1104,6 +1730,12 @@ "mime-db": "1.43.0" } }, + "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 + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -1119,6 +1751,15 @@ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, + "mkdirp": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.3.tgz", + "integrity": "sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, "moment": { "version": "2.24.0", "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", @@ -1151,11 +1792,29 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, "negotiator": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, "node-cache": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/node-cache/-/node-cache-5.1.0.tgz", @@ -1263,6 +1922,44 @@ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -1302,6 +1999,15 @@ "semver": "^5.1.0" } }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, "parent-require": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parent-require/-/parent-require-1.0.0.tgz", @@ -1317,6 +2023,12 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, "path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", @@ -1346,12 +2058,24 @@ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, "prepend-http": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", "dev": true }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, "proxy-addr": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", @@ -1373,6 +2097,12 @@ "integrity": "sha512-xsMgrUwRpuGskEzBFkH8NmTimbZ5PcPup0LA8JJkHIm2IMUbQcpo3yeLNWVrufEYjh8YwtSVh0xz6UeWc5Oh5A==", "dev": true }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, "qs": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", @@ -1415,6 +2145,12 @@ "picomatch": "^2.0.7" } }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "dev": true + }, "registry-auth-token": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", @@ -1444,6 +2180,49 @@ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-async": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz", + "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==", + "dev": true, + "requires": { + "is-promise": "^2.1.0" + } + }, + "rxjs": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", + "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -1553,6 +2332,49 @@ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.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" + } + }, + "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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + } + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -1613,6 +2435,52 @@ "has-flag": "^4.0.0" } }, + "table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, "term-size": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", @@ -1622,12 +2490,33 @@ "execa": "^0.7.0" } }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, "timed-out": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", "dev": true }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -1651,6 +2540,27 @@ "nopt": "~1.0.10" } }, + "tslib": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", + "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + }, "type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -1770,6 +2680,15 @@ } } }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, "url-parse-lax": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", @@ -1784,6 +2703,12 @@ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, + "v8-compile-cache": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", + "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", + "dev": true + }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -1820,6 +2745,12 @@ "string-width": "^2.1.1" } }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, "wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -1860,6 +2791,21 @@ } } }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, "write-file-atomic": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", diff --git a/package.json b/package.json index 638c643..ead5f27 100644 --- a/package.json +++ b/package.json @@ -17,8 +17,9 @@ }, "scripts": { "dev": "nodemon --inspect app.js", + "lint": "eslint .", "start": "node app.js", - "test": "echo \"Error: no test specified\" && exit 1" + "test": "npm run lint" }, "engines": { "node": "12.x" @@ -43,6 +44,7 @@ "yargs": "15.3.1" }, "devDependencies": { + "eslint": "^6.8.0", "nodemon": "^2.0.2" } } From 02bb8a041845aeb52b8343976f0dd9269b3241e1 Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Fri, 20 Mar 2020 09:00:27 +0200 Subject: [PATCH 29/86] Tweak HTML/CSS * use the native font stack * lowercase values --- lib/byCountry.js | 13 ++++++------- lib/corona.js | 13 ++++++------- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/lib/byCountry.js b/lib/byCountry.js index d12b495..d37640f 100644 --- a/lib/byCountry.js +++ b/lib/byCountry.js @@ -140,20 +140,19 @@ exports.getCountryTable = async ({ } const lastUpdated = countryData[0].lastUpdated; if (!isCurl) { - const template = ` + const template = ` - - - + + Coronavirus Tracker diff --git a/lib/corona.js b/lib/corona.js index d1c5e38..531d804 100644 --- a/lib/corona.js +++ b/lib/corona.js @@ -161,20 +161,19 @@ exports.getCompleteTable = async ({ }) const lastUpdated = countryData[0].lastUpdated; if (!isCurl) { - const template = ` + const template = ` - - - + + Coronavirus Tracker From b8da03438af890293353ecd471d6bc62cb9bd6e9 Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Fri, 20 Mar 2020 09:08:52 +0200 Subject: [PATCH 30/86] Add .editorconfig file --- .editorconfig | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..f29d257 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,11 @@ +# editorconfig.org + +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 2 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true From 1f67fcc7387fb059677fd2bbf5e91d39c2afa5d4 Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Thu, 19 Mar 2020 15:20:31 +0200 Subject: [PATCH 31/86] Fix ESLint issues, make code consistent, remove unused code and dependencies. --- app.js | 35 ++++++++---------- bin/index.js | 11 +++--- lib/api.js | 12 +++++-- lib/byCountry.js | 50 ++++++++++++-------------- lib/corona.js | 62 +++++++++++--------------------- lib/helpers.js | 55 +++++++++++++++++------------ lib/reddit.js | 22 +++++------- package-lock.json | 90 ++--------------------------------------------- package.json | 2 -- 9 files changed, 119 insertions(+), 220 deletions(-) diff --git a/app.js b/app.js index fca5f34..bbbab6c 100644 --- a/app.js +++ b/app.js @@ -1,16 +1,13 @@ const express = require('express'); -const app = express(); -const lookup = require('country-code-lookup'); const morgan = require('morgan'); -const stripAnsi = require('strip-ansi'); - -const port = process.env.PORT || 3001; const { getCountryTable, getJSONData, getJSONDataForCountry } = require('./lib/byCountry'); const { getCompleteTable } = require('./lib/corona'); const { lookupCountry } = require('./lib/helpers'); const { getLiveUpdates } = require('./lib/reddit.js'); +const app = express(); +const port = process.env.PORT || 3001; function errorHandler(error, res) { console.error(error); @@ -26,13 +23,11 @@ app.use((req, res, next) => { next(); }); - - app.get('/', (req, res) => { - const isCurl = req.headers['user-agent'].match(/\bcurl\b/gmi) !== null; + const isCurl = req.headers['user-agent'].match(/\bcurl\b/gim) !== null; const format = req.query.format ? req.query.format : ''; - const minimal = req.query.minimal === 'true' ? true : false; - const emojis = req.query.emojis === 'true' ? true : false; + const minimal = req.query.minimal === 'true'; + const emojis = req.query.emojis === 'true'; const top = req.query.top ? Number(req.query.top) : 1000; if (format.toLowerCase() === 'json') { @@ -49,12 +44,13 @@ app.get('/', (req, res) => { app.get('/updates', (req, res) => { const format = req.query.format ? req.query.format : ''; - const isCurl = req.headers['user-agent'].match(/\bcurl\b/gmi) !== null; + const isCurl = req.headers['user-agent'].match(/\bcurl\b/gim) !== null; if (format.toLowerCase() === 'json') { return getLiveUpdates({ json: true, isCurl }).then(result => { return res.json(result); }).catch(error => errorHandler(error, res)); } + return getLiveUpdates({ json: false, isCurl }).then(result => { return res.send(result); }).catch(error => errorHandler(error, res)); @@ -62,11 +58,11 @@ app.get('/updates', (req, res) => { app.get('/:country', (req, res) => { const { country } = req.params; - const isCurl = req.headers['user-agent'].match(/\bcurl\b/gmi) !== null; + const isCurl = req.headers['user-agent'].match(/\bcurl\b/gim) !== null; const format = req.query.format ? req.query.format : ''; - const minimal = req.query.minimal === 'true' ? true : false; - const emojis = req.query.emojis === 'true' ? true : false; - if (!country || 'ALL' === country.toUpperCase()) { + const minimal = req.query.minimal === 'true'; + const emojis = req.query.emojis === 'true'; + if (!country || country.toUpperCase() === 'ALL') { if (format.toLowerCase() === 'json') { return getJSONData().then(result => { return res.json(result); @@ -79,13 +75,13 @@ app.get('/:country', (req, res) => { }).catch(error => errorHandler(error, res)); } - let lookupObj = lookupCountry(country); + const lookupObj = lookupCountry(country); if (!lookupObj) { return res.send(` Country not found. - Try full country name or country code. - Ex: + Try the full country name or country code. + Example: - /UK: for United Kingdom - /US: for United States of America. - /Italy: for Italy. @@ -106,5 +102,4 @@ app.get('/:country', (req, res) => { }).catch(error => errorHandler(error, res)); }); - -app.listen(port, () => console.log(`Running on ${port}`)); \ No newline at end of file +app.listen(port, () => console.log(`Running on ${port}`)); diff --git a/bin/index.js b/bin/index.js index b7731b3..e794c9a 100755 --- a/bin/index.js +++ b/bin/index.js @@ -1,5 +1,5 @@ #!/usr/bin/env node -const yargonaut = require('yargonaut').style('green'); + const yargs = require('yargs'); const chalk = require('chalk'); const { getCompleteTable } = require('../lib/corona'); @@ -7,12 +7,13 @@ const { getCountryTable } = require('../lib/byCountry'); const { lookupCountry } = require('../lib/helpers'); const { argv } = yargs - .command('$0 [country]','Tool to track COVID-19 statistics from terminal', yargs => + .command('$0 [country]', 'Tool to track COVID-19 statistics from terminal', yargs => yargs.positional('country', { coerce(arg) { - if ('ALL' === arg.toUpperCase()) { + if (arg.toUpperCase() === 'ALL') { return 'ALL'; } + const country = lookupCountry(arg); if (!country) { let error = `Country '${arg}' not found.\n`; @@ -23,6 +24,7 @@ const { argv } = yargs error += '- Italy: for Italy.\n'; throw new Error(chalk.red.bold(error)); } + return country.iso2; }, describe: 'Filter table by country', @@ -57,7 +59,6 @@ const { argv } = yargs .strict() .help('help'); - const { emojis, country, minimal, top } = argv; ( country === 'ALL' @@ -65,4 +66,4 @@ const { emojis, country, minimal, top } = argv; : getCountryTable({ countryCode: country, emojis, minimal }) ) .then(console.log) - .catch(console.error); \ No newline at end of file + .catch(console.error); diff --git a/lib/api.js b/lib/api.js index 6f811b0..c814652 100644 --- a/lib/api.js +++ b/lib/api.js @@ -1,17 +1,23 @@ const NodeCache = require('node-cache'); const axios = require('axios'); -const myCache = new NodeCache( { stdTTL: 100, checkperiod: 600 } ); + +const myCache = new NodeCache({ stdTTL: 100, checkperiod: 600 }); const CORONA_ALL_KEY = 'coronaAll'; exports.getCoronaData = async () => { const coronaCache = myCache.get(CORONA_ALL_KEY); + if (coronaCache) { return coronaCache; } + const result = await axios('https://coronavirus-tracker-api.herokuapp.com/all'); + if (!result || !result.data) { - throw new Error(`Source API faliure.`); + throw new Error('Source API failure.'); } + myCache.set(CORONA_ALL_KEY, result.data, 60 * 15); + return result.data; -} \ No newline at end of file +}; diff --git a/lib/byCountry.js b/lib/byCountry.js index d12b495..24ef69f 100644 --- a/lib/byCountry.js +++ b/lib/byCountry.js @@ -1,12 +1,9 @@ const Table = require('cli-table3'); -const axios = require('axios'); const _ = require('lodash'); -const chalk = require('chalk'); const helpers = require('./helpers'); const api = require('./api'); const stripAnsi = require('strip-ansi'); const { - getCountry, getConfirmed, getActive, getDeaths, @@ -19,7 +16,6 @@ const { calRecoveredPer, getOneDayChange, getOneWeekChange, - getRateOfGrowth, getTotalStats, footer, } = require('./helpers'); @@ -52,35 +48,35 @@ function getDataByState(confirmed, deaths, recovered) { const countryArr = extraStats( Object.keys(countryMap).map(key => countryMap[key]) ); - return _.sortBy(countryArr, (o) => -o.confirmed) + return _.sortBy(countryArr, (o) => -o.confirmed); } function extraStats(dataArr) { - return dataArr.map(obj => Object.assign({}, obj, - { - active: calActive(obj), - mortalityPer: calMortalityPer(obj), - recoveredPer: calRecoveredPer(obj), - }) + return dataArr.map(obj => ({ + ...obj, + active: calActive(obj), + mortalityPer: calMortalityPer(obj), + recoveredPer: calRecoveredPer(obj), + }) ); } exports.getJSONData = async () => { const data = await api.getCoronaData(); - const { latest, confirmed, deaths, recovered } = data; + const { confirmed, deaths, recovered } = data; const countryData = getDataByState(confirmed, deaths, recovered); const totalStats = getTotalStats(countryData); totalStats.country = 'World'; return countryData.concat(totalStats); -} +}; exports.getJSONDataForCountry = async (countryCode) => { const data = await api.getCoronaData(); - const { latest, confirmed, deaths, recovered } = data; - const countryData = getDataByState(confirmed, deaths, recovered, countryCode) + const { confirmed, deaths, recovered } = data; + const countryData = getDataByState(confirmed, deaths, recovered) .filter(obj => obj.countryCode === countryCode); return countryData; -} +}; exports.getCountryTable = async ({ countryCode, @@ -94,11 +90,11 @@ exports.getCountryTable = async ({ style: helpers.getTableStyles(minimal), }); const data = await api.getCoronaData(); - const { latest, confirmed, deaths, recovered } = data; + const { confirmed, deaths, recovered } = data; const countryData = getDataByState(confirmed, deaths, recovered) .filter(obj => obj.countryCode === countryCode); - if(countryData.length === 0) { + if (countryData.length === 0) { throw new Error(`Country code ${countryCode} does not match anything in the database.`); } @@ -114,10 +110,9 @@ exports.getCountryTable = async ({ getRecoveredPer(totalStats.recoveredPer), getOneDayChange(totalStats), getOneWeekChange(totalStats), - // '', - // getEmoji(countryData[0].countryCode), ] - }) + }); + if (countryData.length > 1) { let rank = 1; countryData.forEach(cd => { @@ -132,13 +127,13 @@ exports.getCountryTable = async ({ getRecoveredPer(cd.recoveredPer), getOneDayChange(cd), getOneWeekChange(cd), - // getRateOfGrowth(cd), - ... (emojis ? [countryEmoji] : []) - ] - table.push({ [rank++]: values }) + ...(emojis ? [countryEmoji] : []) + ]; + table.push({ [rank++]: values }); }); } - const lastUpdated = countryData[0].lastUpdated; + + const { lastUpdated } = countryData[0]; if (!isCurl) { const template = ` @@ -164,5 +159,6 @@ exports.getCountryTable = async ({ `; return stripAnsi(template); } + return table.toString() + footer(lastUpdated); -} \ No newline at end of file +}; diff --git a/lib/corona.js b/lib/corona.js index d1c5e38..d8b9d17 100644 --- a/lib/corona.js +++ b/lib/corona.js @@ -1,7 +1,5 @@ const Table = require('cli-table3'); -const axios = require('axios'); const _ = require('lodash'); -const chalk = require('chalk'); const helpers = require('./helpers'); const api = require('./api'); const stripAnsi = require('strip-ansi'); @@ -19,7 +17,6 @@ const { calRecoveredPer, getOneDayChange, getOneWeekChange, - getRateOfGrowth, getTotalStats, footer, } = require('./helpers'); @@ -67,16 +64,16 @@ function getDataByCountry(confirmed, deaths, recovered) { const countryArr = extraStats( Object.keys(countryMap).map(key => countryMap[key]) ); - return _.sortBy(countryArr, (o) => -o.confirmed) + return _.sortBy(countryArr, (o) => -o.confirmed); } function extraStats(dataArr) { - return dataArr.map(obj => Object.assign({}, obj, - { - active: calActive(obj), - mortalityPer: calMortalityPer(obj), - recoveredPer: calRecoveredPer(obj), - }) + return dataArr.map(obj => ({ + ...obj, + active: calActive(obj), + mortalityPer: calMortalityPer(obj), + recoveredPer: calRecoveredPer(obj), + }) ); } @@ -85,30 +82,15 @@ exports.getCompleteTable = async ({ emojis = false, minimal = false, top = 1000 - }) => { - const head = [ - '', - 'Country', - `Confirmed ${emojis ? ' ✅': ''}`, - `Recovered${emojis ? ' 😀' : ''}`, - `Deaths${emojis ? ' 😞' : ''}`, - `Active${emojis ? ' 😷' : ''}`, - 'Mortality %', - 'Recovered %', - '1 Day ▲', - '1 Week ▲', - // 'RoG', - ...( emojis ? ['🏳'] : [] ), - ]; - +}) => { const table = new Table({ head: helpers.getTableHeaders(emojis, 'Country'), chars: helpers.getTableBorders(minimal), style: helpers.getTableStyles(minimal), }); const data = await api.getCoronaData(); - const { latest, confirmed, deaths, recovered } = data; - const countryData = getDataByCountry(confirmed, deaths, recovered) + const { confirmed, deaths, recovered } = data; + const countryData = getDataByCountry(confirmed, deaths, recovered); const worldStats = getTotalStats(countryData); table.push({ '': [ @@ -121,10 +103,9 @@ exports.getCompleteTable = async ({ getRecoveredPer(worldStats.recoveredPer), getOneDayChange(worldStats), getOneWeekChange(worldStats), - // '', - ...( emojis ? ['🌎'] : [] ) + ...(emojis ? ['🌎'] : []) ] - }) + }); let rank = 1; countryData.some(cd => { const countryEmoji = getEmoji(cd.countryCode); @@ -138,11 +119,10 @@ exports.getCompleteTable = async ({ getRecoveredPer(cd.recoveredPer), getOneDayChange(cd), getOneWeekChange(cd), - // getRateOfGrowth(cd), ...(emojis ? [countryEmoji] : []) - ] - table.push({ [rank++]: values }) - return rank == top + 1; + ]; + table.push({ [rank++]: values }); + return rank === top + 1; }); table.push({ '': [ @@ -155,11 +135,10 @@ exports.getCompleteTable = async ({ getRecoveredPer(worldStats.recoveredPer), getOneDayChange(worldStats), getOneWeekChange(worldStats), - // '', - ...( emojis ? ['🌎'] : [] ) + ...(emojis ? ['🌎'] : []) ] - }) - const lastUpdated = countryData[0].lastUpdated; + }); + const { lastUpdated } = countryData[0]; if (!isCurl) { const template = ` @@ -182,8 +161,9 @@ exports.getCompleteTable = async ({
${table.toString() + footer(lastUpdated)}
- ` + `; return stripAnsi(template); } + return table.toString() + footer(lastUpdated); -} +}; diff --git a/lib/helpers.js b/lib/helpers.js index 26d7897..5160537 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -14,6 +14,7 @@ e.getState = (state) => { if (state) { return chalk.red(state); } + return chalk.red('ALL'); }; @@ -59,6 +60,7 @@ e.getEmoji = (countryCode) => { if (countryCode && emojiFlags.countryCode(countryCode)) { return emojiFlags.countryCode(countryCode).emoji; } + return ''; }; @@ -80,6 +82,7 @@ e.historyObjToArr = (historyObj) => { Object.keys(historyObj).map(date => new Date(date).getTime()), Number ); + return sortedTimestampArr.map(timestamp => { const dateFormatted = moment(timestamp).format('M/D/YY'); return historyObj[dateFormatted]; @@ -92,18 +95,21 @@ e.historyObjToArr = (historyObj) => { * */ e.addArr = (arr1, arr2) => { - if (arr1.length === 0 ) { + if (arr1.length === 0) { return arr2; } + if (arr2.length === 0) { return arr1; } + return arr1.map((val, index) => arr1[index] + arr2[index]); }; e.getOneDayChange = ({ confirmedByDay }) => { const present = confirmedByDay.length - 1; const dailyChange = confirmedByDay[present] - confirmedByDay[present - 1]; + return { content: `${h(dailyChange)} ▲`, hAlign: 'right', @@ -113,24 +119,21 @@ e.getOneDayChange = ({ confirmedByDay }) => { e.getOneWeekChange = ({ confirmedByDay }) => { const present = confirmedByDay.length - 1; const weeklyChange = confirmedByDay[present] - confirmedByDay[present - 7]; + return { content: `${h(weeklyChange)} ▲`, hAlign: 'right', }; }; -e.getRateOfGrowth = ( { confirmedByDay }) => { - return confirmedByDay[0]; -}; - e.getTotalStats = (countryData) => { const worldStats = countryData.reduce((acc, countryObj) => { acc.confirmed += countryObj.confirmed; acc.recovered += countryObj.recovered; acc.deaths += countryObj.deaths; - acc.confirmedByDay = e.addArr( acc.confirmedByDay, countryObj.confirmedByDay); - acc.recoveredByDay = e.addArr( acc.recoveredByDay, countryObj.recoveredByDay); - acc.deathsByDay = e.addArr( acc.deathsByDay, countryObj.deathsByDay); + acc.confirmedByDay = e.addArr(acc.confirmedByDay, countryObj.confirmedByDay); + acc.recoveredByDay = e.addArr(acc.recoveredByDay, countryObj.recoveredByDay); + acc.deathsByDay = e.addArr(acc.deathsByDay, countryObj.deathsByDay); return acc; }, { confirmed: 0, @@ -140,21 +143,25 @@ e.getTotalStats = (countryData) => { recoveredByDay: [], deathsByDay: [], }); + worldStats.active = e.calActive(worldStats); worldStats.recoveredPer = e.calRecoveredPer(worldStats); worldStats.mortalityPer = e.calMortalityPer(worldStats); + return worldStats; }; e.countryUpperCase = country => { - if(country.length > 2){ + if (country.length > 2) { return country.toLowerCase().split(/\s+/).map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' '); } + return country; }; e.lookupCountry = country => { country = e.countryUpperCase(country); + try { return lookup.byIso(country) || lookup.byFips(country) @@ -177,15 +184,20 @@ Last Updated on: ${moment(lastUpdated).utc().format('DD-MMM-YYYY HH:MM')} UTC e.getTableBorders = minimal => { if (minimal) { - return { 'top': '' , 'top-mid': '' , 'top-left': '' , 'top-right': '' - , 'bottom': '' , 'bottom-mid': '' , 'bottom-left': '' , 'bottom-right': '' - , 'left': '' , 'left-mid': '' , 'mid': '' , 'mid-mid': '' - , 'right': '' , 'right-mid': '' , 'middle': ' ' } + return { + 'top': '', 'top-mid': '', 'top-left': '', 'top-right': '', + 'bottom': '', 'bottom-mid': '', 'bottom-left': '', 'bottom-right': '', + 'left': '', 'left-mid': '', 'mid': '', 'mid-mid': '', + 'right': '', 'right-mid': '', 'middle': ' ' + }; + } + + return { + 'top': '═', 'top-mid': '╤', 'top-left': '╔', 'top-right': '╗', + 'bottom': '═', 'bottom-mid': '╧', 'bottom-left': '╚', 'bottom-right': '╝', + 'left': '║', 'left-mid': '╟', 'mid': '─', 'mid-mid': '┼', + 'right': '║', 'right-mid': '╢', 'middle': '│', }; - return { 'top': '═' , 'top-mid': '╤' , 'top-left': '╔' , 'top-right': '╗' - ,'bottom': '═' , 'bottom-mid': '╧' , 'bottom-left': '╚' , 'bottom-right': '╝' - ,'left': '║' , 'left-mid': '╟' , 'mid': '─' , 'mid-mid': '┼' - ,'right': '║' , 'right-mid': '╢' , 'middle': '│' }; }; e.getTableStyles = minimal => { @@ -194,11 +206,11 @@ e.getTableStyles = minimal => { } }; -e.getTableHeaders = (emojis, secondColumnName ) => { +e.getTableHeaders = (emojis, secondColumnName) => { const head = [ 'Rank', secondColumnName, - `Confirmed ${emojis ? ' ✅': ''}`, + `Confirmed ${emojis ? ' ✅' : ''}`, `Recovered${emojis ? ' 😀' : ''}`, `Deaths${emojis ? ' 😞' : ''}`, `Active${emojis ? ' 😷' : ''}`, @@ -206,8 +218,7 @@ e.getTableHeaders = (emojis, secondColumnName ) => { 'Recovered %', '1 Day ▲', '1 Week ▲', - // 'RoG', - ...( emojis ? ['🏳'] : [] ), + ...(emojis ? ['🏳'] : []), ]; return head; -}; \ No newline at end of file +}; diff --git a/lib/reddit.js b/lib/reddit.js index 67cbfea..f2adc56 100644 --- a/lib/reddit.js +++ b/lib/reddit.js @@ -1,33 +1,32 @@ const axios = require('axios'); -const LIVE_THREAD_URL = 'https://www.reddit.com/live/14d816ty1ylvo/.json'; const moment = require('moment'); -// const terminalLink = require('terminal-link'); const Table = require('cli-table3'); const stripAnsi = require('strip-ansi'); exports.getLiveUpdates = async ({ json = false, isCurl = true }) => { - const result = await axios(`https://www.reddit.com/live/14d816ty1ylvo/.json`); + const result = await axios('https://www.reddit.com/live/14d816ty1ylvo/.json'); if (!result && !result.data) { - throw new Error(`Reddit live thread API faliure`); + throw new Error('Reddit live thread API failure'); } + const mainInfo = result.data.data.children .filter(o => o.data.mobile_embeds.length > 0) .map(o => { return { description: o.data.mobile_embeds[0].description, - url:o.data.mobile_embeds[0].original_url, + url: o.data.mobile_embeds[0].original_url, timestamp: o.data.created_utc, }; }); if (json) { return mainInfo; } + return formattedForTerminal(mainInfo, isCurl); }; const formattedForTerminal = (mainInfo, isCurl) => { - let liveUpdates = 'Latest Updates: \n\n'; - var table = new Table({ + const table = new Table({ head: ['Time', 'Update'], wordWrap: true, colWidths: [20, 120], @@ -35,12 +34,9 @@ const formattedForTerminal = (mainInfo, isCurl) => { mainInfo.forEach(obj => { const prefixTime = moment(moment.unix(obj.timestamp).format()).fromNow(); const sourceLink = prefixTime; - if (obj.description && sourceLink.indexOf('imgur') === -1) { - // liveUpdates += `${obj.description} --[${sourceLink}] \n\n`; - table.push([prefixTime, obj.description ]); + if (obj.description && !sourceLink.includes('imgur')) { + table.push([prefixTime, obj.description]); } }); - liveUpdates += 'Source: https://www.reddit.com/live/14d816ty1ylvo'; - // return liveUpdates; return isCurl ? table.toString() : stripAnsi(table.toString()); -} \ No newline at end of file +}; diff --git a/package-lock.json b/package-lock.json index e0d7224..583635f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "coronavirus-tracker-cli", - "version": "0.4.0", + "version": "0.6.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -160,14 +160,6 @@ "color-convert": "^2.0.1" } }, - "ansi-to-html": { - "version": "0.6.14", - "resolved": "https://registry.npmjs.org/ansi-to-html/-/ansi-to-html-0.6.14.tgz", - "integrity": "sha512-7ZslfB1+EnFSDO5Ju+ue5Y6It19DRnZXWv8jrGHgIlPna5Mh4jz7BV5jCbQneXNFurQcKoolaaAjHtgSBfOIuA==", - "requires": { - "entities": "^1.1.2" - } - }, "anymatch": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", @@ -712,11 +704,6 @@ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" - }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -725,7 +712,8 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true }, "eslint": { "version": "6.8.0", @@ -1055,11 +1043,6 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, - "figlet": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.3.0.tgz", - "integrity": "sha512-f7A8aOJAfyehLJ7lQ6rEA8WJw7kOk3lfWRi5piSjkzbK5YkI5sqO8eiLHz1ehO+DM0QYB85i8VfA6XIGUbU1dg==" - }, "figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", @@ -1251,21 +1234,6 @@ "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", "dev": true }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - } - } - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -2008,11 +1976,6 @@ "callsites": "^3.0.0" } }, - "parent-require": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parent-require/-/parent-require-1.0.0.tgz", - "integrity": "sha1-dGoWdjgIOoYLDu9nMssn7UbDKXc=" - }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -2834,53 +2797,6 @@ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true }, - "yargonaut": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/yargonaut/-/yargonaut-1.1.4.tgz", - "integrity": "sha512-rHgFmbgXAAzl+1nngqOcwEljqHGG9uUZoPjsdZEs1w5JW9RXYzrSvH/u70C1JE5qFi0qjsdhnUX/dJRpWqitSA==", - "requires": { - "chalk": "^1.1.1", - "figlet": "^1.1.1", - "parent-require": "^1.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, "yargs": { "version": "15.3.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", diff --git a/package.json b/package.json index ead5f27..1c87862 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,6 @@ "author": "sagarkarira1992@gmail.com", "license": "ISC", "dependencies": { - "ansi-to-html": "^0.6.14", "axios": "^0.19.2", "chalk": "^3.0.0", "cli-table3": "^0.5.1", @@ -40,7 +39,6 @@ "morgan": "^1.9.1", "node-cache": "^5.1.0", "strip-ansi": "^6.0.0", - "yargonaut": "^1.1.4", "yargs": "15.3.1" }, "devDependencies": { From 79b91bbaca323f676292a0983e653788fe73a608 Mon Sep 17 00:00:00 2001 From: sagark Date: Fri, 20 Mar 2020 19:36:24 +0530 Subject: [PATCH 32/86] added back yargonaut --- bin/index.js | 2 + package-lock.json | 1025 ++++----------------------------------------- package.json | 1 + 3 files changed, 78 insertions(+), 950 deletions(-) diff --git a/bin/index.js b/bin/index.js index e794c9a..9fd604a 100755 --- a/bin/index.js +++ b/bin/index.js @@ -1,5 +1,7 @@ #!/usr/bin/env node +// eslint-disable-next-line no-unused-vars +const yargonaut = require('yargonaut').style('green'); const yargs = require('yargs'); const chalk = require('chalk'); const { getCompleteTable } = require('../lib/corona'); diff --git a/package-lock.json b/package-lock.json index 583635f..131c88a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,78 +4,6 @@ "lockfileVersion": 1, "requires": true, "dependencies": { - "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "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" - } - } - } - }, "@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", @@ -96,30 +24,6 @@ "negotiator": "0.6.2" } }, - "acorn": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", - "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", - "dev": true - }, - "acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", - "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", - "dev": true - }, - "ajv": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", - "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, "ansi-align": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", @@ -129,23 +33,6 @@ "string-width": "^2.0.0" } }, - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "dev": true, - "requires": { - "type-fest": "^0.11.0" - }, - "dependencies": { - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true - } - } - }, "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", @@ -170,26 +57,11 @@ "picomatch": "^2.0.4" } }, - "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" - } - }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true - }, "axios": { "version": "0.19.2", "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", @@ -336,12 +208,6 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, "camelcase": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", @@ -363,12 +229,6 @@ "supports-color": "^7.1.0" } }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, "chokidar": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz", @@ -397,15 +257,6 @@ "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", "dev": true }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, "cli-table3": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", @@ -445,12 +296,6 @@ } } }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", - "dev": true - }, "cliui": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", @@ -632,12 +477,6 @@ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, "defaults": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", @@ -656,15 +495,6 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, "dot-prop": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", @@ -712,240 +542,7 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "eslint": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.10.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.14", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.3", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", - "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "strip-json-comments": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", - "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", - "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" - } - } - } - }, - "eslint-scope": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", - "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", - "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", - "dev": true - }, - "espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.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.1.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.1.0.tgz", - "integrity": "sha512-MxYW9xKmROWF672KqjO75sszsA8Mxhw06YFeS5VHlB98KDHbOSurm3ArsjO60Eaf3QmGMCP1yn+0JQkNLo/97Q==", - "dev": true, - "requires": { - "estraverse": "^4.0.0" - } - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "dev": true, - "requires": { - "estraverse": "^4.1.0" - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "etag": { "version": "1.8.1", @@ -1014,52 +611,10 @@ } } }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", - "dev": true, - "requires": { - "flat-cache": "^2.0.1" - } + "figlet": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.3.0.tgz", + "integrity": "sha512-f7A8aOJAfyehLJ7lQ6rEA8WJw7kOk3lfWRi5piSjkzbK5YkI5sqO8eiLHz1ehO+DM0QYB85i8VfA6XIGUbU1dg==" }, "fill-range": { "version": "7.0.1", @@ -1103,23 +658,6 @@ "path-exists": "^4.0.0" } }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "dev": true, - "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - } - }, - "flatted": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", - "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", - "dev": true - }, "follow-redirects": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", @@ -1138,12 +676,6 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, "fsevents": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", @@ -1151,12 +683,6 @@ "dev": true, "optional": true }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -1168,20 +694,6 @@ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, "glob-parent": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", @@ -1200,15 +712,6 @@ "ini": "^1.3.4" } }, - "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, - "requires": { - "type-fest": "^0.8.1" - } - }, "got": { "version": "6.7.1", "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", @@ -1234,6 +737,21 @@ "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", "dev": true }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + } + } + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -1264,27 +782,11 @@ "safer-buffer": ">= 2.1.2 < 3" } }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "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": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", - "dev": true - }, - "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "dev": true }, "import-lazy": { "version": "2.1.0", @@ -1298,16 +800,6 @@ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", @@ -1319,61 +811,6 @@ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true }, - "inquirer": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", - "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", - "cli-cursor": "^3.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.15", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.5.3", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "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.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, "ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -1455,12 +892,6 @@ "path-is-inside": "^1.0.1" } }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, "is-redirect": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", @@ -1485,34 +916,6 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "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": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, "latest-version": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", @@ -1522,16 +925,6 @@ "package-json": "^4.0.0" } }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -1698,12 +1091,6 @@ "mime-db": "1.43.0" } }, - "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 - }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -1719,15 +1106,6 @@ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, - "mkdirp": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.3.tgz", - "integrity": "sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "moment": { "version": "2.24.0", "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", @@ -1760,29 +1138,11 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, "negotiator": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, "node-cache": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/node-cache/-/node-cache-5.1.0.tgz", @@ -1890,44 +1250,6 @@ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -1967,14 +1289,10 @@ "semver": "^5.1.0" } }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } + "parent-require": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parent-require/-/parent-require-1.0.0.tgz", + "integrity": "sha1-dGoWdjgIOoYLDu9nMssn7UbDKXc=" }, "parseurl": { "version": "1.3.3", @@ -1986,12 +1304,6 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, "path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", @@ -2021,24 +1333,12 @@ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, "prepend-http": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", "dev": true }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, "proxy-addr": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", @@ -2060,12 +1360,6 @@ "integrity": "sha512-xsMgrUwRpuGskEzBFkH8NmTimbZ5PcPup0LA8JJkHIm2IMUbQcpo3yeLNWVrufEYjh8YwtSVh0xz6UeWc5Oh5A==", "dev": true }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, "qs": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", @@ -2108,12 +1402,6 @@ "picomatch": "^2.0.7" } }, - "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", - "dev": true - }, "registry-auth-token": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", @@ -2143,49 +1431,6 @@ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "run-async": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz", - "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==", - "dev": true, - "requires": { - "is-promise": "^2.1.0" - } - }, - "rxjs": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", - "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -2295,49 +1540,6 @@ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.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" - } - }, - "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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - } - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -2398,52 +1600,6 @@ "has-flag": "^4.0.0" } }, - "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "dev": true, - "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, "term-size": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", @@ -2453,33 +1609,12 @@ "execa": "^0.7.0" } }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, "timed-out": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", "dev": true }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -2503,27 +1638,6 @@ "nopt": "~1.0.10" } }, - "tslib": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", - "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", - "dev": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - }, "type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -2643,15 +1757,6 @@ } } }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, "url-parse-lax": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", @@ -2666,12 +1771,6 @@ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, - "v8-compile-cache": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", - "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", - "dev": true - }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -2708,12 +1807,6 @@ "string-width": "^2.1.1" } }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, "wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -2754,21 +1847,6 @@ } } }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } - }, "write-file-atomic": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", @@ -2797,6 +1875,53 @@ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true }, + "yargonaut": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/yargonaut/-/yargonaut-1.1.4.tgz", + "integrity": "sha512-rHgFmbgXAAzl+1nngqOcwEljqHGG9uUZoPjsdZEs1w5JW9RXYzrSvH/u70C1JE5qFi0qjsdhnUX/dJRpWqitSA==", + "requires": { + "chalk": "^1.1.1", + "figlet": "^1.1.1", + "parent-require": "^1.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + } + } + }, "yargs": { "version": "15.3.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", diff --git a/package.json b/package.json index 1c87862..d0d0260 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,7 @@ "morgan": "^1.9.1", "node-cache": "^5.1.0", "strip-ansi": "^6.0.0", + "yargonaut": "^1.1.4", "yargs": "15.3.1" }, "devDependencies": { From 25ed3ef7734cb4b95383edf60d2e92897b2c828d Mon Sep 17 00:00:00 2001 From: sagark Date: Fri, 20 Mar 2020 19:49:45 +0530 Subject: [PATCH 33/86] update package-lock file --- package-lock.json | 931 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 931 insertions(+) diff --git a/package-lock.json b/package-lock.json index 131c88a..8a35247 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,6 +4,78 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "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" + } + } + } + }, "@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", @@ -24,6 +96,30 @@ "negotiator": "0.6.2" } }, + "acorn": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", + "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", + "dev": true + }, + "acorn-jsx": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", + "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", + "dev": true + }, + "ajv": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, "ansi-align": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", @@ -33,6 +129,23 @@ "string-width": "^2.0.0" } }, + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } + } + }, "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", @@ -57,11 +170,26 @@ "picomatch": "^2.0.4" } }, + "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" + } + }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, "axios": { "version": "0.19.2", "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", @@ -208,6 +336,12 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, "camelcase": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", @@ -229,6 +363,12 @@ "supports-color": "^7.1.0" } }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, "chokidar": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz", @@ -257,6 +397,15 @@ "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", "dev": true }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, "cli-table3": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", @@ -296,6 +445,12 @@ } } }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, "cliui": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", @@ -477,6 +632,12 @@ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, "defaults": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", @@ -495,6 +656,15 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, "dot-prop": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", @@ -544,6 +714,238 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, + "eslint": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", + "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^7.0.0", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.14", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.3", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "strip-json-comments": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", + "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", + "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" + } + } + } + }, + "eslint-scope": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", + "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", + "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", + "dev": true + }, + "espree": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.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.1.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.1.0.tgz", + "integrity": "sha512-MxYW9xKmROWF672KqjO75sszsA8Mxhw06YFeS5VHlB98KDHbOSurm3ArsjO60Eaf3QmGMCP1yn+0JQkNLo/97Q==", + "dev": true, + "requires": { + "estraverse": "^4.0.0" + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", @@ -611,11 +1013,58 @@ } } }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, "figlet": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.3.0.tgz", "integrity": "sha512-f7A8aOJAfyehLJ7lQ6rEA8WJw7kOk3lfWRi5piSjkzbK5YkI5sqO8eiLHz1ehO+DM0QYB85i8VfA6XIGUbU1dg==" }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "requires": { + "flat-cache": "^2.0.1" + } + }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -658,6 +1107,23 @@ "path-exists": "^4.0.0" } }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + } + }, + "flatted": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", + "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", + "dev": true + }, "follow-redirects": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", @@ -676,6 +1142,12 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, "fsevents": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", @@ -683,6 +1155,12 @@ "dev": true, "optional": true }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -694,6 +1172,20 @@ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, "glob-parent": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", @@ -712,6 +1204,15 @@ "ini": "^1.3.4" } }, + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, "got": { "version": "6.7.1", "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", @@ -782,12 +1283,28 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "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": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", "dev": true }, + "import-fresh": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, "import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", @@ -800,6 +1317,16 @@ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", @@ -811,6 +1338,46 @@ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true }, + "inquirer": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", + "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.15", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.5.3", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "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.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + } + } + }, "ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -892,6 +1459,12 @@ "path-is-inside": "^1.0.1" } }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, "is-redirect": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", @@ -916,6 +1489,34 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "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": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, "latest-version": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", @@ -925,6 +1526,16 @@ "package-json": "^4.0.0" } }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -1091,6 +1702,12 @@ "mime-db": "1.43.0" } }, + "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 + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -1106,6 +1723,15 @@ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, + "mkdirp": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.3.tgz", + "integrity": "sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, "moment": { "version": "2.24.0", "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", @@ -1138,11 +1764,29 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, "negotiator": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, "node-cache": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/node-cache/-/node-cache-5.1.0.tgz", @@ -1250,6 +1894,44 @@ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -1289,6 +1971,15 @@ "semver": "^5.1.0" } }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, "parent-require": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parent-require/-/parent-require-1.0.0.tgz", @@ -1304,6 +1995,12 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, "path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", @@ -1333,12 +2030,24 @@ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, "prepend-http": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", "dev": true }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, "proxy-addr": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", @@ -1360,6 +2069,12 @@ "integrity": "sha512-xsMgrUwRpuGskEzBFkH8NmTimbZ5PcPup0LA8JJkHIm2IMUbQcpo3yeLNWVrufEYjh8YwtSVh0xz6UeWc5Oh5A==", "dev": true }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, "qs": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", @@ -1402,6 +2117,12 @@ "picomatch": "^2.0.7" } }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "dev": true + }, "registry-auth-token": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", @@ -1431,6 +2152,49 @@ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-async": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz", + "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==", + "dev": true, + "requires": { + "is-promise": "^2.1.0" + } + }, + "rxjs": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", + "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -1540,6 +2304,49 @@ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.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" + } + }, + "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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + } + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -1600,6 +2407,52 @@ "has-flag": "^4.0.0" } }, + "table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, "term-size": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", @@ -1609,12 +2462,33 @@ "execa": "^0.7.0" } }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, "timed-out": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", "dev": true }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -1638,6 +2512,27 @@ "nopt": "~1.0.10" } }, + "tslib": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", + "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + }, "type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -1757,6 +2652,15 @@ } } }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, "url-parse-lax": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", @@ -1771,6 +2675,12 @@ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, + "v8-compile-cache": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", + "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", + "dev": true + }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -1807,6 +2717,12 @@ "string-width": "^2.1.1" } }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, "wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -1847,6 +2763,21 @@ } } }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, "write-file-atomic": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", From cab8552d2347cbab7c597c79424091e7b41c5fef Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Thu, 19 Mar 2020 16:27:25 +0200 Subject: [PATCH 34/86] Add GitHub Actions CI --- .github/workflows/test.yml | 30 ++++++++++++++++++++++++++++++ readme.md | 2 +- 2 files changed, 31 insertions(+), 1 deletion(-) 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..5a4ee18 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,30 @@ +name: Tests +on: [push, pull_request] +env: + CI: true + +jobs: + run: + name: Node ${{ matrix.node }} + runs-on: ubuntu-latest + + strategy: + fail-fast: false + + steps: + - name: Clone repository + uses: actions/checkout@v2 + + - name: Set Node.js version + uses: actions/setup-node@v1 + with: + node-version: "12.x" + + - run: node --version + - run: npm --version + + - name: Install npm dependencies + run: npm ci + + - name: Run tests + run: npm test diff --git a/readme.md b/readme.md index f88299c..cad5c45 100644 --- a/readme.md +++ b/readme.md @@ -1,4 +1,4 @@ -# coronavirus-tracker-cli +# coronavirus-tracker-cli [![Build Status](https://github.com/sagarkarira/coronavirus-tracker-cli/workflows/Tests/badge.svg)](https://github.com/sagarkarira/coronavirus-tracker-cli/actions?workflow=Tests) Track The Corona virus from your CLI From 0220b72a7bdfe1e0b32df53978868a8a96b91b49 Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Fri, 20 Mar 2020 16:23:09 +0200 Subject: [PATCH 35/86] Update package-lock.json. --- package-lock.json | 218 ++++++++++++++++++---------------------------- 1 file changed, 83 insertions(+), 135 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8a35247..75207f6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -147,9 +147,9 @@ } }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "ansi-styles": { "version": "4.2.1", @@ -269,6 +269,12 @@ "color-convert": "^1.9.0" } }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -343,10 +349,9 @@ "dev": true }, "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, "capture-stack-trace": { "version": "1.0.1", @@ -414,35 +419,6 @@ "colors": "^1.1.2", "object-assign": "^4.1.0", "string-width": "^2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } } }, "cli-width": { @@ -461,11 +437,6 @@ "wrap-ansi": "^6.2.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, "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", @@ -480,14 +451,6 @@ "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } } } }, @@ -597,14 +560,24 @@ } }, "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "lru-cache": "^4.0.1", + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", "shebang-command": "^1.2.0", "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, "crypto-random-string": { @@ -800,27 +773,6 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -842,12 +794,6 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", @@ -857,12 +803,6 @@ "ansi-regex": "^4.1.0" } }, - "strip-json-comments": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", - "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", - "dev": true - }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -964,6 +904,19 @@ "p-finally": "^1.0.0", "signal-exit": "^3.0.0", "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + } } }, "express": { @@ -1410,8 +1363,7 @@ "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "is-glob": { "version": "4.0.1", @@ -1841,6 +1793,12 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -1969,6 +1927,14 @@ "registry-auth-token": "^3.0.1", "registry-url": "^3.0.3", "semver": "^5.1.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, "parent-module": { @@ -2106,6 +2072,14 @@ "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + } } }, "readdirp": { @@ -2206,9 +2180,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, "semver-diff": { @@ -2218,6 +2192,14 @@ "dev": true, "requires": { "semver": "^5.0.3" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, "send": { @@ -2356,23 +2338,15 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, "requires": { "ansi-regex": "^3.0.0" } @@ -2385,6 +2359,13 @@ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { "ansi-regex": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + } } }, "strip-eof": { @@ -2394,9 +2375,9 @@ "dev": true }, "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", + "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", "dev": true }, "supports-color": { @@ -2733,11 +2714,6 @@ "strip-ansi": "^6.0.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, "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", @@ -2752,14 +2728,6 @@ "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } } } }, @@ -2871,11 +2839,6 @@ "yargs-parser": "^18.1.1" }, "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, "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", @@ -2890,14 +2853,6 @@ "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } } } }, @@ -2908,13 +2863,6 @@ "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - } } } } From 00a035a02636fb4b07f040d99a30bd36fa1b000f Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Fri, 20 Mar 2020 09:25:16 +0200 Subject: [PATCH 36/86] Switch to RegExp.test We only need a boolean --- app.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/app.js b/app.js index bbbab6c..c896f1e 100644 --- a/app.js +++ b/app.js @@ -8,6 +8,7 @@ const { getLiveUpdates } = require('./lib/reddit.js'); const app = express(); const port = process.env.PORT || 3001; +const IS_CURL_RE = /\bcurl\b/gim; function errorHandler(error, res) { console.error(error); @@ -24,7 +25,7 @@ app.use((req, res, next) => { }); app.get('/', (req, res) => { - const isCurl = req.headers['user-agent'].match(/\bcurl\b/gim) !== null; + const isCurl = IS_CURL_RE.test(req.headers['user-agent']); const format = req.query.format ? req.query.format : ''; const minimal = req.query.minimal === 'true'; const emojis = req.query.emojis === 'true'; @@ -43,8 +44,9 @@ app.get('/', (req, res) => { }); app.get('/updates', (req, res) => { + const isCurl = IS_CURL_RE.test(req.headers['user-agent']); const format = req.query.format ? req.query.format : ''; - const isCurl = req.headers['user-agent'].match(/\bcurl\b/gim) !== null; + if (format.toLowerCase() === 'json') { return getLiveUpdates({ json: true, isCurl }).then(result => { return res.json(result); @@ -58,10 +60,11 @@ app.get('/updates', (req, res) => { app.get('/:country', (req, res) => { const { country } = req.params; - const isCurl = req.headers['user-agent'].match(/\bcurl\b/gim) !== null; + const isCurl = IS_CURL_RE.test(req.headers['user-agent']); const format = req.query.format ? req.query.format : ''; const minimal = req.query.minimal === 'true'; const emojis = req.query.emojis === 'true'; + if (!country || country.toUpperCase() === 'ALL') { if (format.toLowerCase() === 'json') { return getJSONData().then(result => { From 14e7c4a3f628250eca5dc4a35bc1593c2073ce8c Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Fri, 20 Mar 2020 17:04:55 +0200 Subject: [PATCH 37/86] now.json: fix indentation --- now.json | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/now.json b/now.json index 0571a9d..a684be2 100644 --- a/now.json +++ b/now.json @@ -1,23 +1,23 @@ { "version": 2, "builds": [ - { - "src": "*.js", - "use": "@now/node" - } + { + "src": "*.js", + "use": "@now/node" + } ], "routes": [ - { - "headers": { - "Access-Control-Allow-Origin": "*", - "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", - "Access-Control-Allow-Headers": "X-Requested-With, Content-Type, Accept" - }, - "src": "/.*", - "dest": "/app.js" - } + { + "headers": { + "Access-Control-Allow-Origin": "*", + "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", + "Access-Control-Allow-Headers": "X-Requested-With, Content-Type, Accept" + }, + "src": "/.*", + "dest": "/app.js" + } ], "env": { - "VERSION": "1.0.0" + "VERSION": "1.0.0" } -} \ No newline at end of file +} From 0ffa5b20a3dcae1ba6764a68ed4c2a388b1c3c7b Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Fri, 20 Mar 2020 17:06:00 +0200 Subject: [PATCH 38/86] Add new screenshot. --- preview.png | Bin 0 -> 142905 bytes readme.md | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 preview.png diff --git a/preview.png b/preview.png new file mode 100644 index 0000000000000000000000000000000000000000..505234629c80d386781f66e5001d63a5e259b5fe GIT binary patch literal 142905 zcmZs?Ra6{p(=|*WKnNj_8`r_z-3NCkSdhUbI0To$U4lb!2<{HS-JReX++7A{hL7hx z_>caxuI^s7s;YO@+O^l!k!mWk7$1o~A|N1O$jeD-ARxSlBOoA!d_a1;gVKY!_GTcc zDSefupr8;D5fK&Q6X)kr2ZhAdhk^(|%UuIS%RvIu7 zejz$$Ee38p74uhN;qPR4t{hy6|NUpq$!5tf7|F%egN&BK$z=o-@#PmR+kZXFWgYwuwERRk!ns;;A=sHiF{CL*b* zqp2b%EiNKuW)oBTdwPFyW8><4>2$L#*WcLotE8l1fK_tO)@WXFxQz%o-uT2WI< zT3$jzLR?%N2m}gCh$w4`>gtQ?tB5JSxzQBT(bExD5H$c9D(iYA)s0jXWc+fJ5VA=g zY|7Tux6yWrNvv$?-xv{9v(@t{H3)04j%%`x%r^buEh3?>=A3Kk7o}vKY-D3CZWL<@ z&I(MIt7}yl9F^agR+w*;sS1?{v5?oX5-Du%8=vf*8L4kCi!S}?-ddZT@k38k*0Ew> za(HfWer|HQFW*W=R9@ZM*}%!qJ~756Ce10(Ur*Oi-#@?toMi1}t|Fi5mTG4f>8hy` zZelUS!rsopR>RIY&CDumDyWmlYg57F*~$B(kl)-_$g`Hu%t6E}t+r)te{*wwX`wPC zzqK(ZU~!|}Lq#;^yJqwFd~ZipP~}uc@2ZARt-eR9bBIh=wp3-2oZb(~t?OWwGso{OlOkG+$_ zaK3x{OoxM&spVH=n|2=c0KNc6&|+Q4$nKoCkMCf*O}M|5Q9h4llz?w|Lfp@U$@ANt z-Cgi3H@}h8$<5vK;|cr~E~qLaq^l?RRZY<2Cx2KNpSuBHRTp=E9&eDjkZlluDfPSq(>x2y+_NM6Ih{Nm4cr^++|zU1leOG63EZnAyd||lUPaH@Uoa358Smt! z#J_sJJ4*|7zaz&A)u+ai46f{Y)z>a&J_# zqm9(;AN<`c`&RLF@lT<4f1+)xpC*R+M^PiS38&qsLe2WAvZA1{kDFSBMsP7GT0yXv zgoURr`q4JD1_Srbt4+g2Y>V+}s~dO0EA%r14ZzD|&TKwbGk;BW8`>8)IdMJ%aNQX_+5xekR%o@IFb-GyLNQC7l2HpiLS7ZZ#$5lUl9RqGl$0ZI`9%79<-7G!2c|!oEs#F6l8YuW$F8WUw>AK|~&%bHeA=+DmfRj&}mvdX_ zB7-C`8j0O0CG#z4-;RtA=?TXZJ+9iW%&L67Og`s61m>?g9GGuQEBuI?zfFXWOr;$0 zR`-kbl>8ggF#yP~`N3Xmd`UR`$*RUs^pH00@=pq!8WQ;>=gbV_etbHJj0*wOtse+6 z$QpRKg3E=T6e^BN1E0qD0SyV#tQ7@HzeA_Ex8EIGLaCQcI$En#Ca#CY*+h7Onzvns zsVzu%T(Q) z>rx%RF+NVRM_)bw8!+`Hk{-^teQP7PI{I}#T-z=QpGqe;E`y_;b_((jb2SWuV%vYI zCd>#QGpU!9HTRx(G*!`&h5&b;SL1V!JLCi)+I`Ty6jSTKcOnzF`_3&(c3lHsmO2kh z;qQ0eRWwgLE_dF+Y*J5m&bLcw{fpHN4i|6j#z9zY4(-YlbZqT9c2{1v2YyV!%;l<{ ztPuN8N3y0kYb-5UX#dc2Cr*+kbz-AY74Db+21q^y3$OTEyK?Mba%0AtFBx=;I*Ov1 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

eRul^s_M>;s8^1P7rySH zdFuW7P^-tCmB{F!^c+|W?3w@$i$!6_d!3`z1I>P*E`?Z-lq}!#{j}ym1yxFj!vizT zQ3q=PO+LAc7WH8i71d$kmU3nUh{B0WRI?)-^Ywspc1w^?S!=RfjL0HZ@aC3Ca!8>p zYF_6Anik5Ac(ak=-Ri@*uEV3CMJf85aSUT{NZ-=^-XP?m^?m#5lG-#r4r=)fETWWL zk?wb0Yo^N#Z37^86Z6s1y7b8GaNg4qx$N*eUjOQyAx-aoGrNd*Tgs{>jf!)_khDh6YtQ$dMf_Ou8jzF~a3z8JIoZp0Mm|mkT1HTo z;vH1;eg|SLQ@Iab;7!|R3h4kR{{+t`{v`I8g&)7XT$j?1vbX528LQeZM`i6okkxw* zW6rhLvZuED-35~FH#cv4%$s;Aojpou-MYg#Zy#%Vn172F=1AKB{ZS@i)aw@MNug@4 z`lRu_J)RovN?b`Gy2JGz25xFyKeChcqCi_a4g`N|h3R?YaW z=u`ilQ@RIzmy~{tdjnudn$#njz^%{v1j5aW_ph*BI$?q96~Z|7>1jMfov_~z^6-nj z^@fc0!Q4wrf7b+l=X?|o9|RzIBtwU5dirL(d@TH*`_~lr1z37SBzl&`ZGakkV>R48 z?l(>zF5mxj)i6o*d?y+DGELI+&y@KUj9x2<*^Ws}pI$kv%0Dh6J<@vU6qwYZQg-ov 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 literal 0 HcmV?d00001 diff --git a/readme.md b/readme.md index cad5c45..d120398 100644 --- a/readme.md +++ b/readme.md @@ -4,7 +4,7 @@ Track The Corona virus from your CLI ## Screenshot - +Preview ## CURL @@ -20,7 +20,7 @@ curl https://corona-stats.online curl https://corona-stats.online/ ``` -where \ can be country name or its ISO code. +where \ can be a country name or its ISO code. * US: `curl https://corona-stats.online/US` * Italy: `curl https://corona-stats.online/Italy` From 90d0ebdd05754c5696d5547f143c33ffc88f0718 Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Fri, 20 Mar 2020 17:23:51 +0200 Subject: [PATCH 39/86] Change Cache-Control header Switch to `public, max-age=0, must-revalidate` since this should cover more cases out there --- app.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app.js b/app.js index bbbab6c..fe1ef39 100644 --- a/app.js +++ b/app.js @@ -12,14 +12,14 @@ const port = process.env.PORT || 3001; function errorHandler(error, res) { console.error(error); return res.send(` - I am sorry. Something went wrong. Please report it \n + I am sorry. Something went wrong. Please report it\n ${error.message} `); } app.use(morgan(':remote-addr :remote-user :method :url :status :res[content-length] - :response-time ms')); app.use((req, res, next) => { - res.setHeader('Cache-Control', 'no-cache'); + res.setHeader('Cache-Control', 'public, max-age=0, must-revalidate'); next(); }); From 05c59aa44156e34bf2ea34cec9e3a65d27112465 Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Fri, 20 Mar 2020 17:25:05 +0200 Subject: [PATCH 40/86] Set `json escape` to true --- app.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app.js b/app.js index bbbab6c..8ab7df7 100644 --- a/app.js +++ b/app.js @@ -17,6 +17,8 @@ function errorHandler(error, res) { `); } +app.set('json escape', true); + app.use(morgan(':remote-addr :remote-user :method :url :status :res[content-length] - :response-time ms')); app.use((req, res, next) => { res.setHeader('Cache-Control', 'no-cache'); From 44a124a9aa0bbff8ec90cfe00e3bdf2b4c232234 Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Fri, 20 Mar 2020 13:09:55 +0200 Subject: [PATCH 41/86] Deduplicate code. --- lib/byCountry.js | 43 ++++--------------------------------------- lib/corona.js | 44 +++++--------------------------------------- lib/helpers.js | 39 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 48 insertions(+), 78 deletions(-) diff --git a/lib/byCountry.js b/lib/byCountry.js index cc3567b..7f50d05 100644 --- a/lib/byCountry.js +++ b/lib/byCountry.js @@ -2,8 +2,8 @@ const Table = require('cli-table3'); const _ = require('lodash'); const helpers = require('./helpers'); const api = require('./api'); -const stripAnsi = require('strip-ansi'); const { + extraStats, getConfirmed, getActive, getDeaths, @@ -11,13 +11,11 @@ const { getMortalityPer, getRecoveredPer, getEmoji, - calActive, - calMortalityPer, - calRecoveredPer, getOneDayChange, getOneWeekChange, getTotalStats, footer, + htmlTemplate, } = require('./helpers'); function getDataByState(confirmed, deaths, recovered) { @@ -51,16 +49,6 @@ function getDataByState(confirmed, deaths, recovered) { return _.sortBy(countryArr, (o) => -o.confirmed); } -function extraStats(dataArr) { - return dataArr.map(obj => ({ - ...obj, - active: calActive(obj), - mortalityPer: calMortalityPer(obj), - recoveredPer: calRecoveredPer(obj), - }) - ); -} - exports.getJSONData = async () => { const data = await api.getCoronaData(); const { confirmed, deaths, recovered } = data; @@ -134,30 +122,7 @@ exports.getCountryTable = async ({ } const { lastUpdated } = countryData[0]; - if (!isCurl) { - const template = ` - - - - - Coronavirus Tracker - - - -

${table.toString() + footer(lastUpdated)}
- - `; - return stripAnsi(template); - } + const ret = table.toString() + footer(lastUpdated); - return table.toString() + footer(lastUpdated); + return isCurl ? ret : htmlTemplate(ret); }; diff --git a/lib/corona.js b/lib/corona.js index 8b3fb73..48c3ece 100644 --- a/lib/corona.js +++ b/lib/corona.js @@ -2,8 +2,9 @@ const Table = require('cli-table3'); const _ = require('lodash'); const helpers = require('./helpers'); const api = require('./api'); -const stripAnsi = require('strip-ansi'); + const { + extraStats, getCountry, getConfirmed, getActive, @@ -12,13 +13,11 @@ const { getMortalityPer, getRecoveredPer, getEmoji, - calActive, - calMortalityPer, - calRecoveredPer, getOneDayChange, getOneWeekChange, getTotalStats, footer, + htmlTemplate, } = require('./helpers'); function getDataByCountry(confirmed, deaths, recovered) { @@ -67,16 +66,6 @@ function getDataByCountry(confirmed, deaths, recovered) { return _.sortBy(countryArr, (o) => -o.confirmed); } -function extraStats(dataArr) { - return dataArr.map(obj => ({ - ...obj, - active: calActive(obj), - mortalityPer: calMortalityPer(obj), - recoveredPer: calRecoveredPer(obj), - }) - ); -} - exports.getCompleteTable = async ({ isCurl = true, emojis = false, @@ -139,30 +128,7 @@ exports.getCompleteTable = async ({ ] }); const { lastUpdated } = countryData[0]; - if (!isCurl) { - const template = ` - - - - - Coronavirus Tracker - - - -
${table.toString() + footer(lastUpdated)}
- - `; - return stripAnsi(template); - } + const ret = table.toString() + footer(lastUpdated); - return table.toString() + footer(lastUpdated); + return isCurl ? ret : htmlTemplate(ret); }; diff --git a/lib/helpers.js b/lib/helpers.js index 5160537..50cd703 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -4,6 +4,7 @@ const emojiFlags = require('emoji-flags'); const _ = require('lodash'); const moment = require('moment'); const lookup = require('country-code-lookup'); +const stripAnsi = require('strip-ansi'); const e = exports; e.getCountry = (country) => { @@ -222,3 +223,41 @@ e.getTableHeaders = (emojis, secondColumnName) => { ]; return head; }; + +e.extraStats = (dataArr) => { + return dataArr.map(obj => { + return { + ...obj, + active: e.calActive(obj), + mortalityPer: e.calMortalityPer(obj), + recoveredPer: e.calRecoveredPer(obj) + }; + }); +}; + +e.htmlTemplate = (body) => { + const template = ` + + + + + Coronavirus Tracker + + + +
${body}
+ + +`; + + return stripAnsi(template); +}; From 8ea5b7e57c878b87df97d66e78d072383f63c707 Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Fri, 20 Mar 2020 17:51:06 +0200 Subject: [PATCH 42/86] Update index.js This just requires yargonaut without assigning it to a variable, which also works --- bin/index.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/bin/index.js b/bin/index.js index 9fd604a..f6c7d8a 100755 --- a/bin/index.js +++ b/bin/index.js @@ -1,7 +1,6 @@ #!/usr/bin/env node -// eslint-disable-next-line no-unused-vars -const yargonaut = require('yargonaut').style('green'); +require('yargonaut').style('green'); const yargs = require('yargs'); const chalk = require('chalk'); const { getCompleteTable } = require('../lib/corona'); From 6fa55aee281c00311d923e9d2e232d0cd1309993 Mon Sep 17 00:00:00 2001 From: Steven Date: Fri, 20 Mar 2020 12:17:25 -0400 Subject: [PATCH 43/86] Add FORCE_COLOR=1 for chalk colors --- now.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/now.json b/now.json index a684be2..1d49721 100644 --- a/now.json +++ b/now.json @@ -18,6 +18,7 @@ } ], "env": { - "VERSION": "1.0.0" + "VERSION": "1.0.0", + "FORCE_COLOR": "1" } } From bd88702f0bca77f3a9f719586d93e25fc2858d80 Mon Sep 17 00:00:00 2001 From: sagark Date: Fri, 20 Mar 2020 22:12:13 +0530 Subject: [PATCH 44/86] moving cache control header back to no-cache --- app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app.js b/app.js index 7aabfaa..5cb0e57 100644 --- a/app.js +++ b/app.js @@ -22,7 +22,7 @@ app.set('json escape', true); app.use(morgan(':remote-addr :remote-user :method :url :status :res[content-length] - :response-time ms')); app.use((req, res, next) => { - res.setHeader('Cache-Control', 'public, max-age=0, must-revalidate'); + res.setHeader('Cache-Control', 'no-cache'); next(); }); From 023bd8c51e14273b4790bff589848dae0546e232 Mon Sep 17 00:00:00 2001 From: Divyanshu Maithani Date: Sat, 21 Mar 2020 00:41:47 +0530 Subject: [PATCH 45/86] Add a nicer looking screenshot --- preview.png | Bin 142905 -> 183017 bytes readme.md | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/preview.png b/preview.png index 505234629c80d386781f66e5001d63a5e259b5fe..ca58a020f9c80e245b54594fcf5709e7de5f052c 100644 GIT binary patch literal 183017 zcmd43cRZWz7e8**sG_J+D@LtaU1kxArYNymS|v)gwW>BjQl+(}HQO37Yn7lzt4P(> zp;nD5txXUKA&HD%JkRGDzwvs$|NgvQN$%vnulu^LbI$cX?{m&|OR%;A@f;RC%*4dR zV|LlZmWk<*J`)p587DjA7ZZooGA1VGOP2N@(ZG3#Ptt*rj$C=iSr^O1{zL*`=wcdQv3C0OmiS#)?W0al9WyvX zndY^!=FYpza^^%_U}eQL(CNUqbEj*)&z`2V(dcyS2AxiK?)mT`lDm9QjLGFXP=)o6rJ;6S z?X--+VJRsoy@1gu7Pp=zP$)cgYOs-Mx((NRBrR{iW* zRmK&nf#LUqZiT7d50w4$CV$<>#3Rr>!1F=YpzEYwNr~r$RK^b~Bmv3KL>`w2t!Ypu42RLUO)MSn9!DP_cNwb8FHPey#z zeV?0^E{JbMzdm;k+v>4&-FxsQ_4Y=aUA+jitSejcL;lk&mp*X*|MrWr3X3wT_8frR z^?1^}P5K^?pTpNYmi+c+6|EesOUm+%^i+nOa0oH6L%U^!eC4~?Gdqriz!zWsCY0UC zd7SY5YyAdcd=F5=@e}fCzp_SfQ*~`z!+wfH?+)4nABzCg79nZf(tb2X}aU;zM{0TR4vS%dmEJvjvujXA2pFmwPW7!(a4v^^qp>FOc@qE0}rE@IvCIDKly$P+D2bX zN;$esJ5V;dl|FoXa7b8qMrFx|vM-F-_-0>0bIcxX*_L?o8RP9w_)=w7(AyE*kE! zZzwdt3tnSYuZ>c(Yfmk!PY;X>giLT=n6zG-NlJNq`M-e@A|vz&fTCTu#PW65Yyh*5+kzPZfKA*avoxwBnrA zO#Gl(NgX{>Iy%t8GfM&w$l5`Vf@OjOMzfG=;;Ta0O}sus7T?}X*v+9RElCAZtp(Q@ ztR{3v7j*K99W2J%poq`rTwRXhB@gfBiZ3P%C5)NaM)v?g;z$nQ(=|+sze4zQsZhkYL2fFFx>}`)JDHwBj{Qfkvt2p^&(Ok z(;!oq6SrvT<1KHccezHd^C>kV6vr?9)M~hs6|!=4w?I7JO)-w5=us@1DZb+YX!}^uruA{LYw`c7muPN^E^}c9pP=96KPJ>{8NxH`cR~0t%20RVyhUB+nfEe*WRi|p=qh} zlMu6TRWug8;}VUz&Y_UGFa7bIDKPpHY7_{?=E&9{h7l3sHJweyNni~ zm;B6er969H>nwBh^Q;0-*oe}1#~D860K4tI+s9|WV-&nA55}3XFTM7sA{-hu>k)X` z8v?a+-w%rpk9r_ci%^_}?^EMu;Y2FvE-hjFiqf3+jScibRLib6fglWw4Nyb@7Yn-3 zD#h>CV>?v5hh%!S+0HX%mJ~5{J<*jpS}`BjMhPl9X554yYxNx8#>lu9Uvl;@bvWV@ zn^+vVa|+e1e8Xx4*@u#vtB&0+A9lo>G!iL@rlRR*t>TRoEp^ zRxarRbr?80MbtuFtG`Xgd2OghbNT$M6n&QlIgRzbg5R zI&%wT5S#nS#N>EtNPs-wQMuEiNlYw;(buQG2RB&MG7H%XKLS2`&{hWCDfTZz(WFJ4!4VwVQVIXyP$b=VQ?8X>zRAxR|9I?f-l;aa&)ghU>-~B=7JV-;g@Hy9 zbmw-3?R`Ep{g(m$b|k&K)x0J_bB|-SXetg~1n}IWu>v=`KU6g+sQFgE8PypWzi~dW z9SYkq?f?K6N8e^3+iir{&%P|u;#|0z*I)J3k(I8)g7vx7K9QKQEwN@tk5EXQ(Y#v6`bEw7S=P6b>&FM#2;$#7jZ4y4$CE7 zhx9x#F9q8(eqGIn&toy*@i++l!0%~d(XKXVdM4)e!Ey;md4NFx zF#7L3$h10@cFvG98jjn?F75kO^G#pi_(*?vtBfk_A3y0u?LbM;hQ<(Zchz3dzMh*c zHUok|`)r*M8j=FZo_Lo57R<2n?TO}zh+j~SDO8V3-7VKp?FBOUTiiD7fclT(0-=OKJ8sih-?A`C}s zBsJPJi%>$Y|9&(CG_I5FbQT^pe1PAy}PC*7=*DY@B#P|hnY|+Z5(6sC4Q1fD^BMZf7*dNb@13w#S%nWw z(F@dE>r9(3A!LByVyXR=xs{?GSPA}|S}f6n7I0)?Lz5oxx_Swc>ahK4Jp-M*O36c^ z1(fG!=?5;6K%O6ms9cn;{*K0LEHWq+A4;f(tK=s5t>%DtHwHC6OQxY(U0Ug$oA4-l z|EB~jklC0@1-*N95Hq3vWUp6$st-`R>ZjoW2JATyWYGOydIl~Yf(P$NFH#chW|SM~ zJx!TZSA2R>aGdtWcK}}X>aBVUCv(Go)Awws*Q`yN_eFE8?ns>6kx|Puu2Tx0+p<%c z%+#r{Kp=cHQqRJFf=Qj#{Khy%4M4YjK2)5PO=^<2Qo%D`)GwDT!_jVCfZ4;AE{aNzP8OKrvhvkz#q8VD|Vz5hq7Cvhr@PM~JD{XuLq z_YNPh8F3Z**{nT4vTyA^;JZoW(amha9-!5wcBt)q<@JH_XKO*D+aooza1T2;^*3Y? zp-QrN#?u0Iu2af>`Cv%JvI2QbzF5$x%|NF|R!WgSrLN&>n_l6{)-yoVfV#fs=@Dpv zR3%TuS~cE12_Ek6nxqJ%GQb47KR_9MM((yv^{pi>UU*8Gkor1HzSBWENBiRKJZ@2j znH`5b&W6B$jsu;+2P>@hYyFJO4dVlfIe(yv*BtAO!RReoakyozOIA^1di{@mzTc|{ zr~dL(Xf105YI-8)w#V{)%ep^><;a;eS%+890VoHVZ$$=frSep}YtBx&y4% zXGJB2P=p&G1L#qfueTD50%U3Hnf+&giMF->1GKk0j5<0k~TjIwwLq_)_}Ve^Be ztd|TA)+dp@+mBypqrLN@kiF5gaB4*@jtu!-u%Chjj!`d#9poO=IS*nh4)5YU$d~a) zdytJ;c>SF)`YKgnpL0{$c9xY5Qzn!vp zZ&^9jdi?orRYup*XG)U15(aa#3n1V{bfo79La~OdykSeUcvLDULpi@1V7t;+Eof0u zcW?Mq-PPCSci!XOm~N6S;AEZth1dHSnT~wcAH(SNUStexPKu}~AG}z`HTF6aqfdh^1&;r*tfS>l8cS9G+mJ)^b=w0|a z(t?hsp%uw%DEKCq9NpxKoAfBIY~e!|aa3*q++RplIJ1DtWyDwO4zPg6DSDi4udUi* zSw?D@sMfBmjQM$)4rt8LbmN%PQ8PP0sXTiaQ_N+sM4MY5Uz-(+Zr*98r3K8wP#kJ* zwWI=Rs~|ZWLMpD3?z(s$uvm8TNzWr5-4y3}Iga@PgfR)TJ?=O_iVNQ@Jej{_WVJX> zsZ%QbtPcExcvX(4Lf}#32kD%(RYG$(A1nXniTDGP_5vJ)&Jc#_?!&R@s^Gd7i}Q3c z6+~!9L}h-rMAPvH!5`!8J98WT7-VdN>hLc09^Etso!=`U_^^DkrsTosgw0I7_R zM%%rTc}sw?tPtXy-IBv}^n!y+=2u9bGQ-_7!dw*41%6?+?0=c6gRI5t@BMh#Z))gv z6!`rf5IS2pj0I9?G2Yz=A-Q*W1YIcGcgb6EQkd@!b-6v-`a6m~%@2>~l8^sxwy1xZBk9H& ztghd((~ZhBqjcX5$5l$#8yBXV@lsBX;!2T8+=Z!^A&umvs|M!X-`>_aFof|LWnj+R zZOyRQE%ojGxcXdRNU#me%?;vWIC1JYl|T^{4*5FUW&TG-3`W%$2Yydz38PjV#gQ?L z+!y-5Y_C?cwt(-c{}s|tD_d{xqn09q(e#~t@K5D|08=^nGGY&^}bbt z(i7iZk4gj|H9aEmsDmYz-4gI{C`&?csX+CD+Zr24Bgw$rs^aa0Kd0VKWZB)-s<#ur zlT<^XqUS49G=oi=G6d!VjFj?wAWOYXPOvXF3`(k((dAC@h)m&F-!dM6kqWU{NRlig zqvrcZYQ>?N;|8dew&M(Gqg@;SBP?Tp@dmP$Ubzc?ozmj>FnJI8a~A$EeQ%Zl$c^)i zqz3XeqfHwf7Jx)F*cfX0L9x;OYy7I z^C{Whi`omu{eFELQFA{A#r6XVjKUW~FkHclS0@J?NI2P4yl12r$RV{_q`?DRp;G{; z&**<58XJ9DN+PkMWB667_1%js+?p@b6~){#g-y@D@g<=PSB}L&xt?0FL&xe&MOd4} zcM2U~-S;xlS98w-gTL@Oxk*y^BtuYEZ3I0iJM$@9G8YnR|EllVjwT7NrA04-ux?C~-GRcKdk8Bx- zpwJt;kaqfc2!r9)CK4Hx1Azs?=p&)X4ueOmN_)anfdvk2>t&nN-o$tGUr>=1(zr%v zuzd}>OOXT^Q(7I-DAV*mWDt{u+CdzedizO+Hz%`7xj7sPOr>CW?4{6>Uew7WNPT;`&FZ~) zQqL>Xa~H-aw_}h!33&n5S)@5eBH zIB_V0r7%EX27a+pddk}llD|8AG1y=GUb&3m&`#>9h6k4n-WVC&L!HhTp1 z=LrLP^8C7XP2xPnzcwHDKpN~B;4Is9sV~NgRK7iP(f6m|zDGW?qx@!rR|oGDVHnfu0}n^=XK{9Z>4xe<&*;6CD1; zBGp()`U&1nf#%|`=lvZjrWZB5pfoS6?o!_~*PZk#_N&`}6!!9WIFkXu-*q^_Yg71V zkGVB-B7S^UM||X3wr{y;N!fax z9ne1{-kr{)HRCfbXVJ6K8it!|%vQO6RwwBAf7BssFG?{1*wv3WOtyG`&ONi)!Lb=L z5viE^&OiQBjKlmxyBJ7uYKAWPC?RPt-6g8DeSv2oQopKeEkEaI-K0YPmYx(R*kD+)XtQz={U0?^ z*KR|pusUM%0#4zMWsZUG$JTJZ8S(9<;?2wb=#HucrxDO#H~khz$0cC!GvrROF~dU9 zkwV-#^^iJ6p%`1r>{CvCIk`#KSR+}{c=_UlYi(l-1HFzz?%X+_O%~Ph=j_9Whq;fe zo2H$;L)Hk9x4J_1h)JENcY~&6n?647`7iBWvuEqkfA&Z{#(N*(!r6r(m^e*~-gNFq z-#SH0Y1dWfh>NpglWXs~i1>Ex3NBxq(aR z#)#ARNPSOi1s#s84=FW8Ud(h)H?FHSUif785jIZb9bC0+JyZ7|rQ>KJp=f_4V*T|q z5$!CtxuSZaac?!o#t@Q{yoISNg_nGGWI-z)APE<6tRiE@3IYltyDK{8YEKOsGqvo0 zdeoMbu@@zz8zm_54+Ly2d~iv>^=M_lk;Piqr?$+ppKUCw`k}R$lS$L)-5$ho%Tl*9 z|5eMD5*g@D`pzldHQ7I$}&n7>v^<-u;@pW?W+lyF{_K@nyBx=Q!T7=f|JxQhBE-VZRNdPO9Ko>$ z(Poj)3U{vmXIcH8jP>&OUnA@v(Fq7abR2>RBy@~aKyFHg=>A2O;&cycEDARVY~q zSoy9-Ta=Gn^Jv8N@qz$zv1W|0k`g}6U~Oeg{aUtWRC4j_?DQ@^v1bJ=5U5XuY?oBl z(qm-zf9)oSZs+_^k;!-BJ4uVEfeWuDYWWAw%_@3;U!~EDotNqN1RZEwP#L2OIK(YR z;KLiz>~lj=CtXqD(PMV?v-ZA|l_rC~#_j|xp2P`TPq>x!CsIrx2m}u-G4B7|FWNZA9Su0S^US1P&*_U#qlG>*8PR^`FL9Ak6$$1LrsQt!q9Z z-7d$LqiH9blCysC=P#bpPF@=)3UZE7JX)aNwose&PA*(iV-ra}db58^IlbfSS#2H@ zpEE510S(;?1Df_a$74%-*ov#3GnwUSuPJB+r$jr7b3(`7e1!kE-AOTp%BvxCDLG-S zArvQ1a6uZqO0ZOp9;eEJVDRrwI=@}GXA)Mh*&zTvq<`Axk=1we61F2Og(kg)E$qe7 zbKEvcA8kWcw$h{Q-`p!YZ}RYP?Jx(#&C6%PTP>qYmCKf_`Y+rRIn4r|C3voy(g`1Z z=&8+U4c|J_9oAiE(I@))`m1@^FsGM#;rL-rV8Qbr_upGWF;1!CPdCzs;=O+nIMBQO z+8TrXf7_CyKmSqsrG$8Jj8oON-%1xcVLYa}GtQWTBpL+O+nuPS3S8?gxwUh#;l~MP2)?3zZYir+ zD|X#A;%Q!!hyCbbUOe`7K5n(P@%!c3*&u3Ae@M=9jIJ)3UHQ$O*SWm#&C#8h&@Wf$ zGkvT7jhO3E?4?oJwlAc8%6Cn^Q2j0sA4x-nTy`bOCL5@_Iy7jXPC6PY_O-ZI>9GCQdEXE4;0MT`uV_8 zmzoV69Jhmed;iO%YOfr1b?>@!bdzDPT`~&-xj9pFvklQ1C`y729^O@qNHZ?drFA_~ z$t*``?~EL8F4r{h_MpWv zm;~27XZfPuTv8(T*Y&%|ocy|dmsJgv{z>WvO1M-@+~1KrssPN|pQU}>E3wp?l^+Mq z4ZfYBZe#ci$|2g%J{!v^^`?krZ?^B}H*AlDfFm}kxjWl-V2l0D_o2GK9@8h)$A_)& z-G9H{0-B0Kv<+vY@r@1hsXxk4utjbQ**tgAfA(#;Dssl>#H0%%Od<{G*MN;qw} zdM_Omw^Q4>vVh?8PcSnuX@V3!Z)lj^6&w-d$0YQ6gANoV1&+iYTV4Z=2_j<* zs3CuDIExlK7M-Fwb(%U~#4QNcc8OXn_3Y%)x+mqo+6}ivMSZE-PJaZaboz;se}>Mg z0*#2Xei4B!o3q(k`7dM3_xHxKOFQ|1Cnczxp(WlmWQWvG=^5nb6m_e8Gx8)D_PnNL zZf-iX2WtiPu5P@RN}U{xl<93-eC0jzg1-0Ty#HL+rLXR(;h~%Ff0L_*aR6OSOqKu5 zpS8b>xAd;RC46@(-9WZDLkU$b`MhC6pN5ryG*6fpL5`zc(Gsbt+BTPoveXxZJ{qNj zb%xR?q}3&-`(}5MfiBR_oS8H${f+F^OjOwQP58Er-xXmh0i00girH@4efg;#_DQw* zayDff6>jx;W2@6;HvVTN-eev1T+2OEFZjLhe8P7Pcg)!IKpwsm+tZ4&a>d8Z(kr9; zU!J@BYJ2d)x#eQ|2-558BCZzz4xRSD+p^h$8QBMJ6^g@Rc)kzH>8KM&u1_M$Ag1fX zTsi~q=5D;jH#ird|O7koX)WR73aG3%1-45!L8u-0| zZ+0Zl>F)sQ)&(67ut2EjU;+Rrz0tS~-$~eb@~h~&dFaohGOq!S68S} zWz;yd^+_LlJ3b996{H+RK>O)7+0~kn87tbg%Ti@KqeDZl)=!B#Dj2hz5s@qU(jj$T zr_ngGG*=v!G*@7<<^GT;!;&gO9Ewv#=$n^O3I{a13Lt{L2yM<_vQpg1eUzp?=U~Ov zAm66`uIPd!_=M{Z%Y1r6zb9Hk-lI9ukcaP1pV5{0Z;EvtO*vPl+;6N+%5e@}>A6Nz z>iZhGv$oR7?v(WRB)&;RL)gMKg4afOHuqZ9sk@$Ptmk5*x_qV zzLQ~R@lVImYF~1+)T8z<%!1S9EzLRFiRk*l?K$^vditbnG(|%qd_in@5C-#tZadB7 zC$yjPH@B<5_<0joJtspOO1fLtGoxg zH}C9*wqBs>xEUK*C7l5uNeleQwwrGG+nuCecwwzv>y?EX)uBa&v-!=So@^V@l%r%1 zjn!Z6>;+_pOyAlM!Z)LHh_vAle2O1T88>=zo&{N9SJrKpj{dwI^_x2%`BTy1x<}?~ z`V>7<$w;&P*Td`*V19VWf^LhEb<;py7;b*`iP-%s*c6n&Q}L*s3nPT_!G8a5IQ^G{ z@!{}a6MUufK*~_V7fq*StX3&@9IdM=_yh~xi(qW8fO^T_3zig7Z$CPCmx>Er9RdL? zXXzb?2Nq}p>gaj*p5&d>P{}-4&;WS2%7ugvnkeKb)A;VFpBFhiKCHhtlas2q=DRxO zjT$sryOZPll1l8{t9&F^vQ)(fjWV9CW_kABwd2v~xjJ3Q(Kc)p-JirY9Wwu0uYIY& zLB59PAHBM=T@qm?HYNDSj~DaUJ&yN|fyZJlQ1JTaquaUL--~s{J)U5~>dpR2bsMnldCDCUey;n6} z`j4%$Fke>5Zq3+x*dllnC9SCc|E=h@^E{ol7^`J@iztDRY*74XAA*Cxf?h@fl zUMMrj$=S!!ryB-mB3_Nm^_$=R89d&9d-}MOZ}yL5zVN{zti@f*Z^Wt=ni@reeHA{G z5N@IOV$v$Ce&_R>uU4P$u8k^rZmTw1=y44QCih`s^f=1T(hUl#W$op3qw~{zfiHVk zacryVuyClJ897l8zQc)AV7tDT)!Z%%SP8pPPvL(Bpp}zi7qnO`E;~k{72mdFsemhh z{T19>_A`{WNJFNY_g{5aE&cRlfF0(olW)c?{B-fvt2+>?Je8;bw8)0|o4&lTx4YgO z2@IRwFEUWO{2NE&x|aWP(b2E%`s$W!>XAqL$&p|4>wb)kSnx*rKTYG_*4~BF;2vqm zigFZ;q>}*Q3(u}FA%mB&GMB(pzI$!M44;#`JA(lZUlQ}p2*fYH{vZ~u0-KGPP2cvv zfA`A`t*E(lWPcPzXGJ5fM7ic|{d|}e`FrT__AXFr{>Ov$YC}yp*-qirV{YMB#(Z%1 z7UGeIb^i2u-= zOp;D_@}16W{ARi}W0V$~@73*1(${D9sD|GI$Rtef!{mEIU!Tzk2N$cL^eWA+(F3p!t2=Qm~IGay4Sv)Db z@A#mJc#0P`Dy050%4gM2dR{BR`*d%DRo-LqGOeR6Gc=zcGEc7l&2$X~qa~W)UiWW? z{YHunU{L5n8wZd6G`UrzFeJ@I0338t-YQ2^BWm>%oXD=TNPe%|A7@(jRBjF!fhXO2Q_jNwWCJj2y&_MNNB)j5Hu( zy{_TjP>~)xq489>c`%J~$TLrhn*_7HtlMX{^vFjD09xki3#sqq71D%Lf0#yHd5%@P zfXxVgzg}-ApXezb_?hF;xFE;t^Z=&Ivioq-_PaCLjbdQrFx<$0rkze@R1IB+wueI65y8clO;;kY zZy7Sp2t*`5TUJw|=wB{|cg0_sYt;MoKwjH`#GJs=G4b zq>ie9`-79%$;m7r2YOS3v}%{nMq6KQf8I_kU4s_-ea&4H#hjO1CpuDEiBr)nkvp;T z=YB_FqxR%#-T?FVdnp>sfqtmVvn_2u{#MOH{&Hz16g%=-fNy10>@BZuv{~;f0UBQi z$Nie*1WBj42d)rblbqch*_DdyI3FS7`H$_zt`n9bD$%B{UJr>j+4r^@D!hw=^-W6H zE2HO)B>-gewuh&JySjJ_NA=1r5P-OUNB~#+>1%H^jPS1hGETjWsYZK}JtHYlsgI!FT0bdD z2?(F4Cr+{{Eawc;zQ0z<>waks88Ak|mznJAsvrLTdp%Mr8uxnH!0TsRMo z-)?a~2zo!aQ1kab_Ow2i9p_{T|CHV$PI)+b*Wd>kl&qVgz~QwWhgbsytcVS_4?PgEa2N-HZY0`t+utj6{WibN1Ik z0G<9pX~44=#D4io9;06E6$N_1V*O*p`MXuuxBFN)hQF0&_$vGUK+{_iwx^XDSWzk7 z+^n8x&}12moSM@?Ty>YqvR3L5;pnHl29@GmV4+}2?ZcJ?hX%J+YphsUM z>M(xG85e0dnz4Wd4~Ki|95MV!zATjTu+f?&$|$|qaTb{RpY zN7@U(Re_5B5rp1jE~VCfd9h`z{bJlJ8s?$!ZHNIcUtK>!r%emSbeM%aOK(?$^C>e5 z2klzP0L{4zhN1CgL4$gj+@1Y%GOWsuLoIbsZKF(LBljtlY$$ zSA^47UOG)Mf|58Gwrq4t%U|2%{-s7{(e|$HY!RZOpM9W{LRmwh3(Mn;hl|tU+#fZE z6LL?!F(FKAsaV%6Cr>MB5&&9LYo{G>5D2@1%;c7v*ft6R6U36asuC0(yZ_7}3|MfY1s2M(XJ|Y!{etjeB z=^Z#_{`%@6oCG405<%Ya;VYRG^T`UC zSY0Iv_bk@-N)Gn9GoFGpc%k_ta%2Yx*}p?u^e1F5hNAakk~>4u^v)+_F@?O`-C6p( z)h4GJFoZfFj1MirXLx8u8@6FK-*1D4F}r|$qQbn=ca33>Y?^))#T{U_Hy!9FJDtQA zX$q^)LWIC^+{grMW9!L$DCOEFQYY}zBep~PTJ67UDf5?6z@7N%&|el1AqdZDRp+n{ z9a6soOe9fH?_I>YKOhymI(-h8$)+B$8okOLE#_|#?jA{320x*l=QR6DdQkc^EdI-0 zox!rsKCjkeYRW$kidlmUr%#9t>C&I5eipp=;zXIE1&v4IjB865ou4CucP^1$4B;@~ z^oHLesPj?3IQUB5?X68~ zsgUijz0@%{ND+;`3B+-4ipp^IoKbT#*hM_{q-kwlvDjSIYd7fl`PZ{?wU1;!?3v=7 zb0U+&Yw^*0fOK92;@-BqQRMQgSb+4LS-aJ2o|020<q5XV~V{UHfxf=1%U?z~IRELcQfftCOT{*IU!(A^B%@B;M^NOBs}13O$lwBOQKc z{?S%0vK_kIwhG{`L(*Mtuph(C*3W{cXoru+FkAu?sbPlo=X~R%rva5ZGuxn2IdX^E_%4Sa&A>k9>njI zpNRlkUoXef`GISZ8T&5=r)A-Kxey+pdi!#EnaRI1)u&mMC0UH1c#DLHUgo>K%+2hb zCKU=R_l&REe0-Piw&+VV(%ezW|FO-NB5k5=@3oN8ZmenJ5Ge00vG2G_ zi%}=)&eCPp_)xAHv~y1CS-On$(5LqMc2kLr5`z6)%r|uzdtaYpF$Q?+qGA}$I)CQ~ zT15}{j_x%wl0Wk5JghViyR{&@fsXoBSOX3_m1>?(jHHdom+3d>jS@3M+B?$`4fLg= zxc3IXE3{9A&jk)kjts|cl%1rSUzq*f51InJbInI?9kW*ZYq=(~u+T}!{j&F)t;*Dm zA~fQnX4zjx{lBL_JB2ewWvLIM#1j>MSbIqLPJTkR!)$eTG3!?|G!M%cJ?lSvG=bgJ4A4F*RP2JNxrC0C zR^=xRl&M&_rPn?9hVozSAAA$DvtVQS?;!nO`Q`r&sEuHe)B@+{x6`@;gdDCI;G@F9@%gzpqEx#3`=J%ZPb!)RiX` z%RXb%H+vBqZ$|#cA16=1R&1+wNAUi|X9dk`nAvdRR-^{nc(@^NU2 zu~Z*o_+Jd+pJ?>2hlCB`Y`@mKIupDxUFciJXx?X;E5Db!u(*=)lE{@b+BKOrZ4;j^ zt;9XMoauT$A!W?%>4AqG!(i7n(T1IqhFxqUkg2&(h5dHw9C8mX=9yB@uh`}1&p=Pa z>2YeVELN52;e@4Z8vmoL%q(jyWxYK6Yy8)qqRtv6hiK$~Uyd$6^VDFcfqzY0!0obv zzV2mPTx5p$+IYH!BT>rmg#b03im*wu5GV${8_g-?MNKU)t!DH?g z1D>e{Q#=DleME zxFB5tU@9js4v>qQTkql+;G5wU!-duxD|8@X{?WtA9KPfm=25O9p04J$P0}KSj4~Ft zvY0UOD@=J)i@&}NT>}PN<{B&}dF?v*OyzRoi#rj;#~!*ScNwzX9K%EYhTFf4;vaV4 z%4Wy}5_o83}S`VmF`XlaVg!gIshl#k*o-Nt9i)7 znX@K(L>*+#ZU_jrJT4Ja_{9iG`NSO8@;ffS!^l-;B2e*3yoFn4TtK05d^Dee@kQ~e zmAdBt7Kbo1E<&ds0uos??azH(l2(YOp( zl#amnskNN4k!chXU&{Q&X@ud3S~===)G^MdPCB3c*w}iEq!VSO_#^-}p{yCzP*)1Z zDGAx_7J9|6OB<~I9|uF!#@(G8VgH0q_)(k@?+`l}vnR_@s@++BhXxMW3f)NnWaKdl zn7F$>@jbe>n*)FSFMvv7HL+ve`h^xfQPG|WDx#fmxxmP+?6&C15In+5^0bed!SFe$ z^(~`#Bd5CaTvHRjKtK-nUj=*@Vqx7~m)@21{;TNq{~<9$L1usdEw8P6Pt#d{&vx;j z5}-W@3$95GTj}qNM#e@CC&{jJ<+%x3%nxg4vWijU2$bunj=p#)5gBdF({oUtfs-ro zvieO-ChwC`j*JSqnax>O#*Xp#0Rr`zJk$lohKAVb9oAE}OQ`cS@BhL$CeC=cU>tih z`}h-UVfv+o3jYs9R1fqPxqmiB?pV3-?<@_*bX z!W7ygUBhdT(xUyoe2F%Esg+UPOv)*CX&S0hbvtLD!l7893=H<^24;~e0;MLN0)QsC zig}Co(gA5K3d!11!u*F~tX1-a9Oar8f8CQ^u)ew0HU9x6eiG3&kg6@?Fy#LYMIp-K z%j~b1H`e{vP9A32Z^F@O@R&C-`y-(5zsJpKmK1<4MX`I^RAbyTI}$ln--!?xAJsYD z9qr1B)DofD%%=m-hz^(W->_uTkGp({U0T34o$o4AL8ETW?)k~m6hM*oDT2KMb)`=( z?drQ1C2V4bQfd&dQyu7&+Mb^PVvA+>|65HL8L*oVW|OCg<>nE!%-OzLQN%R2d`rQ3 zaJ%HIN{b1eOkv|M5W+XllsgJHaD;_(C1QejGLy$@|!N7+2877nY`r)eLNga_@+ z7su9TySP3!`)cZ>t{bfX4pYB}PBwylg)=#E=S<%y<*eCjxQN z6MRqTosgSSI!E24^N65;_zU(1-ThxFHXokIoI3jo9P{L@J)`nk+?(2BPX6?E)HL#x z)lUas!o0CKuL;zgKZhta;IIS&p?zxqFT&mfsHv@8AGaVyr7J~B=tTsi_XMQZP*l1o zy(3j>BEq3JsUjuPMVfR3BqB|k^e!O1mq36dr2KNuoqNCU-v9SMXC^bro;{Pj)?ROY z*7LsW?+w2pCkH;U?EcCx4yvB9SnT7r^<`qktCiJb-#jMyNzEL2u6!yseR*)O?h_h*LmEkWGuDmr-H&W@Tqa#9f67k_K9xRW6i}=TjtpOzo*h z74b)sr>WY5`@{46u3drpp}2P$$+y#C@^;@zL1?vqSR2u6$4-hH6i~iu1FQEf(g^6W z$9QZ`5hbBF9OQu&q(zqe?o-io|Jb}nxKqSNV62{lh06cF%TgGt#Ysp1mB`Qgky-pc zff&eTTw(Lym%QpX85=8FvVTYBF%h&1rep}2zekToZhH`4cgrk|>4(&bzZVu8lHX&p z-OFQ^CjpaZ5s!{NxU_oOVx!XthA2==#|fvFEmt=WH7kd=TsJ7r^bYtV_Qm*}8>t!w zBwPiUsnW?vV)u~FF%8L}-R^G9>w+Fq0+?gL)2?-K=ExReVF3h5YboZERqJf|-vP>h zF#4})x8tuUvgE#(l?&FzCrV4Nu64u5G`bgzqLYQtpq@?!c4|R6g`OS*MJ{=C;~GHM zzz`CrkBy@FaEH}f;EX4o%880k&`@CPMcMBXkx4mrF**BN4=4Mz`-|_;E39%3h)QPx zLnWW;%+W^|<%1so9m(@KNieMdTJrHRl$SsXpH6~yv5Qc%8?dq?2CfrnS>FCtC=jt^ zBXybHQ~+u_p4>2CbJlG`YRt%2^cqPUBOQFBH(AqS%%m?WJR>c^k-;669fYObuT@R{ ztqBkt04f3FtMdT>48jDW6YJ;NCi!+y~aZuIhn7#^&yP9Ma=04H> zc(4^m$IIY`9zsDEAdK1W1GZ@Oj}Ts7qZp0rW!2#+DL}t`pu|XHT_Z49GplCI&!S25L`@H85Wg;xuDnAmXnOCpMkFRPd12W;M zFH;F74-ioey!QYe$n~uh@M9qr^SB>cI%l1kbTn+&-uA1&{ccvO{Kz-SRgFErBS38k{C8-!ze zm?ky=y+cpX62ybiJ0r%XG^~PowVbqt${Rd8nl*hd%I#{j<32xz`fZ?QIg!5PRy&XB zbUPd%7+OpQELGLUM`!V$427Eb_tVar4AA|@KG48eUm-d9U4MMCES+sk4$FOl=4~~i z1ky9+ZF1mg7asT#D{E9FALdFL@s39xZ+Jf;QJ|p6ZsCi1CKgj8i?oY>=)93d$&0I- zAxQ^7H?s6U)`68k!GFK@cNxiGPq&u4Yhw*bgb=TG)2iiI@7 zk7&Td5eLZb0I|FbJ@yZ#YNVv|OJ}V&F(@S4iZTebdF%_{ch=p-vUEM^pks&0q z$<{#~+nMx^ZjMMtu#xi)b*Pd3AL!&iTFs9%ub~mI(!P~=#~jf+{Z}5r#)}1vClXAO z3XY-2u?c@L(e19+oW4oCIz{Os^g4GewsMlhIV)hBHr4w_zP$1nHF<-S7Lh`mG!TuG9!T-LDIHK+Vq3{n2FQV1s*|oRw!*mAU3B}L>DLtve z!E2Q7Q9y*Z;x_@RBsz9#mNO#%bhUGgR#&WOzVDgb7&mHaZLGJN9q{!;O=_#W&n+dA zN$cUbg5mB>wTF?hVsn_RobfUWlepJv$)b?=55i_?V8KfK=L2OFQTKJT0W6`kIz7ef zwR1kV$E;e#AshKf)LQ&_?w+U%k3|p`CFwFg+3*~HozmLe8;(Gnt;|Hvkkuq_gsJ#1 z145z4xXuf*KYxrW6+8(0*Co@J%dSrqRoT<#PHR5d*0g&>AK}HHPl-RMl@*}fDer1q ziT)}J-1&__;&LX@!t99f)x&kogkVTx2K+7|2K2~a|Bhw{@{Ici^KGhh@#5hR&Td?; zSt?^I{14Yf7q$n!f4h?gq@)3DFw(|d$2G)8Q+g!U3;}j4`jHcPXosHQYo|`O&&K|1PJd1=n)VB5 z2nL0=uAR#X$?s4=NoAtH&BQtpX(`8d%J`LdAHjFq3rzCr5*UYnF%XCyJ$jA=YnGVk zRIxVM0GkaJ8z1Pn-2@G#+D%q1K27Ak&+aa6uaPqzQ_*Y@#li(5&p&oer&6;aI3Liy z&EKZozZ0LTD*rZjJEoI9zYaH6IhUgscmDCmX3kNnx!11+a2&H@;Z*%h>9LjSgXaH&Bs%hUZzj_n#Oaq=C{4&Szt5}GBK$)D9FfZj`PGYLQq?4 zZbcImR#%inKjDq!;G>8$G}28|i2$@Al) zMzGbX)4`wrqD1|tC*8e9tSj(4K!MuliIn?GjW-0hEF0DjJ}y|-E^cWO2SFdl*Rtb8 zyvYw~)W<-}bW#GwBX_<%g>2K1KQ2xv4@{r+edw&?SK=XgDtjdY*!$W#8}$C~L)e=n z-DR<_itdzY09Y5yRtVjUnb@LUeuI=cPQU3JY~W|&+9c5!&MVud*LZuL;$Pp;x<;;a zK1-~MqYU;VuiXG!A_V*!2EeR|D){Yx@y7ohSo`mI9;yCeedPC~vq`|}a`)HRnusD6 zeZ1)S88bJQ3(ZVs=cbi+r#Mk8?T%b*ZH#Vi?aFhX7_EWStEFJztYKEnK9452CY9;W z8o5)WfJkY7%nw~lf1RG+SqoE)Q&`=@<-9*P+$1$r`3$Uh6N$u6;yAlpPS#y^3Zf6$ z5*v!%7nL~~?`F%&4Z~g$K5qJp|A_~FtJ5IrMjh~a-YHQDdYxP@?h$^H|FeFWlHeUV zP(xq+e}4b0Ae*GQ_BuY|BBEw3Yu4qI!UHmFZ7&cU37i}2O_FYB<0X@R`MR5-?<1;U zpb1kF7)EE6`@!}Fm{qMdR^2)*E>YinL_<~J_(sb27Rj#?w}`Q0oS z#)X?pZYpZ1JGv=U&9$)1#^c1$R2y&xAlac{{-*+t@Mq(vXJe5=cgzJ-(*m@89_hvX zD!$_sqeMhmL)n5u$F!4^fY{%A+nNF^SR%&?Q#ikEYSmM$c1+Z4TNB3uqnj$SG;)H5 zB~{m)m2W?#n6d$oH_g%{r*;aFg~beXuJbP`pKOuf?fwoVQwETS%L*rK#ACeY-d0#XPYoT`(SS|@;eDA)bnBcny8mz&&kL~#Y0RDGs;ZF+ts0G)I|13tboyH-J z{5M4VpY%#iVpsm*9V%a;G5~<1>sf9RNc*C1XArnS;_27{VJIRg@%5MSOHCrLNQdPr z$=ejnp+1tP=w?h+{;xabu>j-Vf~qq49aDqQC;X1uKD#`Tt%ya~B-wkwzcG3Lvng0z zj?^U9E7!^ zsJEwAqvJLWVO;e67nsjO^j!eFM5NxyE4wLZKw@IIq9!k3@!*E8(sG^F=jnNtQnrBL z={l{0+&}S&phbP%hfJxU)`;cw`oF%q37y^e(+7mU_1%qUEc{EboFz@P?WU(}+ zN94WVcbR$u%k^c^XU!WVj&+0jY7NnE<)X0<7EbN33Ts}W@@o@SGbn#mXZMRsY~sP` zgohsxO7w8g;0QK$NEhN6Eh^{g>h&^dIxNdh47aCO0}7scVFKw*y`e5h6Xo;zd1Q~n zhgqYtVgMVL<-Be56hG;^)E07loUUclWNc4SeH=wmJeN$wY7xMbilJ$dj?FX zFzAC{fGFVF*ct21j!LDyzF;%P!%k#kB#qO9V`^@(th*efZ8dLKmo?G|6Xh?kL@Z$i z!1BFYhxYm(oc;;AY@HlzbKWmhS!k6TG7Q&w@F&-=Q28Orcj?maTlS>` zbK5T}n>~UN_gG5F7(torL8}PAS&N*K%tn|@;t$rg8|F^m*ZqRs1(s#EM0a4f z4i6j;A%Cq&497!@y=C@^X#*PB<;2Tg;bdVwUx4+f7uFJNA>|D+%M>T(9Stkpf-c51 z&ju|t*6?kWTe7p*q9Dk$S&*!E#V$a@L3jYa-sA+XQ9BiEpcr_|O0~-)EI*o}87GtnSr(2MSa!iXe5m~lOkZR6#G&TE`fhzoN50KA z*#=*>qF4`G&YHnsYlkyrT8Nh(EIXv}@tL}(muU>8y6PKeUqF=+=CG_Yv>o!--g5il zw9CjWj04tzi$hL?cn+O;LN)gAqaLhwU!bxmpCbo2Dnp_AP@-pwAGv;c0$^{cN`?p| zIt+tuI}8bZPL`EH!R2Mh%1ZSW;5DisET9P$J5!{e2Vpz*UELggk^DS`1v7!(o_uNMCcqj;W9!&G&4WL{B~Rvl*lZ0TD*WO;ZesU>;R zAz28L1^IQk314dFYK9G6EN`r|Kf>&LqrE0*eet=cC;@OVDh{j zqCoPI8_A+NmsRp^qn~g4;la~q;e?l(PbulBzxx(Dd_Xk~glrXRj>EPV^QuEzE+H+8 zXl4WaQ@hkde>abONBwuHOFA_I-{P|D z`4$Dl@||a*?8;cXQ$;=vX8ocAZ-t8Dw>D673uXHJ`nt^;AvI5Cv^9G*zt8O9%)Ut_ zE2byG&r5RMc>s2Ps#*AJ!6+IZ-B*)LE&VT(h6q@mU2ripmbp1UWphSjb29} z$FC=gCdr(dZk)eI6px$AED3)-%7m7>0U!eY??K5}XwaJVM0ZSlZVTSPWr6!E7slL-MsO2i3xB@#G9@vT7kwCyx`8_||1rvm`iYpj^DLB+=k~vtL zrEj9%>&r?FWuDMqzF7WRmo-7Y%4@w4+9z01*4PLBSq@(Csj-3}n+C^0o2KB#)3+B> zeZH1@J2?o!H-wPqp4EHcwzH$XSI^Rt;>$|d^WtG_$ZE{3tE;HeRt=B4scH@Ywey`EJE9c zlfN9l{d)0pN!kNGa4#19jQJwY&g+XT$a`T2-{cXxF&Mq(5>H6tXYo4xx=edi~S@#aT`_97d{&kz7riN4eGf>eVV@LWSkSS|HY zlvmlF38F3I;3v3wFT`;uNcPh7P^hfiBnS$Fg5?#S#qTB9G{NYOG3^4Bn|L{fpUb94 zEqqITB6=oI*X5@d|e zR(^-5?#oTb0|YcsO!9lUEHC)|D$9Q z{o>w|8SG-zdS{bEg7YPG^b+8p*$t)Qqwa=6{|Tuv!<ByWCLj4) zR+9q>Cg|_XAiT?Ggp11lIC)NbTm~T=NP{{=kGCxMvnfUZ%OR@4nu>R&WPWz>sibh` z9eNRxE^pbNL94~u#KeKAsD0GPpim+8P9`8HV9SdGZ+C#ja-YlpDD_^}Y#oMA;GI8Q z5Ee_T=K=@~;85c~2!6oR&V>n zdNl(RCeP&Fn@#yHvVe{85@?f6m z=r$-0{Z*#S&e0yk`yKPl?$QnhSm=4B1Rhr`RvDc;Z7>Y|;%t}D(OS`$yWVgbK+@rm2ctM77tm>&$@ zJJ&Oa&wSjV-+bxSjHjzuIi|L|OYnh!-^hpNio8TgYo*E)WDJSEg_ukv&n^=8rDI=M zXrCpiRmHVbR-ZU3$7s;L=Mqx4GPVVSz8P{|qx{BGA}SwB+tX(%kLXnxSd&RAi~}sXlczQt9_Y|+$FYu zraGz3YroH6k^f2Yd^5hDf^dl}VcN<^_;mqD5swYq&;&tzv^+HEyfR%RPUdkirhF=p zBXeYHCzU45YZ`pmCdQ`dJAtAaA3T}38)|hI?Vu>=_7{_&LG?M$3_M_OVdE?KL;Z^l zg#z=V-Eke$<^pRQ!uk6S1L@22yqQgYYJx)k4}wZ4-3wR6##%5Ek$xv~bWY_*s6hTt z&7TxL+xs5px|h{Wo{&PMxk_L@yIL3H=CkZeG`J`W3Hc={)cXwJf2BTX5Uy=}X0f1!2O=^O{iofm{xa^B8`6&|T`stgYvc=#|&L zTZ`FC3vD)DGMjHFL&DhSalVzg@VD&@1DDsm+rD;0`QqGuDLSCupm?}W=21#rgu4ep>j_0seA<*sHvSAaudswF1bmL?w^8kpn5ip%Gpt zES}(N1U@C+P@DeK3@i(Tb(UlGu$w^aBIdu^AB9a&6)Sx2kpWY5aQ9BF;}+3mcpL3H z_%__-C6YFhgbwrhu2FfoTgp9>^ExBFo}OrVUc{5WeEAZ!H07EI?D`r9sqYw52H-b` zUe+z52~?}5C#=;4gziTr3*!WUK;9RpP`}XboFlH)BInc-XfD3-7_S#NF0-`~G)DqY zMMfU0on&cUK!y~BGFM@J!Js!%oJ$GKboiNfN1s}qRnGj#q)kOW=70G0(djp+Lox;3 zJYX}U5;wik5aKydytRbjBU}(8BB9mt$1$WG@%?`xw$9Ptw5p)ojUA0FWyq>&5GK&r z?nUK>d)(XTHNl`m^}XJltC5WeuLUL0%-L2@MRk@)B7bFy?kb+=i>#krBGUcUpY~Jw z%(8c;@c41JRL>0Tp(%M;_^;)_ll?C$eso*!QR$uGD&)TG>^FUM;V+k|mQVC=$n9;_ zETH;U(aeC$tC2N^+tQFtPzuh7YIX%ov`Wn0BhZ5({c&c5{X&q6;z{=wvGoycn^9Ad zuFW~s8~QPNgDuj6Br4-Px5|k#8M-2t{ykrwUWs(3El{A-dpg+a7x@lN{L(7uH`xj1 z!ReHZje|`aM#~CzU`wqA%Ebwx_8&SVA`6!QW~)NA-(CyBYBKK$BQS~$ms@6XQ0}0- z^b4}p0HV3w!pyV;4H)_uVz*8%Rx9*3dvHNPSvetauH>537u3Ewp~end1+ zNX#7IL%fe>_$lq7;;i_U{x||tJH%|BGh59$4yIb88sCG0 zS>x{y{M5+QLs0e>p3gMa5u_@S74C^^Yx^UGBqk&#M4E?i`nBHa z#4#YiF~CVmjvv-+nzVQsl9n9=|8fKjO~8sRjo7|VeotbfGng!F+l0(9Gg!6NBo^JV zq&;0*YcvZNPP_pM(TPaseZ5_2=Bg-pob=1ndSFg5 zdamVIJ?0Op0(%j+IhEkOFIe4+w)Ly@*h0eUYwPu>{G34}yXENv@#!D15D!|B{OY{( z#DwX1F3$tJ-N*}hl?bcvH&XSz^_lN9efe@${}x#gtm0pB=p8gWE8{=)M#Yg~%EqT) zD5u=Io!9Ai7LR@Qv)}J3Z|()LcCt~AWc z=6>vz?Dphp9&s>S(oNae@SQe%M&+H-hkwIKIiGt@S*R{`c zwnaxWGM+dPOp7Y)gy`2e7YTl^537O=vcki=!%V%j{k%z7uWEA8U;ENQaEPE6g;56A$7_5$Ryu|Q`gd}tA?^v3b3&4BIcQ0m6kyqUq^{`eQ(}2tD!PkYEK9d(- z{cnS3srfRCq;;TBhOcX)mqbwsz<*kkqQiy$I477su^}YLv<{5+j<|xkv6VHPnb_IB zLZ0&myjIObkeQcm7-2=iseK8PzjG>+28`2wf{ylQCI|q}it~jCj-l2bCs1XwS22d) zc{NTa0NpX_ZW3lZy9tz$JhtJZIf-wRYhid>=~_vvNuQC;vFNY$ube3 zDn^dRS{>=(msT6(vezg{!mXAGK6!kXQiye1s^Z4#;-V#^i_o7>%sSDPhkM=meSLe+ zO!xDCne>B}mZSF=T{<4u>##raa{9`fb#dI~*JBlyxxM98iWW=ma{`l3po^CBY9k<} zby?>H2f+h|I8ITbQ02m&jHex33v4~e!I*bFi_?-uN4&TJ6-Uoxol0oI>e{lZrN8LF z<{`Pj2dh(mOk7vVaKX+&Km!}6ge$n}ZZ}5pxFbrIon%;wXysv*%bW__i-UUTURlV- zPx8LK;1Ha1SPa)P#aq7``123Y@nKNTMfCe%qLl4^8agL9l_H)*dNtL6R~M>Ix3-sx zLcxyS*HVYkQUuPKTH0_t#tCsQ-fll!VHfC{DLu_J{u6`!6gvd3I7;cV{87$1URiaG8n@6DQNr5KcPz+%H&p8}u?0)*2f zS-3pYZnv_3Po0(wWE;U0HFJ~p)qx1PXLhp@2be=uhXpU2m`|?7_^zIBu!-H^j(H|7NR?Eb}fFF^cUl16pHg|*xs;ZY_)-DKL zT*>fe)-X2c+XQbKoLueXtApJv*lV~pOiuWzR>~^49HSag$GB*MzfyFEJSdC%H+k_R zj+qO%`_l4{c}$vG_(<0Fk@-ug`Vn*t0yJ%zqBSo9)cjga`c(`A zhdw-2=B6Ss-kzw#y%o(vmi$_L<@TjRb03!zf4MzT7NN?9>qnvoKZ_41KY0yjCe;2K zwX6Spa2xnMqz-6CL%bJ7*=#s61=ySy;KZdLnlNYRp=%TK%RY*p>EX{-u*cl{5X?h< zk#B*|2hwQz9hQHOCxVC$^m)qRDQJRF6VN(;QdrGG%SX-_v9)t99m@aFWzHJP^L+36 z;c@Ihh0bey>BQ^NjGeP+qgJ%jDL!RyPeT42W87SyHB1=sBf!O1a&|7;Ryv;wWa;6J zmsMpZJ?=DRP&1BX)+57sb57F^v2<|x4)}@c?TW;a9Z5qkga=R7E}M&#FdqK^^Ll0% zjjfD7?b|ETG%`W^j=Vr*-CT%xsaQDUEwk5XBW*mkrP_2vcoK#yvv6=;b7seTH3aO1w2s*9OYGFf>NudHqh3S(Jol8@mJ*XSbWlpW zthJ(ev7f^&QplK{k6m-j2{nKu^9T208~BUyCTmk>nL}OXx;c@PllTkAwal-Hkj}$GAs(mQgGi${ z5|>xLSOy%48DfxZTwY%hS{V_I(+eCqyQ(>kyTI&zM#^6zqk7bkuWRdkw}hM-cK>)` zT~*iKb|n3xu}{TrNss+~Guu_o=WLoEs+S473hg(7Ie!^J+b!x^A8+nf9rRNNzwqCA zgyW2lzkHvvD+}7`&2WLB>h67R@!mhBl%1N+{_5 zXoeCS3SVFkc_QlLb`S8=w{-^gmCE(g5E3&W<)y!twMQ6fIIUQjahm_-Fwly}TTE<; z=FHf%5&&QF3GOFl3Si>jg+UFn6j-eFVQ}|e!vcK<0{qhn22^DNUA&kPNIaSQqU-I> zY;N|<@=JbjVvPas#GXW2hmUi2rQ0pSy)Ca#;%NEfY-tD9!O-NH>yOezcWL5B#nO>R zTk*mnwM_b59u3H`-aZ{}sYKRB(eBzQ_t@@Ft$(o2GHE)WZ$ALCa*);1wg6Wrq7C2M zNIo^RWxXr$kj#(dbF3H*%Wd4WV=7JR>{zs+%(c`&4Ks1W3QKpSwBdw{X^K6|px2j5 z4;}%7P1P@lG0zO=>rSH-1)qA&-~72AWZ(KB1{e#RYvx<{OeFRgbIW5UXGb3IB&n$`ABs@zYq zE-V((`r#cgSi@S)%8_PeYMoN=43`DLb>|sWN@>1ftE@E5R26GQfR?g7qJ#q{HlEpZ zz#UI9x)%iQnNyfP-jCR64;luA8pt%?n<+sPG6weuNz8Vxq1%+aDy1_{d|^*EcTlD` z8goMvy6QPzdi0JJM06E-1oZCAWi1I1NXcT@Ekjd@(Sq+gretRi+fGqqADX`TOqjI) z>hp+MR3&J-0&4O$--zG03HXLvLvNf<_K`Nop-#zzG;+yDoT0I5z3mQ0`3cBhBy&8M)sE6M3P<;ji~Ik|Nc@A)A$C5PjA() z*;TlZV9#tO$V0IHx38{Ey<@Oq`Ncw}_$)m{LV>8$?#2i&M>0((F@d)NaHkGOunRhY zP?VV0*mw^Gs;_72ZkCr;N#JRa=GBm9+GY4b+S&cwlarm+UC)WWG@(}`8Af?6kMbRU zJ$KepFXuzR4eg9&zwYk*R3%WYzc-1G#%~m0c~CBj?B$Nnc|`EtE=m4LUf)C$SR z#Jq;%_twl2VpAq0;s~$GZAnkc!=EHelr}nRgi7jXKcB|jizWkTJ#r_d=3*w=~QV+HIB(8jZ!HJV8qofZtg=vXiCjNWlS zGQe<3#cBdPl)wF)??yR!9PXH#nQ;XLq3et)LJYo#6rMt zE8ZOGr7~>1=jq3xn`ARiO`A2=oxSt@yck(A=6jgv4-AUC%EnZYko`)1C093jOhV

WnJI88p7#2{H(nzcdhBljj5G@2UM9euq!DODOb`+bXZT5}Plxw{E= z!96Y0&*LW7F0#ETB!>>of<2rMypPh;Ho} zcfImQN8E|s+Umav?EeDkqv)}1lI%+} zWxm(RVvP(b5OVN!p@AWbNA6Y2mxdiR*YPKxY~XW0aa!Zh!)bo+67)!cU<^u^~LMfEKm z%BMISb+r|#$cLPBT1dHq=S$0ylz7R|56T*aHJ_Zg$uj=C;{2Z{{5hK#j+8iPQO$j9 z4kE0vhoCN}I;d}BwVe?6HvV>scA<=>4rY|d>l1r8#F&RJs=sb|T0|YLtX?Q4%+7nx zdi#B9$Hyw^HT0Mm>3$))(OhA?$`Z;f8K~g0*jjXZ*%dyoZ82yr@3$|g8g)qgrIh!V zvGGrS4JSekEXbLy`?&ltJH?$CI-h{ObTO}|_U<=lQAmH?JL~e!W2!DRm)oX^JDf5 zgYGVtdMsu>5ck^pS&PJ(F){6KTe`ABZ09K9U;f}fsaKM+@|C43d33WC3O;a>+!T|F z$Vyu`U}1{l5&tf>8$+$a$@IdTlSfYPxN`>Mab-FhARY5I^Xar2-i(j1_YcZzL^6FB zPu(Ft0OqUgw*Ow*{ZJ?7+Ldd9F4Tay`QOn$f9UQHFaI!@*KoB3E9ktw7yfCHGYM^% zqYGL6@(<(wWqrIO?s_VVSiSMS)yclgu|0vX)d7G1^0&so*Q z=MvRGtNi(HzWaUGYhrQ2Z>p+(NgC4=9~IqHwX5bOhiH@+E8;23BRRwd!v`nB}8m5=f3HYvbkKo*1l=0%1hS@w%LS*r}a)OkUrDeEFXLd_$ z)g7r5dYCioX#tVvmzanaSH>1W=5GfN46HY!Q2+Gily8UoVRM8bk|H(0|Kieh^*Slq zx;tWI2IeiwX#Yr0Nz=Q@HNKmY)*yTp=U6fIoYCRwnB~IiyPAzM59vwa{EbIWz#9%t zoAkqAn{>SrYyR<%Ms~~{Q;_ju?fg6IjQw>R@g_+{1v|Pr7FsV}c)w$zcXeI^11W%b z|Gl%FEg9OY&@j`Zy#->3eX%z<0$$7q^nsM{N#Nj6y2cH-jXWflT&iK@6$lE!7m`ah z%y{|jPgaCr@dR$#mEB$$vEWs-+jM2)1M51DIr}j8u5xb=1-{0`(;U8_{H~o> z*(tW+-u~D`H07h5!1Q0KNnpP#+l3s&b0K-Z+Y6K78w7W{sKqSj*Hs>rHrjplKYle= zr=B{)WAn7;nee2Ew(7*z#$7EHl^3BvN)K%R*0(;m=T{&O%g6P*=4dx8?2>4CAYo{9 z`NHWMs;qArp`8pad}`{z69x^y($VVl63_Q#hqq2&qIDIoL-3z2F3q`G&yLPuE}?%; zy*0LxHFjW_)rtlGP=@=S47-{Gk+$ST0^+6oYc)e@zn32k& z*^3iZyoY6DWoaiK=A6r-$U^o;WPsvcvZf1b9wK0N)vKFZY)7Kw=YRmgndGB(W8u+% z_X0pbQFe^OUeZW&NENBVe$~iHVSHL@K>_sPqoMHU(i|8X3{woR8kkLq%tL2?Xqi+u zG}PnaW|6guGk5yz!`V-p&AIo!|C5q(kw4}qkWxEYS?QlbdxeZO(0xB9ZP#rZx^kI# zB8%RpOqUiXk5kRh-s>!%LVeQP?Utme6^mkoo_6x-L=|==0VAc|C3tIxM&@@;D!#=3 zuUP&6Yn#<*h=ETP9}3j#q$!Q%wu`w%WfZO#>6~y*{|obS^R@l@2Usd_|AA~|$(f5( zH#cAOS-pIED|*dNtd^VI7Cp=k=yhq@go%K>|H;sCL@E29diCO-{8>q6%8XBL_tth! zKhvO4Z%ugDFqP4Oup7~*TTtUrPW+hA+r!ryBq+bXt(hQO!p$iK3BU*iCLn|7Mg?X^26ATVyyowvbHLk0BWn{{olZz4iIs>~ptNT}b>&$v>=9 z_n+%D90+Xbe7{bJ@xpTRT5&~h%(&{kvwA$#uchIKWEOKdPe&Hi1FNF6&FLnx^Lk2$ z#~+uJTRwj#R3CoQ9$&!aK{s5;esA#$D@s-SVJB4gQN?}y zY10Uzvf+pZrDA!De_|Vpb$BEo^K~tU1@a}Zh8n9cjnc~z_bi`hD~lGkun*Cpns0jd zcAVk91)!bHpQ^(0wi`WJQc^0AYV{@4MRc-v!cz;qCq1~K{Em;rI&m7}(FWTO)t$Ei zq!F}_ly`666ti^yX!+33F@maq@@j12nNb;a_{U<8NZv0oE=>)?nGiPIT?h_90{ai(hsj2jp{0t90? zS!j28?0p;oQ*N)mU&(%;>Gy{83U6&;?M}SGo7pkcWD&Y?=bxqeeiyuCmGFBn6%CS= zqem$O%12tUKG`5VfcNl=gmo7gxDS?0ofPx;GIWzhrM*o^kI|25t%c8Kr;I+evViq) zbj*n}xzmz*papBo)Vw-28Hd4aVr*xR(L1mHDZ5}g$`mFLKg2`mCt6wuPM|36Y!qm< zi=QtgPnIhsuHTlY=xoh7LQ0(O(FD1+4&AKU=SFFNmXAA)LfiU%2fHzIVg(Xggo?`GOfgmk0X@KT+GPJTK-(r7p8QSaRY>L^DwW+J&TcZ@!l zV!?h){XpwA)131;awYo8n{cO&vA|9(!n-6oC0j({xl!9=v|WDVakFJJUflUOV7%2| z^UrvuF{Sq0#BY1nBEJ50}_ zkC^0~SsrcGKwvPvqSI5N=lg|B^72G&tbPR^%Vd1(3zV|*Sy@iFs1KCtC(OwvLM45q zU(7q+Ip_|*I?qvC%Q36+;QRD@HUE@Ul##d`H|GvFRm2AaI3+nW$(e?RT;wJT(-t}-K_3-nn2_EeJtl|87 zw1H@|Zinw~F1yAPBEWh*Aii8PtzP#V92^g5ceNz1dQ7C{$_MXG_a^6VZ%d?_R1}P? zj!W0dX2QnzAHW-H8)s9>M9!{++a)Pk056de%u>5;kz*xLLzTf06SLHh;396BBHD5TSdqmN=TXNx+kGu_ITx$Xj2Ay~Ge4i=uM6F8rT`}Dyw|B0ewB{>Y3(qkP@}W6j-bFqEjdrL zt0l3E=>@-X<)?K~3cGRbiEm$Z+x`PG*3Zxw43_XLh4EQnxiRy6gNtwz@n~MO(9t#Rmly#u`bc^$Ss8#1)=4bg+7X+UCp%>@%lh8IYF>|G z=-|(j#WybEVLR>V=+=+Jr5+&zuTD#UME2B|eDv-}*lsn_SupbDAMEA@l}z%!qH>;l z(sVc~>IW6SBx9C?>b%j`epcYV@IrNGz9F$)F6{A-L>2!Hu-0bcP1vm5-3bn;$R ztAF?a))bs;PhNlJB_ssR6^viTK7~B{>{q2y{Pcsgdd^wq1~>oUfVTwqd*oDM=VHlD z!1Xs{snmS~CpCP0@{%r&TH&-rAR09lg@W1(y{DQ)2>xVUx~+!BqI+OEqigY z2Kix|a^|03s>Ccm23=6g^8_4Z=02SAx2w}{!drUESq03xME}MwwE=!y9(~QC`BVY{ z&4ny0mAK6up1gr{gkE~AUZjz%1~+b924WG5%Y)-c$3?RZb-Lx~fyj8SRK|;jKsGAK!h~VRe6#$r_Tw6U?W~ z%IAO>nAHT6f-DSnFEE4KszH+4h#nAy^#Rq>C6`}@;AjGFX~d>i|uYt8u*MGK#l z8Sn5xJDBp_F0d<0dQ&a0HS%gX$aHhWhC|`#|FQO#QEj&Ex^7!&p`}oO^zIukp?`#{QQdi~!Gb%XQz^ zc^+qLjP)$I%TK6?d^q`iT=ci$T#Je5&z2_+f6u{=*JB&g0eLDLz18lpcNVQ1)X?k1 z3DXYN(Sb$qQaV3Y+s`A zU3WsSSJ9?NzO^-w9LJhF)gCa|T0k8SLxJAhzF+dR+WS7uQ2p)7Qmf3wW=I$>5~{^* zGWfV)zn}>OmP^VObEK~C`qXrG3o^M%eqU{ET1446WeBraGn#{=Y@?uGJoSQPz4VRU z4t0M}I_8SMu)1AbCFFwc zoU84(1_>M@mR#aQD4xfTqzMjuFhen#rVB9yTl!uePPMinoX7OvWlvP|N za2*fNmd%m2AFVI=I1@d6o^YZc?a|jxGwdXvP4Nr)ZtIp4jyNm*IO^+R!<=B}o*BE3 z>iJ@&exP|Bo6-)_r$(%$5x9h0gSOIbl%B%1hDZmS1g7m`9fhyc7K$0bgB>1bA29h* zE;jWcjw`qa0xuKcKm8 zRcyDTOy?76oJ{+y=5->Tf));la5$_eBd%oTV+lsU5TZ{c^21FVwGes2OSuL}+8dbO zeE&Xi)lCD5hc)d6KEn7hVM)VX2i6Jxin84Mn|K}E1iEkmT{L%HxCuFbkeAlJV^5VR zcb>c%r^6Owoe+lFg9s>IFMwB0?|nui(wyg2(1AQ(nqZ?1e&5k}{gzaxkt8vQXU{XT zs*CVy!)2il*Rw<>Q^j!9z43-3Z#?&?kVLcd0r~cX6qo>UV1ObCV2N3NesP}Mf5oTI z+SAhmZIUl2l^rcXe)oU5AMwkup(kFaKP!NWHp2@Mr0WIyLgRQrGQ0&qH7aV?*|O)E zW>o0l130i^2}flB4kn(5yzxJP;V#gL--S!>1|eHkmVvTJqTgjdewUE_kd*}(7_IHR z`A|uNXUD4o2vM|fDtnUh8MIlDA=JC0B_g*0sNxcau`_MdSD8Dp%aV~t0ZC#-CkZK^ zK1ebrlI{}&67hQM2QoAWvkv_$nf40GdEpv0cR81>f!d`{-uY*cBq2}dwNcC!xjOkSC2WVrXWV7y_ zi$&8yd-dv^jHA>5;&ykQ(z%s~WtFc}a$p)b&N{9A-s4v&&^80}OH0g1)VAOuW5|jd z!)1do{8H3ascDr*>%CR7W6PPX1!y&@dUXr+i@3-p{64OfgFQ~R06=S{UKU+1la@~! za3?>|D`8qx{>*0A{_JbZnxfnL_WLQP()2G)=l;F@mQz2tE^;9&hm!120r0G#zc*2_H z?b`xLf_zuOedhD>oK2qwhE?aj|7P@_MBLdl^mAU)-jd#(FexMNn46Grt4C{Y%P`V` zt_UF#UB3A@^#b;XvnP30H|^u!&wqnlhRR#QBmctGWc&#SnZ7J@9Q@IQq zo=s5Jbl^chYv@XwUROV^9+-ecI1eOY+(fGJQqtJ{=~oEe+KXT&wP^)w>bWm2G#n(L zGPdAZGW~A8H&I~aTg`YDS?4wByP+IlXoOMDI1F-OXNA~1tnqyX_0 z<3?H=GkpKU$7J3$fhv1@_lz)%HCV_^Mid!q{NR0;b3zE*js}&&rT@*!W7i6w0Tbc0 zqPVrGPcfiVQ$T;|LHGXA1gF<$b;Mh}3PTO~90ViusDf#KXMyqEP5R6Wb2jn-)!3#0oP(`a}h? zfemEmh#j?3W@BGSZUw&W2(TY*yBWB&;KqD(7%pg+aMZA(er&O#&$vJM8+0w_d3u75 zA|UCnDL`I)?&UH)=Ntp%UoW}XX;m6}r`oSutU0X4>)6HXxh#A+Zo5NPu3vV?#4b*b z21wwG=mIk|1|O5Aa|#|-wjDNZgrB1mdCVv!^e9q)^j2Jwx3sn1joei)T`$B^C^5Eu zNCjQbMbG5gR{%XLn$Gdx*>Cc#VRb*c_j2pg1J3|nHbgof&Hp0KFhgvIin=bl53OvX zYlLTe@cm$DAzLcYAe?_a(L7=1;K@VR_vrh*53VYuW4@dP1WDgLdQZqA%vxX9Unc37 zWGMl8Rge*`v)UF21D^I`2`@T+ny-X4@4>yYfT}{GoYYJOk|*C{B+b0{xI6IC>AH-w zZy#V%8F}$O#pqnuUO>08z}7GSn#PG0qzvpjbAn7O>jA(%ciHEVeUf0r|G?&EFVUN|IR z7Il9DF$LTc{7a>1s3&STg3<7}Gp4Cjzy31`gqV)vLeM!(nG>R>VbL@rc0M5t4!Y4| zpa9nlYwlY@^L0+>hae~=4I2);?Vc2C4puKpB5dW}sFf;*UAy+Hz)!p!EKy&8!_WMf zsLpg&oUVR1zm^if|0sj4yy?qDB(9Z7`kT?$-8tH~eonL83-SJ7u=x+8SH5A>=IBd7 z()&zrjNGVlLy!A9KGX4RDev0WyYxGW{+tMbcO_#|Qc~~CMiy^bM({;$-`t87(t7L{ zkErBG_n|?>(%}jqD?r2EQR9a5`TY&BUzxmycQbyRa{!y+C4dSg=D#OE+VG5(jT3P= z{>{hf!{3b%5_xX zm_4SV%Gp-NyLa19V2c~hI6OI;#CGJcWZ6N>TS&n-UY5Q*ZFkQ5>~<&~c7pWox!l9A zc?)$%sv{v6H$%4fn{`?-rUS)Ld-sz!5x;}E)UE~-<@MTLPwNaNfVj9ODGq{_Vi4sv zc~dkx1BWRnGd-=i(q-#h)F=rAmR72zUwo!9geWiqzT{n?sejknLoH!4mq4`c$K)+v zK)>vj`lXtMTrUTxB<4yRLc;NElk!Rg^!(iY9(B^&>Ezi;R=5~5J z1D%4Yhxg(3ZPQ(Oi(3A0ZeNjdhDdb{GScNn_$Dtjs{A5^vmM)yiI??CDg9)yKGdp6 zhm1z&U|(O|mV8atpm^bAZ&Ygk8A`WT7az2Cc<9>_HT@y9&$toYiw$WTDBl8*+4<1N zq$}VtF`CDO)@ywkXmG|UooZyi?%w$MJG4H?>UB0BL0PykD1OCWd!bhi9g;hp$3d7V zV3W-AC7KB4e>_lEb-Y(KH#VHB(@?(V{0Pq3bVy6~P7=7ws2rtX0Mbj|FWZ^f+sC=K z;@X?60%<-1Z$a4EscDAVlhZz+sF}FYOohD$F~w1I~-t>-aG&0Z#f5# zE@m(sAJ5l-Ypw5=UI2OhOiSe3=UHX$Wi2s=IPl~At>zTG6(#b6p3Y8`Fqvbi(AM-F z@kXy7?}p|FJ7(84_cJMmW2OeZ{c(nqKT)mcTd(#e zoBa{$cHAo-v!bvgq~PxRQ%k)qvX(|8%bPS%V`!3qPWt_6irgqq%B@WbUtE=o{u?@! zSG$nsG8eRXZXV}Y_d>({_m}U66~`ufQzd5h8iUvJoDh~YN5Qm}G>`DZnwxa(boLTr zu)5p%l3&O|Pz>XM$4M*41{k3va<>Wkia-AO(RlDZ@K^!loixZa)BZH%+t8@H&NqRk zud{^b&|14q96hZhrFzR1<>W2WAqgT81v7P}1Qt-iI!VW|!G=g=R&&H|`qHod-m;b< zvU`^VQ((eA%jl1-_0R9YO`^+DKYs&w=cV=2-^;cq@^NPY)p9g7oW(4`Id=}U-7uq$ z(oZMqP@&jypicb}+pyF7vm7La)DDwf(;Cp7TKv^ltAW_im{G$K&U8-1A95H9>h# zv}r}#O}r2Ye6LJWA`}C%(Adn_zsOPBnT@Cbcp`pi#<|vt7#l4d)lZozQWmxBBT9j_ zZBZ;z{-7PiHQStJ345N+!n}^ukYPIvo>JSeW(FnNc(x?|ZQU>Ed^*K$ytKAb>d&XP zax+$Mn}#{*cn&S{z~S}v?C&CGBdIhlE1&?x%^o8Br0p<@8;7A^>udVg)- z{R2p&(hj>D4-n0y9Zw{Qh}QfMVSxmI34_Y`<4A=bhf~mlhO`TsUg_~e;?95p5}oH0 zA(121)^q1?d6wDcZg2U_QW?NaFp@T#LtBedgI>H3hpYAykey?Xtv@TN3@-a+rhNbx z)ej(htP&xQ{hskzF5|8B5RN!`&Nf|XFF}^MKMVhwHLjR)yi4LiU5Z`lX;$jJ%LXYY z&5%u}UHTe3h{y&)6=vob{Hk{Trt*6UJet$EWG}fkT<-y*^?O$Btm(?z@Fc!ob&1V} zpuKHj_lDS!M3QUTBS&<5R&H!>=3b=zocl$)nEGhjokh|Ia8zm=>iYb~06=@B!y7|n z=f>84e&K=@jtweUhP%dXCom)bz;L>JWAyLWvFbfzY@S?4YgCN0V-2?BZ6`zId`F-b zlP)=3`l&6Uv$ANS@l+C1nyc>Vabd%yDVo4)ebd)s@ zI2j11{lMpf@iXS^!X1=Z^XMx6;8&sIHXr zt;HbwjqQLT3BgpFl-fOxzFn{M#r^dEy)T_(AI=peJhxp|w|%7tD-+cw?)E}x7M6Iq zoXm1}e>f>=kcf6RZ8q=CX~xIC^YRjDu-~-g>4j_BwGW}oLC(H_Ha?2IFNd`?Cm~&9 zMyRjRGkI};S~)I`7Jn2}%k9-ReLa)8NPF_cCuU(uhpJL)Y`e~e!|lizs8G9TR>)(k z{U$`8st7ckcaRYt*XqorXa6VJ`Xn33c(u2nv+RDruGQ>l(exRM%2Bj&Dpi=TgmwTa zL=e!{*)ZnMvG}!L&;RaVni2ctqJNlgiSiiJuwp!f1BreUy$&u+6=)UH2u?*mFYmy5!#xYt`((f~$Id-LqEI(9X6 zFB4uKP|s#ClaA?fw5+S{%`?q3XC_q2PLl zQU<||i3b3YuouhhRH!F6y-|N4YsLnT#=aUK?Qf#8VL5KuFdirCpII+pz8I{WN%Tg( z;qgx%xXT;LR&j%WKN5AszMnOg2*RU)?@0vOAZyvF^Qel>jjf1yz(y^TT#t-0_l?LSW$SiRc;g1jQCE%&7|5!7cQC9S0;yexFBWVCcLUKDaj&-<-; zV%{^QioYcqV?PPs?9QtRq&g(UDy6VFP`9!E$(6l`Z(M)!3xsPI{Plzt3=t>ZYDeFu+;)(Ibaa86M%&yd^wf_ z&9|W-6PC-6ySs0Izg*R)*?OU;7#-Gn3n}PIH^Ub`Z`AebdH>GiTKT*J>jW2HQ@0!+ zC9b|J!HezA@RcrCPOkCaxvYy;1tN|S2}*B=m@H>QD>(SejZW~_Vn zlP8z_%Fp0V&!v$;-$Xel$q&(;-`;w_g~{>iz6lIK{9p=h-P&W;RAm<8I~uR)QTo_de+h zf7&E-*sA7gv@ZkjddVTGU29IGR)DU_eP-KjhT?lUMBeJ_*FTEA*UIjch>B;^dT}(U zIXb$rmBW?Lx9nNOIRQHPS9@PmgW%`uL(d+A%^iOnlYQcy-2zTPUG|+-ICcqsGTwrE zv)&ED5kmQi zq}7}5-f0aeQ8Sm<7UV z`)RTx<46z>yMgIs+0?knZed~*u#ieA{lhxLX7ik;3KhXyis6BWKZS}t8nC!e8kFg4 z0`te+bZ13TW}ZmBXza1T5JJs`Gs2Y`}qp#JBV zlYqRY7e)Q0#8!})36ac$Coj)0YXRbW;A$De;b2wfv~n~&Sk)cY_6i z7F}Fo_0C>F&!b{Cs^TM3U+o`aY3o200q;DzaKYFmg5diS?khKWXE%s5rpy7xK_poC zc5Hq`Zj$93ay7lMi9e&udD42*-g*fgvhR3I8c@icuRPO&AJUojGe;&O3bJfpg1CW< z_J7gPqi6>s)=BS7#9mg#okqvLdZ0hH=ZQEhW zym_GvCC*JH7sxy6Nbr7Cg^S5y{ldsQ4|VI3&@&>&Zevfxcwg3XleLF;V|MBJIu7Tr z`6u^qh7#3!ig!q6rq2y&y+d>0G2Op)l&=F{`>YavP(6#dG>-WLe23-uBdAL3?AvP^ zV+}bjGaOL>*2n{K;pE@&oY!Avz&z=^8(e{5!av?5CH72Pz7pc4yfp4|&2jRKGWR-! zb=M%)%P-L(_MF^KV5RPBw=5Csp;=C$iG0O^ zq`E&W9==D5d1{^;hqBEYq}AiAVrTpkzpTkCJpOKXd;ba*jfpSIJ(vRHl&}=&BUrU+ zjNCj0SeZOIw-4?V3s zSh$BD){D52L~@O?@c_NjX)J7>>H8!zBrJH$pj6pZMtv6<jah_i zsUmMslvB->(n})Sx&?;_J=1cL*4+j7TH%oh_=7B&-imt^?$ZysipohPXcb|t$l~8dsJ$U$ zN$t1iz&Pnl75$CXn3bYDHo$u+5(u{db&g8baaFOhx>kzVxGYw<^i!@Ztk<96;f9i!Mv zj)8Hv_L^Q7J-vPim7ms~`3(q?K6qQH1ZE>{nbyU(^R)m#0MmJuQOvz?-#+`%A|tOD z`0@Hoa?J=l%=2oB&mL}3;5ROE@rOH({EC&cjfE-IwN=+~T#ZoEHw+R+r1harum%G^rmVh< zU*#Yn&B7gEdSo7;jmZJft|kb*t4JoLQzGBn2V6gsI@d-^|J~!Q>+^V~4Q_VYE>{eR z?rV0_G;+77u|5t|+T=!w$hHh~LF8s{9O_3YH zvfNkA7iM#oUFr7l<%NL;qJp6lg`S=3w)*eb2Ag@rH!**V=4#&3< zPV!O9gj|I(0b|GG<)*2Ze_le254P=3KFIX@R)85Nb~qv>>X$w{FVq?|K0cb_?Cqy* zE1^w6oOw@*ZJl=E$4$fOXE_~pl7*dDq?ClWB$M(G+YB|xD90bYMb~88=c~>eieNm3JJ;%hondf0S1DuLcJYunDn_}q2URJ7 z|LiVEqrCz4Ga|b(xoQ3u;A-QYsCue0D@)-Vdqo z?_6%W#`ZG!L+^knCi!J@c86o#yBwvBbwnlY%Pwg*-R1JQe4U$w-r-=AEk7;QS_@7K zm-CTo`}M=I-e8c>+(gaMQ^BG2i1vhQvqS3Cgx2?#Hj(7T@5g60R_stIFZTzh(Xf1d z=VdoZp^3W_2*4n<`k-7e!2fM&tpbBTe7R3Q^P>#tjo!Pxq!I9quyYK_aLQ0()k**s zF4gx{&dz7uDmm>F6~M4g>g*Kj)+$Q(SsM6h8eoeD^a}snkc3sK$<~x})MO1ct7VqK zoS^3}Rb4#4Q08O@O>LTsQ z$hUMVa}XbVYWDbqAwid(6LIpmEj)u>=Q)589Wn0W>fDD;&!$Ao^~DGa&&{tcxvWGO ztU%7@557|TWG!!1NCzVy!z|EuX{HT&{sEL?v0k?wGG_?lFZ&os;;^!ZHxeZ0j2NV( z#3KBwTXI)FXC(o39ew@s@TxpTq4~)@i8p%%k^vP#TMbb7k#7k9$MaVfIvke+2*VH1 zi5JGNaHR?SL>QlGSq{{Z1KxsW?O$cdQ2|p5dwSx%Q_^~-$_=f~$cVU38xW7RWdLBpz7?th3m*-)H(P=^q$aQ(I3dqahu>k5+S`Galbx1i^UrNv+R|k3^QVBSY zk-p^Q{FmsGobgduY-qpLGVSyBE3v8@zLbGOLFCH?g9!ogq}%j_GO&KhY_ODgERu(n zhBhqzj*?vclGFVl&%U`SVwu&yjW>20i;4>G;|SSIdPT-zRn?!yHE|1%OA9EnyT<3F zSPI7!y%fo!l}}qn?`y-S;2lo;Hp+urGKY*1po!!wq>1j#^RwuWch!x8$Yqk7> z`j3ep+%wUXN$VGrw-3=?|Esooq5_=d8c|>v!^d-Di1`e#mZ(0f`vtflLyc z&2?m#??(0))=j@reZ^a6PuB+I+SNtxp8;kc4-J28M632Q_lAUUQUtASwR;as(pA9@ z#v0j4t(+98K$Kd%b@WV~;%fo+?%*HXrt_#CBp3~70&vQIJ;8(SC+GzDw!5Jxzi2&F zgGg0V^9_Tdy!bBYW`T+3F@7Crzi75=22W&j_4I!2DQHEJ;fM~uEQQy}@oA9$gcUq&mfCU zMgctfdHgC_3MwaiEy{V+A+${Su;7QyWbNevpThh;QedMO#4N$PAf@khww$b_b#T^l z^QzD;Ut+V2&+^-2B@YmWbsohlhXs#fVFUZL?*Nc0t8%a}CE7Immn`ue_T=TAfoZSm zLOuJ9h~zxt98*igJy!v8?8B00m)p>|Q)iynFqHr?r+NL?Ma}rTMOuS6%&U7uCF&cK zo*QiAvfrjpOX+gm;FzP}uqrP!T|oZ2mFNALx(Y%X&Tiq$ag^64(rS+Qli}F2Gryo; zqmU7&rMN!I9u0E8d6B-|Zmt45GjQIMa$j?guH;+bXencG&A~7OE7#A#Q~M1a4pVHS9YIwje82^R;QqgCfRzo?7km z<)CcBOPrQ+lC2IoAUh}6>jitsbn)oz7aQrTp%Tdk5sM;V_SEFj!NCP=!&^%6(qg}a zlyhd3?_MR#2hdOq4>n)S<`)VR78(Y*?V~cnf^p~}#zU3sj*1qSs=$^~CpRSeQjY$^ zr;Ni9J#Vw!^vpP7bwTI7#V?GZ00Ww&USzt>LR}1VOo0g%vU-R!ZqrOzGEHjdv)w+2o%_msUF2CS((-&VR>-W?_UVRknl9}->;2$UVn{&#MVZyoHawGRa}*pb z99UJok;Lbc{yjIww0TP26kFLy&uMFFPrRJFS>g8L5HH-ZQ-40ksU^uoE63myqf+Xt za1*`!Yq$@Xk+N6?9}6qO41jrRt{!nsVHU7_%jdbavb*t?L#ZT7@hK{xZSRarDN;Zn zBx}l0h6BEOQ%HvH z7pk#dZN0G4yKK|H0a%sZ^@Xu{{2XuQ?@LadXalw~+#GP}W%M8aZAcIWiLZL!0iK_n z02zgU7m9@a(4!97fN*3i`89PEkwuVht?c@yN```KctPJCZ^^+}Co)u3{IR`QI=0r2#$T~S0l$d`(P6wUnvzvocrj*IuZ`=> zo3vTq!(|Yt-)ZiM=nvCB$F+c9gi|2`cFrjsbivRM;d?xoc&4HBHMhJceJmLh4 zG{b$$e53T;VN*`u)$923R7{n>RkVes5Bz0~^gblGMV}dJxE)K##eSbv5NaM6e`@5x z!$gh-O32;550q&{%U^c;mM>#>3E(u+77nkNWOOg8G)YG7CnD^4IA9hzIo` z#Pm&6fS+Up1XW^8ShPPMXN4*~0v_(kj1fjeGZc0EZRUn$ZoCCpr2u)IO9U9iEu3_Y zWEC#*ax-30;!ka-r~CUeG&jh!m+B7045S>CsqQ7XAKa3szT73ceD*BF^o-U3cWhND z9e)=6m)nc~Mx&H`DtgoI5tIDg7DW6=i?#6r$lXoBC3fD7fY;tx(TO$?e0Bdk50H@o zxxC#hcJg$Ps@(tA3L(&3uw!2*sEXexfUP9A&=Moy;X%9mn)AbJCT7BYX-C!09x@d< z3j}Qyzj?}7z3Z(?zzkjZ4}X#g#24ZS?}#f3a1bP{jB+oihHTwhoB%T|C@QhGi0GA| z+=SNi1C1|%-nc&LzKzpZL9!I~L{#_r1tVX*2vYO;UetcNBbbj&kNtOQ#J@YyKK&A% z^9>E3VBDlN$%;xD=XLUXAxxP;m_m??4U#s5=8rtg2*`*^yQIm_0Z<@f@QV37 zAFVyHpr{B09yMkLJ_{mn`2C8h+j`H}y!K1VZc)xoreaVUOvi|h(?)zdC;x9F-UIP3 z7dlF~Yya%FDUJdA25@tf=fi*-#LPJeV-rg*d#?GfO3z<(j(_}Ur3RI;z_PIpTb;Cg zEyYY|L>@T%`!u-%W@yaHs~A89!Upv+5)C1CM`H~X|Ir-h^PpAR>C6soFCmjj#6`(? zg*S@6l79S-Fq>;$+3=v|L1ZfBr5ZFM?J?Hdg9*z(83nw9hK1Q-03alY>WpB>?)sKn zspdV(5f=21v;!{8;uJ9VaYgejkRLL53f>Hp7tbl>lY0YwJn-?6j-D(9@Om+Kh4Ilt zOG#564&G8|H$W_a>OPRLU^2%qU$`<*1bciF5t%u+slokEo~ppt4=U945ITxy;JNdN zUbEf;QU<0yzn?r@s!(<9WSiOy5jt)gCnn@ZckqyQN6N5Ka`pv79zk32Lf!03NO3SjY8 zM!$jHgD-q2nbtQbEYAK%vX~=dw=!}EGNeq@5)!CaS%HMTjF?%R?uqQq(z?m`L{j+Q zciE`#NxI<7L8D)}sye3W6A&ahy+i-zn{jP#{`l!XeKR;h!Ucc%W+?yVn_>OG_stAI z$VRdFG-D8evoLV3pZsPeLOU#oOlm>lm4u*mCdp5)k01S-pMs|I>3Q2HbMCJ-J>cjn zRDud{uES<+%{f}UJwxzMlafFz6Ybe=-bAeu<-odL#>gtu2{9{T&0%9-(hww3N`Hcy zc{3B%6x8xN-+4?%pp_WVb7P__F-vqiJ{+n1y>)RbnbKqhhv0$`o1j@vwY!a9}f{_>~sp?*&pk!xsZA@RZV=s;f2+wM20 zKm&r0Jtkby4R8J=3xqVqSJaVIb5i7)e6GbMTs6F*H(+iO!FMqlJ` z11_iQ6X&=7Y27l#ew852jefNJjphosV(k?5m~#6Q{-gRs$P z0iNE`j)E-ik?`g^*7cQ8R2Lp9c@;f=g79U`jXY^Kg0Hb8xU)l9%4|n=pN{z1RPSax z(~E{$^LW5dB_4GA=3X&xHOvJopy8}lt}1thdc_DX<^KTzB2*)XlN4=`1%_zEATq)x zZe{4qaxR`>nurJRey{YF9+0Kr>87=|X{W~K&G(JXRUFt<7~7E1y+k)k(JjnmB9D*( z$+48&K|28>BW0~Zta>NfF!J~DYdS|vipiU@VqQ^fI_>;h{N%~)xw-x?Nk{^kxUzon zA~$1JHw+r|GrYWr2v28RuG-u0(N;J}I|4Cz1p9%Q*f{yiAgiK-yvy522>c{*=XrC1 zW|RbrN_gB$_bIhC_nn}CF9^$RJ&AId(jni5wTGY#IMIsJea?(Xn>-(*MeW!WUze@~ z=q>QTH^G-r(vFfk72srKC_@3+M2z!ZZz}fy$pb#J9sY@U$HDvd;B99l^!d}@ndTH) z7Dwiv;HMj+e^#uG+p2=J6dZX)pIE>KeDS!1&nmNQHbS;%j>qhND9C`*`m0St=qqH~ zOZD5d3k#xu<)e}Akv=}1x1Qwlw=tvM5#S|v5FDl``P*P+>JEO5#$?^Y&o9&(cKXhg zBOrhI5+%#@zyIGe25dSiq+om-(ADYJlwlJ!UUKw<_hO>jz`ULsbnM`%+b(;-na4Mo zg>y2L*^#;DdmQJ1#n<;wqZQm4-^7q(ax+dbk}|yF;uH4G4o`2cJELPl7NA~X?UZ-Nl;m(GVh1@xI(GIz zMRFjcA-s^CcYGi@0ykARUb%$k*OeCVhgPqgMW#xFruJ|mfa0GvV$G1h*+UCtW*TY; zfH5N$;5z{YgAm<+vXj{qp4N*=OQ))$AI? zE<3ROn?Vv{|9@b=N0(0A`C>~s*j2;EQ40x)iZ~NX3nW#qc_A1Qx%RUcl z>?WhYdqgL#YUCS17_se(>qKO29+Q(<8iUR)6fnx6Be6+e4G(Wcp8x{7j9ywUIcgKn z<2&w67bHsCpg}A_n_F8$gK&k z=+Gb!C(sk<&dmjS`AD7?K<*Jb|BpCH6rTBtWDTE>!e`Le9p8VPem`|$9hzUvvcVF7 z6Iu`Bm6z9+qSKV{tXGc$70JRXhJT-}1&kbH@+lF3jmY{6r^fODcZDNH#zbXUbOJd> z;RGSiv9m^>$fx8=i)&L*5IqSBW5}^_zu*?O!89VO;>~3cU+@f_q$hEoh{8&XBgmRW z<>eOijOYK;fQ^kxXL|D@GD%vU+*>xqi=TgA+Dm(hUjkmV5y0+by?W2TTYyhhf9kYL zDAy=l)1bRcFrlLxA{(@7RmB{nNaiPvZa#V^#yk$b>U}i(^HnJW59nO9vgem;?DJXs zOo`IcAVk%3pV!iEDDwDV8(h85w@z7h^(8OL8P?xd)#h|v+oZ&V5-ba>dZ-TewJ zroz({#>!{PN(=7m&xL=J2LGZkt*)+w z<_!7&MPkDD8t*>W5mXY_4p4+Xx1jrJ$SP!WqKH1RS4maY#idAFt_MhNjMaZh+hu2J zS7-VbyIC8PxpdYBEHX<0=={?<8AxM@NLeG?T3OvvKo@Xm^Ee&;V$NAa{LJ86TRJwI z7t-RY_OE-Blgr9}*RCoocB=+6~8Vx*FyydM~D=eDJ6| z1|zdtrll-L_x_#?X@5~|oSuPuH@&>xiGR*{g2w*2{?D*~FEakWP)nZs(k8uvw7t>_ z;^Ow2qW!W~YDNJga+l+clkC4>T5L5rHoPP_X`4AEt z21w>d?K(>XD>My61wE&0t($B|%6NZV>Y_EzW2gVxCrAE!mGh4nkoeo*MPIN`(gN$R z8vb5cZ)y;s3?ChfSf~hoVf*?T)^@C8=g7;7($TQ_=dj-icY9K z%NsT7e51DWJA;?O=A7o66>Kj@3FxLb&4t-~)Rs`YM9(oG=2cz=; zJ*p;I9*wiVS=&ws6RXcikOqYa#2kfiqxdb9jn| z8`*?dAn0r^V{aE+#b4O;J@$Y6&df@UmLyf|m4)ShqZ?5OF$DB<_hKtqk0;?*1%=pn zQwMH!;Z@adMO^XzgxtezUZ>#AeQv*9XN8>w0LXs_vhsCLQ{cus>sWJ0r3ns2KP56f zcNmr5>y)a#ha4yP#ItYK;Bdsla@tGYn(yd2M?34-GKZZfPohEf9Y6X$M)=~zR&YS% zwmo5{otkRH6|!R9j*CA64EeVFNw;?LhH@)yDE4Y6!mCZrU&8h_lznUu1W_Dr!^s04 zeQES1@;0Oaey7WSBQrDQuz6T4ScdBtRn7%n;-pSmS@L4~5<+5D>H=QcycLZPBV#D} zrodbwoc(CMW-Jua?nLr_B!N(mPwqqMfAR>V1U=qcai-KAF)zu@ z4@QKT4YY8}40Xm0`N;B~rJzkC*J)2aX5=6Fq87N@WAaMWCDmNpk_rBeOMsRts@;;n z9#<>2ltURIpF~oCYQ1a<2vn481~U>~ZZ}!`Dfxt7^Sq@lPO8F_fwgZ`&M#Ni*rNVk zlzF}}pp^MuE8g?1bUgSy*EpkMiTQUIi{_=DhEn9_u80jZ@nuAm*7~Xq!`Be z=Dhi@0aUqW71U2-$Wf?6JuJ`9J=Y?Bmr4S%KgV)42wy(jdmZ?!zTmagCpK`;`Q%QG z5k^M)P7P2n*ifT1(8uTJGow7ZwqKahk)i@?;P$!Hp`~HQ78-B*?<43&+Bc?&G#B((d)^(!u__#mk)y zEG*;(b7>OipLQCWNuzaF0aaCTvXWFF!BENy(g0jg-=M&?Q4SywO)-N=tg-8m>s>cr zk?gq{EWr<*4<7 z+>2XS0m;nH{B7~-<=7$5gx++)iRyNMo%>Q;{65PbD2e8+ zX~EQWD`UFQ2733>15?|8>rsQ1i{MMosvXJTr`S2Q2y3}#wubg?=QHB&?!y|JibyGm z6B=L!JXR%ALM0XJ{Lj4I?iMbNf}TM!mNy*1hqO<47~9{yGm+v|K&GSN5yu~ol3qR# z3H1Sim;(lOAq_%l)OsjxP^E)!(2dDWag5q5bFLYyT;qum5+SU>5b%uI{<8~<+;Hv@ zk-=)oBHbntrRcz@zLZyx%ID4#mB>>XDvP0hrdIK?jum&6$y)~nFP0DDQFJY8(=9+K zat8AL>>)da>LIQKbEZ?ah1rO{IGG*CIm^w!D$n*HYpIo0(&)CL&R}GEdu!r1ID|Sc zGxN1&Vq#`)!OyL%)DI3%rY_F1Xpsv?Kfbv%r&fGLD-+}<0BN?g!gCC5>zp4a&6!gv zZuw5F2n112yl@}Ad+B@%?wopB5x~3OIi7_HWLl)0k0xp-s6BEQta_HRDT#OH4@pDB zdX4eHS?Rvl9=pNvwie=%0?nGAZ{$KZSZNHt4G9BiP2q1HN z!W~XW@Hx`?rj0l$qNVH#cji3B12o?OG5PvFIDQ&Th!>lU z+nun0?kDcR*016PKQPL1ntRDbN!?Gn?TM zsFZOIXxO$&_sWR3n-%w0D0~8kjUy~()F9#P%voZMb?Y_Rt_`xvnf9H21GUz3?^rek zUq8aYuo&-z@feB%45!tc`RZ5BrE%4DGHCp!~?YdcVhAY6-?W8rB9 z{Ph1Ha2%d+1=L&HM)QxKeXx8chR z=R~G2sdHE1UYG7C2fMwzzPoK@K&ZF)39>znF%!1|JJc2$FaBy}aIkJz;8o{^4?rYu z(nmLW+~)0l%@ojw`|YF$h~zHj9XuD(B-{_1ytv4EV(f7ik%(p9_nz~7>h`N#s>m-|PQj3O z%Q|v0c*LLnIQb4#SUjh?MUV#bpE%k<(;Y?Tw6q*yTN>*870hb+iKA=J(k3<0v65&O zhCb-XX}(4u0vf{p0g zV7OVsJo~8d%_BX}@x1@V*joU#*|qD!El{K_1TAfGhf>@%xH}ZuVl5PRhay3XwYU@w zPK#406b-J$p}1>s36MZYPWpa(pFR7Weg5yC$xLRFOx9Y@y4UU3wO~WT)zilzw3~Zx z%>)J&HoT8}E&HbS`_b~NUs}I51i};b`+8*W?ABVx?8Zer{CYRH(<(2$lE0%VJt_)k zei|7I8{D+srPcn-a8F)@Tc?{_AId|_Wp=sWs9-~GvfqBD*-YuqQabnR{=B#&Vk6e% zF9GTJ`t+g0pJ@)m=ZM=YGQ%K?UWdYqF|wa&F~N*^_yz>`!5#0gpzOfuEf;nciLdv< z4nYTsb!Geq$@Bfw+OIadZ-^KwkmOxtVWMe^2k~~NY@!2WvynIT4r-vIdF9(5fQ%Ih z5%nU?@3(~O^9`z4s~fcTFw0w?>a+>2H+6%=xhiR6J^4#|bfyd1KRw;4lV9#E63hC^ zonKto^~O+?(2|iksA=;gS2e8==bjF4#IBA>-%f_t+fDU7begT=GWDE@5WLK{OCw5c zaC)2ds$iA-wThUSn85&NqPd^fr?Y1QHxKpy6jN5fc?z5I5Lb29#6P=@YI; z`#m``4R>~4 z$v8GUfKPnmCm2z+1L!-29_)O%IzKRe8 z*;`V{V?|>7r{dY=ZVSGd-{s{GB_1IT4i3+;HZ*MVcFWEGD+r0bPB6HBv|r={n8 z-gVGdK6vNun4a!oBdQl%(~m-IYPPy)P-CDymiDm2#eniBSR)6{4fh&T%tZz_Web#0-~KwS!rgJTVVxid6kU zkp_vM6CGTqUYetyomA&6J^mQ>uYwyl0al@PioRH;DU)HWKlkJ%h>l97nnrJ>8Pi1& zEege7og2^hbyN3c*AlO!pa=CwFyoTVz@Ehl+16s*2HMvdM{}DbenApzqCA70@3#hz zoq(l3%&%I3gJ2_PrO$gxvN`(fH)ZW{W2@U#-^_yP5IAtX^{U5eK|3$(Zw8O1_fj1Q z{5=h|hT4G$7KKdm2cR>1@AfY!gEUvOb>MC?0D1>lDON6(ax`RKIP(n#8a14Gus-23 z`Cw#J7IeWSGLd0(m1n!saAc4sjFe~iu&s6t9y>ma0aYSmJ0oN;wc7zNNjT62p}bDU z<$AQmoI+2pxb+bKBxO9d+7v*OBqyU0S|8qlC)_g_B1t;@iW9s=37n%Jz>~!^D^%Te z?`Wb=^}oyF?4PB-ko=98)N;G0nAXBj9MqVwb4jH@|AfKK=8~7i@Kew-i1(<@wCHKr z@T1&4>1yDr+6E~k?OOTn3K?tL%hfmq21v`z7XzYW4wi>m=<2dWI(NMW#@3(I|4cg@=d9H?+&P~6% z_uAg~8Zyv0ZK!+PY~5l#kkRV0`~JqYc9X$(kS}h=IU~UTW`q(ZR4&Qm?^u#y*qYAC zcWrGoHAdAigEEnY?c9 z8QBhhsswI*iS}mGmCz&jnB5$vh0RA` zdDV`2=K8FdK;7J(YM%o%yH_G8*(7l1b0qnK-7R3uBTFUKjEPr}Az~pyamw<5niJVd z^r2q`)F00@-@5PP8bFr3dj)J4;joz788pji*Lt=3*$B}Yf?T6t+Q}6StZzyUoIR@h zU8b=*=ZdY~b6U044UibhfW!n?cC$lQEeA#V-k0My7A!xr<{7JLcX}KWv$)K}BiS7e zSCY6It7JzR)Ew=$>=|BQAEt2`cb;ss?7Z*fL7j-zh0l1^@7?TJ+ZQm|9L?vPix zT-pwUk1PXhhekwbJ#w3AMT04y3OTH#U;<`^rluyVlFiX7czVe95{j8#2tl>cGLr6m z9szWXJ$ItaW^ml2D&A|_rzg`ahACpLfAC3R-grb6z`}t`?*%U)l2Cvp>7O&=dZk1q ziX(NEIT*$A)3FhJ4AcYf*_4Vw*`j!heH5vgvTOL}TQTsoB=Dp+mp)=0$JgEOK1k&O z3$xC1aTDKsy_N0ji-G9gk(^iP>&aJ=;HPcc@ z&CNm%G4arLge7)zGJK({(IH*>7Y83}XrGt8YV`;@qoLI1sd30r-4y$fUlYoUfAG|R8Ld}jV-c6VDI9VO|PFSm$$LSpX_8>mQXO)?@G)p z0zqKf0U*f~bi)c1x+b%qs)}t|US3@Hgm!&cOpc$TMcqFy;b_d@J$xj-T|x!#RG@p~ zAGC0>?tS&9ZY7`3lDpKa^#L}mwSh@9_&Q(Sif8|@_Gcw64Y8V(U-5420R|s65(fdg z^oxRKU))%&TJJxf`do6Fn@0!Bk;C4Ra&-1dr_MbWc^F-i?yt2WX>8l~DT1`bih{U9 zf2OoSEID@rkJ9SNc2;Ues%qrXLwdLSvVv8rMi=)AKTqOCJUQD3X@48V1nuMN2_}DJ-i52sQ*X)a;>)oWB+I^yp2N+l*JVt9yj0b% z-NKJQ*!_Zx=T4owC**g98hW5ouN$BILf?piq%mI8`)n_(i)`UJ(l99!{ECsVJzf+RR(olSLl)IpO?v)DgJ z8>qaMrSJ-GWcD=*UV=}|~^1~~#l`V<+!1l}oIBFvF!Yfk@E8L+l&oI-uG<@ALmyF){}|HG*6y9j9sH66t?h@)rUVdz?z}|a zf~!MS{k(h4iOYnnF!%q!6Vd@6Q`nNw*kId})q9WSCb;P-`QE4C%PgObjOTBbFz_D* zjnA`12yb+-suIw=HeZU2e@z`FO8|sf%@%&a4i%lYioXwEwEShKsnN&aA@g1D5%Ivy zg?0>dBJBBDrPbUlnZLy+As4NDq*7DqL;r8S0zYwS#9uoDHGX9hU8w0Dp1pY^R)gXp zBPHJcMKeKbK7k}kMAbrSOM)^IuOR2UE?k#$xUjvHipJKOR7u0W{1>##kvc$+n72zQk35)YUU28}#hT{@v{l}*JHM)MlJ*Q< zS!r4sA|2SR^-!P&ipCfb?QFlkc~6)%c~|NGwL!9&<_n|Qv#)7jbvI;93#j6)MOBZu zqIiSTYaib3!sUG#PG^z?<7xGWu5Bj?Oo%u|9n=@ZU3xV@?cu{gU~h<+Br=H_Jl~sv zr_SWtIiRw_dA=W1(q_4#ZcyKkKntMbox-t6-Ok>W{JwRH<+$v97Q)?1N|w}Y6L0CV zml`LC zUt4wVl*uPKJ$YPiCPI9B$~Tm8+Bcs7`@|`eJZcl&)`q&7YS35>t!(C}*a=!6bZQ3k z@{>EGh>}yH3+u@$NQdo{DT||e@-Vb1gCycnpSz_=_FPqhrq|<9y47Tp!O`{YyRiHL z6}Ma|-1~)n#NJ-)s{czyWC=AyZ)i*x27sFaT9UrH%LUzm^xtpioL$ zB`G)|1?g{Q4(6-F-04_QYS_zXKB*kT{_}SuSoU6bKl_%TD1VLw7dyZj;OEd#C(Yu> z3r$H=nzIKDGhZo2T+r2VZHq+^E|)e_Zs@c5hE%uV4FDDeCWEhoQx+qmyWm`BrJ~YU z$8nO)(Aqd>7}IR=Lp2LAxL5)sAS_&qvq{jl{bh$&Z>yLub*s;C`^0(G(eu*xQd@`P z4V3EHk-|qqa*(J8u-6QPxBU{H6jR5~Uaw5|@L=Rt_(D-}r8$*VGB;=g_LC8cag{9PYxQuWRR^1*7R zd`cp+BX))plz#&6pF_8tSr?)fSGn_Xk;{jTtLP$zFuZXgBXh+TM5teHj5$lipY&ym zEDXohlu_W0cSU=vHrv%g`0th0Y0Nls7so`DSL7;G_OMRgIxWS|W^gR~`pI`#fVVw0)`N z%gS8y+v$MCmg+Yo4<8s7%v)WJ5_)>Xj!rX`F+7-7FKv12RY=YH4K(5^NshT^IamE) z6hAooB?o)SxLGB;i>=LzrA#fpWV~mkzvngh>)z36A3~o=2+E1rAo0G06-}jYmrso z7JX&?G9rs+ckZcH7p0`ZUdZ?B3Ce)<<#w3hb6#6|3{E;H27cSG4dfQUS^iJ}1}(;vDJ$?b7J3I&$JQZ7}HS!R5*7 zSmrJOh?KGOpW>{?_U~N{tq?ZoXpz-T%T@w5axju=TpgfFdciLS9R-l=ii6@(Kpij4y?poIPzI$`J{R+>YhAYl14BQ2D_k3km}5 z(s*7_^xCu{uuhieSGJPrVc;w9t*Rl|y7iI~xGWsOINCBteL8%Dlp1PWKIg9W`k5^W zds!F1`^fwymq3JsS(dyL6^7XkRhoqj5PyEXwfLtUjIZ)Ju6{%KL`uzldb3)rGTFlJ z=GXf)8f|OHPR2C{8xOdkEA%@b@Fg^4n1*uFRSp%olA}HE2q1!0^RB49m8Yl}bzJ(z zCnb7m=76KvDt;C69VsJ+qNY$)(@1*ZwDM!73=eb7Hs< zg^)LkvpS2X?9DBymbci%xnw~ZE~XqGe;5T$v$^4-kjsIyjxlY{#J$UsOB(f}66yTb zT=`vGabpvA=-W)J%s$;ME1L{#t&EeG#mE_nI4nyEEB6d0rPU&Kc~7;L;OO7WATWpK z`R>x0kIB2AXE=V;Vj5*7nzwV4;Lj8<)wEUZer3GAbA;HVw|%Y29^vv(%?7 zrUY$7>BI!v0Omq!9=P|h#aYhs+2%b+wga3+p zAeywDc)Ay`{kvz&njWYfg{e|~Dewd3jAVgIM@?~0j|{4F5`wfpuzh*n_@2K(fa_+o zR&MY0P2bQ+$DHVpWmnyt)iY%6)`c)Gq%}g&Ss~KO~~zuIZEp147`nKXrbZ^U?`)IK<6n|CL_06#*BY9Kaur%{$4 zeRX?kVmbDI5TrnyDULF{Z637!5<&E_>fF`19{cmqj7qQl`A&=ex=l%={Wpz^4c)p; zF*a%(Y7PpL(P34HkXS}>leOLc==8iypsjZ{dQRAOt*DztO6ko-YRMrinbL5$+|McP zk$q^(EQnv)SDUzVb;I?&^=80(`%p6=Bixz1pA01F`i&qNd<$PEHg0fSPtAod_!=Cy zT!RG>nbED!J*BF5#MJK5U4DB@*tmxw6_@kP^w-jQ6VNsoBzbmLf{qE`c3k>Gd+5$L zvV4iR+*ELQ-QpUQ3&|$| z{$-yBlTDFBoZ6Qck#|xD$~gLNZ^ghMS=1IKovdODJo->EwMD7ZUTaCsC3h#+95FU} zKAK@_ZZu{tg$nKl*u3tA_|IyoRreW>o@}<@1qRA${-Uf1GHFNJTq{vJnfA_FJ!h+b zV+sd9M1B!rv%Vf3X*v|i1++%5Y2x=V{t`|Z&yNFu4$~vVi-G}r<4T`Xas4EJH0?Ir_N z@Tkw{HPJW4MkbsBKhaf)p(FCTM;G{!LxZt0-01P}LdmlaJUm*LL^yG$?YY||xu>FC zfUNGLlYT~)dA|U>3>2uj`xqb8;k4K=LVbMrY67Eb^UJ~=94Sb2kmdOA=3UoMd$6iB zMaAb1dzb^lr^pz|TB$5_Lb1bX+y>Uww7LM1QKwOpN<^oz>~8e&^;X%oh1`MeGq49a zd-(zzaWDl7d|dp*!GgFgVg{~>hFjT_Q93a``nh85$4UWKu1T?)X@uf)43j{7t?2Zp zDM`jV^r)y;x;SMILN3w%(MA^S23$>ts!!rG-nrPD{*%{!8z%DyPXLM!+J91dTp?sB zo{D?k)Bk9&zm&GJYVE#KDJgB0N6zSNHR2RyQSJ!fb-$eOM&P$LxRH#kS!z35Bed-Q z$)@~urO88*pWR=d;Z=5ZTAOqY?yvK3*@z@X(grM@xoqIYX}RZx)6@0Pa-!IafpZMD zg#bHwo9kp$qWS(QA0u;qy>6E(ZdkJ?dss(L$5NS)sJ;w8;O?NgtVHzt=5C-A zx+r(`EO#lhBB#IQ(Ma{*-~O$RvSa+Gj>Bn-SkGl6g=K=l^@*D!WKE?uGBUg;N9)QF0grTabe_8W zfPf=i-J>BOdITQML?^W=p{sk&o18D0Df-IEtfD0u4C=h4fH9yEMjf}4o9j1x(zz8e zV774kM$<9#BWYl+Qt9p(ncS;7&h}T`)h{MWu|S)I(ygUzSG&~Rcq(etYl!d~oOSlb zZ^P2LH6bG5bP5Ysq>}Utr?NCG79H#B!Fl8@b2?pgEWXmw*t2Zyq+>5OnVe=xy<@)$ z5(dfYsX7B>N=50%yR{d-Ee7`D<|L$=2w_nTs6erCSa6AeTVaG2Y*G`r`F67yn{=+q zA(o(jljFsxs(ozqPX*;~yA(!3{_nSMm-xRDa_Pl7w?pc%=Q(;vX#5z9|Li;tSt4c|*017;!mB=sy%Z zekk4(4ZwXsbLedjUrSI`d5olwN~gA6#AExoCu3ibBKb|7yXv`49%nTO{_TGY!hgua z|MAv=IXuZ2b~i22md#%D``>%mCiMGVWCg%!u8?GjL>Zj5gz&HTEW*F1hL4AxlGhym zuJFV+pNQ2uuN~Y{B*=mRT43?7&#E=h)FlP~C3XMDDE|^g;eUpzI`O>#$(30=?{X*@ z<7ZTAksVN%kmaC{qT6^EX@-1<4JEK3WlW}EB*#v`78c8sH{B>}0clnK`+x74C#YtV z%sKUSEgwOGiF2Md8oRMbtw+&o=&;(kSn_DTu^N2Ev=K{+a1HLLZ%j0j38!(YEhGY^ zh>n9{98S>9*EhSKFaF25|JR4_n2u`Y5sEku%?ZT3F@j6N-ib%Qdx*v%^-*+YEC&)Ia* zM{@SPKKuTZPTQ~-b2xr3R_#`MgXy#jr!IC0^2_EaR?F6nQup*jAZMg>30Z4X;Xd*l z*>C+Yu-FUG6{_=o0arG?n)*9WioKe1(&RAuj!WWu@6w5i^xZauOI?}r}yE*A;H15f;Txau?7hV+wPJU zbKF8Y=6Fv_;lS=Nvl5U33i$_-qhrpD0$%j>C%-zo2-i7kI6#yy@Agma!H|A(-|W46 z8|~q*SZ)l~Tv~hjN5Ou>kQr7Kz!De2{-N?T-uj03R}6849DNs&JE;N_(v6-2$(#|4 zLl?bUcGhjL%x$3Rg9ItBBmO}3NjY!g46#qt9N=PRO z4Z*rCK;dyx=sTR)M{=Z*_!h*RAD;#95#!NCC8X)m#-nJYpymH4_W#FfFyGCQh`xaX zPgA{vChb^QSzjuNE)eM6yLX?113>rVmYztMfoGlPOwPN2tB4gj(Lk0bm-k~~E72Ej zSPa_I|1V?rf2*>;7O)WiU&ss0?XBySd`!^Q%p463@~1hn(29rHvXA?`D(;vf|CQPOe=mVr@g6lbTx5L@1BaTyLE{DK zD%_+uD9Xjiv2w)O%HIpEIPEDZV5C=Ce-u((u|%#%=0@yKTW|G>?QoLKqBt(wJ4s&) zs~pqvqMZHj#u6naMroebT)3=lE7((^@leD|g{Sdd5^8pRT;atUaw;k*qV!#vG1V0v zDO+EEMOBbfoRjfgNs?kq1+a(&Fh9XoXqAe~>Wllqf2SVQ^RM{&ze(7C-!JTt7`VtA zB)f^3(*~NC_4JeIhk!07aqGTn?>~kqa^wX#V$rH0Q7PgBs`bU#n1-04D``vGF=!bUl->h5l#KklPfyg3?}{TDWxQzrq2jF01{`0oXm4}YJ-E&YVe zi1Y2#Wo@?RbbJ&N@;V%-HmCa#jMug_&m~D)u3;9PXi_5|iH#*?apcDW`Ha{8O`T|P z@C8%V5q}XIsoZ$eV-wuaL3O+uRb>+)RE<0y9sa^VBxz$2Q=jy`xkGyTC*mo@8iqGA zk_+tl^3)0e6G}khK@O+L23)g?bN7M9cDmG*6yp8kqN@48z`Ma!U`M95DHY^EZ2Syt z0s?;w${`ttob2D-{<(%M++7#%mRgU+Zn^o~7aFbc@7v^p!d zYsm%f3gqope}sU=3XN}3D5)>nf7dUbh^7m<-#MBCUf^PQ5#jpsgJ{QUh&g9GD6Bf_ z)CCjz5}@(A43NwKi;nI2#(D*G7bTajIo%G07}XB%i}2TpibzWeh?+u*W`OV`b%#k<$W- zT|K)NJ1NiPBpKN}yJl7GcIhJSQJ?^S<9i{q=SI*z6vXL zC=nJ7E+b7>ocN*WxDo*{I=zz-Xko=m+WmsbR$iwIFHGtWs#seq|KDlOe|!jR0Gr9u z*$z6~NC7jvlfFkntak*?`viLGi0~9)wLP7o5aED`wXL$BFUY*M$cfjP9`kIl;7WV* zlMBOT@noqS1=O~ZMD2{Gfi30##z6`u4B6jWjl)Ano(--OqNDg;hu&)m*1(yton>m; zBmRud%tW-OD~AVECF;`iG!a51kVWp*ij#XqD}UY!r#qJ|0-Y&8?&D}DHP=NC6#l#Q z5&b2}Ap3_T!!-!g4mV!SqV+|uGDjy|ElTx`X|(W0%`U5WT6FL|ih{{pO6jW+_4i?P zFk%KR-A1y^0YC^*_%{bMy=)s4y!@{g{{PV@{pZ7uPxpL(?r*HdQKEOb(Ch&vLQ)c9 z1T6R}Bn&K8#l`T2%W(z{1w)?#BD%Q*Z6b+@L3>MO4n!|N9RFN4!Tjp6qVbLLau#a6 z^xv&&6yJan&Dv__bpaZ%*+q9evIt?u$<9BGXIBJdDN17G1V102O*EFC!1GEzV4ba} zxaVC#4YueUGaW2R9>$(X7r7M<2vEcr^sRBd|Jlv{-|M9QdzU$@B;Bvh%|SE+1T#n{ z%SHmKX`fhQl$(^9naOdSfR6*ko*$-(*{|dztsd5(Br2zunu-`Fln3@L7O+2_51>A6 zq;mFEO^RY+4yYReJakJnZ zxUy6@%mE6K;-19BskV>aN4F>F2TVLM-z)wy37H0X!8a4cEfUE1LIQrjn-qvr|5pv^ ze+X;-<9V|y2CI$*RK;x;CIA>DI-&VQ_c`p?WQqytPCrIr^F)$jb&=MtLDypS9J^Q; zi5Rz7VHl?%itbzuSRhY@w?I6-9{C!^;$0<9UZQuyNYgT&^=ET^L! z`86B9cvRv2oSrqdTUz%1Jr?(Q4|y9fj{D+8q4Nni>)(6qdHl#M2^1h8hZBvbrG2j+;f?+&}L`v~3d77qTo~krVwD3~(!#jM^BoY<{*6`*U$SIj@U%qX@lx?&Pcg-2ot488Jp-UVvX}TI>5ShS3bP8_{U_ zpwnor4{TTr^c1FwDoPVfI=Gx4nDI3km~{)VGw=h7zcfEKIIQ6Ju3h)`ih{rIl}LB_ zPc8sCZ*!>rO$gWlU8DN=a562sLhs*sZhAQ3>hg7E$ShaatL!zr{C?eMDD6HA%z4yS zldj6lrZ@-jE<6Ye9vw}12qmD}Pa;m1p}~vNV-Rn$$MJ?+21iBEI3;ABM&=O$sZU9O zTjV6*m>cERHc+(e_kZ^UM)BtmBCo^2*kIf&SMP7?Es`irI1tW&@;wEuktNbm=SQ7J zJWV%sq3$IpUS{_q_(U_v_desLqc_m=9?1_~B*x_9(Bu1(I*i$5!xbIb-$$xQw?LN1 zOwn-zWT%n*hikbFY{)W)B2Zpno#1O`cd(Hg@fAIhwa0?I#`zbepvfGQz{ z<5z!5D8qz(x2o+J%`zw&0U~$*W4EyJ!HDr5c8YA5a#9DN2ScVp(n46oyrE;^E+;1! zi818+ z)`p2$WK3oMPWC!u@LkCBVVIvm3%xgKF$TX6*2##HZ?x3L#D{I-Q?h z8T<;Y(r7eAN)K~YbO{?1HS0>_tsh2U(NO`l`9NXVwyvdQRC3!D+GV4{pc72(8eCzuFwikq(<9|$SpP3}*Fk4-S!ISFQ z@2^KzedhH;+=$!rf(3pu2vbK8;UoSBd{<6&=9)cSPUjGZA> z>Q9H+iCy#GUXwEhOe}(Fe@j({QkH~Vvvu3)S@+Zdy0vKKeTh2 z{_X-ft;WjC6K~wOz8vquzSO@MM%*zi0l$vMxhPJc7+@FeT=l39?owYT1HzDZ=0I`I z7l}!sa(22mL+ZSv0~ZrPb-pha>eGKfOjR-Xo7Y#FRWRsOWM+||_w&BA z5o5c-Bo?ja^XEqkKTGSzq+?0Rs3!k7E$&^6NtXuR#%&xxZx)i-fd^qcJu_A^=MY=dP2rcrQWQ zy~`RWXF>6?9-|B^drr4GD}e-Su;ka2Ei&_rm#|YWniNu_B29tl(JK)mWge~;!A z=wA9BnRaL>jaLtWs7d8AzsJtwvfWL2#Rn17o4=1e5qpq{jb3%To5CrF>y9>R(-sM5 z7CMyP&WlJ4WW@#=A)l;EskdnCQWARi40iOO(8P4u>6TA-kLro_Y5A@`ST0MLW45sj zm-s6eYg{Q43rk9^eQIh|0V1NLNM~x8r!L?qwL2o>U#L+m+!6Sa%T}!Tf3%xW+z$dd z`d)7u00lq)*bP*>wSm}9-j>!EeRZ4Fml43LO}>P-q#)L_%zTchvSd`_+hr~T0--AJ z?;(dccUdMO57 zD!Q$r4K%0wcs=5%Q zN3p<>D~NXf;;%-+uo1CTgA5lo6v zBho)hB)y_hi?2q7T05IK23UkK?sd28v-gMuyT`ag;R_&oTmMsHTmzkeg0tfOFA^5HX2r!Gm7k02K-lb|TJ zp1g|YIZZ{7sQKAEG^d*>O=`tDf3}ce;rvwY4Y(@rZfvZa{fMCMOVjy7H8m~weV2<8 zF0{8Z%xM9JwWGq0eLh+e4E>^KKML;P2=dBxthQb1}({Q z5uE+mQDctw*psnl{X!!V5)&)iX7G|C2l939>5Z}2ETsK1kPr%mB3~`Fye)rrAJK6y z9d{D9hZ%)G-gnQr%g^x zIUx3=04}pes|mp5WVgUkVY+s)ED_z~D^pL`i?qVdOKQ-Q%PpSuZ^c~;eInMR7!pfU z#gYE_%JIgszCR)+4tSO80k8EQ?kY#?qt)NH;py#Q+LJh? z{{!UeJFz%;a6SjW7_1Ir0p4?R^^M^fL(RcSKAlo~qt)x3ZJysDx41m5AXTuf>=Sk- zw%I@OBL-|5Up0o)xC-Uku^D-J6P|EoYh&ZW3d6(UYL#&0^=5n`4?3rL2to&T#vhXn zi=0~UI)GlAr%(K8#sX5y{gSn-B=AOJS5g5&*HXQ6kUXkvD>rrJX<4T=op`;9<~rDmft-`B!fqKChBzf<6K)XGg{2bLrRACRg(8iW ze4NtNPJcRyb19Lh9K}zzCOQ1M&A(XqV%qj=xAY1X(>~4{~vTydG@*qr3h1@#6eAzW7}2%}x9dV>zDoq0MRbk=BwfJ_r9jl4W%A+_;==ykzJV!za1;rOkcG(Ao}T%1 zn_PkQm(==o$8aZiIR5^4bWV8*w=_|~E;|Iz98;a5BJvM%ev3HU)|7VbG1}nM+Dmxk zwZ+bK+-_?5j$ai=#bQr^7!Nq76Vri*9o&JND4G#|kHN2)%WY;EVoClJdAS~0`mBqr z`}g2zK1(c!m&y50g&h}NlTWv?(49H#KQEuuH@ zEhhC{O~t;jv&G^9L@~Pla}dO(OsoPi7BF0I1YCa&4L3mqNGJ)LyS`U+#DHMyN@tt@ zNiM&VyVsbeoGlS^)poPW?{@{cWOT|3;Ij(kZ}~hzrKr&wH6 zpptOHaJDUcbLQP@)YSArM0kdtdDMciYM!o?#JKzkmnf^KWUtYOlckr5!o|lT;cQ3? zChGFGzN?cU4a@JxdA$KyO!(R=(yKH-EP5a6$45sC6^rm-{Hx+v?&gFNX-}AcaE}*s zGFsSq=>xtty!U*cd;sod*;{Ow{x4jsEC$!g{ukG}NqFYv$brH3*|}?1W+~sbe~en0 zKev1~8=j}aIAHi}9{75gfhI5q$4y(g#mC#i5TBSFAZdJ9^ye27+nVz2BUamhH8nGMgbtVY82LcU=Ctwh} zpB=a9ia~U(9~+u`XB(xxpbHt^j;o!4;titbo~TwDd8gjh#j{ybNb_%Wh<13&ZRf7q z$1W1tuk|?*}sjT&l#Esg0rQVAA9L>)$;N>cnD}d2ksg(X#}2;U?+MDP())GEgPQK`cirxdTrI5? zQtz~86@D|Wy`F1Ya=geppW=H)Ku{dKQ|TKqxJ|x*HhD2R=)E8^Ey5a?*^1;7`grBk zPH{>X-iq-vq_jc=9tKWFdZ}2kGV(-(&|5=O>t6 zDF%JQVVDbUY57JL+Qsp!9n7GJ9$0uUM|a>YcGnEb`Yy5|rShsQuH!HVq?;Zk`aCH? z?x@>xuepSV{lt~zE*E-tJ*^|HJtEI&XP~E^IbK9~^m`;<$}f^VsY9&Ym@{TG!N;EfBTI{ zemeW3YVAb)`0XF>eu%6QB^)SW!*0Ulnf8vukgO`0n3-`fJR`}+^}c*?($jhp zY+#D$J9#Q$e0+ngZU*7GPES>{J(fRJ$*tqjK+n_u`%-b@Y}jAd9R9R&aJ{XMa`$jR z{rRy;xVCaaIW>ESM@FkMeU-*xFrcs%N>Z5JYE5td9#fDm2Fw{$kk&)IkA*^S;f8~O){6|1f|e6L7nnSp05nRXVeBCB6?jvOaB;l8Dh?5H znpp#5Dc#CF)EZ5-E!wflXk(6K@hb2UK@U(8MM5{o`yZ~`uGk1B0q|)n1eu%2e#UB) zbY9RFpNzJpZ(yYgmg7usH@7!=2~{^cs!T29I3Y|L4j(yemljv#O-gWQ(Aq6d`L3PV zOuAfXN+n(2gnyu<7+-_4PIJG^JZZT3x^vw$cZhBO`NsV>J_bu`I726$;NTp1t@*j= z$VggQ(|TDUh;QW%^r2N8Ea&@^-Pwb3-fx)d&ye;+{^R47N#a60>6?sefLBFs zV_^=?+Mybj6GFm_u3O6$Opkks*`nFf$jM+oxX9aSG1De`!1n}l9fVod-Vi6J2TJKn z^Z1e)5KYy88@mO&LPkRz-WZ+w(D-mUhEd}9Snn=(OstP!73Ubs)1V>(@X@U8wu@q- zn6591{K#OmJl$zz2P@)T7zF;Xlh>4m=wOQBw`FNSaWSJ-XsH(A?1-o~yCNueTya zuMYlr4p-{in!gpl%UX>xpvLdHKEN=(y0OZ=Cs1=WN%8Hn!$X%%JH7;Z1#Ug?bUpC) zc;rV=J-2jsB&VI9Mgw3D-J&afl{=8rxOnE^@?V(VGW=;kEboWS5FS5B45lO3}vWKqaFtzz*5q8#u)_sy#c@&%9?Kv5*6rNNIcP^}iT<>!>K# zw{6$}!Jt(n2LwStVWZM9BHhv;Eg;>^FpL6ON2&Nz-EIcd>=A$w~G)8tEC(*Er*tlL2$QhpTjb?j32b zpfh(To9ePv<{yM^x1Z!}wD&+=CJWWmwiYPx4&=9FPvLvz=Suk1R|vqgKnIB}iMriv z7{KC8@IXM++KV(_czh(;N?~R7qWKO3s+f)Kd$p z9sl{Yc|weLXrBy?U}(2H8lx(OW!1fBW1P+__J6OXumh52HObc&B2l@;LIAY5uill; zqqk{l+1@VQmS0*;7bT+9p9}_qc!;@CMJ=lUoiSMV$i>a3Zp2b<#0#v>Tb|Vq5ruXj zaiH8$`VWdG#@xU0yiUWCn7aa4dxb@R_r6M-{!FJ$p(QX<>P?*+duF>YA+pYb1c%%q zjN~VqSQ0_X4>YHzq5E;&rr~;@9vZrTnS^4HhxB@-kNeXBKfe%B@24&3w3<`a3_t3L z>pF)8du14)CsRW~D+q*-qow1C%5tsPFWA&=o41?kOh2_n`j$?UVokeEROkK1iH=2* zY3}jn`@!Syn=308-MtC2Yg)nUo`DQ*8&_?)L%DW)!fV{T+X%CmWZ>P)HY(wbs#C~< z*BZehW=9OY#`>G9-*?)dV z{HPN{l5@|aE&(ftQ?hKCJ$;VZ)4c4h5{RL4HKiTk+gwl{@-=6uhU9)n3~(p9m=K;1 z9Bjg?TvdRQf*-e}L}v$F?WU*Bj-?FzGl~oRG%qrn=$WnUlJyh3A4jwL+p>1bi|ao) z=yhAzLby|N|6W~bm3=onxHF#h&3>E}PNsi(Dqm`4qba|r`2aYy(6WTgSi;IJ=bs&5 z>$`9Z*|OWGn!udQCR56dh3pWX2m?lS@DYvK!Oo?i_b^ndYYTlcW$enN*B!-TqAoPW zzk+*l9P>>8wfd3@Cm8k+7gA)b=IJO2-A`H<)LojzUN^1SHVUxBT?_CSG-1TyJh}SI z7S#H9CGB>nYgsK=YtD|R?%maI2%y$XHz;DfhQ}^RiBJV+w|+F z9iy4fxBx*|)L(Y5A&we<2PCC(F1#0dpZ;3M+}8(9aq+kY$;f<|;LN{Sx(-*C#7#VZ zhe;*_1WpXBUgL_6mhY2*SP{WAW6eUI`l(gWA@kHL={fu>u1qe@<@&@jJW0U-%J35S z#Dk>hIx9_>1fC|~vhE~$h1&8LiFJ+fkSslJS^NFJk8ks+JAMg9H zaHPnZkdm^o^mJ9Q^JS-MucKJ=5^Fn zQ~(|u4avqKl!^jRf>PXsShmO*Euu9Icm}*o0?FQ~?~0%s^luxx4 zF;9hP=&L$RIc6xG+ZFYNu1U>~YD$+2-#SC)hik&RYw2hyByvl4Y*FS>o=y}wNxE1S zz)uUvh?U!GYVb4o_2+HIu8r}?ZLfVK>c5c3h8$!@jKs_1(aXHjCL)mhqT7iMuNh=&7x zchc425?q=OTptlOt!E^0lg!#W-sQVVYQ#}wZ{zX z`9>ochy2pikTrVv7~Chp*dn;9VDPq452qwuccX>cWxvjavD8Q1IaO9WbV}hY& z=}qo5=qjCR_F7Ghi_x8r*6@Q6DcZUt@kIpbK`Q9H-7doHr!6NZ56^7EKOubFEwlaN zJDn88Qky%+ImJblIVd5g6uVD)uNwlGBC(R)(G0!$mof$n*u_lXemYn`8WCF1p;JrX5AEgkq?u{|u@4P=)~Nu)_^8vRDeLU|cn@N2K${@6c` z4z((fzwt8Ya{+!-Byc2aLyqNI`nJ679lzF<{a{W}>zuf|`Q+m7Eq+sbU4b0OKA8DN z-+0NUL9Q{wrv31K*qK1Z5seJN=e>2?+hqKs=xs-5qbvarC}h>>7Wq-ZFc1@rMjqNm zo`(T~enNL$c=jx8*p?}``sp9d{A3#2`G6^02m6j^VL2xk^Fbiyg@(=IVE9#RVLaR%!4`P~rPxYb?G%Yjp=6(gIcWZ}b^Q5OKBdmfGopxyyXP z`&v2zqQ5yG1I1dNdAN1^h_}H$aRAW*KTC;BAwf%L_x?sRzxmb0ihr_p5B*gNo zPlG%&kXHz`jA?pi&0{kV)Z2j${iNllXy*Q4x9x zS!+iRDX2?8MlwC~V_OzBQaWvcx}KZsBtBT8{|{j08Ofe^h$vuBylL0L-nwdgJPTj@ zJ6E$^xqwe-QmyI2yJp!8b_)_Ol)jrDJKJHh!ByuL;@%O?GL|j)s*ii7IcXykL-gar zSQ3=8Q`o>lWrB+{h(D8II_}y9W>ktrATOjT_$Ya-V1S7mEXGBmeM+UJ;eORLVJ0J} zUuE4hPIg-O(9WY7W)+h7ys)L*2zQf+dJgaS%Ra!i__^H>RJ|(9vzjV8XD{9783bsa z?;_;#%h%;wy0O=HRxJviZ)W0)lRwgTP7PXE%sQW6BZ8K(vojgHVG{aoH)_&H0k8_ZDv8e@|exBLud_ z{u>Hy;ZgE=*&MPKHu8n!2t)<-z8VgHsv3IMajOf2KyeS^JoueAOZ$hmmm)t=0N!1k zX9zh8`!}>`%%_{>@3~IveR^hwjb40_zlFRwdqF4-Tr?fX@@DaOr*Uyyu5za%4opVo z-JHI4QW&fj?z-|D|L(kWFN8!Y6WIEzsj_C>e5uZ{p4FOt$@+KaEGdAQ&HbqO=4bVp z1L@CKySW1{b0PyrvJq?_m>-?lwfmf@53WYnd<`j9*a*4p&sJuY@PHwn4`@haMvYpv z)BF_0K4O`}rkd|r_U8I0$`;Yk*NHOya*qT81>KJ0n@XOsDFuDKDMl@T!+5gzG*UT@ zkzrYY=Wh8ms#nadNy0>>?+h~uF4))2#Gr_*tnOozoeE%RE;aO7P!(7O5*xzrx#=(` z`Z@2|rL0P-e(v$KGRZZbe-o{kPJlew!Qb zJ1(XkynMWLar&eWZoDL`g5|4HeVqsStjn{wS#z2YV;68S;GTqQ+Tahh+S+<_cG)*v zq~(^!F5YQrKX;?S8Kq`FHW0a-PWE82-0!(tXtgny z?4ir#VwGjqQGcKm=my2G0A79lF+S?{6Gcf&7R8|)p#JYgT?AdS?Z) z1m6OkE~t7O4r;7mz|9&%V$1%};rNB)UVkWeQLxjXlq1aTL5NMQ^r1jl^lRah(CO(V z#K~^NA~;!(I2n;5Se~^n-BF0Ep1cwCPsg$wDNO3U+zBZSD{Z&i#Fd)J5RlhI>Jc^u z1_nWxxh51FpayC>T-G~yHu3RA*djFi=(fm`U;Nj`6-hBn#xLwxD`C>WEO7_1tCYBV zqzdK(^sAp}JR@zcc94QdlOH$@c(-oodeAXZ+}vdsPPMX9dpg*Tt#Cns zUlG!L;y)z?;S^NN!VoTd7Y5G)J3gGu6;la$^(qW6=fYnimuprLz4@BL0nQNf2B?&E zd+^7~{QF1=XV|F)!vU21bCdUmp!QnL?6fW$7nR?tk)oPQ+%y&Ao_U93TCOFZHDof3qqrcBF64W3s!%^<1?s53FM;lb?Mf*BOPyu5QR~ zU}Y712ju&0_VoxQS9!x5x8A)|N?v$^a>0*vgj|DCgafHKcQ<>66A`P_MBRYJT^Vu% z^K%fg^S}h+T6vvHTJq^=wt#g?-}U_aits*bxuhM$BT_l=Eg76}mUu~9>=jT zscba{m-d%6^P~MyBXgfKVKaq9K2ly~v4cFP(H}EWlZNb~^#D86$y_r;KVG=RrSP0(mL9)GR8s#4N&{78_~Pq5_T9Vd7Bfz*n?PIgRc<`~@FCOuZ*Hai6?VnQFgpS| z&HSKDT1_Rmq3}&zz-hdLOFS*h=<7>`=^~dQoYd*UbH4ixhclzJw+V7X=3Xt^{?5bZ z;8mE^k;rI@fslEV8>K62L4B9;mB4Q&L6Q}B$LORsIKV}Y4vO7|;jhnSx*wE9`T2Mv*=?A)pgi!yuF)!!*l-)Fz}m(?N}Sl3QTSfK3ION zWqq;3(TF>zgn<$)eB!4*9dRasLWaO=JUgrWANyIP)%3x~k9GrMDRULjs#_4hqtSp~ zTje`fWq(r_3XnYWVc66u^{ev;19>5yB9@>wlMB%S;|M!=IT=Qt1A zm~DUNedA3#+~Qj>q9+JJAtraVJ0^aC;_s_|S)i0jQ*LK_y(`Tz{prYB=%Y=3OXnM- zSPnURE{c%fNfeK?x86A0L^PJ$%F;lqO?4i+H?<7;YEl&FaW^6wB19J5F{XMAC0=qo zr4^g#Jr}$EI12spIzOw#P;OGI)vO*=MD6w*6y|)B;P*f%j)jtvRnvTXb<~S_g3mV0 z6eaR@b$Mj;0T~J?a*hRvSJUNYuvs~!wNo?$sz+K61r@5K@pGRQy;w^QDMs@O_=B&6 zUZEJXW^STQzqGULqE6g+IT0pSk){d?)H`Z5-`l&o76Qz{PlRnxNFMLfIaac8jC3t> zaQ7~Dmo1p8)bHkMS_cTZriH(HvA2X-&=?qLKBA3O?l^27A6D)d4E%dZ?7T>(q@Qcm z)cKyAk7U)U-F1$sr)A@2G8&J^0 zQTEhb(?mp&g!rOwV(drT9CWxn%>DzazZ^977N@4(Ub;HkR?V${(9vNP=z(PuC6E&! z<6`2X;%^gSAxNvQcB}!L*As0y%e&T!1-~A5Q%M9JK^PA|EhUQumzNoP4^#_FL+#E& zep7jWV2 z!F{+-_!X)r0SE78Yx=EfLxlhSN@?oHP?S12uY$Q+Zlzk_-PAJ=47npE)jfw^C5XZC z#(7fUof;qFPMr~^x!lf;t{J@U$gXH}SsO#AhqP(SAEmwoKBC-Non~WQol1bnM#JWI zD%iK#6;j6&;yKE@?Dz)@sz>RV22{aYGuy{DC1NiMbo|4iVf5c9Ipw@YN5hrADQ}06 z$uQ%$X`D84ZB=>2*u_#gX6zVqJtMmn1@sCOx4lamrFx4h&bE7HKuv;&JE>`DtB8Zx zedw;ylbxMZ1Q#X}Ho3&&8KUw96l|vA&`@G-+jy1nuAQn2(fSWkUIpPCeF`|=%J>95 zT(LU~Uj;CEv~vqfAD4VGmkdp-T^uq$l?EQ`+rkA{UwQvxYVmF_=O3LX3Z;`vBcM=8 zsWaW_m0dQ`o%5y4ujhEC88!j?nD{ett4HEHt7{35^9_PxOa0xkT6^sSCYS<)TasaS$FX01K!nbCgdnGxat`yc)N5hT>_4T=TurR(+b zLZRmE+o6`P+346ALjq`vHRxV?jE#)vc5B98PuX1egS{OW5oPM6t=38FU4oG;El$ZxaBHTNR|8Wpc)gnlsH#ivi-H zf#j%jX!bz0^t#;c`t;+ttmQvaV#af|hff-#rGIES2>ZlpWP*B+Oer1qEA@x}Y^@Jm zioeYWY1q3RChs$|QjT8KjUGi)RIJi5W%=p16OYBGMt)Pr1P|7Jv%I0-D&EIB7&>Hvv0((NEPR(czfv(1#kL#W5tNKZ^u{ zR7@Q1kbPlU`DrhGmL_|CwozcO5qP9mqzWD!T>%FKe7CmQRQ6Cw+t~1OItozNViOXQ zt^8FxXyr((^nEAphAL)~{d3~C@JRsGK|yy2GnY)#702PWLfAF-iKYV|d>RrJUMnsE zIi~)RzIas16yzPg#Cn-da$KZ|SNE5$YyGrA=qbl?NSQoT-)po~n&1(IzjvSbetVK+ zo1LAei+9^gL(}Cg1KBy+5agBCO@T{!u|j& zCDCzi?lHy_tWbTxv3B|!dsfJtj+`N*C$x9E$X?No%FRrYNd)*`sMaNf+tfbA^en zx*zE6e;r^)vhPH-Y9&d0H1;T51|KUb5c6d;hckEg=0qniQ3AOr zlv9fI?B&sDx{J=>^q3MNAdhcx6Tu7(L&A)4*qGgz!L z4Z2}GgfPG{MJu6|I}Q-_S|0Uk>fQuM(L0BV(YvH|MtSJ!UhCW2Xss(+m0Gw_ny@Ru z!37nqflIx(*Gy7Aa;K!YkRZKDD)~9h|KuXRRlKg-Mz`z^gUw(outw zq)|ohd{RLJyQ5>;UaOp^S3FgT+0M;VPv=xt)`(w=+$%OwRQ+XZZLRF!&;S&sEX*$j zqB&>KwWZ6N60lhEnL}S3K4^Z={1lI?JRPrscOOMZ!v5GErM;;v0ScH>=$koAVg z?bR_#9Z7897WT48qf6(Hk#_*^TF6dlNC&3up@Yve=k|o6=SD=r@6wmY=Lz>#`k%hD zG)b&_0n*m~l9!kFDZ1d#D4GACMp=w$qd7;-9!1DKX8beeOQCAwon(XI=cxfKYxv=) za}bPhJY@?3#F7hbEi1lpP_RBe@Vx=Mzpw)-eB(e&ZOqv9<%u%g`qkZk(4aS6&6&`yDOr*$|^;slEo6{8s9zjI>pHB z@5>?e&uQ2enDqer;s7OxwOV(*?C9c#P98;sy*{m(M>#IRxtDhLv7NGoEdOyi{?c9KDC#qE$JX!7y9uBPF|g>2=0fz36dhVV`y%DDZ{h1#CRoopx&3}J=H4zy zn(~y*lJ)+;xj@i z#cXeF%Y3>n$H#k0g}lpz9CViRpZ^`r{D*tzf7y`_SFY(DyKXzQ!+4gb4YB4i&nM=# z+k&4xR^hLFNlDvyV=TA5>w&pk>xiKfW3)O`3u74NC{x-EPY3A$to@TTR@0Gb_4f0M ziW}JA^TmmOTbFC(FJ0OScn%fHGv0V(jde~Tt!TIR1BrBbRJXhAWV(k`DJj|68hEbE zRKLI9X|R6v_7!3{a@-xp$|Su#%Dyq>w?%Zf#(L++lh-HxJktNom2+N`!9UT$mx>)j zN*IE)df#jUa9RrS!2|AF-x4!Aw8B+`kF#SRXvNV2-X{1>JP3SHywaY*$a7D{gY9gl zCoBY%JB&kUPdq%_1vlIw}0PqUkF{hKu=HDviX1|fECB~cE!XX#`6C)h>4&d;_(Qw zZPZ_5G+~xx4m7pz%;2l4wv>%tDGqY;wz=oowQYa-dpPUDJWsgV2 z@*cIBSS3tw()(0vk)>ZyXMZISabAP#-?{#8Q3LU}*D?Xn^_ceqx|P~D)wZ@*S03=8 zimW#8j6Ub0H1E3njTs%uZT}q>Y|COzAr3ykY?aH#?j&665ufovZTEmH$qJ@ zCdcml_yhmvP6wH4MFA4?z#hfn;OZN~a+ptrfFBk>ivN!b{0~tT+vndkZG={L1-BGp z(t&Z5%(*Y_mC7rxhcbY*pFIBIur9vYUK3??Y%1B!*N_I1etAVczZ;>)H?LfPUulL*Ow2s}B44F6`&0w9dLtL-uDEcz(-%bbl)y?I*(QJep z0tIo82~&nxfcFY(B4nar4&%*dSwxo2$tgvlHKhyoCi~6>|E=d$@K}7mgXGliPC%fL zh%{sWwQ#Dg`l8zL>AaRL?y}ZLKp5-}V^eLF>#~s#0IVA_?fB(drZ_TgwUK$^ZvNl5 ze_}fK%ll@$5D(TpVjdNKTPsBT0ls2YDDdq%-LS(Y(Zl%9A7F(JPw8B}eei4Sx+0CM z#v<5V+Gb+@@a7s_1Y~?Lx^Gj68y_vy$~5K$?&J7GWg0&4^WjQK2PY?|I^8Rc-3(Ts z)0`F6)}MTZhG!AL^L*4~rYeb*qX^uky?LcAtCrziowIK?7(0_9Q7*W9d$c0=R zGl>o~XsvW;h?tYueJ2vQ_sQHerS@-oQe%Tu5lBnZ*_vvl$0o6= zx|a6zDdDI+Pd#8xU#1^;`T9#T|Dwur!j~4?Om?Yg3H_FqtpKC*NrNDsiYfCNmrO4J zNXf4^{mYkpi>*6GBECU}-4@XpJiqe6TrZhzCSQ9089xOLzwkfVw^nK;#FEY!nlfh1 zXjvIG_L0W>jZIaePwqwhM%kjxBFI%~Hn^VVLXMam3{aZ;Mx%X#d%=UV*AOjH*RQE! zsfJbc+6#1=LwK2BSqSG+?eV-t>BRD^)hi;8Q_mw4_*3Y0o#WRzd;w2zjlN$*Yf^6~ z_4a3h>9dO+;&zq{1RgXh>T&to&PAV~sBX8_us1jMLa+PAAZ-T{cTVqzo!@ELde^sO z5pf3 z^Nl;-aX#v2tzXOo1xTb;zWp#Dz*{mOT${U{Af5ThYFavOfkRWpRv`ZTP%T-VRNk09 zX6#o;9>qR?=QzE}Y+J`LOZc3%tx_Y-CrQ}fIe$AIV6%SKH;tPz+8J{pw6=-&nc&)L zTN0l#snq;fp7=tnm-PKyZQtk@fF;cW@rJpZUi&fJ#5oFWY&HR*+;+oGj=QsT8J25Z z&1bEKM^8H8=DlY-iHGdHy~@unezsfB{AAazv5#*O*#xJeTgmjcX6`4>B2H&l6{8Xn zi=du711>SAS6RcfVpD!tc}Wn6xH@?fz7qRCLk3c%6wLxxAMreXqLf#KngCuqvODs1 zb2@T~x##9`pbD&v8K%3V~e*mX)xW!dqq{RJ|6ny43^H6Fwdlz!&U2hsW4F^o`?=ba(AS%w;vv@!b|F1$VKbWgrI7|s{=~ed0JRjrDWArq!i^ytZgo88tOf+ClVeQW)>U#{%Y_&=qt2 z79)*0P@!5N=61cqT7TLPWz1-)}j_8w9s{BNbk18rE zn=v6&3FhVj6;0dHz9xRF1Qc@t7R!k`br$I*>UQPT)fq-fT-YMAhWKnY5FlkEhOAlH zHu`mfG$zm5+FI#wsX2{eXIA1@u8H{eUku|mG3MLq%Po&Jhfpt*pC0d9c8gyBTup`) zUydy}*c5oq)i1jYJK$K`B*39?m9Pmlqn3)1ZrZcoREIr_%gu}hIjM9qY>T)>yj91C zXA_G7KYlm2JS^Bk#)m9n%pb0Lm>`2ZHs3Gi4>V6DyUsqL^I_(%B^-T}#E;(r0H4+V zS`b-db2Zn}egfN-F!?U_>O5nZtDg%gVnxgJ!KD_;U-~@G=JbgbVt5l0w4&C~N>n$_0kKhRv#(bo*r zoRY+sA$M_yH^=&#MO^v$W2dabRKt$L`sV1R;<Kpi zjEANgrFtATBbA~!)cRFa!2_&~hy2}6+ua(o%#cM(npaEE1;66XsT&Dh+SvDU%?gX1gwPqSR2L?OcVcS%;}hy@#ZU$4(6 zeqY&TE7}P>1_e#5o?SE5u{!l)UTHdz))caHnYZ`Sw>ZPlYXDAQs!rJ4nQ{1iz3Unz zqi1YCcQT|6)!+>ew#Xy2*|`N9s3}Q+X~DsfDHdSt3#yh|f7QRBlsYv$&#XuFM^59k zqNKL`#8&I#H)e7*V>bJf8>to=mC2CH#m+MKo6!wVKyXuJPG1qNk%(A^7f4#%6Sp=`eI`uVcNvTLfMa9@MlxYpaqzG4XTh z#y?>O=QaO===crnlJ@1hNltx4D(tLr7@h?w!M?!55w~Y=$1M~^Sl^k=SLpAP+HtZ^ ztUPx#UfMx;PlDNv{5nNbfd~>F;~Kd+0O-fh#;U+h?Nrbd4UO|+V>zZ_Z~6AQ&>Oki z-e%PYW6nKrB&=tJ9$xs^<^wt5pc2M2tebzo>RtSDUDA03Z56M`S#B$ z`nR1PIU?fm>v&GSTT}fERz9%{17CS@Ovc3ZDT~KqT~1E=t2uhjz~@45{)Cf=Ke%=JcF`yqMe1oo4rdHbOTX78 zjrTj}x+AKquyK(DdZ$lpgdAoSfXxkWHA$JwEt4Y^M6yDvqPFe8%1&wIZl`Ut$wj zndMk6V9b_$J}*DB7;duUYG7nw_7K#3n!qe}?vL8bD7UdiVy`Lb$6t~^LAAqdhO}z? zn&=MQaD&?7zV#fyF!W-o9I={kI3jb)3@sT{$t!unFFr#Dy*<>dxy6dHOzK~j!H}%myAPrXuw&>EcFz8rY@05WjZhKrAE(kr2AkRh{d9S8}e(d{7IuyR)lYCa!+PQ(jgxniZ%{Y4L-Y z)QQe`F}a6$9m%cWxuz&Bw^s~2F3|xCN$Z18UO1vo`UTo0ZmBFn9Bc>3abZI9rnl;z z_Ee?2CJK}_y%A1qGmRMV-**R^OK_Y$dh&=*mC_F-wmd`8d-)T&9E*bnwPBEAo7Uw_ z7(}`mWTaR?dHJ~}QaETIvjJ-YuY{^@eCs8OnwD#NNbqXjoTp>i0QlGW+JI%kYlF@+ zgXURITK(7ayapZ0`}XIFA|j)UWmjG$u#`&$`B)peUjI8Y%Sih{kAN=VW}21;1V}}e zO^QF2?K9w~BIGIxNYVSA%jCo@4M6SMqp9 z3mT)o%*T%TMB{AMsh(SVj-pEszK4gu^w4&k^*y3IX^%^+taJ-OHhZjbG6ar3^;jR* zqhoK!c*W1E8uSi)?6-Mc&X1r)`bZ-NuKPqA6<2(P;c!BgH5~!GjDpZ)*Ux#G{s^xMTrz2>qQZMb^Wo3h%WoPX4%_bTB+}u|x!zfNgGu>L?9~qghJmlq1cO6eFx8gdcewh2awV5&u4+) z40#R6`fAdT+HdrCld%WW_h5jVLHLMn^NwH3e(UO$*6!QFzI(T(KlUCa0%OkFwK(GR6azA=Y6XJ3!mM!!!|0>h`CaT0q7eP(S!O)mT0 zE2p6#mC;W*jLXw`Hq1Ly#ZH_2Osa!J$Ic_=kWG-!$M3#7`}yC_klv5q>zBcKFKLC#q2-^`AOUC4;$ z1W45pY1w#`XdAri9F&nftKR}U^nG@4nA}eX6O;9r``AJ~efC>(7Lv!=*nf#g$7+e5 zt*4%1ZT2kXEna3$xztWqq1f9tR&N56^Br$BD=xeEUmgC=6m&MKxC*&7-OcO6R9~!l zI@%4u1f4j#D$yg2)}J9~*FU#+Hv|Pc`D`paAJ#Wxl{_9LvzaP6+^mP26-GaraEu~$ zr*||Bh(e`eI~Sgv+)Zt|G)8$$E|f0N^)3(5WPpD)^c*)U_WHYYZwFHp|7beg*6&rP zq5E*x*U0YsJQx$-*u7=ievw>@6q8|P_W$V?J(SjybTnPtSIBRlJ^hXQKAw%EQldB8 zG@y|M%CeCxaVK_7-R5L6Z4RPQR#FN6`o{KqegAZ$DkkgjX{zGan3J}gBd~;Okl|X( z;7N7e)|fcQB*b-A)U$#L5wIAp{l*{F z_(xy<4iS{K9_`tLn%gVC38dnH*>1vbpPj-7lX(u+!j<9?i15q}Y1b#lHM*>RD_JKC zr^9`@bbwf`Tn9WA%-l2}{41-J%E`%(E~y;1=V^hLz1;X8W8<1Y^$QQ=fb_wc&SH0` z`pHzfD|b`h-%;Dok>4M#W6$PY`3~zDs|-Y3iY^U&CDrrb5wD0TxeW($ynq&73)S&g z0(F?ohxZ*fEi0(gnrQj5dqoSoqkul2l>_8tLVoJr?8@P|KZ@=6K`Dh2{p;lP(5E`q zc)IjFlXrjEaBnYQL%ZzBV4YdUB$k!pC=#gr_k`?qDkMTd0sKL@$j@_oK^X^dBOF?O`=83dOC9!~Tgy~+ zsB=Ik}4gq>|IyKIhr2XEj0{k`o~ulSMDVeL_+ zXI^(^w2B8}%AC?8O0w770k&F9&0ek7=KQ+C$vL}(*W{3&Pav+@cd1p%sj#-mef?wQ ze7+<`Icb9=azX zy}oIud_flloRS)`dynzJi;8Fvc()?M2Q9XmnFT{ZlF|JF(NcJ8 zAy)&OrIbR?N=6`Ra%1k$W3hbiWxahebrAJCc%a*|&qqsH7AG@@&nZnmhhL+J}kE&drZLo2M3e`y9TB zc`jln;|xfp@@|3H4a)36`qn^(Mr8ciYIFVyEQ@Fk+Z3yub{2T51m9(Xjt1?cs`{O? zIN({pp@Z!v^OL!-&xGd-dLOpS>#$!+DQk?8)PfD&P|#)n8W6MZ$*_ax@j0(H=p}_m z#mh&?TA%2D(7NTra52ww=KH*L5pcR&To!p^*D@~Q+Ng7bigDvGzo@ur>xW~T1W=E@ zIQowVaYS5Syip)6fnd}5t`?h<^H8t*!1x*7ovQ4ZWo4QAQsh!Nv%R$FH>?QC+9J?% zN{SL$v+KLb>sx@$dj8RhAzl+)I4u4mj48mpR5R1UC9ql;Rb6lSD0Z70LH2?CHb?d? zcnxoLv`-ukvg|Pyh1>zNMEswXvY; zfZzLJf7(dwNE%Fn;<-7dTP_nyE(;pr$&K)L)4&B@WtNBL=EdSY!l|=yzH=z;qrP9- zEnH^}OlRw@@=DraQE{MMROMD`cV6JRO8NZ0iwPhhZy_pfEVs5K3!Ma-hUd0kuoob( zzfdr$c$<%PT$3HEJ&Xz>+YVLj>K`YdTrY`g87n@2t+b?zPy%HTSeH1Ck%z$HiH)OW z!x!q5{s&yB1A5KgxiN~90X*G;%_KT8n=5rd*wi`}O!^~-&o=CF0s zu7=Fi<51NpSHiI>!v++MM+9;A-JMq043!pf_1bvhu|5Rqx3GnsV}>_rlbJlu%^M@V zsS5f&Cok>aBfqPG)(#Sf1KRTU(?yb0@y&1y#%=1}x550tL7&6&%u3F~wh-&{b{$>; z8{gzHvPb#8iaQ<$$J!U;w~SD~_hfV;Sdw)Ei5PXnP4sD2)?)!lLfjM6$^n38YNJUy z{B1_yN%+a9d2CMdYceWgcQd=B9K1?rIDyIaG9Fa8m}%yl6QQa*V^i36Fa4=~Ew{<_ zyd!Jh!#xbaAI1$SZ$>cgjQ$E^)n1Thh0qLZe86A7(UXthjY#Y_=sCCtXLDJ-6_)fB zlG8n-6y)ahr{`(7n+Ys?0@;|RqC0Ck8m($!`XrYb>`D1R(YfKZ`g>MdTFa7P4fxpx zSCaed;l{$L5lM|rPudW5Pa3lRh_ae2z9-!hm@O(~PZdv+fuWK_V+X&TXOXUN#?7SJbwEqsZNU071$~ zd^6OC{Hc*?iW_tbQMVoi-hd5D^6V`DA9gc~>I>^pH#jfG&tQ7kV1qIHlKq<;K_ z?_$c=KrfKX=U3|9D?;Edly#2u0mni*)a)D zMSAyA()GjeG_l|gegw{|xdb;Hwo1n7{KgE0&Ya*eZdmrN0a5WMktRzv4PtfNXU9gK z-k&L|4_XwjUtXktAtEv@TkWx_BDPzYi-pIV`Yg(`g3s9N;fIjZ8Y#s?cHbrc#*)IB zjc3!~T3yt}`iL{Q!AE@`CsNlR!yL%^w$@gan*Z={vN3tUYdF0QQwBrN*P1|ZSy(}4 z@R`<4z$;1oL#Px?v1P%dAAmy)MFjb~U*g1KNvo`}bYd+E7sO^d3d-nDBO+V`vaAOs z!;Edo;g~M3rhx4G-bnRmt;k8ZHtn;U&zk-f< zbUbB~F_T<`?>TQ#*jiY!;II^*WCqW&6uZxAf3|?~M*o7lVwS#uXSq5>#6QKL7HXwF z3S7LcYHycY-{8GQfOZ2}%R~b*j~~`Dgegh8q(X+ykOmFlUWo(>3o+04Nfkb=R~4yE z?_B)lwDY$1v}Hgl#xA7FN7KRFr@MMdpn0w6=+Q6R(Det_2;V};H|^Omc^dSAbLH@g zG(HAiPEOOM_Dnl|Gj$o)wkH7DkWUpBIH{EA9_?l4@S%lXBP?Q7u62-gTvm)OD!j{` zf0~dK#|dA;RlzdwM~gR5pEZMs3PBH62fGqh5$iatXEx?H9$oo=*n8`!sM~k{*FXUg zh7b{np%D>~mKX*^KpFu>8l<~(U`9f^ySpSskcN?v4(aZ$89IlV-}pTHyUyNw?X#cn zIcuH&&RYD<)aSnM>+`v;*Xzx`Hfu53X0^(;Ur`?jOlV{`KbyxG$as|#%z7e!&qfN` zmZEMJztKBSL-fy~-bgSoDpKqz$=T+zbh?NeDQfe*C^eh4b*tZ_^Ovc+(*CXjH!hu4 z-|L>8L{3kC>09rqkB2R?mBkvn+j42@sxpD=uN^0(-9Nn=VFsNHMb4~!OCr9LZ(C^Q z18JsB)4Z(zp?z5&L{V7&^UmOzePRsv=#^LquU=k=Tz$T!aUZo@p}7t+q{N zkuQhN?2fn*Hp8sbC_RDeZ2KUzLxwfmJQD$DlX8u^CzbVh0YbjC{8 z)2pqGvo~w2^($F3r(Eb(&bRHH;q6cAT@pJ!qqtTUrE1r|MoY{eIvo|%1rX7@eQVkI zZ3XSTP|I|vqCmGhtjEI>Wh)e7JdU9;^K;GlMBo*B7~^sm5SBAt0gk?R^u~pjbFA0< zn{0&jVp-xceSdi=m-;~M99u7WbMW!YrDKn^0K7l1>0$q_0)kbD@GV$hX?dBmB@@LsyZ#%m|`SB1{R|F+|Zl@)k zl2KaLO6FNvGD@dzypvMk=*@)0zkj}fy*Mb+|(@r%@g1=8pD2q!Fqxb;IK92%8`)pfpbdv&}N!Zhi3 z3od%G12yLEunz2hT-Hl}t9*WofEhGfS0b_CdHjA^ezrYQA#OENgr%uNwn8ZZs}ZjY zWQy;}fP^I+BAhyF7nKsJ?3y~Sv2pb@M?Hm^Jydor6Hlqi*sE3E36->(gSy)un2=V-h^a@p>UB6AYMi_PFAc-*77 zsE#IM$W{DKy=dj;VKJ<6bO1oQV?JI^Cfdb;9|~z@+-&n|>NH6QY@9@e;!>{w{dp}~ zC&d<^V}!R6t34o)@~)7Im~NFi=K{Ag?V|pBkA;z0rpx(c^-ru?Dy{?jFZSm=()FvA z0!-YZtnNpgc|aYVTHchgb49PxkX)_LtRvhk({<`rRe*yaam7!JKZ*JV;UMV;dMKUV z$7Km8+0A)3Y>=y2d-A4}dVp$Elxm_5}G0KOn-*vTUFekHhsR+>qN_1C1oNQ z%rgGb<#^3+P&jC_Za#lM;|AN-!wBm*7g=+%B@zM~k4GEg*B0G;Sfw<;!csF4I~02M zhZIijiEV-LiZ9KP0x5g&#g>>@G6qDw;6`N^Eyp4ZJWG<84b#hSm=r*q206O|($z*{ zFUJ64aoo6jthltVq%SrnDa|t3))D+Sgy#xh1`wHdfEs&q9as&^&GlE-xk2>MdW|+Z zOs+1HRYa=3`U-0w=>4)fcz#uTx8hpw-LJ?k-GH68#VKa86ihQ{bHE9Hm#8G$)@eAH zHGPRTLsYx7KJXSJ8LL=%AmjKl@Xs^$&6`Uk<|37~OyBd+L}=+V_i~C_p;FmV0*)cB zp!xO%Ze)IP*zy$d6|tdOy(C!#F*+jP85j>!(D=&FX#G)7F84{(=V3L!fXtAIaa#QW zKcZpkF_}V8%P@MX+BNB!voM$EEvDhT6cxX>MgA-j)X#AJfdc;bSgzlhaEEK?mwn+f zIyvFPfpuES$Pl86GIyS~J^7?=vlX;FnpuvkTNST}02k@bHM4Tn9rzwR^&s(FLgPxg zQTr2eIREbSj#h0`1NaCjZ=aH`qHU-&N~10@-b$XRJ-qEEOiM=6+R@p`PuK>Z*~M2t z3RmlO%J$QQSH3@Hvjed`Y9%Lt@|D#qoBmUccSZ$}15)gkk*p!>pr7D)ACNF$yE%&5 z%+UC8`ggzU*&Q~JTU5jIy^^19-&`USF)C0}N zru|ZoIyO%2GP2-%d|&%j8Sd2weGAPSWFXUzbEOe<-Kh8M-oj!6dfV~5Tz5OwyCWF! z!@H_9m8YJ^UgXISN1)n$XXG=%Oc(bH^U20}RtnT9_xpz_7BBtZ_AB?FhEdmt>Ocm7ZPU1br_cQ6QFqTx&hs)e5vTKwE`Zrh95hMKI%NO( zLg0|lb=Wt+T}}r$#wT!%V)I7Twhr<9@&*ZA-QS(8NQB+&$|}1{a3j;n^MPUd;&L>W1;&qeI_@q_^gcs^Dw6mhU-cW)1)ZjM;?!l zM`t{8)cgv|wO+t4&ve1Rj!|3-afjXkJ^PYprwv~s9yVWI4^hi%-5`TEW)P5Cb^(*X zh>^>X+;$c5x18`BlWA3*9Tzqc=a|7njTw*M#5VJBNaIUI48gB^N}4Ac5$^#l^cEs6 z@pHWA$Kj|@81FC~UgM~N$MinxYrWY%h2Gsi7&q7MV(}aa(9pW0=ckX~S`)z_fyQ2y z5m3hdEV=@IHPg(ZzkNDarDk%NBPD!tqmO7(!;TPe$WVLK*?GZQu8Ma>mnoOGSl%~7 z7d`v-Z3~yv9e=mtUP|{{#V!WX$>$z#H5KaySX$vXg6O~4H65~0ZXSUDBD+Hc9`%$| zH0|JRZhJmcr9oqR)TMjkEf+B+HlUG62HLCm%O9;PMW#{0JYXbTnQk{(d> ztiv#!J7Ah2uwmD+}3zLNuo<%%xJjlW%a=3*70^xKgvXY z?_cfh+lGNQ^&|UAA;=1wr=h%m(52T|Z2Fj|t5NlEv(!>+Sg?n4^Ip4h)LiUPbU1He zPfTigkN_*6-8!d(a&NCgVl$UqH@rZJ;}lixm}zw_M&?8$$} zyVYHq&+3yYN0}XGEp^h)8CenW z!uB)Lt!$=1PE|>yHn-ZfHa*A%@r{4|QUr-|TK`xp4_j#R;8~bIu6*9(nyGs$7_GL=;SLn|2Xcy9a= z!Mxj^d2k@?ubadMy`1B#Hh4KoF=y8X0mV)mFSoFoHQvwep}O6{phE=`?ricn26}Y9 z4Yt}!BFk-#Ns)`#Nri5~LD3z>1jqab?;=!gDlMR|#Glra)QKJCN^bFUCiPJ{5QPYv z-x46*@~I@&edw9)6ondJ4J0yDfS#=7vIczF`RHV1Mt$O>#x*RarEj&ZBdg-e7trzx z?;LH8ILDaFy}Sg>UwIr;IpgOeXgQrS-Q_%~uX%g^FxmBiRAY(GPxwdlc`)sMkrNtn zeMWzXM)79)pRp5tCDXr>E9JMK_UyFfbGP+J+qCDJQ+h4k;RPuZ=E3N_xl6<02aCnp z7^ukkVL>0QSEX>G@UBJ$JE@j@95>=Qv2k0zEv^HHi64ac(;s|VM>Y4${`^;X#c3i^ z4;#evCE{6bG9UGwsCa@o&i>8)H9ibF*NS`%)`86v@;lf~wERN!#uVcz zKc)d-{_1|%_)I4pRB+rsr7on-DEMNf7C}TsP3v^3rlhWiYHrgQZQ4rXEPQB?Dx z!jb^@;BS=~BL{zoIdyg{`)ysR14kM%-$!S((h+{3=^mQe=o52f8RoJ@Hk z?M=BmN7!5xPD_<@O8;scDDt|ZK6e*_du@ov$u%J`a0KdOtTgLh}YaN+lMltHRT)1{YxPyL)w zU-ii`MNQ202cxg9zTr@W#e5-oTM=<`F)R}s-@4YZBok?lFeu#^xjX)3gD*Uv$jHWW z6ylZ>IK~7N-uV1EbFk;|qtU`BFF$|#{4C@2JVD;nJQbtb0|Kgzmgk7N6b02e5KL8d z)Z|8ZmhiVRYwH6l>>`P!GpK+m-hs49?W33;zW00e6kTcf@6BKbFRdcBdv3Uu+z4Z0 z?hh6EGyCW2<&>WvcHFlM0_GeW007<8z|ND7pUcC*ZfP_-nwYyPFMtS-FP6PhlBMD*v(F-jfE$z{X#Mix{VB)7Vl36-QT9q_X!eaW= zC>rjq9sq6-5ae`n(Y8rnY*dP3Gzu@&XpTtcE%3-TR~gF!-Iin7$@xuEDE8t3%~=+g z7#|2PycIyN=kyZ5sdTzU$G^=FFdA47pnc>#KK}m#Nh0_kkR%gJetJ(l<$LVi{gx75 z?<<4{HWkFUKmuivy1Qg0X#TIrwtu9YKZ|=~G00PXK1^ZW^T6yT7XDgN{`-V-diU|= z?n&GPwMXdPe3S5et-#>VII8iVFX~WRiTurF@0>fgm*BW5r0$t=)p< ztErE7p{-Z8Gq3(TLG2JC;28fef_km^!{A?QxZp2>8cp4y<&&QIaf`2M0826cdjz#C zF|b?lf^U6(D_*T60%m22=K2UEimG??J;7qO99vT!J+1UOZv^k%YJB`V=fYCd;5MBA z4hVhm+o&BEB9F7&=%WVaah^(2?iKz6 z*Z=HJZ{IjB<^vF=|6Ti|D4Haq@;N%%2=6E|n#^p?fS#G8TgGPV(Jf}iA9yWc?}}(3prmjh_zf;*a|+3taOM9+F(+4Ic?6p`5#!H|8k{9-fGguUimJ|7|UMp z4vX9bJpK*4i{UHPxA3=;exE7_S`>4`_kUw& z_!lKdcW3qi23MbQjg`^$ljBdz4(_)>cW&Kb`w9R)xFQZz?2$+D>-8vY$XTuoiN5{( z+-GM@EV6S|JMn7mAE6C7oTbA**v132@}*S7+uguOC4d4s^$R6FJlQur3WyR}9&*J} zkmpL2fnFz{bup`%bJ{|!+HRr{(ErKA``N3tm;VI$VP9ftX)!Lhga9+~2n9stgiK6& zB>AgfF~SwH&gVqPM& zXb@W`k(Akh-q+NA|NPxsfKZQw#G9QbjxqI*#VcBDw{Cpp|naGM+G%w_nSpHTSj`S~o?zHp9AOwTL;fdgRHD8kICi#J-eXfKNkDTc9;g~ff; z^d$kq?-3}>&&o_^akmy8`PP4zYO#ASdb2{e@l3Tkn{LJglGgrpn3!2S9_FWSv}zay z^ZVG5Nh{KP~{75i9=PhkwoKM5UjMSwQbQwY*;T7Uj6D68APCKG` zHolp^e(f@SRs3$f(4_f9gPCI>BQB1CjqU65s)faFq!?}u+Gh8BbkL3o>xtBb!xynQ zV-pO%_g{eFksVi)H{MVI6az^}C+kQ9KUC4C_L#!s{vK)^xmoqrIdu^UYdW1?lwo=u zet909kV2yAb)CWX?yJAiSHHVxB50W~noys7eQ|5~G!EnU@;!J!@}Z92K|;cqMoW}C zHbGXV!sy6cX&snsRLH6~Sw+4bEJ0@RZE%}Jagf2euz+R4&mcn42?vlS`r=Nj{xR=F z+E(0B2SsXURBF@3_g%7K&+&192mi_thqgdpEq2B!h@7fWJu>5N{!m1FZI6)^HBMQ` zpXmbiza{V5EZ7`&rk52>|+ zbRItE3zB;M>N);bCr{^-nWWVcoIukEozq#2eoRPS!?V zrFRu0=l)Zr{9iWVe<=&-{;EQ-5`;=Io8W`UQu-G-IQMu+a=43F>v!-9BzXQvUD}mn zB|jDq5_*d{j;IeIR63t3hi!C3dIe2rz&?E}yt4Evy;|e`r_GJ{&glT0?Oa121x(Y& z#@g-#Fn?0bCL|3hic1=skM9p&%}9MTao6Y8`y8Gmip-?}`O4)$+IK5)4pG0Ez`jJU z`5MHS%o$G8Q~znd`IoCE`vU$3yQ}fG2U0MxzI!cR{EY3Z2*U+UTg=emw0~OeB?udSE5)!~Oc@;+XH8S&`Ugiyhiasj!$n$gn6V26)X(jkBLF&V+ zj*iwlooegI&8!2;JzMdw`qz+7M}DV$*3@mH)D6iBA$4VCXv#(hu6}&O*d+A?w$}e& zOg{nQcz@CBn|@T*Z?TS!KRy!Xkv~%q{(b}@_t|=a2-8Vpca$TEQnBhCVBF((saF=Z z8`g^X8pLB1Afr>mu!yI8D8F!;EWYt&Dr)7ughkfz?WaLd+ELzbAxwbD-H| zuM~YO(#Jnv-M!Cd(eJ{`*leq=PSZqVloG)oIM{>r{zpbg)22AWI-YeEHE%c<*r#3P z5_Iyi5=m4DHN7T;u0X#%Nh2oZF?|>qA(>Rw0N6M zV<$kuRVokVopY6H|9A*GSn06G5ZK|Cr9l6 zxyTfxjCFjiSv~wyOkc>nlD1^%Wxm4iFjlc=_^d~hEGfs+1%4${NC;fXA+RXr^)NI{ zxl3jAxG2=P-1-|;!2Vb(ZezK!)hOc@)(_Lv3bh8}tpTA)Yx@nMFE9qhFFbbl_gAy_ zpJCtQ|9J3WrI12cjMUx<&nwl@!rm&soUO3X)03(DhV6DRZQ~!gOUlM%N-q*irI%p` zG6#Q@pKbND>!eai%kgbfT7;)Xhkc>*w3qNDX`W#ld?I3$P9~#hy%qPyMY3YFssBA+ z1NDREMADM zb-dh#UcCDNJ1*1c5J7_w*Nsd+tXP3*F6Gvoqk%c^H@-*zbra|!L01n^mfaN*4>9v* zU6-f0QvVyc4pdLBF`f`qZ7|S_uQ4~7QSxIpTGP|hJsFqze%NTopo^`sXXnpis&7jg z%X`#6^5*8>iyf(o%mYln$C3qZryIQifW>IV-3JV-wSLo43-iW9J|f-Myc@kI9-&rV z9hECsZR>x>u)WazCw%n=d$jK-JpTjWF0TH;XJTs$5jqYVHSVHui^HOViOOO(FTC(_ zT^ALJMD|psv)$~HxvdIBkGkJzHaKfe4Q5$Qa*DNJ)vrgr>=nI#dh>>MM6n3U`Vnwr zN&mBtFXTfe-n{tw34Yr9FBgDf$plY>kv`=}OJbbeG!u{mqgPNy*nI!Zs}HLQ|p+>_r`P~aN4YJ5E>tt}CrDK7z`RfC5S*j7Wnm8Lrq)(Oc>g2Ii98bO(t}NA*Zb%_l-1jfpP83QifXnv! zr}iqdNH~qiTF){9^6~m?f4%)HuopXULaMjka*beb_B?+$MA@IttGocicvnz~x|>Z~ zRektd!L~ga&u_~c-XIF@OD(7--uW1mtt&td^G@C>XKBVYg5d~DsZHdS?P-iXn_{* ze#PJQPv>@c5J6S*P}b3SexMdDi_Hekx2olweYjoU-ox7aIkZbA%^wY?X0@YnDUB-) zM%mLYtGCNuN~1}Zp||B2!S<6c6@MUPZD!>borV%PQU&{VEaLr71`{z_T0bVhk-he= zX|Fw598vdp;fZ=(G>qO#*Y&8a7U#bQKUIMLmC-Ky4@Mh0$HFcnoW@<=%Tto!PDek& zyJ=SV_Ig$Mydrc(kE#j)(t4ohDg6PnX_#5-;u+xFh_IDK%#Ak-1nTATo(sL*h!km^ zZA2kVEz%P>Q$q#bZnWUaFIZ4?H=Hj-#RKLv*Bfg1*Nbj9uNUw}Mv3V<-eiM>*5xmC z3EvL6AKo;$#U)kuz7{QC9Fajp{Vq;ILw+dY3C^ZmP{2kKCUiGzQ9mPpt>KDitgWYwBKv0yRXw0%mCAvaWG5uSj6`9(H@#C&qlSll$|}M&rM9# z7PTSd;fatDgZ56bGf#V?HFdu$IjZqCBPw|H60hN~(a2pbaJE!REMtOp&kZ9{oNdHK z6XZ|-u+E%{+itOM$k5<_@Y|UH52wu4*PD|!h&ACOs(Q1*$)lyY z-l3m*7GO*45LK9Z4`!B&sa_kqm*O{rO=*PHvBc-5|55(g?sJ;1$oR3_^G%o()`i6J zNJadv34YkCcXt7n*Eh8q6?%@7^KNfdRb%2BCy)IALT~k;7BQ%s4EQy9CbaYG2nY`8 z*xBsQpke`4U{-&`?C8x3Cd75y=DNm`DGN)8U9YLtciLD_KQ`|EP48HFjV^oQoXV$( zXt}mqmJAJ4o~lfdF#S+42SI{jR`E8!hYYzv_F5XL)g(M=J-6r`dn!23G6Ajbe<*C9 z>jl_f6!s-cFonLNrkdbG?1R77eCEdc-1wNzwEGnW9n2u%bre=m6ctEOWe~PeFj-0E znOW>SCZkN_$e5ZGX(uy?U3DliX@F}=1x{r9bQ5&QqeT5t5lxGa&7Z1-xs zh_5%3+7V8>W>*#~hape#7K>TR<|x9`jFjWQkFy&O+i^J~N7hHyYXxP`qFK9B5;GGx zBD(v9&@YtTIj?tt`CCZ%YucU~mCp2ii_S^Bi<(eEG z@?Vc-<>h19kWKV|rlK00xA)w<7ND~O83&>lQH;g`kVwoZ8WW3?5z;~C3OQh@!uq| zn|m%FO0cGX9hS%*NXy8@aWR72YQkLCV!)8e+ramg%>epzKD;RLJN|ehd2WwzaBh>6 z?^cECdWgPI_D1hdWn7g`H8Py}#xp$5!~00Q4I1;0Ss>`acvT4r3ig@0NzU9Ky1cP9 z-Kb8!)}5Nao=>h1xTVP6OHZ6;M+DC(aHWz5GT*c@Y0-{XV~RWTuX^!x#=z6OiaZlm?%P!^_#DA;DY1$~HP2$c)un8JUl`J`MVz4B zW~#pi9Hd~kQ4KyL!mFgl^?eAA&#s;E$?E&+qBTGjN9@Th9D$&Y9$7r%7>yZHjoBL!>0vxH3k%DLd4|cs z%&wh)@31Gh<0bUL=8zz16r9%6-_`q)ybN2HYQ01|KVPE?C}?W3JrS%L81^_a;d5=( zd3rwTHg=4$treDSTJkaiVvf)G3=ft0Oc9e~+asYI5RDA}=Rzv3^$5$pfZm|-Jhh$oIakrzsv;x0S}kl=AY*-5PN3!J>5aoAXrl5uRcLJ+#jJdrtMHb^ zPM6@#{zZU-6p0GXBcB;@y3_f@fzsYEu7%^Y2s3MbD&d$10u`Idi9)nDH%2o@estho z-I}1@2L%1?S*7(=iaJwS%LNaCLJ>!kW#93XpP6`ocD`r}9&zDz*%k2U321(ssN`#r z%tQ4xpVY<#?0 z_@2L-AMSm9R)9@a#{N^8NW@t2d-+w!rAcDS_iT)4l_70-%JnVpZ}a@Jp!!k#lK}*n zqm69UMGuWYP%GI@F22yjU7luP>Lo5Z=!$XemZzd1#)gzHWPiGH4m7f`unzM3SZ0A? zsYE-3il;7_I^_elrXi{b5I5RG2@w!Ur41N3qbvjOkI;?M|&L_PiiB##9LyOkpb zVx2fxjjbZFtQo+R`nA&Wk(lLrZ+yVP8wHXfXFWI+RQ!l?{l<^}f|ZHsx2_uoSS-do z1jaC=JDqu)U;(Z19_&0e<(niSc7ImkO0G=63UWHE|AnM`Ta9P@>N(8^C2`STRIFU+ zi|1&)hx3U#Kd134SVhwh+@BP39mAH$=-a@;S~YM3#r-=nILkQeOkd*OP@(I1eKJ2Y zv^=|gUyeBG+p7310s!3ZLPXBxY!;K7A%Pgl-|!O-sOsy;v=Q)5xHKXa%C-M?rnTzf zl>dhA zwwsqg>P#A6%ANLhnyP2=eb4yBB82sw;-{(jk`FDPPK2R6@J&XKQj?+tY)VCo{Huex zZ&=eHkCiLI#->)EJZ=W3^;KnUe?>ORNhpPzIykTpZN|W1@YwO;Fe&6yz zfM_~=y+8iMWtT0-iXvpkgL=3tb4C$6Jn;w{Gaf|zOm1e+MW;%FH42D%GH`W9R$&yz z$VKD&81tcW%->9jPXDl_+4R1dxb}kD%hOx=Er$=ut+lMaT<{a{LOcUbwqy)*Syg0R zKQMn9a}<5R-Y3X3zEwK+OXka$DE(NLYSTcY`;)1oXbHA$%}2AMzQR91UIN4S7;#l@ z*;O6)Hkt50jpe#GlnVc>l(&v$QDF|q;t|*{v95L#^d4Y5>QmUV90-fR zIAz#BpG(upm$zA~;PK#iialm1)ni^6baYm$KP-T~D^%)Iadzed8_T<_ zYQhV~VP$7i*{oj0a>Q-138>5S`4(@slNl>6HF+pqQcqpW!5qOvOEJ9kqXc6>rZ|PZ z7m1CsTuvxwOO)K@au1;COPJu{`_ui>^Y^IquI*Kuq|ZHayC_K? zL(2k*TsQT49#5BrT2Pq0N|0CQNf4YlT42_7XY-+^x0yMDt00HKsb;a_48m@lLq%V( zv6#>9oCb=IS!^a#d|gLxqpQ@V)!U3&&R!8wiKgKX8bE{7z*1>@7jtKkAq52-)Pmh4 zxhzpYB!6Pn8ssR_R>}t96^81w=_YqYJ+Xug#hTiwL@D%)+Qo2Im)^c}$U#%}ex%B2 zyOUQsMKfa)EIeu)#+G?#p$r?Sqi;fP(qB0bXS%xNmMb?NK5k)~RTf<2i`VnG^x#!H zj*+jZHifRNmACB3d19Jtw?cXnRn_#`AXk)|DNeQ&$T|llW%<<$3)AE!%}rGM)F-W4 zfqX7ZFcFbpdt){`{7sDh>yw2V{b$kVw{FbW)I*3I`!8Gs(M3lf;i`}$3mq@J9TIZo z+EVu}|7y-5n@A+Ze6&(HQc}4hQ|3$lFZEIMe*F)`Q=h|1{4qa$@slmAkWr*=SQ_`s zlUFs1%SW+9mtPXeb0u#{)#Jzqk=^l?`SNZeJ3Fv%Y(ZS{tow)wB zE0c$vgL4VHUKZ0a+`JA*xLrf?<+h^Nd+*uPa7x&<$AvhJ7wrY#^1O<#n^PAY+XBQM zG}Lr6ZTLCWIMQZ5N~Usc0k<|KZ++Gkj#64?KfEQ6_wM2~0Cth(Pbl_V5?8`DSVsFO zJFfjb<{+Ld-hJ)Nqm}II@ud`);4wnNt5X%2hN0%Fdw67k}QHLlf5s3 zbqE#=ra47CK5S;A?#OKK z3HpzZu-R!ziyb><{>)5ICViiqdbA}~+S2T=?>>`xmy!##8v?_SdZRMLm{gU&qbbEm zZsAi-ar!tWpnopbTnL}Oa3_OwY5_T)#_1dYyN%hTM$(I=xbWnP!fjp#FX{j#B(GXlvEgDcJ7k5)}d)zSK-qlGIoaw4{QKoBNYIM$|< z%l@KPHo|ovXM5aGV;G5YJ+BqGF&^XJ*LSqqe(HnA@*Ig2@Xs(LC5702&E4FIEp&>rpTR~Na;MM1Dp(E%>$Hgv|q z15?V7likV5{AAGrsf#?udW>N(O?7Rgf zxiO-ShjzCuy?Fho7yl=bBWdeFmrve7tnr3eQU^ zy;!tRxLsdIFxkLpHuUCtc-9UsF$6zIqdfRVFS(7CBpmFwY8W}!L(YC@q6C_NN~v#t zH90>d)o76^$YWc-sir$31vcRnc?{9|n`{&J-%?!R%16aHIwtLpN3S%Au0|xwj>pfX zizo&WSC+2`!p~UBR#-ne8e}Sw*bRbT2~5;c9HNb$hkVAK2xF{wND9+z8v3rzMlD@Z z52r=qP+K$`QnHk&iLdmHKb6yMpq7VYDr0OL_lc^^uGZKq_^Z6i8;%^UI)sGkO@{_C=yO=p$)Q8b zGT|E4TGfD_gMG?RF1`M@Ls{1z`Ler5lo>reJs+AXKJbK6v^_VLdGjqd+c~R6bsEg5bxUid2^2(1Jybz9nxeh_+37y-hfUNykKc{fT)b3 zbsx&U7r=?Iqcp1lJ{fJGX`X;R1P$det*y9rjm#?qc*c}|!u^VIvi#*AN;n;{Smq$g ztDncLf1G^NHCm3cPWgT$vwIby+s7!G#WZk;sWKSgWS3}7p(%){t)Eoi5r!#tX^dVk zdb358b-o;Z$tsenx9-iZU5!;Y94tvBwx^1il@GgpFDvR>g-ABxY?lcx7PwvDEe*k} zT~@-oUq~L>gjIn|_MYi38`aM4;`XxMHpD6~Le?Wd>9Yp{P9Iwq=(F$Iu~$WBc$?lI z*x*<%P=-y})0(AmM~nWFS8`h)4uCg0mEooyIR0pbkKe}xCIjd^e=@Gv{{p`T01pBg z4%&r&n#$(iw{rO2cAx$u5x#U*RP+eGb5SU53mw~V&1Ry`N@&gJ=XaeDz?Os9Ih`Ln z-|$zNg`x|K(ImUE-y_U$%Qc%5%sg1s9&oh^*DY3p$xNyC6c2BJ;~C<=ta}lHi{^SC zaTaq*UqF4L{l*9)%2D~Wyhm?h%TEv66*N1P{Zr2OEOsucoR7x+^AS*#b7Kp$Q?8MI zQ`X~%b>D?E{q$o1c;iXzhlF~_Y~U5!9qje2qK4C^OfAEVd#>ito6)Xz*rHfj3$~8< zT!X#1C`zwGM;5$;dBiehTbpTkpFNl;Ta&r?CF)ew-2~F}y))C1YANeU4sde^NZ_5} zymz1@?uEd;A&WmYUU9ZoTK7{~KX`)iW$3cbVb8n?N<1fl)3-F@>sERs#^>N;Muh8; zm2tg&OOyLWbmA`prL|{l`Z3qViD6KEn<|L}>eftbrAl6V>N*Zuv!=RrT z-C|7um+H3UT=fO#M_xS-buTcxKeVz-vV8##gs#5smG!xUOZ5BR5vE?|3e!$)gH1J0 zBtO2pa`#fxK3f|G8A352+pj%dPnZcqGo|kbj07?ksM^ZX53zVhKXBJ<463~eg(r+l z8fe=VXvVaNiKGi`82>)g>G~nJO8HSFIqQ*7zM_nl*bZ54mK9c z3W9A{K-6Ea^d{P-2Bd<|Gy_%wrZbX$%{=)L+{@G!Mo=L;Wc~hcqt(m)-lCO-W}!~3YKY9fXICS;iq;DunFHT1K1|L_PlLUTx+j*(o1a;( zctq6xgkj>xyM}dIXUABHgd(&K2`=fHFKl)-4i-|ZYLNNlsjg3T?G0|Z*e%YC%^s_s z^2o`vv_b|nL7fmEppybaGkPbK?|A;)L!g&McsnoJc{-mWm4XIz zIabw)oE19WDwQofrm|;!_XHzwIRr!7I6^y0l)NMka&n*?r0(}kzfmd;Z5&p!7EtZ? zgSxp=g$&LPI}`@wg$XwW>+JF^<~u3jnddg&0+2&oqHTIh+zA1|i${)Qi=#n%5|X*Uy}Pa*y$~NtoigMQ$eErj?PB#VsK!7c?=fhM9JB_#tP2K0|Fjs+maT#rk#kyIke9A;h~!Pf1@V>Ok4z z56sZM$j3=08|U*dfcNnLwXnMZIGxY+A>l?MxlfVyS)XIbCZw|waRp8}-lvw6n~}YX zOPHmm1p3uvZZ`1(+Px}~W=0tzf{whgno)1qL|nfaH!yL^DB?ZpAVH~$b@>tQfrKqa zD61_-KS0^^d18OPUuE=j4Fv!BwPsT9vKZCx(?MPi^Z*?0!5ew~Z|#e=g1kJ2#L<5xY%>vW+5gvs zZ7CWD$DA07mM3)=vU(pV^?M?@>2a~IEnePkdtP~d8`hQkw46^sC?_-C_CQI6F2MF64Zf`QS!1}k}l;!{R5P|h0ObYPPUEdELV%CRCYm1!{j{CDMttUBWsjdTxteh zcce00BZLgPFRmDm&s;H&IR?aX%F1tQ*Y$hBF@P2{U;MP`re76+LyPDm+CQQm)6D707KZOIMqQ0~J=mE_$r%J% z5*fe67|5>I*3NP!AKS>&b#>0U28=tr&BSSo9?089%eVvd?2fdD3AMlOpeZ1(A$#j( zBYQ_DYRZSHlVn@!89tGBnPx$5i*{m}sRyt?96deIslHk%aZ@r4M0sOlT@}afl(ese zq@o`2v@hafQqMcxSn4yj1b5)?Q<*caVO?NZjKXF^xHW|6)4ho4KJR<=;if($!)t}D z_Tp`r2nq-}!S{6SRBK{Ad*VcAif+0$VO)+2^ztuXM{{NFT}0eLJHgZCttN$Od)-44 zx$B-&-9?vo?zaou+bm7|99mYx^?Hh<|Khv9yi0cVFY{3*i&T7qtVKt$FauKUm7Y zxc~VTgl&o8zCg9f&u+Fg7VB4ZuAm^rYOHk7Tb8zZ(Sj;-%l%{^ydhyQ9an`9Sy5#( zoB4kjI}4z;*0x>a?oyyga49X6LU9PL#c3&}NTC!c?oNt(gB5ovv{2kFxI47P-Q7tb zBq!bb`_DQ5oc}xfn_(sclObzmt#`eT+}Hig6rZRHfsX0jmn_?M9Q(C`C}BLOU4WGe zlzu2Jg2;X$Y{=`I@p3!WMVJ{o`kt5vLWFY#oCxj95Q*=j|3pZ_P%?v?o%wtt7VPSI z^z~UW%~O4svTmG+!AaAAp`J~aTZa)Zc?z!uo-^RSko-U}@?)*I>-QE${y zJO3#;*2i<$4qLHPPj`gm7Q@F*K~X~Cvb;^@M|c{l5p#uJ_VpcN22l!%>k+s>S8yGAKN?)#Hucx2sxV{sDCnML3q9hkUx{h~U;KJA z4JY=#FK@n8OYh;uNlZwv9=g&q&USgPz`hc!d?DqvHSXD3#7J774@KCYWG|tL?)Z^K zy8;6C+=9Hp{wV1P-1Fz2RO{`;3ScJG7Is_eXdRlekSj#hzP!3Yj2KOSzL7#%C&C|< zK*KPn(}~EQguARS`H`NeN%poxeR~2&lE7nm;hFBfo{rtim^5dB{Ahl7YvC9qhiAcn zqlsWYg-Cyn9umfVxsWJQx02vec}XvE)Ezp^>Aq(GRa|?(0h}MeZ`o9Qysj`oGtbR( zD#EIeU%ST6D8r>n#w;8cncqK%uY=DBkJA%RqCE>|6eiNg`7G?hOylOFV)81j6%F5i zgG`nvLI>|whTdauMO^3CH=(B(sa0uh_AUK7ROiy!Bur+>BaQ+0_KterbN;R*2gz7NI=|*%IyPsonWQIbDEc*0 zjx0W&-?$ZoYkP36X*37+pHw14Blv<7Wagrynbu$Xv zw0^`?wxB+&i{v;d-wgR>9CN$p?rNMC%Ll$W>~St!FGsSCesiu1mti?UHuH|(TX`K_ zeND?G=N{%~eXLr+`|SYk{@h{nXq^8xR1(%B_|@%-OOQ8Fb+{WOZwA;#jZ;bOe#zjL z8tct2_^fyZDf5ztK6aVjueB2(Xd!ay@$98)K!7Z2hP65Bq7C^9t)A?+KGen~A(3Pf z6~Xfo`nGV@HP^`pr#J6}$cAIOOCb9-x{@)2Zx{HDkf;pRFh2lG&}-$ zi#y5VEqMigO$|`Wjp6sTftBSvLriWRRG$?YcyVs?)=7^j(rA@mWu|NYSO0h;F-^a3 zWs`%a#g;8=yMz-1c?ah@zp$0FwfFUYB^cVwi}8~6v@bdI@&RDbJ2qwJ$NA>WpB_N$ z!@!1>bk%@X)1y}lCfTvKArI$PsgX(^ouB<0ncs!<*IYPG1ZIZdAvx_)EfkgqxQDCv zArtYE`N}+!Z0Bl^4Svwh^pbi&1Cf-{@uht<_IQ4li}~{OKI$?;;?bhHNwOABy2?A& z>bMip{06Z(nK7+e%orEQ60f}%m?ZKo(rVp{l4EmpLJC z*3BX?mFxu_&~;BDOVUl5%O2pV;?7ehVW`=6)f&&u)m~m;`xF&*&cn{0DbndUI~omx z+ZtoQhoCL++&?CjY%q?~le&%jj$9u(Wncel`ib54Of zpqfNB6S}K_&!-uoo7Bb6N<&hsIFalZAtJ9^mUSz?-zZJqBW*nPKEQ=5L>8=|4a7a6>)hdj*xr|&@+rGxp2YFpF5bDTn!PeHqYa1LgoBaCO{3I)dC zp8P~CW-(_OFoh3P)dh`Hygc1+AX5IaI>vaNoK0*k+>dO}6iyCyj;iQsIY7;V`X5i~ z|NOBdP{#hkvFjf7iMV4G;&8xiU7>ElTU#!wJdD8zlJ_1Q^AX+I856^ipU|lDr?P3J zQ;Q>}1u;tsoxw`-R$`hlXeyr<-{G>+iJVA2% zeRcQoaG_8mi({2j8+xIBR(Fs``AqMFCrZUz$&$n1k)Qap@3ZcCH0n#-3}%KL(nZx@ zf}2I|yDLoCrP~SJPnog^}TY9thG_W=<8k4mtv4gzjafVNZe0DS(A)4a5T2k`Lec4prjf{#)Ek0g( zr|CIX_IxpFpA=%ky1W=~sQ6-%6V@gj1@VPb18$&R)sF(Q$1c6g{$*7zPs$C1{x^00#lbxM-DG^0{B(8K>@7gUEMKRHq%w)cOSA!6x@ujXpSZHh2wFj)FDPj0P~9 z*B|o&Z~v4gK@U&6s#_T+RQynMqTv!OjK$%iT2_k4bNvm>_`9a{Z%^9`;xfsr!BT3;eWLo_3=Pd)Y?YrYL_E1v9*cWsl0|cI zIjx5c0`1~c;KF%wUl0ORo8@@5et2I%LQcP5ej9G`PY)J`){F)?>IdNTC9~`2%M_%% zWDg}W9KK3<1ZP{1`K0gmfQ3#GEJIfo7tbsd8mACRvZ=7jYd>R|Yi{+WD*6c-!Gp7I z{5k(3tv%d;vHNaLfl75Fmuj_t`rsjQGCtzb^mE6q&N%>;eP{!<{;mQK6)Q z-{KY6%NI!ztou(N{)o+NXT^*>fW+^iUDsS5-_dud$Qp7r9NN5!?BHSripr6%5eo3N zEQ>}_sqoDUE_7BP zE6=Gr{S`q)OZEbWEymYBIeVCwM@~gWWj;pCH8b0H;z#ZVSN;vrYHR;OJ^@;(yE`!g zBK_`GQvTa&*RN+n-07Z`#%NpI1^hlhE%whc7I!zc0EzuNsepT=4&B;(UxUl_&~N_7 zWnx=fAH-YWj0@S&238!!#^(|uxXZ*<+@VNHMlZ3`uu8&k+%Z!3%};>&2-oA4D}b=U4HJe^Ut#;DBmjc1WZ9{*La)IUj?fg8uI)wxzY>1GBsdquw99z z0Pnf#XB!#6`|3@NlArC$$o#pE;`>)Nvj+vxmVVQJ++UWOF3_SJ=nN96lr0`Zh44g$ zz4avanHf4EouBKS98nUawUv&GPQFbJQQ!zPB$rPtv_TMO0k9joBhMJ*N4CpCOK7JX zrP-)#Q&1bE5sYj!*NlIyqOQuy6)T$gY4)i7v?`~pXP{#;<+A@}qP$zavdIezMV{O| zzNW_gDiE~f-#>!?1pQGm*cf$#5PV0jOk?9S5Ut=X8Ze^yG-Q|5U43;^jhzf#l$}Kr zO@LXv7sqs0){EeESI4}Bg7M`uyup6XL>dmeDd6E0(7YESe(#$4AMGg`jqQIzEd5>^ zyoyL^Qc8h&VmXs}d^L1gI2o?Q>>97Jw$WpI`&j}(b3!Zq)tbr+T zUDR`?lBGWvf;5Z&IdFS><~YHKk3<Gw}V z@o4`g4)fz65s$F5{y5G9)9wP`;>1#jxA2SnK)mawU9~#N$@mY>Ym@UY)eS-MD{ADg z33yH$$mx?cAy>o{1xgJqKGNDVC`-2Lhlf_FjyuKU$H8QVE;GwK(G8I1eiux7IUyTo zv_6^a$GzqB6X>_4z`@k?Pa9_LGYk*Jh!J8m1qzIzgXhQ9bpg|B+&Hl(!vrI6z3WM~{YzLI zqV?Q7@`-UsSUbk?-S2}9rkv*bM~GwcSAL5d8-w4W-f{yCM?Uv{ceh>-vrK?mct1zV zp}&YA=?X|jD81w9T#K&})1C2{G7DgJy`wv@g7=Z5MQA-kr7US+1vIdfm(Q_)M2ZCZ zsX^W$=^DN$!~j?~OZ>9hh0n^=6k@UY-A0}i)S}_i-EShIsXecVA^X@|hHUqJrFDTG z3ri6(fSiazdWvq|JVmssfEc|BKVDcx9dDk3t&r2DlTY{(Gb4#vP6t&=)*9^Ap#Jw6 z$X~%aH-2$OqHCyhJw(@i(Jlv`ydjUVG7S<>ot zkLhg?F{{TQub7S;8E=ygtB4w#^(?k3>e;SBAy)et>lriAD{-op3z=0y07{#Pt`4Y_ zEi8*hFiP#3{=>0UvN_eBf>uR&om0mOi)r&37D70%dGPZo&2MBG?Bq&sPR7amp(y-mr&pujkD4e#NETiJilYG3m+FxH6kvp z`u$R#du4Hi=P{axugQ!vbMbEcw3udcxjHfxK_E-i=U#Zv7XD9<8+~Rp5)ycZlN$<7 ze;9+qGX>`oIZYvDoqPmz2{lCP8Hs zUjJ!Ev3TbA45rg4X}XSl%6S?l`rfaL?M*SC!q=ioF+u@+3W{)cEHPB}dm5~vHhbi) zlfpp3)zm|3e-{6?Qq|Ojf?JVG;53mo=^8OvE`tBxlAo(zj{Y8~!07Mf=O@?a`IJA& zkM!TkPuhPAhyIh~r{fz+l@fLwr`*_fyN*0;&A9|u(FS($F%xm1VX?h_OGFh=QV_x@ z9s$jNa#%SVg02+VO4g%pQrk=8zS%WnIEb%g=)%f$#I~2y{f`+le&GE2%EKrm<~Uw_ zWWwhM$hwO0a0*N+T}muAg?Tw8wP&AL&k|mvN+ItO8C=#U*uZhQrz!9fbnZUjChPsnpOEh1aO7uNfgo}A+6tkrqlE8^W~VA!nRghJ!3a%k^KLiP+^&na>Rd za-$%VZ#Hpo*NWX|z84SF?riIHi2S#(&q)ajI8uxadFs22Y*7*OsizV%bGa0@=e`<@ z{dK*aZbrNG*-KK z-_`YPE>4GPRyr`s)1mmV2&ipnQf{eSWTU|ToL({^UFmr-{3S%U^K0Fg!}-$~nemW% zp)w=oH?08@KQ!ijU(39_mhG=EPQ3Fh`253YqEG5>FY5$Ulyq6vy^bV_%I;@W-slGx z<$z3H3>(0GW_f(80S~mnQH>K1W;m*ee~d4x4|?yt8kaJvErx!Wd`16dNetJ<{kB|9 zTr2kbIa|36CGg?Ycgicf$yB=E^yx%@V!oBK0N9UwZ$xBIg}`v9@SiN`%2~79j}I3r;@)VRsP>*{ z^>{{F%gVp075EmQuAWzC_$_#vusRCRa zQ>3Wjb%{|4*9O(t_0eBf+Zn&1lwXhL>njp|ig`(xQ6%1?{QNjF(pirqi9l$}5nQ zu`CIl6X`aat)Z8-?!ylVbJDXx?&YS%npxJnl`NP2C!neMI@=N2@05g98OUZk#$|Km8J)Q&!+`S<;r#Qf=q&lcjI2djAO$1^D$k$0qXGCL z6G#!yIQM9TqicnT5o}y6=+E$GkFtW|l7#Jc--^ef53MSIg*6}Gx>>V@OOfuAq2dFi zE)D(q1n@kUpWzwPp1R#L9FH^mCTId751(}T6mx_9Qou}HHmY$lIgyf6P#N<1msmaU zf@uEyHlr3c+VEs)(gd9(tGqRHNKKu`K6V2WSoqR*KVZ66t=Qz1PsA_8iOu}gmVpvz z(OyK45(uv;e|(qnxDFLZ7BP;ACsOd=;@W%Ley~)wN9n;jRvrX)gpAFcSJQKIpS=#2 z?MngZ-WH#{_7Vc#Q4Dhq!QD$+Ii)O4p!_iGaBUvSv^BOq-Al#a+SmEmZl`s{FPg6f zmp8`wfsdXHa6u^hbuKx6>uh_P>dm+CKWqV&zK-&RDt=r)(XvzwrE;HdNcK-Qdt37laAtfs~|b?l-Qp|Nbv8fTc(W zQA^r;=u zt#<~x!?{lLrg4hSd84t%b)&$^nuF~jr#~wGA6^UJz&KfQd2m>ov91d8crk}*8On=7 z6cY^$A%K7f*rzAMLhT+;Fyu8xE*4%*9xO0IbjG6&UU<4QD)hozY75JfzA{dSXV1cM zN9UWCOX2&QOo5+fx2cflFK5_udA?95YhPT1>&%ZRCP^Py-2~cQfe8v;iNv_>d7f@z ze^DL(s!?*3n4&X%N;U*PG!Tal`K35t{m2x%cye)<+gKTaLrSMWb1F5Guc*EYAw~W! z&3o&4Ung{SIX&Y4($J7Dmcg6#3Df~y>S|Mvb2-ufR{lmuTLz7q>cLb;C+6Pb#aP}7 zH1Kzuq`;PST(;z-_5KXcgZ>GRF-f26xt%h-(mj~3?>+oJV+sWDO_h_AE74eZ9esHz zy!^28)jkC}s@pu(0SPn>mcb=wB6W|;s|-d`mTP)R)#}iECgE@)5DBl}4B^MJZ&}tX z>*5rPm-kz9$?`Ilq`Gzk znDGdwE@nZN33RjCH7<*d?|TNfDFP~dv-Gk5!a1j``;4*zJs@W}57xZnATJ0=7;eS%^Q-6H6tMECSj13MWOwOSm~ z4yU$Nn@&KUdhe!QAvm_ZFje8M^M_(b zG59{T47ieJ92&{pjfT0#JI;Ep1U&h2xT1arZc`fNGFC~uumT9P%}l>We7?rzPm?)& z!nV6$Dl)-?*}{Yq$aVL8Jm3YduzhiUf-WZz)4G#QWTM0*i>KbZXXRtx4kZ|u}1@+1?j!T8c~X{mYNofU;IM|i)6){+lN0y zD|-uV^)wyw1uW-`YNdREjOJaBKLG+-pI#DRkl+1E4i(>+ri7ZzR;VA^;Ef9=2dMId zdSCwfl(>g%CMtB)s|N^MOuuaYo%n0&UwCh*kiA-kGd!thIZSADi!P@Du#od>r*M)Q zGA8o-G>@r!FL~^K_oB_Hb?D@~*3XyBWd7Z+<-LxZȀY8G5OzSVldM>j@#pR8wC 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

Hrv?Rs-Nu| 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

_d|Ra8upT91wqaek`58@9xgshoE(Ec%Hn91A< znoRS)Gfv%?GpZX$u6lGjo zSr>NfXp)<|S?^Zlv0T=O7x&u45tDm)vI`GBO73sp+0AjZzrSr$v2}Tc3~Wh{&*JYh zGd{vrv>s*;9&-uYhGBMJU|}$?v}P;(pKEaNwq8$J0BA zjr_}hES;%*?Rw;rz~!A9Al`0|U(x6W{~V+Hx&0$i8z#1neNO8r_H;Mn zq*6uR#juJhLQYfxVLZ#%_!u)uW#Bj=2qi(FH?iu&)o(I!7ZR_%PX0uyancT-nGk;4 zfIYk71uaXlEj8>@<8up&jc^0{iiIIG0GDT=)zP;d!gW%#(&CkSz z1DyT@D8&gISgPnR4P6)6DbM<7G9kq4oh2uL`n2jB$zPk0efjQ<2am=!Y-2vC=?J#% z7?pK9HI9a^bDS-3$36O`W5>4L@)IVG%`FDxJ3%@j!W${;L;CAps6Qs?7FfyA_|YPS zrf5jf_HMGyX|{5wefUmfuCW2L|Q8xITwMCBdL0INjS>&%v9 zejXblSN*{z^Qt=3kuV~8SQRgYNq@=(aA|L-aFjd)brL1t%O<^=ⅇZc|aM#KFXu_ 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%0AtFBx=;I*Ov1 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

eRul^s_M>;s8^1P7rySH zdFuW7P^-tCmB{F!^c+|W?3w@$i$!6_d!3`z1I>P*E`?Z-lq}!#{j}ym1yxFj!vizT zQ3q=PO+LAc7WH8i71d$kmU3nUh{B0WRI?)-^Ywspc1w^?S!=RfjL0HZ@aC3Ca!8>p zYF_6Anik5Ac(ak=-Ri@*uEV3CMJf85aSUT{NZ-=^-XP?m^?m#5lG-#r4r=)fETWWL zk?wb0Yo^N#Z37^86Z6s1y7b8GaNg4qx$N*eUjOQyAx-aoGrNd*Tgs{>jf!)_khDh6YtQ$dMf_Ou8jzF~a3z8JIoZp0Mm|mkT1HTo z;vH1;eg|SLQ@Iab;7!|R3h4kR{{+t`{v`I8g&)7XT$j?1vbX528LQeZM`i6okkxw* zW6rhLvZuED-35~FH#cv4%$s;Aojpou-MYg#Zy#%Vn172F=1AKB{ZS@i)aw@MNug@4 z`lRu_J)RovN?b`Gy2JGz25xFyKeChcqCi_a4g`N|h3R?YaW z=u`ilQ@RIzmy~{tdjnudn$#njz^%{v1j5aW_ph*BI$?q96~Z|7>1jMfov_~z^6-nj z^@fc0!Q4wrf7b+l=X?|o9|RzIBtwU5dirL(d@TH*`_~lr1z37SBzl&`ZGakkV>R48 z?l(>zF5mxj)i6o*d?y+DGELI+&y@KUj9x2<*^Ws}pI$kv%0Dh6J<@vU6qwYZQg-ov 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 diff --git a/readme.md b/readme.md index d120398..d66417d 100644 --- a/readme.md +++ b/readme.md @@ -4,7 +4,7 @@ Track The Corona virus from your CLI ## Screenshot -Preview +Preview ## CURL From a921f609026dc9bc58796cd33ecf3eb2cf4d1268 Mon Sep 17 00:00:00 2001 From: sagark Date: Sat, 21 Mar 2020 00:55:27 +0530 Subject: [PATCH 46/86] fix curl regex --- app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app.js b/app.js index 5cb0e57..93a0f90 100644 --- a/app.js +++ b/app.js @@ -8,7 +8,7 @@ const { getLiveUpdates } = require('./lib/reddit.js'); const app = express(); const port = process.env.PORT || 3001; -const IS_CURL_RE = /\bcurl\b/gim; +const IS_CURL_RE = /\bcurl\b/im; function errorHandler(error, res) { console.error(error); From 4ff29a1f7893a38ae24de17fc01383a304ffdfb4 Mon Sep 17 00:00:00 2001 From: sagark Date: Sat, 21 Mar 2020 01:10:52 +0530 Subject: [PATCH 47/86] updated contributors --- readme.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/readme.md b/readme.md index d66417d..f84deba 100644 --- a/readme.md +++ b/readme.md @@ -4,7 +4,7 @@ Track The Corona virus from your CLI ## Screenshot -Preview +Preview ## CURL @@ -110,17 +110,18 @@ corona --color=false ``` project : curl-corona - lines : 2984 + lines : 3991 authors : - 2617 Sagar Karira 87.7% - 283 Alexandra Parker 9.5% - 29 Lucas Fernandez Nicolau 1.0% - 25 Shelton Koskie 0.8% - 21 Daniel S 0.7% + 3342 Sagar Karira 83.7% + 356 XhmikosR 8.9% + 232 Alexandra Parker 5.8% + 26 Lucas Fernandez Nicolau 0.7% + 13 Daniel S 0.3% + 10 Shelton Koskie 0.3% + 5 Sabu Siyad 0.1% 4 Mo'men Tawfik 0.1% - 3 XhmikosR 0.1% + 2 Steven 0.1% 1 Greg Myers 0.0% - 1 CyberDracula 0.0% ``` ## Other Regional Trackers. From 55804aa1adac18b2c686f26d69044b61e24ab0ec Mon Sep 17 00:00:00 2001 From: Waren Gonzaga Date: Sat, 21 Mar 2020 14:36:08 +0800 Subject: [PATCH 48/86] Modify readme file --- readme.md | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/readme.md b/readme.md index f84deba..1aef20c 100644 --- a/readme.md +++ b/readme.md @@ -4,7 +4,7 @@ Track The Corona virus from your CLI ## Screenshot -Preview +![Preview](./preview.png) ## CURL @@ -26,19 +26,19 @@ where \ can be a country name or its ISO code. * Italy: `curl https://corona-stats.online/Italy` * UK: `curl https://corona-stats.online/UK` or `curl https://corona-stats.online/GB` -**Minimal Compact Table** +### Minimal Compact Table ```sh curl https://corona-stats.online?minimal=true ``` -**Only show top N countries** +### Only show top N countries ```sh curl https://corona-stats.online?top=20 ``` -**Latest News (Work in Progress)** +### Latest News (Work in Progress) ```sh curl https://corona-stats.online/updates @@ -48,7 +48,7 @@ curl https://corona-stats.online/updates Add `?format=json` at the end of any API to get JSON formatted data. -**Example:** +### Example ```sh curl https://corona-stats.online?format=json @@ -56,43 +56,43 @@ curl https://corona-stats.online?format=json ## Local Command (For coloured output) -**Install** +### Install -```sh +``` sh npm install coronavirus-tracker-cli -g ``` -**Run command** +### Run command ```sh corona ``` -**Filter by country** +### Filter by country ```sh corona italy ``` -**Top N countries** +### Top N countries ```sh corona --top=10 ``` -**With emojis** +### With emojis ```sh corona --emojis ``` -**Minimal Compact Table** +### Set Minimal Compact Table ```sh corona --minimal ``` -**Disable colors** +### Disable colors ```sh corona --color=false @@ -108,7 +108,7 @@ corona --color=false ## Contributors -``` +```text project : curl-corona lines : 3991 authors : @@ -124,13 +124,14 @@ corona --color=false 1 Greg Myers 0.0% ``` -## Other Regional Trackers. +## Other Regional Trackers * [Italy](https://opendatadpc.maps.arcgis.com/apps/opsdashboard/index.html#/b0c68bce2cce478eaac82fe38d4138b1) * [India](https://www.covid19india.org/) * [USA](https://www.npr.org/sections/health-shots/2020/03/16/816707182/map-tracking-the-spread-of-the-coronavirus-in-the-u-s) * [France](https://veille-coronavirus.fr/) * [Japan](https://covid19japan.com/) +* [Philippines](https://ncovtracker.doh.gov.ph/) ## Thanks to @@ -143,6 +144,8 @@ corona --color=false * * * +* +* ## License From f35f0fa178a404b22222d69ed394616381c13c24 Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Sat, 21 Mar 2020 09:44:13 +0200 Subject: [PATCH 49/86] Losslessly compress preview.png 183017 -> 121675 bytes --- preview.png | Bin 183017 -> 121675 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/preview.png b/preview.png index ca58a020f9c80e245b54594fcf5709e7de5f052c..7a1f6d49596390a3683bf89b9e081372c64cffda 100644 GIT binary patch literal 121675 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

=s$yGcEy-cS#O>c}&IX@hJHlc=a;^X6g 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 G@c#js^Nc6} literal 183017 zcmd43cRZWz7e8**sG_J+D@LtaU1kxArYNymS|v)gwW>BjQl+(}HQO37Yn7lzt4P(> zp;nD5txXUKA&HD%JkRGDzwvs$|NgvQN$%vnulu^LbI$cX?{m&|OR%;A@f;RC%*4dR zV|LlZmWk<*J`)p587DjA7ZZooGA1VGOP2N@(ZG3#Ptt*rj$C=iSr^O1{zL*`=wcdQv3C0OmiS#)?W0al9WyvX zndY^!=FYpza^^%_U}eQL(CNUqbEj*)&z`2V(dcyS2AxiK?)mT`lDm9QjLGFXP=)o6rJ;6S z?X--+VJRsoy@1gu7Pp=zP$)cgYOs-Mx((NRBrR{iW* zRmK&nf#LUqZiT7d50w4$CV$<>#3Rr>!1F=YpzEYwNr~r$RK^b~Bmv3KL>`w2t!Ypu42RLUO)MSn9!DP_cNwb8FHPey#z zeV?0^E{JbMzdm;k+v>4&-FxsQ_4Y=aUA+jitSejcL;lk&mp*X*|MrWr3X3wT_8frR z^?1^}P5K^?pTpNYmi+c+6|EesOUm+%^i+nOa0oH6L%U^!eC4~?Gdqriz!zWsCY0UC zd7SY5YyAdcd=F5=@e}fCzp_SfQ*~`z!+wfH?+)4nABzCg79nZf(tb2X}aU;zM{0TR4vS%dmEJvjvujXA2pFmwPW7!(a4v^^qp>FOc@qE0}rE@IvCIDKly$P+D2bX zN;$esJ5V;dl|FoXa7b8qMrFx|vM-F-_-0>0bIcxX*_L?o8RP9w_)=w7(AyE*kE! zZzwdt3tnSYuZ>c(Yfmk!PY;X>giLT=n6zG-NlJNq`M-e@A|vz&fTCTu#PW65Yyh*5+kzPZfKA*avoxwBnrA zO#Gl(NgX{>Iy%t8GfM&w$l5`Vf@OjOMzfG=;;Ta0O}sus7T?}X*v+9RElCAZtp(Q@ ztR{3v7j*K99W2J%poq`rTwRXhB@gfBiZ3P%C5)NaM)v?g;z$nQ(=|+sze4zQsZhkYL2fFFx>}`)JDHwBj{Qfkvt2p^&(Ok z(;!oq6SrvT<1KHccezHd^C>kV6vr?9)M~hs6|!=4w?I7JO)-w5=us@1DZb+YX!}^uruA{LYw`c7muPN^E^}c9pP=96KPJ>{8NxH`cR~0t%20RVyhUB+nfEe*WRi|p=qh} zlMu6TRWug8;}VUz&Y_UGFa7bIDKPpHY7_{?=E&9{h7l3sHJweyNni~ zm;B6er969H>nwBh^Q;0-*oe}1#~D860K4tI+s9|WV-&nA55}3XFTM7sA{-hu>k)X` z8v?a+-w%rpk9r_ci%^_}?^EMu;Y2FvE-hjFiqf3+jScibRLib6fglWw4Nyb@7Yn-3 zD#h>CV>?v5hh%!S+0HX%mJ~5{J<*jpS}`BjMhPl9X554yYxNx8#>lu9Uvl;@bvWV@ zn^+vVa|+e1e8Xx4*@u#vtB&0+A9lo>G!iL@rlRR*t>TRoEp^ zRxarRbr?80MbtuFtG`Xgd2OghbNT$M6n&QlIgRzbg5R zI&%wT5S#nS#N>EtNPs-wQMuEiNlYw;(buQG2RB&MG7H%XKLS2`&{hWCDfTZz(WFJ4!4VwVQVIXyP$b=VQ?8X>zRAxR|9I?f-l;aa&)ghU>-~B=7JV-;g@Hy9 zbmw-3?R`Ep{g(m$b|k&K)x0J_bB|-SXetg~1n}IWu>v=`KU6g+sQFgE8PypWzi~dW z9SYkq?f?K6N8e^3+iir{&%P|u;#|0z*I)J3k(I8)g7vx7K9QKQEwN@tk5EXQ(Y#v6`bEw7S=P6b>&FM#2;$#7jZ4y4$CE7 zhx9x#F9q8(eqGIn&toy*@i++l!0%~d(XKXVdM4)e!Ey;md4NFx zF#7L3$h10@cFvG98jjn?F75kO^G#pi_(*?vtBfk_A3y0u?LbM;hQ<(Zchz3dzMh*c zHUok|`)r*M8j=FZo_Lo57R<2n?TO}zh+j~SDO8V3-7VKp?FBOUTiiD7fclT(0-=OKJ8sih-?A`C}s zBsJPJi%>$Y|9&(CG_I5FbQT^pe1PAy}PC*7=*DY@B#P|hnY|+Z5(6sC4Q1fD^BMZf7*dNb@13w#S%nWw z(F@dE>r9(3A!LByVyXR=xs{?GSPA}|S}f6n7I0)?Lz5oxx_Swc>ahK4Jp-M*O36c^ z1(fG!=?5;6K%O6ms9cn;{*K0LEHWq+A4;f(tK=s5t>%DtHwHC6OQxY(U0Ug$oA4-l z|EB~jklC0@1-*N95Hq3vWUp6$st-`R>ZjoW2JATyWYGOydIl~Yf(P$NFH#chW|SM~ zJx!TZSA2R>aGdtWcK}}X>aBVUCv(Go)Awws*Q`yN_eFE8?ns>6kx|Puu2Tx0+p<%c z%+#r{Kp=cHQqRJFf=Qj#{Khy%4M4YjK2)5PO=^<2Qo%D`)GwDT!_jVCfZ4;AE{aNzP8OKrvhvkz#q8VD|Vz5hq7Cvhr@PM~JD{XuLq z_YNPh8F3Z**{nT4vTyA^;JZoW(amha9-!5wcBt)q<@JH_XKO*D+aooza1T2;^*3Y? zp-QrN#?u0Iu2af>`Cv%JvI2QbzF5$x%|NF|R!WgSrLN&>n_l6{)-yoVfV#fs=@Dpv zR3%TuS~cE12_Ek6nxqJ%GQb47KR_9MM((yv^{pi>UU*8Gkor1HzSBWENBiRKJZ@2j znH`5b&W6B$jsu;+2P>@hYyFJO4dVlfIe(yv*BtAO!RReoakyozOIA^1di{@mzTc|{ zr~dL(Xf105YI-8)w#V{)%ep^><;a;eS%+890VoHVZ$$=frSep}YtBx&y4% zXGJB2P=p&G1L#qfueTD50%U3Hnf+&giMF->1GKk0j5<0k~TjIwwLq_)_}Ve^Be ztd|TA)+dp@+mBypqrLN@kiF5gaB4*@jtu!-u%Chjj!`d#9poO=IS*nh4)5YU$d~a) zdytJ;c>SF)`YKgnpL0{$c9xY5Qzn!vp zZ&^9jdi?orRYup*XG)U15(aa#3n1V{bfo79La~OdykSeUcvLDULpi@1V7t;+Eof0u zcW?Mq-PPCSci!XOm~N6S;AEZth1dHSnT~wcAH(SNUStexPKu}~AG}z`HTF6aqfdh^1&;r*tfS>l8cS9G+mJ)^b=w0|a z(t?hsp%uw%DEKCq9NpxKoAfBIY~e!|aa3*q++RplIJ1DtWyDwO4zPg6DSDi4udUi* zSw?D@sMfBmjQM$)4rt8LbmN%PQ8PP0sXTiaQ_N+sM4MY5Uz-(+Zr*98r3K8wP#kJ* zwWI=Rs~|ZWLMpD3?z(s$uvm8TNzWr5-4y3}Iga@PgfR)TJ?=O_iVNQ@Jej{_WVJX> zsZ%QbtPcExcvX(4Lf}#32kD%(RYG$(A1nXniTDGP_5vJ)&Jc#_?!&R@s^Gd7i}Q3c z6+~!9L}h-rMAPvH!5`!8J98WT7-VdN>hLc09^Etso!=`U_^^DkrsTosgw0I7_R zM%%rTc}sw?tPtXy-IBv}^n!y+=2u9bGQ-_7!dw*41%6?+?0=c6gRI5t@BMh#Z))gv z6!`rf5IS2pj0I9?G2Yz=A-Q*W1YIcGcgb6EQkd@!b-6v-`a6m~%@2>~l8^sxwy1xZBk9H& ztghd((~ZhBqjcX5$5l$#8yBXV@lsBX;!2T8+=Z!^A&umvs|M!X-`>_aFof|LWnj+R zZOyRQE%ojGxcXdRNU#me%?;vWIC1JYl|T^{4*5FUW&TG-3`W%$2Yydz38PjV#gQ?L z+!y-5Y_C?cwt(-c{}s|tD_d{xqn09q(e#~t@K5D|08=^nGGY&^}bbt z(i7iZk4gj|H9aEmsDmYz-4gI{C`&?csX+CD+Zr24Bgw$rs^aa0Kd0VKWZB)-s<#ur zlT<^XqUS49G=oi=G6d!VjFj?wAWOYXPOvXF3`(k((dAC@h)m&F-!dM6kqWU{NRlig zqvrcZYQ>?N;|8dew&M(Gqg@;SBP?Tp@dmP$Ubzc?ozmj>FnJI8a~A$EeQ%Zl$c^)i zqz3XeqfHwf7Jx)F*cfX0L9x;OYy7I z^C{Whi`omu{eFELQFA{A#r6XVjKUW~FkHclS0@J?NI2P4yl12r$RV{_q`?DRp;G{; z&**<58XJ9DN+PkMWB667_1%js+?p@b6~){#g-y@D@g<=PSB}L&xt?0FL&xe&MOd4} zcM2U~-S;xlS98w-gTL@Oxk*y^BtuYEZ3I0iJM$@9G8YnR|EllVjwT7NrA04-ux?C~-GRcKdk8Bx- zpwJt;kaqfc2!r9)CK4Hx1Azs?=p&)X4ueOmN_)anfdvk2>t&nN-o$tGUr>=1(zr%v zuzd}>OOXT^Q(7I-DAV*mWDt{u+CdzedizO+Hz%`7xj7sPOr>CW?4{6>Uew7WNPT;`&FZ~) zQqL>Xa~H-aw_}h!33&n5S)@5eBH zIB_V0r7%EX27a+pddk}llD|8AG1y=GUb&3m&`#>9h6k4n-WVC&L!HhTp1 z=LrLP^8C7XP2xPnzcwHDKpN~B;4Is9sV~NgRK7iP(f6m|zDGW?qx@!rR|oGDVHnfu0}n^=XK{9Z>4xe<&*;6CD1; zBGp()`U&1nf#%|`=lvZjrWZB5pfoS6?o!_~*PZk#_N&`}6!!9WIFkXu-*q^_Yg71V zkGVB-B7S^UM||X3wr{y;N!fax z9ne1{-kr{)HRCfbXVJ6K8it!|%vQO6RwwBAf7BssFG?{1*wv3WOtyG`&ONi)!Lb=L z5viE^&OiQBjKlmxyBJ7uYKAWPC?RPt-6g8DeSv2oQopKeEkEaI-K0YPmYx(R*kD+)XtQz={U0?^ z*KR|pusUM%0#4zMWsZUG$JTJZ8S(9<;?2wb=#HucrxDO#H~khz$0cC!GvrROF~dU9 zkwV-#^^iJ6p%`1r>{CvCIk`#KSR+}{c=_UlYi(l-1HFzz?%X+_O%~Ph=j_9Whq;fe zo2H$;L)Hk9x4J_1h)JENcY~&6n?647`7iBWvuEqkfA&Z{#(N*(!r6r(m^e*~-gNFq z-#SH0Y1dWfh>NpglWXs~i1>Ex3NBxq(aR z#)#ARNPSOi1s#s84=FW8Ud(h)H?FHSUif785jIZb9bC0+JyZ7|rQ>KJp=f_4V*T|q z5$!CtxuSZaac?!o#t@Q{yoISNg_nGGWI-z)APE<6tRiE@3IYltyDK{8YEKOsGqvo0 zdeoMbu@@zz8zm_54+Ly2d~iv>^=M_lk;Piqr?$+ppKUCw`k}R$lS$L)-5$ho%Tl*9 z|5eMD5*g@D`pzldHQ7I$}&n7>v^<-u;@pW?W+lyF{_K@nyBx=Q!T7=f|JxQhBE-VZRNdPO9Ko>$ z(Poj)3U{vmXIcH8jP>&OUnA@v(Fq7abR2>RBy@~aKyFHg=>A2O;&cycEDARVY~q zSoy9-Ta=Gn^Jv8N@qz$zv1W|0k`g}6U~Oeg{aUtWRC4j_?DQ@^v1bJ=5U5XuY?oBl z(qm-zf9)oSZs+_^k;!-BJ4uVEfeWuDYWWAw%_@3;U!~EDotNqN1RZEwP#L2OIK(YR z;KLiz>~lj=CtXqD(PMV?v-ZA|l_rC~#_j|xp2P`TPq>x!CsIrx2m}u-G4B7|FWNZA9Su0S^US1P&*_U#qlG>*8PR^`FL9Ak6$$1LrsQt!q9Z z-7d$LqiH9blCysC=P#bpPF@=)3UZE7JX)aNwose&PA*(iV-ra}db58^IlbfSS#2H@ zpEE510S(;?1Df_a$74%-*ov#3GnwUSuPJB+r$jr7b3(`7e1!kE-AOTp%BvxCDLG-S zArvQ1a6uZqO0ZOp9;eEJVDRrwI=@}GXA)Mh*&zTvq<`Axk=1we61F2Og(kg)E$qe7 zbKEvcA8kWcw$h{Q-`p!YZ}RYP?Jx(#&C6%PTP>qYmCKf_`Y+rRIn4r|C3voy(g`1Z z=&8+U4c|J_9oAiE(I@))`m1@^FsGM#;rL-rV8Qbr_upGWF;1!CPdCzs;=O+nIMBQO z+8TrXf7_CyKmSqsrG$8Jj8oON-%1xcVLYa}GtQWTBpL+O+nuPS3S8?gxwUh#;l~MP2)?3zZYir+ zD|X#A;%Q!!hyCbbUOe`7K5n(P@%!c3*&u3Ae@M=9jIJ)3UHQ$O*SWm#&C#8h&@Wf$ zGkvT7jhO3E?4?oJwlAc8%6Cn^Q2j0sA4x-nTy`bOCL5@_Iy7jXPC6PY_O-ZI>9GCQdEXE4;0MT`uV_8 zmzoV69Jhmed;iO%YOfr1b?>@!bdzDPT`~&-xj9pFvklQ1C`y729^O@qNHZ?drFA_~ z$t*``?~EL8F4r{h_MpWv zm;~27XZfPuTv8(T*Y&%|ocy|dmsJgv{z>WvO1M-@+~1KrssPN|pQU}>E3wp?l^+Mq z4ZfYBZe#ci$|2g%J{!v^^`?krZ?^B}H*AlDfFm}kxjWl-V2l0D_o2GK9@8h)$A_)& z-G9H{0-B0Kv<+vY@r@1hsXxk4utjbQ**tgAfA(#;Dssl>#H0%%Od<{G*MN;qw} zdM_Omw^Q4>vVh?8PcSnuX@V3!Z)lj^6&w-d$0YQ6gANoV1&+iYTV4Z=2_j<* zs3CuDIExlK7M-Fwb(%U~#4QNcc8OXn_3Y%)x+mqo+6}ivMSZE-PJaZaboz;se}>Mg z0*#2Xei4B!o3q(k`7dM3_xHxKOFQ|1Cnczxp(WlmWQWvG=^5nb6m_e8Gx8)D_PnNL zZf-iX2WtiPu5P@RN}U{xl<93-eC0jzg1-0Ty#HL+rLXR(;h~%Ff0L_*aR6OSOqKu5 zpS8b>xAd;RC46@(-9WZDLkU$b`MhC6pN5ryG*6fpL5`zc(Gsbt+BTPoveXxZJ{qNj zb%xR?q}3&-`(}5MfiBR_oS8H${f+F^OjOwQP58Er-xXmh0i00girH@4efg;#_DQw* zayDff6>jx;W2@6;HvVTN-eev1T+2OEFZjLhe8P7Pcg)!IKpwsm+tZ4&a>d8Z(kr9; zU!J@BYJ2d)x#eQ|2-558BCZzz4xRSD+p^h$8QBMJ6^g@Rc)kzH>8KM&u1_M$Ag1fX zTsi~q=5D;jH#ird|O7koX)WR73aG3%1-45!L8u-0| zZ+0Zl>F)sQ)&(67ut2EjU;+Rrz0tS~-$~eb@~h~&dFaohGOq!S68S} zWz;yd^+_LlJ3b996{H+RK>O)7+0~kn87tbg%Ti@KqeDZl)=!B#Dj2hz5s@qU(jj$T zr_ngGG*=v!G*@7<<^GT;!;&gO9Ewv#=$n^O3I{a13Lt{L2yM<_vQpg1eUzp?=U~Ov zAm66`uIPd!_=M{Z%Y1r6zb9Hk-lI9ukcaP1pV5{0Z;EvtO*vPl+;6N+%5e@}>A6Nz z>iZhGv$oR7?v(WRB)&;RL)gMKg4afOHuqZ9sk@$Ptmk5*x_qV zzLQ~R@lVImYF~1+)T8z<%!1S9EzLRFiRk*l?K$^vditbnG(|%qd_in@5C-#tZadB7 zC$yjPH@B<5_<0joJtspOO1fLtGoxg zH}C9*wqBs>xEUK*C7l5uNeleQwwrGG+nuCecwwzv>y?EX)uBa&v-!=So@^V@l%r%1 zjn!Z6>;+_pOyAlM!Z)LHh_vAle2O1T88>=zo&{N9SJrKpj{dwI^_x2%`BTy1x<}?~ z`V>7<$w;&P*Td`*V19VWf^LhEb<;py7;b*`iP-%s*c6n&Q}L*s3nPT_!G8a5IQ^G{ z@!{}a6MUufK*~_V7fq*StX3&@9IdM=_yh~xi(qW8fO^T_3zig7Z$CPCmx>Er9RdL? zXXzb?2Nq}p>gaj*p5&d>P{}-4&;WS2%7ugvnkeKb)A;VFpBFhiKCHhtlas2q=DRxO zjT$sryOZPll1l8{t9&F^vQ)(fjWV9CW_kABwd2v~xjJ3Q(Kc)p-JirY9Wwu0uYIY& zLB59PAHBM=T@qm?HYNDSj~DaUJ&yN|fyZJlQ1JTaquaUL--~s{J)U5~>dpR2bsMnldCDCUey;n6} z`j4%$Fke>5Zq3+x*dllnC9SCc|E=h@^E{ol7^`J@iztDRY*74XAA*Cxf?h@fl zUMMrj$=S!!ryB-mB3_Nm^_$=R89d&9d-}MOZ}yL5zVN{zti@f*Z^Wt=ni@reeHA{G z5N@IOV$v$Ce&_R>uU4P$u8k^rZmTw1=y44QCih`s^f=1T(hUl#W$op3qw~{zfiHVk zacryVuyClJ897l8zQc)AV7tDT)!Z%%SP8pPPvL(Bpp}zi7qnO`E;~k{72mdFsemhh z{T19>_A`{WNJFNY_g{5aE&cRlfF0(olW)c?{B-fvt2+>?Je8;bw8)0|o4&lTx4YgO z2@IRwFEUWO{2NE&x|aWP(b2E%`s$W!>XAqL$&p|4>wb)kSnx*rKTYG_*4~BF;2vqm zigFZ;q>}*Q3(u}FA%mB&GMB(pzI$!M44;#`JA(lZUlQ}p2*fYH{vZ~u0-KGPP2cvv zfA`A`t*E(lWPcPzXGJ5fM7ic|{d|}e`FrT__AXFr{>Ov$YC}yp*-qirV{YMB#(Z%1 z7UGeIb^i2u-= zOp;D_@}16W{ARi}W0V$~@73*1(${D9sD|GI$Rtef!{mEIU!Tzk2N$cL^eWA+(F3p!t2=Qm~IGay4Sv)Db z@A#mJc#0P`Dy050%4gM2dR{BR`*d%DRo-LqGOeR6Gc=zcGEc7l&2$X~qa~W)UiWW? z{YHunU{L5n8wZd6G`UrzFeJ@I0338t-YQ2^BWm>%oXD=TNPe%|A7@(jRBjF!fhXO2Q_jNwWCJj2y&_MNNB)j5Hu( zy{_TjP>~)xq489>c`%J~$TLrhn*_7HtlMX{^vFjD09xki3#sqq71D%Lf0#yHd5%@P zfXxVgzg}-ApXezb_?hF;xFE;t^Z=&Ivioq-_PaCLjbdQrFx<$0rkze@R1IB+wueI65y8clO;;kY zZy7Sp2t*`5TUJw|=wB{|cg0_sYt;MoKwjH`#GJs=G4b zq>ie9`-79%$;m7r2YOS3v}%{nMq6KQf8I_kU4s_-ea&4H#hjO1CpuDEiBr)nkvp;T z=YB_FqxR%#-T?FVdnp>sfqtmVvn_2u{#MOH{&Hz16g%=-fNy10>@BZuv{~;f0UBQi z$Nie*1WBj42d)rblbqch*_DdyI3FS7`H$_zt`n9bD$%B{UJr>j+4r^@D!hw=^-W6H zE2HO)B>-gewuh&JySjJ_NA=1r5P-OUNB~#+>1%H^jPS1hGETjWsYZK}JtHYlsgI!FT0bdD z2?(F4Cr+{{Eawc;zQ0z<>waks88Ak|mznJAsvrLTdp%Mr8uxnH!0TsRMo z-)?a~2zo!aQ1kab_Ow2i9p_{T|CHV$PI)+b*Wd>kl&qVgz~QwWhgbsytcVS_4?PgEa2N-HZY0`t+utj6{WibN1Ik z0G<9pX~44=#D4io9;06E6$N_1V*O*p`MXuuxBFN)hQF0&_$vGUK+{_iwx^XDSWzk7 z+^n8x&}12moSM@?Ty>YqvR3L5;pnHl29@GmV4+}2?ZcJ?hX%J+YphsUM z>M(xG85e0dnz4Wd4~Ki|95MV!zATjTu+f?&$|$|qaTb{RpY zN7@U(Re_5B5rp1jE~VCfd9h`z{bJlJ8s?$!ZHNIcUtK>!r%emSbeM%aOK(?$^C>e5 z2klzP0L{4zhN1CgL4$gj+@1Y%GOWsuLoIbsZKF(LBljtlY$$ zSA^47UOG)Mf|58Gwrq4t%U|2%{-s7{(e|$HY!RZOpM9W{LRmwh3(Mn;hl|tU+#fZE z6LL?!F(FKAsaV%6Cr>MB5&&9LYo{G>5D2@1%;c7v*ft6R6U36asuC0(yZ_7}3|MfY1s2M(XJ|Y!{etjeB z=^Z#_{`%@6oCG405<%Ya;VYRG^T`UC zSY0Iv_bk@-N)Gn9GoFGpc%k_ta%2Yx*}p?u^e1F5hNAakk~>4u^v)+_F@?O`-C6p( z)h4GJFoZfFj1MirXLx8u8@6FK-*1D4F}r|$qQbn=ca33>Y?^))#T{U_Hy!9FJDtQA zX$q^)LWIC^+{grMW9!L$DCOEFQYY}zBep~PTJ67UDf5?6z@7N%&|el1AqdZDRp+n{ z9a6soOe9fH?_I>YKOhymI(-h8$)+B$8okOLE#_|#?jA{320x*l=QR6DdQkc^EdI-0 zox!rsKCjkeYRW$kidlmUr%#9t>C&I5eipp=;zXIE1&v4IjB865ou4CucP^1$4B;@~ z^oHLesPj?3IQUB5?X68~ zsgUijz0@%{ND+;`3B+-4ipp^IoKbT#*hM_{q-kwlvDjSIYd7fl`PZ{?wU1;!?3v=7 zb0U+&Yw^*0fOK92;@-BqQRMQgSb+4LS-aJ2o|020<q5XV~V{UHfxf=1%U?z~IRELcQfftCOT{*IU!(A^B%@B;M^NOBs}13O$lwBOQKc z{?S%0vK_kIwhG{`L(*Mtuph(C*3W{cXoru+FkAu?sbPlo=X~R%rva5ZGuxn2IdX^E_%4Sa&A>k9>njI zpNRlkUoXef`GISZ8T&5=r)A-Kxey+pdi!#EnaRI1)u&mMC0UH1c#DLHUgo>K%+2hb zCKU=R_l&REe0-Piw&+VV(%ezW|FO-NB5k5=@3oN8ZmenJ5Ge00vG2G_ zi%}=)&eCPp_)xAHv~y1CS-On$(5LqMc2kLr5`z6)%r|uzdtaYpF$Q?+qGA}$I)CQ~ zT15}{j_x%wl0Wk5JghViyR{&@fsXoBSOX3_m1>?(jHHdom+3d>jS@3M+B?$`4fLg= zxc3IXE3{9A&jk)kjts|cl%1rSUzq*f51InJbInI?9kW*ZYq=(~u+T}!{j&F)t;*Dm zA~fQnX4zjx{lBL_JB2ewWvLIM#1j>MSbIqLPJTkR!)$eTG3!?|G!M%cJ?lSvG=bgJ4A4F*RP2JNxrC0C zR^=xRl&M&_rPn?9hVozSAAA$DvtVQS?;!nO`Q`r&sEuHe)B@+{x6`@;gdDCI;G@F9@%gzpqEx#3`=J%ZPb!)RiX` z%RXb%H+vBqZ$|#cA16=1R&1+wNAUi|X9dk`nAvdRR-^{nc(@^NU2 zu~Z*o_+Jd+pJ?>2hlCB`Y`@mKIupDxUFciJXx?X;E5Db!u(*=)lE{@b+BKOrZ4;j^ zt;9XMoauT$A!W?%>4AqG!(i7n(T1IqhFxqUkg2&(h5dHw9C8mX=9yB@uh`}1&p=Pa z>2YeVELN52;e@4Z8vmoL%q(jyWxYK6Yy8)qqRtv6hiK$~Uyd$6^VDFcfqzY0!0obv zzV2mPTx5p$+IYH!BT>rmg#b03im*wu5GV${8_g-?MNKU)t!DH?g z1D>e{Q#=DleME zxFB5tU@9js4v>qQTkql+;G5wU!-duxD|8@X{?WtA9KPfm=25O9p04J$P0}KSj4~Ft zvY0UOD@=J)i@&}NT>}PN<{B&}dF?v*OyzRoi#rj;#~!*ScNwzX9K%EYhTFf4;vaV4 z%4Wy}5_o83}S`VmF`XlaVg!gIshl#k*o-Nt9i)7 znX@K(L>*+#ZU_jrJT4Ja_{9iG`NSO8@;ffS!^l-;B2e*3yoFn4TtK05d^Dee@kQ~e zmAdBt7Kbo1E<&ds0uos??azH(l2(YOp( zl#amnskNN4k!chXU&{Q&X@ud3S~===)G^MdPCB3c*w}iEq!VSO_#^-}p{yCzP*)1Z zDGAx_7J9|6OB<~I9|uF!#@(G8VgH0q_)(k@?+`l}vnR_@s@++BhXxMW3f)NnWaKdl zn7F$>@jbe>n*)FSFMvv7HL+ve`h^xfQPG|WDx#fmxxmP+?6&C15In+5^0bed!SFe$ z^(~`#Bd5CaTvHRjKtK-nUj=*@Vqx7~m)@21{;TNq{~<9$L1usdEw8P6Pt#d{&vx;j z5}-W@3$95GTj}qNM#e@CC&{jJ<+%x3%nxg4vWijU2$bunj=p#)5gBdF({oUtfs-ro zvieO-ChwC`j*JSqnax>O#*Xp#0Rr`zJk$lohKAVb9oAE}OQ`cS@BhL$CeC=cU>tih z`}h-UVfv+o3jYs9R1fqPxqmiB?pV3-?<@_*bX z!W7ygUBhdT(xUyoe2F%Esg+UPOv)*CX&S0hbvtLD!l7893=H<^24;~e0;MLN0)QsC zig}Co(gA5K3d!11!u*F~tX1-a9Oar8f8CQ^u)ew0HU9x6eiG3&kg6@?Fy#LYMIp-K z%j~b1H`e{vP9A32Z^F@O@R&C-`y-(5zsJpKmK1<4MX`I^RAbyTI}$ln--!?xAJsYD z9qr1B)DofD%%=m-hz^(W->_uTkGp({U0T34o$o4AL8ETW?)k~m6hM*oDT2KMb)`=( z?drQ1C2V4bQfd&dQyu7&+Mb^PVvA+>|65HL8L*oVW|OCg<>nE!%-OzLQN%R2d`rQ3 zaJ%HIN{b1eOkv|M5W+XllsgJHaD;_(C1QejGLy$@|!N7+2877nY`r)eLNga_@+ z7su9TySP3!`)cZ>t{bfX4pYB}PBwylg)=#E=S<%y<*eCjxQN z6MRqTosgSSI!E24^N65;_zU(1-ThxFHXokIoI3jo9P{L@J)`nk+?(2BPX6?E)HL#x z)lUas!o0CKuL;zgKZhta;IIS&p?zxqFT&mfsHv@8AGaVyr7J~B=tTsi_XMQZP*l1o zy(3j>BEq3JsUjuPMVfR3BqB|k^e!O1mq36dr2KNuoqNCU-v9SMXC^bro;{Pj)?ROY z*7LsW?+w2pCkH;U?EcCx4yvB9SnT7r^<`qktCiJb-#jMyNzEL2u6!yseR*)O?h_h*LmEkWGuDmr-H&W@Tqa#9f67k_K9xRW6i}=TjtpOzo*h z74b)sr>WY5`@{46u3drpp}2P$$+y#C@^;@zL1?vqSR2u6$4-hH6i~iu1FQEf(g^6W z$9QZ`5hbBF9OQu&q(zqe?o-io|Jb}nxKqSNV62{lh06cF%TgGt#Ysp1mB`Qgky-pc zff&eTTw(Lym%QpX85=8FvVTYBF%h&1rep}2zekToZhH`4cgrk|>4(&bzZVu8lHX&p z-OFQ^CjpaZ5s!{NxU_oOVx!XthA2==#|fvFEmt=WH7kd=TsJ7r^bYtV_Qm*}8>t!w zBwPiUsnW?vV)u~FF%8L}-R^G9>w+Fq0+?gL)2?-K=ExReVF3h5YboZERqJf|-vP>h zF#4})x8tuUvgE#(l?&FzCrV4Nu64u5G`bgzqLYQtpq@?!c4|R6g`OS*MJ{=C;~GHM zzz`CrkBy@FaEH}f;EX4o%880k&`@CPMcMBXkx4mrF**BN4=4Mz`-|_;E39%3h)QPx zLnWW;%+W^|<%1so9m(@KNieMdTJrHRl$SsXpH6~yv5Qc%8?dq?2CfrnS>FCtC=jt^ zBXybHQ~+u_p4>2CbJlG`YRt%2^cqPUBOQFBH(AqS%%m?WJR>c^k-;669fYObuT@R{ ztqBkt04f3FtMdT>48jDW6YJ;NCi!+y~aZuIhn7#^&yP9Ma=04H> zc(4^m$IIY`9zsDEAdK1W1GZ@Oj}Ts7qZp0rW!2#+DL}t`pu|XHT_Z49GplCI&!S25L`@H85Wg;xuDnAmXnOCpMkFRPd12W;M zFH;F74-ioey!QYe$n~uh@M9qr^SB>cI%l1kbTn+&-uA1&{ccvO{Kz-SRgFErBS38k{C8-!ze zm?ky=y+cpX62ybiJ0r%XG^~PowVbqt${Rd8nl*hd%I#{j<32xz`fZ?QIg!5PRy&XB zbUPd%7+OpQELGLUM`!V$427Eb_tVar4AA|@KG48eUm-d9U4MMCES+sk4$FOl=4~~i z1ky9+ZF1mg7asT#D{E9FALdFL@s39xZ+Jf;QJ|p6ZsCi1CKgj8i?oY>=)93d$&0I- zAxQ^7H?s6U)`68k!GFK@cNxiGPq&u4Yhw*bgb=TG)2iiI@7 zk7&Td5eLZb0I|FbJ@yZ#YNVv|OJ}V&F(@S4iZTebdF%_{ch=p-vUEM^pks&0q z$<{#~+nMx^ZjMMtu#xi)b*Pd3AL!&iTFs9%ub~mI(!P~=#~jf+{Z}5r#)}1vClXAO z3XY-2u?c@L(e19+oW4oCIz{Os^g4GewsMlhIV)hBHr4w_zP$1nHF<-S7Lh`mG!TuG9!T-LDIHK+Vq3{n2FQV1s*|oRw!*mAU3B}L>DLtve z!E2Q7Q9y*Z;x_@RBsz9#mNO#%bhUGgR#&WOzVDgb7&mHaZLGJN9q{!;O=_#W&n+dA zN$cUbg5mB>wTF?hVsn_RobfUWlepJv$)b?=55i_?V8KfK=L2OFQTKJT0W6`kIz7ef zwR1kV$E;e#AshKf)LQ&_?w+U%k3|p`CFwFg+3*~HozmLe8;(Gnt;|Hvkkuq_gsJ#1 z145z4xXuf*KYxrW6+8(0*Co@J%dSrqRoT<#PHR5d*0g&>AK}HHPl-RMl@*}fDer1q ziT)}J-1&__;&LX@!t99f)x&kogkVTx2K+7|2K2~a|Bhw{@{Ici^KGhh@#5hR&Td?; zSt?^I{14Yf7q$n!f4h?gq@)3DFw(|d$2G)8Q+g!U3;}j4`jHcPXosHQYo|`O&&K|1PJd1=n)VB5 z2nL0=uAR#X$?s4=NoAtH&BQtpX(`8d%J`LdAHjFq3rzCr5*UYnF%XCyJ$jA=YnGVk zRIxVM0GkaJ8z1Pn-2@G#+D%q1K27Ak&+aa6uaPqzQ_*Y@#li(5&p&oer&6;aI3Liy z&EKZozZ0LTD*rZjJEoI9zYaH6IhUgscmDCmX3kNnx!11+a2&H@;Z*%h>9LjSgXaH&Bs%hUZzj_n#Oaq=C{4&Szt5}GBK$)D9FfZj`PGYLQq?4 zZbcImR#%inKjDq!;G>8$G}28|i2$@Al) zMzGbX)4`wrqD1|tC*8e9tSj(4K!MuliIn?GjW-0hEF0DjJ}y|-E^cWO2SFdl*Rtb8 zyvYw~)W<-}bW#GwBX_<%g>2K1KQ2xv4@{r+edw&?SK=XgDtjdY*!$W#8}$C~L)e=n z-DR<_itdzY09Y5yRtVjUnb@LUeuI=cPQU3JY~W|&+9c5!&MVud*LZuL;$Pp;x<;;a zK1-~MqYU;VuiXG!A_V*!2EeR|D){Yx@y7ohSo`mI9;yCeedPC~vq`|}a`)HRnusD6 zeZ1)S88bJQ3(ZVs=cbi+r#Mk8?T%b*ZH#Vi?aFhX7_EWStEFJztYKEnK9452CY9;W z8o5)WfJkY7%nw~lf1RG+SqoE)Q&`=@<-9*P+$1$r`3$Uh6N$u6;yAlpPS#y^3Zf6$ z5*v!%7nL~~?`F%&4Z~g$K5qJp|A_~FtJ5IrMjh~a-YHQDdYxP@?h$^H|FeFWlHeUV zP(xq+e}4b0Ae*GQ_BuY|BBEw3Yu4qI!UHmFZ7&cU37i}2O_FYB<0X@R`MR5-?<1;U zpb1kF7)EE6`@!}Fm{qMdR^2)*E>YinL_<~J_(sb27Rj#?w}`Q0oS z#)X?pZYpZ1JGv=U&9$)1#^c1$R2y&xAlac{{-*+t@Mq(vXJe5=cgzJ-(*m@89_hvX zD!$_sqeMhmL)n5u$F!4^fY{%A+nNF^SR%&?Q#ikEYSmM$c1+Z4TNB3uqnj$SG;)H5 zB~{m)m2W?#n6d$oH_g%{r*;aFg~beXuJbP`pKOuf?fwoVQwETS%L*rK#ACeY-d0#XPYoT`(SS|@;eDA)bnBcny8mz&&kL~#Y0RDGs;ZF+ts0G)I|13tboyH-J z{5M4VpY%#iVpsm*9V%a;G5~<1>sf9RNc*C1XArnS;_27{VJIRg@%5MSOHCrLNQdPr z$=ejnp+1tP=w?h+{;xabu>j-Vf~qq49aDqQC;X1uKD#`Tt%ya~B-wkwzcG3Lvng0z zj?^U9E7!^ zsJEwAqvJLWVO;e67nsjO^j!eFM5NxyE4wLZKw@IIq9!k3@!*E8(sG^F=jnNtQnrBL z={l{0+&}S&phbP%hfJxU)`;cw`oF%q37y^e(+7mU_1%qUEc{EboFz@P?WU(}+ zN94WVcbR$u%k^c^XU!WVj&+0jY7NnE<)X0<7EbN33Ts}W@@o@SGbn#mXZMRsY~sP` zgohsxO7w8g;0QK$NEhN6Eh^{g>h&^dIxNdh47aCO0}7scVFKw*y`e5h6Xo;zd1Q~n zhgqYtVgMVL<-Be56hG;^)E07loUUclWNc4SeH=wmJeN$wY7xMbilJ$dj?FX zFzAC{fGFVF*ct21j!LDyzF;%P!%k#kB#qO9V`^@(th*efZ8dLKmo?G|6Xh?kL@Z$i z!1BFYhxYm(oc;;AY@HlzbKWmhS!k6TG7Q&w@F&-=Q28Orcj?maTlS>` zbK5T}n>~UN_gG5F7(torL8}PAS&N*K%tn|@;t$rg8|F^m*ZqRs1(s#EM0a4f z4i6j;A%Cq&497!@y=C@^X#*PB<;2Tg;bdVwUx4+f7uFJNA>|D+%M>T(9Stkpf-c51 z&ju|t*6?kWTe7p*q9Dk$S&*!E#V$a@L3jYa-sA+XQ9BiEpcr_|O0~-)EI*o}87GtnSr(2MSa!iXe5m~lOkZR6#G&TE`fhzoN50KA z*#=*>qF4`G&YHnsYlkyrT8Nh(EIXv}@tL}(muU>8y6PKeUqF=+=CG_Yv>o!--g5il zw9CjWj04tzi$hL?cn+O;LN)gAqaLhwU!bxmpCbo2Dnp_AP@-pwAGv;c0$^{cN`?p| zIt+tuI}8bZPL`EH!R2Mh%1ZSW;5DisET9P$J5!{e2Vpz*UELggk^DS`1v7!(o_uNMCcqj;W9!&G&4WL{B~Rvl*lZ0TD*WO;ZesU>;R zAz28L1^IQk314dFYK9G6EN`r|Kf>&LqrE0*eet=cC;@OVDh{j zqCoPI8_A+NmsRp^qn~g4;la~q;e?l(PbulBzxx(Dd_Xk~glrXRj>EPV^QuEzE+H+8 zXl4WaQ@hkde>abONBwuHOFA_I-{P|D z`4$Dl@||a*?8;cXQ$;=vX8ocAZ-t8Dw>D673uXHJ`nt^;AvI5Cv^9G*zt8O9%)Ut_ zE2byG&r5RMc>s2Ps#*AJ!6+IZ-B*)LE&VT(h6q@mU2ripmbp1UWphSjb29} z$FC=gCdr(dZk)eI6px$AED3)-%7m7>0U!eY??K5}XwaJVM0ZSlZVTSPWr6!E7slL-MsO2i3xB@#G9@vT7kwCyx`8_||1rvm`iYpj^DLB+=k~vtL zrEj9%>&r?FWuDMqzF7WRmo-7Y%4@w4+9z01*4PLBSq@(Csj-3}n+C^0o2KB#)3+B> zeZH1@J2?o!H-wPqp4EHcwzH$XSI^Rt;>$|d^WtG_$ZE{3tE;HeRt=B4scH@Ywey`EJE9c zlfN9l{d)0pN!kNGa4#19jQJwY&g+XT$a`T2-{cXxF&Mq(5>H6tXYo4xx=edi~S@#aT`_97d{&kz7riN4eGf>eVV@LWSkSS|HY zlvmlF38F3I;3v3wFT`;uNcPh7P^hfiBnS$Fg5?#S#qTB9G{NYOG3^4Bn|L{fpUb94 zEqqITB6=oI*X5@d|e zR(^-5?#oTb0|YcsO!9lUEHC)|D$9Q z{o>w|8SG-zdS{bEg7YPG^b+8p*$t)Qqwa=6{|Tuv!<ByWCLj4) zR+9q>Cg|_XAiT?Ggp11lIC)NbTm~T=NP{{=kGCxMvnfUZ%OR@4nu>R&WPWz>sibh` z9eNRxE^pbNL94~u#KeKAsD0GPpim+8P9`8HV9SdGZ+C#ja-YlpDD_^}Y#oMA;GI8Q z5Ee_T=K=@~;85c~2!6oR&V>n zdNl(RCeP&Fn@#yHvVe{85@?f6m z=r$-0{Z*#S&e0yk`yKPl?$QnhSm=4B1Rhr`RvDc;Z7>Y|;%t}D(OS`$yWVgbK+@rm2ctM77tm>&$@ zJJ&Oa&wSjV-+bxSjHjzuIi|L|OYnh!-^hpNio8TgYo*E)WDJSEg_ukv&n^=8rDI=M zXrCpiRmHVbR-ZU3$7s;L=Mqx4GPVVSz8P{|qx{BGA}SwB+tX(%kLXnxSd&RAi~}sXlczQt9_Y|+$FYu zraGz3YroH6k^f2Yd^5hDf^dl}VcN<^_;mqD5swYq&;&tzv^+HEyfR%RPUdkirhF=p zBXeYHCzU45YZ`pmCdQ`dJAtAaA3T}38)|hI?Vu>=_7{_&LG?M$3_M_OVdE?KL;Z^l zg#z=V-Eke$<^pRQ!uk6S1L@22yqQgYYJx)k4}wZ4-3wR6##%5Ek$xv~bWY_*s6hTt z&7TxL+xs5px|h{Wo{&PMxk_L@yIL3H=CkZeG`J`W3Hc={)cXwJf2BTX5Uy=}X0f1!2O=^O{iofm{xa^B8`6&|T`stgYvc=#|&L zTZ`FC3vD)DGMjHFL&DhSalVzg@VD&@1DDsm+rD;0`QqGuDLSCupm?}W=21#rgu4ep>j_0seA<*sHvSAaudswF1bmL?w^8kpn5ip%Gpt zES}(N1U@C+P@DeK3@i(Tb(UlGu$w^aBIdu^AB9a&6)Sx2kpWY5aQ9BF;}+3mcpL3H z_%__-C6YFhgbwrhu2FfoTgp9>^ExBFo}OrVUc{5WeEAZ!H07EI?D`r9sqYw52H-b` zUe+z52~?}5C#=;4gziTr3*!WUK;9RpP`}XboFlH)BInc-XfD3-7_S#NF0-`~G)DqY zMMfU0on&cUK!y~BGFM@J!Js!%oJ$GKboiNfN1s}qRnGj#q)kOW=70G0(djp+Lox;3 zJYX}U5;wik5aKydytRbjBU}(8BB9mt$1$WG@%?`xw$9Ptw5p)ojUA0FWyq>&5GK&r z?nUK>d)(XTHNl`m^}XJltC5WeuLUL0%-L2@MRk@)B7bFy?kb+=i>#krBGUcUpY~Jw z%(8c;@c41JRL>0Tp(%M;_^;)_ll?C$eso*!QR$uGD&)TG>^FUM;V+k|mQVC=$n9;_ zETH;U(aeC$tC2N^+tQFtPzuh7YIX%ov`Wn0BhZ5({c&c5{X&q6;z{=wvGoycn^9Ad zuFW~s8~QPNgDuj6Br4-Px5|k#8M-2t{ykrwUWs(3El{A-dpg+a7x@lN{L(7uH`xj1 z!ReHZje|`aM#~CzU`wqA%Ebwx_8&SVA`6!QW~)NA-(CyBYBKK$BQS~$ms@6XQ0}0- z^b4}p0HV3w!pyV;4H)_uVz*8%Rx9*3dvHNPSvetauH>537u3Ewp~end1+ zNX#7IL%fe>_$lq7;;i_U{x||tJH%|BGh59$4yIb88sCG0 zS>x{y{M5+QLs0e>p3gMa5u_@S74C^^Yx^UGBqk&#M4E?i`nBHa z#4#YiF~CVmjvv-+nzVQsl9n9=|8fKjO~8sRjo7|VeotbfGng!F+l0(9Gg!6NBo^JV zq&;0*YcvZNPP_pM(TPaseZ5_2=Bg-pob=1ndSFg5 zdamVIJ?0Op0(%j+IhEkOFIe4+w)Ly@*h0eUYwPu>{G34}yXENv@#!D15D!|B{OY{( z#DwX1F3$tJ-N*}hl?bcvH&XSz^_lN9efe@${}x#gtm0pB=p8gWE8{=)M#Yg~%EqT) zD5u=Io!9Ai7LR@Qv)}J3Z|()LcCt~AWc z=6>vz?Dphp9&s>S(oNae@SQe%M&+H-hkwIKIiGt@S*R{`c zwnaxWGM+dPOp7Y)gy`2e7YTl^537O=vcki=!%V%j{k%z7uWEA8U;ENQaEPE6g;56A$7_5$Ryu|Q`gd}tA?^v3b3&4BIcQ0m6kyqUq^{`eQ(}2tD!PkYEK9d(- z{cnS3srfRCq;;TBhOcX)mqbwsz<*kkqQiy$I477su^}YLv<{5+j<|xkv6VHPnb_IB zLZ0&myjIObkeQcm7-2=iseK8PzjG>+28`2wf{ylQCI|q}it~jCj-l2bCs1XwS22d) zc{NTa0NpX_ZW3lZy9tz$JhtJZIf-wRYhid>=~_vvNuQC;vFNY$ube3 zDn^dRS{>=(msT6(vezg{!mXAGK6!kXQiye1s^Z4#;-V#^i_o7>%sSDPhkM=meSLe+ zO!xDCne>B}mZSF=T{<4u>##raa{9`fb#dI~*JBlyxxM98iWW=ma{`l3po^CBY9k<} zby?>H2f+h|I8ITbQ02m&jHex33v4~e!I*bFi_?-uN4&TJ6-Uoxol0oI>e{lZrN8LF z<{`Pj2dh(mOk7vVaKX+&Km!}6ge$n}ZZ}5pxFbrIon%;wXysv*%bW__i-UUTURlV- zPx8LK;1Ha1SPa)P#aq7``123Y@nKNTMfCe%qLl4^8agL9l_H)*dNtL6R~M>Ix3-sx zLcxyS*HVYkQUuPKTH0_t#tCsQ-fll!VHfC{DLu_J{u6`!6gvd3I7;cV{87$1URiaG8n@6DQNr5KcPz+%H&p8}u?0)*2f zS-3pYZnv_3Po0(wWE;U0HFJ~p)qx1PXLhp@2be=uhXpU2m`|?7_^zIBu!-H^j(H|7NR?Eb}fFF^cUl16pHg|*xs;ZY_)-DKL zT*>fe)-X2c+XQbKoLueXtApJv*lV~pOiuWzR>~^49HSag$GB*MzfyFEJSdC%H+k_R zj+qO%`_l4{c}$vG_(<0Fk@-ug`Vn*t0yJ%zqBSo9)cjga`c(`A zhdw-2=B6Ss-kzw#y%o(vmi$_L<@TjRb03!zf4MzT7NN?9>qnvoKZ_41KY0yjCe;2K zwX6Spa2xnMqz-6CL%bJ7*=#s61=ySy;KZdLnlNYRp=%TK%RY*p>EX{-u*cl{5X?h< zk#B*|2hwQz9hQHOCxVC$^m)qRDQJRF6VN(;QdrGG%SX-_v9)t99m@aFWzHJP^L+36 z;c@Ihh0bey>BQ^NjGeP+qgJ%jDL!RyPeT42W87SyHB1=sBf!O1a&|7;Ryv;wWa;6J zmsMpZJ?=DRP&1BX)+57sb57F^v2<|x4)}@c?TW;a9Z5qkga=R7E}M&#FdqK^^Ll0% zjjfD7?b|ETG%`W^j=Vr*-CT%xsaQDUEwk5XBW*mkrP_2vcoK#yvv6=;b7seTH3aO1w2s*9OYGFf>NudHqh3S(Jol8@mJ*XSbWlpW zthJ(ev7f^&QplK{k6m-j2{nKu^9T208~BUyCTmk>nL}OXx;c@PllTkAwal-Hkj}$GAs(mQgGi${ z5|>xLSOy%48DfxZTwY%hS{V_I(+eCqyQ(>kyTI&zM#^6zqk7bkuWRdkw}hM-cK>)` zT~*iKb|n3xu}{TrNss+~Guu_o=WLoEs+S473hg(7Ie!^J+b!x^A8+nf9rRNNzwqCA zgyW2lzkHvvD+}7`&2WLB>h67R@!mhBl%1N+{_5 zXoeCS3SVFkc_QlLb`S8=w{-^gmCE(g5E3&W<)y!twMQ6fIIUQjahm_-Fwly}TTE<; z=FHf%5&&QF3GOFl3Si>jg+UFn6j-eFVQ}|e!vcK<0{qhn22^DNUA&kPNIaSQqU-I> zY;N|<@=JbjVvPas#GXW2hmUi2rQ0pSy)Ca#;%NEfY-tD9!O-NH>yOezcWL5B#nO>R zTk*mnwM_b59u3H`-aZ{}sYKRB(eBzQ_t@@Ft$(o2GHE)WZ$ALCa*);1wg6Wrq7C2M zNIo^RWxXr$kj#(dbF3H*%Wd4WV=7JR>{zs+%(c`&4Ks1W3QKpSwBdw{X^K6|px2j5 z4;}%7P1P@lG0zO=>rSH-1)qA&-~72AWZ(KB1{e#RYvx<{OeFRgbIW5UXGb3IB&n$`ABs@zYq zE-V((`r#cgSi@S)%8_PeYMoN=43`DLb>|sWN@>1ftE@E5R26GQfR?g7qJ#q{HlEpZ zz#UI9x)%iQnNyfP-jCR64;luA8pt%?n<+sPG6weuNz8Vxq1%+aDy1_{d|^*EcTlD` z8goMvy6QPzdi0JJM06E-1oZCAWi1I1NXcT@Ekjd@(Sq+gretRi+fGqqADX`TOqjI) z>hp+MR3&J-0&4O$--zG03HXLvLvNf<_K`Nop-#zzG;+yDoT0I5z3mQ0`3cBhBy&8M)sE6M3P<;ji~Ik|Nc@A)A$C5PjA() z*;TlZV9#tO$V0IHx38{Ey<@Oq`Ncw}_$)m{LV>8$?#2i&M>0((F@d)NaHkGOunRhY zP?VV0*mw^Gs;_72ZkCr;N#JRa=GBm9+GY4b+S&cwlarm+UC)WWG@(}`8Af?6kMbRU zJ$KepFXuzR4eg9&zwYk*R3%WYzc-1G#%~m0c~CBj?B$Nnc|`EtE=m4LUf)C$SR z#Jq;%_twl2VpAq0;s~$GZAnkc!=EHelr}nRgi7jXKcB|jizWkTJ#r_d=3*w=~QV+HIB(8jZ!HJV8qofZtg=vXiCjNWlS zGQe<3#cBdPl)wF)??yR!9PXH#nQ;XLq3et)LJYo#6rMt zE8ZOGr7~>1=jq3xn`ARiO`A2=oxSt@yck(A=6jgv4-AUC%EnZYko`)1C093jOhV

WnJI88p7#2{H(nzcdhBljj5G@2UM9euq!DODOb`+bXZT5}Plxw{E= z!96Y0&*LW7F0#ETB!>>of<2rMypPh;Ho} zcfImQN8E|s+Umav?EeDkqv)}1lI%+} zWxm(RVvP(b5OVN!p@AWbNA6Y2mxdiR*YPKxY~XW0aa!Zh!)bo+67)!cU<^u^~LMfEKm z%BMISb+r|#$cLPBT1dHq=S$0ylz7R|56T*aHJ_Zg$uj=C;{2Z{{5hK#j+8iPQO$j9 z4kE0vhoCN}I;d}BwVe?6HvV>scA<=>4rY|d>l1r8#F&RJs=sb|T0|YLtX?Q4%+7nx zdi#B9$Hyw^HT0Mm>3$))(OhA?$`Z;f8K~g0*jjXZ*%dyoZ82yr@3$|g8g)qgrIh!V zvGGrS4JSekEXbLy`?&ltJH?$CI-h{ObTO}|_U<=lQAmH?JL~e!W2!DRm)oX^JDf5 zgYGVtdMsu>5ck^pS&PJ(F){6KTe`ABZ09K9U;f}fsaKM+@|C43d33WC3O;a>+!T|F z$Vyu`U}1{l5&tf>8$+$a$@IdTlSfYPxN`>Mab-FhARY5I^Xar2-i(j1_YcZzL^6FB zPu(Ft0OqUgw*Ow*{ZJ?7+Ldd9F4Tay`QOn$f9UQHFaI!@*KoB3E9ktw7yfCHGYM^% zqYGL6@(<(wWqrIO?s_VVSiSMS)yclgu|0vX)d7G1^0&so*Q z=MvRGtNi(HzWaUGYhrQ2Z>p+(NgC4=9~IqHwX5bOhiH@+E8;23BRRwd!v`nB}8m5=f3HYvbkKo*1l=0%1hS@w%LS*r}a)OkUrDeEFXLd_$ z)g7r5dYCioX#tVvmzanaSH>1W=5GfN46HY!Q2+Gily8UoVRM8bk|H(0|Kieh^*Slq zx;tWI2IeiwX#Yr0Nz=Q@HNKmY)*yTp=U6fIoYCRwnB~IiyPAzM59vwa{EbIWz#9%t zoAkqAn{>SrYyR<%Ms~~{Q;_ju?fg6IjQw>R@g_+{1v|Pr7FsV}c)w$zcXeI^11W%b z|Gl%FEg9OY&@j`Zy#->3eX%z<0$$7q^nsM{N#Nj6y2cH-jXWflT&iK@6$lE!7m`ah z%y{|jPgaCr@dR$#mEB$$vEWs-+jM2)1M51DIr}j8u5xb=1-{0`(;U8_{H~o> z*(tW+-u~D`H07h5!1Q0KNnpP#+l3s&b0K-Z+Y6K78w7W{sKqSj*Hs>rHrjplKYle= zr=B{)WAn7;nee2Ew(7*z#$7EHl^3BvN)K%R*0(;m=T{&O%g6P*=4dx8?2>4CAYo{9 z`NHWMs;qArp`8pad}`{z69x^y($VVl63_Q#hqq2&qIDIoL-3z2F3q`G&yLPuE}?%; zy*0LxHFjW_)rtlGP=@=S47-{Gk+$ST0^+6oYc)e@zn32k& z*^3iZyoY6DWoaiK=A6r-$U^o;WPsvcvZf1b9wK0N)vKFZY)7Kw=YRmgndGB(W8u+% z_X0pbQFe^OUeZW&NENBVe$~iHVSHL@K>_sPqoMHU(i|8X3{woR8kkLq%tL2?Xqi+u zG}PnaW|6guGk5yz!`V-p&AIo!|C5q(kw4}qkWxEYS?QlbdxeZO(0xB9ZP#rZx^kI# zB8%RpOqUiXk5kRh-s>!%LVeQP?Utme6^mkoo_6x-L=|==0VAc|C3tIxM&@@;D!#=3 zuUP&6Yn#<*h=ETP9}3j#q$!Q%wu`w%WfZO#>6~y*{|obS^R@l@2Usd_|AA~|$(f5( zH#cAOS-pIED|*dNtd^VI7Cp=k=yhq@go%K>|H;sCL@E29diCO-{8>q6%8XBL_tth! zKhvO4Z%ugDFqP4Oup7~*TTtUrPW+hA+r!ryBq+bXt(hQO!p$iK3BU*iCLn|7Mg?X^26ATVyyowvbHLk0BWn{{olZz4iIs>~ptNT}b>&$v>=9 z_n+%D90+Xbe7{bJ@xpTRT5&~h%(&{kvwA$#uchIKWEOKdPe&Hi1FNF6&FLnx^Lk2$ z#~+uJTRwj#R3CoQ9$&!aK{s5;esA#$D@s-SVJB4gQN?}y zY10Uzvf+pZrDA!De_|Vpb$BEo^K~tU1@a}Zh8n9cjnc~z_bi`hD~lGkun*Cpns0jd zcAVk91)!bHpQ^(0wi`WJQc^0AYV{@4MRc-v!cz;qCq1~K{Em;rI&m7}(FWTO)t$Ei zq!F}_ly`666ti^yX!+33F@maq@@j12nNb;a_{U<8NZv0oE=>)?nGiPIT?h_90{ai(hsj2jp{0t90? zS!j28?0p;oQ*N)mU&(%;>Gy{83U6&;?M}SGo7pkcWD&Y?=bxqeeiyuCmGFBn6%CS= zqem$O%12tUKG`5VfcNl=gmo7gxDS?0ofPx;GIWzhrM*o^kI|25t%c8Kr;I+evViq) zbj*n}xzmz*papBo)Vw-28Hd4aVr*xR(L1mHDZ5}g$`mFLKg2`mCt6wuPM|36Y!qm< zi=QtgPnIhsuHTlY=xoh7LQ0(O(FD1+4&AKU=SFFNmXAA)LfiU%2fHzIVg(Xggo?`GOfgmk0X@KT+GPJTK-(r7p8QSaRY>L^DwW+J&TcZ@!l zV!?h){XpwA)131;awYo8n{cO&vA|9(!n-6oC0j({xl!9=v|WDVakFJJUflUOV7%2| z^UrvuF{Sq0#BY1nBEJ50}_ zkC^0~SsrcGKwvPvqSI5N=lg|B^72G&tbPR^%Vd1(3zV|*Sy@iFs1KCtC(OwvLM45q zU(7q+Ip_|*I?qvC%Q36+;QRD@HUE@Ul##d`H|GvFRm2AaI3+nW$(e?RT;wJT(-t}-K_3-nn2_EeJtl|87 zw1H@|Zinw~F1yAPBEWh*Aii8PtzP#V92^g5ceNz1dQ7C{$_MXG_a^6VZ%d?_R1}P? zj!W0dX2QnzAHW-H8)s9>M9!{++a)Pk056de%u>5;kz*xLLzTf06SLHh;396BBHD5TSdqmN=TXNx+kGu_ITx$Xj2Ay~Ge4i=uM6F8rT`}Dyw|B0ewB{>Y3(qkP@}W6j-bFqEjdrL zt0l3E=>@-X<)?K~3cGRbiEm$Z+x`PG*3Zxw43_XLh4EQnxiRy6gNtwz@n~MO(9t#Rmly#u`bc^$Ss8#1)=4bg+7X+UCp%>@%lh8IYF>|G z=-|(j#WybEVLR>V=+=+Jr5+&zuTD#UME2B|eDv-}*lsn_SupbDAMEA@l}z%!qH>;l z(sVc~>IW6SBx9C?>b%j`epcYV@IrNGz9F$)F6{A-L>2!Hu-0bcP1vm5-3bn;$R ztAF?a))bs;PhNlJB_ssR6^viTK7~B{>{q2y{Pcsgdd^wq1~>oUfVTwqd*oDM=VHlD z!1Xs{snmS~CpCP0@{%r&TH&-rAR09lg@W1(y{DQ)2>xVUx~+!BqI+OEqigY z2Kix|a^|03s>Ccm23=6g^8_4Z=02SAx2w}{!drUESq03xME}MwwE=!y9(~QC`BVY{ z&4ny0mAK6up1gr{gkE~AUZjz%1~+b924WG5%Y)-c$3?RZb-Lx~fyj8SRK|;jKsGAK!h~VRe6#$r_Tw6U?W~ z%IAO>nAHT6f-DSnFEE4KszH+4h#nAy^#Rq>C6`}@;AjGFX~d>i|uYt8u*MGK#l z8Sn5xJDBp_F0d<0dQ&a0HS%gX$aHhWhC|`#|FQO#QEj&Ex^7!&p`}oO^zIukp?`#{QQdi~!Gb%XQz^ zc^+qLjP)$I%TK6?d^q`iT=ci$T#Je5&z2_+f6u{=*JB&g0eLDLz18lpcNVQ1)X?k1 z3DXYN(Sb$qQaV3Y+s`A zU3WsSSJ9?NzO^-w9LJhF)gCa|T0k8SLxJAhzF+dR+WS7uQ2p)7Qmf3wW=I$>5~{^* zGWfV)zn}>OmP^VObEK~C`qXrG3o^M%eqU{ET1446WeBraGn#{=Y@?uGJoSQPz4VRU z4t0M}I_8SMu)1AbCFFwc zoU84(1_>M@mR#aQD4xfTqzMjuFhen#rVB9yTl!uePPMinoX7OvWlvP|N za2*fNmd%m2AFVI=I1@d6o^YZc?a|jxGwdXvP4Nr)ZtIp4jyNm*IO^+R!<=B}o*BE3 z>iJ@&exP|Bo6-)_r$(%$5x9h0gSOIbl%B%1hDZmS1g7m`9fhyc7K$0bgB>1bA29h* zE;jWcjw`qa0xuKcKm8 zRcyDTOy?76oJ{+y=5->Tf));la5$_eBd%oTV+lsU5TZ{c^21FVwGes2OSuL}+8dbO zeE&Xi)lCD5hc)d6KEn7hVM)VX2i6Jxin84Mn|K}E1iEkmT{L%HxCuFbkeAlJV^5VR zcb>c%r^6Owoe+lFg9s>IFMwB0?|nui(wyg2(1AQ(nqZ?1e&5k}{gzaxkt8vQXU{XT zs*CVy!)2il*Rw<>Q^j!9z43-3Z#?&?kVLcd0r~cX6qo>UV1ObCV2N3NesP}Mf5oTI z+SAhmZIUl2l^rcXe)oU5AMwkup(kFaKP!NWHp2@Mr0WIyLgRQrGQ0&qH7aV?*|O)E zW>o0l130i^2}flB4kn(5yzxJP;V#gL--S!>1|eHkmVvTJqTgjdewUE_kd*}(7_IHR z`A|uNXUD4o2vM|fDtnUh8MIlDA=JC0B_g*0sNxcau`_MdSD8Dp%aV~t0ZC#-CkZK^ zK1ebrlI{}&67hQM2QoAWvkv_$nf40GdEpv0cR81>f!d`{-uY*cBq2}dwNcC!xjOkSC2WVrXWV7y_ zi$&8yd-dv^jHA>5;&ykQ(z%s~WtFc}a$p)b&N{9A-s4v&&^80}OH0g1)VAOuW5|jd z!)1do{8H3ascDr*>%CR7W6PPX1!y&@dUXr+i@3-p{64OfgFQ~R06=S{UKU+1la@~! za3?>|D`8qx{>*0A{_JbZnxfnL_WLQP()2G)=l;F@mQz2tE^;9&hm!120r0G#zc*2_H z?b`xLf_zuOedhD>oK2qwhE?aj|7P@_MBLdl^mAU)-jd#(FexMNn46Grt4C{Y%P`V` zt_UF#UB3A@^#b;XvnP30H|^u!&wqnlhRR#QBmctGWc&#SnZ7J@9Q@IQq zo=s5Jbl^chYv@XwUROV^9+-ecI1eOY+(fGJQqtJ{=~oEe+KXT&wP^)w>bWm2G#n(L zGPdAZGW~A8H&I~aTg`YDS?4wByP+IlXoOMDI1F-OXNA~1tnqyX_0 z<3?H=GkpKU$7J3$fhv1@_lz)%HCV_^Mid!q{NR0;b3zE*js}&&rT@*!W7i6w0Tbc0 zqPVrGPcfiVQ$T;|LHGXA1gF<$b;Mh}3PTO~90ViusDf#KXMyqEP5R6Wb2jn-)!3#0oP(`a}h? zfemEmh#j?3W@BGSZUw&W2(TY*yBWB&;KqD(7%pg+aMZA(er&O#&$vJM8+0w_d3u75 zA|UCnDL`I)?&UH)=Ntp%UoW}XX;m6}r`oSutU0X4>)6HXxh#A+Zo5NPu3vV?#4b*b z21wwG=mIk|1|O5Aa|#|-wjDNZgrB1mdCVv!^e9q)^j2Jwx3sn1joei)T`$B^C^5Eu zNCjQbMbG5gR{%XLn$Gdx*>Cc#VRb*c_j2pg1J3|nHbgof&Hp0KFhgvIin=bl53OvX zYlLTe@cm$DAzLcYAe?_a(L7=1;K@VR_vrh*53VYuW4@dP1WDgLdQZqA%vxX9Unc37 zWGMl8Rge*`v)UF21D^I`2`@T+ny-X4@4>yYfT}{GoYYJOk|*C{B+b0{xI6IC>AH-w zZy#V%8F}$O#pqnuUO>08z}7GSn#PG0qzvpjbAn7O>jA(%ciHEVeUf0r|G?&EFVUN|IR z7Il9DF$LTc{7a>1s3&STg3<7}Gp4Cjzy31`gqV)vLeM!(nG>R>VbL@rc0M5t4!Y4| zpa9nlYwlY@^L0+>hae~=4I2);?Vc2C4puKpB5dW}sFf;*UAy+Hz)!p!EKy&8!_WMf zsLpg&oUVR1zm^if|0sj4yy?qDB(9Z7`kT?$-8tH~eonL83-SJ7u=x+8SH5A>=IBd7 z()&zrjNGVlLy!A9KGX4RDev0WyYxGW{+tMbcO_#|Qc~~CMiy^bM({;$-`t87(t7L{ zkErBG_n|?>(%}jqD?r2EQR9a5`TY&BUzxmycQbyRa{!y+C4dSg=D#OE+VG5(jT3P= z{>{hf!{3b%5_xX zm_4SV%Gp-NyLa19V2c~hI6OI;#CGJcWZ6N>TS&n-UY5Q*ZFkQ5>~<&~c7pWox!l9A zc?)$%sv{v6H$%4fn{`?-rUS)Ld-sz!5x;}E)UE~-<@MTLPwNaNfVj9ODGq{_Vi4sv zc~dkx1BWRnGd-=i(q-#h)F=rAmR72zUwo!9geWiqzT{n?sejknLoH!4mq4`c$K)+v zK)>vj`lXtMTrUTxB<4yRLc;NElk!Rg^!(iY9(B^&>Ezi;R=5~5J z1D%4Yhxg(3ZPQ(Oi(3A0ZeNjdhDdb{GScNn_$Dtjs{A5^vmM)yiI??CDg9)yKGdp6 zhm1z&U|(O|mV8atpm^bAZ&Ygk8A`WT7az2Cc<9>_HT@y9&$toYiw$WTDBl8*+4<1N zq$}VtF`CDO)@ywkXmG|UooZyi?%w$MJG4H?>UB0BL0PykD1OCWd!bhi9g;hp$3d7V zV3W-AC7KB4e>_lEb-Y(KH#VHB(@?(V{0Pq3bVy6~P7=7ws2rtX0Mbj|FWZ^f+sC=K z;@X?60%<-1Z$a4EscDAVlhZz+sF}FYOohD$F~w1I~-t>-aG&0Z#f5# zE@m(sAJ5l-Ypw5=UI2OhOiSe3=UHX$Wi2s=IPl~At>zTG6(#b6p3Y8`Fqvbi(AM-F z@kXy7?}p|FJ7(84_cJMmW2OeZ{c(nqKT)mcTd(#e zoBa{$cHAo-v!bvgq~PxRQ%k)qvX(|8%bPS%V`!3qPWt_6irgqq%B@WbUtE=o{u?@! zSG$nsG8eRXZXV}Y_d>({_m}U66~`ufQzd5h8iUvJoDh~YN5Qm}G>`DZnwxa(boLTr zu)5p%l3&O|Pz>XM$4M*41{k3va<>Wkia-AO(RlDZ@K^!loixZa)BZH%+t8@H&NqRk zud{^b&|14q96hZhrFzR1<>W2WAqgT81v7P}1Qt-iI!VW|!G=g=R&&H|`qHod-m;b< zvU`^VQ((eA%jl1-_0R9YO`^+DKYs&w=cV=2-^;cq@^NPY)p9g7oW(4`Id=}U-7uq$ z(oZMqP@&jypicb}+pyF7vm7La)DDwf(;Cp7TKv^ltAW_im{G$K&U8-1A95H9>h# zv}r}#O}r2Ye6LJWA`}C%(Adn_zsOPBnT@Cbcp`pi#<|vt7#l4d)lZozQWmxBBT9j_ zZBZ;z{-7PiHQStJ345N+!n}^ukYPIvo>JSeW(FnNc(x?|ZQU>Ed^*K$ytKAb>d&XP zax+$Mn}#{*cn&S{z~S}v?C&CGBdIhlE1&?x%^o8Br0p<@8;7A^>udVg)- z{R2p&(hj>D4-n0y9Zw{Qh}QfMVSxmI34_Y`<4A=bhf~mlhO`TsUg_~e;?95p5}oH0 zA(121)^q1?d6wDcZg2U_QW?NaFp@T#LtBedgI>H3hpYAykey?Xtv@TN3@-a+rhNbx z)ej(htP&xQ{hskzF5|8B5RN!`&Nf|XFF}^MKMVhwHLjR)yi4LiU5Z`lX;$jJ%LXYY z&5%u}UHTe3h{y&)6=vob{Hk{Trt*6UJet$EWG}fkT<-y*^?O$Btm(?z@Fc!ob&1V} zpuKHj_lDS!M3QUTBS&<5R&H!>=3b=zocl$)nEGhjokh|Ia8zm=>iYb~06=@B!y7|n z=f>84e&K=@jtweUhP%dXCom)bz;L>JWAyLWvFbfzY@S?4YgCN0V-2?BZ6`zId`F-b zlP)=3`l&6Uv$ANS@l+C1nyc>Vabd%yDVo4)ebd)s@ zI2j11{lMpf@iXS^!X1=Z^XMx6;8&sIHXr zt;HbwjqQLT3BgpFl-fOxzFn{M#r^dEy)T_(AI=peJhxp|w|%7tD-+cw?)E}x7M6Iq zoXm1}e>f>=kcf6RZ8q=CX~xIC^YRjDu-~-g>4j_BwGW}oLC(H_Ha?2IFNd`?Cm~&9 zMyRjRGkI};S~)I`7Jn2}%k9-ReLa)8NPF_cCuU(uhpJL)Y`e~e!|lizs8G9TR>)(k z{U$`8st7ckcaRYt*XqorXa6VJ`Xn33c(u2nv+RDruGQ>l(exRM%2Bj&Dpi=TgmwTa zL=e!{*)ZnMvG}!L&;RaVni2ctqJNlgiSiiJuwp!f1BreUy$&u+6=)UH2u?*mFYmy5!#xYt`((f~$Id-LqEI(9X6 zFB4uKP|s#ClaA?fw5+S{%`?q3XC_q2PLl zQU<||i3b3YuouhhRH!F6y-|N4YsLnT#=aUK?Qf#8VL5KuFdirCpII+pz8I{WN%Tg( z;qgx%xXT;LR&j%WKN5AszMnOg2*RU)?@0vOAZyvF^Qel>jjf1yz(y^TT#t-0_l?LSW$SiRc;g1jQCE%&7|5!7cQC9S0;yexFBWVCcLUKDaj&-<-; zV%{^QioYcqV?PPs?9QtRq&g(UDy6VFP`9!E$(6l`Z(M)!3xsPI{Plzt3=t>ZYDeFu+;)(Ibaa86M%&yd^wf_ z&9|W-6PC-6ySs0Izg*R)*?OU;7#-Gn3n}PIH^Ub`Z`AebdH>GiTKT*J>jW2HQ@0!+ zC9b|J!HezA@RcrCPOkCaxvYy;1tN|S2}*B=m@H>QD>(SejZW~_Vn zlP8z_%Fp0V&!v$;-$Xel$q&(;-`;w_g~{>iz6lIK{9p=h-P&W;RAm<8I~uR)QTo_de+h zf7&E-*sA7gv@ZkjddVTGU29IGR)DU_eP-KjhT?lUMBeJ_*FTEA*UIjch>B;^dT}(U zIXb$rmBW?Lx9nNOIRQHPS9@PmgW%`uL(d+A%^iOnlYQcy-2zTPUG|+-ICcqsGTwrE zv)&ED5kmQi zq}7}5-f0aeQ8Sm<7UV z`)RTx<46z>yMgIs+0?knZed~*u#ieA{lhxLX7ik;3KhXyis6BWKZS}t8nC!e8kFg4 z0`te+bZ13TW}ZmBXza1T5JJs`Gs2Y`}qp#JBV zlYqRY7e)Q0#8!})36ac$Coj)0YXRbW;A$De;b2wfv~n~&Sk)cY_6i z7F}Fo_0C>F&!b{Cs^TM3U+o`aY3o200q;DzaKYFmg5diS?khKWXE%s5rpy7xK_poC zc5Hq`Zj$93ay7lMi9e&udD42*-g*fgvhR3I8c@icuRPO&AJUojGe;&O3bJfpg1CW< z_J7gPqi6>s)=BS7#9mg#okqvLdZ0hH=ZQEhW zym_GvCC*JH7sxy6Nbr7Cg^S5y{ldsQ4|VI3&@&>&Zevfxcwg3XleLF;V|MBJIu7Tr z`6u^qh7#3!ig!q6rq2y&y+d>0G2Op)l&=F{`>YavP(6#dG>-WLe23-uBdAL3?AvP^ zV+}bjGaOL>*2n{K;pE@&oY!Avz&z=^8(e{5!av?5CH72Pz7pc4yfp4|&2jRKGWR-! zb=M%)%P-L(_MF^KV5RPBw=5Csp;=C$iG0O^ zq`E&W9==D5d1{^;hqBEYq}AiAVrTpkzpTkCJpOKXd;ba*jfpSIJ(vRHl&}=&BUrU+ zjNCj0SeZOIw-4?V3s zSh$BD){D52L~@O?@c_NjX)J7>>H8!zBrJH$pj6pZMtv6<jah_i zsUmMslvB->(n})Sx&?;_J=1cL*4+j7TH%oh_=7B&-imt^?$ZysipohPXcb|t$l~8dsJ$U$ zN$t1iz&Pnl75$CXn3bYDHo$u+5(u{db&g8baaFOhx>kzVxGYw<^i!@Ztk<96;f9i!Mv zj)8Hv_L^Q7J-vPim7ms~`3(q?K6qQH1ZE>{nbyU(^R)m#0MmJuQOvz?-#+`%A|tOD z`0@Hoa?J=l%=2oB&mL}3;5ROE@rOH({EC&cjfE-IwN=+~T#ZoEHw+R+r1harum%G^rmVh< zU*#Yn&B7gEdSo7;jmZJft|kb*t4JoLQzGBn2V6gsI@d-^|J~!Q>+^V~4Q_VYE>{eR z?rV0_G;+77u|5t|+T=!w$hHh~LF8s{9O_3YH zvfNkA7iM#oUFr7l<%NL;qJp6lg`S=3w)*eb2Ag@rH!**V=4#&3< zPV!O9gj|I(0b|GG<)*2Ze_le254P=3KFIX@R)85Nb~qv>>X$w{FVq?|K0cb_?Cqy* zE1^w6oOw@*ZJl=E$4$fOXE_~pl7*dDq?ClWB$M(G+YB|xD90bYMb~88=c~>eieNm3JJ;%hondf0S1DuLcJYunDn_}q2URJ7 z|LiVEqrCz4Ga|b(xoQ3u;A-QYsCue0D@)-Vdqo z?_6%W#`ZG!L+^knCi!J@c86o#yBwvBbwnlY%Pwg*-R1JQe4U$w-r-=AEk7;QS_@7K zm-CTo`}M=I-e8c>+(gaMQ^BG2i1vhQvqS3Cgx2?#Hj(7T@5g60R_stIFZTzh(Xf1d z=VdoZp^3W_2*4n<`k-7e!2fM&tpbBTe7R3Q^P>#tjo!Pxq!I9quyYK_aLQ0()k**s zF4gx{&dz7uDmm>F6~M4g>g*Kj)+$Q(SsM6h8eoeD^a}snkc3sK$<~x})MO1ct7VqK zoS^3}Rb4#4Q08O@O>LTsQ z$hUMVa}XbVYWDbqAwid(6LIpmEj)u>=Q)589Wn0W>fDD;&!$Ao^~DGa&&{tcxvWGO ztU%7@557|TWG!!1NCzVy!z|EuX{HT&{sEL?v0k?wGG_?lFZ&os;;^!ZHxeZ0j2NV( z#3KBwTXI)FXC(o39ew@s@TxpTq4~)@i8p%%k^vP#TMbb7k#7k9$MaVfIvke+2*VH1 zi5JGNaHR?SL>QlGSq{{Z1KxsW?O$cdQ2|p5dwSx%Q_^~-$_=f~$cVU38xW7RWdLBpz7?th3m*-)H(P=^q$aQ(I3dqahu>k5+S`Galbx1i^UrNv+R|k3^QVBSY zk-p^Q{FmsGobgduY-qpLGVSyBE3v8@zLbGOLFCH?g9!ogq}%j_GO&KhY_ODgERu(n zhBhqzj*?vclGFVl&%U`SVwu&yjW>20i;4>G;|SSIdPT-zRn?!yHE|1%OA9EnyT<3F zSPI7!y%fo!l}}qn?`y-S;2lo;Hp+urGKY*1po!!wq>1j#^RwuWch!x8$Yqk7> z`j3ep+%wUXN$VGrw-3=?|Esooq5_=d8c|>v!^d-Di1`e#mZ(0f`vtflLyc z&2?m#??(0))=j@reZ^a6PuB+I+SNtxp8;kc4-J28M632Q_lAUUQUtASwR;as(pA9@ z#v0j4t(+98K$Kd%b@WV~;%fo+?%*HXrt_#CBp3~70&vQIJ;8(SC+GzDw!5Jxzi2&F zgGg0V^9_Tdy!bBYW`T+3F@7Crzi75=22W&j_4I!2DQHEJ;fM~uEQQy}@oA9$gcUq&mfCU zMgctfdHgC_3MwaiEy{V+A+${Su;7QyWbNevpThh;QedMO#4N$PAf@khww$b_b#T^l z^QzD;Ut+V2&+^-2B@YmWbsohlhXs#fVFUZL?*Nc0t8%a}CE7Immn`ue_T=TAfoZSm zLOuJ9h~zxt98*igJy!v8?8B00m)p>|Q)iynFqHr?r+NL?Ma}rTMOuS6%&U7uCF&cK zo*QiAvfrjpOX+gm;FzP}uqrP!T|oZ2mFNALx(Y%X&Tiq$ag^64(rS+Qli}F2Gryo; zqmU7&rMN!I9u0E8d6B-|Zmt45GjQIMa$j?guH;+bXencG&A~7OE7#A#Q~M1a4pVHS9YIwje82^R;QqgCfRzo?7km z<)CcBOPrQ+lC2IoAUh}6>jitsbn)oz7aQrTp%Tdk5sM;V_SEFj!NCP=!&^%6(qg}a zlyhd3?_MR#2hdOq4>n)S<`)VR78(Y*?V~cnf^p~}#zU3sj*1qSs=$^~CpRSeQjY$^ zr;Ni9J#Vw!^vpP7bwTI7#V?GZ00Ww&USzt>LR}1VOo0g%vU-R!ZqrOzGEHjdv)w+2o%_msUF2CS((-&VR>-W?_UVRknl9}->;2$UVn{&#MVZyoHawGRa}*pb z99UJok;Lbc{yjIww0TP26kFLy&uMFFPrRJFS>g8L5HH-ZQ-40ksU^uoE63myqf+Xt za1*`!Yq$@Xk+N6?9}6qO41jrRt{!nsVHU7_%jdbavb*t?L#ZT7@hK{xZSRarDN;Zn zBx}l0h6BEOQ%HvH z7pk#dZN0G4yKK|H0a%sZ^@Xu{{2XuQ?@LadXalw~+#GP}W%M8aZAcIWiLZL!0iK_n z02zgU7m9@a(4!97fN*3i`89PEkwuVht?c@yN```KctPJCZ^^+}Co)u3{IR`QI=0r2#$T~S0l$d`(P6wUnvzvocrj*IuZ`=> zo3vTq!(|Yt-)ZiM=nvCB$F+c9gi|2`cFrjsbivRM;d?xoc&4HBHMhJceJmLh4 zG{b$$e53T;VN*`u)$923R7{n>RkVes5Bz0~^gblGMV}dJxE)K##eSbv5NaM6e`@5x z!$gh-O32;550q&{%U^c;mM>#>3E(u+77nkNWOOg8G)YG7CnD^4IA9hzIo` z#Pm&6fS+Up1XW^8ShPPMXN4*~0v_(kj1fjeGZc0EZRUn$ZoCCpr2u)IO9U9iEu3_Y zWEC#*ax-30;!ka-r~CUeG&jh!m+B7045S>CsqQ7XAKa3szT73ceD*BF^o-U3cWhND z9e)=6m)nc~Mx&H`DtgoI5tIDg7DW6=i?#6r$lXoBC3fD7fY;tx(TO$?e0Bdk50H@o zxxC#hcJg$Ps@(tA3L(&3uw!2*sEXexfUP9A&=Moy;X%9mn)AbJCT7BYX-C!09x@d< z3j}Qyzj?}7z3Z(?zzkjZ4}X#g#24ZS?}#f3a1bP{jB+oihHTwhoB%T|C@QhGi0GA| z+=SNi1C1|%-nc&LzKzpZL9!I~L{#_r1tVX*2vYO;UetcNBbbj&kNtOQ#J@YyKK&A% z^9>E3VBDlN$%;xD=XLUXAxxP;m_m??4U#s5=8rtg2*`*^yQIm_0Z<@f@QV37 zAFVyHpr{B09yMkLJ_{mn`2C8h+j`H}y!K1VZc)xoreaVUOvi|h(?)zdC;x9F-UIP3 z7dlF~Yya%FDUJdA25@tf=fi*-#LPJeV-rg*d#?GfO3z<(j(_}Ur3RI;z_PIpTb;Cg zEyYY|L>@T%`!u-%W@yaHs~A89!Upv+5)C1CM`H~X|Ir-h^PpAR>C6soFCmjj#6`(? zg*S@6l79S-Fq>;$+3=v|L1ZfBr5ZFM?J?Hdg9*z(83nw9hK1Q-03alY>WpB>?)sKn zspdV(5f=21v;!{8;uJ9VaYgejkRLL53f>Hp7tbl>lY0YwJn-?6j-D(9@Om+Kh4Ilt zOG#564&G8|H$W_a>OPRLU^2%qU$`<*1bciF5t%u+slokEo~ppt4=U945ITxy;JNdN zUbEf;QU<0yzn?r@s!(<9WSiOy5jt)gCnn@ZckqyQN6N5Ka`pv79zk32Lf!03NO3SjY8 zM!$jHgD-q2nbtQbEYAK%vX~=dw=!}EGNeq@5)!CaS%HMTjF?%R?uqQq(z?m`L{j+Q zciE`#NxI<7L8D)}sye3W6A&ahy+i-zn{jP#{`l!XeKR;h!Ucc%W+?yVn_>OG_stAI z$VRdFG-D8evoLV3pZsPeLOU#oOlm>lm4u*mCdp5)k01S-pMs|I>3Q2HbMCJ-J>cjn zRDud{uES<+%{f}UJwxzMlafFz6Ybe=-bAeu<-odL#>gtu2{9{T&0%9-(hww3N`Hcy zc{3B%6x8xN-+4?%pp_WVb7P__F-vqiJ{+n1y>)RbnbKqhhv0$`o1j@vwY!a9}f{_>~sp?*&pk!xsZA@RZV=s;f2+wM20 zKm&r0Jtkby4R8J=3xqVqSJaVIb5i7)e6GbMTs6F*H(+iO!FMqlJ` z11_iQ6X&=7Y27l#ew852jefNJjphosV(k?5m~#6Q{-gRs$P z0iNE`j)E-ik?`g^*7cQ8R2Lp9c@;f=g79U`jXY^Kg0Hb8xU)l9%4|n=pN{z1RPSax z(~E{$^LW5dB_4GA=3X&xHOvJopy8}lt}1thdc_DX<^KTzB2*)XlN4=`1%_zEATq)x zZe{4qaxR`>nurJRey{YF9+0Kr>87=|X{W~K&G(JXRUFt<7~7E1y+k)k(JjnmB9D*( z$+48&K|28>BW0~Zta>NfF!J~DYdS|vipiU@VqQ^fI_>;h{N%~)xw-x?Nk{^kxUzon zA~$1JHw+r|GrYWr2v28RuG-u0(N;J}I|4Cz1p9%Q*f{yiAgiK-yvy522>c{*=XrC1 zW|RbrN_gB$_bIhC_nn}CF9^$RJ&AId(jni5wTGY#IMIsJea?(Xn>-(*MeW!WUze@~ z=q>QTH^G-r(vFfk72srKC_@3+M2z!ZZz}fy$pb#J9sY@U$HDvd;B99l^!d}@ndTH) z7Dwiv;HMj+e^#uG+p2=J6dZX)pIE>KeDS!1&nmNQHbS;%j>qhND9C`*`m0St=qqH~ zOZD5d3k#xu<)e}Akv=}1x1Qwlw=tvM5#S|v5FDl``P*P+>JEO5#$?^Y&o9&(cKXhg zBOrhI5+%#@zyIGe25dSiq+om-(ADYJlwlJ!UUKw<_hO>jz`ULsbnM`%+b(;-na4Mo zg>y2L*^#;DdmQJ1#n<;wqZQm4-^7q(ax+dbk}|yF;uH4G4o`2cJELPl7NA~X?UZ-Nl;m(GVh1@xI(GIz zMRFjcA-s^CcYGi@0ykARUb%$k*OeCVhgPqgMW#xFruJ|mfa0GvV$G1h*+UCtW*TY; zfH5N$;5z{YgAm<+vXj{qp4N*=OQ))$AI? zE<3ROn?Vv{|9@b=N0(0A`C>~s*j2;EQ40x)iZ~NX3nW#qc_A1Qx%RUcl z>?WhYdqgL#YUCS17_se(>qKO29+Q(<8iUR)6fnx6Be6+e4G(Wcp8x{7j9ywUIcgKn z<2&w67bHsCpg}A_n_F8$gK&k z=+Gb!C(sk<&dmjS`AD7?K<*Jb|BpCH6rTBtWDTE>!e`Le9p8VPem`|$9hzUvvcVF7 z6Iu`Bm6z9+qSKV{tXGc$70JRXhJT-}1&kbH@+lF3jmY{6r^fODcZDNH#zbXUbOJd> z;RGSiv9m^>$fx8=i)&L*5IqSBW5}^_zu*?O!89VO;>~3cU+@f_q$hEoh{8&XBgmRW z<>eOijOYK;fQ^kxXL|D@GD%vU+*>xqi=TgA+Dm(hUjkmV5y0+by?W2TTYyhhf9kYL zDAy=l)1bRcFrlLxA{(@7RmB{nNaiPvZa#V^#yk$b>U}i(^HnJW59nO9vgem;?DJXs zOo`IcAVk%3pV!iEDDwDV8(h85w@z7h^(8OL8P?xd)#h|v+oZ&V5-ba>dZ-TewJ zroz({#>!{PN(=7m&xL=J2LGZkt*)+w z<_!7&MPkDD8t*>W5mXY_4p4+Xx1jrJ$SP!WqKH1RS4maY#idAFt_MhNjMaZh+hu2J zS7-VbyIC8PxpdYBEHX<0=={?<8AxM@NLeG?T3OvvKo@Xm^Ee&;V$NAa{LJ86TRJwI z7t-RY_OE-Blgr9}*RCoocB=+6~8Vx*FyydM~D=eDJ6| z1|zdtrll-L_x_#?X@5~|oSuPuH@&>xiGR*{g2w*2{?D*~FEakWP)nZs(k8uvw7t>_ z;^Ow2qW!W~YDNJga+l+clkC4>T5L5rHoPP_X`4AEt z21w>d?K(>XD>My61wE&0t($B|%6NZV>Y_EzW2gVxCrAE!mGh4nkoeo*MPIN`(gN$R z8vb5cZ)y;s3?ChfSf~hoVf*?T)^@C8=g7;7($TQ_=dj-icY9K z%NsT7e51DWJA;?O=A7o66>Kj@3FxLb&4t-~)Rs`YM9(oG=2cz=; zJ*p;I9*wiVS=&ws6RXcikOqYa#2kfiqxdb9jn| z8`*?dAn0r^V{aE+#b4O;J@$Y6&df@UmLyf|m4)ShqZ?5OF$DB<_hKtqk0;?*1%=pn zQwMH!;Z@adMO^XzgxtezUZ>#AeQv*9XN8>w0LXs_vhsCLQ{cus>sWJ0r3ns2KP56f zcNmr5>y)a#ha4yP#ItYK;Bdsla@tGYn(yd2M?34-GKZZfPohEf9Y6X$M)=~zR&YS% zwmo5{otkRH6|!R9j*CA64EeVFNw;?LhH@)yDE4Y6!mCZrU&8h_lznUu1W_Dr!^s04 zeQES1@;0Oaey7WSBQrDQuz6T4ScdBtRn7%n;-pSmS@L4~5<+5D>H=QcycLZPBV#D} zrodbwoc(CMW-Jua?nLr_B!N(mPwqqMfAR>V1U=qcai-KAF)zu@ z4@QKT4YY8}40Xm0`N;B~rJzkC*J)2aX5=6Fq87N@WAaMWCDmNpk_rBeOMsRts@;;n z9#<>2ltURIpF~oCYQ1a<2vn481~U>~ZZ}!`Dfxt7^Sq@lPO8F_fwgZ`&M#Ni*rNVk zlzF}}pp^MuE8g?1bUgSy*EpkMiTQUIi{_=DhEn9_u80jZ@nuAm*7~Xq!`Be z=Dhi@0aUqW71U2-$Wf?6JuJ`9J=Y?Bmr4S%KgV)42wy(jdmZ?!zTmagCpK`;`Q%QG z5k^M)P7P2n*ifT1(8uTJGow7ZwqKahk)i@?;P$!Hp`~HQ78-B*?<43&+Bc?&G#B((d)^(!u__#mk)y zEG*;(b7>OipLQCWNuzaF0aaCTvXWFF!BENy(g0jg-=M&?Q4SywO)-N=tg-8m>s>cr zk?gq{EWr<*4<7 z+>2XS0m;nH{B7~-<=7$5gx++)iRyNMo%>Q;{65PbD2e8+ zX~EQWD`UFQ2733>15?|8>rsQ1i{MMosvXJTr`S2Q2y3}#wubg?=QHB&?!y|JibyGm z6B=L!JXR%ALM0XJ{Lj4I?iMbNf}TM!mNy*1hqO<47~9{yGm+v|K&GSN5yu~ol3qR# z3H1Sim;(lOAq_%l)OsjxP^E)!(2dDWag5q5bFLYyT;qum5+SU>5b%uI{<8~<+;Hv@ zk-=)oBHbntrRcz@zLZyx%ID4#mB>>XDvP0hrdIK?jum&6$y)~nFP0DDQFJY8(=9+K zat8AL>>)da>LIQKbEZ?ah1rO{IGG*CIm^w!D$n*HYpIo0(&)CL&R}GEdu!r1ID|Sc zGxN1&Vq#`)!OyL%)DI3%rY_F1Xpsv?Kfbv%r&fGLD-+}<0BN?g!gCC5>zp4a&6!gv zZuw5F2n112yl@}Ad+B@%?wopB5x~3OIi7_HWLl)0k0xp-s6BEQta_HRDT#OH4@pDB zdX4eHS?Rvl9=pNvwie=%0?nGAZ{$KZSZNHt4G9BiP2q1HN z!W~XW@Hx`?rj0l$qNVH#cji3B12o?OG5PvFIDQ&Th!>lU z+nun0?kDcR*016PKQPL1ntRDbN!?Gn?TM zsFZOIXxO$&_sWR3n-%w0D0~8kjUy~()F9#P%voZMb?Y_Rt_`xvnf9H21GUz3?^rek zUq8aYuo&-z@feB%45!tc`RZ5BrE%4DGHCp!~?YdcVhAY6-?W8rB9 z{Ph1Ha2%d+1=L&HM)QxKeXx8chR z=R~G2sdHE1UYG7C2fMwzzPoK@K&ZF)39>znF%!1|JJc2$FaBy}aIkJz;8o{^4?rYu z(nmLW+~)0l%@ojw`|YF$h~zHj9XuD(B-{_1ytv4EV(f7ik%(p9_nz~7>h`N#s>m-|PQj3O z%Q|v0c*LLnIQb4#SUjh?MUV#bpE%k<(;Y?Tw6q*yTN>*870hb+iKA=J(k3<0v65&O zhCb-XX}(4u0vf{p0g zV7OVsJo~8d%_BX}@x1@V*joU#*|qD!El{K_1TAfGhf>@%xH}ZuVl5PRhay3XwYU@w zPK#406b-J$p}1>s36MZYPWpa(pFR7Weg5yC$xLRFOx9Y@y4UU3wO~WT)zilzw3~Zx z%>)J&HoT8}E&HbS`_b~NUs}I51i};b`+8*W?ABVx?8Zer{CYRH(<(2$lE0%VJt_)k zei|7I8{D+srPcn-a8F)@Tc?{_AId|_Wp=sWs9-~GvfqBD*-YuqQabnR{=B#&Vk6e% zF9GTJ`t+g0pJ@)m=ZM=YGQ%K?UWdYqF|wa&F~N*^_yz>`!5#0gpzOfuEf;nciLdv< z4nYTsb!Geq$@Bfw+OIadZ-^KwkmOxtVWMe^2k~~NY@!2WvynIT4r-vIdF9(5fQ%Ih z5%nU?@3(~O^9`z4s~fcTFw0w?>a+>2H+6%=xhiR6J^4#|bfyd1KRw;4lV9#E63hC^ zonKto^~O+?(2|iksA=;gS2e8==bjF4#IBA>-%f_t+fDU7begT=GWDE@5WLK{OCw5c zaC)2ds$iA-wThUSn85&NqPd^fr?Y1QHxKpy6jN5fc?z5I5Lb29#6P=@YI; z`#m``4R>~4 z$v8GUfKPnmCm2z+1L!-29_)O%IzKRe8 z*;`V{V?|>7r{dY=ZVSGd-{s{GB_1IT4i3+;HZ*MVcFWEGD+r0bPB6HBv|r={n8 z-gVGdK6vNun4a!oBdQl%(~m-IYPPy)P-CDymiDm2#eniBSR)6{4fh&T%tZz_Web#0-~KwS!rgJTVVxid6kU zkp_vM6CGTqUYetyomA&6J^mQ>uYwyl0al@PioRH;DU)HWKlkJ%h>l97nnrJ>8Pi1& zEege7og2^hbyN3c*AlO!pa=CwFyoTVz@Ehl+16s*2HMvdM{}DbenApzqCA70@3#hz zoq(l3%&%I3gJ2_PrO$gxvN`(fH)ZW{W2@U#-^_yP5IAtX^{U5eK|3$(Zw8O1_fj1Q z{5=h|hT4G$7KKdm2cR>1@AfY!gEUvOb>MC?0D1>lDON6(ax`RKIP(n#8a14Gus-23 z`Cw#J7IeWSGLd0(m1n!saAc4sjFe~iu&s6t9y>ma0aYSmJ0oN;wc7zNNjT62p}bDU z<$AQmoI+2pxb+bKBxO9d+7v*OBqyU0S|8qlC)_g_B1t;@iW9s=37n%Jz>~!^D^%Te z?`Wb=^}oyF?4PB-ko=98)N;G0nAXBj9MqVwb4jH@|AfKK=8~7i@Kew-i1(<@wCHKr z@T1&4>1yDr+6E~k?OOTn3K?tL%hfmq21v`z7XzYW4wi>m=<2dWI(NMW#@3(I|4cg@=d9H?+&P~6% z_uAg~8Zyv0ZK!+PY~5l#kkRV0`~JqYc9X$(kS}h=IU~UTW`q(ZR4&Qm?^u#y*qYAC zcWrGoHAdAigEEnY?c9 z8QBhhsswI*iS}mGmCz&jnB5$vh0RA` zdDV`2=K8FdK;7J(YM%o%yH_G8*(7l1b0qnK-7R3uBTFUKjEPr}Az~pyamw<5niJVd z^r2q`)F00@-@5PP8bFr3dj)J4;joz788pji*Lt=3*$B}Yf?T6t+Q}6StZzyUoIR@h zU8b=*=ZdY~b6U044UibhfW!n?cC$lQEeA#V-k0My7A!xr<{7JLcX}KWv$)K}BiS7e zSCY6It7JzR)Ew=$>=|BQAEt2`cb;ss?7Z*fL7j-zh0l1^@7?TJ+ZQm|9L?vPix zT-pwUk1PXhhekwbJ#w3AMT04y3OTH#U;<`^rluyVlFiX7czVe95{j8#2tl>cGLr6m z9szWXJ$ItaW^ml2D&A|_rzg`ahACpLfAC3R-grb6z`}t`?*%U)l2Cvp>7O&=dZk1q ziX(NEIT*$A)3FhJ4AcYf*_4Vw*`j!heH5vgvTOL}TQTsoB=Dp+mp)=0$JgEOK1k&O z3$xC1aTDKsy_N0ji-G9gk(^iP>&aJ=;HPcc@ z&CNm%G4arLge7)zGJK({(IH*>7Y83}XrGt8YV`;@qoLI1sd30r-4y$fUlYoUfAG|R8Ld}jV-c6VDI9VO|PFSm$$LSpX_8>mQXO)?@G)p z0zqKf0U*f~bi)c1x+b%qs)}t|US3@Hgm!&cOpc$TMcqFy;b_d@J$xj-T|x!#RG@p~ zAGC0>?tS&9ZY7`3lDpKa^#L}mwSh@9_&Q(Sif8|@_Gcw64Y8V(U-5420R|s65(fdg z^oxRKU))%&TJJxf`do6Fn@0!Bk;C4Ra&-1dr_MbWc^F-i?yt2WX>8l~DT1`bih{U9 zf2OoSEID@rkJ9SNc2;Ues%qrXLwdLSvVv8rMi=)AKTqOCJUQD3X@48V1nuMN2_}DJ-i52sQ*X)a;>)oWB+I^yp2N+l*JVt9yj0b% z-NKJQ*!_Zx=T4owC**g98hW5ouN$BILf?piq%mI8`)n_(i)`UJ(l99!{ECsVJzf+RR(olSLl)IpO?v)DgJ z8>qaMrSJ-GWcD=*UV=}|~^1~~#l`V<+!1l}oIBFvF!Yfk@E8L+l&oI-uG<@ALmyF){}|HG*6y9j9sH66t?h@)rUVdz?z}|a zf~!MS{k(h4iOYnnF!%q!6Vd@6Q`nNw*kId})q9WSCb;P-`QE4C%PgObjOTBbFz_D* zjnA`12yb+-suIw=HeZU2e@z`FO8|sf%@%&a4i%lYioXwEwEShKsnN&aA@g1D5%Ivy zg?0>dBJBBDrPbUlnZLy+As4NDq*7DqL;r8S0zYwS#9uoDHGX9hU8w0Dp1pY^R)gXp zBPHJcMKeKbK7k}kMAbrSOM)^IuOR2UE?k#$xUjvHipJKOR7u0W{1>##kvc$+n72zQk35)YUU28}#hT{@v{l}*JHM)MlJ*Q< zS!r4sA|2SR^-!P&ipCfb?QFlkc~6)%c~|NGwL!9&<_n|Qv#)7jbvI;93#j6)MOBZu zqIiSTYaib3!sUG#PG^z?<7xGWu5Bj?Oo%u|9n=@ZU3xV@?cu{gU~h<+Br=H_Jl~sv zr_SWtIiRw_dA=W1(q_4#ZcyKkKntMbox-t6-Ok>W{JwRH<+$v97Q)?1N|w}Y6L0CV zml`LC zUt4wVl*uPKJ$YPiCPI9B$~Tm8+Bcs7`@|`eJZcl&)`q&7YS35>t!(C}*a=!6bZQ3k z@{>EGh>}yH3+u@$NQdo{DT||e@-Vb1gCycnpSz_=_FPqhrq|<9y47Tp!O`{YyRiHL z6}Ma|-1~)n#NJ-)s{czyWC=AyZ)i*x27sFaT9UrH%LUzm^xtpioL$ zB`G)|1?g{Q4(6-F-04_QYS_zXKB*kT{_}SuSoU6bKl_%TD1VLw7dyZj;OEd#C(Yu> z3r$H=nzIKDGhZo2T+r2VZHq+^E|)e_Zs@c5hE%uV4FDDeCWEhoQx+qmyWm`BrJ~YU z$8nO)(Aqd>7}IR=Lp2LAxL5)sAS_&qvq{jl{bh$&Z>yLub*s;C`^0(G(eu*xQd@`P z4V3EHk-|qqa*(J8u-6QPxBU{H6jR5~Uaw5|@L=Rt_(D-}r8$*VGB;=g_LC8cag{9PYxQuWRR^1*7R zd`cp+BX))plz#&6pF_8tSr?)fSGn_Xk;{jTtLP$zFuZXgBXh+TM5teHj5$lipY&ym zEDXohlu_W0cSU=vHrv%g`0th0Y0Nls7so`DSL7;G_OMRgIxWS|W^gR~`pI`#fVVw0)`N z%gS8y+v$MCmg+Yo4<8s7%v)WJ5_)>Xj!rX`F+7-7FKv12RY=YH4K(5^NshT^IamE) z6hAooB?o)SxLGB;i>=LzrA#fpWV~mkzvngh>)z36A3~o=2+E1rAo0G06-}jYmrso z7JX&?G9rs+ckZcH7p0`ZUdZ?B3Ce)<<#w3hb6#6|3{E;H27cSG4dfQUS^iJ}1}(;vDJ$?b7J3I&$JQZ7}HS!R5*7 zSmrJOh?KGOpW>{?_U~N{tq?ZoXpz-T%T@w5axju=TpgfFdciLS9R-l=ii6@(Kpij4y?poIPzI$`J{R+>YhAYl14BQ2D_k3km}5 z(s*7_^xCu{uuhieSGJPrVc;w9t*Rl|y7iI~xGWsOINCBteL8%Dlp1PWKIg9W`k5^W zds!F1`^fwymq3JsS(dyL6^7XkRhoqj5PyEXwfLtUjIZ)Ju6{%KL`uzldb3)rGTFlJ z=GXf)8f|OHPR2C{8xOdkEA%@b@Fg^4n1*uFRSp%olA}HE2q1!0^RB49m8Yl}bzJ(z zCnb7m=76KvDt;C69VsJ+qNY$)(@1*ZwDM!73=eb7Hs< zg^)LkvpS2X?9DBymbci%xnw~ZE~XqGe;5T$v$^4-kjsIyjxlY{#J$UsOB(f}66yTb zT=`vGabpvA=-W)J%s$;ME1L{#t&EeG#mE_nI4nyEEB6d0rPU&Kc~7;L;OO7WATWpK z`R>x0kIB2AXE=V;Vj5*7nzwV4;Lj8<)wEUZer3GAbA;HVw|%Y29^vv(%?7 zrUY$7>BI!v0Omq!9=P|h#aYhs+2%b+wga3+p zAeywDc)Ay`{kvz&njWYfg{e|~Dewd3jAVgIM@?~0j|{4F5`wfpuzh*n_@2K(fa_+o zR&MY0P2bQ+$DHVpWmnyt)iY%6)`c)Gq%}g&Ss~KO~~zuIZEp147`nKXrbZ^U?`)IK<6n|CL_06#*BY9Kaur%{$4 zeRX?kVmbDI5TrnyDULF{Z637!5<&E_>fF`19{cmqj7qQl`A&=ex=l%={Wpz^4c)p; zF*a%(Y7PpL(P34HkXS}>leOLc==8iypsjZ{dQRAOt*DztO6ko-YRMrinbL5$+|McP zk$q^(EQnv)SDUzVb;I?&^=80(`%p6=Bixz1pA01F`i&qNd<$PEHg0fSPtAod_!=Cy zT!RG>nbED!J*BF5#MJK5U4DB@*tmxw6_@kP^w-jQ6VNsoBzbmLf{qE`c3k>Gd+5$L zvV4iR+*ELQ-QpUQ3&|$| z{$-yBlTDFBoZ6Qck#|xD$~gLNZ^ghMS=1IKovdODJo->EwMD7ZUTaCsC3h#+95FU} zKAK@_ZZu{tg$nKl*u3tA_|IyoRreW>o@}<@1qRA${-Uf1GHFNJTq{vJnfA_FJ!h+b zV+sd9M1B!rv%Vf3X*v|i1++%5Y2x=V{t`|Z&yNFu4$~vVi-G}r<4T`Xas4EJH0?Ir_N z@Tkw{HPJW4MkbsBKhaf)p(FCTM;G{!LxZt0-01P}LdmlaJUm*LL^yG$?YY||xu>FC zfUNGLlYT~)dA|U>3>2uj`xqb8;k4K=LVbMrY67Eb^UJ~=94Sb2kmdOA=3UoMd$6iB zMaAb1dzb^lr^pz|TB$5_Lb1bX+y>Uww7LM1QKwOpN<^oz>~8e&^;X%oh1`MeGq49a zd-(zzaWDl7d|dp*!GgFgVg{~>hFjT_Q93a``nh85$4UWKu1T?)X@uf)43j{7t?2Zp zDM`jV^r)y;x;SMILN3w%(MA^S23$>ts!!rG-nrPD{*%{!8z%DyPXLM!+J91dTp?sB zo{D?k)Bk9&zm&GJYVE#KDJgB0N6zSNHR2RyQSJ!fb-$eOM&P$LxRH#kS!z35Bed-Q z$)@~urO88*pWR=d;Z=5ZTAOqY?yvK3*@z@X(grM@xoqIYX}RZx)6@0Pa-!IafpZMD zg#bHwo9kp$qWS(QA0u;qy>6E(ZdkJ?dss(L$5NS)sJ;w8;O?NgtVHzt=5C-A zx+r(`EO#lhBB#IQ(Ma{*-~O$RvSa+Gj>Bn-SkGl6g=K=l^@*D!WKE?uGBUg;N9)QF0grTabe_8W zfPf=i-J>BOdITQML?^W=p{sk&o18D0Df-IEtfD0u4C=h4fH9yEMjf}4o9j1x(zz8e zV774kM$<9#BWYl+Qt9p(ncS;7&h}T`)h{MWu|S)I(ygUzSG&~Rcq(etYl!d~oOSlb zZ^P2LH6bG5bP5Ysq>}Utr?NCG79H#B!Fl8@b2?pgEWXmw*t2Zyq+>5OnVe=xy<@)$ z5(dfYsX7B>N=50%yR{d-Ee7`D<|L$=2w_nTs6erCSa6AeTVaG2Y*G`r`F67yn{=+q zA(o(jljFsxs(ozqPX*;~yA(!3{_nSMm-xRDa_Pl7w?pc%=Q(;vX#5z9|Li;tSt4c|*017;!mB=sy%Z zekk4(4ZwXsbLedjUrSI`d5olwN~gA6#AExoCu3ibBKb|7yXv`49%nTO{_TGY!hgua z|MAv=IXuZ2b~i22md#%D``>%mCiMGVWCg%!u8?GjL>Zj5gz&HTEW*F1hL4AxlGhym zuJFV+pNQ2uuN~Y{B*=mRT43?7&#E=h)FlP~C3XMDDE|^g;eUpzI`O>#$(30=?{X*@ z<7ZTAksVN%kmaC{qT6^EX@-1<4JEK3WlW}EB*#v`78c8sH{B>}0clnK`+x74C#YtV z%sKUSEgwOGiF2Md8oRMbtw+&o=&;(kSn_DTu^N2Ev=K{+a1HLLZ%j0j38!(YEhGY^ zh>n9{98S>9*EhSKFaF25|JR4_n2u`Y5sEku%?ZT3F@j6N-ib%Qdx*v%^-*+YEC&)Ia* zM{@SPKKuTZPTQ~-b2xr3R_#`MgXy#jr!IC0^2_EaR?F6nQup*jAZMg>30Z4X;Xd*l z*>C+Yu-FUG6{_=o0arG?n)*9WioKe1(&RAuj!WWu@6w5i^xZauOI?}r}yE*A;H15f;Txau?7hV+wPJU zbKF8Y=6Fv_;lS=Nvl5U33i$_-qhrpD0$%j>C%-zo2-i7kI6#yy@Agma!H|A(-|W46 z8|~q*SZ)l~Tv~hjN5Ou>kQr7Kz!De2{-N?T-uj03R}6849DNs&JE;N_(v6-2$(#|4 zLl?bUcGhjL%x$3Rg9ItBBmO}3NjY!g46#qt9N=PRO z4Z*rCK;dyx=sTR)M{=Z*_!h*RAD;#95#!NCC8X)m#-nJYpymH4_W#FfFyGCQh`xaX zPgA{vChb^QSzjuNE)eM6yLX?113>rVmYztMfoGlPOwPN2tB4gj(Lk0bm-k~~E72Ej zSPa_I|1V?rf2*>;7O)WiU&ss0?XBySd`!^Q%p463@~1hn(29rHvXA?`D(;vf|CQPOe=mVr@g6lbTx5L@1BaTyLE{DK zD%_+uD9Xjiv2w)O%HIpEIPEDZV5C=Ce-u((u|%#%=0@yKTW|G>?QoLKqBt(wJ4s&) zs~pqvqMZHj#u6naMroebT)3=lE7((^@leD|g{Sdd5^8pRT;atUaw;k*qV!#vG1V0v zDO+EEMOBbfoRjfgNs?kq1+a(&Fh9XoXqAe~>Wllqf2SVQ^RM{&ze(7C-!JTt7`VtA zB)f^3(*~NC_4JeIhk!07aqGTn?>~kqa^wX#V$rH0Q7PgBs`bU#n1-04D``vGF=!bUl->h5l#KklPfyg3?}{TDWxQzrq2jF01{`0oXm4}YJ-E&YVe zi1Y2#Wo@?RbbJ&N@;V%-HmCa#jMug_&m~D)u3;9PXi_5|iH#*?apcDW`Ha{8O`T|P z@C8%V5q}XIsoZ$eV-wuaL3O+uRb>+)RE<0y9sa^VBxz$2Q=jy`xkGyTC*mo@8iqGA zk_+tl^3)0e6G}khK@O+L23)g?bN7M9cDmG*6yp8kqN@48z`Ma!U`M95DHY^EZ2Syt z0s?;w${`ttob2D-{<(%M++7#%mRgU+Zn^o~7aFbc@7v^p!d zYsm%f3gqope}sU=3XN}3D5)>nf7dUbh^7m<-#MBCUf^PQ5#jpsgJ{QUh&g9GD6Bf_ z)CCjz5}@(A43NwKi;nI2#(D*G7bTajIo%G07}XB%i}2TpibzWeh?+u*W`OV`b%#k<$W- zT|K)NJ1NiPBpKN}yJl7GcIhJSQJ?^S<9i{q=SI*z6vXL zC=nJ7E+b7>ocN*WxDo*{I=zz-Xko=m+WmsbR$iwIFHGtWs#seq|KDlOe|!jR0Gr9u z*$z6~NC7jvlfFkntak*?`viLGi0~9)wLP7o5aED`wXL$BFUY*M$cfjP9`kIl;7WV* zlMBOT@noqS1=O~ZMD2{Gfi30##z6`u4B6jWjl)Ano(--OqNDg;hu&)m*1(yton>m; zBmRud%tW-OD~AVECF;`iG!a51kVWp*ij#XqD}UY!r#qJ|0-Y&8?&D}DHP=NC6#l#Q z5&b2}Ap3_T!!-!g4mV!SqV+|uGDjy|ElTx`X|(W0%`U5WT6FL|ih{{pO6jW+_4i?P zFk%KR-A1y^0YC^*_%{bMy=)s4y!@{g{{PV@{pZ7uPxpL(?r*HdQKEOb(Ch&vLQ)c9 z1T6R}Bn&K8#l`T2%W(z{1w)?#BD%Q*Z6b+@L3>MO4n!|N9RFN4!Tjp6qVbLLau#a6 z^xv&&6yJan&Dv__bpaZ%*+q9evIt?u$<9BGXIBJdDN17G1V102O*EFC!1GEzV4ba} zxaVC#4YueUGaW2R9>$(X7r7M<2vEcr^sRBd|Jlv{-|M9QdzU$@B;Bvh%|SE+1T#n{ z%SHmKX`fhQl$(^9naOdSfR6*ko*$-(*{|dztsd5(Br2zunu-`Fln3@L7O+2_51>A6 zq;mFEO^RY+4yYReJakJnZ zxUy6@%mE6K;-19BskV>aN4F>F2TVLM-z)wy37H0X!8a4cEfUE1LIQrjn-qvr|5pv^ ze+X;-<9V|y2CI$*RK;x;CIA>DI-&VQ_c`p?WQqytPCrIr^F)$jb&=MtLDypS9J^Q; zi5Rz7VHl?%itbzuSRhY@w?I6-9{C!^;$0<9UZQuyNYgT&^=ET^L! z`86B9cvRv2oSrqdTUz%1Jr?(Q4|y9fj{D+8q4Nni>)(6qdHl#M2^1h8hZBvbrG2j+;f?+&}L`v~3d77qTo~krVwD3~(!#jM^BoY<{*6`*U$SIj@U%qX@lx?&Pcg-2ot488Jp-UVvX}TI>5ShS3bP8_{U_ zpwnor4{TTr^c1FwDoPVfI=Gx4nDI3km~{)VGw=h7zcfEKIIQ6Ju3h)`ih{rIl}LB_ zPc8sCZ*!>rO$gWlU8DN=a562sLhs*sZhAQ3>hg7E$ShaatL!zr{C?eMDD6HA%z4yS zldj6lrZ@-jE<6Ye9vw}12qmD}Pa;m1p}~vNV-Rn$$MJ?+21iBEI3;ABM&=O$sZU9O zTjV6*m>cERHc+(e_kZ^UM)BtmBCo^2*kIf&SMP7?Es`irI1tW&@;wEuktNbm=SQ7J zJWV%sq3$IpUS{_q_(U_v_desLqc_m=9?1_~B*x_9(Bu1(I*i$5!xbIb-$$xQw?LN1 zOwn-zWT%n*hikbFY{)W)B2Zpno#1O`cd(Hg@fAIhwa0?I#`zbepvfGQz{ z<5z!5D8qz(x2o+J%`zw&0U~$*W4EyJ!HDr5c8YA5a#9DN2ScVp(n46oyrE;^E+;1! zi818+ z)`p2$WK3oMPWC!u@LkCBVVIvm3%xgKF$TX6*2##HZ?x3L#D{I-Q?h z8T<;Y(r7eAN)K~YbO{?1HS0>_tsh2U(NO`l`9NXVwyvdQRC3!D+GV4{pc72(8eCzuFwikq(<9|$SpP3}*Fk4-S!ISFQ z@2^KzedhH;+=$!rf(3pu2vbK8;UoSBd{<6&=9)cSPUjGZA> z>Q9H+iCy#GUXwEhOe}(Fe@j({QkH~Vvvu3)S@+Zdy0vKKeTh2 z{_X-ft;WjC6K~wOz8vquzSO@MM%*zi0l$vMxhPJc7+@FeT=l39?owYT1HzDZ=0I`I z7l}!sa(22mL+ZSv0~ZrPb-pha>eGKfOjR-Xo7Y#FRWRsOWM+||_w&BA z5o5c-Bo?ja^XEqkKTGSzq+?0Rs3!k7E$&^6NtXuR#%&xxZx)i-fd^qcJu_A^=MY=dP2rcrQWQ zy~`RWXF>6?9-|B^drr4GD}e-Su;ka2Ei&_rm#|YWniNu_B29tl(JK)mWge~;!A z=wA9BnRaL>jaLtWs7d8AzsJtwvfWL2#Rn17o4=1e5qpq{jb3%To5CrF>y9>R(-sM5 z7CMyP&WlJ4WW@#=A)l;EskdnCQWARi40iOO(8P4u>6TA-kLro_Y5A@`ST0MLW45sj zm-s6eYg{Q43rk9^eQIh|0V1NLNM~x8r!L?qwL2o>U#L+m+!6Sa%T}!Tf3%xW+z$dd z`d)7u00lq)*bP*>wSm}9-j>!EeRZ4Fml43LO}>P-q#)L_%zTchvSd`_+hr~T0--AJ z?;(dccUdMO57 zD!Q$r4K%0wcs=5%Q zN3p<>D~NXf;;%-+uo1CTgA5lo6v zBho)hB)y_hi?2q7T05IK23UkK?sd28v-gMuyT`ag;R_&oTmMsHTmzkeg0tfOFA^5HX2r!Gm7k02K-lb|TJ zp1g|YIZZ{7sQKAEG^d*>O=`tDf3}ce;rvwY4Y(@rZfvZa{fMCMOVjy7H8m~weV2<8 zF0{8Z%xM9JwWGq0eLh+e4E>^KKML;P2=dBxthQb1}({Q z5uE+mQDctw*psnl{X!!V5)&)iX7G|C2l939>5Z}2ETsK1kPr%mB3~`Fye)rrAJK6y z9d{D9hZ%)G-gnQr%g^x zIUx3=04}pes|mp5WVgUkVY+s)ED_z~D^pL`i?qVdOKQ-Q%PpSuZ^c~;eInMR7!pfU z#gYE_%JIgszCR)+4tSO80k8EQ?kY#?qt)NH;py#Q+LJh? z{{!UeJFz%;a6SjW7_1Ir0p4?R^^M^fL(RcSKAlo~qt)x3ZJysDx41m5AXTuf>=Sk- zw%I@OBL-|5Up0o)xC-Uku^D-J6P|EoYh&ZW3d6(UYL#&0^=5n`4?3rL2to&T#vhXn zi=0~UI)GlAr%(K8#sX5y{gSn-B=AOJS5g5&*HXQ6kUXkvD>rrJX<4T=op`;9<~rDmft-`B!fqKChBzf<6K)XGg{2bLrRACRg(8iW ze4NtNPJcRyb19Lh9K}zzCOQ1M&A(XqV%qj=xAY1X(>~4{~vTydG@*qr3h1@#6eAzW7}2%}x9dV>zDoq0MRbk=BwfJ_r9jl4W%A+_;==ykzJV!za1;rOkcG(Ao}T%1 zn_PkQm(==o$8aZiIR5^4bWV8*w=_|~E;|Iz98;a5BJvM%ev3HU)|7VbG1}nM+Dmxk zwZ+bK+-_?5j$ai=#bQr^7!Nq76Vri*9o&JND4G#|kHN2)%WY;EVoClJdAS~0`mBqr z`}g2zK1(c!m&y50g&h}NlTWv?(49H#KQEuuH@ zEhhC{O~t;jv&G^9L@~Pla}dO(OsoPi7BF0I1YCa&4L3mqNGJ)LyS`U+#DHMyN@tt@ zNiM&VyVsbeoGlS^)poPW?{@{cWOT|3;Ij(kZ}~hzrKr&wH6 zpptOHaJDUcbLQP@)YSArM0kdtdDMciYM!o?#JKzkmnf^KWUtYOlckr5!o|lT;cQ3? zChGFGzN?cU4a@JxdA$KyO!(R=(yKH-EP5a6$45sC6^rm-{Hx+v?&gFNX-}AcaE}*s zGFsSq=>xtty!U*cd;sod*;{Ow{x4jsEC$!g{ukG}NqFYv$brH3*|}?1W+~sbe~en0 zKev1~8=j}aIAHi}9{75gfhI5q$4y(g#mC#i5TBSFAZdJ9^ye27+nVz2BUamhH8nGMgbtVY82LcU=Ctwh} zpB=a9ia~U(9~+u`XB(xxpbHt^j;o!4;titbo~TwDd8gjh#j{ybNb_%Wh<13&ZRf7q z$1W1tuk|?*}sjT&l#Esg0rQVAA9L>)$;N>cnD}d2ksg(X#}2;U?+MDP())GEgPQK`cirxdTrI5? zQtz~86@D|Wy`F1Ya=geppW=H)Ku{dKQ|TKqxJ|x*HhD2R=)E8^Ey5a?*^1;7`grBk zPH{>X-iq-vq_jc=9tKWFdZ}2kGV(-(&|5=O>t6 zDF%JQVVDbUY57JL+Qsp!9n7GJ9$0uUM|a>YcGnEb`Yy5|rShsQuH!HVq?;Zk`aCH? z?x@>xuepSV{lt~zE*E-tJ*^|HJtEI&XP~E^IbK9~^m`;<$}f^VsY9&Ym@{TG!N;EfBTI{ zemeW3YVAb)`0XF>eu%6QB^)SW!*0Ulnf8vukgO`0n3-`fJR`}+^}c*?($jhp zY+#D$J9#Q$e0+ngZU*7GPES>{J(fRJ$*tqjK+n_u`%-b@Y}jAd9R9R&aJ{XMa`$jR z{rRy;xVCaaIW>ESM@FkMeU-*xFrcs%N>Z5JYE5td9#fDm2Fw{$kk&)IkA*^S;f8~O){6|1f|e6L7nnSp05nRXVeBCB6?jvOaB;l8Dh?5H znpp#5Dc#CF)EZ5-E!wflXk(6K@hb2UK@U(8MM5{o`yZ~`uGk1B0q|)n1eu%2e#UB) zbY9RFpNzJpZ(yYgmg7usH@7!=2~{^cs!T29I3Y|L4j(yemljv#O-gWQ(Aq6d`L3PV zOuAfXN+n(2gnyu<7+-_4PIJG^JZZT3x^vw$cZhBO`NsV>J_bu`I726$;NTp1t@*j= z$VggQ(|TDUh;QW%^r2N8Ea&@^-Pwb3-fx)d&ye;+{^R47N#a60>6?sefLBFs zV_^=?+Mybj6GFm_u3O6$Opkks*`nFf$jM+oxX9aSG1De`!1n}l9fVod-Vi6J2TJKn z^Z1e)5KYy88@mO&LPkRz-WZ+w(D-mUhEd}9Snn=(OstP!73Ubs)1V>(@X@U8wu@q- zn6591{K#OmJl$zz2P@)T7zF;Xlh>4m=wOQBw`FNSaWSJ-XsH(A?1-o~yCNueTya zuMYlr4p-{in!gpl%UX>xpvLdHKEN=(y0OZ=Cs1=WN%8Hn!$X%%JH7;Z1#Ug?bUpC) zc;rV=J-2jsB&VI9Mgw3D-J&afl{=8rxOnE^@?V(VGW=;kEboWS5FS5B45lO3}vWKqaFtzz*5q8#u)_sy#c@&%9?Kv5*6rNNIcP^}iT<>!>K# zw{6$}!Jt(n2LwStVWZM9BHhv;Eg;>^FpL6ON2&Nz-EIcd>=A$w~G)8tEC(*Er*tlL2$QhpTjb?j32b zpfh(To9ePv<{yM^x1Z!}wD&+=CJWWmwiYPx4&=9FPvLvz=Suk1R|vqgKnIB}iMriv z7{KC8@IXM++KV(_czh(;N?~R7qWKO3s+f)Kd$p z9sl{Yc|weLXrBy?U}(2H8lx(OW!1fBW1P+__J6OXumh52HObc&B2l@;LIAY5uill; zqqk{l+1@VQmS0*;7bT+9p9}_qc!;@CMJ=lUoiSMV$i>a3Zp2b<#0#v>Tb|Vq5ruXj zaiH8$`VWdG#@xU0yiUWCn7aa4dxb@R_r6M-{!FJ$p(QX<>P?*+duF>YA+pYb1c%%q zjN~VqSQ0_X4>YHzq5E;&rr~;@9vZrTnS^4HhxB@-kNeXBKfe%B@24&3w3<`a3_t3L z>pF)8du14)CsRW~D+q*-qow1C%5tsPFWA&=o41?kOh2_n`j$?UVokeEROkK1iH=2* zY3}jn`@!Syn=308-MtC2Yg)nUo`DQ*8&_?)L%DW)!fV{T+X%CmWZ>P)HY(wbs#C~< z*BZehW=9OY#`>G9-*?)dV z{HPN{l5@|aE&(ftQ?hKCJ$;VZ)4c4h5{RL4HKiTk+gwl{@-=6uhU9)n3~(p9m=K;1 z9Bjg?TvdRQf*-e}L}v$F?WU*Bj-?FzGl~oRG%qrn=$WnUlJyh3A4jwL+p>1bi|ao) z=yhAzLby|N|6W~bm3=onxHF#h&3>E}PNsi(Dqm`4qba|r`2aYy(6WTgSi;IJ=bs&5 z>$`9Z*|OWGn!udQCR56dh3pWX2m?lS@DYvK!Oo?i_b^ndYYTlcW$enN*B!-TqAoPW zzk+*l9P>>8wfd3@Cm8k+7gA)b=IJO2-A`H<)LojzUN^1SHVUxBT?_CSG-1TyJh}SI z7S#H9CGB>nYgsK=YtD|R?%maI2%y$XHz;DfhQ}^RiBJV+w|+F z9iy4fxBx*|)L(Y5A&we<2PCC(F1#0dpZ;3M+}8(9aq+kY$;f<|;LN{Sx(-*C#7#VZ zhe;*_1WpXBUgL_6mhY2*SP{WAW6eUI`l(gWA@kHL={fu>u1qe@<@&@jJW0U-%J35S z#Dk>hIx9_>1fC|~vhE~$h1&8LiFJ+fkSslJS^NFJk8ks+JAMg9H zaHPnZkdm^o^mJ9Q^JS-MucKJ=5^Fn zQ~(|u4avqKl!^jRf>PXsShmO*Euu9Icm}*o0?FQ~?~0%s^luxx4 zF;9hP=&L$RIc6xG+ZFYNu1U>~YD$+2-#SC)hik&RYw2hyByvl4Y*FS>o=y}wNxE1S zz)uUvh?U!GYVb4o_2+HIu8r}?ZLfVK>c5c3h8$!@jKs_1(aXHjCL)mhqT7iMuNh=&7x zchc425?q=OTptlOt!E^0lg!#W-sQVVYQ#}wZ{zX z`9>ochy2pikTrVv7~Chp*dn;9VDPq452qwuccX>cWxvjavD8Q1IaO9WbV}hY& z=}qo5=qjCR_F7Ghi_x8r*6@Q6DcZUt@kIpbK`Q9H-7doHr!6NZ56^7EKOubFEwlaN zJDn88Qky%+ImJblIVd5g6uVD)uNwlGBC(R)(G0!$mof$n*u_lXemYn`8WCF1p;JrX5AEgkq?u{|u@4P=)~Nu)_^8vRDeLU|cn@N2K${@6c` z4z((fzwt8Ya{+!-Byc2aLyqNI`nJ679lzF<{a{W}>zuf|`Q+m7Eq+sbU4b0OKA8DN z-+0NUL9Q{wrv31K*qK1Z5seJN=e>2?+hqKs=xs-5qbvarC}h>>7Wq-ZFc1@rMjqNm zo`(T~enNL$c=jx8*p?}``sp9d{A3#2`G6^02m6j^VL2xk^Fbiyg@(=IVE9#RVLaR%!4`P~rPxYb?G%Yjp=6(gIcWZ}b^Q5OKBdmfGopxyyXP z`&v2zqQ5yG1I1dNdAN1^h_}H$aRAW*KTC;BAwf%L_x?sRzxmb0ihr_p5B*gNo zPlG%&kXHz`jA?pi&0{kV)Z2j${iNllXy*Q4x9x zS!+iRDX2?8MlwC~V_OzBQaWvcx}KZsBtBT8{|{j08Ofe^h$vuBylL0L-nwdgJPTj@ zJ6E$^xqwe-QmyI2yJp!8b_)_Ol)jrDJKJHh!ByuL;@%O?GL|j)s*ii7IcXykL-gar zSQ3=8Q`o>lWrB+{h(D8II_}y9W>ktrATOjT_$Ya-V1S7mEXGBmeM+UJ;eORLVJ0J} zUuE4hPIg-O(9WY7W)+h7ys)L*2zQf+dJgaS%Ra!i__^H>RJ|(9vzjV8XD{9783bsa z?;_;#%h%;wy0O=HRxJviZ)W0)lRwgTP7PXE%sQW6BZ8K(vojgHVG{aoH)_&H0k8_ZDv8e@|exBLud_ z{u>Hy;ZgE=*&MPKHu8n!2t)<-z8VgHsv3IMajOf2KyeS^JoueAOZ$hmmm)t=0N!1k zX9zh8`!}>`%%_{>@3~IveR^hwjb40_zlFRwdqF4-Tr?fX@@DaOr*Uyyu5za%4opVo z-JHI4QW&fj?z-|D|L(kWFN8!Y6WIEzsj_C>e5uZ{p4FOt$@+KaEGdAQ&HbqO=4bVp z1L@CKySW1{b0PyrvJq?_m>-?lwfmf@53WYnd<`j9*a*4p&sJuY@PHwn4`@haMvYpv z)BF_0K4O`}rkd|r_U8I0$`;Yk*NHOya*qT81>KJ0n@XOsDFuDKDMl@T!+5gzG*UT@ zkzrYY=Wh8ms#nadNy0>>?+h~uF4))2#Gr_*tnOozoeE%RE;aO7P!(7O5*xzrx#=(` z`Z@2|rL0P-e(v$KGRZZbe-o{kPJlew!Qb zJ1(XkynMWLar&eWZoDL`g5|4HeVqsStjn{wS#z2YV;68S;GTqQ+Tahh+S+<_cG)*v zq~(^!F5YQrKX;?S8Kq`FHW0a-PWE82-0!(tXtgny z?4ir#VwGjqQGcKm=my2G0A79lF+S?{6Gcf&7R8|)p#JYgT?AdS?Z) z1m6OkE~t7O4r;7mz|9&%V$1%};rNB)UVkWeQLxjXlq1aTL5NMQ^r1jl^lRah(CO(V z#K~^NA~;!(I2n;5Se~^n-BF0Ep1cwCPsg$wDNO3U+zBZSD{Z&i#Fd)J5RlhI>Jc^u z1_nWxxh51FpayC>T-G~yHu3RA*djFi=(fm`U;Nj`6-hBn#xLwxD`C>WEO7_1tCYBV zqzdK(^sAp}JR@zcc94QdlOH$@c(-oodeAXZ+}vdsPPMX9dpg*Tt#Cns zUlG!L;y)z?;S^NN!VoTd7Y5G)J3gGu6;la$^(qW6=fYnimuprLz4@BL0nQNf2B?&E zd+^7~{QF1=XV|F)!vU21bCdUmp!QnL?6fW$7nR?tk)oPQ+%y&Ao_U93TCOFZHDof3qqrcBF64W3s!%^<1?s53FM;lb?Mf*BOPyu5QR~ zU}Y712ju&0_VoxQS9!x5x8A)|N?v$^a>0*vgj|DCgafHKcQ<>66A`P_MBRYJT^Vu% z^K%fg^S}h+T6vvHTJq^=wt#g?-}U_aits*bxuhM$BT_l=Eg76}mUu~9>=jT zscba{m-d%6^P~MyBXgfKVKaq9K2ly~v4cFP(H}EWlZNb~^#D86$y_r;KVG=RrSP0(mL9)GR8s#4N&{78_~Pq5_T9Vd7Bfz*n?PIgRc<`~@FCOuZ*Hai6?VnQFgpS| z&HSKDT1_Rmq3}&zz-hdLOFS*h=<7>`=^~dQoYd*UbH4ixhclzJw+V7X=3Xt^{?5bZ z;8mE^k;rI@fslEV8>K62L4B9;mB4Q&L6Q}B$LORsIKV}Y4vO7|;jhnSx*wE9`T2Mv*=?A)pgi!yuF)!!*l-)Fz}m(?N}Sl3QTSfK3ION zWqq;3(TF>zgn<$)eB!4*9dRasLWaO=JUgrWANyIP)%3x~k9GrMDRULjs#_4hqtSp~ zTje`fWq(r_3XnYWVc66u^{ev;19>5yB9@>wlMB%S;|M!=IT=Qt1A zm~DUNedA3#+~Qj>q9+JJAtraVJ0^aC;_s_|S)i0jQ*LK_y(`Tz{prYB=%Y=3OXnM- zSPnURE{c%fNfeK?x86A0L^PJ$%F;lqO?4i+H?<7;YEl&FaW^6wB19J5F{XMAC0=qo zr4^g#Jr}$EI12spIzOw#P;OGI)vO*=MD6w*6y|)B;P*f%j)jtvRnvTXb<~S_g3mV0 z6eaR@b$Mj;0T~J?a*hRvSJUNYuvs~!wNo?$sz+K61r@5K@pGRQy;w^QDMs@O_=B&6 zUZEJXW^STQzqGULqE6g+IT0pSk){d?)H`Z5-`l&o76Qz{PlRnxNFMLfIaac8jC3t> zaQ7~Dmo1p8)bHkMS_cTZriH(HvA2X-&=?qLKBA3O?l^27A6D)d4E%dZ?7T>(q@Qcm z)cKyAk7U)U-F1$sr)A@2G8&J^0 zQTEhb(?mp&g!rOwV(drT9CWxn%>DzazZ^977N@4(Ub;HkR?V${(9vNP=z(PuC6E&! z<6`2X;%^gSAxNvQcB}!L*As0y%e&T!1-~A5Q%M9JK^PA|EhUQumzNoP4^#_FL+#E& zep7jWV2 z!F{+-_!X)r0SE78Yx=EfLxlhSN@?oHP?S12uY$Q+Zlzk_-PAJ=47npE)jfw^C5XZC z#(7fUof;qFPMr~^x!lf;t{J@U$gXH}SsO#AhqP(SAEmwoKBC-Non~WQol1bnM#JWI zD%iK#6;j6&;yKE@?Dz)@sz>RV22{aYGuy{DC1NiMbo|4iVf5c9Ipw@YN5hrADQ}06 z$uQ%$X`D84ZB=>2*u_#gX6zVqJtMmn1@sCOx4lamrFx4h&bE7HKuv;&JE>`DtB8Zx zedw;ylbxMZ1Q#X}Ho3&&8KUw96l|vA&`@G-+jy1nuAQn2(fSWkUIpPCeF`|=%J>95 zT(LU~Uj;CEv~vqfAD4VGmkdp-T^uq$l?EQ`+rkA{UwQvxYVmF_=O3LX3Z;`vBcM=8 zsWaW_m0dQ`o%5y4ujhEC88!j?nD{ett4HEHt7{35^9_PxOa0xkT6^sSCYS<)TasaS$FX01K!nbCgdnGxat`yc)N5hT>_4T=TurR(+b zLZRmE+o6`P+346ALjq`vHRxV?jE#)vc5B98PuX1egS{OW5oPM6t=38FU4oG;El$ZxaBHTNR|8Wpc)gnlsH#ivi-H zf#j%jX!bz0^t#;c`t;+ttmQvaV#af|hff-#rGIES2>ZlpWP*B+Oer1qEA@x}Y^@Jm zioeYWY1q3RChs$|QjT8KjUGi)RIJi5W%=p16OYBGMt)Pr1P|7Jv%I0-D&EIB7&>Hvv0((NEPR(czfv(1#kL#W5tNKZ^u{ zR7@Q1kbPlU`DrhGmL_|CwozcO5qP9mqzWD!T>%FKe7CmQRQ6Cw+t~1OItozNViOXQ zt^8FxXyr((^nEAphAL)~{d3~C@JRsGK|yy2GnY)#702PWLfAF-iKYV|d>RrJUMnsE zIi~)RzIas16yzPg#Cn-da$KZ|SNE5$YyGrA=qbl?NSQoT-)po~n&1(IzjvSbetVK+ zo1LAei+9^gL(}Cg1KBy+5agBCO@T{!u|j& zCDCzi?lHy_tWbTxv3B|!dsfJtj+`N*C$x9E$X?No%FRrYNd)*`sMaNf+tfbA^en zx*zE6e;r^)vhPH-Y9&d0H1;T51|KUb5c6d;hckEg=0qniQ3AOr zlv9fI?B&sDx{J=>^q3MNAdhcx6Tu7(L&A)4*qGgz!L z4Z2}GgfPG{MJu6|I}Q-_S|0Uk>fQuM(L0BV(YvH|MtSJ!UhCW2Xss(+m0Gw_ny@Ru z!37nqflIx(*Gy7Aa;K!YkRZKDD)~9h|KuXRRlKg-Mz`z^gUw(outw zq)|ohd{RLJyQ5>;UaOp^S3FgT+0M;VPv=xt)`(w=+$%OwRQ+XZZLRF!&;S&sEX*$j zqB&>KwWZ6N60lhEnL}S3K4^Z={1lI?JRPrscOOMZ!v5GErM;;v0ScH>=$koAVg z?bR_#9Z7897WT48qf6(Hk#_*^TF6dlNC&3up@Yve=k|o6=SD=r@6wmY=Lz>#`k%hD zG)b&_0n*m~l9!kFDZ1d#D4GACMp=w$qd7;-9!1DKX8beeOQCAwon(XI=cxfKYxv=) za}bPhJY@?3#F7hbEi1lpP_RBe@Vx=Mzpw)-eB(e&ZOqv9<%u%g`qkZk(4aS6&6&`yDOr*$|^;slEo6{8s9zjI>pHB z@5>?e&uQ2enDqer;s7OxwOV(*?C9c#P98;sy*{m(M>#IRxtDhLv7NGoEdOyi{?c9KDC#qE$JX!7y9uBPF|g>2=0fz36dhVV`y%DDZ{h1#CRoopx&3}J=H4zy zn(~y*lJ)+;xj@i z#cXeF%Y3>n$H#k0g}lpz9CViRpZ^`r{D*tzf7y`_SFY(DyKXzQ!+4gb4YB4i&nM=# z+k&4xR^hLFNlDvyV=TA5>w&pk>xiKfW3)O`3u74NC{x-EPY3A$to@TTR@0Gb_4f0M ziW}JA^TmmOTbFC(FJ0OScn%fHGv0V(jde~Tt!TIR1BrBbRJXhAWV(k`DJj|68hEbE zRKLI9X|R6v_7!3{a@-xp$|Su#%Dyq>w?%Zf#(L++lh-HxJktNom2+N`!9UT$mx>)j zN*IE)df#jUa9RrS!2|AF-x4!Aw8B+`kF#SRXvNV2-X{1>JP3SHywaY*$a7D{gY9gl zCoBY%JB&kUPdq%_1vlIw}0PqUkF{hKu=HDviX1|fECB~cE!XX#`6C)h>4&d;_(Qw zZPZ_5G+~xx4m7pz%;2l4wv>%tDGqY;wz=oowQYa-dpPUDJWsgV2 z@*cIBSS3tw()(0vk)>ZyXMZISabAP#-?{#8Q3LU}*D?Xn^_ceqx|P~D)wZ@*S03=8 zimW#8j6Ub0H1E3njTs%uZT}q>Y|COzAr3ykY?aH#?j&665ufovZTEmH$qJ@ zCdcml_yhmvP6wH4MFA4?z#hfn;OZN~a+ptrfFBk>ivN!b{0~tT+vndkZG={L1-BGp z(t&Z5%(*Y_mC7rxhcbY*pFIBIur9vYUK3??Y%1B!*N_I1etAVczZ;>)H?LfPUulL*Ow2s}B44F6`&0w9dLtL-uDEcz(-%bbl)y?I*(QJep z0tIo82~&nxfcFY(B4nar4&%*dSwxo2$tgvlHKhyoCi~6>|E=d$@K}7mgXGliPC%fL zh%{sWwQ#Dg`l8zL>AaRL?y}ZLKp5-}V^eLF>#~s#0IVA_?fB(drZ_TgwUK$^ZvNl5 ze_}fK%ll@$5D(TpVjdNKTPsBT0ls2YDDdq%-LS(Y(Zl%9A7F(JPw8B}eei4Sx+0CM z#v<5V+Gb+@@a7s_1Y~?Lx^Gj68y_vy$~5K$?&J7GWg0&4^WjQK2PY?|I^8Rc-3(Ts z)0`F6)}MTZhG!AL^L*4~rYeb*qX^uky?LcAtCrziowIK?7(0_9Q7*W9d$c0=R zGl>o~XsvW;h?tYueJ2vQ_sQHerS@-oQe%Tu5lBnZ*_vvl$0o6= zx|a6zDdDI+Pd#8xU#1^;`T9#T|Dwur!j~4?Om?Yg3H_FqtpKC*NrNDsiYfCNmrO4J zNXf4^{mYkpi>*6GBECU}-4@XpJiqe6TrZhzCSQ9089xOLzwkfVw^nK;#FEY!nlfh1 zXjvIG_L0W>jZIaePwqwhM%kjxBFI%~Hn^VVLXMam3{aZ;Mx%X#d%=UV*AOjH*RQE! zsfJbc+6#1=LwK2BSqSG+?eV-t>BRD^)hi;8Q_mw4_*3Y0o#WRzd;w2zjlN$*Yf^6~ z_4a3h>9dO+;&zq{1RgXh>T&to&PAV~sBX8_us1jMLa+PAAZ-T{cTVqzo!@ELde^sO z5pf3 z^Nl;-aX#v2tzXOo1xTb;zWp#Dz*{mOT${U{Af5ThYFavOfkRWpRv`ZTP%T-VRNk09 zX6#o;9>qR?=QzE}Y+J`LOZc3%tx_Y-CrQ}fIe$AIV6%SKH;tPz+8J{pw6=-&nc&)L zTN0l#snq;fp7=tnm-PKyZQtk@fF;cW@rJpZUi&fJ#5oFWY&HR*+;+oGj=QsT8J25Z z&1bEKM^8H8=DlY-iHGdHy~@unezsfB{AAazv5#*O*#xJeTgmjcX6`4>B2H&l6{8Xn zi=du711>SAS6RcfVpD!tc}Wn6xH@?fz7qRCLk3c%6wLxxAMreXqLf#KngCuqvODs1 zb2@T~x##9`pbD&v8K%3V~e*mX)xW!dqq{RJ|6ny43^H6Fwdlz!&U2hsW4F^o`?=ba(AS%w;vv@!b|F1$VKbWgrI7|s{=~ed0JRjrDWArq!i^ytZgo88tOf+ClVeQW)>U#{%Y_&=qt2 z79)*0P@!5N=61cqT7TLPWz1-)}j_8w9s{BNbk18rE zn=v6&3FhVj6;0dHz9xRF1Qc@t7R!k`br$I*>UQPT)fq-fT-YMAhWKnY5FlkEhOAlH zHu`mfG$zm5+FI#wsX2{eXIA1@u8H{eUku|mG3MLq%Po&Jhfpt*pC0d9c8gyBTup`) zUydy}*c5oq)i1jYJK$K`B*39?m9Pmlqn3)1ZrZcoREIr_%gu}hIjM9qY>T)>yj91C zXA_G7KYlm2JS^Bk#)m9n%pb0Lm>`2ZHs3Gi4>V6DyUsqL^I_(%B^-T}#E;(r0H4+V zS`b-db2Zn}egfN-F!?U_>O5nZtDg%gVnxgJ!KD_;U-~@G=JbgbVt5l0w4&C~N>n$_0kKhRv#(bo*r zoRY+sA$M_yH^=&#MO^v$W2dabRKt$L`sV1R;<Kpi zjEANgrFtATBbA~!)cRFa!2_&~hy2}6+ua(o%#cM(npaEE1;66XsT&Dh+SvDU%?gX1gwPqSR2L?OcVcS%;}hy@#ZU$4(6 zeqY&TE7}P>1_e#5o?SE5u{!l)UTHdz))caHnYZ`Sw>ZPlYXDAQs!rJ4nQ{1iz3Unz zqi1YCcQT|6)!+>ew#Xy2*|`N9s3}Q+X~DsfDHdSt3#yh|f7QRBlsYv$&#XuFM^59k zqNKL`#8&I#H)e7*V>bJf8>to=mC2CH#m+MKo6!wVKyXuJPG1qNk%(A^7f4#%6Sp=`eI`uVcNvTLfMa9@MlxYpaqzG4XTh z#y?>O=QaO===crnlJ@1hNltx4D(tLr7@h?w!M?!55w~Y=$1M~^Sl^k=SLpAP+HtZ^ ztUPx#UfMx;PlDNv{5nNbfd~>F;~Kd+0O-fh#;U+h?Nrbd4UO|+V>zZ_Z~6AQ&>Oki z-e%PYW6nKrB&=tJ9$xs^<^wt5pc2M2tebzo>RtSDUDA03Z56M`S#B$ z`nR1PIU?fm>v&GSTT}fERz9%{17CS@Ovc3ZDT~KqT~1E=t2uhjz~@45{)Cf=Ke%=JcF`yqMe1oo4rdHbOTX78 zjrTj}x+AKquyK(DdZ$lpgdAoSfXxkWHA$JwEt4Y^M6yDvqPFe8%1&wIZl`Ut$wj zndMk6V9b_$J}*DB7;duUYG7nw_7K#3n!qe}?vL8bD7UdiVy`Lb$6t~^LAAqdhO}z? zn&=MQaD&?7zV#fyF!W-o9I={kI3jb)3@sT{$t!unFFr#Dy*<>dxy6dHOzK~j!H}%myAPrXuw&>EcFz8rY@05WjZhKrAE(kr2AkRh{d9S8}e(d{7IuyR)lYCa!+PQ(jgxniZ%{Y4L-Y z)QQe`F}a6$9m%cWxuz&Bw^s~2F3|xCN$Z18UO1vo`UTo0ZmBFn9Bc>3abZI9rnl;z z_Ee?2CJK}_y%A1qGmRMV-**R^OK_Y$dh&=*mC_F-wmd`8d-)T&9E*bnwPBEAo7Uw_ z7(}`mWTaR?dHJ~}QaETIvjJ-YuY{^@eCs8OnwD#NNbqXjoTp>i0QlGW+JI%kYlF@+ zgXURITK(7ayapZ0`}XIFA|j)UWmjG$u#`&$`B)peUjI8Y%Sih{kAN=VW}21;1V}}e zO^QF2?K9w~BIGIxNYVSA%jCo@4M6SMqp9 z3mT)o%*T%TMB{AMsh(SVj-pEszK4gu^w4&k^*y3IX^%^+taJ-OHhZjbG6ar3^;jR* zqhoK!c*W1E8uSi)?6-Mc&X1r)`bZ-NuKPqA6<2(P;c!BgH5~!GjDpZ)*Ux#G{s^xMTrz2>qQZMb^Wo3h%WoPX4%_bTB+}u|x!zfNgGu>L?9~qghJmlq1cO6eFx8gdcewh2awV5&u4+) z40#R6`fAdT+HdrCld%WW_h5jVLHLMn^NwH3e(UO$*6!QFzI(T(KlUCa0%OkFwK(GR6azA=Y6XJ3!mM!!!|0>h`CaT0q7eP(S!O)mT0 zE2p6#mC;W*jLXw`Hq1Ly#ZH_2Osa!J$Ic_=kWG-!$M3#7`}yC_klv5q>zBcKFKLC#q2-^`AOUC4;$ z1W45pY1w#`XdAri9F&nftKR}U^nG@4nA}eX6O;9r``AJ~efC>(7Lv!=*nf#g$7+e5 zt*4%1ZT2kXEna3$xztWqq1f9tR&N56^Br$BD=xeEUmgC=6m&MKxC*&7-OcO6R9~!l zI@%4u1f4j#D$yg2)}J9~*FU#+Hv|Pc`D`paAJ#Wxl{_9LvzaP6+^mP26-GaraEu~$ zr*||Bh(e`eI~Sgv+)Zt|G)8$$E|f0N^)3(5WPpD)^c*)U_WHYYZwFHp|7beg*6&rP zq5E*x*U0YsJQx$-*u7=ievw>@6q8|P_W$V?J(SjybTnPtSIBRlJ^hXQKAw%EQldB8 zG@y|M%CeCxaVK_7-R5L6Z4RPQR#FN6`o{KqegAZ$DkkgjX{zGan3J}gBd~;Okl|X( z;7N7e)|fcQB*b-A)U$#L5wIAp{l*{F z_(xy<4iS{K9_`tLn%gVC38dnH*>1vbpPj-7lX(u+!j<9?i15q}Y1b#lHM*>RD_JKC zr^9`@bbwf`Tn9WA%-l2}{41-J%E`%(E~y;1=V^hLz1;X8W8<1Y^$QQ=fb_wc&SH0` z`pHzfD|b`h-%;Dok>4M#W6$PY`3~zDs|-Y3iY^U&CDrrb5wD0TxeW($ynq&73)S&g z0(F?ohxZ*fEi0(gnrQj5dqoSoqkul2l>_8tLVoJr?8@P|KZ@=6K`Dh2{p;lP(5E`q zc)IjFlXrjEaBnYQL%ZzBV4YdUB$k!pC=#gr_k`?qDkMTd0sKL@$j@_oK^X^dBOF?O`=83dOC9!~Tgy~+ zsB=Ik}4gq>|IyKIhr2XEj0{k`o~ulSMDVeL_+ zXI^(^w2B8}%AC?8O0w770k&F9&0ek7=KQ+C$vL}(*W{3&Pav+@cd1p%sj#-mef?wQ ze7+<`Icb9=azX zy}oIud_flloRS)`dynzJi;8Fvc()?M2Q9XmnFT{ZlF|JF(NcJ8 zAy)&OrIbR?N=6`Ra%1k$W3hbiWxahebrAJCc%a*|&qqsH7AG@@&nZnmhhL+J}kE&drZLo2M3e`y9TB zc`jln;|xfp@@|3H4a)36`qn^(Mr8ciYIFVyEQ@Fk+Z3yub{2T51m9(Xjt1?cs`{O? zIN({pp@Z!v^OL!-&xGd-dLOpS>#$!+DQk?8)PfD&P|#)n8W6MZ$*_ax@j0(H=p}_m z#mh&?TA%2D(7NTra52ww=KH*L5pcR&To!p^*D@~Q+Ng7bigDvGzo@ur>xW~T1W=E@ zIQowVaYS5Syip)6fnd}5t`?h<^H8t*!1x*7ovQ4ZWo4QAQsh!Nv%R$FH>?QC+9J?% zN{SL$v+KLb>sx@$dj8RhAzl+)I4u4mj48mpR5R1UC9ql;Rb6lSD0Z70LH2?CHb?d? zcnxoLv`-ukvg|Pyh1>zNMEswXvY; zfZzLJf7(dwNE%Fn;<-7dTP_nyE(;pr$&K)L)4&B@WtNBL=EdSY!l|=yzH=z;qrP9- zEnH^}OlRw@@=DraQE{MMROMD`cV6JRO8NZ0iwPhhZy_pfEVs5K3!Ma-hUd0kuoob( zzfdr$c$<%PT$3HEJ&Xz>+YVLj>K`YdTrY`g87n@2t+b?zPy%HTSeH1Ck%z$HiH)OW z!x!q5{s&yB1A5KgxiN~90X*G;%_KT8n=5rd*wi`}O!^~-&o=CF0s zu7=Fi<51NpSHiI>!v++MM+9;A-JMq043!pf_1bvhu|5Rqx3GnsV}>_rlbJlu%^M@V zsS5f&Cok>aBfqPG)(#Sf1KRTU(?yb0@y&1y#%=1}x550tL7&6&%u3F~wh-&{b{$>; z8{gzHvPb#8iaQ<$$J!U;w~SD~_hfV;Sdw)Ei5PXnP4sD2)?)!lLfjM6$^n38YNJUy z{B1_yN%+a9d2CMdYceWgcQd=B9K1?rIDyIaG9Fa8m}%yl6QQa*V^i36Fa4=~Ew{<_ zyd!Jh!#xbaAI1$SZ$>cgjQ$E^)n1Thh0qLZe86A7(UXthjY#Y_=sCCtXLDJ-6_)fB zlG8n-6y)ahr{`(7n+Ys?0@;|RqC0Ck8m($!`XrYb>`D1R(YfKZ`g>MdTFa7P4fxpx zSCaed;l{$L5lM|rPudW5Pa3lRh_ae2z9-!hm@O(~PZdv+fuWK_V+X&TXOXUN#?7SJbwEqsZNU071$~ zd^6OC{Hc*?iW_tbQMVoi-hd5D^6V`DA9gc~>I>^pH#jfG&tQ7kV1qIHlKq<;K_ z?_$c=KrfKX=U3|9D?;Edly#2u0mni*)a)D zMSAyA()GjeG_l|gegw{|xdb;Hwo1n7{KgE0&Ya*eZdmrN0a5WMktRzv4PtfNXU9gK z-k&L|4_XwjUtXktAtEv@TkWx_BDPzYi-pIV`Yg(`g3s9N;fIjZ8Y#s?cHbrc#*)IB zjc3!~T3yt}`iL{Q!AE@`CsNlR!yL%^w$@gan*Z={vN3tUYdF0QQwBrN*P1|ZSy(}4 z@R`<4z$;1oL#Px?v1P%dAAmy)MFjb~U*g1KNvo`}bYd+E7sO^d3d-nDBO+V`vaAOs z!;Edo;g~M3rhx4G-bnRmt;k8ZHtn;U&zk-f< zbUbB~F_T<`?>TQ#*jiY!;II^*WCqW&6uZxAf3|?~M*o7lVwS#uXSq5>#6QKL7HXwF z3S7LcYHycY-{8GQfOZ2}%R~b*j~~`Dgegh8q(X+ykOmFlUWo(>3o+04Nfkb=R~4yE z?_B)lwDY$1v}Hgl#xA7FN7KRFr@MMdpn0w6=+Q6R(Det_2;V};H|^Omc^dSAbLH@g zG(HAiPEOOM_Dnl|Gj$o)wkH7DkWUpBIH{EA9_?l4@S%lXBP?Q7u62-gTvm)OD!j{` zf0~dK#|dA;RlzdwM~gR5pEZMs3PBH62fGqh5$iatXEx?H9$oo=*n8`!sM~k{*FXUg zh7b{np%D>~mKX*^KpFu>8l<~(U`9f^ySpSskcN?v4(aZ$89IlV-}pTHyUyNw?X#cn zIcuH&&RYD<)aSnM>+`v;*Xzx`Hfu53X0^(;Ur`?jOlV{`KbyxG$as|#%z7e!&qfN` zmZEMJztKBSL-fy~-bgSoDpKqz$=T+zbh?NeDQfe*C^eh4b*tZ_^Ovc+(*CXjH!hu4 z-|L>8L{3kC>09rqkB2R?mBkvn+j42@sxpD=uN^0(-9Nn=VFsNHMb4~!OCr9LZ(C^Q z18JsB)4Z(zp?z5&L{V7&^UmOzePRsv=#^LquU=k=Tz$T!aUZo@p}7t+q{N zkuQhN?2fn*Hp8sbC_RDeZ2KUzLxwfmJQD$DlX8u^CzbVh0YbjC{8 z)2pqGvo~w2^($F3r(Eb(&bRHH;q6cAT@pJ!qqtTUrE1r|MoY{eIvo|%1rX7@eQVkI zZ3XSTP|I|vqCmGhtjEI>Wh)e7JdU9;^K;GlMBo*B7~^sm5SBAt0gk?R^u~pjbFA0< zn{0&jVp-xceSdi=m-;~M99u7WbMW!YrDKn^0K7l1>0$q_0)kbD@GV$hX?dBmB@@LsyZ#%m|`SB1{R|F+|Zl@)k zl2KaLO6FNvGD@dzypvMk=*@)0zkj}fy*Mb+|(@r%@g1=8pD2q!Fqxb;IK92%8`)pfpbdv&}N!Zhi3 z3od%G12yLEunz2hT-Hl}t9*WofEhGfS0b_CdHjA^ezrYQA#OENgr%uNwn8ZZs}ZjY zWQy;}fP^I+BAhyF7nKsJ?3y~Sv2pb@M?Hm^Jydor6Hlqi*sE3E36->(gSy)un2=V-h^a@p>UB6AYMi_PFAc-*77 zsE#IM$W{DKy=dj;VKJ<6bO1oQV?JI^Cfdb;9|~z@+-&n|>NH6QY@9@e;!>{w{dp}~ zC&d<^V}!R6t34o)@~)7Im~NFi=K{Ag?V|pBkA;z0rpx(c^-ru?Dy{?jFZSm=()FvA z0!-YZtnNpgc|aYVTHchgb49PxkX)_LtRvhk({<`rRe*yaam7!JKZ*JV;UMV;dMKUV z$7Km8+0A)3Y>=y2d-A4}dVp$Elxm_5}G0KOn-*vTUFekHhsR+>qN_1C1oNQ z%rgGb<#^3+P&jC_Za#lM;|AN-!wBm*7g=+%B@zM~k4GEg*B0G;Sfw<;!csF4I~02M zhZIijiEV-LiZ9KP0x5g&#g>>@G6qDw;6`N^Eyp4ZJWG<84b#hSm=r*q206O|($z*{ zFUJ64aoo6jthltVq%SrnDa|t3))D+Sgy#xh1`wHdfEs&q9as&^&GlE-xk2>MdW|+Z zOs+1HRYa=3`U-0w=>4)fcz#uTx8hpw-LJ?k-GH68#VKa86ihQ{bHE9Hm#8G$)@eAH zHGPRTLsYx7KJXSJ8LL=%AmjKl@Xs^$&6`Uk<|37~OyBd+L}=+V_i~C_p;FmV0*)cB zp!xO%Ze)IP*zy$d6|tdOy(C!#F*+jP85j>!(D=&FX#G)7F84{(=V3L!fXtAIaa#QW zKcZpkF_}V8%P@MX+BNB!voM$EEvDhT6cxX>MgA-j)X#AJfdc;bSgzlhaEEK?mwn+f zIyvFPfpuES$Pl86GIyS~J^7?=vlX;FnpuvkTNST}02k@bHM4Tn9rzwR^&s(FLgPxg zQTr2eIREbSj#h0`1NaCjZ=aH`qHU-&N~10@-b$XRJ-qEEOiM=6+R@p`PuK>Z*~M2t z3RmlO%J$QQSH3@Hvjed`Y9%Lt@|D#qoBmUccSZ$}15)gkk*p!>pr7D)ACNF$yE%&5 z%+UC8`ggzU*&Q~JTU5jIy^^19-&`USF)C0}N zru|ZoIyO%2GP2-%d|&%j8Sd2weGAPSWFXUzbEOe<-Kh8M-oj!6dfV~5Tz5OwyCWF! z!@H_9m8YJ^UgXISN1)n$XXG=%Oc(bH^U20}RtnT9_xpz_7BBtZ_AB?FhEdmt>Ocm7ZPU1br_cQ6QFqTx&hs)e5vTKwE`Zrh95hMKI%NO( zLg0|lb=Wt+T}}r$#wT!%V)I7Twhr<9@&*ZA-QS(8NQB+&$|}1{a3j;n^MPUd;&L>W1;&qeI_@q_^gcs^Dw6mhU-cW)1)ZjM;?!l zM`t{8)cgv|wO+t4&ve1Rj!|3-afjXkJ^PYprwv~s9yVWI4^hi%-5`TEW)P5Cb^(*X zh>^>X+;$c5x18`BlWA3*9Tzqc=a|7njTw*M#5VJBNaIUI48gB^N}4Ac5$^#l^cEs6 z@pHWA$Kj|@81FC~UgM~N$MinxYrWY%h2Gsi7&q7MV(}aa(9pW0=ckX~S`)z_fyQ2y z5m3hdEV=@IHPg(ZzkNDarDk%NBPD!tqmO7(!;TPe$WVLK*?GZQu8Ma>mnoOGSl%~7 z7d`v-Z3~yv9e=mtUP|{{#V!WX$>$z#H5KaySX$vXg6O~4H65~0ZXSUDBD+Hc9`%$| zH0|JRZhJmcr9oqR)TMjkEf+B+HlUG62HLCm%O9;PMW#{0JYXbTnQk{(d> ztiv#!J7Ah2uwmD+}3zLNuo<%%xJjlW%a=3*70^xKgvXY z?_cfh+lGNQ^&|UAA;=1wr=h%m(52T|Z2Fj|t5NlEv(!>+Sg?n4^Ip4h)LiUPbU1He zPfTigkN_*6-8!d(a&NCgVl$UqH@rZJ;}lixm}zw_M&?8$$} zyVYHq&+3yYN0}XGEp^h)8CenW z!uB)Lt!$=1PE|>yHn-ZfHa*A%@r{4|QUr-|TK`xp4_j#R;8~bIu6*9(nyGs$7_GL=;SLn|2Xcy9a= z!Mxj^d2k@?ubadMy`1B#Hh4KoF=y8X0mV)mFSoFoHQvwep}O6{phE=`?ricn26}Y9 z4Yt}!BFk-#Ns)`#Nri5~LD3z>1jqab?;=!gDlMR|#Glra)QKJCN^bFUCiPJ{5QPYv z-x46*@~I@&edw9)6ondJ4J0yDfS#=7vIczF`RHV1Mt$O>#x*RarEj&ZBdg-e7trzx z?;LH8ILDaFy}Sg>UwIr;IpgOeXgQrS-Q_%~uX%g^FxmBiRAY(GPxwdlc`)sMkrNtn zeMWzXM)79)pRp5tCDXr>E9JMK_UyFfbGP+J+qCDJQ+h4k;RPuZ=E3N_xl6<02aCnp z7^ukkVL>0QSEX>G@UBJ$JE@j@95>=Qv2k0zEv^HHi64ac(;s|VM>Y4${`^;X#c3i^ z4;#evCE{6bG9UGwsCa@o&i>8)H9ibF*NS`%)`86v@;lf~wERN!#uVcz zKc)d-{_1|%_)I4pRB+rsr7on-DEMNf7C}TsP3v^3rlhWiYHrgQZQ4rXEPQB?Dx z!jb^@;BS=~BL{zoIdyg{`)ysR14kM%-$!S((h+{3=^mQe=o52f8RoJ@Hk z?M=BmN7!5xPD_<@O8;scDDt|ZK6e*_du@ov$u%J`a0KdOtTgLh}YaN+lMltHRT)1{YxPyL)w zU-ii`MNQ202cxg9zTr@W#e5-oTM=<`F)R}s-@4YZBok?lFeu#^xjX)3gD*Uv$jHWW z6ylZ>IK~7N-uV1EbFk;|qtU`BFF$|#{4C@2JVD;nJQbtb0|Kgzmgk7N6b02e5KL8d z)Z|8ZmhiVRYwH6l>>`P!GpK+m-hs49?W33;zW00e6kTcf@6BKbFRdcBdv3Uu+z4Z0 z?hh6EGyCW2<&>WvcHFlM0_GeW007<8z|ND7pUcC*ZfP_-nwYyPFMtS-FP6PhlBMD*v(F-jfE$z{X#Mix{VB)7Vl36-QT9q_X!eaW= zC>rjq9sq6-5ae`n(Y8rnY*dP3Gzu@&XpTtcE%3-TR~gF!-Iin7$@xuEDE8t3%~=+g z7#|2PycIyN=kyZ5sdTzU$G^=FFdA47pnc>#KK}m#Nh0_kkR%gJetJ(l<$LVi{gx75 z?<<4{HWkFUKmuivy1Qg0X#TIrwtu9YKZ|=~G00PXK1^ZW^T6yT7XDgN{`-V-diU|= z?n&GPwMXdPe3S5et-#>VII8iVFX~WRiTurF@0>fgm*BW5r0$t=)p< ztErE7p{-Z8Gq3(TLG2JC;28fef_km^!{A?QxZp2>8cp4y<&&QIaf`2M0826cdjz#C zF|b?lf^U6(D_*T60%m22=K2UEimG??J;7qO99vT!J+1UOZv^k%YJB`V=fYCd;5MBA z4hVhm+o&BEB9F7&=%WVaah^(2?iKz6 z*Z=HJZ{IjB<^vF=|6Ti|D4Haq@;N%%2=6E|n#^p?fS#G8TgGPV(Jf}iA9yWc?}}(3prmjh_zf;*a|+3taOM9+F(+4Ic?6p`5#!H|8k{9-fGguUimJ|7|UMp z4vX9bJpK*4i{UHPxA3=;exE7_S`>4`_kUw& z_!lKdcW3qi23MbQjg`^$ljBdz4(_)>cW&Kb`w9R)xFQZz?2$+D>-8vY$XTuoiN5{( z+-GM@EV6S|JMn7mAE6C7oTbA**v132@}*S7+uguOC4d4s^$R6FJlQur3WyR}9&*J} zkmpL2fnFz{bup`%bJ{|!+HRr{(ErKA``N3tm;VI$VP9ftX)!Lhga9+~2n9stgiK6& zB>AgfF~SwH&gVqPM& zXb@W`k(Akh-q+NA|NPxsfKZQw#G9QbjxqI*#VcBDw{Cpp|naGM+G%w_nSpHTSj`S~o?zHp9AOwTL;fdgRHD8kICi#J-eXfKNkDTc9;g~ff; z^d$kq?-3}>&&o_^akmy8`PP4zYO#ASdb2{e@l3Tkn{LJglGgrpn3!2S9_FWSv}zay z^ZVG5Nh{KP~{75i9=PhkwoKM5UjMSwQbQwY*;T7Uj6D68APCKG` zHolp^e(f@SRs3$f(4_f9gPCI>BQB1CjqU65s)faFq!?}u+Gh8BbkL3o>xtBb!xynQ zV-pO%_g{eFksVi)H{MVI6az^}C+kQ9KUC4C_L#!s{vK)^xmoqrIdu^UYdW1?lwo=u zet909kV2yAb)CWX?yJAiSHHVxB50W~noys7eQ|5~G!EnU@;!J!@}Z92K|;cqMoW}C zHbGXV!sy6cX&snsRLH6~Sw+4bEJ0@RZE%}Jagf2euz+R4&mcn42?vlS`r=Nj{xR=F z+E(0B2SsXURBF@3_g%7K&+&192mi_thqgdpEq2B!h@7fWJu>5N{!m1FZI6)^HBMQ` zpXmbiza{V5EZ7`&rk52>|+ zbRItE3zB;M>N);bCr{^-nWWVcoIukEozq#2eoRPS!?V zrFRu0=l)Zr{9iWVe<=&-{;EQ-5`;=Io8W`UQu-G-IQMu+a=43F>v!-9BzXQvUD}mn zB|jDq5_*d{j;IeIR63t3hi!C3dIe2rz&?E}yt4Evy;|e`r_GJ{&glT0?Oa121x(Y& z#@g-#Fn?0bCL|3hic1=skM9p&%}9MTao6Y8`y8Gmip-?}`O4)$+IK5)4pG0Ez`jJU z`5MHS%o$G8Q~znd`IoCE`vU$3yQ}fG2U0MxzI!cR{EY3Z2*U+UTg=emw0~OeB?udSE5)!~Oc@;+XH8S&`Ugiyhiasj!$n$gn6V26)X(jkBLF&V+ zj*iwlooegI&8!2;JzMdw`qz+7M}DV$*3@mH)D6iBA$4VCXv#(hu6}&O*d+A?w$}e& zOg{nQcz@CBn|@T*Z?TS!KRy!Xkv~%q{(b}@_t|=a2-8Vpca$TEQnBhCVBF((saF=Z z8`g^X8pLB1Afr>mu!yI8D8F!;EWYt&Dr)7ughkfz?WaLd+ELzbAxwbD-H| zuM~YO(#Jnv-M!Cd(eJ{`*leq=PSZqVloG)oIM{>r{zpbg)22AWI-YeEHE%c<*r#3P z5_Iyi5=m4DHN7T;u0X#%Nh2oZF?|>qA(>Rw0N6M zV<$kuRVokVopY6H|9A*GSn06G5ZK|Cr9l6 zxyTfxjCFjiSv~wyOkc>nlD1^%Wxm4iFjlc=_^d~hEGfs+1%4${NC;fXA+RXr^)NI{ zxl3jAxG2=P-1-|;!2Vb(ZezK!)hOc@)(_Lv3bh8}tpTA)Yx@nMFE9qhFFbbl_gAy_ zpJCtQ|9J3WrI12cjMUx<&nwl@!rm&soUO3X)03(DhV6DRZQ~!gOUlM%N-q*irI%p` zG6#Q@pKbND>!eai%kgbfT7;)Xhkc>*w3qNDX`W#ld?I3$P9~#hy%qPyMY3YFssBA+ z1NDREMADM zb-dh#UcCDNJ1*1c5J7_w*Nsd+tXP3*F6Gvoqk%c^H@-*zbra|!L01n^mfaN*4>9v* zU6-f0QvVyc4pdLBF`f`qZ7|S_uQ4~7QSxIpTGP|hJsFqze%NTopo^`sXXnpis&7jg z%X`#6^5*8>iyf(o%mYln$C3qZryIQifW>IV-3JV-wSLo43-iW9J|f-Myc@kI9-&rV z9hECsZR>x>u)WazCw%n=d$jK-JpTjWF0TH;XJTs$5jqYVHSVHui^HOViOOO(FTC(_ zT^ALJMD|psv)$~HxvdIBkGkJzHaKfe4Q5$Qa*DNJ)vrgr>=nI#dh>>MM6n3U`Vnwr zN&mBtFXTfe-n{tw34Yr9FBgDf$plY>kv`=}OJbbeG!u{mqgPNy*nI!Zs}HLQ|p+>_r`P~aN4YJ5E>tt}CrDK7z`RfC5S*j7Wnm8Lrq)(Oc>g2Ii98bO(t}NA*Zb%_l-1jfpP83QifXnv! zr}iqdNH~qiTF){9^6~m?f4%)HuopXULaMjka*beb_B?+$MA@IttGocicvnz~x|>Z~ zRektd!L~ga&u_~c-XIF@OD(7--uW1mtt&td^G@C>XKBVYg5d~DsZHdS?P-iXn_{* ze#PJQPv>@c5J6S*P}b3SexMdDi_Hekx2olweYjoU-ox7aIkZbA%^wY?X0@YnDUB-) zM%mLYtGCNuN~1}Zp||B2!S<6c6@MUPZD!>borV%PQU&{VEaLr71`{z_T0bVhk-he= zX|Fw598vdp;fZ=(G>qO#*Y&8a7U#bQKUIMLmC-Ky4@Mh0$HFcnoW@<=%Tto!PDek& zyJ=SV_Ig$Mydrc(kE#j)(t4ohDg6PnX_#5-;u+xFh_IDK%#Ak-1nTATo(sL*h!km^ zZA2kVEz%P>Q$q#bZnWUaFIZ4?H=Hj-#RKLv*Bfg1*Nbj9uNUw}Mv3V<-eiM>*5xmC z3EvL6AKo;$#U)kuz7{QC9Fajp{Vq;ILw+dY3C^ZmP{2kKCUiGzQ9mPpt>KDitgWYwBKv0yRXw0%mCAvaWG5uSj6`9(H@#C&qlSll$|}M&rM9# z7PTSd;fatDgZ56bGf#V?HFdu$IjZqCBPw|H60hN~(a2pbaJE!REMtOp&kZ9{oNdHK z6XZ|-u+E%{+itOM$k5<_@Y|UH52wu4*PD|!h&ACOs(Q1*$)lyY z-l3m*7GO*45LK9Z4`!B&sa_kqm*O{rO=*PHvBc-5|55(g?sJ;1$oR3_^G%o()`i6J zNJadv34YkCcXt7n*Eh8q6?%@7^KNfdRb%2BCy)IALT~k;7BQ%s4EQy9CbaYG2nY`8 z*xBsQpke`4U{-&`?C8x3Cd75y=DNm`DGN)8U9YLtciLD_KQ`|EP48HFjV^oQoXV$( zXt}mqmJAJ4o~lfdF#S+42SI{jR`E8!hYYzv_F5XL)g(M=J-6r`dn!23G6Ajbe<*C9 z>jl_f6!s-cFonLNrkdbG?1R77eCEdc-1wNzwEGnW9n2u%bre=m6ctEOWe~PeFj-0E znOW>SCZkN_$e5ZGX(uy?U3DliX@F}=1x{r9bQ5&QqeT5t5lxGa&7Z1-xs zh_5%3+7V8>W>*#~hape#7K>TR<|x9`jFjWQkFy&O+i^J~N7hHyYXxP`qFK9B5;GGx zBD(v9&@YtTIj?tt`CCZ%YucU~mCp2ii_S^Bi<(eEG z@?Vc-<>h19kWKV|rlK00xA)w<7ND~O83&>lQH;g`kVwoZ8WW3?5z;~C3OQh@!uq| zn|m%FO0cGX9hS%*NXy8@aWR72YQkLCV!)8e+ramg%>epzKD;RLJN|ehd2WwzaBh>6 z?^cECdWgPI_D1hdWn7g`H8Py}#xp$5!~00Q4I1;0Ss>`acvT4r3ig@0NzU9Ky1cP9 z-Kb8!)}5Nao=>h1xTVP6OHZ6;M+DC(aHWz5GT*c@Y0-{XV~RWTuX^!x#=z6OiaZlm?%P!^_#DA;DY1$~HP2$c)un8JUl`J`MVz4B zW~#pi9Hd~kQ4KyL!mFgl^?eAA&#s;E$?E&+qBTGjN9@Th9D$&Y9$7r%7>yZHjoBL!>0vxH3k%DLd4|cs z%&wh)@31Gh<0bUL=8zz16r9%6-_`q)ybN2HYQ01|KVPE?C}?W3JrS%L81^_a;d5=( zd3rwTHg=4$treDSTJkaiVvf)G3=ft0Oc9e~+asYI5RDA}=Rzv3^$5$pfZm|-Jhh$oIakrzsv;x0S}kl=AY*-5PN3!J>5aoAXrl5uRcLJ+#jJdrtMHb^ zPM6@#{zZU-6p0GXBcB;@y3_f@fzsYEu7%^Y2s3MbD&d$10u`Idi9)nDH%2o@estho z-I}1@2L%1?S*7(=iaJwS%LNaCLJ>!kW#93XpP6`ocD`r}9&zDz*%k2U321(ssN`#r z%tQ4xpVY<#?0 z_@2L-AMSm9R)9@a#{N^8NW@t2d-+w!rAcDS_iT)4l_70-%JnVpZ}a@Jp!!k#lK}*n zqm69UMGuWYP%GI@F22yjU7luP>Lo5Z=!$XemZzd1#)gzHWPiGH4m7f`unzM3SZ0A? zsYE-3il;7_I^_elrXi{b5I5RG2@w!Ur41N3qbvjOkI;?M|&L_PiiB##9LyOkpb zVx2fxjjbZFtQo+R`nA&Wk(lLrZ+yVP8wHXfXFWI+RQ!l?{l<^}f|ZHsx2_uoSS-do z1jaC=JDqu)U;(Z19_&0e<(niSc7ImkO0G=63UWHE|AnM`Ta9P@>N(8^C2`STRIFU+ zi|1&)hx3U#Kd134SVhwh+@BP39mAH$=-a@;S~YM3#r-=nILkQeOkd*OP@(I1eKJ2Y zv^=|gUyeBG+p7310s!3ZLPXBxY!;K7A%Pgl-|!O-sOsy;v=Q)5xHKXa%C-M?rnTzf zl>dhA zwwsqg>P#A6%ANLhnyP2=eb4yBB82sw;-{(jk`FDPPK2R6@J&XKQj?+tY)VCo{Huex zZ&=eHkCiLI#->)EJZ=W3^;KnUe?>ORNhpPzIykTpZN|W1@YwO;Fe&6yz zfM_~=y+8iMWtT0-iXvpkgL=3tb4C$6Jn;w{Gaf|zOm1e+MW;%FH42D%GH`W9R$&yz z$VKD&81tcW%->9jPXDl_+4R1dxb}kD%hOx=Er$=ut+lMaT<{a{LOcUbwqy)*Syg0R zKQMn9a}<5R-Y3X3zEwK+OXka$DE(NLYSTcY`;)1oXbHA$%}2AMzQR91UIN4S7;#l@ z*;O6)Hkt50jpe#GlnVc>l(&v$QDF|q;t|*{v95L#^d4Y5>QmUV90-fR zIAz#BpG(upm$zA~;PK#iialm1)ni^6baYm$KP-T~D^%)Iadzed8_T<_ zYQhV~VP$7i*{oj0a>Q-138>5S`4(@slNl>6HF+pqQcqpW!5qOvOEJ9kqXc6>rZ|PZ z7m1CsTuvxwOO)K@au1;COPJu{`_ui>^Y^IquI*Kuq|ZHayC_K? zL(2k*TsQT49#5BrT2Pq0N|0CQNf4YlT42_7XY-+^x0yMDt00HKsb;a_48m@lLq%V( zv6#>9oCb=IS!^a#d|gLxqpQ@V)!U3&&R!8wiKgKX8bE{7z*1>@7jtKkAq52-)Pmh4 zxhzpYB!6Pn8ssR_R>}t96^81w=_YqYJ+Xug#hTiwL@D%)+Qo2Im)^c}$U#%}ex%B2 zyOUQsMKfa)EIeu)#+G?#p$r?Sqi;fP(qB0bXS%xNmMb?NK5k)~RTf<2i`VnG^x#!H zj*+jZHifRNmACB3d19Jtw?cXnRn_#`AXk)|DNeQ&$T|llW%<<$3)AE!%}rGM)F-W4 zfqX7ZFcFbpdt){`{7sDh>yw2V{b$kVw{FbW)I*3I`!8Gs(M3lf;i`}$3mq@J9TIZo z+EVu}|7y-5n@A+Ze6&(HQc}4hQ|3$lFZEIMe*F)`Q=h|1{4qa$@slmAkWr*=SQ_`s zlUFs1%SW+9mtPXeb0u#{)#Jzqk=^l?`SNZeJ3Fv%Y(ZS{tow)wB zE0c$vgL4VHUKZ0a+`JA*xLrf?<+h^Nd+*uPa7x&<$AvhJ7wrY#^1O<#n^PAY+XBQM zG}Lr6ZTLCWIMQZ5N~Usc0k<|KZ++Gkj#64?KfEQ6_wM2~0Cth(Pbl_V5?8`DSVsFO zJFfjb<{+Ld-hJ)Nqm}II@ud`);4wnNt5X%2hN0%Fdw67k}QHLlf5s3 zbqE#=ra47CK5S;A?#OKK z3HpzZu-R!ziyb><{>)5ICViiqdbA}~+S2T=?>>`xmy!##8v?_SdZRMLm{gU&qbbEm zZsAi-ar!tWpnopbTnL}Oa3_OwY5_T)#_1dYyN%hTM$(I=xbWnP!fjp#FX{j#B(GXlvEgDcJ7k5)}d)zSK-qlGIoaw4{QKoBNYIM$|< z%l@KPHo|ovXM5aGV;G5YJ+BqGF&^XJ*LSqqe(HnA@*Ig2@Xs(LC5702&E4FIEp&>rpTR~Na;MM1Dp(E%>$Hgv|q z15?V7likV5{AAGrsf#?udW>N(O?7Rgf zxiO-ShjzCuy?Fho7yl=bBWdeFmrve7tnr3eQU^ zy;!tRxLsdIFxkLpHuUCtc-9UsF$6zIqdfRVFS(7CBpmFwY8W}!L(YC@q6C_NN~v#t zH90>d)o76^$YWc-sir$31vcRnc?{9|n`{&J-%?!R%16aHIwtLpN3S%Au0|xwj>pfX zizo&WSC+2`!p~UBR#-ne8e}Sw*bRbT2~5;c9HNb$hkVAK2xF{wND9+z8v3rzMlD@Z z52r=qP+K$`QnHk&iLdmHKb6yMpq7VYDr0OL_lc^^uGZKq_^Z6i8;%^UI)sGkO@{_C=yO=p$)Q8b zGT|E4TGfD_gMG?RF1`M@Ls{1z`Ler5lo>reJs+AXKJbK6v^_VLdGjqd+c~R6bsEg5bxUid2^2(1Jybz9nxeh_+37y-hfUNykKc{fT)b3 zbsx&U7r=?Iqcp1lJ{fJGX`X;R1P$det*y9rjm#?qc*c}|!u^VIvi#*AN;n;{Smq$g ztDncLf1G^NHCm3cPWgT$vwIby+s7!G#WZk;sWKSgWS3}7p(%){t)Eoi5r!#tX^dVk zdb358b-o;Z$tsenx9-iZU5!;Y94tvBwx^1il@GgpFDvR>g-ABxY?lcx7PwvDEe*k} zT~@-oUq~L>gjIn|_MYi38`aM4;`XxMHpD6~Le?Wd>9Yp{P9Iwq=(F$Iu~$WBc$?lI z*x*<%P=-y})0(AmM~nWFS8`h)4uCg0mEooyIR0pbkKe}xCIjd^e=@Gv{{p`T01pBg z4%&r&n#$(iw{rO2cAx$u5x#U*RP+eGb5SU53mw~V&1Ry`N@&gJ=XaeDz?Os9Ih`Ln z-|$zNg`x|K(ImUE-y_U$%Qc%5%sg1s9&oh^*DY3p$xNyC6c2BJ;~C<=ta}lHi{^SC zaTaq*UqF4L{l*9)%2D~Wyhm?h%TEv66*N1P{Zr2OEOsucoR7x+^AS*#b7Kp$Q?8MI zQ`X~%b>D?E{q$o1c;iXzhlF~_Y~U5!9qje2qK4C^OfAEVd#>ito6)Xz*rHfj3$~8< zT!X#1C`zwGM;5$;dBiehTbpTkpFNl;Ta&r?CF)ew-2~F}y))C1YANeU4sde^NZ_5} zymz1@?uEd;A&WmYUU9ZoTK7{~KX`)iW$3cbVb8n?N<1fl)3-F@>sERs#^>N;Muh8; zm2tg&OOyLWbmA`prL|{l`Z3qViD6KEn<|L}>eftbrAl6V>N*Zuv!=RrT z-C|7um+H3UT=fO#M_xS-buTcxKeVz-vV8##gs#5smG!xUOZ5BR5vE?|3e!$)gH1J0 zBtO2pa`#fxK3f|G8A352+pj%dPnZcqGo|kbj07?ksM^ZX53zVhKXBJ<463~eg(r+l z8fe=VXvVaNiKGi`82>)g>G~nJO8HSFIqQ*7zM_nl*bZ54mK9c z3W9A{K-6Ea^d{P-2Bd<|Gy_%wrZbX$%{=)L+{@G!Mo=L;Wc~hcqt(m)-lCO-W}!~3YKY9fXICS;iq;DunFHT1K1|L_PlLUTx+j*(o1a;( zctq6xgkj>xyM}dIXUABHgd(&K2`=fHFKl)-4i-|ZYLNNlsjg3T?G0|Z*e%YC%^s_s z^2o`vv_b|nL7fmEppybaGkPbK?|A;)L!g&McsnoJc{-mWm4XIz zIabw)oE19WDwQofrm|;!_XHzwIRr!7I6^y0l)NMka&n*?r0(}kzfmd;Z5&p!7EtZ? zgSxp=g$&LPI}`@wg$XwW>+JF^<~u3jnddg&0+2&oqHTIh+zA1|i${)Qi=#n%5|X*Uy}Pa*y$~NtoigMQ$eErj?PB#VsK!7c?=fhM9JB_#tP2K0|Fjs+maT#rk#kyIke9A;h~!Pf1@V>Ok4z z56sZM$j3=08|U*dfcNnLwXnMZIGxY+A>l?MxlfVyS)XIbCZw|waRp8}-lvw6n~}YX zOPHmm1p3uvZZ`1(+Px}~W=0tzf{whgno)1qL|nfaH!yL^DB?ZpAVH~$b@>tQfrKqa zD61_-KS0^^d18OPUuE=j4Fv!BwPsT9vKZCx(?MPi^Z*?0!5ew~Z|#e=g1kJ2#L<5xY%>vW+5gvs zZ7CWD$DA07mM3)=vU(pV^?M?@>2a~IEnePkdtP~d8`hQkw46^sC?_-C_CQI6F2MF64Zf`QS!1}k}l;!{R5P|h0ObYPPUEdELV%CRCYm1!{j{CDMttUBWsjdTxteh zcce00BZLgPFRmDm&s;H&IR?aX%F1tQ*Y$hBF@P2{U;MP`re76+LyPDm+CQQm)6D707KZOIMqQ0~J=mE_$r%J% z5*fe67|5>I*3NP!AKS>&b#>0U28=tr&BSSo9?089%eVvd?2fdD3AMlOpeZ1(A$#j( zBYQ_DYRZSHlVn@!89tGBnPx$5i*{m}sRyt?96deIslHk%aZ@r4M0sOlT@}afl(ese zq@o`2v@hafQqMcxSn4yj1b5)?Q<*caVO?NZjKXF^xHW|6)4ho4KJR<=;if($!)t}D z_Tp`r2nq-}!S{6SRBK{Ad*VcAif+0$VO)+2^ztuXM{{NFT}0eLJHgZCttN$Od)-44 zx$B-&-9?vo?zaou+bm7|99mYx^?Hh<|Khv9yi0cVFY{3*i&T7qtVKt$FauKUm7Y zxc~VTgl&o8zCg9f&u+Fg7VB4ZuAm^rYOHk7Tb8zZ(Sj;-%l%{^ydhyQ9an`9Sy5#( zoB4kjI}4z;*0x>a?oyyga49X6LU9PL#c3&}NTC!c?oNt(gB5ovv{2kFxI47P-Q7tb zBq!bb`_DQ5oc}xfn_(sclObzmt#`eT+}Hig6rZRHfsX0jmn_?M9Q(C`C}BLOU4WGe zlzu2Jg2;X$Y{=`I@p3!WMVJ{o`kt5vLWFY#oCxj95Q*=j|3pZ_P%?v?o%wtt7VPSI z^z~UW%~O4svTmG+!AaAAp`J~aTZa)Zc?z!uo-^RSko-U}@?)*I>-QE${y zJO3#;*2i<$4qLHPPj`gm7Q@F*K~X~Cvb;^@M|c{l5p#uJ_VpcN22l!%>k+s>S8yGAKN?)#Hucx2sxV{sDCnML3q9hkUx{h~U;KJA z4JY=#FK@n8OYh;uNlZwv9=g&q&USgPz`hc!d?DqvHSXD3#7J774@KCYWG|tL?)Z^K zy8;6C+=9Hp{wV1P-1Fz2RO{`;3ScJG7Is_eXdRlekSj#hzP!3Yj2KOSzL7#%C&C|< zK*KPn(}~EQguARS`H`NeN%poxeR~2&lE7nm;hFBfo{rtim^5dB{Ahl7YvC9qhiAcn zqlsWYg-Cyn9umfVxsWJQx02vec}XvE)Ezp^>Aq(GRa|?(0h}MeZ`o9Qysj`oGtbR( zD#EIeU%ST6D8r>n#w;8cncqK%uY=DBkJA%RqCE>|6eiNg`7G?hOylOFV)81j6%F5i zgG`nvLI>|whTdauMO^3CH=(B(sa0uh_AUK7ROiy!Bur+>BaQ+0_KterbN;R*2gz7NI=|*%IyPsonWQIbDEc*0 zjx0W&-?$ZoYkP36X*37+pHw14Blv<7Wagrynbu$Xv zw0^`?wxB+&i{v;d-wgR>9CN$p?rNMC%Ll$W>~St!FGsSCesiu1mti?UHuH|(TX`K_ zeND?G=N{%~eXLr+`|SYk{@h{nXq^8xR1(%B_|@%-OOQ8Fb+{WOZwA;#jZ;bOe#zjL z8tct2_^fyZDf5ztK6aVjueB2(Xd!ay@$98)K!7Z2hP65Bq7C^9t)A?+KGen~A(3Pf z6~Xfo`nGV@HP^`pr#J6}$cAIOOCb9-x{@)2Zx{HDkf;pRFh2lG&}-$ zi#y5VEqMigO$|`Wjp6sTftBSvLriWRRG$?YcyVs?)=7^j(rA@mWu|NYSO0h;F-^a3 zWs`%a#g;8=yMz-1c?ah@zp$0FwfFUYB^cVwi}8~6v@bdI@&RDbJ2qwJ$NA>WpB_N$ z!@!1>bk%@X)1y}lCfTvKArI$PsgX(^ouB<0ncs!<*IYPG1ZIZdAvx_)EfkgqxQDCv zArtYE`N}+!Z0Bl^4Svwh^pbi&1Cf-{@uht<_IQ4li}~{OKI$?;;?bhHNwOABy2?A& z>bMip{06Z(nK7+e%orEQ60f}%m?ZKo(rVp{l4EmpLJC z*3BX?mFxu_&~;BDOVUl5%O2pV;?7ehVW`=6)f&&u)m~m;`xF&*&cn{0DbndUI~omx z+ZtoQhoCL++&?CjY%q?~le&%jj$9u(Wncel`ib54Of zpqfNB6S}K_&!-uoo7Bb6N<&hsIFalZAtJ9^mUSz?-zZJqBW*nPKEQ=5L>8=|4a7a6>)hdj*xr|&@+rGxp2YFpF5bDTn!PeHqYa1LgoBaCO{3I)dC zp8P~CW-(_OFoh3P)dh`Hygc1+AX5IaI>vaNoK0*k+>dO}6iyCyj;iQsIY7;V`X5i~ z|NOBdP{#hkvFjf7iMV4G;&8xiU7>ElTU#!wJdD8zlJ_1Q^AX+I856^ipU|lDr?P3J zQ;Q>}1u;tsoxw`-R$`hlXeyr<-{G>+iJVA2% zeRcQoaG_8mi({2j8+xIBR(Fs``AqMFCrZUz$&$n1k)Qap@3ZcCH0n#-3}%KL(nZx@ zf}2I|yDLoCrP~SJPnog^}TY9thG_W=<8k4mtv4gzjafVNZe0DS(A)4a5T2k`Lec4prjf{#)Ek0g( zr|CIX_IxpFpA=%ky1W=~sQ6-%6V@gj1@VPb18$&R)sF(Q$1c6g{$*7zPs$C1{x^00#lbxM-DG^0{B(8K>@7gUEMKRHq%w)cOSA!6x@ujXpSZHh2wFj)FDPj0P~9 z*B|o&Z~v4gK@U&6s#_T+RQynMqTv!OjK$%iT2_k4bNvm>_`9a{Z%^9`;xfsr!BT3;eWLo_3=Pd)Y?YrYL_E1v9*cWsl0|cI zIjx5c0`1~c;KF%wUl0ORo8@@5et2I%LQcP5ej9G`PY)J`){F)?>IdNTC9~`2%M_%% zWDg}W9KK3<1ZP{1`K0gmfQ3#GEJIfo7tbsd8mACRvZ=7jYd>R|Yi{+WD*6c-!Gp7I z{5k(3tv%d;vHNaLfl75Fmuj_t`rsjQGCtzb^mE6q&N%>;eP{!<{;mQK6)Q z-{KY6%NI!ztou(N{)o+NXT^*>fW+^iUDsS5-_dud$Qp7r9NN5!?BHSripr6%5eo3N zEQ>}_sqoDUE_7BP zE6=Gr{S`q)OZEbWEymYBIeVCwM@~gWWj;pCH8b0H;z#ZVSN;vrYHR;OJ^@;(yE`!g zBK_`GQvTa&*RN+n-07Z`#%NpI1^hlhE%whc7I!zc0EzuNsepT=4&B;(UxUl_&~N_7 zWnx=fAH-YWj0@S&238!!#^(|uxXZ*<+@VNHMlZ3`uu8&k+%Z!3%};>&2-oA4D}b=U4HJe^Ut#;DBmjc1WZ9{*La)IUj?fg8uI)wxzY>1GBsdquw99z z0Pnf#XB!#6`|3@NlArC$$o#pE;`>)Nvj+vxmVVQJ++UWOF3_SJ=nN96lr0`Zh44g$ zz4avanHf4EouBKS98nUawUv&GPQFbJQQ!zPB$rPtv_TMO0k9joBhMJ*N4CpCOK7JX zrP-)#Q&1bE5sYj!*NlIyqOQuy6)T$gY4)i7v?`~pXP{#;<+A@}qP$zavdIezMV{O| zzNW_gDiE~f-#>!?1pQGm*cf$#5PV0jOk?9S5Ut=X8Ze^yG-Q|5U43;^jhzf#l$}Kr zO@LXv7sqs0){EeESI4}Bg7M`uyup6XL>dmeDd6E0(7YESe(#$4AMGg`jqQIzEd5>^ zyoyL^Qc8h&VmXs}d^L1gI2o?Q>>97Jw$WpI`&j}(b3!Zq)tbr+T zUDR`?lBGWvf;5Z&IdFS><~YHKk3<Gw}V z@o4`g4)fz65s$F5{y5G9)9wP`;>1#jxA2SnK)mawU9~#N$@mY>Ym@UY)eS-MD{ADg z33yH$$mx?cAy>o{1xgJqKGNDVC`-2Lhlf_FjyuKU$H8QVE;GwK(G8I1eiux7IUyTo zv_6^a$GzqB6X>_4z`@k?Pa9_LGYk*Jh!J8m1qzIzgXhQ9bpg|B+&Hl(!vrI6z3WM~{YzLI zqV?Q7@`-UsSUbk?-S2}9rkv*bM~GwcSAL5d8-w4W-f{yCM?Uv{ceh>-vrK?mct1zV zp}&YA=?X|jD81w9T#K&})1C2{G7DgJy`wv@g7=Z5MQA-kr7US+1vIdfm(Q_)M2ZCZ zsX^W$=^DN$!~j?~OZ>9hh0n^=6k@UY-A0}i)S}_i-EShIsXecVA^X@|hHUqJrFDTG z3ri6(fSiazdWvq|JVmssfEc|BKVDcx9dDk3t&r2DlTY{(Gb4#vP6t&=)*9^Ap#Jw6 z$X~%aH-2$OqHCyhJw(@i(Jlv`ydjUVG7S<>ot zkLhg?F{{TQub7S;8E=ygtB4w#^(?k3>e;SBAy)et>lriAD{-op3z=0y07{#Pt`4Y_ zEi8*hFiP#3{=>0UvN_eBf>uR&om0mOi)r&37D70%dGPZo&2MBG?Bq&sPR7amp(y-mr&pujkD4e#NETiJilYG3m+FxH6kvp z`u$R#du4Hi=P{axugQ!vbMbEcw3udcxjHfxK_E-i=U#Zv7XD9<8+~Rp5)ycZlN$<7 ze;9+qGX>`oIZYvDoqPmz2{lCP8Hs zUjJ!Ev3TbA45rg4X}XSl%6S?l`rfaL?M*SC!q=ioF+u@+3W{)cEHPB}dm5~vHhbi) zlfpp3)zm|3e-{6?Qq|Ojf?JVG;53mo=^8OvE`tBxlAo(zj{Y8~!07Mf=O@?a`IJA& zkM!TkPuhPAhyIh~r{fz+l@fLwr`*_fyN*0;&A9|u(FS($F%xm1VX?h_OGFh=QV_x@ z9s$jNa#%SVg02+VO4g%pQrk=8zS%WnIEb%g=)%f$#I~2y{f`+le&GE2%EKrm<~Uw_ zWWwhM$hwO0a0*N+T}muAg?Tw8wP&AL&k|mvN+ItO8C=#U*uZhQrz!9fbnZUjChPsnpOEh1aO7uNfgo}A+6tkrqlE8^W~VA!nRghJ!3a%k^KLiP+^&na>Rd za-$%VZ#Hpo*NWX|z84SF?riIHi2S#(&q)ajI8uxadFs22Y*7*OsizV%bGa0@=e`<@ z{dK*aZbrNG*-KK z-_`YPE>4GPRyr`s)1mmV2&ipnQf{eSWTU|ToL({^UFmr-{3S%U^K0Fg!}-$~nemW% zp)w=oH?08@KQ!ijU(39_mhG=EPQ3Fh`253YqEG5>FY5$Ulyq6vy^bV_%I;@W-slGx z<$z3H3>(0GW_f(80S~mnQH>K1W;m*ee~d4x4|?yt8kaJvErx!Wd`16dNetJ<{kB|9 zTr2kbIa|36CGg?Ycgicf$yB=E^yx%@V!oBK0N9UwZ$xBIg}`v9@SiN`%2~79j}I3r;@)VRsP>*{ z^>{{F%gVp075EmQuAWzC_$_#vusRCRa zQ>3Wjb%{|4*9O(t_0eBf+Zn&1lwXhL>njp|ig`(xQ6%1?{QNjF(pirqi9l$}5nQ zu`CIl6X`aat)Z8-?!ylVbJDXx?&YS%npxJnl`NP2C!neMI@=N2@05g98OUZk#$|Km8J)Q&!+`S<;r#Qf=q&lcjI2djAO$1^D$k$0qXGCL z6G#!yIQM9TqicnT5o}y6=+E$GkFtW|l7#Jc--^ef53MSIg*6}Gx>>V@OOfuAq2dFi zE)D(q1n@kUpWzwPp1R#L9FH^mCTId751(}T6mx_9Qou}HHmY$lIgyf6P#N<1msmaU zf@uEyHlr3c+VEs)(gd9(tGqRHNKKu`K6V2WSoqR*KVZ66t=Qz1PsA_8iOu}gmVpvz z(OyK45(uv;e|(qnxDFLZ7BP;ACsOd=;@W%Ley~)wN9n;jRvrX)gpAFcSJQKIpS=#2 z?MngZ-WH#{_7Vc#Q4Dhq!QD$+Ii)O4p!_iGaBUvSv^BOq-Al#a+SmEmZl`s{FPg6f zmp8`wfsdXHa6u^hbuKx6>uh_P>dm+CKWqV&zK-&RDt=r)(XvzwrE;HdNcK-Qdt37laAtfs~|b?l-Qp|Nbv8fTc(W zQA^r;=u zt#<~x!?{lLrg4hSd84t%b)&$^nuF~jr#~wGA6^UJz&KfQd2m>ov91d8crk}*8On=7 z6cY^$A%K7f*rzAMLhT+;Fyu8xE*4%*9xO0IbjG6&UU<4QD)hozY75JfzA{dSXV1cM zN9UWCOX2&QOo5+fx2cflFK5_udA?95YhPT1>&%ZRCP^Py-2~cQfe8v;iNv_>d7f@z ze^DL(s!?*3n4&X%N;U*PG!Tal`K35t{m2x%cye)<+gKTaLrSMWb1F5Guc*EYAw~W! z&3o&4Ung{SIX&Y4($J7Dmcg6#3Df~y>S|Mvb2-ufR{lmuTLz7q>cLb;C+6Pb#aP}7 zH1Kzuq`;PST(;z-_5KXcgZ>GRF-f26xt%h-(mj~3?>+oJV+sWDO_h_AE74eZ9esHz zy!^28)jkC}s@pu(0SPn>mcb=wB6W|;s|-d`mTP)R)#}iECgE@)5DBl}4B^MJZ&}tX z>*5rPm-kz9$?`Ilq`Gzk znDGdwE@nZN33RjCH7<*d?|TNfDFP~dv-Gk5!a1j``;4*zJs@W}57xZnATJ0=7;eS%^Q-6H6tMECSj13MWOwOSm~ z4yU$Nn@&KUdhe!QAvm_ZFje8M^M_(b zG59{T47ieJ92&{pjfT0#JI;Ep1U&h2xT1arZc`fNGFC~uumT9P%}l>We7?rzPm?)& z!nV6$Dl)-?*}{Yq$aVL8Jm3YduzhiUf-WZz)4G#QWTM0*i>KbZXXRtx4kZ|u}1@+1?j!T8c~X{mYNofU;IM|i)6){+lN0y zD|-uV^)wyw1uW-`YNdREjOJaBKLG+-pI#DRkl+1E4i(>+ri7ZzR;VA^;Ef9=2dMId zdSCwfl(>g%CMtB)s|N^MOuuaYo%n0&UwCh*kiA-kGd!thIZSADi!P@Du#od>r*M)Q zGA8o-G>@r!FL~^K_oB_Hb?D@~*3XyBWd7Z+<-LxZȀY8G5OzSVldM>j@#pR8wC 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

Hrv?Rs-Nu| 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

_d|Ra8upT91wqaek`58@9xgshoE(Ec%Hn91A< znoRS)Gfv%?GpZX$u6lGjo zSr>NfXp)<|S?^Zlv0T=O7x&u45tDm)vI`GBO73sp+0AjZzrSr$v2}Tc3~Wh{&*JYh zGd{vrv>s*;9&-uYhGBMJU|}$?v}P;(pKEaNwq8$J0BA zjr_}hES;%*?Rw;rz~!A9Al`0|U(x6W{~V+Hx&0$i8z#1neNO8r_H;Mn zq*6uR#juJhLQYfxVLZ#%_!u)uW#Bj=2qi(FH?iu&)o(I!7ZR_%PX0uyancT-nGk;4 zfIYk71uaXlEj8>@<8up&jc^0{iiIIG0GDT=)zP;d!gW%#(&CkSz z1DyT@D8&gISgPnR4P6)6DbM<7G9kq4oh2uL`n2jB$zPk0efjQ<2am=!Y-2vC=?J#% z7?pK9HI9a^bDS-3$36O`W5>4L@)IVG%`FDxJ3%@j!W${;L;CAps6Qs?7FfyA_|YPS zrf5jf_HMGyX|{5wefUmfuCW2L|Q8xITwMCBdL0INjS>&%v9 zejXblSN*{z^Qt=3kuV~8SQRgYNq@=(aA|L-aFjd)brL1t%O<^=ⅇZc|aM#KFXu_ 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 Date: Sat, 21 Mar 2020 22:10:51 +0530 Subject: [PATCH 50/86] added realtime api from worldometersinfo --- app.js | 18 +++++ bin/index.js | 29 +++++-- lib/api.js | 59 ++++++++++++-- lib/constants.js | 183 ++++++++++++++++++++++++++++++++++++++++++++ lib/corona.js | 43 ++++------- lib/helpers.js | 46 +++++++++-- lib/worldoMeters.js | 59 ++++++++++++++ 7 files changed, 388 insertions(+), 49 deletions(-) create mode 100644 lib/constants.js create mode 100644 lib/worldoMeters.js diff --git a/app.js b/app.js index 93a0f90..378c940 100644 --- a/app.js +++ b/app.js @@ -5,6 +5,7 @@ const { getCountryTable, getJSONData, getJSONDataForCountry } = require('./lib/b const { getCompleteTable } = require('./lib/corona'); const { lookupCountry } = require('./lib/helpers'); const { getLiveUpdates } = require('./lib/reddit.js'); +const { getWorldoMetersTable } = require('./lib/worldoMeters.js'); const app = express(); const port = process.env.PORT || 3001; @@ -32,6 +33,14 @@ app.get('/', (req, res) => { const minimal = req.query.minimal === 'true'; const emojis = req.query.emojis === 'true'; const top = req.query.top ? Number(req.query.top) : 1000; + const source = req.query.source ? Number(req.query.source) : 1; + + if (source === 2) { + return getWorldoMetersTable({ isCurl, emojis, minimal, top }) + .then(result => { + return res.send(result); + }).catch(error => errorHandler(error, res)); + } if (format.toLowerCase() === 'json') { return getJSONData().then(result => { @@ -66,6 +75,7 @@ app.get('/:country', (req, res) => { const format = req.query.format ? req.query.format : ''; const minimal = req.query.minimal === 'true'; const emojis = req.query.emojis === 'true'; + const source = req.query.source ? Number(req.query.source) : 1; if (!country || country.toUpperCase() === 'ALL') { if (format.toLowerCase() === 'json') { @@ -93,8 +103,16 @@ app.get('/:country', (req, res) => { `); } + const { iso2 } = lookupObj; + if (source === 2) { + return getWorldoMetersTable({ countryCode: iso2, isCurl, emojis, minimal }) + .then(result => { + return res.send(result); + }).catch(error => errorHandler(error, res)); + } + if (format.toLowerCase() === 'json') { return getJSONDataForCountry(iso2).then(result => { return res.json(result); diff --git a/bin/index.js b/bin/index.js index f6c7d8a..4aaab8b 100755 --- a/bin/index.js +++ b/bin/index.js @@ -5,6 +5,7 @@ const yargs = require('yargs'); const chalk = require('chalk'); const { getCompleteTable } = require('../lib/corona'); const { getCountryTable } = require('../lib/byCountry'); +const { getWorldoMetersTable } = require('../lib/worldoMeters'); const { lookupCountry } = require('../lib/helpers'); const { argv } = yargs @@ -34,6 +35,12 @@ const { argv } = yargs }) ) .options({ + s: { + alias: 'source', + describe: 'fetch data from other source', + default: 1, + type: 'int' + }, e: { alias: 'emojis', describe: 'Show emojis in table', @@ -60,11 +67,17 @@ const { argv } = yargs .strict() .help('help'); -const { emojis, country, minimal, top } = argv; -( - country === 'ALL' - ? getCompleteTable({ emojis, minimal, top }) - : getCountryTable({ countryCode: country, emojis, minimal }) -) - .then(console.log) - .catch(console.error); +argv.countryCode = argv.country; +if (argv.source === 2) { + getWorldoMetersTable(argv) + .then(console.log) + .catch(console.error); +} else { + ( + argv.country === 'ALL' + ? getCompleteTable(argv) + : getCountryTable(argv) + ) + .then(console.log) + .catch(console.error); +} diff --git a/lib/api.js b/lib/api.js index c814652..33f7cfb 100644 --- a/lib/api.js +++ b/lib/api.js @@ -1,23 +1,68 @@ const NodeCache = require('node-cache'); const axios = require('axios'); +const { countryNameMap } = require('./constants'); const myCache = new NodeCache({ stdTTL: 100, checkperiod: 600 }); -const CORONA_ALL_KEY = 'coronaAll'; exports.getCoronaData = async () => { - const coronaCache = myCache.get(CORONA_ALL_KEY); + const CORONA_ALL_KEY = 'coronaAll'; + const cache = myCache.get(CORONA_ALL_KEY); - if (coronaCache) { - return coronaCache; + if (cache) { + return cache; } - const result = await axios('https://coronavirus-tracker-api.herokuapp.com/all'); if (!result || !result.data) { throw new Error('Source API failure.'); } - myCache.set(CORONA_ALL_KEY, result.data, 60 * 15); - return result.data; }; + +/** Fetch Worldometers Data */ +exports.getWorldoMetersData = async (countryCode = 'ALL') => { + const key = `worldMetersData_${countryCode}`; + const cache = myCache.get(key); + + if (cache) { + console.log('cache', key); + return cache; + } + const result = await axios('https://corona.lmao.ninja/countries'); + if (!result || !result.data) { + throw new Error('WorldoMeters Source API failure'); + } + + const worldStats = result.data.reduce((acc, countryObj) => { + acc.cases += countryObj.cases; + acc.todayCases += countryObj.todayCases; + acc.deaths += countryObj.deaths; + acc.todayDeaths += countryObj.todayDeaths; + acc.recovered += countryObj.recovered; + acc.active += countryObj.active; + acc.critical += countryObj.critical; + return acc; + }, { + countryName: 'World', + cases: 0, + todayCases: 0, + deaths: 0, + todayDeaths: 0, + recovered: 0, + active: 0, + critical: 0, + }); + + result.data.forEach(obj => obj.countryCode = countryNameMap[obj.country]); + worldStats.casesPerOneMillion = (worldStats.cases / 7794).toFixed(2); + let finalData = result.data; + console.log(countryCode); + if (countryCode && countryCode !== 'ALL') { + finalData = finalData.filter(obj => obj.countryCode === countryCode); + } + const returnObj = { data: finalData, worldStats }; + + myCache.set(key, returnObj, 60 * 15); + return returnObj; +}; diff --git a/lib/constants.js b/lib/constants.js new file mode 100644 index 0000000..6d9d756 --- /dev/null +++ b/lib/constants.js @@ -0,0 +1,183 @@ +exports.countryNameMap = { + China: 'CN', + UK: 'GB', + Martinique: 'MQ', + Liechtenstein: 'LI', + 'Réunion': 'RE', + Ukraine: 'UA', + Honduras: 'HN', + Afghanistan: 'AF', + Bangladesh: 'BD', + Macao: 'MO', + Bolivia: 'BO', + Cuba: 'CU', + Netherlands: 'NL', + Jamaica: 'JM', + 'French Guiana': 'GF', + DRC: 'CD', + Cameroon: 'CM', + Maldives: 'MV', + Montenegro: 'ME', + Paraguay: 'PY', + Nigeria: 'NG', + Guam: 'GU', + 'French Polynesia': 'PF', + Austria: 'AT', + Ghana: 'GH', + Rwanda: 'RW', + Monaco: 'MC', + Gibraltar: 'GI', + Guatemala: 'GT', + 'Ivory Coast': 'CI', + Ethiopia: 'ET', + Togo: 'TG', + 'Trinidad and Tobago': 'TT', + Kenya: 'KE', + Belgium: 'BE', + Mauritius: 'MU', + 'Equatorial Guinea': 'GQ', + Kyrgyzstan: 'KG', + Mongolia: 'MN', + 'Puerto Rico': 'PR', + Seychelles: 'SC', + Tanzania: 'TZ', + Guyana: 'GY', + Aruba: 'AW', + Barbados: 'BB', + Norway: 'NO', + Mayotte: 'YT', + 'Cayman Islands': 'KY', + 'Curaçao': 'CW', + Bahamas: 'BS', + Congo: 'CD', + Gabon: 'GA', + Namibia: 'NA', + 'St. Barth': 'BL', + 'Saint Martin': 'MF', + 'U.S. Virgin Islands': 'VI', + Sweden: 'SE', + Sudan: 'SD', + Benin: 'BJ', + Bermuda: 'BM', + Bhutan: 'BT', + CAR: 'CF', + Greenland: 'GL', + Haiti: 'HT', + Liberia: 'LR', + Mauritania: 'MR', + 'New Caledonia': 'NC', + Denmark: 'DK', + 'Saint Lucia': 'LC', + Zambia: 'ZM', + Nepal: 'NP', + Angola: 'AO', + 'Antigua and Barbuda': 'AG', + 'Cabo Verde': 'CV', + Chad: 'TD', + Djibouti: 'DJ', + 'El Salvador': 'SV', + Fiji: 'FJ', + Japan: 'JP', + Gambia: 'GM', + Guinea: 'GN', + 'Vatican City': 'VA', + 'Isle of Man': 'IM', + Montserrat: 'MS', + Nicaragua: 'NI', + Niger: 'NE', + 'St. Vincent Grenadines': 'VC', + 'Sint Maarten': 'SX', + Somalia: 'SO', + Malaysia: 'MY', + Suriname: 'SR', + Eswatini: 'SZ', + Australia: 'AU', + Italy: 'IT', + Canada: 'CA', + Portugal: 'PT', + Czechia: 'CZ', + Israel: 'IL', + Brazil: 'BR', + Luxembourg: 'LU', + Ireland: 'IE', + Greece: 'GR', + Qatar: 'QA', + Pakistan: 'PK', + Iran: 'IR', + Finland: 'FI', + Poland: 'PL', + Turkey: 'TR', + Singapore: 'SG', + Chile: 'CL', + Iceland: 'IS', + Thailand: 'TH', + Slovenia: 'SI', + Indonesia: 'ID', + Bahrain: 'BH', + Spain: 'ES', + Romania: 'RO', + 'Saudi Arabia': 'SA', + Estonia: 'EE', + Ecuador: 'EC', + Egypt: 'EG', + Peru: 'PE', + Philippines: 'PH', + 'Hong Kong': 'HK', + India: 'IN', + Russia: 'RU', + Germany: 'DE', + Iraq: 'IQ', + Mexico: 'MX', + Lebanon: 'LB', + 'South Africa': 'ZA', + Kuwait: 'KW', + 'San Marino': 'SM', + UAE: 'AE', + Panama: 'PA', + Armenia: 'AM', + Taiwan: 'TW', + USA: 'US', + Argentina: 'AR', + Colombia: 'CO', + Slovakia: 'SK', + Serbia: 'RS', + Croatia: 'HR', + Bulgaria: 'BG', + Uruguay: 'UY', + Algeria: 'DZ', + 'Costa Rica': 'CR', + Latvia: 'LV', + France: 'FR', + Hungary: 'HU', + Vietnam: 'VN', + 'Faeroe Islands': 'FO', + Andorra: 'AD', + Brunei: 'BN', + Belarus: 'BY', + Jordan: 'JO', + Cyprus: 'CY', + 'Sri Lanka': 'LK', + Albania: 'AL', + 'S. Korea': 'KR', + 'Bosnia and Herzegovina': 'BA', + Morocco: 'MA', + Malta: 'MT', + 'North Macedonia': 'MK', + Moldova: 'MD', + Kazakhstan: 'KZ', + Lithuania: 'LT', + Oman: 'OM', + Cambodia: 'KH', + Palestine: 'PS', + Switzerland: 'CH', + Guadeloupe: 'GP', + Azerbaijan: 'AZ', + Georgia: 'GE', + Venezuela: 'VE', + Tunisia: 'TN', + 'New Zealand': 'NZ', + Senegal: 'SN', + 'Dominican Republic': 'DO', + 'Burkina Faso': 'BF', + Uzbekistan: 'UZ', +}; \ No newline at end of file diff --git a/lib/corona.js b/lib/corona.js index 48c3ece..1581125 100644 --- a/lib/corona.js +++ b/lib/corona.js @@ -81,20 +81,20 @@ exports.getCompleteTable = async ({ const { confirmed, deaths, recovered } = data; const countryData = getDataByCountry(confirmed, deaths, recovered); const worldStats = getTotalStats(countryData); - table.push({ - '': [ - 'World', - getConfirmed(worldStats.confirmed), - getRecovered(worldStats.recovered), - getDeaths(worldStats.deaths), - getActive(worldStats.active), - getMortalityPer(worldStats.mortalityPer), - getRecoveredPer(worldStats.recoveredPer), - getOneDayChange(worldStats), - getOneWeekChange(worldStats), - ...(emojis ? ['🌎'] : []) - ] - }); + const worldRow = [ + 'World', + getConfirmed(worldStats.confirmed), + getRecovered(worldStats.recovered), + getDeaths(worldStats.deaths), + getActive(worldStats.active), + getMortalityPer(worldStats.mortalityPer), + getRecoveredPer(worldStats.recoveredPer), + getOneDayChange(worldStats), + getOneWeekChange(worldStats), + ...(emojis ? ['🌎'] : []) + ]; + + table.push({ '': worldRow }); let rank = 1; countryData.some(cd => { const countryEmoji = getEmoji(cd.countryCode); @@ -113,20 +113,7 @@ exports.getCompleteTable = async ({ table.push({ [rank++]: values }); return rank === top + 1; }); - table.push({ - '': [ - 'World', - getConfirmed(worldStats.confirmed), - getRecovered(worldStats.recovered), - getDeaths(worldStats.deaths), - getActive(worldStats.active), - getMortalityPer(worldStats.mortalityPer), - getRecoveredPer(worldStats.recoveredPer), - getOneDayChange(worldStats), - getOneWeekChange(worldStats), - ...(emojis ? ['🌎'] : []) - ] - }); + table.push({ '': worldRow }); const { lastUpdated } = countryData[0]; const ret = table.toString() + footer(lastUpdated); diff --git a/lib/helpers.js b/lib/helpers.js index 50cd703..4517907 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -15,7 +15,6 @@ e.getState = (state) => { if (state) { return chalk.red(state); } - return chalk.red('ALL'); }; @@ -61,7 +60,6 @@ e.getEmoji = (countryCode) => { if (countryCode && emojiFlags.countryCode(countryCode)) { return emojiFlags.countryCode(countryCode).emoji; } - return ''; }; @@ -174,12 +172,12 @@ e.lookupCountry = country => { e.footer = (lastUpdated) => ` -Stay safe. Stay inside. +⚠️ ${chalk.cyanBright('Stay safe. Stay inside.')} -Code: https://github.com/sagarkarira/coronavirus-tracker-cli -Twitter: https://twitter.com/ekrysis +💻 ${chalk.greenBright('Code')}: https://github.com/sagarkarira/coronavirus-tracker-cli +➡️ ${chalk.greenBright('Twitter')}: https://twitter.com/ekrysis -Last Updated on: ${moment(lastUpdated).utc().format('DD-MMM-YYYY HH:MM')} UTC +⏳ ${chalk.magentaBright('Last Updated on:')} ${moment(lastUpdated).utc().format('DD-MMM-YYYY HH:MM')} UTC `; @@ -224,6 +222,23 @@ e.getTableHeaders = (emojis, secondColumnName) => { return head; }; +e.getTableHeadersV2 = (emojis, secondColumnName) => { + const head = [ + 'Rank', + secondColumnName, + `Total Cases ${emojis ? ' ✅' : ''}`, + 'New Cases ▲', + `Total Deaths${emojis ? ' 😞' : ''}`, + `New Deaths ▲${emojis ? ' 😞' : ''}`, + `Recovered${emojis ? ' 😀' : ''}`, + `Active${emojis ? ' 😷' : ''}`, + 'Critical', + 'Cases / 1M pop', + ...(emojis ? ['🏳'] : []), + ]; + return head; +}; + e.extraStats = (dataArr) => { return dataArr.map(obj => { return { @@ -261,3 +276,22 @@ e.htmlTemplate = (body) => { return stripAnsi(template); }; + +exports.cFormatter = (content, chalkFn, alignment, humanize, extra = '') => { + if (!content) { + return ''; + } + if (humanize) { + content = h(content); + } + if (chalkFn) { + content = chalkFn(content + extra); + } + if (alignment) { + return { + content: content, + hAlign: alignment, + }; + } + return content; +}; \ No newline at end of file diff --git a/lib/worldoMeters.js b/lib/worldoMeters.js new file mode 100644 index 0000000..05e5ae3 --- /dev/null +++ b/lib/worldoMeters.js @@ -0,0 +1,59 @@ +const Table = require('cli-table3'); +const helpers = require('./helpers'); +const api = require('./api'); +const chalk = require('chalk'); +const { getEmoji, cFormatter } = helpers; + +exports.getWorldoMetersTable = async ({ + countryCode = null, + isCurl = true, + emojis = false, + minimal = false, + top = 1000 +}) => { + const secondColumnName = countryCode ? 'Country': 'World'; + const table = new Table({ + head: helpers.getTableHeadersV2(emojis, secondColumnName), + chars: helpers.getTableBorders(minimal), + style: helpers.getTableStyles(minimal), + }); + const { data, worldStats } = await api.getWorldoMetersData(countryCode); + + let rank = 1; + data.some(cd => { + const countryEmoji = getEmoji(cd.countryCode) || '🏳️'; + const values = [ + cFormatter(cd.country, chalk.cyanBright), + cFormatter(cd.cases, chalk.green, 'right', true), + cFormatter(cd.todayCases, chalk.cyanBright, 'right', true, ' ▲'), + cFormatter(cd.deaths, chalk.whiteBright, 'right', true), + cFormatter(cd.todayDeaths, chalk.redBright, 'right', true, ' ▲'), + cFormatter(cd.recovered, chalk.greenBright, 'right', true), + cFormatter(cd.active, chalk.blueBright , 'right', true), + cFormatter(cd.critical, chalk.magenta, 'right', true), + cFormatter(cd.casesPerOneMillion, chalk.yellow, 'right', true), + ...(emojis ? [countryEmoji] : []) + ]; + table.push({ [rank++]: values }); + return rank === top + 1; + }); + table.push({ + '': [ + 'World', + cFormatter(worldStats.cases, chalk.green, 'right', true), + cFormatter(worldStats.todayCases, chalk.cyanBright, 'right', true, ' ▲'), + cFormatter(worldStats.deaths, chalk.whiteBright, 'right', true), + cFormatter(worldStats.todayDeaths, chalk.redBright, 'right', true, ' ▲'), + cFormatter(worldStats.recovered, chalk.greenBright, 'right', true), + cFormatter(worldStats.active, chalk.blueBright , 'right', true), + cFormatter(worldStats.critical, chalk.magenta, 'right', true), + cFormatter(worldStats.casesPerOneMillion, chalk.yellow, 'right', true), + ...(emojis ? ['🌎'] : []) + ] + }); + const lastUpdated = new Date(); + const ret = table.toString() + helpers.footer(lastUpdated); + return isCurl ? ret : helpers.htmlTemplate(ret); +}; + + From 93152c714340bdbfad6a60e80ba1c119d92e4d77 Mon Sep 17 00:00:00 2001 From: sagark Date: Sat, 21 Mar 2020 22:47:54 +0530 Subject: [PATCH 51/86] changed readme, changelog and footer --- changelog.md | 5 +++++ lib/helpers.js | 5 +++-- readme.md | 14 +++++++++++++- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/changelog.md b/changelog.md index 04e3ae6..c0d352a 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,10 @@ # Changelog +## Version 0.7.0 + +* Added new source to fetch realtime data. ``corona --source=2`` +* Code refactored and some bug fixes. + ## Version 0.6.0 * Added filter to show top N countries. ``corona --top=20`` diff --git a/lib/helpers.js b/lib/helpers.js index 4517907..c5a5295 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -174,11 +174,12 @@ e.footer = (lastUpdated) => ` ⚠️ ${chalk.cyanBright('Stay safe. Stay inside.')} -💻 ${chalk.greenBright('Code')}: https://github.com/sagarkarira/coronavirus-tracker-cli -➡️ ${chalk.greenBright('Twitter')}: https://twitter.com/ekrysis +💻 ${chalk.greenBright('Code')}: ${chalk.blueBright('https://github.com/sagarkarira/coronavirus-tracker-cli')} +➡️ ${chalk.greenBright('Twitter')}: ${chalk.blueBright('https://twitter.com/ekrysis')} ⏳ ${chalk.magentaBright('Last Updated on:')} ${moment(lastUpdated).utc().format('DD-MMM-YYYY HH:MM')} UTC +${chalk.red.bold.underline('NEW UPDATE (REALTIME STATS)')}: ${chalk.blueBright('curl https://corona-stats.online?source=2')} `; e.getTableBorders = minimal => { diff --git a/readme.md b/readme.md index 1aef20c..d6ca4a3 100644 --- a/readme.md +++ b/readme.md @@ -37,6 +37,11 @@ curl https://corona-stats.online?minimal=true ```sh curl https://corona-stats.online?top=20 ``` +### Get realtime stats (NEW) + +```sh +curl https://corona-stats.online?source=2 +``` ### Latest News (Work in Progress) @@ -74,6 +79,12 @@ corona corona italy ``` +### Get realtime stats (NEW) + +```sh +corona --source=2 +``` + ### Top N countries ```sh @@ -138,6 +149,7 @@ corona --color=false * [CSSEGISandData](https://github.com/CSSEGISandData/COVID-19) for the data. * [ExpDev07](https://github.com/ExpDev07/coronavirus-tracker-api) for the API. * [Zeit Now](https://github.com/zeit/now) for hosting. +* [https://github.com/NovelCOVID/API/](https://github.com/NovelCOVID/API/) for realtime stats API. ## Related Projects @@ -145,7 +157,7 @@ corona --color=false * * * -* +* ## License From 5bcd9eca4090f3e952edae5d427bf3289d89a10d Mon Sep 17 00:00:00 2001 From: sagark Date: Sun, 22 Mar 2020 03:45:51 +0530 Subject: [PATCH 52/86] added json format param for source=2 api --- app.js | 4 ++-- lib/api.js | 24 +++++++++++++++++++++--- lib/worldoMeters.js | 7 ++++++- package-lock.json | 2 +- package.json | 2 +- 5 files changed, 31 insertions(+), 8 deletions(-) diff --git a/app.js b/app.js index 378c940..2eaf80b 100644 --- a/app.js +++ b/app.js @@ -36,7 +36,7 @@ app.get('/', (req, res) => { const source = req.query.source ? Number(req.query.source) : 1; if (source === 2) { - return getWorldoMetersTable({ isCurl, emojis, minimal, top }) + return getWorldoMetersTable({ isCurl, emojis, minimal, top, format}) .then(result => { return res.send(result); }).catch(error => errorHandler(error, res)); @@ -107,7 +107,7 @@ app.get('/:country', (req, res) => { const { iso2 } = lookupObj; if (source === 2) { - return getWorldoMetersTable({ countryCode: iso2, isCurl, emojis, minimal }) + return getWorldoMetersTable({ countryCode: iso2, isCurl, emojis, minimal, format }) .then(result => { return res.send(result); }).catch(error => errorHandler(error, res)); diff --git a/lib/api.js b/lib/api.js index 33f7cfb..d064716 100644 --- a/lib/api.js +++ b/lib/api.js @@ -1,9 +1,22 @@ +/** + * Data Source File + * 1. Fetch data from source. + * 2. Process data. + * 3. Add to cache and return + */ + const NodeCache = require('node-cache'); const axios = require('axios'); const { countryNameMap } = require('./constants'); const myCache = new NodeCache({ stdTTL: 100, checkperiod: 600 }); +/** + * John Hopkins Univ. data source API. + * The data needs to be flattened. + * @todo Move the data processing from `view` files to this `data` file. + * @returns {Object} JHUDataObject + */ exports.getCoronaData = async () => { const CORONA_ALL_KEY = 'coronaAll'; const cache = myCache.get(CORONA_ALL_KEY); @@ -20,7 +33,12 @@ exports.getCoronaData = async () => { return result.data; }; -/** Fetch Worldometers Data */ +/** + * Fetch Worldometers Data. + * As JHU data updates once a day, this was added. + * This API scrapes data from `https://www.worldometers.info/coronavirus/` + * and updates very frequenly. + * */ exports.getWorldoMetersData = async (countryCode = 'ALL') => { const key = `worldMetersData_${countryCode}`; const cache = myCache.get(key); @@ -44,7 +62,8 @@ exports.getWorldoMetersData = async (countryCode = 'ALL') => { acc.critical += countryObj.critical; return acc; }, { - countryName: 'World', + country: 'World', + countryCode: 'World', cases: 0, todayCases: 0, deaths: 0, @@ -57,7 +76,6 @@ exports.getWorldoMetersData = async (countryCode = 'ALL') => { result.data.forEach(obj => obj.countryCode = countryNameMap[obj.country]); worldStats.casesPerOneMillion = (worldStats.cases / 7794).toFixed(2); let finalData = result.data; - console.log(countryCode); if (countryCode && countryCode !== 'ALL') { finalData = finalData.filter(obj => obj.countryCode === countryCode); } diff --git a/lib/worldoMeters.js b/lib/worldoMeters.js index 05e5ae3..2a798b1 100644 --- a/lib/worldoMeters.js +++ b/lib/worldoMeters.js @@ -9,7 +9,8 @@ exports.getWorldoMetersTable = async ({ isCurl = true, emojis = false, minimal = false, - top = 1000 + top = 1000, + format, }) => { const secondColumnName = countryCode ? 'Country': 'World'; const table = new Table({ @@ -18,6 +19,10 @@ exports.getWorldoMetersTable = async ({ style: helpers.getTableStyles(minimal), }); const { data, worldStats } = await api.getWorldoMetersData(countryCode); + console.log(format); + if (format === 'json') { + return { data, worldStats }; + } let rank = 1; data.some(cd => { diff --git a/package-lock.json b/package-lock.json index 75207f6..a971e46 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "coronavirus-tracker-cli", - "version": "0.6.0", + "version": "0.7.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index d0d0260..1a40957 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "coronavirus-tracker-cli", - "version": "0.6.0", + "version": "0.7.0", "description": "track conronavirus cases from cli", "repository": { "type": "git", From 01772b6fe2f6f577d54880b45db0a31f23f3e325 Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Sun, 22 Mar 2020 10:37:52 +0200 Subject: [PATCH 53/86] package.json: specify the files to include --- package.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/package.json b/package.json index 4f6c054..bcff4c5 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,10 @@ "start": "node app.js", "test": "npm run lint" }, + "files": [ + "{bin,lib}/*.js", + "app.js" + ], "engines": { "node": ">=12.x" }, From ab4cb79cf6194093cb726b750d489f31311d98e0 Mon Sep 17 00:00:00 2001 From: sagark Date: Sun, 22 Mar 2020 23:20:23 +0530 Subject: [PATCH 54/86] added graphs, changed readme, added help api --- app.js | 44 +++++++++++++++++++++--- bin/index.js | 19 +++++++---- lib/byCountry.js | 1 + lib/constants.js | 86 ++++++++++++++++++++++++++++++++++++++++++++++- lib/corona.js | 34 +++++++++++++++++++ lib/helpers.js | 14 ++++---- package-lock.json | 5 +++ package.json | 1 + readme.md | 14 +++++--- 9 files changed, 194 insertions(+), 24 deletions(-) diff --git a/app.js b/app.js index 2eaf80b..9a1a712 100644 --- a/app.js +++ b/app.js @@ -1,11 +1,17 @@ const express = require('express'); const morgan = require('morgan'); - -const { getCountryTable, getJSONData, getJSONDataForCountry } = require('./lib/byCountry'); -const { getCompleteTable } = require('./lib/corona'); -const { lookupCountry } = require('./lib/helpers'); +const chalk = require('chalk'); + +const { + getCountryTable, + getJSONData, + getJSONDataForCountry, +} = require('./lib/byCountry'); +const { getCompleteTable, getGraph } = require('./lib/corona'); +const { lookupCountry, htmlTemplate } = require('./lib/helpers'); const { getLiveUpdates } = require('./lib/reddit.js'); const { getWorldoMetersTable } = require('./lib/worldoMeters.js'); +const { helpContent } = require('./lib/constants'); const app = express(); const port = process.env.PORT || 3001; @@ -69,6 +75,36 @@ app.get('/updates', (req, res) => { }).catch(error => errorHandler(error, res)); }); +app.get('/:country/graph', (req, res) => { + const { country } = req.params; + const isCurl = IS_CURL_RE.test(req.headers['user-agent']); + console.log(country); + const lookupObj = lookupCountry(country); + + if (!lookupObj) { + return res.send(` + Country not found. + Try the full country name or country code. + Example: + - /UK: for United Kingdom + - /US: for United States of America. + - /Italy: for Italy. + `); + } + return getGraph({countryCode: lookupObj.iso2, isCurl }) + .then(result => res.send(result)) + .catch(error => errorHandler(error, res)); +}); + +app.get('/help', (req, res) => { + const isCurl = IS_CURL_RE.test(req.headers['user-agent']); + if (!isCurl) { + return res.send(htmlTemplate(helpContent)); + } + return res.send(chalk.green(helpContent)); +}); + + app.get('/:country', (req, res) => { const { country } = req.params; const isCurl = IS_CURL_RE.test(req.headers['user-agent']); diff --git a/bin/index.js b/bin/index.js index 4aaab8b..656aadc 100755 --- a/bin/index.js +++ b/bin/index.js @@ -3,7 +3,7 @@ require('yargonaut').style('green'); const yargs = require('yargs'); const chalk = require('chalk'); -const { getCompleteTable } = require('../lib/corona'); +const { getCompleteTable, getGraph } = require('../lib/corona'); const { getCountryTable } = require('../lib/byCountry'); const { getWorldoMetersTable } = require('../lib/worldoMeters'); const { lookupCountry } = require('../lib/helpers'); @@ -62,6 +62,12 @@ const { argv } = yargs alias: 'top', describe: 'Filter table by rank', type: 'int' + }, + g: { + alias: 'graph', + describe: 'Get graph', + type: 'boolean', + default: false, } }) .strict() @@ -69,15 +75,14 @@ const { argv } = yargs argv.countryCode = argv.country; if (argv.source === 2) { - getWorldoMetersTable(argv) - .then(console.log) - .catch(console.error); + getWorldoMetersTable(argv).then(console.log).catch(console.error); +} +else if (argv.graph === true) { + getGraph(argv.countryCode).then(console.log).catch(console.error); } else { ( argv.country === 'ALL' ? getCompleteTable(argv) : getCountryTable(argv) - ) - .then(console.log) - .catch(console.error); + ).then(console.log).catch(console.error); } diff --git a/lib/byCountry.js b/lib/byCountry.js index 7f50d05..19cd831 100644 --- a/lib/byCountry.js +++ b/lib/byCountry.js @@ -2,6 +2,7 @@ const Table = require('cli-table3'); const _ = require('lodash'); const helpers = require('./helpers'); const api = require('./api'); + const { extraStats, getConfirmed, diff --git a/lib/constants.js b/lib/constants.js index 6d9d756..28fd596 100644 --- a/lib/constants.js +++ b/lib/constants.js @@ -180,4 +180,88 @@ exports.countryNameMap = { 'Dominican Republic': 'DO', 'Burkina Faso': 'BF', Uzbekistan: 'UZ', -}; \ No newline at end of file +}; + +exports.helpContent = ` + +/$$ /$$ /$$$$$$$$ /$$ /$$$$$$$ +| $$ | $$| $$_____/| $$ | $$____$$ +| $$ | $$| $$ | $$ | $$ $$ +| $$$$$$$$| $$$$$ | $$ | $$$$$$$/ +| $$__ $$| $$__/ | $$ | $$____/ +| $$ | $$| $$ | $$ | $$ +| $$ | $$| $$$$$$$$| $$$$$$$$| $$ +|__/ |__/|________/|________/|__/ + +--------------------------------------------------------------------------------- + +# Source 1 stats - updated once a day from John Hopkins University +https://corona-stats.online + +--------------------------------------------------------------------------------- + +# Source 2 stats - updated every 15 minutes from worldometers.info +https://corona-stats.online?source=2 + +--------------------------------------------------------------------------------- + +# Country wise stats + +## Format: +https://corona-stats.online/ +https://corona-stats.online/ + +## Example: From source 1 +https://corona-stats.online/Italy +https://corona-stats.online/UK + +## Example: From source 2 +https://corona-stats.online/italy?source=2 +https://corona-stats.online/UK?source=2 + +--------------------------------------------------------------------------------- + +# Minimal Mode - remove the borders and padding from table + +## Example: +https://corona-stats.online?minimal=true +https://corona-stats.online/Italy?minimal=true (with country filter) +https://corona-stats.online?minimal=true&source=2 (with source) +https://corona-stats.online/uk?source=2&minimal=true (with source and country) + +--------------------------------------------------------------------------------- + +# Get data as JSON - Add ?json=true + +## Example: +https://corona-stats.online?json=true +https://corona-stats.online/Italy?json=true (with country filter) +https://corona-stats.online/?source=2&json=true (with source) +https://corona-stats.online/uk?source=2&json=true (with source and country) + +--------------------------------------------------------------------------------- + +# Get top N countries - Add ?top=N + +## Example: +https://corona-stats.online?top=25 +https://corona-stats.online?source=2&top=10 (with source) +https://corona-stats.online/uk?minimal=true&top=20 (with minimal) + + +--------------------------------------------------------------------------------- + +# Confirmed Cases Graph (WIP) + +## Format: +https://corona-stats.online//graph +https://corona-stats.online//graph + +## Example: +https://corona-stats.online/italy/graph +https://corona-stats.online/china/graph + + +------------- Any issues or feedback - Hit me up on twitter @ekrysis -------------- + +`; \ No newline at end of file diff --git a/lib/corona.js b/lib/corona.js index 1581125..bbe739c 100644 --- a/lib/corona.js +++ b/lib/corona.js @@ -1,7 +1,9 @@ const Table = require('cli-table3'); const _ = require('lodash'); const helpers = require('./helpers'); +const asciichart = require('asciichart'); const api = require('./api'); +const chalk = require('chalk'); const { extraStats, @@ -66,6 +68,38 @@ function getDataByCountry(confirmed, deaths, recovered) { return _.sortBy(countryArr, (o) => -o.confirmed); } +exports.getGraph = async ({ countryCode = 'ALL', isCurl = true}) => { + const data = await api.getCoronaData(); + const { confirmed, deaths, recovered } = data; + const countryData = getDataByCountry(confirmed, deaths, recovered); + const worldStats = getTotalStats(countryData); + worldStats.countryCode = 'ALL'; + worldStats.countryName = 'World'; + countryData.push(worldStats); + + const singleCountryData = countryData.filter(obj => obj.countryCode === countryCode); + // const graphLength = ' '; + const graphLength = ' Confirmed Cases Graph '; + const padding = ' '; + const graphConfig = { + height: 30, + offset: 2, + padding, + }; + const { confirmedByDay, } = singleCountryData[0]; + + const confirmedGraph = asciichart.plot(confirmedByDay, graphConfig); + const body = chalk.greenBright(confirmedGraph) + + chalk.cyanBright('\n\n' +padding + '22 Feb' + graphLength + '22 Mar') + '\n'; + + if (!isCurl) { + return htmlTemplate(body); + } + return body; + + +}; + exports.getCompleteTable = async ({ isCurl = true, emojis = false, diff --git a/lib/helpers.js b/lib/helpers.js index c5a5295..98e2b87 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -172,14 +172,14 @@ e.lookupCountry = country => { e.footer = (lastUpdated) => ` -⚠️ ${chalk.cyanBright('Stay safe. Stay inside.')} +${chalk.cyanBright('Stay safe. Stay inside.')} +${chalk.greenBright('Code')}: ${chalk.blueBright('https://github.com/sagarkarira/coronavirus-tracker-cli')} +${chalk.greenBright('Twitter')}: ${chalk.blueBright('https://twitter.com/ekrysis')} -💻 ${chalk.greenBright('Code')}: ${chalk.blueBright('https://github.com/sagarkarira/coronavirus-tracker-cli')} -➡️ ${chalk.greenBright('Twitter')}: ${chalk.blueBright('https://twitter.com/ekrysis')} +${chalk.magentaBright('Last Updated on:')} ${moment(lastUpdated).utc().format('DD-MMM-YYYY HH:MM')} UTC -⏳ ${chalk.magentaBright('Last Updated on:')} ${moment(lastUpdated).utc().format('DD-MMM-YYYY HH:MM')} UTC - -${chalk.red.bold.underline('NEW UPDATE (REALTIME STATS)')}: ${chalk.blueBright('curl https://corona-stats.online?source=2')} +${chalk.red.bold.underline('NEW REALTIME UPDATES')}: ${chalk.blueBright('https://corona-stats.online?source=2')} +${chalk.red.bold.underline('HELP')}: ${chalk.blueBright('https://corona-stats.online/help')} `; e.getTableBorders = minimal => { @@ -214,7 +214,7 @@ e.getTableHeaders = (emojis, secondColumnName) => { `Recovered${emojis ? ' 😀' : ''}`, `Deaths${emojis ? ' 😞' : ''}`, `Active${emojis ? ' 😷' : ''}`, - 'Mortality %', + 'CFR %', 'Recovered %', '1 Day ▲', '1 Week ▲', diff --git a/package-lock.json b/package-lock.json index a971e46..f52822c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -184,6 +184,11 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, + "asciichart": { + "version": "1.5.11", + "resolved": "https://registry.npmjs.org/asciichart/-/asciichart-1.5.11.tgz", + "integrity": "sha512-0CoOAZFU+H94x9EvMpw+sMOpbzB93I0L6StXRxlGRxEQC+mHx+V0ArjHIRr+q2W7B/R7elLrkc9RvY5XBmq9Fg==" + }, "astral-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", diff --git a/package.json b/package.json index 4f6c054..be3c4fb 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "author": "sagarkarira1992@gmail.com", "license": "ISC", "dependencies": { + "asciichart": "^1.5.11", "axios": "^0.19.2", "chalk": "^3.0.0", "cli-table3": "^0.5.1", diff --git a/readme.md b/readme.md index d0ea7b3..5d4854a 100644 --- a/readme.md +++ b/readme.md @@ -146,12 +146,11 @@ corona --color=false * [Japan](https://covid19japan.com/) * [Philippines](https://ncovtracker.doh.gov.ph/) -## Thanks to +## Data Sources -* [CSSEGISandData](https://github.com/CSSEGISandData/COVID-19) for the data. -* [ExpDev07](https://github.com/ExpDev07/coronavirus-tracker-api) for the API. -* [Zeit Now](https://github.com/zeit/now) for hosting. -* [https://github.com/NovelCOVID/API/](https://github.com/NovelCOVID/API/) for realtime stats API. +* [John Hopkins Data](https://github.com/CSSEGISandData/COVID-19) updated once a day at 11:59 UTC +* [John Hopkins Data API](https://github.com/ExpDev07/coronavirus-tracker-api) +* [WorldoMeters Data API](https://github.com/NovelCOVID/API/) updated very frequently. ## Related Projects @@ -161,6 +160,11 @@ corona --color=false * * +## Hosting + +* Big shoutout to [Zeit Now](https://github.com/zeit/now). + ## License [WTFPL](http://www.wtfpl.net/) + From 36aff99cba07817ab5ed3167fcc0035952d3048e Mon Sep 17 00:00:00 2001 From: sagark Date: Mon, 23 Mar 2020 00:39:56 +0530 Subject: [PATCH 55/86] added changelog, changed package to 0.8.0 --- app.js | 8 ++++++-- changelog.md | 4 ++++ package.json | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/app.js b/app.js index 9a1a712..cc08a00 100644 --- a/app.js +++ b/app.js @@ -75,10 +75,14 @@ app.get('/updates', (req, res) => { }).catch(error => errorHandler(error, res)); }); -app.get('/:country/graph', (req, res) => { +app.get(['/:country/graph', '/graph'], (req, res) => { const { country } = req.params; const isCurl = IS_CURL_RE.test(req.headers['user-agent']); - console.log(country); + if (!country) { + return getGraph({ isCurl }) + .then(result => res.send(result)) + .catch(error => errorHandler(error, res)); + } const lookupObj = lookupCountry(country); if (!lookupObj) { diff --git a/changelog.md b/changelog.md index c0d352a..730205c 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,9 @@ # Changelog +## Version 0.8.0 + +* Added confirmed cases graphs ``corona -g`` or ``corona italy -g` + ## Version 0.7.0 * Added new source to fetch realtime data. ``corona --source=2`` diff --git a/package.json b/package.json index be3c4fb..fc5fcd0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "coronavirus-tracker-cli", - "version": "0.7.0", + "version": "0.8.0", "description": "track conronavirus cases from cli", "repository": { "type": "git", From 63ac313093956c33356241dc1d5e2477b10856b1 Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Fri, 20 Mar 2020 12:46:03 +0200 Subject: [PATCH 56/86] Add helmet --- app.js | 17 ++++++ package-lock.json | 135 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + 3 files changed, 153 insertions(+) diff --git a/app.js b/app.js index cc08a00..60b25b2 100644 --- a/app.js +++ b/app.js @@ -1,4 +1,5 @@ const express = require('express'); +const helmet = require('helmet'); const morgan = require('morgan'); const chalk = require('chalk'); @@ -27,6 +28,22 @@ function errorHandler(error, res) { app.set('json escape', true); +app.use(helmet({ + dnsPrefetchControl: false, + frameguard: { + action: 'deny' + } +})); + +app.use(helmet.hsts({ + force: true, + includeSubDomains: true, + maxAge: 63072000, // 2 years + preload: true +})); + +app.use(helmet.referrerPolicy({ policy: 'strict-origin-when-cross-origin' })); + app.use(morgan(':remote-addr :remote-user :method :url :status :res[content-length] - :response-time ms')); app.use((req, res, next) => { res.setHeader('Cache-Control', 'no-cache'); diff --git a/package-lock.json b/package-lock.json index f52822c..e9867ca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -250,6 +250,11 @@ } } }, + "bowser": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.9.0.tgz", + "integrity": "sha512-2ld76tuLBNFekRgmJfT2+3j5MIrP6bFict8WAIT3beq+srz1gcKNAdNKMqHqauQt63NmAa88HfP1/Ypa9Er3HA==" + }, "boxen": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", @@ -358,6 +363,11 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, + "camelize": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", + "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" + }, "capture-stack-trace": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", @@ -535,6 +545,11 @@ "safe-buffer": "5.1.2" } }, + "content-security-policy-builder": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/content-security-policy-builder/-/content-security-policy-builder-2.1.0.tgz", + "integrity": "sha512-/MtLWhJVvJNkA9dVLAp6fg9LxD2gfI6R2Fi1hPmfjYXSahJJzcfvoeDOxSyp4NvxMuwWv3WMssE9o31DoULHrQ==" + }, "content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", @@ -591,6 +606,11 @@ "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", "dev": true }, + "dasherize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dasherize/-/dasherize-2.0.0.tgz", + "integrity": "sha1-bYCcnNDPe7iVLYD8hPoT1H3bEwg=" + }, "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", @@ -634,6 +654,11 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, + "dns-prefetch-control": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dns-prefetch-control/-/dns-prefetch-control-0.2.0.tgz", + "integrity": "sha512-hvSnros73+qyZXhHFjx2CMLwoj3Fe7eR9EJsFsqmcI1bB2OBWL/+0YzaEaKssCHnj/6crawNnUyw74Gm2EKe+Q==" + }, "doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -643,6 +668,11 @@ "esutils": "^2.0.2" } }, + "dont-sniff-mimetype": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/dont-sniff-mimetype/-/dont-sniff-mimetype-1.1.0.tgz", + "integrity": "sha512-ZjI4zqTaxveH2/tTlzS1wFp+7ncxNZaIEWYg3lzZRHkKf5zPT/MnEG6WL0BhHMJUabkh8GeU5NL5j+rEUCb7Ug==" + }, "dot-prop": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", @@ -924,6 +954,11 @@ } } }, + "expect-ct": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/expect-ct/-/expect-ct-0.2.0.tgz", + "integrity": "sha512-6SK3MG/Bbhm8MsgyJAylg+ucIOU71/FzyFalcfu5nY19dH8y/z0tBJU0wrNBXD4B27EoQtqPF/9wqH0iYAd04g==" + }, "express": { "version": "4.17.1", "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", @@ -1000,6 +1035,11 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "feature-policy": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/feature-policy/-/feature-policy-0.3.0.tgz", + "integrity": "sha512-ZtijOTFN7TzCujt1fnNhfWPFPSHeZkesff9AXZj+UEjYBynWNUIYpC87Ve4wHzyexQsImicLu7WsC2LHq7/xrQ==" + }, "figlet": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.3.0.tgz", @@ -1095,6 +1135,11 @@ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" }, + "frameguard": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/frameguard/-/frameguard-3.1.0.tgz", + "integrity": "sha512-TxgSKM+7LTA6sidjOiSZK9wxY0ffMPY3Wta//MqwmX0nZuEHc8QrkV8Fh3ZhMJeiH+Uyh/tcaarImRy8u77O7g==" + }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -1216,6 +1261,76 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, + "helmet": { + "version": "3.21.3", + "resolved": "https://registry.npmjs.org/helmet/-/helmet-3.21.3.tgz", + "integrity": "sha512-8OjGNdpG3WQhPO71fSy2fT4X3FSNutU1LDeAf+YS+Vil6r+fE7w8per5mNed6egGYbZl3QhKXgFzMYSwys+YQw==", + "requires": { + "depd": "2.0.0", + "dns-prefetch-control": "0.2.0", + "dont-sniff-mimetype": "1.1.0", + "expect-ct": "0.2.0", + "feature-policy": "0.3.0", + "frameguard": "3.1.0", + "helmet-crossdomain": "0.4.0", + "helmet-csp": "2.9.5", + "hide-powered-by": "1.1.0", + "hpkp": "2.0.0", + "hsts": "2.2.0", + "ienoopen": "1.1.0", + "nocache": "2.1.0", + "referrer-policy": "1.2.0", + "x-xss-protection": "1.3.0" + }, + "dependencies": { + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + } + } + }, + "helmet-crossdomain": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/helmet-crossdomain/-/helmet-crossdomain-0.4.0.tgz", + "integrity": "sha512-AB4DTykRw3HCOxovD1nPR16hllrVImeFp5VBV9/twj66lJ2nU75DP8FPL0/Jp4jj79JhTfG+pFI2MD02kWJ+fA==" + }, + "helmet-csp": { + "version": "2.9.5", + "resolved": "https://registry.npmjs.org/helmet-csp/-/helmet-csp-2.9.5.tgz", + "integrity": "sha512-w9nps5adqFQwgktVPDbXkARmZot/nr8aegzQas9AXdBSwBFBBefPpDSTV0wtgHlAUdDwY6MZo7qAl9yts3ppJg==", + "requires": { + "bowser": "2.9.0", + "camelize": "1.0.0", + "content-security-policy-builder": "2.1.0", + "dasherize": "2.0.0" + } + }, + "hide-powered-by": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hide-powered-by/-/hide-powered-by-1.1.0.tgz", + "integrity": "sha512-Io1zA2yOA1YJslkr+AJlWSf2yWFkKjvkcL9Ni1XSUqnGLr/qRQe2UI3Cn/J9MsJht7yEVCe0SscY1HgVMujbgg==" + }, + "hpkp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hpkp/-/hpkp-2.0.0.tgz", + "integrity": "sha1-EOFCJk52IVpdMMROxD3mTe5tFnI=" + }, + "hsts": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/hsts/-/hsts-2.2.0.tgz", + "integrity": "sha512-ToaTnQ2TbJkochoVcdXYm4HOCliNozlviNsg+X2XQLQvZNI/kCHR9rZxVYpJB3UPcHz80PgxRyWQ7PdU1r+VBQ==", + "requires": { + "depd": "2.0.0" + }, + "dependencies": { + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + } + } + }, "http-errors": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", @@ -1241,6 +1356,11 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "ienoopen": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ienoopen/-/ienoopen-1.1.0.tgz", + "integrity": "sha512-MFs36e/ca6ohEKtinTJ5VvAJ6oDRAYFdYXweUnGY9L9vcoqFOU4n2ZhmJ0C4z/cwGZ3YIQRSB3XZ1+ghZkY5NQ==" + }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", @@ -1744,6 +1864,11 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, + "nocache": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/nocache/-/nocache-2.1.0.tgz", + "integrity": "sha512-0L9FvHG3nfnnmaEQPjT9xhfN4ISk0A8/2j4M37Np4mcDesJjHgEUfgPhdCyZuFI954tjokaIj/A3NdpFNdEh4Q==" + }, "node-cache": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/node-cache/-/node-cache-5.1.0.tgz", @@ -2096,6 +2221,11 @@ "picomatch": "^2.0.7" } }, + "referrer-policy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/referrer-policy/-/referrer-policy-1.2.0.tgz", + "integrity": "sha512-LgQJIuS6nAy1Jd88DCQRemyE3mS+ispwlqMk3b0yjZ257fI1v9c+/p6SD5gP5FGyXUIgrNOAfmyioHwZtYv2VA==" + }, "regexpp": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", @@ -2762,6 +2892,11 @@ "signal-exit": "^3.0.2" } }, + "x-xss-protection": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/x-xss-protection/-/x-xss-protection-1.3.0.tgz", + "integrity": "sha512-kpyBI9TlVipZO4diReZMAHWtS0MMa/7Kgx8hwG/EuZLiA6sg4Ah/4TRdASHhRRN3boobzcYgFRUFSgHRge6Qhg==" + }, "xdg-basedir": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", diff --git a/package.json b/package.json index b3e8229..4270fbe 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ "country-code-lookup": "0.0.16", "emoji-flags": "^1.2.0", "express": "^4.17.1", + "helmet": "^3.21.3", "humanize-number": "0.0.2", "lodash": "^4.17.15", "moment": "^2.24.0", From d5077b331946d9a5f49f2eb354f0dc798f2ba463 Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Sun, 22 Mar 2020 21:38:53 +0200 Subject: [PATCH 57/86] Minor Markdown tweaks --- changelog.md | 16 ++++++++-------- readme.md | 3 +-- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/changelog.md b/changelog.md index 730205c..ade177f 100644 --- a/changelog.md +++ b/changelog.md @@ -2,29 +2,29 @@ ## Version 0.8.0 -* Added confirmed cases graphs ``corona -g`` or ``corona italy -g` +* Added confirmed cases graphs `corona -g` or `corona italy -g` ## Version 0.7.0 -* Added new source to fetch realtime data. ``corona --source=2`` +* Added new source to fetch realtime data. `corona --source=2` * Code refactored and some bug fixes. ## Version 0.6.0 -* Added filter to show top N countries. ``corona --top=20`` +* Added filter to show top N countries. `corona --top=20` ## Version 0.5.0 -* Added minimal / comapct table command. ``corona --minimal`` +* Added minimal / comapct table command. `corona --minimal` * Added world total stats at the bottom of the table too. * Refactor: moved table formatting functions to helpers. * Added total stats object when using `?format=json` ## Version 0.4.0 -* Added country filter. Ex: ``corona Italy`` -* Added command to show emojis. Ex: ``corona --emojis`` -* Added command to disable colors using. Ex: ``corona --color=false`` +* Added country filter. Ex: `corona Italy` +* Added command to show emojis. Ex: `corona --emojis` +* Added command to disable colors using. Ex: `corona --color=false` ## Version 0.2.0 @@ -32,4 +32,4 @@ ## Version 0.1.0 -* Lauched command `corona` \ No newline at end of file +* Lauched command `corona` diff --git a/readme.md b/readme.md index 5d4854a..ceb1df0 100644 --- a/readme.md +++ b/readme.md @@ -158,7 +158,7 @@ corona --color=false * * * -* +* ## Hosting @@ -167,4 +167,3 @@ corona --color=false ## License [WTFPL](http://www.wtfpl.net/) - From 811fbda202ee7fee1136dd08e556c144b3e3daf6 Mon Sep 17 00:00:00 2001 From: sagark Date: Mon, 23 Mar 2020 01:31:55 +0530 Subject: [PATCH 58/86] changed < > to [ ] in help api --- lib/constants.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/constants.js b/lib/constants.js index 28fd596..3bb5d8a 100644 --- a/lib/constants.js +++ b/lib/constants.js @@ -208,8 +208,8 @@ https://corona-stats.online?source=2 # Country wise stats ## Format: -https://corona-stats.online/ -https://corona-stats.online/ +https://corona-stats.online/[countryCode] +https://corona-stats.online/[countryName] ## Example: From source 1 https://corona-stats.online/Italy @@ -254,8 +254,8 @@ https://corona-stats.online/uk?minimal=true&top=20 (with minimal) # Confirmed Cases Graph (WIP) ## Format: -https://corona-stats.online//graph -https://corona-stats.online//graph +https://corona-stats.online/[countryName]/graph +https://corona-stats.online/[countryCode]/graph ## Example: https://corona-stats.online/italy/graph From 3015019c49021a4e6bf7ec594e225521e272a844 Mon Sep 17 00:00:00 2001 From: Peter Spiess-Knafl Date: Mon, 23 Mar 2020 15:14:08 +0100 Subject: [PATCH 59/86] Added regional tracker for Austria --- readme.md | 1 + 1 file changed, 1 insertion(+) diff --git a/readme.md b/readme.md index ceb1df0..323a895 100644 --- a/readme.md +++ b/readme.md @@ -145,6 +145,7 @@ corona --color=false * [France](https://veille-coronavirus.fr/) * [Japan](https://covid19japan.com/) * [Philippines](https://ncovtracker.doh.gov.ph/) +* [Austria (official)](https://info.gesundheitsministerium.at), [Austria (inofficial but more detailed)](https://covid19.spiessknafl.at) ## Data Sources From 283807e59e06296ebcf2713e10a97034eaa196e4 Mon Sep 17 00:00:00 2001 From: "ebwinters@comcast.net" Date: Mon, 23 Mar 2020 12:41:48 -0500 Subject: [PATCH 60/86] add related project to readme --- readme.md | 1 + 1 file changed, 1 insertion(+) diff --git a/readme.md b/readme.md index 323a895..cb9a441 100644 --- a/readme.md +++ b/readme.md @@ -160,6 +160,7 @@ corona --color=false * * * +* ## Hosting From 99680236f008d30188118bd80301625f3a8c2626 Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Mon, 23 Mar 2020 21:32:44 +0200 Subject: [PATCH 61/86] Update dependencies MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * country-code-lookup 0.0.16 → 0.0.17 * morgan ^1.9.1 → ^1.10.0 --- package-lock.json | 73 +++++++++++++++++++++++++++++------------------ package.json | 4 +-- 2 files changed, 48 insertions(+), 29 deletions(-) diff --git a/package-lock.json b/package-lock.json index e9867ca..79385de 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "coronavirus-tracker-cli", - "version": "0.7.0", + "version": "0.8.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -13,14 +13,20 @@ "@babel/highlight": "^7.8.3" } }, + "@babel/helper-validator-identifier": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz", + "integrity": "sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw==", + "dev": true + }, "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "dev": true, "requires": { + "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" }, "dependencies": { @@ -566,9 +572,9 @@ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, "country-code-lookup": { - "version": "0.0.16", - "resolved": "https://registry.npmjs.org/country-code-lookup/-/country-code-lookup-0.0.16.tgz", - "integrity": "sha512-o8rADJe4VRJX6haq5gBpL4CJow0Y2ACb9EpQCxKpxHkUMqkAswSBijIFgWegcbUO1hjL6Y6cQDei5peQzWHY3A==" + "version": "0.0.17", + "resolved": "https://registry.npmjs.org/country-code-lookup/-/country-code-lookup-0.0.17.tgz", + "integrity": "sha512-LI4sIeuuYhkuxbI0Bf78aBoupQxjTMH5mVgT1bul1m2XnaT7jaxlaplRcH8XA6ZNFBN4CmuzQKOpSESzuGHlig==" }, "create-error-class": { "version": "3.0.2", @@ -892,12 +898,20 @@ "dev": true }, "esquery": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.1.0.tgz", - "integrity": "sha512-MxYW9xKmROWF672KqjO75sszsA8Mxhw06YFeS5VHlB98KDHbOSurm3ArsjO60Eaf3QmGMCP1yn+0JQkNLo/97Q==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.2.0.tgz", + "integrity": "sha512-weltsSqdeWIX9G2qQZz7KlTRJdkkOCTPgLYJUz1Hacf48R4YOwGPHO3+ORfWedqJKbq5WQmsgK90n+pFLIKt/Q==", "dev": true, "requires": { - "estraverse": "^4.0.0" + "estraverse": "^5.0.0" + }, + "dependencies": { + "estraverse": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.0.0.tgz", + "integrity": "sha512-j3acdrMzqrxmJTNj5dbr1YbjacrYgAxVMeF0gK16E3j494mOe7xygM/ZLIguEQ0ETwAg2hlJCtHRGav+y0Ny5A==", + "dev": true + } } }, "esrecurse": { @@ -1190,9 +1204,9 @@ } }, "glob-parent": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", - "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "dev": true, "requires": { "is-glob": "^4.0.1" @@ -1801,9 +1815,9 @@ "dev": true }, "mkdirp": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.3.tgz", - "integrity": "sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg==", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", + "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", "dev": true, "requires": { "minimist": "^1.2.5" @@ -1815,15 +1829,15 @@ "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" }, "morgan": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz", - "integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", + "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", "requires": { - "basic-auth": "~2.0.0", + "basic-auth": "~2.0.1", "debug": "2.6.9", - "depd": "~1.1.2", + "depd": "~2.0.0", "on-finished": "~2.3.0", - "on-headers": "~1.0.1" + "on-headers": "~1.0.2" }, "dependencies": { "debug": { @@ -1833,6 +1847,11 @@ "requires": { "ms": "2.0.0" } + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" } } }, @@ -2115,9 +2134,9 @@ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, "picomatch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz", - "integrity": "sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", "dev": true }, "pify": { diff --git a/package.json b/package.json index 4270fbe..2cfe8cd 100644 --- a/package.json +++ b/package.json @@ -35,14 +35,14 @@ "axios": "^0.19.2", "chalk": "^3.0.0", "cli-table3": "^0.5.1", - "country-code-lookup": "0.0.16", + "country-code-lookup": "0.0.17", "emoji-flags": "^1.2.0", "express": "^4.17.1", "helmet": "^3.21.3", "humanize-number": "0.0.2", "lodash": "^4.17.15", "moment": "^2.24.0", - "morgan": "^1.9.1", + "morgan": "^1.10.0", "node-cache": "^5.1.0", "strip-ansi": "^6.0.0", "yargonaut": "^1.1.4", From aa69266cbe25fc8a48b44370e5bd6a34e68fe12b Mon Sep 17 00:00:00 2001 From: XhmikosR Date: Sat, 21 Mar 2020 15:18:40 +0200 Subject: [PATCH 62/86] CSS tweaks --- lib/helpers.js | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/lib/helpers.js b/lib/helpers.js index 98e2b87..022e87f 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -259,18 +259,37 @@ e.htmlTemplate = (body) => { Coronavirus Tracker -

${body}
+
+
${body}
+
`; From de10c01dfebd8280e1ad0f77d2303754314162a7 Mon Sep 17 00:00:00 2001 From: sagark Date: Tue, 24 Mar 2020 13:43:33 +0530 Subject: [PATCH 63/86] change default source to 2 temp. --- app.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app.js b/app.js index 60b25b2..24f2352 100644 --- a/app.js +++ b/app.js @@ -56,7 +56,7 @@ app.get('/', (req, res) => { const minimal = req.query.minimal === 'true'; const emojis = req.query.emojis === 'true'; const top = req.query.top ? Number(req.query.top) : 1000; - const source = req.query.source ? Number(req.query.source) : 1; + const source = req.query.source ? Number(req.query.source) : 2; if (source === 2) { return getWorldoMetersTable({ isCurl, emojis, minimal, top, format}) @@ -132,7 +132,7 @@ app.get('/:country', (req, res) => { const format = req.query.format ? req.query.format : ''; const minimal = req.query.minimal === 'true'; const emojis = req.query.emojis === 'true'; - const source = req.query.source ? Number(req.query.source) : 1; + const source = req.query.source ? Number(req.query.source) : 2; if (!country || country.toUpperCase() === 'ALL') { if (format.toLowerCase() === 'json') { From b5f2f7e26bb98df0e47f7ebd3dcb6899d30d9409 Mon Sep 17 00:00:00 2001 From: sagark Date: Tue, 24 Mar 2020 16:28:09 +0530 Subject: [PATCH 64/86] fixing JSU api issue, adding status code in error and country not found --- app.js | 28 +++++++--------------------- lib/byCountry.js | 26 +++++++------------------- lib/constants.js | 15 ++++++++++++++- lib/corona.js | 31 +++++++------------------------ lib/helpers.js | 15 +++------------ 5 files changed, 38 insertions(+), 77 deletions(-) diff --git a/app.js b/app.js index 24f2352..7645e75 100644 --- a/app.js +++ b/app.js @@ -12,7 +12,7 @@ const { getCompleteTable, getGraph } = require('./lib/corona'); const { lookupCountry, htmlTemplate } = require('./lib/helpers'); const { getLiveUpdates } = require('./lib/reddit.js'); const { getWorldoMetersTable } = require('./lib/worldoMeters.js'); -const { helpContent } = require('./lib/constants'); +const { helpContent, countryNotFound } = require('./lib/constants'); const app = express(); const port = process.env.PORT || 3001; @@ -20,10 +20,10 @@ const IS_CURL_RE = /\bcurl\b/im; function errorHandler(error, res) { console.error(error); - return res.send(` + return res.status(500).send(htmlTemplate(` I am sorry. Something went wrong. Please report it\n ${error.message} - `); + `)); } app.set('json escape', true); @@ -56,7 +56,7 @@ app.get('/', (req, res) => { const minimal = req.query.minimal === 'true'; const emojis = req.query.emojis === 'true'; const top = req.query.top ? Number(req.query.top) : 1000; - const source = req.query.source ? Number(req.query.source) : 2; + const source = req.query.source ? Number(req.query.source) : 1; if (source === 2) { return getWorldoMetersTable({ isCurl, emojis, minimal, top, format}) @@ -103,14 +103,7 @@ app.get(['/:country/graph', '/graph'], (req, res) => { const lookupObj = lookupCountry(country); if (!lookupObj) { - return res.send(` - Country not found. - Try the full country name or country code. - Example: - - /UK: for United Kingdom - - /US: for United States of America. - - /Italy: for Italy. - `); + return res.status(404).send(countryNotFound(isCurl)); } return getGraph({countryCode: lookupObj.iso2, isCurl }) .then(result => res.send(result)) @@ -132,7 +125,7 @@ app.get('/:country', (req, res) => { const format = req.query.format ? req.query.format : ''; const minimal = req.query.minimal === 'true'; const emojis = req.query.emojis === 'true'; - const source = req.query.source ? Number(req.query.source) : 2; + const source = req.query.source ? Number(req.query.source) : 1; if (!country || country.toUpperCase() === 'ALL') { if (format.toLowerCase() === 'json') { @@ -150,14 +143,7 @@ app.get('/:country', (req, res) => { const lookupObj = lookupCountry(country); if (!lookupObj) { - return res.send(` - Country not found. - Try the full country name or country code. - Example: - - /UK: for United Kingdom - - /US: for United States of America. - - /Italy: for Italy. - `); + return res.status(404).send(countryNotFound(isCurl)); } diff --git a/lib/byCountry.js b/lib/byCountry.js index 19cd831..8e7e87e 100644 --- a/lib/byCountry.js +++ b/lib/byCountry.js @@ -6,11 +6,8 @@ const api = require('./api'); const { extraStats, getConfirmed, - getActive, getDeaths, - getRecovered, getMortalityPer, - getRecoveredPer, getEmoji, getOneDayChange, getOneWeekChange, @@ -19,11 +16,10 @@ const { htmlTemplate, } = require('./helpers'); -function getDataByState(confirmed, deaths, recovered) { +function getDataByState(confirmed, deaths) { const countryMap = {}; const lastUpdated = confirmed.last_updated; const confirmedMap = _.keyBy(confirmed.locations, (i) => i.country + i.province); - const recoveredMap = _.keyBy(recovered.locations, (i) => i.country + i.province); const deathsMap = _.keyBy(deaths.locations, (i) => i.country + i.province); confirmed.locations.forEach(obj => { const countryName = obj.country; @@ -35,10 +31,8 @@ function getDataByState(confirmed, deaths, recovered) { province: provinceName, countryCode: obj.country_code, confirmed: confirmedMap[mapKey].latest, - recovered: recoveredMap[mapKey].latest, deaths: deathsMap[mapKey].latest, confirmedByDay: helpers.historyObjToArr(confirmedMap[mapKey].history), - recoveredByDay: helpers.historyObjToArr(recoveredMap[mapKey].history), deathsByDay: helpers.historyObjToArr(deathsMap[mapKey].history), lastUpdated, }; @@ -52,8 +46,8 @@ function getDataByState(confirmed, deaths, recovered) { exports.getJSONData = async () => { const data = await api.getCoronaData(); - const { confirmed, deaths, recovered } = data; - const countryData = getDataByState(confirmed, deaths, recovered); + const { confirmed, deaths } = data; + const countryData = getDataByState(confirmed, deaths); const totalStats = getTotalStats(countryData); totalStats.country = 'World'; return countryData.concat(totalStats); @@ -61,8 +55,8 @@ exports.getJSONData = async () => { exports.getJSONDataForCountry = async (countryCode) => { const data = await api.getCoronaData(); - const { confirmed, deaths, recovered } = data; - const countryData = getDataByState(confirmed, deaths, recovered) + const { confirmed, deaths } = data; + const countryData = getDataByState(confirmed, deaths) .filter(obj => obj.countryCode === countryCode); return countryData; }; @@ -79,8 +73,8 @@ exports.getCountryTable = async ({ style: helpers.getTableStyles(minimal), }); const data = await api.getCoronaData(); - const { confirmed, deaths, recovered } = data; - const countryData = getDataByState(confirmed, deaths, recovered) + const { confirmed, deaths } = data; + const countryData = getDataByState(confirmed, deaths) .filter(obj => obj.countryCode === countryCode); if (countryData.length === 0) { @@ -92,11 +86,8 @@ exports.getCountryTable = async ({ [countryData[0].country]: [ 'Total', getConfirmed(totalStats.confirmed), - getRecovered(totalStats.recovered), getDeaths(totalStats.deaths), - getActive(totalStats.active), getMortalityPer(totalStats.mortalityPer), - getRecoveredPer(totalStats.recoveredPer), getOneDayChange(totalStats), getOneWeekChange(totalStats), ] @@ -109,11 +100,8 @@ exports.getCountryTable = async ({ const values = [ cd.province, getConfirmed(cd.confirmed), - getRecovered(cd.recovered), getDeaths(cd.deaths), - getActive(cd.active), getMortalityPer(cd.mortalityPer), - getRecoveredPer(cd.recoveredPer), getOneDayChange(cd), getOneWeekChange(cd), ...(emojis ? [countryEmoji] : []) diff --git a/lib/constants.js b/lib/constants.js index 3bb5d8a..745fd1d 100644 --- a/lib/constants.js +++ b/lib/constants.js @@ -1,3 +1,4 @@ +const { htmlTemplate } = require('./helpers'); exports.countryNameMap = { China: 'CN', UK: 'GB', @@ -264,4 +265,16 @@ https://corona-stats.online/china/graph ------------- Any issues or feedback - Hit me up on twitter @ekrysis -------------- -`; \ No newline at end of file +`; + +exports.countryNotFound = (isCurl) => { + const body = ` + Country not found. + Try the full country name or country code. + Example: + - /UK: for United Kingdom + - /US: for United States of America. + - /Italy: for Italy. + `; + return isCurl ? body : htmlTemplate(body); +}; \ No newline at end of file diff --git a/lib/corona.js b/lib/corona.js index bbe739c..2ec7b4c 100644 --- a/lib/corona.js +++ b/lib/corona.js @@ -9,11 +9,8 @@ const { extraStats, getCountry, getConfirmed, - getActive, getDeaths, - getRecovered, getMortalityPer, - getRecoveredPer, getEmoji, getOneDayChange, getOneWeekChange, @@ -22,11 +19,10 @@ const { htmlTemplate, } = require('./helpers'); -function getDataByCountry(confirmed, deaths, recovered) { +function getDataByCountry(confirmed, deaths) { const countryMap = {}; const lastUpdated = confirmed.last_updated; const confirmedMap = _.keyBy(confirmed.locations, (i) => i.country + i.province); - const recoveredMap = _.keyBy(recovered.locations, (i) => i.country + i.province); const deathsMap = _.keyBy(deaths.locations, (i) => i.country + i.province); confirmed.locations.forEach(obj => { const countryName = obj.country; @@ -37,25 +33,18 @@ function getDataByCountry(confirmed, deaths, recovered) { country: countryName, countryCode: obj.country_code, confirmed: confirmedMap[mapKey].latest, - recovered: recoveredMap[mapKey].latest, deaths: deathsMap[mapKey].latest, confirmedByDay: helpers.historyObjToArr(confirmedMap[mapKey].history), - recoveredByDay: helpers.historyObjToArr(recoveredMap[mapKey].history), deathsByDay: helpers.historyObjToArr(deathsMap[mapKey].history), lastUpdated, }; } else { countryMap[countryName].confirmed += confirmedMap[mapKey].latest; - countryMap[countryName].recovered += recoveredMap[mapKey].latest; countryMap[countryName].deaths += deathsMap[mapKey].latest; countryMap[countryName].confirmedByDay = helpers.addArr( countryMap[countryName].confirmedByDay, helpers.historyObjToArr(confirmedMap[mapKey].history) ); - countryMap[countryName].recoveredByDay = helpers.addArr( - countryMap[countryName].recoveredByDay, - helpers.historyObjToArr(recoveredMap[mapKey].history) - ); countryMap[countryName].deathsByDay = helpers.addArr( countryMap[countryName].deathsByDay, helpers.historyObjToArr(deathsMap[mapKey].history) @@ -70,14 +59,13 @@ function getDataByCountry(confirmed, deaths, recovered) { exports.getGraph = async ({ countryCode = 'ALL', isCurl = true}) => { const data = await api.getCoronaData(); - const { confirmed, deaths, recovered } = data; - const countryData = getDataByCountry(confirmed, deaths, recovered); + const { confirmed, deaths, } = data; + const countryData = getDataByCountry(confirmed, deaths,); const worldStats = getTotalStats(countryData); worldStats.countryCode = 'ALL'; worldStats.countryName = 'World'; countryData.push(worldStats); - const singleCountryData = countryData.filter(obj => obj.countryCode === countryCode); // const graphLength = ' '; const graphLength = ' Confirmed Cases Graph '; const padding = ' '; @@ -86,7 +74,8 @@ exports.getGraph = async ({ countryCode = 'ALL', isCurl = true}) => { offset: 2, padding, }; - const { confirmedByDay, } = singleCountryData[0]; + const singleCountryData = countryData.filter(obj => obj.countryCode === countryCode); + const { confirmedByDay } = singleCountryData[0]; const confirmedGraph = asciichart.plot(confirmedByDay, graphConfig); const body = chalk.greenBright(confirmedGraph) @@ -112,17 +101,14 @@ exports.getCompleteTable = async ({ style: helpers.getTableStyles(minimal), }); const data = await api.getCoronaData(); - const { confirmed, deaths, recovered } = data; - const countryData = getDataByCountry(confirmed, deaths, recovered); + const { confirmed, deaths, } = data; + const countryData = getDataByCountry(confirmed, deaths); const worldStats = getTotalStats(countryData); const worldRow = [ 'World', getConfirmed(worldStats.confirmed), - getRecovered(worldStats.recovered), getDeaths(worldStats.deaths), - getActive(worldStats.active), getMortalityPer(worldStats.mortalityPer), - getRecoveredPer(worldStats.recoveredPer), getOneDayChange(worldStats), getOneWeekChange(worldStats), ...(emojis ? ['🌎'] : []) @@ -135,11 +121,8 @@ exports.getCompleteTable = async ({ const values = [ getCountry(`${cd.country} (${cd.countryCode})`), getConfirmed(cd.confirmed), - getRecovered(cd.recovered), getDeaths(cd.deaths), - getActive(cd.active), getMortalityPer(cd.mortalityPer), - getRecoveredPer(cd.recoveredPer), getOneDayChange(cd), getOneWeekChange(cd), ...(emojis ? [countryEmoji] : []) diff --git a/lib/helpers.js b/lib/helpers.js index 98e2b87..c6f84ed 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -128,25 +128,18 @@ e.getOneWeekChange = ({ confirmedByDay }) => { e.getTotalStats = (countryData) => { const worldStats = countryData.reduce((acc, countryObj) => { acc.confirmed += countryObj.confirmed; - acc.recovered += countryObj.recovered; acc.deaths += countryObj.deaths; acc.confirmedByDay = e.addArr(acc.confirmedByDay, countryObj.confirmedByDay); - acc.recoveredByDay = e.addArr(acc.recoveredByDay, countryObj.recoveredByDay); acc.deathsByDay = e.addArr(acc.deathsByDay, countryObj.deathsByDay); return acc; }, { confirmed: 0, - recovered: 0, deaths: 0, confirmedByDay: [], - recoveredByDay: [], deathsByDay: [], }); - worldStats.active = e.calActive(worldStats); - worldStats.recoveredPer = e.calRecoveredPer(worldStats); worldStats.mortalityPer = e.calMortalityPer(worldStats); - return worldStats; }; @@ -178,8 +171,9 @@ ${chalk.greenBright('Twitter')}: ${chalk.blueBright('https://twitter.com/ekrysis ${chalk.magentaBright('Last Updated on:')} ${moment(lastUpdated).utc().format('DD-MMM-YYYY HH:MM')} UTC -${chalk.red.bold.underline('NEW REALTIME UPDATES')}: ${chalk.blueBright('https://corona-stats.online?source=2')} -${chalk.red.bold.underline('HELP')}: ${chalk.blueBright('https://corona-stats.online/help')} +${chalk.red.bold('NEW REALTIME UPDATES')}: ${chalk.blueBright('https://corona-stats.online?source=2')} +${chalk.red.bold('HELP')}: ${chalk.blueBright('https://corona-stats.online/help')} +${chalk.bgBlueBright.bold('API was down because JHU has removed recovered from their data :( ')}: ${chalk.blueBright('https://github.com/CSSEGISandData/COVID-19/issues/1250')} `; e.getTableBorders = minimal => { @@ -211,11 +205,8 @@ e.getTableHeaders = (emojis, secondColumnName) => { 'Rank', secondColumnName, `Confirmed ${emojis ? ' ✅' : ''}`, - `Recovered${emojis ? ' 😀' : ''}`, `Deaths${emojis ? ' 😞' : ''}`, - `Active${emojis ? ' 😷' : ''}`, 'CFR %', - 'Recovered %', '1 Day ▲', '1 Week ▲', ...(emojis ? ['🏳'] : []), From f71ffdba89b48fc6c736eaf0ef6c1deeef433fd7 Mon Sep 17 00:00:00 2001 From: sagark Date: Wed, 25 Mar 2020 02:41:14 +0530 Subject: [PATCH 65/86] changed default source to 2 (worldometers) --- app.js | 103 ++++++++++++++++++++++++-------------------- bin/index.js | 14 +++--- changelog.md | 4 ++ lib/api.js | 6 ++- lib/constants.js | 31 ++++++++++--- lib/helpers.js | 6 +-- lib/worldoMeters.js | 3 +- package.json | 2 +- readme.md | 8 ++-- 9 files changed, 106 insertions(+), 71 deletions(-) diff --git a/app.js b/app.js index 7645e75..879df11 100644 --- a/app.js +++ b/app.js @@ -9,7 +9,7 @@ const { getJSONDataForCountry, } = require('./lib/byCountry'); const { getCompleteTable, getGraph } = require('./lib/corona'); -const { lookupCountry, htmlTemplate } = require('./lib/helpers'); +const { lookupCountry, htmlTemplate, footer } = require('./lib/helpers'); const { getLiveUpdates } = require('./lib/reddit.js'); const { getWorldoMetersTable } = require('./lib/worldoMeters.js'); const { helpContent, countryNotFound } = require('./lib/constants'); @@ -18,12 +18,17 @@ const app = express(); const port = process.env.PORT || 3001; const IS_CURL_RE = /\bcurl\b/im; -function errorHandler(error, res) { +function errorHandler(error, req, res) { console.error(error); - return res.status(500).send(htmlTemplate(` + const body = ` I am sorry. Something went wrong. Please report it\n ${error.message} - `)); + ${footer(new Date)} + `; + if (req.isCurl) { + return body; + } + return res.status(500).send(htmlTemplate(body)); } app.set('json escape', true); @@ -47,58 +52,60 @@ app.use(helmet.referrerPolicy({ policy: 'strict-origin-when-cross-origin' })); app.use(morgan(':remote-addr :remote-user :method :url :status :res[content-length] - :response-time ms')); app.use((req, res, next) => { res.setHeader('Cache-Control', 'no-cache'); + req.isCurl = IS_CURL_RE.test(req.headers['user-agent']); next(); }); app.get('/', (req, res) => { - const isCurl = IS_CURL_RE.test(req.headers['user-agent']); + const isCurl = req.isCurl; const format = req.query.format ? req.query.format : ''; const minimal = req.query.minimal === 'true'; const emojis = req.query.emojis === 'true'; const top = req.query.top ? Number(req.query.top) : 1000; - const source = req.query.source ? Number(req.query.source) : 1; + const source = req.query.source ? Number(req.query.source) : 2; + + if (source === 1) { + if (format.toLowerCase() === 'json') { + return getJSONData().then(result => { + return res.json(result); + }).catch(error => errorHandler(error, req, res)); + } - if (source === 2) { - return getWorldoMetersTable({ isCurl, emojis, minimal, top, format}) + return getCompleteTable({ isCurl, emojis, minimal, top }) .then(result => { return res.send(result); - }).catch(error => errorHandler(error, res)); + }).catch(error => errorHandler(error, req, res)); } - if (format.toLowerCase() === 'json') { - return getJSONData().then(result => { - return res.json(result); - }).catch(error => errorHandler(error, res)); - } - - return getCompleteTable({ isCurl, emojis, minimal, top }) + return getWorldoMetersTable({ isCurl, emojis, minimal, top, format}) .then(result => { return res.send(result); - }).catch(error => errorHandler(error, res)); + }).catch(error => errorHandler(error, req, res)); + }); app.get('/updates', (req, res) => { - const isCurl = IS_CURL_RE.test(req.headers['user-agent']); + const isCurl = req.isCurl; const format = req.query.format ? req.query.format : ''; if (format.toLowerCase() === 'json') { return getLiveUpdates({ json: true, isCurl }).then(result => { return res.json(result); - }).catch(error => errorHandler(error, res)); + }).catch(error => errorHandler(error, req, res)); } return getLiveUpdates({ json: false, isCurl }).then(result => { return res.send(result); - }).catch(error => errorHandler(error, res)); + }).catch(error => errorHandler(error, req, res)); }); app.get(['/:country/graph', '/graph'], (req, res) => { const { country } = req.params; - const isCurl = IS_CURL_RE.test(req.headers['user-agent']); + const isCurl = req.isCurl; if (!country) { return getGraph({ isCurl }) .then(result => res.send(result)) - .catch(error => errorHandler(error, res)); + .catch(error => errorHandler(error, req, res)); } const lookupObj = lookupCountry(country); @@ -107,11 +114,11 @@ app.get(['/:country/graph', '/graph'], (req, res) => { } return getGraph({countryCode: lookupObj.iso2, isCurl }) .then(result => res.send(result)) - .catch(error => errorHandler(error, res)); + .catch(error => errorHandler(error, req, res)); }); app.get('/help', (req, res) => { - const isCurl = IS_CURL_RE.test(req.headers['user-agent']); + const isCurl = req.isCurl; if (!isCurl) { return res.send(htmlTemplate(helpContent)); } @@ -121,23 +128,41 @@ app.get('/help', (req, res) => { app.get('/:country', (req, res) => { const { country } = req.params; - const isCurl = IS_CURL_RE.test(req.headers['user-agent']); + const isCurl = req.isCurl; const format = req.query.format ? req.query.format : ''; const minimal = req.query.minimal === 'true'; const emojis = req.query.emojis === 'true'; - const source = req.query.source ? Number(req.query.source) : 1; + const source = req.query.source ? Number(req.query.source) : 2; if (!country || country.toUpperCase() === 'ALL') { if (format.toLowerCase() === 'json') { - return getJSONData().then(result => { + return getWorldoMetersTable({ isCurl, emojis, minimal, format }).then(result => { return res.json(result); - }).catch(error => errorHandler(error, res)); + }).catch(error => errorHandler(error, req, res)); + } + + return getWorldoMetersTable({ isCurl, emojis, minimal }) + .then(result => { + return res.send(result); + }).catch(error => errorHandler(error, req, res)); + } + if (source === 1) { + const lookupObj = lookupCountry(country); + + if (!lookupObj) { + return res.status(404).send(countryNotFound(isCurl)); } + const { iso2 } = lookupObj; - return getCompleteTable({ isCurl, emojis, minimal }) + if (format.toLowerCase() === 'json') { + return getJSONDataForCountry(iso2).then(result => { + return res.json(result); + }).catch(error => errorHandler(error, req, res)); + } + return getCountryTable({ countryCode: iso2, isCurl, emojis, minimal }) .then(result => { return res.send(result); - }).catch(error => errorHandler(error, res)); + }).catch(error => errorHandler(error, req, res)); } const lookupObj = lookupCountry(country); @@ -146,26 +171,12 @@ app.get('/:country', (req, res) => { return res.status(404).send(countryNotFound(isCurl)); } - const { iso2 } = lookupObj; - if (source === 2) { - return getWorldoMetersTable({ countryCode: iso2, isCurl, emojis, minimal, format }) - .then(result => { - return res.send(result); - }).catch(error => errorHandler(error, res)); - } - - if (format.toLowerCase() === 'json') { - return getJSONDataForCountry(iso2).then(result => { - return res.json(result); - }).catch(error => errorHandler(error, res)); - } - - return getCountryTable({ countryCode: iso2, isCurl, emojis, minimal }) + return getWorldoMetersTable({ countryCode: iso2, isCurl, emojis, minimal, format }) .then(result => { return res.send(result); - }).catch(error => errorHandler(error, res)); + }).catch(error => errorHandler(error, req, res)); }); app.listen(port, () => console.log(`Running on ${port}`)); diff --git a/bin/index.js b/bin/index.js index 656aadc..338566b 100755 --- a/bin/index.js +++ b/bin/index.js @@ -38,7 +38,7 @@ const { argv } = yargs s: { alias: 'source', describe: 'fetch data from other source', - default: 1, + default: 2, type: 'int' }, e: { @@ -74,15 +74,15 @@ const { argv } = yargs .help('help'); argv.countryCode = argv.country; -if (argv.source === 2) { - getWorldoMetersTable(argv).then(console.log).catch(console.error); -} -else if (argv.graph === true) { - getGraph(argv.countryCode).then(console.log).catch(console.error); -} else { +if (argv.source === 1) { ( argv.country === 'ALL' ? getCompleteTable(argv) : getCountryTable(argv) ).then(console.log).catch(console.error); } +else if (argv.graph === true) { + getGraph(argv.countryCode).then(console.log).catch(console.error); +} else { + getWorldoMetersTable(argv).then(console.log).catch(console.error); +} diff --git a/changelog.md b/changelog.md index ade177f..9863037 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,9 @@ # Changelog +## Version 0.9.0 + +* Changed default source to worldoMeters. i.e source 2 is now default + ## Version 0.8.0 * Added confirmed cases graphs `corona -g` or `corona italy -g` diff --git a/lib/api.js b/lib/api.js index d064716..3f97265 100644 --- a/lib/api.js +++ b/lib/api.js @@ -73,8 +73,12 @@ exports.getWorldoMetersData = async (countryCode = 'ALL') => { critical: 0, }); - result.data.forEach(obj => obj.countryCode = countryNameMap[obj.country]); + result.data.forEach(obj => { + obj.countryCode = countryNameMap[obj.country]; + obj.confirmed = obj.cases; + }); worldStats.casesPerOneMillion = (worldStats.cases / 7794).toFixed(2); + worldStats.confirmed = worldStats.cases; let finalData = result.data; if (countryCode && countryCode !== 'ALL') { finalData = finalData.filter(obj => obj.countryCode === countryCode); diff --git a/lib/constants.js b/lib/constants.js index 745fd1d..e830fca 100644 --- a/lib/constants.js +++ b/lib/constants.js @@ -1,4 +1,4 @@ -const { htmlTemplate } = require('./helpers'); +const { htmlTemplate, footer } = require('./helpers'); exports.countryNameMap = { China: 'CN', UK: 'GB', @@ -181,6 +181,20 @@ exports.countryNameMap = { 'Dominican Republic': 'DO', 'Burkina Faso': 'BF', Uzbekistan: 'UZ', + 'Madagascar': 'MG', + 'Uganda': 'UG', + 'Zimbabwe': 'ZW', + 'Dominica': 'DM', + 'Laos': 'LA', + 'Myanmar': 'MM', + 'Belize': 'BZ', + 'Eritrea': 'ER', + 'Grenada': 'GD', + 'Mozambique': 'MZ', + 'Papua New Guinea': 'PG', + 'Syria': 'SY', + 'Timor-Leste': 'TL', + 'Turks and Caicos': 'TC' }; exports.helpContent = ` @@ -201,6 +215,7 @@ https://corona-stats.online --------------------------------------------------------------------------------- +(DEFAULT SOURCE) # Source 2 stats - updated every 15 minutes from worldometers.info https://corona-stats.online?source=2 @@ -213,12 +228,14 @@ https://corona-stats.online/[countryCode] https://corona-stats.online/[countryName] ## Example: From source 1 -https://corona-stats.online/Italy -https://corona-stats.online/UK +https://corona-stats.online/Italy?source=1 +https://corona-stats.online/UK?source=1 -## Example: From source 2 +## Example: From source 2 (DEFAULT) +https://corona-stats.online/italy https://corona-stats.online/italy?source=2 https://corona-stats.online/UK?source=2 +https://corona-stats.online/UK --------------------------------------------------------------------------------- @@ -227,7 +244,7 @@ https://corona-stats.online/UK?source=2 ## Example: https://corona-stats.online?minimal=true https://corona-stats.online/Italy?minimal=true (with country filter) -https://corona-stats.online?minimal=true&source=2 (with source) +https://corona-stats.online?minimal=true&source=1 (with source) https://corona-stats.online/uk?source=2&minimal=true (with source and country) --------------------------------------------------------------------------------- @@ -246,7 +263,7 @@ https://corona-stats.online/uk?source=2&json=true (with source and countr ## Example: https://corona-stats.online?top=25 -https://corona-stats.online?source=2&top=10 (with source) +https://corona-stats.online?source=1&top=10 (with source) https://corona-stats.online/uk?minimal=true&top=20 (with minimal) @@ -275,6 +292,8 @@ exports.countryNotFound = (isCurl) => { - /UK: for United Kingdom - /US: for United States of America. - /Italy: for Italy. + + ${footer(new Date)} `; return isCurl ? body : htmlTemplate(body); }; \ No newline at end of file diff --git a/lib/helpers.js b/lib/helpers.js index c6f84ed..3a42282 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -171,9 +171,9 @@ ${chalk.greenBright('Twitter')}: ${chalk.blueBright('https://twitter.com/ekrysis ${chalk.magentaBright('Last Updated on:')} ${moment(lastUpdated).utc().format('DD-MMM-YYYY HH:MM')} UTC -${chalk.red.bold('NEW REALTIME UPDATES')}: ${chalk.blueBright('https://corona-stats.online?source=2')} +${chalk.red.bold('UPDATE')}: ${chalk.blueBright('Source 2 is now default source')} +${chalk.red.bold('JHU Source 1 table')}: ${chalk.blueBright('https://corona-stats.online?source=1')} ${chalk.red.bold('HELP')}: ${chalk.blueBright('https://corona-stats.online/help')} -${chalk.bgBlueBright.bold('API was down because JHU has removed recovered from their data :( ')}: ${chalk.blueBright('https://github.com/CSSEGISandData/COVID-19/issues/1250')} `; e.getTableBorders = minimal => { @@ -235,9 +235,7 @@ e.extraStats = (dataArr) => { return dataArr.map(obj => { return { ...obj, - active: e.calActive(obj), mortalityPer: e.calMortalityPer(obj), - recoveredPer: e.calRecoveredPer(obj) }; }); }; diff --git a/lib/worldoMeters.js b/lib/worldoMeters.js index 2a798b1..82f895c 100644 --- a/lib/worldoMeters.js +++ b/lib/worldoMeters.js @@ -19,7 +19,6 @@ exports.getWorldoMetersTable = async ({ style: helpers.getTableStyles(minimal), }); const { data, worldStats } = await api.getWorldoMetersData(countryCode); - console.log(format); if (format === 'json') { return { data, worldStats }; } @@ -28,7 +27,7 @@ exports.getWorldoMetersTable = async ({ data.some(cd => { const countryEmoji = getEmoji(cd.countryCode) || '🏳️'; const values = [ - cFormatter(cd.country, chalk.cyanBright), + cFormatter(`${cd.country} (${cd.countryCode})` , chalk.cyanBright), cFormatter(cd.cases, chalk.green, 'right', true), cFormatter(cd.todayCases, chalk.cyanBright, 'right', true, ' ▲'), cFormatter(cd.deaths, chalk.whiteBright, 'right', true), diff --git a/package.json b/package.json index 2cfe8cd..d3ad7ab 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "coronavirus-tracker-cli", - "version": "0.8.0", + "version": "0.9.0", "description": "track conronavirus cases from cli", "repository": { "type": "git", diff --git a/readme.md b/readme.md index cb9a441..e2b873a 100644 --- a/readme.md +++ b/readme.md @@ -37,10 +37,10 @@ curl https://corona-stats.online?minimal=true ```sh curl https://corona-stats.online?top=20 ``` -### Get realtime stats (NEW) +### Get JHU data (source 2 is now the default source) ```sh -curl https://corona-stats.online?source=2 +curl https://corona-stats.online?source=1 ``` ### Latest News (Work in Progress) @@ -81,10 +81,10 @@ corona corona italy ``` -### Get realtime stats (NEW) +### Get JHU data (source 2 is now the default source) ```sh -corona --source=2 +corona --source=1 ``` ### Top N countries From 266115b1a5189f8836b0cf9271626fce1356cb3c Mon Sep 17 00:00:00 2001 From: sagark Date: Wed, 25 Mar 2020 03:06:16 +0530 Subject: [PATCH 66/86] changed padding --- lib/helpers.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/helpers.js b/lib/helpers.js index 5d4a723..e7be25e 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -263,8 +263,8 @@ e.htmlTemplate = (body) => { .container { margin-right: auto; margin-left: auto; - padding-right: 15px; - padding-left: 15px; + padding-right: 10px; + padding-left: 10px; width: 100%; } pre { From 48bd1887db811f5402c3c20a7d5f0e68d0bc6f39 Mon Sep 17 00:00:00 2001 From: Sagar Karira Date: Wed, 25 Mar 2020 04:05:41 +0530 Subject: [PATCH 67/86] readme changes --- readme.md | 122 ++++++++++++++++++++++++------------------------------ 1 file changed, 53 insertions(+), 69 deletions(-) diff --git a/readme.md b/readme.md index e2b873a..724ea05 100644 --- a/readme.md +++ b/readme.md @@ -1,60 +1,67 @@ -# coronavirus-tracker-cli [![Build Status](https://github.com/sagarkarira/coronavirus-tracker-cli/workflows/Tests/badge.svg)](https://github.com/sagarkarira/coronavirus-tracker-cli/actions?workflow=Tests) +

+ Coronavirus Tracker CLI +

-Track The Corona virus from your CLI +Track The Corona virus stats from your terminal using curl or global command. + +[![Build Status](https://github.com/sagarkarira/coronavirus-tracker-cli/workflows/Tests/badge.svg)](https://github.com/sagarkarira/coronavirus-tracker-cli/actions?workflow=Tests) +[![Tweet](https://img.shields.io/twitter/url?style=social&url=https%3A%2F%2Fgithub.com%2Fsagarkarira%2Fcoronavirus-tracker-cli%2F)](https://img.shields.io/twitter/url?style=social&url=https%3A%2F%2Fgithub.com%2Fsagarkarira%2Fcoronavirus-tracker-cli%2F) + + +**Live global stats (provided by [fight-covid19/bagdes](https://github.com/fight-covid19/bagdes)) from this API:** + +![Covid-19 Confirmed](https://covid19-badges.herokuapp.com/confirmed/latest) +![Covid-19 Deaths](https://covid19-badges.herokuapp.com/deaths/latest) ## Screenshot ![Preview](./preview.png) -## CURL +## Data Sources -### Complete Data +* Source 1 : [John Hopkins Data API](https://github.com/ExpDev07/coronavirus-tracker-api) +* Source 2 : [WorldoMeters Data API](https://github.com/NovelCOVID/API/) updated very frequently. -```sh -curl https://corona-stats.online -``` +**Note: Source 2 is the default source now if not mentioned** -### Filter by Country Stats +## CURL ```sh -curl https://corona-stats.online/ -``` +# Get data from worldometers api i.e source 2 +curl https://corona-stats.online -where \ can be a country name or its ISO code. +# Get data from source 1 +curl https://corona-stats.online?source=1 -* US: `curl https://corona-stats.online/US` -* Italy: `curl https://corona-stats.online/Italy` -* UK: `curl https://corona-stats.online/UK` or `curl https://corona-stats.online/GB` +# Get data from source 2 +curl https://corona-stats.online?source=2 -### Minimal Compact Table +# Filter by country /countryCode or /countryName -```sh -curl https://corona-stats.online?minimal=true -``` - -### Only show top N countries +curl https://corona-stats.online/US +curl https://corona-stats.online/italy +curl https://corona-stats.online/uk?source=2 +curl https://corona-stats.online/gb?source=1 -```sh +# Only show top N countries curl https://corona-stats.online?top=20 -``` -### Get JHU data (source 2 is now the default source) -```sh -curl https://corona-stats.online?source=1 -``` +# Remove padding and borders from table +curl https://corona-stats.online?minimal=true -### Latest News (Work in Progress) -```sh +# Latest News (Work In Progress) curl https://corona-stats.online/updates + +# Help +curl https://corona-stats.online/help + ``` ## API Add `?format=json` at the end of any API to get JSON formatted data. -### Example - ```sh curl https://corona-stats.online?format=json ``` @@ -66,49 +73,30 @@ Note: NodeJS version 12 recommended. You can download it [here](https://nodejs.o **Install** ``` sh +# Install npm install coronavirus-tracker-cli -g -``` - -### Run command -```sh -corona -``` - -### Filter by country - -```sh -corona italy -``` - -### Get JHU data (source 2 is now the default source) +# Run command +corona -```sh +# Get source 1 data corona --source=1 -``` -### Top N countries +# Filter by country +corona italy -```sh +# Filter top N countries corona --top=10 -``` - -### With emojis -```sh -corona --emojis -``` - -### Set Minimal Compact Table - -```sh +# Minimal Compact Table corona --minimal -``` - -### Disable colors -```sh +# Monocolor / No colors corona --color=false + +# Show emojis +corona --emojis + ``` ## ToDos @@ -116,8 +104,10 @@ corona --color=false * ~~Filter by country to get cases by local states.~~ * ~~Move from npm to curl~~ * ~~Add daily change.~~ -* Add growth rate. (linear regression) +* ~~Add graphs~~ +* Add growth rate column ? (double in X days) * Add latest updates from reddit / twitter. +* Find and add regional data - state, county, city, district level data. ## Contributors @@ -147,12 +137,6 @@ corona --color=false * [Philippines](https://ncovtracker.doh.gov.ph/) * [Austria (official)](https://info.gesundheitsministerium.at), [Austria (inofficial but more detailed)](https://covid19.spiessknafl.at) -## Data Sources - -* [John Hopkins Data](https://github.com/CSSEGISandData/COVID-19) updated once a day at 11:59 UTC -* [John Hopkins Data API](https://github.com/ExpDev07/coronavirus-tracker-api) -* [WorldoMeters Data API](https://github.com/NovelCOVID/API/) updated very frequently. - ## Related Projects * From b419745e7474711784836e6fc57487c16d4615f2 Mon Sep 17 00:00:00 2001 From: Sagar Karira Date: Wed, 25 Mar 2020 04:16:41 +0530 Subject: [PATCH 68/86] Update readme.md --- readme.md | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/readme.md b/readme.md index 724ea05..9d9f54d 100644 --- a/readme.md +++ b/readme.md @@ -49,13 +49,18 @@ curl https://corona-stats.online?top=20 # Remove padding and borders from table curl https://corona-stats.online?minimal=true - # Latest News (Work In Progress) curl https://corona-stats.online/updates +# Allow emojis (emojis breaks in some terminals) +curl https://corona-stats.online?emojis=true + # Help curl https://corona-stats.online/help +# Mix up above params (One that I use) +curl 'https://corona-stats.online?top=30&source=2&minimal=true&emojis=true' + ``` ## API @@ -66,7 +71,7 @@ Add `?format=json` at the end of any API to get JSON formatted data. curl https://corona-stats.online?format=json ``` -## Local Command (For coloured output) +## Node CLI Note: NodeJS version 12 recommended. You can download it [here](https://nodejs.org/en/download/). @@ -81,22 +86,30 @@ corona # Get source 1 data corona --source=1 +corona -s=1 # Filter by country corona italy # Filter top N countries corona --top=10 +corona -t=10 # Minimal Compact Table corona --minimal +corona -m # Monocolor / No colors corona --color=false +corona -c=false # Show emojis corona --emojis +corona -e +# Confirmed Cases Graph +corona italy --graph +corona italy -g ``` ## ToDos From 90e57f990b764933db810b5b0bf9c99c98b5d8c5 Mon Sep 17 00:00:00 2001 From: Sagar Karira Date: Wed, 25 Mar 2020 05:19:39 +0530 Subject: [PATCH 69/86] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 9d9f54d..63a5c0d 100644 --- a/readme.md +++ b/readme.md @@ -8,7 +8,7 @@ Track The Corona virus stats from your terminal using curl or global command. [![Tweet](https://img.shields.io/twitter/url?style=social&url=https%3A%2F%2Fgithub.com%2Fsagarkarira%2Fcoronavirus-tracker-cli%2F)](https://img.shields.io/twitter/url?style=social&url=https%3A%2F%2Fgithub.com%2Fsagarkarira%2Fcoronavirus-tracker-cli%2F) -**Live global stats (provided by [fight-covid19/bagdes](https://github.com/fight-covid19/bagdes)) from this API:** +**Live global stats (provided by [fight-covid19/bagdes](https://github.com/fight-covid19/bagdes)) ![Covid-19 Confirmed](https://covid19-badges.herokuapp.com/confirmed/latest) ![Covid-19 Deaths](https://covid19-badges.herokuapp.com/deaths/latest) From a72870345241762933823f8f2a2c82a5f2774903 Mon Sep 17 00:00:00 2001 From: Sagar Karira Date: Wed, 25 Mar 2020 05:20:02 +0530 Subject: [PATCH 70/86] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 63a5c0d..817ac25 100644 --- a/readme.md +++ b/readme.md @@ -8,7 +8,7 @@ Track The Corona virus stats from your terminal using curl or global command. [![Tweet](https://img.shields.io/twitter/url?style=social&url=https%3A%2F%2Fgithub.com%2Fsagarkarira%2Fcoronavirus-tracker-cli%2F)](https://img.shields.io/twitter/url?style=social&url=https%3A%2F%2Fgithub.com%2Fsagarkarira%2Fcoronavirus-tracker-cli%2F) -**Live global stats (provided by [fight-covid19/bagdes](https://github.com/fight-covid19/bagdes)) +**Live global stats (provided by [fight-covid19/bagdes](https://github.com/fight-covid19/bagdes))** ![Covid-19 Confirmed](https://covid19-badges.herokuapp.com/confirmed/latest) ![Covid-19 Deaths](https://covid19-badges.herokuapp.com/deaths/latest) From fd4ad7affe35e344a4f0733d09eb14322f35633a Mon Sep 17 00:00:00 2001 From: sagark Date: Thu, 26 Mar 2020 17:09:27 +0530 Subject: [PATCH 71/86] splice country name for table formatting --- lib/worldoMeters.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/worldoMeters.js b/lib/worldoMeters.js index 82f895c..3561d72 100644 --- a/lib/worldoMeters.js +++ b/lib/worldoMeters.js @@ -27,7 +27,7 @@ exports.getWorldoMetersTable = async ({ data.some(cd => { const countryEmoji = getEmoji(cd.countryCode) || '🏳️'; const values = [ - cFormatter(`${cd.country} (${cd.countryCode})` , chalk.cyanBright), + cFormatter(`${cd.country.slice(0, 30)} (${cd.countryCode === undefined ? '' : cd.countryCode })` , chalk.cyanBright), cFormatter(cd.cases, chalk.green, 'right', true), cFormatter(cd.todayCases, chalk.cyanBright, 'right', true, ' ▲'), cFormatter(cd.deaths, chalk.whiteBright, 'right', true), From 6cfe27e77e64af425529ff88b6b3f82112d9184f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotrek=20=C5=BBygie=C5=82o?= Date: Sat, 28 Mar 2020 08:34:03 +0100 Subject: [PATCH 72/86] Fix json format parameter Current doc: ``` $ curl -i https://corona-stats.online?json=true HTTP/2 200 content-type: text/html; charset=utf-8 ... (HTML follows) ``` with `format` parameter: ``` $ curl -i https://corona-stats.online?format=json HTTP/2 200 content-type: application/json; charset=utf-8 ... (JSON follows) ``` --- lib/constants.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/constants.js b/lib/constants.js index e830fca..75b14e5 100644 --- a/lib/constants.js +++ b/lib/constants.js @@ -249,13 +249,13 @@ https://corona-stats.online/uk?source=2&minimal=true (with source and countr --------------------------------------------------------------------------------- -# Get data as JSON - Add ?json=true +# Get data as JSON - Add ?format=json ## Example: -https://corona-stats.online?json=true -https://corona-stats.online/Italy?json=true (with country filter) -https://corona-stats.online/?source=2&json=true (with source) -https://corona-stats.online/uk?source=2&json=true (with source and country) +https://corona-stats.online?format=json +https://corona-stats.online/Italy?format=json (with country filter) +https://corona-stats.online/?source=2&format=json (with source) +https://corona-stats.online/uk?source=2&format=json (with source and country) --------------------------------------------------------------------------------- From 85bf3e42db252c864b243c0b783393eace2c1fd2 Mon Sep 17 00:00:00 2001 From: sagark Date: Tue, 31 Mar 2020 02:53:29 +0530 Subject: [PATCH 73/86] fixed sorting bug in source 2 --- lib/api.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/api.js b/lib/api.js index 3f97265..1c220b5 100644 --- a/lib/api.js +++ b/lib/api.js @@ -22,6 +22,7 @@ exports.getCoronaData = async () => { const cache = myCache.get(CORONA_ALL_KEY); if (cache) { + console.log('cache', CORONA_ALL_KEY); return cache; } const result = await axios('https://coronavirus-tracker-api.herokuapp.com/all'); @@ -47,7 +48,7 @@ exports.getWorldoMetersData = async (countryCode = 'ALL') => { console.log('cache', key); return cache; } - const result = await axios('https://corona.lmao.ninja/countries'); + const result = await axios('https://corona.lmao.ninja/countries?sort=cases'); if (!result || !result.data) { throw new Error('WorldoMeters Source API failure'); } From 084e5c11dc3e83aca1c06fcaa68e6beb7f95e8ea Mon Sep 17 00:00:00 2001 From: sagark Date: Thu, 2 Apr 2020 04:10:34 +0530 Subject: [PATCH 74/86] add us states api --- app.js | 21 +++++++++++++++++ bin/index.js | 16 +++++++++++++ changelog.md | 4 ++++ lib/api.js | 17 +++++++++++++- lib/corona.js | 2 +- lib/country/us.js | 57 +++++++++++++++++++++++++++++++++++++++++++++++ lib/helpers.js | 4 +--- package.json | 2 +- 8 files changed, 117 insertions(+), 6 deletions(-) create mode 100644 lib/country/us.js diff --git a/app.js b/app.js index 879df11..fc3812e 100644 --- a/app.js +++ b/app.js @@ -12,6 +12,7 @@ const { getCompleteTable, getGraph } = require('./lib/corona'); const { lookupCountry, htmlTemplate, footer } = require('./lib/helpers'); const { getLiveUpdates } = require('./lib/reddit.js'); const { getWorldoMetersTable } = require('./lib/worldoMeters.js'); +const { getUsaStats } = require('./lib/country/us.js'); const { helpContent, countryNotFound } = require('./lib/constants'); const app = express(); @@ -125,6 +126,26 @@ app.get('/help', (req, res) => { return res.send(chalk.green(helpContent)); }); +app.get('/states/:country', (req, res) => { + const { country } = req.params; + const isCurl = req.isCurl; + const format = req.query.format ? req.query.format : ''; + const minimal = req.query.minimal === 'true'; + const top = req.query.top ? Number(req.query.top) : 1000; + + const lookupObj = lookupCountry(country); + + if (!lookupObj) { + return res.status(404).send(countryNotFound(isCurl)); + } + if (lookupObj.iso2 === 'US') { + return getUsaStats({ isCurl, minimal, top, format}) + .then(result => { + return res.send(result); + }).catch(error => errorHandler(error, req, res)); + } +}); + app.get('/:country', (req, res) => { const { country } = req.params; diff --git a/bin/index.js b/bin/index.js index 338566b..e798809 100755 --- a/bin/index.js +++ b/bin/index.js @@ -7,6 +7,7 @@ const { getCompleteTable, getGraph } = require('../lib/corona'); const { getCountryTable } = require('../lib/byCountry'); const { getWorldoMetersTable } = require('../lib/worldoMeters'); const { lookupCountry } = require('../lib/helpers'); +const { getUsaStats } = require('../lib/country/us'); const { argv } = yargs .command('$0 [country]', 'Tool to track COVID-19 statistics from terminal', yargs => @@ -68,12 +69,27 @@ const { argv } = yargs describe: 'Get graph', type: 'boolean', default: false, + }, + st: { + alias: 'states', + describe: 'Get state level data of country ', + type: 'string', } }) .strict() .help('help'); argv.countryCode = argv.country; +if (argv.states === 'US') { + getUsaStats(argv).then(result => { + console.log(result); + process.exit(1); + }).catch(error => { + console.error(error); + process.exit(0); + }); +} + if (argv.source === 1) { ( argv.country === 'ALL' diff --git a/changelog.md b/changelog.md index 9863037..2aa9b5f 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,9 @@ # Changelog +## Version 0.9.1 + +* Added US states api `corona --states=US` + ## Version 0.9.0 * Changed default source to worldoMeters. i.e source 2 is now default diff --git a/lib/api.js b/lib/api.js index 1c220b5..d0e37b7 100644 --- a/lib/api.js +++ b/lib/api.js @@ -75,8 +75,8 @@ exports.getWorldoMetersData = async (countryCode = 'ALL') => { }); result.data.forEach(obj => { - obj.countryCode = countryNameMap[obj.country]; obj.confirmed = obj.cases; + obj.countryCode = obj.countryInfo.iso2 || ''; }); worldStats.casesPerOneMillion = (worldStats.cases / 7794).toFixed(2); worldStats.confirmed = worldStats.cases; @@ -89,3 +89,18 @@ exports.getWorldoMetersData = async (countryCode = 'ALL') => { myCache.set(key, returnObj, 60 * 15); return returnObj; }; + +exports.usaStats = async () => { + const key = 'usaStats'; + const cache = myCache.get(key); + + if (cache) { + console.log('cache', key); + return cache; + } + const result = await axios('https://corona.lmao.ninja/states'); + if (!result || !result.data) { + throw new Error('usa stats API failure'); + } + return result; +}; \ No newline at end of file diff --git a/lib/corona.js b/lib/corona.js index 2ec7b4c..be1cafa 100644 --- a/lib/corona.js +++ b/lib/corona.js @@ -79,7 +79,7 @@ exports.getGraph = async ({ countryCode = 'ALL', isCurl = true}) => { const confirmedGraph = asciichart.plot(confirmedByDay, graphConfig); const body = chalk.greenBright(confirmedGraph) - + chalk.cyanBright('\n\n' +padding + '22 Feb' + graphLength + '22 Mar') + '\n'; + + chalk.cyanBright('\n\n' +padding + '22 Feb' + graphLength + 'Today') + '\n'; if (!isCurl) { return htmlTemplate(body); diff --git a/lib/country/us.js b/lib/country/us.js new file mode 100644 index 0000000..60e5b4d --- /dev/null +++ b/lib/country/us.js @@ -0,0 +1,57 @@ +const Table = require('cli-table3'); +const chalk = require('chalk'); +const helpers = require('../helpers'); +const api = require('../api'); +const { cFormatter } = helpers; + + +const getUsaStatsHeaders = (emojis, secondColumnName) => { + const head = [ + 'Rank', + secondColumnName, + `Total Cases ${emojis ? ' ✅' : ''}`, + 'New Cases ▲', + `Total Deaths${emojis ? ' 😞' : ''}`, + `New Deaths ▲${emojis ? ' 😞' : ''}`, + `Active${emojis ? ' 😷' : ''}`, + + ]; + return head; +}; + + +exports.getUsaStats = async ({ + isCurl = true, + minimal = false, + top = 1000, + format, +}) => { + const secondColumnName = 'US States'; + const table = new Table({ + head: getUsaStatsHeaders(null, secondColumnName), + chars: helpers.getTableBorders(minimal), + style: helpers.getTableStyles(minimal), + }); + const { data } = await api.usaStats(); + if (format === 'json') { + return { data }; + } + + let rank = 1; + data.some(cd => { + const values = [ + cFormatter(cd.state , chalk.cyanBright), + cFormatter(cd.cases, chalk.green, 'right', true), + cFormatter(cd.todayCases, chalk.cyanBright, 'right', true, ' ▲'), + cFormatter(cd.deaths, chalk.whiteBright, 'right', true), + cFormatter(cd.todayDeaths, chalk.redBright, 'right', true, ' ▲'), + cFormatter(cd.active, chalk.blueBright , 'right', true), + ]; + table.push({ [rank++]: values }); + return rank === top + 1; + }); + + const lastUpdated = new Date(); + const ret = table.toString() + helpers.footer(lastUpdated); + return isCurl ? ret : helpers.htmlTemplate(ret); +}; \ No newline at end of file diff --git a/lib/helpers.js b/lib/helpers.js index e7be25e..218c712 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -171,8 +171,7 @@ ${chalk.greenBright('Twitter')}: ${chalk.blueBright('https://twitter.com/ekrysis ${chalk.magentaBright('Last Updated on:')} ${moment(lastUpdated).utc().format('DD-MMM-YYYY HH:MM')} UTC -${chalk.red.bold('UPDATE')}: ${chalk.blueBright('Source 2 is now default source')} -${chalk.red.bold('JHU Source 1 table')}: ${chalk.blueBright('https://corona-stats.online?source=1')} +${chalk.red.bold('US STATES API')}: ${chalk.blueBright('https://corona-stats.online/states/us')} ${chalk.red.bold('HELP')}: ${chalk.blueBright('https://corona-stats.online/help')} `; @@ -230,7 +229,6 @@ e.getTableHeadersV2 = (emojis, secondColumnName) => { ]; return head; }; - e.extraStats = (dataArr) => { return dataArr.map(obj => { return { diff --git a/package.json b/package.json index d3ad7ab..68d85bb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "coronavirus-tracker-cli", - "version": "0.9.0", + "version": "0.9.1", "description": "track conronavirus cases from cli", "repository": { "type": "git", From 11583cbfe3b3350e2f30b6bda21841008fb08871 Mon Sep 17 00:00:00 2001 From: sagark Date: Thu, 2 Apr 2020 04:14:53 +0530 Subject: [PATCH 75/86] changed readme and help file --- lib/constants.js | 13 +++++++++++++ readme.md | 10 +++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/lib/constants.js b/lib/constants.js index 75b14e5..ce4e2d3 100644 --- a/lib/constants.js +++ b/lib/constants.js @@ -239,6 +239,19 @@ https://corona-stats.online/UK --------------------------------------------------------------------------------- +# State wise api (Only for US as of now) + +## Format: +https://corona-stats.online/states/[countryCode] +https://corona-stats.online/states/[countryName] + +## Example: From source 1 +https://corona-stats.online/us +https://corona-stats.online/USA?format=json +https://corona-stats.online/USA?minimal=true + +--------------------------------------------------------------------------------- + # Minimal Mode - remove the borders and padding from table ## Example: diff --git a/readme.md b/readme.md index 817ac25..17802fd 100644 --- a/readme.md +++ b/readme.md @@ -38,11 +38,15 @@ curl https://corona-stats.online?source=2 # Filter by country /countryCode or /countryName -curl https://corona-stats.online/US +curl https://corona-stats.online/US curl https://corona-stats.online/italy curl https://corona-stats.online/uk?source=2 curl https://corona-stats.online/gb?source=1 +# State wise stats of country (Only for US as of now) + +curl https://corona-stats.online/US + # Only show top N countries curl https://corona-stats.online?top=20 @@ -91,6 +95,10 @@ corona -s=1 # Filter by country corona italy +# state wise stats (only for US as of now) +corona --states=US +corona --st=us + # Filter top N countries corona --top=10 corona -t=10 From 05b670a49bb91918160af6224e9a3471bc9c1b4c Mon Sep 17 00:00:00 2001 From: sagark Date: Thu, 2 Apr 2020 04:25:59 +0530 Subject: [PATCH 76/86] fix eslint issue --- app.js | 4 +- lib/api.js | 1 - lib/constants.js | 209 +++-------------------------------------------- 3 files changed, 14 insertions(+), 200 deletions(-) diff --git a/app.js b/app.js index fc3812e..745d78b 100644 --- a/app.js +++ b/app.js @@ -13,7 +13,7 @@ const { lookupCountry, htmlTemplate, footer } = require('./lib/helpers'); const { getLiveUpdates } = require('./lib/reddit.js'); const { getWorldoMetersTable } = require('./lib/worldoMeters.js'); const { getUsaStats } = require('./lib/country/us.js'); -const { helpContent, countryNotFound } = require('./lib/constants'); +const { helpContent, countryNotFound, stateCountryNotFound } = require('./lib/constants'); const app = express(); const port = process.env.PORT || 3001; @@ -136,7 +136,7 @@ app.get('/states/:country', (req, res) => { const lookupObj = lookupCountry(country); if (!lookupObj) { - return res.status(404).send(countryNotFound(isCurl)); + return res.status(404).send(stateCountryNotFound(isCurl)); } if (lookupObj.iso2 === 'US') { return getUsaStats({ isCurl, minimal, top, format}) diff --git a/lib/api.js b/lib/api.js index d0e37b7..ee11b7a 100644 --- a/lib/api.js +++ b/lib/api.js @@ -7,7 +7,6 @@ const NodeCache = require('node-cache'); const axios = require('axios'); -const { countryNameMap } = require('./constants'); const myCache = new NodeCache({ stdTTL: 100, checkperiod: 600 }); diff --git a/lib/constants.js b/lib/constants.js index ce4e2d3..028316a 100644 --- a/lib/constants.js +++ b/lib/constants.js @@ -1,201 +1,4 @@ const { htmlTemplate, footer } = require('./helpers'); -exports.countryNameMap = { - China: 'CN', - UK: 'GB', - Martinique: 'MQ', - Liechtenstein: 'LI', - 'Réunion': 'RE', - Ukraine: 'UA', - Honduras: 'HN', - Afghanistan: 'AF', - Bangladesh: 'BD', - Macao: 'MO', - Bolivia: 'BO', - Cuba: 'CU', - Netherlands: 'NL', - Jamaica: 'JM', - 'French Guiana': 'GF', - DRC: 'CD', - Cameroon: 'CM', - Maldives: 'MV', - Montenegro: 'ME', - Paraguay: 'PY', - Nigeria: 'NG', - Guam: 'GU', - 'French Polynesia': 'PF', - Austria: 'AT', - Ghana: 'GH', - Rwanda: 'RW', - Monaco: 'MC', - Gibraltar: 'GI', - Guatemala: 'GT', - 'Ivory Coast': 'CI', - Ethiopia: 'ET', - Togo: 'TG', - 'Trinidad and Tobago': 'TT', - Kenya: 'KE', - Belgium: 'BE', - Mauritius: 'MU', - 'Equatorial Guinea': 'GQ', - Kyrgyzstan: 'KG', - Mongolia: 'MN', - 'Puerto Rico': 'PR', - Seychelles: 'SC', - Tanzania: 'TZ', - Guyana: 'GY', - Aruba: 'AW', - Barbados: 'BB', - Norway: 'NO', - Mayotte: 'YT', - 'Cayman Islands': 'KY', - 'Curaçao': 'CW', - Bahamas: 'BS', - Congo: 'CD', - Gabon: 'GA', - Namibia: 'NA', - 'St. Barth': 'BL', - 'Saint Martin': 'MF', - 'U.S. Virgin Islands': 'VI', - Sweden: 'SE', - Sudan: 'SD', - Benin: 'BJ', - Bermuda: 'BM', - Bhutan: 'BT', - CAR: 'CF', - Greenland: 'GL', - Haiti: 'HT', - Liberia: 'LR', - Mauritania: 'MR', - 'New Caledonia': 'NC', - Denmark: 'DK', - 'Saint Lucia': 'LC', - Zambia: 'ZM', - Nepal: 'NP', - Angola: 'AO', - 'Antigua and Barbuda': 'AG', - 'Cabo Verde': 'CV', - Chad: 'TD', - Djibouti: 'DJ', - 'El Salvador': 'SV', - Fiji: 'FJ', - Japan: 'JP', - Gambia: 'GM', - Guinea: 'GN', - 'Vatican City': 'VA', - 'Isle of Man': 'IM', - Montserrat: 'MS', - Nicaragua: 'NI', - Niger: 'NE', - 'St. Vincent Grenadines': 'VC', - 'Sint Maarten': 'SX', - Somalia: 'SO', - Malaysia: 'MY', - Suriname: 'SR', - Eswatini: 'SZ', - Australia: 'AU', - Italy: 'IT', - Canada: 'CA', - Portugal: 'PT', - Czechia: 'CZ', - Israel: 'IL', - Brazil: 'BR', - Luxembourg: 'LU', - Ireland: 'IE', - Greece: 'GR', - Qatar: 'QA', - Pakistan: 'PK', - Iran: 'IR', - Finland: 'FI', - Poland: 'PL', - Turkey: 'TR', - Singapore: 'SG', - Chile: 'CL', - Iceland: 'IS', - Thailand: 'TH', - Slovenia: 'SI', - Indonesia: 'ID', - Bahrain: 'BH', - Spain: 'ES', - Romania: 'RO', - 'Saudi Arabia': 'SA', - Estonia: 'EE', - Ecuador: 'EC', - Egypt: 'EG', - Peru: 'PE', - Philippines: 'PH', - 'Hong Kong': 'HK', - India: 'IN', - Russia: 'RU', - Germany: 'DE', - Iraq: 'IQ', - Mexico: 'MX', - Lebanon: 'LB', - 'South Africa': 'ZA', - Kuwait: 'KW', - 'San Marino': 'SM', - UAE: 'AE', - Panama: 'PA', - Armenia: 'AM', - Taiwan: 'TW', - USA: 'US', - Argentina: 'AR', - Colombia: 'CO', - Slovakia: 'SK', - Serbia: 'RS', - Croatia: 'HR', - Bulgaria: 'BG', - Uruguay: 'UY', - Algeria: 'DZ', - 'Costa Rica': 'CR', - Latvia: 'LV', - France: 'FR', - Hungary: 'HU', - Vietnam: 'VN', - 'Faeroe Islands': 'FO', - Andorra: 'AD', - Brunei: 'BN', - Belarus: 'BY', - Jordan: 'JO', - Cyprus: 'CY', - 'Sri Lanka': 'LK', - Albania: 'AL', - 'S. Korea': 'KR', - 'Bosnia and Herzegovina': 'BA', - Morocco: 'MA', - Malta: 'MT', - 'North Macedonia': 'MK', - Moldova: 'MD', - Kazakhstan: 'KZ', - Lithuania: 'LT', - Oman: 'OM', - Cambodia: 'KH', - Palestine: 'PS', - Switzerland: 'CH', - Guadeloupe: 'GP', - Azerbaijan: 'AZ', - Georgia: 'GE', - Venezuela: 'VE', - Tunisia: 'TN', - 'New Zealand': 'NZ', - Senegal: 'SN', - 'Dominican Republic': 'DO', - 'Burkina Faso': 'BF', - Uzbekistan: 'UZ', - 'Madagascar': 'MG', - 'Uganda': 'UG', - 'Zimbabwe': 'ZW', - 'Dominica': 'DM', - 'Laos': 'LA', - 'Myanmar': 'MM', - 'Belize': 'BZ', - 'Eritrea': 'ER', - 'Grenada': 'GD', - 'Mozambique': 'MZ', - 'Papua New Guinea': 'PG', - 'Syria': 'SY', - 'Timor-Leste': 'TL', - 'Turks and Caicos': 'TC' -}; exports.helpContent = ` @@ -309,4 +112,16 @@ exports.countryNotFound = (isCurl) => { ${footer(new Date)} `; return isCurl ? body : htmlTemplate(body); +}; + +exports.stateCountryNotFound = (isCurl) => { + const body = ` + State wise api is only available for: + - US + Try: + /US or /USA + + ${footer(new Date)} + `; + return isCurl ? body : htmlTemplate(body); }; \ No newline at end of file From ccb949f9244fbafcba0f75ee8cbfd3b1bc3d35b5 Mon Sep 17 00:00:00 2001 From: sagark Date: Thu, 2 Apr 2020 04:45:10 +0530 Subject: [PATCH 77/86] fix npm cli issue --- bin/index.js | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/bin/index.js b/bin/index.js index e798809..624d7f1 100755 --- a/bin/index.js +++ b/bin/index.js @@ -80,14 +80,27 @@ const { argv } = yargs .help('help'); argv.countryCode = argv.country; -if (argv.states === 'US') { - getUsaStats(argv).then(result => { - console.log(result); - process.exit(1); - }).catch(error => { - console.error(error); - process.exit(0); - }); +if (argv.states) { + const country = lookupCountry(argv.states); + if (!country) { + let error = `Country '${argv.states}' not found.\n`; + error += 'Try full country name or country code.\n'; + error += 'Ex:\n'; + error += '- UK: for United Kingdom \n'; + error += '- US: for United States of America.\n'; + error += '- Italy: for Italy.\n'; + throw new Error(chalk.red.bold(error)); + } + argv.countryCode = country.iso2; + if (argv.countryCode === 'US') { + getUsaStats(argv).then(result => { + console.log(result); + process.exit(1); + }).catch(error => { + console.error(error); + process.exit(0); + }); + } } if (argv.source === 1) { @@ -98,7 +111,7 @@ if (argv.source === 1) { ).then(console.log).catch(console.error); } else if (argv.graph === true) { - getGraph(argv.countryCode).then(console.log).catch(console.error); + getGraph(argv).then(console.log).catch(console.error); } else { getWorldoMetersTable(argv).then(console.log).catch(console.error); } From 3af12dc9fa8e79eb72dda103dba3bcb496e1962c Mon Sep 17 00:00:00 2001 From: sagark Date: Thu, 9 Apr 2020 04:49:10 +0530 Subject: [PATCH 78/86] added favicon and zeit sponspor in footer --- app.js | 2 ++ favicon.ico | Bin 0 -> 1150 bytes lib/helpers.js | 1 + package.json | 3 ++- powered-by.svg | 1 + readme.md | 6 ++++-- 6 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 favicon.ico create mode 100644 powered-by.svg diff --git a/app.js b/app.js index 745d78b..0232958 100644 --- a/app.js +++ b/app.js @@ -51,6 +51,8 @@ app.use(helmet.hsts({ app.use(helmet.referrerPolicy({ policy: 'strict-origin-when-cross-origin' })); app.use(morgan(':remote-addr :remote-user :method :url :status :res[content-length] - :response-time ms')); +app.use('/favicon.ico', express.static('./favicon.ico')); + app.use((req, res, next) => { res.setHeader('Cache-Control', 'no-cache'); req.isCurl = IS_CURL_RE.test(req.headers['user-agent']); diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..804a1ac2e957a3f6ffdb184d7b483b20a94912d4 GIT binary patch literal 1150 zcmZ8hdrZ?;6#gwPTTDzaTef8TYY$ZBBS0C5!`WFDoH8b`I-nMWuImGNRG_UqN?!v@ zOHn8kX=_mmMUjC^#4*&Zm^EXtK&Fc$D>2jY5Zo4+E3}j!-!3sE4fp1|=W)+>?#ao? zrKsn~-nx|{=Npvhd5U_KqNp$e;v$}Bej+G}+-+O{s9-#LG|!mu{LK`6?i}jA`oO^F zb&W181m2qb)4z9ViGC?KcBAg|t%MwiYw{k?XuKD>M};cg@b`I=TVpnhyEbCC6+-^N zSRk;vc_VMl9&~v)P3EE27)A#&vvn|Adclk{L#ezDNl`nkQVh5>RjwOTlS_>Izb+;Q z=a`#Ycqf{n^(7?A{^5%Z$VjU}uDBlJlV_mR+8`FT;81)UhK9y^`KP*w@CIaY6(}gFL9tAWithLhMGQvD=WBTaR5~B4||Z-;bqU zcrZ7+vQwk#zp*RKfbF5jk(I@RNT5ghXXo(oQ2~l%%@B+8z&esYjHTC4zaN;$mI$M_|-VqZ~+~?-=U;fkLXA% zuJzuB(>Yx2{$YmW^)A2O-7{=wr)nV-7NAUHfz4(IFQ*usbS?HpJ5gSyMy=5VnY04c z`fem0sRuu&f7I`%L&EpSmf0y6eKAow?2A!?C(wbzQ6qe(83p;3(4BEWQdk0qqXW{C zS{&GKhF<4FgLF+l8=LI!WC|RI0mhj4cNH(^69V6_Uq* z>M#3A54*@*UZbBp32a;EFE7)Ze{@e}Og~;^sH$$yM87LQo~jMZ{RVK-zDA|ij)KDW zxkIcz-+Oz{{Os(1+uiQ*WZsE8o?PKq_lhNhuEj0t=eML!8^C1-V2Z3u7 aMX3nLNAheDsoJ2g#mv7*z@(^Eg8u=Qj*=$; literal 0 HcmV?d00001 diff --git a/lib/helpers.js b/lib/helpers.js index 218c712..48bf96b 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -173,6 +173,7 @@ ${chalk.magentaBright('Last Updated on:')} ${moment(lastUpdated).utc().format('D ${chalk.red.bold('US STATES API')}: ${chalk.blueBright('https://corona-stats.online/states/us')} ${chalk.red.bold('HELP')}: ${chalk.blueBright('https://corona-stats.online/help')} +${chalk.red.bold('SPONSORED BY')}: ${chalk.blueBright('ZEIT NOW')} `; e.getTableBorders = minimal => { diff --git a/package.json b/package.json index 68d85bb..971ebac 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "coronavirus-tracker-cli", - "version": "0.9.1", + "version": "0.9.2", "description": "track conronavirus cases from cli", "repository": { "type": "git", @@ -23,6 +23,7 @@ }, "files": [ "{bin,lib}/*.js", + "lib/country/*.js", "app.js" ], "engines": { diff --git a/powered-by.svg b/powered-by.svg new file mode 100644 index 0000000..a73296d --- /dev/null +++ b/powered-by.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/readme.md b/readme.md index 17802fd..2df1d3c 100644 --- a/readme.md +++ b/readme.md @@ -2,11 +2,13 @@ Coronavirus Tracker CLI

+ Track The Corona virus stats from your terminal using curl or global command. [![Build Status](https://github.com/sagarkarira/coronavirus-tracker-cli/workflows/Tests/badge.svg)](https://github.com/sagarkarira/coronavirus-tracker-cli/actions?workflow=Tests) [![Tweet](https://img.shields.io/twitter/url?style=social&url=https%3A%2F%2Fgithub.com%2Fsagarkarira%2Fcoronavirus-tracker-cli%2F)](https://img.shields.io/twitter/url?style=social&url=https%3A%2F%2Fgithub.com%2Fsagarkarira%2Fcoronavirus-tracker-cli%2F) +![Sponsored By Zeit](./powered-by.svg) **Live global stats (provided by [fight-covid19/bagdes](https://github.com/fight-covid19/bagdes))** @@ -167,9 +169,9 @@ corona italy -g * * -## Hosting +## Sponsored By -* Big shoutout to [Zeit Now](https://github.com/zeit/now). +* [Zeit Now](https://github.com/zeit/now). ## License From da5b1f333162987cb3d765828ae7682a9dc8be83 Mon Sep 17 00:00:00 2001 From: sagark Date: Fri, 17 Apr 2020 05:14:59 +0530 Subject: [PATCH 79/86] fix source 2 api --- .prettierrc | 7 +++++ lib/api.js | 78 ++++++++++++++++++++++++++++++++++------------------- 2 files changed, 57 insertions(+), 28 deletions(-) create mode 100644 .prettierrc diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..5cf946d --- /dev/null +++ b/.prettierrc @@ -0,0 +1,7 @@ +{ + "tabWidth": 2, + "useTabs": false, + "singleQuote": true, + "jsxSingleQuote": true, + "trailingComma": "all" +} diff --git a/lib/api.js b/lib/api.js index ee11b7a..99e5235 100644 --- a/lib/api.js +++ b/lib/api.js @@ -24,7 +24,9 @@ exports.getCoronaData = async () => { console.log('cache', CORONA_ALL_KEY); return cache; } - const result = await axios('https://coronavirus-tracker-api.herokuapp.com/all'); + const result = await axios( + 'https://coronavirus-tracker-api.herokuapp.com/all', + ); if (!result || !result.data) { throw new Error('Source API failure.'); @@ -47,41 +49,46 @@ exports.getWorldoMetersData = async (countryCode = 'ALL') => { console.log('cache', key); return cache; } - const result = await axios('https://corona.lmao.ninja/countries?sort=cases'); + const result = await axios( + 'https://corona.lmao.ninja/v2/countries?sort=cases', + ); if (!result || !result.data) { throw new Error('WorldoMeters Source API failure'); } - const worldStats = result.data.reduce((acc, countryObj) => { - acc.cases += countryObj.cases; - acc.todayCases += countryObj.todayCases; - acc.deaths += countryObj.deaths; - acc.todayDeaths += countryObj.todayDeaths; - acc.recovered += countryObj.recovered; - acc.active += countryObj.active; - acc.critical += countryObj.critical; - return acc; - }, { - country: 'World', - countryCode: 'World', - cases: 0, - todayCases: 0, - deaths: 0, - todayDeaths: 0, - recovered: 0, - active: 0, - critical: 0, - }); + const worldStats = result.data.reduce( + (acc, countryObj) => { + acc.cases += countryObj.cases; + acc.todayCases += countryObj.todayCases; + acc.deaths += countryObj.deaths; + acc.todayDeaths += countryObj.todayDeaths; + acc.recovered += countryObj.recovered; + acc.active += countryObj.active; + acc.critical += countryObj.critical; + return acc; + }, + { + country: 'World', + countryCode: 'World', + cases: 0, + todayCases: 0, + deaths: 0, + todayDeaths: 0, + recovered: 0, + active: 0, + critical: 0, + }, + ); - result.data.forEach(obj => { + result.data.forEach((obj) => { obj.confirmed = obj.cases; - obj.countryCode = obj.countryInfo.iso2 || ''; + obj.countryCode = obj.countryInfo.iso2 || ''; }); worldStats.casesPerOneMillion = (worldStats.cases / 7794).toFixed(2); worldStats.confirmed = worldStats.cases; - let finalData = result.data; + let finalData = result.data; if (countryCode && countryCode !== 'ALL') { - finalData = finalData.filter(obj => obj.countryCode === countryCode); + finalData = finalData.filter((obj) => obj.countryCode === countryCode); } const returnObj = { data: finalData, worldStats }; @@ -97,9 +104,24 @@ exports.usaStats = async () => { console.log('cache', key); return cache; } - const result = await axios('https://corona.lmao.ninja/states'); + const result = await axios('https://corona.lmao.ninja/v2/states'); if (!result || !result.data) { throw new Error('usa stats API failure'); } return result; -}; \ No newline at end of file +}; + +// exports.bingApi = async (countryCode = 'ALL') => { +// const key = 'bingData'; +// const cache = myCache.get(key); + +// if (cache) { +// console.log('cache', key); +// return cache; +// } +// const result = await axios('https://bing.com/covid/data'); +// if (!result || !result.data) { +// throw new Error('bing api faliure'); +// } +// return result; +// }; From 2393395be7bed9441f7e53b91ada28068e1dd93c Mon Sep 17 00:00:00 2001 From: Burhan Khalid Date: Sat, 25 Apr 2020 15:29:58 +0300 Subject: [PATCH 80/86] adding a country filter --- app.js | 6 +++--- lib/api.js | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app.js b/app.js index 0232958..1557b5a 100644 --- a/app.js +++ b/app.js @@ -157,14 +157,14 @@ app.get('/:country', (req, res) => { const emojis = req.query.emojis === 'true'; const source = req.query.source ? Number(req.query.source) : 2; - if (!country || country.toUpperCase() === 'ALL') { + if (!country || country.toUpperCase() === 'ALL' || country.includes(",")) { if (format.toLowerCase() === 'json') { - return getWorldoMetersTable({ isCurl, emojis, minimal, format }).then(result => { + return getWorldoMetersTable({ countryCode: country, isCurl, emojis, minimal, format }).then(result => { return res.json(result); }).catch(error => errorHandler(error, req, res)); } - return getWorldoMetersTable({ isCurl, emojis, minimal }) + return getWorldoMetersTable({ countryCode: country, isCurl, emojis, minimal }) .then(result => { return res.send(result); }).catch(error => errorHandler(error, req, res)); diff --git a/lib/api.js b/lib/api.js index 99e5235..d225bcc 100644 --- a/lib/api.js +++ b/lib/api.js @@ -88,7 +88,8 @@ exports.getWorldoMetersData = async (countryCode = 'ALL') => { worldStats.confirmed = worldStats.cases; let finalData = result.data; if (countryCode && countryCode !== 'ALL') { - finalData = finalData.filter((obj) => obj.countryCode === countryCode); + // extra filter to cater for trailing comma, ie /gb, + finalData = finalData.filter((obj) => countryCode.toLowerCase().split(",").filter((obj) => obj.length > 1).includes(obj.countryCode.toLowerCase())); } const returnObj = { data: finalData, worldStats }; From b46a3462d2ebb49c4ee640162d5a003cbcc279f3 Mon Sep 17 00:00:00 2001 From: Burhan Khalid Date: Sat, 25 Apr 2020 15:35:29 +0300 Subject: [PATCH 81/86] strings must use singlequotes --- app.js | 2 +- lib/api.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app.js b/app.js index 1557b5a..49d212d 100644 --- a/app.js +++ b/app.js @@ -157,7 +157,7 @@ app.get('/:country', (req, res) => { const emojis = req.query.emojis === 'true'; const source = req.query.source ? Number(req.query.source) : 2; - if (!country || country.toUpperCase() === 'ALL' || country.includes(",")) { + if (!country || country.toUpperCase() === 'ALL' || country.includes(',')) { if (format.toLowerCase() === 'json') { return getWorldoMetersTable({ countryCode: country, isCurl, emojis, minimal, format }).then(result => { return res.json(result); diff --git a/lib/api.js b/lib/api.js index d225bcc..101fe0a 100644 --- a/lib/api.js +++ b/lib/api.js @@ -89,7 +89,7 @@ exports.getWorldoMetersData = async (countryCode = 'ALL') => { let finalData = result.data; if (countryCode && countryCode !== 'ALL') { // extra filter to cater for trailing comma, ie /gb, - finalData = finalData.filter((obj) => countryCode.toLowerCase().split(",").filter((obj) => obj.length > 1).includes(obj.countryCode.toLowerCase())); + finalData = finalData.filter((obj) => countryCode.toLowerCase().split(',').filter((obj) => obj.length > 1).includes(obj.countryCode.toLowerCase())); } const returnObj = { data: finalData, worldStats }; From 0cccf70ed5b741016b3d7d05a44cfe33b0adf5d3 Mon Sep 17 00:00:00 2001 From: Monata Date: Thu, 4 Jun 2020 20:10:13 +0300 Subject: [PATCH 82/86] Fixed a typo in readme.md Fixed a typo (Johns Hopkins) --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 2df1d3c..2e71a30 100644 --- a/readme.md +++ b/readme.md @@ -21,7 +21,7 @@ Track The Corona virus stats from your terminal using curl or global command. ## Data Sources -* Source 1 : [John Hopkins Data API](https://github.com/ExpDev07/coronavirus-tracker-api) +* Source 1 : [Johns Hopkins Data API](https://github.com/ExpDev07/coronavirus-tracker-api) * Source 2 : [WorldoMeters Data API](https://github.com/NovelCOVID/API/) updated very frequently. **Note: Source 2 is the default source now if not mentioned** From 1a4116a69f9515b2c8a2ba90e77939d81b0dc452 Mon Sep 17 00:00:00 2001 From: sagark Date: Tue, 23 Jun 2020 16:04:56 +0530 Subject: [PATCH 83/86] added coronavirus story link in footer --- lib/helpers.js | 143 +++++++++++++++++++++++++++++++++---------------- 1 file changed, 97 insertions(+), 46 deletions(-) diff --git a/lib/helpers.js b/lib/helpers.js index 48bf96b..165e35a 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -42,7 +42,7 @@ e.getDeaths = (deaths) => { e.getActive = (active) => { return { content: chalk.magentaBright(h(active)), - hAlign: 'right' + hAlign: 'right', }; }; @@ -63,9 +63,12 @@ e.getEmoji = (countryCode) => { return ''; }; -e.calActive = ({ confirmed, recovered, deaths }) => confirmed - (recovered + deaths); -e.calMortalityPer = ({ confirmed, deaths }) => ((deaths / confirmed) * 100).toFixed(2); -e.calRecoveredPer = ({ confirmed, recovered }) => ((recovered / confirmed) * 100).toFixed(2); +e.calActive = ({ confirmed, recovered, deaths }) => + confirmed - (recovered + deaths); +e.calMortalityPer = ({ confirmed, deaths }) => + ((deaths / confirmed) * 100).toFixed(2); +e.calRecoveredPer = ({ confirmed, recovered }) => + ((recovered / confirmed) * 100).toFixed(2); /** historyObj = { @@ -78,11 +81,11 @@ e.calRecoveredPer = ({ confirmed, recovered }) => ((recovered / confirmed) * 100 */ e.historyObjToArr = (historyObj) => { const sortedTimestampArr = _.sortBy( - Object.keys(historyObj).map(date => new Date(date).getTime()), - Number + Object.keys(historyObj).map((date) => new Date(date).getTime()), + Number, ); - return sortedTimestampArr.map(timestamp => { + return sortedTimestampArr.map((timestamp) => { const dateFormatted = moment(timestamp).format('M/D/YY'); return historyObj[dateFormatted]; }); @@ -92,7 +95,7 @@ e.historyObjToArr = (historyObj) => { * Given both arr1 and arr2 has same number of elements * Returns -> sum[n] = arr1[n] + arr2[n] * -*/ + */ e.addArr = (arr1, arr2) => { if (arr1.length === 0) { return arr2; @@ -126,38 +129,50 @@ e.getOneWeekChange = ({ confirmedByDay }) => { }; e.getTotalStats = (countryData) => { - const worldStats = countryData.reduce((acc, countryObj) => { - acc.confirmed += countryObj.confirmed; - acc.deaths += countryObj.deaths; - acc.confirmedByDay = e.addArr(acc.confirmedByDay, countryObj.confirmedByDay); - acc.deathsByDay = e.addArr(acc.deathsByDay, countryObj.deathsByDay); - return acc; - }, { - confirmed: 0, - deaths: 0, - confirmedByDay: [], - deathsByDay: [], - }); + const worldStats = countryData.reduce( + (acc, countryObj) => { + acc.confirmed += countryObj.confirmed; + acc.deaths += countryObj.deaths; + acc.confirmedByDay = e.addArr( + acc.confirmedByDay, + countryObj.confirmedByDay, + ); + acc.deathsByDay = e.addArr(acc.deathsByDay, countryObj.deathsByDay); + return acc; + }, + { + confirmed: 0, + deaths: 0, + confirmedByDay: [], + deathsByDay: [], + }, + ); worldStats.mortalityPer = e.calMortalityPer(worldStats); return worldStats; }; -e.countryUpperCase = country => { +e.countryUpperCase = (country) => { if (country.length > 2) { - return country.toLowerCase().split(/\s+/).map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' '); + return country + .toLowerCase() + .split(/\s+/) + .map((word) => word.charAt(0).toUpperCase() + word.slice(1)) + .join(' '); } return country; }; -e.lookupCountry = country => { +e.lookupCountry = (country) => { country = e.countryUpperCase(country); try { - return lookup.byIso(country) - || lookup.byFips(country) - || lookup.byCountry(country); + return ( + lookup.byIso(country) || + lookup.byFips(country) || + lookup.byCountry(country) + ); } catch (error) { return lookup.byFips(country) || lookup.byCountry(country); } @@ -165,36 +180,72 @@ e.lookupCountry = country => { e.footer = (lastUpdated) => ` -${chalk.cyanBright('Stay safe. Stay inside.')} -${chalk.greenBright('Code')}: ${chalk.blueBright('https://github.com/sagarkarira/coronavirus-tracker-cli')} -${chalk.greenBright('Twitter')}: ${chalk.blueBright('https://twitter.com/ekrysis')} - -${chalk.magentaBright('Last Updated on:')} ${moment(lastUpdated).utc().format('DD-MMM-YYYY HH:MM')} UTC - -${chalk.red.bold('US STATES API')}: ${chalk.blueBright('https://corona-stats.online/states/us')} -${chalk.red.bold('HELP')}: ${chalk.blueBright('https://corona-stats.online/help')} +${chalk.greenBright('Code')}: ${chalk.blueBright( + 'https://github.com/sagarkarira/coronavirus-tracker-cli', +)} +${chalk.greenBright('Twitter')}: ${chalk.blueBright( + 'https://twitter.com/ekrysis', +)} + +${chalk.magentaBright('Last Updated on:')} ${moment(lastUpdated) + .utc() + .format('DD-MMM-YYYY HH:MM')} UTC + +${chalk.red.bold('US STATES API')}: ${chalk.blueBright( + 'https://corona-stats.online/states/us', +)} +${chalk.red.bold('HELP')}: ${chalk.blueBright( + 'https://corona-stats.online/help', +)} ${chalk.red.bold('SPONSORED BY')}: ${chalk.blueBright('ZEIT NOW')} +${chalk.greenBright( + 'Checkout fun new side project I am working on', +)}: ${chalk.bold.blueBright( + 'https://messagink.com/story/5eefb79b77193090dd29d3ce/global-response-to-coronavirus', +)} `; -e.getTableBorders = minimal => { +e.getTableBorders = (minimal) => { if (minimal) { return { - 'top': '', 'top-mid': '', 'top-left': '', 'top-right': '', - 'bottom': '', 'bottom-mid': '', 'bottom-left': '', 'bottom-right': '', - 'left': '', 'left-mid': '', 'mid': '', 'mid-mid': '', - 'right': '', 'right-mid': '', 'middle': ' ' + top: '', + 'top-mid': '', + 'top-left': '', + 'top-right': '', + bottom: '', + 'bottom-mid': '', + 'bottom-left': '', + 'bottom-right': '', + left: '', + 'left-mid': '', + mid: '', + 'mid-mid': '', + right: '', + 'right-mid': '', + middle: ' ', }; } return { - 'top': '═', 'top-mid': '╤', 'top-left': '╔', 'top-right': '╗', - 'bottom': '═', 'bottom-mid': '╧', 'bottom-left': '╚', 'bottom-right': '╝', - 'left': '║', 'left-mid': '╟', 'mid': '─', 'mid-mid': '┼', - 'right': '║', 'right-mid': '╢', 'middle': '│', + top: '═', + 'top-mid': '╤', + 'top-left': '╔', + 'top-right': '╗', + bottom: '═', + 'bottom-mid': '╧', + 'bottom-left': '╚', + 'bottom-right': '╝', + left: '║', + 'left-mid': '╟', + mid: '─', + 'mid-mid': '┼', + right: '║', + 'right-mid': '╢', + middle: '│', }; }; -e.getTableStyles = minimal => { +e.getTableStyles = (minimal) => { if (minimal) { return { 'padding-left': 0, 'padding-right': 0 }; } @@ -231,7 +282,7 @@ e.getTableHeadersV2 = (emojis, secondColumnName) => { return head; }; e.extraStats = (dataArr) => { - return dataArr.map(obj => { + return dataArr.map((obj) => { return { ...obj, mortalityPer: e.calMortalityPer(obj), @@ -302,4 +353,4 @@ exports.cFormatter = (content, chalkFn, alignment, humanize, extra = '') => { }; } return content; -}; \ No newline at end of file +}; From 89c688e2cbcea6f16f10973030bca2262cd64d10 Mon Sep 17 00:00:00 2001 From: Sagar Karira Date: Fri, 16 Oct 2020 13:24:40 +0530 Subject: [PATCH 84/86] changed zeit to vercel --- lib/helpers.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/helpers.js b/lib/helpers.js index 165e35a..566986f 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -197,11 +197,11 @@ ${chalk.red.bold('US STATES API')}: ${chalk.blueBright( ${chalk.red.bold('HELP')}: ${chalk.blueBright( 'https://corona-stats.online/help', )} -${chalk.red.bold('SPONSORED BY')}: ${chalk.blueBright('ZEIT NOW')} +${chalk.red.bold('SPONSORED BY')}: ${chalk.blueBright('Vercel')} ${chalk.greenBright( 'Checkout fun new side project I am working on', )}: ${chalk.bold.blueBright( - 'https://messagink.com/story/5eefb79b77193090dd29d3ce/global-response-to-coronavirus', + 'https://messagink.com', )} `; From c3b5fba0da51b95c76ef9deff480b2206461c266 Mon Sep 17 00:00:00 2001 From: Sagar Karira Date: Sat, 16 Oct 2021 09:12:35 +0530 Subject: [PATCH 85/86] changed source url --- lib/api.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/api.js b/lib/api.js index 101fe0a..d2fb154 100644 --- a/lib/api.js +++ b/lib/api.js @@ -50,7 +50,7 @@ exports.getWorldoMetersData = async (countryCode = 'ALL') => { return cache; } const result = await axios( - 'https://corona.lmao.ninja/v2/countries?sort=cases', + 'https://disease.sh/v2/countries?sort=cases', ); if (!result || !result.data) { throw new Error('WorldoMeters Source API failure'); @@ -105,7 +105,7 @@ exports.usaStats = async () => { console.log('cache', key); return cache; } - const result = await axios('https://corona.lmao.ninja/v2/states'); + const result = await axios('https://disease.sh/v2/states'); if (!result || !result.data) { throw new Error('usa stats API failure'); } From 1d515fbe0b97596b11f050e282cd61330dec01e8 Mon Sep 17 00:00:00 2001 From: Sagar Karira Date: Thu, 9 Mar 2023 22:04:18 +0530 Subject: [PATCH 86/86] add vercel cache --- app.js | 153 +- package-lock.json | 3849 ++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 3944 insertions(+), 58 deletions(-) diff --git a/app.js b/app.js index 49d212d..cb0b11d 100644 --- a/app.js +++ b/app.js @@ -13,7 +13,11 @@ const { lookupCountry, htmlTemplate, footer } = require('./lib/helpers'); const { getLiveUpdates } = require('./lib/reddit.js'); const { getWorldoMetersTable } = require('./lib/worldoMeters.js'); const { getUsaStats } = require('./lib/country/us.js'); -const { helpContent, countryNotFound, stateCountryNotFound } = require('./lib/constants'); +const { + helpContent, + countryNotFound, + stateCountryNotFound, +} = require('./lib/constants'); const app = express(); const port = process.env.PORT || 3001; @@ -24,7 +28,7 @@ function errorHandler(error, req, res) { const body = ` I am sorry. Something went wrong. Please report it\n ${error.message} - ${footer(new Date)} + ${footer(new Date())} `; if (req.isCurl) { return body; @@ -34,27 +38,35 @@ function errorHandler(error, req, res) { app.set('json escape', true); -app.use(helmet({ - dnsPrefetchControl: false, - frameguard: { - action: 'deny' - } -})); - -app.use(helmet.hsts({ - force: true, - includeSubDomains: true, - maxAge: 63072000, // 2 years - preload: true -})); +app.use( + helmet({ + dnsPrefetchControl: false, + frameguard: { + action: 'deny', + }, + }), +); + +app.use( + helmet.hsts({ + force: true, + includeSubDomains: true, + maxAge: 63072000, // 2 years + preload: true, + }), +); app.use(helmet.referrerPolicy({ policy: 'strict-origin-when-cross-origin' })); -app.use(morgan(':remote-addr :remote-user :method :url :status :res[content-length] - :response-time ms')); +app.use( + morgan( + ':remote-addr :remote-user :method :url :status :res[content-length] - :response-time ms', + ), +); app.use('/favicon.ico', express.static('./favicon.ico')); app.use((req, res, next) => { - res.setHeader('Cache-Control', 'no-cache'); + res.setHeader('Cache-Control', 's-maxage=600'); req.isCurl = IS_CURL_RE.test(req.headers['user-agent']); next(); }); @@ -69,22 +81,25 @@ app.get('/', (req, res) => { if (source === 1) { if (format.toLowerCase() === 'json') { - return getJSONData().then(result => { - return res.json(result); - }).catch(error => errorHandler(error, req, res)); + return getJSONData() + .then((result) => { + return res.json(result); + }) + .catch((error) => errorHandler(error, req, res)); } return getCompleteTable({ isCurl, emojis, minimal, top }) - .then(result => { + .then((result) => { return res.send(result); - }).catch(error => errorHandler(error, req, res)); + }) + .catch((error) => errorHandler(error, req, res)); } - return getWorldoMetersTable({ isCurl, emojis, minimal, top, format}) - .then(result => { + return getWorldoMetersTable({ isCurl, emojis, minimal, top, format }) + .then((result) => { return res.send(result); - }).catch(error => errorHandler(error, req, res)); - + }) + .catch((error) => errorHandler(error, req, res)); }); app.get('/updates', (req, res) => { @@ -92,14 +107,18 @@ app.get('/updates', (req, res) => { const format = req.query.format ? req.query.format : ''; if (format.toLowerCase() === 'json') { - return getLiveUpdates({ json: true, isCurl }).then(result => { - return res.json(result); - }).catch(error => errorHandler(error, req, res)); + return getLiveUpdates({ json: true, isCurl }) + .then((result) => { + return res.json(result); + }) + .catch((error) => errorHandler(error, req, res)); } - return getLiveUpdates({ json: false, isCurl }).then(result => { - return res.send(result); - }).catch(error => errorHandler(error, req, res)); + return getLiveUpdates({ json: false, isCurl }) + .then((result) => { + return res.send(result); + }) + .catch((error) => errorHandler(error, req, res)); }); app.get(['/:country/graph', '/graph'], (req, res) => { @@ -107,17 +126,17 @@ app.get(['/:country/graph', '/graph'], (req, res) => { const isCurl = req.isCurl; if (!country) { return getGraph({ isCurl }) - .then(result => res.send(result)) - .catch(error => errorHandler(error, req, res)); + .then((result) => res.send(result)) + .catch((error) => errorHandler(error, req, res)); } const lookupObj = lookupCountry(country); if (!lookupObj) { return res.status(404).send(countryNotFound(isCurl)); } - return getGraph({countryCode: lookupObj.iso2, isCurl }) - .then(result => res.send(result)) - .catch(error => errorHandler(error, req, res)); + return getGraph({ countryCode: lookupObj.iso2, isCurl }) + .then((result) => res.send(result)) + .catch((error) => errorHandler(error, req, res)); }); app.get('/help', (req, res) => { @@ -141,14 +160,14 @@ app.get('/states/:country', (req, res) => { return res.status(404).send(stateCountryNotFound(isCurl)); } if (lookupObj.iso2 === 'US') { - return getUsaStats({ isCurl, minimal, top, format}) - .then(result => { + return getUsaStats({ isCurl, minimal, top, format }) + .then((result) => { return res.send(result); - }).catch(error => errorHandler(error, req, res)); + }) + .catch((error) => errorHandler(error, req, res)); } }); - app.get('/:country', (req, res) => { const { country } = req.params; const isCurl = req.isCurl; @@ -159,15 +178,29 @@ app.get('/:country', (req, res) => { if (!country || country.toUpperCase() === 'ALL' || country.includes(',')) { if (format.toLowerCase() === 'json') { - return getWorldoMetersTable({ countryCode: country, isCurl, emojis, minimal, format }).then(result => { - return res.json(result); - }).catch(error => errorHandler(error, req, res)); + return getWorldoMetersTable({ + countryCode: country, + isCurl, + emojis, + minimal, + format, + }) + .then((result) => { + return res.json(result); + }) + .catch((error) => errorHandler(error, req, res)); } - return getWorldoMetersTable({ countryCode: country, isCurl, emojis, minimal }) - .then(result => { + return getWorldoMetersTable({ + countryCode: country, + isCurl, + emojis, + minimal, + }) + .then((result) => { return res.send(result); - }).catch(error => errorHandler(error, req, res)); + }) + .catch((error) => errorHandler(error, req, res)); } if (source === 1) { const lookupObj = lookupCountry(country); @@ -178,14 +211,17 @@ app.get('/:country', (req, res) => { const { iso2 } = lookupObj; if (format.toLowerCase() === 'json') { - return getJSONDataForCountry(iso2).then(result => { - return res.json(result); - }).catch(error => errorHandler(error, req, res)); + return getJSONDataForCountry(iso2) + .then((result) => { + return res.json(result); + }) + .catch((error) => errorHandler(error, req, res)); } return getCountryTable({ countryCode: iso2, isCurl, emojis, minimal }) - .then(result => { + .then((result) => { return res.send(result); - }).catch(error => errorHandler(error, req, res)); + }) + .catch((error) => errorHandler(error, req, res)); } const lookupObj = lookupCountry(country); @@ -196,10 +232,17 @@ app.get('/:country', (req, res) => { const { iso2 } = lookupObj; - return getWorldoMetersTable({ countryCode: iso2, isCurl, emojis, minimal, format }) - .then(result => { + return getWorldoMetersTable({ + countryCode: iso2, + isCurl, + emojis, + minimal, + format, + }) + .then((result) => { return res.send(result); - }).catch(error => errorHandler(error, req, res)); + }) + .catch((error) => errorHandler(error, req, res)); }); app.listen(port, () => console.log(`Running on ${port}`)); diff --git a/package-lock.json b/package-lock.json index 79385de..90f9c96 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,8 +1,3850 @@ { "name": "coronavirus-tracker-cli", - "version": "0.8.0", - "lockfileVersion": 1, + "version": "0.9.2", + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "coronavirus-tracker-cli", + "version": "0.9.2", + "license": "ISC", + "dependencies": { + "asciichart": "^1.5.11", + "axios": "^0.19.2", + "chalk": "^3.0.0", + "cli-table3": "^0.5.1", + "country-code-lookup": "0.0.17", + "emoji-flags": "^1.2.0", + "express": "^4.17.1", + "helmet": "^3.21.3", + "humanize-number": "0.0.2", + "lodash": "^4.17.15", + "moment": "^2.24.0", + "morgan": "^1.10.0", + "node-cache": "^5.1.0", + "strip-ansi": "^6.0.0", + "yargonaut": "^1.1.4", + "yargs": "15.3.1" + }, + "bin": { + "corona": "bin/index.js" + }, + "devDependencies": { + "eslint": "^6.8.0", + "nodemon": "^2.0.2" + }, + "engines": { + "node": ">=12.x" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.8.3" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz", + "integrity": "sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw==", + "dev": true + }, + "node_modules/@babel/highlight": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.9.0", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "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, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "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": ">=4" + } + }, + "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": { + "color-name": "1.1.3" + } + }, + "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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "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": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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": ">=4" + } + }, + "node_modules/@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" + }, + "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==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", + "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", + "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/ansi-align": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "dev": true, + "dependencies": { + "string-width": "^2.0.0" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "dependencies": { + "type-fest": "^0.11.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "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, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "node_modules/asciichart": { + "version": "1.5.11", + "resolved": "https://registry.npmjs.org/asciichart/-/asciichart-1.5.11.tgz", + "integrity": "sha512-0CoOAZFU+H94x9EvMpw+sMOpbzB93I0L6StXRxlGRxEQC+mHx+V0ArjHIRr+q2W7B/R7elLrkc9RvY5XBmq9Fg==" + }, + "node_modules/astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/axios": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", + "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", + "deprecated": "Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410", + "dependencies": { + "follow-redirects": "1.5.10" + } + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "node_modules/basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/binary-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", + "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dependencies": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/bowser": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.9.0.tgz", + "integrity": "sha512-2ld76tuLBNFekRgmJfT2+3j5MIrP6bFict8WAIT3beq+srz1gcKNAdNKMqHqauQt63NmAa88HfP1/Ypa9Er3HA==" + }, + "node_modules/boxen": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", + "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "dev": true, + "dependencies": { + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/boxen/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, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/boxen/node_modules/camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/boxen/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": ">=4" + } + }, + "node_modules/boxen/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": { + "color-name": "1.1.3" + } + }, + "node_modules/boxen/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/boxen/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/boxen/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": ">=4" + } + }, + "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/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelize": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", + "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" + }, + "node_modules/capture-stack-trace": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", + "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/chokidar": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz", + "integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.3.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.1.2" + } + }, + "node_modules/ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "dev": true + }, + "node_modules/cli-boxes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-table3": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", + "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", + "dependencies": { + "object-assign": "^4.1.0", + "string-width": "^2.1.1" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "colors": "^1.1.2" + } + }, + "node_modules/cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/columnify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.1.tgz", + "integrity": "sha1-Ff3agDo4dfh/nTArO8goky1mQAM=", + "dependencies": { + "strip-ansi": "^2.0.1", + "wcwidth": "^1.0.0" + } + }, + "node_modules/columnify/node_modules/ansi-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz", + "integrity": "sha1-QchHGUZGN15qGl0Qw8oFTvn8mA0=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/columnify/node_modules/strip-ansi": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-2.0.1.tgz", + "integrity": "sha1-32LBqpTtLxFOHQ8h/R1QSCt5pg4=", + "dependencies": { + "ansi-regex": "^1.0.0" + }, + "bin": { + "strip-ansi": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/configstore": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", + "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", + "dev": true, + "dependencies": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-security-policy-builder": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/content-security-policy-builder/-/content-security-policy-builder-2.1.0.tgz", + "integrity": "sha512-/MtLWhJVvJNkA9dVLAp6fg9LxD2gfI6R2Fi1hPmfjYXSahJJzcfvoeDOxSyp4NvxMuwWv3WMssE9o31DoULHrQ==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "node_modules/country-code-lookup": { + "version": "0.0.17", + "resolved": "https://registry.npmjs.org/country-code-lookup/-/country-code-lookup-0.0.17.tgz", + "integrity": "sha512-LI4sIeuuYhkuxbI0Bf78aBoupQxjTMH5mVgT1bul1m2XnaT7jaxlaplRcH8XA6ZNFBN4CmuzQKOpSESzuGHlig==" + }, + "node_modules/create-error-class": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "dev": true, + "dependencies": { + "capture-stack-trace": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/cross-spawn/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/dasherize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dasherize/-/dasherize-2.0.0.tgz", + "integrity": "sha1-bYCcnNDPe7iVLYD8hPoT1H3bEwg=" + }, + "node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "node_modules/defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "node_modules/dns-prefetch-control": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dns-prefetch-control/-/dns-prefetch-control-0.2.0.tgz", + "integrity": "sha512-hvSnros73+qyZXhHFjx2CMLwoj3Fe7eR9EJsFsqmcI1bB2OBWL/+0YzaEaKssCHnj/6crawNnUyw74Gm2EKe+Q==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dont-sniff-mimetype": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/dont-sniff-mimetype/-/dont-sniff-mimetype-1.1.0.tgz", + "integrity": "sha512-ZjI4zqTaxveH2/tTlzS1wFp+7ncxNZaIEWYg3lzZRHkKf5zPT/MnEG6WL0BhHMJUabkh8GeU5NL5j+rEUCb7Ug==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "dev": true, + "dependencies": { + "is-obj": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "node_modules/emoji-flags": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/emoji-flags/-/emoji-flags-1.2.0.tgz", + "integrity": "sha1-VrZGKUwYmoo/jRIjOfqIJqSgDO8=", + "dependencies": { + "columnify": "1.5.1", + "lodash.find": "3.2.1" + }, + "bin": { + "emoji-flags": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "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": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", + "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^7.0.0", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.14", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.3", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-scope": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", + "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", + "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/eslint/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, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/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": ">=4" + } + }, + "node_modules/eslint/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": { + "color-name": "1.1.3" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/eslint/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/eslint/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/eslint/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": ">=4" + } + }, + "node_modules/espree": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "dev": true, + "dependencies": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "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, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.2.0.tgz", + "integrity": "sha512-weltsSqdeWIX9G2qQZz7KlTRJdkkOCTPgLYJUz1Hacf48R4YOwGPHO3+ORfWedqJKbq5WQmsgK90n+pFLIKt/Q==", + "dev": true, + "dependencies": { + "estraverse": "^5.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.0.0.tgz", + "integrity": "sha512-j3acdrMzqrxmJTNj5dbr1YbjacrYgAxVMeF0gK16E3j494mOe7xygM/ZLIguEQ0ETwAg2hlJCtHRGav+y0Ny5A==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "dependencies": { + "estraverse": "^4.1.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "dependencies": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/execa/node_modules/cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "node_modules/expect-ct": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/expect-ct/-/expect-ct-0.2.0.tgz", + "integrity": "sha512-6SK3MG/Bbhm8MsgyJAylg+ucIOU71/FzyFalcfu5nY19dH8y/z0tBJU0wrNBXD4B27EoQtqPF/9wqH0iYAd04g==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dependencies": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/feature-policy": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/feature-policy/-/feature-policy-0.3.0.tgz", + "integrity": "sha512-ZtijOTFN7TzCujt1fnNhfWPFPSHeZkesff9AXZj+UEjYBynWNUIYpC87Ve4wHzyexQsImicLu7WsC2LHq7/xrQ==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/figlet": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.3.0.tgz", + "integrity": "sha512-f7A8aOJAfyehLJ7lQ6rEA8WJw7kOk3lfWRi5piSjkzbK5YkI5sqO8eiLHz1ehO+DM0QYB85i8VfA6XIGUbU1dg==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "dependencies": { + "flat-cache": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "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==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "dependencies": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/flatted": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", + "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "dependencies": { + "debug": "=3.1.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/frameguard": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/frameguard/-/frameguard-3.1.0.tgz", + "integrity": "sha512-TxgSKM+7LTA6sidjOiSZK9wxY0ffMPY3Wta//MqwmX0nZuEHc8QrkV8Fh3ZhMJeiH+Uyh/tcaarImRy8u77O7g==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", + "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", + "deprecated": "\"Please update to latest v2.3 or v2.2\"", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "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==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "dev": true, + "dependencies": { + "ini": "^1.3.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "dependencies": { + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/got": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "dev": true, + "dependencies": { + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "dev": true + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/helmet": { + "version": "3.21.3", + "resolved": "https://registry.npmjs.org/helmet/-/helmet-3.21.3.tgz", + "integrity": "sha512-8OjGNdpG3WQhPO71fSy2fT4X3FSNutU1LDeAf+YS+Vil6r+fE7w8per5mNed6egGYbZl3QhKXgFzMYSwys+YQw==", + "dependencies": { + "depd": "2.0.0", + "dns-prefetch-control": "0.2.0", + "dont-sniff-mimetype": "1.1.0", + "expect-ct": "0.2.0", + "feature-policy": "0.3.0", + "frameguard": "3.1.0", + "helmet-crossdomain": "0.4.0", + "helmet-csp": "2.9.5", + "hide-powered-by": "1.1.0", + "hpkp": "2.0.0", + "hsts": "2.2.0", + "ienoopen": "1.1.0", + "nocache": "2.1.0", + "referrer-policy": "1.2.0", + "x-xss-protection": "1.3.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/helmet-crossdomain": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/helmet-crossdomain/-/helmet-crossdomain-0.4.0.tgz", + "integrity": "sha512-AB4DTykRw3HCOxovD1nPR16hllrVImeFp5VBV9/twj66lJ2nU75DP8FPL0/Jp4jj79JhTfG+pFI2MD02kWJ+fA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/helmet-csp": { + "version": "2.9.5", + "resolved": "https://registry.npmjs.org/helmet-csp/-/helmet-csp-2.9.5.tgz", + "integrity": "sha512-w9nps5adqFQwgktVPDbXkARmZot/nr8aegzQas9AXdBSwBFBBefPpDSTV0wtgHlAUdDwY6MZo7qAl9yts3ppJg==", + "dependencies": { + "bowser": "2.9.0", + "camelize": "1.0.0", + "content-security-policy-builder": "2.1.0", + "dasherize": "2.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/helmet/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/hide-powered-by": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hide-powered-by/-/hide-powered-by-1.1.0.tgz", + "integrity": "sha512-Io1zA2yOA1YJslkr+AJlWSf2yWFkKjvkcL9Ni1XSUqnGLr/qRQe2UI3Cn/J9MsJht7yEVCe0SscY1HgVMujbgg==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/hpkp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hpkp/-/hpkp-2.0.0.tgz", + "integrity": "sha1-EOFCJk52IVpdMMROxD3mTe5tFnI=" + }, + "node_modules/hsts": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/hsts/-/hsts-2.2.0.tgz", + "integrity": "sha512-ToaTnQ2TbJkochoVcdXYm4HOCliNozlviNsg+X2XQLQvZNI/kCHR9rZxVYpJB3UPcHz80PgxRyWQ7PdU1r+VBQ==", + "dependencies": { + "depd": "2.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/hsts/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/humanize-number": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/humanize-number/-/humanize-number-0.0.2.tgz", + "integrity": "sha1-EcCvakcWQ2M1iFiASPF5lUFInBg=" + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ienoopen": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ienoopen/-/ienoopen-1.1.0.tgz", + "integrity": "sha512-MFs36e/ca6ohEKtinTJ5VvAJ6oDRAYFdYXweUnGY9L9vcoqFOU4n2ZhmJ0C4z/cwGZ3YIQRSB3XZ1+ghZkY5NQ==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "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": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "node_modules/ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "deprecated": "Please update to ini >=1.3.6 to avoid a prototype pollution issue", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/inquirer": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", + "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.15", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.5.3", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/inquirer/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/inquirer/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "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==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "dev": true, + "dependencies": { + "ci-info": "^1.5.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "engines": { + "node": ">=4" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "dev": true, + "dependencies": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-npm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", + "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "dependencies": { + "path-is-inside": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "node_modules/is-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-retry-allowed": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "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": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "node_modules/latest-version": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", + "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "dev": true, + "dependencies": { + "package-json": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + }, + "node_modules/lodash._basecallback": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/lodash._basecallback/-/lodash._basecallback-3.3.1.tgz", + "integrity": "sha1-t7K7Q9whYEJKIczybFfkQ3cqjic=", + "dependencies": { + "lodash._baseisequal": "^3.0.0", + "lodash._bindcallback": "^3.0.0", + "lodash.isarray": "^3.0.0", + "lodash.pairs": "^3.0.0" + } + }, + "node_modules/lodash._baseeach": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash._baseeach/-/lodash._baseeach-3.0.4.tgz", + "integrity": "sha1-z4cGVyyhROjZ11InyZDamC+TKvM=", + "dependencies": { + "lodash.keys": "^3.0.0" + } + }, + "node_modules/lodash._basefind": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basefind/-/lodash._basefind-3.0.0.tgz", + "integrity": "sha1-srugXMZF+XLeLPkl+iv2Og9gyK4=" + }, + "node_modules/lodash._basefindindex": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/lodash._basefindindex/-/lodash._basefindindex-3.6.0.tgz", + "integrity": "sha1-8IM2ChsCJBjtgbyJm+sxLiHnSk8=" + }, + "node_modules/lodash._baseisequal": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/lodash._baseisequal/-/lodash._baseisequal-3.0.7.tgz", + "integrity": "sha1-2AJfdjOdKTQnZ9zIh85cuVpbUfE=", + "dependencies": { + "lodash.isarray": "^3.0.0", + "lodash.istypedarray": "^3.0.0", + "lodash.keys": "^3.0.0" + } + }, + "node_modules/lodash._bindcallback": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", + "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=" + }, + "node_modules/lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=" + }, + "node_modules/lodash.find": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/lodash.find/-/lodash.find-3.2.1.tgz", + "integrity": "sha1-BG4xnzrOkSrGySRsf2g8XsB7Nq0=", + "dependencies": { + "lodash._basecallback": "^3.0.0", + "lodash._baseeach": "^3.0.0", + "lodash._basefind": "^3.0.0", + "lodash._basefindindex": "^3.0.0", + "lodash.isarray": "^3.0.0", + "lodash.keys": "^3.0.0" + } + }, + "node_modules/lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=" + }, + "node_modules/lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=" + }, + "node_modules/lodash.istypedarray": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz", + "integrity": "sha1-yaR3SYYHUB2OhJTSg7h8OSgc72I=" + }, + "node_modules/lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "dependencies": { + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" + } + }, + "node_modules/lodash.pairs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash.pairs/-/lodash.pairs-3.0.1.tgz", + "integrity": "sha1-u+CNV4bu6qCaFckevw3LfSvjJqk=", + "dependencies": { + "lodash.keys": "^3.0.0" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", + "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.26", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", + "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", + "dependencies": { + "mime-db": "1.43.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "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/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", + "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/moment": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", + "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==", + "engines": { + "node": "*" + } + }, + "node_modules/morgan": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", + "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", + "dependencies": { + "basic-auth": "~2.0.1", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-finished": "~2.3.0", + "on-headers": "~1.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/morgan/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/morgan/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/nocache": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/nocache/-/nocache-2.1.0.tgz", + "integrity": "sha512-0L9FvHG3nfnnmaEQPjT9xhfN4ISk0A8/2j4M37Np4mcDesJjHgEUfgPhdCyZuFI954tjokaIj/A3NdpFNdEh4Q==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/node-cache": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-cache/-/node-cache-5.1.0.tgz", + "integrity": "sha512-gFQwYdoOztBuPlwg6DKQEf50G+gkK69aqLnw4djkmlHCzeVrLJfwvg9xl4RCAGviTIMUVoqcyoZ/V/wPEu/VVg==", + "dependencies": { + "clone": "2.x" + }, + "engines": { + "node": ">= 0.4.6" + } + }, + "node_modules/node-cache/node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/nodemon": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.2.tgz", + "integrity": "sha512-GWhYPMfde2+M0FsHnggIHXTqPDHXia32HRhh6H0d75Mt9FKUoCBvumNHr7LdrpPBTKxsWmIEOjoN+P4IU6Hcaw==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "chokidar": "^3.2.2", + "debug": "^3.2.6", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.7", + "semver": "^5.7.1", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.2", + "update-notifier": "^2.5.0" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/nodemon/node_modules/debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.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": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/nodemon/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nodemon/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "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==", + "dev": true, + "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": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", + "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "dev": true, + "dependencies": { + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/package-json/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-require": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parent-require/-/parent-require-1.0.0.tgz", + "integrity": "sha1-dGoWdjgIOoYLDu9nMssn7UbDKXc=", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "node_modules/picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "dependencies": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "node_modules/pstree.remy": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.7.tgz", + "integrity": "sha512-xsMgrUwRpuGskEzBFkH8NmTimbZ5PcPup0LA8JJkHIm2IMUbQcpo3yeLNWVrufEYjh8YwtSVh0xz6UeWc5Oh5A==", + "dev": true + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dependencies": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz", + "integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==", + "dev": true, + "dependencies": { + "picomatch": "^2.0.7" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/referrer-policy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/referrer-policy/-/referrer-policy-1.2.0.tgz", + "integrity": "sha512-LgQJIuS6nAy1Jd88DCQRemyE3mS+ispwlqMk3b0yjZ257fI1v9c+/p6SD5gP5FGyXUIgrNOAfmyioHwZtYv2VA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "dev": true, + "engines": { + "node": ">=6.5.0" + } + }, + "node_modules/registry-auth-token": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", + "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==", + "dev": true, + "dependencies": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "dev": true, + "dependencies": { + "rc": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/run-async": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz", + "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==", + "dev": true, + "dependencies": { + "is-promise": "^2.1.0" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/rxjs": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", + "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "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/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-diff": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "dev": true, + "dependencies": { + "semver": "^5.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/semver-diff/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + }, + "node_modules/serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "node_modules/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "node_modules/slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/slice-ansi/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, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/slice-ansi/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": { + "color-name": "1.1.3" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-json-comments": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", + "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "dev": true, + "dependencies": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/table/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/table/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/table/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/table/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "dev": true, + "dependencies": { + "execa": "^0.7.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "node_modules/timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "engines": { + "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==", + "dev": true, + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tslib": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", + "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/undefsafe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", + "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", + "dev": true, + "dependencies": { + "debug": "^2.2.0" + } + }, + "node_modules/undefsafe/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "dev": true, + "dependencies": { + "crypto-random-string": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unzip-response": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/update-notifier": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", + "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", + "dev": true, + "dependencies": { + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/update-notifier/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, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/update-notifier/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": ">=4" + } + }, + "node_modules/update-notifier/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": { + "color-name": "1.1.3" + } + }, + "node_modules/update-notifier/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/update-notifier/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/update-notifier/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": ">=4" + } + }, + "node_modules/uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "dev": true, + "dependencies": { + "prepend-http": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", + "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", + "dev": true + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "node_modules/widest-line": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", + "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "dev": true, + "dependencies": { + "string-width": "^2.1.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "dependencies": { + "mkdirp": "^0.5.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "node_modules/x-xss-protection": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/x-xss-protection/-/x-xss-protection-1.3.0.tgz", + "integrity": "sha512-kpyBI9TlVipZO4diReZMAHWtS0MMa/7Kgx8hwG/EuZLiA6sg4Ah/4TRdASHhRRN3boobzcYgFRUFSgHRge6Qhg==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + }, + "node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "node_modules/yargonaut": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/yargonaut/-/yargonaut-1.1.4.tgz", + "integrity": "sha512-rHgFmbgXAAzl+1nngqOcwEljqHGG9uUZoPjsdZEs1w5JW9RXYzrSvH/u70C1JE5qFi0qjsdhnUX/dJRpWqitSA==", + "dependencies": { + "chalk": "^1.1.1", + "figlet": "^1.1.1", + "parent-require": "^1.0.0" + } + }, + "node_modules/yargonaut/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargonaut/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargonaut/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargonaut/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargonaut/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/yargs": { + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", + "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs-parser": { + "version": "18.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.1.tgz", + "integrity": "sha512-KRHEsOM16IX7XuLnMOqImcPNbLVXMNHYAoFc3BKR8Ortl5gzDbtXvvEoGx9imk5E+X1VeNKNlcHr8B8vi+7ipA==", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + } + }, "dependencies": { "@babel/code-frame": { "version": "7.8.3", @@ -112,7 +3954,8 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", - "dev": true + "dev": true, + "requires": {} }, "ajv": { "version": "6.12.0",