diff --git a/ExampleUI/.editorconfig b/.editorconfig similarity index 100% rename from ExampleUI/.editorconfig rename to .editorconfig diff --git a/.gitignore b/.gitignore index 32932cd..86d943a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,109 +1,46 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -lerna-debug.log* - -# Output -out/**/*.js -out/**/*.map -out - -# Diagnostic reports (https://nodejs.org/api/report.html) -report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -*.lcov - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# TypeScript v1 declaration files -typings/ - -# TypeScript cache -*.tsbuildinfo - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Microbundle cache -.rpt2_cache/ -.rts2_cache_cjs/ -.rts2_cache_es/ -.rts2_cache_umd/ - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variables file -.env -.env.test - -# parcel-bundler cache (https://parceljs.org/) -.cache - -# Next.js build output -.next - -# Nuxt.js build / generate output -.nuxt -dist - -# Gatsby files -.cache/ -# Comment in the public line in if your project uses Gatsby and *not* Next.js -# https://nextjs.org/blog/next-9-1#public-directory-support -# public - -# vuepress build output -.vuepress/dist - -# Serverless directories -.serverless/ - -# FuseBox cache -.fusebox/ - -# DynamoDB Local files -.dynamodb/ - -# TernJS port file -.tern-port +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# compiled output +/dist +/tmp +/out-tsc +# Only exists if Bazel was run +/bazel-out + +# dependencies +/node_modules + +# profiling files +chrome-profiler-events*.json +speed-measure-plugin*.json + +# IDEs and editors +/.idea +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# IDE - VSCode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +.history/* + +# misc +/.sass-cache +/connect.lock +/coverage +/libpeerconnection.log +npm-debug.log +yarn-error.log +testem.log +/typings + +# System Files +.DS_Store +Thumbs.db diff --git a/ExampleUI/.vscode/launch.json b/.vscode/launch.json similarity index 100% rename from ExampleUI/.vscode/launch.json rename to .vscode/launch.json diff --git a/ExampleApi/.vscode/launch.json b/ExampleApi/.vscode/launch.json deleted file mode 100644 index 1d91807..0000000 --- a/ExampleApi/.vscode/launch.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "type": "node", - "request": "launch", - "name": "Launch Program", - "preLaunchTask": "tsc: build - tsconfig.json", - "skipFiles": [ - "/**" - ], - "program": "${workspaceFolder}\\out\\app.js" - } - ] -} \ No newline at end of file diff --git a/ExampleApi/.vscode/tasks.json b/ExampleApi/.vscode/tasks.json deleted file mode 100644 index 0e125ab..0000000 --- a/ExampleApi/.vscode/tasks.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "type": "typescript", - "tsconfig": "tsconfig.json", - "problemMatcher": [ - "$tsc" - ], - "group": "build", - "label": "tsc: build - tsconfig.json" - } - ] -} \ No newline at end of file diff --git a/ExampleApi/package-lock.json b/ExampleApi/package-lock.json deleted file mode 100644 index bff98d1..0000000 --- a/ExampleApi/package-lock.json +++ /dev/null @@ -1,1108 +0,0 @@ -{ - "name": "exampleapi", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@types/bcrypt": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/bcrypt/-/bcrypt-3.0.0.tgz", - "integrity": "sha512-nohgNyv+1ViVcubKBh0+XiNJ3dO8nYu///9aJ4cgSqv70gBL+94SNy/iC2NLzKPT2Zt/QavrOkBVbZRLZmw6NQ==", - "dev": true - }, - "@types/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==", - "dev": true, - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/bson": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.0.2.tgz", - "integrity": "sha512-+uWmsejEHfmSjyyM/LkrP0orfE2m5Mx9Xel4tXNeqi1ldK5XMQcDsFkBmLDtuyKUbxj2jGDo0H240fbCRJZo7Q==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/connect": { - "version": "3.4.33", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz", - "integrity": "sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/express": { - "version": "4.17.6", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.6.tgz", - "integrity": "sha512-n/mr9tZI83kd4azlPG5y997C/M4DNABK9yErhFM6hKdym4kkmd9j0vtsJyjFIwfRBxtrxZtAfGZCNRIBMFLK5w==", - "dev": true, - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "*", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.5.tgz", - "integrity": "sha512-578YH5Lt88AKoADy0b2jQGwJtrBxezXtVe/MBqWXKZpqx91SnC0pVkVCcxcytz3lWW+cHBYDi3Ysh0WXc+rAYw==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/range-parser": "*" - } - }, - "@types/jsonwebtoken": { - "version": "8.3.9", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.3.9.tgz", - "integrity": "sha512-00rI8GbOKuRtoYxltFSRTVUXCRLbuYwln2/nUMPtFU9JGS7if+nnmLjeoFGmqsNCmblPLAaeQ/zMLVsHr6T5bg==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/mime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.1.tgz", - "integrity": "sha512-FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw==", - "dev": true - }, - "@types/mongodb": { - "version": "3.5.8", - "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.5.8.tgz", - "integrity": "sha512-2yOociZaXyiJ9CvGp/svjtlMCIPdl82XIRVmx35ehuWA046bipLwwcXfwVyvTYIU98yWYK5p44knCVQ+ZS4Bdw==", - "dev": true, - "requires": { - "@types/bson": "*", - "@types/node": "*" - } - }, - "@types/node": { - "version": "13.13.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.1.tgz", - "integrity": "sha512-uysqysLJ+As9jqI5yqjwP3QJrhOcUwBjHUlUxPxjbplwKoILvXVsmYWEhfmAQlrPfbRZmhJB007o4L9sKqtHqQ==", - "dev": true - }, - "@types/qs": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.1.tgz", - "integrity": "sha512-lhbQXx9HKZAPgBkISrBcmAcMpZsmpe/Cd/hY7LGZS5OfkySUBItnPZHgQPssWYUET8elF+yCFBbP1Q0RZPTdaw==", - "dev": true - }, - "@types/range-parser": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz", - "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==", - "dev": true - }, - "@types/serve-static": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.3.tgz", - "integrity": "sha512-oprSwp094zOglVrXdlo/4bAHtKTAxX6VT8FOZlBKrmyLbNvE1zxZyJ6yikMVtHIvwP45+ZQGJn+FdXGKTozq0g==", - "dev": true, - "requires": { - "@types/express-serve-static-core": "*", - "@types/mime": "*" - } - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "bcrypt": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-4.0.1.tgz", - "integrity": "sha512-hSIZHkUxIDS5zA2o00Kf2O5RfVbQ888n54xQoF/eIaquU4uaLxK8vhhBdktd0B3n2MjkcAWzv4mnhogykBKOUQ==", - "requires": { - "node-addon-api": "^2.0.0", - "node-pre-gyp": "0.14.0" - } - }, - "bl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.0.tgz", - "integrity": "sha512-wbgvOpqopSr7uq6fJrLH8EsvYMJf9gzfo2jCsL2eTy75qXPukA4pCgHamOQkZtY5vmfVtjB+P3LNlMHW5CEZXA==", - "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "requires": { - "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" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "bson": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.4.tgz", - "integrity": "sha512-S/yKGU1syOMzO86+dGpg2qGoDL0zvzcb262G+gqEy6TgP6rt6z6qxSFX/8X6vLC91P7G7C3nLs0+bvDzmvBA3Q==" - }, - "buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "requires": { - "safe-buffer": "5.1.2" - } - }, - "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==" - }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "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" - } - }, - "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==" - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - }, - "denque": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/denque/-/denque-1.4.1.tgz", - "integrity": "sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ==" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" - }, - "ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "requires": { - "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" - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "requires": { - "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" - } - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "requires": { - "minipass": "^2.6.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "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" - } - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - }, - "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==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", - "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "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==" - }, - "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-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", - "requires": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "dependencies": { - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "jwa": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", - "requires": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "requires": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" - }, - "lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" - }, - "lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" - }, - "lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" - }, - "lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "memory-pager": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", - "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", - "optional": true - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.43.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", - "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==" - }, - "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==", - "requires": { - "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==", - "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==" - }, - "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "requires": { - "minipass": "^2.9.0" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - }, - "mongodb": { - "version": "3.5.6", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.5.6.tgz", - "integrity": "sha512-sh3q3GLDLT4QmoDLamxtAECwC3RGjq+oNuK1ENV8+tnipIavss6sMYt77hpygqlMOCt0Sla5cl7H4SKCVBCGEg==", - "requires": { - "bl": "^2.2.0", - "bson": "^1.1.4", - "denque": "^1.4.1", - "require_optional": "^1.0.1", - "safe-buffer": "^5.1.2", - "saslprep": "^1.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "needle": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.4.1.tgz", - "integrity": "sha512-x/gi6ijr4B7fwl6WYL9FwlCvRQKGlUNvnceho8wxkwXqN8jvVmmmATTmZPRRG7b/yC1eode26C2HO9jl78Du9g==", - "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - }, - "node-addon-api": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.0.tgz", - "integrity": "sha512-ASCL5U13as7HhOExbT6OlWJJUV/lLzL2voOSP1UVehpRD8FbSrSDjfScK/KwAvVTI5AS6r4VwbOMlIqtvRidnA==" - }, - "node-pre-gyp": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz", - "integrity": "sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==", - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4.4.2" - } - }, - "nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", - "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", - "requires": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==" - }, - "npm-packlist": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", - "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "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=" - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "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=" - }, - "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=" - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.1" - } - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" - }, - "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==" - }, - "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==", - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "require_optional": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", - "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", - "requires": { - "resolve-from": "^2.0.0", - "semver": "^5.1.0" - } - }, - "resolve-from": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - }, - "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==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "saslprep": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", - "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", - "optional": true, - "requires": { - "sparse-bitfield": "^3.0.3" - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "requires": { - "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" - }, - "dependencies": { - "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==" - } - } - }, - "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==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "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", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" - }, - "sparse-bitfield": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", - "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", - "optional": true, - "requires": { - "memory-pager": "^1.0.2" - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "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" - } - }, - "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=" - }, - "tar": { - "version": "4.4.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", - "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - } - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - } - } -} diff --git a/ExampleApi/package.json b/ExampleApi/package.json deleted file mode 100644 index 1b6e705..0000000 --- a/ExampleApi/package.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "exampleapi", - "version": "1.0.0", - "description": "", - "main": "out/app.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC", - "dependencies": { - "bcrypt": "^4.0.1", - "body-parser": "^1.19.0", - "express": "^4.17.1", - "jsonwebtoken": "^8.5.1", - "mongodb": "^3.5.6" - }, - "devDependencies": { - "@types/bcrypt": "^3.0.0", - "@types/body-parser": "^1.19.0", - "@types/express": "^4.17.6", - "@types/jsonwebtoken": "^8.3.9", - "@types/mongodb": "^3.5.8" - } -} diff --git a/ExampleApi/src/app.ts b/ExampleApi/src/app.ts deleted file mode 100644 index 63ecd35..0000000 --- a/ExampleApi/src/app.ts +++ /dev/null @@ -1,24 +0,0 @@ -import express from 'express' -import { MainRouter } from './mainRouter'; -import { NodeApplication } from './common/NodeApplication'; -import { AppRouter } from './common/AppRouter'; - -//main application class -class Application extends NodeApplication { - - constructor(port: number) { - super(port,'/api'); - } - - //Notify that server is running - OnSetupComplete(port: number): void { - console.log('ExampleApi Listening on port ' + port.toString()); - } - - //setup main routing for the application - SetupRoutes(): AppRouter { - return new MainRouter(); - } -} -const port = process.env.PORT || 3000; -new Application(+port).startServer(); diff --git a/ExampleApi/src/common/AppRouter.ts b/ExampleApi/src/common/AppRouter.ts deleted file mode 100644 index f1fe01c..0000000 --- a/ExampleApi/src/common/AppRouter.ts +++ /dev/null @@ -1,28 +0,0 @@ -import express from 'express'; - -/*AppRouter represents a route on the server. AppRouters can be strung - together to create a heirarchy */ -export abstract class AppRouter{ - protected router: express.Router; - - // expressRouter property accessor: Returns the underlying - // express router object - public get expressRouter(): express.Router{ - return this.router; - } - constructor(){ - this.router=express.Router(); - this.setupRoutes(); - } - - //addRouter: Adds a child router on the given path beneath this router - // path: the path to reach the new router - // child: the child router object to be attached - addRouter(path: string,child: AppRouter):void{ - this.router.use(path,child.expressRouter); - } - - //setupRoutes: abstract method to be implemented in child classes to - // create the underlying routes that are part of this route tree - abstract setupRoutes(): void; -} \ No newline at end of file diff --git a/ExampleApi/src/common/MongoDB.ts b/ExampleApi/src/common/MongoDB.ts deleted file mode 100644 index cef66ff..0000000 --- a/ExampleApi/src/common/MongoDB.ts +++ /dev/null @@ -1,117 +0,0 @@ -import { MongoClient, FilterQuery, ObjectID } from 'mongodb'; -/*Wrapper class for accessing Mongo Databse*/ - -export class Database { - - //constructor - //url: the connection url for the mongo server - //dbName: the name of the database to access - constructor(private url: string, private dbName: string) { } - - //converts a string to a mongodb object id - static stringToId(id:string):ObjectID{ - return new ObjectID(id); - } - //addRecord - // collection: the name of the collection to add the record to. - // object: a javascript object to store in the collection - // returns a promise to an array of records - addRecord(collection: string, object: any): Promise{ - var dbname = this.dbName; - var url=this.url; - return new Promise(function(resolve,reject){ - MongoClient.connect(url, function (err, db) { - if (err) reject(err); - const dbo = db.db(dbname); - dbo.collection(collection).insertOne(object,(err, result) => { - if (err) reject(err); - db.close(); - resolve(true); - }); - }); - - }); - } - - //updateRecord - // collection: the name of the collection to update the record to. - // object: a javascript object to store in the collection - // returns a promise to a boolean indicating success - updateRecord(collection: string, filter:any, update: any): Promise{ - var dbname = this.dbName; - var url=this.url; - return new Promise(function(resolve,reject){ - MongoClient.connect(url, function (err, db) { - if (err) reject(err); - const dbo = db.db(dbname); - dbo.collection(collection).updateOne(filter,update,(err, result) => { - if (err) reject(err); - db.close(); - resolve(result.matchedCount==1); - }); - }); - - }); - } - - //getRecords - // collection: the name of the collection to get from. - // query: a mongo query object - // returns a promise to an array of records - getRecords(collection: string, query: FilterQuery = {}): Promise { - var dbname = this.dbName; - var url=this.url; - return new Promise(function (resolve, reject) { - MongoClient.connect(url, function (err, db) { - if (err) reject(err); - const dbo = db.db(dbname); - dbo.collection(collection).find(query).toArray((err, result) => { - if (err) reject(err); - db.close(); - resolve(result); - }); - }); - }); - } - - //getOneRecords - // collection: the name of the collection to get from. - // query: a mongo query object - // returns a promise to a single records - getOneRecord(collection: string, query: FilterQuery = {}): Promise { - var dbname = this.dbName; - var url=this.url; - return new Promise(function (resolve, reject) { - MongoClient.connect(url, function (err, db) { - if (err) reject(err); - const dbo = db.db(dbname); - dbo.collection(collection).findOne(query, (err, result) => { - if (err) reject(err); - db.close(); - resolve(result); - }); - }); - }); - } - - //deleteRecord - // collection: the name of the collection to get from. - // query: a mongo query object - // returns a promise to a boolean indicating success - deleteRecord(collection: string,query: FilterQuery={}): Promise{ - var dbname = this.dbName; - var url=this.url; - return new Promise(function (resolve, reject) { - MongoClient.connect(url, function (err, db) { - if (err) reject(err); - const dbo = db.db(dbname); - dbo.collection(collection).deleteOne(query, (err, result) => { - if (err) reject(err); - db.close(); - resolve(result.deletedCount==1); - }); - }); - }); - - } -} \ No newline at end of file diff --git a/ExampleApi/src/common/NodeApplication.ts b/ExampleApi/src/common/NodeApplication.ts deleted file mode 100644 index 55d9d8b..0000000 --- a/ExampleApi/src/common/NodeApplication.ts +++ /dev/null @@ -1,58 +0,0 @@ -import express from 'express' -import bodyParser from 'body-parser' -import { AppRouter } from './AppRouter'; - -/* This is the base class for a Node Express application, it provides lifecycle hooks - for various stages of application initialization and an abstract method - for attaching the endpoint routes to the appliation */ -export abstract class NodeApplication { - app: express.Application; - routes: express.Router; - - //NodeApplication: - // port: number - The port for the node server to listen on - // rootPath: string (Optional) - The path of the root route, - // defaults to the root of the server - constructor(private port: number, rootPath: string='/') { - this.app = express(); - this.OnBeforeInit(); - this.initCors(); - this.initBodyParser(); - this.routes = this.SetupRoutes().expressRouter; - this.app.use(rootPath, this.routes); - } - - //SetupRoutes: Abstract method for child classes to implement - // returns: A populated AppRouter object to be attached to the - // root of the site - abstract SetupRoutes(): AppRouter; - - //OnBeforeInit: Lifecycle hook before initialization of the application - OnBeforeInit(): void {}; - //OnSetupComplete: Lifecycle hook after node server started and listening - OnSetupComplete(port: number): void {} - - //initBodyParser: Initialize default options for the body parser - // override to prevent or change behavior - protected initBodyParser(): void{ - this.app.use(bodyParser.urlencoded({ extended: false })); - this.app.use(bodyParser.json()); - } - - //initCors: Initialize default options for CORS allowing open access - // Override this method to prvent or change behavior - protected initCors(): void { - this.app.use(function (req: express.Request, res: express.Response, next: any) { - res.header("Access-Control-Allow-Origin", "*"); - res.header("Access-Control-Allow-Methods", "PUT, GET, POST, DELETE, OPTIONS"); - res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization, Access-Control-Allow-Credentials"); - res.header("Access-Control-Allow-Credentials", "true"); - next(); - }); - } - - //startServer: Called to start the node.js server - startServer(): void { - this.app.listen(this.port, ()=>this.OnSetupComplete(this.port)); - } -} diff --git a/ExampleApi/src/config.ts b/ExampleApi/src/config.ts deleted file mode 100644 index 8f90b44..0000000 --- a/ExampleApi/src/config.ts +++ /dev/null @@ -1,7 +0,0 @@ -//configuration information -export const Config={ - serverport: process.env.PORT || 3000, - secret: process.env.SECRET || "some-secret-goes-here", - tokenLife: 1800, - url: process.env.MONGOURL || "mongodb://localhost:27017/" -}; \ No newline at end of file diff --git a/ExampleApi/src/mainRouter.ts b/ExampleApi/src/mainRouter.ts deleted file mode 100644 index 4ea5add..0000000 --- a/ExampleApi/src/mainRouter.ts +++ /dev/null @@ -1,17 +0,0 @@ -import express from 'express' -import { AppRouter } from './common/AppRouter'; -import { SecurityRouter } from './security/securityrouter'; -import { ProjectsRouter } from './projects/projectsRouter'; - -//root router for the API - -export class MainRouter extends AppRouter{ - constructor(){super();} - - //adds the child routers to various paths to form the overall API. - setupRoutes(): void { - this.addRouter('/security',new SecurityRouter()); - this.addRouter('/projects',new ProjectsRouter()); - } - -} \ No newline at end of file diff --git a/ExampleApi/src/projects/projectsController.ts b/ExampleApi/src/projects/projectsController.ts deleted file mode 100644 index 571122c..0000000 --- a/ExampleApi/src/projects/projectsController.ts +++ /dev/null @@ -1,88 +0,0 @@ -import express, { RequestHandler } from 'express'; -import { ProjectsModel } from './projectsModel'; -import { Database } from '../common/MongoDB'; -import { Config } from '../config'; -//This is just an example of a second controller attached to the security module - -export class ProjectsController { - static db: Database = new Database(Config.url, "projects"); - static projectsTable = 'projects'; - - //getProjects - //sends a json object with all projects in the system that match :year - getProjects(req: express.Request, res: express.Response) { - const semester = req.params.semester; - ProjectsController.db.getRecords(ProjectsController.projectsTable, { semester: semester }) - .then((results) => res.send({ fn: 'getProjects', status: 'success', data: results }).end()) - .catch((reason) => res.status(500).send(reason).end()); - - } - //getProject - //sends the specific project as JSON with id=:id - getProject(req: express.Request, res: express.Response) { - const semester = req.params.semester; - const id = Database.stringToId(req.params.id); - ProjectsController.db.getOneRecord(ProjectsController.projectsTable, { _id: id, semester: semester }) - .then((results) => res.send({ fn: 'getProject', status: 'success', data: results }).end()) - .catch((reason) => res.status(500).send(reason).end()); - } - //addProject - //adds the project to the database - addProject(req: express.Request, res: express.Response) { - const proj: ProjectsModel = ProjectsModel.fromObject(req.body); - - ProjectsController.db.addRecord(ProjectsController.projectsTable, proj.toObject()) - .then((result: boolean) => res.send({ fn: 'addProject', status: 'success' }).end()) - .catch((reason) => res.status(500).send(reason).end()); - } - - //updateProject - //updates the project in the database with id :id - updateProject(req: express.Request, res: express.Response) { - const id = Database.stringToId(req.params.id); - const data = req.body; - delete data.authUser; - ProjectsController.db.updateRecord(ProjectsController.projectsTable, { _id: id }, { $set: req.body }) - .then((results) => results ? (res.send({ fn: 'updateProject', status: 'success' })) : (res.send({ fn: 'updateProject', status: 'failure', data: 'Not found' })).end()) - .catch(err => res.send({ fn: 'updateProject', status: 'failure', data: err }).end()); - - } - //deleteProject - //deletes the project int he database with id :id - deleteProject(req: express.Request, res: express.Response) { - const id = Database.stringToId(req.params.id); - ProjectsController.db.deleteRecord(ProjectsController.projectsTable, { _id: id }) - .then((results) => results ? (res.send({ fn: 'deleteProject', status: 'success' })) : (res.send({ fn: 'deleteProject', status: 'failure', data: 'Not found' })).end()) - .catch((reason) => res.status(500).send(reason).end()); - } - //getSemesters - //returns all valid unique semesters in the database - getSemesters(req: express.Request, res: express.Response) { - ProjectsController.db.getRecords(ProjectsController.projectsTable) - .then(results => { - //extracts just the semester - let semesters = results.map((x: any) => x.semester); - //removes duplciates - semesters = semesters.filter((value: string, index: number, array: any[]) => - !array.filter((v, i) => value === v && i < index).length); - res.send({ fn: 'deleteProject', status: 'success', data: { semesters: semesters } }) - }) - .catch((reason) => res.status(500).send(reason).end()); - } - //getProjectNumbers - //returns all valid unique projectNumbers for a given semesters in the database - getProjectNumbers(req: express.Request, res: express.Response) { - const semester = req.params.semester; - ProjectsController.db.getRecords(ProjectsController.projectsTable,{semester:semester}) - .then(results => { - //extracts just the projectNumber - let projects = results.map((x: any) => x.projectNumber); - //removes duplciates - projects = projects.filter((value: number, index: number, array: any[]) => - !array.filter((v, i) => value === v && i < index).length); - res.send({ fn: 'deleteProject', status: 'success', data: { projectNumbers:projects.sort()} }); - }) - .catch((reason) => res.status(500).send(reason).end()); - } - -} \ No newline at end of file diff --git a/ExampleApi/src/projects/projectsModel.ts b/ExampleApi/src/projects/projectsModel.ts deleted file mode 100644 index dc2baca..0000000 --- a/ExampleApi/src/projects/projectsModel.ts +++ /dev/null @@ -1,24 +0,0 @@ - -export class ProjectsModel{ - id=''; - name=''; - description?=''; - groupid=''; - groupMembers:string[]=[]; - semester=''; - projectNumber=0; - - static fromObject(object:any):ProjectsModel{ - const p:ProjectsModel=new ProjectsModel(); - p.name=object.name; - p.description=object.description; - p.groupid=object.groupId; - p.groupMembers=object.groupMembers; - p.semester=object.semester - p.projectNumber=object.projectNumber; - return p; - } - toObject():any{ - return {name:this.name,description:this.description,groupid:this.groupid,groupMembers:this.groupMembers,semester:this.semester,projectNumber:this.projectNumber}; - } -} \ No newline at end of file diff --git a/ExampleApi/src/projects/projectsRouter.ts b/ExampleApi/src/projects/projectsRouter.ts deleted file mode 100644 index 46a91d4..0000000 --- a/ExampleApi/src/projects/projectsRouter.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { AppRouter } from "../common/AppRouter"; -import { SecurityMiddleware } from "../security/securityMiddleware"; -import { ProjectsController } from "./projectsController"; - -//This is just an example second router to show how additional routers can be added -export class ProjectsRouter extends AppRouter{ - static projController: ProjectsController=new ProjectsController(); - constructor(){super();} - - //sets up the routes within this module shows an example of a route that requires authorization, and one that does not - setupRoutes(): void { - this.expressRouter.get('/semesters',ProjectsRouter.projController.getSemesters); - this.expressRouter.get('/projectNumbers/:semester',ProjectsRouter.projController.getProjectNumbers); - this.expressRouter.get('/:semester',ProjectsRouter.projController.getProjects); - this.expressRouter.get('/:semester/:id',ProjectsRouter.projController.getProject); - this.expressRouter.post('/',[SecurityMiddleware.RequireAuth],ProjectsRouter.projController.addProject); - this.expressRouter.put('/:id',[SecurityMiddleware.RequireAuth],ProjectsRouter.projController.updateProject); - this.expressRouter.delete('/:id',[SecurityMiddleware.RequireAuth],ProjectsRouter.projController.deleteProject); - } -} \ No newline at end of file diff --git a/ExampleApi/src/security/securityController.ts b/ExampleApi/src/security/securityController.ts deleted file mode 100644 index dcf351e..0000000 --- a/ExampleApi/src/security/securityController.ts +++ /dev/null @@ -1,62 +0,0 @@ -import express from 'express'; -import { Config } from '../config'; -import jwt from 'jsonwebtoken'; -import { UserModel } from './userModel'; -import { Database } from '../common/MongoDB'; - -//Implementation of security endpoints - -export class SecurityController { - static db: Database = new Database(Config.url, "security"); - static usersTable = 'users'; - - //login - POST - //expects email and password fields to be set in the body of the post request - //sends a token to the caller on success, 401 on failure - public login(req: express.Request, res: express.Response, next: express.NextFunction) { - SecurityController.db.getOneRecord(SecurityController.usersTable, { email: req.body.email }) - .then((userRecord: any) => { - if (!userRecord) return res.sendStatus(401).end(); - const usr: UserModel = UserModel.fromObject(userRecord); - if (!usr.validatePassword(req.body.password)) return res.sendStatus(401).end(); - const token = jwt.sign(usr.toObject(), Config.secret, { expiresIn: Config.tokenLife }); - res.send({ fn: 'login', status: 'success', data: { token: token,user: {email: req.body.email} } }).end(); - }).catch(err => res.sendStatus(500).end()); - } - - //register - POST - //expects email and password fields to be set in the body of the post request - //sends a success message to caller on success, or a failure status code on failure - register(req: express.Request, res: express.Response, next: express.NextFunction) { - const user: UserModel = new UserModel(req.body.email, req.body.password); - SecurityController.db.getOneRecord(SecurityController.usersTable, { email: req.body.email }) - .then((userRecord: any) => { - if (userRecord) return res.status(400).send({ fn: 'register', status: 'failure', data: 'User Exits' }).end(); - SecurityController.db.addRecord(SecurityController.usersTable, user.toObject()).then((result: boolean) => res.send({ fn: 'register', status: 'success' }).end()) - .catch((reason) => res.sendStatus(500).end()); - }).catch((reason) => res.sendStatus(500).end()); - } - //authorize - GET - //this code actually does nothing, but if it is secured at the route level, it will return the email address for the token that - //was returned. This is used to verify a token by a client application - //returns the users email on success - authorize(req: express.Request, res: express.Response, next: express.NextFunction) { - //validate that req.authUser exists, if so, return the user's email address. - console.log(); - res.send({ fn: 'authorize', status: 'success', data:{email: req.body.authUser.email} }).end(); - } - //changePwd - POST - //chages the password of the user represented in the token. Expects password in the body of the POST - //returns a success messager to the client on success, a failure status code on failure - changePwd(req: express.Request, res: express.Response, next: express.NextFunction) { - if (!req.body.password) res.status(400).send({ fn: 'changePwd', status: 'failure' }).end(); - const user: UserModel = new UserModel(req.body.authUser.email, req.body.password); - SecurityController.db.updateRecord(SecurityController.usersTable, {email: user.email},{ $set: {password: user.password }}).then((result:Boolean)=>{ - if (result) - res.send({ fn: 'changePwd', status: 'success' }).end(); - else - res.status(400).send({ fn: 'changePwd', status: 'failure' }).end(); - }).catch(err=>res.send({ fn: 'changePwd', status: 'failure', data:err }).end()); - } - -} \ No newline at end of file diff --git a/ExampleApi/src/security/securityMiddleware.ts b/ExampleApi/src/security/securityMiddleware.ts deleted file mode 100644 index 7834ec6..0000000 --- a/ExampleApi/src/security/securityMiddleware.ts +++ /dev/null @@ -1,29 +0,0 @@ -import express, { RequestHandler } from 'express'; -import jwt from 'jsonwebtoken'; -import { Config } from '../config'; - -//Class represeneting verification function for JWT. The static member can be used to return a method that validates the token - -export class SecurityMiddleware { - - //Returns a method that validates a bearer token, on success, populates authUser in the body with the user information from the token, - //then calls the next function in the chain (the controller). On failure to authenticate, halts execution and sends error response - static get RequireAuth(): RequestHandler { - return (req: express.Request, res: express.Response, next: express.NextFunction) => { - let token = req.headers["x-access-token"] || req.headers["authorization"]; - //if no token found, return response (without going to the next middelware) - if (!token) return res.status(401).send("Access denied. No token provided."); - - if (token.includes('bearer')) token=token.toString().substr(6).trimLeft(); - try { - //if can verify the token, set req.user and pass to next middleware - const decoded = jwt.verify(token.toString(), Config.secret); - req.body.authUser = decoded; - next(); - } catch (ex) { - //if invalid token - res.status(400).send("Invalid token."); - } - } - } -} \ No newline at end of file diff --git a/ExampleApi/src/security/securityrouter.ts b/ExampleApi/src/security/securityrouter.ts deleted file mode 100644 index 0cdcb1b..0000000 --- a/ExampleApi/src/security/securityrouter.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { AppRouter } from "../common/AppRouter"; -import { SecurityController } from "./securityController"; -import { SecurityMiddleware } from "./securityMiddleware"; - -//Router for security portion of the api -export class SecurityRouter extends AppRouter{ - - constructor(){super();} - - //called by the framework to add the routes for the security portion of the API - setupRoutes(): void { - const securityController: SecurityController=new SecurityController(); - this.expressRouter.get('/authorize',[SecurityMiddleware.RequireAuth],securityController.authorize) - this.expressRouter.post('/login',securityController.login); - this.expressRouter.post('/register',securityController.register); - this.expressRouter.post('/changepwd',[SecurityMiddleware.RequireAuth],securityController.changePwd); - } -} \ No newline at end of file diff --git a/ExampleApi/src/security/userModel.ts b/ExampleApi/src/security/userModel.ts deleted file mode 100644 index fdc61e6..0000000 --- a/ExampleApi/src/security/userModel.ts +++ /dev/null @@ -1,47 +0,0 @@ -import bcrypt from 'bcrypt'; - -//represents a user in the system -export class UserModel{ - id?=''; - email = ''; - private _password=''; - - //when user password is set through here, it is stored encrypted - set password(val:string){ - this._password=UserModel.encryptString(val); - } - //returns encrypted password - get password():string{return this._password;} - - //encrypts password - public constructor(email:string,password:string){ - this.email=email; - this.password=password; - } - - //does not encrypt password, expects already encrypted password - static fromObject=(obj:any):UserModel=>{ - const mdl=new UserModel(obj.email,''); - mdl._password=obj.password; - return mdl; - } - - //includes encrypted password - toObject=(): any=> ({email: this.email,password: this.password}); - - //compares unencrypted password to encrypted password - validatePassword(password:string):boolean{ - if (this.password==='*') {return false;} - return bcrypt.compareSync(password,this.password); - } - - //encrypt a string using the bcrypt library - static encryptString(inval:string):string{ - try { - var salt = bcrypt.genSaltSync(10); - return bcrypt.hashSync(inval, salt); - }catch (err){ - return '*'; - } - } -} \ No newline at end of file diff --git a/ExampleApi/tsconfig.json b/ExampleApi/tsconfig.json deleted file mode 100644 index df1204c..0000000 --- a/ExampleApi/tsconfig.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "compilerOptions": { - /* Basic Options */ - // "incremental": true, /* Enable incremental compilation */ - "target": "es5", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */ - "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */ - // "lib": [], /* Specify library files to be included in the compilation. */ - // "allowJs": true, /* Allow javascript files to be compiled. */ - // "checkJs": true, /* Report errors in .js files. */ - // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ - // "declaration": true, /* Generates corresponding '.d.ts' file. */ - // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ - "sourceMap": true, /* Generates corresponding '.map' file. */ - // "outFile": "./", /* Concatenate and emit output to single file. */ - "outDir": "out", /* Redirect output structure to the directory. */ - // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ - // "composite": true, /* Enable project compilation */ - // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ - // "removeComments": true, /* Do not emit comments to output. */ - // "noEmit": true, /* Do not emit outputs. */ - // "importHelpers": true, /* Import emit helpers from 'tslib'. */ - // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ - // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ - - /* Strict Type-Checking Options */ - "strict": true, /* Enable all strict type-checking options. */ - // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ - // "strictNullChecks": true, /* Enable strict null checks. */ - // "strictFunctionTypes": true, /* Enable strict checking of function types. */ - // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ - // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ - // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ - // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ - - /* Additional Checks */ - // "noUnusedLocals": true, /* Report errors on unused locals. */ - // "noUnusedParameters": true, /* Report errors on unused parameters. */ - // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ - // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ - - /* Module Resolution Options */ - // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ - // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ - // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ - // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ - // "typeRoots": [], /* List of folders to include type definitions from. */ - // "types": [], /* Type declaration files to be included in compilation. */ - // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ - "esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ - // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - - /* Source Map Options */ - // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ - // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ - - /* Experimental Options */ - // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ - // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ - - /* Advanced Options */ - "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ - } -} diff --git a/ExampleUI/.gitignore b/ExampleUI/.gitignore deleted file mode 100644 index 86d943a..0000000 --- a/ExampleUI/.gitignore +++ /dev/null @@ -1,46 +0,0 @@ -# See http://help.github.com/ignore-files/ for more about ignoring files. - -# compiled output -/dist -/tmp -/out-tsc -# Only exists if Bazel was run -/bazel-out - -# dependencies -/node_modules - -# profiling files -chrome-profiler-events*.json -speed-measure-plugin*.json - -# IDEs and editors -/.idea -.project -.classpath -.c9/ -*.launch -.settings/ -*.sublime-workspace - -# IDE - VSCode -.vscode/* -!.vscode/settings.json -!.vscode/tasks.json -!.vscode/launch.json -!.vscode/extensions.json -.history/* - -# misc -/.sass-cache -/connect.lock -/coverage -/libpeerconnection.log -npm-debug.log -yarn-error.log -testem.log -/typings - -# System Files -.DS_Store -Thumbs.db diff --git a/ExampleUI/src/app/app.component.html b/ExampleUI/src/app/app.component.html deleted file mode 100644 index 371d823..0000000 --- a/ExampleUI/src/app/app.component.html +++ /dev/null @@ -1,37 +0,0 @@ - - -
- -
\ No newline at end of file diff --git a/ExampleUI/src/app/pages/addproject/addproject.component.html b/ExampleUI/src/app/pages/addproject/addproject.component.html deleted file mode 100644 index 81a076c..0000000 --- a/ExampleUI/src/app/pages/addproject/addproject.component.html +++ /dev/null @@ -1 +0,0 @@ -

addproject works!

diff --git a/ExampleUI/src/app/pages/addproject/addproject.component.ts b/ExampleUI/src/app/pages/addproject/addproject.component.ts deleted file mode 100644 index 9b66638..0000000 --- a/ExampleUI/src/app/pages/addproject/addproject.component.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Component, OnInit } from '@angular/core'; - -@Component({ - selector: 'app-addproject', - templateUrl: './addproject.component.html', - styleUrls: ['./addproject.component.scss'] -}) -export class AddprojectComponent implements OnInit { - - constructor() { } - - ngOnInit(): void { - } - -} diff --git a/ExampleUI/src/app/pages/home/home.component.html b/ExampleUI/src/app/pages/home/home.component.html deleted file mode 100644 index 58fbd66..0000000 --- a/ExampleUI/src/app/pages/home/home.component.html +++ /dev/null @@ -1,9 +0,0 @@ -

home works!

-
-
    -
  • - {{item}} -
  • -
-
-
No records found
\ No newline at end of file diff --git a/ExampleUI/src/app/pages/login/login.component.html b/ExampleUI/src/app/pages/login/login.component.html deleted file mode 100644 index 84d28b4..0000000 --- a/ExampleUI/src/app/pages/login/login.component.html +++ /dev/null @@ -1,25 +0,0 @@ -
{{error}}
-

Login

-
-
- - -
-
Username is required
-
-
-
- - -
-
Password is required
-
-
-
- - Register -
-
\ No newline at end of file diff --git a/ExampleUI/src/app/pages/login/login.component.ts b/ExampleUI/src/app/pages/login/login.component.ts deleted file mode 100644 index b57d224..0000000 --- a/ExampleUI/src/app/pages/login/login.component.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import { FormGroup, FormBuilder, Validators } from '@angular/forms'; -import { ActivatedRoute, Router } from '@angular/router'; -import { AuthService } from 'src/app/services/auth.service'; - -@Component({ - selector: 'app-login', - templateUrl: './login.component.html', - styleUrls: ['./login.component.scss'] -}) -export class LoginComponent implements OnInit { - - loginForm: FormGroup; - loading =false; - submitted=false; - returnUrl: string; - error: string; - - constructor(private formBuilder: FormBuilder,private route: ActivatedRoute,private router: Router,private authSvc:AuthService) { - if (authSvc.loggedIn) - this.router.navigate(['/']); - } - - ngOnInit(): void { - this.loginForm=this.formBuilder.group({ - username: ['',Validators.required], - password: ['',Validators.required] - }); - this.returnUrl=this.route.snapshot.queryParams['returnUrl'] || '/'; - } - - login(){ - this.submitted=true; - if (this.loginForm.invalid){ - return; - } - this.loading=true; - this.authSvc.login(this.loginForm.controls.username.value,this.loginForm.controls.password.value).subscribe(response=>{ - this.router.navigate([this.returnUrl]); - },err=>{this.submitted=false;this.loading=false;this.error=err.message||err;}); - } -} diff --git a/ExampleUI/src/app/pages/register/register.component.html b/ExampleUI/src/app/pages/register/register.component.html deleted file mode 100644 index 6b0ba2e..0000000 --- a/ExampleUI/src/app/pages/register/register.component.html +++ /dev/null @@ -1 +0,0 @@ -

register works!

diff --git a/ExampleUI/src/app/pages/register/register.component.ts b/ExampleUI/src/app/pages/register/register.component.ts deleted file mode 100644 index 8f62eda..0000000 --- a/ExampleUI/src/app/pages/register/register.component.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Component, OnInit } from '@angular/core'; - -@Component({ - selector: 'app-register', - templateUrl: './register.component.html', - styleUrls: ['./register.component.scss'] -}) -export class RegisterComponent implements OnInit { - - constructor() { } - - ngOnInit(): void { - } - -} diff --git a/ExampleUI/src/index.html b/ExampleUI/src/index.html deleted file mode 100644 index cc76f89..0000000 --- a/ExampleUI/src/index.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - ExampleUI - - - - - - - - - diff --git a/ExampleUI/README.md b/README.md similarity index 98% rename from ExampleUI/README.md rename to README.md index 358ea45..a0e5338 100644 --- a/ExampleUI/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# ExampleUI +# COVID19-FrontEnd This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 9.1.1. diff --git a/ExampleUI/angular.json b/angular.json similarity index 87% rename from ExampleUI/angular.json rename to angular.json index 5a83e96..f4dbe7c 100644 --- a/ExampleUI/angular.json +++ b/angular.json @@ -3,7 +3,7 @@ "version": 1, "newProjectRoot": "projects", "projects": { - "ExampleUI": { + "COVID19-FrontEnd": { "projectType": "application", "schematics": { "@schematics/angular:component": { @@ -17,7 +17,7 @@ "build": { "builder": "@angular-devkit/build-angular:browser", "options": { - "outputPath": "dist/ExampleUI", + "outputPath": "dist/COVID19-FrontEnd", "index": "src/index.html", "main": "src/main.ts", "polyfills": "src/polyfills.ts", @@ -30,7 +30,9 @@ "styles": [ "src/styles.scss" ], - "scripts": [] + "scripts": [ + "src/assets/index.js" + ] }, "configurations": { "production": { @@ -66,18 +68,18 @@ "serve": { "builder": "@angular-devkit/build-angular:dev-server", "options": { - "browserTarget": "ExampleUI:build" + "browserTarget": "COVID19-FrontEnd:build" }, "configurations": { "production": { - "browserTarget": "ExampleUI:build:production" + "browserTarget": "COVID19-FrontEnd:build:production" } } }, "extract-i18n": { "builder": "@angular-devkit/build-angular:extract-i18n", "options": { - "browserTarget": "ExampleUI:build" + "browserTarget": "COVID19-FrontEnd:build" } }, "test": { @@ -114,18 +116,18 @@ "builder": "@angular-devkit/build-angular:protractor", "options": { "protractorConfig": "e2e/protractor.conf.js", - "devServerTarget": "ExampleUI:serve" + "devServerTarget": "COVID19-FrontEnd:serve" }, "configurations": { "production": { - "devServerTarget": "ExampleUI:serve:production" + "devServerTarget": "COVID19-FrontEnd:serve:production" } } } } } }, - "defaultProject": "ExampleUI", + "defaultProject": "COVID19-FrontEnd", "cli": { "analytics": false } diff --git a/ExampleUI/browserslist b/browserslist similarity index 100% rename from ExampleUI/browserslist rename to browserslist diff --git a/ExampleUI/e2e/protractor.conf.js b/e2e/protractor.conf.js similarity index 100% rename from ExampleUI/e2e/protractor.conf.js rename to e2e/protractor.conf.js diff --git a/ExampleUI/e2e/src/app.e2e-spec.ts b/e2e/src/app.e2e-spec.ts similarity index 88% rename from ExampleUI/e2e/src/app.e2e-spec.ts rename to e2e/src/app.e2e-spec.ts index 8d8ebb8..604c0be 100644 --- a/ExampleUI/e2e/src/app.e2e-spec.ts +++ b/e2e/src/app.e2e-spec.ts @@ -10,7 +10,7 @@ describe('workspace-project App', () => { it('should display welcome message', () => { page.navigateTo(); - expect(page.getTitleText()).toEqual('ExampleUI app is running!'); + expect(page.getTitleText()).toEqual('COVID19-FrontEnd app is running!'); }); afterEach(async () => { diff --git a/ExampleUI/e2e/src/app.po.ts b/e2e/src/app.po.ts similarity index 100% rename from ExampleUI/e2e/src/app.po.ts rename to e2e/src/app.po.ts diff --git a/ExampleUI/e2e/tsconfig.json b/e2e/tsconfig.json similarity index 100% rename from ExampleUI/e2e/tsconfig.json rename to e2e/tsconfig.json diff --git a/ExampleUI/karma.conf.js b/karma.conf.js similarity index 92% rename from ExampleUI/karma.conf.js rename to karma.conf.js index 0dfb572..dafc458 100644 --- a/ExampleUI/karma.conf.js +++ b/karma.conf.js @@ -16,7 +16,7 @@ module.exports = function (config) { clearContext: false // leave Jasmine Spec Runner output visible in browser }, coverageIstanbulReporter: { - dir: require('path').join(__dirname, './coverage/ExampleUI'), + dir: require('path').join(__dirname, './coverage/COVID19-FrontEnd'), reports: ['html', 'lcovonly', 'text-summary'], fixWebpackSourcePaths: true }, diff --git a/ExampleUI/package-lock.json b/package-lock.json similarity index 95% rename from ExampleUI/package-lock.json rename to package-lock.json index 6da3038..a270be3 100644 --- a/ExampleUI/package-lock.json +++ b/package-lock.json @@ -1563,12 +1563,278 @@ "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", "dev": true }, + "@types/d3": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@types/d3/-/d3-5.7.2.tgz", + "integrity": "sha512-7/wClB8ycneWGy3jdvLfXKTd5SoTg9hji7IdJ0RuO9xTY54YpJ8zlcFADcXhY1J3kCBwxp+/1jeN6a5OMwgYOw==", + "dev": true, + "requires": { + "@types/d3-array": "^1", + "@types/d3-axis": "*", + "@types/d3-brush": "*", + "@types/d3-chord": "*", + "@types/d3-collection": "*", + "@types/d3-color": "*", + "@types/d3-contour": "*", + "@types/d3-dispatch": "*", + "@types/d3-drag": "*", + "@types/d3-dsv": "*", + "@types/d3-ease": "*", + "@types/d3-fetch": "*", + "@types/d3-force": "*", + "@types/d3-format": "*", + "@types/d3-geo": "*", + "@types/d3-hierarchy": "*", + "@types/d3-interpolate": "*", + "@types/d3-path": "*", + "@types/d3-polygon": "*", + "@types/d3-quadtree": "*", + "@types/d3-random": "*", + "@types/d3-scale": "*", + "@types/d3-scale-chromatic": "*", + "@types/d3-selection": "*", + "@types/d3-shape": "*", + "@types/d3-time": "*", + "@types/d3-time-format": "*", + "@types/d3-timer": "*", + "@types/d3-transition": "*", + "@types/d3-voronoi": "*", + "@types/d3-zoom": "*" + } + }, + "@types/d3-array": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-1.2.7.tgz", + "integrity": "sha512-51vHWuUyDOi+8XuwPrTw3cFqyh2Slg9y8COYkRfjCPG9TfYqY0hoNPzv/8BrcAy0FeQBzqEo/D/8Nk2caOQJnA==", + "dev": true + }, + "@types/d3-axis": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-1.0.12.tgz", + "integrity": "sha512-BZISgSD5M8TgURyNtcPAmUB9sk490CO1Thb6/gIn0WZTt3Y50IssX+2Z0vTccoqZksUDTep0b+o4ofXslvNbqg==", + "dev": true, + "requires": { + "@types/d3-selection": "*" + } + }, + "@types/d3-brush": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-1.1.0.tgz", + "integrity": "sha512-yz5Y94XpUARimOlLk+RWM1cZh1FrtmSGOyDQfCArsMa6kAnhjF3EserSTDnHAuVuNATMoTIOPHa7pjG2iTkPYA==", + "dev": true, + "requires": { + "@types/d3-selection": "*" + } + }, + "@types/d3-chord": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-1.0.9.tgz", + "integrity": "sha512-UA6lI9CVW5cT5Ku/RV4hxoFn4mKySHm7HEgodtfRthAj1lt9rKZEPon58vyYfk+HIAm33DtJJgZwMXy2QgyPXw==", + "dev": true + }, + "@types/d3-collection": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-collection/-/d3-collection-1.0.8.tgz", + "integrity": "sha512-y5lGlazdc0HNO0F3UUX2DPE7OmYvd9Kcym4hXwrJcNUkDaypR5pX+apuMikl9LfTxKItJsY9KYvzBulpCKyvuQ==", + "dev": true + }, + "@types/d3-color": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-1.2.2.tgz", + "integrity": "sha512-6pBxzJ8ZP3dYEQ4YjQ+NVbQaOflfgXq/JbDiS99oLobM2o72uAST4q6yPxHv6FOTCRC/n35ktuo8pvw/S4M7sw==", + "dev": true + }, + "@types/d3-contour": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-1.3.0.tgz", + "integrity": "sha512-AUCUIjEnC5lCGBM9hS+MryRaFLIrPls4Rbv6ktqbd+TK/RXZPwOy9rtBWmGpbeXcSOYCJTUDwNJuEnmYPJRxHQ==", + "dev": true, + "requires": { + "@types/d3-array": "*", + "@types/geojson": "*" + } + }, + "@types/d3-dispatch": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-1.0.7.tgz", + "integrity": "sha512-M+z84G7UKwK6hEPnGCSccOg8zJ3Nk2hgDQ9sCstHXgsFU0sMxlIZVKqKB5oxUDbALqQG6ucg0G9e8cmOSlishg==", + "dev": true + }, + "@types/d3-drag": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-1.2.3.tgz", + "integrity": "sha512-rWB5SPvkYVxW3sqUxHOJUZwifD0KqvKwvt1bhNqcLpW6Azsd0BJgRNcyVW8GAferaAk5r8dzeZnf9zKlg9+xMQ==", + "dev": true, + "requires": { + "@types/d3-selection": "*" + } + }, + "@types/d3-dsv": { + "version": "1.0.36", + "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-1.0.36.tgz", + "integrity": "sha512-jbIWQ27QJcBNMZbQv0NSQMHnBDCmxghAxePxgyiPH1XPCRkOsTBei7jcdi3fDrUCGpCV3lKrSZFSlOkhUQVClA==", + "dev": true + }, + "@types/d3-ease": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-1.0.9.tgz", + "integrity": "sha512-U5ADevQ+W6fy32FVZZC9EXallcV/Mi12A5Tkd0My5MrC7T8soMQEhlDAg88XUWm0zoCQlB4XV0en/24LvuDB4Q==", + "dev": true + }, + "@types/d3-fetch": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-1.1.5.tgz", + "integrity": "sha512-o9c0ItT5/Gl3wbNuVpzRnYX1t3RghzeWAjHUVLuyZJudiTxC4f/fC0ZPFWLQ2lVY8pAMmxpV8TJ6ETYCgPeI3A==", + "dev": true, + "requires": { + "@types/d3-dsv": "*" + } + }, + "@types/d3-force": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-1.2.1.tgz", + "integrity": "sha512-jqK+I36uz4kTBjyk39meed5y31Ab+tXYN/x1dn3nZEus9yOHCLc+VrcIYLc/aSQ0Y7tMPRlIhLetulME76EiiA==", + "dev": true + }, + "@types/d3-format": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-1.3.1.tgz", + "integrity": "sha512-KAWvReOKMDreaAwOjdfQMm0HjcUMlQG47GwqdVKgmm20vTd2pucj0a70c3gUSHrnsmo6H2AMrkBsZU2UhJLq8A==", + "dev": true + }, + "@types/d3-geo": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-1.11.1.tgz", + "integrity": "sha512-Ox8WWOG3igDRoep/dNsGbOiSJYdUG3ew/6z0ETvHyAtXZVBjOE0S96zSSmzgl0gqQ3RdZjn2eeJOj9oRcMZPkQ==", + "dev": true, + "requires": { + "@types/geojson": "*" + } + }, + "@types/d3-hierarchy": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-1.1.6.tgz", + "integrity": "sha512-vvSaIDf/Ov0o3KwMT+1M8+WbnnlRiGjlGD5uvk83a1mPCTd/E5x12bUJ/oP55+wUY/4Kb5kc67rVpVGJ2KUHxg==", + "dev": true + }, + "@types/d3-interpolate": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-1.3.1.tgz", + "integrity": "sha512-z8Zmi08XVwe8e62vP6wcA+CNuRhpuUU5XPEfqpG0hRypDE5BWNthQHB1UNWWDB7ojCbGaN4qBdsWp5kWxhT1IQ==", + "dev": true, + "requires": { + "@types/d3-color": "*" + } + }, + "@types/d3-path": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-1.0.8.tgz", + "integrity": "sha512-AZGHWslq/oApTAHu9+yH/Bnk63y9oFOMROtqPAtxl5uB6qm1x2lueWdVEjsjjV3Qc2+QfuzKIwIR5MvVBakfzA==", + "dev": true + }, + "@types/d3-polygon": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-1.0.7.tgz", + "integrity": "sha512-Xuw0eSjQQKs8jTiNbntWH0S+Xp+JyhqxmQ0YAQ3rDu6c3kKMFfgsaGN7Jv5u3zG6yVX/AsLP/Xs/QRjmi9g43Q==", + "dev": true + }, + "@types/d3-quadtree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-1.0.7.tgz", + "integrity": "sha512-0ajFawWicfjsaCLh6NzxOyVDYhQAmMFbsiI3MPGLInorauHFEh9/Cl6UHNf+kt/J1jfoxKY/ZJaKAoDpbvde5Q==", + "dev": true + }, + "@types/d3-random": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-1.1.2.tgz", + "integrity": "sha512-Jui+Zn28pQw/3EayPKaN4c/PqTvqNbIPjHkgIIFnxne1FdwNjfHtAIsZIBMKlquQNrrMjFzCrlF2gPs3xckqaA==", + "dev": true + }, + "@types/d3-scale": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-2.2.0.tgz", + "integrity": "sha512-oQFanN0/PiR2oySHfj+zAAkK1/p4LD32Nt1TMVmzk+bYHk7vgIg/iTXQWitp1cIkDw4LMdcgvO63wL+mNs47YA==", + "dev": true, + "requires": { + "@types/d3-time": "*" + } + }, + "@types/d3-scale-chromatic": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz", + "integrity": "sha512-9/D7cOBKdZdTCPc6re0HeSUFBM0aFzdNdmYggUWT9SRRiYSOa6Ys2xdTwHKgc1WS3gGfwTMatBOdWCS863REsg==", + "dev": true + }, + "@types/d3-selection": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-1.4.1.tgz", + "integrity": "sha512-bv8IfFYo/xG6dxri9OwDnK3yCagYPeRIjTlrcdYJSx+FDWlCeBDepIHUpqROmhPtZ53jyna0aUajZRk0I3rXNA==", + "dev": true + }, + "@types/d3-shape": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-1.3.2.tgz", + "integrity": "sha512-LtD8EaNYCaBRzHzaAiIPrfcL3DdIysc81dkGlQvv7WQP3+YXV7b0JJTtR1U3bzeRieS603KF4wUo+ZkJVenh8w==", + "dev": true, + "requires": { + "@types/d3-path": "*" + } + }, + "@types/d3-time": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-1.0.10.tgz", + "integrity": "sha512-aKf62rRQafDQmSiv1NylKhIMmznsjRN+MnXRXTqHoqm0U/UZzVpdrtRnSIfdiLS616OuC1soYeX1dBg2n1u8Xw==", + "dev": true + }, + "@types/d3-time-format": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-2.1.1.tgz", + "integrity": "sha512-tJSyXta8ZyJ52wDDHA96JEsvkbL6jl7wowGmuf45+fAkj5Y+SQOnz0N7/H68OWmPshPsAaWMQh+GAws44IzH3g==", + "dev": true + }, + "@types/d3-timer": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-1.0.9.tgz", + "integrity": "sha512-WvfJ3LFxBbWjqRGz9n7GJt08RrTHPJDVsIwwoCMROlqF+iDacYiAFjf9oqnq0mXpb2juA2N/qjKP+MKdal3YNQ==", + "dev": true + }, + "@types/d3-transition": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-1.1.6.tgz", + "integrity": "sha512-/F+O2r4oz4G9ATIH3cuSCMGphAnl7VDx7SbENEK0NlI/FE8Jx2oiIrv0uTrpg7yF/AmuWbqp7AGdEHAPIh24Gg==", + "dev": true, + "requires": { + "@types/d3-selection": "*" + } + }, + "@types/d3-voronoi": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@types/d3-voronoi/-/d3-voronoi-1.1.9.tgz", + "integrity": "sha512-DExNQkaHd1F3dFPvGA/Aw2NGyjMln6E9QzsiqOcBgnE+VInYnFBHBBySbZQts6z6xD+5jTfKCP7M4OqMyVjdwQ==", + "dev": true + }, + "@types/d3-zoom": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-1.7.4.tgz", + "integrity": "sha512-5jnFo/itYhJeB2khO/lKe730kW/h2EbKMOvY0uNp3+7NdPm4w63DwPEMxifQZ7n902xGYK5DdU67FmToSoy4VA==", + "dev": true, + "requires": { + "@types/d3-interpolate": "*", + "@types/d3-selection": "*" + } + }, "@types/events": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", "dev": true }, + "@types/geojson": { + "version": "7946.0.7", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.7.tgz", + "integrity": "sha512-wE2v81i4C4Ol09RtsWFAqg3BUitWbHSpSlIo+bNdsCJijO9sjme+zm+73ZMCa/qMC8UEERxzGbvmr1cffo2SiQ==", + "dev": true + }, "@types/glob": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", @@ -1595,6 +1861,15 @@ "@types/jasmine": "*" } }, + "@types/jquery": { + "version": "3.3.38", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.3.38.tgz", + "integrity": "sha512-nkDvmx7x/6kDM5guu/YpXkGZ/Xj/IwGiLDdKM99YA5Vag7pjGyTJ8BNUh/6hxEn/sEu5DKtyRgnONJ7EmOoKrA==", + "dev": true, + "requires": { + "@types/sizzle": "*" + } + }, "@types/minimatch": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", @@ -1619,6 +1894,12 @@ "integrity": "sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw==", "dev": true }, + "@types/sizzle": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.2.tgz", + "integrity": "sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg==", + "dev": true + }, "@types/source-list-map": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", @@ -1934,6 +2215,11 @@ "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", "dev": true }, + "angular-us-map": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/angular-us-map/-/angular-us-map-1.2.0.tgz", + "integrity": "sha512-Z+AlLEgPun1OtwENxi9AcOoz1zjpNKvgGNuiwOr7MvJkEmJPKbIT3cQoHWQiU1sAihcoaIhHoPIiPvtZZyYzOA==" + }, "ansi-colors": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", @@ -2286,8 +2572,7 @@ "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base": { "version": "0.11.2", @@ -2398,6 +2683,16 @@ "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", "dev": true }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, "blob": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", @@ -2496,7 +2791,6 @@ "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" @@ -3090,8 +3384,7 @@ "commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, "commondir": { "version": "1.0.1", @@ -3167,8 +3460,7 @@ "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 + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { "version": "1.6.2", @@ -3443,8 +3735,7 @@ "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cosmiconfig": { "version": "5.2.1", @@ -3819,6 +4110,270 @@ "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", "dev": true }, + "d3": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/d3/-/d3-5.16.0.tgz", + "integrity": "sha512-4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw==", + "requires": { + "d3-array": "1", + "d3-axis": "1", + "d3-brush": "1", + "d3-chord": "1", + "d3-collection": "1", + "d3-color": "1", + "d3-contour": "1", + "d3-dispatch": "1", + "d3-drag": "1", + "d3-dsv": "1", + "d3-ease": "1", + "d3-fetch": "1", + "d3-force": "1", + "d3-format": "1", + "d3-geo": "1", + "d3-hierarchy": "1", + "d3-interpolate": "1", + "d3-path": "1", + "d3-polygon": "1", + "d3-quadtree": "1", + "d3-random": "1", + "d3-scale": "2", + "d3-scale-chromatic": "1", + "d3-selection": "1", + "d3-shape": "1", + "d3-time": "1", + "d3-time-format": "2", + "d3-timer": "1", + "d3-transition": "1", + "d3-voronoi": "1", + "d3-zoom": "1" + } + }, + "d3-array": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", + "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" + }, + "d3-axis": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-1.0.12.tgz", + "integrity": "sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ==" + }, + "d3-brush": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-1.1.5.tgz", + "integrity": "sha512-rEaJ5gHlgLxXugWjIkolTA0OyMvw8UWU1imYXy1v642XyyswmI1ybKOv05Ft+ewq+TFmdliD3VuK0pRp1VT/5A==", + "requires": { + "d3-dispatch": "1", + "d3-drag": "1", + "d3-interpolate": "1", + "d3-selection": "1", + "d3-transition": "1" + } + }, + "d3-chord": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.6.tgz", + "integrity": "sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA==", + "requires": { + "d3-array": "1", + "d3-path": "1" + } + }, + "d3-collection": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", + "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" + }, + "d3-color": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", + "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" + }, + "d3-contour": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-1.3.2.tgz", + "integrity": "sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg==", + "requires": { + "d3-array": "^1.1.1" + } + }, + "d3-dispatch": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", + "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==" + }, + "d3-drag": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-1.2.5.tgz", + "integrity": "sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w==", + "requires": { + "d3-dispatch": "1", + "d3-selection": "1" + } + }, + "d3-dsv": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.2.0.tgz", + "integrity": "sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g==", + "requires": { + "commander": "2", + "iconv-lite": "0.4", + "rw": "1" + } + }, + "d3-ease": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.6.tgz", + "integrity": "sha512-SZ/lVU7LRXafqp7XtIcBdxnWl8yyLpgOmzAk0mWBI9gXNzLDx5ybZgnRbH9dN/yY5tzVBqCQ9avltSnqVwessQ==" + }, + "d3-fetch": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-1.1.2.tgz", + "integrity": "sha512-S2loaQCV/ZeyTyIF2oP8D1K9Z4QizUzW7cWeAOAS4U88qOt3Ucf6GsmgthuYSdyB2HyEm4CeGvkQxWsmInsIVA==", + "requires": { + "d3-dsv": "1" + } + }, + "d3-force": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", + "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", + "requires": { + "d3-collection": "1", + "d3-dispatch": "1", + "d3-quadtree": "1", + "d3-timer": "1" + } + }, + "d3-format": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.4.tgz", + "integrity": "sha512-TWks25e7t8/cqctxCmxpUuzZN11QxIA7YrMbram94zMQ0PXjE4LVIMe/f6a4+xxL8HQ3OsAFULOINQi1pE62Aw==" + }, + "d3-geo": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.0.tgz", + "integrity": "sha512-NalZVW+6/SpbKcnl+BCO67m8gX+nGeJdo6oGL9H6BRUGUL1e+AtPcP4vE4TwCQ/gl8y5KE7QvBzrLn+HsKIl+w==", + "requires": { + "d3-array": "1" + } + }, + "d3-hierarchy": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", + "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==" + }, + "d3-interpolate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz", + "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==", + "requires": { + "d3-color": "1" + } + }, + "d3-path": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", + "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" + }, + "d3-polygon": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-1.0.6.tgz", + "integrity": "sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ==" + }, + "d3-quadtree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz", + "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==" + }, + "d3-random": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-1.1.2.tgz", + "integrity": "sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ==" + }, + "d3-scale": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-2.2.2.tgz", + "integrity": "sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==", + "requires": { + "d3-array": "^1.2.0", + "d3-collection": "1", + "d3-format": "1", + "d3-interpolate": "1", + "d3-time": "1", + "d3-time-format": "2" + } + }, + "d3-scale-chromatic": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz", + "integrity": "sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg==", + "requires": { + "d3-color": "1", + "d3-interpolate": "1" + } + }, + "d3-selection": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.1.tgz", + "integrity": "sha512-BTIbRjv/m5rcVTfBs4AMBLKs4x8XaaLkwm28KWu9S2vKNqXkXt2AH2Qf0sdPZHjFxcWg/YL53zcqAz+3g4/7PA==" + }, + "d3-shape": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", + "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "requires": { + "d3-path": "1" + } + }, + "d3-time": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", + "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" + }, + "d3-time-format": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.2.3.tgz", + "integrity": "sha512-RAHNnD8+XvC4Zc4d2A56Uw0yJoM7bsvOlJR33bclxq399Rak/b9bhvu/InjxdWhPtkgU53JJcleJTGkNRnN6IA==", + "requires": { + "d3-time": "1" + } + }, + "d3-timer": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", + "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" + }, + "d3-transition": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.3.2.tgz", + "integrity": "sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA==", + "requires": { + "d3-color": "1", + "d3-dispatch": "1", + "d3-ease": "1", + "d3-interpolate": "1", + "d3-selection": "^1.1.0", + "d3-timer": "1" + } + }, + "d3-voronoi": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz", + "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==" + }, + "d3-zoom": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-1.8.3.tgz", + "integrity": "sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ==", + "requires": { + "d3-dispatch": "1", + "d3-drag": "1", + "d3-interpolate": "1", + "d3-selection": "1", + "d3-transition": "1" + } + }, "damerau-levenshtein": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", @@ -4864,6 +5419,13 @@ "schema-utils": "^2.6.5" } }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, "fileset": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", @@ -5135,8 +5697,7 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { "version": "2.1.3", @@ -5197,7 +5758,6 @@ "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", @@ -5617,7 +6177,6 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } @@ -5668,8 +6227,7 @@ "immediate": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", - "dev": true + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" }, "import-cwd": { "version": "2.1.0", @@ -5743,7 +6301,6 @@ "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" @@ -5752,8 +6309,7 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { "version": "1.3.5", @@ -6183,8 +6739,7 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isbinaryfile": { "version": "3.0.3", @@ -6441,6 +6996,11 @@ } } }, + "jquery": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", + "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==" + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -6539,7 +7099,6 @@ "version": "3.4.0", "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.4.0.tgz", "integrity": "sha512-gZAOYuPl4EhPTXT0GjhI3o+ZAz3su6EhLrKUoAivcKqyqC7laS5JEv4XWZND9BgcDcF83vI85yGbDmDR6UhrIg==", - "dev": true, "requires": { "lie": "~3.3.0", "pako": "~1.0.2", @@ -6757,7 +7316,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "dev": true, "requires": { "immediate": "~3.0.5" } @@ -7286,7 +7844,6 @@ "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" } @@ -7444,6 +8001,13 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, + "nan": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", + "dev": true, + "optional": true + }, "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", @@ -7481,6 +8045,11 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, + "node-fetch": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", + "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" + }, "node-fetch-npm": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz", @@ -7869,7 +8438,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1" } @@ -8046,8 +8614,7 @@ "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 + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "osenv": { "version": "0.1.5", @@ -8287,8 +8854,7 @@ "pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" }, "parallel-transform": { "version": "1.2.0", @@ -8382,8 +8948,7 @@ "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 + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-is-inside": { "version": "1.0.2", @@ -9208,8 +9773,7 @@ "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "promise": { "version": "7.3.1", @@ -9376,6 +9940,18 @@ "glob": "^7.1.3" } }, + "selenium-webdriver": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", + "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", + "dev": true, + "requires": { + "jszip": "^3.1.3", + "rimraf": "^2.5.4", + "tmp": "0.0.30", + "xml2js": "^0.4.17" + } + }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -9403,6 +9979,15 @@ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, + "tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.1" + } + }, "webdriver-manager": { "version": "12.1.7", "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.7.tgz", @@ -9673,7 +10258,6 @@ "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -9857,6 +10441,11 @@ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", "dev": true }, + "require.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/require.js/-/require.js-1.0.0.tgz", + "integrity": "sha1-cfoyczZq9EJ7AmWiGL5eYu1PkMg=" + }, "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -9976,6 +10565,11 @@ "aproba": "^1.1.1" } }, + "rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=" + }, "rxjs": { "version": "6.5.5", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", @@ -9987,8 +10581,7 @@ "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==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "safe-regex": { "version": "1.1.0", @@ -10002,8 +10595,7 @@ "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "sass": { "version": "1.26.3", @@ -10087,22 +10679,19 @@ "dev": true }, "selenium-webdriver": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", - "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", - "dev": true, + "version": "4.0.0-alpha.7", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.0.0-alpha.7.tgz", + "integrity": "sha512-D4qnTsyTr91jT8f7MfN+OwY0IlU5+5FmlO5xlgRUV6hDEV8JyYx2NerdTEqDDkNq7RZDYc4VoPALk8l578RBHw==", "requires": { - "jszip": "^3.1.3", - "rimraf": "^2.5.4", - "tmp": "0.0.30", - "xml2js": "^0.4.17" + "jszip": "^3.2.2", + "rimraf": "^2.7.1", + "tmp": "0.0.30" }, "dependencies": { "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, "requires": { "glob": "^7.1.3" } @@ -10111,7 +10700,6 @@ "version": "0.0.30", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", - "dev": true, "requires": { "os-tmpdir": "~1.0.1" } @@ -10296,8 +10884,7 @@ "set-immediate-shim": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" }, "set-value": { "version": "2.0.1", @@ -11132,7 +11719,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -11951,8 +12537,7 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "util-promisify": { "version": "2.1.0", @@ -12145,6 +12730,8 @@ "dev": true, "optional": true, "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1", "node-pre-gyp": "*" }, "dependencies": { @@ -12763,6 +13350,38 @@ "requires": { "@types/selenium-webdriver": "^3.0.0", "selenium-webdriver": "^3.0.1" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "selenium-webdriver": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", + "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", + "dev": true, + "requires": { + "jszip": "^3.1.3", + "rimraf": "^2.5.4", + "tmp": "0.0.30", + "xml2js": "^0.4.17" + } + }, + "tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.1" + } + } } }, "webpack": { @@ -13085,6 +13704,8 @@ "dev": true, "optional": true, "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1", "node-pre-gyp": "*" }, "dependencies": { @@ -13874,8 +14495,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "ws": { "version": "6.2.1", diff --git a/ExampleUI/package.json b/package.json similarity index 84% rename from ExampleUI/package.json rename to package.json index 3c310b7..1d6b085 100644 --- a/ExampleUI/package.json +++ b/package.json @@ -19,7 +19,13 @@ "@angular/platform-browser": "~9.1.1", "@angular/platform-browser-dynamic": "~9.1.1", "@angular/router": "~9.1.1", + "angular-us-map": "^1.2.0", + "d3": "^5.16.0", + "jquery": "^3.5.1", + "node-fetch": "^2.6.0", + "require.js": "^1.0.0", "rxjs": "~6.5.4", + "selenium-webdriver": "^4.0.0-alpha.7", "tslib": "^1.10.0", "zone.js": "~0.10.2" }, @@ -28,9 +34,11 @@ "@angular/cli": "~9.1.1", "@angular/compiler-cli": "~9.1.1", "@angular/language-service": "~9.1.1", - "@types/node": "^12.11.1", + "@types/d3": "^5.7.2", "@types/jasmine": "~3.5.0", "@types/jasminewd2": "~2.0.3", + "@types/jquery": "^3.3.38", + "@types/node": "^12.11.1", "codelyzer": "^5.1.2", "jasmine-core": "~3.5.0", "jasmine-spec-reporter": "~4.2.1", diff --git a/ExampleUI/src/app/app-routing.module.ts b/src/app/app-routing.module.ts similarity index 52% rename from ExampleUI/src/app/app-routing.module.ts rename to src/app/app-routing.module.ts index 2f6f9f7..ae34c09 100644 --- a/ExampleUI/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -1,17 +1,15 @@ import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; import { HomeComponent } from './pages/home/home.component'; -import { LoginComponent } from './pages/login/login.component'; -import { RegisterComponent } from './pages/register/register.component'; -import { AddprojectComponent } from './pages/addproject/addproject.component'; - +import { GraphComponent } from './pages/graph/graph.component'; +import { D3MapComponent } from './d3-map/d3-map.component' +import { StateGraphComponent } from './pages/stateGraph/stateGraph.component' const routes: Routes = [ {path:'',redirectTo:'home',pathMatch:'full'}, {path:'home',component: HomeComponent}, - {path:'login',component: LoginComponent}, - {path:'register',component: RegisterComponent}, - {path:'addproject',component: AddprojectComponent} + {path:'graph',component: GraphComponent}, + {path:'d3-map',component: D3MapComponent}, ]; @NgModule({ diff --git a/src/app/app.component.html b/src/app/app.component.html new file mode 100644 index 0000000..d0699ef --- /dev/null +++ b/src/app/app.component.html @@ -0,0 +1,24 @@ + + +
+ +
\ No newline at end of file diff --git a/ExampleUI/src/app/app.component.scss b/src/app/app.component.scss similarity index 100% rename from ExampleUI/src/app/app.component.scss rename to src/app/app.component.scss diff --git a/ExampleUI/src/app/app.component.spec.ts b/src/app/app.component.spec.ts similarity index 85% rename from ExampleUI/src/app/app.component.spec.ts rename to src/app/app.component.spec.ts index 48e19de..764607b 100644 --- a/ExampleUI/src/app/app.component.spec.ts +++ b/src/app/app.component.spec.ts @@ -20,16 +20,16 @@ describe('AppComponent', () => { expect(app).toBeTruthy(); }); - it(`should have as title 'ExampleUI'`, () => { + it(`should have as title 'COVID19-FrontEnd'`, () => { const fixture = TestBed.createComponent(AppComponent); const app = fixture.componentInstance; - expect(app.title).toEqual('ExampleUI'); + expect(app.title).toEqual('COVID19-FrontEnd'); }); it('should render title', () => { const fixture = TestBed.createComponent(AppComponent); fixture.detectChanges(); const compiled = fixture.nativeElement; - expect(compiled.querySelector('.content span').textContent).toContain('ExampleUI app is running!'); + expect(compiled.querySelector('.content span').textContent).toContain('COVID19-FrontEnd app is running!'); }); }); diff --git a/ExampleUI/src/app/app.component.ts b/src/app/app.component.ts similarity index 92% rename from ExampleUI/src/app/app.component.ts rename to src/app/app.component.ts index 2ed2af1..3b2f340 100644 --- a/ExampleUI/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -7,7 +7,7 @@ import { AuthService } from './services/auth.service'; styleUrls: ['./app.component.scss'] }) export class AppComponent { - title = 'ExampleUI'; + title = 'COVID19-FrontEnd'; get loggedIn():boolean{ return this.authSvc.loggedIn; } @@ -19,4 +19,6 @@ export class AppComponent { this.authSvc.logout(); return false; } + + } diff --git a/ExampleUI/src/app/app.module.ts b/src/app/app.module.ts similarity index 68% rename from ExampleUI/src/app/app.module.ts rename to src/app/app.module.ts index 3371e7a..a3c7a0a 100644 --- a/ExampleUI/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,29 +1,31 @@ import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; - import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; import { HomeComponent } from './pages/home/home.component'; -import { LoginComponent } from './pages/login/login.component'; -import { RegisterComponent } from './pages/register/register.component'; -import { AddprojectComponent } from './pages/addproject/addproject.component'; +import { GraphComponent } from './pages/graph/graph.component'; import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http'; import { ReactiveFormsModule } from '@angular/forms'; import { TokenInterceptorService } from './services/token-interceptor.service'; +import { UsMapModule } from 'angular-us-map'; +import { D3MapComponent } from './d3-map/d3-map.component'; +import { StateGraphComponent } from './pages/stateGraph/stateGraph.component' + @NgModule({ declarations: [ AppComponent, HomeComponent, - LoginComponent, - RegisterComponent, - AddprojectComponent + GraphComponent, + D3MapComponent, + StateGraphComponent ], imports: [ BrowserModule, HttpClientModule, AppRoutingModule, - ReactiveFormsModule + ReactiveFormsModule, + UsMapModule ], providers: [{provide: HTTP_INTERCEPTORS, useClass: TokenInterceptorService, multi:true}], bootstrap: [AppComponent] diff --git a/src/app/d3-map/d3-map.component.html b/src/app/d3-map/d3-map.component.html new file mode 100644 index 0000000..b3ee31b --- /dev/null +++ b/src/app/d3-map/d3-map.component.html @@ -0,0 +1,81 @@ +
+ + +
+ +
+ + + + + + + \ No newline at end of file diff --git a/src/app/d3-map/d3-map.component.scss b/src/app/d3-map/d3-map.component.scss new file mode 100644 index 0000000..1212e1c --- /dev/null +++ b/src/app/d3-map/d3-map.component.scss @@ -0,0 +1,99 @@ +select { + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; + appearance: none; + outline: 0; + box-shadow: none; + border: 0 !important; + background: #688baf; + background-image: none; + } + /* Remove IE arrow */ + select::-ms-expand { + display: none; + } + /* Custom Select */ + .select { + position: relative; + display: flex; + width: 20em; + height: 3em; + line-height: 3; + background: #4b5968; + overflow: hidden; + border-radius: .25em; + } + select { + flex: 1; + padding: 0 .5em; + color: #fff; + cursor: pointer; + } + /* Arrow */ + .select::after { + content: '\25BC'; + position: absolute; + top: 0; + right: 0; + padding: 0 1em; + background: #34495e; + cursor: pointer; + pointer-events: none; + -webkit-transition: .25s all ease; + -o-transition: .25s all ease; + transition: .25s all ease; + } + /* Transition */ + .select:hover::after { + color: #9dd4d8; + } +app-d3-map { + .state{ + fill: none; + stroke: #a9a9a9; + stroke-width: 1; + } + .state:hover{ + fill-opacity:0.5; + } + #tooltip { + position: absolute; + text-align: center; + padding: 20px; + margin: 10px; + font: 12px sans-serif; + background: lightsteelblue; + border: 1px; + border-radius: 2px; + pointer-events: none; + } + #tooltip h4{ + margin:0; + font-size:14px; + } + #tooltip{ + background:rgba(0,0,0,0.9); + border:1px solid grey; + border-radius:5px; + font-size:12px; + width:auto; + padding:4px; + color:white; + opacity:0; + } + #tooltip table{ + table-layout:fixed; + } + #tooltip tr td{ + padding:0; + margin:0; + } + #tooltip tr td:nth-child(1){ + width:50px; + } + #tooltip tr td:nth-child(2){ + text-align:center; + } + +} \ No newline at end of file diff --git a/ExampleUI/src/app/pages/register/register.component.spec.ts b/src/app/d3-map/d3-map.component.spec.ts similarity index 55% rename from ExampleUI/src/app/pages/register/register.component.spec.ts rename to src/app/d3-map/d3-map.component.spec.ts index 6c19551..7f40387 100644 --- a/ExampleUI/src/app/pages/register/register.component.spec.ts +++ b/src/app/d3-map/d3-map.component.spec.ts @@ -1,20 +1,20 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { RegisterComponent } from './register.component'; +import { D3MapComponent } from './d3-map.component'; -describe('RegisterComponent', () => { - let component: RegisterComponent; - let fixture: ComponentFixture; +describe('D3MapComponent', () => { + let component: D3MapComponent; + let fixture: ComponentFixture; beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [ RegisterComponent ] + declarations: [ D3MapComponent ] }) .compileComponents(); })); beforeEach(() => { - fixture = TestBed.createComponent(RegisterComponent); + fixture = TestBed.createComponent(D3MapComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/src/app/d3-map/d3-map.component.ts b/src/app/d3-map/d3-map.component.ts new file mode 100644 index 0000000..732f4fb --- /dev/null +++ b/src/app/d3-map/d3-map.component.ts @@ -0,0 +1,194 @@ +import { Component, ElementRef, ViewChild, OnInit, ViewEncapsulation, OnChanges } from '@angular/core'; + +import * as d3 from 'd3'; +import { ProjectsService } from '../services/projects.service'; +import { TestBed } from '@angular/core/testing'; +declare var test: any; + +@Component({ + selector: 'app-d3-map', + encapsulation: ViewEncapsulation.None, + templateUrl: './d3-map.component.html', + styleUrls: ['./d3-map.component.scss'] +}) +export class D3MapComponent implements OnInit { + + // Map HTML div + @ViewChild('statesvg', { static: true, read: ElementRef }) chartContainer: ElementRef; + + stateData: any; + + constructor(private projSvc: ProjectsService) { + projSvc.getProjects().subscribe(result => { + this.stateData = result; + this.createChart(); + }) + } + + ngOnInit(): void { + + } + + test() { + var inputValue = (document.getElementById("slct")).value; + var dataAsOf = this.stateData[inputValue][this.stateData[inputValue].length -1].date; + var totalCases = this.stateData[inputValue][this.stateData[inputValue].length - 1].confirmed; + var totalDeaths = this.stateData[inputValue][this.stateData[inputValue].length - 1].deaths; + var myWrapper = document.getElementById("wrapperOne"); + myWrapper.innerHTML = "State: " + inputValue; + myWrapper.style.display = "none"; + myWrapper.style.display = "block"; + var myWrapper2 = document.getElementById("wrapperTwo"); + myWrapper2.innerHTML = "Confirmed Cases: " + totalCases + myWrapper2.style.display = "none"; + myWrapper2.style.display = "block"; + var myWrapper3 = document.getElementById("wrapperThree"); + myWrapper3.innerHTML = "Total Deaths: " + totalDeaths + myWrapper3.style.display = "none"; + myWrapper3.style.display = "block"; + var myWrapper4 = document.getElementById("wrapperFour"); + myWrapper4.innerHTML = "Updated on: " + dataAsOf + myWrapper4.style.display = "none"; + myWrapper4.style.display = "block"; + } + + private createChart(): void { + + var uStatePaths = [ + { id: "HI", n: "Hawaii", d: "M233.08751,519.30948L235.02744,515.75293L237.2907,515.42961L237.61402,516.23791L235.51242,519.30948L233.08751,519.30948ZM243.27217,515.59127L249.4153,518.17784L251.51689,517.85452L253.1335,513.97465L252.48686,510.57977L248.28366,510.09479L244.24213,511.87306L243.27217,515.59127ZM273.9878,525.61427L277.706,531.11074L280.13092,530.78742L281.26255,530.30244L282.7175,531.59573L286.43571,531.43407L287.40568,529.97912L284.49577,528.20085L282.55584,524.48263L280.45424,520.92609L274.63444,523.83599L273.9878,525.61427ZM294.19545,534.50564L295.48874,532.5657L300.17691,533.53566L300.82356,533.05068L306.96668,533.69732L306.64336,534.99062L304.05678,536.44556L299.69193,536.12224L294.19545,534.50564ZM299.53027,539.67879L301.47021,543.55866L304.54176,542.42703L304.86509,540.81041L303.24848,538.70882L299.53027,538.3855L299.53027,539.67879ZM306.4817,538.54716L308.74496,535.63726L313.43313,538.06218L317.79798,539.19381L322.16284,541.94205L322.16284,543.88198L318.6063,545.66026L313.75645,546.63022L311.33154,545.17527L306.4817,538.54716ZM323.13281,554.06663L324.74942,552.77335L328.14431,554.38997L335.74238,557.94651L339.13727,560.0481L340.75387,562.47302L342.69381,566.83787L346.73534,569.42445L346.41202,570.71775L342.53215,573.95097L338.32896,575.40592L336.87401,574.75928L333.80244,576.53754L331.37753,579.77077L329.11427,582.68067L327.33599,582.51901L323.77945,579.93243L323.45613,575.40592L324.10277,572.981L322.48616,567.32286L320.38456,565.54458L320.2229,562.958L322.48616,561.98804L324.58776,558.91648L325.07274,557.94651L323.45613,556.16823L323.13281,554.06663Z" }, + { id: "AK", n: "Alaska", d: "M158.07671,453.67502L157.75339,539.03215L159.36999,540.00211L162.44156,540.16377L163.8965,539.03215L166.48308,539.03215L166.64475,541.94205L173.59618,548.73182L174.08117,551.3184L177.47605,549.37846L178.1227,549.2168L178.44602,546.14524L179.90096,544.52863L181.0326,544.36697L182.97253,542.91201L186.04409,545.01361L186.69074,547.92352L188.63067,549.05514L189.7623,551.48006L193.64218,553.25833L197.03706,559.2398L199.78529,563.11966L202.04855,565.86791L203.50351,569.58611L208.515,571.36439L213.68817,573.46598L214.65813,577.83084L215.14311,580.9024L214.17315,584.29729L212.39487,586.56054L210.77826,585.75224L209.32331,582.68067L206.57507,581.22573L204.7968,580.09409L203.98849,580.9024L205.44344,583.65065L205.6051,587.36885L204.47347,587.85383L202.53354,585.9139L200.43195,584.62061L200.91693,586.23722L202.21021,588.0155L201.40191,588.8238C201.40191,588.8238,200.59361,588.50048,200.10863,587.85383C199.62363,587.20719,198.00703,584.45895,198.00703,584.45895L197.03706,582.19569C197.03706,582.19569,196.71374,583.48898,196.06709,583.16565C195.42044,582.84233,194.7738,581.71071,194.7738,581.71071L196.55207,579.77077L195.09712,578.31582L195.09712,573.30432L194.28882,573.30432L193.48052,576.6992L192.34888,577.1842L191.37892,573.46598L190.73227,569.74777L189.92396,569.26279L190.24729,574.92094L190.24729,576.05256L188.79233,574.75928L185.23579,568.77781L183.13419,568.29283L182.48755,564.57462L180.87094,561.66472L179.25432,560.53308L179.25432,558.26983L181.35592,556.97654L180.87094,556.65322L178.28436,557.29986L174.88947,554.87495L172.30289,551.96504L167.45306,549.37846L163.41152,546.79188L164.70482,543.55866L164.70482,541.94205L162.92654,543.55866L160.01664,544.69029L156.29843,543.55866L150.64028,541.13375L145.14381,541.13375L144.49717,541.61873L138.03072,537.73885L135.92912,537.41553L133.18088,531.59573L129.62433,531.91905L126.06778,533.374L126.55277,537.90052L127.68439,534.99062L128.65437,535.31394L127.19941,539.67879L130.43263,536.93055L131.07928,538.54716L127.19941,542.91201L125.90612,542.58869L125.42114,540.64875L124.12785,539.84045L122.83456,540.97208L120.08632,539.19381L117.01475,541.29541L115.23649,543.397L111.8416,545.4986L107.15342,545.33693L106.66844,543.23534L110.38664,542.58869L110.38664,541.29541L108.12338,540.64875L109.09336,538.22384L111.35661,534.34397L111.35661,532.5657L111.51827,531.75739L115.88313,529.49413L116.85309,530.78742L119.60134,530.78742L118.30805,528.20085L114.58983,527.87752L109.57834,530.62576L107.15342,534.02064L105.37515,536.60723L104.24352,538.87049L100.04033,540.32543L96.96876,542.91201L96.645439,544.52863L98.908696,545.4986L99.717009,547.60018L96.96876,550.83341L90.502321,555.03661L82.742574,559.2398L80.640977,560.37142L75.306159,561.50306L69.971333,563.76631L71.749608,565.0596L70.294654,566.51455L69.809672,567.64618L67.061434,566.67621L63.828214,566.83787L63.019902,569.10113L62.049939,569.10113L62.37326,566.67621L58.816709,567.96951L55.90681,568.93947L52.511924,567.64618L49.602023,569.58611L46.368799,569.58611L44.267202,570.87941L42.65059,571.68771L40.548995,571.36439L37.962415,570.23276L35.699158,570.87941L34.729191,571.84937L33.112578,570.71775L33.112578,568.77781L36.184142,567.48452L42.488929,568.13117L46.853782,566.51455L48.955378,564.41296L51.86528,563.76631L53.643553,562.958L56.391794,563.11966L58.008406,564.41296L58.978369,564.08964L61.241626,561.3414L64.313196,560.37142L67.708076,559.72478L69.00137,559.40146L69.648012,559.88644L70.456324,559.88644L71.749608,556.16823L75.791141,554.71329L77.731077,550.99508L79.994336,546.46856L81.610951,545.01361L81.934272,542.42703L80.317657,543.72032L76.922764,544.36697L76.276122,541.94205L74.982838,541.61873L74.012865,542.58869L73.851205,545.4986L72.39625,545.33693L70.941306,539.51713L69.648012,540.81041L68.516388,540.32543L68.193068,538.3855L64.151535,538.54716L62.049939,539.67879L59.463361,539.35547L60.918305,537.90052L61.403286,535.31394L60.756645,533.374L62.211599,532.40404L63.504883,532.24238L62.858241,530.4641L62.858241,526.09925L61.888278,525.12928L61.079966,526.58423L54.936843,526.58423L53.481892,525.29094L52.835247,521.41108L50.733651,517.85452L50.733651,516.88456L52.835247,516.07625L52.996908,513.97465L54.128536,512.84303L53.320231,512.35805L52.026941,512.84303L50.895313,510.09479L51.86528,505.08328L56.391794,501.85007L58.978369,500.23345L60.918305,496.51525L63.666554,495.22195L66.253132,496.35359L66.576453,498.77851L69.00137,498.45517L72.23459,496.03026L73.851205,496.67691L74.821167,497.32355L76.437782,497.32355L78.701041,496.03026L79.509354,491.6654C79.509354,491.6654,79.832675,488.75551,80.479317,488.27052C81.125959,487.78554,81.44928,487.30056,81.44928,487.30056L80.317657,485.36062L77.731077,486.16893L74.497847,486.97723L72.557911,486.49225L69.00137,484.71397L63.989875,484.55231L60.433324,480.83411L60.918305,476.95424L61.564957,474.52932L59.463361,472.75105L57.523423,469.03283L58.008406,468.22453L64.798177,467.73955L66.899773,467.73955L67.869736,468.70951L68.516388,468.70951L68.354728,467.0929L72.23459,466.44626L74.821167,466.76958L76.276122,467.90121L74.821167,470.00281L74.336186,471.45775L77.084435,473.07437L82.095932,474.85264L83.874208,473.88268L81.610951,469.51783L80.640977,466.2846L81.610951,465.47629L78.21606,463.53636L77.731077,462.40472L78.21606,460.78812L77.407756,456.90825L74.497847,452.22007L72.072929,448.01688L74.982838,446.07694L78.21606,446.07694L79.994336,446.72359L84.197528,446.56193L87.915733,443.00539L89.047366,439.93382L92.765578,437.5089L94.382182,438.47887L97.130421,437.83222L100.84863,435.73062L101.98027,435.56896L102.95023,436.37728L107.47674,436.21561L110.22498,433.14405L111.35661,433.14405L114.91316,435.56896L116.85309,437.67056L116.36811,438.80219L117.01475,439.93382L118.63137,438.31721L122.51124,438.64053L122.83456,442.35873L124.7745,443.81369L131.88759,444.46033L138.19238,448.66352L139.64732,447.69356L144.82049,450.28014L146.92208,449.6335L148.86202,448.82518L153.71185,450.76512L158.07671,453.67502ZM42.973913,482.61238L45.075509,487.9472L44.913847,488.91717L42.003945,488.59384L40.225672,484.55231L38.447399,483.09737L36.02248,483.09737L35.86082,480.51078L37.639093,478.08586L38.770722,480.51078L40.225672,481.96573L42.973913,482.61238ZM40.387333,516.07625L44.105542,516.88456L47.823749,517.85452L48.632056,518.8245L47.015444,522.5427L43.94388,522.38104L40.548995,518.8245L40.387333,516.07625ZM19.694697,502.01173L20.826327,504.5983L21.957955,506.21492L20.826327,507.02322L18.72473,503.95166L18.72473,502.01173L19.694697,502.01173ZM5.9534943,575.0826L9.3483796,572.81934L12.743265,571.84937L15.329845,572.17269L15.814828,573.7893L17.754763,574.27429L19.694697,572.33436L19.371375,570.71775L22.119616,570.0711L25.029518,572.65768L23.897889,574.43595L19.533037,575.56758L16.784795,575.0826L13.066588,573.95097L8.7017347,575.40592L7.0851227,575.72924L5.9534943,575.0826ZM54.936843,570.55609L56.553455,572.49602L58.655048,570.87941L57.2001,569.58611L54.936843,570.55609ZM57.846745,573.62764L58.978369,571.36439L61.079966,571.68771L60.271663,573.62764L57.846745,573.62764ZM81.44928,571.68771L82.904234,573.46598L83.874208,572.33436L83.065895,570.39442L81.44928,571.68771ZM90.17899,559.2398L91.310623,565.0596L94.220522,565.86791L99.232017,562.958L103.59687,560.37142L101.98027,557.94651L102.46525,555.52159L100.36365,556.81488L97.453752,556.00657L99.070357,554.87495L101.01029,555.68325L104.89016,553.90497L105.37515,552.45003L102.95023,551.64172L103.75853,549.70178L101.01029,551.64172L96.322118,555.19827L91.472284,558.10817L90.17899,559.2398ZM132.53423,539.35547L134.95915,537.90052L133.98918,536.12224L132.21091,537.09221L132.53423,539.35547Z" }, + { id: "FL", n: "Florida", d: "M759.8167,439.1428L762.08236,446.4614L765.81206,456.20366L771.14685,465.57996L774.86504,471.88472L779.71486,477.38118L783.75637,481.09937L785.37297,484.00926L784.24135,485.30254L783.43305,486.59582L786.34293,494.03221L789.25282,496.94209L791.83939,502.27689L795.39592,508.09667L799.92241,516.34135L801.2157,523.93939L801.70068,535.90227L802.34732,537.68053L802.024,541.0754L799.59909,542.36869L799.92241,544.30861L799.27577,546.24854L799.59909,548.67344L800.08407,550.61337L797.33585,553.84658L794.2643,555.30152L790.38445,555.46318L788.9295,557.07979L786.5046,558.04975L785.21131,557.56477L784.07969,556.59481L783.75637,553.68492L782.94806,550.29005L779.55319,545.11691L775.99666,542.85367L772.11681,542.53035L771.30851,543.82363L768.23696,539.4588L767.59032,535.90227L765.00375,531.86076L763.22549,530.72913L761.60888,532.83072L759.83062,532.5074L757.72903,527.49592L754.81914,523.61607L751.90925,518.28128L749.32269,515.20973L745.76616,511.49154L747.86774,509.06663L751.10095,503.57017L750.93929,501.95357L746.4128,500.98361L744.79619,501.63025L745.11952,502.27689L747.70608,503.24685L746.25114,507.77335L745.44284,508.25833L743.66457,504.21682L742.37129,499.367L742.04797,496.61877L743.50291,491.93062L743.50291,482.39265L740.43136,478.67446L739.13808,475.60291L733.96494,474.30963L732.02502,473.66299L730.40841,471.07642L727.01354,469.45981L725.88192,466.06494L723.13369,465.09498L720.70878,461.37679L716.50561,459.92185L713.59572,458.4669L711.00916,458.4669L706.96764,459.27521L706.80598,461.21513L707.61429,462.18509L707.1293,463.31672L704.05776,463.15506L700.33957,466.71159L696.78303,468.65151L692.90318,468.65151L689.66997,469.9448L689.34665,467.19657L687.73005,465.25664L684.82016,464.12502L683.20356,462.67007L675.12053,458.79022L667.52249,457.01196L663.15766,457.6586L657.17622,458.14358L651.19478,460.24517L647.71554,460.85813L647.47762,452.80838L644.89105,450.86846L643.11278,449.09019L643.4361,446.01863L653.62072,444.72535L679.16312,441.81546L685.95287,441.16882L691.38887,441.44909L693.97544,445.32895L695.43038,446.78389L703.52854,447.29911L714.34829,446.65247L735.86068,445.35918L741.3064,444.68481L746.41398,444.88932L746.84081,447.79921L749.07381,448.60751L749.30875,443.97751L747.78053,439.80456L749.08893,438.36473L754.64356,438.81948L759.8167,439.1428ZM772.36211,571.54788L774.78703,570.90124L776.08031,570.65875L777.53527,568.31466L779.87935,566.69805L781.17264,567.18304L782.87008,567.50636L783.27423,568.55715L779.79853,569.76961L775.59533,571.22456L773.25125,572.43702L772.36211,571.54788ZM785.86081,566.53639L787.07327,567.58719L789.82151,565.4856L795.15632,561.28241L798.87452,557.40254L801.38027,550.77444L802.35024,549.077L802.5119,545.68212L801.78442,546.1671L800.81446,548.99617L799.3595,553.6035L796.12628,558.8575L791.76144,563.06068L788.36656,565.00061L785.86081,566.53639Z" }, + { id: "NH", n: "New Hampshire", d: "M880.79902,142.42476L881.66802,141.34826L882.75824,138.05724L880.21516,137.14377L879.73017,134.07221L875.85032,132.94059L875.527,130.19235L868.25225,106.75153L863.65083,92.208542L862.75375,92.203482L862.10711,93.820087L861.46047,93.335106L860.4905,92.365143L859.03556,94.305068L858.98709,99.337122L859.29874,105.00434L861.23866,107.75258L861.23866,111.7941L857.52046,116.85688L854.93389,117.98852L854.93389,119.12014L856.06552,120.89841L856.06552,129.46643L855.25721,138.6811L855.09555,143.53092L856.06552,144.82422L855.90386,149.35071L855.41887,151.12899L856.38768,151.83821L873.17535,147.41366L875.35022,146.81121L877.19379,144.03788L880.79902,142.42476Z" }, + { id: "MI", n: "Michigan", d: "M581.61931,82.059006L583.4483,80.001402L585.62022,79.201221L590.99286,75.314624L593.27908,74.743065L593.73634,75.200319L588.59232,80.344339L585.27728,82.287628L583.21967,83.202124L581.61931,82.059006ZM667.79369,114.18719L668.44033,116.69293L671.67355,116.85459L672.96684,115.64213C672.96684,115.64213,672.88601,114.18719,672.56269,114.02552C672.23936,113.86386,670.94608,112.16642,670.94608,112.16642L668.76366,112.40891L667.14704,112.57057L666.82372,113.7022L667.79369,114.18719ZM567.49209,111.21318L568.20837,110.63278L570.9566,109.82447L574.51313,107.56123L574.51313,106.59126L575.15978,105.94462L581.14121,104.97466L583.56612,103.03473L587.93095,100.93315L588.09261,99.639864L590.03254,96.729975L591.8108,95.921673L593.10409,94.143408L595.36733,91.880161L599.73217,89.455254L604.42032,88.970273L605.55194,90.101896L605.22862,91.071859L601.51043,92.041822L600.05549,95.113371L597.79224,95.921673L597.30726,98.34658L594.88235,101.57979L594.55903,104.16636L595.36733,104.65134L596.3373,103.51972L599.89383,100.60983L601.18711,101.90311L603.45036,101.90311L606.68357,102.87307L608.13851,104.0047L609.59345,107.07625L612.34168,109.82447L616.22153,109.66281L617.67648,108.69285L619.29308,109.98613L620.90969,110.47112L622.20297,109.66281L623.33459,109.66281L624.9512,108.69285L628.99271,105.13632L632.38758,104.0047L639.01566,103.68138L643.54215,101.74145L646.12872,100.44817L647.58367,100.60983L647.58367,106.26794L648.06865,106.59126L650.97853,107.39957L652.91846,106.91458L659.06156,105.29798L660.19318,104.16636L661.64813,104.65134L661.64813,111.60274L664.88134,114.67429L666.17462,115.32093L667.4679,116.29089L666.17462,116.61421L665.36632,116.29089L661.64813,115.80591L659.54654,116.45255L657.28329,116.29089L654.05008,117.74584L652.27182,117.74584L646.45204,116.45255L641.27891,116.61421L639.33898,119.20078L632.38758,119.84742L629.96267,120.65572L628.83105,123.72727L627.53777,124.8589L627.05279,124.69724L625.59784,123.08063L621.07135,125.50554L620.42471,125.50554L619.29308,123.88893L618.48478,124.05059L616.54486,128.41543L615.57489,132.45694L612.39377,139.45774L611.21701,138.42347L609.84527,137.39215L607.90449,127.10413L604.36001,125.73408L602.30743,123.44785L590.18707,120.70437L587.3318,119.67473L579.10138,117.50199L571.21139,116.35887L567.49209,111.21318ZM697.8,177.2L694.6,168.9L692.3,159.9L689.9,156.7L687.3,154.9L685.7,156L681.8,157.8L679.9,162.8L677.1,166.5L676,167.2L674.5,166.5C674.5,166.5,671.9,165.1,672.1,164.4C672.3,163.8,672.6,159.4,672.6,159.4L676,158.1L676.8,154.7L677.4,152.1L679.9,150.5L679.5,140.5L677.9,138.2L676.6,137.4L675.8,135.3L676.6,134.5L678.2,134.8L678.4,133.2L676,131L674.7,128.4L672.1,128.4L667.6,126.9L662.1,123.5L659.3,123.5L658.7,124.2L657.7,123.7L654.6,121.4L651.7,123.2L648.8,125.5L649.2,129L650.1,129.3L652.2,129.8L652.7,130.6L650.1,131.4L647.5,131.8L646.1,133.5L645.8,135.6L646.1,137.3L646.4,142.8L642.8,144.9L642.2,144.7L642.2,140.5L643.5,138.1L644.1,135.6L643.3,134.8L641.4,135.6L640.4,139.8L637.7,141L635.9,142.9L635.7,143.9L636.4,144.7L635.7,147.3L633.5,147.8L633.5,148.9L634.3,151.3L633.1,157.5L631.5,161.5L632.2,166.2L632.7,167.3L631.9,169.8L631.5,170.6L631.2,173.3L634.8,179.3L637.7,185.8L639.1,190.6L638.3,195.3L637.3,201.3L634.9,206.4L634.6,209.2L631.3,212.3L635.8,212.1L657.2,209.9L664.4,208.9L664.5,210.5L671.4,209.3L681.7,207.8L685.5,207.4L685.7,206.8L685.8,205.3L687.9,201.6L689.9,199.9L689.7,194.8L691.3,193.2L692.4,192.9L692.6,189.3L694.2,186.3L695.2,186.9L695.4,187.5L696.2,187.7L698.1,186.7L697.8,177.2Z" }, + { id: "VT", n: "Vermont", d: "M844.48416,154.05791L844.80086,148.71228L841.91015,137.92811L841.26351,137.60479L838.35361,136.3115L839.16191,133.40161L838.35361,131.30002L835.65356,126.66004L836.62353,122.78018L835.81522,117.60703L833.39031,111.14059L832.58474,106.21808L859.0041,99.48626L859.3128,105.00847L861.22906,107.7507L861.22906,111.79222L857.52191,116.85021L854.93534,117.99288L854.92429,119.11345L856.23426,120.63257L855.92333,128.73054L855.3139,137.9894L855.08595,143.54634L856.05591,144.83963L855.89425,149.41032L855.40927,151.10021L856.42345,151.82737L848.9859,153.33408L844.48416,154.05791Z" }, + { id: "ME", n: "Maine", d: "M922.83976,78.830719L924.77969,80.932305L927.04294,84.650496L927.04294,86.590422L924.94135,91.278575L923.00142,91.925217L919.60655,94.996766L914.75674,100.49322C914.75674,100.49322,914.1101,100.49322,913.46346,100.49322C912.81682,100.49322,912.49349,98.391636,912.49349,98.391636L910.71523,98.553296L909.74527,100.00824L907.32036,101.46319L906.3504,102.91813L907.967,104.37307L907.48202,105.01972L906.99704,107.76794L905.05711,107.60628L905.05711,105.98968L904.73379,104.69639L903.27885,105.01972L901.50058,101.78651L899.399,103.07979L900.69228,104.53473L901.0156,105.66636L900.2073,106.95964L900.53062,110.03119L900.69228,111.64779L899.07568,114.23436L896.16579,114.71934L895.84247,117.62923L890.50767,120.70078L889.21439,121.18576L887.59778,119.73082L884.52623,123.28735L885.4962,126.52056L884.04125,127.81384L883.87959,132.17867L882.75631,138.43803L880.29406,137.28208L879.80907,134.21052L875.92922,133.07889L875.6059,130.33065L868.33115,106.88983L863.63257,92.250088L865.05311,92.131923L866.5669,92.541822L866.5669,89.955254L867.8752,85.458798L870.46177,80.770645L871.91672,76.729133L869.97679,74.304226L869.97679,68.322789L870.78509,67.352826L871.5934,64.604598L871.43174,63.149654L871.27007,58.29984L873.04834,53.450026L875.95823,44.5587L878.05981,40.355528L879.3531,40.355528L880.64638,40.517188L880.64638,41.648811L881.93967,43.912058L884.68789,44.5587L885.4962,43.750397L885.4962,42.780435L889.53771,39.870546L891.31597,38.092281L892.77092,38.253942L898.75235,40.678849L900.69228,41.648811L909.74527,71.555998L915.7267,71.555998L916.53501,73.495924L916.69667,78.345738L919.60655,80.608984L920.41486,80.608984L920.57652,80.124003L920.09154,78.99238L922.83976,78.830719ZM901.90801,108.97825L903.44379,107.44247L904.81791,108.49327L905.38372,110.91819L903.68628,111.80732L901.90801,108.97825ZM908.61694,103.07763L910.39521,104.93673C910.39521,104.93673,911.6885,105.01755,911.6885,104.69423C911.6885,104.37091,911.93099,102.67347,911.93099,102.67347L912.82013,101.86517L912.01182,100.08689L909.99106,100.81437L908.61694,103.07763Z" }, + { id: "RI", n: "Rhode Island", d: "M874.07001,178.89536L870.37422,163.93937L876.6435,162.09423L878.83463,164.02135L882.14112,168.342L884.82902,172.74409L881.82968,174.36888L880.5364,174.20722L879.40478,175.98549L876.97987,177.92541L874.07001,178.89536Z" }, + { id: "NY", n: "New York", d: "M830.37944,188.7456L829.24781,187.77564L826.66123,187.61398L824.39799,185.67406L822.76738,179.54493L819.30892,179.63547L816.86521,176.92727L797.47989,181.30921L754.47811,190.0389L746.94846,191.26689L746.2103,184.79855L747.6384,183.67317L748.93168,182.54155L749.90165,180.92494L751.67991,179.79332L753.61984,178.01505L754.10482,176.39845L756.2064,173.65022L757.33803,172.68026L757.17637,171.71029L755.88308,168.63875L754.10482,168.47709L752.16489,162.33399L755.07478,160.55572L759.43961,159.10078L763.48113,157.80749L766.71434,157.32251L773.01909,157.16085L774.95902,158.45414L776.57562,158.6158L778.67721,157.32251L781.26378,156.19089L786.43691,155.70591L788.5385,153.92764L790.31676,150.69443L791.93337,148.75451L794.03495,148.75451L795.97488,147.62288L796.13654,145.35964L794.6816,143.25805L794.35828,141.80311L795.4899,139.70152L795.4899,138.24658L793.71163,138.24658L791.93337,137.43828L791.12507,136.30665L790.96341,133.72008L796.78318,128.22363L797.42982,127.41533L798.88477,124.50544L801.79466,119.97894L804.54289,116.26075L806.64447,113.83585L809.05957,112.01024L812.14093,110.7643L817.63738,109.47101L820.87059,109.63267L825.39709,108.17773L832.96228,106.10656L833.48207,111.08623L835.90699,117.55267L836.71529,122.72582L835.74533,126.60568L838.3319,131.13218L839.1402,133.23377L838.3319,136.14367L841.2418,137.43695L841.88844,137.76027L844.96,148.75321L844.42371,153.81288L843.93873,164.64415L844.74703,170.14062L845.55533,173.69716L847.01028,180.9719L847.01028,189.05494L845.87865,191.31819L847.71798,193.31098L848.51453,194.9894L846.57461,196.76767L846.89793,198.06095L848.19121,197.73763L849.64616,196.44435L851.9094,193.85778L853.04103,193.21114L854.65763,193.85778L856.92088,194.01944L864.84224,190.13959L867.75213,187.39136L869.04541,185.93642L873.24858,187.55302L869.85371,191.10955L865.97386,194.01944L858.8608,199.35423L856.27424,200.3242L850.45446,202.26412L846.41295,203.39575L845.23821,202.86282L844.99419,199.17429L845.47917,196.42605L845.31751,194.32447L842.504,192.62547L837.9775,191.6555L834.09764,190.52388L830.37944,188.7456Z" }, + { id: "PA", n: "Pennsylvania", d: "M825.1237,224.69205L826.43212,224.42105L828.76165,223.1678L829.97353,220.68473L831.59014,218.42148L834.82335,215.34992L834.82335,214.54162L832.39844,212.92502L828.8419,210.5001L827.87194,207.91353L825.1237,207.59021L824.96204,206.45858L824.15374,203.71035L826.417,202.57873L826.57866,200.15381L825.28536,198.86052L825.44702,197.24391L827.38696,194.17236L827.38696,191.1008L830.08459,188.45492L829.16431,187.77994L826.64023,187.58703L824.34574,185.64711L822.79582,179.53105L819.29124,179.63157L816.83601,176.92824L798.74502,181.12601L755.74324,189.8557L746.85189,191.31064L746.23122,184.78925L740.86869,189.8569L739.5754,190.34188L735.37311,193.35077L738.28387,212.48822L740.76553,222.21758L744.33733,241.47907L747.60664,240.84139L759.55022,239.33892L797.47685,231.67372L812.35306,228.8504L820.65341,227.22804L820.92052,226.98951L823.02212,225.37289L825.1237,224.69205Z" }, + { id: "NJ", n: "New Jersey", d: "M829.67942,188.46016L827.35687,191.19443L827.35687,194.26599L825.41693,197.33754L825.25527,198.95416L826.54857,200.24744L826.38691,202.67236L824.12365,203.80398L824.93195,206.55221L825.09361,207.68384L827.84185,208.00716L828.81181,210.59373L832.36835,213.01865L834.79326,214.63525L834.79326,215.44356L831.81005,218.14012L830.19344,220.40336L828.73849,223.1516L826.47524,224.44488L826.01279,226.04736L825.77029,227.25982L825.16106,229.86656L826.25333,232.11075L829.48654,235.02064L834.33635,237.28389L838.37786,237.93053L838.53952,239.38547L837.73122,240.35543L838.05454,243.10366L838.86284,243.10366L840.96443,240.67876L841.77273,235.82894L844.52096,231.78743L847.59251,225.32101L848.72413,219.82456L848.07749,218.69293L847.91583,209.31662L846.29922,205.92176L845.1676,206.73006L842.41937,207.05338L841.93439,206.5684L843.06602,205.59843L845.1676,203.65851L845.23066,202.56468L844.84627,199.13084L845.41964,196.3826L845.30217,194.41359L842.49463,192.66324L837.40249,191.48748L833.26505,190.10585L829.67942,188.46016Z" }, + { id: "DE", n: "Delaware", d: "M825.6261,228.2791L825.99441,226.13221L826.36948,224.44116L824.74648,224.83892L823.13102,225.30648L820.92476,227.07078L822.64488,232.11366L824.90814,237.77178L827.00972,247.47143L828.62634,253.77621L833.63782,253.61455L839.77994,252.43387L837.51571,245.0476L836.54574,245.53258L832.98921,243.10768L831.21095,238.41952L829.27102,234.86299L826.1239,231.99268L825.25974,229.89456L825.6261,228.2791Z" }, + { id: "MD", n: "Maryland", d: "M839.79175,252.41476L833.7832,253.6186L828.6403,253.73606L826.79674,246.81373L824.87193,237.64441L822.29931,231.45596L821.01093,227.05763L813.50491,228.67999L798.6287,231.50331L761.17727,239.05421L762.30857,244.06587L763.27853,249.72398L763.60185,249.40066L765.70345,246.97576L767.96669,244.3581L770.3916,243.74254L771.84656,242.28759L773.62482,239.70102L774.9181,240.34767L777.82799,240.02434L780.41457,237.92276L782.42146,236.46949L784.26669,235.98451L785.91104,237.11446L788.82093,238.5694L790.76085,240.34767L791.97331,241.88345L796.09566,243.58088L796.09566,246.49077L801.59212,247.78406L802.73656,248.32604L804.14846,246.29772L807.03043,248.26788L805.75226,250.74981L804.98699,254.73547L803.20873,257.32204L803.20873,259.42363L803.85537,261.2019L808.91932,262.55759L813.23042,262.49587L816.30196,263.46584L818.40355,263.78916L819.37351,261.68757L817.91857,259.58599L817.91857,257.80772L815.49366,255.70613L813.39208,250.20968L814.68536,244.87488L814.5237,242.7733L813.23042,241.48001C813.23042,241.48001,814.68536,239.86341,814.68536,239.21677C814.68536,238.57012,815.17034,237.11518,815.17034,237.11518L817.11027,235.8219L819.05019,234.20529L819.53517,235.17526L818.08023,236.79186L816.78695,240.51005L817.11027,241.64167L818.88853,241.96499L819.37351,247.46145L817.27193,248.43141L817.59525,251.98794L818.08023,251.82628L819.21185,249.88636L820.82846,251.66462L819.21185,252.95791L818.88853,256.35278L821.4751,259.74765L825.35495,260.23263L826.97156,259.42433L830.20811,263.60726L831.56646,264.14356L838.22013,261.34661L840.22771,257.32274L839.79175,252.41476ZM823.82217,261.44348L824.95379,263.94923L825.11545,265.7275L826.24708,267.5866C826.24708,267.5866,827.13622,266.69746,827.13622,266.37414C827.13622,266.05082,826.40875,263.30258,826.40875,263.30258L825.68127,260.95849L823.82217,261.44348Z" }, + { id: "VA", n: "Virginia", d: "M831.63885,266.06892L831.49494,264.12189L837.94837,261.57201L837.17796,264.78985L834.25801,268.56896L833.83992,273.15478L834.30167,276.54522L832.4737,281.52338L830.30943,283.43952L828.83909,278.79871L829.28498,273.3496L830.87198,269.16653L831.63885,266.06892ZM834.97904,294.37028L776.80486,306.94571L739.37789,312.22478L732.69956,311.8496L730.11431,313.77598L722.77518,313.99667L714.39307,314.97434L703.47811,316.58896L713.94754,310.97776L713.93442,308.90283L715.45447,306.7567L726.00825,295.25527L729.95497,299.73273L733.73798,300.69671L736.28144,299.55639L738.51866,298.24523L741.05527,299.58875L744.96944,298.16099L746.84617,293.60465L749.44709,294.14467L752.30233,292.01342L754.1016,292.50702L756.92881,288.83045L757.27706,286.74734L756.3134,285.47177L757.31617,283.60514L762.59044,271.32799L763.20721,265.59291L764.4361,265.06937L766.61463,267.51224L770.55049,267.21107L772.4797,259.63744L775.27369,259.07658L776.32344,256.33551L778.90326,253.98863L781.67509,248.29344L781.76002,243.22589L791.58153,247.04871C792.26238,247.38913,792.41441,241.99956,792.41441,241.99956L796.06697,243.59789L796.1353,246.53605L801.91955,247.83554L804.0525,249.01174L805.71242,251.06743L805.05787,254.7161L803.11043,257.30708L803.22028,259.36615L803.80924,261.21906L808.78799,262.48749L813.23926,262.52737L816.30809,263.48601L818.2516,263.79531L818.96641,266.88377L822.15685,267.2863L823.02492,268.48632L822.58543,273.1764L823.96016,274.27895L823.48121,276.20934L824.71062,276.99911L824.48882,278.38371L821.79483,278.28877L821.88379,279.90429L824.16478,281.44716L824.28632,282.85906L826.05943,284.64444L826.55122,287.16857L823.99818,288.54988L825.5704,290.04418L831.37142,288.35835L834.97904,294.37028Z" }, + { id: "WV", n: "West Virginia", d: "M761.18551,238.96731L762.29752,243.91184L763.38096,249.94317L765.51125,247.36283L767.77449,244.29127L770.31287,243.67572L771.76782,242.22078L773.54609,239.63421L774.99107,240.28085L777.90096,239.95753L780.48754,237.85594L782.49443,236.40268L784.33966,235.91769L785.64358,236.93416L789.28683,238.75579L791.22676,240.53406L792.60088,241.82734L791.83916,247.38228L786.00425,244.84106L781.759,243.21904L781.65786,248.39747L778.91022,253.9342L776.38019,256.36086L775.1881,259.11025L772.54452,259.61035L771.64668,263.21223L770.60345,267.1619L766.63521,267.50264L764.31148,265.06376L763.24033,265.62317L762.60765,271.09287L761.25736,274.62737L756.29896,285.58234L757.19565,286.74304L756.98979,288.65158L754.1811,292.53605L752.3726,291.99176L749.40455,294.1515L746.86217,293.57929L744.86294,298.13486C744.86294,298.13486,741.60363,299.56508,740.94003,299.50258C740.77952,299.48746,738.47093,298.25348,738.47093,298.25348L736.13441,299.63285L733.72461,300.67725L729.97992,299.78813L728.85852,298.61985L726.6663,295.59649L723.52371,293.60837L721.81214,289.98513L717.52726,286.51694L716.88061,284.25369L714.29404,282.79874L713.48573,281.18214L713.24324,275.92816L715.42566,275.84733L717.3656,275.03903L717.52726,272.2908L719.14386,270.83585L719.30552,265.82437L720.27548,261.94451L721.56877,261.29787L722.86205,262.42949L723.34704,264.20776L725.12531,263.23779L725.61029,261.62119L724.47867,259.84292L724.47867,257.41801L725.44863,256.12472L727.71188,252.72985L729.00516,251.27491L731.10676,251.75989L733.37,250.14327L736.44155,246.7484L738.70481,242.86854L739.02813,237.21043L739.51311,232.19894L739.51311,227.51078L738.38149,224.43923L739.35145,222.98427L740.63493,221.69099L744.12618,241.51811L748.75719,240.76696L761.18551,238.96731Z" }, + { id: "OH", n: "Ohio", d: "M735.32497,193.32832L729.23143,197.38167L725.35158,199.64492L721.95671,203.36311L717.9152,207.24296L714.68199,208.05126L711.7721,208.53624L706.27564,211.12281L704.17406,211.28447L700.77919,208.21292L695.60605,208.85957L693.01949,207.40462L690.63842,206.05379L685.74585,206.7572L675.56123,208.37381L664.35436,210.55854L665.64765,225.18882L667.42592,238.92999L670.01248,262.37079L670.5783,267.20196L674.70065,267.07294L677.12556,266.26463L680.48936,267.76777L682.55985,272.1326L687.69879,272.1155L689.59053,274.2342L691.3517,274.1689L693.89009,272.82744L696.39426,273.19894L701.81554,273.68162L703.54251,271.54894L705.88816,270.25566L707.95865,269.57481L708.60529,272.32305L710.38357,273.29301L713.85926,275.63708L716.04168,275.55626L717.3748,275.06378L717.55951,272.30225L719.14487,270.84729L719.24403,266.05457C719.24403,266.05457,720.26799,261.94551,720.26799,261.94551L721.56726,261.34423L722.88861,262.49197L723.42676,264.18899L725.14589,263.15157L725.58487,261.69082L724.46818,259.78776L724.53447,257.47333L725.28347,256.40102L727.43623,253.09454L728.48645,251.5512L730.58804,252.03618L732.85129,250.41957L735.92284,247.0247L738.69433,242.94597L739.01466,237.89046L739.49964,232.87897L739.32286,227.57209L738.36802,224.67731L738.71926,223.48753L740.52365,221.73742L738.23486,212.69009L735.32497,193.32832Z" }, + { id: "IN", n: "Indiana", d: "M619.56954,299.97132L619.63482,297.11274L620.11981,292.58623L622.38305,289.67635L624.16133,285.79648L626.74789,281.59331L626.26291,275.77352L624.48465,273.02529L624.16133,269.79208L624.96963,264.29561L624.48465,257.3442L623.19135,241.33979L621.89807,225.98203L620.9276,214.26201L623.99866,215.15152L625.45361,216.12148L626.58523,215.79816L628.68682,213.85824L631.51639,212.24125L636.60919,212.07921L658.59506,209.81595L664.17079,209.28279L665.67393,225.239L669.92528,262.08055L670.52374,267.85215L670.15224,270.1154L671.38022,271.91077L671.47661,273.28332L668.95532,274.88283L665.41589,276.43414L662.21376,276.98442L661.6153,281.85135L657.04061,285.16382L654.24419,289.17426L654.56751,291.55099L653.98617,293.08519L650.6597,293.08519L649.07417,291.46859L646.58086,292.73079L643.8979,294.23393L644.05957,297.28838L642.86578,297.54641L642.3979,296.52827L640.23102,295.02513L636.9807,296.36661L635.42939,299.37286L633.99155,298.56456L632.5366,296.96505L628.07226,297.45004L622.47943,298.42L619.56954,299.97132Z" }, + { id: "IL", n: "Illinois", d: "M619.54145,300.34244L619.5727,297.11273L620.14009,292.46677L622.47262,289.55091L624.33927,285.47515L626.57229,281.47982L626.20079,276.22742L624.19558,272.68485L624.0992,269.33817L624.79403,264.06866L623.96862,256.89029L622.90228,241.11284L621.609,226.0955L620.68672,214.4563L620.41421,213.53491L619.60591,210.94834L618.31263,207.23015L616.69602,205.45188L615.24108,202.86532L615.00751,197.37636L569.21108,199.97461L569.4397,202.34656L571.72593,203.03243L572.64041,204.17554L573.09766,206.00452L576.98424,209.43386L577.67012,211.72009L576.98424,215.14943L575.15526,218.80739L574.4694,221.32223L572.18317,223.15122L570.35419,223.83709L565.09587,225.20882L564.41,227.0378L563.72413,229.09541L564.41,230.46715L566.23898,232.06751L566.01036,236.18271L564.18137,237.78307L563.49551,239.38343L563.49551,242.1269L561.66653,242.58414L560.06617,243.72726L559.83755,245.099L560.06617,247.1566L558.3515,248.47117L557.3227,251.27181L557.77994,254.92976L560.06617,262.24569L567.3821,269.79024L572.86903,273.4482L572.64041,277.79203L573.55491,279.16377L579.95634,279.62101L582.69981,280.99275L582.01395,284.65071L579.72772,290.5949L579.04185,293.79562L581.32807,297.6822L587.72951,302.94052L592.30197,303.62639L594.35956,308.65609L596.41717,311.8568L595.50268,314.82889L597.10304,318.9441L598.93202,321.00171L600.34605,320.12102L601.25371,318.04623L603.46679,316.29903L605.59826,315.68463L608.20079,316.86443L611.82778,318.24013L613.01673,317.9419L613.2166,315.68345L611.9293,313.27166L612.23352,310.89494L614.07192,309.54749L617.09446,308.7372L618.35536,308.27868L617.74275,306.8918L616.95138,304.53743L618.38398,303.55647L619.54145,300.34244Z" }, + { id: "CT", n: "Connecticut", d: "M874.06831,178.86288L870.39088,163.98407L865.67206,164.90438L844.44328,169.64747L845.44347,172.87314L846.89842,180.14788L847.0752,189.1148L845.85518,191.28967L847.77597,193.22201L852.0475,189.31637L855.60403,186.08316L857.54395,183.98157L858.35226,184.62821L861.10048,183.17327L866.27362,182.04165L874.06831,178.86288Z" }, + { id: "WI", n: "Wisconsin", d: "M615.06589,197.36866L614.99915,194.21124L613.82004,189.68474L613.1734,183.54165L612.04178,181.11674L613.01174,178.04519L613.82004,175.1353L615.27499,172.54874L614.62834,169.15387L613.9817,165.59734L614.46668,163.81907L616.40661,161.39416L616.56827,158.64593L615.75997,157.35265L616.40661,154.76608L615.95409,150.59537L618.70232,144.93726L621.61221,138.14752L621.77387,135.88427L621.45055,134.91431L620.64224,135.39929L616.43907,141.70405L613.69084,145.74556L611.75092,147.52383L610.94262,149.78707L608.98767,150.59537L607.85605,152.5353L606.4011,152.21198L606.23944,150.43371L607.53273,148.00881L609.63431,143.32065L611.41258,141.70405L612.40341,139.3462L609.84296,137.44486L607.86814,127.07787L604.32067,125.73589L602.37441,123.42756L590.2447,120.70592L587.36881,119.69387L579.15569,117.52658L571.23777,116.36783L567.47261,111.23716L566.72221,111.79117L565.5243,111.62951L564.87765,110.49789L563.54364,110.79444L562.41201,110.9561L560.63375,111.92606L559.66378,111.27942L560.31043,109.33949L562.25035,106.26794L563.38197,105.13632L561.44205,103.68138L559.34046,104.48968L556.43057,106.4296L548.99419,109.66281L546.0843,110.30945L543.17442,109.82447L542.19269,108.94622L540.07599,111.7814L539.84737,114.52487L539.84737,122.9839L538.70425,124.58427L533.44593,128.47084L531.15971,134.41503L531.61695,134.64365L534.1318,136.70126L534.81766,139.90198L532.98868,143.10269L532.98868,146.98928L533.44593,153.61933L536.41802,156.59143L539.84737,156.59143L541.67635,159.79215L545.10568,160.24939L548.99227,165.96496L556.07957,170.08017L558.13717,172.82364L559.05167,180.25388L559.73753,183.5689L562.02376,185.16926L562.25238,186.541L560.19478,189.97033L560.4234,193.17106L562.93825,197.05764L565.4531,198.20075L568.42519,198.65799L569.76753,200.03811L615.06589,197.36866Z" }, + { id: "NC", n: "North Carolina", d: "M834.98153,294.31554L837.06653,299.23289L840.62306,305.69931L843.04796,308.12422L843.6946,310.38747L841.2697,310.54913L842.078,311.19577L841.75468,315.39894L839.16811,316.69222L838.52147,318.79381L837.22819,321.7037L833.50999,323.3203L831.08509,322.99698L829.63014,322.83532L828.01354,321.54204L828.33686,322.83532L828.33686,323.80529L830.27679,323.80529L831.08509,325.09857L829.14516,331.40333L833.34833,331.40333L833.99498,333.01993L836.25822,330.75669L837.55151,330.2717L835.61158,333.82823L832.54003,338.67805L831.24675,338.67805L830.11512,338.19307L827.3669,338.83971L822.19376,341.26462L815.72734,346.59941L812.33247,351.28756L810.39255,357.75398L809.90757,360.17889L805.21941,360.66387L799.76628,362.00053L789.81987,353.798L777.21033,346.19995L774.30044,345.39164L761.69091,346.84659L757.41445,347.59674L755.79785,344.36352L752.82749,342.24682L736.3381,342.7318L729.06336,343.5401L720.01037,348.06661L713.86726,350.65317L692.68971,353.23975L693.1898,349.18542L694.96807,347.73048L697.71631,347.08383L698.36295,343.36563L702.56613,340.61741L706.44598,339.16245L710.64917,335.60592L715.014,333.50433L715.66064,330.43277L719.5405,326.55292L720.18714,326.39126C720.18714,326.39126,720.18714,327.52289,720.99545,327.52289C721.80375,327.52289,722.93538,327.84621,722.93538,327.84621L725.19863,324.28967L727.30022,323.64302L729.56346,323.96635L731.18008,320.40982L734.08997,317.82324L734.57495,315.72165L734.76245,312.07346L739.03895,312.05094L746.23754,311.19515L761.99477,308.94272L777.13081,306.85615L798.77129,302.1368L818.75461,297.87823L829.93155,295.47242L834.98153,294.31554ZM839.25199,327.52211L841.83857,325.01636L844.99095,322.42978L846.52673,321.78314L846.68839,319.76238L846.04175,313.61926L844.5868,311.27518L843.94015,309.41608L844.66763,309.17358L847.41587,314.67006L847.82002,319.11573L847.65836,322.51062L844.26348,324.04639L841.43441,326.47131L840.30279,327.68377L839.25199,327.52211Z" }, + { id: "DC", n: "Washington DC", d: "M805.81945,250.84384L803.96117,249.01967L802.72854,248.33338L804.17155,246.31091L807.06064,248.25941L805.81945,250.84384Z" }, + { id: "MA", n: "Massachusetts", d: "M899.62349,173.25394L901.79541,172.56806L902.25267,170.85339L903.28147,170.9677L904.31027,173.25394L903.05285,173.71118L899.16625,173.8255L899.62349,173.25394ZM890.24995,174.05412L892.53617,171.42495L894.13654,171.42495L895.96553,172.911L893.56499,173.9398L891.39307,174.9686L890.24995,174.05412ZM855.45082,152.06593L873.09769,147.42525L875.36095,146.77861L877.27503,143.9829L881.0118,142.31959L883.90104,146.73243L881.47613,151.90557L881.15281,153.36051L883.09274,155.94708L884.22436,155.13878L886.00263,155.13878L888.26587,157.72534L892.14573,163.70678L895.70226,164.19176L897.9655,163.2218L899.74377,161.44353L898.93546,158.69531L896.83388,157.0787L895.37893,157.887L894.40897,156.59372L894.89395,156.10874L896.99554,155.94708L898.7738,156.75538L900.71373,159.18029L901.68369,162.09018L902.00701,164.51508L897.80384,165.97003L893.92399,167.90995L890.04414,172.43645L888.10421,173.89139L888.10421,172.92143L890.52912,171.46648L891.0141,169.68822L890.2058,166.61667L887.29591,168.07161L886.48761,169.52656L886.97259,171.7898L884.90626,172.79023L882.15906,168.2631L878.76418,163.89826L876.69368,162.08579L870.16041,163.96199L865.06808,165.01278L844.39292,169.60499L843.72516,164.83714L844.3718,154.24837L848.66107,153.35923L855.45082,152.06593Z" }, + { id: "TN", n: "Tennessee", d: "M696.67788,318.25411L644.78479,323.2656L629.02523,325.04386L624.40403,325.55657L620.53568,325.52885L620.31471,329.62968L612.12933,329.89369L605.17792,330.54033L597.08709,330.41647L595.67331,337.48933L593.97708,342.96938L590.68391,345.72022L589.33517,350.10128L589.01185,352.68785L584.97033,354.95109L586.42527,358.50763L585.45531,362.87247L584.48693,363.66212L692.64548,353.25457L693.04875,349.29963L694.85948,347.80924L697.69363,347.05979L698.36556,343.34281L702.46416,340.63785L706.51109,339.14382L710.59467,335.57349L715.03076,333.54803L715.55202,330.48068L719.61662,326.49569L720.16742,326.38152C720.16742,326.38152,720.19867,327.51314,721.00697,327.51314C721.81527,327.51314,722.9469,327.86771,722.9469,327.86771L725.21015,324.27992L727.28049,323.63328L729.5556,323.92849L731.15391,320.39563L734.10916,317.75172L734.53084,315.81261L734.8398,312.10146L732.69325,311.90169L730.09157,313.93002L723.09826,313.95909L704.73897,316.34591L696.67788,318.25411Z" }, + { id: "AR", n: "Arkansas", d: "M593.82477,343.05296L589.84489,343.76966L584.73274,343.13563L585.15344,341.53356L588.13319,338.96687L589.07657,335.31062L587.24759,332.33852L508.83002,334.85337L510.43038,341.71206L510.43037,349.94248L511.80212,360.91647L512.03074,398.7534L514.31697,400.69669L517.28906,399.32496L520.03254,400.46807L520.71288,407.04137L576.33414,405.90077L577.47977,403.8104L577.19315,400.26089L575.36752,397.28879L576.96621,395.80358L575.36752,393.29208L576.05172,390.78225L577.42011,385.17682L579.9383,383.11419L579.25243,380.82963L582.9104,375.45784L585.65387,374.08945L585.54039,372.59587L585.19495,370.77023L588.0519,365.1715L590.45494,363.91491L590.83907,360.48728L592.60974,359.24558L589.46622,358.76131L588.12476,354.75087L590.92884,352.37416L591.4791,350.35496L592.75858,346.30835L593.82477,343.05296Z" }, + { id: "MO", n: "Missouri", d: "M558.44022,248.11316L555.92035,245.02591L554.77723,242.73968L490.42,245.14022L488.13374,245.25453L489.39117,247.76938L489.16255,250.0556L491.67739,253.94219L494.76379,258.0574L497.8502,260.80087L500.01143,261.02949L501.50816,261.94399L501.50816,264.91608L499.67919,266.51644L499.22193,268.80266L501.27954,272.23201L503.7944,275.2041L506.30924,277.03308L507.68097,288.69283L507.99511,324.76504L508.22373,329.45179L508.68097,334.8353L531.11396,333.96848L554.31999,333.28261L575.12465,332.4816L586.77939,332.2513L588.94879,335.6773L588.2646,338.9848L585.17735,341.38784L584.60496,343.22518L589.98345,343.68244L593.87841,342.99656L595.59559,337.50293L596.24701,331.64614L598.34504,329.09098L600.94107,327.60409L600.9925,324.55385L602.00852,322.61737L600.31429,320.0736L598.98336,321.05786L596.99074,318.83062L595.70571,314.07162L596.50672,311.55342L594.56259,308.12576L592.73195,303.54996L587.93254,302.75062L580.96374,297.15187L579.24488,293.03834L580.04423,289.83762L582.1035,283.77995L582.56242,280.91632L580.61328,279.88501L573.75794,279.08734L572.72997,277.37518L572.61817,273.14482L567.13123,269.71381L560.15572,261.94231L557.8695,254.62638L557.63921,250.40106L558.44022,248.11316Z" }, + { id: "GA", n: "Georgia", d: "M672.29229,355.5518L672.29229,357.73422L672.45395,359.83582L673.10059,363.23069L676.49547,371.15206L678.92038,381.01337L680.37532,387.15648L681.99193,392.00629L683.44688,398.9577L685.54847,405.26247L688.13504,408.65735L688.62002,412.05222L690.55995,412.86052L690.72161,414.96212L688.94334,419.81193L688.45836,423.04515L688.2967,424.98508L689.91331,429.34992L690.23663,434.68472L689.42832,437.10963L690.07497,437.91794L691.52992,438.72624L691.73462,441.94433L693.96763,445.29386L696.21807,447.45591L704.13945,447.61757L714.9592,446.97093L736.47159,445.67765L741.91731,445.00328L746.49456,445.03101L746.65622,447.9409L749.24279,448.7492L749.56611,444.38436L747.9495,439.85786L749.08113,438.24126L754.90091,439.04956L759.87832,439.36734L759.1029,433.06855L761.36614,423.0456L762.82109,418.84242L762.3361,416.25586L765.67051,410.01156L765.16021,408.65988L763.2468,409.36446L760.66024,408.07116L760.01359,405.96957L758.72031,402.41304L756.45705,400.31145L753.87049,399.66481L752.25388,394.81499L749.32887,388.47999L745.1257,386.54006L743.0241,384.60013L741.73081,382.01356L739.62923,380.07363L737.36598,378.78034L735.10273,375.87045L732.03118,373.60721L727.50467,371.82893L727.01969,370.37399L724.59478,367.4641L724.1098,366.00915L720.71492,361.03867L717.19505,361.13784L713.44014,358.7817L712.02186,357.48842L711.69854,355.71015L712.56934,353.77023L714.79598,352.66009L714.16204,350.56287L672.29229,355.5518Z" }, + { id: "SC", n: "South Carolina", d: "M764.94328,408.16488L763.16622,409.13438L760.57965,407.84109L759.93301,405.7395L758.63973,402.18297L756.37647,400.08137L753.7899,399.43473L752.1733,394.58492L749.42506,388.60347L745.22189,386.66353L743.12029,384.72361L741.82701,382.13704L739.72542,380.1971L737.46217,378.90382L735.19892,375.99393L732.12737,373.73069L727.60086,371.95241L727.11588,370.49747L724.69098,367.58758L724.20599,366.13262L720.81111,360.95949L717.41624,361.12115L713.37472,358.69623L712.08144,357.40295L711.75812,355.62468L712.56642,353.68476L714.82967,352.71478L714.31885,350.4257L720.08695,348.08913L729.20245,343.50013L736.97718,342.69182L753.09158,342.26934L755.72983,344.14677L757.40893,347.50499L761.71128,346.89501L774.32081,345.44005L777.2307,346.24836L789.84024,353.84642L799.94832,361.9681L794.52715,367.42644L791.94058,373.56954L791.4556,379.8743L789.839,380.6826L788.70737,383.43083L786.28247,384.07747L784.18088,387.634L781.43265,390.38223L779.16941,393.7771L777.5528,394.5854L773.99627,397.98027L771.08638,398.14193L772.05635,401.37514L767.04487,406.8716L764.94328,408.16488Z" }, + { id: "KY", n: "Kentucky", d: "M725.9944,295.2707L723.70108,297.67238L720.12289,301.66642L715.19834,307.13109L713.98257,308.84686L713.92007,310.94844L709.54021,313.11253L703.88209,316.50741L696.65022,318.30626L644.78233,323.20512L629.02277,324.98338L624.40157,325.49609L620.53322,325.46837L620.30627,329.68865L612.12686,329.83321L605.17545,330.47985L597.18797,330.41963L598.39575,329.09955L600.89529,327.5587L601.12392,324.35797L602.03841,322.52899L600.43159,319.99009L601.23342,318.08328L603.49668,316.30502L605.59826,315.65837L608.34649,316.95166L611.90303,318.24494L613.03466,317.92162L613.19632,315.65837L611.90303,313.23346L612.22635,310.97021L614.16628,309.51527L616.75286,308.86862L618.36946,308.22198L617.56116,306.44371L616.91452,304.50378L618.42114,303.50798C618.42442,303.47086,619.6751,299.98569,619.65943,299.85017L622.71265,298.37149L628.03244,297.40153L632.52648,296.91655L633.91892,298.54398L635.44719,299.41478L637.03796,296.30657L640.22504,295.02395L642.43013,296.50798L642.84069,297.50702L644.01421,297.24301L643.85254,294.29008L646.98341,292.54089L649.1315,291.46741L650.66086,293.12822L653.97901,293.08402L654.56634,291.51277L654.19883,289.24953L656.79936,285.25103L661.57591,281.81313L662.28186,276.97727L665.20688,276.52136L668.99834,274.87568L671.44166,273.16744L671.24333,271.60251L670.10088,270.14757L670.6667,267.15266L674.85155,267.03516L677.15146,266.28936L680.49885,267.71846L682.55296,272.0833L687.68525,272.09412L689.73626,274.30231L691.35171,274.15461L693.9534,272.87644L699.19046,273.44981L701.76538,273.66732L703.45296,271.61108L706.07091,270.1852L707.95269,269.4781L708.59933,272.31473L710.64276,273.37307L713.28552,275.45556L713.40299,281.1288L714.21129,282.70121L716.80101,284.25749L717.57265,286.552L721.73254,289.98894L723.53785,293.61218L725.9944,295.2707Z" }, + { id: "AL", n: "Alabama", d: "M631.30647,460.41572L629.81587,446.09422L627.06763,427.34158L627.22929,413.27709L628.03759,382.23824L627.87593,365.58718L628.04102,359.16812L672.5255,355.54867L672.3777,357.73109L672.53936,359.83269L673.18601,363.22756L676.58089,371.14893L679.00579,381.01024L680.46074,387.15335L682.07734,392.00317L683.5323,398.95458L685.63388,405.25934L688.22045,408.65423L688.70543,412.04909L690.64537,412.8574L690.80703,414.95899L689.02875,419.80881L688.54377,423.04203L688.38211,424.98195L689.99873,429.3468L690.32205,434.68159L689.51373,437.10651L690.16039,437.91481L691.61533,438.72311L691.94347,441.61193L686.34581,441.25838L679.55606,441.90503L654.01366,444.81491L643.6021,446.22168L643.38072,449.09908L645.15899,450.87735L647.74556,452.81727L648.32642,460.75271L642.78436,463.32561L640.03614,463.00229L642.78436,461.06236L642.78436,460.0924L639.71282,454.11096L637.44957,453.46432L635.99462,457.82915L634.70134,460.57738L634.0547,460.41572L631.30647,460.41572Z" }, + { id: "LS", n: "Louisiana", d: "M607.96706,459.16125L604.68245,455.99511L605.69236,450.49488L605.03101,449.6018L595.76934,450.60836L570.74102,451.06728L570.05683,448.6726L570.96964,440.2169L574.28552,434.27105L579.31688,425.58003L578.74281,423.18201L579.9994,422.50116L580.45833,420.54867L578.17209,418.49274L578.0603,416.55029L576.22964,412.20478L576.08259,405.86618L520.6088,406.79015L520.63737,416.36372L521.32324,425.73725L522.00911,429.62383L524.52396,433.73904L525.43845,438.76875L529.78228,444.25568L530.0109,447.4564L530.69677,448.14227L530.0109,456.60131L527.03881,461.631L528.63917,463.68861L527.95329,466.20345L527.26743,473.51938L525.89569,476.72009L526.01815,480.33654L530.70463,478.81639L542.81798,479.0234L553.16425,482.57993L559.63067,483.71156L563.34886,482.25661L566.58207,483.38824L569.81528,484.3582L570.62358,482.25661L567.39037,481.12499L564.8038,481.60997L562.05557,479.99337C562.05557,479.99337,562.21724,478.70008,562.86388,478.53842C563.51052,478.37676,565.93543,477.56846,565.93543,477.56846L567.71369,479.0234L569.49196,478.05344L572.72517,478.70008L574.18011,481.12499L574.50343,483.38824L579.02992,483.71156L580.80819,485.48982L579.99989,487.10643L578.7066,487.91473L580.32321,489.53133L588.72955,493.08786L592.28608,491.79458L593.25605,489.36967L595.84261,488.72303L597.62088,487.26809L598.91416,488.23805L599.72246,491.14794L597.45922,491.95624L598.10586,492.60288L601.50073,491.3096L603.76398,487.91473L604.57228,487.42975L602.47069,487.10643L603.27899,485.48982L603.11733,484.03488L605.21892,483.5499L606.35054,482.25661L606.99718,483.06491C606.99718,483.06491,606.83552,486.13646,607.64383,486.13646C608.45213,486.13646,611.847,486.78311,611.847,486.78311L615.88851,488.72303L616.85847,490.17798L619.76836,490.17798L620.89999,491.14794L623.16323,488.07639L623.16323,486.62144L621.86995,486.62144L618.47508,483.87322L612.6553,483.06491L609.42209,480.80167L610.55372,478.05344L612.81696,478.37676L612.97862,477.73012L611.20036,476.76016L611.20036,476.27517L614.43357,476.27517L616.21183,473.20363L614.91855,471.2637L614.59523,468.51547L613.14028,468.67713L611.20036,470.77872L610.55372,473.36529L607.48217,472.71864L606.5122,470.94038L608.29047,469.00045L610.1938,465.55485L609.1327,463.14258L607.96706,459.16125Z" }, + { id: "MS", n: "Mississippi", d: "M631.55882,459.34458L631.30456,460.60073L626.13142,460.60073L624.67648,459.79243L622.57489,459.46911L615.78515,461.40903L614.00689,460.60073L611.42032,464.8039L610.31778,465.58192L609.19395,463.09394L608.05083,459.20735L604.6215,456.00664L605.7646,450.46209L605.07874,449.5476L603.24976,449.77622L595.33184,450.64959L570.78534,451.02296L570.0156,448.7976L570.88897,440.4208L574.00581,434.74799L579.23288,425.60309L578.78714,423.17049L580.024,422.51424L580.45987,420.59477L578.14239,418.51579L578.02727,416.37431L576.19155,412.25322L576.08255,406.29045L577.41008,403.80948L577.18678,400.39373L575.41729,397.31114L576.94371,395.82893L575.3731,393.32939L575.83035,391.67718L577.40775,385.15081L579.8937,383.11446L579.25203,380.74749L582.91,375.44496L585.74186,374.08854L585.52089,372.41338L585.23276,370.73228L588.10882,365.16461L590.45454,363.9331L590.60617,363.04009L627.94965,359.15892L628.13451,365.44225L628.29617,382.09331L627.48787,413.13216L627.32621,427.19665L630.07445,445.94929L631.55882,459.34458Z" }, + { id: "IA", n: "Iowa", d: "M569.19154,199.5843L569.45592,202.3705L571.67964,202.94776L572.63358,204.17309L573.13359,206.02845L576.92643,209.3871L577.6123,211.7786L576.93796,215.20307L575.35565,218.43505L574.55631,221.17684L572.38356,222.77888L570.66805,223.35128L565.08903,225.21148L563.69757,229.06017L564.42621,230.43191L566.26672,232.1145L565.98379,236.15079L564.22064,237.68865L563.44923,239.33179L563.57645,242.10811L561.69014,242.56535L560.06469,243.67026L559.7859,245.02289L560.06469,247.13781L558.51367,248.25388L556.04314,245.1206L554.78057,242.67073L489.04475,245.18558L488.12672,245.35102L486.07432,240.83506L485.8457,234.20499L484.24534,230.08978L483.55948,224.83147L481.27325,221.1735L480.35877,216.37243L477.61529,208.82788L476.47218,203.45524L475.10044,201.28333L473.50008,198.53987L475.45406,193.69604L476.8258,187.98047L474.08233,185.92286L473.62508,183.17939L474.53958,180.66454L476.25425,180.66454L558.90825,179.39506L559.74251,183.57818L561.99469,185.13915L562.2514,186.56224L560.22186,189.95155L560.41227,193.15707L562.92713,196.95527L565.45392,198.24889L568.5332,198.75194L569.19154,199.5843Z" }, + { id: "MN", n: "Minnesota", d: "M475.23781,128.82439L474.78056,120.36535L472.95158,113.04943L471.1226,99.560705L470.66535,89.729927L468.83637,86.300584L467.23601,81.270889L467.23601,70.982869L467.92187,67.096282L466.10094,61.644615L496.23336,61.679886L496.55668,53.435202L497.20332,53.273541L499.46657,53.758523L501.40649,54.566825L502.21479,60.063281L503.66974,66.206379L505.28634,67.822984L510.13616,67.822984L510.45948,69.277928L516.76424,69.601249L516.76424,71.702835L521.61405,71.702835L521.93737,70.409551L523.06899,69.277928L525.33224,68.631286L526.62552,69.601249L529.53541,69.601249L533.41526,72.187816L538.75006,74.612723L541.17497,75.097705L541.65995,74.127742L543.11489,73.64276L543.59987,76.552649L546.18644,77.845933L546.67142,77.360951L547.96471,77.522612L547.96471,79.624198L550.55127,80.594161L553.62282,80.594161L555.23943,79.785858L558.47264,76.552649L561.0592,76.067668L561.86751,77.845933L562.35249,79.139216L563.32245,79.139216L564.29241,78.330914L573.18374,78.007593L574.962,81.079142L575.60865,81.079142L576.32226,79.994863L580.76217,79.624198L580.15007,81.903657L576.21135,83.740782L566.96557,87.80191L562.19083,89.808807L559.11928,92.395375L556.69437,95.951905L554.43113,99.831756L552.65286,100.64006L548.12637,105.65153L546.83308,105.81319L542.5053,108.57031L540.04242,111.77542L539.8138,114.96681L539.90816,123.01016L538.53212,124.69891L533.45058,128.45888L531.2205,134.44129L534.09225,136.675L534.77214,139.90198L532.9169,143.14091L533.08769,146.88893L533.45655,153.61933L536.4848,156.62132L539.8138,156.62132L541.70491,159.75392L545.08408,160.25719L548.94324,165.92866L556.03053,170.04541L558.17368,172.92053L558.84483,179.36004L477.63333,180.50483L477.29541,144.82798L476.83817,141.85589L472.72296,138.42655L471.57984,136.59757L471.57984,134.9972L473.63744,133.39685L475.00918,132.02511L475.23781,128.82439Z" }, + { id: "OK", n: "Oklahoma", d: "M380.34313,320.82146L363.65895,319.54815L362.77873,330.50058L383.24411,331.65746L415.29966,332.96106L412.96506,357.37971L412.50781,375.21228L412.73644,376.81264L417.08027,380.4706L419.13787,381.61371L419.82374,381.38509L420.50961,379.32748L421.88135,381.15647L423.93895,381.15647L423.93895,379.78473L426.68242,381.15647L426.22518,385.04305L430.34039,385.27167L432.85523,386.41479L436.97044,387.10066L439.48529,388.92964L441.77152,386.87204L445.20086,387.5579L447.71571,390.98724L448.63019,390.98724L448.63019,393.27347L450.91642,393.95933L453.20264,391.67311L455.03163,392.35897L457.54647,392.35897L458.46097,394.87383L464.76204,396.9528L466.13378,396.26694L467.96276,392.15173L469.10587,392.15173L470.24899,394.20933L474.3642,394.8952L478.02215,396.26694L480.99425,397.18143L482.82324,396.26694L483.5091,393.75209L487.85293,393.75209L489.91053,394.66658L492.654,392.60897L493.79712,392.60897L494.48299,394.20933L498.59819,394.20933L500.19855,392.15173L502.02754,392.60897L504.08514,395.12383L507.28585,396.9528L510.48658,397.8673L512.42766,398.98623L512.03856,361.76922L510.66681,350.79524L510.50635,341.9229L509.06646,335.38517L508.28826,328.20553L508.22012,324.38931L496.08328,324.70805L449.67324,324.25081L404.63433,322.19319L380.34313,320.82146Z" }, + { id: "TX", n: "Texas", d: "M361.46423,330.57358L384.15502,331.65952L415.24771,332.80264L412.9131,356.25844L412.61634,374.41196L412.68448,376.49375L417.02831,380.31218L419.01496,381.75934L420.19917,381.19965L420.57254,379.38193L421.71286,381.18555L423.8245,381.22948L423.82183,379.78239L425.49177,380.74966L426.63047,381.15853L426.2712,385.12618L430.35939,385.21969L433.28471,386.41686L437.23945,386.94224L439.62083,389.02122L441.74493,386.94505L445.46987,387.55996L447.69078,390.7849L448.76574,391.10586L448.60527,393.07113L450.81888,393.86342L453.14903,391.80862L455.28205,392.42354L457.51143,392.45902L458.4445,394.89446L464.77259,397.00891L466.36564,396.24198L467.85511,392.06427L468.19583,392.06427L469.10232,392.14591L470.33137,394.21454L474.26125,394.87982L477.59825,396.0027L481.02388,397.19867L482.86446,396.22367L483.57822,393.70883L488.03144,393.75303L489.84018,394.68381L492.63943,392.5773L493.74307,392.6215L494.59411,394.22657L498.64883,394.22657L500.1677,392.19795L502.03507,392.60519L503.9811,395.00847L507.50167,397.05262L510.36043,397.86243L511.87405,398.66227L514.32075,400.65959L517.36379,399.3318L520.05488,400.47068L520.61869,406.57662L520.57893,416.27879L521.26479,425.8128L521.96697,429.41791L524.6423,433.83777L525.54048,438.7885L529.75643,444.32652L529.95245,447.47146L530.69882,448.2573L529.96875,456.63737L527.09665,461.64387L528.62962,463.79674L527.99954,466.13482L527.32997,473.53914L525.82565,476.87714L526.12053,480.37949L520.45565,481.96467L510.59436,486.49117L509.6244,488.43109L507.03783,490.37102L504.93625,491.82596L503.64296,492.63426L497.98485,497.96906L495.23662,500.07065L489.90182,503.30385L484.24371,505.72876L477.93895,509.12363L476.16069,510.57858L470.34091,514.13511L466.94604,514.78175L463.06619,520.2782L459.02468,520.60153L458.05471,522.54145L460.31796,524.48138L458.86301,529.97783L457.56973,534.50433L456.43811,538.38418L455.62981,542.91067L456.43811,545.33558L458.21637,552.28698L459.18634,558.43007L460.9646,561.1783L459.99464,562.63325L456.92309,564.57317L451.26497,560.69332L445.76852,559.5617L444.47523,560.04668L441.24202,559.40004L437.03885,556.32849L431.86572,555.19687L424.26767,551.802L422.16609,547.92214L420.8728,541.45573L417.6396,539.5158L416.99295,537.25255L417.6396,536.60591L417.96292,533.21104L416.66963,532.5644L416.02299,531.59444L417.31627,527.2296L415.69967,524.96636L412.46646,523.67307L409.07159,519.30824L405.51506,512.68016L401.31189,510.09359L401.47355,508.15367L396.13875,495.86747L395.33045,491.6643L393.55219,489.72438L393.39053,488.26943L387.40909,482.93464L384.82252,479.86309L384.82252,478.73146L382.23595,476.62988L375.44621,475.49825L368.00983,474.85161L364.93828,472.58837L360.41179,474.36663L356.85526,475.82158L354.59201,479.05478L353.62205,482.77298L349.25722,488.91607L346.83231,491.34098L344.24574,490.37102L342.46748,489.23939L340.52755,488.59275L336.6477,486.32951L336.6477,485.68286L334.86944,483.74294L329.6963,481.64135L322.25992,473.88165L319.99667,469.1935L319.99667,461.11047L316.76346,454.64405L316.27848,451.89583L314.66188,450.92586L313.53025,448.82428L308.51878,446.72269L307.2255,445.10609L300.11243,437.18472L298.81915,433.95151L294.13099,431.68826L292.67604,427.32339L290.08945,424.41352L288.14954,423.92856L287.50031,419.25092L295.50218,419.93681L324.53717,422.68026L353.57225,424.28062L355.80578,404.8188L359.69233,349.26378L361.29272,330.51646L362.66446,330.54504M461.69381,560.20778L461.128,553.0947L458.37976,545.90078L457.81394,538.86853L459.34972,530.62382L462.66378,523.75323L466.13948,518.33758L469.29188,514.78103L469.93852,515.02353L465.16952,521.65163L460.80468,528.19891L458.78391,534.827L458.46059,540.00016L459.34972,546.14328L461.9363,553.3372L462.42128,558.51034L462.58294,559.9653L461.69381,560.20778Z" }, + { id: "NM", n: "New Mexico", d: "M288.15255,424.01315L287.37714,419.26505L296.02092,419.79045L326.19268,422.73635L353.46084,424.42624L355.67611,405.71877L359.53347,349.8428L361.27115,330.45357L362.84285,330.58213L363.66825,319.41874L259.6638,308.78279L242.16645,429.2176L257.62712,431.20675L258.9204,421.1838L288.15255,424.01315Z" }, + { id: "KS", n: "Kansas", d: "M507.88059,324.38028L495.26233,324.58471L449.17324,324.12748L404.61576,322.06985L379.98602,320.81244L383.87981,256.21747L405.96327,256.89264L446.2524,257.73404L490.55364,258.72162L495.64927,258.72162L497.83367,260.88402L499.85133,260.86264L501.49163,261.87511L501.42913,264.88434L499.60015,266.60971L499.2679,268.84188L501.11098,272.24421L504.06334,275.43927L506.39069,277.05373L507.69146,288.29455L507.88059,324.38028Z" }, + { id: "NE", n: "Nebraska", d: "M486.09787,240.70058L489.32848,247.72049L489.19985,250.02301L492.65907,255.51689L495.37836,258.66923L490.32888,258.66923L446.84632,257.73055L406.05946,256.84025L383.80724,256.05638L384.88001,234.72853L352.56177,231.80828L356.9056,187.79842L372.45193,188.82723L392.57072,189.97033L410.40329,191.11345L434.18005,192.25656L444.92531,191.79932L446.98291,194.08554L451.78399,197.05764L452.9271,197.97213L457.27093,196.60039L461.15752,196.14315L463.90099,195.91452L465.72997,197.28626L469.7874,198.88662L472.75949,200.48698L473.21674,202.08734L474.13123,204.14494L475.96021,204.14494L476.75819,204.19111L477.65242,208.87293L480.57268,217.34085L481.14521,221.09756L483.6687,224.87181L484.23829,229.98595L485.84553,234.22632L486.09787,240.70058Z" }, + { id: "SD", n: "South Dakota", d: "M476.44687,204.02465L476.39942,203.44378L473.50371,198.59834L475.36394,193.88623L476.85667,187.99969L474.0748,185.91998L473.68964,183.17652L474.48204,180.62217L477.67055,180.63738L477.54747,175.63124L477.21417,145.45699L476.59644,141.68941L472.52412,138.35848L471.54149,136.68152L471.47899,135.0727L473.50111,133.5433L475.03333,131.87763L475.27829,129.22084L417.0212,127.62049L362.22199,124.1714L356.89672,187.86259L371.48699,188.76639L391.43684,189.972L409.17989,190.90059L432.95665,192.20417L444.93935,191.77953L446.90565,194.02471L452.10029,197.27806L452.86418,198.00081L457.40562,196.548L463.94616,195.93309L465.62146,197.26936L469.82597,198.86549L472.77103,200.50132L473.17001,201.98513L474.2095,204.22601L476.44687,204.02465Z" }, + { id: "ND", n: "North Dakota", d: "M475.30528,128.91846L474.69037,120.48479L473.01342,113.66887L471.12193,100.64465L470.66469,89.657624L468.92523,86.580482L467.16862,81.386086L467.19987,70.941816L467.82323,67.117729L465.98913,61.649968L437.34688,61.085941L418.75593,60.439299L392.24361,59.146015L369.29727,57.012146L362.30403,124.18898L417.23627,127.53263L475.30528,128.91846Z" }, + { id: "WY", n: "Wyoming", d: "M360.37668,143.27587L253.63408,129.81881L239.5506,218.27684L352.81521,231.86233L360.37668,143.27587Z" }, + { id: "MT", n: "Montana", d: "M369.20952,56.969133L338.5352,54.1613L309.27465,50.60477L280.01411,46.563258L247.68201,41.228463L229.25272,37.833593L196.52907,30.900857L192.05005,52.248389L195.47939,59.79293L194.10765,64.365382L195.93663,68.937833L199.13736,70.309572L203.75818,81.079025L206.45328,84.255548L206.91052,85.398666L210.33986,86.541784L210.79711,88.599377L203.70981,106.20333L203.70981,108.71818L206.22466,111.91889L207.13914,111.91889L211.94021,108.9468L212.62609,107.80368L214.22645,108.48955L213.99782,113.74787L216.7413,126.32212L219.71339,128.83696L220.62787,129.52283L222.45686,131.80905L221.99961,135.2384L222.68548,138.66773L223.8286,139.58223L226.11482,137.296L228.85829,137.296L232.05901,138.89636L234.57386,137.98187L238.68907,137.98187L242.34702,139.58223L245.0905,139.12498L245.54774,136.15288L248.51983,135.46702L249.89157,136.83876L250.34882,140.03947L251.77469,140.87411L253.66164,129.83937L360.40731,143.26829L369.20952,56.969133Z" }, + { id: "CO", n: "Colarado", d: "M380.03242,320.96457L384.93566,234.63961L271.5471,221.99565L259.33328,309.93481L380.03242,320.96457Z" }, + { id: "ID", n: "Idaho", d: "M148.47881,176.48395L157.24968,141.26323L158.62142,137.03371L161.13626,131.08953L159.87884,128.8033L157.36398,128.91761L156.56381,127.88881L157.02106,126.7457L157.36398,123.65929L161.82213,118.17234L163.65111,117.7151L164.79422,116.57199L165.36578,113.37127L166.28026,112.68541L170.16685,106.85553L174.05344,102.5117L174.28206,98.739432L170.85272,96.110269L169.31717,91.709286L182.94208,28.367595L196.45967,30.895706L192.05159,52.278719L195.61194,59.764071L194.03083,64.424911L196.00068,69.066144L199.1389,70.321335L202.97424,79.877923L206.48693,84.315077L206.99418,85.458195L210.33513,86.601313L210.70398,88.698388L203.73297,106.07448L203.56779,108.64041L206.19891,111.96211L207.10399,111.91321L212.01528,108.88761L212.6927,107.79264L214.25501,108.4515L213.97657,113.80522L216.71582,126.38793L220.63365,129.56584L222.31483,131.73129L221.59822,135.81515L222.66444,138.62256L223.72607,139.71384L226.20536,137.36242L229.05352,137.41131L231.97277,138.74651L234.75279,138.06458L238.54705,137.9041L242.52595,139.50446L245.26943,139.2077L245.76617,136.17039L248.69876,135.40556L249.95893,136.92147L250.39986,139.86643L251.8242,141.07964L243.4382,194.6883C243.4382,194.6883,155.47221,177.98769,148.47881,176.48395Z" }, + { id: "UT", n: "Utah", d: "M259.49836,310.10509L175.74933,298.23284L196.33694,185.69149L243.11725,194.43663L241.63245,205.06705L239.32083,218.23971L247.12852,219.16808L263.53504,220.97287L271.74601,221.82851L259.49836,310.10509Z" }, + { id: "AZ", n: "Arizona", d: "M144.9112,382.62909L142.28419,384.78742L141.96087,386.24237L142.44585,387.21233L161.36012,397.88192L173.48466,405.47996L188.19576,414.04797L205.00845,424.07092L217.29465,426.49583L242.24581,429.20074L259.50142,310.07367L175.76579,298.15642L172.6734,314.56888L171.06711,314.58419L169.35244,317.21335L166.83759,317.09903L165.58017,314.35556L162.8367,314.01263L161.9222,312.86952L161.00772,312.86952L160.09322,313.44108L158.14993,314.46988L158.03563,321.44286L157.80699,323.15753L157.23545,335.73177L155.7494,337.90368L155.17784,341.21871L157.92131,346.1341L159.17873,351.96398L159.97892,352.99278L161.00772,353.56434L160.8934,355.85056L159.29305,357.22229L155.86371,358.93696L153.92042,360.88026L152.43437,364.53821L151.86281,369.4536L149.00503,372.19707L146.94743,372.88294L147.08312,373.71282L146.62587,375.42749L147.08312,376.22767L150.74108,376.79921L150.16952,379.54269L148.68347,381.7146L144.9112,382.62909Z" }, + { id: "NV", n: "Nevada", d: "M196.39273,185.57552L172.75382,314.39827L170.92158,314.74742L169.34882,317.1536L166.97588,317.16429L165.50393,314.42082L162.88546,314.0424L162.11454,312.93477L161.07671,312.88073L158.29834,314.52502L157.98808,321.3105L157.62599,327.08767L157.27742,335.68048L155.83032,337.76964L153.3914,336.69561L84.311514,232.49442L103.30063,164.90951L196.39273,185.57552Z" }, + { id: "OR", n: "Oregon", d: "M148.72184,175.53153L157.57154,140.73002L158.62233,136.5005L160.9767,130.87727L160.36119,129.71439L157.84633,129.66821L156.56473,127.99751L157.02197,126.53344L157.52538,123.28656L161.98353,117.79961L163.81251,116.70046L164.95562,115.55735L166.44166,111.99172L170.48872,106.32232L174.05435,102.45992L174.28297,99.008606L171.01411,96.539924L169.2307,91.897299L156.56693,88.285329L141.47784,84.741679L126.04582,84.855985L125.58858,83.484256L120.10163,85.54186L115.64349,84.970301L113.24295,83.36994L111.98553,84.055815L107.29877,83.827183L105.5841,82.455454L100.32578,80.39785L99.525598,80.512166L95.181768,79.02611L93.238477,80.855093L87.065665,80.512166L81.121482,76.396957L81.807347,75.596777L82.035968,67.823604L79.749743,63.937027L75.634535,63.365468L74.94867,60.850621L72.594738,60.384056L66.796213,62.44284L64.532966,68.909258L61.299757,78.932207L58.066547,85.398626L53.055073,99.463087L46.588654,113.04256L38.505631,125.65208L36.565705,128.56197L35.757403,137.12997L36.143498,149.2102L148.72184,175.53153Z" }, + { id: "WA", n: "Washington", d: "M102.07324,7.6117734L106.43807,9.0667177L116.1377,11.814946L124.7057,13.754871L144.7516,19.412988L167.70739,25.071104L182.93051,28.278277L169.29815,91.864088L156.85315,88.33877L141.34514,84.768091L126.11585,84.801329L125.66028,83.45663L120.06106,85.635923L115.46563,84.899179L113.31866,83.315125L112.00545,83.973101L107.26979,83.832858L105.57143,82.483225L100.30839,80.370922L99.573419,80.51784L95.184297,78.993392L93.290999,80.810771L87.025093,80.512038L81.099395,76.386336L81.878352,75.453573L81.999575,67.776121L79.717576,63.93642L75.602368,63.32938L74.924958,60.818764L72.649446,60.361832L69.094498,61.592408L66.831251,58.373161L67.154572,55.463272L69.9028,55.139951L71.519405,51.09844L68.932837,49.966816L69.094498,46.248625L73.459331,45.601984L70.711103,42.853756L69.256158,35.740695L69.9028,32.830807L69.9028,24.909444L68.124535,21.676234L70.387782,12.299927L72.489368,12.784908L74.914275,15.694797L77.662503,18.281364L80.895712,20.22129L85.422205,22.322876L88.493756,22.969518L91.403645,24.424462L94.798518,25.394425L97.061764,25.232765L97.061764,22.807857L98.355048,21.676234L100.45663,20.38295L100.77996,21.514574L101.10328,23.292839L98.840029,23.77782L98.516708,25.879406L100.29497,27.334351L101.4266,29.759258L102.07324,31.699183L103.52818,31.537523L103.68984,30.244239L102.71988,28.950955L102.2349,25.717746L103.0432,23.939481L102.39656,22.484537L102.39656,20.22129L104.17483,16.66476L103.0432,14.078192L100.61829,9.2283781L100.94162,8.4200758L102.07324,7.6117734ZM92.616548,13.590738L94.637312,13.429078L95.122294,14.803197L96.658073,13.186582L99.002155,13.186582L99.810458,14.722361L98.274678,16.419801L98.92133,17.228114L98.193853,19.248875L96.819734,19.653021C96.819734,19.653021,95.930596,19.733857,95.930596,19.410536C95.930596,19.087215,97.385551,16.823958,97.385551,16.823958L95.688111,16.258141L95.36479,17.713095L94.637312,18.359737L93.10153,16.09648L92.616548,13.590738Z" }, + { id: "CA", n: "California", d: "M144.69443,382.19813L148.63451,381.70951L150.12055,379.69807L150.66509,376.75698L147.11357,376.16686L146.5994,375.49864L147.0769,373.46633L146.91762,372.87666L148.84019,372.25707L151.88297,369.42439L152.46453,364.42929L153.84443,361.02718L155.78772,358.86092L159.30659,357.27125L160.96098,355.66642L161.02971,353.55758L160.03638,352.97757L159.01323,351.90484L157.85801,346.05639L155.17281,341.2263L155.73862,337.7213L153.31904,336.69199L84.257718,232.51359L103.15983,164.9121L36.079967,149.21414L34.573071,153.94738L34.41141,161.38376L29.238275,173.18497L26.166727,175.77154L25.843406,176.90316L24.06514,177.71147L22.610196,181.91464L21.801894,185.14785L24.550122,189.35102L26.166727,193.55419L27.29835,197.11072L26.975029,203.57714L25.196764,206.64869L24.550122,212.46847L23.580159,216.18666L25.358424,220.06651L28.106652,224.593L30.369899,229.44282L31.663182,233.48433L31.339862,236.71754L31.016541,237.20252L31.016541,239.3041L36.674657,245.60886L36.189676,248.03377L35.543034,250.29702L34.896392,252.23694L35.058052,260.48163L37.159638,264.19982L39.099564,266.78638L41.847792,267.27137L42.817755,270.01959L41.686132,273.57612L39.584545,275.19273L38.452922,275.19273L37.64462,279.07258L38.129601,281.98247L41.362811,286.3473L42.979415,291.6821L44.434359,296.37025L45.727643,299.4418L49.122513,305.26158L50.577457,307.84814L51.062439,310.75803L52.679043,311.72799L52.679043,314.1529L51.870741,316.09283L50.092476,323.20589L49.607494,325.14581L52.032402,327.89404L56.235574,328.37902L60.762067,330.15729L64.641918,332.25887L67.551807,332.25887L70.461695,335.33042L73.048262,340.18024L74.179886,342.44348L78.059737,344.54507L82.909551,345.35337L84.364495,347.45496L85.011137,350.68817L83.556193,351.33481L83.879514,352.30477L87.112725,353.11307L89.860953,353.27474L93.020842,351.58789L96.900696,355.79106L97.708998,358.05431L100.29557,362.25748L100.61889,365.49069L100.61889,374.867L101.10387,376.64526L111.12682,378.10021L130.84939,380.84843L144.69443,382.19813ZM56.559218,338.48145L57.852506,340.01723L57.690846,341.31052L54.457625,341.22969L53.891811,340.01723L53.245167,338.56228L56.559218,338.48145ZM58.49915,338.48145L59.711608,337.83481L63.268151,339.9364L66.339711,341.14885L65.450575,341.79551L60.924066,341.55301L59.307456,339.9364L58.49915,338.48145ZM79.191764,358.28493L80.970029,360.62901L81.778342,361.59898L83.314121,362.16479L83.879928,360.70984L82.909965,358.93157L80.242562,356.91081L79.191764,357.07247L79.191764,358.28493ZM77.736809,366.93379L79.515085,370.08618L80.727543,372.02612L79.272589,372.2686L77.979305,371.05615C77.979305,371.05615,77.251828,369.6012,77.251828,369.19704C77.251828,368.7929,77.251828,367.01462,77.251828,367.01462L77.736809,366.93379Z" } + ]; + + // Draw function + function draw(id, data, toolTip) { + function mouseOver(d) { + d3.select("#tooltip").transition().duration(200).style("opacity", .9); + d3.select("#tooltip").html(toolTip(d.n, data[d.id])) + .style("left", (d3.event.pageX) + "px") + .style("top", (d3.event.pageY - 28) + "px"); + } + + function mouseOut() { + d3.select("#tooltip").transition().duration(500).style("opacity", 0); + } + + d3.select(id).selectAll(".state") + .data(uStatePaths).enter().append("path").attr("class", "state").attr("d", function (d) { return d.d; }) + .style("fill", function (d) { return data[d.id].color; }) + .on("mouseover", mouseOver).on("mouseout", mouseOut); + } + + function tooltipHtml(n, d) { /* function to create html content string in tooltip div. */ + return "

" + n + "

" + + "" + + "" + + "" + + "
Date " + (d.date) + "
Confirmed " + (d.confirmed) + "
Deaths" + (d.deaths) + "
"; + } + + var state_ID = [this.stateData["Hawaii"], this.stateData.Alaska, this.stateData.Florida, this.stateData["South Carolina"], this.stateData.Georgia, + this.stateData.Alabama, this.stateData["North Carolina"], this.stateData.Tennessee, this.stateData["Rhode Island"], + this.stateData.Connecticut, this.stateData.Massachusetts, this.stateData.Maine, this.stateData["New Hampshire"], this.stateData.Vermont, + this.stateData["New York"], this.stateData["New Jersey"], this.stateData.Pennsylvania, this.stateData.Delaware, + this.stateData.Maryland, this.stateData["West Virginia"], this.stateData.Kentucky, this.stateData.Ohio, this.stateData.Michigan, + this.stateData.Wyoming, this.stateData.Montana, this.stateData.Idaho, this.stateData.Washington, 0, this.stateData.Texas, + this.stateData.California, this.stateData.Arizona, this.stateData.Nevada, this.stateData.Utah, this.stateData.Colorado, + this.stateData["New Mexico"], this.stateData.Oregon, this.stateData["North Dakota"], this.stateData["South Dakota"], this.stateData.Nebraska, + this.stateData.Iowa, this.stateData.Mississippi, this.stateData.Indiana, this.stateData.Illinois, this.stateData.Minnesota, + this.stateData.Wisconsin, this.stateData.Missouri, this.stateData.Arkansas, this.stateData.Oklahoma, this.stateData.Kansas, + this.stateData.Louisiana, this.stateData.Virginia] + var max_confirmed = 0; + + var sampleData = {}; /* Sample random data. */ + let states = ["HI", "AK", "FL", "SC", "GA", "AL", "NC", "TN", "RI", "CT", "MA", + "ME", "NH", "VT", "NY", "NJ", "PA", "DE", "MD", "WV", "KY", "OH", + "MI", "WY", "MT", "ID", "WA", "DC", "TX", "CA", "AZ", "NV", "UT", + "CO", "NM", "OR", "ND", "SD", "NE", "IA", "MS", "IN", "IL", "MN", + "WI", "MO", "AR", "OK", "KS", "LS", "VA"] + states.forEach(function (d, i) { + //Array.isArray(state_ID[i]) + if (Array.isArray(state_ID[i])) { + sampleData[d] = { + date: state_ID[i][state_ID[i].length - 1].date, + deaths: state_ID[i][state_ID[i].length - 1].deaths, + confirmed: state_ID[i][state_ID[i].length - 1].confirmed + }; + + if (state_ID[i][state_ID[i].length - 1].confirmed > max_confirmed) { + max_confirmed = state_ID[i][state_ID[i].length - 1].confirmed; + } + } + else { + sampleData[d] = { + date: 0, + deaths: 0, + confirmed: 0 + }; + } + }); + + // Set the color for each state + states.forEach(function (d, i) { + if (Array.isArray(state_ID[i])) { + sampleData[d] = { + date: sampleData[d].date, deaths: sampleData[d].deaths, confirmed: sampleData[d].confirmed, + color: d3.interpolate("#ffffcc", "#800026")(state_ID[i][state_ID[i].length - 1].confirmed / max_confirmed / 25) + }; + } + }); + + /* draw states on id #statesvg */ + draw(this.chartContainer.nativeElement, sampleData, tooltipHtml); + + d3.select(self.frameElement).style("height", "600px"); + } +} diff --git a/src/app/pages/graph/canvasjs.min.js b/src/app/pages/graph/canvasjs.min.js new file mode 100755 index 0000000..0ef7745 --- /dev/null +++ b/src/app/pages/graph/canvasjs.min.js @@ -0,0 +1,911 @@ +/* + CanvasJS HTML5 & JavaScript Charts - v2.3.1 GA - https://canvasjs.com/ + Copyright 2018 fenopix + + --------------------- License Information -------------------- + CanvasJS is a commercial product which requires purchase of license. Without a commercial license you can use it for evaluation purposes for upto 30 days. Please refer to the following link for further details. + https://canvasjs.com/license/ + +*/ +/*eslint-disable*/ +/*jshint ignore:start*/ +(function(){function qa(k,p){k.prototype=eb(p.prototype);k.prototype.constructor=k;k.base=p.prototype}function eb(k){function p(){}p.prototype=k;return new p}function Ya(k,p,D){"millisecond"===D?k.setMilliseconds(k.getMilliseconds()+1*p):"second"===D?k.setSeconds(k.getSeconds()+1*p):"minute"===D?k.setMinutes(k.getMinutes()+1*p):"hour"===D?k.setHours(k.getHours()+1*p):"day"===D?k.setDate(k.getDate()+1*p):"week"===D?k.setDate(k.getDate()+7*p):"month"===D?k.setMonth(k.getMonth()+1*p):"year"===D&&k.setFullYear(k.getFullYear()+ +1*p);return k}function $(k,p){var D=!1;0>k&&(D=!0,k*=-1);k=""+k;for(p=p?p:1;k.length
Please right click on the image and save it to your device
"), +p.document.close()}}}function N(k){var p=((k&16711680)>>16).toString(16),D=((k&65280)>>8).toString(16);k=((k&255)>>0).toString(16);p=2>p.length?"0"+p:p;D=2>D.length?"0"+D:D;k=2>k.length?"0"+k:k;return"#"+p+D+k}function fb(k,p){var D=this.length>>>0,r=Number(p)||0,r=0>r?Math.ceil(r):Math.floor(r);for(0>r&&(r+=D);rD;D++)if(k[D]!==k[D+4]|k[D]!==k[D+8]|k[D]!==k[D+12]){p=!1;break}return p?k[0]<<16|k[1]<<8|k[2]:0}function na(k,p,D){return k in p?p[k]:D[k]}function Oa(k,p,D){if(r&&bb){var u=k.getContext("2d");Pa=u.webkitBackingStorePixelRatio|| +u.mozBackingStorePixelRatio||u.msBackingStorePixelRatio||u.oBackingStorePixelRatio||u.backingStorePixelRatio||1;W=Ua/Pa;k.width=p*W;k.height=D*W;Ua!==Pa&&(k.style.width=p+"px",k.style.height=D+"px",u.scale(W,W))}else k.width=p,k.height=D}function hb(k){if(!ib){var p=!1,D=!1;"undefined"===typeof ra.Chart.creditHref?(k.creditHref=ja("iuuqr;..b`ow`rkr/bnl."),k.creditText=ja("B`ow`rKR/bnl")):(p=k.updateOption("creditText"),D=k.updateOption("creditHref"));if(k.creditHref&&k.creditText){k._creditLink|| +(k._creditLink=document.createElement("a"),k._creditLink.setAttribute("class","canvasjs-chart-credit"),k._creditLink.setAttribute("title","JavaScript Charts"),k._creditLink.setAttribute("style","outline:none;margin:0px;position:absolute;right:2px;top:"+(k.height-14)+"px;color:dimgrey;text-decoration:none;font-size:11px;font-family: Calibri, Lucida Grande, Lucida Sans Unicode, Arial, sans-serif"),k._creditLink.setAttribute("tabIndex",-1),k._creditLink.setAttribute("target","_blank"));if(0===k.renderCount|| +p||D)k._creditLink.setAttribute("href",k.creditHref),k._creditLink.innerHTML=k.creditText;k._creditLink&&k.creditHref&&k.creditText?(k._creditLink.parentElement||k._canvasJSContainer.appendChild(k._creditLink),k._creditLink.style.top=k.height-14+"px"):k._creditLink.parentElement&&k._canvasJSContainer.removeChild(k._creditLink)}}}function ta(k,p){Ja&&(this.canvasCount|=0,window.console.log(++this.canvasCount));var D=document.createElement("canvas");D.setAttribute("class","canvasjs-chart-canvas");Oa(D, +k,p);r||"undefined"===typeof G_vmlCanvasManager||G_vmlCanvasManager.initElement(D);return D}function sa(k,p,D){for(var r in D)p.style[r]=D[r]}function ua(k,p,D){p.getAttribute("state")||(p.style.backgroundColor=k.toolbar.backgroundColor,p.style.color=k.toolbar.fontColor,p.style.border="none",sa(k,p,{WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"}));p.getAttribute("state")!==D&&(p.setAttribute("state",D),p.setAttribute("type","button"),sa(k,p,{padding:"5px 12px", +cursor:"pointer","float":"left",width:"40px",height:"25px",outline:"0px",verticalAlign:"baseline",lineHeight:"0"}),p.setAttribute("title",k._cultureInfo[D+"Text"]),p.innerHTML=""+k._cultureInfo[D+"Text"]+"")}function Qa(){for(var k=null,p=0;pa?"a":"p";case "tt":return 12>a?"am":"pm";case "T":return 12>a?"A": +"P";case "TT":return 12>a?"AM":"PM";case "K":return S?"UTC":(String(z).match(H)||[""]).pop().replace(F,"");case "z":return(0k?!0:!1;u&&(k*=-1);var v=r?r.decimalSeparator:".",H=r?r.digitGroupSeparator: +",",F="";p=String(p);var F=1,z=r="",E=-1,L=[],R=[],I=0,N=0,S=0,O=!1,U=0,z=p.match(/"[^"]*"|'[^']*'|[eE][+-]*[0]+|[,]+[.]|\u2030|./g);p=null;for(var Q=0;z&&QE)E=Q;else{if("%"===p)F*=100;else if("\u2030"===p){F*=1E3;continue}else if(","===p[0]&&"."===p[p.length-1]){F/=Math.pow(1E3,p.length-1);E=Q+p.length-1;continue}else"E"!==p[0]&&"e"!==p[0]||"0"!==p[p.length-1]||(O=!0);0>E?(L.push(p),"#"===p||"0"===p?I++:","===p&&S++):(R.push(p),"#"!==p&&"0"!==p||N++)}O&&(p=Math.floor(k), +z=-Math.floor(Math.log(k)/Math.LN10+1),U=0===k?0:0===p?-(I+z):String(p).length-I,F/=Math.pow(10,U));0>E&&(E=Q);F=(k*F).toFixed(N);p=F.split(".");F=(p[0]+"").split("");k=(p[1]+"").split("");F&&"0"===F[0]&&F.shift();for(O=z=Q=N=E=0;0U?p.replace("+","").replace("-",""):p.replace("-",""),r+=p.replace(/[0]+/,function(k){return $(U,k.length)}));H="";for(L=!1;0U?p.replace("+","").replace("-",""):p.replace("-",""),H+=p.replace(/[0]+/,function(k){return $(U,k.length)}));r+=(L?v:"")+H;return u?"-"+r:r},Ra=function(k){var p=0,r=0;k=k||window.event;k.offsetX||0===k.offsetX?(p=k.offsetX,r=k.offsetY):k.layerX||0==k.layerX?(p=k.layerX,r=k.layerY):(p=k.pageX-k.target.offsetLeft, +r=k.pageY-k.target.offsetTop);return{x:p,y:r}},bb=!0,Ua=window.devicePixelRatio||1,Pa=1,W=bb?Ua/Pa:1,ea=function(k,p,r,u,v,H,F,z,E,L,R,N,O){"undefined"===typeof O&&(O=1);F=F||0;z=z||"black";var I=15p)v=H-1;else break}r>p&&1H&&(F=p.pop(),u-=F.height,v=z)}this._wrappedText={lines:p,width:v,height:u};this.width=v+(this.leftPadding+this.rightPadding);this.height=u+(this.topPadding+this.bottomPadding);this.ctx.font=r};ka.prototype._getFontString=function(){var k;k=""+(this.fontStyle?this.fontStyle+" ":"");k+=this.fontWeight?this.fontWeight+" ":"";k+=this.fontSize?this.fontSize+"px ":"";var p=this.fontFamily?this.fontFamily+"":"";!r&&p&&(p=p.split(",")[0],"'"!==p[0]&&'"'!==p[0]&&(p="'"+p+"'"));return k+=p}; +qa(Va,V);qa(Aa,V);Aa.prototype.setLayout=function(){if(this.text){var k=this.dockInsidePlotArea?this.chart.plotArea:this.chart,p=k.layoutManager.getFreeSpace(),r=p.x1,v=p.y1,E=0,H=0,F=this.chart._menuButton&&this.chart.exportEnabled&&"top"===this.verticalAlign?22:0,z,I;"top"===this.verticalAlign||"bottom"===this.verticalAlign?(null===this.maxWidth&&(this.maxWidth=p.width-4-F*("center"===this.horizontalAlign?2:1)),H=0.5*p.height-this.margin-2,E=0):"center"===this.verticalAlign&&("left"===this.horizontalAlign|| +"right"===this.horizontalAlign?(null===this.maxWidth&&(this.maxWidth=p.height-4),H=0.5*p.width-this.margin-2):"center"===this.horizontalAlign&&(null===this.maxWidth&&(this.maxWidth=p.width-4),H=0.5*p.height-4));var L;u(this.padding)||"number"!==typeof this.padding?u(this.padding)||"object"!==typeof this.padding||(L=this.padding.top?this.padding.top:this.padding.bottom?this.padding.bottom:0,L+=this.padding.bottom?this.padding.bottom:this.padding.top?this.padding.top:0,L*=1.25):L=2.5*this.padding;this.wrap|| +(H=Math.min(H,Math.max(1.5*this.fontSize,this.fontSize+L)));H=new ka(this.ctx,{fontSize:this.fontSize,fontFamily:this.fontFamily,fontColor:this.fontColor,fontStyle:this.fontStyle,fontWeight:this.fontWeight,horizontalAlign:this.horizontalAlign,verticalAlign:this.verticalAlign,borderColor:this.borderColor,borderThickness:this.borderThickness,backgroundColor:this.backgroundColor,maxWidth:this.maxWidth,maxHeight:H,cornerRadius:this.cornerRadius,text:this.text,padding:this.padding,textBaseline:"top"}); +L=H.measureText();"top"===this.verticalAlign||"bottom"===this.verticalAlign?("top"===this.verticalAlign?(v=p.y1+2,I="top"):"bottom"===this.verticalAlign&&(v=p.y2-2-L.height,I="bottom"),"left"===this.horizontalAlign?r=p.x1+2:"center"===this.horizontalAlign?r=p.x1+p.width/2-L.width/2:"right"===this.horizontalAlign&&(r=p.x2-2-L.width-F),z=this.horizontalAlign,this.width=L.width,this.height=L.height):"center"===this.verticalAlign&&("left"===this.horizontalAlign?(r=p.x1+2,v=p.y2-2-(this.maxWidth/2-L.width/ +2),E=-90,I="left",this.width=L.height,this.height=L.width):"right"===this.horizontalAlign?(r=p.x2-2,v=p.y1+2+(this.maxWidth/2-L.width/2),E=90,I="right",this.width=L.height,this.height=L.width):"center"===this.horizontalAlign&&(v=k.y1+(k.height/2-L.height/2),r=k.x1+(k.width/2-L.width/2),I="center",this.width=L.width,this.height=L.height),z="center");H.x=r;H.y=v;H.angle=E;H.horizontalAlign=z;this._textBlock=H;k.layoutManager.registerSpace(I,{width:this.width+("left"===I||"right"===I?this.margin+2:0), +height:this.height+("top"===I||"bottom"===I?this.margin+2:0)});this.bounds={x1:r,y1:v,x2:r+this.width,y2:v+this.height};this.ctx.textBaseline="top"}};Aa.prototype.render=function(){this._textBlock&&this._textBlock.render(!0)};qa(Ka,V);Ka.prototype.setLayout=Aa.prototype.setLayout;Ka.prototype.render=Aa.prototype.render;Wa.prototype.get=function(k,p){var r=null;0a[g].x&&0w?{x:a[l].x+w/3,y:a[l].y+c/3}:{x:a[l].x,y:a[l].y+c/9};l=e;g=0===l?0:l-1;m=l===a.length-1?l:l+1;c=Math.abs((a[m].x-a[g].x)/(0===a[l].x-a[g].x?0.01:a[l].x-a[g].x))*(d- +1)/2+1;w=(a[m].x-a[g].x)/c;c=(a[m].y-a[g].y)/c;b[b.length]=a[l].x>a[g].x&&0w?{x:a[l].x-w/3,y:a[l].y-c/3}:{x:a[l].x,y:a[l].y-c/9};b[b.length]=a[e]}return b}function E(a,d,b,c,e,g,m,l,w,h){var s=0;h?(m.color=g,l.color=g):h=1;s=w?Math.abs(e-b):Math.abs(c-d);s=0this.labelAngle?this.labelAngle-=180:270<=this.labelAngle&&360>=this.labelAngle&&(this.labelAngle-=360);this.options.scaleBreaks&&(this.scaleBreaks=new Q(this.chart, +this.options.scaleBreaks,++this.chart._eventManager.lastObjectId,this));this.stripLines=[];if(this.options.stripLines&&0=this._appliedBreaks[a+1].startValue&&(this._appliedBreaks[a].endValue=Math.max(this._appliedBreaks[a].endValue,this._appliedBreaks[a+1].endValue),window.console&&window.console.log("CanvasJS Error: Breaks "+a+" and "+(a+1)+" are overlapping."),this._appliedBreaks.splice(a,2),a--)}}function L(a,d,b,c,e,g){L.base.constructor.call(this,"Break",d,b,c,g);this.id=e;this.chart=a;this.ctx=this.chart.ctx;this.scaleBreaks=g;this.optionsName= +d;this.isOptionsInArray=!0;this.type=b.type?this.type:g.type;this.fillOpacity=u(b.fillOpacity)?g.fillOpacity:this.fillOpacity;this.lineThickness=u(b.lineThickness)?g.lineThickness:this.lineThickness;this.color=b.color?this.color:g.color;this.lineColor=b.lineColor?this.lineColor:g.lineColor;this.lineDashType=b.lineDashType?this.lineDashType:g.lineDashType;!u(this.startValue)&&this.startValue.getTime&&(this.startValue=this.startValue.getTime());!u(this.endValue)&&this.endValue.getTime&&(this.endValue= +this.endValue.getTime());"number"===typeof this.startValue&&("number"===typeof this.endValue&&this.endValue=navigator.userAgent.search("MSIE")&&sa(a,a._zoomButton.childNodes[0],{WebkitFilter:"invert(100%)",filter:"invert(100%)"}))},this.allDOMEventHandlers);O(this._zoomButton,"mouseout",function(){d||(sa(a,a._zoomButton,{backgroundColor:a.toolbar.backgroundColor,color:a.toolbar.fontColor,transition:"0.4s",WebkitTransition:"0.4s"}),0>=navigator.userAgent.search("MSIE")&&sa(a,a._zoomButton.childNodes[0],{WebkitFilter:"invert(0%)", +filter:"invert(0%)"}))},this.allDOMEventHandlers)}this._resetButton||(d=!1,va(this._resetButton=document.createElement("button")),ua(this,this._resetButton,"reset"),this._resetButton.style.borderRight=(this.exportEnabled?this.toolbar.borderThickness:0)+"px solid "+this.toolbar.borderColor,this._toolBar.appendChild(this._resetButton),O(this._resetButton,"touchstart",function(a){d=!0},this.allDOMEventHandlers),O(this._resetButton,"click",function(){a.toolTip.hide();a.zoomEnabled||a.panEnabled?(a.zoomEnabled= +!0,a.panEnabled=!1,ua(a,a._zoomButton,"pan"),a._defaultCursor="default",a.overlaidCanvas.style.cursor=a._defaultCursor):(a.zoomEnabled=!1,a.panEnabled=!1);if(a.sessionVariables.axisX)for(var c=0;c=navigator.userAgent.search("MSIE")&&sa(a,a._resetButton.childNodes[0],{WebkitFilter:"invert(100%)",filter:"invert(100%)"}))},this.allDOMEventHandlers),O(this._resetButton,"mouseout",function(){d||(sa(a,a._resetButton, +{backgroundColor:a.toolbar.backgroundColor,color:a.toolbar.fontColor,transition:"0.4s",WebkitTransition:"0.4s"}),0>=navigator.userAgent.search("MSIE")&&sa(a,a._resetButton.childNodes[0],{WebkitFilter:"invert(0%)",filter:"invert(0%)"}))},this.allDOMEventHandlers),this.overlaidCanvas.style.cursor=a._defaultCursor);this.zoomEnabled||this.panEnabled||(this._zoomButton?(a._zoomButton.getAttribute("state")===a._cultureInfo.zoomText?(this.panEnabled=!0,this.zoomEnabled=!1):(this.zoomEnabled=!0,this.panEnabled= +!1),Qa(a._zoomButton,a._resetButton)):(this.zoomEnabled=!0,this.panEnabled=!1))}else this.panEnabled=this.zoomEnabled=!1;this._menuButton?this.exportEnabled?Qa(this._menuButton):va(this._menuButton):this.exportEnabled&&r&&(d=!1,this._menuButton=document.createElement("button"),ua(this,this._menuButton,"menu"),this._toolBar.appendChild(this._menuButton),O(this._menuButton,"touchstart",function(a){d=!0},this.allDOMEventHandlers),O(this._menuButton,"click",function(){"none"!==a._dropdownMenu.style.display|| +a._dropDownCloseTime&&500>=(new Date).getTime()-a._dropDownCloseTime.getTime()||(a._dropdownMenu.style.display="block",a._menuButton.blur(),a._dropdownMenu.focus())},this.allDOMEventHandlers,!0),O(this._menuButton,"mouseover",function(){d||(sa(a,a._menuButton,{backgroundColor:a.toolbar.backgroundColorOnHover,color:a.toolbar.fontColorOnHover}),0>=navigator.userAgent.search("MSIE")&&sa(a,a._menuButton.childNodes[0],{WebkitFilter:"invert(100%)",filter:"invert(100%)"}))},this.allDOMEventHandlers,!0), +O(this._menuButton,"mouseout",function(){d||(sa(a,a._menuButton,{backgroundColor:a.toolbar.backgroundColor,color:a.toolbar.fontColor}),0>=navigator.userAgent.search("MSIE")&&sa(a,a._menuButton.childNodes[0],{WebkitFilter:"invert(0%)",filter:"invert(0%)"}))},this.allDOMEventHandlers,!0));if(!this._dropdownMenu&&this.exportEnabled&&r){d=!1;this._dropdownMenu=document.createElement("div");this._dropdownMenu.setAttribute("tabindex",-1);var b=-1!==this.theme.indexOf("dark")?"black":"#888888";this._dropdownMenu.style.cssText= +"position: absolute; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; cursor: pointer;right: 0px;top: 25px;min-width: 120px;outline: 0;font-size: 14px; font-family: Arial, Helvetica, sans-serif;padding: 5px 0px 5px 0px;text-align: left;line-height: 10px;background-color:"+this.toolbar.backgroundColor+";box-shadow: 2px 2px 10px "+b;a._dropdownMenu.style.display="none";this._toolBar.appendChild(this._dropdownMenu);O(this._dropdownMenu,"blur",function(){va(a._dropdownMenu); +a._dropDownCloseTime=new Date},this.allDOMEventHandlers,!0);b=document.createElement("div");b.style.cssText="padding: 12px 8px 12px 8px";b.innerHTML=this._cultureInfo.printText;b.style.backgroundColor=this.toolbar.backgroundColor;b.style.color=this.toolbar.fontColor;this._dropdownMenu.appendChild(b);O(b,"touchstart",function(a){d=!0},this.allDOMEventHandlers);O(b,"mouseover",function(){d||(this.style.backgroundColor=a.toolbar.backgroundColorOnHover,this.style.color=a.toolbar.fontColorOnHover)},this.allDOMEventHandlers, +!0);O(b,"mouseout",function(){d||(this.style.backgroundColor=a.toolbar.backgroundColor,this.style.color=a.toolbar.fontColor)},this.allDOMEventHandlers,!0);O(b,"click",function(){a.print();va(a._dropdownMenu)},this.allDOMEventHandlers,!0);b=document.createElement("div");b.style.cssText="padding: 12px 8px 12px 8px";b.innerHTML=this._cultureInfo.saveJPGText;b.style.backgroundColor=this.toolbar.backgroundColor;b.style.color=this.toolbar.fontColor;this._dropdownMenu.appendChild(b);O(b,"touchstart",function(a){d= +!0},this.allDOMEventHandlers);O(b,"mouseover",function(){d||(this.style.backgroundColor=a.toolbar.backgroundColorOnHover,this.style.color=a.toolbar.fontColorOnHover)},this.allDOMEventHandlers,!0);O(b,"mouseout",function(){d||(this.style.backgroundColor=a.toolbar.backgroundColor,this.style.color=a.toolbar.fontColor)},this.allDOMEventHandlers,!0);O(b,"click",function(){Ta(a.canvas,"jpeg",a.exportFileName);va(a._dropdownMenu)},this.allDOMEventHandlers,!0);b=document.createElement("div");b.style.cssText= +"padding: 12px 8px 12px 8px";b.innerHTML=this._cultureInfo.savePNGText;b.style.backgroundColor=this.toolbar.backgroundColor;b.style.color=this.toolbar.fontColor;this._dropdownMenu.appendChild(b);O(b,"touchstart",function(a){d=!0},this.allDOMEventHandlers);O(b,"mouseover",function(){d||(this.style.backgroundColor=a.toolbar.backgroundColorOnHover,this.style.color=a.toolbar.fontColorOnHover)},this.allDOMEventHandlers,!0);O(b,"mouseout",function(){d||(this.style.backgroundColor=a.toolbar.backgroundColor, +this.style.color=a.toolbar.fontColor)},this.allDOMEventHandlers,!0);O(b,"click",function(){Ta(a.canvas,"png",a.exportFileName);va(a._dropdownMenu)},this.allDOMEventHandlers,!0)}"none"!==this._toolBar.style.display&&this._zoomButton&&(this.panEnabled?ua(a,a._zoomButton,"zoom"):ua(a,a._zoomButton,"pan"),a._resetButton.getAttribute("state")!==a._cultureInfo.resetText&&ua(a,a._resetButton,"reset"));this.options.toolTip&&this.toolTip.options!==this.options.toolTip&&(this.toolTip.options=this.options.toolTip); +for(var c in this.toolTip.options)this.toolTip.options.hasOwnProperty(c)&&this.toolTip.updateOption(c)};p.prototype._updateSize=function(){var a;a=[this.canvas,this._preRenderCanvas,this.overlaidCanvas,this._eventManager.ghostCanvas];var d=0,b=0;this.options.width?d=this.width:this.width=d=0c.linkedDataSeriesIndex||c.linkedDataSeriesIndex>=this.options.data.length||"number"!==typeof c.linkedDataSeriesIndex|| +"error"===this.options.data[c.linkedDataSeriesIndex].type)&&(c.linkedDataSeriesIndex=null);null===c.name&&(c.name="DataSeries "+a);null===c.color?1a&&"undefined"!==typeof w.startTimePercent?a>=w.startTimePercent&&w.animationCallback(w.easingFunction(a-w.startTimePercent,0,1,1-w.startTimePercent),w):w.animationCallback(w.easingFunction(a,0,1,1),w);s.dispatchEvent("dataAnimationIterationEnd",{chart:s})},function(){b=[];for(var a=0;aa.dataSeriesIndexes.length))for(var d=a.axisY.dataInfo,b=a.axisX.dataInfo,c,e,g=!1,m=0;mb.max&&(b.max=c);ed.max&&"number"===typeof e&&(d.max=e);if(0B&&(B=1/B);b.minDiff>B&&1!==B&&(b.minDiff=B)}else B=c-l.dataPoints[w-1].x,0>B&&(B*=-1),b.minDiff>B&&0!==B&&(b.minDiff=B);null!==e&&null!==l.dataPoints[w-1].y&&(a.axisY.logarithmic?(B=e/l.dataPoints[w-1].y,1>B&&(B=1/B),d.minDiff>B&&1!==B&&(d.minDiff=B)):(B=e-l.dataPoints[w-1].y,0>B&&(B*=-1),d.minDiff>B&&0!==B&&(d.minDiff=B)))}if(cf&& +!s)s=!0;else if(c>f&&s)continue;l.dataPoints[w].label&&(a.axisX.labels[c]=l.dataPoints[w].label);cb.viewPortMax&&(b.viewPortMax=c);null===e?b.viewPortMin===c&&qd.viewPortMax&&"number"===typeof e&&(d.viewPortMax=e))}}l.axisX.valueType=l.xValueType=g?"dateTime":"number"}};p.prototype._processStackedPlotUnit=function(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)){for(var d= +a.axisY.dataInfo,b=a.axisX.dataInfo,c,e,g=!1,m=[],l=[],w=Infinity,h=-Infinity,s=0;sb.max&&(b.max=c);if(0r&&(r=1/r);b.minDiff>r&&1!==r&&(b.minDiff=r)}else r=c-q.dataPoints[n-1].x,0>r&&(r*=-1),b.minDiff>r&&0!==r&&(b.minDiff=r);null!==e&&null!==q.dataPoints[n-1].y&&(a.axisY.logarithmic?0r&&(r=1/r),d.minDiff>r&&1!==r&&(d.minDiff=r)):(r=e-q.dataPoints[n-1].y,0>r&&(r*=-1),d.minDiff>r&&0!==r&&(d.minDiff=r)))}if(ct&&!B)B=!0;else if(c>t&&B)continue;q.dataPoints[n].label&&(a.axisX.labels[c]=q.dataPoints[n].label);cb.viewPortMax&&(b.viewPortMax=c);null===q.dataPoints[n].y?b.viewPortMin===c&&kd.max&&(d.max=a),nb.viewPortMax||(ad.viewPortMax&& +(d.viewPortMax=a)));for(n in l)l.hasOwnProperty(n)&&!isNaN(n)&&(a=l[n],ad.max&&(d.max=Math.max(a,h)),nb.viewPortMax||(ad.viewPortMax&&(d.viewPortMax=Math.max(a,h))))}};p.prototype._processStacked100PlotUnit=function(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)){for(var d=a.axisY.dataInfo,b=a.axisX.dataInfo,c,e,g=!1,m=!1,l=!1,w=[],h=0;hb.max&&(b.max=c);if(0t&&(t=1/t);b.minDiff>t&&1!==t&&(b.minDiff=t)}else t=c-s.dataPoints[q-1].x,0>t&&(t*=-1),b.minDiff>t&&0!==t&&(b.minDiff=t);u(e)||null===s.dataPoints[q-1].y||(a.axisY.logarithmic?0t&&(t=1/t),d.minDiff>t&&1!==t&&(d.minDiff=t)):(t=e-s.dataPoints[q-1].y,0>t&&(t*=-1),d.minDiff>t&&0!==t&&(d.minDiff=t)))}if(cr&&!f)f=!0;else if(c>r&&f)continue;s.dataPoints[q].label&&(a.axisX.labels[c]=s.dataPoints[q].label); +cb.viewPortMax&&(b.viewPortMax=c);null===e?b.viewPortMin===c&&Be&&(l=!0),w[c]=w[c]?w[c]+Math.abs(e):Math.abs(e))}}s.axisX.valueType=s.xValueType=g?"dateTime":"number"}a.axisY.logarithmic?(d.max=u(d.viewPortMax)?99*Math.pow(a.axisY.logarithmBase,-0.05):Math.max(d.viewPortMax,99*Math.pow(a.axisY.logarithmBase,-0.05)),d.min=u(d.viewPortMin)?1:Math.min(d.viewPortMin,1)):m&&!l?(d.max=u(d.viewPortMax)? +99:Math.max(d.viewPortMax,99),d.min=u(d.viewPortMin)?1:Math.min(d.viewPortMin,1)):m&&l?(d.max=u(d.viewPortMax)?99:Math.max(d.viewPortMax,99),d.min=u(d.viewPortMin)?-99:Math.min(d.viewPortMin,-99)):!m&&l&&(d.max=u(d.viewPortMax)?-1:Math.max(d.viewPortMax,-1),d.min=u(d.viewPortMin)?-99:Math.min(d.viewPortMin,-99));d.viewPortMin=d.min;d.viewPortMax=d.max;a.dataPointYSums=w}};p.prototype._processMultiYPlotUnit=function(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length))for(var d=a.axisY.dataInfo, +b=a.axisX.dataInfo,c,e,g,m,l=!1,w=0;wb.max&&(b.max=c);gd.max&&(d.max=m);0B&&(B=1/B),b.minDiff>B&&1!==B&&(b.minDiff=B)):(B=c-h.dataPoints[s-1].x,0>B&&(B*=-1),b.minDiff>B&&0!==B&&(b.minDiff=B)),e&&(null!==e[0]&&h.dataPoints[s-1].y&&null!==h.dataPoints[s-1].y[0])&&(a.axisY.logarithmic?(B=e[0]/ +h.dataPoints[s-1].y[0],1>B&&(B=1/B),d.minDiff>B&&1!==B&&(d.minDiff=B)):(B=e[0]-h.dataPoints[s-1].y[0],0>B&&(B*=-1),d.minDiff>B&&0!==B&&(d.minDiff=B))));if(!(ct&&!n)n=!0;else if(c>t&&n)continue;h.dataPoints[s].label&&(a.axisX.labels[c]=h.dataPoints[s].label);cb.viewPortMax&&(b.viewPortMax=c);if(b.viewPortMin===c&&e)for(p=0;pd.viewPortMax&&(d.viewPortMax=m))}}h.axisX.valueType=h.xValueType=l?"dateTime":"number"}};p.prototype._processSpecificPlotUnit=function(a){if("waterfall"===a.type&&a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length))for(var d=a.axisY.dataInfo,b=a.axisX.dataInfo,c,e,g=!1,m=0;mb.max&&(b.max=c),l.dataPointEOs[w].cumulativeSumd.max&&(d.max=l.dataPointEOs[w].cumulativeSum),0q&&(q=1/q),b.minDiff>q&&1!==q&&(b.minDiff=q)):(q=c-l.dataPoints[w-1].x,0>q&&(q*=-1),b.minDiff>q&&0!==q&&(b.minDiff=q)),null!==e&&null!==l.dataPoints[w- +1].y&&(a.axisY.logarithmic?(e=l.dataPointEOs[w].cumulativeSum/l.dataPointEOs[w-1].cumulativeSum,1>e&&(e=1/e),d.minDiff>e&&1!==e&&(d.minDiff=e)):(e=l.dataPointEOs[w].cumulativeSum-l.dataPointEOs[w-1].cumulativeSum,0>e&&(e*=-1),d.minDiff>e&&0!==e&&(d.minDiff=e)))),!(cf&&!s)s=!0;else if(c>f&&s)continue;l.dataPoints[w].label&&(a.axisX.labels[c]=l.dataPoints[w].label);cb.viewPortMax&&(b.viewPortMax=c);0d.viewPortMax&&(d.viewPortMax=l.dataPointEOs[w-1].cumulativeSum));l.dataPointEOs[w].cumulativeSumd.viewPortMax&&(d.viewPortMax=l.dataPointEOs[w].cumulativeSum)}l.axisX.valueType=l.xValueType=g?"dateTime":"number"}};p.prototype.calculateAutoBreaks=function(){function a(a,c,b,e){if(e)return b= +Math.pow(Math.min(b*a/c,c/a),0.2),1>=b&&(b=Math.pow(1>a?1/a:Math.min(c/a,a),0.25)),{startValue:a*b,endValue:c/b};b=0.2*Math.min(b-c+a,c-a);0>=b&&(b=0.25*Math.min(c-a,Math.abs(a)));return{startValue:a+b,endValue:c-b}}function d(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)){var c=a.axisX.scaleBreaks&&a.axisX.scaleBreaks.autoCalculate&&1<=a.axisX.scaleBreaks.maxNumberOfAutoBreaks,b=a.axisY.scaleBreaks&&a.axisY.scaleBreaks.autoCalculate&&1<=a.axisY.scaleBreaks.maxNumberOfAutoBreaks;if(c|| +b)for(var d=a.axisY.dataInfo,f=a.axisX.dataInfo,g,h=f.min,l=f.max,m=d.min,n=d.max,f=f._dataRanges,d=d._dataRanges,q,w=0,s=0;sk.dataPoints.length))for(w=0;wf[q].max&&(f[q].max=g)),b){var r= +(n+1-m)*Math.max(parseFloat(a.axisY.scaleBreaks.collapsibleThreshold)||10,10)/100;if((g="waterfall"===a.type?k.dataPointEOs[w].cumulativeSum:k.dataPoints[w].y)&&g.length)for(var p=0;pd[q].max&&(d[q].max=g[p]);else u(g)||(q=Math.floor((g-m)/r),gd[q].max&&(d[q].max=g))}}}}function b(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)&&a.axisX.scaleBreaks&&a.axisX.scaleBreaks.autoCalculate&&1<= +a.axisX.scaleBreaks.maxNumberOfAutoBreaks)for(var c=a.axisX.dataInfo,b=c.min,d=c.max,f=c._dataRanges,g,h=0,l=0;lm.dataPoints.length))for(h=0;hf[g].max&&(f[g].max=c)}}for(var c,e=this,g=!1,m=0;m< +this._axes.length;m++)if(this._axes[m].scaleBreaks&&this._axes[m].scaleBreaks.autoCalculate&&1<=this._axes[m].scaleBreaks.maxNumberOfAutoBreaks){g=!0;this._axes[m].dataInfo._dataRanges=[];for(var l=0;l<100/Math.max(parseFloat(this._axes[m].scaleBreaks.collapsibleThreshold)||10,10);l++)this._axes[m].dataInfo._dataRanges.push({min:Infinity,max:-Infinity})}if(g){for(m=0;ms[f].max&&(s[f].max=q)}delete this._axes[m].dataInfo.dataPointYPositiveSums}if(this._axes[m].dataInfo.dataPointYNegativeSums){n= +this._axes[m].dataInfo.dataPointYNegativeSums;s=h;for(l in n)n.hasOwnProperty(l)&&!isNaN(l)&&(q=-1*n[l],u(q)||(f=Math.floor((q-w)/c),qs[f].max&&(s[f].max=q)));delete this._axes[m].dataInfo.dataPointYNegativeSums}for(l=0;lc&&g.push({diff:q,start:s,end:w});break}else l++;if(this._axes[m].scaleBreaks.customBreaks)for(l=0;l=e.x1&&(a<=e.x2&&d>=e.y1&&d<=e.y2)&&(c=e.id)}return c};p.prototype.getAutoFontSize=lb;p.prototype.resetOverlayedCanvas=function(){this.overlaidCanvasCtx.clearRect(0,0,this.width,this.height)};p.prototype.clearCanvas=kb;p.prototype.attachEvent=function(a){this._events.push(a)};p.prototype._touchEventHandler=function(a){if(a.changedTouches&&this.interactivityEnabled){var d=[],b=a.changedTouches,c=b?b[0]:a,e=null;switch(a.type){case "touchstart":case "MSPointerDown":d=["mousemove","mousedown"];this._lastTouchData= +Ra(c);this._lastTouchData.time=new Date;break;case "touchmove":case "MSPointerMove":d=["mousemove"];break;case "touchend":case "MSPointerUp":var g=this._lastTouchData&&this._lastTouchData.time?new Date-this._lastTouchData.time:0,d="touchstart"===this._lastTouchEventType||"MSPointerDown"===this._lastTouchEventType||300>g?["mouseup","click"]:["mouseup"];break;default:return}if(!(b&&1g)this._lastTouchData.scroll=!0}catch(l){}this._lastTouchEventType=a.type;if(this._lastTouchData.scroll&&this.zoomEnabled)this.isDrag&&this.resetOverlayedCanvas(),this.isDrag=!1;else for(b=0;b=e.x1&&d.x<=e.x2&&d.y>=e.y1&&d.y<=e.y2){c[b].call(c.context,d.x,d.y);"mousedown"===b&&!0===c.capture?(p.capturedEventParam=c,this.overlaidCanvas.setCapture?this.overlaidCanvas.setCapture():document.documentElement.addEventListener("mouseup", +this._mouseEventHandler,!1)):"mouseup"===b&&(c.chart.overlaidCanvas.releaseCapture?c.chart.overlaidCanvas.releaseCapture():document.documentElement.removeEventListener("mouseup",this._mouseEventHandler,!1));break}else c=null;a.target.style.cursor=c&&c.cursor?c.cursor:this._defaultCursor}b=this.plotArea;if(d.xb.x2||d.yb.y2)this.toolTip&&this.toolTip.enabled?this.toolTip.hide():this.resetOverlayedCanvas();this.isDrag&&this.zoomEnabled||!this._eventManager||this._eventManager.mouseEventHandler(a)}}; +p.prototype._plotAreaMouseDown=function(a,d){this.isDrag=!0;this.dragStartPoint={x:a,y:d}};p.prototype._plotAreaMouseUp=function(a,d){if(("normal"===this.plotInfo.axisPlacement||"xySwapped"===this.plotInfo.axisPlacement)&&this.isDrag){var b=d-this.dragStartPoint.y,c=a-this.dragStartPoint.x,e=0<=this.zoomType.indexOf("x"),g=0<=this.zoomType.indexOf("y"),m=!1;this.resetOverlayedCanvas();if("xySwapped"===this.plotInfo.axisPlacement)var l=g,g=e,e=l;if(this.panEnabled||this.zoomEnabled){if(this.panEnabled)for(e= +g=0;eb.maximum&&(g=b.viewportMaximum/b.maximum,b.sessionVariables.newViewportMinimum=b.viewportMinimum/g,b.sessionVariables.newViewportMaximum=b.viewportMaximum/g,m=!0):b.viewportMinimumb.maximum&&(g=b.viewportMaximum-b.maximum,b.sessionVariables.newViewportMinimum=b.viewportMinimum-g,b.sessionVariables.newViewportMaximum=b.viewportMaximum-g,m=!0);else if((!e||2Math.abs(b)&&(this.panEnabled||this.zoomEnabled)?this.toolTip.hide():this.panEnabled||this.zoomEnabled||this.toolTip.mouseMoveHandler(a, +d);if((!e||2f)var B=f,f=n,n=B;if(q.scaleBreaks)for(B=0;!g&&B=f;if(isFinite(q.dataInfo.minDiff))if(B=q.getApparentDifference(n,f,null,!0),!(g||!(this.panEnabled&&q.scaleBreaks&&q.scaleBreaks._appliedBreaks.length)&&(q.logarithmic&&Bq.maximum))w.push(q),s.push({val1:n,val2:f}),l=!0;else if(!e){l=!1;break}}return{isValid:l,axesWithValidRange:w,axesRanges:s}};p.prototype.preparePlotArea=function(){var a=this.plotArea;!r&&(0b.lineCoordinates.x2?d.x2:b.lineCoordinates.x2;a.y2=d.y2>d.y1?d.y2:b.lineCoordinates.y2;a.width=a.x2-a.x1;a.height=a.y2-a.y1}this.axisY2&&0b.lineCoordinates.x2?d.x2:b.lineCoordinates.x2,a.y2=d.y2>d.y1?d.y2:b.lineCoordinates.y2,a.width=a.x2-a.x1,a.height=a.y2-a.y1)}else d= +this.layoutManager.getFreeSpace(),a.x1=d.x1,a.x2=d.x2,a.y1=d.y1,a.y2=d.y2,a.width=d.width,a.height=d.height;r||(a.canvas.width=a.width,a.canvas.height=a.height,a.canvas.style.left=a.x1+"px",a.canvas.style.top=a.y1+"px",(0b.x2||h.point.yb.y2+1)continue}else if("rangearea"===s||"rangesplinearea"===s){if(h.dataPoint.xy.viewportMaximum||Math.max.apply(null,h.dataPoint.y)A.viewportMaximum)continue}else if(0<=s.indexOf("line")||0<=s.indexOf("area")||0<=s.indexOf("bubble")||0<=s.indexOf("scatter")){if(h.dataPoint.xy.viewportMaximum|| +h.dataPoint.yA.viewportMaximum)continue}else if(0<=s.indexOf("column")||"waterfall"===s||"error"===s&&!h.axisSwapped){if(h.dataPoint.xy.viewportMaximum||h.bounds.y1>b.y2||h.bounds.y2y.viewportMaximum||h.bounds.x1>b.x2||h.bounds.x2 +y.viewportMaximum||Math.max.apply(null,h.dataPoint.y)A.viewportMaximum)continue}else if(h.dataPoint.xy.viewportMaximum)continue;e=m=2;"horizontal"===C?(l=f.width,w=f.height):(w=f.width,l=f.height);if("normal"===this.plotInfo.axisPlacement){if(0<=s.indexOf("line")||0<=s.indexOf("area"))t="auto",m=4;else if(0<=s.indexOf("stacked"))"auto"===t&&(t="inside");else if("bubble"===s||"scatter"===s)t="inside";q=h.point.x- +l/2;"inside"!==t?(e=b.y1,g=b.y2,0h.point.y)):(n=h.point.y+m+c,n>g-w-m-c&&(n="auto"===t?Math.min(h.point.y,g)-w-m-c:g-w-m-c,v=ng-w-m&&("bubble"===s||"scatter"===s)&&(n=Math.min(h.point.y+m,b.y2-w-m))),n=Math.min(n,g-w))}else 0<=s.indexOf("line")||0<=s.indexOf("area")||0<=s.indexOf("scatter")?(t="auto",e=4):0<=s.indexOf("stacked")?"auto"===t&&(t="inside"):"bubble"===s&&(t="inside"),n=h.point.y-w/2,"inside"!==t?(m=b.x1,g=b.x2,0>ma?(q=h.point.x-l-e-c,qh.point.x)):(q=h.point.x+e+c,q>g-l-e-c&&(q="auto"=== +t?Math.min(h.point.x,g)-l-e-c:g-l-e-c,v=qma?Math.max(h.bounds.x1,b.x1)+l/2+e:Math.min(h.bounds.x2,b.x2)-l/2-e:(Math.max(h.bounds.x1,b.x1)+Math.min(h.bounds.x2,b.x2))/2,q=0>ma?Math.max(h.point.x,c)-l/2:Math.min(h.point.x,c)-l/2,q=Math.max(q,m));"vertical"===C&&(n+=w);f.x=q;f.y=n;f.render(!0);p&&("inside"!==t&&(0>s.indexOf("bar")&&("error"!==s||!h.axisSwapped)&&h.point.x>b.x1&&h.point.xs.indexOf("column")&&("error"!==s||h.axisSwapped)&&h.point.y>b.y1&&h.point.y=a.dataSeriesIndexes.length)){var c= +this._eventManager.ghostCtx;b.save();var e=this.plotArea;b.beginPath();b.rect(e.x1,e.y1,e.width,e.height);b.clip();for(var g=[],m,l=0;la.axisX.dataInfo.viewPortMax&&(!h.connectNullData||!u)))if("number"!==typeof s[t].y)0s[t].y===a.axisY.reversed?1:-1,color:B})}b.stroke();r&&c.stroke()}}ia.drawMarkers(g);r&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&& +b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(e.x1,e.y1,e.width,e.height),c.beginPath());b.restore();b.beginPath();return{source:d,dest:this.plotArea.ctx,animationCallback:M.xClipAnimation,easingFunction:M.easing.linear,animationBase:0}}};p.prototype.renderStepLine=function(a){var d=a.targetCanvasCtx|| +this.plotArea.ctx,b=r?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var c=this._eventManager.ghostCtx;b.save();var e=this.plotArea;b.beginPath();b.rect(e.x1,e.y1,e.width,e.height);b.clip();for(var g=[],m,l=0;la.axisX.dataInfo.viewPortMax&&(!h.connectNullData||!u)))if("number"!==typeof s[t].y)0s[t].y===a.axisY.reversed?1:-1,color:B})}b.stroke();r&&c.stroke()}}ia.drawMarkers(g);r&& +(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(e.x1,e.y1,e.width,e.height),c.beginPath());b.restore();b.beginPath();return{source:d,dest:this.plotArea.ctx,animationCallback:M.xClipAnimation, +easingFunction:M.easing.linear,animationBase:0}}};p.prototype.renderSpline=function(a){function d(a){a=v(a,2);if(0=a.dataSeriesIndexes.length)){var e=this._eventManager.ghostCtx;c.save();var g=this.plotArea;c.beginPath(); +c.rect(g.x1,g.y1,g.width,g.height);c.clip();for(var m=[],l=0;la.axisX.dataInfo.viewPortMax&&(!h.connectNullData||!u)))if("number"!==typeof s[p].y)0s[p].y===a.axisY.reversed?1:-1,color:B});u=!1}d(x)}ia.drawMarkers(m);r&&(b.drawImage(this._preRenderCanvas, +0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(g.x1,g.y1,g.width,g.height),e.beginPath());c.restore();c.beginPath();return{source:b,dest:this.plotArea.ctx,animationCallback:M.xClipAnimation,easingFunction:M.easing.linear, +animationBase:0}}};p.prototype.renderColumn=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,b=r?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var c=null,e=this.plotArea,g=0,m,l,w,h=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),g=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,s=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.width, +0.9*(this.plotArea.width/a.plotType.totalDataSeries))<<0,q=a.axisX.dataInfo.minDiff;isFinite(q)||(q=0.3*Math.abs(a.axisX.range));q=this.dataPointWidth=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.width*(a.axisX.logarithmic?Math.log(q)/Math.log(a.axisX.range):Math.abs(q)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&g>s&&(g=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,s));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&ss&&(q=s);b.save();r&&this._eventManager.ghostCtx.save();b.beginPath();b.rect(e.x1,e.y1,e.width,e.height);b.clip();r&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(s=0;sa.axisX.dataInfo.viewPortMax)&&"number"===typeof B[g].y){m=a.axisX.convertValueToPixel(w);l=a.axisY.convertValueToPixel(B[g].y);m=a.axisX.reversed?m+a.plotType.totalDataSeries*q/2-(a.previousDataSeriesCount+s)*q<<0:m-a.plotType.totalDataSeries*q/2+(a.previousDataSeriesCount+s)*q<<0;var k=a.axisX.reversed?m-q<<0:m+q<<0,t;0<=B[g].y?t=h:(t=l,l=h);l>t&&(c=l,l=t,t=c);c=B[g].color?B[g].color:f._colorSet[g%f._colorSet.length];ea(b,m,l,k,t,c,0,null,p&&0<=B[g].y, +0>B[g].y&&p,!1,!1,f.fillOpacity);c=f.dataPointIds[g];this._eventManager.objectMap[c]={id:c,objectType:"dataPoint",dataSeriesIndex:n,dataPointIndex:g,x1:m,y1:l,x2:k,y2:t};c=N(c);r&&ea(this._eventManager.ghostCtx,m,l,k,t,c,0,null,!1,!1,!1,!1);(B[g].indexLabel||f.indexLabel||B[g].indexLabelFormatter||f.indexLabelFormatter)&&this._indexLabels.push({chartType:"column",dataPoint:B[g],dataSeries:f,point:{x:m+(k-m)/2,y:0>B[g].y===a.axisY.reversed?l:t},direction:0>B[g].y===a.axisY.reversed?1:-1,bounds:{x1:m, +y1:Math.min(l,t),x2:k,y2:Math.max(l,t)},color:c})}}r&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());b.restore(); +return{source:d,dest:this.plotArea.ctx,animationCallback:M.yScaleAnimation,easingFunction:M.easing.easeOutQuart,animationBase:ha.axisY.bounds.y2?a.axisY.bounds.y2:h}}};p.prototype.renderStackedColumn=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,b=r?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var c=null,e=this.plotArea,g=[],m=[],l=[],w=[],h=0,s,q,n=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),h=this.options.dataPointMinWidth? +this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1;s=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.width<<0;var f=a.axisX.dataInfo.minDiff;isFinite(f)||(f=0.3*Math.abs(a.axisX.range));f=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.width*(a.axisX.logarithmic?Math.log(f)/Math.log(a.axisX.range):Math.abs(f)/Math.abs(a.axisX.range))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&h>s&&(h=Math.min(this.options.dataPointWidth? +this.dataPointWidth:Infinity,s));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&ss&&(f=s);b.save();r&&this._eventManager.ghostCtx.save();b.beginPath();b.rect(e.x1,e.y1,e.width,e.height);b.clip();r&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(var B=0;Ba.axisX.dataInfo.viewPortMax)&&"number"===typeof t[h].y){s=a.axisX.convertValueToPixel(c);var x=s-a.plotType.plotUnits.length*f/2+a.index*f<<0,v=x+f<<0,y;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=t[h].y)w[c]=t[h].y+(w[c]?w[c]:0),y=a.axisY.convertValueToPixel(w[c]),q="undefined"!==typeof m[c]?m[c]:n,m[c]=y;else if(q=a.axisY.convertValueToPixel(t[h].y),0<=t[h].y){var A="undefined"!==typeof g[c]?g[c]:0;q-=A;y=n-A;g[c]=A+(y-q)}else A=m[c]?m[c]:0,y=q+A,q=n+A,m[c]=A+(y-q);c=t[h].color?t[h].color:p._colorSet[h%p._colorSet.length];ea(b,x,q,v,y,c,0,null,u&&0<=t[h].y,0>t[h].y&&u,!1, +!1,p.fillOpacity);c=p.dataPointIds[h];this._eventManager.objectMap[c]={id:c,objectType:"dataPoint",dataSeriesIndex:k,dataPointIndex:h,x1:x,y1:q,x2:v,y2:y};c=N(c);r&&ea(this._eventManager.ghostCtx,x,q,v,y,c,0,null,!1,!1,!1,!1);(t[h].indexLabel||p.indexLabel||t[h].indexLabelFormatter||p.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedColumn",dataPoint:t[h],dataSeries:p,point:{x:s,y:0<=t[h].y?q:y},direction:0>t[h].y===a.axisY.reversed?1:-1,bounds:{x1:x,y1:Math.min(q,y),x2:v,y2:Math.max(q, +y)},color:c})}}}r&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());b.restore();return{source:d,dest:this.plotArea.ctx, +animationCallback:M.yScaleAnimation,easingFunction:M.easing.easeOutQuart,animationBase:na.axisY.bounds.y2?a.axisY.bounds.y2:n}}};p.prototype.renderStackedColumn100=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,b=r?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var c=null,e=this.plotArea,g=[],m=[],l=[],w=[],h=0,s,q,n=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),h=this.options.dataPointMinWidth?this.dataPointMinWidth: +this.options.dataPointWidth?this.dataPointWidth:1;s=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.width<<0;var f=a.axisX.dataInfo.minDiff;isFinite(f)||(f=0.3*Math.abs(a.axisX.range));f=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.width*(a.axisX.logarithmic?Math.log(f)/Math.log(a.axisX.range):Math.abs(f)/Math.abs(a.axisX.range))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&h>s&&(h=Math.min(this.options.dataPointWidth? +this.dataPointWidth:Infinity,s));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&ss&&(f=s);b.save();r&&this._eventManager.ghostCtx.save();b.beginPath();b.rect(e.x1,e.y1,e.width,e.height);b.clip();r&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(var B=0;Ba.axisX.dataInfo.viewPortMax)&&"number"===typeof t[h].y){s=a.axisX.convertValueToPixel(c);q=0!==a.dataPointYSums[c]?100*(t[h].y/a.dataPointYSums[c]):0;var x=s-a.plotType.plotUnits.length*f/2+a.index*f<<0,v=x+f<<0,y;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=l[c])continue;q=a.axisY.convertValueToPixel(l[c]);y=g[c]?g[c]:n;g[c]=q}else if(a.axisY.scaleBreaks&&0=t[h].y)w[c]=q+("undefined"!==typeof w[c]?w[c]:0),y=a.axisY.convertValueToPixel(w[c]),q=m[c]?m[c]:n,m[c]=y;else if(q=a.axisY.convertValueToPixel(q),0<=t[h].y){var A="undefined"!==typeof g[c]?g[c]:0;q-=A;y=n-A;a.dataSeriesIndexes.length-1===B&&1>=Math.abs(e.y1-q)&&(q=e.y1);g[c]=A+(y-q)}else A="undefined"!==typeof m[c]? +m[c]:0,y=q+A,q=n+A,a.dataSeriesIndexes.length-1===B&&1>=Math.abs(e.y2-y)&&(y=e.y2),m[c]=A+(y-q);c=t[h].color?t[h].color:k._colorSet[h%k._colorSet.length];ea(b,x,q,v,y,c,0,null,u&&0<=t[h].y,0>t[h].y&&u,!1,!1,k.fillOpacity);c=k.dataPointIds[h];this._eventManager.objectMap[c]={id:c,objectType:"dataPoint",dataSeriesIndex:p,dataPointIndex:h,x1:x,y1:q,x2:v,y2:y};c=N(c);r&&ea(this._eventManager.ghostCtx,x,q,v,y,c,0,null,!1,!1,!1,!1);(t[h].indexLabel||k.indexLabel||t[h].indexLabelFormatter||k.indexLabelFormatter)&& +this._indexLabels.push({chartType:"stackedColumn100",dataPoint:t[h],dataSeries:k,point:{x:s,y:0<=t[h].y?q:y},direction:0>t[h].y===a.axisY.reversed?1:-1,bounds:{x1:x,y1:Math.min(q,y),x2:v,y2:Math.max(q,y)},color:c})}}r&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&& +this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());b.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:M.yScaleAnimation,easingFunction:M.easing.easeOutQuart,animationBase:na.axisY.bounds.y2?a.axisY.bounds.y2:n}}};p.prototype.renderBar=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,b=r?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var c= +null,e=this.plotArea,g=0,m,l,w,h=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),g=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,s=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.height,0.9*(this.plotArea.height/a.plotType.totalDataSeries))<<0,q=a.axisX.dataInfo.minDiff;isFinite(q)||(q=0.3*Math.abs(a.axisX.range));q=this.options.dataPointWidth? +this.dataPointWidth:0.9*(e.height*(a.axisX.logarithmic?Math.log(q)/Math.log(a.axisX.range):Math.abs(q)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&g>s&&(g=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,s));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&ss&&(q=s);b.save();r&&this._eventManager.ghostCtx.save();b.beginPath();b.rect(e.x1,e.y1,e.width,e.height); +b.clip();r&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(s=0;sa.axisX.dataInfo.viewPortMax)&&"number"===typeof B[g].y){l=a.axisX.convertValueToPixel(w); +m=a.axisY.convertValueToPixel(B[g].y);l=a.axisX.reversed?l+a.plotType.totalDataSeries*q/2-(a.previousDataSeriesCount+s)*q<<0:l-a.plotType.totalDataSeries*q/2+(a.previousDataSeriesCount+s)*q<<0;var p=a.axisX.reversed?l-q<<0:l+q<<0,t;0<=B[g].y?t=h:(t=m,m=h);c=B[g].color?B[g].color:f._colorSet[g%f._colorSet.length];ea(b,t,l,m,p,c,0,null,k,!1,!1,!1,f.fillOpacity);c=f.dataPointIds[g];this._eventManager.objectMap[c]={id:c,objectType:"dataPoint",dataSeriesIndex:n,dataPointIndex:g,x1:t,y1:l,x2:m,y2:p};c= +N(c);r&&ea(this._eventManager.ghostCtx,t,l,m,p,c,0,null,!1,!1,!1,!1);(B[g].indexLabel||f.indexLabel||B[g].indexLabelFormatter||f.indexLabelFormatter)&&this._indexLabels.push({chartType:"bar",dataPoint:B[g],dataSeries:f,point:{x:0<=B[g].y?m:t,y:l+(p-l)/2},direction:0>B[g].y===a.axisY.reversed?1:-1,bounds:{x1:Math.min(t,m),y1:l,x2:Math.max(t,m),y2:p},color:c})}}}r&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas, +0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());b.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:M.xScaleAnimation,easingFunction:M.easing.easeOutQuart,animationBase:ha.axisY.bounds.x2?a.axisY.bounds.x2: +h}}};p.prototype.renderStackedBar=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,b=r?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var c=null,e=this.plotArea,g=[],m=[],l=[],w=[],h=0,s,q,n=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),h=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1;q=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.height<< +0;var f=a.axisX.dataInfo.minDiff;isFinite(f)||(f=0.3*Math.abs(a.axisX.range));f=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.height*(a.axisX.logarithmic?Math.log(f)/Math.log(a.axisX.range):Math.abs(f)/Math.abs(a.axisX.range))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&h>q&&(h=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,q));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&qq&&(f=q);b.save();r&&this._eventManager.ghostCtx.save();b.beginPath();b.rect(e.x1,e.y1,e.width,e.height);b.clip();r&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(var B=0;Ba.axisX.dataInfo.viewPortMax)&&"number"===typeof t[h].y){q=a.axisX.convertValueToPixel(c);var x=q-a.plotType.plotUnits.length*f/2+a.index*f<<0,v=x+f<<0,y;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=t[h].y)w[c]=t[h].y+(w[c]?w[c]:0),s=m[c]? +m[c]:n,m[c]=y=a.axisY.convertValueToPixel(w[c]);else if(s=a.axisY.convertValueToPixel(t[h].y),0<=t[h].y){var A=g[c]?g[c]:0;y=n+A;s+=A;g[c]=A+(s-y)}else A=m[c]?m[c]:0,y=s-A,s=n-A,m[c]=A+(s-y);c=t[h].color?t[h].color:k._colorSet[h%k._colorSet.length];ea(b,y,x,s,v,c,0,null,u,!1,!1,!1,k.fillOpacity);c=k.dataPointIds[h];this._eventManager.objectMap[c]={id:c,objectType:"dataPoint",dataSeriesIndex:p,dataPointIndex:h,x1:y,y1:x,x2:s,y2:v};c=N(c);r&&ea(this._eventManager.ghostCtx,y,x,s,v,c,0,null,!1,!1,!1, +!1);(t[h].indexLabel||k.indexLabel||t[h].indexLabelFormatter||k.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedBar",dataPoint:t[h],dataSeries:k,point:{x:0<=t[h].y?s:y,y:q},direction:0>t[h].y===a.axisY.reversed?1:-1,bounds:{x1:Math.min(y,s),y1:x,x2:Math.max(y,s),y2:v},color:c})}}}r&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&& +b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());b.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:M.xScaleAnimation,easingFunction:M.easing.easeOutQuart,animationBase:na.axisY.bounds.x2?a.axisY.bounds.x2:n}}};p.prototype.renderStackedBar100=function(a){var d= +a.targetCanvasCtx||this.plotArea.ctx,b=r?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var c=null,e=this.plotArea,g=[],m=[],l=[],w=[],h=0,s,q,n=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),h=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1;q=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.height<<0;var f=a.axisX.dataInfo.minDiff;isFinite(f)|| +(f=0.3*Math.abs(a.axisX.range));f=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.height*(a.axisX.logarithmic?Math.log(f)/Math.log(a.axisX.range):Math.abs(f)/Math.abs(a.axisX.range))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&h>q&&(h=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,q));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&qq&&(f=q);b.save();r&&this._eventManager.ghostCtx.save(); +b.beginPath();b.rect(e.x1,e.y1,e.width,e.height);b.clip();r&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(var B=0;Ba.axisX.dataInfo.viewPortMax)&& +"number"===typeof t[h].y){q=a.axisX.convertValueToPixel(c);var x;x=0!==a.dataPointYSums[c]?100*(t[h].y/a.dataPointYSums[c]):0;var v=q-a.plotType.plotUnits.length*f/2+a.index*f<<0,y=v+f<<0;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=l[c])continue;x=g[c]?g[c]:n;g[c]=s=a.axisY.convertValueToPixel(l[c])}else if(a.axisY.scaleBreaks&&0=t[h].y)w[c]=x+(w[c]?w[c]:0),s=m[c]?m[c]: +n,m[c]=x=a.axisY.convertValueToPixel(w[c]);else if(s=a.axisY.convertValueToPixel(x),0<=t[h].y){var A=g[c]?g[c]:0;x=n+A;s+=A;a.dataSeriesIndexes.length-1===B&&1>=Math.abs(e.x2-s)&&(s=e.x2);g[c]=A+(s-x)}else A=m[c]?m[c]:0,x=s-A,s=n-A,a.dataSeriesIndexes.length-1===B&&1>=Math.abs(e.x1-x)&&(x=e.x1),m[c]=A+(s-x);c=t[h].color?t[h].color:p._colorSet[h%p._colorSet.length];ea(b,x,v,s,y,c,0,null,u,!1,!1,!1,p.fillOpacity);c=p.dataPointIds[h];this._eventManager.objectMap[c]={id:c,objectType:"dataPoint",dataSeriesIndex:k, +dataPointIndex:h,x1:x,y1:v,x2:s,y2:y};c=N(c);r&&ea(this._eventManager.ghostCtx,x,v,s,y,c,0,null,!1,!1,!1,!1);(t[h].indexLabel||p.indexLabel||t[h].indexLabelFormatter||p.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedBar100",dataPoint:t[h],dataSeries:p,point:{x:0<=t[h].y?s:x,y:q},direction:0>t[h].y===a.axisY.reversed?1:-1,bounds:{x1:Math.min(x,s),y1:v,x2:Math.max(x,s),y2:y},color:c})}}}r&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop", +a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());b.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:M.xScaleAnimation,easingFunction:M.easing.easeOutQuart,animationBase:na.axisY.bounds.x2?a.axisY.bounds.x2:n}}};p.prototype.renderArea=function(a){var d,b;function c(){A&&(0=a.axisY.viewportMinimum&&0<=a.axisY.viewportMaximum?y=v:0>a.axisY.viewportMaximum?y=w.y1:0=a.dataSeriesIndexes.length)){var m=this._eventManager.ghostCtx,l=a.axisX.lineCoordinates,w=a.axisY.lineCoordinates,h=[],s=this.plotArea,q;g.save();r&&m.save();g.beginPath();g.rect(s.x1,s.y1,s.width,s.height);g.clip();r&&(m.beginPath(),m.rect(s.x1,s.y1,s.width,s.height),m.clip());for(var n=0;na.axisX.dataInfo.viewPortMax&&(!B.connectNullData||!da)))if("number"!==typeof p[k].y)B.connectNullData||(da||d)||c(),da=!0;else{t=a.axisX.convertValueToPixel(x);u=a.axisY.convertValueToPixel(p[k].y);d||da?(!d&&B.connectNullData?(g.setLineDash&&(B.options.nullDataLineDashType||b===B.lineDashType&&B.lineDashType!==B.nullDataLineDashType)&&(d=t,b=u,t=q.x,u=q.y,c(),g.moveTo(q.x,q.y),t=d,u=b,A=q,b=B.nullDataLineDashType,g.setLineDash(Y)),g.lineTo(t,u),r&&m.lineTo(t, +u)):(g.beginPath(),g.moveTo(t,u),r&&(m.beginPath(),m.moveTo(t,u)),A={x:t,y:u}),da=d=!1):(g.lineTo(t,u),r&&m.lineTo(t,u),0==k%250&&c());q={x:t,y:u};kp[k].y===a.axisY.reversed?1:-1,color:z})}c();ia.drawMarkers(h)}}r&&(e.drawImage(this._preRenderCanvas, +0,0,this.width,this.height),g.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&g.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&g.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),g.clearRect(s.x1,s.y1,s.width,s.height),this._eventManager.ghostCtx.restore());g.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:M.xClipAnimation,easingFunction:M.easing.linear, +animationBase:0}}};p.prototype.renderSplineArea=function(a){function d(){var b=v(x,2);if(0=a.axisY.viewportMinimum&&0<=a.axisY.viewportMaximum? +t=p:0>a.axisY.viewportMaximum?t=m.y1:0=a.dataSeriesIndexes.length)){var e=this._eventManager.ghostCtx,g=a.axisX.lineCoordinates,m=a.axisY.lineCoordinates,l=[],w=this.plotArea;c.save();r&& +e.save();c.beginPath();c.rect(w.x1,w.y1,w.width,w.height);c.clip();r&&(e.beginPath(),e.rect(w.x1,w.y1,w.width,w.height),e.clip());for(var h=0;ha.axisX.dataInfo.viewPortMax&&(!q.connectNullData||!k)))if("number"!==typeof n[f].y)0n[f].y===a.axisY.reversed?1:-1,color:ma});k=!1}d();ia.drawMarkers(l)}}r&&(b.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(w.x1,w.y1,w.width,w.height), +this._eventManager.ghostCtx.restore());c.restore();return{source:b,dest:this.plotArea.ctx,animationCallback:M.xClipAnimation,easingFunction:M.easing.linear,animationBase:0}}};p.prototype.renderStepArea=function(a){var d,b;function c(){A&&(0=a.axisY.viewportMinimum&&0<=a.axisY.viewportMaximum?y=v:0>a.axisY.viewportMaximum?y=w.y1:0=a.dataSeriesIndexes.length)){var m=this._eventManager.ghostCtx,l=a.axisX.lineCoordinates,w=a.axisY.lineCoordinates,h=[],s=this.plotArea,q;g.save();r&&m.save();g.beginPath();g.rect(s.x1,s.y1,s.width,s.height);g.clip();r&&(m.beginPath(),m.rect(s.x1,s.y1,s.width,s.height),m.clip());for(var n=0;na.axisX.dataInfo.viewPortMax&&(!B.connectNullData||!b))){var Z=u;"number"!==typeof k[p].y?(B.connectNullData||(b||d)||c(),b=!0):(t=a.axisX.convertValueToPixel(x),u=a.axisY.convertValueToPixel(k[p].y),d||b?(!d&&B.connectNullData?(g.setLineDash&&(B.options.nullDataLineDashType||Y===B.lineDashType&&B.lineDashType!==B.nullDataLineDashType)&&(d= +t,b=u,t=q.x,u=q.y,c(),g.moveTo(q.x,q.y),t=d,u=b,A=q,Y=B.nullDataLineDashType,g.setLineDash(ca)),g.lineTo(t,Z),g.lineTo(t,u),r&&(m.lineTo(t,Z),m.lineTo(t,u))):(g.beginPath(),g.moveTo(t,u),r&&(m.beginPath(),m.moveTo(t,u)),A={x:t,y:u}),b=d=!1):(g.lineTo(t,Z),r&&m.lineTo(t,Z),g.lineTo(t,u),r&&m.lineTo(t,u),0==p%250&&c()),q={x:t,y:u},pk[p].y===a.axisY.reversed?1:-1,color:z}))}c();ia.drawMarkers(h)}}r&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),g.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&g.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&g.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas, +0,0,this.width,this.height),g.clearRect(s.x1,s.y1,s.width,s.height),this._eventManager.ghostCtx.restore());g.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:M.xClipAnimation,easingFunction:M.easing.linear,animationBase:0}}};p.prototype.renderStackedArea=function(a){function d(){if(!(1>h.length)){for(0=a.dataSeriesIndexes.length)){var e=null,g=null,m=[],l=this.plotArea,w=[],h=[],s=[],q=[],n=0,f,k,p=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),u=this._eventManager.ghostCtx,t,C,x;r&&u.beginPath();c.save();r&&u.save();c.beginPath();c.rect(l.x1,l.y1,l.width,l.height);c.clip();r&&(u.beginPath(),u.rect(l.x1,l.y1,l.width,l.height),u.clip());for(var e=[],v=0;va.axisX.dataInfo.viewPortMax&&(!A.connectNullData||!da)))if("number"!==typeof Z.y)A.connectNullData||(da||C)||d(),da=!0;else{f=a.axisX.convertValueToPixel(g);var oa= +w[g]?w[g]:0;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=q[g]&&a.axisY.logarithmic)continue;k=a.axisY.convertValueToPixel(q[g])}else k=a.axisY.convertValueToPixel(Z.y),k-=oa;h.push({x:f,y:p-oa});w[g]=p-k;C||da?(!C&&A.connectNullData?(c.setLineDash&&(A.options.nullDataLineDashType||x===A.lineDashType&&A.lineDashType!==A.nullDataLineDashType)&&(C=h.pop(),x=h[h.length-1],d(),c.moveTo(t.x,t.y),h.push(x),h.push(C),x=A.nullDataLineDashType, +c.setLineDash(Y)),c.lineTo(f,k),r&&u.lineTo(f,k)):(c.beginPath(),c.moveTo(f,k),r&&(u.beginPath(),u.moveTo(f,k))),da=C=!1):(c.lineTo(f,k),r&&u.lineTo(f,k),0==n%250&&(d(),c.moveTo(f,k),r&&u.moveTo(f,k),h.push({x:f,y:p-oa})));t={x:f,y:k};nz[n].y===a.axisY.reversed?1:-1,color:e})}}d();c.moveTo(f,k);r&&u.moveTo(f,k)}delete A.dataPointIndexes}ia.drawMarkers(m);r&&(b.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&& +c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(l.x1,l.y1,l.width,l.height),u.restore());c.restore();return{source:b,dest:this.plotArea.ctx,animationCallback:M.xClipAnimation,easingFunction:M.easing.linear,animationBase:0}}};p.prototype.renderStackedArea100=function(a){function d(){for(0=a.dataSeriesIndexes.length)){var e=null,g=null,m=this.plotArea,l=[],w=[],h=[],s=[],q=[],n=0,f,k,p,u,t,C=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),x=this._eventManager.ghostCtx;c.save();r&&x.save();c.beginPath();c.rect(m.x1,m.y1,m.width,m.height);c.clip();r&&(x.beginPath(), +x.rect(m.x1,m.y1,m.width,m.height),x.clip());for(var e=[],v=0;va.axisX.dataInfo.viewPortMax&&(!A.connectNullData|| +!da)))if("number"!==typeof Z.y)A.connectNullData||(da||u)||d(),da=!0;else{var oa;oa=0!==a.dataPointYSums[g]?100*(Z.y/a.dataPointYSums[g]):0;f=a.axisX.convertValueToPixel(g);var la=w[g]?w[g]:0;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=q[g]&&a.axisY.logarithmic)continue;k=a.axisY.convertValueToPixel(q[g])}else k=a.axisY.convertValueToPixel(oa),k-=la;h.push({x:f,y:C-la});w[g]=C-k;u||da?(!u&&A.connectNullData?(c.setLineDash&& +(A.options.nullDataLineDashType||t===A.lineDashType&&A.lineDashType!==A.nullDataLineDashType)&&(u=h.pop(),t=h[h.length-1],d(),c.moveTo(p.x,p.y),h.push(t),h.push(u),t=A.nullDataLineDashType,c.setLineDash(Y)),c.lineTo(f,k),r&&x.lineTo(f,k)):(c.beginPath(),c.moveTo(f,k),r&&(x.beginPath(),x.moveTo(f,k))),da=u=!1):(c.lineTo(f,k),r&&x.lineTo(f,k),0==n%250&&(d(),c.moveTo(f,k),r&&x.moveTo(f,k),h.push({x:f,y:C-la})));p={x:f,y:k};nz[n].y===a.axisY.reversed?1:-1,color:e})}}d();c.moveTo(f,k);r&&x.moveTo(f,k)}delete A.dataPointIndexes}ia.drawMarkers(l);r&&(b.drawImage(this._preRenderCanvas,0, +0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(m.x1,m.y1,m.width,m.height),x.restore());c.restore();return{source:b,dest:this.plotArea.ctx,animationCallback:M.xClipAnimation,easingFunction:M.easing.linear,animationBase:0}}}; +p.prototype.renderBubble=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,b=r?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var c=this.plotArea,e=0,g,m;b.save();r&&this._eventManager.ghostCtx.save();b.beginPath();b.rect(c.x1,c.y1,c.width,c.height);b.clip();r&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(c.x1,c.y1,c.width,c.height),this._eventManager.ghostCtx.clip());for(var l=-Infinity,w=Infinity,h=0;ha.axisX.dataInfo.viewPortMax||"undefined"===typeof n[e].z||(f=n[e].z,f>l&&(l=f),fa.axisX.dataInfo.viewPortMax)&&"number"===typeof n[e].y){g=a.axisX.convertValueToPixel(g);m=a.axisY.convertValueToPixel(n[e].y);var f=n[e].z,u=2*Math.max(Math.sqrt((l===w?p/2:k+(p-k)/(l-w)*(f-w))/Math.PI)<<0,1),f=q.getMarkerProperties(e,b);f.size=u;b.globalAlpha=q.fillOpacity;ia.drawMarker(g,m,b,f.type,f.size,f.color,f.borderColor,f.borderThickness);b.globalAlpha=1;var t=q.dataPointIds[e];this._eventManager.objectMap[t]={id:t,objectType:"dataPoint",dataSeriesIndex:s, +dataPointIndex:e,x1:g,y1:m,size:u};u=N(t);r&&ia.drawMarker(g,m,this._eventManager.ghostCtx,f.type,f.size,u,u,f.borderThickness);(n[e].indexLabel||q.indexLabel||n[e].indexLabelFormatter||q.indexLabelFormatter)&&this._indexLabels.push({chartType:"bubble",dataPoint:n[e],dataSeries:q,point:{x:g,y:m},direction:1,bounds:{x1:g-f.size/2,y1:m-f.size/2,x2:g+f.size/2,y2:m+f.size/2},color:null})}r&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&& +b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(c.x1,c.y1,c.width,c.height),this._eventManager.ghostCtx.restore());b.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:M.fadeInAnimation,easingFunction:M.easing.easeInQuad,animationBase:0}}};p.prototype.renderScatter=function(a){var d= +a.targetCanvasCtx||this.plotArea.ctx,b=r?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var c=this.plotArea,e=0,g,m;b.save();r&&this._eventManager.ghostCtx.save();b.beginPath();b.rect(c.x1,c.y1,c.width,c.height);b.clip();r&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(c.x1,c.y1,c.width,c.height),this._eventManager.ghostCtx.clip());for(var l=0;la.axisX.dataInfo.viewPortMax)&&"number"===typeof s[e].y){g=a.axisX.convertValueToPixel(g);m=a.axisY.convertValueToPixel(s[e].y);var f=h.getMarkerProperties(e,g,m,b);b.globalAlpha=h.fillOpacity;ia.drawMarker(f.x,f.y,f.ctx,f.type,f.size,f.color,f.borderColor,f.borderThickness);b.globalAlpha=1;Math.sqrt((q-g)*(q-g)+(n-m)*(n-m))Math.min(this.plotArea.width,this.plotArea.height)||(q=h.dataPointIds[e],this._eventManager.objectMap[q]={id:q,objectType:"dataPoint",dataSeriesIndex:w,dataPointIndex:e,x1:g,y1:m},q=N(q),r&&ia.drawMarker(f.x,f.y,this._eventManager.ghostCtx,f.type,f.size,q,q,f.borderThickness),(s[e].indexLabel||h.indexLabel||s[e].indexLabelFormatter||h.indexLabelFormatter)&&this._indexLabels.push({chartType:"scatter",dataPoint:s[e],dataSeries:h,point:{x:g,y:m},direction:1,bounds:{x1:g-f.size/2,y1:m-f.size/ +2,x2:g+f.size/2,y2:m+f.size/2},color:null}),q=g,n=m)}}}r&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(c.x1,c.y1,c.width,c.height),this._eventManager.ghostCtx.restore()); +b.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:M.fadeInAnimation,easingFunction:M.easing.easeInQuad,animationBase:0}}};p.prototype.renderCandlestick=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,b=r?this._preRenderCtx:d,c=this._eventManager.ghostCtx;if(!(0>=a.dataSeriesIndexes.length)){var e=null,g=null,m=this.plotArea,l=0,w,h,s,q,n,f,e=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,g=this.options.dataPointMaxWidth? +this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.015*this.width,k=a.axisX.dataInfo.minDiff;isFinite(k)||(k=0.3*Math.abs(a.axisX.range));k=this.options.dataPointWidth?this.dataPointWidth:0.7*m.width*(a.axisX.logarithmic?Math.log(k)/Math.log(a.axisX.range):Math.abs(k)/Math.abs(a.axisX.range))<<0;this.dataPointMaxWidth&&e>g&&(e=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,g));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&gg&&(k=g);b.save();r&&c.save();b.beginPath();b.rect(m.x1,m.y1,m.width,m.height);b.clip();r&&(c.beginPath(),c.rect(m.x1,m.y1,m.width,m.height),c.clip());for(var p=0;pa.axisX.dataInfo.viewPortMax)&&!u(C[l].y)&&C[l].y.length&& +"number"===typeof C[l].y[0]&&"number"===typeof C[l].y[1]&&"number"===typeof C[l].y[2]&&"number"===typeof C[l].y[3]){w=a.axisX.convertValueToPixel(f);h=a.axisY.convertValueToPixel(C[l].y[0]);s=a.axisY.convertValueToPixel(C[l].y[1]);q=a.axisY.convertValueToPixel(C[l].y[2]);n=a.axisY.convertValueToPixel(C[l].y[3]);var z=w-k/2<<0,y=z+k<<0,g=t.options.fallingColor?t.fallingColor:t._colorSet[0],e=C[l].color?C[l].color:t._colorSet[0],A=Math.round(Math.max(1,0.15*k)),D=0===A%2?0:0.5,aa=t.dataPointIds[l]; +this._eventManager.objectMap[aa]={id:aa,objectType:"dataPoint",dataSeriesIndex:v,dataPointIndex:l,x1:z,y1:h,x2:y,y2:s,x3:w,y3:q,x4:w,y4:n,borderThickness:A,color:e};b.strokeStyle=e;b.beginPath();b.lineWidth=A;c.lineWidth=Math.max(A,4);"candlestick"===t.type?(b.moveTo(w-D,s),b.lineTo(w-D,Math.min(h,n)),b.stroke(),b.moveTo(w-D,Math.max(h,n)),b.lineTo(w-D,q),b.stroke(),ea(b,z,Math.min(h,n),y,Math.max(h,n),C[l].y[0]<=C[l].y[3]?t.risingColor:g,A,e,x,x,!1,!1,t.fillOpacity),r&&(e=N(aa),c.strokeStyle=e,c.moveTo(w- +D,s),c.lineTo(w-D,Math.min(h,n)),c.stroke(),c.moveTo(w-D,Math.max(h,n)),c.lineTo(w-D,q),c.stroke(),ea(c,z,Math.min(h,n),y,Math.max(h,n),e,0,null,!1,!1,!1,!1))):"ohlc"===t.type&&(b.moveTo(w-D,s),b.lineTo(w-D,q),b.stroke(),b.beginPath(),b.moveTo(w,h),b.lineTo(z,h),b.stroke(),b.beginPath(),b.moveTo(w,n),b.lineTo(y,n),b.stroke(),r&&(e=N(aa),c.strokeStyle=e,c.moveTo(w-D,s),c.lineTo(w-D,q),c.stroke(),c.beginPath(),c.moveTo(w,h),c.lineTo(z,h),c.stroke(),c.beginPath(),c.moveTo(w,n),c.lineTo(y,n),c.stroke())); +(C[l].indexLabel||t.indexLabel||C[l].indexLabelFormatter||t.indexLabelFormatter)&&this._indexLabels.push({chartType:t.type,dataPoint:C[l],dataSeries:t,point:{x:z+(y-z)/2,y:a.axisY.reversed?q:s},direction:1,bounds:{x1:z,y1:Math.min(s,q),x2:y,y2:Math.max(s,q)},color:e})}}r&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas, +0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(m.x1,m.y1,m.width,m.height),c.restore());b.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:M.fadeInAnimation,easingFunction:M.easing.easeInQuad,animationBase:0}}};p.prototype.renderBoxAndWhisker=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,b=r?this._preRenderCtx:d,c=this._eventManager.ghostCtx;if(!(0>=a.dataSeriesIndexes.length)){var e= +null,g=this.plotArea,m=0,l,w,h,s,q,n,f,e=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,m=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.015*this.width,k=a.axisX.dataInfo.minDiff;isFinite(k)||(k=0.3*Math.abs(a.axisX.range));k=this.options.dataPointWidth?this.dataPointWidth:0.7*g.width*(a.axisX.logarithmic?Math.log(k)/Math.log(a.axisX.range):Math.abs(k)/Math.abs(a.axisX.range))<<0;this.dataPointMaxWidth&& +e>m&&(e=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,m));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&mm&&(k=m);b.save();r&&c.save();b.beginPath();b.rect(g.x1,g.y1,g.width,g.height);b.clip();r&&(c.beginPath(),c.rect(g.x1,g.y1,g.width,g.height),c.clip());for(var p=!1,p=!!a.axisY.reversed,v=0;va.axisX.dataInfo.viewPortMax)&&!u(x[m].y)&&x[m].y.length&&"number"===typeof x[m].y[0]&&"number"===typeof x[m].y[1]&&"number"===typeof x[m].y[2]&&"number"===typeof x[m].y[3]&&"number"===typeof x[m].y[4]&&5===x[m].y.length){l=a.axisX.convertValueToPixel(f);w=a.axisY.convertValueToPixel(x[m].y[0]);h=a.axisY.convertValueToPixel(x[m].y[1]);s=a.axisY.convertValueToPixel(x[m].y[2]); +q=a.axisY.convertValueToPixel(x[m].y[3]);n=a.axisY.convertValueToPixel(x[m].y[4]);var y=l-k/2<<0,A=l+k/2<<0,e=x[m].color?x[m].color:C._colorSet[0],D=Math.round(Math.max(1,0.15*k)),aa=0===D%2?0:0.5,T=x[m].whiskerColor?x[m].whiskerColor:x[m].color?C.whiskerColor?C.whiskerColor:x[m].color:C.whiskerColor?C.whiskerColor:e,Y="number"===typeof x[m].whiskerThickness?x[m].whiskerThickness:"number"===typeof C.options.whiskerThickness?C.whiskerThickness:D,ca=x[m].whiskerDashType?x[m].whiskerDashType:C.whiskerDashType, +da=u(x[m].whiskerLength)?u(C.options.whiskerLength)?k:C.whiskerLength:x[m].whiskerLength,da="number"===typeof da?0>=da?0:da>=k?k:da:"string"===typeof da?parseInt(da)*k/100>k?k:parseInt(da)*k/100:k,Z=1===Math.round(Y)%2?0.5:0,oa=x[m].stemColor?x[m].stemColor:x[m].color?C.stemColor?C.stemColor:x[m].color:C.stemColor?C.stemColor:e,la="number"===typeof x[m].stemThickness?x[m].stemThickness:"number"===typeof C.options.stemThickness?C.stemThickness:D,G=1===Math.round(la)%2?0.5:0,F=x[m].stemDashType?x[m].stemDashType: +C.stemDashType,E=x[m].lineColor?x[m].lineColor:x[m].color?C.lineColor?C.lineColor:x[m].color:C.lineColor?C.lineColor:e,H="number"===typeof x[m].lineThickness?x[m].lineThickness:"number"===typeof C.options.lineThickness?C.lineThickness:D,I=x[m].lineDashType?x[m].lineDashType:C.lineDashType,K=1===Math.round(H)%2?0.5:0,L=C.upperBoxColor,O=C.lowerBoxColor,Q=u(C.options.fillOpacity)?1:C.fillOpacity,P=C.dataPointIds[m];this._eventManager.objectMap[P]={id:P,objectType:"dataPoint",dataSeriesIndex:t,dataPointIndex:m, +x1:y,y1:w,x2:A,y2:h,x3:l,y3:s,x4:l,y4:q,y5:n,borderThickness:D,color:e,stemThickness:la,stemColor:oa,whiskerThickness:Y,whiskerLength:da,whiskerColor:T,lineThickness:H,lineColor:E};b.save();0=a.dataSeriesIndexes.length)){var c=null,e=this.plotArea,g=0,m,l,w,g=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth: +1;m=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.03*this.width;var h=a.axisX.dataInfo.minDiff;isFinite(h)||(h=0.3*Math.abs(a.axisX.range));h=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.width*(a.axisX.logarithmic?Math.log(h)/Math.log(a.axisX.range):Math.abs(h)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&g>m&&(g=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,m));!this.dataPointMaxWidth&& +(this.dataPointMinWidth&&mm&&(h=m);b.save();r&&this._eventManager.ghostCtx.save();b.beginPath();b.rect(e.x1,e.y1,e.width,e.height);b.clip();r&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(var s=0;sa.axisX.dataInfo.viewPortMax)&&!u(f[g].y)&&f[g].y.length&&"number"===typeof f[g].y[0]&&"number"===typeof f[g].y[1]){c=a.axisX.convertValueToPixel(w);m=a.axisY.convertValueToPixel(f[g].y[0]);l=a.axisY.convertValueToPixel(f[g].y[1]);var p=a.axisX.reversed?c+a.plotType.totalDataSeries*h/2-(a.previousDataSeriesCount+s)*h<<0:c-a.plotType.totalDataSeries*h/2+(a.previousDataSeriesCount+ +s)*h<<0,v=a.axisX.reversed?p-h<<0:p+h<<0,c=f[g].color?f[g].color:n._colorSet[g%n._colorSet.length];if(m>l){var t=m;m=l;l=t}t=n.dataPointIds[g];this._eventManager.objectMap[t]={id:t,objectType:"dataPoint",dataSeriesIndex:q,dataPointIndex:g,x1:p,y1:m,x2:v,y2:l};ea(b,p,m,v,l,c,0,c,k,k,!1,!1,n.fillOpacity);c=N(t);r&&ea(this._eventManager.ghostCtx,p,m,v,l,c,0,null,!1,!1,!1,!1);if(f[g].indexLabel||n.indexLabel||f[g].indexLabelFormatter||n.indexLabelFormatter)this._indexLabels.push({chartType:"rangeColumn", +dataPoint:f[g],dataSeries:n,indexKeyword:0,point:{x:p+(v-p)/2,y:f[g].y[1]>=f[g].y[0]?l:m},direction:f[g].y[1]>=f[g].y[0]?-1:1,bounds:{x1:p,y1:Math.min(m,l),x2:v,y2:Math.max(m,l)},color:c}),this._indexLabels.push({chartType:"rangeColumn",dataPoint:f[g],dataSeries:n,indexKeyword:1,point:{x:p+(v-p)/2,y:f[g].y[1]>=f[g].y[0]?m:l},direction:f[g].y[1]>=f[g].y[0]?1:-1,bounds:{x1:p,y1:Math.min(m,l),x2:v,y2:Math.max(m,l)},color:c})}}r&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation= +"source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());b.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:M.fadeInAnimation,easingFunction:M.easing.easeInQuad,animationBase:0}}};p.prototype.renderError= +function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,b=r?this._preRenderCtx:d,c=a.axisY._position?"left"===a.axisY._position||"right"===a.axisY._position?!1:!0:!1;if(!(0>=a.dataSeriesIndexes.length)){var e=null,g=!1,m=this.plotArea,l=0,w,h,s,q,n,f,k,p=a.axisX.dataInfo.minDiff;isFinite(p)||(p=0.3*Math.abs(a.axisX.range));b.save();r&&this._eventManager.ghostCtx.save();b.beginPath();b.rect(m.x1,m.y1,m.width,m.height);b.clip();r&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(m.x1, +m.y1,m.width,m.height),this._eventManager.ghostCtx.clip());for(var v=0,t=0;tl&&(e=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,l));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&ll&&(t=l);if(0=T.length?0:T.length>=t?t:T.length:"string"===typeof T.length?parseInt(T.length)*t/100>t?t:parseInt(T.length)*t/100>t:t;T.thickness="number"===typeof T.thickness?0>T.thickness?0:Math.round(T.thickness):2;var Y={color:y[l].stemColor?y[l].stemColor:y[l].color?z.stemColor?z.stemColor:y[l].color:z.stemColor?z.stemColor:e,thickness:y[l].stemThickness?y[l].stemThickness:z.stemThickness,dashType:y[l].stemDashType? +y[l].stemDashType:z.stemDashType};Y.thickness="number"===typeof Y.thickness?0>Y.thickness?0:Math.round(Y.thickness):2;y[l].getTime?k=y[l].x.getTime():k=y[l].x;if(!(ka.axisX.dataInfo.viewPortMax)&&!u(y[l].y)&&y[l].y.length&&"number"===typeof y[l].y[0]&&"number"===typeof y[l].y[1]){var ca=a.axisX.convertValueToPixel(k);c?h=ca:w=ca;ca=a.axisY.convertValueToPixel(y[l].y[0]);c?s=ca:n=ca;ca=a.axisY.convertValueToPixel(y[l].y[1]);c?q=ca:f=ca;c?(n=a.axisX.reversed?h+(A?v: +1)*t/2-(A?D-1:0)*t<<0:h-(A?v:1)*t/2+(A?D-1:0)*t<<0,f=a.axisX.reversed?n-t<<0:n+t<<0):(s=a.axisX.reversed?w+(A?v:1)*t/2-(A?D-1:0)*t<<0:w-(A?v:1)*t/2+(A?D-1:0)*t<<0,q=a.axisX.reversed?s-t<<0:s+t<<0);!c&&n>f&&(ca=n,n=f,f=ca);c&&s>q&&(ca=s,s=q,q=ca);ca=z.dataPointIds[l];this._eventManager.objectMap[ca]={id:ca,objectType:"dataPoint",dataSeriesIndex:x,dataPointIndex:l,x1:Math.min(s,q),y1:Math.min(n,f),x2:Math.max(q,s),y2:Math.max(f,n),isXYSwapped:c,stemProperties:Y,whiskerProperties:T};E(b,Math.min(s,q), +Math.min(n,f),Math.max(q,s),Math.max(f,n),e,T,Y,c);r&&E(this._eventManager.ghostCtx,s,n,q,f,e,T,Y,c);if(y[l].indexLabel||z.indexLabel||y[l].indexLabelFormatter||z.indexLabelFormatter)this._indexLabels.push({chartType:"error",dataPoint:y[l],dataSeries:z,indexKeyword:0,point:{x:c?y[l].y[1]>=y[l].y[0]?s:q:s+(q-s)/2,y:c?n+(f-n)/2:y[l].y[1]>=y[l].y[0]?f:n},direction:y[l].y[1]>=y[l].y[0]?-1:1,bounds:{x1:c?Math.min(s,q):s,y1:c?n:Math.min(n,f),x2:c?Math.max(s,q):q,y2:c?f:Math.max(n,f)},color:e,axisSwapped:c}), +this._indexLabels.push({chartType:"error",dataPoint:y[l],dataSeries:z,indexKeyword:1,point:{x:c?y[l].y[1]>=y[l].y[0]?q:s:s+(q-s)/2,y:c?n+(f-n)/2:y[l].y[1]>=y[l].y[0]?n:f},direction:y[l].y[1]>=y[l].y[0]?1:-1,bounds:{x1:c?Math.min(s,q):s,y1:c?n:Math.min(n,f),x2:c?Math.max(s,q):q,y2:c?f:Math.max(n,f)},color:e,axisSwapped:c})}}}r&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height), +a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(m.x1,m.y1,m.width,m.height),this._eventManager.ghostCtx.restore());b.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:M.fadeInAnimation,easingFunction:M.easing.easeInQuad,animationBase:0}}};p.prototype.renderRangeBar=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,b=r?this._preRenderCtx: +d;if(!(0>=a.dataSeriesIndexes.length)){var c=null,e=this.plotArea,g=0,m,l,w,h,g=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1;m=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.height,0.9*(this.plotArea.height/a.plotType.totalDataSeries))<<0;var s=a.axisX.dataInfo.minDiff;isFinite(s)||(s=0.3*Math.abs(a.axisX.range));s=this.options.dataPointWidth?this.dataPointWidth:0.9* +(e.height*(a.axisX.logarithmic?Math.log(s)/Math.log(a.axisX.range):Math.abs(s)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&g>m&&(g=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,m));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&mm&&(s=m);b.save();r&&this._eventManager.ghostCtx.save();b.beginPath();b.rect(e.x1,e.y1,e.width,e.height);b.clip();r&&(this._eventManager.ghostCtx.beginPath(), +this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(var q=0;qa.axisX.dataInfo.viewPortMax)&&!u(k[g].y)&&k[g].y.length&&"number"===typeof k[g].y[0]&&"number"===typeof k[g].y[1]){m=a.axisY.convertValueToPixel(k[g].y[0]); +l=a.axisY.convertValueToPixel(k[g].y[1]);w=a.axisX.convertValueToPixel(h);w=a.axisX.reversed?w+a.plotType.totalDataSeries*s/2-(a.previousDataSeriesCount+q)*s<<0:w-a.plotType.totalDataSeries*s/2+(a.previousDataSeriesCount+q)*s<<0;var v=a.axisX.reversed?w-s<<0:w+s<<0;m>l&&(c=m,m=l,l=c);c=k[g].color?k[g].color:f._colorSet[g%f._colorSet.length];ea(b,m,w,l,v,c,0,null,p,!1,!1,!1,f.fillOpacity);c=f.dataPointIds[g];this._eventManager.objectMap[c]={id:c,objectType:"dataPoint",dataSeriesIndex:n,dataPointIndex:g, +x1:m,y1:w,x2:l,y2:v};c=N(c);r&&ea(this._eventManager.ghostCtx,m,w,l,v,c,0,null,!1,!1,!1,!1);if(k[g].indexLabel||f.indexLabel||k[g].indexLabelFormatter||f.indexLabelFormatter)this._indexLabels.push({chartType:"rangeBar",dataPoint:k[g],dataSeries:f,indexKeyword:0,point:{x:k[g].y[1]>=k[g].y[0]?m:l,y:w+(v-w)/2},direction:k[g].y[1]>=k[g].y[0]?-1:1,bounds:{x1:Math.min(m,l),y1:w,x2:Math.max(m,l),y2:v},color:c}),this._indexLabels.push({chartType:"rangeBar",dataPoint:k[g],dataSeries:f,indexKeyword:1,point:{x:k[g].y[1]>= +k[g].y[0]?l:m,y:w+(v-w)/2},direction:k[g].y[1]>=k[g].y[0]?1:-1,bounds:{x1:Math.min(m,l),y1:w,x2:Math.max(m,l),y2:v},color:c})}}}r&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(e.x1, +e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());b.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:M.fadeInAnimation,easingFunction:M.easing.easeInQuad,animationBase:0}}};p.prototype.renderRangeArea=function(a){function d(){if(C){var a=null;0=a.dataSeriesIndexes.length)){var e=this._eventManager.ghostCtx,g=[],m=this.plotArea;c.save();r&&e.save();c.beginPath();c.rect(m.x1,m.y1,m.width,m.height);c.clip();r&&(e.beginPath(),e.rect(m.x1,m.y1,m.width,m.height),e.clip());for(var l=0;la.axisX.dataInfo.viewPortMax&&(!s.connectNullData||!T)))if(null!==q[f].y&&q[f].y.length&&"number"===typeof q[f].y[0]&&"number"===typeof q[f].y[1]){k=a.axisX.convertValueToPixel(t);p=a.axisY.convertValueToPixel(q[f].y[0]);u=a.axisY.convertValueToPixel(q[f].y[1]);n||T?(s.connectNullData&&!n?(c.setLineDash&&(s.options.nullDataLineDashType||A===s.lineDashType&&s.lineDashType!==s.nullDataLineDashType)&&(w[w.length- +1].newLineDashArray=D,A=s.nullDataLineDashType,c.setLineDash(z)),c.lineTo(k,p),r&&e.lineTo(k,p),w.push({x:k,y:u})):(c.beginPath(),c.moveTo(k,p),C={x:k,y:p},w=[],w.push({x:k,y:u}),r&&(e.beginPath(),e.moveTo(k,p))),T=n=!1):(c.lineTo(k,p),w.push({x:k,y:u}),r&&e.lineTo(k,p),0==f%250&&d());t=s.dataPointIds[f];this._eventManager.objectMap[t]={id:t,objectType:"dataPoint",dataSeriesIndex:h,dataPointIndex:f,x1:k,y1:p,y2:u};fq[f].y[1]===a.axisY.reversed?-1:1,color:x}),this._indexLabels.push({chartType:"rangeArea",dataPoint:q[f],dataSeries:s,indexKeyword:1,point:{x:k, +y:u},direction:q[f].y[0]>q[f].y[1]===a.axisY.reversed?1:-1,color:x})}else T||n||d(),T=!0;d();ia.drawMarkers(g)}}r&&(b.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(m.x1,m.y1, +m.width,m.height),this._eventManager.ghostCtx.restore());c.restore();return{source:b,dest:this.plotArea.ctx,animationCallback:M.xClipAnimation,easingFunction:M.easing.linear,animationBase:0}}};p.prototype.renderRangeSplineArea=function(a){function d(a,b){var d=v(u,2);if(0=a.dataSeriesIndexes.length)){var e=this._eventManager.ghostCtx,g=[],m=this.plotArea;c.save();r&&e.save();c.beginPath();c.rect(m.x1,m.y1,m.width,m.height);c.clip();r&&(e.beginPath(),e.rect(m.x1,m.y1,m.width, +m.height),e.clip());for(var l=0;la.axisX.dataInfo.viewPortMax&&(!h.connectNullData||!f)))if(null!==k[q].y&&k[q].y.length&&"number"===typeof k[q].y[0]&&"number"===typeof k[q].y[1]){n=a.axisX.convertValueToPixel(n);f=a.axisY.convertValueToPixel(k[q].y[0]);p=a.axisY.convertValueToPixel(k[q].y[1]);var E=h.dataPointIds[q];this._eventManager.objectMap[E]={id:E,objectType:"dataPoint",dataSeriesIndex:w,dataPointIndex:q, +x1:n,y1:f,y2:p};u[u.length]={x:n,y:f};z[z.length]={x:n,y:p};q=a.dataSeriesIndexes.length)){var c=this._eventManager.ghostCtx,e=null,g=this.plotArea,m=0,l,k,h,s,q=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),m=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1;k=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.width,0.9*(this.plotArea.width/a.plotType.totalDataSeries))<<0;var n= +a.axisX.dataInfo.minDiff;isFinite(n)||(n=0.3*Math.abs(a.axisX.range));n=this.options.dataPointWidth?this.dataPointWidth:0.6*(g.width*(a.axisX.logarithmic?Math.log(n)/Math.log(a.axisX.range):Math.abs(n)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&m>k&&(m=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,k));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&kk&&(n=k);b.save();r&&this._eventManager.ghostCtx.save();b.beginPath();b.rect(g.x1,g.y1,g.width,g.height);b.clip();r&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(g.x1,g.y1,g.width,g.height),this._eventManager.ghostCtx.clip());for(var f=0;fh&&(e=k,k=h,h=e);a.axisY.reversed&&(e=k,k=h,h=e);e=u.dataPointIds[m];this._eventManager.objectMap[e]={id:e,objectType:"dataPoint",dataSeriesIndex:p,dataPointIndex:m,x1:l,y1:k,x2:F,y2:h}; +var T=v[m].color?v[m].color:0v[m].y===a.axisY.reversed?1:-1,bounds:{x1:l,y1:Math.min(k,h),x2:F,y2:Math.max(k,h)},color:e})}}r&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height), +b.clearRect(g.x1,g.y1,g.width,g.height),this._eventManager.ghostCtx.restore());b.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:M.fadeInAnimation,easingFunction:M.easing.easeInQuad,animationBase:0}}};var ja=function(a,d,b,c,e,g,m,l,k){if(!(0>b)){"undefined"===typeof l&&(l=1);if(!r){var h=Number((m%(2*Math.PI)).toFixed(8));Number((g%(2*Math.PI)).toFixed(8))===h&&(m-=1E-4)}a.save();a.globalAlpha=l;"pie"===e?(a.beginPath(),a.moveTo(d.x,d.y),a.arc(d.x,d.y,b,g,m,!1),a.fillStyle=c,a.strokeStyle= +"white",a.lineWidth=2,a.closePath(),a.fill()):"doughnut"===e&&(a.beginPath(),a.arc(d.x,d.y,b,g,m,!1),0<=k&&a.arc(d.x,d.y,k*b,m,g,!0),a.closePath(),a.fillStyle=c,a.strokeStyle="white",a.lineWidth=2,a.fill());a.globalAlpha=1;a.restore()}};p.prototype.renderPie=function(a){function d(){if(h&&s){for(var a=0,b=0,c=0,e=0,d=0;dMath.PI/2-t&&m.midAngle +m.midAngle)c=d;a++}else if(m.midAngle>3*Math.PI/2-t&&m.midAngle<3*Math.PI/2+t){if(0===b||f[e].midAngle>m.midAngle)e=d;b++}m.hemisphere=g>Math.PI/2&&g<=3*Math.PI/2?"left":"right";m.indexLabelTextBlock=new ka(k.plotArea.ctx,{fontSize:m.indexLabelFontSize,fontFamily:m.indexLabelFontFamily,fontColor:m.indexLabelFontColor,fontStyle:m.indexLabelFontStyle,fontWeight:m.indexLabelFontWeight,horizontalAlign:"left",backgroundColor:m.indexLabelBackgroundColor,maxWidth:m.indexLabelMaxWidth,maxHeight:m.indexLabelWrap? +5*m.indexLabelFontSize:1.5*m.indexLabelFontSize,text:m.indexLabelText,padding:0,textBaseline:"top"});m.indexLabelTextBlock.measureText()}l=g=0;q=!1;for(d=0;dMath.PI/2-t&&m.midAngle3*Math.PI/2-t&&m.midAngle<3*Math.PI/2+t)&&(l<=b/2&&!q?(m.hemisphere="left",l++):(m.hemisphere="right",q=!0))}}function b(a){var b= +k.plotArea.ctx;b.clearRect(n.x1,n.y1,n.width,n.height);b.fillStyle=k.backgroundColor;b.fillRect(n.x1,n.y1,n.width,n.height);for(b=0;bc){var d=0.07*A*Math.cos(f[b].midAngle),g=0.07*A*Math.sin(f[b].midAngle),m=!1;if(s[b].exploded){if(1E-9a.indexLabelTextBlock.y?d-e:c-f}function e(a){for(var b=null,e=1;ec(f[b],f[a])||("right"===f[a].hemisphere?f[b].indexLabelTextBlock.y>=f[a].indexLabelTextBlock.y:f[b].indexLabelTextBlock.y<=f[a].indexLabelTextBlock.y)))break;else b=null;return b}function g(a,b,d){d=(d||0)+1;if(1E3< +d)return 0;b=b||0;var m=0,h=x.y-1*r,l=x.y+1*r;if(0<=a&&ab&&n.indexLabelTextBlock.yl)return 0;var k=0,q=0,q=k=k=0;0>b?n.indexLabelTextBlock.y-n.indexLabelTextBlock.height/2>h&&n.indexLabelTextBlock.y-n.indexLabelTextBlock.height/2+bl&&(b=n.indexLabelTextBlock.y+ +n.indexLabelTextBlock.height/2+b-l);b=n.indexLabelTextBlock.y+b;h=0;h="right"===n.hemisphere?x.x+Math.sqrt(Math.pow(r,2)-Math.pow(b-x.y,2)):x.x-Math.sqrt(Math.pow(r,2)-Math.pow(b-x.y,2));q=x.x+A*Math.cos(n.midAngle);k=x.y+A*Math.sin(n.midAngle);k=Math.sqrt(Math.pow(h-q,2)+Math.pow(b-k,2));q=Math.acos(A/r);k=Math.acos((r*r+A*A-k*k)/(2*A*r));b=kc(f[h],f[a])||("right"===f[a].hemisphere?f[h].indexLabelTextBlock.y<=f[a].indexLabelTextBlock.y:f[h].indexLabelTextBlock.y>=f[a].indexLabelTextBlock.y)))break;else h=null;q=h;k=e(a);l=h=0;0>b?(l="right"===n.hemisphere?q:k,m=b,null!==l&&(q=-b,b=n.indexLabelTextBlock.y-n.indexLabelTextBlock.height/2-(f[l].indexLabelTextBlock.y+f[l].indexLabelTextBlock.height/2),b-q+h.toFixed(C)&&(m=b>p?-(b-p):-(q-(l-h)))))):0p?b-p:q-(h-l)))));m&&(d=n.indexLabelTextBlock.y+m,b=0,b="right"===n.hemisphere?x.x+Math.sqrt(Math.pow(r,2)-Math.pow(d-x.y,2)):x.x-Math.sqrt(Math.pow(r,2)-Math.pow(d-x.y,2)),n.midAngle>Math.PI/2-t&&n.midAngleh.indexLabelTextBlock.x?b=h.indexLabelTextBlock.x-15:"right"===n.hemisphere&&("left"===a.hemisphere&&b3*Math.PI/2-t&&n.midAngle<3*Math.PI/2+t&&(h=(a-1+f.length)%f.length,h=f[h],a=f[(a+1+f.length)%f.length],"right"===n.hemisphere&&"left"===h.hemisphere&&ba.indexLabelTextBlock.x)&&(b=a.indexLabelTextBlock.x- +15)),n.indexLabelTextBlock.y=d,n.indexLabelTextBlock.x=b,n.indexLabelAngle=Math.atan2(n.indexLabelTextBlock.y-x.y,n.indexLabelTextBlock.x-x.x))}return m}function m(){var a=k.plotArea.ctx;a.fillStyle="grey";a.strokeStyle="grey";a.font="16px Arial";a.textBaseline="middle";for(var b=a=0,d=0,m=!0,b=0;10>b&&(1>b||0z){for(var E=u=0,H=0;Hu?l.indexLabelText="":l.indexLabelTextBlock.maxWidth=0.85*u,0.3*l.indexLabelTextBlock.maxWidthd&&(d=y)),y=y=0,0d&&(d=y)));var K=function(a, +b,c){for(var e=[],d=0;e.push(f[b]),b!==c;b=(b+1+s.length)%s.length);e.sort(function(a,b){return a.y-b.y});for(b=0;bz){n=t.indexLabelTextBlock.x;var k=t.indexLabelTextBlock.y-t.indexLabelTextBlock.height/ +2,w=t.indexLabelTextBlock.y+t.indexLabelTextBlock.height/2,p=h.indexLabelTextBlock.y-h.indexLabelTextBlock.height/2,u=h.indexLabelTextBlock.x+h.indexLabelTextBlock.width,r=h.indexLabelTextBlock.y+h.indexLabelTextBlock.height/2;n=t.indexLabelTextBlock.x+t.indexLabelTextBlock.widthu+q||k>r+q||wa&&(a=l),m!==a&&(b=m,d+=-z),0===l%Math.max(s.length/10,3)&&(g=!0)):g=!0;g&&(0=a.dataSeriesIndexes.length)){var h= +this.data[a.dataSeriesIndexes[0]],s=h.dataPoints,q=10,n=this.plotArea,f=h.dataPointEOs,p=2,r,v=1.3,t=20/180*Math.PI,C=6,x={x:(n.x2+n.x1)/2,y:(n.y2+n.y1)/2},z=0;a=!1;for(var y=0;ya&&(e=a,d=!0);var g=s[b].color?s[b].color:h._colorSet[b%h._colorSet.length];e>c&&ja(k.plotArea.ctx, +f[b].center,f[b].radius,g,h.type,c,e,h.fillOpacity,f[b].percentInnerRadius);if(d)break}l()},function(){k.disableToolTip=!1;k._animator.animate(0,k.animatedRender?500:0,function(a){b(a);l()})})}}};var ra=function(a,d,b,c){"undefined"===typeof b&&(b=1);0>=Math.round(d.y4-d.y1)||(a.save(),a.globalAlpha=b,a.beginPath(),a.moveTo(Math.round(d.x1),Math.round(d.y1)),a.lineTo(Math.round(d.x2),Math.round(d.y2)),a.lineTo(Math.round(d.x3),Math.round(d.y3)),a.lineTo(Math.round(d.x4),Math.round(d.y4)),"undefined"!== +d.x5&&(a.lineTo(Math.round(d.x5),Math.round(d.y5)),a.lineTo(Math.round(d.x6),Math.round(d.y6))),a.closePath(),a.fillStyle=c?c:d.color,a.fill(),a.globalAplha=1,a.restore())};p.prototype.renderFunnel=function(a){function d(){for(var a=0,b=[],c=0;ck?(k=c,m=(b+k)*(d-h)/2,a-=m,n=d-h,h+=d-h,n+=0==k?0:a/k,h+=a/k,m=!0):(n=(Math.abs(ba)*b-Math.sqrt(k))/2,k=b-2*n/Math.abs(ba),h+=n,h>d&&(h-=n, +k=c,m=(b+k)*(d-h)/2,a-=m,n=d-h,h+=d-h,n+=a/k,h+=a/k,m=!0),b=k)),e.push(n);return e}function c(){if(t&&C){for(var a,b,c,e,d,g,l,h,m,n,k,q,s,w,p=[],B=[],x={percent:null,total:null},v=null,y=0;yp[y]&&(p[y]=y!==fa?t.reversed?P[y].x3-P[y].x4:P[y].x2-P[y].x1:P[y].x2-P[y].x1,p[y]/=2));s=b.indexLabelMaxWidth?b.indexLabelMaxWidth:t.options.indexLabelMaxWidth?t.indexLabelMaxWidth:p[y];if(s>p[y]||0>s)s=p[y];B[y]="inside"===t.indexLabelPlacement?P[y].height:!1;x=z.getPercentAndTotal(t,b);if(t.indexLabelFormatter||b.indexLabelFormatter)v={chart:z.options,dataSeries:t,dataPoint:b,total:x.total,percent:x.percent};b=b.indexLabelFormatter?b.indexLabelFormatter(v):b.indexLabel? +z.replaceKeywordsWithValue(b.indexLabel,b,t,y):t.indexLabelFormatter?t.indexLabelFormatter(v):t.indexLabel?z.replaceKeywordsWithValue(t.indexLabel,b,t,y):b.label?b.label:"";0>=n&&(n=0);1E3>s&&1E3-sl?l:t.indexLabelMaxWidth:l,h=J.length-1;0<=h;h--){g=C[J[h].id];c=J[h];e=c.textBlock;b=(a=n(h)b.y&&(d=!0);c=g.indexLabelMaxWidth||l;if(c>l||0>c)c=l;f.push(c)}if(d)for(h=J.length-1;0<=h;h--)a=P[h],J[h].textBlock.maxWidth= +f[f.length-(h+1)],J[h].textBlock.measureText(),J[h].textBlock.x=L-l,c=J[h].textBlock.heightpa+D&&(J[h].textBlock.y=pa+D-J[h].height),J[h].textBlock.ywa+D&&(J[h].textBlock.y=wa+D-J[h].height))}function g(){var a,b,c,e;if("inside"!==t.indexLabelPlacement)for(var d=0;dDa?f(c).x2+1:(a.x2+a.x3)/2+1:(a.x2+a.x3)/2+1:"undefined"!==typeof a.x5?cpa+D&&(J[d].textBlock.y=pa+D-J[d].height),J[d].textBlock.ywa+D&&(J[d].textBlock.y=wa+D-J[d].height)));else for(d=0;d=c?(b=d!=fa?(a.x4+a.x3)/2-e/2:(a.x5+a.x4)/2-e/2,c=d!=fa?(a.y1+a.y3)/2-c/2:(a.y1+a.y4)/2-c/2,J[d].textBlock.x=b, +J[d].textBlock.y=c):J[d].isDirty=!0)}function m(){function a(b,c){var d;if(0>b||b>=J.length)return 0;var e,f=J[b].textBlock;if(0>c){c*=-1;e=q(b);d=l(e,b);if(d>=c)return f.y-=c,c;if(0==b)return 0=c)return f.y+=c,c;if(b==P.length-1)return 0e)&&(l=n(s),!(l>=J.length-1)&&J[s].textBlock.y+J[s].height+ga>J[l].textBlock.y&&(J[s].textBlock.y=J[s].textBlock.y+J[s].height-e>e-J[s].textBlock.y?e+1:e-J[s].height-1))}for(l=P.length-1;0e&&(e=0,J[e].isDirty))break;if(J[l].textBlock.y=f){f=0;h+=J[f].height;break}e=q(f); +if(0>e){f=0;h+=J[f].height;break}}if(f!=l){g=J[f].textBlock.y;a-=g;a=h-a;g=c(a,d,f);break}}}return g}function c(a,b,d){var e=[],f=0,g=0;for(a=Math.abs(a);d<=b;d++)e.push(P[d]);e.sort(function(a,b){return a.height-b.height});for(d=0;d+m.y.toFixed(6))&&(d=g.y+d+ga-m.y,e=a(w,-d),ea?t.reversed?wa-D:pa-D:J[a].textBlock.y+J[a].height+ga)}function k(a,b,c){var d,e,f,l=[],m=D,n=[];-1!==b&&(0<=W.indexOf(b)?(e=W.indexOf(b),W.splice(e,1)):(W.push(b),W=W.sort(function(a,b){return a-b})));if(0===W.length)l= +ia;else{e=D*(1!=W.length||0!=W[0]&&W[0]!=P.length-1?2:1)/h();for(var q=0;qn&&(n*=-1),c.y1+=b-n[d],c.y2+=b-n[d],c.y3+=b-n[d],c.y4+=b-n[d],c.y5&&(c.y5+=b-n[d],c.y6+=b-n[d]),n[d]=b}};a._animator.animate(0,c,function(c){var d=a.plotArea.ctx||a.ctx;ja=!0;d.clearRect(x.x1,x.y1,x.x2-x.x1,x.y2-x.y1);d.fillStyle=a.backgroundColor;d.fillRect(x.x1,x.y1,x.width,x.height);w.changeSection(c,b);var e={};e.dataSeries=t;e.dataPoint=t.reversed?t.dataPoints[C.length-1-b]:t.dataPoints[b];e.index=t.reversed?C.length-1-b:b;a.toolTip.highlightObjects([e]); +for(e=0;ea){b=P[c];break}return b?(a=b.y6?a>b.y6?b.x3+(b.x4-b.x3)/(b.y4-b.y3)*(a-b.y3):b.x2+(b.x3-b.x2)/(b.y3-b.y2)*(a-b.y2):b.x2+(b.x3-b.x2)/(b.y3-b.y2)*(a-b.y2), +{x1:a,x2:a}):-1}function p(a){for(var b=0;b=a.dataSeriesIndexes.length)){for(var t=this.data[a.dataSeriesIndexes[0]],C=t.dataPoints,x=this.plotArea,D=0.025*x.width,y=0.01*x.width,A=0,F=x.height-2*D,E=Math.min(x.width-2*y,2.8*x.height),H=!1,I=0;IF?N=F:0>=N&&(N=0),G>a?G=a-0.5:0>=G&&(G=0)):"pyramid"===t.type&&(G=N=0,t.reversed=t.reversed?!1:!0);var y=I+a/2,$=I,V=I+a,pa=t.reversed?Z:O,K=y-G/2,ea=y+G/2,Da=t.reversed?O+N:Z- +N,wa=t.reversed?O:Z;a=[];var y=[],P=[],E=[],X=O,fa,ba=(Da-pa)/(K-$),ha=-ba,I="area"===(t.valueRepresents?t.valueRepresents:"height")?b():d();if(-1!==I){if(t.reversed)for(E.push(X),G=I.length-1;0a&&(A=a));for(G=0;G\n');c.document.close();setTimeout(function(){c.focus();c.print();setTimeout(function(){b._canvasJSContainer.removeChild(d)},1E3)},500)};p.prototype.getPercentAndTotal=function(a,d){var b=null,c=null, +e=null;if(0<=a.type.indexOf("stacked"))c=0,b=d.x.getTime?d.x.getTime():d.x,b in a.plotUnit.yTotals&&(c=a.plotUnit.yTotals[b],e=isNaN(d.y)?0:100*(d.y/c));else if("pie"===a.type||"doughnut"===a.type||"funnel"===a.type||"pyramid"===a.type){for(b=c=0;b=m||"undefined"=== +typeof m||0>=v||"undefined"===typeof v)){if("horizontal"===this.orientation){n.textBlock=new ka(this.ctx,{x:0,y:0,maxWidth:v,maxHeight:this.itemWrap?m:this.lineHeight,angle:0,text:n.text,horizontalAlign:"left",fontSize:this.fontSize,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontColor:this.fontColor,fontStyle:this.fontStyle,textBaseline:"middle"});n.textBlock.measureText();null!==this.itemWidth&&(n.textBlock.width=this.itemWidth-(r+l+("line"===n.chartType||"spline"===n.chartType||"stepLine"=== +n.chartType?2*0.1*this.lineHeight:0)));if(!q||q.width+Math.round(n.textBlock.width+r+l+(0===q.width?0:this.horizontalSpacing)+("line"===n.chartType||"spline"===n.chartType||"stepLine"===n.chartType?2*0.1*this.lineHeight:0))>g)q={items:[],width:0},h.push(q),this.height+=f,f=0;f=Math.max(f,n.textBlock.height)}else n.textBlock=new ka(this.ctx,{x:0,y:0,maxWidth:x,maxHeight:!0===this.itemWrap?m:1.5*this.fontSize,angle:0,text:n.text,horizontalAlign:"left",fontSize:this.fontSize,fontFamily:this.fontFamily, +fontWeight:this.fontWeight,fontColor:this.fontColor,fontStyle:this.fontStyle,textBaseline:"middle"}),n.textBlock.measureText(),null!==this.itemWidth&&(n.textBlock.width=this.itemWidth-(r+l+("line"===n.chartType||"spline"===n.chartType||"stepLine"===n.chartType?2*0.1*this.lineHeight:0))),this.height>0,0),this.dataPoints.length):0):(s=this.dataPoints[this.dataPoints.length-1].x-this.dataPoints[0].x,s=0>0,0),this.dataPoints.length):0));for(;;){g=0a?c.x/a:a/c.x: +Math.abs(c.x-a);qs-e&&s+e>=this.dataPoints.length)break;-1===m?(e++,m=1):m=-1}return d||b.dataPoint.x!==a?d&&null!==b.dataPoint?b:null:b};F.prototype.getDataPointAtXY=function(a,d,b){if(!this.dataPoints||0===this.dataPoints.length||athis.chart.plotArea.x2||dthis.chart.plotArea.y2)return null;b=b||!1;var c=[],e=0,g=0,m=1,l=!1,k=Infinity, +h=0,s=0,q=0;if("none"!==this.chart.plotInfo.axisPlacement)if(q=(this.chart.axisX[0]?this.chart.axisX[0]:this.chart.axisX2[0]).getXValueAt({x:a,y:d}),this.axisX.logarithmic)var n=Math.log(this.dataPoints[this.dataPoints.length-1].x/this.dataPoints[0].x),q=1>0,0),this.dataPoints.length):0;else n=this.dataPoints[this.dataPoints.length-1].x-this.dataPoints[0].x,q=0> +0,0),this.dataPoints.length):0;for(;;){g=0=n.x1&&(a<=n.x2&&d>=n.y1&&d<=n.y2)&&(c.push({dataPoint:f,dataPointIndex:g,dataSeries:this,distance:Math.min(Math.abs(n.x1- +a),Math.abs(n.x2-a),Math.abs(n.y1-d),Math.abs(n.y2-d))}),l=!0);break;case "line":case "stepLine":case "spline":case "area":case "stepArea":case "stackedArea":case "stackedArea100":case "splineArea":case "scatter":var u=na("markerSize",f,this)||4,r=b?20:u,p=Math.sqrt(Math.pow(n.x1-a,2)+Math.pow(n.y1-d,2));p<=r&&c.push({dataPoint:f,dataPointIndex:g,dataSeries:this,distance:p});n=Math.abs(n.x1-a);n<=k?k=n:0r&&(p=Math.atan2(d-u.y,a-u.x),0>p&&(p+=2*Math.PI),p=Number(((180*(p/Math.PI)%360+360)%360).toFixed(12)),u=Number(((180*(n.startAngle/Math.PI)%360+360)%360).toFixed(12)),r=Number(((180*(n.endAngle/Math.PI)%360+360)%360).toFixed(12)),0===r&&1=r&&0!==f.y&&(r+=360,pu&&pp.y1&&dp.y6?(g=p.x6+(p.x5-p.x6)/(p.y5-p.y6)*(d-p.y6),p=p.x3+(p.x4-p.x3)/(p.y4-p.y3)*(d-p.y3)):(g=p.x1+(p.x6-p.x1)/(p.y6-p.y1)*(d-p.y1),p=p.x2+(p.x3-p.x2)/(p.y3-p.y2)*(d-p.y2)):(g=p.x1+(p.x4-p.x1)/(p.y4-p.y1)*(d-p.y1),p=p.x2+(p.x3-p.x2)/(p.y3-p.y2)*(d-p.y2)),a>g&&a=n.x1-n.borderThickness/2&&a<=n.x2+n.borderThickness/2&&d>=n.y4-n.borderThickness/2&&d<=n.y1+n.borderThickness/ +2||Math.abs(n.x2-a+n.x1-a)=n.y1&&d<=n.y4)c.push({dataPoint:f,dataPointIndex:g,dataSeries:this,distance:Math.min(Math.abs(n.x1-a),Math.abs(n.x2-a),Math.abs(n.y2-d),Math.abs(n.y3-d))}),l=!0;break;case "candlestick":if(a>=n.x1-n.borderThickness/2&&a<=n.x2+n.borderThickness/2&&d>=n.y2-n.borderThickness/2&&d<=n.y3+n.borderThickness/2||Math.abs(n.x2-a+n.x1-a)=n.y1&&d<=n.y4)c.push({dataPoint:f,dataPointIndex:g,dataSeries:this,distance:Math.min(Math.abs(n.x1-a), +Math.abs(n.x2-a),Math.abs(n.y2-d),Math.abs(n.y3-d))}),l=!0;break;case "ohlc":if(Math.abs(n.x2-a+n.x1-a)=n.y2&&d<=n.y3||a>=n.x1&&a<=(n.x2+n.x1)/2&&d>=n.y1-n.borderThickness/2&&d<=n.y1+n.borderThickness/2||a>=(n.x1+n.x2)/2&&a<=n.x2&&d>=n.y4-n.borderThickness/2&&d<=n.y4+n.borderThickness/2)c.push({dataPoint:f,dataPointIndex:g,dataSeries:this,distance:Math.min(Math.abs(n.x1-a),Math.abs(n.x2-a),Math.abs(n.y2-d),Math.abs(n.y3-d))}),l=!0}if(l||1E3q-e&&q+e>= +this.dataPoints.length)break;-1===m?(e++,m=1):m=-1}a=null;for(d=0;dq[f].endValue;f++);a=f=q[f].startValue&&b<=q[f].endValue;p=b;a||(a=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.options,value:p,label:this.labels[p]?this.labels[p]:null}):"axisX"===this.type&&this.labels[p]?this.labels[p]:ba(p,this.valueFormatString,this.chart._cultureInfo),a=new ka(this.ctx,{x:0,y:0,maxWidth:g,maxHeight:m,angle:this.labelAngle,text:this.prefix+a+this.suffix,backgroundColor:this.labelBackgroundColor,borderColor:this.labelBorderColor,borderThickness:this.labelBorderThickness,cornerRadius:this.labelCornerRadius, +horizontalAlign:"left",fontSize:this.labelFontSize,fontFamily:this.labelFontFamily,fontWeight:this.labelFontWeight,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle,textBaseline:"middle",borderThickness:0}),this._labels.push({position:p,textBlock:a,effectiveHeight:null}))}f=n;for(b=this.intervalStartPosition;b<=e;b=parseFloat(1E-12>this.interval?this.logarithmic&&this.equidistantInterval?b*Math.pow(this.logarithmBase,this.interval):b+this.interval:(this.logarithmic&&this.equidistantInterval? +b*Math.pow(this.logarithmBase,this.interval):b+this.interval).toFixed(12))){for(;fq[f].endValue;f++);a=f=q[f].startValue&&b<=q[f].endValue;p=b;a||(a=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.options,value:p,label:this.labels[p]?this.labels[p]:null}):"axisX"===this.type&&this.labels[p]?this.labels[p]:ba(p,this.valueFormatString,this.chart._cultureInfo),a=new ka(this.ctx,{x:0,y:0,maxWidth:g,maxHeight:m,angle:this.labelAngle,text:this.prefix+a+this.suffix, +horizontalAlign:"left",backgroundColor:this.labelBackgroundColor,borderColor:this.labelBorderColor,borderThickness:this.labelBorderThickness,cornerRadius:this.labelCornerRadius,fontSize:this.labelFontSize,fontFamily:this.labelFontFamily,fontWeight:this.labelFontWeight,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle,textBaseline:"middle"}),this._labels.push({position:p,textBlock:a,effectiveHeight:null}))}}else for(this.intervalStartPosition=this.getLabelStartPoint(new Date(this.viewportMinimum), +this.intervalType,this.interval),e=Ya(new Date(this.viewportMaximum),this.interval,this.intervalType),f=n,b=this.intervalStartPosition;bq[f].endValue;f++);p=a;a=f=q[f].startValue&&a<=q[f].endValue;a||(a=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.options,value:new Date(p),label:this.labels[p]?this.labels[p]:null}):"axisX"===this.type&&this.labels[p]?this.labels[p]:Ca(p,this.valueFormatString,this.chart._cultureInfo), +a=new ka(this.ctx,{x:0,y:0,maxWidth:g,backgroundColor:this.labelBackgroundColor,borderColor:this.labelBorderColor,borderThickness:this.labelBorderThickness,cornerRadius:this.labelCornerRadius,maxHeight:m,angle:this.labelAngle,text:this.prefix+a+this.suffix,horizontalAlign:"left",fontSize:this.labelFontSize,fontFamily:this.labelFontFamily,fontWeight:this.labelFontWeight,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle,textBaseline:"middle"}),this._labels.push({position:p,textBlock:a,effectiveHeight:null, +breaksLabelType:void 0}))}if("bottom"===this._position||"top"===this._position)l=this.logarithmic&&!this.equidistantInterval&&2<=this._labels.length?this.lineCoordinates.width*Math.log(Math.min(this._labels[this._labels.length-1].position/this._labels[this._labels.length-2].position,this._labels[1].position/this._labels[0].position))/Math.log(this.range):this.lineCoordinates.width/(this.logarithmic&&this.equidistantInterval?Math.log(this.range)/Math.log(this.logarithmBase):Math.abs(this.range))*S[this.intervalType+ +"Duration"]*this.interval,g="undefined"===typeof this.options.labelMaxWidth?0.5*this.chart.width>>0:this.options.labelMaxWidth,this.chart.panEnabled||(m="undefined"===typeof this.options.labelWrap||this.labelWrap?0.8*this.chart.height>>0:1.5*this.labelFontSize);else if("left"===this._position||"right"===this._position)l=this.logarithmic&&!this.equidistantInterval&&2<=this._labels.length?this.lineCoordinates.height*Math.log(Math.min(this._labels[this._labels.length-1].position/this._labels[this._labels.length- +2].position,this._labels[1].position/this._labels[0].position))/Math.log(this.range):this.lineCoordinates.height/(this.logarithmic&&this.equidistantInterval?Math.log(this.range)/Math.log(this.logarithmBase):Math.abs(this.range))*S[this.intervalType+"Duration"]*this.interval,this.chart.panEnabled||(g="undefined"===typeof this.options.labelMaxWidth?0.3*this.chart.width>>0:this.options.labelMaxWidth),m="undefined"===typeof this.options.labelWrap||this.labelWrap?0.3*this.chart.height>>0:1.5*this.labelFontSize; +for(c=0;cthis.labelAngle?this.labelAngle-=180:270<=this.labelAngle&&360>=this.labelAngle&&(this.labelAngle-=360)),"bottom"===this._position||"top"===this._position)if(g=0.9*l>>0,n=0,!this.chart.panEnabled&&1<=this._labels.length){this.sessionVariables.labelFontSize= +this.labelFontSize;this.sessionVariables.labelMaxWidth=g;this.sessionVariables.labelMaxHeight=m;this.sessionVariables.labelAngle=this.labelAngle;this.sessionVariables.labelWrap=this.labelWrap;for(b=0;bn&&(v=b,n=p.width)}b=0;for(b=this.intervalStartPosition< +this.viewportMinimum?1:0;b>0>2*g&&(this.sessionVariables.labelAngle=-25)):(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth,this.sessionVariables.labelAngle=this.sessionVariables.labelMaxWidth>g?-25:this.sessionVariables.labelAngle):u(this.options.labelMaxWidth)?(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxHeight=m,this.sessionVariables.labelMaxWidth= +g,B.width+d.width>>0>2*g&&(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxWidth=p)):(this.sessionVariables.labelAngle=this.sessionVariables.labelMaxWidth>g?-25:this.sessionVariables.labelAngle,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth,this.sessionVariables.labelMaxHeight=m,this.sessionVariables.labelWrap=this.labelWrap);else{if(u(this.options.labelWrap))if(!u(this.options.labelMaxWidth))this.options.labelMaxWidth>0,f=this.labelFontSize,nq&&(q=c-2*g,c>=2*g&&c<2.2*g?(this.sessionVariables.labelMaxWidth=g,u(this.options.labelFontSize)&&12=2.2*g&&c<2.8*g?(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxWidth=p,this.sessionVariables.labelFontSize=f):c>=2.8*g&&c<3.2*g?(this.sessionVariables.labelMaxWidth=Math.max(g,n),this.sessionVariables.labelWrap=!0,u(this.options.labelFontSize)&&12=3.2*g&&c<3.6*g?(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelWrap=!0,this.sessionVariables.labelMaxWidth=p,this.sessionVariables.labelFontSize=this.labelFontSize):c>3.6*g&&c<5*g?(u(this.options.labelFontSize)&&125*g&&(this.sessionVariables.labelWrap=!0,this.sessionVariables.labelMaxWidth=g,this.sessionVariables.labelFontSize=f,this.sessionVariables.labelMaxHeight=m,this.sessionVariables.labelAngle=this.labelAngle));else if(v===b&&(0===v&&n+this._labels[v+1].textBlock.measureText().width-2*g>q||v===this._labels.length-1&&n+this._labels[v-1].textBlock.measureText().width-2*g>q||0q&&n+this._labels[v-1].textBlock.measureText().width- +2*g>q))q=0===v?n+this._labels[v+1].textBlock.measureText().width-2*g:n+this._labels[v-1].textBlock.measureText().width-2*g,this.sessionVariables.labelFontSize=u(this.options.labelFontSize)?f:this.options.labelFontSize,this.sessionVariables.labelWrap=!0,this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxWidth=p;else if(0===q)for(this.sessionVariables.labelFontSize=u(this.options.labelFontSize)?f:this.options.labelFontSize,this.sessionVariables.labelWrap=!0,c=0;c>0>2*g&&(this.sessionVariables.labelAngle=-25))}else(this.sessionVariables.labelAngle=this.labelAngle,this.sessionVariables.labelMaxHeight=0===this.labelAngle?m:Math.min((c-g*Math.cos(Math.PI/180*Math.abs(this.labelAngle)))/ +Math.sin(Math.PI/180*Math.abs(this.labelAngle)),c),p=0!=this.labelAngle?(h-(k+a.fontSize/2)*Math.cos(Math.PI/180*Math.abs(this.labelAngle)))/Math.sin(Math.PI/180*Math.abs(this.labelAngle)):g,this.sessionVariables.labelMaxHeight=m=this.labelWrap?(h-p*Math.sin(Math.PI/180*Math.abs(this.labelAngle)))/Math.cos(Math.PI/180*Math.abs(this.labelAngle)):1.5*this.labelFontSize,u(this.options.labelWrap))?u(this.options.labelWrap)&&(this.labelWrap&&!u(this.options.labelMaxWidth)?(this.sessionVariables.labelWrap= +this.labelWrap,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth?this.options.labelMaxWidth:p,this.sessionVariables.labelMaxHeight=m):(this.sessionVariables.labelAngle=this.labelAngle,this.sessionVariables.labelMaxWidth=p,this.sessionVariables.labelMaxHeight=c<0.9*l?0.9*l:c,this.sessionVariables.labelWrap=this.labelWrap)):(this.options.labelWrap?(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth?this.options.labelMaxWidth:p): +(u(this.options.labelMaxWidth),this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth?this.options.labelMaxWidth:p,this.sessionVariables.labelWrap=this.labelWrap),this.sessionVariables.labelMaxHeight=m)}for(c=0;c>0:this.options.labelMaxWidth,m="undefined"===typeof this.options.labelWrap||this.labelWrap?0.3*this.chart.height>>0:1.5*this.labelFontSize,!this.chart.panEnabled&&1<=this._labels.length){this.sessionVariables.labelFontSize=this.labelFontSize;this.sessionVariables.labelMaxWidth= +g;this.sessionVariables.labelMaxHeight=m;this.sessionVariables.labelAngle=u(this.sessionVariables.labelAngle)?0:this.sessionVariables.labelAngle;this.sessionVariables.labelWrap=this.labelWrap;for(b=0;b>0,l-2*m>n&&(n=l-2*m,l>=2*m&&l<2.4*m?(u(this.options.labelFontSize)&&12=2.4*m&&l<2.8*m?(this.sessionVariables.labelMaxHeight=c,this.sessionVariables.labelFontSize=this.labelFontSize,this.sessionVariables.labelWrap=!0):l>=2.8*m&&l<3.2*m?(this.sessionVariables.labelMaxHeight=m,this.sessionVariables.labelWrap=!0,u(this.options.labelFontSize)&&12< +this.labelFontSize&&(this.labelFontSize=Math.floor(12/13*this.labelFontSize),a.measureText()),this.sessionVariables.labelFontSize=u(this.options.labelFontSize)?this.labelFontSize:this.options.labelFontSize,this.sessionVariables.labelAngle=u(this.sessionVariables.labelAngle)?0:this.sessionVariables.labelAngle):l>=3.2*m&&l<3.6*m?(this.sessionVariables.labelMaxHeight=c,this.sessionVariables.labelWrap=!0,this.sessionVariables.labelFontSize=this.labelFontSize):l>3.6*m&&l<10*m?(u(this.options.labelFontSize)&& +1210*m&&l<50*m&&(u(this.options.labelFontSize)&&12this.options.labelMaxWidth:this.sessionVariables.labelMaxWidth,this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxHeight=c):(this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth?this.options.labelMaxWidth:g,this.sessionVariables.labelMaxHeight=0===this.labelAngle?m:c,u(this.options.labelMaxWidth)&& +(this.sessionVariables.labelAngle=this.labelAngle))):this.options.labelWrap?(this.sessionVariables.labelMaxHeight=0===this.labelAngle?m:c,this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxWidth=g):(this.sessionVariables.labelMaxHeight=m,u(this.options.labelMaxWidth),this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth?this.options.labelMaxWidth:this.sessionVariables.labelMaxWidth,this.sessionVariables.labelWrap=this.labelWrap)}for(c=0;c>0:1.5*this.labelFontSize;if("left"===this._position||"right"===this._position)z=u(g.options.labelWrap)?this.sessionVariables.labelMaxHeight:g.labelWrap?0.8*this.chart.width>>0:1.5*this.labelFontSize;u(g.labelBackgroundColor)&&(g.labelBackgroundColor="#EEEEEE")}else m="bottom"===this._position||"top"===this._position?0.9*this.chart.width>>0:0.9*this.chart.height>> +0,z=u(g.options.labelWrap)||g.labelWrap?"bottom"===this._position||"top"===this._position?0.8*this.chart.width>>0:0.8*this.chart.height>>0:1.5*this.labelFontSize,u(g.labelBackgroundColor)&&(u(g.startValue)&&0!==g.startValue?g.labelBackgroundColor=r?"transparent":null:g.labelBackgroundColor="#EEEEEE");a=new ka(this.ctx,{x:0,y:0,backgroundColor:g.labelBackgroundColor,borderColor:g.labelBorderColor,borderThickness:g.labelBorderThickness,cornerRadius:g.labelCornerRadius,maxWidth:g.options.labelMaxWidth? +g.options.labelMaxWidth:m,maxHeight:z,angle:this.labelAngle,text:g.labelFormatter?g.labelFormatter({chart:this.chart,axis:this,stripLine:g}):g.label,horizontalAlign:"left",fontSize:"outside"===g.labelPlacement?g.options.labelFontSize?g.labelFontSize:this.labelFontSize:g.labelFontSize,fontFamily:"outside"===g.labelPlacement?g.options.labelFontFamily?g.labelFontFamily:this.labelFontFamily:g.labelFontFamily,fontWeight:"outside"===g.labelPlacement?g.options.labelFontWeight?g.labelFontWeight:this.labelFontWeight: +g.labelFontWeight,fontColor:g.labelFontColor||g.color,fontStyle:"outside"===g.labelPlacement?g.options.labelFontStyle?g.labelFontStyle:this.fontWeight:g.labelFontStyle,textBaseline:"middle"});this._stripLineLabels.push({position:g.value,textBlock:a,effectiveHeight:null,stripLine:g})}};z.prototype.createLabelsAndCalculateWidth=function(){var a=0,d=0;this._labels=[];this._stripLineLabels=[];var b=this.chart.isNavigator?0:5;if("left"===this._position||"right"===this._position){this.createLabels();for(d= +0;d=this.viewportMinimum&&this._stripLineLabels[d].stripLine.value<=this.viewportMaximum)&& +(c=this._stripLineLabels[d].textBlock,e=c.measureText(),g=0===this.labelAngle?e.width:e.width*Math.cos(Math.PI/180*Math.abs(this.labelAngle))+(e.height-c.fontSize/2)*Math.sin(Math.PI/180*Math.abs(this.labelAngle)),a=this.viewportMinimum&&this._stripLineLabels[b].stripLine.value<=this.viewportMaximum)&&(d=this._stripLineLabels[b].textBlock,e=d.measureText(),g=0===this.labelAngle?e.height:e.width*Math.sin(Math.PI/180*Math.abs(this.labelAngle))+(e.height-d.fontSize/2)*Math.cos(Math.PI/180*Math.abs(this.labelAngle)),an[f].viewportMaximum);v++)r[v].endValue=n[f].viewPortMinimum&&(n[f].scaleBreaks.lastBreakIndex=v));for(var z=v=0,t=0,C=0,x=0,D=0,y=0,A,E,F=l=0,H,I,L,r=H=I=L=!1,f=0;fv;){var G=0,R=0,S=0,U=0,W=e=0,K=0,$=0,V=0,X=0,P=0,ba=0;if(b&& +0p.width- +q?p.width-q:g.x2-ba-$);if(a&&0p.width-q?p.width-q:g.x2-ba-$),a[f]._labels&&1k&&(l+=0a[f].labelAngle?A-zk&&(l=E+t/2-k-ba),A-za[f].labelAngle&&0p.width-q?p.width-q:g.x2-ba-$),d[f].lineCoordinates.width=Math.abs(k-m),d[f]._labels&&1v;){V=U=R=S=$=K=W=e=Q=O=G=X=0;if(a&&0p.width-10?p.width-10:g.x2-V-W),b[f].labelAutoFit&&!u(C)&&(0b[f].labelAngle?Math.max(m,C):0===b[f].labelAngle? +Math.max(m,C/2):m),0c[f].chart.width-10?c[f].chart.width-10:g.x2-V-W),c[f]&& +c[f].labelAutoFit&&!u(D)&&(0b[f].chart.height-10?b[f].chart.height-10:g.y2),b[f].lineCoordinates.y1=l-(q[f]+b[f].margin+ +X),b[f].lineCoordinates.y2=l-(q[f]+b[f].margin+X),b[f].bounds={x1:m,y1:l-(q[f]+X+b[f].margin),x2:k,y2:h-(X+b[f].margin),width:k-m,height:q[f]},b[f].title&&(b[f]._titleTextBlock.maxWidth=0p.height-Math.max(K,10)?p.height-Math.max(K,10):g.y2-S):g.y2>p.height-Math.max(K,10)?p.height-Math.max(K,10):g.y2;if(b&&0b[K].labelAngle?Math.max(k,C):0===b[K].labelAngle?Math.max(k,C/2):k,m=0>b[K].labelAngle||0===b[K].labelAngle?k-U:m);if(c&&0p.height-Math.max(K,10)?p.height-Math.max(K,10):g.y2-S):g.y2>p.height-Math.max(K,10)?p.height-Math.max(K,10):g.y2;if(b&&0b[K].labelAngle?Math.max(k,C):0===b[K].labelAngle?Math.max(k,C/2):k,m=0>b[K].labelAngle||0=== +b[K].labelAngle?k-V:m);if(c&&0d[g].spacing?0:Math.abs(d[g].spacing/b),this.logarithmic&&(d[g].size=Math.pow(this.logarithmBase,d[g].size))};z.prototype.calculateBreaksInPixels=function(){if(!(this.scaleBreaks&&0>=this.scaleBreaks._appliedBreaks.length)){var a=this.scaleBreaks?this.scaleBreaks._appliedBreaks:[];a.length&&(this.scaleBreaks.firstBreakIndex=this.scaleBreaks.lastBreakIndex=null);for(var d=0;dthis.conversionParameters.maximum);d++)a[d].endValue< +this.conversionParameters.minimum||(u(this.scaleBreaks.firstBreakIndex)&&(this.scaleBreaks.firstBreakIndex=d),a[d].startValue>=this.conversionParameters.minimum&&(a[d].startPixel=this.convertValueToPixel(a[d].startValue),this.scaleBreaks.lastBreakIndex=d),a[d].endValue<=this.conversionParameters.maximum&&(a[d].endPixel=this.convertValueToPixel(a[d].endValue)))}};z.prototype.renderLabelsTicksAndTitle=function(){var a=this,d=!1,b=0,c=0,e=1,g=0;0!==this.labelAngle&&360!==this.labelAngle&&(e=1.2);if("undefined"=== +typeof this.options.interval){if("bottom"===this._position||"top"===this._position)if(this.logarithmic&&!this.equidistantInterval&&this.labelAutoFit){for(var b=[],e=0!==this.labelAngle&&360!==this.labelAngle?1:1.2,m,l=this.viewportMaximum,k=this.lineCoordinates.width/Math.log(this.range),h=this._labels.length-1;0<=h;h--){q=this._labels[h];if(q.positionthis.viewportMaximum||!(h===this._labels.length-1||mthis.lineCoordinates.width*e&&this.labelAutoFit&&(d=!0)}if("left"===this._position||"right"===this._position)if(this.logarithmic&& +!this.equidistantInterval&&this.labelAutoFit){for(var b=[],p,l=this.viewportMaximum,k=this.lineCoordinates.height/Math.log(this.range),h=this._labels.length-1;0<=h;h--){q=this._labels[h];if(q.positionthis.viewportMaximum||!(h===this._labels.length-1||pthis.lineCoordinates.height*e&&this.labelAutoFit&&(d=!0)}}this.logarithmic&&(!this.equidistantInterval&&this.labelAutoFit)&&this._labels.sort(function(a,b){return a.position-b.position});var h=0,q,n;if("bottom"===this._position){for(h=0;hthis.viewportMaximum||d&&0!==g++%2&&this.labelAutoFit)||(n=this.getPixelCoordinatesOnAxis(q.position),this.tickThickness&&"inside"!=this.labelPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor,c=1===this.ctx.lineWidth%2?(n.x<<0)+0.5:n.x<<0,this.ctx.beginPath(),this.ctx.moveTo(c,n.y<<0),this.ctx.lineTo(c,n.y+this.tickLength<<0),this.ctx.stroke()),0===q.textBlock.angle?(n.x-=q.textBlock.width/2,n.y="inside"===this.labelPlacement? +n.y-(this.tickLength+q.textBlock.fontSize/2):n.y+this.tickLength+q.textBlock.fontSize/2):(n.x="inside"===this.labelPlacement?0>this.labelAngle?n.x:n.x-q.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):n.x-(0>this.labelAngle?q.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):0),n.y="inside"===this.labelPlacement?0>this.labelAngle?n.y-this.tickLength-5:n.y-this.tickLength-Math.abs(q.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)+5):n.y+this.tickLength+Math.abs(0>this.labelAngle?q.textBlock.width* +Math.sin(Math.PI/180*this.labelAngle)-5:5)),q.textBlock.x=n.x,q.textBlock.y=n.y);"inside"===this.labelPlacement&&this.chart.addEventListener("dataAnimationIterationEnd",function(){for(h=0;ha.viewportMaximum||d&&0!==g++%2&&a.labelAutoFit)&&(n=a.getPixelCoordinatesOnAxis(q.position),a.tickThickness)){a.ctx.lineWidth=a.tickThickness;a.ctx.strokeStyle=a.tickColor;var b=1===a.ctx.lineWidth%2?(n.x<<0)+0.5:n.x<<0;a.ctx.save(); +a.ctx.beginPath();a.ctx.moveTo(b,n.y<<0);a.ctx.lineTo(b,n.y-a.tickLength<<0);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.lineCoordinates.x1+this.lineCoordinates.width/2-this._titleTextBlock.width/2,this._titleTextBlock.y=this.bounds.y2-this._titleTextBlock.height-3,this.titleMaxWidth=this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}else if("top"===this._position){for(h=0;hthis.viewportMaximum||d&&0!==g++%2&&this.labelAutoFit)||(n=this.getPixelCoordinatesOnAxis(q.position),this.tickThickness&&"inside"!=this.labelPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor,c=1===this.ctx.lineWidth%2?(n.x<<0)+0.5:n.x<<0,this.ctx.beginPath(),this.ctx.moveTo(c,n.y<<0),this.ctx.lineTo(c,n.y-this.tickLength<<0),this.ctx.stroke()),0===q.textBlock.angle?(n.x-=q.textBlock.width/2,n.y="inside"===this.labelPlacement? +n.y+this.labelFontSize/2+this.tickLength+5:n.y-(this.tickLength+q.textBlock.height-q.textBlock.fontSize/2)):(n.x="inside"===this.labelPlacement?0a.viewportMaximum||d&&0!==g++%2&&a.labelAutoFit)&& +(n=a.getPixelCoordinatesOnAxis(q.position),a.tickThickness)){a.ctx.lineWidth=a.tickThickness;a.ctx.strokeStyle=a.tickColor;var b=1===this.ctx.lineWidth%2?(n.x<<0)+0.5:n.x<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(b,n.y<<0);a.ctx.lineTo(b,n.y+a.tickLength<<0);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.lineCoordinates.x1+this.lineCoordinates.width/2-this._titleTextBlock.width/2,this._titleTextBlock.y=this.bounds.y1+1,this.titleMaxWidth= +this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}else if("left"===this._position){for(h=0;hthis.viewportMaximum||d&&0!==g++%2&&this.labelAutoFit)||(n=this.getPixelCoordinatesOnAxis(q.position),this.tickThickness&&"inside"!=this.labelPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor,c=1===this.ctx.lineWidth%2?(n.y<<0)+0.5:n.y<<0,this.ctx.beginPath(),this.ctx.moveTo(n.x<< +0,c),this.ctx.lineTo(n.x-this.tickLength<<0,c),this.ctx.stroke()),0===this.labelAngle?(q.textBlock.y=n.y,q.textBlock.x="inside"===this.labelPlacement?n.x+this.tickLength+5:n.x-q.textBlock.width*Math.cos(Math.PI/180*this.labelAngle)-this.tickLength-5):(q.textBlock.y="inside"===this.labelPlacement?n.y:n.y-q.textBlock.width*Math.sin(Math.PI/180*this.labelAngle),q.textBlock.x="inside"===this.labelPlacement?n.x+this.tickLength+5:0a.viewportMaximum||d&&0!==g++%2&&a.labelAutoFit)&&(n=a.getPixelCoordinatesOnAxis(q.position),a.tickThickness)){a.ctx.lineWidth=a.tickThickness; +a.ctx.strokeStyle=a.tickColor;var b=1===a.ctx.lineWidth%2?(n.y<<0)+0.5:n.y<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(n.x<<0,b);a.ctx.lineTo(n.x+a.tickLength<<0,b);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.bounds.x1+1,this._titleTextBlock.y=this.lineCoordinates.height/2+this._titleTextBlock.width/2+this.lineCoordinates.y1,this.titleMaxWidth=this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}else if("right"=== +this._position){for(h=0;hthis.viewportMaximum||d&&0!==g++%2&&this.labelAutoFit)||(n=this.getPixelCoordinatesOnAxis(q.position),this.tickThickness&&"inside"!=this.labelPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor,c=1===this.ctx.lineWidth%2?(n.y<<0)+0.5:n.y<<0,this.ctx.beginPath(),this.ctx.moveTo(n.x<<0,c),this.ctx.lineTo(n.x+this.tickLength<<0,c),this.ctx.stroke()),0===this.labelAngle? +(q.textBlock.y=n.y,q.textBlock.x="inside"===this.labelPlacement?n.x-q.textBlock.width-this.tickLength-5:n.x+this.tickLength+5):(q.textBlock.y="inside"===this.labelPlacement?n.y-q.textBlock.width*Math.sin(Math.PI/180*this.labelAngle):0>this.labelAngle?n.y:n.y-(q.textBlock.height-q.textBlock.fontSize/2-5)*Math.cos(Math.PI/180*this.labelAngle),q.textBlock.x="inside"===this.labelPlacement?n.x-q.textBlock.width*Math.cos(Math.PI/180*this.labelAngle)-this.tickLength-5:0a.viewportMaximum||d&&0!==g++%2&&a.labelAutoFit)&&(n=a.getPixelCoordinatesOnAxis(q.position),a.tickThickness)){a.ctx.lineWidth=a.tickThickness;a.ctx.strokeStyle=a.tickColor;var b=1===a.ctx.lineWidth%2?(n.y<< +0)+0.5:n.y<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(n.x<<0,b);a.ctx.lineTo(n.x-a.tickLength<<0,b);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.bounds.x2-1,this._titleTextBlock.y=this.lineCoordinates.height/2-this._titleTextBlock.width/2+this.lineCoordinates.y1,this.titleMaxWidth=this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}g=0;if("inside"===this.labelPlacement)this.chart.addEventListener("dataAnimationIterationEnd", +function(){for(h=0;ha.viewportMaximum||d&&0!==g++%2&&a.labelAutoFit)||(a.ctx.save(),a.ctx.beginPath(),q.textBlock.render(!0),a.ctx.restore())},this);else for(h=0;hthis.viewportMaximum||d&&0!==g++%2&&this.labelAutoFit)||q.textBlock.render(!0)};z.prototype.renderInterlacedColors=function(){var a=this.chart.plotArea.ctx,d,b,c=this.chart.plotArea, +e=0;d=!0;if(("bottom"===this._position||"top"===this._position)&&this.interlacedColor)for(a.fillStyle=this.interlacedColor,e=0;ethis._labels.length-1?this.getPixelCoordinatesOnAxis(this.viewportMaximum):this.getPixelCoordinatesOnAxis(this._labels[e+1].position),a.fillRect(Math.min(b.x,d.x),c.y1,Math.abs(b.x-d.x),Math.abs(c.y1-c.y2)),d=!1):d=!0;else if(("left"===this._position||"right"===this._position)&&this.interlacedColor)for(a.fillStyle= +this.interlacedColor,e=0;ethis._labels.length-1?this.getPixelCoordinatesOnAxis(this.viewportMaximum):this.getPixelCoordinatesOnAxis(this._labels[e+1].position),a.fillRect(c.x1,Math.min(b.y,d.y),Math.abs(c.x1-c.x2),Math.abs(d.y-b.y)),d=!1):d=!0;a.beginPath()};z.prototype.renderStripLinesOfThicknessType=function(a){if(this.stripLines&&0this.viewportMaximum||u(h.value)||isNaN(this.range))||l.push(h))}for(c=0;cthis.viewportMaximum||isNaN(this.range))){a=this.getPixelCoordinatesOnAxis(b.position);if("outside"===b.stripLine.labelPlacement)if(h&&(this.ctx.strokeStyle= +h.color,"pixel"===h._thicknessType&&(this.ctx.lineWidth=h.thickness)),"bottom"===this._position){var p=1===this.ctx.lineWidth%2?(a.x<<0)+0.5:a.x<<0;this.ctx.beginPath();this.ctx.moveTo(p,a.y<<0);this.ctx.lineTo(p,a.y+this.tickLength<<0);this.ctx.stroke();0===this.labelAngle?(a.x-=b.textBlock.width/2,a.y+=this.tickLength+b.textBlock.fontSize/2):(a.x-=0>this.labelAngle?b.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):0,a.y+=this.tickLength+Math.abs(0>this.labelAngle?b.textBlock.width*Math.sin(Math.PI/ +180*this.labelAngle)-5:5))}else"top"===this._position?(p=1===this.ctx.lineWidth%2?(a.x<<0)+0.5:a.x<<0,this.ctx.beginPath(),this.ctx.moveTo(p,a.y<<0),this.ctx.lineTo(p,a.y-this.tickLength<<0),this.ctx.stroke(),0===this.labelAngle?(a.x-=b.textBlock.width/2,a.y-=this.tickLength+b.textBlock.height):(a.x+=(b.textBlock.height-this.tickLength-this.labelFontSize/2)*Math.sin(Math.PI/180*this.labelAngle)-(0this.labelAngle?a.y:a.y-(b.textBlock.height-b.textBlock.fontSize/ +2-5)*Math.cos(Math.PI/180*this.labelAngle),a.x=0this.chart.plotArea.x1?u(h.startValue)?a.x-=b.textBlock.height-b.textBlock.fontSize/ +2:a.x-=b.textBlock.height/2-b.textBlock.fontSize/2+3:(b.textBlock.angle=90,u(h.startValue)?a.x+=b.textBlock.height-b.textBlock.fontSize/2:a.x+=b.textBlock.height/2-b.textBlock.fontSize/2+3),a.y=-90===b.textBlock.angle?"near"===b.stripLine.labelAlign?this.chart.plotArea.y2-3:"center"===b.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1+b.textBlock.width)/2:this.chart.plotArea.y1+b.textBlock.width+3:"near"===b.stripLine.labelAlign?this.chart.plotArea.y2-b.textBlock.width-3:"center"=== +b.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1-b.textBlock.width)/2:this.chart.plotArea.y1+3):"top"===this._position?(b.textBlock.maxWidth=this.options.stripLines[c].labelMaxWidth?this.options.stripLines[c].labelMaxWidth:this.chart.plotArea.height-3,b.textBlock.measureText(),a.x-b.textBlock.height>this.chart.plotArea.x1?u(h.startValue)?a.x-=b.textBlock.height-b.textBlock.fontSize/2:a.x-=b.textBlock.height/2-b.textBlock.fontSize/2+3:(b.textBlock.angle=90,u(h.startValue)?a.x+= +b.textBlock.height-b.textBlock.fontSize/2:a.x+=b.textBlock.height/2-b.textBlock.fontSize/2+3),a.y=-90===b.textBlock.angle?"near"===b.stripLine.labelAlign?this.chart.plotArea.y1+b.textBlock.width+3:"center"===b.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1+b.textBlock.width)/2:this.chart.plotArea.y2-3:"near"===b.stripLine.labelAlign?this.chart.plotArea.y1+3:"center"===b.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1-b.textBlock.width)/2:this.chart.plotArea.y2- +b.textBlock.width-3):"left"===this._position?(b.textBlock.maxWidth=this.options.stripLines[c].labelMaxWidth?this.options.stripLines[c].labelMaxWidth:this.chart.plotArea.width-3,b.textBlock.angle=0,b.textBlock.measureText(),a.y-b.textBlock.height>this.chart.plotArea.y1?u(h.startValue)?a.y-=b.textBlock.height-b.textBlock.fontSize/2:a.y-=b.textBlock.height/2-b.textBlock.fontSize+3:a.y-b.textBlock.heightthis.chart.plotArea.y1? +u(h.startValue)?a.y-=b.textBlock.height-b.textBlock.fontSize/2:a.y-=b.textBlock.height/2-b.textBlock.fontSize/2-3:a.y-b.textBlock.heightthis.viewportMaximum|| +isNaN(this.range))||a[d].render(this.maskCtx);this.maskCtx.restore()}};z.prototype.renderCrosshair=function(a,d){this.crosshair.render(a,d)};z.prototype.renderGrid=function(){if(this.gridThickness&&0this.viewportMaximum||this._labels[c].breaksLabelType)||(a.beginPath(),d=this.getPixelCoordinatesOnAxis(this._labels[c].position),d=1===a.lineWidth%2?(d.x<<0)+0.5:d.x<<0,a.moveTo(d,b.y1<<0),a.lineTo(d,b.y2<<0),a.stroke());else if("left"===this._position||"right"===this._position)for(var c=0;cthis.viewportMaximum||this._labels[c].breaksLabelType)||(a.beginPath(), +d=this.getPixelCoordinatesOnAxis(this._labels[c].position),d=1===a.lineWidth%2?(d.y<<0)+0.5:d.y<<0,a.moveTo(b.x1<<0,d),a.lineTo(b.x2<<0,d),a.stroke());a.restore()}};z.prototype.renderAxisLine=function(){var a=this.chart.ctx,d=r?this.chart._preRenderCtx:a,b=Math.ceil(this.tickThickness/(this.reversed?-2:2)),c=Math.ceil(this.tickThickness/(this.reversed?2:-2)),e,g;d.save();if("bottom"===this._position||"top"===this._position){if(this.lineThickness){this.reversed?(e=this.lineCoordinates.x2,g=this.lineCoordinates.x1): +(e=this.lineCoordinates.x1,g=this.lineCoordinates.x2);d.lineWidth=this.lineThickness;d.strokeStyle=this.lineColor?this.lineColor:"black";d.setLineDash&&d.setLineDash(R(this.lineDashType,this.lineThickness));var m=1===this.lineThickness%2?(this.lineCoordinates.y1<<0)+0.5:this.lineCoordinates.y1<<0;d.beginPath();if(this.scaleBreaks&&!u(this.scaleBreaks.firstBreakIndex))if(u(this.scaleBreaks.lastBreakIndex))e=this.scaleBreaks._appliedBreaks[this.scaleBreaks.firstBreakIndex].endPixel+c;else for(var l= +this.scaleBreaks.firstBreakIndex;l<=this.scaleBreaks.lastBreakIndex;l++)d.moveTo(e,m),d.lineTo(this.scaleBreaks._appliedBreaks[l].startPixel+b,m),e=this.scaleBreaks._appliedBreaks[l].endPixel+c;e&&(d.moveTo(e,m),d.lineTo(g,m));d.stroke()}}else if(("left"===this._position||"right"===this._position)&&this.lineThickness){this.reversed?(e=this.lineCoordinates.y1,g=this.lineCoordinates.y2):(e=this.lineCoordinates.y2,g=this.lineCoordinates.y1);d.lineWidth=this.lineThickness;d.strokeStyle=this.lineColor; +d.setLineDash&&d.setLineDash(R(this.lineDashType,this.lineThickness));m=1===this.lineThickness%2?(this.lineCoordinates.x1<<0)+0.5:this.lineCoordinates.x1<<0;d.beginPath();if(this.scaleBreaks&&!u(this.scaleBreaks.firstBreakIndex))if(u(this.scaleBreaks.lastBreakIndex))e=this.scaleBreaks._appliedBreaks[this.scaleBreaks.firstBreakIndex].endPixel+b;else for(l=this.scaleBreaks.firstBreakIndex;l<=this.scaleBreaks.lastBreakIndex;l++)d.moveTo(m,e),d.lineTo(m,this.scaleBreaks._appliedBreaks[l].startPixel+c), +e=this.scaleBreaks._appliedBreaks[l].endPixel+b;e&&(d.moveTo(m,e),d.lineTo(m,g));d.stroke()}r&&(a.drawImage(this.chart._preRenderCanvas,0,0,this.chart.width,this.chart.height),this.chart._breaksCanvasCtx&&this.chart._breaksCanvasCtx.drawImage(this.chart._preRenderCanvas,0,0,this.chart.width,this.chart.height),d.clearRect(0,0,this.chart.width,this.chart.height));d.restore()};z.prototype.getPixelCoordinatesOnAxis=function(a){var d={};if("bottom"===this._position||"top"===this._position)d.x=this.convertValueToPixel(a), +d.y=this.lineCoordinates.y1;if("left"===this._position||"right"===this._position)d.y=this.convertValueToPixel(a),d.x=this.lineCoordinates.x2;return d};z.prototype.convertPixelToValue=function(a){if("undefined"===typeof a)return null;var d=0,b=0,c,d=!0,e=this.scaleBreaks?this.scaleBreaks._appliedBreaks:[],b="number"===typeof a?a:"left"===this._position||"right"===this._position?a.y:a.x;if(this.logarithmic){a=c=Math.pow(this.logarithmBase,(b-this.conversionParameters.reference)/this.conversionParameters.pixelPerUnit); +if(b<=this.conversionParameters.reference===("left"===this._position||"right"===this._position)!==this.reversed)for(b=0;be[b].startValue/this.conversionParameters.minimum){c/=e[b].startValue/this.conversionParameters.minimum;if(ce[b].startValue/e[b-1].endValue){c/=e[b].startValue/e[b-1].endValue;if(cthis.conversionParameters.minimum))if(d)if(e[b].endValue>this.conversionParameters.minimum){if(1e[b].startValue){a=Math.pow(e[b].endValue/e[b].startValue,Math.log(c)/Math.log(e[b].size));break}else a*=e[b].startValue/this.conversionParameters.minimum*Math.pow(e[b].size,Math.log(e[b].startValue/this.conversionParameters.minimum)/Math.log(e[b].endValue/e[b].startValue))*c,c*=Math.pow(e[b].size,Math.log(this.conversionParameters.minimum/e[b].startValue)/Math.log(e[b].endValue/e[b].startValue));d=!1}else if(c1/e[b].size){a*=Math.pow(e[b].endValue/e[b].startValue,1>=e[b].size?1:Math.log(c)/Math.log(e[b].size))*c;break}else a/=e[b].endValue/e[b].startValue/e[b].size;c*=e[b].size;d=!1}else break;else if(c1/e[b].size){a*=Math.pow(e[b].endValue/e[b].startValue,1>=e[b].size?1:Math.log(c)/Math.log(e[b].size))*c;break}else a/=e[b].endValue/e[b].startValue/e[b].size;c*=e[b].size}else break; +d=a*this.viewportMinimum}else{a=c=(b-this.conversionParameters.reference)/this.conversionParameters.pixelPerUnit;if(b<=this.conversionParameters.reference===("left"===this._position||"right"===this._position)!==this.reversed)for(b=0;b=e[b].size?0:c*(e[b].endValue- +e[b].startValue)/e[b].size;break}else a+=e[b].endValue-this.conversionParameters.minimum-e[b].size*(e[b].endValue-this.conversionParameters.minimum)/(e[b].endValue-e[b].startValue),c-=e[b].size*(e[b].endValue-this.conversionParameters.minimum)/(e[b].endValue-e[b].startValue);d=!1}else if(c>e[b].startValue-this.conversionParameters.minimum){c-=e[b].startValue-this.conversionParameters.minimum;if(ce[b].startValue-e[b-1].endValue){c-=e[b].startValue-e[b-1].endValue;if(cthis.conversionParameters.minimum))if(d)if(e[b].endValue>this.conversionParameters.minimum)if(e[b].size&&this.conversionParameters.minimum+c*(e[b].endValue- +e[b].startValue)/e[b].size>e[b].startValue){a=0>=e[b].size?0:c*(e[b].endValue-e[b].startValue)/e[b].size;break}else a+=e[b].startValue-this.conversionParameters.minimum+e[b].size*(this.conversionParameters.minimum-e[b].startValue)/(e[b].endValue-e[b].startValue),c+=e[b].size*(this.conversionParameters.minimum-e[b].startValue)/(e[b].endValue-e[b].startValue),d=!1;else if(c-1*e[b].size){a+=(e[b].endValue- +e[b].startValue)*(0===e[b].size?1:c/e[b].size)+c;break}else a-=e[b].endValue-e[b].startValue-e[b].size;c+=e[b].size;d=!1}else break;else if(c-1*e[b].size){a+=(e[b].endValue-e[b].startValue)*(0===e[b].size?1:c/e[b].size)+c;break}else a-=e[b].endValue-e[b].startValue-e[b].size;c+=e[b].size}else break;d=this.conversionParameters.minimum+a}return d};z.prototype.convertValueToPixel=function(a){a=this.getApparentDifference(this.conversionParameters.minimum, +a,a);return this.logarithmic?this.conversionParameters.reference+this.conversionParameters.pixelPerUnit*Math.log(a/this.conversionParameters.minimum)/this.conversionParameters.lnLogarithmBase+0.5<<0:"axisX"===this.type?this.conversionParameters.reference+this.conversionParameters.pixelPerUnit*(a-this.conversionParameters.minimum)+0.5<<0:this.conversionParameters.reference+this.conversionParameters.pixelPerUnit*(a-this.conversionParameters.minimum)+0.5};z.prototype.getApparentDifference=function(a, +d,b,c){var e=this.scaleBreaks?this.scaleBreaks._appliedBreaks:[];if(this.logarithmic){b=u(b)?d/a:b;for(var g=0;ge[g].endValue||(a<=e[g].startValue&&d>=e[g].endValue?b=b/e[g].endValue*e[g].startValue*e[g].size:a>=e[g].startValue&&d>=e[g].endValue?b=b/e[g].endValue*a*Math.pow(e[g].size,Math.log(e[g].endValue/a)/Math.log(e[g].endValue/e[g].startValue)):a<=e[g].startValue&&d<=e[g].endValue?b=b/d*e[g].startValue*Math.pow(e[g].size,Math.log(d/e[g].startValue)/Math.log(e[g].endValue/ +e[g].startValue)):!c&&(a>e[g].startValue&&de[g].endValue||(a<=e[g].startValue&&d>=e[g].endValue?b=b-e[g].endValue+e[g].startValue+e[g].size:a>e[g].startValue&&d>=e[g].endValue?b=b-e[g].endValue+a+e[g].size*(e[g].endValue-a)/(e[g].endValue-e[g].startValue):a<=e[g].startValue&&de[g].startValue&&da[e].endValue||(this.viewportMinimum>=a[e].startValue&&this.viewportMaximum<= +a[e].endValue?b=0:this.viewportMinimum<=a[e].startValue&&this.viewportMaximum>=a[e].endValue?(c=c/a[e].endValue*a[e].startValue,b=0a[e].startValue&&this.viewportMaximum>=a[e].endValue?(c=c/a[e].endValue*this.viewportMinimum,b=0a[e].endValue||(this.viewportMinimum>=a[e].startValue&&this.viewportMaximum<=a[e].endValue?b=0:this.viewportMinimum<=a[e].startValue&&this.viewportMaximum>=a[e].endValue?(c=c-a[e].endValue+a[e].startValue,b=0a[e].startValue&&this.viewportMaximum>=a[e].endValue?(c=c-a[e].endValue+this.viewportMinimum, +b=0this.maxWidth?8:6);var a=Math.max(c,Math.floor(this.maxWidth/a)),e,g,m,c=0;!u(this.options.viewportMinimum)&&(!u(this.options.viewportMaximum)&&this.options.viewportMinimum>=this.options.viewportMaximum)&& +(this.viewportMinimum=this.viewportMaximum=null);if(u(this.options.viewportMinimum)&&!u(this.sessionVariables.newViewportMinimum)&&!isNaN(this.sessionVariables.newViewportMinimum))this.viewportMinimum=this.sessionVariables.newViewportMinimum;else if(null===this.viewportMinimum||isNaN(this.viewportMinimum))this.viewportMinimum=this.minimum;if(u(this.options.viewportMaximum)&&!u(this.sessionVariables.newViewportMaximum)&&!isNaN(this.sessionVariables.newViewportMaximum))this.viewportMaximum=this.sessionVariables.newViewportMaximum; +else if(null===this.viewportMaximum||isNaN(this.viewportMaximum))this.viewportMaximum=this.maximum;if(this.scaleBreaks)for(c=0;c=this.scaleBreaks._appliedBreaks[c].startValue||!u(this.options.minimum)&&this.options.minimum>=this.scaleBreaks._appliedBreaks[c].startValue||!u(this.options.viewportMinimum)&&this.viewportMinimum>=this.scaleBreaks._appliedBreaks[c].startValue)&& +(!u(this.sessionVariables.newViewportMaximum)&&this.sessionVariables.newViewportMaximum<=this.scaleBreaks._appliedBreaks[c].endValue||!u(this.options.maximum)&&this.options.maximum<=this.scaleBreaks._appliedBreaks[c].endValue||!u(this.options.viewportMaximum)&&this.viewportMaximum<=this.scaleBreaks._appliedBreaks[c].endValue)){this.scaleBreaks._appliedBreaks.splice(c,1);break}if("axisX"===this.type){if(this.dataSeries&&0g?(c=Math.min(0.01*Math.abs(this.getApparentDifference(g,e,null,!0)),5),0<=g?e=g-c:g=isFinite(e)?e+c:0):(c=Math.min(0.01*Math.abs(this.getApparentDifference(e,g, +null,!0)),0.05),0!==g&&(g+=c),0!==e&&(e-=c)),m=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:1g&&(g=0));c=this.getApparentDifference(isNaN(this.viewportMinimum)||null===this.viewportMinimum?e:this.viewportMinimum,isNaN(this.viewportMaximum)||null===this.viewportMaximum?g:this.viewportMaximum,null, +!0);if("axisX"===this.type&&b){this.intervalType||(c/1<=a?(this.interval=1,this.intervalType="millisecond"):c/2<=a?(this.interval=2,this.intervalType="millisecond"):c/5<=a?(this.interval=5,this.intervalType="millisecond"):c/10<=a?(this.interval=10,this.intervalType="millisecond"):c/20<=a?(this.interval=20,this.intervalType="millisecond"):c/50<=a?(this.interval=50,this.intervalType="millisecond"):c/100<=a?(this.interval=100,this.intervalType="millisecond"):c/200<=a?(this.interval=200,this.intervalType= +"millisecond"):c/250<=a?(this.interval=250,this.intervalType="millisecond"):c/300<=a?(this.interval=300,this.intervalType="millisecond"):c/400<=a?(this.interval=400,this.intervalType="millisecond"):c/500<=a?(this.interval=500,this.intervalType="millisecond"):c/(1*S.secondDuration)<=a?(this.interval=1,this.intervalType="second"):c/(2*S.secondDuration)<=a?(this.interval=2,this.intervalType="second"):c/(5*S.secondDuration)<=a?(this.interval=5,this.intervalType="second"):c/(10*S.secondDuration)<=a?(this.interval= +10,this.intervalType="second"):c/(15*S.secondDuration)<=a?(this.interval=15,this.intervalType="second"):c/(20*S.secondDuration)<=a?(this.interval=20,this.intervalType="second"):c/(30*S.secondDuration)<=a?(this.interval=30,this.intervalType="second"):c/(1*S.minuteDuration)<=a?(this.interval=1,this.intervalType="minute"):c/(2*S.minuteDuration)<=a?(this.interval=2,this.intervalType="minute"):c/(5*S.minuteDuration)<=a?(this.interval=5,this.intervalType="minute"):c/(10*S.minuteDuration)<=a?(this.interval= +10,this.intervalType="minute"):c/(15*S.minuteDuration)<=a?(this.interval=15,this.intervalType="minute"):c/(20*S.minuteDuration)<=a?(this.interval=20,this.intervalType="minute"):c/(30*S.minuteDuration)<=a?(this.interval=30,this.intervalType="minute"):c/(1*S.hourDuration)<=a?(this.interval=1,this.intervalType="hour"):c/(2*S.hourDuration)<=a?(this.interval=2,this.intervalType="hour"):c/(3*S.hourDuration)<=a?(this.interval=3,this.intervalType="hour"):c/(6*S.hourDuration)<=a?(this.interval=6,this.intervalType= +"hour"):c/(1*S.dayDuration)<=a?(this.interval=1,this.intervalType="day"):c/(2*S.dayDuration)<=a?(this.interval=2,this.intervalType="day"):c/(4*S.dayDuration)<=a?(this.interval=4,this.intervalType="day"):c/(1*S.weekDuration)<=a?(this.interval=1,this.intervalType="week"):c/(2*S.weekDuration)<=a?(this.interval=2,this.intervalType="week"):c/(3*S.weekDuration)<=a?(this.interval=3,this.intervalType="week"):c/(1*S.monthDuration)<=a?(this.interval=1,this.intervalType="month"):c/(2*S.monthDuration)<=a?(this.interval= +2,this.intervalType="month"):c/(3*S.monthDuration)<=a?(this.interval=3,this.intervalType="month"):c/(6*S.monthDuration)<=a?(this.interval=6,this.intervalType="month"):(this.interval=c/(1*S.yearDuration)<=a?1:c/(2*S.yearDuration)<=a?2:c/(4*S.yearDuration)<=a?4:Math.floor(z.getNiceNumber(c/(a-1),!0)/S.yearDuration),this.intervalType="year"));if(null===this.viewportMinimum||isNaN(this.viewportMinimum))this.viewportMinimum=e-m/2;if(null===this.viewportMaximum||isNaN(this.viewportMaximum))this.viewportMaximum= +g+m/2;d?this.autoValueFormatString="MMM DD YYYY HH:mm":"year"===this.intervalType?this.autoValueFormatString="YYYY":"month"===this.intervalType?this.autoValueFormatString="MMM YYYY":"week"===this.intervalType?this.autoValueFormatString="MMM DD YYYY":"day"===this.intervalType?this.autoValueFormatString="MMM DD YYYY":"hour"===this.intervalType?this.autoValueFormatString="hh:mm TT":"minute"===this.intervalType?this.autoValueFormatString="hh:mm TT":"second"===this.intervalType?this.autoValueFormatString= +"hh:mm:ss TT":"millisecond"===this.intervalType&&(this.autoValueFormatString="fff'ms'");this.valueFormatString||(this.valueFormatString=this.autoValueFormatString)}else{this.intervalType="number";c=z.getNiceNumber(c,!1);this.interval=this.options&&0g?(c=Math.min(0.01*Math.abs(this.getApparentDifference(g,e,null,!0)),5),0<=g?e=g-c:g=isFinite(e)?e+c:0):(c=Math.min(0.01*Math.abs(this.getApparentDifference(e,g,null,!0)),0.05),0!==g&&(g+=c),0!==e&&(e-=c)):(g="undefined"===typeof this.options.interval?-Infinity:this.options.interval,e="undefined"!==typeof this.options.interval||isFinite(this.dataInfo.minDiff)?0:Infinity),m=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:1g&&(g=0)),Math.abs(this.getApparentDifference(e,g,null,!0)),"axisX"===this.type&&b){this.valueType="dateTime";if(null===this.minimum||isNaN(this.minimum))this.minimum=e-m/2;if(null===this.maximum||isNaN(this.maximum))this.maximum=g+m/2}else this.intervalType=this.valueType="number",null===this.minimum&&(this.minimum="axisX"===this.type?e-m/2:Math.floor(e/this.interval)*this.interval,this.minimum=Math.min(this.minimum, +null===this.sessionVariables.viewportMinimum||isNaN(this.sessionVariables.viewportMinimum)?Infinity:this.sessionVariables.viewportMinimum)),null===this.maximum&&(this.maximum="axisX"===this.type?g+m/2:Math.ceil(g/this.interval)*this.interval,this.maximum=Math.max(this.maximum,null===this.sessionVariables.viewportMaximum||isNaN(this.sessionVariables.viewportMaximum)?-Infinity:this.sessionVariables.viewportMaximum)),0===this.maximum&&0===this.minimum&&(0===this.options.minimum?this.maximum+=10:0=== +this.options.maximum&&(this.minimum-=10));u(this.sessionVariables.newViewportMinimum)&&(this.viewportMinimum=Math.max(this.viewportMinimum,this.minimum));u(this.sessionVariables.newViewportMaximum)&&(this.viewportMaximum=Math.min(this.viewportMaximum,this.maximum));this.range=this.viewportMaximum-this.viewportMinimum;this.intervalStartPosition="axisX"===this.type&&b?this.getLabelStartPoint(new Date(this.viewportMinimum),this.intervalType,this.interval):Math.floor((this.viewportMinimum+0.2*this.interval)/ +this.interval)*this.interval;this.valueFormatString||(this.valueFormatString=z.generateValueFormatString(this.range,2))}};z.prototype.calculateLogarithmicAxisParameters=function(){var a=this.chart.layoutManager.getFreeSpace(),d=Math.log(this.logarithmBase),b;"bottom"===this._position||"top"===this._position?(this.maxWidth=a.width,this.maxHeight=a.height):(this.maxWidth=a.height,this.maxHeight=a.width);var a="axisX"===this.type?500>this.maxWidth?7:Math.max(7,Math.floor(this.maxWidth/100)):Math.max(Math.floor(this.maxWidth/ +50),3),c,e,g,m;m=1;if(null===this.viewportMinimum||isNaN(this.viewportMinimum))this.viewportMinimum=this.minimum;if(null===this.viewportMaximum||isNaN(this.viewportMaximum))this.viewportMaximum=this.maximum;if(this.scaleBreaks)for(m=0;m=this.scaleBreaks._appliedBreaks[m].startValue||!u(this.options.minimum)&&this.options.minimum>=this.scaleBreaks._appliedBreaks[m].startValue|| +!u(this.options.viewportMinimum)&&this.viewportMinimum>=this.scaleBreaks._appliedBreaks[m].startValue)&&(!u(this.sessionVariables.newViewportMaximum)&&this.sessionVariables.newViewportMaximum<=this.scaleBreaks._appliedBreaks[m].endValue||!u(this.options.maximum)&&this.options.maximum<=this.scaleBreaks._appliedBreaks[m].endValue||!u(this.options.viewportMaximum)&&this.viewportMaximum<=this.scaleBreaks._appliedBreaks[m].endValue)){this.scaleBreaks._appliedBreaks.splice(m,1);break}"axisX"===this.type? +(c=null!==this.viewportMinimum?this.viewportMinimum:this.dataInfo.viewPortMin,e=null!==this.viewportMaximum?this.viewportMaximum:this.dataInfo.viewPortMax,1===e/c&&(m=Math.pow(this.logarithmBase,"undefined"===typeof this.options.interval?0.4:this.options.interval),e*=m,c/=m),g=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:e/c>this.logarithmBase?e/c*Math.pow(this.logarithmBase,0.5):this.logarithmBase):"axisY"===this.type&&(c=null!==this.viewportMinimum?this.viewportMinimum:this.dataInfo.viewPortMin, +e=null!==this.viewportMaximum?this.viewportMaximum:this.dataInfo.viewPortMax,0>=c&&!isFinite(e)?(e="undefined"===typeof this.options.interval?0:this.options.interval,c=1):0>=c?c=e:isFinite(e)||(e=c),1===c&&1===e?(e*=this.logarithmBase-1/this.logarithmBase,c=1):1===e/c?(m=Math.min(e*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,5)),e*=m,c/=m):c>e?(m=Math.min(c/e*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,5)),1<=e?c=e/m:e=c*m):(m=Math.min(e/c*Math.pow(this.logarithmBase, +0.01),Math.pow(this.logarithmBase,0.04)),1!==e&&(e*=m),1!==c&&(c/=m)),g=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:e/c>this.logarithmBase?e/c*Math.pow(this.logarithmBase,0.5):this.logarithmBase,this.includeZero&&(null===this.viewportMinimum||isNaN(this.viewportMinimum))&&1e&&(e=1));m=(isNaN(this.viewportMaximum)||null===this.viewportMaximum?e:this.viewportMaximum)/(isNaN(this.viewportMinimum)||null=== +this.viewportMinimum?c:this.viewportMinimum);var l=(isNaN(this.viewportMaximum)||null===this.viewportMaximum?e:this.viewportMaximum)-(isNaN(this.viewportMinimum)||null===this.viewportMinimum?c:this.viewportMinimum);this.intervalType="number";m=Math.pow(this.logarithmBase,z.getNiceNumber(Math.abs(Math.log(m)/d),!1));this.options&&0this.logarithmBase?e/c*Math.pow(this.logarithmBase,0.5):this.logarithmBase):"axisY"===this.type&&(c=null!==this.minimum?this.minimum:this.dataInfo.min,e=null!==this.maximum?this.maximum:this.dataInfo.max,isFinite(c)||isFinite(e)?1===c&&1===e?(e*=this.logarithmBase,c/=this.logarithmBase):1===e/c?(m=Math.pow(this.logarithmBase,this.interval),e*=m,c/=m):c>e?(m= +Math.min(0.01*(c/e),5),1<=e?c=e/m:e=c*m):(m=Math.min(e/c*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,0.04)),1!==e&&(e*=m),1!==c&&(c/=m)):(e="undefined"===typeof this.options.interval?0:this.options.interval,c=1),g=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:e/c>this.logarithmBase?e/c*Math.pow(this.logarithmBase,0.5):this.logarithmBase,this.includeZero&&(null===this.minimum||isNaN(this.minimum))&&1e&&(e=1)),this.intervalType="number",null===this.minimum&&(this.minimum="axisX"===this.type?c/Math.sqrt(g):Math.pow(this.logarithmBase,this.interval*Math.floor(Math.log(c)/d/this.interval)),this.minimum=Math.min(this.minimum,null===this.sessionVariables.viewportMinimum||isNaN(this.sessionVariables.viewportMinimum)?"undefined"===typeof this.sessionVariables.newViewportMinimum?Infinity:this.sessionVariables.newViewportMinimum:this.sessionVariables.viewportMinimum)),null===this.maximum&&(this.maximum= +"axisX"===this.type?e*Math.sqrt(g):Math.pow(this.logarithmBase,this.interval*Math.ceil(Math.log(e)/d/this.interval)),this.maximum=Math.max(this.maximum,null===this.sessionVariables.viewportMaximum||isNaN(this.sessionVariables.viewportMaximum)?"undefined"===typeof this.sessionVariables.newViewportMaximum?0:this.sessionVariables.newViewportMaximum:this.sessionVariables.viewportMaximum)),1===this.maximum&&1===this.minimum&&(1===this.options.minimum?this.maximum*=this.logarithmBase-1/this.logarithmBase: +1===this.options.maximum&&(this.minimum/=this.logarithmBase-1/this.logarithmBase));this.viewportMinimum=Math.max(this.viewportMinimum,this.minimum);this.viewportMaximum=Math.min(this.viewportMaximum,this.maximum);this.viewportMinimum>this.viewportMaximum&&(!this.options.viewportMinimum&&!this.options.minimum||this.options.viewportMaximum||this.options.maximum?this.options.viewportMinimum||this.options.minimum||!this.options.viewportMaximum&&!this.options.maximum||(this.viewportMinimum=this.minimum= +(this.options.viewportMaximum||this.options.maximum)/Math.pow(this.logarithmBase,2*Math.ceil(this.interval))):this.viewportMaximum=this.maximum=this.options.viewportMinimum||this.options.minimum);c=Math.pow(this.logarithmBase,Math.floor(Math.log(this.viewportMinimum)/(d*this.interval)+0.2)*this.interval);this.range=this.viewportMaximum/this.viewportMinimum;this.noTicks=a;if(!this.options.interval&&this.rangethis.viewportMaximum||3>a?2:3)){for(d=Math.floor(this.viewportMinimum/ +b+0.5)*b;dthis.interval&&(this.interval=b,c=Math.pow(this.logarithmBase,Math.floor(Math.log(this.viewportMinimum)/(d*this.interval)+0.2)*this.interval))),this.equidistantInterval=!0,this.intervalStartPosition=c;if(!this.valueFormatString&&(this.valueFormatString="#,##0.##",1>this.viewportMinimum)){d=Math.floor(Math.abs(Math.log(this.viewportMinimum)/ +Math.LN10))+2;if(isNaN(d)||!isFinite(d))d=2;if(2a&&(c+=Math.floor(Math.abs(Math.log(a)/Math.LN10)),isNaN(c)||!isFinite(c))&&(c=d);for(var e=0;eb?1>=c?1:5>=c?5:10:Math.max(Math.floor(c),1);return-20>b?Number(c*Math.pow(10,b)):Number((c*Math.pow(10,b)).toFixed(20))};z.getNiceNumber= +function(a,d){var b=Math.floor(Math.log(a)/Math.LN10),c=a/Math.pow(10,b),c=d?1.5>c?1:3>c?2:7>c?5:10:1>=c?1:2>=c?2:5>=c?5:10;return-20>b?Number(c*Math.pow(10,b)):Number((c*Math.pow(10,b)).toFixed(20))};z.prototype.getLabelStartPoint=function(){var a=S[this.intervalType+"Duration"]*this.interval,a=new Date(Math.floor(this.viewportMinimum/a)*a);if("millisecond"!==this.intervalType)if("second"===this.intervalType)0=a||"bottom"===this.scaleBreaks.parent._position&&0<=a)this.ctx.lineTo(c,l),this.ctx.lineTo(m,l),this.ctx.lineTo(m,e);else if("wavy"===this.type){k=c;h=e;g=0.5;p=(l-h)/a/3;for(var n=0;n=a||"right"===this.scaleBreaks.parent._position&&0<=a)this.ctx.lineTo(m,e),this.ctx.lineTo(m,l), +this.ctx.lineTo(c,l);else if("wavy"===this.type){k=c;h=e;g=0.5;p=(m-k)/a/3;for(n=0;nthis.parent.range?2:Math.floor(Math.abs(Math.log(this.parent.range)/Math.LN10))+(5>this.parent.range?2:10>this.parent.range? +1:0):50this.parent.range?2:10>this.parent.range?1:0);this.valueFormatString=z.generateValueFormatString(this.parent.range,h)}var l=null===this.opacity?1:this.opacity,h=Math.abs("pixel"===this._thicknessType?this.thickness:this.parent.conversionParameters.pixelPerUnit*this.thickness),p=this.chart.overlaidCanvasCtx,q=p.globalAlpha;p.globalAlpha=l;p.beginPath();p.strokeStyle=this.color;p.lineWidth=h;p.save();this.labelFontSize= +u(this.options.labelFontSize)?this.parent.labelFontSize:this.labelFontSize;if("left"===this.parent._position||"right"===this.parent._position)this.labelMaxWidth=u(this.options.labelMaxWidth)?this.parent.bounds.x2-this.parent.bounds.x1:this.labelMaxWidth,this.labelMaxHeight=u(this.options.labelWrap)||this.labelWrap?3*this.chart.height:2*this.labelFontSize;else if("top"===this.parent._position||"bottom"===this.parent._position)this.labelMaxWidth=u(this.options.labelMaxWidth)?3*this.chart.width:this.labelMaxWidth, +this.labelMaxHeight=u(this.options.labelWrap)||this.labelWrap?this.parent.bounds.height:2*this.labelFontSize;0this.chart.bounds.x2?l.x=this.chart.bounds.x2-l.width:l.xthis.chart.bounds.y2&&(l.y=this.chart.bounds.y2-l.measureText().height+l.fontSize/2);"left"===this.parent._position?l.x=this.parent.lineCoordinates.x2-l.measureText().width:"right"===this.parent._position&&(l.x=this.parent.lineCoordinates.x2)}}else if("bottom"===this.parent._position||"top"===this.parent._position){n=this.parent.convertPixelToValue({x:a});for(r=0;rthis.chart.bounds.x2&&(l.x=this.chart.bounds.x2-l.width);l.xthis.chart.bounds.y2&&(l.y=this.chart.bounds.y2-l.measureText().height+l.fontSize/2);"left"===this.parent._position?l.x=this.parent.lineCoordinates.x2-l.measureText().width:"right"=== +this.parent._position&&(l.x=this.parent.lineCoordinates.x2)}m=null;("bottom"===this.parent._position||"top"===this.parent._position)&&(b>=this.parent.convertValueToPixel(this.parent.viewportMinimum)&&c<=this.parent.convertValueToPixel(this.parent.viewportMaximum))&&(0=this.parent.convertValueToPixel(this.parent.viewportMaximum)&& +e<=this.parent.convertValueToPixel(this.parent.viewportMinimum))&&(0this.chart.bounds.y2&&(l.y=this.chart.bounds.y2-l.measureText().height+l.fontSize/2);"left"===this.parent._position?l.x=this.parent.lineCoordinates.x1-l.measureText().width:"right"===this.parent._position&&(l.x=this.parent.lineCoordinates.x2)}else{if("bottom"===this.parent._position||"top"===this.parent._position)l.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent.options,crosshair:this.options,value:this.parent.convertPixelToValue(a)}):u(this.options.label)? +ba(this.parent.convertPixelToValue(a),this.valueFormatString,this.chart._cultureInfo):this.label,l.x=b-l.measureText().width/2,l.x+l.width>this.chart.bounds.x2&&(l.x=this.chart.bounds.x2-l.width),l.xthis.chart.bounds.x2&&(l.x=this.chart.bounds.x2-l.width);l.xthis.chart.bounds.y2&&(l.y=this.chart.bounds.y2-l.measureText().height+l.fontSize/2),"left"===this.parent._position?l.x=this.parent.lineCoordinates.x2-l.measureText().width:"right"===this.parent._position&&(l.x=this.parent.lineCoordinates.x2);0(new Date).getTime()-this._lastUpdated||(this._lastUpdated=(new Date).getTime(), +this.chart.resetOverlayedCanvas(),this._updateToolTip(a,d))};$.prototype._updateToolTip=function(a,d,b){b="undefined"===typeof b?!0:b;this.container||this._initialize();this.enabled||this.hide();if(!this.chart.disableToolTip){if("undefined"===typeof a||"undefined"===typeof d){if(isNaN(this._prevX)||isNaN(this._prevY))return;a=this._prevX;d=this._prevY}else this._prevX=a,this._prevY=d;var c=null,e=null,g=[],k=0;if(this.shared&&this.enabled&&"none"!==this.chart.plotInfo.axisPlacement){if("xySwapped"=== +this.chart.plotInfo.axisPlacement){var l=[];if(this.chart.axisX)for(var p=0;ph.dataSeries.axisY.viewportMaximum&&b++;b-h.dataPoint.y.length&&g.push(h)}else"column"===e.type||"bar"===e.type?0>h.dataPoint.y?0>h.dataSeries.axisY.viewportMinimum&&h.dataSeries.axisY.viewportMaximum>=h.dataPoint.y&&g.push(h):h.dataSeries.axisY.viewportMinimum<=h.dataPoint.y&&0<=h.dataSeries.axisY.viewportMaximum&&g.push(h):"bubble"===e.type?(b=this.chart._eventManager.objectMap[e.dataPointIds[h.index]].size/2,h.dataPoint.y>= +h.dataSeries.axisY.viewportMinimum-b&&h.dataPoint.y<=h.dataSeries.axisY.viewportMaximum+b&&g.push(h)):"waterfall"===e.type?(b=0,h.cumulativeSumYStartValueh.dataSeries.axisY.viewportMaximum&&b++,h.cumulativeSumh.dataSeries.axisY.viewportMaximum&&b++,2>b&&-2=h.dataSeries.axisY.viewportMinimum&& +h.dataPoint.y<=h.dataSeries.axisY.viewportMaximum)&&g.push(h);else g.push(h)}}if(0a&&(a+=this.container.clientWidth+20);a+this.container.clientWidth> +Math.max(this.chart.container.clientWidth,this.chart.width)&&(a=Math.max(0,Math.max(this.chart.container.clientWidth,this.chart.width)-this.container.clientWidth));d=1!==g.length||this.shared||"line"!==g[0].dataSeries.type&&"stepLine"!==g[0].dataSeries.type&&"spline"!==g[0].dataSeries.type&&"area"!==g[0].dataSeries.type&&"stepArea"!==g[0].dataSeries.type&&"splineArea"!==g[0].dataSeries.type?"bar"===g[0].dataSeries.type||"rangeBar"===g[0].dataSeries.type||"stackedBar"===g[0].dataSeries.type||"stackedBar100"=== +g[0].dataSeries.type?g[0].dataSeries.axisX.convertValueToPixel(g[0].dataPoint.x):d:g[0].dataSeries.axisY.convertValueToPixel(g[0].dataPoint.y);d=-d+10;0":"X:{axisXIndex}
":""),g+=c.toolTipContent?c.toolTipContent:b.toolTipContent?b.toolTipContent:this.content&&"function"!==typeof this.content? +this.content:"{name}:  {y}",p=b.axisXIndex):"bubble"===b.type?(this.chart.axisX&&1":"X:{axisXIndex}
":""),g+=c.toolTipContent?c.toolTipContent:b.toolTipContent?b.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:  {y},   {z}"): +"rangeColumn"===b.type||"rangeBar"===b.type||"rangeArea"===b.type||"rangeSplineArea"===b.type||"error"===b.type?(this.chart.axisX&&1":"X:{axisXIndex}
":""),g+=c.toolTipContent?c.toolTipContent:b.toolTipContent?b.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:  {y[0]}, {y[1]}"):"candlestick"=== +b.type||"ohlc"===b.type?(this.chart.axisX&&1":"X:{axisXIndex}
":""),g+=c.toolTipContent?c.toolTipContent:b.toolTipContent?b.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:
Open:   {y[0]}
High:    {y[1]}
Low:   {y[2]}
Close:   {y[3]}"):"boxAndWhisker"=== +b.type&&(this.chart.axisX&&1":"X:{axisXIndex}
":""),g+=c.toolTipContent?c.toolTipContent:b.toolTipContent?b.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:
Minimum:   {y[0]}
Q1:               {y[1]}
Q2:               {y[4]}
Q3:               {y[2]}
Maximum:  {y[3]}"), +null===d&&(d=""),!0===this.reversed?(d=this.chart.replaceKeywordsWithValue(g,c,b,e)+d,l"+d)):(d+=this.chart.replaceKeywordsWithValue(g,c,b,e),l")));null!==d&&(d=h+d)}else{b=a[0].dataSeries;c=a[0].dataPoint;e=a[0].index;if(null===c.toolTipContent||"undefined"===typeof c.toolTipContent&&null===b.options.toolTipContent)return null;"line"===b.type||"stepLine"===b.type||"spline"===b.type||"area"===b.type||"stepArea"===b.type||"splineArea"===b.type||"column"=== +b.type||"bar"===b.type||"scatter"===b.type||"stackedColumn"===b.type||"stackedColumn100"===b.type||"stackedBar"===b.type||"stackedBar100"===b.type||"stackedArea"===b.type||"stackedArea100"===b.type||"waterfall"===b.type?g=c.toolTipContent?c.toolTipContent:b.toolTipContent?b.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(c.label?"{label}":"{x}")+":  {y}":"bubble"===b.type?g=c.toolTipContent? +c.toolTipContent:b.toolTipContent?b.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(c.label?"{label}":"{x}")+":  {y},   {z}":"pie"===b.type||"doughnut"===b.type||"funnel"===b.type||"pyramid"===b.type?g=c.toolTipContent?c.toolTipContent:b.toolTipContent?b.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(c.name?"{name}:  ":c.label?"{label}:  ":"")+"{y}":"rangeColumn"===b.type||"rangeBar"===b.type||"rangeArea"===b.type||"rangeSplineArea"===b.type||"error"===b.type?g=c.toolTipContent?c.toolTipContent:b.toolTipContent?b.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(c.label?"{label}":"{x}")+" :  {y[0]},  {y[1]}": +"candlestick"===b.type||"ohlc"===b.type?g=c.toolTipContent?c.toolTipContent:b.toolTipContent?b.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(c.label?"{label}":"{x}")+"
Open:   {y[0]}
High:    {y[1]}
Low:     {y[2]}
Close:   {y[3]}":"boxAndWhisker"===b.type&&(g=c.toolTipContent?c.toolTipContent:b.toolTipContent?b.toolTipContent: +this.content&&"function"!==typeof this.content?this.content:""+(c.label?"{label}":"{x}")+"
Minimum:   {y[0]}
Q1:               {y[1]}
Q2:               {y[4]}
Q3:               {y[2]}
Maximum:  {y[3]}"); +null===d&&(d="");d+=this.chart.replaceKeywordsWithValue(g,c,b,e)}return d};$.prototype.enableAnimation=function(){if(!this.container.style.WebkitTransition){var a=this.getContainerTransition(this.containerTransitionDuration);this.container.style.WebkitTransition=a;this.container.style.MsTransition=a;this.container.style.transition=a;this.container.style.MozTransition=this.mozContainerTransition}};$.prototype.disableAnimation=function(){this.container.style.WebkitTransition&&(this.container.style.WebkitTransition= +"",this.container.style.MozTransition="",this.container.style.MsTransition="",this.container.style.transition="")};$.prototype.hide=function(a){this.container&&(this.container.style.display="none",this.currentSeriesIndex=-1,this._prevY=this._prevX=NaN,("undefined"===typeof a||a)&&this.chart.resetOverlayedCanvas())};$.prototype.show=function(a,d,b){this._updateToolTip(a,d,"undefined"===typeof b?!1:b)};$.prototype.fixMozTransitionDelay=function(a,d){if(20c&&a.push(d),d.animationCallback(c),1<=c&&d.onComplete)d.onComplete();this.animations=a;0g;g++)for(var e=0;3>e;e++){for(var f=0,d=0;3>d;d++)f+=a[g][d]*b[d][e];c[g][e]=f}return c}function P(a,b){b.fillStyle=a.fillStyle;b.lineCap=a.lineCap;b.lineJoin=a.lineJoin;b.lineWidth=a.lineWidth;b.miterLimit=a.miterLimit;b.shadowBlur=a.shadowBlur;b.shadowColor=a.shadowColor;b.shadowOffsetX= +a.shadowOffsetX;b.shadowOffsetY=a.shadowOffsetY;b.strokeStyle=a.strokeStyle;b.globalAlpha=a.globalAlpha;b.font=a.font;b.textAlign=a.textAlign;b.textBaseline=a.textBaseline;b.arcScaleX_=a.arcScaleX_;b.arcScaleY_=a.arcScaleY_;b.lineScale_=a.lineScale_}function Q(a){var b=a.indexOf("(",3),c=a.indexOf(")",b+1),b=a.substring(b+1,c).split(",");if(4!=b.length||"a"!=a.charAt(3))b[3]=1;return b}function E(a,b,c){return Math.min(c,Math.max(b,a))}function F(a,b,c){0>c&&c++;16*c?a+6*(b-a)*c: +1>2*c?b:2>3*c?a+6*(b-a)*(2/3-c):a}function G(a){if(a in H)return H[a];var b,c=1;a=String(a);if("#"==a.charAt(0))b=a;else if(/^rgb/.test(a)){c=Q(a);b="#";for(var g,e=0;3>e;e++)g=-1!=c[e].indexOf("%")?Math.floor(255*(parseFloat(c[e])/100)):+c[e],b+=v[E(g,0,255)];c=+c[3]}else if(/^hsl/.test(a)){e=c=Q(a);b=parseFloat(e[0])/360%360;0>b&&b++;g=E(parseFloat(e[1])/100,0,1);e=E(parseFloat(e[2])/100,0,1);if(0==g)g=e=b=e;else{var f=0.5>e?e*(1+g):e+g-e*g,d=2*e-f;g=F(d,f,b+1/3);e=F(d,f,b);b=F(d,f,b-1/3)}b="#"+ +v[Math.floor(255*g)]+v[Math.floor(255*e)]+v[Math.floor(255*b)];c=c[3]}else b=Z[a]||a;return H[a]={color:b,alpha:c}}function C(a){this.m_=D();this.mStack_=[];this.aStack_=[];this.currentPath_=[];this.fillStyle=this.strokeStyle="#000";this.lineWidth=1;this.lineJoin="miter";this.lineCap="butt";this.miterLimit=1*q;this.globalAlpha=1;this.font="10px sans-serif";this.textAlign="left";this.textBaseline="alphabetic";this.canvas=a;var b="width:"+a.clientWidth+"px;height:"+a.clientHeight+"px;overflow:hidden;position:absolute", +c=a.ownerDocument.createElement("div");c.style.cssText=b;a.appendChild(c);b=c.cloneNode(!1);b.style.backgroundColor="red";b.style.filter="alpha(opacity=0)";a.appendChild(b);this.element_=c;this.lineScale_=this.arcScaleY_=this.arcScaleX_=1}function R(a,b,c,g){a.currentPath_.push({type:"bezierCurveTo",cp1x:b.x,cp1y:b.y,cp2x:c.x,cp2y:c.y,x:g.x,y:g.y});a.currentX_=g.x;a.currentY_=g.y}function S(a,b){var c=G(a.strokeStyle),g=c.color,c=c.alpha*a.globalAlpha,e=a.lineScale_*a.lineWidth;1>e&&(c*=e);b.push("')}function T(a,b,c,g){var e=a.fillStyle,f=a.arcScaleX_,d=a.arcScaleY_,k=g.x-c.x,n=g.y-c.y;if(e instanceof w){var h=0,l=g=0,u=0,m=1;if("gradient"==e.type_){h=e.x1_/f;c=e.y1_/d;var p=s(a,e.x0_/f,e.y0_/d),h=s(a,h,c),h=180*Math.atan2(h.x-p.x,h.y-p.y)/Math.PI;0>h&&(h+=360);1E-6>h&&(h=0)}else p=s(a,e.x0_,e.y0_),g=(p.x-c.x)/k,l=(p.y-c.y)/n,k/=f*q, +n/=d*q,m=x.max(k,n),u=2*e.r0_/m,m=2*e.r1_/m-u;f=e.colors_;f.sort(function(a,b){return a.offset-b.offset});d=f.length;p=f[0].color;c=f[d-1].color;k=f[0].alpha*a.globalAlpha;a=f[d-1].alpha*a.globalAlpha;for(var n=[],r=0;r')}else e instanceof +I?k&&n&&b.push("'):(e=G(a.fillStyle),b.push(''))}function s(a,b,c){a=a.m_;return{x:q*(b*a[0][0]+c*a[1][0]+a[2][0])-r,y:q*(b*a[0][1]+c*a[1][1]+a[2][1])-r}}function z(a,b,c){isFinite(b[0][0])&&(isFinite(b[0][1])&&isFinite(b[1][0])&&isFinite(b[1][1])&&isFinite(b[2][0])&&isFinite(b[2][1]))&&(a.m_=b,c&&(a.lineScale_=aa(ba(b[0][0]*b[1][1]-b[0][1]* +b[1][0]))))}function w(a){this.type_=a;this.r1_=this.y1_=this.x1_=this.r0_=this.y0_=this.x0_=0;this.colors_=[]}function I(a,b){if(!a||1!=a.nodeType||"IMG"!=a.tagName)throw new A("TYPE_MISMATCH_ERR");if("complete"!=a.readyState)throw new A("INVALID_STATE_ERR");switch(b){case "repeat":case null:case "":this.repetition_="repeat";break;case "repeat-x":case "repeat-y":case "no-repeat":this.repetition_=b;break;default:throw new A("SYNTAX_ERR");}this.src_=a.src;this.width_=a.width;this.height_=a.height} +function A(a){this.code=this[a];this.message=a+": DOM Exception "+this.code}var x=Math,k=x.round,J=x.sin,K=x.cos,ba=x.abs,aa=x.sqrt,q=10,r=q/2;navigator.userAgent.match(/MSIE ([\d.]+)?/);var M=Array.prototype.slice;O(document);var U={init:function(a){a=a||document;a.createElement("canvas");a.attachEvent("onreadystatechange",W(this.init_,this,a))},init_:function(a){a=a.getElementsByTagName("canvas");for(var b=0;bd;d++)for(var B=0;16>B;B++)v[16*d+B]=d.toString(16)+B.toString(16);var Z={aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC", +bisque:"#FFE4C4",black:"#000000",blanchedalmond:"#FFEBCD",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",crimson:"#DC143C",cyan:"#00FFFF",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgray:"#A9A9A9",darkgreen:"#006400",darkgrey:"#A9A9A9",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkorange:"#FF8C00",darkorchid:"#9932CC",darkred:"#8B0000", +darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deepskyblue:"#00BFFF",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1E90FF",firebrick:"#B22222",floralwhite:"#FFFAF0",forestgreen:"#228B22",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",goldenrod:"#DAA520",grey:"#808080",greenyellow:"#ADFF2F",honeydew:"#F0FFF0",hotpink:"#FF69B4",indianred:"#CD5C5C",indigo:"#4B0082", +ivory:"#FFFFF0",khaki:"#F0E68C",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lightblue:"#ADD8E6",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightgoldenrodyellow:"#FAFAD2",lightgreen:"#90EE90",lightgrey:"#D3D3D3",lightpink:"#FFB6C1",lightsalmon:"#FFA07A",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",mediumaquamarine:"#66CDAA", +mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumpurple:"#9370DB",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",oldlace:"#FDF5E6",olivedrab:"#6B8E23",orange:"#FFA500",orangered:"#FF4500",orchid:"#DA70D6",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",paleturquoise:"#AFEEEE",palevioletred:"#DB7093",papayawhip:"#FFEFD5", +peachpuff:"#FFDAB9",peru:"#CD853F",pink:"#FFC0CB",plum:"#DDA0DD",powderblue:"#B0E0E6",rosybrown:"#BC8F8F",royalblue:"#4169E1",saddlebrown:"#8B4513",salmon:"#FA8072",sandybrown:"#F4A460",seagreen:"#2E8B57",seashell:"#FFF5EE",sienna:"#A0522D",skyblue:"#87CEEB",slateblue:"#6A5ACD",slategray:"#708090",slategrey:"#708090",snow:"#FFFAFA",springgreen:"#00FF7F",steelblue:"#4682B4",tan:"#D2B48C",thistle:"#D8BFD8",tomato:"#FF6347",turquoise:"#40E0D0",violet:"#EE82EE",wheat:"#F5DEB3",whitesmoke:"#F5F5F5",yellowgreen:"#9ACD32"}, +H={},L={},$={butt:"flat",round:"round"},d=C.prototype;d.clearRect=function(){this.textMeasureEl_&&(this.textMeasureEl_.removeNode(!0),this.textMeasureEl_=null);this.element_.innerHTML=""};d.beginPath=function(){this.currentPath_=[]};d.moveTo=function(a,b){var c=s(this,a,b);this.currentPath_.push({type:"moveTo",x:c.x,y:c.y});this.currentX_=c.x;this.currentY_=c.y};d.lineTo=function(a,b){var c=s(this,a,b);this.currentPath_.push({type:"lineTo",x:c.x,y:c.y});this.currentX_=c.x;this.currentY_=c.y};d.bezierCurveTo= +function(a,b,c,g,e,f){e=s(this,e,f);a=s(this,a,b);c=s(this,c,g);R(this,a,c,e)};d.quadraticCurveTo=function(a,b,c,g){a=s(this,a,b);c=s(this,c,g);g={x:this.currentX_+2/3*(a.x-this.currentX_),y:this.currentY_+2/3*(a.y-this.currentY_)};R(this,g,{x:g.x+(c.x-this.currentX_)/3,y:g.y+(c.y-this.currentY_)/3},c)};d.arc=function(a,b,c,g,e,f){c*=q;var d=f?"at":"wa",k=a+K(g)*c-r,n=b+J(g)*c-r;g=a+K(e)*c-r;e=b+J(e)*c-r;k!=g||f||(k+=0.125);a=s(this,a,b);k=s(this,k,n);g=s(this,g,e);this.currentPath_.push({type:d, +x:a.x,y:a.y,radius:c,xStart:k.x,yStart:k.y,xEnd:g.x,yEnd:g.y})};d.rect=function(a,b,c,g){this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+g);this.lineTo(a,b+g);this.closePath()};d.strokeRect=function(a,b,c,g){var e=this.currentPath_;this.beginPath();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+g);this.lineTo(a,b+g);this.closePath();this.stroke();this.currentPath_=e};d.fillRect=function(a,b,c,g){var e=this.currentPath_;this.beginPath();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+ +c,b+g);this.lineTo(a,b+g);this.closePath();this.fill();this.currentPath_=e};d.createLinearGradient=function(a,b,c,g){var e=new w("gradient");e.x0_=a;e.y0_=b;e.x1_=c;e.y1_=g;return e};d.createRadialGradient=function(a,b,c,g,e,f){var d=new w("gradientradial");d.x0_=a;d.y0_=b;d.r0_=c;d.x1_=g;d.y1_=e;d.r1_=f;return d};d.drawImage=function(a,b){var c,g,e,d,r,y,n,h;e=a.runtimeStyle.width;d=a.runtimeStyle.height;a.runtimeStyle.width="auto";a.runtimeStyle.height="auto";var l=a.width,u=a.height;a.runtimeStyle.width= +e;a.runtimeStyle.height=d;if(3==arguments.length)c=arguments[1],g=arguments[2],r=y=0,n=e=l,h=d=u;else if(5==arguments.length)c=arguments[1],g=arguments[2],e=arguments[3],d=arguments[4],r=y=0,n=l,h=u;else if(9==arguments.length)r=arguments[1],y=arguments[2],n=arguments[3],h=arguments[4],c=arguments[5],g=arguments[6],e=arguments[7],d=arguments[8];else throw Error("Invalid number of arguments");var m=s(this,c,g),p=[];p.push(" ','","");this.element_.insertAdjacentHTML("BeforeEnd",p.join(""))};d.stroke=function(a){var b=[];b.push("d.x)d.x=f.x;if(null==c.y||f.yd.y)d.y=f.y}}b.push(' ">');a?T(this,b,c,d):S(this,b);b.push("");this.element_.insertAdjacentHTML("beforeEnd",b.join(""))};d.fill=function(){this.stroke(!0)};d.closePath=function(){this.currentPath_.push({type:"close"})};d.save=function(){var a= +{};P(this,a);this.aStack_.push(a);this.mStack_.push(this.m_);this.m_=t(D(),this.m_)};d.restore=function(){this.aStack_.length&&(P(this.aStack_.pop(),this),this.m_=this.mStack_.pop())};d.translate=function(a,b){z(this,t([[1,0,0],[0,1,0],[a,b,1]],this.m_),!1)};d.rotate=function(a){var b=K(a);a=J(a);z(this,t([[b,a,0],[-a,b,0],[0,0,1]],this.m_),!1)};d.scale=function(a,b){this.arcScaleX_*=a;this.arcScaleY_*=b;z(this,t([[a,0,0],[0,b,0],[0,0,1]],this.m_),!0)};d.transform=function(a,b,c,d,e,f){z(this,t([[a, +b,0],[c,d,0],[e,f,1]],this.m_),!0)};d.setTransform=function(a,b,c,d,e,f){z(this,[[a,b,0],[c,d,0],[e,f,1]],!0)};d.drawText_=function(a,b,c,d,e){var f=this.m_;d=0;var r=1E3,t=0,n=[],h;h=this.font;if(L[h])h=L[h];else{var l=document.createElement("div").style;try{l.font=h}catch(u){}h=L[h]={style:l.fontStyle||"normal",variant:l.fontVariant||"normal",weight:l.fontWeight||"normal",size:l.fontSize||10,family:l.fontFamily||"sans-serif"}}var l=h,m=this.element_;h={};for(var p in l)h[p]=l[p];p=parseFloat(m.currentStyle.fontSize); +m=parseFloat(l.size);"number"==typeof l.size?h.size=l.size:-1!=l.size.indexOf("px")?h.size=m:-1!=l.size.indexOf("em")?h.size=p*m:-1!=l.size.indexOf("%")?h.size=p/100*m:-1!=l.size.indexOf("pt")?h.size=m/0.75:h.size=p;h.size*=0.981;p=h.style+" "+h.variant+" "+h.weight+" "+h.size+"px "+h.family;m=this.element_.currentStyle;l=this.textAlign.toLowerCase();switch(l){case "left":case "center":case "right":break;case "end":l="ltr"==m.direction?"right":"left";break;case "start":l="rtl"==m.direction?"right": +"left";break;default:l="left"}switch(this.textBaseline){case "hanging":case "top":t=h.size/1.75;break;case "middle":break;default:case null:case "alphabetic":case "ideographic":case "bottom":t=-h.size/2.25}switch(l){case "right":d=1E3;r=0.05;break;case "center":d=r=500}b=s(this,b+0,c+t);n.push('');e?S(this,n):T(this,n,{x:-d,y:0}, +{x:r,y:h.size});e=f[0][0].toFixed(3)+","+f[1][0].toFixed(3)+","+f[0][1].toFixed(3)+","+f[1][1].toFixed(3)+",0,0";b=k(b.x/q)+","+k(b.y/q);n.push('','','');this.element_.insertAdjacentHTML("beforeEnd",n.join(""))};d.fillText=function(a,b,c,d){this.drawText_(a,b,c,d,!1)};d.strokeText=function(a, +b,c,d){this.drawText_(a,b,c,d,!0)};d.measureText=function(a){this.textMeasureEl_||(this.element_.insertAdjacentHTML("beforeEnd",''),this.textMeasureEl_=this.element_.lastChild);var b=this.element_.ownerDocument;this.textMeasureEl_.innerHTML="";this.textMeasureEl_.style.font=this.font;this.textMeasureEl_.appendChild(b.createTextNode(a));return{width:this.textMeasureEl_.offsetWidth}};d.clip=function(){}; +d.arcTo=function(){};d.createPattern=function(a,b){return new I(a,b)};w.prototype.addColorStop=function(a,b){b=G(b);this.colors_.push({offset:a,color:b.color,alpha:b.alpha})};d=A.prototype=Error();d.INDEX_SIZE_ERR=1;d.DOMSTRING_SIZE_ERR=2;d.HIERARCHY_REQUEST_ERR=3;d.WRONG_DOCUMENT_ERR=4;d.INVALID_CHARACTER_ERR=5;d.NO_DATA_ALLOWED_ERR=6;d.NO_MODIFICATION_ALLOWED_ERR=7;d.NOT_FOUND_ERR=8;d.NOT_SUPPORTED_ERR=9;d.INUSE_ATTRIBUTE_ERR=10;d.INVALID_STATE_ERR=11;d.SYNTAX_ERR=12;d.INVALID_MODIFICATION_ERR= +13;d.NAMESPACE_ERR=14;d.INVALID_ACCESS_ERR=15;d.VALIDATION_ERR=16;d.TYPE_MISMATCH_ERR=17;G_vmlCanvasManager=U;CanvasRenderingContext2D=C;CanvasGradient=w;CanvasPattern=I;DOMException=A}(); +/*eslint-enable*/ +/*jshint ignore:end*/ \ No newline at end of file diff --git a/src/app/pages/graph/data.ts b/src/app/pages/graph/data.ts new file mode 100644 index 0000000..de668ad --- /dev/null +++ b/src/app/pages/graph/data.ts @@ -0,0 +1,68 @@ +export var multi = [ + { + "name": "Germany", + "series": [ + { + "name": "1990", + "value": 62000000 + }, + { + "name": "2010", + "value": 73000000 + }, + { + "name": "2011", + "value": 89400000 + } + ] + }, + + { + "name": "USA", + "series": [ + { + "name": "1990", + "value": 250000000 + }, + { + "name": "2010", + "value": 309000000 + }, + { + "name": "2011", + "value": 311000000 + } + ] + }, + + { + "name": "France", + "series": [ + { + "name": "1990", + "value": 58000000 + }, + { + "name": "2010", + "value": 50000020 + }, + { + "name": "2011", + "value": 58000000 + } + ] + }, + { + "name": "UK", + "series": [ + { + "name": "1990", + "value": 57000000 + }, + { + "name": "2010", + "value": 62000000 + } + ] + } +]; diff --git a/src/app/pages/graph/graph.component.html b/src/app/pages/graph/graph.component.html new file mode 100644 index 0000000..20143e5 --- /dev/null +++ b/src/app/pages/graph/graph.component.html @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/ExampleUI/src/app/pages/addproject/addproject.component.scss b/src/app/pages/graph/graph.component.scss similarity index 100% rename from ExampleUI/src/app/pages/addproject/addproject.component.scss rename to src/app/pages/graph/graph.component.scss diff --git a/ExampleUI/src/app/pages/login/login.component.spec.ts b/src/app/pages/graph/graph.component.spec.ts similarity index 57% rename from ExampleUI/src/app/pages/login/login.component.spec.ts rename to src/app/pages/graph/graph.component.spec.ts index d6d85a8..3300b39 100644 --- a/ExampleUI/src/app/pages/login/login.component.spec.ts +++ b/src/app/pages/graph/graph.component.spec.ts @@ -1,20 +1,20 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { LoginComponent } from './login.component'; +import { GraphComponent } from './graph.component'; -describe('LoginComponent', () => { - let component: LoginComponent; - let fixture: ComponentFixture; +describe('GraphComponent', () => { + let component: GraphComponent; + let fixture: ComponentFixture; beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [ LoginComponent ] + declarations: [ GraphComponent ] }) .compileComponents(); })); beforeEach(() => { - fixture = TestBed.createComponent(LoginComponent); + fixture = TestBed.createComponent(GraphComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/src/app/pages/graph/graph.component.ts b/src/app/pages/graph/graph.component.ts new file mode 100644 index 0000000..0b57938 --- /dev/null +++ b/src/app/pages/graph/graph.component.ts @@ -0,0 +1,104 @@ +import { Component, OnInit } from '@angular/core'; +import * as CanvasJS from './canvasjs.min'; +import { ProjectsService } from 'src/app/services/projects.service'; +import { max } from 'rxjs/operators'; + + +@Component({ + selector: 'app-graph', + templateUrl: './graph.component.html', + styleUrls: ['./graph.component.scss'] +}) +export class GraphComponent implements OnInit { + stateData: any; + constructor(private projSvc:ProjectsService) { + projSvc.getProjects().subscribe(result=>{ + this.stateData=result; + this.createGraph(); + }) + } + + createGraph(){ + + + // Initialize max children state (arbitrary) + var max_children = this.stateData["Hawaii"] + + // Create array of states + var state_ID = [this.stateData["Hawaii"], this.stateData.Alaska, this.stateData.Florida, this.stateData["South Carolina"], this.stateData.Georgia, + this.stateData.Alabama, this.stateData["North Carolina"], this.stateData.Tennessee, this.stateData["Rhode Island"], + this.stateData.Connecticut, this.stateData.Massachusetts, this.stateData.Maine, this.stateData["New Hampshire"], this.stateData.Vermont, + this.stateData["New York"], this.stateData["New Jersey"], this.stateData.Pennsylvania, this.stateData.Delaware, + this.stateData.Maryland, this.stateData["West Virginia"], this.stateData.Kentucky, this.stateData.Ohio, this.stateData.Michigan, + this.stateData.Wyoming, this.stateData.Montana, this.stateData.Idaho, this.stateData.Washington, 0, this.stateData.Texas, + this.stateData.California, this.stateData.Arizona, this.stateData.Nevada, this.stateData.Utah, this.stateData.Colorado, + this.stateData["New Mexico"], this.stateData.Oregon, this.stateData["North Dakota"], this.stateData["South Dakota"], this.stateData.Nebraska, + this.stateData.Iowa, this.stateData.Mississippi, this.stateData.Indiana, this.stateData.Illinois, this.stateData.Minnesota, + this.stateData.Wisconsin, this.stateData.Missouri, this.stateData.Arkansas, this.stateData.Oklahoma, this.stateData.Kansas, + this.stateData.Louisiana, this.stateData.Virginia]; + + + // Calculate state with most dates collected + state_ID.forEach(function(d, i){ + if(d.length > max_children.length){ + max_children = d; + } + }); + + + // Create a list of all the dates that are collected + var listOfDates = []; + max_children.forEach(function(d, i){ + listOfDates.push(d.date) + }); + + // Create an array that matches listOfDates in size and fill with total confirmed + var ConfirmedEachDay = [] + + // Initalize confirmed deaths to 0 + for(var i = 0; i < listOfDates.length; i++){ + ConfirmedEachDay.push(0); + } + + // Calculate the total confirmed cases each day + state_ID.forEach(function(d,i){ + for(var k = 0; k < d.length; k++){ + ConfirmedEachDay[ConfirmedEachDay.length-1 - k] += +d[d.length - 1 - k].confirmed; + } + }); + + // Set X and Y coordinates (X: Number of days, Y: Total Confirmed) + let dataPoints = []; + for ( var dateNumber = 0; dateNumber < listOfDates.length; dateNumber++ ) { + dataPoints.push({x: new Date(listOfDates[dateNumber] + " 00:00:00"), y: ConfirmedEachDay[dateNumber-1]}); + } + + // Create the graph + let chart = new CanvasJS.Chart("chartContainer", { + zoomEnabled: true, + animationEnabled: true, + exportEnabled: true, + title: { + text: "Confirmed Cases Over Time", + fontFamily: "Times" + }, + axisX:{ + labelFontFamily: "Times" + }, + axisY:{ + labelFontFamily: "Times" + }, + data: [ + { + type: "line", + dataPoints: dataPoints + }] + }); + + // Render the graph + chart.render(); + } + ngOnInit() { + + } +} diff --git a/ExampleUI/src/favicon.ico b/src/app/pages/home/favicon.ico similarity index 100% rename from ExampleUI/src/favicon.ico rename to src/app/pages/home/favicon.ico diff --git a/ExampleUI/src/app/pages/home/home.component.scss b/src/app/pages/home/home.component.html similarity index 100% rename from ExampleUI/src/app/pages/home/home.component.scss rename to src/app/pages/home/home.component.html diff --git a/ExampleUI/src/app/pages/login/login.component.scss b/src/app/pages/home/home.component.scss similarity index 100% rename from ExampleUI/src/app/pages/login/login.component.scss rename to src/app/pages/home/home.component.scss diff --git a/ExampleUI/src/app/pages/home/home.component.spec.ts b/src/app/pages/home/home.component.spec.ts similarity index 100% rename from ExampleUI/src/app/pages/home/home.component.spec.ts rename to src/app/pages/home/home.component.spec.ts diff --git a/ExampleUI/src/app/pages/home/home.component.ts b/src/app/pages/home/home.component.ts similarity index 83% rename from ExampleUI/src/app/pages/home/home.component.ts rename to src/app/pages/home/home.component.ts index 326244b..4f9e160 100644 --- a/ExampleUI/src/app/pages/home/home.component.ts +++ b/src/app/pages/home/home.component.ts @@ -7,10 +7,11 @@ import { ProjectsService } from 'src/app/services/projects.service'; styleUrls: ['./home.component.scss'] }) export class HomeComponent implements OnInit { - semesters=[]; + stateData: any; constructor(private projSvc:ProjectsService) { projSvc.getProjects().subscribe(result=>{ - this.semesters=result.data.semesters; + this.stateData=result; + //console.log(this.stateData); }) } diff --git a/src/app/pages/home/index.html b/src/app/pages/home/index.html new file mode 100644 index 0000000..5c08bc4 --- /dev/null +++ b/src/app/pages/home/index.html @@ -0,0 +1,16245 @@ + + + + + + ExampleUI + + + + + + + + + + \ No newline at end of file diff --git a/ExampleUI/src/main.ts b/src/app/pages/home/main.ts similarity index 100% rename from ExampleUI/src/main.ts rename to src/app/pages/home/main.ts diff --git a/ExampleUI/src/polyfills.ts b/src/app/pages/home/polyfills.ts similarity index 100% rename from ExampleUI/src/polyfills.ts rename to src/app/pages/home/polyfills.ts diff --git a/ExampleUI/src/styles.scss b/src/app/pages/home/styles.scss similarity index 80% rename from ExampleUI/src/styles.scss rename to src/app/pages/home/styles.scss index 90d4ee0..e50a47e 100644 --- a/ExampleUI/src/styles.scss +++ b/src/app/pages/home/styles.scss @@ -1 +1 @@ -/* You can add global styles to this file, and also import other style files */ +/* You can add global styles to this file, and also import other style files */ \ No newline at end of file diff --git a/ExampleUI/src/test.ts b/src/app/pages/home/test.ts similarity index 100% rename from ExampleUI/src/test.ts rename to src/app/pages/home/test.ts diff --git a/src/app/pages/home/uStates.js b/src/app/pages/home/uStates.js new file mode 100644 index 0000000..77f1d23 --- /dev/null +++ b/src/app/pages/home/uStates.js @@ -0,0 +1,16225 @@ + +(function(){ + var uStatePaths=[ +{id:"HI",n:"Hawaii",d:"M233.08751,519.30948L235.02744,515.75293L237.2907,515.42961L237.61402,516.23791L235.51242,519.30948L233.08751,519.30948ZM243.27217,515.59127L249.4153,518.17784L251.51689,517.85452L253.1335,513.97465L252.48686,510.57977L248.28366,510.09479L244.24213,511.87306L243.27217,515.59127ZM273.9878,525.61427L277.706,531.11074L280.13092,530.78742L281.26255,530.30244L282.7175,531.59573L286.43571,531.43407L287.40568,529.97912L284.49577,528.20085L282.55584,524.48263L280.45424,520.92609L274.63444,523.83599L273.9878,525.61427ZM294.19545,534.50564L295.48874,532.5657L300.17691,533.53566L300.82356,533.05068L306.96668,533.69732L306.64336,534.99062L304.05678,536.44556L299.69193,536.12224L294.19545,534.50564ZM299.53027,539.67879L301.47021,543.55866L304.54176,542.42703L304.86509,540.81041L303.24848,538.70882L299.53027,538.3855L299.53027,539.67879ZM306.4817,538.54716L308.74496,535.63726L313.43313,538.06218L317.79798,539.19381L322.16284,541.94205L322.16284,543.88198L318.6063,545.66026L313.75645,546.63022L311.33154,545.17527L306.4817,538.54716ZM323.13281,554.06663L324.74942,552.77335L328.14431,554.38997L335.74238,557.94651L339.13727,560.0481L340.75387,562.47302L342.69381,566.83787L346.73534,569.42445L346.41202,570.71775L342.53215,573.95097L338.32896,575.40592L336.87401,574.75928L333.80244,576.53754L331.37753,579.77077L329.11427,582.68067L327.33599,582.51901L323.77945,579.93243L323.45613,575.40592L324.10277,572.981L322.48616,567.32286L320.38456,565.54458L320.2229,562.958L322.48616,561.98804L324.58776,558.91648L325.07274,557.94651L323.45613,556.16823L323.13281,554.06663Z"}, +{id:"AK",n:"Alaska",d:"M158.07671,453.67502L157.75339,539.03215L159.36999,540.00211L162.44156,540.16377L163.8965,539.03215L166.48308,539.03215L166.64475,541.94205L173.59618,548.73182L174.08117,551.3184L177.47605,549.37846L178.1227,549.2168L178.44602,546.14524L179.90096,544.52863L181.0326,544.36697L182.97253,542.91201L186.04409,545.01361L186.69074,547.92352L188.63067,549.05514L189.7623,551.48006L193.64218,553.25833L197.03706,559.2398L199.78529,563.11966L202.04855,565.86791L203.50351,569.58611L208.515,571.36439L213.68817,573.46598L214.65813,577.83084L215.14311,580.9024L214.17315,584.29729L212.39487,586.56054L210.77826,585.75224L209.32331,582.68067L206.57507,581.22573L204.7968,580.09409L203.98849,580.9024L205.44344,583.65065L205.6051,587.36885L204.47347,587.85383L202.53354,585.9139L200.43195,584.62061L200.91693,586.23722L202.21021,588.0155L201.40191,588.8238C201.40191,588.8238,200.59361,588.50048,200.10863,587.85383C199.62363,587.20719,198.00703,584.45895,198.00703,584.45895L197.03706,582.19569C197.03706,582.19569,196.71374,583.48898,196.06709,583.16565C195.42044,582.84233,194.7738,581.71071,194.7738,581.71071L196.55207,579.77077L195.09712,578.31582L195.09712,573.30432L194.28882,573.30432L193.48052,576.6992L192.34888,577.1842L191.37892,573.46598L190.73227,569.74777L189.92396,569.26279L190.24729,574.92094L190.24729,576.05256L188.79233,574.75928L185.23579,568.77781L183.13419,568.29283L182.48755,564.57462L180.87094,561.66472L179.25432,560.53308L179.25432,558.26983L181.35592,556.97654L180.87094,556.65322L178.28436,557.29986L174.88947,554.87495L172.30289,551.96504L167.45306,549.37846L163.41152,546.79188L164.70482,543.55866L164.70482,541.94205L162.92654,543.55866L160.01664,544.69029L156.29843,543.55866L150.64028,541.13375L145.14381,541.13375L144.49717,541.61873L138.03072,537.73885L135.92912,537.41553L133.18088,531.59573L129.62433,531.91905L126.06778,533.374L126.55277,537.90052L127.68439,534.99062L128.65437,535.31394L127.19941,539.67879L130.43263,536.93055L131.07928,538.54716L127.19941,542.91201L125.90612,542.58869L125.42114,540.64875L124.12785,539.84045L122.83456,540.97208L120.08632,539.19381L117.01475,541.29541L115.23649,543.397L111.8416,545.4986L107.15342,545.33693L106.66844,543.23534L110.38664,542.58869L110.38664,541.29541L108.12338,540.64875L109.09336,538.22384L111.35661,534.34397L111.35661,532.5657L111.51827,531.75739L115.88313,529.49413L116.85309,530.78742L119.60134,530.78742L118.30805,528.20085L114.58983,527.87752L109.57834,530.62576L107.15342,534.02064L105.37515,536.60723L104.24352,538.87049L100.04033,540.32543L96.96876,542.91201L96.645439,544.52863L98.908696,545.4986L99.717009,547.60018L96.96876,550.83341L90.502321,555.03661L82.742574,559.2398L80.640977,560.37142L75.306159,561.50306L69.971333,563.76631L71.749608,565.0596L70.294654,566.51455L69.809672,567.64618L67.061434,566.67621L63.828214,566.83787L63.019902,569.10113L62.049939,569.10113L62.37326,566.67621L58.816709,567.96951L55.90681,568.93947L52.511924,567.64618L49.602023,569.58611L46.368799,569.58611L44.267202,570.87941L42.65059,571.68771L40.548995,571.36439L37.962415,570.23276L35.699158,570.87941L34.729191,571.84937L33.112578,570.71775L33.112578,568.77781L36.184142,567.48452L42.488929,568.13117L46.853782,566.51455L48.955378,564.41296L51.86528,563.76631L53.643553,562.958L56.391794,563.11966L58.008406,564.41296L58.978369,564.08964L61.241626,561.3414L64.313196,560.37142L67.708076,559.72478L69.00137,559.40146L69.648012,559.88644L70.456324,559.88644L71.749608,556.16823L75.791141,554.71329L77.731077,550.99508L79.994336,546.46856L81.610951,545.01361L81.934272,542.42703L80.317657,543.72032L76.922764,544.36697L76.276122,541.94205L74.982838,541.61873L74.012865,542.58869L73.851205,545.4986L72.39625,545.33693L70.941306,539.51713L69.648012,540.81041L68.516388,540.32543L68.193068,538.3855L64.151535,538.54716L62.049939,539.67879L59.463361,539.35547L60.918305,537.90052L61.403286,535.31394L60.756645,533.374L62.211599,532.40404L63.504883,532.24238L62.858241,530.4641L62.858241,526.09925L61.888278,525.12928L61.079966,526.58423L54.936843,526.58423L53.481892,525.29094L52.835247,521.41108L50.733651,517.85452L50.733651,516.88456L52.835247,516.07625L52.996908,513.97465L54.128536,512.84303L53.320231,512.35805L52.026941,512.84303L50.895313,510.09479L51.86528,505.08328L56.391794,501.85007L58.978369,500.23345L60.918305,496.51525L63.666554,495.22195L66.253132,496.35359L66.576453,498.77851L69.00137,498.45517L72.23459,496.03026L73.851205,496.67691L74.821167,497.32355L76.437782,497.32355L78.701041,496.03026L79.509354,491.6654C79.509354,491.6654,79.832675,488.75551,80.479317,488.27052C81.125959,487.78554,81.44928,487.30056,81.44928,487.30056L80.317657,485.36062L77.731077,486.16893L74.497847,486.97723L72.557911,486.49225L69.00137,484.71397L63.989875,484.55231L60.433324,480.83411L60.918305,476.95424L61.564957,474.52932L59.463361,472.75105L57.523423,469.03283L58.008406,468.22453L64.798177,467.73955L66.899773,467.73955L67.869736,468.70951L68.516388,468.70951L68.354728,467.0929L72.23459,466.44626L74.821167,466.76958L76.276122,467.90121L74.821167,470.00281L74.336186,471.45775L77.084435,473.07437L82.095932,474.85264L83.874208,473.88268L81.610951,469.51783L80.640977,466.2846L81.610951,465.47629L78.21606,463.53636L77.731077,462.40472L78.21606,460.78812L77.407756,456.90825L74.497847,452.22007L72.072929,448.01688L74.982838,446.07694L78.21606,446.07694L79.994336,446.72359L84.197528,446.56193L87.915733,443.00539L89.047366,439.93382L92.765578,437.5089L94.382182,438.47887L97.130421,437.83222L100.84863,435.73062L101.98027,435.56896L102.95023,436.37728L107.47674,436.21561L110.22498,433.14405L111.35661,433.14405L114.91316,435.56896L116.85309,437.67056L116.36811,438.80219L117.01475,439.93382L118.63137,438.31721L122.51124,438.64053L122.83456,442.35873L124.7745,443.81369L131.88759,444.46033L138.19238,448.66352L139.64732,447.69356L144.82049,450.28014L146.92208,449.6335L148.86202,448.82518L153.71185,450.76512L158.07671,453.67502ZM42.973913,482.61238L45.075509,487.9472L44.913847,488.91717L42.003945,488.59384L40.225672,484.55231L38.447399,483.09737L36.02248,483.09737L35.86082,480.51078L37.639093,478.08586L38.770722,480.51078L40.225672,481.96573L42.973913,482.61238ZM40.387333,516.07625L44.105542,516.88456L47.823749,517.85452L48.632056,518.8245L47.015444,522.5427L43.94388,522.38104L40.548995,518.8245L40.387333,516.07625ZM19.694697,502.01173L20.826327,504.5983L21.957955,506.21492L20.826327,507.02322L18.72473,503.95166L18.72473,502.01173L19.694697,502.01173ZM5.9534943,575.0826L9.3483796,572.81934L12.743265,571.84937L15.329845,572.17269L15.814828,573.7893L17.754763,574.27429L19.694697,572.33436L19.371375,570.71775L22.119616,570.0711L25.029518,572.65768L23.897889,574.43595L19.533037,575.56758L16.784795,575.0826L13.066588,573.95097L8.7017347,575.40592L7.0851227,575.72924L5.9534943,575.0826ZM54.936843,570.55609L56.553455,572.49602L58.655048,570.87941L57.2001,569.58611L54.936843,570.55609ZM57.846745,573.62764L58.978369,571.36439L61.079966,571.68771L60.271663,573.62764L57.846745,573.62764ZM81.44928,571.68771L82.904234,573.46598L83.874208,572.33436L83.065895,570.39442L81.44928,571.68771ZM90.17899,559.2398L91.310623,565.0596L94.220522,565.86791L99.232017,562.958L103.59687,560.37142L101.98027,557.94651L102.46525,555.52159L100.36365,556.81488L97.453752,556.00657L99.070357,554.87495L101.01029,555.68325L104.89016,553.90497L105.37515,552.45003L102.95023,551.64172L103.75853,549.70178L101.01029,551.64172L96.322118,555.19827L91.472284,558.10817L90.17899,559.2398ZM132.53423,539.35547L134.95915,537.90052L133.98918,536.12224L132.21091,537.09221L132.53423,539.35547Z"}, +{id:"FL",n:"Florida",d:"M759.8167,439.1428L762.08236,446.4614L765.81206,456.20366L771.14685,465.57996L774.86504,471.88472L779.71486,477.38118L783.75637,481.09937L785.37297,484.00926L784.24135,485.30254L783.43305,486.59582L786.34293,494.03221L789.25282,496.94209L791.83939,502.27689L795.39592,508.09667L799.92241,516.34135L801.2157,523.93939L801.70068,535.90227L802.34732,537.68053L802.024,541.0754L799.59909,542.36869L799.92241,544.30861L799.27577,546.24854L799.59909,548.67344L800.08407,550.61337L797.33585,553.84658L794.2643,555.30152L790.38445,555.46318L788.9295,557.07979L786.5046,558.04975L785.21131,557.56477L784.07969,556.59481L783.75637,553.68492L782.94806,550.29005L779.55319,545.11691L775.99666,542.85367L772.11681,542.53035L771.30851,543.82363L768.23696,539.4588L767.59032,535.90227L765.00375,531.86076L763.22549,530.72913L761.60888,532.83072L759.83062,532.5074L757.72903,527.49592L754.81914,523.61607L751.90925,518.28128L749.32269,515.20973L745.76616,511.49154L747.86774,509.06663L751.10095,503.57017L750.93929,501.95357L746.4128,500.98361L744.79619,501.63025L745.11952,502.27689L747.70608,503.24685L746.25114,507.77335L745.44284,508.25833L743.66457,504.21682L742.37129,499.367L742.04797,496.61877L743.50291,491.93062L743.50291,482.39265L740.43136,478.67446L739.13808,475.60291L733.96494,474.30963L732.02502,473.66299L730.40841,471.07642L727.01354,469.45981L725.88192,466.06494L723.13369,465.09498L720.70878,461.37679L716.50561,459.92185L713.59572,458.4669L711.00916,458.4669L706.96764,459.27521L706.80598,461.21513L707.61429,462.18509L707.1293,463.31672L704.05776,463.15506L700.33957,466.71159L696.78303,468.65151L692.90318,468.65151L689.66997,469.9448L689.34665,467.19657L687.73005,465.25664L684.82016,464.12502L683.20356,462.67007L675.12053,458.79022L667.52249,457.01196L663.15766,457.6586L657.17622,458.14358L651.19478,460.24517L647.71554,460.85813L647.47762,452.80838L644.89105,450.86846L643.11278,449.09019L643.4361,446.01863L653.62072,444.72535L679.16312,441.81546L685.95287,441.16882L691.38887,441.44909L693.97544,445.32895L695.43038,446.78389L703.52854,447.29911L714.34829,446.65247L735.86068,445.35918L741.3064,444.68481L746.41398,444.88932L746.84081,447.79921L749.07381,448.60751L749.30875,443.97751L747.78053,439.80456L749.08893,438.36473L754.64356,438.81948L759.8167,439.1428ZM772.36211,571.54788L774.78703,570.90124L776.08031,570.65875L777.53527,568.31466L779.87935,566.69805L781.17264,567.18304L782.87008,567.50636L783.27423,568.55715L779.79853,569.76961L775.59533,571.22456L773.25125,572.43702L772.36211,571.54788ZM785.86081,566.53639L787.07327,567.58719L789.82151,565.4856L795.15632,561.28241L798.87452,557.40254L801.38027,550.77444L802.35024,549.077L802.5119,545.68212L801.78442,546.1671L800.81446,548.99617L799.3595,553.6035L796.12628,558.8575L791.76144,563.06068L788.36656,565.00061L785.86081,566.53639Z"}, +{id:"NH",n:"New Hampshire",d:"M880.79902,142.42476L881.66802,141.34826L882.75824,138.05724L880.21516,137.14377L879.73017,134.07221L875.85032,132.94059L875.527,130.19235L868.25225,106.75153L863.65083,92.208542L862.75375,92.203482L862.10711,93.820087L861.46047,93.335106L860.4905,92.365143L859.03556,94.305068L858.98709,99.337122L859.29874,105.00434L861.23866,107.75258L861.23866,111.7941L857.52046,116.85688L854.93389,117.98852L854.93389,119.12014L856.06552,120.89841L856.06552,129.46643L855.25721,138.6811L855.09555,143.53092L856.06552,144.82422L855.90386,149.35071L855.41887,151.12899L856.38768,151.83821L873.17535,147.41366L875.35022,146.81121L877.19379,144.03788L880.79902,142.42476Z"}, +{id:"MI",n:"Michigan",d:"M581.61931,82.059006L583.4483,80.001402L585.62022,79.201221L590.99286,75.314624L593.27908,74.743065L593.73634,75.200319L588.59232,80.344339L585.27728,82.287628L583.21967,83.202124L581.61931,82.059006ZM667.79369,114.18719L668.44033,116.69293L671.67355,116.85459L672.96684,115.64213C672.96684,115.64213,672.88601,114.18719,672.56269,114.02552C672.23936,113.86386,670.94608,112.16642,670.94608,112.16642L668.76366,112.40891L667.14704,112.57057L666.82372,113.7022L667.79369,114.18719ZM567.49209,111.21318L568.20837,110.63278L570.9566,109.82447L574.51313,107.56123L574.51313,106.59126L575.15978,105.94462L581.14121,104.97466L583.56612,103.03473L587.93095,100.93315L588.09261,99.639864L590.03254,96.729975L591.8108,95.921673L593.10409,94.143408L595.36733,91.880161L599.73217,89.455254L604.42032,88.970273L605.55194,90.101896L605.22862,91.071859L601.51043,92.041822L600.05549,95.113371L597.79224,95.921673L597.30726,98.34658L594.88235,101.57979L594.55903,104.16636L595.36733,104.65134L596.3373,103.51972L599.89383,100.60983L601.18711,101.90311L603.45036,101.90311L606.68357,102.87307L608.13851,104.0047L609.59345,107.07625L612.34168,109.82447L616.22153,109.66281L617.67648,108.69285L619.29308,109.98613L620.90969,110.47112L622.20297,109.66281L623.33459,109.66281L624.9512,108.69285L628.99271,105.13632L632.38758,104.0047L639.01566,103.68138L643.54215,101.74145L646.12872,100.44817L647.58367,100.60983L647.58367,106.26794L648.06865,106.59126L650.97853,107.39957L652.91846,106.91458L659.06156,105.29798L660.19318,104.16636L661.64813,104.65134L661.64813,111.60274L664.88134,114.67429L666.17462,115.32093L667.4679,116.29089L666.17462,116.61421L665.36632,116.29089L661.64813,115.80591L659.54654,116.45255L657.28329,116.29089L654.05008,117.74584L652.27182,117.74584L646.45204,116.45255L641.27891,116.61421L639.33898,119.20078L632.38758,119.84742L629.96267,120.65572L628.83105,123.72727L627.53777,124.8589L627.05279,124.69724L625.59784,123.08063L621.07135,125.50554L620.42471,125.50554L619.29308,123.88893L618.48478,124.05059L616.54486,128.41543L615.57489,132.45694L612.39377,139.45774L611.21701,138.42347L609.84527,137.39215L607.90449,127.10413L604.36001,125.73408L602.30743,123.44785L590.18707,120.70437L587.3318,119.67473L579.10138,117.50199L571.21139,116.35887L567.49209,111.21318ZM697.8,177.2L694.6,168.9L692.3,159.9L689.9,156.7L687.3,154.9L685.7,156L681.8,157.8L679.9,162.8L677.1,166.5L676,167.2L674.5,166.5C674.5,166.5,671.9,165.1,672.1,164.4C672.3,163.8,672.6,159.4,672.6,159.4L676,158.1L676.8,154.7L677.4,152.1L679.9,150.5L679.5,140.5L677.9,138.2L676.6,137.4L675.8,135.3L676.6,134.5L678.2,134.8L678.4,133.2L676,131L674.7,128.4L672.1,128.4L667.6,126.9L662.1,123.5L659.3,123.5L658.7,124.2L657.7,123.7L654.6,121.4L651.7,123.2L648.8,125.5L649.2,129L650.1,129.3L652.2,129.8L652.7,130.6L650.1,131.4L647.5,131.8L646.1,133.5L645.8,135.6L646.1,137.3L646.4,142.8L642.8,144.9L642.2,144.7L642.2,140.5L643.5,138.1L644.1,135.6L643.3,134.8L641.4,135.6L640.4,139.8L637.7,141L635.9,142.9L635.7,143.9L636.4,144.7L635.7,147.3L633.5,147.8L633.5,148.9L634.3,151.3L633.1,157.5L631.5,161.5L632.2,166.2L632.7,167.3L631.9,169.8L631.5,170.6L631.2,173.3L634.8,179.3L637.7,185.8L639.1,190.6L638.3,195.3L637.3,201.3L634.9,206.4L634.6,209.2L631.3,212.3L635.8,212.1L657.2,209.9L664.4,208.9L664.5,210.5L671.4,209.3L681.7,207.8L685.5,207.4L685.7,206.8L685.8,205.3L687.9,201.6L689.9,199.9L689.7,194.8L691.3,193.2L692.4,192.9L692.6,189.3L694.2,186.3L695.2,186.9L695.4,187.5L696.2,187.7L698.1,186.7L697.8,177.2Z"}, +{id:"VT",n:"Vermont",d:"M844.48416,154.05791L844.80086,148.71228L841.91015,137.92811L841.26351,137.60479L838.35361,136.3115L839.16191,133.40161L838.35361,131.30002L835.65356,126.66004L836.62353,122.78018L835.81522,117.60703L833.39031,111.14059L832.58474,106.21808L859.0041,99.48626L859.3128,105.00847L861.22906,107.7507L861.22906,111.79222L857.52191,116.85021L854.93534,117.99288L854.92429,119.11345L856.23426,120.63257L855.92333,128.73054L855.3139,137.9894L855.08595,143.54634L856.05591,144.83963L855.89425,149.41032L855.40927,151.10021L856.42345,151.82737L848.9859,153.33408L844.48416,154.05791Z"}, +{id:"ME",n:"Maine",d:"M922.83976,78.830719L924.77969,80.932305L927.04294,84.650496L927.04294,86.590422L924.94135,91.278575L923.00142,91.925217L919.60655,94.996766L914.75674,100.49322C914.75674,100.49322,914.1101,100.49322,913.46346,100.49322C912.81682,100.49322,912.49349,98.391636,912.49349,98.391636L910.71523,98.553296L909.74527,100.00824L907.32036,101.46319L906.3504,102.91813L907.967,104.37307L907.48202,105.01972L906.99704,107.76794L905.05711,107.60628L905.05711,105.98968L904.73379,104.69639L903.27885,105.01972L901.50058,101.78651L899.399,103.07979L900.69228,104.53473L901.0156,105.66636L900.2073,106.95964L900.53062,110.03119L900.69228,111.64779L899.07568,114.23436L896.16579,114.71934L895.84247,117.62923L890.50767,120.70078L889.21439,121.18576L887.59778,119.73082L884.52623,123.28735L885.4962,126.52056L884.04125,127.81384L883.87959,132.17867L882.75631,138.43803L880.29406,137.28208L879.80907,134.21052L875.92922,133.07889L875.6059,130.33065L868.33115,106.88983L863.63257,92.250088L865.05311,92.131923L866.5669,92.541822L866.5669,89.955254L867.8752,85.458798L870.46177,80.770645L871.91672,76.729133L869.97679,74.304226L869.97679,68.322789L870.78509,67.352826L871.5934,64.604598L871.43174,63.149654L871.27007,58.29984L873.04834,53.450026L875.95823,44.5587L878.05981,40.355528L879.3531,40.355528L880.64638,40.517188L880.64638,41.648811L881.93967,43.912058L884.68789,44.5587L885.4962,43.750397L885.4962,42.780435L889.53771,39.870546L891.31597,38.092281L892.77092,38.253942L898.75235,40.678849L900.69228,41.648811L909.74527,71.555998L915.7267,71.555998L916.53501,73.495924L916.69667,78.345738L919.60655,80.608984L920.41486,80.608984L920.57652,80.124003L920.09154,78.99238L922.83976,78.830719ZM901.90801,108.97825L903.44379,107.44247L904.81791,108.49327L905.38372,110.91819L903.68628,111.80732L901.90801,108.97825ZM908.61694,103.07763L910.39521,104.93673C910.39521,104.93673,911.6885,105.01755,911.6885,104.69423C911.6885,104.37091,911.93099,102.67347,911.93099,102.67347L912.82013,101.86517L912.01182,100.08689L909.99106,100.81437L908.61694,103.07763Z"}, +{id:"RI",n:"Rhode Island",d:"M874.07001,178.89536L870.37422,163.93937L876.6435,162.09423L878.83463,164.02135L882.14112,168.342L884.82902,172.74409L881.82968,174.36888L880.5364,174.20722L879.40478,175.98549L876.97987,177.92541L874.07001,178.89536Z"}, +{id:"NY",n:"New York",d:"M830.37944,188.7456L829.24781,187.77564L826.66123,187.61398L824.39799,185.67406L822.76738,179.54493L819.30892,179.63547L816.86521,176.92727L797.47989,181.30921L754.47811,190.0389L746.94846,191.26689L746.2103,184.79855L747.6384,183.67317L748.93168,182.54155L749.90165,180.92494L751.67991,179.79332L753.61984,178.01505L754.10482,176.39845L756.2064,173.65022L757.33803,172.68026L757.17637,171.71029L755.88308,168.63875L754.10482,168.47709L752.16489,162.33399L755.07478,160.55572L759.43961,159.10078L763.48113,157.80749L766.71434,157.32251L773.01909,157.16085L774.95902,158.45414L776.57562,158.6158L778.67721,157.32251L781.26378,156.19089L786.43691,155.70591L788.5385,153.92764L790.31676,150.69443L791.93337,148.75451L794.03495,148.75451L795.97488,147.62288L796.13654,145.35964L794.6816,143.25805L794.35828,141.80311L795.4899,139.70152L795.4899,138.24658L793.71163,138.24658L791.93337,137.43828L791.12507,136.30665L790.96341,133.72008L796.78318,128.22363L797.42982,127.41533L798.88477,124.50544L801.79466,119.97894L804.54289,116.26075L806.64447,113.83585L809.05957,112.01024L812.14093,110.7643L817.63738,109.47101L820.87059,109.63267L825.39709,108.17773L832.96228,106.10656L833.48207,111.08623L835.90699,117.55267L836.71529,122.72582L835.74533,126.60568L838.3319,131.13218L839.1402,133.23377L838.3319,136.14367L841.2418,137.43695L841.88844,137.76027L844.96,148.75321L844.42371,153.81288L843.93873,164.64415L844.74703,170.14062L845.55533,173.69716L847.01028,180.9719L847.01028,189.05494L845.87865,191.31819L847.71798,193.31098L848.51453,194.9894L846.57461,196.76767L846.89793,198.06095L848.19121,197.73763L849.64616,196.44435L851.9094,193.85778L853.04103,193.21114L854.65763,193.85778L856.92088,194.01944L864.84224,190.13959L867.75213,187.39136L869.04541,185.93642L873.24858,187.55302L869.85371,191.10955L865.97386,194.01944L858.8608,199.35423L856.27424,200.3242L850.45446,202.26412L846.41295,203.39575L845.23821,202.86282L844.99419,199.17429L845.47917,196.42605L845.31751,194.32447L842.504,192.62547L837.9775,191.6555L834.09764,190.52388L830.37944,188.7456Z"}, +{id:"PA",n:"Pennsylvania",d:"M825.1237,224.69205L826.43212,224.42105L828.76165,223.1678L829.97353,220.68473L831.59014,218.42148L834.82335,215.34992L834.82335,214.54162L832.39844,212.92502L828.8419,210.5001L827.87194,207.91353L825.1237,207.59021L824.96204,206.45858L824.15374,203.71035L826.417,202.57873L826.57866,200.15381L825.28536,198.86052L825.44702,197.24391L827.38696,194.17236L827.38696,191.1008L830.08459,188.45492L829.16431,187.77994L826.64023,187.58703L824.34574,185.64711L822.79582,179.53105L819.29124,179.63157L816.83601,176.92824L798.74502,181.12601L755.74324,189.8557L746.85189,191.31064L746.23122,184.78925L740.86869,189.8569L739.5754,190.34188L735.37311,193.35077L738.28387,212.48822L740.76553,222.21758L744.33733,241.47907L747.60664,240.84139L759.55022,239.33892L797.47685,231.67372L812.35306,228.8504L820.65341,227.22804L820.92052,226.98951L823.02212,225.37289L825.1237,224.69205Z"}, +{id:"NJ",n:"New Jersey",d:"M829.67942,188.46016L827.35687,191.19443L827.35687,194.26599L825.41693,197.33754L825.25527,198.95416L826.54857,200.24744L826.38691,202.67236L824.12365,203.80398L824.93195,206.55221L825.09361,207.68384L827.84185,208.00716L828.81181,210.59373L832.36835,213.01865L834.79326,214.63525L834.79326,215.44356L831.81005,218.14012L830.19344,220.40336L828.73849,223.1516L826.47524,224.44488L826.01279,226.04736L825.77029,227.25982L825.16106,229.86656L826.25333,232.11075L829.48654,235.02064L834.33635,237.28389L838.37786,237.93053L838.53952,239.38547L837.73122,240.35543L838.05454,243.10366L838.86284,243.10366L840.96443,240.67876L841.77273,235.82894L844.52096,231.78743L847.59251,225.32101L848.72413,219.82456L848.07749,218.69293L847.91583,209.31662L846.29922,205.92176L845.1676,206.73006L842.41937,207.05338L841.93439,206.5684L843.06602,205.59843L845.1676,203.65851L845.23066,202.56468L844.84627,199.13084L845.41964,196.3826L845.30217,194.41359L842.49463,192.66324L837.40249,191.48748L833.26505,190.10585L829.67942,188.46016Z"}, +{id:"DE",n:"Delaware",d:"M825.6261,228.2791L825.99441,226.13221L826.36948,224.44116L824.74648,224.83892L823.13102,225.30648L820.92476,227.07078L822.64488,232.11366L824.90814,237.77178L827.00972,247.47143L828.62634,253.77621L833.63782,253.61455L839.77994,252.43387L837.51571,245.0476L836.54574,245.53258L832.98921,243.10768L831.21095,238.41952L829.27102,234.86299L826.1239,231.99268L825.25974,229.89456L825.6261,228.2791Z"}, +{id:"MD",n:"Maryland",d:"M839.79175,252.41476L833.7832,253.6186L828.6403,253.73606L826.79674,246.81373L824.87193,237.64441L822.29931,231.45596L821.01093,227.05763L813.50491,228.67999L798.6287,231.50331L761.17727,239.05421L762.30857,244.06587L763.27853,249.72398L763.60185,249.40066L765.70345,246.97576L767.96669,244.3581L770.3916,243.74254L771.84656,242.28759L773.62482,239.70102L774.9181,240.34767L777.82799,240.02434L780.41457,237.92276L782.42146,236.46949L784.26669,235.98451L785.91104,237.11446L788.82093,238.5694L790.76085,240.34767L791.97331,241.88345L796.09566,243.58088L796.09566,246.49077L801.59212,247.78406L802.73656,248.32604L804.14846,246.29772L807.03043,248.26788L805.75226,250.74981L804.98699,254.73547L803.20873,257.32204L803.20873,259.42363L803.85537,261.2019L808.91932,262.55759L813.23042,262.49587L816.30196,263.46584L818.40355,263.78916L819.37351,261.68757L817.91857,259.58599L817.91857,257.80772L815.49366,255.70613L813.39208,250.20968L814.68536,244.87488L814.5237,242.7733L813.23042,241.48001C813.23042,241.48001,814.68536,239.86341,814.68536,239.21677C814.68536,238.57012,815.17034,237.11518,815.17034,237.11518L817.11027,235.8219L819.05019,234.20529L819.53517,235.17526L818.08023,236.79186L816.78695,240.51005L817.11027,241.64167L818.88853,241.96499L819.37351,247.46145L817.27193,248.43141L817.59525,251.98794L818.08023,251.82628L819.21185,249.88636L820.82846,251.66462L819.21185,252.95791L818.88853,256.35278L821.4751,259.74765L825.35495,260.23263L826.97156,259.42433L830.20811,263.60726L831.56646,264.14356L838.22013,261.34661L840.22771,257.32274L839.79175,252.41476ZM823.82217,261.44348L824.95379,263.94923L825.11545,265.7275L826.24708,267.5866C826.24708,267.5866,827.13622,266.69746,827.13622,266.37414C827.13622,266.05082,826.40875,263.30258,826.40875,263.30258L825.68127,260.95849L823.82217,261.44348Z"}, +{id:"VA",n:"Virginia",d:"M831.63885,266.06892L831.49494,264.12189L837.94837,261.57201L837.17796,264.78985L834.25801,268.56896L833.83992,273.15478L834.30167,276.54522L832.4737,281.52338L830.30943,283.43952L828.83909,278.79871L829.28498,273.3496L830.87198,269.16653L831.63885,266.06892ZM834.97904,294.37028L776.80486,306.94571L739.37789,312.22478L732.69956,311.8496L730.11431,313.77598L722.77518,313.99667L714.39307,314.97434L703.47811,316.58896L713.94754,310.97776L713.93442,308.90283L715.45447,306.7567L726.00825,295.25527L729.95497,299.73273L733.73798,300.69671L736.28144,299.55639L738.51866,298.24523L741.05527,299.58875L744.96944,298.16099L746.84617,293.60465L749.44709,294.14467L752.30233,292.01342L754.1016,292.50702L756.92881,288.83045L757.27706,286.74734L756.3134,285.47177L757.31617,283.60514L762.59044,271.32799L763.20721,265.59291L764.4361,265.06937L766.61463,267.51224L770.55049,267.21107L772.4797,259.63744L775.27369,259.07658L776.32344,256.33551L778.90326,253.98863L781.67509,248.29344L781.76002,243.22589L791.58153,247.04871C792.26238,247.38913,792.41441,241.99956,792.41441,241.99956L796.06697,243.59789L796.1353,246.53605L801.91955,247.83554L804.0525,249.01174L805.71242,251.06743L805.05787,254.7161L803.11043,257.30708L803.22028,259.36615L803.80924,261.21906L808.78799,262.48749L813.23926,262.52737L816.30809,263.48601L818.2516,263.79531L818.96641,266.88377L822.15685,267.2863L823.02492,268.48632L822.58543,273.1764L823.96016,274.27895L823.48121,276.20934L824.71062,276.99911L824.48882,278.38371L821.79483,278.28877L821.88379,279.90429L824.16478,281.44716L824.28632,282.85906L826.05943,284.64444L826.55122,287.16857L823.99818,288.54988L825.5704,290.04418L831.37142,288.35835L834.97904,294.37028Z"}, +{id:"WV",n:"West Virginia",d:"M761.18551,238.96731L762.29752,243.91184L763.38096,249.94317L765.51125,247.36283L767.77449,244.29127L770.31287,243.67572L771.76782,242.22078L773.54609,239.63421L774.99107,240.28085L777.90096,239.95753L780.48754,237.85594L782.49443,236.40268L784.33966,235.91769L785.64358,236.93416L789.28683,238.75579L791.22676,240.53406L792.60088,241.82734L791.83916,247.38228L786.00425,244.84106L781.759,243.21904L781.65786,248.39747L778.91022,253.9342L776.38019,256.36086L775.1881,259.11025L772.54452,259.61035L771.64668,263.21223L770.60345,267.1619L766.63521,267.50264L764.31148,265.06376L763.24033,265.62317L762.60765,271.09287L761.25736,274.62737L756.29896,285.58234L757.19565,286.74304L756.98979,288.65158L754.1811,292.53605L752.3726,291.99176L749.40455,294.1515L746.86217,293.57929L744.86294,298.13486C744.86294,298.13486,741.60363,299.56508,740.94003,299.50258C740.77952,299.48746,738.47093,298.25348,738.47093,298.25348L736.13441,299.63285L733.72461,300.67725L729.97992,299.78813L728.85852,298.61985L726.6663,295.59649L723.52371,293.60837L721.81214,289.98513L717.52726,286.51694L716.88061,284.25369L714.29404,282.79874L713.48573,281.18214L713.24324,275.92816L715.42566,275.84733L717.3656,275.03903L717.52726,272.2908L719.14386,270.83585L719.30552,265.82437L720.27548,261.94451L721.56877,261.29787L722.86205,262.42949L723.34704,264.20776L725.12531,263.23779L725.61029,261.62119L724.47867,259.84292L724.47867,257.41801L725.44863,256.12472L727.71188,252.72985L729.00516,251.27491L731.10676,251.75989L733.37,250.14327L736.44155,246.7484L738.70481,242.86854L739.02813,237.21043L739.51311,232.19894L739.51311,227.51078L738.38149,224.43923L739.35145,222.98427L740.63493,221.69099L744.12618,241.51811L748.75719,240.76696L761.18551,238.96731Z"}, +{id:"OH",n:"Ohio",d:"M735.32497,193.32832L729.23143,197.38167L725.35158,199.64492L721.95671,203.36311L717.9152,207.24296L714.68199,208.05126L711.7721,208.53624L706.27564,211.12281L704.17406,211.28447L700.77919,208.21292L695.60605,208.85957L693.01949,207.40462L690.63842,206.05379L685.74585,206.7572L675.56123,208.37381L664.35436,210.55854L665.64765,225.18882L667.42592,238.92999L670.01248,262.37079L670.5783,267.20196L674.70065,267.07294L677.12556,266.26463L680.48936,267.76777L682.55985,272.1326L687.69879,272.1155L689.59053,274.2342L691.3517,274.1689L693.89009,272.82744L696.39426,273.19894L701.81554,273.68162L703.54251,271.54894L705.88816,270.25566L707.95865,269.57481L708.60529,272.32305L710.38357,273.29301L713.85926,275.63708L716.04168,275.55626L717.3748,275.06378L717.55951,272.30225L719.14487,270.84729L719.24403,266.05457C719.24403,266.05457,720.26799,261.94551,720.26799,261.94551L721.56726,261.34423L722.88861,262.49197L723.42676,264.18899L725.14589,263.15157L725.58487,261.69082L724.46818,259.78776L724.53447,257.47333L725.28347,256.40102L727.43623,253.09454L728.48645,251.5512L730.58804,252.03618L732.85129,250.41957L735.92284,247.0247L738.69433,242.94597L739.01466,237.89046L739.49964,232.87897L739.32286,227.57209L738.36802,224.67731L738.71926,223.48753L740.52365,221.73742L738.23486,212.69009L735.32497,193.32832Z"}, +{id:"IN",n:"Indiana",d:"M619.56954,299.97132L619.63482,297.11274L620.11981,292.58623L622.38305,289.67635L624.16133,285.79648L626.74789,281.59331L626.26291,275.77352L624.48465,273.02529L624.16133,269.79208L624.96963,264.29561L624.48465,257.3442L623.19135,241.33979L621.89807,225.98203L620.9276,214.26201L623.99866,215.15152L625.45361,216.12148L626.58523,215.79816L628.68682,213.85824L631.51639,212.24125L636.60919,212.07921L658.59506,209.81595L664.17079,209.28279L665.67393,225.239L669.92528,262.08055L670.52374,267.85215L670.15224,270.1154L671.38022,271.91077L671.47661,273.28332L668.95532,274.88283L665.41589,276.43414L662.21376,276.98442L661.6153,281.85135L657.04061,285.16382L654.24419,289.17426L654.56751,291.55099L653.98617,293.08519L650.6597,293.08519L649.07417,291.46859L646.58086,292.73079L643.8979,294.23393L644.05957,297.28838L642.86578,297.54641L642.3979,296.52827L640.23102,295.02513L636.9807,296.36661L635.42939,299.37286L633.99155,298.56456L632.5366,296.96505L628.07226,297.45004L622.47943,298.42L619.56954,299.97132Z"}, +{id:"IL",n:"Illinois",d:"M619.54145,300.34244L619.5727,297.11273L620.14009,292.46677L622.47262,289.55091L624.33927,285.47515L626.57229,281.47982L626.20079,276.22742L624.19558,272.68485L624.0992,269.33817L624.79403,264.06866L623.96862,256.89029L622.90228,241.11284L621.609,226.0955L620.68672,214.4563L620.41421,213.53491L619.60591,210.94834L618.31263,207.23015L616.69602,205.45188L615.24108,202.86532L615.00751,197.37636L569.21108,199.97461L569.4397,202.34656L571.72593,203.03243L572.64041,204.17554L573.09766,206.00452L576.98424,209.43386L577.67012,211.72009L576.98424,215.14943L575.15526,218.80739L574.4694,221.32223L572.18317,223.15122L570.35419,223.83709L565.09587,225.20882L564.41,227.0378L563.72413,229.09541L564.41,230.46715L566.23898,232.06751L566.01036,236.18271L564.18137,237.78307L563.49551,239.38343L563.49551,242.1269L561.66653,242.58414L560.06617,243.72726L559.83755,245.099L560.06617,247.1566L558.3515,248.47117L557.3227,251.27181L557.77994,254.92976L560.06617,262.24569L567.3821,269.79024L572.86903,273.4482L572.64041,277.79203L573.55491,279.16377L579.95634,279.62101L582.69981,280.99275L582.01395,284.65071L579.72772,290.5949L579.04185,293.79562L581.32807,297.6822L587.72951,302.94052L592.30197,303.62639L594.35956,308.65609L596.41717,311.8568L595.50268,314.82889L597.10304,318.9441L598.93202,321.00171L600.34605,320.12102L601.25371,318.04623L603.46679,316.29903L605.59826,315.68463L608.20079,316.86443L611.82778,318.24013L613.01673,317.9419L613.2166,315.68345L611.9293,313.27166L612.23352,310.89494L614.07192,309.54749L617.09446,308.7372L618.35536,308.27868L617.74275,306.8918L616.95138,304.53743L618.38398,303.55647L619.54145,300.34244Z"}, +{id:"CT",n:"Connecticut",d:"M874.06831,178.86288L870.39088,163.98407L865.67206,164.90438L844.44328,169.64747L845.44347,172.87314L846.89842,180.14788L847.0752,189.1148L845.85518,191.28967L847.77597,193.22201L852.0475,189.31637L855.60403,186.08316L857.54395,183.98157L858.35226,184.62821L861.10048,183.17327L866.27362,182.04165L874.06831,178.86288Z"}, +{id:"WI",n:"Wisconsin",d:"M615.06589,197.36866L614.99915,194.21124L613.82004,189.68474L613.1734,183.54165L612.04178,181.11674L613.01174,178.04519L613.82004,175.1353L615.27499,172.54874L614.62834,169.15387L613.9817,165.59734L614.46668,163.81907L616.40661,161.39416L616.56827,158.64593L615.75997,157.35265L616.40661,154.76608L615.95409,150.59537L618.70232,144.93726L621.61221,138.14752L621.77387,135.88427L621.45055,134.91431L620.64224,135.39929L616.43907,141.70405L613.69084,145.74556L611.75092,147.52383L610.94262,149.78707L608.98767,150.59537L607.85605,152.5353L606.4011,152.21198L606.23944,150.43371L607.53273,148.00881L609.63431,143.32065L611.41258,141.70405L612.40341,139.3462L609.84296,137.44486L607.86814,127.07787L604.32067,125.73589L602.37441,123.42756L590.2447,120.70592L587.36881,119.69387L579.15569,117.52658L571.23777,116.36783L567.47261,111.23716L566.72221,111.79117L565.5243,111.62951L564.87765,110.49789L563.54364,110.79444L562.41201,110.9561L560.63375,111.92606L559.66378,111.27942L560.31043,109.33949L562.25035,106.26794L563.38197,105.13632L561.44205,103.68138L559.34046,104.48968L556.43057,106.4296L548.99419,109.66281L546.0843,110.30945L543.17442,109.82447L542.19269,108.94622L540.07599,111.7814L539.84737,114.52487L539.84737,122.9839L538.70425,124.58427L533.44593,128.47084L531.15971,134.41503L531.61695,134.64365L534.1318,136.70126L534.81766,139.90198L532.98868,143.10269L532.98868,146.98928L533.44593,153.61933L536.41802,156.59143L539.84737,156.59143L541.67635,159.79215L545.10568,160.24939L548.99227,165.96496L556.07957,170.08017L558.13717,172.82364L559.05167,180.25388L559.73753,183.5689L562.02376,185.16926L562.25238,186.541L560.19478,189.97033L560.4234,193.17106L562.93825,197.05764L565.4531,198.20075L568.42519,198.65799L569.76753,200.03811L615.06589,197.36866Z"}, +{id:"NC",n:"North Carolina",d:"M834.98153,294.31554L837.06653,299.23289L840.62306,305.69931L843.04796,308.12422L843.6946,310.38747L841.2697,310.54913L842.078,311.19577L841.75468,315.39894L839.16811,316.69222L838.52147,318.79381L837.22819,321.7037L833.50999,323.3203L831.08509,322.99698L829.63014,322.83532L828.01354,321.54204L828.33686,322.83532L828.33686,323.80529L830.27679,323.80529L831.08509,325.09857L829.14516,331.40333L833.34833,331.40333L833.99498,333.01993L836.25822,330.75669L837.55151,330.2717L835.61158,333.82823L832.54003,338.67805L831.24675,338.67805L830.11512,338.19307L827.3669,338.83971L822.19376,341.26462L815.72734,346.59941L812.33247,351.28756L810.39255,357.75398L809.90757,360.17889L805.21941,360.66387L799.76628,362.00053L789.81987,353.798L777.21033,346.19995L774.30044,345.39164L761.69091,346.84659L757.41445,347.59674L755.79785,344.36352L752.82749,342.24682L736.3381,342.7318L729.06336,343.5401L720.01037,348.06661L713.86726,350.65317L692.68971,353.23975L693.1898,349.18542L694.96807,347.73048L697.71631,347.08383L698.36295,343.36563L702.56613,340.61741L706.44598,339.16245L710.64917,335.60592L715.014,333.50433L715.66064,330.43277L719.5405,326.55292L720.18714,326.39126C720.18714,326.39126,720.18714,327.52289,720.99545,327.52289C721.80375,327.52289,722.93538,327.84621,722.93538,327.84621L725.19863,324.28967L727.30022,323.64302L729.56346,323.96635L731.18008,320.40982L734.08997,317.82324L734.57495,315.72165L734.76245,312.07346L739.03895,312.05094L746.23754,311.19515L761.99477,308.94272L777.13081,306.85615L798.77129,302.1368L818.75461,297.87823L829.93155,295.47242L834.98153,294.31554ZM839.25199,327.52211L841.83857,325.01636L844.99095,322.42978L846.52673,321.78314L846.68839,319.76238L846.04175,313.61926L844.5868,311.27518L843.94015,309.41608L844.66763,309.17358L847.41587,314.67006L847.82002,319.11573L847.65836,322.51062L844.26348,324.04639L841.43441,326.47131L840.30279,327.68377L839.25199,327.52211Z"}, +{id:"DC",n:"Washington DC",d:"M805.81945,250.84384L803.96117,249.01967L802.72854,248.33338L804.17155,246.31091L807.06064,248.25941L805.81945,250.84384Z"}, +{id:"MA",n:"Massachusetts",d:"M899.62349,173.25394L901.79541,172.56806L902.25267,170.85339L903.28147,170.9677L904.31027,173.25394L903.05285,173.71118L899.16625,173.8255L899.62349,173.25394ZM890.24995,174.05412L892.53617,171.42495L894.13654,171.42495L895.96553,172.911L893.56499,173.9398L891.39307,174.9686L890.24995,174.05412ZM855.45082,152.06593L873.09769,147.42525L875.36095,146.77861L877.27503,143.9829L881.0118,142.31959L883.90104,146.73243L881.47613,151.90557L881.15281,153.36051L883.09274,155.94708L884.22436,155.13878L886.00263,155.13878L888.26587,157.72534L892.14573,163.70678L895.70226,164.19176L897.9655,163.2218L899.74377,161.44353L898.93546,158.69531L896.83388,157.0787L895.37893,157.887L894.40897,156.59372L894.89395,156.10874L896.99554,155.94708L898.7738,156.75538L900.71373,159.18029L901.68369,162.09018L902.00701,164.51508L897.80384,165.97003L893.92399,167.90995L890.04414,172.43645L888.10421,173.89139L888.10421,172.92143L890.52912,171.46648L891.0141,169.68822L890.2058,166.61667L887.29591,168.07161L886.48761,169.52656L886.97259,171.7898L884.90626,172.79023L882.15906,168.2631L878.76418,163.89826L876.69368,162.08579L870.16041,163.96199L865.06808,165.01278L844.39292,169.60499L843.72516,164.83714L844.3718,154.24837L848.66107,153.35923L855.45082,152.06593Z"}, +{id:"TN",n:"Tennessee",d:"M696.67788,318.25411L644.78479,323.2656L629.02523,325.04386L624.40403,325.55657L620.53568,325.52885L620.31471,329.62968L612.12933,329.89369L605.17792,330.54033L597.08709,330.41647L595.67331,337.48933L593.97708,342.96938L590.68391,345.72022L589.33517,350.10128L589.01185,352.68785L584.97033,354.95109L586.42527,358.50763L585.45531,362.87247L584.48693,363.66212L692.64548,353.25457L693.04875,349.29963L694.85948,347.80924L697.69363,347.05979L698.36556,343.34281L702.46416,340.63785L706.51109,339.14382L710.59467,335.57349L715.03076,333.54803L715.55202,330.48068L719.61662,326.49569L720.16742,326.38152C720.16742,326.38152,720.19867,327.51314,721.00697,327.51314C721.81527,327.51314,722.9469,327.86771,722.9469,327.86771L725.21015,324.27992L727.28049,323.63328L729.5556,323.92849L731.15391,320.39563L734.10916,317.75172L734.53084,315.81261L734.8398,312.10146L732.69325,311.90169L730.09157,313.93002L723.09826,313.95909L704.73897,316.34591L696.67788,318.25411Z"}, +{id:"AR",n:"Arkansas",d:"M593.82477,343.05296L589.84489,343.76966L584.73274,343.13563L585.15344,341.53356L588.13319,338.96687L589.07657,335.31062L587.24759,332.33852L508.83002,334.85337L510.43038,341.71206L510.43037,349.94248L511.80212,360.91647L512.03074,398.7534L514.31697,400.69669L517.28906,399.32496L520.03254,400.46807L520.71288,407.04137L576.33414,405.90077L577.47977,403.8104L577.19315,400.26089L575.36752,397.28879L576.96621,395.80358L575.36752,393.29208L576.05172,390.78225L577.42011,385.17682L579.9383,383.11419L579.25243,380.82963L582.9104,375.45784L585.65387,374.08945L585.54039,372.59587L585.19495,370.77023L588.0519,365.1715L590.45494,363.91491L590.83907,360.48728L592.60974,359.24558L589.46622,358.76131L588.12476,354.75087L590.92884,352.37416L591.4791,350.35496L592.75858,346.30835L593.82477,343.05296Z"}, +{id:"MO",n:"Missouri",d:"M558.44022,248.11316L555.92035,245.02591L554.77723,242.73968L490.42,245.14022L488.13374,245.25453L489.39117,247.76938L489.16255,250.0556L491.67739,253.94219L494.76379,258.0574L497.8502,260.80087L500.01143,261.02949L501.50816,261.94399L501.50816,264.91608L499.67919,266.51644L499.22193,268.80266L501.27954,272.23201L503.7944,275.2041L506.30924,277.03308L507.68097,288.69283L507.99511,324.76504L508.22373,329.45179L508.68097,334.8353L531.11396,333.96848L554.31999,333.28261L575.12465,332.4816L586.77939,332.2513L588.94879,335.6773L588.2646,338.9848L585.17735,341.38784L584.60496,343.22518L589.98345,343.68244L593.87841,342.99656L595.59559,337.50293L596.24701,331.64614L598.34504,329.09098L600.94107,327.60409L600.9925,324.55385L602.00852,322.61737L600.31429,320.0736L598.98336,321.05786L596.99074,318.83062L595.70571,314.07162L596.50672,311.55342L594.56259,308.12576L592.73195,303.54996L587.93254,302.75062L580.96374,297.15187L579.24488,293.03834L580.04423,289.83762L582.1035,283.77995L582.56242,280.91632L580.61328,279.88501L573.75794,279.08734L572.72997,277.37518L572.61817,273.14482L567.13123,269.71381L560.15572,261.94231L557.8695,254.62638L557.63921,250.40106L558.44022,248.11316Z"}, +{id:"GA",n:"Georgia",d:"M672.29229,355.5518L672.29229,357.73422L672.45395,359.83582L673.10059,363.23069L676.49547,371.15206L678.92038,381.01337L680.37532,387.15648L681.99193,392.00629L683.44688,398.9577L685.54847,405.26247L688.13504,408.65735L688.62002,412.05222L690.55995,412.86052L690.72161,414.96212L688.94334,419.81193L688.45836,423.04515L688.2967,424.98508L689.91331,429.34992L690.23663,434.68472L689.42832,437.10963L690.07497,437.91794L691.52992,438.72624L691.73462,441.94433L693.96763,445.29386L696.21807,447.45591L704.13945,447.61757L714.9592,446.97093L736.47159,445.67765L741.91731,445.00328L746.49456,445.03101L746.65622,447.9409L749.24279,448.7492L749.56611,444.38436L747.9495,439.85786L749.08113,438.24126L754.90091,439.04956L759.87832,439.36734L759.1029,433.06855L761.36614,423.0456L762.82109,418.84242L762.3361,416.25586L765.67051,410.01156L765.16021,408.65988L763.2468,409.36446L760.66024,408.07116L760.01359,405.96957L758.72031,402.41304L756.45705,400.31145L753.87049,399.66481L752.25388,394.81499L749.32887,388.47999L745.1257,386.54006L743.0241,384.60013L741.73081,382.01356L739.62923,380.07363L737.36598,378.78034L735.10273,375.87045L732.03118,373.60721L727.50467,371.82893L727.01969,370.37399L724.59478,367.4641L724.1098,366.00915L720.71492,361.03867L717.19505,361.13784L713.44014,358.7817L712.02186,357.48842L711.69854,355.71015L712.56934,353.77023L714.79598,352.66009L714.16204,350.56287L672.29229,355.5518Z"}, +{id:"SC",n:"South Carolina",d:"M764.94328,408.16488L763.16622,409.13438L760.57965,407.84109L759.93301,405.7395L758.63973,402.18297L756.37647,400.08137L753.7899,399.43473L752.1733,394.58492L749.42506,388.60347L745.22189,386.66353L743.12029,384.72361L741.82701,382.13704L739.72542,380.1971L737.46217,378.90382L735.19892,375.99393L732.12737,373.73069L727.60086,371.95241L727.11588,370.49747L724.69098,367.58758L724.20599,366.13262L720.81111,360.95949L717.41624,361.12115L713.37472,358.69623L712.08144,357.40295L711.75812,355.62468L712.56642,353.68476L714.82967,352.71478L714.31885,350.4257L720.08695,348.08913L729.20245,343.50013L736.97718,342.69182L753.09158,342.26934L755.72983,344.14677L757.40893,347.50499L761.71128,346.89501L774.32081,345.44005L777.2307,346.24836L789.84024,353.84642L799.94832,361.9681L794.52715,367.42644L791.94058,373.56954L791.4556,379.8743L789.839,380.6826L788.70737,383.43083L786.28247,384.07747L784.18088,387.634L781.43265,390.38223L779.16941,393.7771L777.5528,394.5854L773.99627,397.98027L771.08638,398.14193L772.05635,401.37514L767.04487,406.8716L764.94328,408.16488Z"}, +{id:"KY",n:"Kentucky",d:"M725.9944,295.2707L723.70108,297.67238L720.12289,301.66642L715.19834,307.13109L713.98257,308.84686L713.92007,310.94844L709.54021,313.11253L703.88209,316.50741L696.65022,318.30626L644.78233,323.20512L629.02277,324.98338L624.40157,325.49609L620.53322,325.46837L620.30627,329.68865L612.12686,329.83321L605.17545,330.47985L597.18797,330.41963L598.39575,329.09955L600.89529,327.5587L601.12392,324.35797L602.03841,322.52899L600.43159,319.99009L601.23342,318.08328L603.49668,316.30502L605.59826,315.65837L608.34649,316.95166L611.90303,318.24494L613.03466,317.92162L613.19632,315.65837L611.90303,313.23346L612.22635,310.97021L614.16628,309.51527L616.75286,308.86862L618.36946,308.22198L617.56116,306.44371L616.91452,304.50378L618.42114,303.50798C618.42442,303.47086,619.6751,299.98569,619.65943,299.85017L622.71265,298.37149L628.03244,297.40153L632.52648,296.91655L633.91892,298.54398L635.44719,299.41478L637.03796,296.30657L640.22504,295.02395L642.43013,296.50798L642.84069,297.50702L644.01421,297.24301L643.85254,294.29008L646.98341,292.54089L649.1315,291.46741L650.66086,293.12822L653.97901,293.08402L654.56634,291.51277L654.19883,289.24953L656.79936,285.25103L661.57591,281.81313L662.28186,276.97727L665.20688,276.52136L668.99834,274.87568L671.44166,273.16744L671.24333,271.60251L670.10088,270.14757L670.6667,267.15266L674.85155,267.03516L677.15146,266.28936L680.49885,267.71846L682.55296,272.0833L687.68525,272.09412L689.73626,274.30231L691.35171,274.15461L693.9534,272.87644L699.19046,273.44981L701.76538,273.66732L703.45296,271.61108L706.07091,270.1852L707.95269,269.4781L708.59933,272.31473L710.64276,273.37307L713.28552,275.45556L713.40299,281.1288L714.21129,282.70121L716.80101,284.25749L717.57265,286.552L721.73254,289.98894L723.53785,293.61218L725.9944,295.2707Z"}, +{id:"AL",n:"Alabama",d:"M631.30647,460.41572L629.81587,446.09422L627.06763,427.34158L627.22929,413.27709L628.03759,382.23824L627.87593,365.58718L628.04102,359.16812L672.5255,355.54867L672.3777,357.73109L672.53936,359.83269L673.18601,363.22756L676.58089,371.14893L679.00579,381.01024L680.46074,387.15335L682.07734,392.00317L683.5323,398.95458L685.63388,405.25934L688.22045,408.65423L688.70543,412.04909L690.64537,412.8574L690.80703,414.95899L689.02875,419.80881L688.54377,423.04203L688.38211,424.98195L689.99873,429.3468L690.32205,434.68159L689.51373,437.10651L690.16039,437.91481L691.61533,438.72311L691.94347,441.61193L686.34581,441.25838L679.55606,441.90503L654.01366,444.81491L643.6021,446.22168L643.38072,449.09908L645.15899,450.87735L647.74556,452.81727L648.32642,460.75271L642.78436,463.32561L640.03614,463.00229L642.78436,461.06236L642.78436,460.0924L639.71282,454.11096L637.44957,453.46432L635.99462,457.82915L634.70134,460.57738L634.0547,460.41572L631.30647,460.41572Z"}, +{id:"LS",n:"Louisiana",d:"M607.96706,459.16125L604.68245,455.99511L605.69236,450.49488L605.03101,449.6018L595.76934,450.60836L570.74102,451.06728L570.05683,448.6726L570.96964,440.2169L574.28552,434.27105L579.31688,425.58003L578.74281,423.18201L579.9994,422.50116L580.45833,420.54867L578.17209,418.49274L578.0603,416.55029L576.22964,412.20478L576.08259,405.86618L520.6088,406.79015L520.63737,416.36372L521.32324,425.73725L522.00911,429.62383L524.52396,433.73904L525.43845,438.76875L529.78228,444.25568L530.0109,447.4564L530.69677,448.14227L530.0109,456.60131L527.03881,461.631L528.63917,463.68861L527.95329,466.20345L527.26743,473.51938L525.89569,476.72009L526.01815,480.33654L530.70463,478.81639L542.81798,479.0234L553.16425,482.57993L559.63067,483.71156L563.34886,482.25661L566.58207,483.38824L569.81528,484.3582L570.62358,482.25661L567.39037,481.12499L564.8038,481.60997L562.05557,479.99337C562.05557,479.99337,562.21724,478.70008,562.86388,478.53842C563.51052,478.37676,565.93543,477.56846,565.93543,477.56846L567.71369,479.0234L569.49196,478.05344L572.72517,478.70008L574.18011,481.12499L574.50343,483.38824L579.02992,483.71156L580.80819,485.48982L579.99989,487.10643L578.7066,487.91473L580.32321,489.53133L588.72955,493.08786L592.28608,491.79458L593.25605,489.36967L595.84261,488.72303L597.62088,487.26809L598.91416,488.23805L599.72246,491.14794L597.45922,491.95624L598.10586,492.60288L601.50073,491.3096L603.76398,487.91473L604.57228,487.42975L602.47069,487.10643L603.27899,485.48982L603.11733,484.03488L605.21892,483.5499L606.35054,482.25661L606.99718,483.06491C606.99718,483.06491,606.83552,486.13646,607.64383,486.13646C608.45213,486.13646,611.847,486.78311,611.847,486.78311L615.88851,488.72303L616.85847,490.17798L619.76836,490.17798L620.89999,491.14794L623.16323,488.07639L623.16323,486.62144L621.86995,486.62144L618.47508,483.87322L612.6553,483.06491L609.42209,480.80167L610.55372,478.05344L612.81696,478.37676L612.97862,477.73012L611.20036,476.76016L611.20036,476.27517L614.43357,476.27517L616.21183,473.20363L614.91855,471.2637L614.59523,468.51547L613.14028,468.67713L611.20036,470.77872L610.55372,473.36529L607.48217,472.71864L606.5122,470.94038L608.29047,469.00045L610.1938,465.55485L609.1327,463.14258L607.96706,459.16125Z"}, +{id:"MS",n:"Mississippi",d:"M631.55882,459.34458L631.30456,460.60073L626.13142,460.60073L624.67648,459.79243L622.57489,459.46911L615.78515,461.40903L614.00689,460.60073L611.42032,464.8039L610.31778,465.58192L609.19395,463.09394L608.05083,459.20735L604.6215,456.00664L605.7646,450.46209L605.07874,449.5476L603.24976,449.77622L595.33184,450.64959L570.78534,451.02296L570.0156,448.7976L570.88897,440.4208L574.00581,434.74799L579.23288,425.60309L578.78714,423.17049L580.024,422.51424L580.45987,420.59477L578.14239,418.51579L578.02727,416.37431L576.19155,412.25322L576.08255,406.29045L577.41008,403.80948L577.18678,400.39373L575.41729,397.31114L576.94371,395.82893L575.3731,393.32939L575.83035,391.67718L577.40775,385.15081L579.8937,383.11446L579.25203,380.74749L582.91,375.44496L585.74186,374.08854L585.52089,372.41338L585.23276,370.73228L588.10882,365.16461L590.45454,363.9331L590.60617,363.04009L627.94965,359.15892L628.13451,365.44225L628.29617,382.09331L627.48787,413.13216L627.32621,427.19665L630.07445,445.94929L631.55882,459.34458Z"}, +{id:"IA",n:"Iowa",d:"M569.19154,199.5843L569.45592,202.3705L571.67964,202.94776L572.63358,204.17309L573.13359,206.02845L576.92643,209.3871L577.6123,211.7786L576.93796,215.20307L575.35565,218.43505L574.55631,221.17684L572.38356,222.77888L570.66805,223.35128L565.08903,225.21148L563.69757,229.06017L564.42621,230.43191L566.26672,232.1145L565.98379,236.15079L564.22064,237.68865L563.44923,239.33179L563.57645,242.10811L561.69014,242.56535L560.06469,243.67026L559.7859,245.02289L560.06469,247.13781L558.51367,248.25388L556.04314,245.1206L554.78057,242.67073L489.04475,245.18558L488.12672,245.35102L486.07432,240.83506L485.8457,234.20499L484.24534,230.08978L483.55948,224.83147L481.27325,221.1735L480.35877,216.37243L477.61529,208.82788L476.47218,203.45524L475.10044,201.28333L473.50008,198.53987L475.45406,193.69604L476.8258,187.98047L474.08233,185.92286L473.62508,183.17939L474.53958,180.66454L476.25425,180.66454L558.90825,179.39506L559.74251,183.57818L561.99469,185.13915L562.2514,186.56224L560.22186,189.95155L560.41227,193.15707L562.92713,196.95527L565.45392,198.24889L568.5332,198.75194L569.19154,199.5843Z"}, +{id:"MN",n:"Minnesota",d:"M475.23781,128.82439L474.78056,120.36535L472.95158,113.04943L471.1226,99.560705L470.66535,89.729927L468.83637,86.300584L467.23601,81.270889L467.23601,70.982869L467.92187,67.096282L466.10094,61.644615L496.23336,61.679886L496.55668,53.435202L497.20332,53.273541L499.46657,53.758523L501.40649,54.566825L502.21479,60.063281L503.66974,66.206379L505.28634,67.822984L510.13616,67.822984L510.45948,69.277928L516.76424,69.601249L516.76424,71.702835L521.61405,71.702835L521.93737,70.409551L523.06899,69.277928L525.33224,68.631286L526.62552,69.601249L529.53541,69.601249L533.41526,72.187816L538.75006,74.612723L541.17497,75.097705L541.65995,74.127742L543.11489,73.64276L543.59987,76.552649L546.18644,77.845933L546.67142,77.360951L547.96471,77.522612L547.96471,79.624198L550.55127,80.594161L553.62282,80.594161L555.23943,79.785858L558.47264,76.552649L561.0592,76.067668L561.86751,77.845933L562.35249,79.139216L563.32245,79.139216L564.29241,78.330914L573.18374,78.007593L574.962,81.079142L575.60865,81.079142L576.32226,79.994863L580.76217,79.624198L580.15007,81.903657L576.21135,83.740782L566.96557,87.80191L562.19083,89.808807L559.11928,92.395375L556.69437,95.951905L554.43113,99.831756L552.65286,100.64006L548.12637,105.65153L546.83308,105.81319L542.5053,108.57031L540.04242,111.77542L539.8138,114.96681L539.90816,123.01016L538.53212,124.69891L533.45058,128.45888L531.2205,134.44129L534.09225,136.675L534.77214,139.90198L532.9169,143.14091L533.08769,146.88893L533.45655,153.61933L536.4848,156.62132L539.8138,156.62132L541.70491,159.75392L545.08408,160.25719L548.94324,165.92866L556.03053,170.04541L558.17368,172.92053L558.84483,179.36004L477.63333,180.50483L477.29541,144.82798L476.83817,141.85589L472.72296,138.42655L471.57984,136.59757L471.57984,134.9972L473.63744,133.39685L475.00918,132.02511L475.23781,128.82439Z"}, +{id:"OK",n:"Oklahoma",d:"M380.34313,320.82146L363.65895,319.54815L362.77873,330.50058L383.24411,331.65746L415.29966,332.96106L412.96506,357.37971L412.50781,375.21228L412.73644,376.81264L417.08027,380.4706L419.13787,381.61371L419.82374,381.38509L420.50961,379.32748L421.88135,381.15647L423.93895,381.15647L423.93895,379.78473L426.68242,381.15647L426.22518,385.04305L430.34039,385.27167L432.85523,386.41479L436.97044,387.10066L439.48529,388.92964L441.77152,386.87204L445.20086,387.5579L447.71571,390.98724L448.63019,390.98724L448.63019,393.27347L450.91642,393.95933L453.20264,391.67311L455.03163,392.35897L457.54647,392.35897L458.46097,394.87383L464.76204,396.9528L466.13378,396.26694L467.96276,392.15173L469.10587,392.15173L470.24899,394.20933L474.3642,394.8952L478.02215,396.26694L480.99425,397.18143L482.82324,396.26694L483.5091,393.75209L487.85293,393.75209L489.91053,394.66658L492.654,392.60897L493.79712,392.60897L494.48299,394.20933L498.59819,394.20933L500.19855,392.15173L502.02754,392.60897L504.08514,395.12383L507.28585,396.9528L510.48658,397.8673L512.42766,398.98623L512.03856,361.76922L510.66681,350.79524L510.50635,341.9229L509.06646,335.38517L508.28826,328.20553L508.22012,324.38931L496.08328,324.70805L449.67324,324.25081L404.63433,322.19319L380.34313,320.82146Z"}, +{id:"TX",n:"Texas",d:"M361.46423,330.57358L384.15502,331.65952L415.24771,332.80264L412.9131,356.25844L412.61634,374.41196L412.68448,376.49375L417.02831,380.31218L419.01496,381.75934L420.19917,381.19965L420.57254,379.38193L421.71286,381.18555L423.8245,381.22948L423.82183,379.78239L425.49177,380.74966L426.63047,381.15853L426.2712,385.12618L430.35939,385.21969L433.28471,386.41686L437.23945,386.94224L439.62083,389.02122L441.74493,386.94505L445.46987,387.55996L447.69078,390.7849L448.76574,391.10586L448.60527,393.07113L450.81888,393.86342L453.14903,391.80862L455.28205,392.42354L457.51143,392.45902L458.4445,394.89446L464.77259,397.00891L466.36564,396.24198L467.85511,392.06427L468.19583,392.06427L469.10232,392.14591L470.33137,394.21454L474.26125,394.87982L477.59825,396.0027L481.02388,397.19867L482.86446,396.22367L483.57822,393.70883L488.03144,393.75303L489.84018,394.68381L492.63943,392.5773L493.74307,392.6215L494.59411,394.22657L498.64883,394.22657L500.1677,392.19795L502.03507,392.60519L503.9811,395.00847L507.50167,397.05262L510.36043,397.86243L511.87405,398.66227L514.32075,400.65959L517.36379,399.3318L520.05488,400.47068L520.61869,406.57662L520.57893,416.27879L521.26479,425.8128L521.96697,429.41791L524.6423,433.83777L525.54048,438.7885L529.75643,444.32652L529.95245,447.47146L530.69882,448.2573L529.96875,456.63737L527.09665,461.64387L528.62962,463.79674L527.99954,466.13482L527.32997,473.53914L525.82565,476.87714L526.12053,480.37949L520.45565,481.96467L510.59436,486.49117L509.6244,488.43109L507.03783,490.37102L504.93625,491.82596L503.64296,492.63426L497.98485,497.96906L495.23662,500.07065L489.90182,503.30385L484.24371,505.72876L477.93895,509.12363L476.16069,510.57858L470.34091,514.13511L466.94604,514.78175L463.06619,520.2782L459.02468,520.60153L458.05471,522.54145L460.31796,524.48138L458.86301,529.97783L457.56973,534.50433L456.43811,538.38418L455.62981,542.91067L456.43811,545.33558L458.21637,552.28698L459.18634,558.43007L460.9646,561.1783L459.99464,562.63325L456.92309,564.57317L451.26497,560.69332L445.76852,559.5617L444.47523,560.04668L441.24202,559.40004L437.03885,556.32849L431.86572,555.19687L424.26767,551.802L422.16609,547.92214L420.8728,541.45573L417.6396,539.5158L416.99295,537.25255L417.6396,536.60591L417.96292,533.21104L416.66963,532.5644L416.02299,531.59444L417.31627,527.2296L415.69967,524.96636L412.46646,523.67307L409.07159,519.30824L405.51506,512.68016L401.31189,510.09359L401.47355,508.15367L396.13875,495.86747L395.33045,491.6643L393.55219,489.72438L393.39053,488.26943L387.40909,482.93464L384.82252,479.86309L384.82252,478.73146L382.23595,476.62988L375.44621,475.49825L368.00983,474.85161L364.93828,472.58837L360.41179,474.36663L356.85526,475.82158L354.59201,479.05478L353.62205,482.77298L349.25722,488.91607L346.83231,491.34098L344.24574,490.37102L342.46748,489.23939L340.52755,488.59275L336.6477,486.32951L336.6477,485.68286L334.86944,483.74294L329.6963,481.64135L322.25992,473.88165L319.99667,469.1935L319.99667,461.11047L316.76346,454.64405L316.27848,451.89583L314.66188,450.92586L313.53025,448.82428L308.51878,446.72269L307.2255,445.10609L300.11243,437.18472L298.81915,433.95151L294.13099,431.68826L292.67604,427.32339L290.08945,424.41352L288.14954,423.92856L287.50031,419.25092L295.50218,419.93681L324.53717,422.68026L353.57225,424.28062L355.80578,404.8188L359.69233,349.26378L361.29272,330.51646L362.66446,330.54504M461.69381,560.20778L461.128,553.0947L458.37976,545.90078L457.81394,538.86853L459.34972,530.62382L462.66378,523.75323L466.13948,518.33758L469.29188,514.78103L469.93852,515.02353L465.16952,521.65163L460.80468,528.19891L458.78391,534.827L458.46059,540.00016L459.34972,546.14328L461.9363,553.3372L462.42128,558.51034L462.58294,559.9653L461.69381,560.20778Z"}, +{id:"NM",n:"New Mexico",d:"M288.15255,424.01315L287.37714,419.26505L296.02092,419.79045L326.19268,422.73635L353.46084,424.42624L355.67611,405.71877L359.53347,349.8428L361.27115,330.45357L362.84285,330.58213L363.66825,319.41874L259.6638,308.78279L242.16645,429.2176L257.62712,431.20675L258.9204,421.1838L288.15255,424.01315Z"}, +{id:"KS",n:"Kansas",d:"M507.88059,324.38028L495.26233,324.58471L449.17324,324.12748L404.61576,322.06985L379.98602,320.81244L383.87981,256.21747L405.96327,256.89264L446.2524,257.73404L490.55364,258.72162L495.64927,258.72162L497.83367,260.88402L499.85133,260.86264L501.49163,261.87511L501.42913,264.88434L499.60015,266.60971L499.2679,268.84188L501.11098,272.24421L504.06334,275.43927L506.39069,277.05373L507.69146,288.29455L507.88059,324.38028Z"}, +{id:"NE",n:"Nebraska",d:"M486.09787,240.70058L489.32848,247.72049L489.19985,250.02301L492.65907,255.51689L495.37836,258.66923L490.32888,258.66923L446.84632,257.73055L406.05946,256.84025L383.80724,256.05638L384.88001,234.72853L352.56177,231.80828L356.9056,187.79842L372.45193,188.82723L392.57072,189.97033L410.40329,191.11345L434.18005,192.25656L444.92531,191.79932L446.98291,194.08554L451.78399,197.05764L452.9271,197.97213L457.27093,196.60039L461.15752,196.14315L463.90099,195.91452L465.72997,197.28626L469.7874,198.88662L472.75949,200.48698L473.21674,202.08734L474.13123,204.14494L475.96021,204.14494L476.75819,204.19111L477.65242,208.87293L480.57268,217.34085L481.14521,221.09756L483.6687,224.87181L484.23829,229.98595L485.84553,234.22632L486.09787,240.70058Z"}, +{id:"SD",n:"South Dakota",d:"M476.44687,204.02465L476.39942,203.44378L473.50371,198.59834L475.36394,193.88623L476.85667,187.99969L474.0748,185.91998L473.68964,183.17652L474.48204,180.62217L477.67055,180.63738L477.54747,175.63124L477.21417,145.45699L476.59644,141.68941L472.52412,138.35848L471.54149,136.68152L471.47899,135.0727L473.50111,133.5433L475.03333,131.87763L475.27829,129.22084L417.0212,127.62049L362.22199,124.1714L356.89672,187.86259L371.48699,188.76639L391.43684,189.972L409.17989,190.90059L432.95665,192.20417L444.93935,191.77953L446.90565,194.02471L452.10029,197.27806L452.86418,198.00081L457.40562,196.548L463.94616,195.93309L465.62146,197.26936L469.82597,198.86549L472.77103,200.50132L473.17001,201.98513L474.2095,204.22601L476.44687,204.02465Z"}, +{id:"ND",n:"North Dakota",d:"M475.30528,128.91846L474.69037,120.48479L473.01342,113.66887L471.12193,100.64465L470.66469,89.657624L468.92523,86.580482L467.16862,81.386086L467.19987,70.941816L467.82323,67.117729L465.98913,61.649968L437.34688,61.085941L418.75593,60.439299L392.24361,59.146015L369.29727,57.012146L362.30403,124.18898L417.23627,127.53263L475.30528,128.91846Z"}, +{id:"WY",n:"Wyoming",d:"M360.37668,143.27587L253.63408,129.81881L239.5506,218.27684L352.81521,231.86233L360.37668,143.27587Z"}, +{id:"MT",n:"Montana",d:"M369.20952,56.969133L338.5352,54.1613L309.27465,50.60477L280.01411,46.563258L247.68201,41.228463L229.25272,37.833593L196.52907,30.900857L192.05005,52.248389L195.47939,59.79293L194.10765,64.365382L195.93663,68.937833L199.13736,70.309572L203.75818,81.079025L206.45328,84.255548L206.91052,85.398666L210.33986,86.541784L210.79711,88.599377L203.70981,106.20333L203.70981,108.71818L206.22466,111.91889L207.13914,111.91889L211.94021,108.9468L212.62609,107.80368L214.22645,108.48955L213.99782,113.74787L216.7413,126.32212L219.71339,128.83696L220.62787,129.52283L222.45686,131.80905L221.99961,135.2384L222.68548,138.66773L223.8286,139.58223L226.11482,137.296L228.85829,137.296L232.05901,138.89636L234.57386,137.98187L238.68907,137.98187L242.34702,139.58223L245.0905,139.12498L245.54774,136.15288L248.51983,135.46702L249.89157,136.83876L250.34882,140.03947L251.77469,140.87411L253.66164,129.83937L360.40731,143.26829L369.20952,56.969133Z"}, +{id:"CO",n:"Colarado",d:"M380.03242,320.96457L384.93566,234.63961L271.5471,221.99565L259.33328,309.93481L380.03242,320.96457Z"}, +{id:"ID",n:"Idaho",d:"M148.47881,176.48395L157.24968,141.26323L158.62142,137.03371L161.13626,131.08953L159.87884,128.8033L157.36398,128.91761L156.56381,127.88881L157.02106,126.7457L157.36398,123.65929L161.82213,118.17234L163.65111,117.7151L164.79422,116.57199L165.36578,113.37127L166.28026,112.68541L170.16685,106.85553L174.05344,102.5117L174.28206,98.739432L170.85272,96.110269L169.31717,91.709286L182.94208,28.367595L196.45967,30.895706L192.05159,52.278719L195.61194,59.764071L194.03083,64.424911L196.00068,69.066144L199.1389,70.321335L202.97424,79.877923L206.48693,84.315077L206.99418,85.458195L210.33513,86.601313L210.70398,88.698388L203.73297,106.07448L203.56779,108.64041L206.19891,111.96211L207.10399,111.91321L212.01528,108.88761L212.6927,107.79264L214.25501,108.4515L213.97657,113.80522L216.71582,126.38793L220.63365,129.56584L222.31483,131.73129L221.59822,135.81515L222.66444,138.62256L223.72607,139.71384L226.20536,137.36242L229.05352,137.41131L231.97277,138.74651L234.75279,138.06458L238.54705,137.9041L242.52595,139.50446L245.26943,139.2077L245.76617,136.17039L248.69876,135.40556L249.95893,136.92147L250.39986,139.86643L251.8242,141.07964L243.4382,194.6883C243.4382,194.6883,155.47221,177.98769,148.47881,176.48395Z"}, +{id:"UT",n:"Utah",d:"M259.49836,310.10509L175.74933,298.23284L196.33694,185.69149L243.11725,194.43663L241.63245,205.06705L239.32083,218.23971L247.12852,219.16808L263.53504,220.97287L271.74601,221.82851L259.49836,310.10509Z"}, +{id:"AZ",n:"Arizona",d:"M144.9112,382.62909L142.28419,384.78742L141.96087,386.24237L142.44585,387.21233L161.36012,397.88192L173.48466,405.47996L188.19576,414.04797L205.00845,424.07092L217.29465,426.49583L242.24581,429.20074L259.50142,310.07367L175.76579,298.15642L172.6734,314.56888L171.06711,314.58419L169.35244,317.21335L166.83759,317.09903L165.58017,314.35556L162.8367,314.01263L161.9222,312.86952L161.00772,312.86952L160.09322,313.44108L158.14993,314.46988L158.03563,321.44286L157.80699,323.15753L157.23545,335.73177L155.7494,337.90368L155.17784,341.21871L157.92131,346.1341L159.17873,351.96398L159.97892,352.99278L161.00772,353.56434L160.8934,355.85056L159.29305,357.22229L155.86371,358.93696L153.92042,360.88026L152.43437,364.53821L151.86281,369.4536L149.00503,372.19707L146.94743,372.88294L147.08312,373.71282L146.62587,375.42749L147.08312,376.22767L150.74108,376.79921L150.16952,379.54269L148.68347,381.7146L144.9112,382.62909Z"}, +{id:"NV",n:"Nevada",d:"M196.39273,185.57552L172.75382,314.39827L170.92158,314.74742L169.34882,317.1536L166.97588,317.16429L165.50393,314.42082L162.88546,314.0424L162.11454,312.93477L161.07671,312.88073L158.29834,314.52502L157.98808,321.3105L157.62599,327.08767L157.27742,335.68048L155.83032,337.76964L153.3914,336.69561L84.311514,232.49442L103.30063,164.90951L196.39273,185.57552Z"}, +{id:"OR",n:"Oregon",d:"M148.72184,175.53153L157.57154,140.73002L158.62233,136.5005L160.9767,130.87727L160.36119,129.71439L157.84633,129.66821L156.56473,127.99751L157.02197,126.53344L157.52538,123.28656L161.98353,117.79961L163.81251,116.70046L164.95562,115.55735L166.44166,111.99172L170.48872,106.32232L174.05435,102.45992L174.28297,99.008606L171.01411,96.539924L169.2307,91.897299L156.56693,88.285329L141.47784,84.741679L126.04582,84.855985L125.58858,83.484256L120.10163,85.54186L115.64349,84.970301L113.24295,83.36994L111.98553,84.055815L107.29877,83.827183L105.5841,82.455454L100.32578,80.39785L99.525598,80.512166L95.181768,79.02611L93.238477,80.855093L87.065665,80.512166L81.121482,76.396957L81.807347,75.596777L82.035968,67.823604L79.749743,63.937027L75.634535,63.365468L74.94867,60.850621L72.594738,60.384056L66.796213,62.44284L64.532966,68.909258L61.299757,78.932207L58.066547,85.398626L53.055073,99.463087L46.588654,113.04256L38.505631,125.65208L36.565705,128.56197L35.757403,137.12997L36.143498,149.2102L148.72184,175.53153Z"}, +{id:"WA",n:"Washington",d:"M102.07324,7.6117734L106.43807,9.0667177L116.1377,11.814946L124.7057,13.754871L144.7516,19.412988L167.70739,25.071104L182.93051,28.278277L169.29815,91.864088L156.85315,88.33877L141.34514,84.768091L126.11585,84.801329L125.66028,83.45663L120.06106,85.635923L115.46563,84.899179L113.31866,83.315125L112.00545,83.973101L107.26979,83.832858L105.57143,82.483225L100.30839,80.370922L99.573419,80.51784L95.184297,78.993392L93.290999,80.810771L87.025093,80.512038L81.099395,76.386336L81.878352,75.453573L81.999575,67.776121L79.717576,63.93642L75.602368,63.32938L74.924958,60.818764L72.649446,60.361832L69.094498,61.592408L66.831251,58.373161L67.154572,55.463272L69.9028,55.139951L71.519405,51.09844L68.932837,49.966816L69.094498,46.248625L73.459331,45.601984L70.711103,42.853756L69.256158,35.740695L69.9028,32.830807L69.9028,24.909444L68.124535,21.676234L70.387782,12.299927L72.489368,12.784908L74.914275,15.694797L77.662503,18.281364L80.895712,20.22129L85.422205,22.322876L88.493756,22.969518L91.403645,24.424462L94.798518,25.394425L97.061764,25.232765L97.061764,22.807857L98.355048,21.676234L100.45663,20.38295L100.77996,21.514574L101.10328,23.292839L98.840029,23.77782L98.516708,25.879406L100.29497,27.334351L101.4266,29.759258L102.07324,31.699183L103.52818,31.537523L103.68984,30.244239L102.71988,28.950955L102.2349,25.717746L103.0432,23.939481L102.39656,22.484537L102.39656,20.22129L104.17483,16.66476L103.0432,14.078192L100.61829,9.2283781L100.94162,8.4200758L102.07324,7.6117734ZM92.616548,13.590738L94.637312,13.429078L95.122294,14.803197L96.658073,13.186582L99.002155,13.186582L99.810458,14.722361L98.274678,16.419801L98.92133,17.228114L98.193853,19.248875L96.819734,19.653021C96.819734,19.653021,95.930596,19.733857,95.930596,19.410536C95.930596,19.087215,97.385551,16.823958,97.385551,16.823958L95.688111,16.258141L95.36479,17.713095L94.637312,18.359737L93.10153,16.09648L92.616548,13.590738Z"}, +{id:"CA",n:"California",d:"M144.69443,382.19813L148.63451,381.70951L150.12055,379.69807L150.66509,376.75698L147.11357,376.16686L146.5994,375.49864L147.0769,373.46633L146.91762,372.87666L148.84019,372.25707L151.88297,369.42439L152.46453,364.42929L153.84443,361.02718L155.78772,358.86092L159.30659,357.27125L160.96098,355.66642L161.02971,353.55758L160.03638,352.97757L159.01323,351.90484L157.85801,346.05639L155.17281,341.2263L155.73862,337.7213L153.31904,336.69199L84.257718,232.51359L103.15983,164.9121L36.079967,149.21414L34.573071,153.94738L34.41141,161.38376L29.238275,173.18497L26.166727,175.77154L25.843406,176.90316L24.06514,177.71147L22.610196,181.91464L21.801894,185.14785L24.550122,189.35102L26.166727,193.55419L27.29835,197.11072L26.975029,203.57714L25.196764,206.64869L24.550122,212.46847L23.580159,216.18666L25.358424,220.06651L28.106652,224.593L30.369899,229.44282L31.663182,233.48433L31.339862,236.71754L31.016541,237.20252L31.016541,239.3041L36.674657,245.60886L36.189676,248.03377L35.543034,250.29702L34.896392,252.23694L35.058052,260.48163L37.159638,264.19982L39.099564,266.78638L41.847792,267.27137L42.817755,270.01959L41.686132,273.57612L39.584545,275.19273L38.452922,275.19273L37.64462,279.07258L38.129601,281.98247L41.362811,286.3473L42.979415,291.6821L44.434359,296.37025L45.727643,299.4418L49.122513,305.26158L50.577457,307.84814L51.062439,310.75803L52.679043,311.72799L52.679043,314.1529L51.870741,316.09283L50.092476,323.20589L49.607494,325.14581L52.032402,327.89404L56.235574,328.37902L60.762067,330.15729L64.641918,332.25887L67.551807,332.25887L70.461695,335.33042L73.048262,340.18024L74.179886,342.44348L78.059737,344.54507L82.909551,345.35337L84.364495,347.45496L85.011137,350.68817L83.556193,351.33481L83.879514,352.30477L87.112725,353.11307L89.860953,353.27474L93.020842,351.58789L96.900696,355.79106L97.708998,358.05431L100.29557,362.25748L100.61889,365.49069L100.61889,374.867L101.10387,376.64526L111.12682,378.10021L130.84939,380.84843L144.69443,382.19813ZM56.559218,338.48145L57.852506,340.01723L57.690846,341.31052L54.457625,341.22969L53.891811,340.01723L53.245167,338.56228L56.559218,338.48145ZM58.49915,338.48145L59.711608,337.83481L63.268151,339.9364L66.339711,341.14885L65.450575,341.79551L60.924066,341.55301L59.307456,339.9364L58.49915,338.48145ZM79.191764,358.28493L80.970029,360.62901L81.778342,361.59898L83.314121,362.16479L83.879928,360.70984L82.909965,358.93157L80.242562,356.91081L79.191764,357.07247L79.191764,358.28493ZM77.736809,366.93379L79.515085,370.08618L80.727543,372.02612L79.272589,372.2686L77.979305,371.05615C77.979305,371.05615,77.251828,369.6012,77.251828,369.19704C77.251828,368.7929,77.251828,367.01462,77.251828,367.01462L77.736809,366.93379Z"} + ]; + var uStates={}; + + uStates.draw = function(id, data, toolTip){ + function mouseOver(d){ + d3.select("#tooltip").transition().duration(200).style("opacity", .9); + d3.select("#tooltip").html(toolTip(d.n, data[d.id])) + .style("left", (d3.event.pageX) + "px") + .style("top", (d3.event.pageY - 28) + "px"); + } + + function mouseOut(){ + d3.select("#tooltip").transition().duration(500).style("opacity", 0); + } + + d3.select(id).selectAll(".state") + .data(uStatePaths).enter().append("path").attr("class","state").attr("d",function(d){ return d.d;}) + .style("fill",function(d){ return data[d.id].color; }) + .on("mouseover", mouseOver).on("mouseout", mouseOut); + } + this.uStates=uStates; +})(); +/* +*/ +// +//div id="tooltip"> +// +// +// +// +// + + + + + diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..c7b673c --- /dev/null +++ b/src/main.ts @@ -0,0 +1,12 @@ +import { enableProdMode } from '@angular/core'; +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + +import { AppModule } from './app/app.module'; +import { environment } from './environments/environment'; + +if (environment.production) { + enableProdMode(); +} + +platformBrowserDynamic().bootstrapModule(AppModule) + .catch(err => console.error(err)); diff --git a/src/polyfills.ts b/src/polyfills.ts new file mode 100644 index 0000000..03711e5 --- /dev/null +++ b/src/polyfills.ts @@ -0,0 +1,63 @@ +/** + * This file includes polyfills needed by Angular and is loaded before the app. + * You can add your own extra polyfills to this file. + * + * This file is divided into 2 sections: + * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. + * 2. Application imports. Files imported after ZoneJS that should be loaded before your main + * file. + * + * The current setup is for so-called "evergreen" browsers; the last versions of browsers that + * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), + * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. + * + * Learn more in https://angular.io/guide/browser-support + */ + +/*************************************************************************************************** + * BROWSER POLYFILLS + */ + +/** IE10 and IE11 requires the following for NgClass support on SVG elements */ +// import 'classlist.js'; // Run `npm install --save classlist.js`. + +/** + * Web Animations `@angular/platform-browser/animations` + * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari. + * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0). + */ +// import 'web-animations-js'; // Run `npm install --save web-animations-js`. + +/** + * By default, zone.js will patch all possible macroTask and DomEvents + * user can disable parts of macroTask/DomEvents patch by setting following flags + * because those flags need to be set before `zone.js` being loaded, and webpack + * will put import in the top of bundle, so user need to create a separate file + * in this directory (for example: zone-flags.ts), and put the following flags + * into that file, and then add the following code before importing zone.js. + * import './zone-flags'; + * + * The flags allowed in zone-flags.ts are listed here. + * + * The following flags will work for all browsers. + * + * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame + * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick + * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames + * + * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js + * with the following flag, it will bypass `zone.js` patch for IE/Edge + * + * (window as any).__Zone_enable_cross_context_check = true; + * + */ + +/*************************************************************************************************** + * Zone JS is required by default for Angular itself. + */ +import 'zone.js/dist/zone'; // Included with Angular CLI. + + +/*************************************************************************************************** + * APPLICATION IMPORTS + */ diff --git a/src/styles.scss b/src/styles.scss new file mode 100644 index 0000000..e50a47e --- /dev/null +++ b/src/styles.scss @@ -0,0 +1 @@ +/* You can add global styles to this file, and also import other style files */ \ No newline at end of file diff --git a/src/test.ts b/src/test.ts new file mode 100644 index 0000000..50193eb --- /dev/null +++ b/src/test.ts @@ -0,0 +1,25 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/dist/zone-testing'; +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting +} from '@angular/platform-browser-dynamic/testing'; + +declare const require: { + context(path: string, deep?: boolean, filter?: RegExp): { + keys(): string[]; + (id: string): T; + }; +}; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting() +); +// Then we find all the tests. +const context = require.context('./', true, /\.spec\.ts$/); +// And load the modules. +context.keys().map(context); diff --git a/states.json b/states.json new file mode 100644 index 0000000..5b9913b --- /dev/null +++ b/states.json @@ -0,0 +1,16019 @@ +{ + "Alabama": [ + { + "date": "2020-03-13", + "confirmed": "6", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "12", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "23", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "29", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "39", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "51", + "deaths": "0" + }, + { + "date": "2020-03-19", + "confirmed": "78", + "deaths": "0" + }, + { + "date": "2020-03-20", + "confirmed": "106", + "deaths": "0" + }, + { + "date": "2020-03-21", + "confirmed": "131", + "deaths": "0" + }, + { + "date": "2020-03-22", + "confirmed": "157", + "deaths": "0" + }, + { + "date": "2020-03-23", + "confirmed": "196", + "deaths": "0" + }, + { + "date": "2020-03-24", + "confirmed": "242", + "deaths": "0" + }, + { + "date": "2020-03-25", + "confirmed": "386", + "deaths": "1" + }, + { + "date": "2020-03-26", + "confirmed": "538", + "deaths": "3" + }, + { + "date": "2020-03-27", + "confirmed": "639", + "deaths": "4" + }, + { + "date": "2020-03-28", + "confirmed": "720", + "deaths": "4" + }, + { + "date": "2020-03-29", + "confirmed": "830", + "deaths": "5" + }, + { + "date": "2020-03-30", + "confirmed": "947", + "deaths": "11" + }, + { + "date": "2020-03-31", + "confirmed": "999", + "deaths": "13" + }, + { + "date": "2020-04-01", + "confirmed": "1106", + "deaths": "28" + }, + { + "date": "2020-04-02", + "confirmed": "1270", + "deaths": "32" + }, + { + "date": "2020-04-03", + "confirmed": "1535", + "deaths": "38" + }, + { + "date": "2020-04-04", + "confirmed": "1633", + "deaths": "44" + }, + { + "date": "2020-04-05", + "confirmed": "1841", + "deaths": "45" + }, + { + "date": "2020-04-06", + "confirmed": "2006", + "deaths": "53" + }, + { + "date": "2020-04-07", + "confirmed": "2197", + "deaths": "64" + }, + { + "date": "2020-04-08", + "confirmed": "2499", + "deaths": "67" + }, + { + "date": "2020-04-09", + "confirmed": "2838", + "deaths": "78" + }, + { + "date": "2020-04-10", + "confirmed": "3008", + "deaths": "80" + }, + { + "date": "2020-04-11", + "confirmed": "3262", + "deaths": "93" + }, + { + "date": "2020-04-12", + "confirmed": "3583", + "deaths": "93" + }, + { + "date": "2020-04-13", + "confirmed": "3805", + "deaths": "104" + }, + { + "date": "2020-04-14", + "confirmed": "3953", + "deaths": "114" + }, + { + "date": "2020-04-15", + "confirmed": "4241", + "deaths": "123" + }, + { + "date": "2020-04-16", + "confirmed": "4404", + "deaths": "137" + }, + { + "date": "2020-04-17", + "confirmed": "4572", + "deaths": "151" + }, + { + "date": "2020-04-18", + "confirmed": "4723", + "deaths": "147" + }, + { + "date": "2020-04-19", + "confirmed": "4903", + "deaths": "160" + }, + { + "date": "2020-04-20", + "confirmed": "5078", + "deaths": "164" + }, + { + "date": "2020-04-21", + "confirmed": "5327", + "deaths": "186" + }, + { + "date": "2020-04-22", + "confirmed": "5610", + "deaths": "201" + }, + { + "date": "2020-04-23", + "confirmed": "5832", + "deaths": "197" + }, + { + "date": "2020-04-24", + "confirmed": "6026", + "deaths": "209" + }, + { + "date": "2020-04-25", + "confirmed": "6213", + "deaths": "213" + }, + { + "date": "2020-04-26", + "confirmed": "6421", + "deaths": "219" + }, + { + "date": "2020-04-27", + "confirmed": "6539", + "deaths": "228" + }, + { + "date": "2020-04-28", + "confirmed": "6750", + "deaths": "242" + }, + { + "date": "2020-04-29", + "confirmed": "6925", + "deaths": "262" + }, + { + "date": "2020-04-30", + "confirmed": "7068", + "deaths": "272" + }, + { + "date": "2020-05-01", + "confirmed": "7294", + "deaths": "289" + }, + { + "date": "2020-05-02", + "confirmed": "7611", + "deaths": "288" + } + ], + "Alaska": [ + { + "date": "2020-03-12", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "3", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "6", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "9", + "deaths": "0" + }, + { + "date": "2020-03-19", + "confirmed": "12", + "deaths": "0" + }, + { + "date": "2020-03-20", + "confirmed": "14", + "deaths": "0" + }, + { + "date": "2020-03-21", + "confirmed": "21", + "deaths": "0" + }, + { + "date": "2020-03-22", + "confirmed": "22", + "deaths": "0" + }, + { + "date": "2020-03-23", + "confirmed": "36", + "deaths": "0" + }, + { + "date": "2020-03-24", + "confirmed": "42", + "deaths": "0" + }, + { + "date": "2020-03-25", + "confirmed": "59", + "deaths": "0" + }, + { + "date": "2020-03-26", + "confirmed": "69", + "deaths": "0" + }, + { + "date": "2020-03-27", + "confirmed": "85", + "deaths": "1" + }, + { + "date": "2020-03-28", + "confirmed": "102", + "deaths": "1" + }, + { + "date": "2020-03-29", + "confirmed": "114", + "deaths": "1" + }, + { + "date": "2020-03-30", + "confirmed": "119", + "deaths": "2" + }, + { + "date": "2020-03-31", + "confirmed": "133", + "deaths": "2" + }, + { + "date": "2020-04-01", + "confirmed": "143", + "deaths": "2" + }, + { + "date": "2020-04-02", + "confirmed": "146", + "deaths": "2" + }, + { + "date": "2020-04-03", + "confirmed": "156", + "deaths": "2" + }, + { + "date": "2020-04-04", + "confirmed": "169", + "deaths": "3" + }, + { + "date": "2020-04-05", + "confirmed": "183", + "deaths": "4" + }, + { + "date": "2020-04-06", + "confirmed": "189", + "deaths": "4" + }, + { + "date": "2020-04-07", + "confirmed": "211", + "deaths": "4" + }, + { + "date": "2020-04-08", + "confirmed": "224", + "deaths": "5" + }, + { + "date": "2020-04-09", + "confirmed": "233", + "deaths": "5" + }, + { + "date": "2020-04-10", + "confirmed": "244", + "deaths": "5" + }, + { + "date": "2020-04-11", + "confirmed": "255", + "deaths": "6" + }, + { + "date": "2020-04-12", + "confirmed": "270", + "deaths": "6" + }, + { + "date": "2020-04-13", + "confirmed": "275", + "deaths": "6" + }, + { + "date": "2020-04-14", + "confirmed": "283", + "deaths": "7" + }, + { + "date": "2020-04-15", + "confirmed": "291", + "deaths": "7" + }, + { + "date": "2020-04-16", + "confirmed": "298", + "deaths": "7" + }, + { + "date": "2020-04-17", + "confirmed": "307", + "deaths": "7" + }, + { + "date": "2020-04-18", + "confirmed": "312", + "deaths": "7" + }, + { + "date": "2020-04-19", + "confirmed": "317", + "deaths": "7" + }, + { + "date": "2020-04-20", + "confirmed": "319", + "deaths": "7" + }, + { + "date": "2020-04-21", + "confirmed": "327", + "deaths": "7" + }, + { + "date": "2020-04-22", + "confirmed": "333", + "deaths": "7" + }, + { + "date": "2020-04-23", + "confirmed": "335", + "deaths": "7" + }, + { + "date": "2020-04-24", + "confirmed": "337", + "deaths": "7" + }, + { + "date": "2020-04-25", + "confirmed": "337", + "deaths": "7" + }, + { + "date": "2020-04-26", + "confirmed": "339", + "deaths": "7" + }, + { + "date": "2020-04-27", + "confirmed": "343", + "deaths": "7" + }, + { + "date": "2020-04-28", + "confirmed": "349", + "deaths": "7" + }, + { + "date": "2020-04-29", + "confirmed": "353", + "deaths": "7" + }, + { + "date": "2020-04-30", + "confirmed": "353", + "deaths": "7" + }, + { + "date": "2020-05-01", + "confirmed": "362", + "deaths": "7" + }, + { + "date": "2020-05-02", + "confirmed": "363", + "deaths": "7" + } + ], + "Arizona": [ + { + "date": "2020-01-26", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-01-27", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-01-28", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-01-29", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-01-30", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-01-31", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-01", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-02", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-03", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-04", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-05", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-06", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-07", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-08", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-09", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-10", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-11", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-12", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-13", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-14", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-15", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-16", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-17", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-18", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-19", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-20", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-21", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-22", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-23", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-24", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-25", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-26", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-27", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-28", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-29", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-01", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-02", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-03", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-04", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-05", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-06", + "confirmed": "3", + "deaths": "0" + }, + { + "date": "2020-03-07", + "confirmed": "5", + "deaths": "0" + }, + { + "date": "2020-03-08", + "confirmed": "5", + "deaths": "0" + }, + { + "date": "2020-03-09", + "confirmed": "6", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "6", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "9", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "9", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "9", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "12", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "13", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "18", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "20", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "28", + "deaths": "0" + }, + { + "date": "2020-03-19", + "confirmed": "47", + "deaths": "0" + }, + { + "date": "2020-03-20", + "confirmed": "70", + "deaths": "1" + }, + { + "date": "2020-03-21", + "confirmed": "104", + "deaths": "1" + }, + { + "date": "2020-03-22", + "confirmed": "153", + "deaths": "2" + }, + { + "date": "2020-03-23", + "confirmed": "234", + "deaths": "2" + }, + { + "date": "2020-03-24", + "confirmed": "326", + "deaths": "6" + }, + { + "date": "2020-03-25", + "confirmed": "402", + "deaths": "6" + }, + { + "date": "2020-03-26", + "confirmed": "508", + "deaths": "8" + }, + { + "date": "2020-03-27", + "confirmed": "665", + "deaths": "15" + }, + { + "date": "2020-03-28", + "confirmed": "773", + "deaths": "15" + }, + { + "date": "2020-03-29", + "confirmed": "929", + "deaths": "18" + }, + { + "date": "2020-03-30", + "confirmed": "1169", + "deaths": "20" + }, + { + "date": "2020-03-31", + "confirmed": "1298", + "deaths": "24" + }, + { + "date": "2020-04-01", + "confirmed": "1413", + "deaths": "29" + }, + { + "date": "2020-04-02", + "confirmed": "1600", + "deaths": "35" + }, + { + "date": "2020-04-03", + "confirmed": "1769", + "deaths": "41" + }, + { + "date": "2020-04-04", + "confirmed": "2019", + "deaths": "53" + }, + { + "date": "2020-04-05", + "confirmed": "2269", + "deaths": "64" + }, + { + "date": "2020-04-06", + "confirmed": "2465", + "deaths": "67" + }, + { + "date": "2020-04-07", + "confirmed": "2575", + "deaths": "77" + }, + { + "date": "2020-04-08", + "confirmed": "2726", + "deaths": "80" + }, + { + "date": "2020-04-09", + "confirmed": "3018", + "deaths": "89" + }, + { + "date": "2020-04-10", + "confirmed": "3112", + "deaths": "97" + }, + { + "date": "2020-04-11", + "confirmed": "3393", + "deaths": "112" + }, + { + "date": "2020-04-12", + "confirmed": "3539", + "deaths": "117" + }, + { + "date": "2020-04-13", + "confirmed": "3702", + "deaths": "122" + }, + { + "date": "2020-04-14", + "confirmed": "3806", + "deaths": "131" + }, + { + "date": "2020-04-15", + "confirmed": "3962", + "deaths": "142" + }, + { + "date": "2020-04-16", + "confirmed": "4234", + "deaths": "152" + }, + { + "date": "2020-04-17", + "confirmed": "4507", + "deaths": "174" + }, + { + "date": "2020-04-18", + "confirmed": "4719", + "deaths": "181" + }, + { + "date": "2020-04-19", + "confirmed": "4929", + "deaths": "188" + }, + { + "date": "2020-04-20", + "confirmed": "5064", + "deaths": "191" + }, + { + "date": "2020-04-21", + "confirmed": "5251", + "deaths": "213" + }, + { + "date": "2020-04-22", + "confirmed": "5459", + "deaths": "236" + }, + { + "date": "2020-04-23", + "confirmed": "5769", + "deaths": "257" + }, + { + "date": "2020-04-24", + "confirmed": "6045", + "deaths": "268" + }, + { + "date": "2020-04-25", + "confirmed": "6280", + "deaths": "275" + }, + { + "date": "2020-04-26", + "confirmed": "6526", + "deaths": "277" + }, + { + "date": "2020-04-27", + "confirmed": "6716", + "deaths": "277" + }, + { + "date": "2020-04-28", + "confirmed": "6948", + "deaths": "297" + }, + { + "date": "2020-04-29", + "confirmed": "7202", + "deaths": "308" + }, + { + "date": "2020-04-30", + "confirmed": "7648", + "deaths": "320" + }, + { + "date": "2020-05-01", + "confirmed": "7962", + "deaths": "330" + }, + { + "date": "2020-05-02", + "confirmed": "8364", + "deaths": "353" + } + ], + "Arkansas": [ + { + "date": "2020-03-11", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "6", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "7", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "9", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "16", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "22", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "22", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "33", + "deaths": "0" + }, + { + "date": "2020-03-19", + "confirmed": "62", + "deaths": "0" + }, + { + "date": "2020-03-20", + "confirmed": "100", + "deaths": "0" + }, + { + "date": "2020-03-21", + "confirmed": "118", + "deaths": "0" + }, + { + "date": "2020-03-22", + "confirmed": "165", + "deaths": "0" + }, + { + "date": "2020-03-23", + "confirmed": "201", + "deaths": "0" + }, + { + "date": "2020-03-24", + "confirmed": "232", + "deaths": "2" + }, + { + "date": "2020-03-25", + "confirmed": "308", + "deaths": "2" + }, + { + "date": "2020-03-26", + "confirmed": "351", + "deaths": "3" + }, + { + "date": "2020-03-27", + "confirmed": "386", + "deaths": "3" + }, + { + "date": "2020-03-28", + "confirmed": "409", + "deaths": "5" + }, + { + "date": "2020-03-29", + "confirmed": "449", + "deaths": "6" + }, + { + "date": "2020-03-30", + "confirmed": "508", + "deaths": "7" + }, + { + "date": "2020-03-31", + "confirmed": "564", + "deaths": "8" + }, + { + "date": "2020-04-01", + "confirmed": "624", + "deaths": "10" + }, + { + "date": "2020-04-02", + "confirmed": "683", + "deaths": "12" + }, + { + "date": "2020-04-03", + "confirmed": "738", + "deaths": "12" + }, + { + "date": "2020-04-04", + "confirmed": "743", + "deaths": "14" + }, + { + "date": "2020-04-05", + "confirmed": "853", + "deaths": "16" + }, + { + "date": "2020-04-06", + "confirmed": "927", + "deaths": "16" + }, + { + "date": "2020-04-07", + "confirmed": "997", + "deaths": "18" + }, + { + "date": "2020-04-08", + "confirmed": "1077", + "deaths": "18" + }, + { + "date": "2020-04-09", + "confirmed": "1146", + "deaths": "21" + }, + { + "date": "2020-04-10", + "confirmed": "1202", + "deaths": "24" + }, + { + "date": "2020-04-11", + "confirmed": "1228", + "deaths": "25" + }, + { + "date": "2020-04-12", + "confirmed": "1280", + "deaths": "27" + }, + { + "date": "2020-04-13", + "confirmed": "1475", + "deaths": "30" + }, + { + "date": "2020-04-14", + "confirmed": "1498", + "deaths": "32" + }, + { + "date": "2020-04-15", + "confirmed": "1599", + "deaths": "34" + }, + { + "date": "2020-04-16", + "confirmed": "1620", + "deaths": "37" + }, + { + "date": "2020-04-17", + "confirmed": "1695", + "deaths": "37" + }, + { + "date": "2020-04-18", + "confirmed": "1777", + "deaths": "38" + }, + { + "date": "2020-04-19", + "confirmed": "1781", + "deaths": "39" + }, + { + "date": "2020-04-20", + "confirmed": "1971", + "deaths": "42" + }, + { + "date": "2020-04-21", + "confirmed": "2262", + "deaths": "43" + }, + { + "date": "2020-04-22", + "confirmed": "2392", + "deaths": "44" + }, + { + "date": "2020-04-23", + "confirmed": "2599", + "deaths": "45" + }, + { + "date": "2020-04-24", + "confirmed": "2810", + "deaths": "47" + }, + { + "date": "2020-04-25", + "confirmed": "2909", + "deaths": "48" + }, + { + "date": "2020-04-26", + "confirmed": "3001", + "deaths": "50" + }, + { + "date": "2020-04-27", + "confirmed": "3069", + "deaths": "51" + }, + { + "date": "2020-04-28", + "confirmed": "3127", + "deaths": "57" + }, + { + "date": "2020-04-29", + "confirmed": "3207", + "deaths": "59" + }, + { + "date": "2020-04-30", + "confirmed": "3281", + "deaths": "61" + }, + { + "date": "2020-05-01", + "confirmed": "3310", + "deaths": "64" + }, + { + "date": "2020-05-02", + "confirmed": "3372", + "deaths": "72" + } + ], + "California": [ + { + "date": "2020-01-25", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-01-26", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-01-27", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-01-28", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-01-29", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-01-30", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-01-31", + "confirmed": "3", + "deaths": "0" + }, + { + "date": "2020-02-01", + "confirmed": "3", + "deaths": "0" + }, + { + "date": "2020-02-02", + "confirmed": "6", + "deaths": "0" + }, + { + "date": "2020-02-03", + "confirmed": "6", + "deaths": "0" + }, + { + "date": "2020-02-04", + "confirmed": "6", + "deaths": "0" + }, + { + "date": "2020-02-05", + "confirmed": "6", + "deaths": "0" + }, + { + "date": "2020-02-06", + "confirmed": "6", + "deaths": "0" + }, + { + "date": "2020-02-07", + "confirmed": "6", + "deaths": "0" + }, + { + "date": "2020-02-08", + "confirmed": "6", + "deaths": "0" + }, + { + "date": "2020-02-09", + "confirmed": "6", + "deaths": "0" + }, + { + "date": "2020-02-10", + "confirmed": "7", + "deaths": "0" + }, + { + "date": "2020-02-11", + "confirmed": "7", + "deaths": "0" + }, + { + "date": "2020-02-12", + "confirmed": "7", + "deaths": "0" + }, + { + "date": "2020-02-13", + "confirmed": "7", + "deaths": "0" + }, + { + "date": "2020-02-14", + "confirmed": "7", + "deaths": "0" + }, + { + "date": "2020-02-15", + "confirmed": "7", + "deaths": "0" + }, + { + "date": "2020-02-16", + "confirmed": "7", + "deaths": "0" + }, + { + "date": "2020-02-17", + "confirmed": "7", + "deaths": "0" + }, + { + "date": "2020-02-18", + "confirmed": "7", + "deaths": "0" + }, + { + "date": "2020-02-19", + "confirmed": "7", + "deaths": "0" + }, + { + "date": "2020-02-20", + "confirmed": "8", + "deaths": "0" + }, + { + "date": "2020-02-21", + "confirmed": "9", + "deaths": "0" + }, + { + "date": "2020-02-22", + "confirmed": "9", + "deaths": "0" + }, + { + "date": "2020-02-23", + "confirmed": "9", + "deaths": "0" + }, + { + "date": "2020-02-24", + "confirmed": "11", + "deaths": "0" + }, + { + "date": "2020-02-25", + "confirmed": "11", + "deaths": "0" + }, + { + "date": "2020-02-26", + "confirmed": "26", + "deaths": "0" + }, + { + "date": "2020-02-27", + "confirmed": "26", + "deaths": "0" + }, + { + "date": "2020-02-28", + "confirmed": "27", + "deaths": "0" + }, + { + "date": "2020-02-29", + "confirmed": "28", + "deaths": "0" + }, + { + "date": "2020-03-01", + "confirmed": "33", + "deaths": "0" + }, + { + "date": "2020-03-02", + "confirmed": "38", + "deaths": "0" + }, + { + "date": "2020-03-03", + "confirmed": "45", + "deaths": "0" + }, + { + "date": "2020-03-04", + "confirmed": "55", + "deaths": "1" + }, + { + "date": "2020-03-05", + "confirmed": "67", + "deaths": "1" + }, + { + "date": "2020-03-06", + "confirmed": "81", + "deaths": "1" + }, + { + "date": "2020-03-07", + "confirmed": "100", + "deaths": "1" + }, + { + "date": "2020-03-08", + "confirmed": "112", + "deaths": "1" + }, + { + "date": "2020-03-09", + "confirmed": "172", + "deaths": "2" + }, + { + "date": "2020-03-10", + "confirmed": "179", + "deaths": "3" + }, + { + "date": "2020-03-11", + "confirmed": "202", + "deaths": "4" + }, + { + "date": "2020-03-12", + "confirmed": "252", + "deaths": "4" + }, + { + "date": "2020-03-13", + "confirmed": "320", + "deaths": "5" + }, + { + "date": "2020-03-14", + "confirmed": "381", + "deaths": "5" + }, + { + "date": "2020-03-15", + "confirmed": "478", + "deaths": "6" + }, + { + "date": "2020-03-16", + "confirmed": "588", + "deaths": "11" + }, + { + "date": "2020-03-17", + "confirmed": "732", + "deaths": "14" + }, + { + "date": "2020-03-18", + "confirmed": "893", + "deaths": "17" + }, + { + "date": "2020-03-19", + "confirmed": "1067", + "deaths": "19" + }, + { + "date": "2020-03-20", + "confirmed": "1283", + "deaths": "24" + }, + { + "date": "2020-03-21", + "confirmed": "1544", + "deaths": "28" + }, + { + "date": "2020-03-22", + "confirmed": "1851", + "deaths": "35" + }, + { + "date": "2020-03-23", + "confirmed": "2240", + "deaths": "39" + }, + { + "date": "2020-03-24", + "confirmed": "2644", + "deaths": "52" + }, + { + "date": "2020-03-25", + "confirmed": "3183", + "deaths": "67" + }, + { + "date": "2020-03-26", + "confirmed": "4060", + "deaths": "82" + }, + { + "date": "2020-03-27", + "confirmed": "4914", + "deaths": "102" + }, + { + "date": "2020-03-28", + "confirmed": "5565", + "deaths": "121" + }, + { + "date": "2020-03-29", + "confirmed": "6266", + "deaths": "130" + }, + { + "date": "2020-03-30", + "confirmed": "7421", + "deaths": "146" + }, + { + "date": "2020-03-31", + "confirmed": "8582", + "deaths": "183" + }, + { + "date": "2020-04-01", + "confirmed": "9816", + "deaths": "212" + }, + { + "date": "2020-04-02", + "confirmed": "11190", + "deaths": "247" + }, + { + "date": "2020-04-03", + "confirmed": "12569", + "deaths": "282" + }, + { + "date": "2020-04-04", + "confirmed": "13796", + "deaths": "323" + }, + { + "date": "2020-04-05", + "confirmed": "15076", + "deaths": "349" + }, + { + "date": "2020-04-06", + "confirmed": "16284", + "deaths": "386" + }, + { + "date": "2020-04-07", + "confirmed": "17540", + "deaths": "447" + }, + { + "date": "2020-04-08", + "confirmed": "19043", + "deaths": "506" + }, + { + "date": "2020-04-09", + "confirmed": "20191", + "deaths": "548" + }, + { + "date": "2020-04-10", + "confirmed": "21366", + "deaths": "594" + }, + { + "date": "2020-04-11", + "confirmed": "22421", + "deaths": "632" + }, + { + "date": "2020-04-12", + "confirmed": "23323", + "deaths": "676" + }, + { + "date": "2020-04-13", + "confirmed": "24334", + "deaths": "725" + }, + { + "date": "2020-04-14", + "confirmed": "25758", + "deaths": "778" + }, + { + "date": "2020-04-15", + "confirmed": "27107", + "deaths": "885" + }, + { + "date": "2020-04-16", + "confirmed": "28142", + "deaths": "971" + }, + { + "date": "2020-04-17", + "confirmed": "29398", + "deaths": "1050" + }, + { + "date": "2020-04-18", + "confirmed": "30829", + "deaths": "1146" + }, + { + "date": "2020-04-19", + "confirmed": "31544", + "deaths": "1176" + }, + { + "date": "2020-04-20", + "confirmed": "33862", + "deaths": "1223" + }, + { + "date": "2020-04-21", + "confirmed": "35844", + "deaths": "1316" + }, + { + "date": "2020-04-22", + "confirmed": "37573", + "deaths": "1425" + }, + { + "date": "2020-04-23", + "confirmed": "39534", + "deaths": "1553" + }, + { + "date": "2020-04-24", + "confirmed": "41368", + "deaths": "1619" + }, + { + "date": "2020-04-25", + "confirmed": "42590", + "deaths": "1692" + }, + { + "date": "2020-04-26", + "confirmed": "43691", + "deaths": "1716" + }, + { + "date": "2020-04-27", + "confirmed": "45208", + "deaths": "1800" + }, + { + "date": "2020-04-28", + "confirmed": "46570", + "deaths": "1884" + }, + { + "date": "2020-04-29", + "confirmed": "48904", + "deaths": "1961" + }, + { + "date": "2020-04-30", + "confirmed": "50470", + "deaths": "2057" + }, + { + "date": "2020-05-01", + "confirmed": "52318", + "deaths": "2147" + }, + { + "date": "2020-05-02", + "confirmed": "53753", + "deaths": "2213" + } + ], + "Colorado": [ + { + "date": "2020-03-05", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-06", + "confirmed": "8", + "deaths": "0" + }, + { + "date": "2020-03-07", + "confirmed": "8", + "deaths": "0" + }, + { + "date": "2020-03-08", + "confirmed": "8", + "deaths": "0" + }, + { + "date": "2020-03-09", + "confirmed": "12", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "17", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "34", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "49", + "deaths": "1" + }, + { + "date": "2020-03-13", + "confirmed": "78", + "deaths": "2" + }, + { + "date": "2020-03-14", + "confirmed": "103", + "deaths": "2" + }, + { + "date": "2020-03-15", + "confirmed": "136", + "deaths": "2" + }, + { + "date": "2020-03-16", + "confirmed": "161", + "deaths": "2" + }, + { + "date": "2020-03-17", + "confirmed": "183", + "deaths": "3" + }, + { + "date": "2020-03-18", + "confirmed": "216", + "deaths": "3" + }, + { + "date": "2020-03-19", + "confirmed": "278", + "deaths": "5" + }, + { + "date": "2020-03-20", + "confirmed": "364", + "deaths": "5" + }, + { + "date": "2020-03-21", + "confirmed": "475", + "deaths": "6" + }, + { + "date": "2020-03-22", + "confirmed": "591", + "deaths": "7" + }, + { + "date": "2020-03-23", + "confirmed": "721", + "deaths": "10" + }, + { + "date": "2020-03-24", + "confirmed": "912", + "deaths": "11" + }, + { + "date": "2020-03-25", + "confirmed": "1086", + "deaths": "19" + }, + { + "date": "2020-03-26", + "confirmed": "1432", + "deaths": "24" + }, + { + "date": "2020-03-27", + "confirmed": "1735", + "deaths": "31" + }, + { + "date": "2020-03-28", + "confirmed": "2061", + "deaths": "44" + }, + { + "date": "2020-03-29", + "confirmed": "2315", + "deaths": "47" + }, + { + "date": "2020-03-30", + "confirmed": "2628", + "deaths": "51" + }, + { + "date": "2020-03-31", + "confirmed": "2990", + "deaths": "69" + }, + { + "date": "2020-04-01", + "confirmed": "3346", + "deaths": "80" + }, + { + "date": "2020-04-02", + "confirmed": "3728", + "deaths": "96" + }, + { + "date": "2020-04-03", + "confirmed": "4182", + "deaths": "110" + }, + { + "date": "2020-04-04", + "confirmed": "4574", + "deaths": "126" + }, + { + "date": "2020-04-05", + "confirmed": "4950", + "deaths": "140" + }, + { + "date": "2020-04-06", + "confirmed": "5172", + "deaths": "150" + }, + { + "date": "2020-04-07", + "confirmed": "5429", + "deaths": "179" + }, + { + "date": "2020-04-08", + "confirmed": "5655", + "deaths": "192" + }, + { + "date": "2020-04-09", + "confirmed": "6202", + "deaths": "227" + }, + { + "date": "2020-04-10", + "confirmed": "6510", + "deaths": "253" + }, + { + "date": "2020-04-11", + "confirmed": "6893", + "deaths": "274" + }, + { + "date": "2020-04-12", + "confirmed": "7303", + "deaths": "290" + }, + { + "date": "2020-04-13", + "confirmed": "7691", + "deaths": "308" + }, + { + "date": "2020-04-14", + "confirmed": "7941", + "deaths": "329" + }, + { + "date": "2020-04-15", + "confirmed": "8280", + "deaths": "355" + }, + { + "date": "2020-04-16", + "confirmed": "8675", + "deaths": "374" + }, + { + "date": "2020-04-17", + "confirmed": "9047", + "deaths": "389" + }, + { + "date": "2020-04-18", + "confirmed": "9433", + "deaths": "409" + }, + { + "date": "2020-04-19", + "confirmed": "9730", + "deaths": "421" + }, + { + "date": "2020-04-20", + "confirmed": "10106", + "deaths": "448" + }, + { + "date": "2020-04-21", + "confirmed": "10447", + "deaths": "484" + }, + { + "date": "2020-04-22", + "confirmed": "10878", + "deaths": "526" + }, + { + "date": "2020-04-23", + "confirmed": "11262", + "deaths": "557" + }, + { + "date": "2020-04-24", + "confirmed": "12255", + "deaths": "672" + }, + { + "date": "2020-04-25", + "confirmed": "12968", + "deaths": "670" + }, + { + "date": "2020-04-26", + "confirmed": "13441", + "deaths": "678" + }, + { + "date": "2020-04-27", + "confirmed": "13804", + "deaths": "705" + }, + { + "date": "2020-04-28", + "confirmed": "14239", + "deaths": "734" + }, + { + "date": "2020-04-29", + "confirmed": "14680", + "deaths": "764" + }, + { + "date": "2020-04-30", + "confirmed": "15207", + "deaths": "775" + }, + { + "date": "2020-05-01", + "confirmed": "15661", + "deaths": "818" + }, + { + "date": "2020-05-02", + "confirmed": "16118", + "deaths": "830" + } + ], + "Connecticut": [ + { + "date": "2020-03-08", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-09", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "3", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "6", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "11", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "20", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "26", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "41", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "68", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "96", + "deaths": "1" + }, + { + "date": "2020-03-19", + "confirmed": "159", + "deaths": "4" + }, + { + "date": "2020-03-20", + "confirmed": "194", + "deaths": "4" + }, + { + "date": "2020-03-21", + "confirmed": "223", + "deaths": "5" + }, + { + "date": "2020-03-22", + "confirmed": "327", + "deaths": "8" + }, + { + "date": "2020-03-23", + "confirmed": "415", + "deaths": "10" + }, + { + "date": "2020-03-24", + "confirmed": "618", + "deaths": "12" + }, + { + "date": "2020-03-25", + "confirmed": "875", + "deaths": "19" + }, + { + "date": "2020-03-26", + "confirmed": "1012", + "deaths": "21" + }, + { + "date": "2020-03-27", + "confirmed": "1291", + "deaths": "27" + }, + { + "date": "2020-03-28", + "confirmed": "1524", + "deaths": "33" + }, + { + "date": "2020-03-29", + "confirmed": "1993", + "deaths": "34" + }, + { + "date": "2020-03-30", + "confirmed": "2571", + "deaths": "36" + }, + { + "date": "2020-03-31", + "confirmed": "3128", + "deaths": "69" + }, + { + "date": "2020-04-01", + "confirmed": "3557", + "deaths": "85" + }, + { + "date": "2020-04-02", + "confirmed": "3824", + "deaths": "112" + }, + { + "date": "2020-04-03", + "confirmed": "4915", + "deaths": "132" + }, + { + "date": "2020-04-04", + "confirmed": "5276", + "deaths": "165" + }, + { + "date": "2020-04-05", + "confirmed": "5675", + "deaths": "189" + }, + { + "date": "2020-04-06", + "confirmed": "6906", + "deaths": "206" + }, + { + "date": "2020-04-07", + "confirmed": "7781", + "deaths": "277" + }, + { + "date": "2020-04-08", + "confirmed": "8781", + "deaths": "335" + }, + { + "date": "2020-04-09", + "confirmed": "9784", + "deaths": "380" + }, + { + "date": "2020-04-10", + "confirmed": "10538", + "deaths": "448" + }, + { + "date": "2020-04-11", + "confirmed": "11510", + "deaths": "494" + }, + { + "date": "2020-04-12", + "confirmed": "12035", + "deaths": "554" + }, + { + "date": "2020-04-13", + "confirmed": "13381", + "deaths": "602" + }, + { + "date": "2020-04-14", + "confirmed": "13989", + "deaths": "671" + }, + { + "date": "2020-04-15", + "confirmed": "14755", + "deaths": "868" + }, + { + "date": "2020-04-16", + "confirmed": "15884", + "deaths": "971" + }, + { + "date": "2020-04-17", + "confirmed": "16809", + "deaths": "1036" + }, + { + "date": "2020-04-18", + "confirmed": "17550", + "deaths": "1086" + }, + { + "date": "2020-04-19", + "confirmed": "17962", + "deaths": "1127" + }, + { + "date": "2020-04-20", + "confirmed": "19815", + "deaths": "1331" + }, + { + "date": "2020-04-21", + "confirmed": "20360", + "deaths": "1423" + }, + { + "date": "2020-04-22", + "confirmed": "22469", + "deaths": "1544" + }, + { + "date": "2020-04-23", + "confirmed": "23100", + "deaths": "1639" + }, + { + "date": "2020-04-24", + "confirmed": "23921", + "deaths": "1764" + }, + { + "date": "2020-04-25", + "confirmed": "24582", + "deaths": "1862" + }, + { + "date": "2020-04-26", + "confirmed": "25269", + "deaths": "1925" + }, + { + "date": "2020-04-27", + "confirmed": "25997", + "deaths": "2012" + }, + { + "date": "2020-04-28", + "confirmed": "26312", + "deaths": "2089" + }, + { + "date": "2020-04-29", + "confirmed": "26767", + "deaths": "2168" + }, + { + "date": "2020-04-30", + "confirmed": "27700", + "deaths": "2257" + }, + { + "date": "2020-05-01", + "confirmed": "28764", + "deaths": "2339" + }, + { + "date": "2020-05-02", + "confirmed": "29287", + "deaths": "2436" + } + ], + "Delaware": [ + { + "date": "2020-03-11", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "4", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "4", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "4", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "7", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "8", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "16", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "26", + "deaths": "0" + }, + { + "date": "2020-03-19", + "confirmed": "30", + "deaths": "0" + }, + { + "date": "2020-03-20", + "confirmed": "39", + "deaths": "0" + }, + { + "date": "2020-03-21", + "confirmed": "45", + "deaths": "0" + }, + { + "date": "2020-03-22", + "confirmed": "56", + "deaths": "0" + }, + { + "date": "2020-03-23", + "confirmed": "87", + "deaths": "0" + }, + { + "date": "2020-03-24", + "confirmed": "104", + "deaths": "0" + }, + { + "date": "2020-03-25", + "confirmed": "119", + "deaths": "0" + }, + { + "date": "2020-03-26", + "confirmed": "143", + "deaths": "1" + }, + { + "date": "2020-03-27", + "confirmed": "165", + "deaths": "2" + }, + { + "date": "2020-03-28", + "confirmed": "214", + "deaths": "5" + }, + { + "date": "2020-03-29", + "confirmed": "232", + "deaths": "6" + }, + { + "date": "2020-03-30", + "confirmed": "264", + "deaths": "7" + }, + { + "date": "2020-03-31", + "confirmed": "319", + "deaths": "10" + }, + { + "date": "2020-04-01", + "confirmed": "368", + "deaths": "11" + }, + { + "date": "2020-04-02", + "confirmed": "393", + "deaths": "12" + }, + { + "date": "2020-04-03", + "confirmed": "450", + "deaths": "14" + }, + { + "date": "2020-04-04", + "confirmed": "593", + "deaths": "14" + }, + { + "date": "2020-04-05", + "confirmed": "673", + "deaths": "14" + }, + { + "date": "2020-04-06", + "confirmed": "783", + "deaths": "15" + }, + { + "date": "2020-04-07", + "confirmed": "928", + "deaths": "16" + }, + { + "date": "2020-04-08", + "confirmed": "1116", + "deaths": "19" + }, + { + "date": "2020-04-09", + "confirmed": "1209", + "deaths": "23" + }, + { + "date": "2020-04-10", + "confirmed": "1326", + "deaths": "32" + }, + { + "date": "2020-04-11", + "confirmed": "1479", + "deaths": "33" + }, + { + "date": "2020-04-12", + "confirmed": "1625", + "deaths": "35" + }, + { + "date": "2020-04-13", + "confirmed": "1761", + "deaths": "41" + }, + { + "date": "2020-04-14", + "confirmed": "1926", + "deaths": "43" + }, + { + "date": "2020-04-15", + "confirmed": "2014", + "deaths": "46" + }, + { + "date": "2020-04-16", + "confirmed": "2075", + "deaths": "52" + }, + { + "date": "2020-04-17", + "confirmed": "2323", + "deaths": "61" + }, + { + "date": "2020-04-18", + "confirmed": "2538", + "deaths": "67" + }, + { + "date": "2020-04-19", + "confirmed": "2538", + "deaths": "67" + }, + { + "date": "2020-04-20", + "confirmed": "2745", + "deaths": "72" + }, + { + "date": "2020-04-21", + "confirmed": "2931", + "deaths": "82" + }, + { + "date": "2020-04-22", + "confirmed": "3200", + "deaths": "89" + }, + { + "date": "2020-04-23", + "confirmed": "3308", + "deaths": "92" + }, + { + "date": "2020-04-24", + "confirmed": "3442", + "deaths": "100" + }, + { + "date": "2020-04-25", + "confirmed": "3576", + "deaths": "112" + }, + { + "date": "2020-04-26", + "confirmed": "4034", + "deaths": "120" + }, + { + "date": "2020-04-27", + "confirmed": "4162", + "deaths": "125" + }, + { + "date": "2020-04-28", + "confirmed": "4575", + "deaths": "137" + }, + { + "date": "2020-04-29", + "confirmed": "4655", + "deaths": "144" + }, + { + "date": "2020-04-30", + "confirmed": "4734", + "deaths": "152" + }, + { + "date": "2020-05-01", + "confirmed": "4918", + "deaths": "159" + }, + { + "date": "2020-05-02", + "confirmed": "5038", + "deaths": "168" + } + ], + "District of Columbia": [ + { + "date": "2020-03-07", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-08", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-09", + "confirmed": "4", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "4", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "10", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "10", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "10", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "16", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "17", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "22", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "31", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "36", + "deaths": "0" + }, + { + "date": "2020-03-19", + "confirmed": "39", + "deaths": "0" + }, + { + "date": "2020-03-20", + "confirmed": "71", + "deaths": "0" + }, + { + "date": "2020-03-21", + "confirmed": "77", + "deaths": "1" + }, + { + "date": "2020-03-22", + "confirmed": "98", + "deaths": "1" + }, + { + "date": "2020-03-23", + "confirmed": "116", + "deaths": "2" + }, + { + "date": "2020-03-24", + "confirmed": "137", + "deaths": "2" + }, + { + "date": "2020-03-25", + "confirmed": "183", + "deaths": "2" + }, + { + "date": "2020-03-26", + "confirmed": "231", + "deaths": "3" + }, + { + "date": "2020-03-27", + "confirmed": "267", + "deaths": "3" + }, + { + "date": "2020-03-28", + "confirmed": "304", + "deaths": "4" + }, + { + "date": "2020-03-29", + "confirmed": "342", + "deaths": "5" + }, + { + "date": "2020-03-30", + "confirmed": "401", + "deaths": "9" + }, + { + "date": "2020-03-31", + "confirmed": "495", + "deaths": "9" + }, + { + "date": "2020-04-01", + "confirmed": "586", + "deaths": "11" + }, + { + "date": "2020-04-02", + "confirmed": "653", + "deaths": "12" + }, + { + "date": "2020-04-03", + "confirmed": "757", + "deaths": "15" + }, + { + "date": "2020-04-04", + "confirmed": "902", + "deaths": "21" + }, + { + "date": "2020-04-05", + "confirmed": "998", + "deaths": "22" + }, + { + "date": "2020-04-06", + "confirmed": "1097", + "deaths": "24" + }, + { + "date": "2020-04-07", + "confirmed": "1211", + "deaths": "24" + }, + { + "date": "2020-04-08", + "confirmed": "1440", + "deaths": "27" + }, + { + "date": "2020-04-09", + "confirmed": "1523", + "deaths": "32" + }, + { + "date": "2020-04-10", + "confirmed": "1660", + "deaths": "38" + }, + { + "date": "2020-04-11", + "confirmed": "1778", + "deaths": "47" + }, + { + "date": "2020-04-12", + "confirmed": "1875", + "deaths": "50" + }, + { + "date": "2020-04-13", + "confirmed": "1955", + "deaths": "52" + }, + { + "date": "2020-04-14", + "confirmed": "2058", + "deaths": "67" + }, + { + "date": "2020-04-15", + "confirmed": "2197", + "deaths": "72" + }, + { + "date": "2020-04-16", + "confirmed": "2350", + "deaths": "81" + }, + { + "date": "2020-04-17", + "confirmed": "2476", + "deaths": "86" + }, + { + "date": "2020-04-18", + "confirmed": "2666", + "deaths": "91" + }, + { + "date": "2020-04-19", + "confirmed": "2793", + "deaths": "96" + }, + { + "date": "2020-04-20", + "confirmed": "2927", + "deaths": "105" + }, + { + "date": "2020-04-21", + "confirmed": "3098", + "deaths": "112" + }, + { + "date": "2020-04-22", + "confirmed": "3206", + "deaths": "127" + }, + { + "date": "2020-04-23", + "confirmed": "3361", + "deaths": "139" + }, + { + "date": "2020-04-24", + "confirmed": "3528", + "deaths": "153" + }, + { + "date": "2020-04-25", + "confirmed": "3699", + "deaths": "165" + }, + { + "date": "2020-04-26", + "confirmed": "3841", + "deaths": "178" + }, + { + "date": "2020-04-27", + "confirmed": "3892", + "deaths": "185" + }, + { + "date": "2020-04-28", + "confirmed": "3994", + "deaths": "190" + }, + { + "date": "2020-04-29", + "confirmed": "4106", + "deaths": "205" + }, + { + "date": "2020-04-30", + "confirmed": "4323", + "deaths": "224" + }, + { + "date": "2020-05-01", + "confirmed": "4658", + "deaths": "231" + }, + { + "date": "2020-05-02", + "confirmed": "4797", + "deaths": "240" + } + ], + "Florida": [ + { + "date": "2020-03-01", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-02", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-03", + "confirmed": "3", + "deaths": "0" + }, + { + "date": "2020-03-04", + "confirmed": "3", + "deaths": "0" + }, + { + "date": "2020-03-05", + "confirmed": "4", + "deaths": "0" + }, + { + "date": "2020-03-06", + "confirmed": "7", + "deaths": "2" + }, + { + "date": "2020-03-07", + "confirmed": "12", + "deaths": "2" + }, + { + "date": "2020-03-08", + "confirmed": "13", + "deaths": "2" + }, + { + "date": "2020-03-09", + "confirmed": "14", + "deaths": "2" + }, + { + "date": "2020-03-10", + "confirmed": "23", + "deaths": "2" + }, + { + "date": "2020-03-11", + "confirmed": "26", + "deaths": "2" + }, + { + "date": "2020-03-12", + "confirmed": "46", + "deaths": "2" + }, + { + "date": "2020-03-13", + "confirmed": "70", + "deaths": "2" + }, + { + "date": "2020-03-14", + "confirmed": "70", + "deaths": "3" + }, + { + "date": "2020-03-15", + "confirmed": "109", + "deaths": "3" + }, + { + "date": "2020-03-16", + "confirmed": "141", + "deaths": "4" + }, + { + "date": "2020-03-17", + "confirmed": "210", + "deaths": "6" + }, + { + "date": "2020-03-18", + "confirmed": "326", + "deaths": "7" + }, + { + "date": "2020-03-19", + "confirmed": "434", + "deaths": "8" + }, + { + "date": "2020-03-20", + "confirmed": "564", + "deaths": "9" + }, + { + "date": "2020-03-21", + "confirmed": "764", + "deaths": "11" + }, + { + "date": "2020-03-22", + "confirmed": "1000", + "deaths": "13" + }, + { + "date": "2020-03-23", + "confirmed": "1222", + "deaths": "18" + }, + { + "date": "2020-03-24", + "confirmed": "1467", + "deaths": "19" + }, + { + "date": "2020-03-25", + "confirmed": "1965", + "deaths": "23" + }, + { + "date": "2020-03-26", + "confirmed": "2477", + "deaths": "29" + }, + { + "date": "2020-03-27", + "confirmed": "3198", + "deaths": "46" + }, + { + "date": "2020-03-28", + "confirmed": "4038", + "deaths": "56" + }, + { + "date": "2020-03-29", + "confirmed": "4942", + "deaths": "59" + }, + { + "date": "2020-03-30", + "confirmed": "5694", + "deaths": "71" + }, + { + "date": "2020-03-31", + "confirmed": "6741", + "deaths": "85" + }, + { + "date": "2020-04-01", + "confirmed": "7765", + "deaths": "100" + }, + { + "date": "2020-04-02", + "confirmed": "9000", + "deaths": "144" + }, + { + "date": "2020-04-03", + "confirmed": "10260", + "deaths": "169" + }, + { + "date": "2020-04-04", + "confirmed": "11537", + "deaths": "194" + }, + { + "date": "2020-04-05", + "confirmed": "12342", + "deaths": "220" + }, + { + "date": "2020-04-06", + "confirmed": "13621", + "deaths": "253" + }, + { + "date": "2020-04-07", + "confirmed": "14739", + "deaths": "295" + }, + { + "date": "2020-04-08", + "confirmed": "15690", + "deaths": "322" + }, + { + "date": "2020-04-09", + "confirmed": "16819", + "deaths": "370" + }, + { + "date": "2020-04-10", + "confirmed": "17960", + "deaths": "418" + }, + { + "date": "2020-04-11", + "confirmed": "18978", + "deaths": "445" + }, + { + "date": "2020-04-12", + "confirmed": "19855", + "deaths": "460" + }, + { + "date": "2020-04-13", + "confirmed": "21011", + "deaths": "498" + }, + { + "date": "2020-04-14", + "confirmed": "21620", + "deaths": "570" + }, + { + "date": "2020-04-15", + "confirmed": "22526", + "deaths": "613" + }, + { + "date": "2020-04-16", + "confirmed": "23332", + "deaths": "667" + }, + { + "date": "2020-04-17", + "confirmed": "24745", + "deaths": "725" + }, + { + "date": "2020-04-18", + "confirmed": "25484", + "deaths": "747" + }, + { + "date": "2020-04-19", + "confirmed": "26306", + "deaths": "773" + }, + { + "date": "2020-04-20", + "confirmed": "27050", + "deaths": "822" + }, + { + "date": "2020-04-21", + "confirmed": "27861", + "deaths": "866" + }, + { + "date": "2020-04-22", + "confirmed": "28301", + "deaths": "926" + }, + { + "date": "2020-04-23", + "confirmed": "29640", + "deaths": "986" + }, + { + "date": "2020-04-24", + "confirmed": "30525", + "deaths": "1045" + }, + { + "date": "2020-04-25", + "confirmed": "30831", + "deaths": "1054" + }, + { + "date": "2020-04-26", + "confirmed": "31520", + "deaths": "1073" + }, + { + "date": "2020-04-27", + "confirmed": "32130", + "deaths": "1087" + }, + { + "date": "2020-04-28", + "confirmed": "32838", + "deaths": "1170" + }, + { + "date": "2020-04-29", + "confirmed": "33185", + "deaths": "1216" + }, + { + "date": "2020-04-30", + "confirmed": "33683", + "deaths": "1267" + }, + { + "date": "2020-05-01", + "confirmed": "34720", + "deaths": "1313" + }, + { + "date": "2020-05-02", + "confirmed": "35455", + "deaths": "1363" + } + ], + "Georgia": [ + { + "date": "2020-03-02", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-03", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-04", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-05", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-06", + "confirmed": "3", + "deaths": "0" + }, + { + "date": "2020-03-07", + "confirmed": "7", + "deaths": "0" + }, + { + "date": "2020-03-08", + "confirmed": "11", + "deaths": "0" + }, + { + "date": "2020-03-09", + "confirmed": "17", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "22", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "31", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "31", + "deaths": "1" + }, + { + "date": "2020-03-13", + "confirmed": "41", + "deaths": "1" + }, + { + "date": "2020-03-14", + "confirmed": "65", + "deaths": "1" + }, + { + "date": "2020-03-15", + "confirmed": "97", + "deaths": "1" + }, + { + "date": "2020-03-16", + "confirmed": "118", + "deaths": "1" + }, + { + "date": "2020-03-17", + "confirmed": "142", + "deaths": "1" + }, + { + "date": "2020-03-18", + "confirmed": "193", + "deaths": "3" + }, + { + "date": "2020-03-19", + "confirmed": "282", + "deaths": "10" + }, + { + "date": "2020-03-20", + "confirmed": "482", + "deaths": "14" + }, + { + "date": "2020-03-21", + "confirmed": "552", + "deaths": "20" + }, + { + "date": "2020-03-22", + "confirmed": "620", + "deaths": "25" + }, + { + "date": "2020-03-23", + "confirmed": "800", + "deaths": "25" + }, + { + "date": "2020-03-24", + "confirmed": "1097", + "deaths": "38" + }, + { + "date": "2020-03-25", + "confirmed": "1387", + "deaths": "47" + }, + { + "date": "2020-03-26", + "confirmed": "1643", + "deaths": "56" + }, + { + "date": "2020-03-27", + "confirmed": "2198", + "deaths": "64" + }, + { + "date": "2020-03-28", + "confirmed": "2447", + "deaths": "79" + }, + { + "date": "2020-03-29", + "confirmed": "2683", + "deaths": "83" + }, + { + "date": "2020-03-30", + "confirmed": "3032", + "deaths": "102" + }, + { + "date": "2020-03-31", + "confirmed": "4117", + "deaths": "125" + }, + { + "date": "2020-04-01", + "confirmed": "4748", + "deaths": "154" + }, + { + "date": "2020-04-02", + "confirmed": "5444", + "deaths": "176" + }, + { + "date": "2020-04-03", + "confirmed": "5967", + "deaths": "198" + }, + { + "date": "2020-04-04", + "confirmed": "6383", + "deaths": "208" + }, + { + "date": "2020-04-05", + "confirmed": "6742", + "deaths": "219" + }, + { + "date": "2020-04-06", + "confirmed": "7558", + "deaths": "294" + }, + { + "date": "2020-04-07", + "confirmed": "9156", + "deaths": "348" + }, + { + "date": "2020-04-08", + "confirmed": "10204", + "deaths": "370" + }, + { + "date": "2020-04-09", + "confirmed": "10885", + "deaths": "412" + }, + { + "date": "2020-04-10", + "confirmed": "11859", + "deaths": "425" + }, + { + "date": "2020-04-11", + "confirmed": "12261", + "deaths": "432" + }, + { + "date": "2020-04-12", + "confirmed": "12103", + "deaths": "438" + }, + { + "date": "2020-04-13", + "confirmed": "13125", + "deaths": "479" + }, + { + "date": "2020-04-14", + "confirmed": "13913", + "deaths": "517" + }, + { + "date": "2020-04-15", + "confirmed": "14583", + "deaths": "569" + }, + { + "date": "2020-04-16", + "confirmed": "15644", + "deaths": "611" + }, + { + "date": "2020-04-17", + "confirmed": "16658", + "deaths": "661" + }, + { + "date": "2020-04-18", + "confirmed": "17014", + "deaths": "670" + }, + { + "date": "2020-04-19", + "confirmed": "17619", + "deaths": "682" + }, + { + "date": "2020-04-20", + "confirmed": "18447", + "deaths": "767" + }, + { + "date": "2020-04-21", + "confirmed": "19189", + "deaths": "810" + }, + { + "date": "2020-04-22", + "confirmed": "20099", + "deaths": "837" + }, + { + "date": "2020-04-23", + "confirmed": "20905", + "deaths": "871" + }, + { + "date": "2020-04-24", + "confirmed": "21575", + "deaths": "889" + }, + { + "date": "2020-04-25", + "confirmed": "22225", + "deaths": "897" + }, + { + "date": "2020-04-26", + "confirmed": "22459", + "deaths": "907" + }, + { + "date": "2020-04-27", + "confirmed": "23229", + "deaths": "981" + }, + { + "date": "2020-04-28", + "confirmed": "23607", + "deaths": "1022" + }, + { + "date": "2020-04-29", + "confirmed": "24300", + "deaths": "1086" + }, + { + "date": "2020-04-30", + "confirmed": "25431", + "deaths": "1121" + }, + { + "date": "2020-05-01", + "confirmed": "26436", + "deaths": "1153" + }, + { + "date": "2020-05-02", + "confirmed": "27268", + "deaths": "1161" + } + ], + "Hawaii": [ + { + "date": "2020-03-06", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-07", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-08", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-09", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "4", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "7", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "10", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "14", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "16", + "deaths": "0" + }, + { + "date": "2020-03-19", + "confirmed": "26", + "deaths": "0" + }, + { + "date": "2020-03-20", + "confirmed": "37", + "deaths": "0" + }, + { + "date": "2020-03-21", + "confirmed": "48", + "deaths": "0" + }, + { + "date": "2020-03-22", + "confirmed": "56", + "deaths": "0" + }, + { + "date": "2020-03-23", + "confirmed": "77", + "deaths": "0" + }, + { + "date": "2020-03-24", + "confirmed": "90", + "deaths": "0" + }, + { + "date": "2020-03-25", + "confirmed": "95", + "deaths": "0" + }, + { + "date": "2020-03-26", + "confirmed": "106", + "deaths": "0" + }, + { + "date": "2020-03-27", + "confirmed": "120", + "deaths": "0" + }, + { + "date": "2020-03-28", + "confirmed": "151", + "deaths": "0" + }, + { + "date": "2020-03-29", + "confirmed": "175", + "deaths": "0" + }, + { + "date": "2020-03-30", + "confirmed": "204", + "deaths": "0" + }, + { + "date": "2020-03-31", + "confirmed": "224", + "deaths": "1" + }, + { + "date": "2020-04-01", + "confirmed": "258", + "deaths": "1" + }, + { + "date": "2020-04-02", + "confirmed": "283", + "deaths": "2" + }, + { + "date": "2020-04-03", + "confirmed": "317", + "deaths": "3" + }, + { + "date": "2020-04-04", + "confirmed": "349", + "deaths": "3" + }, + { + "date": "2020-04-05", + "confirmed": "369", + "deaths": "4" + }, + { + "date": "2020-04-06", + "confirmed": "385", + "deaths": "5" + }, + { + "date": "2020-04-07", + "confirmed": "408", + "deaths": "5" + }, + { + "date": "2020-04-08", + "confirmed": "433", + "deaths": "5" + }, + { + "date": "2020-04-09", + "confirmed": "440", + "deaths": "6" + }, + { + "date": "2020-04-10", + "confirmed": "463", + "deaths": "8" + }, + { + "date": "2020-04-11", + "confirmed": "484", + "deaths": "8" + }, + { + "date": "2020-04-12", + "confirmed": "497", + "deaths": "9" + }, + { + "date": "2020-04-13", + "confirmed": "502", + "deaths": "9" + }, + { + "date": "2020-04-14", + "confirmed": "511", + "deaths": "9" + }, + { + "date": "2020-04-15", + "confirmed": "524", + "deaths": "9" + }, + { + "date": "2020-04-16", + "confirmed": "535", + "deaths": "9" + }, + { + "date": "2020-04-17", + "confirmed": "547", + "deaths": "9" + }, + { + "date": "2020-04-18", + "confirmed": "568", + "deaths": "9" + }, + { + "date": "2020-04-19", + "confirmed": "574", + "deaths": "10" + }, + { + "date": "2020-04-20", + "confirmed": "578", + "deaths": "10" + }, + { + "date": "2020-04-21", + "confirmed": "580", + "deaths": "12" + }, + { + "date": "2020-04-22", + "confirmed": "586", + "deaths": "12" + }, + { + "date": "2020-04-23", + "confirmed": "590", + "deaths": "12" + }, + { + "date": "2020-04-24", + "confirmed": "595", + "deaths": "13" + }, + { + "date": "2020-04-25", + "confirmed": "597", + "deaths": "14" + }, + { + "date": "2020-04-26", + "confirmed": "599", + "deaths": "14" + }, + { + "date": "2020-04-27", + "confirmed": "600", + "deaths": "16" + }, + { + "date": "2020-04-28", + "confirmed": "602", + "deaths": "16" + }, + { + "date": "2020-04-29", + "confirmed": "605", + "deaths": "16" + }, + { + "date": "2020-04-30", + "confirmed": "609", + "deaths": "16" + }, + { + "date": "2020-05-01", + "confirmed": "610", + "deaths": "16" + }, + { + "date": "2020-05-02", + "confirmed": "611", + "deaths": "16" + } + ], + "Idaho": [ + { + "date": "2020-03-13", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "5", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "5", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "5", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "9", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "11", + "deaths": "0" + }, + { + "date": "2020-03-19", + "confirmed": "23", + "deaths": "0" + }, + { + "date": "2020-03-20", + "confirmed": "31", + "deaths": "0" + }, + { + "date": "2020-03-21", + "confirmed": "42", + "deaths": "0" + }, + { + "date": "2020-03-22", + "confirmed": "47", + "deaths": "0" + }, + { + "date": "2020-03-23", + "confirmed": "50", + "deaths": "0" + }, + { + "date": "2020-03-24", + "confirmed": "73", + "deaths": "0" + }, + { + "date": "2020-03-25", + "confirmed": "123", + "deaths": "0" + }, + { + "date": "2020-03-26", + "confirmed": "189", + "deaths": "3" + }, + { + "date": "2020-03-27", + "confirmed": "231", + "deaths": "4" + }, + { + "date": "2020-03-28", + "confirmed": "261", + "deaths": "5" + }, + { + "date": "2020-03-29", + "confirmed": "310", + "deaths": "6" + }, + { + "date": "2020-03-30", + "confirmed": "415", + "deaths": "7" + }, + { + "date": "2020-03-31", + "confirmed": "526", + "deaths": "9" + }, + { + "date": "2020-04-01", + "confirmed": "669", + "deaths": "9" + }, + { + "date": "2020-04-02", + "confirmed": "891", + "deaths": "9" + }, + { + "date": "2020-04-03", + "confirmed": "1013", + "deaths": "10" + }, + { + "date": "2020-04-04", + "confirmed": "1077", + "deaths": "10" + }, + { + "date": "2020-04-05", + "confirmed": "1101", + "deaths": "10" + }, + { + "date": "2020-04-06", + "confirmed": "1170", + "deaths": "13" + }, + { + "date": "2020-04-07", + "confirmed": "1210", + "deaths": "15" + }, + { + "date": "2020-04-08", + "confirmed": "1232", + "deaths": "19" + }, + { + "date": "2020-04-09", + "confirmed": "1353", + "deaths": "24" + }, + { + "date": "2020-04-10", + "confirmed": "1397", + "deaths": "25" + }, + { + "date": "2020-04-11", + "confirmed": "1407", + "deaths": "27" + }, + { + "date": "2020-04-12", + "confirmed": "1426", + "deaths": "27" + }, + { + "date": "2020-04-13", + "confirmed": "1453", + "deaths": "33" + }, + { + "date": "2020-04-14", + "confirmed": "1464", + "deaths": "39" + }, + { + "date": "2020-04-15", + "confirmed": "1507", + "deaths": "41" + }, + { + "date": "2020-04-16", + "confirmed": "1528", + "deaths": "41" + }, + { + "date": "2020-04-17", + "confirmed": "1566", + "deaths": "43" + }, + { + "date": "2020-04-18", + "confirmed": "1577", + "deaths": "44" + }, + { + "date": "2020-04-19", + "confirmed": "1581", + "deaths": "45" + }, + { + "date": "2020-04-20", + "confirmed": "1638", + "deaths": "48" + }, + { + "date": "2020-04-21", + "confirmed": "1659", + "deaths": "51" + }, + { + "date": "2020-04-22", + "confirmed": "1688", + "deaths": "54" + }, + { + "date": "2020-04-23", + "confirmed": "1721", + "deaths": "54" + }, + { + "date": "2020-04-24", + "confirmed": "1750", + "deaths": "54" + }, + { + "date": "2020-04-25", + "confirmed": "1760", + "deaths": "56" + }, + { + "date": "2020-04-26", + "confirmed": "1768", + "deaths": "56" + }, + { + "date": "2020-04-27", + "confirmed": "1785", + "deaths": "58" + }, + { + "date": "2020-04-28", + "confirmed": "1810", + "deaths": "60" + }, + { + "date": "2020-04-29", + "confirmed": "1831", + "deaths": "60" + }, + { + "date": "2020-04-30", + "confirmed": "1861", + "deaths": "63" + }, + { + "date": "2020-05-01", + "confirmed": "1883", + "deaths": "63" + }, + { + "date": "2020-05-02", + "confirmed": "1908", + "deaths": "64" + } + ], + "Illinois": [ + { + "date": "2020-01-24", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-01-25", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-01-26", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-01-27", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-01-28", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-01-29", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-01-30", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-01-31", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-01", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-02", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-03", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-04", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-05", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-06", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-07", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-08", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-09", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-10", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-11", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-12", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-13", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-14", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-15", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-16", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-17", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-18", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-19", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-20", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-21", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-22", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-23", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-24", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-25", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-26", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-27", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-28", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-29", + "confirmed": "3", + "deaths": "0" + }, + { + "date": "2020-03-01", + "confirmed": "3", + "deaths": "0" + }, + { + "date": "2020-03-02", + "confirmed": "4", + "deaths": "0" + }, + { + "date": "2020-03-03", + "confirmed": "4", + "deaths": "0" + }, + { + "date": "2020-03-04", + "confirmed": "4", + "deaths": "0" + }, + { + "date": "2020-03-05", + "confirmed": "5", + "deaths": "0" + }, + { + "date": "2020-03-06", + "confirmed": "6", + "deaths": "0" + }, + { + "date": "2020-03-07", + "confirmed": "6", + "deaths": "0" + }, + { + "date": "2020-03-08", + "confirmed": "7", + "deaths": "0" + }, + { + "date": "2020-03-09", + "confirmed": "11", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "19", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "25", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "32", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "46", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "66", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "94", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "104", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "159", + "deaths": "1" + }, + { + "date": "2020-03-18", + "confirmed": "286", + "deaths": "1" + }, + { + "date": "2020-03-19", + "confirmed": "420", + "deaths": "4" + }, + { + "date": "2020-03-20", + "confirmed": "583", + "deaths": "5" + }, + { + "date": "2020-03-21", + "confirmed": "751", + "deaths": "6" + }, + { + "date": "2020-03-22", + "confirmed": "1047", + "deaths": "9" + }, + { + "date": "2020-03-23", + "confirmed": "1285", + "deaths": "12" + }, + { + "date": "2020-03-24", + "confirmed": "1535", + "deaths": "16" + }, + { + "date": "2020-03-25", + "confirmed": "1875", + "deaths": "21" + }, + { + "date": "2020-03-26", + "confirmed": "2538", + "deaths": "26" + }, + { + "date": "2020-03-27", + "confirmed": "3029", + "deaths": "37" + }, + { + "date": "2020-03-28", + "confirmed": "3547", + "deaths": "50" + }, + { + "date": "2020-03-29", + "confirmed": "4613", + "deaths": "70" + }, + { + "date": "2020-03-30", + "confirmed": "5070", + "deaths": "84" + }, + { + "date": "2020-03-31", + "confirmed": "5994", + "deaths": "107" + }, + { + "date": "2020-04-01", + "confirmed": "6980", + "deaths": "146" + }, + { + "date": "2020-04-02", + "confirmed": "7695", + "deaths": "165" + }, + { + "date": "2020-04-03", + "confirmed": "8904", + "deaths": "211" + }, + { + "date": "2020-04-04", + "confirmed": "10357", + "deaths": "248" + }, + { + "date": "2020-04-05", + "confirmed": "11276", + "deaths": "282" + }, + { + "date": "2020-04-06", + "confirmed": "12262", + "deaths": "309" + }, + { + "date": "2020-04-07", + "confirmed": "13549", + "deaths": "384" + }, + { + "date": "2020-04-08", + "confirmed": "15078", + "deaths": "464" + }, + { + "date": "2020-04-09", + "confirmed": "16422", + "deaths": "534" + }, + { + "date": "2020-04-10", + "confirmed": "17887", + "deaths": "607" + }, + { + "date": "2020-04-11", + "confirmed": "19180", + "deaths": "682" + }, + { + "date": "2020-04-12", + "confirmed": "20852", + "deaths": "727" + }, + { + "date": "2020-04-13", + "confirmed": "22025", + "deaths": "800" + }, + { + "date": "2020-04-14", + "confirmed": "23247", + "deaths": "878" + }, + { + "date": "2020-04-15", + "confirmed": "24593", + "deaths": "958" + }, + { + "date": "2020-04-16", + "confirmed": "25734", + "deaths": "1081" + }, + { + "date": "2020-04-17", + "confirmed": "27575", + "deaths": "1142" + }, + { + "date": "2020-04-18", + "confirmed": "29160", + "deaths": "1272" + }, + { + "date": "2020-04-19", + "confirmed": "30357", + "deaths": "1302" + }, + { + "date": "2020-04-20", + "confirmed": "31508", + "deaths": "1359" + }, + { + "date": "2020-04-21", + "confirmed": "33059", + "deaths": "1479" + }, + { + "date": "2020-04-22", + "confirmed": "35108", + "deaths": "1577" + }, + { + "date": "2020-04-23", + "confirmed": "36935", + "deaths": "1696" + }, + { + "date": "2020-04-24", + "confirmed": "39658", + "deaths": "1804" + }, + { + "date": "2020-04-25", + "confirmed": "41777", + "deaths": "1884" + }, + { + "date": "2020-04-26", + "confirmed": "43903", + "deaths": "1943" + }, + { + "date": "2020-04-27", + "confirmed": "45883", + "deaths": "1992" + }, + { + "date": "2020-04-28", + "confirmed": "48102", + "deaths": "2132" + }, + { + "date": "2020-04-29", + "confirmed": "50355", + "deaths": "2221" + }, + { + "date": "2020-04-30", + "confirmed": "52918", + "deaths": "2361" + }, + { + "date": "2020-05-01", + "confirmed": "56055", + "deaths": "2464" + }, + { + "date": "2020-05-02", + "confirmed": "58505", + "deaths": "2576" + } + ], + "Indiana": [ + { + "date": "2020-03-06", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-07", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-08", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-09", + "confirmed": "4", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "6", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "11", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "12", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "12", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "15", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "19", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "24", + "deaths": "1" + }, + { + "date": "2020-03-17", + "confirmed": "30", + "deaths": "2" + }, + { + "date": "2020-03-18", + "confirmed": "39", + "deaths": "2" + }, + { + "date": "2020-03-19", + "confirmed": "56", + "deaths": "2" + }, + { + "date": "2020-03-20", + "confirmed": "79", + "deaths": "3" + }, + { + "date": "2020-03-21", + "confirmed": "126", + "deaths": "4" + }, + { + "date": "2020-03-22", + "confirmed": "201", + "deaths": "6" + }, + { + "date": "2020-03-23", + "confirmed": "259", + "deaths": "7" + }, + { + "date": "2020-03-24", + "confirmed": "366", + "deaths": "12" + }, + { + "date": "2020-03-25", + "confirmed": "479", + "deaths": "14" + }, + { + "date": "2020-03-26", + "confirmed": "656", + "deaths": "18" + }, + { + "date": "2020-03-27", + "confirmed": "982", + "deaths": "26" + }, + { + "date": "2020-03-28", + "confirmed": "1232", + "deaths": "31" + }, + { + "date": "2020-03-29", + "confirmed": "1514", + "deaths": "32" + }, + { + "date": "2020-03-30", + "confirmed": "1788", + "deaths": "35" + }, + { + "date": "2020-03-31", + "confirmed": "2159", + "deaths": "50" + }, + { + "date": "2020-04-01", + "confirmed": "2565", + "deaths": "65" + }, + { + "date": "2020-04-02", + "confirmed": "3039", + "deaths": "78" + }, + { + "date": "2020-04-03", + "confirmed": "3437", + "deaths": "102" + }, + { + "date": "2020-04-04", + "confirmed": "3953", + "deaths": "116" + }, + { + "date": "2020-04-05", + "confirmed": "4411", + "deaths": "127" + }, + { + "date": "2020-04-06", + "confirmed": "4956", + "deaths": "141" + }, + { + "date": "2020-04-07", + "confirmed": "5507", + "deaths": "173" + }, + { + "date": "2020-04-08", + "confirmed": "5943", + "deaths": "203" + }, + { + "date": "2020-04-09", + "confirmed": "6351", + "deaths": "246" + }, + { + "date": "2020-04-10", + "confirmed": "6907", + "deaths": "300" + }, + { + "date": "2020-04-11", + "confirmed": "7435", + "deaths": "330" + }, + { + "date": "2020-04-12", + "confirmed": "7928", + "deaths": "343" + }, + { + "date": "2020-04-13", + "confirmed": "8236", + "deaths": "350" + }, + { + "date": "2020-04-14", + "confirmed": "8527", + "deaths": "387" + }, + { + "date": "2020-04-15", + "confirmed": "8955", + "deaths": "436" + }, + { + "date": "2020-04-16", + "confirmed": "9542", + "deaths": "477" + }, + { + "date": "2020-04-17", + "confirmed": "10154", + "deaths": "519" + }, + { + "date": "2020-04-18", + "confirmed": "10641", + "deaths": "545" + }, + { + "date": "2020-04-19", + "confirmed": "11210", + "deaths": "562" + }, + { + "date": "2020-04-20", + "confirmed": "11686", + "deaths": "569" + }, + { + "date": "2020-04-21", + "confirmed": "12097", + "deaths": "630" + }, + { + "date": "2020-04-22", + "confirmed": "12438", + "deaths": "661" + }, + { + "date": "2020-04-23", + "confirmed": "13039", + "deaths": "706" + }, + { + "date": "2020-04-24", + "confirmed": "13680", + "deaths": "741" + }, + { + "date": "2020-04-25", + "confirmed": "14395", + "deaths": "785" + }, + { + "date": "2020-04-26", + "confirmed": "15012", + "deaths": "813" + }, + { + "date": "2020-04-27", + "confirmed": "15961", + "deaths": "844" + }, + { + "date": "2020-04-28", + "confirmed": "16579", + "deaths": "901" + }, + { + "date": "2020-04-29", + "confirmed": "17168", + "deaths": "964" + }, + { + "date": "2020-04-30", + "confirmed": "17822", + "deaths": "1007" + }, + { + "date": "2020-05-01", + "confirmed": "18630", + "deaths": "1062" + }, + { + "date": "2020-05-02", + "confirmed": "19295", + "deaths": "1115" + } + ], + "Iowa": [ + { + "date": "2020-03-08", + "confirmed": "3", + "deaths": "0" + }, + { + "date": "2020-03-09", + "confirmed": "8", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "13", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "14", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "16", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "17", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "18", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "22", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "22", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "29", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "38", + "deaths": "0" + }, + { + "date": "2020-03-19", + "confirmed": "44", + "deaths": "0" + }, + { + "date": "2020-03-20", + "confirmed": "45", + "deaths": "0" + }, + { + "date": "2020-03-21", + "confirmed": "68", + "deaths": "0" + }, + { + "date": "2020-03-22", + "confirmed": "90", + "deaths": "0" + }, + { + "date": "2020-03-23", + "confirmed": "105", + "deaths": "0" + }, + { + "date": "2020-03-24", + "confirmed": "124", + "deaths": "1" + }, + { + "date": "2020-03-25", + "confirmed": "145", + "deaths": "1" + }, + { + "date": "2020-03-26", + "confirmed": "179", + "deaths": "1" + }, + { + "date": "2020-03-27", + "confirmed": "235", + "deaths": "3" + }, + { + "date": "2020-03-28", + "confirmed": "298", + "deaths": "3" + }, + { + "date": "2020-03-29", + "confirmed": "336", + "deaths": "4" + }, + { + "date": "2020-03-30", + "confirmed": "424", + "deaths": "6" + }, + { + "date": "2020-03-31", + "confirmed": "498", + "deaths": "7" + }, + { + "date": "2020-04-01", + "confirmed": "549", + "deaths": "9" + }, + { + "date": "2020-04-02", + "confirmed": "614", + "deaths": "11" + }, + { + "date": "2020-04-03", + "confirmed": "699", + "deaths": "11" + }, + { + "date": "2020-04-04", + "confirmed": "786", + "deaths": "11" + }, + { + "date": "2020-04-05", + "confirmed": "868", + "deaths": "22" + }, + { + "date": "2020-04-06", + "confirmed": "946", + "deaths": "25" + }, + { + "date": "2020-04-07", + "confirmed": "1048", + "deaths": "26" + }, + { + "date": "2020-04-08", + "confirmed": "1145", + "deaths": "27" + }, + { + "date": "2020-04-09", + "confirmed": "1270", + "deaths": "27" + }, + { + "date": "2020-04-10", + "confirmed": "1388", + "deaths": "31" + }, + { + "date": "2020-04-11", + "confirmed": "1510", + "deaths": "34" + }, + { + "date": "2020-04-12", + "confirmed": "1587", + "deaths": "41" + }, + { + "date": "2020-04-13", + "confirmed": "1710", + "deaths": "44" + }, + { + "date": "2020-04-14", + "confirmed": "1899", + "deaths": "44" + }, + { + "date": "2020-04-15", + "confirmed": "1995", + "deaths": "53" + }, + { + "date": "2020-04-16", + "confirmed": "2141", + "deaths": "60" + }, + { + "date": "2020-04-17", + "confirmed": "2332", + "deaths": "64" + }, + { + "date": "2020-04-18", + "confirmed": "2513", + "deaths": "74" + }, + { + "date": "2020-04-19", + "confirmed": "2915", + "deaths": "75" + }, + { + "date": "2020-04-20", + "confirmed": "3175", + "deaths": "79" + }, + { + "date": "2020-04-21", + "confirmed": "3641", + "deaths": "83" + }, + { + "date": "2020-04-22", + "confirmed": "3764", + "deaths": "90" + }, + { + "date": "2020-04-23", + "confirmed": "3939", + "deaths": "96" + }, + { + "date": "2020-04-24", + "confirmed": "4459", + "deaths": "107" + }, + { + "date": "2020-04-25", + "confirmed": "5109", + "deaths": "112" + }, + { + "date": "2020-04-26", + "confirmed": "5491", + "deaths": "118" + }, + { + "date": "2020-04-27", + "confirmed": "5868", + "deaths": "127" + }, + { + "date": "2020-04-28", + "confirmed": "6376", + "deaths": "136" + }, + { + "date": "2020-04-29", + "confirmed": "6843", + "deaths": "148" + }, + { + "date": "2020-04-30", + "confirmed": "7145", + "deaths": "162" + }, + { + "date": "2020-05-01", + "confirmed": "7884", + "deaths": "170" + }, + { + "date": "2020-05-02", + "confirmed": "8641", + "deaths": "175" + } + ], + "Kansas": [ + { + "date": "2020-03-07", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-08", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-09", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "5", + "deaths": "1" + }, + { + "date": "2020-03-13", + "confirmed": "6", + "deaths": "1" + }, + { + "date": "2020-03-14", + "confirmed": "8", + "deaths": "1" + }, + { + "date": "2020-03-15", + "confirmed": "9", + "deaths": "1" + }, + { + "date": "2020-03-16", + "confirmed": "11", + "deaths": "1" + }, + { + "date": "2020-03-17", + "confirmed": "17", + "deaths": "1" + }, + { + "date": "2020-03-18", + "confirmed": "22", + "deaths": "1" + }, + { + "date": "2020-03-19", + "confirmed": "35", + "deaths": "1" + }, + { + "date": "2020-03-20", + "confirmed": "49", + "deaths": "1" + }, + { + "date": "2020-03-21", + "confirmed": "57", + "deaths": "2" + }, + { + "date": "2020-03-22", + "confirmed": "66", + "deaths": "2" + }, + { + "date": "2020-03-23", + "confirmed": "82", + "deaths": "2" + }, + { + "date": "2020-03-24", + "confirmed": "99", + "deaths": "3" + }, + { + "date": "2020-03-25", + "confirmed": "132", + "deaths": "3" + }, + { + "date": "2020-03-26", + "confirmed": "171", + "deaths": "3" + }, + { + "date": "2020-03-27", + "confirmed": "212", + "deaths": "4" + }, + { + "date": "2020-03-28", + "confirmed": "271", + "deaths": "6" + }, + { + "date": "2020-03-29", + "confirmed": "332", + "deaths": "7" + }, + { + "date": "2020-03-30", + "confirmed": "373", + "deaths": "9" + }, + { + "date": "2020-03-31", + "confirmed": "434", + "deaths": "10" + }, + { + "date": "2020-04-01", + "confirmed": "488", + "deaths": "11" + }, + { + "date": "2020-04-02", + "confirmed": "554", + "deaths": "14" + }, + { + "date": "2020-04-03", + "confirmed": "624", + "deaths": "19" + }, + { + "date": "2020-04-04", + "confirmed": "701", + "deaths": "21" + }, + { + "date": "2020-04-05", + "confirmed": "763", + "deaths": "23" + }, + { + "date": "2020-04-06", + "confirmed": "853", + "deaths": "25" + }, + { + "date": "2020-04-07", + "confirmed": "905", + "deaths": "30" + }, + { + "date": "2020-04-08", + "confirmed": "1055", + "deaths": "38" + }, + { + "date": "2020-04-09", + "confirmed": "1116", + "deaths": "42" + }, + { + "date": "2020-04-10", + "confirmed": "1180", + "deaths": "50" + }, + { + "date": "2020-04-11", + "confirmed": "1283", + "deaths": "55" + }, + { + "date": "2020-04-12", + "confirmed": "1338", + "deaths": "56" + }, + { + "date": "2020-04-13", + "confirmed": "1383", + "deaths": "63" + }, + { + "date": "2020-04-14", + "confirmed": "1439", + "deaths": "69" + }, + { + "date": "2020-04-15", + "confirmed": "1502", + "deaths": "76" + }, + { + "date": "2020-04-16", + "confirmed": "1594", + "deaths": "80" + }, + { + "date": "2020-04-17", + "confirmed": "1731", + "deaths": "84" + }, + { + "date": "2020-04-18", + "confirmed": "1820", + "deaths": "86" + }, + { + "date": "2020-04-19", + "confirmed": "1898", + "deaths": "94" + }, + { + "date": "2020-04-20", + "confirmed": "2031", + "deaths": "101" + }, + { + "date": "2020-04-21", + "confirmed": "2115", + "deaths": "107" + }, + { + "date": "2020-04-22", + "confirmed": "2292", + "deaths": "111" + }, + { + "date": "2020-04-23", + "confirmed": "2615", + "deaths": "112" + }, + { + "date": "2020-04-24", + "confirmed": "2830", + "deaths": "117" + }, + { + "date": "2020-04-25", + "confirmed": "3081", + "deaths": "119" + }, + { + "date": "2020-04-26", + "confirmed": "3188", + "deaths": "120" + }, + { + "date": "2020-04-27", + "confirmed": "3393", + "deaths": "126" + }, + { + "date": "2020-04-28", + "confirmed": "3587", + "deaths": "127" + }, + { + "date": "2020-04-29", + "confirmed": "3799", + "deaths": "132" + }, + { + "date": "2020-04-30", + "confirmed": "4291", + "deaths": "133" + }, + { + "date": "2020-05-01", + "confirmed": "4486", + "deaths": "136" + }, + { + "date": "2020-05-02", + "confirmed": "4838", + "deaths": "140" + } + ], + "Kentucky": [ + { + "date": "2020-03-06", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-07", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-08", + "confirmed": "4", + "deaths": "0" + }, + { + "date": "2020-03-09", + "confirmed": "5", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "7", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "7", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "11", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "11", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "18", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "21", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "22", + "deaths": "1" + }, + { + "date": "2020-03-17", + "confirmed": "26", + "deaths": "1" + }, + { + "date": "2020-03-18", + "confirmed": "35", + "deaths": "1" + }, + { + "date": "2020-03-19", + "confirmed": "47", + "deaths": "2" + }, + { + "date": "2020-03-20", + "confirmed": "63", + "deaths": "2" + }, + { + "date": "2020-03-21", + "confirmed": "84", + "deaths": "3" + }, + { + "date": "2020-03-22", + "confirmed": "103", + "deaths": "3" + }, + { + "date": "2020-03-23", + "confirmed": "124", + "deaths": "3" + }, + { + "date": "2020-03-24", + "confirmed": "157", + "deaths": "3" + }, + { + "date": "2020-03-25", + "confirmed": "198", + "deaths": "5" + }, + { + "date": "2020-03-26", + "confirmed": "248", + "deaths": "5" + }, + { + "date": "2020-03-27", + "confirmed": "302", + "deaths": "8" + }, + { + "date": "2020-03-28", + "confirmed": "394", + "deaths": "9" + }, + { + "date": "2020-03-29", + "confirmed": "439", + "deaths": "9" + }, + { + "date": "2020-03-30", + "confirmed": "480", + "deaths": "11" + }, + { + "date": "2020-03-31", + "confirmed": "590", + "deaths": "18" + }, + { + "date": "2020-04-01", + "confirmed": "682", + "deaths": "20" + }, + { + "date": "2020-04-02", + "confirmed": "755", + "deaths": "34" + }, + { + "date": "2020-04-03", + "confirmed": "770", + "deaths": "34" + }, + { + "date": "2020-04-04", + "confirmed": "917", + "deaths": "40" + }, + { + "date": "2020-04-05", + "confirmed": "1048", + "deaths": "44" + }, + { + "date": "2020-04-06", + "confirmed": "1057", + "deaths": "52" + }, + { + "date": "2020-04-07", + "confirmed": "1289", + "deaths": "66" + }, + { + "date": "2020-04-08", + "confirmed": "1393", + "deaths": "73" + }, + { + "date": "2020-04-09", + "confirmed": "1525", + "deaths": "84" + }, + { + "date": "2020-04-10", + "confirmed": "1702", + "deaths": "90" + }, + { + "date": "2020-04-11", + "confirmed": "1851", + "deaths": "94" + }, + { + "date": "2020-04-12", + "confirmed": "1963", + "deaths": "98" + }, + { + "date": "2020-04-13", + "confirmed": "2048", + "deaths": "106" + }, + { + "date": "2020-04-14", + "confirmed": "2210", + "deaths": "115" + }, + { + "date": "2020-04-15", + "confirmed": "2295", + "deaths": "124" + }, + { + "date": "2020-04-16", + "confirmed": "2429", + "deaths": "131" + }, + { + "date": "2020-04-17", + "confirmed": "2522", + "deaths": "140" + }, + { + "date": "2020-04-18", + "confirmed": "2707", + "deaths": "145" + }, + { + "date": "2020-04-19", + "confirmed": "2960", + "deaths": "149" + }, + { + "date": "2020-04-20", + "confirmed": "3050", + "deaths": "155" + }, + { + "date": "2020-04-21", + "confirmed": "3193", + "deaths": "172" + }, + { + "date": "2020-04-22", + "confirmed": "3373", + "deaths": "185" + }, + { + "date": "2020-04-23", + "confirmed": "3548", + "deaths": "194" + }, + { + "date": "2020-04-24", + "confirmed": "3779", + "deaths": "203" + }, + { + "date": "2020-04-25", + "confirmed": "3905", + "deaths": "208" + }, + { + "date": "2020-04-26", + "confirmed": "4074", + "deaths": "211" + }, + { + "date": "2020-04-27", + "confirmed": "4146", + "deaths": "216" + }, + { + "date": "2020-04-28", + "confirmed": "4375", + "deaths": "231" + }, + { + "date": "2020-04-29", + "confirmed": "4538", + "deaths": "235" + }, + { + "date": "2020-04-30", + "confirmed": "4708", + "deaths": "240" + }, + { + "date": "2020-05-01", + "confirmed": "4879", + "deaths": "248" + }, + { + "date": "2020-05-02", + "confirmed": "4881", + "deaths": "252" + } + ], + "Louisiana": [ + { + "date": "2020-03-09", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "6", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "13", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "14", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "36", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "77", + "deaths": "1" + }, + { + "date": "2020-03-15", + "confirmed": "103", + "deaths": "2" + }, + { + "date": "2020-03-16", + "confirmed": "137", + "deaths": "3" + }, + { + "date": "2020-03-17", + "confirmed": "196", + "deaths": "5" + }, + { + "date": "2020-03-18", + "confirmed": "280", + "deaths": "7" + }, + { + "date": "2020-03-19", + "confirmed": "392", + "deaths": "10" + }, + { + "date": "2020-03-20", + "confirmed": "537", + "deaths": "10" + }, + { + "date": "2020-03-21", + "confirmed": "763", + "deaths": "16" + }, + { + "date": "2020-03-22", + "confirmed": "837", + "deaths": "20" + }, + { + "date": "2020-03-23", + "confirmed": "1172", + "deaths": "34" + }, + { + "date": "2020-03-24", + "confirmed": "1388", + "deaths": "46" + }, + { + "date": "2020-03-25", + "confirmed": "1795", + "deaths": "65" + }, + { + "date": "2020-03-26", + "confirmed": "2305", + "deaths": "83" + }, + { + "date": "2020-03-27", + "confirmed": "2746", + "deaths": "119" + }, + { + "date": "2020-03-28", + "confirmed": "3315", + "deaths": "137" + }, + { + "date": "2020-03-29", + "confirmed": "3540", + "deaths": "152" + }, + { + "date": "2020-03-30", + "confirmed": "4025", + "deaths": "186" + }, + { + "date": "2020-03-31", + "confirmed": "5237", + "deaths": "240" + }, + { + "date": "2020-04-01", + "confirmed": "6424", + "deaths": "273" + }, + { + "date": "2020-04-02", + "confirmed": "9150", + "deaths": "310" + }, + { + "date": "2020-04-03", + "confirmed": "10297", + "deaths": "370" + }, + { + "date": "2020-04-04", + "confirmed": "12496", + "deaths": "412" + }, + { + "date": "2020-04-05", + "confirmed": "13010", + "deaths": "477" + }, + { + "date": "2020-04-06", + "confirmed": "14867", + "deaths": "512" + }, + { + "date": "2020-04-07", + "confirmed": "16284", + "deaths": "582" + }, + { + "date": "2020-04-08", + "confirmed": "17030", + "deaths": "652" + }, + { + "date": "2020-04-09", + "confirmed": "18283", + "deaths": "702" + }, + { + "date": "2020-04-10", + "confirmed": "19253", + "deaths": "755" + }, + { + "date": "2020-04-11", + "confirmed": "20014", + "deaths": "806" + }, + { + "date": "2020-04-12", + "confirmed": "20595", + "deaths": "840" + }, + { + "date": "2020-04-13", + "confirmed": "21016", + "deaths": "884" + }, + { + "date": "2020-04-14", + "confirmed": "21518", + "deaths": "1013" + }, + { + "date": "2020-04-15", + "confirmed": "21951", + "deaths": "1103" + }, + { + "date": "2020-04-16", + "confirmed": "22532", + "deaths": "1156" + }, + { + "date": "2020-04-17", + "confirmed": "23118", + "deaths": "1213" + }, + { + "date": "2020-04-18", + "confirmed": "23580", + "deaths": "1267" + }, + { + "date": "2020-04-19", + "confirmed": "23928", + "deaths": "1296" + }, + { + "date": "2020-04-20", + "confirmed": "24523", + "deaths": "1328" + }, + { + "date": "2020-04-21", + "confirmed": "24854", + "deaths": "1405" + }, + { + "date": "2020-04-22", + "confirmed": "25258", + "deaths": "1473" + }, + { + "date": "2020-04-23", + "confirmed": "25739", + "deaths": "1540" + }, + { + "date": "2020-04-24", + "confirmed": "26140", + "deaths": "1601" + }, + { + "date": "2020-04-25", + "confirmed": "26512", + "deaths": "1644" + }, + { + "date": "2020-04-26", + "confirmed": "26773", + "deaths": "1670" + }, + { + "date": "2020-04-27", + "confirmed": "27068", + "deaths": "1697" + }, + { + "date": "2020-04-28", + "confirmed": "27286", + "deaths": "1758" + }, + { + "date": "2020-04-29", + "confirmed": "27660", + "deaths": "1802" + }, + { + "date": "2020-04-30", + "confirmed": "28001", + "deaths": "1862" + }, + { + "date": "2020-05-01", + "confirmed": "28711", + "deaths": "1927" + }, + { + "date": "2020-05-02", + "confirmed": "29140", + "deaths": "1950" + } + ], + "Maine": [ + { + "date": "2020-03-12", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "3", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "12", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "17", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "32", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "43", + "deaths": "0" + }, + { + "date": "2020-03-19", + "confirmed": "52", + "deaths": "0" + }, + { + "date": "2020-03-20", + "confirmed": "57", + "deaths": "0" + }, + { + "date": "2020-03-21", + "confirmed": "70", + "deaths": "0" + }, + { + "date": "2020-03-22", + "confirmed": "89", + "deaths": "0" + }, + { + "date": "2020-03-23", + "confirmed": "107", + "deaths": "0" + }, + { + "date": "2020-03-24", + "confirmed": "118", + "deaths": "0" + }, + { + "date": "2020-03-25", + "confirmed": "142", + "deaths": "0" + }, + { + "date": "2020-03-26", + "confirmed": "155", + "deaths": "0" + }, + { + "date": "2020-03-27", + "confirmed": "168", + "deaths": "1" + }, + { + "date": "2020-03-28", + "confirmed": "211", + "deaths": "1" + }, + { + "date": "2020-03-29", + "confirmed": "253", + "deaths": "3" + }, + { + "date": "2020-03-30", + "confirmed": "275", + "deaths": "3" + }, + { + "date": "2020-03-31", + "confirmed": "303", + "deaths": "5" + }, + { + "date": "2020-04-01", + "confirmed": "344", + "deaths": "7" + }, + { + "date": "2020-04-02", + "confirmed": "376", + "deaths": "7" + }, + { + "date": "2020-04-03", + "confirmed": "432", + "deaths": "9" + }, + { + "date": "2020-04-04", + "confirmed": "456", + "deaths": "10" + }, + { + "date": "2020-04-05", + "confirmed": "470", + "deaths": "10" + }, + { + "date": "2020-04-06", + "confirmed": "499", + "deaths": "10" + }, + { + "date": "2020-04-07", + "confirmed": "519", + "deaths": "12" + }, + { + "date": "2020-04-08", + "confirmed": "537", + "deaths": "14" + }, + { + "date": "2020-04-09", + "confirmed": "560", + "deaths": "16" + }, + { + "date": "2020-04-10", + "confirmed": "586", + "deaths": "17" + }, + { + "date": "2020-04-11", + "confirmed": "616", + "deaths": "19" + }, + { + "date": "2020-04-12", + "confirmed": "633", + "deaths": "19" + }, + { + "date": "2020-04-13", + "confirmed": "698", + "deaths": "19" + }, + { + "date": "2020-04-14", + "confirmed": "734", + "deaths": "20" + }, + { + "date": "2020-04-15", + "confirmed": "770", + "deaths": "24" + }, + { + "date": "2020-04-16", + "confirmed": "796", + "deaths": "27" + }, + { + "date": "2020-04-17", + "confirmed": "827", + "deaths": "29" + }, + { + "date": "2020-04-18", + "confirmed": "847", + "deaths": "32" + }, + { + "date": "2020-04-19", + "confirmed": "867", + "deaths": "34" + }, + { + "date": "2020-04-20", + "confirmed": "875", + "deaths": "35" + }, + { + "date": "2020-04-21", + "confirmed": "888", + "deaths": "36" + }, + { + "date": "2020-04-22", + "confirmed": "907", + "deaths": "39" + }, + { + "date": "2020-04-23", + "confirmed": "937", + "deaths": "44" + }, + { + "date": "2020-04-24", + "confirmed": "965", + "deaths": "47" + }, + { + "date": "2020-04-25", + "confirmed": "990", + "deaths": "50" + }, + { + "date": "2020-04-26", + "confirmed": "1015", + "deaths": "50" + }, + { + "date": "2020-04-27", + "confirmed": "1023", + "deaths": "51" + }, + { + "date": "2020-04-28", + "confirmed": "1040", + "deaths": "51" + }, + { + "date": "2020-04-29", + "confirmed": "1056", + "deaths": "52" + }, + { + "date": "2020-04-30", + "confirmed": "1095", + "deaths": "53" + }, + { + "date": "2020-05-01", + "confirmed": "1123", + "deaths": "55" + }, + { + "date": "2020-05-02", + "confirmed": "1152", + "deaths": "56" + } + ], + "Maryland": [ + { + "date": "2020-03-05", + "confirmed": "3", + "deaths": "0" + }, + { + "date": "2020-03-06", + "confirmed": "3", + "deaths": "0" + }, + { + "date": "2020-03-07", + "confirmed": "3", + "deaths": "0" + }, + { + "date": "2020-03-08", + "confirmed": "5", + "deaths": "0" + }, + { + "date": "2020-03-09", + "confirmed": "6", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "9", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "13", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "13", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "18", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "27", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "32", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "39", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "57", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "85", + "deaths": "1" + }, + { + "date": "2020-03-19", + "confirmed": "108", + "deaths": "1" + }, + { + "date": "2020-03-20", + "confirmed": "150", + "deaths": "2" + }, + { + "date": "2020-03-21", + "confirmed": "195", + "deaths": "3" + }, + { + "date": "2020-03-22", + "confirmed": "245", + "deaths": "3" + }, + { + "date": "2020-03-23", + "confirmed": "290", + "deaths": "3" + }, + { + "date": "2020-03-24", + "confirmed": "349", + "deaths": "4" + }, + { + "date": "2020-03-25", + "confirmed": "423", + "deaths": "4" + }, + { + "date": "2020-03-26", + "confirmed": "581", + "deaths": "4" + }, + { + "date": "2020-03-27", + "confirmed": "775", + "deaths": "5" + }, + { + "date": "2020-03-28", + "confirmed": "1066", + "deaths": "10" + }, + { + "date": "2020-03-29", + "confirmed": "1244", + "deaths": "11" + }, + { + "date": "2020-03-30", + "confirmed": "1414", + "deaths": "15" + }, + { + "date": "2020-03-31", + "confirmed": "1662", + "deaths": "18" + }, + { + "date": "2020-04-01", + "confirmed": "1985", + "deaths": "33" + }, + { + "date": "2020-04-02", + "confirmed": "2331", + "deaths": "36" + }, + { + "date": "2020-04-03", + "confirmed": "2758", + "deaths": "42" + }, + { + "date": "2020-04-04", + "confirmed": "3125", + "deaths": "54" + }, + { + "date": "2020-04-05", + "confirmed": "3609", + "deaths": "68" + }, + { + "date": "2020-04-06", + "confirmed": "4045", + "deaths": "92" + }, + { + "date": "2020-04-07", + "confirmed": "4371", + "deaths": "104" + }, + { + "date": "2020-04-08", + "confirmed": "5529", + "deaths": "124" + }, + { + "date": "2020-04-09", + "confirmed": "6185", + "deaths": "139" + }, + { + "date": "2020-04-10", + "confirmed": "6968", + "deaths": "172" + }, + { + "date": "2020-04-11", + "confirmed": "7694", + "deaths": "207" + }, + { + "date": "2020-04-12", + "confirmed": "8225", + "deaths": "236" + }, + { + "date": "2020-04-13", + "confirmed": "8936", + "deaths": "262" + }, + { + "date": "2020-04-14", + "confirmed": "9472", + "deaths": "302" + }, + { + "date": "2020-04-15", + "confirmed": "10032", + "deaths": "349" + }, + { + "date": "2020-04-16", + "confirmed": "10784", + "deaths": "392" + }, + { + "date": "2020-04-17", + "confirmed": "11572", + "deaths": "425" + }, + { + "date": "2020-04-18", + "confirmed": "12308", + "deaths": "463" + }, + { + "date": "2020-04-19", + "confirmed": "12830", + "deaths": "486" + }, + { + "date": "2020-04-20", + "confirmed": "13684", + "deaths": "516" + }, + { + "date": "2020-04-21", + "confirmed": "14193", + "deaths": "584" + }, + { + "date": "2020-04-22", + "confirmed": "14775", + "deaths": "632" + }, + { + "date": "2020-04-23", + "confirmed": "15737", + "deaths": "680" + }, + { + "date": "2020-04-24", + "confirmed": "16618", + "deaths": "723" + }, + { + "date": "2020-04-25", + "confirmed": "17766", + "deaths": "797" + }, + { + "date": "2020-04-26", + "confirmed": "18581", + "deaths": "827" + }, + { + "date": "2020-04-27", + "confirmed": "19487", + "deaths": "858" + }, + { + "date": "2020-04-28", + "confirmed": "20113", + "deaths": "929" + }, + { + "date": "2020-04-29", + "confirmed": "20849", + "deaths": "985" + }, + { + "date": "2020-04-30", + "confirmed": "21742", + "deaths": "1047" + }, + { + "date": "2020-05-01", + "confirmed": "23472", + "deaths": "1098" + }, + { + "date": "2020-05-02", + "confirmed": "24473", + "deaths": "1156" + } + ], + "Massachusetts": [ + { + "date": "2020-02-01", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-02", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-03", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-04", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-05", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-06", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-07", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-08", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-09", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-10", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-11", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-12", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-13", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-14", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-15", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-16", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-17", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-18", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-19", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-20", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-21", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-22", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-23", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-24", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-25", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-26", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-27", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-28", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-29", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-01", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-02", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-03", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-04", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-05", + "confirmed": "3", + "deaths": "0" + }, + { + "date": "2020-03-06", + "confirmed": "8", + "deaths": "0" + }, + { + "date": "2020-03-07", + "confirmed": "13", + "deaths": "0" + }, + { + "date": "2020-03-08", + "confirmed": "28", + "deaths": "0" + }, + { + "date": "2020-03-09", + "confirmed": "41", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "92", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "95", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "108", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "123", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "138", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "164", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "197", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "218", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "256", + "deaths": "0" + }, + { + "date": "2020-03-19", + "confirmed": "328", + "deaths": "0" + }, + { + "date": "2020-03-20", + "confirmed": "413", + "deaths": "1" + }, + { + "date": "2020-03-21", + "confirmed": "525", + "deaths": "2" + }, + { + "date": "2020-03-22", + "confirmed": "646", + "deaths": "5" + }, + { + "date": "2020-03-23", + "confirmed": "777", + "deaths": "9" + }, + { + "date": "2020-03-24", + "confirmed": "1159", + "deaths": "11" + }, + { + "date": "2020-03-25", + "confirmed": "1838", + "deaths": "15" + }, + { + "date": "2020-03-26", + "confirmed": "2417", + "deaths": "25" + }, + { + "date": "2020-03-27", + "confirmed": "3240", + "deaths": "35" + }, + { + "date": "2020-03-28", + "confirmed": "4257", + "deaths": "44" + }, + { + "date": "2020-03-29", + "confirmed": "4955", + "deaths": "48" + }, + { + "date": "2020-03-30", + "confirmed": "5752", + "deaths": "56" + }, + { + "date": "2020-03-31", + "confirmed": "6620", + "deaths": "89" + }, + { + "date": "2020-04-01", + "confirmed": "7738", + "deaths": "122" + }, + { + "date": "2020-04-02", + "confirmed": "8966", + "deaths": "154" + }, + { + "date": "2020-04-03", + "confirmed": "10402", + "deaths": "192" + }, + { + "date": "2020-04-04", + "confirmed": "11736", + "deaths": "216" + }, + { + "date": "2020-04-05", + "confirmed": "12500", + "deaths": "231" + }, + { + "date": "2020-04-06", + "confirmed": "13837", + "deaths": "260" + }, + { + "date": "2020-04-07", + "confirmed": "15202", + "deaths": "356" + }, + { + "date": "2020-04-08", + "confirmed": "16790", + "deaths": "433" + }, + { + "date": "2020-04-09", + "confirmed": "18941", + "deaths": "503" + }, + { + "date": "2020-04-10", + "confirmed": "20974", + "deaths": "599" + }, + { + "date": "2020-04-11", + "confirmed": "22860", + "deaths": "686" + }, + { + "date": "2020-04-12", + "confirmed": "25475", + "deaths": "756" + }, + { + "date": "2020-04-13", + "confirmed": "26867", + "deaths": "844" + }, + { + "date": "2020-04-14", + "confirmed": "28163", + "deaths": "957" + }, + { + "date": "2020-04-15", + "confirmed": "29918", + "deaths": "1108" + }, + { + "date": "2020-04-16", + "confirmed": "32181", + "deaths": "1245" + }, + { + "date": "2020-04-17", + "confirmed": "34402", + "deaths": "1404" + }, + { + "date": "2020-04-18", + "confirmed": "36372", + "deaths": "1560" + }, + { + "date": "2020-04-19", + "confirmed": "38077", + "deaths": "1706" + }, + { + "date": "2020-04-20", + "confirmed": "39643", + "deaths": "1809" + }, + { + "date": "2020-04-21", + "confirmed": "41199", + "deaths": "1961" + }, + { + "date": "2020-04-22", + "confirmed": "42944", + "deaths": "2182" + }, + { + "date": "2020-04-23", + "confirmed": "46023", + "deaths": "2360" + }, + { + "date": "2020-04-24", + "confirmed": "50969", + "deaths": "2556" + }, + { + "date": "2020-04-25", + "confirmed": "53348", + "deaths": "2730" + }, + { + "date": "2020-04-26", + "confirmed": "54938", + "deaths": "2899" + }, + { + "date": "2020-04-27", + "confirmed": "56462", + "deaths": "3003" + }, + { + "date": "2020-04-28", + "confirmed": "58302", + "deaths": "3153" + }, + { + "date": "2020-04-29", + "confirmed": "60265", + "deaths": "3405" + }, + { + "date": "2020-04-30", + "confirmed": "62205", + "deaths": "3562" + }, + { + "date": "2020-05-01", + "confirmed": "64311", + "deaths": "3716" + }, + { + "date": "2020-05-02", + "confirmed": "66263", + "deaths": "3846" + } + ], + "Michigan": [ + { + "date": "2020-03-10", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "12", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "25", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "33", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "53", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "54", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "65", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "80", + "deaths": "1" + }, + { + "date": "2020-03-19", + "confirmed": "334", + "deaths": "3" + }, + { + "date": "2020-03-20", + "confirmed": "548", + "deaths": "4" + }, + { + "date": "2020-03-21", + "confirmed": "787", + "deaths": "6" + }, + { + "date": "2020-03-22", + "confirmed": "1033", + "deaths": "9" + }, + { + "date": "2020-03-23", + "confirmed": "1324", + "deaths": "16" + }, + { + "date": "2020-03-24", + "confirmed": "1791", + "deaths": "24" + }, + { + "date": "2020-03-25", + "confirmed": "2294", + "deaths": "43" + }, + { + "date": "2020-03-26", + "confirmed": "2878", + "deaths": "63" + }, + { + "date": "2020-03-27", + "confirmed": "3657", + "deaths": "93" + }, + { + "date": "2020-03-28", + "confirmed": "4635", + "deaths": "111" + }, + { + "date": "2020-03-29", + "confirmed": "5486", + "deaths": "132" + }, + { + "date": "2020-03-30", + "confirmed": "6508", + "deaths": "197" + }, + { + "date": "2020-03-31", + "confirmed": "7630", + "deaths": "264" + }, + { + "date": "2020-04-01", + "confirmed": "9293", + "deaths": "336" + }, + { + "date": "2020-04-02", + "confirmed": "10791", + "deaths": "417" + }, + { + "date": "2020-04-03", + "confirmed": "12670", + "deaths": "478" + }, + { + "date": "2020-04-04", + "confirmed": "14225", + "deaths": "540" + }, + { + "date": "2020-04-05", + "confirmed": "15635", + "deaths": "616" + }, + { + "date": "2020-04-06", + "confirmed": "17130", + "deaths": "727" + }, + { + "date": "2020-04-07", + "confirmed": "18852", + "deaths": "845" + }, + { + "date": "2020-04-08", + "confirmed": "20220", + "deaths": "959" + }, + { + "date": "2020-04-09", + "confirmed": "21375", + "deaths": "1076" + }, + { + "date": "2020-04-10", + "confirmed": "22646", + "deaths": "1280" + }, + { + "date": "2020-04-11", + "confirmed": "23853", + "deaths": "1391" + }, + { + "date": "2020-04-12", + "confirmed": "24494", + "deaths": "1486" + }, + { + "date": "2020-04-13", + "confirmed": "25487", + "deaths": "1601" + }, + { + "date": "2020-04-14", + "confirmed": "26844", + "deaths": "1766" + }, + { + "date": "2020-04-15", + "confirmed": "27893", + "deaths": "1919" + }, + { + "date": "2020-04-16", + "confirmed": "29119", + "deaths": "2091" + }, + { + "date": "2020-04-17", + "confirmed": "29952", + "deaths": "2226" + }, + { + "date": "2020-04-18", + "confirmed": "30717", + "deaths": "2307" + }, + { + "date": "2020-04-19", + "confirmed": "31348", + "deaths": "2389" + }, + { + "date": "2020-04-20", + "confirmed": "31927", + "deaths": "2466" + }, + { + "date": "2020-04-21", + "confirmed": "32935", + "deaths": "2698" + }, + { + "date": "2020-04-22", + "confirmed": "33929", + "deaths": "2812" + }, + { + "date": "2020-04-23", + "confirmed": "35252", + "deaths": "2977" + }, + { + "date": "2020-04-24", + "confirmed": "36627", + "deaths": "3084" + }, + { + "date": "2020-04-25", + "confirmed": "37184", + "deaths": "3273" + }, + { + "date": "2020-04-26", + "confirmed": "37751", + "deaths": "3314" + }, + { + "date": "2020-04-27", + "confirmed": "38190", + "deaths": "3406" + }, + { + "date": "2020-04-28", + "confirmed": "39234", + "deaths": "3566" + }, + { + "date": "2020-04-29", + "confirmed": "40360", + "deaths": "3670" + }, + { + "date": "2020-04-30", + "confirmed": "41347", + "deaths": "3788" + }, + { + "date": "2020-05-01", + "confirmed": "42348", + "deaths": "3866" + }, + { + "date": "2020-05-02", + "confirmed": "43191", + "deaths": "4020" + } + ], + "Minnesota": [ + { + "date": "2020-03-06", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-07", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-08", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-09", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "3", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "5", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "9", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "14", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "21", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "35", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "54", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "60", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "77", + "deaths": "0" + }, + { + "date": "2020-03-19", + "confirmed": "89", + "deaths": "0" + }, + { + "date": "2020-03-20", + "confirmed": "115", + "deaths": "0" + }, + { + "date": "2020-03-21", + "confirmed": "138", + "deaths": "1" + }, + { + "date": "2020-03-22", + "confirmed": "171", + "deaths": "1" + }, + { + "date": "2020-03-23", + "confirmed": "235", + "deaths": "1" + }, + { + "date": "2020-03-24", + "confirmed": "262", + "deaths": "1" + }, + { + "date": "2020-03-25", + "confirmed": "287", + "deaths": "1" + }, + { + "date": "2020-03-26", + "confirmed": "346", + "deaths": "2" + }, + { + "date": "2020-03-27", + "confirmed": "398", + "deaths": "4" + }, + { + "date": "2020-03-28", + "confirmed": "441", + "deaths": "5" + }, + { + "date": "2020-03-29", + "confirmed": "504", + "deaths": "9" + }, + { + "date": "2020-03-30", + "confirmed": "576", + "deaths": "10" + }, + { + "date": "2020-03-31", + "confirmed": "629", + "deaths": "12" + }, + { + "date": "2020-04-01", + "confirmed": "689", + "deaths": "17" + }, + { + "date": "2020-04-02", + "confirmed": "742", + "deaths": "18" + }, + { + "date": "2020-04-03", + "confirmed": "789", + "deaths": "22" + }, + { + "date": "2020-04-04", + "confirmed": "865", + "deaths": "24" + }, + { + "date": "2020-04-05", + "confirmed": "935", + "deaths": "29" + }, + { + "date": "2020-04-06", + "confirmed": "986", + "deaths": "30" + }, + { + "date": "2020-04-07", + "confirmed": "1069", + "deaths": "34" + }, + { + "date": "2020-04-08", + "confirmed": "1154", + "deaths": "39" + }, + { + "date": "2020-04-09", + "confirmed": "1242", + "deaths": "50" + }, + { + "date": "2020-04-10", + "confirmed": "1335", + "deaths": "57" + }, + { + "date": "2020-04-11", + "confirmed": "1427", + "deaths": "64" + }, + { + "date": "2020-04-12", + "confirmed": "1621", + "deaths": "70" + }, + { + "date": "2020-04-13", + "confirmed": "1650", + "deaths": "70" + }, + { + "date": "2020-04-14", + "confirmed": "1695", + "deaths": "79" + }, + { + "date": "2020-04-15", + "confirmed": "1809", + "deaths": "87" + }, + { + "date": "2020-04-16", + "confirmed": "1912", + "deaths": "94" + }, + { + "date": "2020-04-17", + "confirmed": "2071", + "deaths": "111" + }, + { + "date": "2020-04-18", + "confirmed": "2213", + "deaths": "121" + }, + { + "date": "2020-04-19", + "confirmed": "2356", + "deaths": "134" + }, + { + "date": "2020-04-20", + "confirmed": "2470", + "deaths": "143" + }, + { + "date": "2020-04-21", + "confirmed": "2567", + "deaths": "160" + }, + { + "date": "2020-04-22", + "confirmed": "2721", + "deaths": "179" + }, + { + "date": "2020-04-23", + "confirmed": "2942", + "deaths": "200" + }, + { + "date": "2020-04-24", + "confirmed": "3185", + "deaths": "221" + }, + { + "date": "2020-04-25", + "confirmed": "3446", + "deaths": "244" + }, + { + "date": "2020-04-26", + "confirmed": "3602", + "deaths": "272" + }, + { + "date": "2020-04-27", + "confirmed": "3816", + "deaths": "286" + }, + { + "date": "2020-04-28", + "confirmed": "4181", + "deaths": "301" + }, + { + "date": "2020-04-29", + "confirmed": "4644", + "deaths": "319" + }, + { + "date": "2020-04-30", + "confirmed": "5136", + "deaths": "343" + }, + { + "date": "2020-05-01", + "confirmed": "5730", + "deaths": "371" + }, + { + "date": "2020-05-02", + "confirmed": "6228", + "deaths": "395" + } + ], + "Mississippi": [ + { + "date": "2020-03-11", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "6", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "6", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "10", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "12", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "21", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "34", + "deaths": "0" + }, + { + "date": "2020-03-19", + "confirmed": "50", + "deaths": "1" + }, + { + "date": "2020-03-20", + "confirmed": "80", + "deaths": "1" + }, + { + "date": "2020-03-21", + "confirmed": "140", + "deaths": "1" + }, + { + "date": "2020-03-22", + "confirmed": "207", + "deaths": "1" + }, + { + "date": "2020-03-23", + "confirmed": "249", + "deaths": "1" + }, + { + "date": "2020-03-24", + "confirmed": "320", + "deaths": "1" + }, + { + "date": "2020-03-25", + "confirmed": "377", + "deaths": "5" + }, + { + "date": "2020-03-26", + "confirmed": "487", + "deaths": "6" + }, + { + "date": "2020-03-27", + "confirmed": "579", + "deaths": "8" + }, + { + "date": "2020-03-28", + "confirmed": "669", + "deaths": "13" + }, + { + "date": "2020-03-29", + "confirmed": "759", + "deaths": "14" + }, + { + "date": "2020-03-30", + "confirmed": "848", + "deaths": "16" + }, + { + "date": "2020-03-31", + "confirmed": "937", + "deaths": "20" + }, + { + "date": "2020-04-01", + "confirmed": "1073", + "deaths": "22" + }, + { + "date": "2020-04-02", + "confirmed": "1177", + "deaths": "26" + }, + { + "date": "2020-04-03", + "confirmed": "1358", + "deaths": "29" + }, + { + "date": "2020-04-04", + "confirmed": "1455", + "deaths": "35" + }, + { + "date": "2020-04-05", + "confirmed": "1638", + "deaths": "43" + }, + { + "date": "2020-04-06", + "confirmed": "1738", + "deaths": "51" + }, + { + "date": "2020-04-07", + "confirmed": "1915", + "deaths": "59" + }, + { + "date": "2020-04-08", + "confirmed": "2003", + "deaths": "67" + }, + { + "date": "2020-04-09", + "confirmed": "2260", + "deaths": "76" + }, + { + "date": "2020-04-10", + "confirmed": "2469", + "deaths": "82" + }, + { + "date": "2020-04-11", + "confirmed": "2642", + "deaths": "93" + }, + { + "date": "2020-04-12", + "confirmed": "2781", + "deaths": "96" + }, + { + "date": "2020-04-13", + "confirmed": "2942", + "deaths": "98" + }, + { + "date": "2020-04-14", + "confirmed": "3087", + "deaths": "111" + }, + { + "date": "2020-04-15", + "confirmed": "3360", + "deaths": "122" + }, + { + "date": "2020-04-16", + "confirmed": "3624", + "deaths": "129" + }, + { + "date": "2020-04-17", + "confirmed": "3793", + "deaths": "140" + }, + { + "date": "2020-04-18", + "confirmed": "3974", + "deaths": "152" + }, + { + "date": "2020-04-19", + "confirmed": "4274", + "deaths": "159" + }, + { + "date": "2020-04-20", + "confirmed": "4512", + "deaths": "169" + }, + { + "date": "2020-04-21", + "confirmed": "4716", + "deaths": "183" + }, + { + "date": "2020-04-22", + "confirmed": "4894", + "deaths": "193" + }, + { + "date": "2020-04-23", + "confirmed": "5153", + "deaths": "201" + }, + { + "date": "2020-04-24", + "confirmed": "5434", + "deaths": "209" + }, + { + "date": "2020-04-25", + "confirmed": "5718", + "deaths": "221" + }, + { + "date": "2020-04-26", + "confirmed": "5911", + "deaths": "227" + }, + { + "date": "2020-04-27", + "confirmed": "6094", + "deaths": "229" + }, + { + "date": "2020-04-28", + "confirmed": "6342", + "deaths": "239" + }, + { + "date": "2020-04-29", + "confirmed": "6569", + "deaths": "250" + }, + { + "date": "2020-04-30", + "confirmed": "6815", + "deaths": "261" + }, + { + "date": "2020-05-01", + "confirmed": "7212", + "deaths": "281" + }, + { + "date": "2020-05-02", + "confirmed": "7441", + "deaths": "291" + } + ], + "Missouri": [ + { + "date": "2020-03-07", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-08", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-09", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "4", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "5", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "5", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "9", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "16", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "21", + "deaths": "1" + }, + { + "date": "2020-03-19", + "confirmed": "35", + "deaths": "1" + }, + { + "date": "2020-03-20", + "confirmed": "73", + "deaths": "3" + }, + { + "date": "2020-03-21", + "confirmed": "93", + "deaths": "3" + }, + { + "date": "2020-03-22", + "confirmed": "130", + "deaths": "3" + }, + { + "date": "2020-03-23", + "confirmed": "183", + "deaths": "4" + }, + { + "date": "2020-03-24", + "confirmed": "255", + "deaths": "5" + }, + { + "date": "2020-03-25", + "confirmed": "377", + "deaths": "8" + }, + { + "date": "2020-03-26", + "confirmed": "507", + "deaths": "8" + }, + { + "date": "2020-03-27", + "confirmed": "671", + "deaths": "9" + }, + { + "date": "2020-03-28", + "confirmed": "838", + "deaths": "10" + }, + { + "date": "2020-03-29", + "confirmed": "903", + "deaths": "12" + }, + { + "date": "2020-03-30", + "confirmed": "1050", + "deaths": "13" + }, + { + "date": "2020-03-31", + "confirmed": "1351", + "deaths": "15" + }, + { + "date": "2020-04-01", + "confirmed": "1581", + "deaths": "18" + }, + { + "date": "2020-04-02", + "confirmed": "1834", + "deaths": "24" + }, + { + "date": "2020-04-03", + "confirmed": "2113", + "deaths": "31" + }, + { + "date": "2020-04-04", + "confirmed": "2291", + "deaths": "44" + }, + { + "date": "2020-04-05", + "confirmed": "2367", + "deaths": "52" + }, + { + "date": "2020-04-06", + "confirmed": "2722", + "deaths": "56" + }, + { + "date": "2020-04-07", + "confirmed": "3037", + "deaths": "79" + }, + { + "date": "2020-04-08", + "confirmed": "3327", + "deaths": "86" + }, + { + "date": "2020-04-09", + "confirmed": "3539", + "deaths": "94" + }, + { + "date": "2020-04-10", + "confirmed": "3799", + "deaths": "105" + }, + { + "date": "2020-04-11", + "confirmed": "4024", + "deaths": "116" + }, + { + "date": "2020-04-12", + "confirmed": "4160", + "deaths": "116" + }, + { + "date": "2020-04-13", + "confirmed": "4388", + "deaths": "136" + }, + { + "date": "2020-04-14", + "confirmed": "4686", + "deaths": "151" + }, + { + "date": "2020-04-15", + "confirmed": "4895", + "deaths": "164" + }, + { + "date": "2020-04-16", + "confirmed": "5111", + "deaths": "170" + }, + { + "date": "2020-04-17", + "confirmed": "5283", + "deaths": "184" + }, + { + "date": "2020-04-18", + "confirmed": "5517", + "deaths": "194" + }, + { + "date": "2020-04-19", + "confirmed": "5667", + "deaths": "196" + }, + { + "date": "2020-04-20", + "confirmed": "5807", + "deaths": "201" + }, + { + "date": "2020-04-21", + "confirmed": "5941", + "deaths": "221" + }, + { + "date": "2020-04-22", + "confirmed": "6137", + "deaths": "236" + }, + { + "date": "2020-04-23", + "confirmed": "6321", + "deaths": "248" + }, + { + "date": "2020-04-24", + "confirmed": "6625", + "deaths": "267" + }, + { + "date": "2020-04-25", + "confirmed": "6826", + "deaths": "280" + }, + { + "date": "2020-04-26", + "confirmed": "6997", + "deaths": "282" + }, + { + "date": "2020-04-27", + "confirmed": "7171", + "deaths": "296" + }, + { + "date": "2020-04-28", + "confirmed": "7306", + "deaths": "324" + }, + { + "date": "2020-04-29", + "confirmed": "7426", + "deaths": "331" + }, + { + "date": "2020-04-30", + "confirmed": "7563", + "deaths": "341" + }, + { + "date": "2020-05-01", + "confirmed": "7840", + "deaths": "355" + }, + { + "date": "2020-05-02", + "confirmed": "8154", + "deaths": "373" + } + ], + "Montana": [ + { + "date": "2020-03-13", + "confirmed": "4", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "6", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "6", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "8", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "8", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "12", + "deaths": "0" + }, + { + "date": "2020-03-19", + "confirmed": "19", + "deaths": "0" + }, + { + "date": "2020-03-20", + "confirmed": "19", + "deaths": "0" + }, + { + "date": "2020-03-21", + "confirmed": "29", + "deaths": "0" + }, + { + "date": "2020-03-22", + "confirmed": "34", + "deaths": "0" + }, + { + "date": "2020-03-23", + "confirmed": "45", + "deaths": "0" + }, + { + "date": "2020-03-24", + "confirmed": "51", + "deaths": "0" + }, + { + "date": "2020-03-25", + "confirmed": "65", + "deaths": "0" + }, + { + "date": "2020-03-26", + "confirmed": "90", + "deaths": "0" + }, + { + "date": "2020-03-27", + "confirmed": "121", + "deaths": "1" + }, + { + "date": "2020-03-28", + "confirmed": "147", + "deaths": "1" + }, + { + "date": "2020-03-29", + "confirmed": "161", + "deaths": "1" + }, + { + "date": "2020-03-30", + "confirmed": "177", + "deaths": "4" + }, + { + "date": "2020-03-31", + "confirmed": "198", + "deaths": "5" + }, + { + "date": "2020-04-01", + "confirmed": "217", + "deaths": "5" + }, + { + "date": "2020-04-02", + "confirmed": "241", + "deaths": "5" + }, + { + "date": "2020-04-03", + "confirmed": "262", + "deaths": "5" + }, + { + "date": "2020-04-04", + "confirmed": "281", + "deaths": "6" + }, + { + "date": "2020-04-05", + "confirmed": "298", + "deaths": "6" + }, + { + "date": "2020-04-06", + "confirmed": "319", + "deaths": "6" + }, + { + "date": "2020-04-07", + "confirmed": "319", + "deaths": "6" + }, + { + "date": "2020-04-08", + "confirmed": "332", + "deaths": "6" + }, + { + "date": "2020-04-09", + "confirmed": "354", + "deaths": "6" + }, + { + "date": "2020-04-10", + "confirmed": "365", + "deaths": "6" + }, + { + "date": "2020-04-11", + "confirmed": "377", + "deaths": "6" + }, + { + "date": "2020-04-12", + "confirmed": "387", + "deaths": "6" + }, + { + "date": "2020-04-13", + "confirmed": "394", + "deaths": "7" + }, + { + "date": "2020-04-14", + "confirmed": "399", + "deaths": "7" + }, + { + "date": "2020-04-15", + "confirmed": "404", + "deaths": "7" + }, + { + "date": "2020-04-16", + "confirmed": "415", + "deaths": "7" + }, + { + "date": "2020-04-17", + "confirmed": "422", + "deaths": "8" + }, + { + "date": "2020-04-18", + "confirmed": "426", + "deaths": "10" + }, + { + "date": "2020-04-19", + "confirmed": "433", + "deaths": "10" + }, + { + "date": "2020-04-20", + "confirmed": "433", + "deaths": "12" + }, + { + "date": "2020-04-21", + "confirmed": "437", + "deaths": "12" + }, + { + "date": "2020-04-22", + "confirmed": "439", + "deaths": "14" + }, + { + "date": "2020-04-23", + "confirmed": "442", + "deaths": "14" + }, + { + "date": "2020-04-24", + "confirmed": "444", + "deaths": "14" + }, + { + "date": "2020-04-25", + "confirmed": "445", + "deaths": "14" + }, + { + "date": "2020-04-26", + "confirmed": "448", + "deaths": "14" + }, + { + "date": "2020-04-27", + "confirmed": "449", + "deaths": "14" + }, + { + "date": "2020-04-28", + "confirmed": "451", + "deaths": "15" + }, + { + "date": "2020-04-29", + "confirmed": "451", + "deaths": "16" + }, + { + "date": "2020-04-30", + "confirmed": "453", + "deaths": "16" + }, + { + "date": "2020-05-01", + "confirmed": "453", + "deaths": "16" + }, + { + "date": "2020-05-02", + "confirmed": "455", + "deaths": "16" + } + ], + "Nebraska": [ + { + "date": "2020-02-17", + "confirmed": "10", + "deaths": "0" + }, + { + "date": "2020-02-18", + "confirmed": "10", + "deaths": "0" + }, + { + "date": "2020-02-19", + "confirmed": "10", + "deaths": "0" + }, + { + "date": "2020-02-20", + "confirmed": "11", + "deaths": "0" + }, + { + "date": "2020-02-21", + "confirmed": "11", + "deaths": "0" + }, + { + "date": "2020-02-22", + "confirmed": "11", + "deaths": "0" + }, + { + "date": "2020-02-23", + "confirmed": "11", + "deaths": "0" + }, + { + "date": "2020-02-24", + "confirmed": "12", + "deaths": "0" + }, + { + "date": "2020-02-25", + "confirmed": "13", + "deaths": "0" + }, + { + "date": "2020-02-26", + "confirmed": "13", + "deaths": "0" + }, + { + "date": "2020-02-27", + "confirmed": "13", + "deaths": "0" + }, + { + "date": "2020-02-28", + "confirmed": "13", + "deaths": "0" + }, + { + "date": "2020-02-29", + "confirmed": "13", + "deaths": "0" + }, + { + "date": "2020-03-01", + "confirmed": "13", + "deaths": "0" + }, + { + "date": "2020-03-02", + "confirmed": "13", + "deaths": "0" + }, + { + "date": "2020-03-03", + "confirmed": "13", + "deaths": "0" + }, + { + "date": "2020-03-04", + "confirmed": "13", + "deaths": "0" + }, + { + "date": "2020-03-05", + "confirmed": "13", + "deaths": "0" + }, + { + "date": "2020-03-06", + "confirmed": "14", + "deaths": "0" + }, + { + "date": "2020-03-07", + "confirmed": "14", + "deaths": "0" + }, + { + "date": "2020-03-08", + "confirmed": "16", + "deaths": "0" + }, + { + "date": "2020-03-09", + "confirmed": "16", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "17", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "23", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "24", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "27", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "29", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "31", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "33", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "36", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "43", + "deaths": "0" + }, + { + "date": "2020-03-19", + "confirmed": "47", + "deaths": "0" + }, + { + "date": "2020-03-20", + "confirmed": "53", + "deaths": "0" + }, + { + "date": "2020-03-21", + "confirmed": "61", + "deaths": "0" + }, + { + "date": "2020-03-22", + "confirmed": "62", + "deaths": "0" + }, + { + "date": "2020-03-23", + "confirmed": "73", + "deaths": "0" + }, + { + "date": "2020-03-24", + "confirmed": "77", + "deaths": "0" + }, + { + "date": "2020-03-25", + "confirmed": "84", + "deaths": "0" + }, + { + "date": "2020-03-26", + "confirmed": "92", + "deaths": "0" + }, + { + "date": "2020-03-27", + "confirmed": "100", + "deaths": "2" + }, + { + "date": "2020-03-28", + "confirmed": "122", + "deaths": "2" + }, + { + "date": "2020-03-29", + "confirmed": "137", + "deaths": "2" + }, + { + "date": "2020-03-30", + "confirmed": "185", + "deaths": "3" + }, + { + "date": "2020-03-31", + "confirmed": "193", + "deaths": "4" + }, + { + "date": "2020-04-01", + "confirmed": "249", + "deaths": "5" + }, + { + "date": "2020-04-02", + "confirmed": "273", + "deaths": "6" + }, + { + "date": "2020-04-03", + "confirmed": "296", + "deaths": "6" + }, + { + "date": "2020-04-04", + "confirmed": "339", + "deaths": "8" + }, + { + "date": "2020-04-05", + "confirmed": "377", + "deaths": "8" + }, + { + "date": "2020-04-06", + "confirmed": "438", + "deaths": "10" + }, + { + "date": "2020-04-07", + "confirmed": "490", + "deaths": "12" + }, + { + "date": "2020-04-08", + "confirmed": "538", + "deaths": "14" + }, + { + "date": "2020-04-09", + "confirmed": "594", + "deaths": "15" + }, + { + "date": "2020-04-10", + "confirmed": "679", + "deaths": "18" + }, + { + "date": "2020-04-11", + "confirmed": "719", + "deaths": "18" + }, + { + "date": "2020-04-12", + "confirmed": "806", + "deaths": "18" + }, + { + "date": "2020-04-13", + "confirmed": "871", + "deaths": "19" + }, + { + "date": "2020-04-14", + "confirmed": "931", + "deaths": "21" + }, + { + "date": "2020-04-15", + "confirmed": "995", + "deaths": "22" + }, + { + "date": "2020-04-16", + "confirmed": "1094", + "deaths": "24" + }, + { + "date": "2020-04-17", + "confirmed": "1216", + "deaths": "24" + }, + { + "date": "2020-04-18", + "confirmed": "1348", + "deaths": "28" + }, + { + "date": "2020-04-19", + "confirmed": "1474", + "deaths": "28" + }, + { + "date": "2020-04-20", + "confirmed": "1648", + "deaths": "33" + }, + { + "date": "2020-04-21", + "confirmed": "1727", + "deaths": "38" + }, + { + "date": "2020-04-22", + "confirmed": "1827", + "deaths": "43" + }, + { + "date": "2020-04-23", + "confirmed": "2191", + "deaths": "47" + }, + { + "date": "2020-04-24", + "confirmed": "2475", + "deaths": "51" + }, + { + "date": "2020-04-25", + "confirmed": "2900", + "deaths": "53" + }, + { + "date": "2020-04-26", + "confirmed": "3126", + "deaths": "55" + }, + { + "date": "2020-04-27", + "confirmed": "3487", + "deaths": "55" + }, + { + "date": "2020-04-28", + "confirmed": "3613", + "deaths": "57" + }, + { + "date": "2020-04-29", + "confirmed": "3876", + "deaths": "68" + }, + { + "date": "2020-04-30", + "confirmed": "4332", + "deaths": "71" + }, + { + "date": "2020-05-01", + "confirmed": "4838", + "deaths": "73" + }, + { + "date": "2020-05-02", + "confirmed": "5333", + "deaths": "76" + } + ], + "Nevada": [ + { + "date": "2020-03-05", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-06", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-07", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-08", + "confirmed": "4", + "deaths": "0" + }, + { + "date": "2020-03-09", + "confirmed": "4", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "4", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "7", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "11", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "19", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "21", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "26", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "45", + "deaths": "1" + }, + { + "date": "2020-03-17", + "confirmed": "55", + "deaths": "1" + }, + { + "date": "2020-03-18", + "confirmed": "82", + "deaths": "1" + }, + { + "date": "2020-03-19", + "confirmed": "99", + "deaths": "1" + }, + { + "date": "2020-03-20", + "confirmed": "165", + "deaths": "2" + }, + { + "date": "2020-03-21", + "confirmed": "165", + "deaths": "2" + }, + { + "date": "2020-03-22", + "confirmed": "190", + "deaths": "2" + }, + { + "date": "2020-03-23", + "confirmed": "265", + "deaths": "4" + }, + { + "date": "2020-03-24", + "confirmed": "315", + "deaths": "6" + }, + { + "date": "2020-03-25", + "confirmed": "405", + "deaths": "10" + }, + { + "date": "2020-03-26", + "confirmed": "535", + "deaths": "10" + }, + { + "date": "2020-03-27", + "confirmed": "621", + "deaths": "10" + }, + { + "date": "2020-03-28", + "confirmed": "738", + "deaths": "14" + }, + { + "date": "2020-03-29", + "confirmed": "920", + "deaths": "15" + }, + { + "date": "2020-03-30", + "confirmed": "1044", + "deaths": "18" + }, + { + "date": "2020-03-31", + "confirmed": "1113", + "deaths": "26" + }, + { + "date": "2020-04-01", + "confirmed": "1279", + "deaths": "32" + }, + { + "date": "2020-04-02", + "confirmed": "1458", + "deaths": "38" + }, + { + "date": "2020-04-03", + "confirmed": "1549", + "deaths": "43" + }, + { + "date": "2020-04-04", + "confirmed": "1758", + "deaths": "46" + }, + { + "date": "2020-04-05", + "confirmed": "1880", + "deaths": "46" + }, + { + "date": "2020-04-06", + "confirmed": "1971", + "deaths": "58" + }, + { + "date": "2020-04-07", + "confirmed": "2101", + "deaths": "60" + }, + { + "date": "2020-04-08", + "confirmed": "2318", + "deaths": "80" + }, + { + "date": "2020-04-09", + "confirmed": "2456", + "deaths": "82" + }, + { + "date": "2020-04-10", + "confirmed": "2606", + "deaths": "86" + }, + { + "date": "2020-04-11", + "confirmed": "2720", + "deaths": "111" + }, + { + "date": "2020-04-12", + "confirmed": "2860", + "deaths": "113" + }, + { + "date": "2020-04-13", + "confirmed": "3036", + "deaths": "114" + }, + { + "date": "2020-04-14", + "confirmed": "3137", + "deaths": "130" + }, + { + "date": "2020-04-15", + "confirmed": "3212", + "deaths": "137" + }, + { + "date": "2020-04-16", + "confirmed": "3321", + "deaths": "142" + }, + { + "date": "2020-04-17", + "confirmed": "3524", + "deaths": "151" + }, + { + "date": "2020-04-18", + "confirmed": "3626", + "deaths": "155" + }, + { + "date": "2020-04-19", + "confirmed": "3741", + "deaths": "158" + }, + { + "date": "2020-04-20", + "confirmed": "3830", + "deaths": "163" + }, + { + "date": "2020-04-21", + "confirmed": "3937", + "deaths": "163" + }, + { + "date": "2020-04-22", + "confirmed": "4081", + "deaths": "187" + }, + { + "date": "2020-04-23", + "confirmed": "4208", + "deaths": "195" + }, + { + "date": "2020-04-24", + "confirmed": "4398", + "deaths": "203" + }, + { + "date": "2020-04-25", + "confirmed": "4539", + "deaths": "206" + }, + { + "date": "2020-04-26", + "confirmed": "4638", + "deaths": "206" + }, + { + "date": "2020-04-27", + "confirmed": "4708", + "deaths": "219" + }, + { + "date": "2020-04-28", + "confirmed": "4812", + "deaths": "225" + }, + { + "date": "2020-04-29", + "confirmed": "4934", + "deaths": "237" + }, + { + "date": "2020-04-30", + "confirmed": "5053", + "deaths": "243" + }, + { + "date": "2020-05-01", + "confirmed": "5249", + "deaths": "254" + }, + { + "date": "2020-05-02", + "confirmed": "5390", + "deaths": "257" + } + ], + "New Hampshire": [ + { + "date": "2020-03-02", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-03", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-04", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-05", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-06", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-07", + "confirmed": "4", + "deaths": "0" + }, + { + "date": "2020-03-08", + "confirmed": "4", + "deaths": "0" + }, + { + "date": "2020-03-09", + "confirmed": "4", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "5", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "5", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "6", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "7", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "7", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "13", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "17", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "26", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "39", + "deaths": "0" + }, + { + "date": "2020-03-19", + "confirmed": "44", + "deaths": "0" + }, + { + "date": "2020-03-20", + "confirmed": "55", + "deaths": "0" + }, + { + "date": "2020-03-21", + "confirmed": "65", + "deaths": "0" + }, + { + "date": "2020-03-22", + "confirmed": "78", + "deaths": "0" + }, + { + "date": "2020-03-23", + "confirmed": "101", + "deaths": "1" + }, + { + "date": "2020-03-24", + "confirmed": "108", + "deaths": "1" + }, + { + "date": "2020-03-25", + "confirmed": "137", + "deaths": "1" + }, + { + "date": "2020-03-26", + "confirmed": "158", + "deaths": "1" + }, + { + "date": "2020-03-27", + "confirmed": "187", + "deaths": "2" + }, + { + "date": "2020-03-28", + "confirmed": "214", + "deaths": "2" + }, + { + "date": "2020-03-29", + "confirmed": "258", + "deaths": "3" + }, + { + "date": "2020-03-30", + "confirmed": "314", + "deaths": "3" + }, + { + "date": "2020-03-31", + "confirmed": "367", + "deaths": "3" + }, + { + "date": "2020-04-01", + "confirmed": "415", + "deaths": "4" + }, + { + "date": "2020-04-02", + "confirmed": "479", + "deaths": "5" + }, + { + "date": "2020-04-03", + "confirmed": "540", + "deaths": "7" + }, + { + "date": "2020-04-04", + "confirmed": "621", + "deaths": "9" + }, + { + "date": "2020-04-05", + "confirmed": "669", + "deaths": "9" + }, + { + "date": "2020-04-06", + "confirmed": "715", + "deaths": "9" + }, + { + "date": "2020-04-07", + "confirmed": "747", + "deaths": "13" + }, + { + "date": "2020-04-08", + "confirmed": "788", + "deaths": "18" + }, + { + "date": "2020-04-09", + "confirmed": "819", + "deaths": "21" + }, + { + "date": "2020-04-10", + "confirmed": "885", + "deaths": "22" + }, + { + "date": "2020-04-11", + "confirmed": "929", + "deaths": "23" + }, + { + "date": "2020-04-12", + "confirmed": "985", + "deaths": "23" + }, + { + "date": "2020-04-13", + "confirmed": "1020", + "deaths": "23" + }, + { + "date": "2020-04-14", + "confirmed": "1091", + "deaths": "27" + }, + { + "date": "2020-04-15", + "confirmed": "1139", + "deaths": "32" + }, + { + "date": "2020-04-16", + "confirmed": "1211", + "deaths": "34" + }, + { + "date": "2020-04-17", + "confirmed": "1287", + "deaths": "37" + }, + { + "date": "2020-04-18", + "confirmed": "1342", + "deaths": "38" + }, + { + "date": "2020-04-19", + "confirmed": "1392", + "deaths": "41" + }, + { + "date": "2020-04-20", + "confirmed": "1447", + "deaths": "42" + }, + { + "date": "2020-04-21", + "confirmed": "1491", + "deaths": "42" + }, + { + "date": "2020-04-22", + "confirmed": "1588", + "deaths": "48" + }, + { + "date": "2020-04-23", + "confirmed": "1670", + "deaths": "51" + }, + { + "date": "2020-04-24", + "confirmed": "1720", + "deaths": "53" + }, + { + "date": "2020-04-25", + "confirmed": "1793", + "deaths": "60" + }, + { + "date": "2020-04-26", + "confirmed": "1864", + "deaths": "60" + }, + { + "date": "2020-04-27", + "confirmed": "1938", + "deaths": "60" + }, + { + "date": "2020-04-28", + "confirmed": "2010", + "deaths": "60" + }, + { + "date": "2020-04-29", + "confirmed": "2054", + "deaths": "66" + }, + { + "date": "2020-04-30", + "confirmed": "2146", + "deaths": "72" + }, + { + "date": "2020-05-01", + "confirmed": "2310", + "deaths": "81" + }, + { + "date": "2020-05-02", + "confirmed": "2429", + "deaths": "84" + } + ], + "New Jersey": [ + { + "date": "2020-03-04", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-05", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-06", + "confirmed": "4", + "deaths": "0" + }, + { + "date": "2020-03-07", + "confirmed": "4", + "deaths": "0" + }, + { + "date": "2020-03-08", + "confirmed": "6", + "deaths": "0" + }, + { + "date": "2020-03-09", + "confirmed": "11", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "15", + "deaths": "1" + }, + { + "date": "2020-03-11", + "confirmed": "23", + "deaths": "1" + }, + { + "date": "2020-03-12", + "confirmed": "29", + "deaths": "1" + }, + { + "date": "2020-03-13", + "confirmed": "50", + "deaths": "1" + }, + { + "date": "2020-03-14", + "confirmed": "75", + "deaths": "2" + }, + { + "date": "2020-03-15", + "confirmed": "98", + "deaths": "2" + }, + { + "date": "2020-03-16", + "confirmed": "176", + "deaths": "3" + }, + { + "date": "2020-03-17", + "confirmed": "268", + "deaths": "3" + }, + { + "date": "2020-03-18", + "confirmed": "427", + "deaths": "5" + }, + { + "date": "2020-03-19", + "confirmed": "735", + "deaths": "9" + }, + { + "date": "2020-03-20", + "confirmed": "896", + "deaths": "11" + }, + { + "date": "2020-03-21", + "confirmed": "1336", + "deaths": "16" + }, + { + "date": "2020-03-22", + "confirmed": "1914", + "deaths": "20" + }, + { + "date": "2020-03-23", + "confirmed": "2844", + "deaths": "27" + }, + { + "date": "2020-03-24", + "confirmed": "3675", + "deaths": "44" + }, + { + "date": "2020-03-25", + "confirmed": "4402", + "deaths": "62" + }, + { + "date": "2020-03-26", + "confirmed": "6876", + "deaths": "81" + }, + { + "date": "2020-03-27", + "confirmed": "8825", + "deaths": "108" + }, + { + "date": "2020-03-28", + "confirmed": "11124", + "deaths": "140" + }, + { + "date": "2020-03-29", + "confirmed": "13386", + "deaths": "161" + }, + { + "date": "2020-03-30", + "confirmed": "16636", + "deaths": "199" + }, + { + "date": "2020-03-31", + "confirmed": "18696", + "deaths": "267" + }, + { + "date": "2020-04-01", + "confirmed": "22255", + "deaths": "355" + }, + { + "date": "2020-04-02", + "confirmed": "25590", + "deaths": "539" + }, + { + "date": "2020-04-03", + "confirmed": "29895", + "deaths": "647" + }, + { + "date": "2020-04-04", + "confirmed": "34124", + "deaths": "847" + }, + { + "date": "2020-04-05", + "confirmed": "37505", + "deaths": "917" + }, + { + "date": "2020-04-06", + "confirmed": "41090", + "deaths": "1005" + }, + { + "date": "2020-04-07", + "confirmed": "44416", + "deaths": "1232" + }, + { + "date": "2020-04-08", + "confirmed": "47437", + "deaths": "1504" + }, + { + "date": "2020-04-09", + "confirmed": "51027", + "deaths": "1700" + }, + { + "date": "2020-04-10", + "confirmed": "54588", + "deaths": "1932" + }, + { + "date": "2020-04-11", + "confirmed": "58151", + "deaths": "2183" + }, + { + "date": "2020-04-12", + "confirmed": "61850", + "deaths": "2350" + }, + { + "date": "2020-04-13", + "confirmed": "64584", + "deaths": "2443" + }, + { + "date": "2020-04-14", + "confirmed": "68824", + "deaths": "2805" + }, + { + "date": "2020-04-15", + "confirmed": "71030", + "deaths": "3156" + }, + { + "date": "2020-04-16", + "confirmed": "75317", + "deaths": "3518" + }, + { + "date": "2020-04-17", + "confirmed": "78467", + "deaths": "3840" + }, + { + "date": "2020-04-18", + "confirmed": "81420", + "deaths": "4070" + }, + { + "date": "2020-04-19", + "confirmed": "85301", + "deaths": "4202" + }, + { + "date": "2020-04-20", + "confirmed": "88806", + "deaths": "4377" + }, + { + "date": "2020-04-21", + "confirmed": "92387", + "deaths": "4753" + }, + { + "date": "2020-04-22", + "confirmed": "95865", + "deaths": "5063" + }, + { + "date": "2020-04-23", + "confirmed": "99989", + "deaths": "5368" + }, + { + "date": "2020-04-24", + "confirmed": "102196", + "deaths": "5617" + }, + { + "date": "2020-04-25", + "confirmed": "105523", + "deaths": "5863" + }, + { + "date": "2020-04-26", + "confirmed": "109038", + "deaths": "5938" + }, + { + "date": "2020-04-27", + "confirmed": "111188", + "deaths": "6044" + }, + { + "date": "2020-04-28", + "confirmed": "113856", + "deaths": "6442" + }, + { + "date": "2020-04-29", + "confirmed": "116264", + "deaths": "6770" + }, + { + "date": "2020-04-30", + "confirmed": "118652", + "deaths": "7228" + }, + { + "date": "2020-05-01", + "confirmed": "121190", + "deaths": "7538" + }, + { + "date": "2020-05-02", + "confirmed": "123717", + "deaths": "7742" + } + ], + "New Mexico": [ + { + "date": "2020-03-11", + "confirmed": "4", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "6", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "10", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "13", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "17", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "21", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "23", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "28", + "deaths": "0" + }, + { + "date": "2020-03-19", + "confirmed": "35", + "deaths": "0" + }, + { + "date": "2020-03-20", + "confirmed": "43", + "deaths": "0" + }, + { + "date": "2020-03-21", + "confirmed": "57", + "deaths": "0" + }, + { + "date": "2020-03-22", + "confirmed": "65", + "deaths": "0" + }, + { + "date": "2020-03-23", + "confirmed": "83", + "deaths": "0" + }, + { + "date": "2020-03-24", + "confirmed": "100", + "deaths": "0" + }, + { + "date": "2020-03-25", + "confirmed": "112", + "deaths": "1" + }, + { + "date": "2020-03-26", + "confirmed": "136", + "deaths": "1" + }, + { + "date": "2020-03-27", + "confirmed": "191", + "deaths": "1" + }, + { + "date": "2020-03-28", + "confirmed": "208", + "deaths": "2" + }, + { + "date": "2020-03-29", + "confirmed": "237", + "deaths": "2" + }, + { + "date": "2020-03-30", + "confirmed": "281", + "deaths": "4" + }, + { + "date": "2020-03-31", + "confirmed": "315", + "deaths": "5" + }, + { + "date": "2020-04-01", + "confirmed": "363", + "deaths": "6" + }, + { + "date": "2020-04-02", + "confirmed": "403", + "deaths": "7" + }, + { + "date": "2020-04-03", + "confirmed": "495", + "deaths": "10" + }, + { + "date": "2020-04-04", + "confirmed": "543", + "deaths": "11" + }, + { + "date": "2020-04-05", + "confirmed": "624", + "deaths": "12" + }, + { + "date": "2020-04-06", + "confirmed": "686", + "deaths": "12" + }, + { + "date": "2020-04-07", + "confirmed": "794", + "deaths": "13" + }, + { + "date": "2020-04-08", + "confirmed": "865", + "deaths": "16" + }, + { + "date": "2020-04-09", + "confirmed": "989", + "deaths": "17" + }, + { + "date": "2020-04-10", + "confirmed": "1091", + "deaths": "19" + }, + { + "date": "2020-04-11", + "confirmed": "1174", + "deaths": "20" + }, + { + "date": "2020-04-12", + "confirmed": "1245", + "deaths": "26" + }, + { + "date": "2020-04-13", + "confirmed": "1345", + "deaths": "31" + }, + { + "date": "2020-04-14", + "confirmed": "1407", + "deaths": "36" + }, + { + "date": "2020-04-15", + "confirmed": "1484", + "deaths": "36" + }, + { + "date": "2020-04-16", + "confirmed": "1597", + "deaths": "44" + }, + { + "date": "2020-04-17", + "confirmed": "1711", + "deaths": "51" + }, + { + "date": "2020-04-18", + "confirmed": "1798", + "deaths": "53" + }, + { + "date": "2020-04-19", + "confirmed": "1845", + "deaths": "55" + }, + { + "date": "2020-04-20", + "confirmed": "1971", + "deaths": "58" + }, + { + "date": "2020-04-21", + "confirmed": "2072", + "deaths": "65" + }, + { + "date": "2020-04-22", + "confirmed": "2210", + "deaths": "71" + }, + { + "date": "2020-04-23", + "confirmed": "2379", + "deaths": "78" + }, + { + "date": "2020-04-24", + "confirmed": "2524", + "deaths": "84" + }, + { + "date": "2020-04-25", + "confirmed": "2662", + "deaths": "93" + }, + { + "date": "2020-04-26", + "confirmed": "2728", + "deaths": "99" + }, + { + "date": "2020-04-27", + "confirmed": "2825", + "deaths": "104" + }, + { + "date": "2020-04-28", + "confirmed": "2975", + "deaths": "110" + }, + { + "date": "2020-04-29", + "confirmed": "3213", + "deaths": "112" + }, + { + "date": "2020-04-30", + "confirmed": "3411", + "deaths": "123" + }, + { + "date": "2020-05-01", + "confirmed": "3513", + "deaths": "131" + }, + { + "date": "2020-05-02", + "confirmed": "3732", + "deaths": "139" + } + ], + "New York": [ + { + "date": "2020-03-01", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-02", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-03", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-04", + "confirmed": "11", + "deaths": "0" + }, + { + "date": "2020-03-05", + "confirmed": "22", + "deaths": "0" + }, + { + "date": "2020-03-06", + "confirmed": "44", + "deaths": "0" + }, + { + "date": "2020-03-07", + "confirmed": "89", + "deaths": "0" + }, + { + "date": "2020-03-08", + "confirmed": "106", + "deaths": "0" + }, + { + "date": "2020-03-09", + "confirmed": "142", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "173", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "217", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "326", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "421", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "610", + "deaths": "2" + }, + { + "date": "2020-03-15", + "confirmed": "732", + "deaths": "6" + }, + { + "date": "2020-03-16", + "confirmed": "950", + "deaths": "10" + }, + { + "date": "2020-03-17", + "confirmed": "1374", + "deaths": "17" + }, + { + "date": "2020-03-18", + "confirmed": "2382", + "deaths": "27" + }, + { + "date": "2020-03-19", + "confirmed": "4152", + "deaths": "30" + }, + { + "date": "2020-03-20", + "confirmed": "7102", + "deaths": "57" + }, + { + "date": "2020-03-21", + "confirmed": "10356", + "deaths": "80" + }, + { + "date": "2020-03-22", + "confirmed": "15168", + "deaths": "122" + }, + { + "date": "2020-03-23", + "confirmed": "20875", + "deaths": "159" + }, + { + "date": "2020-03-24", + "confirmed": "25665", + "deaths": "218" + }, + { + "date": "2020-03-25", + "confirmed": "33066", + "deaths": "325" + }, + { + "date": "2020-03-26", + "confirmed": "38987", + "deaths": "432" + }, + { + "date": "2020-03-27", + "confirmed": "44635", + "deaths": "535" + }, + { + "date": "2020-03-28", + "confirmed": "53363", + "deaths": "782" + }, + { + "date": "2020-03-29", + "confirmed": "59568", + "deaths": "965" + }, + { + "date": "2020-03-30", + "confirmed": "67174", + "deaths": "1224" + }, + { + "date": "2020-03-31", + "confirmed": "75832", + "deaths": "1550" + }, + { + "date": "2020-04-01", + "confirmed": "83889", + "deaths": "1941" + }, + { + "date": "2020-04-02", + "confirmed": "92381", + "deaths": "2373" + }, + { + "date": "2020-04-03", + "confirmed": "102870", + "deaths": "2935" + }, + { + "date": "2020-04-04", + "confirmed": "114996", + "deaths": "3568" + }, + { + "date": "2020-04-05", + "confirmed": "122911", + "deaths": "4161" + }, + { + "date": "2020-04-06", + "confirmed": "130689", + "deaths": "4758" + }, + { + "date": "2020-04-07", + "confirmed": "140081", + "deaths": "5563" + }, + { + "date": "2020-04-08", + "confirmed": "149401", + "deaths": "6268" + }, + { + "date": "2020-04-09", + "confirmed": "159937", + "deaths": "7067" + }, + { + "date": "2020-04-10", + "confirmed": "170512", + "deaths": "7844" + }, + { + "date": "2020-04-11", + "confirmed": "180458", + "deaths": "8627" + }, + { + "date": "2020-04-12", + "confirmed": "188694", + "deaths": "9385" + }, + { + "date": "2020-04-13", + "confirmed": "195031", + "deaths": "10056" + }, + { + "date": "2020-04-14", + "confirmed": "202208", + "deaths": "10834" + }, + { + "date": "2020-04-15", + "confirmed": "213779", + "deaths": "11586" + }, + { + "date": "2020-04-16", + "confirmed": "222284", + "deaths": "12192" + }, + { + "date": "2020-04-17", + "confirmed": "229642", + "deaths": "12822" + }, + { + "date": "2020-04-18", + "confirmed": "236763", + "deaths": "13362" + }, + { + "date": "2020-04-19", + "confirmed": "242817", + "deaths": "13869" + }, + { + "date": "2020-04-20", + "confirmed": "247543", + "deaths": "14347" + }, + { + "date": "2020-04-21", + "confirmed": "251720", + "deaths": "14828" + }, + { + "date": "2020-04-22", + "confirmed": "257246", + "deaths": "15302" + }, + { + "date": "2020-04-23", + "confirmed": "263460", + "deaths": "15740" + }, + { + "date": "2020-04-24", + "confirmed": "271621", + "deaths": "16162" + }, + { + "date": "2020-04-25", + "confirmed": "282174", + "deaths": "16599" + }, + { + "date": "2020-04-26", + "confirmed": "288076", + "deaths": "16966" + }, + { + "date": "2020-04-27", + "confirmed": "292027", + "deaths": "17303" + }, + { + "date": "2020-04-28", + "confirmed": "295137", + "deaths": "17638" + }, + { + "date": "2020-04-29", + "confirmed": "299722", + "deaths": "18015" + }, + { + "date": "2020-04-30", + "confirmed": "304401", + "deaths": "18321" + }, + { + "date": "2020-05-01", + "confirmed": "308345", + "deaths": "18610" + }, + { + "date": "2020-05-02", + "confirmed": "313008", + "deaths": "18909" + } + ], + "North Carolina": [ + { + "date": "2020-03-03", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-04", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-05", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-06", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-07", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-08", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-09", + "confirmed": "7", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "7", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "8", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "16", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "18", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "25", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "32", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "34", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "42", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "66", + "deaths": "0" + }, + { + "date": "2020-03-19", + "confirmed": "104", + "deaths": "0" + }, + { + "date": "2020-03-20", + "confirmed": "144", + "deaths": "0" + }, + { + "date": "2020-03-21", + "confirmed": "184", + "deaths": "0" + }, + { + "date": "2020-03-22", + "confirmed": "269", + "deaths": "0" + }, + { + "date": "2020-03-23", + "confirmed": "303", + "deaths": "0" + }, + { + "date": "2020-03-24", + "confirmed": "399", + "deaths": "0" + }, + { + "date": "2020-03-25", + "confirmed": "563", + "deaths": "1" + }, + { + "date": "2020-03-26", + "confirmed": "638", + "deaths": "2" + }, + { + "date": "2020-03-27", + "confirmed": "783", + "deaths": "3" + }, + { + "date": "2020-03-28", + "confirmed": "972", + "deaths": "4" + }, + { + "date": "2020-03-29", + "confirmed": "1167", + "deaths": "6" + }, + { + "date": "2020-03-30", + "confirmed": "1304", + "deaths": "6" + }, + { + "date": "2020-03-31", + "confirmed": "1528", + "deaths": "10" + }, + { + "date": "2020-04-01", + "confirmed": "1582", + "deaths": "11" + }, + { + "date": "2020-04-02", + "confirmed": "1857", + "deaths": "17" + }, + { + "date": "2020-04-03", + "confirmed": "2093", + "deaths": "19" + }, + { + "date": "2020-04-04", + "confirmed": "2402", + "deaths": "30" + }, + { + "date": "2020-04-05", + "confirmed": "2585", + "deaths": "37" + }, + { + "date": "2020-04-06", + "confirmed": "2870", + "deaths": "40" + }, + { + "date": "2020-04-07", + "confirmed": "3220", + "deaths": "50" + }, + { + "date": "2020-04-08", + "confirmed": "3423", + "deaths": "61" + }, + { + "date": "2020-04-09", + "confirmed": "3651", + "deaths": "74" + }, + { + "date": "2020-04-10", + "confirmed": "3906", + "deaths": "78" + }, + { + "date": "2020-04-11", + "confirmed": "4310", + "deaths": "86" + }, + { + "date": "2020-04-12", + "confirmed": "4520", + "deaths": "86" + }, + { + "date": "2020-04-13", + "confirmed": "4788", + "deaths": "91" + }, + { + "date": "2020-04-14", + "confirmed": "4992", + "deaths": "116" + }, + { + "date": "2020-04-15", + "confirmed": "5123", + "deaths": "128" + }, + { + "date": "2020-04-16", + "confirmed": "5463", + "deaths": "140" + }, + { + "date": "2020-04-17", + "confirmed": "5859", + "deaths": "159" + }, + { + "date": "2020-04-18", + "confirmed": "6140", + "deaths": "175" + }, + { + "date": "2020-04-19", + "confirmed": "6493", + "deaths": "183" + }, + { + "date": "2020-04-20", + "confirmed": "6764", + "deaths": "187" + }, + { + "date": "2020-04-21", + "confirmed": "6951", + "deaths": "217" + }, + { + "date": "2020-04-22", + "confirmed": "7220", + "deaths": "242" + }, + { + "date": "2020-04-23", + "confirmed": "7608", + "deaths": "253" + }, + { + "date": "2020-04-24", + "confirmed": "8052", + "deaths": "270" + }, + { + "date": "2020-04-25", + "confirmed": "8542", + "deaths": "300" + }, + { + "date": "2020-04-26", + "confirmed": "8830", + "deaths": "309" + }, + { + "date": "2020-04-27", + "confirmed": "9035", + "deaths": "331" + }, + { + "date": "2020-04-28", + "confirmed": "9568", + "deaths": "353" + }, + { + "date": "2020-04-29", + "confirmed": "9947", + "deaths": "366" + }, + { + "date": "2020-04-30", + "confirmed": "10507", + "deaths": "385" + }, + { + "date": "2020-05-01", + "confirmed": "10922", + "deaths": "405" + }, + { + "date": "2020-05-02", + "confirmed": "11514", + "deaths": "428" + } + ], + "North Dakota": [ + { + "date": "2020-03-11", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "5", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "7", + "deaths": "0" + }, + { + "date": "2020-03-19", + "confirmed": "19", + "deaths": "0" + }, + { + "date": "2020-03-20", + "confirmed": "27", + "deaths": "0" + }, + { + "date": "2020-03-21", + "confirmed": "28", + "deaths": "0" + }, + { + "date": "2020-03-22", + "confirmed": "30", + "deaths": "0" + }, + { + "date": "2020-03-23", + "confirmed": "32", + "deaths": "0" + }, + { + "date": "2020-03-24", + "confirmed": "36", + "deaths": "0" + }, + { + "date": "2020-03-25", + "confirmed": "45", + "deaths": "0" + }, + { + "date": "2020-03-26", + "confirmed": "58", + "deaths": "0" + }, + { + "date": "2020-03-27", + "confirmed": "68", + "deaths": "1" + }, + { + "date": "2020-03-28", + "confirmed": "94", + "deaths": "1" + }, + { + "date": "2020-03-29", + "confirmed": "98", + "deaths": "1" + }, + { + "date": "2020-03-30", + "confirmed": "109", + "deaths": "3" + }, + { + "date": "2020-03-31", + "confirmed": "126", + "deaths": "3" + }, + { + "date": "2020-04-01", + "confirmed": "147", + "deaths": "3" + }, + { + "date": "2020-04-02", + "confirmed": "159", + "deaths": "3" + }, + { + "date": "2020-04-03", + "confirmed": "173", + "deaths": "3" + }, + { + "date": "2020-04-04", + "confirmed": "186", + "deaths": "3" + }, + { + "date": "2020-04-05", + "confirmed": "207", + "deaths": "3" + }, + { + "date": "2020-04-06", + "confirmed": "225", + "deaths": "3" + }, + { + "date": "2020-04-07", + "confirmed": "237", + "deaths": "4" + }, + { + "date": "2020-04-08", + "confirmed": "251", + "deaths": "4" + }, + { + "date": "2020-04-09", + "confirmed": "269", + "deaths": "5" + }, + { + "date": "2020-04-10", + "confirmed": "278", + "deaths": "7" + }, + { + "date": "2020-04-11", + "confirmed": "293", + "deaths": "7" + }, + { + "date": "2020-04-12", + "confirmed": "308", + "deaths": "8" + }, + { + "date": "2020-04-13", + "confirmed": "331", + "deaths": "9" + }, + { + "date": "2020-04-14", + "confirmed": "341", + "deaths": "9" + }, + { + "date": "2020-04-15", + "confirmed": "365", + "deaths": "9" + }, + { + "date": "2020-04-16", + "confirmed": "393", + "deaths": "9" + }, + { + "date": "2020-04-17", + "confirmed": "439", + "deaths": "9" + }, + { + "date": "2020-04-18", + "confirmed": "528", + "deaths": "9" + }, + { + "date": "2020-04-19", + "confirmed": "585", + "deaths": "10" + }, + { + "date": "2020-04-20", + "confirmed": "627", + "deaths": "13" + }, + { + "date": "2020-04-21", + "confirmed": "644", + "deaths": "13" + }, + { + "date": "2020-04-22", + "confirmed": "679", + "deaths": "14" + }, + { + "date": "2020-04-23", + "confirmed": "709", + "deaths": "15" + }, + { + "date": "2020-04-24", + "confirmed": "748", + "deaths": "15" + }, + { + "date": "2020-04-25", + "confirmed": "803", + "deaths": "16" + }, + { + "date": "2020-04-26", + "confirmed": "867", + "deaths": "17" + }, + { + "date": "2020-04-27", + "confirmed": "942", + "deaths": "19" + }, + { + "date": "2020-04-28", + "confirmed": "991", + "deaths": "19" + }, + { + "date": "2020-04-29", + "confirmed": "1033", + "deaths": "19" + }, + { + "date": "2020-04-30", + "confirmed": "1067", + "deaths": "19" + }, + { + "date": "2020-05-01", + "confirmed": "1107", + "deaths": "23" + }, + { + "date": "2020-05-02", + "confirmed": "1153", + "deaths": "24" + } + ], + "Ohio": [ + { + "date": "2020-03-09", + "confirmed": "3", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "3", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "4", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "5", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "13", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "26", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "37", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "50", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "67", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "90", + "deaths": "0" + }, + { + "date": "2020-03-19", + "confirmed": "120", + "deaths": "0" + }, + { + "date": "2020-03-20", + "confirmed": "169", + "deaths": "1" + }, + { + "date": "2020-03-21", + "confirmed": "247", + "deaths": "3" + }, + { + "date": "2020-03-22", + "confirmed": "351", + "deaths": "3" + }, + { + "date": "2020-03-23", + "confirmed": "444", + "deaths": "6" + }, + { + "date": "2020-03-24", + "confirmed": "564", + "deaths": "8" + }, + { + "date": "2020-03-25", + "confirmed": "706", + "deaths": "11" + }, + { + "date": "2020-03-26", + "confirmed": "867", + "deaths": "15" + }, + { + "date": "2020-03-27", + "confirmed": "1144", + "deaths": "22" + }, + { + "date": "2020-03-28", + "confirmed": "1406", + "deaths": "25" + }, + { + "date": "2020-03-29", + "confirmed": "1665", + "deaths": "30" + }, + { + "date": "2020-03-30", + "confirmed": "1933", + "deaths": "40" + }, + { + "date": "2020-03-31", + "confirmed": "2199", + "deaths": "55" + }, + { + "date": "2020-04-01", + "confirmed": "2547", + "deaths": "65" + }, + { + "date": "2020-04-02", + "confirmed": "2902", + "deaths": "81" + }, + { + "date": "2020-04-03", + "confirmed": "3312", + "deaths": "91" + }, + { + "date": "2020-04-04", + "confirmed": "3739", + "deaths": "102" + }, + { + "date": "2020-04-05", + "confirmed": "4043", + "deaths": "119" + }, + { + "date": "2020-04-06", + "confirmed": "4450", + "deaths": "142" + }, + { + "date": "2020-04-07", + "confirmed": "4782", + "deaths": "167" + }, + { + "date": "2020-04-08", + "confirmed": "5148", + "deaths": "193" + }, + { + "date": "2020-04-09", + "confirmed": "5512", + "deaths": "213" + }, + { + "date": "2020-04-10", + "confirmed": "5878", + "deaths": "231" + }, + { + "date": "2020-04-11", + "confirmed": "6250", + "deaths": "247" + }, + { + "date": "2020-04-12", + "confirmed": "6604", + "deaths": "253" + }, + { + "date": "2020-04-13", + "confirmed": "6975", + "deaths": "274" + }, + { + "date": "2020-04-14", + "confirmed": "7280", + "deaths": "324" + }, + { + "date": "2020-04-15", + "confirmed": "7791", + "deaths": "361" + }, + { + "date": "2020-04-16", + "confirmed": "8414", + "deaths": "389" + }, + { + "date": "2020-04-17", + "confirmed": "9107", + "deaths": "418" + }, + { + "date": "2020-04-18", + "confirmed": "10222", + "deaths": "451" + }, + { + "date": "2020-04-19", + "confirmed": "11602", + "deaths": "471" + }, + { + "date": "2020-04-20", + "confirmed": "12919", + "deaths": "509" + }, + { + "date": "2020-04-21", + "confirmed": "13725", + "deaths": "557" + }, + { + "date": "2020-04-22", + "confirmed": "14117", + "deaths": "610" + }, + { + "date": "2020-04-23", + "confirmed": "14694", + "deaths": "656" + }, + { + "date": "2020-04-24", + "confirmed": "15169", + "deaths": "690" + }, + { + "date": "2020-04-25", + "confirmed": "15587", + "deaths": "711" + }, + { + "date": "2020-04-26", + "confirmed": "15963", + "deaths": "728" + }, + { + "date": "2020-04-27", + "confirmed": "16325", + "deaths": "753" + }, + { + "date": "2020-04-28", + "confirmed": "16769", + "deaths": "799" + }, + { + "date": "2020-04-29", + "confirmed": "17303", + "deaths": "937" + }, + { + "date": "2020-04-30", + "confirmed": "18027", + "deaths": "975" + }, + { + "date": "2020-05-01", + "confirmed": "18743", + "deaths": "1002" + }, + { + "date": "2020-05-02", + "confirmed": "19335", + "deaths": "1021" + } + ], + "Oklahoma": [ + { + "date": "2020-03-06", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-07", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-08", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-09", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "3", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "4", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "8", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "10", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "18", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "29", + "deaths": "0" + }, + { + "date": "2020-03-19", + "confirmed": "44", + "deaths": "1" + }, + { + "date": "2020-03-20", + "confirmed": "49", + "deaths": "1" + }, + { + "date": "2020-03-21", + "confirmed": "53", + "deaths": "1" + }, + { + "date": "2020-03-22", + "confirmed": "67", + "deaths": "2" + }, + { + "date": "2020-03-23", + "confirmed": "81", + "deaths": "2" + }, + { + "date": "2020-03-24", + "confirmed": "106", + "deaths": "3" + }, + { + "date": "2020-03-25", + "confirmed": "164", + "deaths": "5" + }, + { + "date": "2020-03-26", + "confirmed": "248", + "deaths": "7" + }, + { + "date": "2020-03-27", + "confirmed": "322", + "deaths": "8" + }, + { + "date": "2020-03-28", + "confirmed": "377", + "deaths": "15" + }, + { + "date": "2020-03-29", + "confirmed": "429", + "deaths": "16" + }, + { + "date": "2020-03-30", + "confirmed": "481", + "deaths": "17" + }, + { + "date": "2020-03-31", + "confirmed": "566", + "deaths": "23" + }, + { + "date": "2020-04-01", + "confirmed": "719", + "deaths": "30" + }, + { + "date": "2020-04-02", + "confirmed": "879", + "deaths": "34" + }, + { + "date": "2020-04-03", + "confirmed": "988", + "deaths": "38" + }, + { + "date": "2020-04-04", + "confirmed": "1159", + "deaths": "42" + }, + { + "date": "2020-04-05", + "confirmed": "1252", + "deaths": "46" + }, + { + "date": "2020-04-06", + "confirmed": "1327", + "deaths": "51" + }, + { + "date": "2020-04-07", + "confirmed": "1472", + "deaths": "67" + }, + { + "date": "2020-04-08", + "confirmed": "1524", + "deaths": "79" + }, + { + "date": "2020-04-09", + "confirmed": "1684", + "deaths": "80" + }, + { + "date": "2020-04-10", + "confirmed": "1794", + "deaths": "88" + }, + { + "date": "2020-04-11", + "confirmed": "1868", + "deaths": "93" + }, + { + "date": "2020-04-12", + "confirmed": "1970", + "deaths": "96" + }, + { + "date": "2020-04-13", + "confirmed": "2069", + "deaths": "98" + }, + { + "date": "2020-04-14", + "confirmed": "2184", + "deaths": "109" + }, + { + "date": "2020-04-15", + "confirmed": "2263", + "deaths": "123" + }, + { + "date": "2020-04-16", + "confirmed": "2357", + "deaths": "131" + }, + { + "date": "2020-04-17", + "confirmed": "2465", + "deaths": "136" + }, + { + "date": "2020-04-18", + "confirmed": "2570", + "deaths": "139" + }, + { + "date": "2020-04-19", + "confirmed": "2599", + "deaths": "140" + }, + { + "date": "2020-04-20", + "confirmed": "2680", + "deaths": "143" + }, + { + "date": "2020-04-21", + "confirmed": "2807", + "deaths": "164" + }, + { + "date": "2020-04-22", + "confirmed": "2894", + "deaths": "169" + }, + { + "date": "2020-04-23", + "confirmed": "3017", + "deaths": "179" + }, + { + "date": "2020-04-24", + "confirmed": "3121", + "deaths": "188" + }, + { + "date": "2020-04-25", + "confirmed": "3193", + "deaths": "194" + }, + { + "date": "2020-04-26", + "confirmed": "3253", + "deaths": "195" + }, + { + "date": "2020-04-27", + "confirmed": "3280", + "deaths": "197" + }, + { + "date": "2020-04-28", + "confirmed": "3410", + "deaths": "207" + }, + { + "date": "2020-04-29", + "confirmed": "3473", + "deaths": "214" + }, + { + "date": "2020-04-30", + "confirmed": "3618", + "deaths": "222" + }, + { + "date": "2020-05-01", + "confirmed": "3748", + "deaths": "230" + }, + { + "date": "2020-05-02", + "confirmed": "3851", + "deaths": "238" + } + ], + "Oregon": [ + { + "date": "2020-02-28", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-29", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-01", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-02", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-03", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-04", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-05", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-06", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-07", + "confirmed": "6", + "deaths": "0" + }, + { + "date": "2020-03-08", + "confirmed": "13", + "deaths": "0" + }, + { + "date": "2020-03-09", + "confirmed": "13", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "14", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "20", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "30", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "30", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "36", + "deaths": "1" + }, + { + "date": "2020-03-15", + "confirmed": "39", + "deaths": "1" + }, + { + "date": "2020-03-16", + "confirmed": "46", + "deaths": "1" + }, + { + "date": "2020-03-17", + "confirmed": "66", + "deaths": "2" + }, + { + "date": "2020-03-18", + "confirmed": "74", + "deaths": "3" + }, + { + "date": "2020-03-19", + "confirmed": "87", + "deaths": "3" + }, + { + "date": "2020-03-20", + "confirmed": "114", + "deaths": "3" + }, + { + "date": "2020-03-21", + "confirmed": "137", + "deaths": "4" + }, + { + "date": "2020-03-22", + "confirmed": "161", + "deaths": "5" + }, + { + "date": "2020-03-23", + "confirmed": "191", + "deaths": "5" + }, + { + "date": "2020-03-24", + "confirmed": "209", + "deaths": "8" + }, + { + "date": "2020-03-25", + "confirmed": "266", + "deaths": "10" + }, + { + "date": "2020-03-26", + "confirmed": "316", + "deaths": "11" + }, + { + "date": "2020-03-27", + "confirmed": "414", + "deaths": "12" + }, + { + "date": "2020-03-28", + "confirmed": "479", + "deaths": "13" + }, + { + "date": "2020-03-29", + "confirmed": "548", + "deaths": "13" + }, + { + "date": "2020-03-30", + "confirmed": "606", + "deaths": "16" + }, + { + "date": "2020-03-31", + "confirmed": "690", + "deaths": "18" + }, + { + "date": "2020-04-01", + "confirmed": "736", + "deaths": "19" + }, + { + "date": "2020-04-02", + "confirmed": "826", + "deaths": "21" + }, + { + "date": "2020-04-03", + "confirmed": "899", + "deaths": "22" + }, + { + "date": "2020-04-04", + "confirmed": "999", + "deaths": "26" + }, + { + "date": "2020-04-05", + "confirmed": "1068", + "deaths": "27" + }, + { + "date": "2020-04-06", + "confirmed": "1132", + "deaths": "29" + }, + { + "date": "2020-04-07", + "confirmed": "1181", + "deaths": "33" + }, + { + "date": "2020-04-08", + "confirmed": "1239", + "deaths": "38" + }, + { + "date": "2020-04-09", + "confirmed": "1321", + "deaths": "44" + }, + { + "date": "2020-04-10", + "confirmed": "1371", + "deaths": "48" + }, + { + "date": "2020-04-11", + "confirmed": "1447", + "deaths": "51" + }, + { + "date": "2020-04-12", + "confirmed": "1527", + "deaths": "52" + }, + { + "date": "2020-04-13", + "confirmed": "1584", + "deaths": "53" + }, + { + "date": "2020-04-14", + "confirmed": "1633", + "deaths": "55" + }, + { + "date": "2020-04-15", + "confirmed": "1663", + "deaths": "58" + }, + { + "date": "2020-04-16", + "confirmed": "1736", + "deaths": "64" + }, + { + "date": "2020-04-17", + "confirmed": "1785", + "deaths": "70" + }, + { + "date": "2020-04-18", + "confirmed": "1844", + "deaths": "72" + }, + { + "date": "2020-04-19", + "confirmed": "1910", + "deaths": "74" + }, + { + "date": "2020-04-20", + "confirmed": "1956", + "deaths": "75" + }, + { + "date": "2020-04-21", + "confirmed": "2002", + "deaths": "78" + }, + { + "date": "2020-04-22", + "confirmed": "2059", + "deaths": "78" + }, + { + "date": "2020-04-23", + "confirmed": "2127", + "deaths": "83" + }, + { + "date": "2020-04-24", + "confirmed": "2177", + "deaths": "86" + }, + { + "date": "2020-04-25", + "confirmed": "2253", + "deaths": "87" + }, + { + "date": "2020-04-26", + "confirmed": "2311", + "deaths": "91" + }, + { + "date": "2020-04-27", + "confirmed": "2354", + "deaths": "92" + }, + { + "date": "2020-04-28", + "confirmed": "2385", + "deaths": "99" + }, + { + "date": "2020-04-29", + "confirmed": "2446", + "deaths": "101" + }, + { + "date": "2020-04-30", + "confirmed": "2510", + "deaths": "103" + }, + { + "date": "2020-05-01", + "confirmed": "2579", + "deaths": "104" + }, + { + "date": "2020-05-02", + "confirmed": "2635", + "deaths": "109" + } + ], + "Pennsylvania": [ + { + "date": "2020-03-06", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-07", + "confirmed": "4", + "deaths": "0" + }, + { + "date": "2020-03-08", + "confirmed": "6", + "deaths": "0" + }, + { + "date": "2020-03-09", + "confirmed": "10", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "12", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "16", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "22", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "41", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "47", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "68", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "81", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "101", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "139", + "deaths": "1" + }, + { + "date": "2020-03-19", + "confirmed": "187", + "deaths": "1" + }, + { + "date": "2020-03-20", + "confirmed": "269", + "deaths": "1" + }, + { + "date": "2020-03-21", + "confirmed": "388", + "deaths": "2" + }, + { + "date": "2020-03-22", + "confirmed": "504", + "deaths": "3" + }, + { + "date": "2020-03-23", + "confirmed": "644", + "deaths": "6" + }, + { + "date": "2020-03-24", + "confirmed": "851", + "deaths": "7" + }, + { + "date": "2020-03-25", + "confirmed": "1151", + "deaths": "11" + }, + { + "date": "2020-03-26", + "confirmed": "1690", + "deaths": "16" + }, + { + "date": "2020-03-27", + "confirmed": "2218", + "deaths": "23" + }, + { + "date": "2020-03-28", + "confirmed": "2815", + "deaths": "35" + }, + { + "date": "2020-03-29", + "confirmed": "3441", + "deaths": "40" + }, + { + "date": "2020-03-30", + "confirmed": "4156", + "deaths": "48" + }, + { + "date": "2020-03-31", + "confirmed": "4997", + "deaths": "72" + }, + { + "date": "2020-04-01", + "confirmed": "5805", + "deaths": "74" + }, + { + "date": "2020-04-02", + "confirmed": "7016", + "deaths": "90" + }, + { + "date": "2020-04-03", + "confirmed": "8420", + "deaths": "102" + }, + { + "date": "2020-04-04", + "confirmed": "10109", + "deaths": "139" + }, + { + "date": "2020-04-05", + "confirmed": "11589", + "deaths": "159" + }, + { + "date": "2020-04-06", + "confirmed": "13074", + "deaths": "169" + }, + { + "date": "2020-04-07", + "confirmed": "14582", + "deaths": "240" + }, + { + "date": "2020-04-08", + "confirmed": "16414", + "deaths": "313" + }, + { + "date": "2020-04-09", + "confirmed": "18379", + "deaths": "344" + }, + { + "date": "2020-04-10", + "confirmed": "20128", + "deaths": "435" + }, + { + "date": "2020-04-11", + "confirmed": "21774", + "deaths": "515" + }, + { + "date": "2020-04-12", + "confirmed": "22955", + "deaths": "525" + }, + { + "date": "2020-04-13", + "confirmed": "24295", + "deaths": "563" + }, + { + "date": "2020-04-14", + "confirmed": "25591", + "deaths": "746" + }, + { + "date": "2020-04-15", + "confirmed": "26804", + "deaths": "833" + }, + { + "date": "2020-04-16", + "confirmed": "28314", + "deaths": "864" + }, + { + "date": "2020-04-17", + "confirmed": "30121", + "deaths": "1027" + }, + { + "date": "2020-04-18", + "confirmed": "31742", + "deaths": "1150" + }, + { + "date": "2020-04-19", + "confirmed": "32992", + "deaths": "1285" + }, + { + "date": "2020-04-20", + "confirmed": "34005", + "deaths": "1366" + }, + { + "date": "2020-04-21", + "confirmed": "35384", + "deaths": "1620" + }, + { + "date": "2020-04-22", + "confirmed": "36763", + "deaths": "1720" + }, + { + "date": "2020-04-23", + "confirmed": "38334", + "deaths": "1723" + }, + { + "date": "2020-04-24", + "confirmed": "40298", + "deaths": "1786" + }, + { + "date": "2020-04-25", + "confirmed": "41626", + "deaths": "1842" + }, + { + "date": "2020-04-26", + "confirmed": "42709", + "deaths": "1871" + }, + { + "date": "2020-04-27", + "confirmed": "43728", + "deaths": "1946" + }, + { + "date": "2020-04-28", + "confirmed": "45323", + "deaths": "2092" + }, + { + "date": "2020-04-29", + "confirmed": "46191", + "deaths": "2392" + }, + { + "date": "2020-04-30", + "confirmed": "48224", + "deaths": "2575" + }, + { + "date": "2020-05-01", + "confirmed": "49764", + "deaths": "2671" + }, + { + "date": "2020-05-02", + "confirmed": "51071", + "deaths": "2794" + } + ], + "Rhode Island": [ + { + "date": "2020-03-01", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-02", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-03", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-04", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-05", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-06", + "confirmed": "3", + "deaths": "0" + }, + { + "date": "2020-03-07", + "confirmed": "3", + "deaths": "0" + }, + { + "date": "2020-03-08", + "confirmed": "3", + "deaths": "0" + }, + { + "date": "2020-03-09", + "confirmed": "3", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "5", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "5", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "5", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "20", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "20", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "20", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "21", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "23", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "33", + "deaths": "0" + }, + { + "date": "2020-03-19", + "confirmed": "44", + "deaths": "0" + }, + { + "date": "2020-03-20", + "confirmed": "44", + "deaths": "0" + }, + { + "date": "2020-03-21", + "confirmed": "66", + "deaths": "0" + }, + { + "date": "2020-03-22", + "confirmed": "83", + "deaths": "0" + }, + { + "date": "2020-03-23", + "confirmed": "106", + "deaths": "0" + }, + { + "date": "2020-03-24", + "confirmed": "124", + "deaths": "0" + }, + { + "date": "2020-03-25", + "confirmed": "132", + "deaths": "0" + }, + { + "date": "2020-03-26", + "confirmed": "165", + "deaths": "0" + }, + { + "date": "2020-03-27", + "confirmed": "203", + "deaths": "0" + }, + { + "date": "2020-03-28", + "confirmed": "239", + "deaths": "2" + }, + { + "date": "2020-03-29", + "confirmed": "294", + "deaths": "3" + }, + { + "date": "2020-03-30", + "confirmed": "408", + "deaths": "4" + }, + { + "date": "2020-03-31", + "confirmed": "488", + "deaths": "8" + }, + { + "date": "2020-04-01", + "confirmed": "566", + "deaths": "10" + }, + { + "date": "2020-04-02", + "confirmed": "657", + "deaths": "12" + }, + { + "date": "2020-04-03", + "confirmed": "711", + "deaths": "14" + }, + { + "date": "2020-04-04", + "confirmed": "806", + "deaths": "17" + }, + { + "date": "2020-04-05", + "confirmed": "922", + "deaths": "25" + }, + { + "date": "2020-04-06", + "confirmed": "1082", + "deaths": "27" + }, + { + "date": "2020-04-07", + "confirmed": "1229", + "deaths": "30" + }, + { + "date": "2020-04-08", + "confirmed": "1450", + "deaths": "35" + }, + { + "date": "2020-04-09", + "confirmed": "1727", + "deaths": "43" + }, + { + "date": "2020-04-10", + "confirmed": "2015", + "deaths": "49" + }, + { + "date": "2020-04-11", + "confirmed": "2349", + "deaths": "56" + }, + { + "date": "2020-04-12", + "confirmed": "2665", + "deaths": "63" + }, + { + "date": "2020-04-13", + "confirmed": "2976", + "deaths": "73" + }, + { + "date": "2020-04-14", + "confirmed": "3251", + "deaths": "80" + }, + { + "date": "2020-04-15", + "confirmed": "3529", + "deaths": "87" + }, + { + "date": "2020-04-16", + "confirmed": "3838", + "deaths": "105" + }, + { + "date": "2020-04-17", + "confirmed": "4177", + "deaths": "118" + }, + { + "date": "2020-04-18", + "confirmed": "4491", + "deaths": "137" + }, + { + "date": "2020-04-19", + "confirmed": "4706", + "deaths": "150" + }, + { + "date": "2020-04-20", + "confirmed": "5090", + "deaths": "155" + }, + { + "date": "2020-04-21", + "confirmed": "5500", + "deaths": "171" + }, + { + "date": "2020-04-22", + "confirmed": "5841", + "deaths": "181" + }, + { + "date": "2020-04-23", + "confirmed": "6256", + "deaths": "189" + }, + { + "date": "2020-04-24", + "confirmed": "6699", + "deaths": "202" + }, + { + "date": "2020-04-25", + "confirmed": "7129", + "deaths": "215" + }, + { + "date": "2020-04-26", + "confirmed": "7439", + "deaths": "226" + }, + { + "date": "2020-04-27", + "confirmed": "7708", + "deaths": "233" + }, + { + "date": "2020-04-28", + "confirmed": "7926", + "deaths": "239" + }, + { + "date": "2020-04-29", + "confirmed": "8247", + "deaths": "251" + }, + { + "date": "2020-04-30", + "confirmed": "8621", + "deaths": "266" + }, + { + "date": "2020-05-01", + "confirmed": "8962", + "deaths": "279" + }, + { + "date": "2020-05-02", + "confirmed": "9289", + "deaths": "296" + } + ], + "South Carolina": [ + { + "date": "2020-03-06", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-07", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-08", + "confirmed": "6", + "deaths": "0" + }, + { + "date": "2020-03-09", + "confirmed": "7", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "9", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "10", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "12", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "13", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "19", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "28", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "33", + "deaths": "1" + }, + { + "date": "2020-03-17", + "confirmed": "47", + "deaths": "1" + }, + { + "date": "2020-03-18", + "confirmed": "60", + "deaths": "1" + }, + { + "date": "2020-03-19", + "confirmed": "81", + "deaths": "1" + }, + { + "date": "2020-03-20", + "confirmed": "126", + "deaths": "3" + }, + { + "date": "2020-03-21", + "confirmed": "172", + "deaths": "3" + }, + { + "date": "2020-03-22", + "confirmed": "194", + "deaths": "3" + }, + { + "date": "2020-03-23", + "confirmed": "299", + "deaths": "5" + }, + { + "date": "2020-03-24", + "confirmed": "342", + "deaths": "7" + }, + { + "date": "2020-03-25", + "confirmed": "424", + "deaths": "7" + }, + { + "date": "2020-03-26", + "confirmed": "456", + "deaths": "9" + }, + { + "date": "2020-03-27", + "confirmed": "539", + "deaths": "13" + }, + { + "date": "2020-03-28", + "confirmed": "660", + "deaths": "15" + }, + { + "date": "2020-03-29", + "confirmed": "774", + "deaths": "16" + }, + { + "date": "2020-03-30", + "confirmed": "925", + "deaths": "18" + }, + { + "date": "2020-03-31", + "confirmed": "1083", + "deaths": "22" + }, + { + "date": "2020-04-01", + "confirmed": "1293", + "deaths": "26" + }, + { + "date": "2020-04-02", + "confirmed": "1554", + "deaths": "31" + }, + { + "date": "2020-04-03", + "confirmed": "1700", + "deaths": "34" + }, + { + "date": "2020-04-04", + "confirmed": "1917", + "deaths": "40" + }, + { + "date": "2020-04-05", + "confirmed": "2049", + "deaths": "44" + }, + { + "date": "2020-04-06", + "confirmed": "2232", + "deaths": "48" + }, + { + "date": "2020-04-07", + "confirmed": "2417", + "deaths": "51" + }, + { + "date": "2020-04-08", + "confirmed": "2552", + "deaths": "63" + }, + { + "date": "2020-04-09", + "confirmed": "2792", + "deaths": "67" + }, + { + "date": "2020-04-10", + "confirmed": "3065", + "deaths": "72" + }, + { + "date": "2020-04-11", + "confirmed": "3207", + "deaths": "80" + }, + { + "date": "2020-04-12", + "confirmed": "3319", + "deaths": "82" + }, + { + "date": "2020-04-13", + "confirmed": "3439", + "deaths": "87" + }, + { + "date": "2020-04-14", + "confirmed": "3553", + "deaths": "97" + }, + { + "date": "2020-04-15", + "confirmed": "3656", + "deaths": "107" + }, + { + "date": "2020-04-16", + "confirmed": "3931", + "deaths": "109" + }, + { + "date": "2020-04-17", + "confirmed": "4086", + "deaths": "116" + }, + { + "date": "2020-04-18", + "confirmed": "4246", + "deaths": "119" + }, + { + "date": "2020-04-19", + "confirmed": "4377", + "deaths": "120" + }, + { + "date": "2020-04-20", + "confirmed": "4439", + "deaths": "124" + }, + { + "date": "2020-04-21", + "confirmed": "4608", + "deaths": "135" + }, + { + "date": "2020-04-22", + "confirmed": "4761", + "deaths": "140" + }, + { + "date": "2020-04-23", + "confirmed": "4917", + "deaths": "150" + }, + { + "date": "2020-04-24", + "confirmed": "5070", + "deaths": "157" + }, + { + "date": "2020-04-25", + "confirmed": "5253", + "deaths": "166" + }, + { + "date": "2020-04-26", + "confirmed": "5490", + "deaths": "174" + }, + { + "date": "2020-04-27", + "confirmed": "5613", + "deaths": "177" + }, + { + "date": "2020-04-28", + "confirmed": "5735", + "deaths": "192" + }, + { + "date": "2020-04-29", + "confirmed": "5881", + "deaths": "232" + }, + { + "date": "2020-04-30", + "confirmed": "6095", + "deaths": "244" + }, + { + "date": "2020-05-01", + "confirmed": "6258", + "deaths": "256" + }, + { + "date": "2020-05-02", + "confirmed": "6489", + "deaths": "267" + } + ], + "South Dakota": [ + { + "date": "2020-03-10", + "confirmed": "5", + "deaths": "1" + }, + { + "date": "2020-03-11", + "confirmed": "8", + "deaths": "1" + }, + { + "date": "2020-03-12", + "confirmed": "8", + "deaths": "1" + }, + { + "date": "2020-03-13", + "confirmed": "9", + "deaths": "1" + }, + { + "date": "2020-03-14", + "confirmed": "9", + "deaths": "1" + }, + { + "date": "2020-03-15", + "confirmed": "9", + "deaths": "1" + }, + { + "date": "2020-03-16", + "confirmed": "10", + "deaths": "1" + }, + { + "date": "2020-03-17", + "confirmed": "11", + "deaths": "1" + }, + { + "date": "2020-03-18", + "confirmed": "11", + "deaths": "1" + }, + { + "date": "2020-03-19", + "confirmed": "14", + "deaths": "1" + }, + { + "date": "2020-03-20", + "confirmed": "14", + "deaths": "1" + }, + { + "date": "2020-03-21", + "confirmed": "14", + "deaths": "1" + }, + { + "date": "2020-03-22", + "confirmed": "21", + "deaths": "1" + }, + { + "date": "2020-03-23", + "confirmed": "28", + "deaths": "1" + }, + { + "date": "2020-03-24", + "confirmed": "30", + "deaths": "1" + }, + { + "date": "2020-03-25", + "confirmed": "41", + "deaths": "1" + }, + { + "date": "2020-03-26", + "confirmed": "46", + "deaths": "1" + }, + { + "date": "2020-03-27", + "confirmed": "58", + "deaths": "1" + }, + { + "date": "2020-03-28", + "confirmed": "68", + "deaths": "1" + }, + { + "date": "2020-03-29", + "confirmed": "90", + "deaths": "1" + }, + { + "date": "2020-03-30", + "confirmed": "101", + "deaths": "1" + }, + { + "date": "2020-03-31", + "confirmed": "108", + "deaths": "1" + }, + { + "date": "2020-04-01", + "confirmed": "129", + "deaths": "2" + }, + { + "date": "2020-04-02", + "confirmed": "165", + "deaths": "2" + }, + { + "date": "2020-04-03", + "confirmed": "187", + "deaths": "2" + }, + { + "date": "2020-04-04", + "confirmed": "212", + "deaths": "2" + }, + { + "date": "2020-04-05", + "confirmed": "240", + "deaths": "2" + }, + { + "date": "2020-04-06", + "confirmed": "288", + "deaths": "4" + }, + { + "date": "2020-04-07", + "confirmed": "320", + "deaths": "6" + }, + { + "date": "2020-04-08", + "confirmed": "393", + "deaths": "6" + }, + { + "date": "2020-04-09", + "confirmed": "447", + "deaths": "6" + }, + { + "date": "2020-04-10", + "confirmed": "536", + "deaths": "6" + }, + { + "date": "2020-04-11", + "confirmed": "626", + "deaths": "6" + }, + { + "date": "2020-04-12", + "confirmed": "730", + "deaths": "6" + }, + { + "date": "2020-04-13", + "confirmed": "868", + "deaths": "6" + }, + { + "date": "2020-04-14", + "confirmed": "988", + "deaths": "6" + }, + { + "date": "2020-04-15", + "confirmed": "1168", + "deaths": "6" + }, + { + "date": "2020-04-16", + "confirmed": "1311", + "deaths": "7" + }, + { + "date": "2020-04-17", + "confirmed": "1411", + "deaths": "7" + }, + { + "date": "2020-04-18", + "confirmed": "1542", + "deaths": "7" + }, + { + "date": "2020-04-19", + "confirmed": "1635", + "deaths": "7" + }, + { + "date": "2020-04-20", + "confirmed": "1685", + "deaths": "7" + }, + { + "date": "2020-04-21", + "confirmed": "1755", + "deaths": "8" + }, + { + "date": "2020-04-22", + "confirmed": "1858", + "deaths": "9" + }, + { + "date": "2020-04-23", + "confirmed": "1956", + "deaths": "9" + }, + { + "date": "2020-04-24", + "confirmed": "2040", + "deaths": "10" + }, + { + "date": "2020-04-25", + "confirmed": "2147", + "deaths": "10" + }, + { + "date": "2020-04-26", + "confirmed": "2213", + "deaths": "11" + }, + { + "date": "2020-04-27", + "confirmed": "2246", + "deaths": "11" + }, + { + "date": "2020-04-28", + "confirmed": "2314", + "deaths": "11" + }, + { + "date": "2020-04-29", + "confirmed": "2375", + "deaths": "13" + }, + { + "date": "2020-04-30", + "confirmed": "2450", + "deaths": "17" + }, + { + "date": "2020-05-01", + "confirmed": "2526", + "deaths": "21" + }, + { + "date": "2020-05-02", + "confirmed": "2588", + "deaths": "21" + } + ], + "Tennessee": [ + { + "date": "2020-03-05", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-06", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-07", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-08", + "confirmed": "3", + "deaths": "0" + }, + { + "date": "2020-03-09", + "confirmed": "4", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "7", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "8", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "18", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "26", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "32", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "39", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "52", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "73", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "98", + "deaths": "0" + }, + { + "date": "2020-03-19", + "confirmed": "155", + "deaths": "0" + }, + { + "date": "2020-03-20", + "confirmed": "237", + "deaths": "0" + }, + { + "date": "2020-03-21", + "confirmed": "312", + "deaths": "2" + }, + { + "date": "2020-03-22", + "confirmed": "424", + "deaths": "2" + }, + { + "date": "2020-03-23", + "confirmed": "522", + "deaths": "2" + }, + { + "date": "2020-03-24", + "confirmed": "679", + "deaths": "2" + }, + { + "date": "2020-03-25", + "confirmed": "806", + "deaths": "3" + }, + { + "date": "2020-03-26", + "confirmed": "981", + "deaths": "3" + }, + { + "date": "2020-03-27", + "confirmed": "1180", + "deaths": "6" + }, + { + "date": "2020-03-28", + "confirmed": "1364", + "deaths": "6" + }, + { + "date": "2020-03-29", + "confirmed": "1570", + "deaths": "7" + }, + { + "date": "2020-03-30", + "confirmed": "1721", + "deaths": "13" + }, + { + "date": "2020-03-31", + "confirmed": "2049", + "deaths": "13" + }, + { + "date": "2020-04-01", + "confirmed": "2690", + "deaths": "23" + }, + { + "date": "2020-04-02", + "confirmed": "2869", + "deaths": "32" + }, + { + "date": "2020-04-03", + "confirmed": "3032", + "deaths": "36" + }, + { + "date": "2020-04-04", + "confirmed": "3265", + "deaths": "47" + }, + { + "date": "2020-04-05", + "confirmed": "3538", + "deaths": "50" + }, + { + "date": "2020-04-06", + "confirmed": "3753", + "deaths": "65" + }, + { + "date": "2020-04-07", + "confirmed": "4010", + "deaths": "72" + }, + { + "date": "2020-04-08", + "confirmed": "4246", + "deaths": "83" + }, + { + "date": "2020-04-09", + "confirmed": "4456", + "deaths": "95" + }, + { + "date": "2020-04-10", + "confirmed": "4793", + "deaths": "104" + }, + { + "date": "2020-04-11", + "confirmed": "4983", + "deaths": "107" + }, + { + "date": "2020-04-12", + "confirmed": "5144", + "deaths": "107" + }, + { + "date": "2020-04-13", + "confirmed": "5483", + "deaths": "114" + }, + { + "date": "2020-04-14", + "confirmed": "5654", + "deaths": "123" + }, + { + "date": "2020-04-15", + "confirmed": "5878", + "deaths": "137" + }, + { + "date": "2020-04-16", + "confirmed": "6090", + "deaths": "144" + }, + { + "date": "2020-04-17", + "confirmed": "6438", + "deaths": "150" + }, + { + "date": "2020-04-18", + "confirmed": "6637", + "deaths": "152" + }, + { + "date": "2020-04-19", + "confirmed": "6845", + "deaths": "156" + }, + { + "date": "2020-04-20", + "confirmed": "7015", + "deaths": "162" + }, + { + "date": "2020-04-21", + "confirmed": "7341", + "deaths": "167" + }, + { + "date": "2020-04-22", + "confirmed": "7704", + "deaths": "177" + }, + { + "date": "2020-04-23", + "confirmed": "8230", + "deaths": "180" + }, + { + "date": "2020-04-24", + "confirmed": "8679", + "deaths": "180" + }, + { + "date": "2020-04-25", + "confirmed": "8977", + "deaths": "187" + }, + { + "date": "2020-04-26", + "confirmed": "9493", + "deaths": "190" + }, + { + "date": "2020-04-27", + "confirmed": "9796", + "deaths": "192" + }, + { + "date": "2020-04-28", + "confirmed": "10031", + "deaths": "198" + }, + { + "date": "2020-04-29", + "confirmed": "10312", + "deaths": "204" + }, + { + "date": "2020-04-30", + "confirmed": "10562", + "deaths": "208" + }, + { + "date": "2020-05-01", + "confirmed": "11853", + "deaths": "214" + }, + { + "date": "2020-05-02", + "confirmed": "12445", + "deaths": "219" + } + ], + "Texas": [ + { + "date": "2020-02-12", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-13", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-14", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-15", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-16", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-17", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-18", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-19", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-20", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-02-21", + "confirmed": "4", + "deaths": "0" + }, + { + "date": "2020-02-22", + "confirmed": "4", + "deaths": "0" + }, + { + "date": "2020-02-23", + "confirmed": "4", + "deaths": "0" + }, + { + "date": "2020-02-24", + "confirmed": "10", + "deaths": "0" + }, + { + "date": "2020-02-25", + "confirmed": "10", + "deaths": "0" + }, + { + "date": "2020-02-26", + "confirmed": "10", + "deaths": "0" + }, + { + "date": "2020-02-27", + "confirmed": "10", + "deaths": "0" + }, + { + "date": "2020-02-28", + "confirmed": "11", + "deaths": "0" + }, + { + "date": "2020-02-29", + "confirmed": "11", + "deaths": "0" + }, + { + "date": "2020-03-01", + "confirmed": "11", + "deaths": "0" + }, + { + "date": "2020-03-02", + "confirmed": "11", + "deaths": "0" + }, + { + "date": "2020-03-03", + "confirmed": "11", + "deaths": "0" + }, + { + "date": "2020-03-04", + "confirmed": "12", + "deaths": "0" + }, + { + "date": "2020-03-05", + "confirmed": "16", + "deaths": "0" + }, + { + "date": "2020-03-06", + "confirmed": "19", + "deaths": "0" + }, + { + "date": "2020-03-07", + "confirmed": "19", + "deaths": "0" + }, + { + "date": "2020-03-08", + "confirmed": "23", + "deaths": "0" + }, + { + "date": "2020-03-09", + "confirmed": "24", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "31", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "33", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "41", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "58", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "69", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "80", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "87", + "deaths": "1" + }, + { + "date": "2020-03-17", + "confirmed": "106", + "deaths": "1" + }, + { + "date": "2020-03-18", + "confirmed": "166", + "deaths": "2" + }, + { + "date": "2020-03-19", + "confirmed": "248", + "deaths": "4" + }, + { + "date": "2020-03-20", + "confirmed": "377", + "deaths": "5" + }, + { + "date": "2020-03-21", + "confirmed": "547", + "deaths": "5" + }, + { + "date": "2020-03-22", + "confirmed": "632", + "deaths": "7" + }, + { + "date": "2020-03-23", + "confirmed": "728", + "deaths": "7" + }, + { + "date": "2020-03-24", + "confirmed": "857", + "deaths": "11" + }, + { + "date": "2020-03-25", + "confirmed": "1119", + "deaths": "12" + }, + { + "date": "2020-03-26", + "confirmed": "1543", + "deaths": "21" + }, + { + "date": "2020-03-27", + "confirmed": "1942", + "deaths": "23" + }, + { + "date": "2020-03-28", + "confirmed": "2161", + "deaths": "29" + }, + { + "date": "2020-03-29", + "confirmed": "2712", + "deaths": "35" + }, + { + "date": "2020-03-30", + "confirmed": "3043", + "deaths": "46" + }, + { + "date": "2020-03-31", + "confirmed": "3576", + "deaths": "57" + }, + { + "date": "2020-04-01", + "confirmed": "4261", + "deaths": "63" + }, + { + "date": "2020-04-02", + "confirmed": "4880", + "deaths": "79" + }, + { + "date": "2020-04-03", + "confirmed": "5669", + "deaths": "97" + }, + { + "date": "2020-04-04", + "confirmed": "6566", + "deaths": "124" + }, + { + "date": "2020-04-05", + "confirmed": "7091", + "deaths": "136" + }, + { + "date": "2020-04-06", + "confirmed": "8104", + "deaths": "159" + }, + { + "date": "2020-04-07", + "confirmed": "8968", + "deaths": "177" + }, + { + "date": "2020-04-08", + "confirmed": "9897", + "deaths": "195" + }, + { + "date": "2020-04-09", + "confirmed": "11372", + "deaths": "228" + }, + { + "date": "2020-04-10", + "confirmed": "12290", + "deaths": "246" + }, + { + "date": "2020-04-11", + "confirmed": "13208", + "deaths": "265" + }, + { + "date": "2020-04-12", + "confirmed": "13776", + "deaths": "288" + }, + { + "date": "2020-04-13", + "confirmed": "14487", + "deaths": "320" + }, + { + "date": "2020-04-14", + "confirmed": "15303", + "deaths": "365" + }, + { + "date": "2020-04-15", + "confirmed": "16106", + "deaths": "395" + }, + { + "date": "2020-04-16", + "confirmed": "16928", + "deaths": "428" + }, + { + "date": "2020-04-17", + "confirmed": "18131", + "deaths": "461" + }, + { + "date": "2020-04-18", + "confirmed": "18927", + "deaths": "487" + }, + { + "date": "2020-04-19", + "confirmed": "19441", + "deaths": "503" + }, + { + "date": "2020-04-20", + "confirmed": "20035", + "deaths": "523" + }, + { + "date": "2020-04-21", + "confirmed": "20949", + "deaths": "552" + }, + { + "date": "2020-04-22", + "confirmed": "21769", + "deaths": "571" + }, + { + "date": "2020-04-23", + "confirmed": "22706", + "deaths": "601" + }, + { + "date": "2020-04-24", + "confirmed": "23650", + "deaths": "625" + }, + { + "date": "2020-04-25", + "confirmed": "24494", + "deaths": "662" + }, + { + "date": "2020-04-26", + "confirmed": "25206", + "deaths": "676" + }, + { + "date": "2020-04-27", + "confirmed": "25960", + "deaths": "699" + }, + { + "date": "2020-04-28", + "confirmed": "26865", + "deaths": "738" + }, + { + "date": "2020-04-29", + "confirmed": "27836", + "deaths": "776" + }, + { + "date": "2020-04-30", + "confirmed": "29072", + "deaths": "828" + }, + { + "date": "2020-05-01", + "confirmed": "30339", + "deaths": "853" + }, + { + "date": "2020-05-02", + "confirmed": "31430", + "deaths": "875" + } + ], + "Utah": [ + { + "date": "2020-02-25", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-26", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-27", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-28", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-29", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-01", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-02", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-03", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-04", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-05", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-06", + "confirmed": "3", + "deaths": "0" + }, + { + "date": "2020-03-07", + "confirmed": "3", + "deaths": "0" + }, + { + "date": "2020-03-08", + "confirmed": "3", + "deaths": "0" + }, + { + "date": "2020-03-09", + "confirmed": "3", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "4", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "5", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "7", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "7", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "21", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "29", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "40", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "51", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "65", + "deaths": "0" + }, + { + "date": "2020-03-19", + "confirmed": "80", + "deaths": "0" + }, + { + "date": "2020-03-20", + "confirmed": "112", + "deaths": "0" + }, + { + "date": "2020-03-21", + "confirmed": "138", + "deaths": "0" + }, + { + "date": "2020-03-22", + "confirmed": "182", + "deaths": "1" + }, + { + "date": "2020-03-23", + "confirmed": "257", + "deaths": "1" + }, + { + "date": "2020-03-24", + "confirmed": "298", + "deaths": "1" + }, + { + "date": "2020-03-25", + "confirmed": "346", + "deaths": "1" + }, + { + "date": "2020-03-26", + "confirmed": "402", + "deaths": "1" + }, + { + "date": "2020-03-27", + "confirmed": "480", + "deaths": "2" + }, + { + "date": "2020-03-28", + "confirmed": "608", + "deaths": "2" + }, + { + "date": "2020-03-29", + "confirmed": "719", + "deaths": "2" + }, + { + "date": "2020-03-30", + "confirmed": "806", + "deaths": "4" + }, + { + "date": "2020-03-31", + "confirmed": "887", + "deaths": "5" + }, + { + "date": "2020-04-01", + "confirmed": "1012", + "deaths": "7" + }, + { + "date": "2020-04-02", + "confirmed": "1074", + "deaths": "7" + }, + { + "date": "2020-04-03", + "confirmed": "1260", + "deaths": "7" + }, + { + "date": "2020-04-04", + "confirmed": "1428", + "deaths": "8" + }, + { + "date": "2020-04-05", + "confirmed": "1605", + "deaths": "8" + }, + { + "date": "2020-04-06", + "confirmed": "1675", + "deaths": "13" + }, + { + "date": "2020-04-07", + "confirmed": "1752", + "deaths": "13" + }, + { + "date": "2020-04-08", + "confirmed": "1875", + "deaths": "13" + }, + { + "date": "2020-04-09", + "confirmed": "1980", + "deaths": "13" + }, + { + "date": "2020-04-10", + "confirmed": "2103", + "deaths": "17" + }, + { + "date": "2020-04-11", + "confirmed": "2206", + "deaths": "18" + }, + { + "date": "2020-04-12", + "confirmed": "2303", + "deaths": "18" + }, + { + "date": "2020-04-13", + "confirmed": "2363", + "deaths": "18" + }, + { + "date": "2020-04-14", + "confirmed": "2418", + "deaths": "19" + }, + { + "date": "2020-04-15", + "confirmed": "2549", + "deaths": "20" + }, + { + "date": "2020-04-16", + "confirmed": "2683", + "deaths": "21" + }, + { + "date": "2020-04-17", + "confirmed": "2813", + "deaths": "23" + }, + { + "date": "2020-04-18", + "confirmed": "2942", + "deaths": "25" + }, + { + "date": "2020-04-19", + "confirmed": "3071", + "deaths": "27" + }, + { + "date": "2020-04-20", + "confirmed": "3213", + "deaths": "28" + }, + { + "date": "2020-04-21", + "confirmed": "3301", + "deaths": "32" + }, + { + "date": "2020-04-22", + "confirmed": "3451", + "deaths": "34" + }, + { + "date": "2020-04-23", + "confirmed": "3621", + "deaths": "35" + }, + { + "date": "2020-04-24", + "confirmed": "3782", + "deaths": "39" + }, + { + "date": "2020-04-25", + "confirmed": "3950", + "deaths": "41" + }, + { + "date": "2020-04-26", + "confirmed": "4123", + "deaths": "41" + }, + { + "date": "2020-04-27", + "confirmed": "4236", + "deaths": "41" + }, + { + "date": "2020-04-28", + "confirmed": "4343", + "deaths": "45" + }, + { + "date": "2020-04-29", + "confirmed": "4499", + "deaths": "45" + }, + { + "date": "2020-04-30", + "confirmed": "4672", + "deaths": "46" + }, + { + "date": "2020-05-01", + "confirmed": "4829", + "deaths": "46" + }, + { + "date": "2020-05-02", + "confirmed": "4981", + "deaths": "49" + } + ], + "Vermont": [ + { + "date": "2020-03-07", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-08", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-09", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "5", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "8", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "12", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "14", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "19", + "deaths": "0" + }, + { + "date": "2020-03-19", + "confirmed": "22", + "deaths": "2" + }, + { + "date": "2020-03-20", + "confirmed": "29", + "deaths": "2" + }, + { + "date": "2020-03-21", + "confirmed": "49", + "deaths": "2" + }, + { + "date": "2020-03-22", + "confirmed": "52", + "deaths": "2" + }, + { + "date": "2020-03-23", + "confirmed": "75", + "deaths": "2" + }, + { + "date": "2020-03-24", + "confirmed": "95", + "deaths": "7" + }, + { + "date": "2020-03-25", + "confirmed": "123", + "deaths": "8" + }, + { + "date": "2020-03-26", + "confirmed": "158", + "deaths": "9" + }, + { + "date": "2020-03-27", + "confirmed": "184", + "deaths": "10" + }, + { + "date": "2020-03-28", + "confirmed": "211", + "deaths": "12" + }, + { + "date": "2020-03-29", + "confirmed": "235", + "deaths": "12" + }, + { + "date": "2020-03-30", + "confirmed": "256", + "deaths": "12" + }, + { + "date": "2020-03-31", + "confirmed": "293", + "deaths": "13" + }, + { + "date": "2020-04-01", + "confirmed": "321", + "deaths": "16" + }, + { + "date": "2020-04-02", + "confirmed": "338", + "deaths": "17" + }, + { + "date": "2020-04-03", + "confirmed": "389", + "deaths": "17" + }, + { + "date": "2020-04-04", + "confirmed": "461", + "deaths": "20" + }, + { + "date": "2020-04-05", + "confirmed": "512", + "deaths": "22" + }, + { + "date": "2020-04-06", + "confirmed": "543", + "deaths": "23" + }, + { + "date": "2020-04-07", + "confirmed": "575", + "deaths": "23" + }, + { + "date": "2020-04-08", + "confirmed": "605", + "deaths": "23" + }, + { + "date": "2020-04-09", + "confirmed": "628", + "deaths": "23" + }, + { + "date": "2020-04-10", + "confirmed": "679", + "deaths": "24" + }, + { + "date": "2020-04-11", + "confirmed": "711", + "deaths": "25" + }, + { + "date": "2020-04-12", + "confirmed": "727", + "deaths": "27" + }, + { + "date": "2020-04-13", + "confirmed": "748", + "deaths": "28" + }, + { + "date": "2020-04-14", + "confirmed": "752", + "deaths": "29" + }, + { + "date": "2020-04-15", + "confirmed": "759", + "deaths": "30" + }, + { + "date": "2020-04-16", + "confirmed": "768", + "deaths": "35" + }, + { + "date": "2020-04-17", + "confirmed": "779", + "deaths": "35" + }, + { + "date": "2020-04-18", + "confirmed": "803", + "deaths": "37" + }, + { + "date": "2020-04-19", + "confirmed": "812", + "deaths": "37" + }, + { + "date": "2020-04-20", + "confirmed": "816", + "deaths": "38" + }, + { + "date": "2020-04-21", + "confirmed": "818", + "deaths": "40" + }, + { + "date": "2020-04-22", + "confirmed": "823", + "deaths": "40" + }, + { + "date": "2020-04-23", + "confirmed": "825", + "deaths": "43" + }, + { + "date": "2020-04-24", + "confirmed": "827", + "deaths": "44" + }, + { + "date": "2020-04-25", + "confirmed": "843", + "deaths": "46" + }, + { + "date": "2020-04-26", + "confirmed": "851", + "deaths": "46" + }, + { + "date": "2020-04-27", + "confirmed": "855", + "deaths": "47" + }, + { + "date": "2020-04-28", + "confirmed": "862", + "deaths": "47" + }, + { + "date": "2020-04-29", + "confirmed": "862", + "deaths": "47" + }, + { + "date": "2020-04-30", + "confirmed": "866", + "deaths": "49" + }, + { + "date": "2020-05-01", + "confirmed": "879", + "deaths": "50" + }, + { + "date": "2020-05-02", + "confirmed": "886", + "deaths": "51" + } + ], + "Virginia": [ + { + "date": "2020-03-07", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-08", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-09", + "confirmed": "5", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "8", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "10", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "17", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "30", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "42", + "deaths": "1" + }, + { + "date": "2020-03-15", + "confirmed": "45", + "deaths": "1" + }, + { + "date": "2020-03-16", + "confirmed": "51", + "deaths": "1" + }, + { + "date": "2020-03-17", + "confirmed": "67", + "deaths": "2" + }, + { + "date": "2020-03-18", + "confirmed": "78", + "deaths": "2" + }, + { + "date": "2020-03-19", + "confirmed": "94", + "deaths": "2" + }, + { + "date": "2020-03-20", + "confirmed": "115", + "deaths": "2" + }, + { + "date": "2020-03-21", + "confirmed": "152", + "deaths": "3" + }, + { + "date": "2020-03-22", + "confirmed": "219", + "deaths": "6" + }, + { + "date": "2020-03-23", + "confirmed": "254", + "deaths": "6" + }, + { + "date": "2020-03-24", + "confirmed": "290", + "deaths": "7" + }, + { + "date": "2020-03-25", + "confirmed": "391", + "deaths": "9" + }, + { + "date": "2020-03-26", + "confirmed": "604", + "deaths": "14" + }, + { + "date": "2020-03-27", + "confirmed": "606", + "deaths": "14" + }, + { + "date": "2020-03-28", + "confirmed": "740", + "deaths": "17" + }, + { + "date": "2020-03-29", + "confirmed": "890", + "deaths": "22" + }, + { + "date": "2020-03-30", + "confirmed": "1021", + "deaths": "26" + }, + { + "date": "2020-03-31", + "confirmed": "1250", + "deaths": "27" + }, + { + "date": "2020-04-01", + "confirmed": "1511", + "deaths": "34" + }, + { + "date": "2020-04-02", + "confirmed": "1706", + "deaths": "41" + }, + { + "date": "2020-04-03", + "confirmed": "2012", + "deaths": "46" + }, + { + "date": "2020-04-04", + "confirmed": "2407", + "deaths": "52" + }, + { + "date": "2020-04-05", + "confirmed": "2637", + "deaths": "52" + }, + { + "date": "2020-04-06", + "confirmed": "2878", + "deaths": "54" + }, + { + "date": "2020-04-07", + "confirmed": "3333", + "deaths": "69" + }, + { + "date": "2020-04-08", + "confirmed": "3645", + "deaths": "75" + }, + { + "date": "2020-04-09", + "confirmed": "4042", + "deaths": "109" + }, + { + "date": "2020-04-10", + "confirmed": "4509", + "deaths": "121" + }, + { + "date": "2020-04-11", + "confirmed": "5077", + "deaths": "130" + }, + { + "date": "2020-04-12", + "confirmed": "5274", + "deaths": "141" + }, + { + "date": "2020-04-13", + "confirmed": "5747", + "deaths": "149" + }, + { + "date": "2020-04-14", + "confirmed": "6171", + "deaths": "154" + }, + { + "date": "2020-04-15", + "confirmed": "6500", + "deaths": "195" + }, + { + "date": "2020-04-16", + "confirmed": "6889", + "deaths": "208" + }, + { + "date": "2020-04-17", + "confirmed": "7491", + "deaths": "238" + }, + { + "date": "2020-04-18", + "confirmed": "8053", + "deaths": "258" + }, + { + "date": "2020-04-19", + "confirmed": "8537", + "deaths": "277" + }, + { + "date": "2020-04-20", + "confirmed": "8990", + "deaths": "300" + }, + { + "date": "2020-04-21", + "confirmed": "9630", + "deaths": "325" + }, + { + "date": "2020-04-22", + "confirmed": "10266", + "deaths": "349" + }, + { + "date": "2020-04-23", + "confirmed": "11000", + "deaths": "375" + }, + { + "date": "2020-04-24", + "confirmed": "11596", + "deaths": "413" + }, + { + "date": "2020-04-25", + "confirmed": "12366", + "deaths": "436" + }, + { + "date": "2020-04-26", + "confirmed": "12970", + "deaths": "448" + }, + { + "date": "2020-04-27", + "confirmed": "13535", + "deaths": "458" + }, + { + "date": "2020-04-28", + "confirmed": "14339", + "deaths": "492" + }, + { + "date": "2020-04-29", + "confirmed": "14961", + "deaths": "522" + }, + { + "date": "2020-04-30", + "confirmed": "15846", + "deaths": "552" + }, + { + "date": "2020-05-01", + "confirmed": "16901", + "deaths": "581" + }, + { + "date": "2020-05-02", + "confirmed": "17731", + "deaths": "616" + } + ], + "Washington": [ + { + "date": "2020-01-21", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-01-22", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-01-23", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-01-24", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-01-25", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-01-26", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-01-27", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-01-28", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-01-29", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-01-30", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-01-31", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-01", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-02", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-03", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-04", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-05", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-06", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-07", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-08", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-09", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-10", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-11", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-12", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-13", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-14", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-15", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-16", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-17", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-18", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-19", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-20", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-21", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-22", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-23", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-24", + "confirmed": "5", + "deaths": "0" + }, + { + "date": "2020-02-25", + "confirmed": "5", + "deaths": "0" + }, + { + "date": "2020-02-26", + "confirmed": "5", + "deaths": "0" + }, + { + "date": "2020-02-27", + "confirmed": "5", + "deaths": "0" + }, + { + "date": "2020-02-28", + "confirmed": "7", + "deaths": "0" + }, + { + "date": "2020-02-29", + "confirmed": "10", + "deaths": "1" + }, + { + "date": "2020-03-01", + "confirmed": "17", + "deaths": "3" + }, + { + "date": "2020-03-02", + "confirmed": "23", + "deaths": "6" + }, + { + "date": "2020-03-03", + "confirmed": "32", + "deaths": "10" + }, + { + "date": "2020-03-04", + "confirmed": "47", + "deaths": "11" + }, + { + "date": "2020-03-05", + "confirmed": "75", + "deaths": "11" + }, + { + "date": "2020-03-06", + "confirmed": "86", + "deaths": "12" + }, + { + "date": "2020-03-07", + "confirmed": "110", + "deaths": "16" + }, + { + "date": "2020-03-08", + "confirmed": "141", + "deaths": "19" + }, + { + "date": "2020-03-09", + "confirmed": "179", + "deaths": "22" + }, + { + "date": "2020-03-10", + "confirmed": "279", + "deaths": "24" + }, + { + "date": "2020-03-11", + "confirmed": "338", + "deaths": "29" + }, + { + "date": "2020-03-12", + "confirmed": "419", + "deaths": "32" + }, + { + "date": "2020-03-13", + "confirmed": "511", + "deaths": "37" + }, + { + "date": "2020-03-14", + "confirmed": "609", + "deaths": "40" + }, + { + "date": "2020-03-15", + "confirmed": "675", + "deaths": "42" + }, + { + "date": "2020-03-16", + "confirmed": "794", + "deaths": "48" + }, + { + "date": "2020-03-17", + "confirmed": "908", + "deaths": "54" + }, + { + "date": "2020-03-18", + "confirmed": "1026", + "deaths": "68" + }, + { + "date": "2020-03-19", + "confirmed": "1228", + "deaths": "75" + }, + { + "date": "2020-03-20", + "confirmed": "1404", + "deaths": "83" + }, + { + "date": "2020-03-21", + "confirmed": "1655", + "deaths": "95" + }, + { + "date": "2020-03-22", + "confirmed": "1844", + "deaths": "97" + }, + { + "date": "2020-03-23", + "confirmed": "2101", + "deaths": "110" + }, + { + "date": "2020-03-24", + "confirmed": "2469", + "deaths": "123" + }, + { + "date": "2020-03-25", + "confirmed": "2585", + "deaths": "130" + }, + { + "date": "2020-03-26", + "confirmed": "3208", + "deaths": "151" + }, + { + "date": "2020-03-27", + "confirmed": "3770", + "deaths": "177" + }, + { + "date": "2020-03-28", + "confirmed": "4311", + "deaths": "191" + }, + { + "date": "2020-03-29", + "confirmed": "4896", + "deaths": "207" + }, + { + "date": "2020-03-30", + "confirmed": "5179", + "deaths": "221" + }, + { + "date": "2020-03-31", + "confirmed": "5292", + "deaths": "226" + }, + { + "date": "2020-04-01", + "confirmed": "5588", + "deaths": "249" + }, + { + "date": "2020-04-02", + "confirmed": "6585", + "deaths": "272" + }, + { + "date": "2020-04-03", + "confirmed": "6966", + "deaths": "293" + }, + { + "date": "2020-04-04", + "confirmed": "7498", + "deaths": "318" + }, + { + "date": "2020-04-05", + "confirmed": "7984", + "deaths": "344" + }, + { + "date": "2020-04-06", + "confirmed": "8384", + "deaths": "383" + }, + { + "date": "2020-04-07", + "confirmed": "8682", + "deaths": "409" + }, + { + "date": "2020-04-08", + "confirmed": "9097", + "deaths": "430" + }, + { + "date": "2020-04-09", + "confirmed": "9608", + "deaths": "456" + }, + { + "date": "2020-04-10", + "confirmed": "9887", + "deaths": "483" + }, + { + "date": "2020-04-11", + "confirmed": "10224", + "deaths": "498" + }, + { + "date": "2020-04-12", + "confirmed": "10411", + "deaths": "511" + }, + { + "date": "2020-04-13", + "confirmed": "10538", + "deaths": "525" + }, + { + "date": "2020-04-14", + "confirmed": "10694", + "deaths": "552" + }, + { + "date": "2020-04-15", + "confirmed": "10783", + "deaths": "572" + }, + { + "date": "2020-04-16", + "confirmed": "11152", + "deaths": "588" + }, + { + "date": "2020-04-17", + "confirmed": "11445", + "deaths": "610" + }, + { + "date": "2020-04-18", + "confirmed": "11802", + "deaths": "629" + }, + { + "date": "2020-04-19", + "confirmed": "11805", + "deaths": "637" + }, + { + "date": "2020-04-20", + "confirmed": "12191", + "deaths": "661" + }, + { + "date": "2020-04-21", + "confirmed": "12345", + "deaths": "683" + }, + { + "date": "2020-04-22", + "confirmed": "12539", + "deaths": "696" + }, + { + "date": "2020-04-23", + "confirmed": "12906", + "deaths": "717" + }, + { + "date": "2020-04-24", + "confirmed": "13120", + "deaths": "731" + }, + { + "date": "2020-04-25", + "confirmed": "13484", + "deaths": "743" + }, + { + "date": "2020-04-26", + "confirmed": "13663", + "deaths": "757" + }, + { + "date": "2020-04-27", + "confirmed": "13864", + "deaths": "771" + }, + { + "date": "2020-04-28", + "confirmed": "14059", + "deaths": "792" + }, + { + "date": "2020-04-29", + "confirmed": "14378", + "deaths": "805" + }, + { + "date": "2020-04-30", + "confirmed": "14696", + "deaths": "822" + }, + { + "date": "2020-05-01", + "confirmed": "15010", + "deaths": "829" + }, + { + "date": "2020-05-02", + "confirmed": "15253", + "deaths": "833" + } + ], + "West Virginia": [ + { + "date": "2020-03-17", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-19", + "confirmed": "5", + "deaths": "0" + }, + { + "date": "2020-03-20", + "confirmed": "8", + "deaths": "0" + }, + { + "date": "2020-03-21", + "confirmed": "12", + "deaths": "0" + }, + { + "date": "2020-03-22", + "confirmed": "16", + "deaths": "0" + }, + { + "date": "2020-03-23", + "confirmed": "16", + "deaths": "0" + }, + { + "date": "2020-03-24", + "confirmed": "39", + "deaths": "0" + }, + { + "date": "2020-03-25", + "confirmed": "51", + "deaths": "0" + }, + { + "date": "2020-03-26", + "confirmed": "76", + "deaths": "0" + }, + { + "date": "2020-03-27", + "confirmed": "96", + "deaths": "0" + }, + { + "date": "2020-03-28", + "confirmed": "113", + "deaths": "0" + }, + { + "date": "2020-03-29", + "confirmed": "124", + "deaths": "1" + }, + { + "date": "2020-03-30", + "confirmed": "145", + "deaths": "1" + }, + { + "date": "2020-03-31", + "confirmed": "162", + "deaths": "1" + }, + { + "date": "2020-04-01", + "confirmed": "191", + "deaths": "2" + }, + { + "date": "2020-04-02", + "confirmed": "217", + "deaths": "2" + }, + { + "date": "2020-04-03", + "confirmed": "242", + "deaths": "2" + }, + { + "date": "2020-04-04", + "confirmed": "282", + "deaths": "2" + }, + { + "date": "2020-04-05", + "confirmed": "324", + "deaths": "3" + }, + { + "date": "2020-04-06", + "confirmed": "345", + "deaths": "4" + }, + { + "date": "2020-04-07", + "confirmed": "412", + "deaths": "4" + }, + { + "date": "2020-04-08", + "confirmed": "483", + "deaths": "4" + }, + { + "date": "2020-04-09", + "confirmed": "524", + "deaths": "5" + }, + { + "date": "2020-04-10", + "confirmed": "537", + "deaths": "5" + }, + { + "date": "2020-04-11", + "confirmed": "593", + "deaths": "6" + }, + { + "date": "2020-04-12", + "confirmed": "615", + "deaths": "8" + }, + { + "date": "2020-04-13", + "confirmed": "638", + "deaths": "9" + }, + { + "date": "2020-04-14", + "confirmed": "697", + "deaths": "10" + }, + { + "date": "2020-04-15", + "confirmed": "725", + "deaths": "12" + }, + { + "date": "2020-04-16", + "confirmed": "739", + "deaths": "13" + }, + { + "date": "2020-04-17", + "confirmed": "776", + "deaths": "16" + }, + { + "date": "2020-04-18", + "confirmed": "825", + "deaths": "18" + }, + { + "date": "2020-04-19", + "confirmed": "890", + "deaths": "20" + }, + { + "date": "2020-04-20", + "confirmed": "908", + "deaths": "26" + }, + { + "date": "2020-04-21", + "confirmed": "929", + "deaths": "26" + }, + { + "date": "2020-04-22", + "confirmed": "939", + "deaths": "29" + }, + { + "date": "2020-04-23", + "confirmed": "981", + "deaths": "31" + }, + { + "date": "2020-04-24", + "confirmed": "1010", + "deaths": "32" + }, + { + "date": "2020-04-25", + "confirmed": "1025", + "deaths": "33" + }, + { + "date": "2020-04-26", + "confirmed": "1053", + "deaths": "34" + }, + { + "date": "2020-04-27", + "confirmed": "1077", + "deaths": "37" + }, + { + "date": "2020-04-28", + "confirmed": "1095", + "deaths": "38" + }, + { + "date": "2020-04-29", + "confirmed": "1109", + "deaths": "40" + }, + { + "date": "2020-04-30", + "confirmed": "1125", + "deaths": "44" + }, + { + "date": "2020-05-01", + "confirmed": "1151", + "deaths": "47" + }, + { + "date": "2020-05-02", + "confirmed": "1184", + "deaths": "50" + } + ], + "Wisconsin": [ + { + "date": "2020-02-05", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-06", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-07", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-08", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-09", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-10", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-11", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-12", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-13", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-14", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-15", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-16", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-17", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-18", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-19", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-20", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-21", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-22", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-23", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-24", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-25", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-26", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-27", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-28", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-02-29", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-01", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-02", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-03", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-04", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-05", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-06", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-07", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-08", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-09", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-10", + "confirmed": "3", + "deaths": "0" + }, + { + "date": "2020-03-11", + "confirmed": "6", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "8", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "19", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "27", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "33", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "47", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "72", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "106", + "deaths": "0" + }, + { + "date": "2020-03-19", + "confirmed": "155", + "deaths": "2" + }, + { + "date": "2020-03-20", + "confirmed": "216", + "deaths": "3" + }, + { + "date": "2020-03-21", + "confirmed": "281", + "deaths": "4" + }, + { + "date": "2020-03-22", + "confirmed": "382", + "deaths": "4" + }, + { + "date": "2020-03-23", + "confirmed": "418", + "deaths": "5" + }, + { + "date": "2020-03-24", + "confirmed": "481", + "deaths": "5" + }, + { + "date": "2020-03-25", + "confirmed": "623", + "deaths": "7" + }, + { + "date": "2020-03-26", + "confirmed": "754", + "deaths": "10" + }, + { + "date": "2020-03-27", + "confirmed": "930", + "deaths": "16" + }, + { + "date": "2020-03-28", + "confirmed": "1042", + "deaths": "17" + }, + { + "date": "2020-03-29", + "confirmed": "1120", + "deaths": "17" + }, + { + "date": "2020-03-30", + "confirmed": "1267", + "deaths": "20" + }, + { + "date": "2020-03-31", + "confirmed": "1351", + "deaths": "25" + }, + { + "date": "2020-04-01", + "confirmed": "1550", + "deaths": "33" + }, + { + "date": "2020-04-02", + "confirmed": "1730", + "deaths": "37" + }, + { + "date": "2020-04-03", + "confirmed": "1916", + "deaths": "49" + }, + { + "date": "2020-04-04", + "confirmed": "2112", + "deaths": "60" + }, + { + "date": "2020-04-05", + "confirmed": "2267", + "deaths": "73" + }, + { + "date": "2020-04-06", + "confirmed": "2440", + "deaths": "83" + }, + { + "date": "2020-04-07", + "confirmed": "2578", + "deaths": "94" + }, + { + "date": "2020-04-08", + "confirmed": "2756", + "deaths": "107" + }, + { + "date": "2020-04-09", + "confirmed": "2885", + "deaths": "116" + }, + { + "date": "2020-04-10", + "confirmed": "3068", + "deaths": "131" + }, + { + "date": "2020-04-11", + "confirmed": "3213", + "deaths": "141" + }, + { + "date": "2020-04-12", + "confirmed": "3341", + "deaths": "145" + }, + { + "date": "2020-04-13", + "confirmed": "3428", + "deaths": "155" + }, + { + "date": "2020-04-14", + "confirmed": "3555", + "deaths": "172" + }, + { + "date": "2020-04-15", + "confirmed": "3721", + "deaths": "184" + }, + { + "date": "2020-04-16", + "confirmed": "3875", + "deaths": "197" + }, + { + "date": "2020-04-17", + "confirmed": "4045", + "deaths": "205" + }, + { + "date": "2020-04-18", + "confirmed": "4199", + "deaths": "212" + }, + { + "date": "2020-04-19", + "confirmed": "4346", + "deaths": "222" + }, + { + "date": "2020-04-20", + "confirmed": "4499", + "deaths": "231" + }, + { + "date": "2020-04-21", + "confirmed": "4620", + "deaths": "243" + }, + { + "date": "2020-04-22", + "confirmed": "4845", + "deaths": "247" + }, + { + "date": "2020-04-23", + "confirmed": "5052", + "deaths": "257" + }, + { + "date": "2020-04-24", + "confirmed": "5356", + "deaths": "262" + }, + { + "date": "2020-04-25", + "confirmed": "5687", + "deaths": "266" + }, + { + "date": "2020-04-26", + "confirmed": "5911", + "deaths": "274" + }, + { + "date": "2020-04-27", + "confirmed": "6081", + "deaths": "281" + }, + { + "date": "2020-04-28", + "confirmed": "6289", + "deaths": "300" + }, + { + "date": "2020-04-29", + "confirmed": "6520", + "deaths": "308" + }, + { + "date": "2020-04-30", + "confirmed": "6854", + "deaths": "316" + }, + { + "date": "2020-05-01", + "confirmed": "7314", + "deaths": "327" + }, + { + "date": "2020-05-02", + "confirmed": "7660", + "deaths": "334" + } + ], + "Wyoming": [ + { + "date": "2020-03-11", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-12", + "confirmed": "1", + "deaths": "0" + }, + { + "date": "2020-03-13", + "confirmed": "2", + "deaths": "0" + }, + { + "date": "2020-03-14", + "confirmed": "3", + "deaths": "0" + }, + { + "date": "2020-03-15", + "confirmed": "3", + "deaths": "0" + }, + { + "date": "2020-03-16", + "confirmed": "10", + "deaths": "0" + }, + { + "date": "2020-03-17", + "confirmed": "15", + "deaths": "0" + }, + { + "date": "2020-03-18", + "confirmed": "17", + "deaths": "0" + }, + { + "date": "2020-03-19", + "confirmed": "18", + "deaths": "0" + }, + { + "date": "2020-03-20", + "confirmed": "22", + "deaths": "0" + }, + { + "date": "2020-03-21", + "confirmed": "24", + "deaths": "0" + }, + { + "date": "2020-03-22", + "confirmed": "26", + "deaths": "0" + }, + { + "date": "2020-03-23", + "confirmed": "28", + "deaths": "0" + }, + { + "date": "2020-03-24", + "confirmed": "37", + "deaths": "0" + }, + { + "date": "2020-03-25", + "confirmed": "49", + "deaths": "0" + }, + { + "date": "2020-03-26", + "confirmed": "56", + "deaths": "0" + }, + { + "date": "2020-03-27", + "confirmed": "73", + "deaths": "0" + }, + { + "date": "2020-03-28", + "confirmed": "84", + "deaths": "0" + }, + { + "date": "2020-03-29", + "confirmed": "87", + "deaths": "0" + }, + { + "date": "2020-03-30", + "confirmed": "95", + "deaths": "0" + }, + { + "date": "2020-03-31", + "confirmed": "120", + "deaths": "0" + }, + { + "date": "2020-04-01", + "confirmed": "137", + "deaths": "0" + }, + { + "date": "2020-04-02", + "confirmed": "153", + "deaths": "0" + }, + { + "date": "2020-04-03", + "confirmed": "166", + "deaths": "0" + }, + { + "date": "2020-04-04", + "confirmed": "187", + "deaths": "0" + }, + { + "date": "2020-04-05", + "confirmed": "200", + "deaths": "0" + }, + { + "date": "2020-04-06", + "confirmed": "212", + "deaths": "0" + }, + { + "date": "2020-04-07", + "confirmed": "221", + "deaths": "0" + }, + { + "date": "2020-04-08", + "confirmed": "230", + "deaths": "0" + }, + { + "date": "2020-04-09", + "confirmed": "239", + "deaths": "0" + }, + { + "date": "2020-04-10", + "confirmed": "253", + "deaths": "0" + }, + { + "date": "2020-04-11", + "confirmed": "261", + "deaths": "0" + }, + { + "date": "2020-04-12", + "confirmed": "270", + "deaths": "0" + }, + { + "date": "2020-04-13", + "confirmed": "275", + "deaths": "1" + }, + { + "date": "2020-04-14", + "confirmed": "282", + "deaths": "1" + }, + { + "date": "2020-04-15", + "confirmed": "288", + "deaths": "2" + }, + { + "date": "2020-04-16", + "confirmed": "296", + "deaths": "2" + }, + { + "date": "2020-04-17", + "confirmed": "305", + "deaths": "2" + }, + { + "date": "2020-04-18", + "confirmed": "309", + "deaths": "2" + }, + { + "date": "2020-04-19", + "confirmed": "313", + "deaths": "2" + }, + { + "date": "2020-04-20", + "confirmed": "317", + "deaths": "2" + }, + { + "date": "2020-04-21", + "confirmed": "322", + "deaths": "6" + }, + { + "date": "2020-04-22", + "confirmed": "326", + "deaths": "6" + }, + { + "date": "2020-04-23", + "confirmed": "332", + "deaths": "7" + }, + { + "date": "2020-04-24", + "confirmed": "349", + "deaths": "7" + }, + { + "date": "2020-04-25", + "confirmed": "362", + "deaths": "7" + }, + { + "date": "2020-04-26", + "confirmed": "371", + "deaths": "7" + }, + { + "date": "2020-04-27", + "confirmed": "389", + "deaths": "7" + }, + { + "date": "2020-04-28", + "confirmed": "396", + "deaths": "7" + }, + { + "date": "2020-04-29", + "confirmed": "404", + "deaths": "7" + }, + { + "date": "2020-04-30", + "confirmed": "415", + "deaths": "7" + }, + { + "date": "2020-05-01", + "confirmed": "420", + "deaths": "7" + }, + { + "date": "2020-05-02", + "confirmed": "429", + "deaths": "7" + } + ] +} \ No newline at end of file diff --git a/ExampleUI/tsconfig.app.json b/tsconfig.app.json similarity index 100% rename from ExampleUI/tsconfig.app.json rename to tsconfig.app.json diff --git a/ExampleUI/tsconfig.json b/tsconfig.json similarity index 100% rename from ExampleUI/tsconfig.json rename to tsconfig.json diff --git a/ExampleUI/tsconfig.spec.json b/tsconfig.spec.json similarity index 100% rename from ExampleUI/tsconfig.spec.json rename to tsconfig.spec.json diff --git a/ExampleUI/tslint.json b/tslint.json similarity index 100% rename from ExampleUI/tslint.json rename to tslint.json