From 86804c01943e5b978199c09b773c11a5d7a61689 Mon Sep 17 00:00:00 2001 From: jamspoon Date: Wed, 16 Nov 2022 20:43:03 -0600 Subject: [PATCH] first commit --- .gitignore | 28 + .vscode/extensions.json | 3 + README.md | 40 + env.d.ts | 1 + index.html | 13 + package-lock.json | 6029 +++++++++++++++++++++++++ package.json | 28 + public/assets/icon_ailment.png | Bin 0 -> 5960 bytes public/assets/icon_almighty.png | Bin 0 -> 5358 bytes public/assets/icon_bless.png | Bin 0 -> 9177 bytes public/assets/icon_curse.png | Bin 0 -> 8890 bytes public/assets/icon_elec.png | Bin 0 -> 8354 bytes public/assets/icon_fire.png | Bin 0 -> 8334 bytes public/assets/icon_gun.png | Bin 0 -> 9246 bytes public/assets/icon_healing.png | Bin 0 -> 5508 bytes public/assets/icon_ice.png | Bin 0 -> 8304 bytes public/assets/icon_nuke.png | Bin 0 -> 8577 bytes public/assets/icon_passive.png | Bin 0 -> 8257 bytes public/assets/icon_phys.png | Bin 0 -> 8665 bytes public/assets/icon_psy.png | Bin 0 -> 10146 bytes public/assets/icon_support.png | Bin 0 -> 6066 bytes public/assets/icon_trait.png | Bin 0 -> 2580 bytes public/assets/icon_wind.png | Bin 0 -> 8066 bytes public/favicon.ico | Bin 0 -> 4286 bytes src/Entry.vue | 5 + src/assets/icon_ailment.png | Bin 0 -> 5960 bytes src/assets/icon_almighty.png | Bin 0 -> 5358 bytes src/assets/icon_bless.png | Bin 0 -> 9177 bytes src/assets/icon_curse.png | Bin 0 -> 8890 bytes src/assets/icon_elec.png | Bin 0 -> 8354 bytes src/assets/icon_fire.png | Bin 0 -> 8334 bytes src/assets/icon_gun.png | Bin 0 -> 9246 bytes src/assets/icon_healing.png | Bin 0 -> 5508 bytes src/assets/icon_ice.png | Bin 0 -> 8304 bytes src/assets/icon_nuke.png | Bin 0 -> 8577 bytes src/assets/icon_passive.png | Bin 0 -> 8257 bytes src/assets/icon_phys.png | Bin 0 -> 8665 bytes src/assets/icon_psy.png | Bin 0 -> 10146 bytes src/assets/icon_support.png | Bin 0 -> 6066 bytes src/assets/icon_trait.png | Bin 0 -> 2580 bytes src/assets/icon_wind.png | Bin 0 -> 8066 bytes src/assets/main.css | 132 + src/components/DlcFilterComponent.vue | 111 + src/data/combos.ts | 383 ++ src/data/fusion.ts | 301 ++ src/data/personas.ts | 4316 ++++++++++++++++++ src/data/skills.ts | 2546 +++++++++++ src/data/types.ts | 88 + src/helpers.ts | 13 + src/main.ts | 7 + src/router/index.ts | 32 + src/shims-vue.d.ts | 5 + src/views/FusionPage.vue | 281 ++ src/views/MainPage.vue | 154 + src/views/PersonaPage.vue | 162 + tsconfig.config.json | 8 + tsconfig.json | 17 + vite.config.ts | 14 + 58 files changed, 14717 insertions(+) create mode 100644 .gitignore create mode 100644 .vscode/extensions.json create mode 100644 README.md create mode 100644 env.d.ts create mode 100644 index.html create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/assets/icon_ailment.png create mode 100644 public/assets/icon_almighty.png create mode 100644 public/assets/icon_bless.png create mode 100644 public/assets/icon_curse.png create mode 100644 public/assets/icon_elec.png create mode 100644 public/assets/icon_fire.png create mode 100644 public/assets/icon_gun.png create mode 100644 public/assets/icon_healing.png create mode 100644 public/assets/icon_ice.png create mode 100644 public/assets/icon_nuke.png create mode 100644 public/assets/icon_passive.png create mode 100644 public/assets/icon_phys.png create mode 100644 public/assets/icon_psy.png create mode 100644 public/assets/icon_support.png create mode 100644 public/assets/icon_trait.png create mode 100644 public/assets/icon_wind.png create mode 100644 public/favicon.ico create mode 100644 src/Entry.vue create mode 100644 src/assets/icon_ailment.png create mode 100644 src/assets/icon_almighty.png create mode 100644 src/assets/icon_bless.png create mode 100644 src/assets/icon_curse.png create mode 100644 src/assets/icon_elec.png create mode 100644 src/assets/icon_fire.png create mode 100644 src/assets/icon_gun.png create mode 100644 src/assets/icon_healing.png create mode 100644 src/assets/icon_ice.png create mode 100644 src/assets/icon_nuke.png create mode 100644 src/assets/icon_passive.png create mode 100644 src/assets/icon_phys.png create mode 100644 src/assets/icon_psy.png create mode 100644 src/assets/icon_support.png create mode 100644 src/assets/icon_trait.png create mode 100644 src/assets/icon_wind.png create mode 100644 src/assets/main.css create mode 100644 src/components/DlcFilterComponent.vue create mode 100644 src/data/combos.ts create mode 100644 src/data/fusion.ts create mode 100644 src/data/personas.ts create mode 100644 src/data/skills.ts create mode 100644 src/data/types.ts create mode 100644 src/helpers.ts create mode 100644 src/main.ts create mode 100644 src/router/index.ts create mode 100644 src/shims-vue.d.ts create mode 100644 src/views/FusionPage.vue create mode 100644 src/views/MainPage.vue create mode 100644 src/views/PersonaPage.vue create mode 100644 tsconfig.config.json create mode 100644 tsconfig.json create mode 100644 vite.config.ts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..38adffa --- /dev/null +++ b/.gitignore @@ -0,0 +1,28 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +.DS_Store +dist +dist-ssr +coverage +*.local + +/cypress/videos/ +/cypress/screenshots/ + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..c0a6e5a --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"] +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..7e07aa2 --- /dev/null +++ b/README.md @@ -0,0 +1,40 @@ +# p5rcalc + diff --git a/env.d.ts b/env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/env.d.ts @@ -0,0 +1 @@ +/// diff --git a/index.html b/index.html new file mode 100644 index 0000000..6c4787f --- /dev/null +++ b/index.html @@ -0,0 +1,13 @@ + + + + + + + Persona 5 Royal Calculator + + +
+ + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..cda0aed --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6029 @@ +{ + "name": "p5rcalc", + "version": "0.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "p5rcalc", + "version": "0.0.0", + "dependencies": { + "vue": "^3.2.41", + "vue-router": "^4.1.5", + "vue-select": "^4.0.0-beta.6" + }, + "devDependencies": { + "@types/node": "^16.11.68", + "@vitejs/plugin-vue": "^3.1.2", + "@vue/eslint-config-typescript": "^11.0.2", + "@vue/tsconfig": "^0.1.3", + "eslint": "^8.27.0", + "eslint-plugin-vue": "^9.7.0", + "npm-run-all": "^4.1.5", + "typescript": "~4.7.4", + "vite": "^3.1.8", + "vue-tsc": "^1.0.8" + } + }, + "node_modules/@babel/parser": { + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz", + "integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.13.tgz", + "integrity": "sha512-RY2fVI8O0iFUNvZirXaQ1vMvK0xhCcl0gqRj74Z6yEiO1zAUa7hbsdwZM1kzqbxHK7LFyMizipfXT3JME+12Hw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.13.tgz", + "integrity": "sha512-+BoyIm4I8uJmH/QDIH0fu7MG0AEx9OXEDXnqptXCwKOlOqZiS4iraH1Nr7/ObLMokW3sOCeBNyD68ATcV9b9Ag==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", + "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "16.18.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.3.tgz", + "integrity": "sha512-jh6m0QUhIRcZpNv7Z/rpN+ZWXOicUUQbSoWks7Htkbb9IjFQj4kzcX/xFCkjstCj5flMsN8FiSvt+q+Tcs4Llg==", + "dev": true + }, + "node_modules/@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.42.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.42.1.tgz", + "integrity": "sha512-LyR6x784JCiJ1j6sH5Y0K6cdExqCCm8DJUTcwG5ThNXJj/G8o5E56u5EdG4SLy+bZAwZBswC+GYn3eGdttBVCg==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.42.1", + "@typescript-eslint/type-utils": "5.42.1", + "@typescript-eslint/utils": "5.42.1", + "debug": "^4.3.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.42.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.42.1.tgz", + "integrity": "sha512-kAV+NiNBWVQDY9gDJDToTE/NO8BHi4f6b7zTsVAJoTkmB/zlfOpiEVBzHOKtlgTndCKe8vj9F/PuolemZSh50Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.42.1", + "@typescript-eslint/types": "5.42.1", + "@typescript-eslint/typescript-estree": "5.42.1", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.42.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.42.1.tgz", + "integrity": "sha512-QAZY/CBP1Emx4rzxurgqj3rUinfsh/6mvuKbLNMfJMMKYLRBfweus8brgXF8f64ABkIZ3zdj2/rYYtF8eiuksQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.42.1", + "@typescript-eslint/visitor-keys": "5.42.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.42.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.42.1.tgz", + "integrity": "sha512-WWiMChneex5w4xPIX56SSnQQo0tEOy5ZV2dqmj8Z371LJ0E+aymWD25JQ/l4FOuuX+Q49A7pzh/CGIQflxMVXg==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "5.42.1", + "@typescript-eslint/utils": "5.42.1", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.42.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.42.1.tgz", + "integrity": "sha512-Qrco9dsFF5lhalz+lLFtxs3ui1/YfC6NdXu+RAGBa8uSfn01cjO7ssCsjIsUs484vny9Xm699FSKwpkCcqwWwA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.42.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.42.1.tgz", + "integrity": "sha512-qElc0bDOuO0B8wDhhW4mYVgi/LZL+igPwXtV87n69/kYC/7NG3MES0jHxJNCr4EP7kY1XVsRy8C/u3DYeTKQmw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.42.1", + "@typescript-eslint/visitor-keys": "5.42.1", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.42.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.42.1.tgz", + "integrity": "sha512-Gxvf12xSp3iYZd/fLqiQRD4uKZjDNR01bQ+j8zvhPjpsZ4HmvEFL/tC4amGNyxN9Rq+iqvpHLhlqx6KTxz9ZyQ==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.42.1", + "@typescript-eslint/types": "5.42.1", + "@typescript-eslint/typescript-estree": "5.42.1", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.42.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.42.1.tgz", + "integrity": "sha512-LOQtSF4z+hejmpUvitPlc4hA7ERGoj2BVkesOcG91HCn8edLGUXbTrErmutmPbl8Bo9HjAvOO/zBKQHExXNA2A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.42.1", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz", + "integrity": "sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw==", + "dev": true, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^3.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@volar/language-core": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.0.9.tgz", + "integrity": "sha512-5Fty3slLet6svXiJw2YxhYeo6c7wFdtILrql5bZymYLM+HbiZtJbryW1YnUEKAP7MO9Mbeh+TNH4Z0HFxHgIqw==", + "dev": true, + "dependencies": { + "@volar/source-map": "1.0.9", + "@vue/reactivity": "^3.2.40", + "muggle-string": "^0.1.0" + } + }, + "node_modules/@volar/source-map": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.0.9.tgz", + "integrity": "sha512-fazB/vy5ZEJ3yKx4fabJyGNI3CBkdLkfEIRVu6+1P3VixK0Mn+eqyUIkLBrzGYaeFM3GybhCLCvsVdNz0Fu/CQ==", + "dev": true, + "dependencies": { + "muggle-string": "^0.1.0" + } + }, + "node_modules/@volar/typescript": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.0.9.tgz", + "integrity": "sha512-dVziu+ShQUWuMukM6bvK2v2O446/gG6l1XkTh2vfkccw1IzjfbiP1TWQoNo1ipTfZOtu5YJGYAx+o5HNrGXWfQ==", + "dev": true, + "dependencies": { + "@volar/language-core": "1.0.9" + } + }, + "node_modules/@volar/vue-language-core": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-1.0.9.tgz", + "integrity": "sha512-tofNoR8ShPFenHT1YVMuvoXtXWwoQE+fiXVqSmW0dSKZqEDjWQ3YeXSd0a6aqyKaIbvR7kWWGp34WbpQlwf9Ww==", + "dev": true, + "dependencies": { + "@volar/language-core": "1.0.9", + "@volar/source-map": "1.0.9", + "@vue/compiler-dom": "^3.2.40", + "@vue/compiler-sfc": "^3.2.40", + "@vue/reactivity": "^3.2.40", + "@vue/shared": "^3.2.40", + "minimatch": "^5.1.0", + "vue-template-compiler": "^2.7.10" + } + }, + "node_modules/@volar/vue-language-core/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@volar/vue-language-core/node_modules/minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@volar/vue-typescript": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-1.0.9.tgz", + "integrity": "sha512-ZLe4y9YNbviACa7uAMCilzxA76gbbSlKfjspXBzk6fCobd8QCIig+VyDYcjANIlm2HhgSCX8jYTzhCKlegh4mw==", + "dev": true, + "dependencies": { + "@volar/typescript": "1.0.9", + "@volar/vue-language-core": "1.0.9" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.44.tgz", + "integrity": "sha512-TwzeVSnaklb8wIvMtwtkPkt9wnU+XD70xJ7N9+eIHtjKAG7OoZttm+14ZL6vWOL+2RcMtSZ+cYH+gvkUqsrmSQ==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.44", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.44.tgz", + "integrity": "sha512-wPDR+gOn2Qi7SudPJ+gE62vuO/aKXIiIFALvHpztXmDdbAHGy3CDfmBgOGchTgTlSeDJHe9olEMkgOdmyXTjUg==", + "dependencies": { + "@vue/compiler-core": "3.2.44", + "@vue/shared": "3.2.44" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.44.tgz", + "integrity": "sha512-8cFZcUWlrtnfM/GlRwYJdlfgbEOy0OZ/osLDU3h/wJu24HuYAc7QIML1USaKqiZzkjOaTd4y8mvYvcWXq3o5dA==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.44", + "@vue/compiler-dom": "3.2.44", + "@vue/compiler-ssr": "3.2.44", + "@vue/reactivity-transform": "3.2.44", + "@vue/shared": "3.2.44", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.44.tgz", + "integrity": "sha512-tAkUFLgvxds3l5KPyAH77OIYrEeLngNYQfWA9GocHiy2nlyajjqAH/Jq93Bq29Y20GeJzblmRp9DVYCVkJ5Rsw==", + "dependencies": { + "@vue/compiler-dom": "3.2.44", + "@vue/shared": "3.2.44" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.4.5", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.4.5.tgz", + "integrity": "sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==" + }, + "node_modules/@vue/eslint-config-typescript": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-11.0.2.tgz", + "integrity": "sha512-EiKud1NqlWmSapBFkeSrE994qpKx7/27uCGnhdqzllYDpQZroyX/O6bwjEpeuyKamvLbsGdO6PMR2faIf+zFnw==", + "dev": true, + "dependencies": { + "@typescript-eslint/eslint-plugin": "^5.0.0", + "@typescript-eslint/parser": "^5.0.0", + "vue-eslint-parser": "^9.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0", + "eslint-plugin-vue": "^9.0.0", + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/reactivity": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.44.tgz", + "integrity": "sha512-Fe0s52fTsPl+RSdvoqUZ3HRKlaVsKhIh1mea5EWOedFvZCjnymzlj3YC1wZMxi89qXRFSdEASVA/BWUGypk0Ig==", + "dependencies": { + "@vue/shared": "3.2.44" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.44.tgz", + "integrity": "sha512-WGbEiXaS2qAOTS9Z3kKk2Nk4bi8OUl73Sih+h0XV9RTUATnaJSEQedveHUDQnHyXiZwyBMKosrxJg8aThHO/rw==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.44", + "@vue/shared": "3.2.44", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.44.tgz", + "integrity": "sha512-uwEV1cttL33k2dC+CNGYhKEYqGejT9KmgQ+4n/LmYUfZ1Gorl8F32DlIX+1pANyGHL1tBAisqHDxKyQBp2oBNA==", + "dependencies": { + "@vue/reactivity": "3.2.44", + "@vue/shared": "3.2.44" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.44.tgz", + "integrity": "sha512-LDzNwXpU/nSpxrLk5jS0bfStgt88msgsgFzj6vHrl7es3QktIrCGybQS5CB/p/TO0q98iAiYtEVmi+Lej7Vgjg==", + "dependencies": { + "@vue/runtime-core": "3.2.44", + "@vue/shared": "3.2.44", + "csstype": "^2.6.8" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.44.tgz", + "integrity": "sha512-3+ArN07UgOAdbGKIp3uVqeC3bnR3J324QNjPR6vxHbLrTlkibFv8QNled/ux3fVq0KDCkVVKGOKB2V4sCIYOgg==", + "dependencies": { + "@vue/compiler-ssr": "3.2.44", + "@vue/shared": "3.2.44" + }, + "peerDependencies": { + "vue": "3.2.44" + } + }, + "node_modules/@vue/shared": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.44.tgz", + "integrity": "sha512-mGZ44bnn0zpZ36nXtxbrBPno43yr96wjQE1dBEKS1Sieugt27HS4OGZVBRIgsdGzosB7vqZAvu0ttu1FDVdolA==" + }, + "node_modules/@vue/tsconfig": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.1.3.tgz", + "integrity": "sha512-kQVsh8yyWPvHpb8gIc9l/HIDiiVUy1amynLNpCy8p+FoCiZXCo6fQos5/097MmnNZc9AtseDsCrfkhqCrJ8Olg==", + "dev": true, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dir-glob/node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", + "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.13.tgz", + "integrity": "sha512-Cu3SC84oyzzhrK/YyN4iEVy2jZu5t2fz66HEOShHURcjSkOSAVL8C/gfUT+lDJxkVHpg8GZ10DD0rMHRPqMFaQ==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.15.13", + "@esbuild/linux-loong64": "0.15.13", + "esbuild-android-64": "0.15.13", + "esbuild-android-arm64": "0.15.13", + "esbuild-darwin-64": "0.15.13", + "esbuild-darwin-arm64": "0.15.13", + "esbuild-freebsd-64": "0.15.13", + "esbuild-freebsd-arm64": "0.15.13", + "esbuild-linux-32": "0.15.13", + "esbuild-linux-64": "0.15.13", + "esbuild-linux-arm": "0.15.13", + "esbuild-linux-arm64": "0.15.13", + "esbuild-linux-mips64le": "0.15.13", + "esbuild-linux-ppc64le": "0.15.13", + "esbuild-linux-riscv64": "0.15.13", + "esbuild-linux-s390x": "0.15.13", + "esbuild-netbsd-64": "0.15.13", + "esbuild-openbsd-64": "0.15.13", + "esbuild-sunos-64": "0.15.13", + "esbuild-windows-32": "0.15.13", + "esbuild-windows-64": "0.15.13", + "esbuild-windows-arm64": "0.15.13" + } + }, + "node_modules/esbuild-android-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.13.tgz", + "integrity": "sha512-yRorukXBlokwTip+Sy4MYskLhJsO0Kn0/Fj43s1krVblfwP+hMD37a4Wmg139GEsMLl+vh8WXp2mq/cTA9J97g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.13.tgz", + "integrity": "sha512-TKzyymLD6PiVeyYa4c5wdPw87BeAiTXNtK6amWUcXZxkV51gOk5u5qzmDaYSwiWeecSNHamFsaFjLoi32QR5/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.13.tgz", + "integrity": "sha512-WAx7c2DaOS6CrRcoYCgXgkXDliLnFv3pQLV6GeW1YcGEZq2Gnl8s9Pg7ahValZkpOa0iE/ojRVQ87sbUhF1Cbg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.13.tgz", + "integrity": "sha512-U6jFsPfSSxC3V1CLiQqwvDuj3GGrtQNB3P3nNC3+q99EKf94UGpsG9l4CQ83zBs1NHrk1rtCSYT0+KfK5LsD8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.13.tgz", + "integrity": "sha512-whItJgDiOXaDG/idy75qqevIpZjnReZkMGCgQaBWZuKHoElDJC1rh7MpoUgupMcdfOd+PgdEwNQW9DAE6i8wyA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.13.tgz", + "integrity": "sha512-6pCSWt8mLUbPtygv7cufV0sZLeylaMwS5Fznj6Rsx9G2AJJsAjQ9ifA+0rQEIg7DwJmi9it+WjzNTEAzzdoM3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.13.tgz", + "integrity": "sha512-VbZdWOEdrJiYApm2kkxoTOgsoCO1krBZ3quHdYk3g3ivWaMwNIVPIfEE0f0XQQ0u5pJtBsnk2/7OPiCFIPOe/w==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.13.tgz", + "integrity": "sha512-rXmnArVNio6yANSqDQlIO4WiP+Cv7+9EuAHNnag7rByAqFVuRusLbGi2697A5dFPNXoO//IiogVwi3AdcfPC6A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.13.tgz", + "integrity": "sha512-Ac6LpfmJO8WhCMQmO253xX2IU2B3wPDbl4IvR0hnqcPrdfCaUa2j/lLMGTjmQ4W5JsJIdHEdW12dG8lFS0MbxQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.13.tgz", + "integrity": "sha512-alEMGU4Z+d17U7KQQw2IV8tQycO6T+rOrgW8OS22Ua25x6kHxoG6Ngry6Aq6uranC+pNWNMB6aHFPh7aTQdORQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.13.tgz", + "integrity": "sha512-47PgmyYEu+yN5rD/MbwS6DxP2FSGPo4Uxg5LwIdxTiyGC2XKwHhHyW7YYEDlSuXLQXEdTO7mYe8zQ74czP7W8A==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.13.tgz", + "integrity": "sha512-z6n28h2+PC1Ayle9DjKoBRcx/4cxHoOa2e689e2aDJSaKug3jXcQw7mM+GLg+9ydYoNzj8QxNL8ihOv/OnezhA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.13.tgz", + "integrity": "sha512-+Lu4zuuXuQhgLUGyZloWCqTslcCAjMZH1k3Xc9MSEJEpEFdpsSU0sRDXAnk18FKOfEjhu4YMGaykx9xjtpA6ow==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.13.tgz", + "integrity": "sha512-BMeXRljruf7J0TMxD5CIXS65y7puiZkAh+s4XFV9qy16SxOuMhxhVIXYLnbdfLrsYGFzx7U9mcdpFWkkvy/Uag==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.13.tgz", + "integrity": "sha512-EHj9QZOTel581JPj7UO3xYbltFTYnHy+SIqJVq6yd3KkCrsHRbapiPb0Lx3EOOtybBEE9EyqbmfW1NlSDsSzvQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.13.tgz", + "integrity": "sha512-nkuDlIjF/sfUhfx8SKq0+U+Fgx5K9JcPq1mUodnxI0x4kBdCv46rOGWbuJ6eof2n3wdoCLccOoJAbg9ba/bT2w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.13.tgz", + "integrity": "sha512-jVeu2GfxZQ++6lRdY43CS0Tm/r4WuQQ0Pdsrxbw+aOrHQPHV0+LNOLnvbN28M7BSUGnJnHkHm2HozGgNGyeIRw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.13.tgz", + "integrity": "sha512-XoF2iBf0wnqo16SDq+aDGi/+QbaLFpkiRarPVssMh9KYbFNCqPLlGAWwDvxEVz+ywX6Si37J2AKm+AXq1kC0JA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.13.tgz", + "integrity": "sha512-Et6htEfGycjDrtqb2ng6nT+baesZPYQIW+HUEHK4D1ncggNrDNk3yoboYQ5KtiVrw/JaDMNttz8rrPubV/fvPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.13.tgz", + "integrity": "sha512-3bv7tqntThQC9SWLRouMDmZnlOukBhOCTlkzNqzGCmrkCJI7io5LLjwJBOVY6kOUlIvdxbooNZwjtBvj+7uuVg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.27.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.27.0.tgz", + "integrity": "sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.3.3", + "@humanwhocodes/config-array": "^0.11.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.15.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-vue": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.7.0.tgz", + "integrity": "sha512-DrOO3WZCZEwcLsnd3ohFwqCoipGRSTKTBTnLwdhqAbYZtzWl0o7D+D8ZhlmiZvABKTEl8AFsqH1GHGdybyoQmw==", + "dev": true, + "dependencies": { + "eslint-utils": "^3.0.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.0.1", + "postcss-selector-parser": "^6.0.9", + "semver": "^7.3.5", + "vue-eslint-parser": "^9.0.1", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-vue/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/espree": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "dev": true, + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/js-sdsl": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", + "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/muggle-string": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.1.0.tgz", + "integrity": "sha512-Tr1knR3d2mKvvWthlk7202rywKbiOm4rVFLsfAaSIhJ6dt9o47W4S+JMtWhd/PW9Wrdew2/S2fSvhz3E2gkfEg==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true, + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss": { + "version": "8.4.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz", + "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shell-quote": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.4.tgz", + "integrity": "sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", + "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", + "dev": true + }, + "node_modules/string.prototype.padend": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz", + "integrity": "sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vite": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.3.tgz", + "integrity": "sha512-h8jl1TZ76eGs3o2dIBSsvXDLb1m/Ec1iej8ZMdz+PsaFUsftZeWe2CZOI3qogEsMNaywc17gu0q6cQDzh/weCQ==", + "dev": true, + "dependencies": { + "esbuild": "^0.15.9", + "postcss": "^8.4.18", + "resolve": "^1.22.1", + "rollup": "^2.79.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vue": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.44.tgz", + "integrity": "sha512-nyNtFDh+0TpRgYCUVfPD1mJ9PpIsCPXaOF4DeGNIT5vQ4X23ykflGq3Sy2P+tEt1/pQZxZnAysuRKwyhNj+Cjw==", + "dependencies": { + "@vue/compiler-dom": "3.2.44", + "@vue/compiler-sfc": "3.2.44", + "@vue/runtime-dom": "3.2.44", + "@vue/server-renderer": "3.2.44", + "@vue/shared": "3.2.44" + } + }, + "node_modules/vue-eslint-parser": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.1.0.tgz", + "integrity": "sha512-NGn/iQy8/Wb7RrRa4aRkokyCZfOUWk19OP5HP6JEozQFX5AoS/t+Z0ZN7FY4LlmWc4FNI922V7cvX28zctN8dQ==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/vue-router": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.1.6.tgz", + "integrity": "sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==", + "dependencies": { + "@vue/devtools-api": "^6.4.5" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/vue-select": { + "version": "4.0.0-beta.6", + "resolved": "https://registry.npmjs.org/vue-select/-/vue-select-4.0.0-beta.6.tgz", + "integrity": "sha512-K+zrNBSpwMPhAxYLTCl56gaMrWZGgayoWCLqe5rWwkB8aUbAUh7u6sXjIR7v4ckp2WKC7zEEUY27g6h1MRsIHw==", + "peerDependencies": { + "vue": "3.x" + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.14", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz", + "integrity": "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==", + "dev": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/vue-tsc": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.0.9.tgz", + "integrity": "sha512-vRmHD1K6DmBymNhoHjQy/aYKTRQNLGOu2/ESasChG9Vy113K6CdP0NlhR0bzgFJfv2eFB9Ez/9L5kIciUajBxQ==", + "dev": true, + "dependencies": { + "@volar/vue-language-core": "1.0.9", + "@volar/vue-typescript": "1.0.9" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": "*" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@babel/parser": { + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz", + "integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==" + }, + "@esbuild/android-arm": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.13.tgz", + "integrity": "sha512-RY2fVI8O0iFUNvZirXaQ1vMvK0xhCcl0gqRj74Z6yEiO1zAUa7hbsdwZM1kzqbxHK7LFyMizipfXT3JME+12Hw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.13.tgz", + "integrity": "sha512-+BoyIm4I8uJmH/QDIH0fu7MG0AEx9OXEDXnqptXCwKOlOqZiS4iraH1Nr7/ObLMokW3sOCeBNyD68ATcV9b9Ag==", + "dev": true, + "optional": true + }, + "@eslint/eslintrc": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + } + }, + "@humanwhocodes/config-array": { + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", + "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + } + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "@types/node": { + "version": "16.18.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.3.tgz", + "integrity": "sha512-jh6m0QUhIRcZpNv7Z/rpN+ZWXOicUUQbSoWks7Htkbb9IjFQj4kzcX/xFCkjstCj5flMsN8FiSvt+q+Tcs4Llg==", + "dev": true + }, + "@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.42.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.42.1.tgz", + "integrity": "sha512-LyR6x784JCiJ1j6sH5Y0K6cdExqCCm8DJUTcwG5ThNXJj/G8o5E56u5EdG4SLy+bZAwZBswC+GYn3eGdttBVCg==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.42.1", + "@typescript-eslint/type-utils": "5.42.1", + "@typescript-eslint/utils": "5.42.1", + "debug": "^4.3.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "dependencies": { + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@typescript-eslint/parser": { + "version": "5.42.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.42.1.tgz", + "integrity": "sha512-kAV+NiNBWVQDY9gDJDToTE/NO8BHi4f6b7zTsVAJoTkmB/zlfOpiEVBzHOKtlgTndCKe8vj9F/PuolemZSh50Q==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.42.1", + "@typescript-eslint/types": "5.42.1", + "@typescript-eslint/typescript-estree": "5.42.1", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.42.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.42.1.tgz", + "integrity": "sha512-QAZY/CBP1Emx4rzxurgqj3rUinfsh/6mvuKbLNMfJMMKYLRBfweus8brgXF8f64ABkIZ3zdj2/rYYtF8eiuksQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.42.1", + "@typescript-eslint/visitor-keys": "5.42.1" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.42.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.42.1.tgz", + "integrity": "sha512-WWiMChneex5w4xPIX56SSnQQo0tEOy5ZV2dqmj8Z371LJ0E+aymWD25JQ/l4FOuuX+Q49A7pzh/CGIQflxMVXg==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "5.42.1", + "@typescript-eslint/utils": "5.42.1", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.42.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.42.1.tgz", + "integrity": "sha512-Qrco9dsFF5lhalz+lLFtxs3ui1/YfC6NdXu+RAGBa8uSfn01cjO7ssCsjIsUs484vny9Xm699FSKwpkCcqwWwA==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.42.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.42.1.tgz", + "integrity": "sha512-qElc0bDOuO0B8wDhhW4mYVgi/LZL+igPwXtV87n69/kYC/7NG3MES0jHxJNCr4EP7kY1XVsRy8C/u3DYeTKQmw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.42.1", + "@typescript-eslint/visitor-keys": "5.42.1", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "dependencies": { + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@typescript-eslint/utils": { + "version": "5.42.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.42.1.tgz", + "integrity": "sha512-Gxvf12xSp3iYZd/fLqiQRD4uKZjDNR01bQ+j8zvhPjpsZ4HmvEFL/tC4amGNyxN9Rq+iqvpHLhlqx6KTxz9ZyQ==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.42.1", + "@typescript-eslint/types": "5.42.1", + "@typescript-eslint/typescript-estree": "5.42.1", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + }, + "dependencies": { + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.42.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.42.1.tgz", + "integrity": "sha512-LOQtSF4z+hejmpUvitPlc4hA7ERGoj2BVkesOcG91HCn8edLGUXbTrErmutmPbl8Bo9HjAvOO/zBKQHExXNA2A==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.42.1", + "eslint-visitor-keys": "^3.3.0" + } + }, + "@vitejs/plugin-vue": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz", + "integrity": "sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw==", + "dev": true, + "requires": {} + }, + "@volar/language-core": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.0.9.tgz", + "integrity": "sha512-5Fty3slLet6svXiJw2YxhYeo6c7wFdtILrql5bZymYLM+HbiZtJbryW1YnUEKAP7MO9Mbeh+TNH4Z0HFxHgIqw==", + "dev": true, + "requires": { + "@volar/source-map": "1.0.9", + "@vue/reactivity": "^3.2.40", + "muggle-string": "^0.1.0" + } + }, + "@volar/source-map": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.0.9.tgz", + "integrity": "sha512-fazB/vy5ZEJ3yKx4fabJyGNI3CBkdLkfEIRVu6+1P3VixK0Mn+eqyUIkLBrzGYaeFM3GybhCLCvsVdNz0Fu/CQ==", + "dev": true, + "requires": { + "muggle-string": "^0.1.0" + } + }, + "@volar/typescript": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.0.9.tgz", + "integrity": "sha512-dVziu+ShQUWuMukM6bvK2v2O446/gG6l1XkTh2vfkccw1IzjfbiP1TWQoNo1ipTfZOtu5YJGYAx+o5HNrGXWfQ==", + "dev": true, + "requires": { + "@volar/language-core": "1.0.9" + } + }, + "@volar/vue-language-core": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-1.0.9.tgz", + "integrity": "sha512-tofNoR8ShPFenHT1YVMuvoXtXWwoQE+fiXVqSmW0dSKZqEDjWQ3YeXSd0a6aqyKaIbvR7kWWGp34WbpQlwf9Ww==", + "dev": true, + "requires": { + "@volar/language-core": "1.0.9", + "@volar/source-map": "1.0.9", + "@vue/compiler-dom": "^3.2.40", + "@vue/compiler-sfc": "^3.2.40", + "@vue/reactivity": "^3.2.40", + "@vue/shared": "^3.2.40", + "minimatch": "^5.1.0", + "vue-template-compiler": "^2.7.10" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "@volar/vue-typescript": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-1.0.9.tgz", + "integrity": "sha512-ZLe4y9YNbviACa7uAMCilzxA76gbbSlKfjspXBzk6fCobd8QCIig+VyDYcjANIlm2HhgSCX8jYTzhCKlegh4mw==", + "dev": true, + "requires": { + "@volar/typescript": "1.0.9", + "@volar/vue-language-core": "1.0.9" + } + }, + "@vue/compiler-core": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.44.tgz", + "integrity": "sha512-TwzeVSnaklb8wIvMtwtkPkt9wnU+XD70xJ7N9+eIHtjKAG7OoZttm+14ZL6vWOL+2RcMtSZ+cYH+gvkUqsrmSQ==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.44", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-dom": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.44.tgz", + "integrity": "sha512-wPDR+gOn2Qi7SudPJ+gE62vuO/aKXIiIFALvHpztXmDdbAHGy3CDfmBgOGchTgTlSeDJHe9olEMkgOdmyXTjUg==", + "requires": { + "@vue/compiler-core": "3.2.44", + "@vue/shared": "3.2.44" + } + }, + "@vue/compiler-sfc": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.44.tgz", + "integrity": "sha512-8cFZcUWlrtnfM/GlRwYJdlfgbEOy0OZ/osLDU3h/wJu24HuYAc7QIML1USaKqiZzkjOaTd4y8mvYvcWXq3o5dA==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.44", + "@vue/compiler-dom": "3.2.44", + "@vue/compiler-ssr": "3.2.44", + "@vue/reactivity-transform": "3.2.44", + "@vue/shared": "3.2.44", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-ssr": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.44.tgz", + "integrity": "sha512-tAkUFLgvxds3l5KPyAH77OIYrEeLngNYQfWA9GocHiy2nlyajjqAH/Jq93Bq29Y20GeJzblmRp9DVYCVkJ5Rsw==", + "requires": { + "@vue/compiler-dom": "3.2.44", + "@vue/shared": "3.2.44" + } + }, + "@vue/devtools-api": { + "version": "6.4.5", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.4.5.tgz", + "integrity": "sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==" + }, + "@vue/eslint-config-typescript": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-11.0.2.tgz", + "integrity": "sha512-EiKud1NqlWmSapBFkeSrE994qpKx7/27uCGnhdqzllYDpQZroyX/O6bwjEpeuyKamvLbsGdO6PMR2faIf+zFnw==", + "dev": true, + "requires": { + "@typescript-eslint/eslint-plugin": "^5.0.0", + "@typescript-eslint/parser": "^5.0.0", + "vue-eslint-parser": "^9.0.0" + } + }, + "@vue/reactivity": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.44.tgz", + "integrity": "sha512-Fe0s52fTsPl+RSdvoqUZ3HRKlaVsKhIh1mea5EWOedFvZCjnymzlj3YC1wZMxi89qXRFSdEASVA/BWUGypk0Ig==", + "requires": { + "@vue/shared": "3.2.44" + } + }, + "@vue/reactivity-transform": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.44.tgz", + "integrity": "sha512-WGbEiXaS2qAOTS9Z3kKk2Nk4bi8OUl73Sih+h0XV9RTUATnaJSEQedveHUDQnHyXiZwyBMKosrxJg8aThHO/rw==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.44", + "@vue/shared": "3.2.44", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "@vue/runtime-core": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.44.tgz", + "integrity": "sha512-uwEV1cttL33k2dC+CNGYhKEYqGejT9KmgQ+4n/LmYUfZ1Gorl8F32DlIX+1pANyGHL1tBAisqHDxKyQBp2oBNA==", + "requires": { + "@vue/reactivity": "3.2.44", + "@vue/shared": "3.2.44" + } + }, + "@vue/runtime-dom": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.44.tgz", + "integrity": "sha512-LDzNwXpU/nSpxrLk5jS0bfStgt88msgsgFzj6vHrl7es3QktIrCGybQS5CB/p/TO0q98iAiYtEVmi+Lej7Vgjg==", + "requires": { + "@vue/runtime-core": "3.2.44", + "@vue/shared": "3.2.44", + "csstype": "^2.6.8" + } + }, + "@vue/server-renderer": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.44.tgz", + "integrity": "sha512-3+ArN07UgOAdbGKIp3uVqeC3bnR3J324QNjPR6vxHbLrTlkibFv8QNled/ux3fVq0KDCkVVKGOKB2V4sCIYOgg==", + "requires": { + "@vue/compiler-ssr": "3.2.44", + "@vue/shared": "3.2.44" + } + }, + "@vue/shared": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.44.tgz", + "integrity": "sha512-mGZ44bnn0zpZ36nXtxbrBPno43yr96wjQE1dBEKS1Sieugt27HS4OGZVBRIgsdGzosB7vqZAvu0ttu1FDVdolA==" + }, + "@vue/tsconfig": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.1.3.tgz", + "integrity": "sha512-kQVsh8yyWPvHpb8gIc9l/HIDiiVUy1amynLNpCy8p+FoCiZXCo6fQos5/097MmnNZc9AtseDsCrfkhqCrJ8Olg==", + "dev": true, + "requires": {} + }, + "acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" + }, + "de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + }, + "dependencies": { + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + } + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", + "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "esbuild": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.13.tgz", + "integrity": "sha512-Cu3SC84oyzzhrK/YyN4iEVy2jZu5t2fz66HEOShHURcjSkOSAVL8C/gfUT+lDJxkVHpg8GZ10DD0rMHRPqMFaQ==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.15.13", + "@esbuild/linux-loong64": "0.15.13", + "esbuild-android-64": "0.15.13", + "esbuild-android-arm64": "0.15.13", + "esbuild-darwin-64": "0.15.13", + "esbuild-darwin-arm64": "0.15.13", + "esbuild-freebsd-64": "0.15.13", + "esbuild-freebsd-arm64": "0.15.13", + "esbuild-linux-32": "0.15.13", + "esbuild-linux-64": "0.15.13", + "esbuild-linux-arm": "0.15.13", + "esbuild-linux-arm64": "0.15.13", + "esbuild-linux-mips64le": "0.15.13", + "esbuild-linux-ppc64le": "0.15.13", + "esbuild-linux-riscv64": "0.15.13", + "esbuild-linux-s390x": "0.15.13", + "esbuild-netbsd-64": "0.15.13", + "esbuild-openbsd-64": "0.15.13", + "esbuild-sunos-64": "0.15.13", + "esbuild-windows-32": "0.15.13", + "esbuild-windows-64": "0.15.13", + "esbuild-windows-arm64": "0.15.13" + } + }, + "esbuild-android-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.13.tgz", + "integrity": "sha512-yRorukXBlokwTip+Sy4MYskLhJsO0Kn0/Fj43s1krVblfwP+hMD37a4Wmg139GEsMLl+vh8WXp2mq/cTA9J97g==", + "dev": true, + "optional": true + }, + "esbuild-android-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.13.tgz", + "integrity": "sha512-TKzyymLD6PiVeyYa4c5wdPw87BeAiTXNtK6amWUcXZxkV51gOk5u5qzmDaYSwiWeecSNHamFsaFjLoi32QR5/w==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.13.tgz", + "integrity": "sha512-WAx7c2DaOS6CrRcoYCgXgkXDliLnFv3pQLV6GeW1YcGEZq2Gnl8s9Pg7ahValZkpOa0iE/ojRVQ87sbUhF1Cbg==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.13.tgz", + "integrity": "sha512-U6jFsPfSSxC3V1CLiQqwvDuj3GGrtQNB3P3nNC3+q99EKf94UGpsG9l4CQ83zBs1NHrk1rtCSYT0+KfK5LsD8A==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.13.tgz", + "integrity": "sha512-whItJgDiOXaDG/idy75qqevIpZjnReZkMGCgQaBWZuKHoElDJC1rh7MpoUgupMcdfOd+PgdEwNQW9DAE6i8wyA==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.13.tgz", + "integrity": "sha512-6pCSWt8mLUbPtygv7cufV0sZLeylaMwS5Fznj6Rsx9G2AJJsAjQ9ifA+0rQEIg7DwJmi9it+WjzNTEAzzdoM3Q==", + "dev": true, + "optional": true + }, + "esbuild-linux-32": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.13.tgz", + "integrity": "sha512-VbZdWOEdrJiYApm2kkxoTOgsoCO1krBZ3quHdYk3g3ivWaMwNIVPIfEE0f0XQQ0u5pJtBsnk2/7OPiCFIPOe/w==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.13.tgz", + "integrity": "sha512-rXmnArVNio6yANSqDQlIO4WiP+Cv7+9EuAHNnag7rByAqFVuRusLbGi2697A5dFPNXoO//IiogVwi3AdcfPC6A==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.13.tgz", + "integrity": "sha512-Ac6LpfmJO8WhCMQmO253xX2IU2B3wPDbl4IvR0hnqcPrdfCaUa2j/lLMGTjmQ4W5JsJIdHEdW12dG8lFS0MbxQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.13.tgz", + "integrity": "sha512-alEMGU4Z+d17U7KQQw2IV8tQycO6T+rOrgW8OS22Ua25x6kHxoG6Ngry6Aq6uranC+pNWNMB6aHFPh7aTQdORQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.13.tgz", + "integrity": "sha512-47PgmyYEu+yN5rD/MbwS6DxP2FSGPo4Uxg5LwIdxTiyGC2XKwHhHyW7YYEDlSuXLQXEdTO7mYe8zQ74czP7W8A==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.13.tgz", + "integrity": "sha512-z6n28h2+PC1Ayle9DjKoBRcx/4cxHoOa2e689e2aDJSaKug3jXcQw7mM+GLg+9ydYoNzj8QxNL8ihOv/OnezhA==", + "dev": true, + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.13.tgz", + "integrity": "sha512-+Lu4zuuXuQhgLUGyZloWCqTslcCAjMZH1k3Xc9MSEJEpEFdpsSU0sRDXAnk18FKOfEjhu4YMGaykx9xjtpA6ow==", + "dev": true, + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.13.tgz", + "integrity": "sha512-BMeXRljruf7J0TMxD5CIXS65y7puiZkAh+s4XFV9qy16SxOuMhxhVIXYLnbdfLrsYGFzx7U9mcdpFWkkvy/Uag==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.13.tgz", + "integrity": "sha512-EHj9QZOTel581JPj7UO3xYbltFTYnHy+SIqJVq6yd3KkCrsHRbapiPb0Lx3EOOtybBEE9EyqbmfW1NlSDsSzvQ==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.13.tgz", + "integrity": "sha512-nkuDlIjF/sfUhfx8SKq0+U+Fgx5K9JcPq1mUodnxI0x4kBdCv46rOGWbuJ6eof2n3wdoCLccOoJAbg9ba/bT2w==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.13.tgz", + "integrity": "sha512-jVeu2GfxZQ++6lRdY43CS0Tm/r4WuQQ0Pdsrxbw+aOrHQPHV0+LNOLnvbN28M7BSUGnJnHkHm2HozGgNGyeIRw==", + "dev": true, + "optional": true + }, + "esbuild-windows-32": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.13.tgz", + "integrity": "sha512-XoF2iBf0wnqo16SDq+aDGi/+QbaLFpkiRarPVssMh9KYbFNCqPLlGAWwDvxEVz+ywX6Si37J2AKm+AXq1kC0JA==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.13.tgz", + "integrity": "sha512-Et6htEfGycjDrtqb2ng6nT+baesZPYQIW+HUEHK4D1ncggNrDNk3yoboYQ5KtiVrw/JaDMNttz8rrPubV/fvPQ==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.15.13", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.13.tgz", + "integrity": "sha512-3bv7tqntThQC9SWLRouMDmZnlOukBhOCTlkzNqzGCmrkCJI7io5LLjwJBOVY6kOUlIvdxbooNZwjtBvj+7uuVg==", + "dev": true, + "optional": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "eslint": { + "version": "8.27.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.27.0.tgz", + "integrity": "sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ==", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.3.3", + "@humanwhocodes/config-array": "^0.11.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.15.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "eslint-plugin-vue": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.7.0.tgz", + "integrity": "sha512-DrOO3WZCZEwcLsnd3ohFwqCoipGRSTKTBTnLwdhqAbYZtzWl0o7D+D8ZhlmiZvABKTEl8AFsqH1GHGdybyoQmw==", + "dev": true, + "requires": { + "eslint-utils": "^3.0.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.0.1", + "postcss-selector-parser": "^6.0.9", + "semver": "^7.3.5", + "vue-eslint-parser": "^9.0.1", + "xml-name-validator": "^4.0.0" + }, + "dependencies": { + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + }, + "espree": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "dev": true, + "requires": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + } + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "js-sdsl": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", + "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "muggle-string": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.1.0.tgz", + "integrity": "sha512-Tr1knR3d2mKvvWthlk7202rywKbiOm4rVFLsfAaSIhJ6dt9o47W4S+JMtWhd/PW9Wrdew2/S2fSvhz3E2gkfEg==", + "dev": true + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + } + }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "requires": { + "boolbase": "^1.0.0" + } + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true + }, + "postcss": { + "version": "8.4.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz", + "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==", + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true + }, + "shell-quote": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.4.tgz", + "integrity": "sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", + "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", + "dev": true + }, + "string.prototype.padend": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz", + "integrity": "sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "typescript": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "dev": true + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vite": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.3.tgz", + "integrity": "sha512-h8jl1TZ76eGs3o2dIBSsvXDLb1m/Ec1iej8ZMdz+PsaFUsftZeWe2CZOI3qogEsMNaywc17gu0q6cQDzh/weCQ==", + "dev": true, + "requires": { + "esbuild": "^0.15.9", + "fsevents": "~2.3.2", + "postcss": "^8.4.18", + "resolve": "^1.22.1", + "rollup": "^2.79.1" + } + }, + "vue": { + "version": "3.2.44", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.44.tgz", + "integrity": "sha512-nyNtFDh+0TpRgYCUVfPD1mJ9PpIsCPXaOF4DeGNIT5vQ4X23ykflGq3Sy2P+tEt1/pQZxZnAysuRKwyhNj+Cjw==", + "requires": { + "@vue/compiler-dom": "3.2.44", + "@vue/compiler-sfc": "3.2.44", + "@vue/runtime-dom": "3.2.44", + "@vue/server-renderer": "3.2.44", + "@vue/shared": "3.2.44" + } + }, + "vue-eslint-parser": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.1.0.tgz", + "integrity": "sha512-NGn/iQy8/Wb7RrRa4aRkokyCZfOUWk19OP5HP6JEozQFX5AoS/t+Z0ZN7FY4LlmWc4FNI922V7cvX28zctN8dQ==", + "dev": true, + "requires": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + }, + "dependencies": { + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "vue-router": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.1.6.tgz", + "integrity": "sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==", + "requires": { + "@vue/devtools-api": "^6.4.5" + } + }, + "vue-select": { + "version": "4.0.0-beta.6", + "resolved": "https://registry.npmjs.org/vue-select/-/vue-select-4.0.0-beta.6.tgz", + "integrity": "sha512-K+zrNBSpwMPhAxYLTCl56gaMrWZGgayoWCLqe5rWwkB8aUbAUh7u6sXjIR7v4ckp2WKC7zEEUY27g6h1MRsIHw==", + "requires": {} + }, + "vue-template-compiler": { + "version": "2.7.14", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz", + "integrity": "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==", + "dev": true, + "requires": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "vue-tsc": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.0.9.tgz", + "integrity": "sha512-vRmHD1K6DmBymNhoHjQy/aYKTRQNLGOu2/ESasChG9Vy113K6CdP0NlhR0bzgFJfv2eFB9Ez/9L5kIciUajBxQ==", + "dev": true, + "requires": { + "@volar/vue-language-core": "1.0.9", + "@volar/vue-typescript": "1.0.9" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..f1b3b48 --- /dev/null +++ b/package.json @@ -0,0 +1,28 @@ +{ + "name": "p5rcalc", + "version": "0.0.0", + "scripts": { + "dev": "vite", + "build": "run-p type-check build-only", + "preview": "vite preview", + "build-only": "vite build", + "type-check": "vue-tsc --noEmit" + }, + "dependencies": { + "vue": "^3.2.41", + "vue-router": "^4.1.5", + "vue-select": "^4.0.0-beta.6" + }, + "devDependencies": { + "@types/node": "^16.11.68", + "@vitejs/plugin-vue": "^3.1.2", + "@vue/eslint-config-typescript": "^11.0.2", + "@vue/tsconfig": "^0.1.3", + "eslint": "^8.27.0", + "eslint-plugin-vue": "^9.7.0", + "npm-run-all": "^4.1.5", + "typescript": "~4.7.4", + "vite": "^3.1.8", + "vue-tsc": "^1.0.8" + } +} diff --git a/public/assets/icon_ailment.png b/public/assets/icon_ailment.png new file mode 100644 index 0000000000000000000000000000000000000000..f8c718ee68bc41e1d252d8addb6af8599f3d4ab1 GIT binary patch literal 5960 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 M07*qoM6N<$g1qfH*8l(j literal 0 HcmV?d00001 diff --git a/public/assets/icon_bless.png b/public/assets/icon_bless.png new file mode 100644 index 0000000000000000000000000000000000000000..131b3ee825c8c021760f3a2fbe34e4134a0919d4 GIT binary patch literal 9177 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 literal 0 HcmV?d00001 diff --git a/public/assets/icon_curse.png b/public/assets/icon_curse.png new file mode 100644 index 0000000000000000000000000000000000000000..288f5f0894d5dfdc9886b0e0c3d875d4348625ad GIT binary patch literal 8890 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%0A|XZ3Q1S$I z&qXT_aN)`UEihWrDFfx(6VL zOMdND8ZXXH?0<5ubgV_~*d9L~&1!kz2K)za6zQ!u%M>^12=VuO@iM0P0H7GKmQ+Kq zCKew6o?Ucy7pabv2>^?UIZW#6Lr-2_1QdXm>*eYX!_tv|wo}`_>t4F!m_A#4m&=$% zEWr|AwrykJgKQtw0>2szEMo(O9ac>%C~e7m(Yrs9kE{1v?B!bN_yvN80|G*98{ZW) zB$R#8;@fiJo@n9X<$(x+2Q_8;mVuQpESt(+2p1+{0>*6h5A zWbbB~r%%Pm1)>cvw>XC5Fe^gFOVh{N7BW9mThH{X__~+}5gi~RlAs1gyEGz_Qc%Tu z0udSnf~0ncdoE~$s#+X-)iP(-S$QctmHHUKr~KTV{SEcNHZq_2OSx&`=dI5##TtGAAtxmVt1j&VwqskV5bMOb?!$#gmVGB(#Z zS{Z%(s6X|k@5_mo-ryqVDP!s(sfuK^O5D3W6ZMt_W}|fCF*|j~aV`yyFx3Ql)o)G8 z;ayX1oGH&7VI{Epz08K2b^P?Le(ykL^=e8&P@ufX7eRs&%y@=TS)PBRKKIBAwcyCp zjoM#N(ioW|APh9u)uQ}`*ER65NbboU*?6>FfR2jVGZ(2XPPItp6O!MCrEeadoEdEk z_RdIWdLT$Xx6k(W-R`fVGn1j@T8h}F$FwXcKn0dwV!7>+#Pgrb#&UPL{x>qH{sa*m zBaoNsY^y~1o9wy+pG)<=wI`drb1B$}HO+d&E)b|rIb29NLvP92V=LCPn;P!Z+er7X zCxvk(YoLQe8#W$G)3&z{$9JB6KI zhj&kqst?k|TH?%iTb@f_=7ovTW95c^=thzI#(JAOxJG((T0!24kgpoz1}u_tTp_i^ zscB*h#Z9uLm3SSM4~^NdM{+ z-C7#a{A&*ZS+qA4%NEPLn zAoLZEkwhv2E5XrFj={MehiAfbU;E}erw@N%!}yVSkNRxI|J8oFwr(T|1cbh1Y>njg z`c(1t*$e+P8P;BTzET=$pLP?`T*$$G6Z!g1x^LV@hP040Vuo7GGF7YauBk9yogIx> zRoF;&XFi?AOGY{82fSi0|J&b>p8WFf-Q9jsh4ZhRHsz%K5B}_T6qHNB496KxS13 zKZsACxbO5YZ@p$<0q#cY?u094elrtSoixm8drgAq4e=!%4sXl{?P-_v6>}!`xE2MM!l6-oA}^ zTl;W(@+3$k;#(7um~w>ecdd>38eA#xL-4FZB8WH+<*4FfT#mj`IDh!d#nXQ@(BB*E z2gz=s@*T*&C~9jC)z>N9-VFX$U%16-sh@Z_nEcVT=+6Il0Ar+bIH2YGL;wH)07*qo IM6N<$f=5Mr*Z=?k literal 0 HcmV?d00001 diff --git a/public/assets/icon_elec.png b/public/assets/icon_elec.png new file mode 100644 index 0000000000000000000000000000000000000000..5f6ca20ede1f3e0b2e2a248bd03350ff78536d3f GIT binary patch literal 8354 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 literal 0 HcmV?d00001 diff --git a/public/assets/icon_fire.png b/public/assets/icon_fire.png new file mode 100644 index 0000000000000000000000000000000000000000..28b44919f78feb2d2de687dd029473f14ccd3bae GIT binary patch literal 8334 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 Y07NV->d(1@ga7~l07*qoM6N<$f@^p`ZvX%Q literal 0 HcmV?d00001 diff --git a/public/assets/icon_gun.png b/public/assets/icon_gun.png new file mode 100644 index 0000000000000000000000000000000000000000..235eb77c0779bcb899c18ab63d09d93816bee6b0 GIT binary patch literal 9246 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 Hu0mjfoF>J9 literal 0 HcmV?d00001 diff --git a/public/assets/icon_passive.png b/public/assets/icon_passive.png new file mode 100644 index 0000000000000000000000000000000000000000..0be4fb97846843e6d66084a29ff1f6f87eb3033c GIT binary patch literal 8257 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 literal 0 HcmV?d00001 diff --git a/public/assets/icon_psy.png b/public/assets/icon_psy.png new file mode 100644 index 0000000000000000000000000000000000000000..18cf0cadf9f33edef5bea71ba7bdaac75c95e864 GIT binary patch literal 10146 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 Q-2eap07*qoM6N<$f)X0w{Qv*} literal 0 HcmV?d00001 diff --git a/public/assets/icon_support.png b/public/assets/icon_support.png new file mode 100644 index 0000000000000000000000000000000000000000..6c9c8b059f6540a68a545a6581380e7e1677feb8 GIT binary patch literal 6066 zcmV;j7ftAiP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}000clNkl(kb-r_&xCA^WgL*1Uw4z zwJZv?7DVb3NDRIY*}3yb%LBMrN}+9J54;y1g^FLvLjb`6+t!8awsOwfG(C{%=zZ_@ zU?4U|41Y_{_GUpfV@WlFQMXclNwd_41!wcW>|dh(ZviCS0e8wV#_EHNnSK6P%V6eR z*A1z@wjoMFom?<8lK9xMP(pu&`uK^J3x|)bt}V_8f#GQTmam1ox4xj4=-)DqZxI6V ze+-xal0!-k2>}oR2muJuC#BftI_1&UuHV?wmA-aU&|{j*PDqqaK z97=z1YI!lg(CQ{C=}ZfVqCofPsIC@I&P+`0iJKF5#-lCwclHf__)L~QAf-I;s{>2` zNC_|w&N&r=d#M`nshT>hs*xR>8Sm;Dy>8Uw?THwkm{%fbIHej^=jhz|OA}9(m!@Bg zh1sE0ThrS5()oJDT9e+EBHa38FzVNV@l*%h}+0VkIPdglt0TV^4Vcp-0$mTx<(JaXN9D$n&!%n7z zRh-j9aWj(GirRV&ie%unTv%B=`>7@8_Q!`tKJ#@=zwwygs6S}cSD%!;UTt*Ze*%~Q zgmb`Q9?p51GqckOWV)OC{&>(E>)s4c>!9k7wr{^F3Q7Io(g$!ITo5o9U=$E&ED3-M zAQ2CT!ngeTx2fJi{4fFyw2cm-+Hy=DW35==;l zy+XLpG0W}l=B-XKJAnp62dHag%y3xYUdqy8gu2w$a@- z>x4iDC;?0pusNU;1FA2XX-nfD))wk}C<}d&ad%t@A>K*eDpU{bwfO^uGvEEfrfcYT z9PI`$co7hn0luY8c?Ecv07L;yR?273Jo{nd1P&>bLkJgC^+Iw5mHH(hn1Ht_2`@`P zkvht2tN+UEa})7+@KKL_+YYOAZd&1Mhh_ERbET!)%i+zRH>KnN6_5~xh557hdF4RB z7wy|wGXXe0v-jPPmo<}L1 zM6A07ba5P!cn@YzokDIYCS7jK9;I+$$nj|d)CxTFx2f{;d9LIJ1>Pz8ECnYclT#CE&Pa7y{*Q&E}|1v`LH z>KbT;*P$R5fD{fSvrt_fKS-mQ_XQ&HCdUdlz{<;XmK)t>1W+ZQ2tX4+$P?-fc@hJq z!l7rYO4x>e4m~?|Vck-}SO`9i0?P+dM!4ytp|(x;wRUd(QasxKq58_&q-%SQg#1HT znB9+ZsSmcfid6R;N=(2ub|Thx11d9*n`=|A@2`l389jW>yEP-~XHXh)qm7Pp*=RzY z5ZIwmQ-m0|2Q}q-vHr$P!3ktTsbOe^!%z?n01}YQ1hZ;pt-Nr!IilXJX=54@vay@m z(6Y(_b;D@h;=3gQ%LXEG+V7912678?Kl1tVJkipvua)bY1Oj)3W9hHOyFT=wmfZ0X z>fbu->ggoY!Vx{*aferpcc7&GbotWLrpvcN@L6QhNE>u^fcS#L$d}`4 zFu7xk#~bYiC@8KlQ~;C!Drq#q^bjB(=utXH_HeBwrE&GRRytNwAvylT-6+7_{CHvI z{GT+Zi{F;i0CT;703-)AzCj%VfJ$)AA$T2<+ttOKy{u5Gs+!)xxlJvn{7*w$w(O`l z9dKO_I1j^h0nPyDEz?sJq&k{E>C*D%<(2ej>UDVx)C76FNNQ{UkGyEpIr zXvWuhO^r26P}*?zw+&oE0#pDBZN#J_C{!irZ|?~1)ob{OwV>`*p>321B&VeArt_hY2He) zChk?UFOyiSaTn9u;aG8K8yzrYBg-`+!RooCQue}+h(RFWg##eR3liIB$51@;1Pd0?Y+G3ecq5Se~7psniNjShVNq+==n=Xu9UAknVr> zZcPJ3d0}<&wfn+}kstWzNV5b`%&tu@y!pcCbzcs8@7*AVzX6iGMK2173MwmyK#IZ2 z!r9Wj=9sFb2X5U{qj5k0iUc$l<>E@=S;Z>tON5I@SC(F%cRMq#;2fG*!R&?8e^7Fh zbK%sM&k=>Ht_?^9AZp_nN*lC=c-u5h8{%AAwU6iK4u305R$pM|!kp4E1gh%*Ay6^@ z%vA&0g23YJ8?X6z=@H-XBM&Qj3)T8lw=Z7WeouXI;``2-AHtv64aYJdIR_yGM9~3o za61p!6+p`J%F%~D9jP7E(_IhTtf2DR?99n0L(O;o*mPupSSCxxG*HD0f(AP%)lsin z6|GYLA`gH6L^#&|XvDia<+=(S#{-Q48kJBLixbIQ2-{U%$F{3wZkLvh&rUt{kez(* zQMYPXp|A$1p36}KK!vcc3RrH892X|ve8ly?I?~m3!(B?aU)_A|=!0ipZ#%}_mrg19 zS8@6^0*^lgN+`@y7E&q=-jT+=MDki`>coMM*XwU4w~cmXC94Bcf=~i-mC3)+K?+J0 z2vL4AH$QPUrs{tsSs+II+f4!gY{j(JY%7~}tm>*&D=gGkS7zW?xzYYKgjEKl3q|#V zkgH8vlKzb0(~IKLkM>$gd&o@mZw+^jb+#;*zdC>Jxx0mQD@4&?nMDu)xv8fhyitHS z06ZHmLIJ9ngph3GX7Tf1ZwS@l)D}+8zww0+`1JsSBj1#s@1{>~>#3D~QsFV>4wcH!Rc+q(CIZVse}(|5!?xBl7m#EGxSD+@*mU@?H)22;KS z!1x9KpO7GgLeYbgYQaV(%3o|pN~nW(T#5_As^Ham6fYe=bm`m^pL69Z)@!)vG1{(I sNUE2j371zAD(QiSegH21KR*9H0Ls59)c*;tr2qf`07*qoM6N<$f>5!HLI3~& literal 0 HcmV?d00001 diff --git a/public/assets/icon_trait.png b/public/assets/icon_trait.png new file mode 100644 index 0000000000000000000000000000000000000000..90ca706f7f961b0e3bbff6dac1efd48af11e46c7 GIT binary patch literal 2580 zcmaJ@dpuM9AD_tNQi|kSr-_MO&bC~(CdNjSiBTxjY=>sHv$n%VsgUlpu0oedg-5rS zqVPjh9@EX`c@h;xcd4FKO7#0pPkMfT{Q8~O>zwc9^?tuUxAz}sdvK7yiJ`S23WYLZ zFJ^MJD^>df2Kw4>Nki*h?P7(nB9Krx4pH!A5Q-syVazKvM7g{4+ zoGODtQ-i|zsUkjAfbm)c(3Lc;fEYq}fKr?&k<*l(nD4qY?SA~4hylJs5RoV5@1!C) z!GJF;g8)|oi06ZDAmBzKkSGh>-Q95j86<&3kW3_z@g#Q|g-ioM;Kzf}Mw1ERXk4b> zk67B1CuR+TNNGf(LZKiiCsQ&qfOd|5tTeCkwgH;OPT<3IR76i7XL)c5iaykzW-BL z9+o17h+IexC&~EQ!Nu8+hmz8KWe^X6WnnO!IMK!6H829p*T7Q1H`Emf7fJ-MLjE1i z;n3I;Il`0hAvV(!qvaEXLIDl*aPxC>r;0zVln2EG?e6aG3E@Rxc&xPo8jLi#0_s7;1A zKGy#l^Td_bJLB7*rqv#P+8&ZU^5wE%I?<@>jFc=Z5O4rwxjXE zJu`z_Y(mVTVY>o(<(3)L^ZS+n)1-sW(mB# zb++haE;llGr_k$Gx1q%0;SYz7*Z61-+$et5Q~mJ$@=dslmx`!ozOFaHIw#nRcdP^U z1Z3GyvEYNXv(d5o+fDM(I$4jvBU7)K*`cNtFiQ1qp*MD!AupuPbyEvic_aOGbdRmY zr%!wq+^G0R0$H~X-Pe2l*eo}A(zc@|S9?L_iji*{)Cubx zx%3U|L;ieldh-YKftfqv4>hQ#)T9*$Eclb65p}*XPJUr)Xc+MI%i$w~UW51Ns)h&J z5LV%ZOEu?uRo5cVw_Zo-W;`1td=4eL)G0#0y?eZNu*m-s#-Y7u?c^`Ow|;||6(c4k z6zkb(_Uc(h*?@^YbfYk{@$A5t$RU?9=a@_0g*z#|_>{2_&C?|XUxt^!bqRqVbJ-y| zOLEUtvQ=;^5*YMQfb?+~@Cddn7Ex?h17aONC zwLOld)po<~UpL3x64}Co=G|R1+B`?cwH7Rg(C8>TO=4x_^WcvBXS#X40|}yG|4*Oh z`R5G$)g?|-X3VaxJ=+xua|qEEO{X=`dP+vJ#)B3p2Bfm zILk2+;8T0ykq{y(v==kvk~`YlMG*6G#zQonnia{{17*SK6J830;BtS32#2! zuTk7T&#(Zk%w1OX-WbWriOLLf-t3cGKbqd$aaA|e`8qft>=B%CQFHGtXE5SNH{9M< zIP|Y{#+jz4nS0Iks_(csI6#3p=yuGZzE>@s0rRe?xth62ufQtXkcc^5gtN+ht8awk z?o6YrW@cMG-Rxp?@IvK<#=y59KAiJ2dH=GlsQ&)@=jXhG(8W9ElNxds=D(42v^v)w zUsY6c4n3BgU3G_*)tJH>&Tle2txN~H&F+ToxIhUXdu>(VDynpE>rO>&YTNZXeJNeLMNJ2i58k5NkG^;dwNV5ohqGEE9}nc&TDhV2TOfU%Hg;826|MIY z=Of9nQwQeRw08_$-Y(*+nr~Hf7+4OU%4}$C#-yo938i{Y$LOU4cs%}9*>5;*czC!~ zb&W_(Jdo}DSL^A)$Cu)w_y2xc;ml?<~h0mDbM%Z>T}(jNO_MJ_`ltzZWJ!p`ZapR!rAu@%b*$~de?og$mm cT|dbfW#HrF6TXKLZ*U+Ny7U_>iK@3 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 QBLDyZ07*qoM6N<$f~>f|Gynhq literal 0 HcmV?d00001 diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..df36fcfb72584e00488330b560ebcf34a41c64c2 GIT binary patch literal 4286 zcmds*O-Phc6o&64GDVCEQHxsW(p4>LW*W<827=Unuo8sGpRux(DN@jWP-e29Wl%wj zY84_aq9}^Am9-cWTD5GGEo#+5Fi2wX_P*bo+xO!)p*7B;iKlbFd(U~_d(U?#hLj56 zPhFkj-|A6~Qk#@g^#D^U0XT1cu=c-vu1+SElX9NR;kzAUV(q0|dl0|%h|dI$%VICy zJnu2^L*Te9JrJMGh%-P79CL0}dq92RGU6gI{v2~|)p}sG5x0U*z<8U;Ij*hB9z?ei z@g6Xq-pDoPl=MANPiR7%172VA%r)kevtV-_5H*QJKFmd;8yA$98zCxBZYXTNZ#QFk2(TX0;Y2dt&WitL#$96|gJY=3xX zpCoi|YNzgO3R`f@IiEeSmKrPSf#h#Qd<$%Ej^RIeeYfsxhPMOG`S`Pz8q``=511zm zAm)MX5AV^5xIWPyEu7u>qYs?pn$I4nL9J!=K=SGlKLXpE<5x+2cDTXq?brj?n6sp= zphe9;_JHf40^9~}9i08r{XM$7HB!`{Ys~TK0kx<}ZQng`UPvH*11|q7&l9?@FQz;8 zx!=3<4seY*%=OlbCbcae?5^V_}*K>Uo6ZWV8mTyE^B=DKy7-sdLYkR5Z?paTgK-zyIkKjIcpyO z{+uIt&YSa_$QnN_@t~L014dyK(fOOo+W*MIxbA6Ndgr=Y!f#Tokqv}n<7-9qfHkc3 z=>a|HWqcX8fzQCT=dqVbogRq!-S>H%yA{1w#2Pn;=e>JiEj7Hl;zdt-2f+j2%DeVD zsW0Ab)ZK@0cIW%W7z}H{&~yGhn~D;aiP4=;m-HCo`BEI+Kd6 z={Xwx{TKxD#iCLfl2vQGDitKtN>z|-AdCN|$jTFDg0m3O`WLD4_s#$S literal 0 HcmV?d00001 diff --git a/src/Entry.vue b/src/Entry.vue new file mode 100644 index 0000000..2271c86 --- /dev/null +++ b/src/Entry.vue @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/src/assets/icon_ailment.png b/src/assets/icon_ailment.png new file mode 100644 index 0000000000000000000000000000000000000000..f8c718ee68bc41e1d252d8addb6af8599f3d4ab1 GIT binary patch literal 5960 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 M07*qoM6N<$g1qfH*8l(j literal 0 HcmV?d00001 diff --git a/src/assets/icon_bless.png b/src/assets/icon_bless.png new file mode 100644 index 0000000000000000000000000000000000000000..131b3ee825c8c021760f3a2fbe34e4134a0919d4 GIT binary patch literal 9177 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 literal 0 HcmV?d00001 diff --git a/src/assets/icon_curse.png b/src/assets/icon_curse.png new file mode 100644 index 0000000000000000000000000000000000000000..288f5f0894d5dfdc9886b0e0c3d875d4348625ad GIT binary patch literal 8890 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%0A|XZ3Q1S$I z&qXT_aN)`UEihWrDFfx(6VL zOMdND8ZXXH?0<5ubgV_~*d9L~&1!kz2K)za6zQ!u%M>^12=VuO@iM0P0H7GKmQ+Kq zCKew6o?Ucy7pabv2>^?UIZW#6Lr-2_1QdXm>*eYX!_tv|wo}`_>t4F!m_A#4m&=$% zEWr|AwrykJgKQtw0>2szEMo(O9ac>%C~e7m(Yrs9kE{1v?B!bN_yvN80|G*98{ZW) zB$R#8;@fiJo@n9X<$(x+2Q_8;mVuQpESt(+2p1+{0>*6h5A zWbbB~r%%Pm1)>cvw>XC5Fe^gFOVh{N7BW9mThH{X__~+}5gi~RlAs1gyEGz_Qc%Tu z0udSnf~0ncdoE~$s#+X-)iP(-S$QctmHHUKr~KTV{SEcNHZq_2OSx&`=dI5##TtGAAtxmVt1j&VwqskV5bMOb?!$#gmVGB(#Z zS{Z%(s6X|k@5_mo-ryqVDP!s(sfuK^O5D3W6ZMt_W}|fCF*|j~aV`yyFx3Ql)o)G8 z;ayX1oGH&7VI{Epz08K2b^P?Le(ykL^=e8&P@ufX7eRs&%y@=TS)PBRKKIBAwcyCp zjoM#N(ioW|APh9u)uQ}`*ER65NbboU*?6>FfR2jVGZ(2XPPItp6O!MCrEeadoEdEk z_RdIWdLT$Xx6k(W-R`fVGn1j@T8h}F$FwXcKn0dwV!7>+#Pgrb#&UPL{x>qH{sa*m zBaoNsY^y~1o9wy+pG)<=wI`drb1B$}HO+d&E)b|rIb29NLvP92V=LCPn;P!Z+er7X zCxvk(YoLQe8#W$G)3&z{$9JB6KI zhj&kqst?k|TH?%iTb@f_=7ovTW95c^=thzI#(JAOxJG((T0!24kgpoz1}u_tTp_i^ zscB*h#Z9uLm3SSM4~^NdM{+ z-C7#a{A&*ZS+qA4%NEPLn zAoLZEkwhv2E5XrFj={MehiAfbU;E}erw@N%!}yVSkNRxI|J8oFwr(T|1cbh1Y>njg z`c(1t*$e+P8P;BTzET=$pLP?`T*$$G6Z!g1x^LV@hP040Vuo7GGF7YauBk9yogIx> zRoF;&XFi?AOGY{82fSi0|J&b>p8WFf-Q9jsh4ZhRHsz%K5B}_T6qHNB496KxS13 zKZsACxbO5YZ@p$<0q#cY?u094elrtSoixm8drgAq4e=!%4sXl{?P-_v6>}!`xE2MM!l6-oA}^ zTl;W(@+3$k;#(7um~w>ecdd>38eA#xL-4FZB8WH+<*4FfT#mj`IDh!d#nXQ@(BB*E z2gz=s@*T*&C~9jC)z>N9-VFX$U%16-sh@Z_nEcVT=+6Il0Ar+bIH2YGL;wH)07*qo IM6N<$f=5Mr*Z=?k literal 0 HcmV?d00001 diff --git a/src/assets/icon_elec.png b/src/assets/icon_elec.png new file mode 100644 index 0000000000000000000000000000000000000000..5f6ca20ede1f3e0b2e2a248bd03350ff78536d3f GIT binary patch literal 8354 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 literal 0 HcmV?d00001 diff --git a/src/assets/icon_fire.png b/src/assets/icon_fire.png new file mode 100644 index 0000000000000000000000000000000000000000..28b44919f78feb2d2de687dd029473f14ccd3bae GIT binary patch literal 8334 zcmV;9AaUP`P)KLZ*U+Ny7U_>iK@3 z-|wIIy59B2-s`&ez1F(d`s{1(Ywr($h#)N?AqM3Hh>c5TdfHh^`UeC`l12doDo}wH zRA^yI2^Q||&HwqMSut-`sfN(DWsK&;|hXV-D0DxlXf8>eyubiQO za?)rKfBav)0002lnvs+cLraJMYm1FZ`CUUA0N5g#_MQO13xL!|$2)lf02=_(6&LF2 z1_0au$Sp=Vz^eZ=GR59!l|LPpWEBVi`~WC~)2y8UKokJwPl@)iSoO7OOn_f})RmF! z;JxaHGUGj0^P{P8F|N+5d3Hw99e(@O^duXv-<*vMTL%E(1VArlM0)%E(uww_GJIVD zfE@rGNQ(AyT8({~5ozW6o5M`;^Z@`_0QBodrmg2M4kj3z^t&%iJ&b1K1ptBon0a!f zxBahJ%%7g*@BCXsINjRjmj*1H9_O>F4NFc)w)9+$%}*9vE1-=$H!S!&X|5BLpN83NM{C7P%#Qj%4t2nzd zyWXmb&_63<^@sKEELQ(9qi~1^r++iCo!ABJCf1GJ#=5XJki@QF?N}dn32Xb0JK-%b zA>vOpPoP5_L_-WPeseTWX-;YW{C}#`RuwRT4oLvX^i9bC09Nq{=}bmMWU{11LP88( z(jhKPT~$(BQ%fJfKOj)@*W=@hCm;ZT@ZbLji`ooeAOV0}`v;>B19ZLsAhZ61$!`Z> z#{q7KgrzW3e_=QP00CHm19(9Q#6boWK@GG)A56d;Y`_uRz#9T!1B5{&!~zr2U<>3x zJ`}<}I0zMR1dc;JoQCtz23^n%H{dP|z$17Dqc9F1U6L@iJ!)Ef;#BhW-N1IgBsUU`luXJem6MuCS4e}Tang4(g)BkVCfkw& z$#LXdaw)lye3?8*o**x>aI(m;7_+#sgtMfx>}9EC>14UjGS0Hd%EhX{YRc-(8pWE! zTE=>Y^*ZZw)-MzaMVewn@t`m$*_1NMS;{TSYsvx}H=8n>72A5Y6t*I^lWbSnp0ItP zQmOJ(b7~+pnOa0`pkAZCq<&}TVOM8&U=L@{Vy|RxWgle!#KFQL$6>*-fg^*Xl;Z-& zeU52P7EXCiD^42cR?bS!4$jA%b6h-JT3l{iv0S^k8o6$BO>&dC<+*LR!@2Xgk8@w+ z9^=7yWO%H2!g#jv)bd>C8RsSPD)2h+M)4N%p62c6o#Er=)8+H!+r(GNcZqM5ALEzj zci@lV-^+iVf0+M=fS7=V09~L!;Eceaz`US{pt&GjaF<}S;3L5wLXtu@LeWC|h1!H( z2;;)a!XCnD!qvjpg{MV$MNCA(M0Sas7kMg*iYkkGif$G?F4`wLCnhdtCzc>qE_O|9 zTAW|pTs%trfcRzcDG444GYN*o0f{RT??4?qqj!E@PElMj$ z`$*?XH%q^eVU;nI*(h^BrblK*RzlWAc8lyO*{5d?rSM#ls<>7$QL#qxp%PKaP$^oeN@+kDRn}9ERIXIMuY#)Rt1wimR34}j zRE<>QRBKcptFftBsHLi%QhTk=ukNg#tKO#mNkdj6P-DNwO^szuJc*}@jWNDOT)Md0_tZ$rbeBStP6E%})lSY%tH41C!YiiewnM#|| zOplq4nn{|4m>o46T`RSgwzg*N8*>@+aPvCz2@55QD2pbGPnMdNOv@I_c`IY9OslKb zn6;htF6(|9ZW|w)3Y(X<(zX${r)+2J^z1gx{+a%F1B3$@0qudL zK;OW+z`1oc>kh6PU$3`5fBkTfLeQq5+Z%*8#B8_}%n?irz7RqP@e64T`AKu5)zIcb z9YPO>&V*To9SZvpZXSLhe2Q*LFQ!jyG~HOdaWcX*q9kG}a&2U3s#$7f>i0C?v;c3~`inOM;&a_3gjkX80Kj?7m=;<`+Z23$5uajL;U6q&k zF73U{dO7d%%9V^Ob5|3tPIpIikM#uiJiF$9?P0G+Z~t|t>$h&$-ne$t;^viGrnkCo z8{h7@V|b_SuKwNDKE1w{dwTa;`t|!;?;G52A21r|e6Z%h<-xUs-9y$xHy%1Xy!*)Y z(Su>1;gQGdACHcNk4!#^dGh&b>eIz%+0O~jcfH_zQTkH!Wz8$4SIwjPqnBP=zwUeE z_2$`F*w}}+NpF9S=e?u8E1i&-XqeQV?3%Kj8hF3%{rHE34~x_JAGtmr{-pTn;@{?f z_s#gvjDKc+UYXtfMd-`Puex7*=G^CAevAFKIKS(=(D(WU!-bna{C-RRfhOe!ddBvXVe!(f|Me0|0d6Mu6Fq0Mq~go&f+>_Fvy$tA-%}C;(tU1xZ)~p-=+- z2sh%7)T1aGi;iJ*Y!)vhXc9(=Rir4gHH$neI|XIKs9fwS91fgJu4CLUc*Xfb`OgdD zLLtIeMJ2=v#6L?0N!^t(mOUZQtB|cYq3o*Ctj4Y$rg1@YQQJf(N%x3eul{R;1tT_N zVH4#whNjkLu4@C$BP~)b^Q}s)>uox1@7O)HpLCda!ksx?L|ql!wA_t7EIl2(T)jPg ze0=@<{QUz00s{lr1+EVa3f$ly>>J`qa|yK#GYi+FD{qvD;E5zfE;2qvy^ekub2GLh z?o@nL!k)x*CN0S#St$8aN_Xm^wD?Vq=`!g{8ILzNZ`qj{veh7qJ!?GsubkrC$Ze*1 zJb9DbFXxx+h}^lRfWKg=5Z`UK=k#8~edqTtl}H>=IjCN$c}S~Fr(Cx}uTt-@ewA^x z?GgIXvSTC1`D!gr1l7fz%&5O@oX>5enkng`E*JTG-2;o?B6Qd>-WSx0N< z{l6x&R!o#sg z_lB=L?i}fQa^-3Fv&+w$U+jMw^U88mXms}Vz?+V-`nQ$i``&GzNS}Hh-!YyFW)LX9`y#cRkMl?{|I$ zfgr&Wq5C3KQD?E;;{B3TDG%xWG6QlHc^idP#X6-2%3oDE)fClrHHX-jR1tS)XY<_kNN7vijA{(fK!8W6ZY~#%Cu~ zCnKhgzkf9?^3ng(;lF1-r+!hJ0I<@8|xwxBTX1Mqd)3UbV!U+%;(tlxa@e_ z1eS!p#NABCBy!UA0e zPCqk$KKwF!)a8xW+kNlmrw&YC|Li^gWMu{5*MB$w0HQv?30nZ)0{~t|04It7d zC0UvrNj^(nVsU0U%JPlXo%J+@N{OQkvKg`+qf)4;)G>As_HGVsj#^G3&V5`gT-&)( z?pz)MPXR9{Z#kbF-vxea{t3)AG@d(b=Y3q1U26Wbn;M%-GH( zbxnimtF=Preir4HudEeqQfzP73p+$O9&|e7oa$okvf|q9w%a|*gW;Lyb=Lc>udtt& ze^Ef+I_i3lpwbN^AsjTFP`fan@Njz8##0fK46Ue~=%HA}xa|0+i3ZHlr0*$ysZD7g z(*-g#H(PEA$jsW>k_FIs*UNa;fdgLXS~z?2TQw z%J0*K*$Aa^rf!P3NBF$>rtct>;_I_k=%1fLEYZFi;2;Y7!0* zVG-#PO%hWTn-o7O!H`s!{3g{cy;mk!R!5Fi?yY=}LakzfQj&6riifI=+8T8O4LwbL zEn{s<9T(kodU5*s26cw_jh0Px*TkEiF`G3vvdFU>vR1IkvVCT6;!x$deEe{>6&HSPrp9)-eH5M-JF)!M(w`Jd4 zv2{t!L6%bHp^%Y7lR{*yM70ta;Np%K0M~bzAPV zg|yFg?(7o1)N;kI8|`W7W!w43`hCtN?%# zctaL6zz{4WN{Ba-jWi)6C=t~~L(%SV7^!Zb_x4}E8!t{IX*<-AUG2W33rK9 zq9?JO_=coL$|T(<%ae1+uUYI^&a=w0R#NyW2if@9DyS0FI(AL=E)HjoSDYza99&J@ zF5I7a%6YAMXZeov`wCD5x&ex&kJ^@G|^4Q@?UEl2Gbof6&4dLIoW4gHLYjR)88nFg6Pu3fZnw`{a# zv5B>PZ13oB!^zos#FgO=9+h5eyx;g1`L7L_TX!yq8LS^N8(JBzLO&g$99b77AKehE z5!aDmmpGCXn?g*j*<_LaYV)Q{;?|;U-kkDn(s`%zO?KQX2rEQ(pDJ3vkGQ|GMEt

aRx|YUs736T9lZ)%!QJoZ@XtK0VxQbhi3D;X>TSC#`mE9UYpT zja{;rDzC6#&Fp@E&9ArjhW5>4x4G}+-JQP|)BkoL=)sdAzlV>9y&vCxqW!e^*@qWq zFN)61!%)3n!_oigtr+&CPz5Ge*Z^xN{&jGWpU)Fq;nIp};`PMm~{oVBY z%tFo&?jJ`NSr!u)pZv7^S^jf!$zW;w(!*t$WybR9<(U=Tl}#&ut*ihfZPd{Q004x| z5`ge>W#x-J0I3*YY5&T~V$I6R(s2OnIl$GJUwb{wfDRM!<<`#kQQ>+#Ik;|F$(Z7|qSQ`#nD zOi3w8X`Fnt3WXxkQbp<`O$tpFwG~nRs#J}t()6oRqoSZhL4Z&r(V&o;CQ?G7B&4N5 z7z|EKjqUh>A2S|%o_FS+(~r4>$HssS=|?2aXy(pb?Yqx9Yp=b}K0{h-eAWiTXK>sF zeHZjy(04&EeB4*$4Tw8&&}x}Mp;f3WrE38m?z=KMkg)&nh$f*ll_6YhO>%dyL;5#J-B5MUuJx-HTNOMGup~ff0M0CH4Gz^>VA zC};w-`^uLut~I#UV0zj!X+Svcd_+Jt3kZ(!GL9M5BjhoQ*JbDrKd7vJVohTms^kPf zaey+eHw9=m6K&y7MUa{xNdsg9PTE~feoz4_nkBJWriC_YT7sHr8uTVn^uTv~zLz&H zDO(z$$&|&R+SbPS`k={CR_D)=0LKl@O_QRKOI9DrB}-;R4LD`4s&K&IVr z(~UQHu3>vP#<;|(@z|M;p~>f;J0CgRFw5-MHU9 zvGu-tw>4J*(5YOR)XufiIKPpX5aFW>D;$7WCSm{GR%5hnLPx~|did$NFv0y>)`!v%1?U<;G9kZpnk zhPV(I^%$ea`-cy_-5=R=pf}YiI5X(~Erf581UTSVa1uQe?;d}azznH*rEnffdY zy>=4}1dv7+KvEFKyhZpZk&K?YIQaN;7b351m}5SX;nZh)P-k!loD0C=0Aql*fg(bW z6g$`Kzx3joo2YN4=DRnpsx2-x72qV@q+>atjAqqJ=3Z6qmdO#}9Q}@iPZBmxUFmN> z(L1^G_(Z1XM)Qe5Lmlez@?FBPkQy70$uY+=lZpq+O|bf+@Vi%|dzam;#}yUL->zA* zy|Ua7u!PI7o>>KEXqe}0xI)6q5tb6i`@_+cS$dCTkYv0U4)L>oz8R+e3D5BM0st-ay0?4?bpR2Yx z0M|%K;Jt7hM=tfBIUTmY{(jtv&ilCak8HB*g^xR*JQ7XsE7qkumdhYtwqgm!J%l&M z;)ibKpgnQbId9PS{_=6pnR9~)fcXI>T^(cQR-W%4m;%>8tz}~M^3qVvBKh}*(xT9U z&xlRMON*uiYidLi@w4q`hMk2p z?_Kesql06jIZ)?CmJtkfeHT03#xe+pP@QyO$uw$O8nI$3w)NOR^!EU|=f$)jdpNCA zc39a67g^|v#iCf?h{8FUaM1tZ^;Vb&fpY7#oq_UJp^qi07V zcIV`z-4V{H*N$c8pNKO~E*pris~4VcP?@>!)!}g0?VRskX=wb#7i)vRA(pg=*&wEK zdkhf>gbN0L@2}mxTMk~F8ou2#B>g}BpKcL`C7{|2LYo8(mfyyShWiN5ccpCmPW=CG Y07NV->d(1@ga7~l07*qoM6N<$f@^p`ZvX%Q literal 0 HcmV?d00001 diff --git a/src/assets/icon_gun.png b/src/assets/icon_gun.png new file mode 100644 index 0000000000000000000000000000000000000000..235eb77c0779bcb899c18ab63d09d93816bee6b0 GIT binary patch literal 9246 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 Hu0mjfoF>J9 literal 0 HcmV?d00001 diff --git a/src/assets/icon_passive.png b/src/assets/icon_passive.png new file mode 100644 index 0000000000000000000000000000000000000000..0be4fb97846843e6d66084a29ff1f6f87eb3033c GIT binary patch literal 8257 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 literal 0 HcmV?d00001 diff --git a/src/assets/icon_psy.png b/src/assets/icon_psy.png new file mode 100644 index 0000000000000000000000000000000000000000..18cf0cadf9f33edef5bea71ba7bdaac75c95e864 GIT binary patch literal 10146 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 Q-2eap07*qoM6N<$f)X0w{Qv*} literal 0 HcmV?d00001 diff --git a/src/assets/icon_support.png b/src/assets/icon_support.png new file mode 100644 index 0000000000000000000000000000000000000000..6c9c8b059f6540a68a545a6581380e7e1677feb8 GIT binary patch literal 6066 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 literal 0 HcmV?d00001 diff --git a/src/assets/icon_trait.png b/src/assets/icon_trait.png new file mode 100644 index 0000000000000000000000000000000000000000..90ca706f7f961b0e3bbff6dac1efd48af11e46c7 GIT binary patch literal 2580 zcmaJ@dpuM9AD_tNQi|kSr-_MO&bC~(CdNjSiBTxjY=>sHv$n%VsgUlpu0oedg-5rS zqVPjh9@EX`c@h;xcd4FKO7#0pPkMfT{Q8~O>zwc9^?tuUxAz}sdvK7yiJ`S23WYLZ zFJ^MJD^>df2Kw4>Nki*h?P7(nB9Krx4pH!A5Q-syVazKvM7g{4+ zoGODtQ-i|zsUkjAfbm)c(3Lc;fEYq}fKr?&k<*l(nD4qY?SA~4hylJs5RoV5@1!C) z!GJF;g8)|oi06ZDAmBzKkSGh>-Q95j86<&3kW3_z@g#Q|g-ioM;Kzf}Mw1ERXk4b> zk67B1CuR+TNNGf(LZKiiCsQ&qfOd|5tTeCkwgH;OPT<3IR76i7XL)c5iaykzW-BL z9+o17h+IexC&~EQ!Nu8+hmz8KWe^X6WnnO!IMK!6H829p*T7Q1H`Emf7fJ-MLjE1i z;n3I;Il`0hAvV(!qvaEXLIDl*aPxC>r;0zVln2EG?e6aG3E@Rxc&xPo8jLi#0_s7;1A zKGy#l^Td_bJLB7*rqv#P+8&ZU^5wE%I?<@>jFc=Z5O4rwxjXE zJu`z_Y(mVTVY>o(<(3)L^ZS+n)1-sW(mB# zb++haE;llGr_k$Gx1q%0;SYz7*Z61-+$et5Q~mJ$@=dslmx`!ozOFaHIw#nRcdP^U z1Z3GyvEYNXv(d5o+fDM(I$4jvBU7)K*`cNtFiQ1qp*MD!AupuPbyEvic_aOGbdRmY zr%!wq+^G0R0$H~X-Pe2l*eo}A(zc@|S9?L_iji*{)Cubx zx%3U|L;ieldh-YKftfqv4>hQ#)T9*$Eclb65p}*XPJUr)Xc+MI%i$w~UW51Ns)h&J z5LV%ZOEu?uRo5cVw_Zo-W;`1td=4eL)G0#0y?eZNu*m-s#-Y7u?c^`Ow|;||6(c4k z6zkb(_Uc(h*?@^YbfYk{@$A5t$RU?9=a@_0g*z#|_>{2_&C?|XUxt^!bqRqVbJ-y| zOLEUtvQ=;^5*YMQfb?+~@Cddn7Ex?h17aONC zwLOld)po<~UpL3x64}Co=G|R1+B`?cwH7Rg(C8>TO=4x_^WcvBXS#X40|}yG|4*Oh z`R5G$)g?|-X3VaxJ=+xua|qEEO{X=`dP+vJ#)B3p2Bfm zILk2+;8T0ykq{y(v==kvk~`YlMG*6G#zQonnia{{17*SK6J830;BtS32#2! zuTk7T&#(Zk%w1OX-WbWriOLLf-t3cGKbqd$aaA|e`8qft>=B%CQFHGtXE5SNH{9M< zIP|Y{#+jz4nS0Iks_(csI6#3p=yuGZzE>@s0rRe?xth62ufQtXkcc^5gtN+ht8awk z?o6YrW@cMG-Rxp?@IvK<#=y59KAiJ2dH=GlsQ&)@=jXhG(8W9ElNxds=D(42v^v)w zUsY6c4n3BgU3G_*)tJH>&Tle2txN~H&F+ToxIhUXdu>(VDynpE>rO>&YTNZXeJNeLMNJ2i58k5NkG^;dwNV5ohqGEE9}nc&TDhV2TOfU%Hg;826|MIY z=Of9nQwQeRw08_$-Y(*+nr~Hf7+4OU%4}$C#-yo938i{Y$LOU4cs%}9*>5;*czC!~ zb&W_(Jdo}DSL^A)$Cu)w_y2xc;ml?<~h0mDbM%Z>T}(jNO_MJ_`ltzZWJ!p`ZapR!rAu@%b*$~de?og$mm cT|dbfW#HrF6TXKLZ*U+Ny7U_>iK@3 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 QBLDyZ07*qoM6N<$f~>f|Gynhq literal 0 HcmV?d00001 diff --git a/src/assets/main.css b/src/assets/main.css new file mode 100644 index 0000000..0af4d15 --- /dev/null +++ b/src/assets/main.css @@ -0,0 +1,132 @@ +:root { + --color-ui-background: rgba(24, 24, 24, 1); + --color-ui-background-faded: rgba(24, 24, 24, 0.7); + --color-ui-text: rgba(205, 205, 205, 1); + --color-ui-text-faded: rgba(135, 135, 135, 0.9); + --color-ui-header: rgba(225, 225, 225, 1); + + --color-ui-dlc: rgba(129, 0, 0, 1); + --color-ui-max: rgba(216, 165, 32, 1); + --color-ui-treasure: rgba(127, 255, 212, 1); +} + +body { + background: var(--color-ui-background); + color: var(--color-ui-text); + font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, + Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; + font-size: 15px; + line-height: 1.6; + min-height: 100vh; + + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +table { + border: 2px solid var(--color-ui-text); + border-collapse: collapse; +} + +th, td { + border: 1px solid var(--color-ui-text); +} + +th.column-header { + background-color: var(--color-ui-header); +} + +thead { + background-color: var(--color-ui-text); + color: var(--color-ui-background); + user-select: none; +} + +.dlc, .dlc * { + background-color: var(--color-ui-dlc); +} + +.max, .max * { + background-color: var(--color-ui-max); + color: var(--color-ui-background); +} + +.treasure, .treasure * { + background-color: var(--color-ui-treasure); + color: var(--color-ui-background); +} + +.centered { + text-align: center; +} + +a, a:hover, a:visited { + background-color: inherit; + color: inherit; + cursor: pointer; + font-weight: 700; + text-decoration: none; +} + +a.redirect-banner { + background-color: var(--color-ui-text); + color: var(--color-ui-background); + cursor: pointer; + display: inline-block; + min-width: 100%; + user-select: none; +} + +h1#page-title { + min-width: 100%; + text-align: center; + user-select: none; +} + +*:focus-visible { + outline: none; +} + +@media (min-width: 1280px) { + body { + display: flex; + place-items: center; + } + + #app { + max-width: 1024px; + margin: 0 auto; + padding: 2rem; + } + + table { + min-width: 100%; + margin: 2vh auto; + padding: 6px 4px; + } + + img.element-icon { + width: 2rem; + height: auto; + margin: 0 4px; + padding: 1px; + } + + a.redirect-banner { + margin: auto; + padding: 6px 4px; + } + + th.column-stat, td.column-arcana, td.column-name { + padding: 4px 8px; + } + + td.column-arcana { + min-width: 90px; + } + + td.column-name { + min-width: 200px; + } +} \ No newline at end of file diff --git a/src/components/DlcFilterComponent.vue b/src/components/DlcFilterComponent.vue new file mode 100644 index 0000000..8e5ea14 --- /dev/null +++ b/src/components/DlcFilterComponent.vue @@ -0,0 +1,111 @@ + + + + + \ No newline at end of file diff --git a/src/data/combos.ts b/src/data/combos.ts new file mode 100644 index 0000000..e0124b2 --- /dev/null +++ b/src/data/combos.ts @@ -0,0 +1,383 @@ +import { Arcana } from './types'; +import type { PersonaData } from './personas'; + +export interface ArcanaCombo { + parent: [Arcana, Arcana]; + result: Arcana; +}; + +export interface SpecialCombo { + parents: string[]; + result: string; +}; + +export const ArcanaCombos: ArcanaCombo [] = [ + { parent: [Arcana.FOOL, Arcana.FOOL], result: Arcana.FOOL }, + { parent: [Arcana.FOOL, Arcana.MAGICIAN], result: Arcana.DEATH }, + { parent: [Arcana.FOOL, Arcana.PRIESTESS], result: Arcana.MOON }, + { parent: [Arcana.FOOL, Arcana.EMPRESS], result: Arcana.HANGEDMAN }, + { parent: [Arcana.FOOL, Arcana.EMPEROR], result: Arcana.TEMPERANCE }, + { parent: [Arcana.FOOL, Arcana.HIEROPHANT], result: Arcana.HERMIT }, + { parent: [Arcana.FOOL, Arcana.LOVERS], result: Arcana.CHARIOT }, + { parent: [Arcana.FOOL, Arcana.CHARIOT], result: Arcana.MOON }, + { parent: [Arcana.FOOL, Arcana.JUSTICE], result: Arcana.STAR }, + { parent: [Arcana.FOOL, Arcana.HERMIT], result: Arcana.PRIESTESS }, + { parent: [Arcana.FOOL, Arcana.FORTUNE], result: Arcana.FAITH }, + { parent: [Arcana.FOOL, Arcana.STRENGTH], result: Arcana.DEATH }, + { parent: [Arcana.FOOL, Arcana.HANGEDMAN], result: Arcana.TOWER }, + { parent: [Arcana.FOOL, Arcana.DEATH], result: Arcana.STRENGTH }, + { parent: [Arcana.FOOL, Arcana.TEMPERANCE], result: Arcana.HIEROPHANT }, + { parent: [Arcana.FOOL, Arcana.DEVIL], result: Arcana.TEMPERANCE }, + { parent: [Arcana.FOOL, Arcana.TOWER], result: Arcana.EMPRESS }, + { parent: [Arcana.FOOL, Arcana.STAR], result: Arcana.MAGICIAN }, + { parent: [Arcana.FOOL, Arcana.MOON], result: Arcana.JUSTICE }, + { parent: [Arcana.FOOL, Arcana.SUN], result: Arcana.JUSTICE }, + { parent: [Arcana.FOOL, Arcana.JUDGEMENT], result: Arcana.SUN }, + { parent: [Arcana.FOOL, Arcana.FAITH], result: Arcana.COUNCILLOR }, + { parent: [Arcana.FOOL, Arcana.COUNCILLOR], result: Arcana.HIEROPHANT }, + { parent: [Arcana.MAGICIAN, Arcana.MAGICIAN], result: Arcana.MAGICIAN }, + { parent: [Arcana.MAGICIAN, Arcana.PRIESTESS], result: Arcana.TEMPERANCE }, + { parent: [Arcana.MAGICIAN, Arcana.EMPRESS], result: Arcana.JUSTICE }, + { parent: [Arcana.MAGICIAN, Arcana.EMPEROR], result: Arcana.FAITH }, + { parent: [Arcana.MAGICIAN, Arcana.HIEROPHANT], result: Arcana.DEATH }, + { parent: [Arcana.MAGICIAN, Arcana.LOVERS], result: Arcana.DEVIL }, + { parent: [Arcana.MAGICIAN, Arcana.CHARIOT], result: Arcana.PRIESTESS }, + { parent: [Arcana.MAGICIAN, Arcana.JUSTICE], result: Arcana.EMPEROR }, + { parent: [Arcana.MAGICIAN, Arcana.HERMIT], result: Arcana.LOVERS }, + { parent: [Arcana.MAGICIAN, Arcana.FORTUNE], result: Arcana.JUSTICE }, + { parent: [Arcana.MAGICIAN, Arcana.STRENGTH], result: Arcana.FOOL }, + { parent: [Arcana.MAGICIAN, Arcana.HANGEDMAN], result: Arcana.EMPRESS }, + { parent: [Arcana.MAGICIAN, Arcana.DEATH], result: Arcana.HERMIT }, + { parent: [Arcana.MAGICIAN, Arcana.TEMPERANCE], result: Arcana.CHARIOT }, + { parent: [Arcana.MAGICIAN, Arcana.DEVIL], result: Arcana.HIEROPHANT }, + { parent: [Arcana.MAGICIAN, Arcana.TOWER], result: Arcana.TEMPERANCE }, + { parent: [Arcana.MAGICIAN, Arcana.STAR], result: Arcana.PRIESTESS }, + { parent: [Arcana.MAGICIAN, Arcana.MOON], result: Arcana.LOVERS }, + { parent: [Arcana.MAGICIAN, Arcana.SUN], result: Arcana.HIEROPHANT }, + { parent: [Arcana.MAGICIAN, Arcana.JUDGEMENT], result: Arcana.STRENGTH }, + { parent: [Arcana.MAGICIAN, Arcana.FAITH], result: Arcana.STRENGTH }, + { parent: [Arcana.MAGICIAN, Arcana.COUNCILLOR], result: Arcana.MOON }, + { parent: [Arcana.PRIESTESS, Arcana.PRIESTESS], result: Arcana.PRIESTESS }, + { parent: [Arcana.PRIESTESS, Arcana.EMPRESS], result: Arcana.EMPEROR }, + { parent: [Arcana.PRIESTESS, Arcana.EMPEROR], result: Arcana.EMPRESS }, + { parent: [Arcana.PRIESTESS, Arcana.HIEROPHANT], result: Arcana.MAGICIAN }, + { parent: [Arcana.PRIESTESS, Arcana.LOVERS], result: Arcana.FORTUNE }, + { parent: [Arcana.PRIESTESS, Arcana.CHARIOT], result: Arcana.HIEROPHANT }, + { parent: [Arcana.PRIESTESS, Arcana.JUSTICE], result: Arcana.DEATH }, + { parent: [Arcana.PRIESTESS, Arcana.HERMIT], result: Arcana.TEMPERANCE }, + { parent: [Arcana.PRIESTESS, Arcana.FORTUNE], result: Arcana.MAGICIAN }, + { parent: [Arcana.PRIESTESS, Arcana.STRENGTH], result: Arcana.DEVIL }, + { parent: [Arcana.PRIESTESS, Arcana.HANGEDMAN], result: Arcana.DEATH }, + { parent: [Arcana.PRIESTESS, Arcana.DEATH], result: Arcana.MAGICIAN }, + { parent: [Arcana.PRIESTESS, Arcana.TEMPERANCE], result: Arcana.DEVIL }, + { parent: [Arcana.PRIESTESS, Arcana.DEVIL], result: Arcana.MOON }, + { parent: [Arcana.PRIESTESS, Arcana.TOWER], result: Arcana.HANGEDMAN }, + { parent: [Arcana.PRIESTESS, Arcana.STAR], result: Arcana.HERMIT }, + { parent: [Arcana.PRIESTESS, Arcana.MOON], result: Arcana.HIEROPHANT }, + { parent: [Arcana.PRIESTESS, Arcana.SUN], result: Arcana.CHARIOT }, + { parent: [Arcana.PRIESTESS, Arcana.JUDGEMENT], result: Arcana.JUSTICE }, + { parent: [Arcana.PRIESTESS, Arcana.FAITH], result: Arcana.JUSTICE }, + { parent: [Arcana.PRIESTESS, Arcana.COUNCILLOR], result: Arcana.FAITH }, + { parent: [Arcana.EMPRESS, Arcana.EMPRESS], result: Arcana.EMPRESS }, + { parent: [Arcana.EMPRESS, Arcana.EMPEROR], result: Arcana.JUSTICE }, + { parent: [Arcana.EMPRESS, Arcana.HIEROPHANT], result: Arcana.FOOL }, + { parent: [Arcana.EMPRESS, Arcana.LOVERS], result: Arcana.JUDGEMENT }, + { parent: [Arcana.EMPRESS, Arcana.CHARIOT], result: Arcana.STAR }, + { parent: [Arcana.EMPRESS, Arcana.JUSTICE], result: Arcana.LOVERS }, + { parent: [Arcana.EMPRESS, Arcana.HERMIT], result: Arcana.STRENGTH }, + { parent: [Arcana.EMPRESS, Arcana.FORTUNE], result: Arcana.HERMIT }, + { parent: [Arcana.EMPRESS, Arcana.STRENGTH], result: Arcana.FAITH }, + { parent: [Arcana.EMPRESS, Arcana.HANGEDMAN], result: Arcana.PRIESTESS }, + { parent: [Arcana.EMPRESS, Arcana.DEATH], result: Arcana.FOOL }, + { parent: [Arcana.EMPRESS, Arcana.TEMPERANCE], result: Arcana.FAITH }, + { parent: [Arcana.EMPRESS, Arcana.DEVIL], result: Arcana.SUN }, + { parent: [Arcana.EMPRESS, Arcana.TOWER], result: Arcana.EMPEROR }, + { parent: [Arcana.EMPRESS, Arcana.STAR], result: Arcana.LOVERS }, + { parent: [Arcana.EMPRESS, Arcana.MOON], result: Arcana.FORTUNE }, + { parent: [Arcana.EMPRESS, Arcana.SUN], result: Arcana.TOWER }, + { parent: [Arcana.EMPRESS, Arcana.JUDGEMENT], result: Arcana.EMPEROR }, + { parent: [Arcana.EMPRESS, Arcana.FAITH], result: Arcana.MAGICIAN }, + { parent: [Arcana.EMPRESS, Arcana.COUNCILLOR], result: Arcana.HANGEDMAN }, + { parent: [Arcana.EMPEROR, Arcana.EMPEROR], result: Arcana.EMPEROR }, + { parent: [Arcana.EMPEROR, Arcana.HIEROPHANT], result: Arcana.FORTUNE }, + { parent: [Arcana.EMPEROR, Arcana.LOVERS], result: Arcana.FOOL }, + { parent: [Arcana.EMPEROR, Arcana.CHARIOT], result: Arcana.FAITH }, + { parent: [Arcana.EMPEROR, Arcana.JUSTICE], result: Arcana.CHARIOT }, + { parent: [Arcana.EMPEROR, Arcana.HERMIT], result: Arcana.HIEROPHANT }, + { parent: [Arcana.EMPEROR, Arcana.FORTUNE], result: Arcana.SUN }, + { parent: [Arcana.EMPEROR, Arcana.STRENGTH], result: Arcana.TOWER }, + { parent: [Arcana.EMPEROR, Arcana.HANGEDMAN], result: Arcana.DEVIL }, + { parent: [Arcana.EMPEROR, Arcana.DEATH], result: Arcana.HERMIT }, + { parent: [Arcana.EMPEROR, Arcana.TEMPERANCE], result: Arcana.DEVIL }, + { parent: [Arcana.EMPEROR, Arcana.DEVIL], result: Arcana.JUSTICE }, + { parent: [Arcana.EMPEROR, Arcana.TOWER], result: Arcana.STAR }, + { parent: [Arcana.EMPEROR, Arcana.STAR], result: Arcana.LOVERS }, + { parent: [Arcana.EMPEROR, Arcana.MOON], result: Arcana.TOWER }, + { parent: [Arcana.EMPEROR, Arcana.SUN], result: Arcana.JUDGEMENT }, + { parent: [Arcana.EMPEROR, Arcana.JUDGEMENT], result: Arcana.PRIESTESS }, + { parent: [Arcana.EMPEROR, Arcana.FAITH], result: Arcana.PRIESTESS }, + { parent: [Arcana.EMPEROR, Arcana.COUNCILLOR], result: Arcana.LOVERS }, + { parent: [Arcana.HIEROPHANT, Arcana.HIEROPHANT], result: Arcana.HIEROPHANT }, + { parent: [Arcana.HIEROPHANT, Arcana.LOVERS], result: Arcana.STRENGTH }, + { parent: [Arcana.HIEROPHANT, Arcana.CHARIOT], result: Arcana.STAR }, + { parent: [Arcana.HIEROPHANT, Arcana.JUSTICE], result: Arcana.HANGEDMAN }, + { parent: [Arcana.HIEROPHANT, Arcana.HERMIT], result: Arcana.COUNCILLOR }, + { parent: [Arcana.HIEROPHANT, Arcana.FORTUNE], result: Arcana.JUSTICE }, + { parent: [Arcana.HIEROPHANT, Arcana.STRENGTH], result: Arcana.FOOL }, + { parent: [Arcana.HIEROPHANT, Arcana.HANGEDMAN], result: Arcana.SUN }, + { parent: [Arcana.HIEROPHANT, Arcana.DEATH], result: Arcana.CHARIOT }, + { parent: [Arcana.HIEROPHANT, Arcana.TEMPERANCE], result: Arcana.DEATH }, + { parent: [Arcana.HIEROPHANT, Arcana.DEVIL], result: Arcana.HANGEDMAN }, + { parent: [Arcana.HIEROPHANT, Arcana.TOWER], result: Arcana.JUDGEMENT }, + { parent: [Arcana.HIEROPHANT, Arcana.STAR], result: Arcana.TOWER }, + { parent: [Arcana.HIEROPHANT, Arcana.MOON], result: Arcana.PRIESTESS }, + { parent: [Arcana.HIEROPHANT, Arcana.SUN], result: Arcana.LOVERS }, + { parent: [Arcana.HIEROPHANT, Arcana.JUDGEMENT], result: Arcana.FAITH }, + { parent: [Arcana.HIEROPHANT, Arcana.FAITH], result: Arcana.EMPRESS }, + { parent: [Arcana.HIEROPHANT, Arcana.COUNCILLOR], result: Arcana.JUSTICE }, + { parent: [Arcana.LOVERS, Arcana.LOVERS], result: Arcana.LOVERS }, + { parent: [Arcana.LOVERS, Arcana.CHARIOT], result: Arcana.TEMPERANCE }, + { parent: [Arcana.LOVERS, Arcana.JUSTICE], result: Arcana.JUDGEMENT }, + { parent: [Arcana.LOVERS, Arcana.HERMIT], result: Arcana.CHARIOT }, + { parent: [Arcana.LOVERS, Arcana.FORTUNE], result: Arcana.STRENGTH }, + { parent: [Arcana.LOVERS, Arcana.STRENGTH], result: Arcana.DEATH }, + { parent: [Arcana.LOVERS, Arcana.HANGEDMAN], result: Arcana.COUNCILLOR }, + { parent: [Arcana.LOVERS, Arcana.DEATH], result: Arcana.TEMPERANCE }, + { parent: [Arcana.LOVERS, Arcana.TEMPERANCE], result: Arcana.STRENGTH }, + { parent: [Arcana.LOVERS, Arcana.DEVIL], result: Arcana.MOON }, + { parent: [Arcana.LOVERS, Arcana.TOWER], result: Arcana.EMPRESS }, + { parent: [Arcana.LOVERS, Arcana.STAR], result: Arcana.FAITH }, + { parent: [Arcana.LOVERS, Arcana.MOON], result: Arcana.MAGICIAN }, + { parent: [Arcana.LOVERS, Arcana.SUN], result: Arcana.EMPRESS }, + { parent: [Arcana.LOVERS, Arcana.JUDGEMENT], result: Arcana.HANGEDMAN }, + { parent: [Arcana.LOVERS, Arcana.FAITH], result: Arcana.TOWER }, + { parent: [Arcana.LOVERS, Arcana.COUNCILLOR], result: Arcana.TOWER }, + { parent: [Arcana.CHARIOT, Arcana.CHARIOT], result: Arcana.CHARIOT }, + { parent: [Arcana.CHARIOT, Arcana.JUSTICE], result: Arcana.MOON }, + { parent: [Arcana.CHARIOT, Arcana.HERMIT], result: Arcana.DEVIL }, + { parent: [Arcana.CHARIOT, Arcana.FORTUNE], result: Arcana.COUNCILLOR }, + { parent: [Arcana.CHARIOT, Arcana.STRENGTH], result: Arcana.HERMIT }, + { parent: [Arcana.CHARIOT, Arcana.HANGEDMAN], result: Arcana.FOOL }, + { parent: [Arcana.CHARIOT, Arcana.DEATH], result: Arcana.DEVIL }, + { parent: [Arcana.CHARIOT, Arcana.TEMPERANCE], result: Arcana.STRENGTH }, + { parent: [Arcana.CHARIOT, Arcana.DEVIL], result: Arcana.TEMPERANCE }, + { parent: [Arcana.CHARIOT, Arcana.TOWER], result: Arcana.FORTUNE }, + { parent: [Arcana.CHARIOT, Arcana.STAR], result: Arcana.MOON }, + { parent: [Arcana.CHARIOT, Arcana.MOON], result: Arcana.LOVERS }, + { parent: [Arcana.CHARIOT, Arcana.SUN], result: Arcana.PRIESTESS }, + { parent: [Arcana.CHARIOT, Arcana.FAITH], result: Arcana.LOVERS }, + { parent: [Arcana.CHARIOT, Arcana.COUNCILLOR], result: Arcana.SUN }, + { parent: [Arcana.JUSTICE, Arcana.JUSTICE], result: Arcana.JUSTICE }, + { parent: [Arcana.JUSTICE, Arcana.HERMIT], result: Arcana.MAGICIAN }, + { parent: [Arcana.JUSTICE, Arcana.FORTUNE], result: Arcana.EMPEROR }, + { parent: [Arcana.JUSTICE, Arcana.STRENGTH], result: Arcana.COUNCILLOR }, + { parent: [Arcana.JUSTICE, Arcana.HANGEDMAN], result: Arcana.LOVERS }, + { parent: [Arcana.JUSTICE, Arcana.DEATH], result: Arcana.FOOL }, + { parent: [Arcana.JUSTICE, Arcana.TEMPERANCE], result: Arcana.EMPEROR }, + { parent: [Arcana.JUSTICE, Arcana.DEVIL], result: Arcana.FOOL }, + { parent: [Arcana.JUSTICE, Arcana.TOWER], result: Arcana.SUN }, + { parent: [Arcana.JUSTICE, Arcana.STAR], result: Arcana.EMPRESS }, + { parent: [Arcana.JUSTICE, Arcana.MOON], result: Arcana.DEVIL }, + { parent: [Arcana.JUSTICE, Arcana.SUN], result: Arcana.HANGEDMAN }, + { parent: [Arcana.JUSTICE, Arcana.FAITH], result: Arcana.HANGEDMAN }, + { parent: [Arcana.JUSTICE, Arcana.COUNCILLOR], result: Arcana.EMPEROR }, + { parent: [Arcana.HERMIT, Arcana.HERMIT], result: Arcana.HERMIT }, + { parent: [Arcana.HERMIT, Arcana.FORTUNE], result: Arcana.STAR }, + { parent: [Arcana.HERMIT, Arcana.STRENGTH], result: Arcana.HIEROPHANT }, + { parent: [Arcana.HERMIT, Arcana.HANGEDMAN], result: Arcana.STAR }, + { parent: [Arcana.HERMIT, Arcana.DEATH], result: Arcana.STRENGTH }, + { parent: [Arcana.HERMIT, Arcana.TEMPERANCE], result: Arcana.STRENGTH }, + { parent: [Arcana.HERMIT, Arcana.DEVIL], result: Arcana.PRIESTESS }, + { parent: [Arcana.HERMIT, Arcana.TOWER], result: Arcana.JUDGEMENT }, + { parent: [Arcana.HERMIT, Arcana.STAR], result: Arcana.STRENGTH }, + { parent: [Arcana.HERMIT, Arcana.MOON], result: Arcana.PRIESTESS }, + { parent: [Arcana.HERMIT, Arcana.SUN], result: Arcana.DEVIL }, + { parent: [Arcana.HERMIT, Arcana.JUDGEMENT], result: Arcana.EMPEROR }, + { parent: [Arcana.HERMIT, Arcana.FAITH], result: Arcana.JUDGEMENT }, + { parent: [Arcana.HERMIT, Arcana.COUNCILLOR], result: Arcana.FAITH }, + { parent: [Arcana.FORTUNE, Arcana.FORTUNE], result: Arcana.FORTUNE }, + { parent: [Arcana.FORTUNE, Arcana.STRENGTH], result: Arcana.FAITH }, + { parent: [Arcana.FORTUNE, Arcana.HANGEDMAN], result: Arcana.EMPEROR }, + { parent: [Arcana.FORTUNE, Arcana.DEATH], result: Arcana.STAR }, + { parent: [Arcana.FORTUNE, Arcana.TEMPERANCE], result: Arcana.EMPRESS }, + { parent: [Arcana.FORTUNE, Arcana.DEVIL], result: Arcana.HIEROPHANT }, + { parent: [Arcana.FORTUNE, Arcana.TOWER], result: Arcana.HANGEDMAN }, + { parent: [Arcana.FORTUNE, Arcana.STAR], result: Arcana.DEVIL }, + { parent: [Arcana.FORTUNE, Arcana.MOON], result: Arcana.SUN }, + { parent: [Arcana.FORTUNE, Arcana.SUN], result: Arcana.STAR }, + { parent: [Arcana.FORTUNE, Arcana.JUDGEMENT], result: Arcana.TOWER }, + { parent: [Arcana.FORTUNE, Arcana.FAITH], result: Arcana.COUNCILLOR }, + { parent: [Arcana.FORTUNE, Arcana.COUNCILLOR], result: Arcana.JUDGEMENT }, + { parent: [Arcana.STRENGTH, Arcana.STRENGTH], result: Arcana.STRENGTH }, + { parent: [Arcana.STRENGTH, Arcana.HANGEDMAN], result: Arcana.TEMPERANCE }, + { parent: [Arcana.STRENGTH, Arcana.DEATH], result: Arcana.HIEROPHANT }, + { parent: [Arcana.STRENGTH, Arcana.TEMPERANCE], result: Arcana.CHARIOT }, + { parent: [Arcana.STRENGTH, Arcana.DEVIL], result: Arcana.DEATH }, + { parent: [Arcana.STRENGTH, Arcana.TOWER], result: Arcana.FAITH }, + { parent: [Arcana.STRENGTH, Arcana.STAR], result: Arcana.MOON }, + { parent: [Arcana.STRENGTH, Arcana.MOON], result: Arcana.MAGICIAN }, + { parent: [Arcana.STRENGTH, Arcana.SUN], result: Arcana.MOON }, + { parent: [Arcana.STRENGTH, Arcana.FAITH], result: Arcana.STAR }, + { parent: [Arcana.STRENGTH, Arcana.COUNCILLOR], result: Arcana.EMPRESS }, + { parent: [Arcana.HANGEDMAN, Arcana.HANGEDMAN], result: Arcana.HANGEDMAN }, + { parent: [Arcana.HANGEDMAN, Arcana.DEATH], result: Arcana.MOON }, + { parent: [Arcana.HANGEDMAN, Arcana.TEMPERANCE], result: Arcana.DEATH }, + { parent: [Arcana.HANGEDMAN, Arcana.DEVIL], result: Arcana.FORTUNE }, + { parent: [Arcana.HANGEDMAN, Arcana.TOWER], result: Arcana.HERMIT }, + { parent: [Arcana.HANGEDMAN, Arcana.STAR], result: Arcana.JUSTICE }, + { parent: [Arcana.HANGEDMAN, Arcana.MOON], result: Arcana.COUNCILLOR }, + { parent: [Arcana.HANGEDMAN, Arcana.SUN], result: Arcana.HIEROPHANT }, + { parent: [Arcana.HANGEDMAN, Arcana.JUDGEMENT], result: Arcana.STAR }, + { parent: [Arcana.HANGEDMAN, Arcana.FAITH], result: Arcana.DEVIL }, + { parent: [Arcana.HANGEDMAN, Arcana.COUNCILLOR], result: Arcana.STAR }, + { parent: [Arcana.DEATH, Arcana.DEATH], result: Arcana.DEATH }, + { parent: [Arcana.DEATH, Arcana.TEMPERANCE], result: Arcana.HANGEDMAN }, + { parent: [Arcana.DEATH, Arcana.DEVIL], result: Arcana.CHARIOT }, + { parent: [Arcana.DEATH, Arcana.TOWER], result: Arcana.SUN }, + { parent: [Arcana.DEATH, Arcana.STAR], result: Arcana.COUNCILLOR }, + { parent: [Arcana.DEATH, Arcana.MOON], result: Arcana.HIEROPHANT }, + { parent: [Arcana.DEATH, Arcana.SUN], result: Arcana.PRIESTESS }, + { parent: [Arcana.DEATH, Arcana.FAITH], result: Arcana.FOOL }, + { parent: [Arcana.DEATH, Arcana.COUNCILLOR], result: Arcana.MAGICIAN }, + { parent: [Arcana.TEMPERANCE, Arcana.TEMPERANCE], result: Arcana.TEMPERANCE }, + { parent: [Arcana.TEMPERANCE, Arcana.DEVIL], result: Arcana.FOOL }, + { parent: [Arcana.TEMPERANCE, Arcana.TOWER], result: Arcana.FORTUNE }, + { parent: [Arcana.TEMPERANCE, Arcana.STAR], result: Arcana.SUN }, + { parent: [Arcana.TEMPERANCE, Arcana.MOON], result: Arcana.COUNCILLOR }, + { parent: [Arcana.TEMPERANCE, Arcana.SUN], result: Arcana.MAGICIAN }, + { parent: [Arcana.TEMPERANCE, Arcana.JUDGEMENT], result: Arcana.HERMIT }, + { parent: [Arcana.TEMPERANCE, Arcana.FAITH], result: Arcana.HERMIT }, + { parent: [Arcana.TEMPERANCE, Arcana.COUNCILLOR], result: Arcana.FOOL }, + { parent: [Arcana.DEVIL, Arcana.DEVIL], result: Arcana.DEVIL }, + { parent: [Arcana.DEVIL, Arcana.TOWER], result: Arcana.MAGICIAN }, + { parent: [Arcana.DEVIL, Arcana.STAR], result: Arcana.STRENGTH }, + { parent: [Arcana.DEVIL, Arcana.MOON], result: Arcana.CHARIOT }, + { parent: [Arcana.DEVIL, Arcana.SUN], result: Arcana.HERMIT }, + { parent: [Arcana.DEVIL, Arcana.JUDGEMENT], result: Arcana.LOVERS }, + { parent: [Arcana.DEVIL, Arcana.FAITH], result: Arcana.CHARIOT }, + { parent: [Arcana.DEVIL, Arcana.COUNCILLOR], result: Arcana.CHARIOT }, + { parent: [Arcana.TOWER, Arcana.TOWER], result: Arcana.TOWER }, + { parent: [Arcana.TOWER, Arcana.STAR], result: Arcana.COUNCILLOR }, + { parent: [Arcana.TOWER, Arcana.MOON], result: Arcana.HERMIT }, + { parent: [Arcana.TOWER, Arcana.SUN], result: Arcana.EMPEROR }, + { parent: [Arcana.TOWER, Arcana.JUDGEMENT], result: Arcana.MOON }, + { parent: [Arcana.TOWER, Arcana.FAITH], result: Arcana.DEATH }, + { parent: [Arcana.TOWER, Arcana.COUNCILLOR], result: Arcana.DEATH }, + { parent: [Arcana.STAR, Arcana.STAR], result: Arcana.STAR }, + { parent: [Arcana.STAR, Arcana.MOON], result: Arcana.TEMPERANCE }, + { parent: [Arcana.STAR, Arcana.SUN], result: Arcana.JUDGEMENT }, + { parent: [Arcana.STAR, Arcana.JUDGEMENT], result: Arcana.FORTUNE }, + { parent: [Arcana.STAR, Arcana.FAITH], result: Arcana.TEMPERANCE }, + { parent: [Arcana.STAR, Arcana.COUNCILLOR], result: Arcana.SUN }, + { parent: [Arcana.MOON, Arcana.MOON], result: Arcana.MOON }, + { parent: [Arcana.MOON, Arcana.SUN], result: Arcana.EMPRESS }, + { parent: [Arcana.MOON, Arcana.JUDGEMENT], result: Arcana.FOOL }, + { parent: [Arcana.MOON, Arcana.FAITH], result: Arcana.SUN }, + { parent: [Arcana.MOON, Arcana.COUNCILLOR], result: Arcana.TEMPERANCE }, + { parent: [Arcana.SUN, Arcana.SUN], result: Arcana.SUN }, + { parent: [Arcana.SUN, Arcana.JUDGEMENT], result: Arcana.DEATH }, + { parent: [Arcana.SUN, Arcana.FAITH], result: Arcana.EMPEROR }, + { parent: [Arcana.SUN, Arcana.COUNCILLOR], result: Arcana.FORTUNE }, + { parent: [Arcana.JUDGEMENT, Arcana.JUDGEMENT], result: Arcana.JUDGEMENT }, + { parent: [Arcana.JUDGEMENT, Arcana.FAITH], result: Arcana.FORTUNE }, + { parent: [Arcana.JUDGEMENT, Arcana.COUNCILLOR], result: Arcana.DEVIL }, + { parent: [Arcana.FAITH, Arcana.FAITH], result: Arcana.FAITH }, + { parent: [Arcana.FAITH, Arcana.COUNCILLOR], result: Arcana.PRIESTESS }, + { parent: [Arcana.COUNCILLOR, Arcana.COUNCILLOR], result: Arcana.COUNCILLOR }, + { parent: [Arcana.WORLD, Arcana.WORLD], result: Arcana.WORLD }, +]; + +export const SpecialCombos: SpecialCombo [] = [ + { parents: ['Belial', 'Nebiros'], result: 'Alice' }, + { parents: ['Shiva', 'Parvati'], result: 'Ardha' }, + { parents: ['Jikokuten', 'Zouchouten', 'Koumokuten', 'Bishamonten'], result: 'Asura' }, + { parents: ['Jack-o\'-Lantern', 'Jack Frost', 'King Frost'], result: 'Black Frost' }, + { parents: ['Pixie', 'Pisaca', 'Hariti'], result: 'Bugs' }, + { parents: ['White Rider', 'Hecatoncheires', 'Thor', 'Cu Chulainn', 'YoshitSUNe'], result: 'Chi You' }, + { parents: ['Berith', 'Eligor', 'Orobas'], result: 'Flauros' }, + { parents: ['Archangel', 'Matador', 'Decarabia'], result: 'Hell Biker' }, + { parents: ['Yamata-no-Orochi', 'Throne', 'Inugami', 'Raja Naga', 'Barong', 'Norn'], result: 'Izanagi-no-Okami' }, + { parents: ['Okuninushi', 'Orthrus', 'Kali', 'Mithras', 'Cu Chulainn', 'Lucifer'], result: 'Izanagi-no-Okami Picaro' }, + { parents: ['Seiryu', 'Byakko', 'Suzaku', 'Genbu'], result: 'Kohryu' }, + { parents: ['Anubis', 'Ananta', 'Trumpeter', 'Michael', 'Metatron', 'Satan'], result: 'Lucifer' }, + { parents: ['Principality', 'Power', 'Dominion', 'Melchizedek', 'Sandalphon', 'Michael'], result: 'Metatron' }, + { parents: ['Gabriel', 'Raphael', 'Uriel'], result: 'Michael' }, + { parents: ['Kodama', 'Sudama', 'Anzu'], result: 'Neko Shogun' }, + { parents: ['Kin-Ki', 'Sui-Ki', 'Fuu-Ki'], result: 'Ongyo-Ki' }, + { parents: ['Arsene', 'Anzu', 'Ishtar', 'Satan', 'Lucifer', 'Michael'], result: 'Satanael' }, + { parents: ['Isis', 'Anubis', 'Thoth', 'Horus'], result: 'Seth' }, + { parents: ['Barong', 'Rangda'], result: 'Shiva' }, + { parents: ['Mithra', 'Mithras', 'Melchizedek', 'Lilith', 'Gabriel'], result: 'Sraosha' }, + { parents: ['Cait Sith', 'High Pixie', 'Leanan Sidhe'], result: 'Tam Lin' }, + { parents: ['White Rider', 'Red Rider', 'Black Rider', 'Pale Rider'], result: 'Trumpeter' }, + { parents: ['Naga', 'Ananta', 'Raja Naga'], result: 'Vasuki' }, + { parents: ['Shiki-Ouji', 'Arahabaki', 'Okuninushi', 'Yatagarasu', 'FutSUNushi'], result: 'Yoshitsune' }, +]; + +interface TreasureComboMap { + [index: string]: [string, string]; +} + +export const TreasureCombos: TreasureComboMap = { + ['Kikuri-Hime']: ['Regent', 'Orichalcum'], + ['Mithra']: ['Regent', 'Crystal Skull'], + ['Kurama Tengu']: ['Regent', 'Hope Diamond'], + ['Andras']: ['Regent', 'Emperor\'s Amulet'], + ['Belphegor']: ['Regent', 'Orlov'], + ['Yaksini']: ['Regent', 'Koh-i-Noor'], + ['Suzaku']: ['Regent', 'Stone of Scone'], + ['Archangel']: ['Regent', 'Queen\'s Necklace'], + ['Queen Mab']: ['Queen\'s Necklace', 'Orichalcum'], + ['Hecatoncheires']: ['Queen\'s Necklace', 'Crystal Skull'], + ['Orpheus Picaro']: ['Queen\'s Necklace', 'Hope Diamond'], + ['Isis']: ['Queen\'s Necklace', 'Emperor\'s Amulet'], + ['Unicorn']: ['Queen\'s Necklace', 'Orlov'], + ['Setanta']: ['Queen\'s Necklace', 'Koh-i-Noor'], + ['Naga']: ['Queen\'s Necklace', 'Stone of Scone'], + ['Ananta']: ['Stone of Scone', 'Orichalcum'], + ['Unicorn_']: ['Stone of Scone', 'Crystal Skull'], + ['Kaiwan']: ['Stone of Scone', 'Hope Diamond'], + ['Thoth']: ['Stone of Scone', 'Emperor\'s Amulet'], + ['Unicorn__']: ['Stone of Scone', 'Orlov'], + ['Sandman']: ['Stone of Scone', 'Koh-i-Noor'], + ['Melchizedek']: ['Koh-i-Noor', 'Orichalcum'], + ['Girimehkala']: ['Koh-i-Noor', 'Crystal Skull'], + ['Queen Mab_']: ['Koh-i-Noor', 'Hope Diamond'], + ['Pale Rider']: ['Koh-i-Noor', 'Emperor\'s Amulet'], + ['Lilim']: ['Koh-i-Noor', 'Orlov'], + ['Garuda']: ['Orlov', 'Orichalcum'], + ['Pale Rider_']: ['Orlov', 'Crystal Skull'], + ['Daisoujou']: ['Orlov', 'Hope Diamond'], + ['Mithra_']: ['Orlov', 'Emperor\'s Amulet'], + ['Baphomet']: ['Emperor\'s Amulet', 'Orichalcum'], + ['Magatsu-Izanagi']: ['Emperor\'s Amulet', 'Crystal Skull'], + ['Girimehkala_']: ['Emperor\'s Amulet', 'Hope Diamond'], + ['Raoul']: ['Hope Diamond', 'Orichalcum'], + ['Hanuman']: ['Hope Diamond', 'Crystal Skull'], + ['Yatagarasu']: ['Crystal Skull', 'Orichalcum'], +}; + +export const getSpecialCombo = (result: string): SpecialCombo|undefined => { + SpecialCombos.forEach(special => { + if (result === special.result) + return special; + }); + + return undefined; +}; + +export const getResultArcana = (parent1: PersonaData, parent2: PersonaData): Arcana|undefined => { + const arcana1: Arcana = parent1.arcana; + const arcana2: Arcana = parent2.arcana; + + if (arcana1 === arcana2) + return arcana1; + + ArcanaCombos.forEach(combo => { + if ( (arcana1 === combo.parent[0] && arcana2 === combo.parent[1]) || + (arcana2 === combo.parent[0] && arcana1 === combo.parent[1]) ) + return combo.result; + }); + + return undefined; +}; \ No newline at end of file diff --git a/src/data/fusion.ts b/src/data/fusion.ts new file mode 100644 index 0000000..5b4c3f8 --- /dev/null +++ b/src/data/fusion.ts @@ -0,0 +1,301 @@ +import { getKeyOfValue } from '@/helpers'; +import { ArcanaCombos, type ArcanaCombo, SpecialCombos, type SpecialCombo, TreasureCombos } from './combos'; +import { Personas, type PersonaData, TreasureModifiers, TreasurePersonas, + getPersonaApproxCost, getAllPersonasOfArcana, personaHasSkill, getPersonaSkillLevel } from './personas'; +import { Skills, type SkillData } from './skills'; +import { Arcana, Element } from './types'; + +type FusionRecipeParents = [ PersonaData, PersonaData, PersonaData?, PersonaData?, PersonaData?, PersonaData? ]; +export interface FusionRecipe { + result: PersonaData; + parents: FusionRecipeParents; + complete: boolean; +}; + +const NO_PERSONA: PersonaData = { + name: '', level: 0, currentLevel: 0, arcana: Arcana.WORLD, + stats: [], affinities: [], inherits: [], skills: [], +}; +const NO_RECIPES: FusionRecipe[] = [] as FusionRecipe[]; +const ALWAYS_INHERITED: Element[] = [ Element.SUPPORT, Element.ALMIGHTY, Element.PASSIVE, Element.TRAIT ]; + +export const removeAlreadyOwnedSkills = (persona: PersonaData, skills: SkillData[]): SkillData[] => { + persona.skills.forEach(skill => { + if (skills.includes(Skills[skill[0]])) + skills.splice(skills.findIndex(s => s.name === skill[0]), 1); + }); + + return skills; +} + +export const getRecipeApproxCost = (recipe: FusionRecipe|undefined): number => { + if (!recipe) + return 0; + + let cost: number = 0; + recipe.parents.forEach(parent => { + if (parent) + cost += getPersonaApproxCost(parent); + }); + + return cost; +} +const RECIPE_COST_SORT = (a: FusionRecipe, b: FusionRecipe): number => getRecipeApproxCost(a) - getRecipeApproxCost(b); +const RECIPE_COMPLETE_SORT = (a: FusionRecipe, b: FusionRecipe): number => { + const aComplete = a.complete ? -1 : 1; + const bComplete = b.complete ? -1 : 1; + + return aComplete - bComplete; +} + +const listContainsNormalCombo = (list: FusionRecipe[], parent1: PersonaData, parent2: PersonaData): boolean => { + if (0 === list.length) + return false; + + let alreadyContains: boolean = false; + list.forEach(combo => { + if (!combo.parents[0] || !combo.parents[1]) + return; + + if ( (combo.parents[0].name === parent1.name && combo.parents[1].name === parent2.name) || + (combo.parents[1].name === parent1.name && combo.parents[0].name === parent2.name) ) + alreadyContains = true; + }); + + + return alreadyContains; +}; + +const getSiblingModifier = (arcana: Arcana, treasureName?: string): number => + treasureName ? TreasureModifiers[arcana][TreasurePersonas.findIndex(t => t === treasureName)] : 0; + +const getValidSpecialRecipe = (result: PersonaData): FusionRecipe[] => { + let combo: SpecialCombo|undefined = undefined; + SpecialCombos.forEach(s => { + if (s.result === result.name) + combo = s; + }); + + if (!combo) + return NO_RECIPES; + + const recipe: FusionRecipe = { result, parents: [ NO_PERSONA, NO_PERSONA ], complete: false }; + const names: string[] = (combo as SpecialCombo).parents; + names.forEach( (name, idx) => recipe.parents[idx] = Personas[name] ); + + return [ recipe ]; +} + +const getValidNormalRecipes = (result: PersonaData, lockedDlc?: string[]): FusionRecipe[] => { + const arcanaCombos: ArcanaCombo[] = []; + ArcanaCombos.forEach(combo => { + if (result.arcana === combo.result) + arcanaCombos.push(combo); + }); + + const siblingPersonas = getAllPersonasOfArcana(result.arcana, lockedDlc); + const selfIdx = siblingPersonas.findIndex(sibling => sibling.name === result.name); + siblingPersonas.splice(selfIdx, 1); + + const recipes: FusionRecipe[] = []; + arcanaCombos.forEach(combo => { + const parent1Personas = getAllPersonasOfArcana(combo.parent[0], lockedDlc); + const parent2Personas = getAllPersonasOfArcana(combo.parent[1], lockedDlc); + + parent1Personas.forEach(parent1 => { + if (parent1.name === result.name) + return; + + parent2Personas.forEach(parent2 => { + if (parent2.name === result.name) + return; + + let siblingModifier: number = 0; + if (parent1.treasure || parent2.treasure) { + if (parent1.treasure && parent2.treasure) { + const treasureResult = getKeyOfValue(TreasureCombos, [ parent1.name, parent2.name ]); + if (treasureResult && result.name === treasureResult.replaceAll('_', '')) + { + recipes.push({ result, parents: [ parent1, parent2 ], complete: false }); + return; + } + } + else if (parent1.treasure) + siblingModifier = getSiblingModifier(result.arcana, parent1.name); + else if (parent2.treasure) + siblingModifier = getSiblingModifier(result.arcana, parent2.name); + } + + const siblingLower = siblingPersonas[Math.max(selfIdx + siblingModifier - 1, 0)]; + let siblingUpper: PersonaData|undefined = siblingPersonas[Math.min(selfIdx + siblingModifier, siblingPersonas.length - 1)]; + + if (siblingLower === siblingUpper) + siblingUpper = undefined; + + const parentAverageLevel = Math.floor((parent1.level + parent2.level) >> 1); + const levelDelta = Math.abs(result.level - parentAverageLevel); + const levelDeltaLower = Math.abs((siblingLower ? siblingLower.level : 101) - parentAverageLevel); + const levelDeltaUpper = Math.abs((siblingUpper ? siblingUpper.level : 101) - parentAverageLevel); + + if (levelDelta < levelDeltaLower && levelDelta < levelDeltaUpper && + !listContainsNormalCombo(recipes, parent1, parent2)) + recipes.push({ result, parents: [ parent1, parent2 ], complete: false }); + }); + }); + }); + + return recipes; +} + +export const getValidRecipes = (result: PersonaData, skills?: SkillData[], lockedDlc?: string[], grandparentCheck: boolean = true): FusionRecipe[] => { + if (result.treasure) + return NO_RECIPES; + + const allRecipes = result.special ? getValidSpecialRecipe(result) : getValidNormalRecipes(result, lockedDlc); + + if (!skills || 0 === skills.length) { + allRecipes.forEach(recipe => { + recipe.complete = true; + recipe.parents.forEach(parent => { + if (parent) + parent.currentLevel = parent.level; + }); + }); + + return allRecipes.sort(RECIPE_COST_SORT); + } else if (skills && 0 < skills.length) { + skills = removeAlreadyOwnedSkills(result, skills); + + let failure: boolean = false; + skills.forEach(skill => { + if (skill.unique || ![ ...result.inherits, ...ALWAYS_INHERITED ].includes(skill.element)) { + failure = true; + return; + } + }); + + if (failure) + return NO_RECIPES; + + allRecipes.forEach(recipe => { + const mods: [ string, number ][][] = []; + skills?.forEach((skill, idx) => { + recipe.parents.forEach(parent => { + if (!parent) + return; + + if (!mods[idx]) + mods[idx] = []; + + if (personaHasSkill(parent, skill)) + mods[idx].push([ parent.name, getPersonaSkillLevel(parent, skill) - parent.level ]); + }); + }); + + recipe.complete = true; + mods.forEach(mod => { + if (!recipe.complete) + return; + + if (0 === mod.length) + recipe.complete = false; + }); + + if (recipe.complete) + { + const checked: boolean[] = []; + mods.forEach((mod, idx) => { + mod.sort((a, b) => a[1] - b[1]); + checked[idx] = false; + }); + + recipe.parents.forEach(parent => { + if (!parent) + return; + + let levelDelta: number = 0; + mods.forEach((mod, idx) => { + if (parent.name !== mod[0][0]) + return; + + if (!checked[idx]) { + levelDelta = Math.max(0, mod[0][1]); + checked[idx] = true; + } + }); + + parent.currentLevel = parent.level + levelDelta; + }); + + if (!recipe.parents[0] || !recipe.parents[1]) + return; + + if (recipe.parents[0] === recipe.parents[1]) + return; + + let siblingModifier: number = 0; + let parent1Level: number = recipe.parents[0].level; + let parent2Level: number = recipe.parents[1].level; + + if (recipe.parents[0].treasure) + { + siblingModifier = getSiblingModifier(result.arcana, recipe.parents[0].name); + parent2Level = recipe.parents[1].currentLevel; + } + + if (recipe.parents[1].treasure) + { + siblingModifier = getSiblingModifier(result.arcana, recipe.parents[1].name); + parent1Level = recipe.parents[0].currentLevel; + } + + const siblingPersonas = getAllPersonasOfArcana(result.arcana, lockedDlc); + const selfIdx = siblingPersonas.findIndex(sibling => sibling.name === result.name); + siblingPersonas.splice(selfIdx, 1); + + const siblingLower = siblingPersonas[Math.max(selfIdx + siblingModifier - 1, 0)]; + let siblingUpper: PersonaData|undefined = siblingPersonas[Math.min(selfIdx + siblingModifier, siblingPersonas.length - 1)]; + + if (siblingLower === siblingUpper) + siblingUpper = undefined; + + const parentAverageLevel = Math.floor((parent1Level + parent2Level) >> 1); + const levelDelta = Math.abs(result.level - parentAverageLevel); + const levelDeltaLower = Math.abs((siblingLower ? siblingLower.level : 101) - parentAverageLevel); + const levelDeltaUpper = Math.abs((siblingUpper ? siblingUpper.level : 101) - parentAverageLevel); + + if (levelDelta > levelDeltaLower || levelDelta > levelDeltaUpper) + allRecipes.splice(allRecipes.findIndex(__ => + __.parents[0].name === recipe.parents[0].name && + __.parents[1].name === recipe.parents[1].name + ), 1); + } else { + const completable = [] as boolean[]; + recipe.parents.forEach(parent => { + if (!parent || parent.treasure) + return; + + skills?.forEach((skill, idx) => { + if ([ ...parent.inherits, ...ALWAYS_INHERITED ].includes(skill.element)) + completable[idx] = true; + }); + }); + + if (completable.includes(false)) + { + allRecipes.splice(allRecipes.findIndex(__ => + __.parents[0].name === recipe.parents[0].name && + __.parents[1].name === recipe.parents[1].name + ), 1); + return; + } + } + }); + + return allRecipes + .sort(RECIPE_COST_SORT) + .sort(RECIPE_COMPLETE_SORT); + } + + return NO_RECIPES; +} \ No newline at end of file diff --git a/src/data/personas.ts b/src/data/personas.ts new file mode 100644 index 0000000..01216b2 --- /dev/null +++ b/src/data/personas.ts @@ -0,0 +1,4316 @@ +import type { SkillData } from './skills'; +import { Affinity, Arcana, Element, InheritanceType } from './types'; + +export interface PersonaData { + name: string; + arcana: Arcana; + level: number; + currentLevel: number; + stats: number []; + affinities: Affinity []; + + inherits: Element []; + skills: [string, number][]; + trait?: string; + + dlc?: boolean; + max?: boolean; + special?: boolean; + treasure?: boolean; +} + +interface PersonaMap { + [index: string]: PersonaData; +} + +export const Personas: PersonaMap = { + 'Abaddon': { + name: 'Abaddon', + inherits: InheritanceType[Element.CURSE], + level: 75, + currentLevel: 75, + arcana: Arcana.JUDGEMENT, + affinities: [Affinity.ABSORB, Affinity.ABSORB, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.ABSORB], + skills: [ + ['Mabufudyne', 0], + ['Megaton Raid', 0], + ['Enduring Soul', 0], + ['Flash Bomb', 78], + ['Ailment Boost', 79], + ['Absorb Phys', 80], + ['Gigantomachia', 81] + ], + stats: [51, 42, 58, 38, 43], + trait: 'Mouth of Savoring' + }, + 'Agathion': { + name: 'Agathion', + inherits: InheritanceType[Element.ELEC], + level: 3, + currentLevel: 3, + arcana: Arcana.CHARIOT, + affinities: [Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ ['Dia', 0], ['Baisudi', 0], ['Lunge', 4], ['Rakukaja', 6], ['Zio', 7], ['Dodge Elec', 8] ], + stats: [3, 4, 5, 7, 3], + trait: 'Rare Antibody' + }, + 'Alice': { + name: 'Alice', + special: true, + inherits: InheritanceType[Element.CURSE], + level: 83, + currentLevel: 83, + arcana: Arcana.DEATH, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.RESIST, Affinity.WEAK, Affinity.REPEL], + skills: [ + ['Mamudoon', 0], + ['Mudo Boost', 0], + ['Maeigaon', 0], + ['Die For Me!', 85], + ['Megidolaon', 86], + ['Concentrate', 87], + ['Survival Trick', 88] + ], + stats: [45, 61, 49, 54, 47], + trait: 'Just Die', + 'max': true + }, + 'Alilat': { + name: 'Alilat', + inherits: InheritanceType[Element.ICE], + level: 81, + currentLevel: 81, + arcana: Arcana.EMPRESS, + affinities: [Affinity.REPEL, Affinity.REPEL, Affinity.WEAK, Affinity.ABSORB, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK], + skills: [ + ['Diamond Dust', 0], + ['Marakukaja', 0], + ['Freeze Boost', 0], + ['Mabufudyne', 82], + ['Concentrate', 83], + ['Auto-Maraku', 85], + ['Ice Amp', 86], + ['Ice Age', 87] + ], + stats: [45, 54, 57, 49, 45], + trait: 'Frigid Bloodline', + }, + 'Ame-no-Uzume': { + name: 'Ame-no-Uzume', + inherits: InheritanceType[Element.ALMIGHTY], + level: 13, + currentLevel: 13, + arcana: Arcana.LOVERS, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.ABSORB, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ ['Mazio', 0], ['Magaru', 0], ['Media', 0], ['Nocturnal Flash', 15], ['Baisudi', 16], ['Divine Grace', 18] ], + stats: [7, 10, 9, 11, 9], + trait: 'Electric Bloodline' + }, + 'Ananta': { + name: 'Ananta', + inherits: InheritanceType[Element.NUKE], + level: 44, + currentLevel: 44, + arcana: Arcana.COUNCILLOR, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.ABSORB, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Mafreila', 0], + ['Defense Master', 0], + ['Elec Wall', 0], + ['Abysmal Surge', 46], + ['Growth 2', 47], + ['Marakukaja', 48], + ['Freidyne', 49], + ['Nuke Boost', 50] + ], + stats: [26, 30, 31, 27, 25], + trait: 'Atomic Bloodline' + }, + 'Andras': { + name: 'Andras', + inherits: InheritanceType[Element.ICE], + level: 27, + currentLevel: 27, + arcana: Arcana.DEVIL, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NULL], + skills: [ + ['Foul Breath', 0], + ['Terror Claw', 0], + ['Evil Touch', 28], + ['Fear Boost', 29], + ['Rakunda', 31], + ['Ghastly Wail', 32] + ], + stats: [15, 19, 19, 21, 14], + trait: 'Foul Odor' + }, + 'Angel': { + name: 'Angel', + inherits: InheritanceType[Element.BLESS], + level: 9, + currentLevel: 9, + arcana: Arcana.JUSTICE, + affinities: [Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.WEAK], + skills: [ ['Kouha', 0], ['Makajam', 0], ['Dia', 0], ['Baisudi', 10], ['Dodge Curse', 11], ['Dekunda', 12] ], + stats: [6, 9, 5, 9, 5], + trait: 'Skillful Combo' + }, + 'Anubis': { + name: 'Anubis', + inherits: InheritanceType[Element.ALMIGHTY], + level: 34, + currentLevel: 34, + arcana: Arcana.JUDGEMENT, + affinities: [Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NULL, Affinity.NULL], + skills: [ ['Hamaon', 0], ['Mudoon', 0], ['Makouga', 0], ['Maeiga', 36], ['Dekunda', 37], ['Resist Bless', 38] ], + stats: [19, 24, 22, 21, 23], + trait: 'DEATHly Illness' + }, + 'Anzu': { + name: 'Anzu', + inherits: InheritanceType[Element.WIND], + level: 25, + currentLevel: 25, + arcana: Arcana.HIEROPHANT, + affinities: [Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.REPEL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ ['Garula', 0], ['Masukukaja', 0], ['Wind Break', 0], ['Assault Dive', 27], ['Dekaja', 28], ['Null Forget', 29] ], + stats: [14, 18, 15, 21, 14], + trait: 'Wind Bloodline' + }, + 'Apsaras': { + name: 'Apsaras', + inherits: InheritanceType[Element.ICE], + level: 11, + currentLevel: 11, + arcana: Arcana.PRIESTESS, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.RESIST, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ ['Rebellion', 0], ['Ice Wall', 0], ['Bufu', 0], ['Media', 13], ['Elec Wall', 14], ['Wind Wall', 16] ], + stats: [7, 11, 6, 10, 6], + trait: 'Internal Hypnosis' + }, + 'Ara Mitama': { + name: 'Ara Mitama', + inherits: InheritanceType[Element.NUKE], + level: 30, + currentLevel: 30, + arcana: Arcana.CHARIOT, + affinities: [Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Miracle Punch', 0], + ['Freila', 0], + ['Taunt', 0], + ['Rebellion', 31], + ['Marakunda', 32], + ['Rage Boost', 34], + ['Matarukaja', 35] + ], + stats: [20, 18, 20, 20, 19], + trait: 'Atomic Bloodline' + }, + 'Arahabaki': { + name: 'Arahabaki', + inherits: InheritanceType[Element.AILMENT], + level: 35, + currentLevel: 35, + arcana: Arcana.HERMIT, + affinities: [Affinity.REPEL, Affinity.REPEL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.WEAK, Affinity.RESIST, Affinity.RESIST], + skills: [ + ['Makarakarn', 0], + ['Abysmal Surge', 0], + ['Null Brainwash', 0], + ['Spirit Drain', 37], + ['Flash Bomb', 38], + ['Defense Master', 39] + ], + stats: [21, 23, 22, 24, 22], + trait: 'Immunity' + }, + 'Archangel': { + name: 'Archangel', + inherits: InheritanceType[Element.BLESS], + level: 14, + currentLevel: 14, + arcana: Arcana.JUSTICE, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.WEAK], + skills: [ ['Giant Slice', 0], ['Dazzler', 0], ['Hama', 0], ['Rebellion', 16], ['Power Slash', 17], ['Vajra Blast', 19] ], + stats: [11, 9, 10, 12, 7], + trait: 'Skillful Combo' + }, + 'Ardha': { + name: 'Ardha', + special: true, + inherits: InheritanceType[Element.ALMIGHTY], + level: 84, + currentLevel: 84, + arcana: Arcana.TEMPERANCE, + affinities: [Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['God\'s Hand', 0], + ['Cosmic Flare', 0], + ['Invigorate 3', 0], + ['Agneyastra', 87], + ['Auto-Masuku', 88], + ['Fortified Moxy', 89], + ['Salvation', 90] + ], + stats: [54, 56, 55, 54, 40], + trait: 'Naranari', + 'max': true + }, + 'Arsene': { + name: 'Arsene', + inherits: InheritanceType[Element.CURSE], + level: 1, + currentLevel: 1, + arcana: Arcana.FOOL, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.RESIST], + skills: [ ['Eiha', 0], ['Cleave', 2], ['Sukunda', 4], ['Dream Needle', 5], ['Adverse Resolve', 7] ], + stats: [2, 2, 2, 3, 1], + trait: 'Pinch Anchor' + }, + 'Asura': { + name: 'Asura', + special: true, + inherits: InheritanceType[Element.NUKE], + level: 76, + currentLevel: 76, + arcana: Arcana.SUN, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.REPEL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Atomic Flare', 0], + ['Mahamaon', 0], + ['Marakukaja', 0], + ['Auto-Mataru', 78], + ['Mafreidyne', 79], + ['High Counter', 80], + ['Unshaken Will', 81] + ], + stats: [52, 48, 51, 49, 35], + trait: 'Atomic Hellscape', + 'max': true + }, + 'Atavaka': { + name: 'Atavaka', + inherits: InheritanceType[Element.PHYS], + level: 65, + currentLevel: 65, + arcana: Arcana.FAITH, + affinities: [Affinity.RESIST, Affinity.NULL, Affinity.REPEL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST], + skills: [ + ['Maragidyne', 0], + ['Oni Kagura', 0], + ['Mediarahan', 0], + ['High Counter', 67], + ['Samarecarm', 68], + ['Brave Blade', 70], + ['Attack Master', 71] + ], + stats: [51, 36, 43, 38, 34], + trait: 'Savior Bloodline' + }, + 'Atropos': { + name: 'Atropos', + inherits: InheritanceType[Element.ELEC], + level: 39, + currentLevel: 39, + arcana: Arcana.FORTUNE, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Mazionga', 0], + ['Fire Wall', 0], + ['Elec Break', 0], + ['Mediarama', 41], + ['Elec Boost', 42], + ['Ziodyne', 44], + ['Concentrate', 45] + ], + stats: [23, 30, 22, 27, 22], + trait: 'Mighty Gaze' + }, + 'Attis': { + name: 'Attis', + inherits: InheritanceType[Element.FIRE], + level: 82, + currentLevel: 82, + arcana: Arcana.HANGEDMAN, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.REPEL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK], + skills: [ + ['Maragidyne', 0], + ['Salvation', 0], + ['Thermopylae', 0], + ['Enduring Soul', 84], + ['Samarecarm', 85], + ['Absorb Curse', 86], + ['Blazing Hell', 88] + ], + stats: [49, 50, 48, 54, 52], + trait: 'Vitality of the Tree', + 'max': true + }, + 'Baal': { + name: 'Baal', + inherits: InheritanceType[Element.WIND], + level: 82, + currentLevel: 82, + arcana: Arcana.EMPEROR, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.ABSORB, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL], + skills: [ + ['Panta Rhei', 0], + ['Revolution', 0], + ['Matarukaja', 0], + ['Ayamur', 84], + ['Tetraja', 85], + ['Charge', 86], + ['Vacuum Wave', 87] + ], + stats: [54, 58, 53, 47, 41], + trait: 'Wind Bloodline' + }, + 'Baphomet': { + name: 'Baphomet', + inherits: InheritanceType[Element.ALMIGHTY], + level: 58, + currentLevel: 58, + arcana: Arcana.DEVIL, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NULL], + skills: [ + ['Agidyne', 0], + ['Evade Fire', 0], + ['Burn Boost', 0], + ['Bufudyne', 59], + ['Ziodyne', 61], + ['Shock Boost', 62], + ['Freeze Boost', 63] + ], + stats: [34, 42, 36, 38, 31], + trait: 'Thermal Conduct' + }, + 'Barong': { + name: 'Barong', + inherits: InheritanceType[Element.ELEC], + level: 52, + currentLevel: 52, + arcana: Arcana.EMPEROR, + affinities: [Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.WEAK], + skills: [ ['Ziodyne', 0], ['Wage War', 0], ['Invigorate 2', 0], ['Elec Break', 54], ['Null Elec', 55], ['Maziodyne', 57] ], + stats: [33, 35, 33, 37, 25], + trait: 'Blessed Bloodline' + }, + 'Beelzebub': { + name: 'Beelzebub', + inherits: InheritanceType[Element.CURSE], + level: 87, + currentLevel: 87, + arcana: Arcana.DEVIL, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.ABSORB, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.REPEL], + skills: [ + ['Maeigaon', 0], + ['Mamudoon', 0], + ['Evil Smile', 0], + ['Curse Amp', 88], + ['Concentrate', 89], + ['Demonic Decree', 90], + ['Repel Ice', 91], + ['Megidolaon', 92] + ], + stats: [55, 61, 54, 56, 42], + trait: 'Mother\'s Lament', + 'max': true + }, + 'Belial': { + name: 'Belial', + inherits: InheritanceType[Element.CURSE], + level: 82, + currentLevel: 82, + arcana: Arcana.DEVIL, + affinities: [Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL], + skills: [ + ['Eigaon', 0], + ['Bloodbath', 0], + ['Curse Amp', 0], + ['Maeigaon', 84], + ['Fear Boost', 85], + ['Mamudoon', 86], + ['Demonic Decree', 88] + ], + stats: [52, 53, 51, 48, 49], + trait: 'Bloodstained Eyes' + }, + 'Belphegor': { + name: 'Belphegor', + inherits: InheritanceType[Element.ICE], + level: 37, + currentLevel: 37, + arcana: Arcana.TOWER, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.RESIST, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.REPEL], + skills: [ ['Mabufula', 0], ['Ice Break', 0], ['Null Rage', 38], ['Dodge Fire', 39], ['Bufudyne', 41], ['Concentrate', 42] ], + stats: [25, 27, 24, 23, 19], + trait: 'Intense Focus' + }, + 'Berith': { + name: 'Berith', + inherits: InheritanceType[Element.PHYS], + level: 9, + currentLevel: 9, + arcana: Arcana.HIEROPHANT, + affinities: [Affinity.NEUTRAL, Affinity.NULL, Affinity.RESIST, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ ['Cleave', 0], ['Rakukaja', 0], ['Tarukaja', 10], ['Dodge Fire', 11], ['Power Slash', 13] ], + stats: [9, 6, 8, 8, 3], + trait: 'Crisis Control' + }, + 'Bicorn': { + name: 'Bicorn', + inherits: InheritanceType[Element.WIND], + level: 4, + currentLevel: 4, + arcana: Arcana.HERMIT, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST], + skills: [ ['Lunge', 0], ['Tarunda', 0], ['Garu', 6], ['Ice Wall', 7], ['Apt Pupil', 8] ], + stats: [5, 3, 3, 5, 3], + trait: 'Striking Weight' + }, + 'Bishamonten': { + name: 'Bishamonten', + inherits: InheritanceType[Element.NUKE], + level: 67, + currentLevel: 67, + arcana: Arcana.HIEROPHANT, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.ABSORB, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.RESIST], + skills: [ + ['Freidyne', 0], + ['Diarahan', 0], + ['Deadly Fury', 0], + ['Mafreidyne', 69], + ['Nuke Amp', 71], + ['Tetrakarn', 72], + ['God\'s Hand', 73] + ], + stats: [51, 37, 42, 44, 34], + trait: 'Savior Bloodline' + }, + 'Black Frost': { + name: 'Black Frost', + special: true, + inherits: InheritanceType[Element.ALMIGHTY], + level: 67, + currentLevel: 67, + arcana: Arcana.FOOL, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.REPEL, Affinity.ABSORB, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL, Affinity.REPEL], + skills: [ + ['Mabufudyne', 0], + ['One-shot Kill', 0], + ['Miracle Punch', 0], + ['Ice Amp', 68], + ['Freeze Boost', 70], + ['Repel Fire', 71], + ['Diamond Dust', 72] + ], + stats: [44, 46, 41, 42, 35], + trait: 'Frigid Bloodline' + }, + 'Black Ooze': { + name: 'Black Ooze', + inherits: InheritanceType[Element.CURSE], + level: 18, + currentLevel: 18, + arcana: Arcana.MOON, + affinities: [Affinity.RESIST, Affinity.RESIST, Affinity.NEUTRAL, Affinity.RESIST, Affinity.WEAK, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NULL], + skills: [ + ['Sledgehammer', 0], + ['Evil Touch', 0], + ['Foul Breath', 0], + ['Ambient Aid', 20], + ['Headbutt', 21], + ['Brain Jack', 23], + ['Flash Bomb', 24] + ], + stats: [15, 7, 16, 8, 15], + trait: 'Rare Antibody' + }, + 'Black Rider': { + name: 'Black Rider', + inherits: InheritanceType[Element.CURSE], + level: 59, + currentLevel: 59, + arcana: Arcana.TOWER, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.ABSORB, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.RESIST], + skills: [ + ['Mamudoon', 0], + ['Flash Bomb', 0], + ['Maeigaon', 0], + ['Ambient Aid', 60], + ['Bloodbath', 61], + ['Ghastly Wail', 63], + ['Megidola', 64] + ], + stats: [36, 42, 34, 42, 30], + trait: 'Gloomy Child' + }, + 'Bugs': { + name: 'Bugs', + special: true, + inherits: InheritanceType[Element.ALMIGHTY], + level: 49, + currentLevel: 49, + arcana: Arcana.FOOL, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NULL], + skills: [ + ['Miracle Punch', 0], + ['Masukunda', 0], + ['Psiodyne', 0], + ['Auto-Mataru', 51], + ['Triple Down', 52], + ['Evade Phys', 54], + ['Fast Heal', 55] + ], + stats: [35, 33, 30, 32, 24], + trait: 'Potent Hypnosis' + }, + 'Byakhee': { + name: 'Byakhee', + inherits: InheritanceType[Element.FIRE], + level: 70, + currentLevel: 70, + arcana: Arcana.MOON, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NULL], + skills: [ + ['Agidyne', 0], + ['Foul Breath', 0], + ['Death Scythe', 0], + ['Maragidyne', 72], + ['Ailment Boost', 73], + ['Fire Break', 74], + ['Heat Riser', 75] + ], + stats: [42, 49, 43, 51, 32], + trait: 'Heated Bloodline', + }, + 'Byakko': { + name: 'Byakko', + inherits: InheritanceType[Element.ICE], + level: 45, + currentLevel: 45, + arcana: Arcana.TEMPERANCE, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.ABSORB, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.RESIST], + skills: [ + ['Swift Strike', 0], + ['Mabufula', 0], + ['Counterstrike', 0], + ['Ice Boost', 47], + ['Ice Break', 48], + ['Evade Fire', 49], + ['Null Rage', 50], + ['Bufudyne', 51] + ], + stats: [35, 28, 30, 32, 17], + trait: 'Retaliating Body' + }, + 'Cait Sith': { + name: 'Cait Sith', + inherits: InheritanceType[Element.AILMENT], + level: 5, + currentLevel: 5, + arcana: Arcana.MAGICIAN, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ ['Agi', 0], ['Cleave', 0], ['Tarukaja', 0], ['Resist Sleep', 6], ['Sukukaja', 7], ['Media', 9] ], + stats: [6, 4, 4, 5, 3], + trait: 'Thermal Conduct' + }, + 'Cerberus': { + name: 'Cerberus', + inherits: InheritanceType[Element.FIRE], + level: 55, + currentLevel: 55, + arcana: Arcana.CHARIOT, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.ABSORB, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Agidyne', 0], + ['Megaton Raid', 0], + ['Rebellion', 56], + ['High Counter', 57], + ['Maragidyne', 58], + ['Enduring Soul', 60] + ], + stats: [39, 35, 32, 39, 27], + trait: 'Heated Bloodline' + }, + 'Chernobog': { + name: 'Chernobog', + inherits: InheritanceType[Element.AILMENT], + level: 62, + currentLevel: 62, + arcana: Arcana.DEATH, + affinities: [Affinity.NEUTRAL, Affinity.RESIST, Affinity.WEAK, Affinity.ABSORB, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.ABSORB], + skills: [ + ['Mudoon', 0], + ['Bloodbath', 0], + ['Myriad Slashes', 0], + ['Foul Breath', 63], + ['Deathbound', 64], + ['Fear Boost', 66], + ['Brave Blade', 67] + ], + stats: [40, 37, 39, 38, 39], + trait: 'Crisis Control' + }, + 'Chi You': { + name: 'Chi You', + special: true, + inherits: InheritanceType[Element.PSY], + level: 88, + currentLevel: 88, + arcana: Arcana.CHARIOT, + affinities: [Affinity.RESIST, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Psycho Force', 0], + ['Repel Phys', 0], + ['Gigantomachia', 0], + ['Fortify Spirit', 90], + ['Psycho Blast', 91], + ['Absorb Psy', 92], + ['Concentrate', 94] + ], + stats: [56, 57, 54, 53, 51], + trait: 'Chi You\'s Blessing' + }, + 'Chimera': { + name: 'Chimera', + inherits: InheritanceType[Element.PHYS], + level: 74, + currentLevel: 74, + arcana: Arcana.STRENGTH, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.ABSORB, Affinity.NULL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK], + skills: [ + ['Maragidyne', 0], + ['Heat Wave', 0], + ['Bufudyne', 0], + ['Marakunda', 76], + ['Fire Amp', 77], + ['Mabufudyne', 78], + ['Ice Amp', 79] + ], + stats: [51, 40, 42, 48, 48], + trait: 'Foul Stench', + }, + 'Choronzon': { + name: 'Choronzon', + inherits: InheritanceType[Element.CURSE], + level: 28, + currentLevel: 28, + arcana: Arcana.MAGICIAN, + affinities: [Affinity.RESIST, Affinity.NEUTRAL, Affinity.ABSORB, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL], + skills: [ + ['Pulinpa', 0], + ['Life Drain', 0], + ['Rampage', 0], + ['Maeiha', 29], + ['Dodge Elec', 30], + ['Eiga', 31], + ['Curse Boost', 32], + ['Climate Decorum', 33] + ], + stats: [16, 19, 19, 18, 19], + trait: 'Draining Mouth' + }, + 'Clotho': { + name: 'Clotho', + inherits: InheritanceType[Element.HEALING], + level: 27, + currentLevel: 27, + arcana: Arcana.FORTUNE, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Mahama', 0], + ['Me Patra', 0], + ['Makajam', 0], + ['Tetraja', 28], + ['Makajamaon', 30], + ['Energy Shower', 31], + ['Invigorate 1', 33] + ], + stats: [14, 19, 18, 20, 17], + trait: 'Relief Bloodline' + }, + 'Crystal Skull': { + name: 'Crystal Skull', + 'treasure': true, + inherits: InheritanceType[Element.ALMIGHTY], + level: 50, + currentLevel: 50, + arcana: Arcana.FOOL, + affinities: [Affinity.RESIST, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Maragidyne', 0], + ['Mabufudyne', 0], + ['Magarudyne', 0], + ['Maziodyne', 0], + ['Mapsiodyne', 0], + ['Mafreidyne', 0], + ['Makougaon', 0], + ['Maeigaon', 0], + ['Foul Stench', 0], + ['Ailment Hunter', 0], + ['Cursed Bloodline', 0] + ], + stats: [50, 50, 50, 50, 50], + trait: 'Ultimate Vessel' + }, + 'Cu Chulainn': { + name: 'Cu Chulainn', + inherits: InheritanceType[Element.ALMIGHTY], + level: 76, + currentLevel: 76, + arcana: Arcana.FAITH, + affinities: [Affinity.RESIST, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.REPEL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL], + skills: [ + ['High Counter', 0], + ['One-shot Kill', 0], + ['Rebellion', 0], + ['Matarukaja', 78], + ['Brave Blade', 79], + ['Charge', 80], + ['Apt Pupil', 81] + ], + stats: [55, 44, 46, 48, 42], + trait: 'Potent Hypnosis' + }, + 'Cybele': { + name: 'Cybele', + inherits: InheritanceType[Element.HEALING], + level: 83, + currentLevel: 83, + arcana: Arcana.PRIESTESS, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL], + skills: [ + ['Samarecarm', 0], + ['Mediarahan', 0], + ['Makougaon', 0], + ['Amrita Shower', 84], + ['Auto-Maraku', 86], + ['Absorb Bless', 87], + ['Salvation', 89] + ], + stats: [44, 57, 49, 51, 55], + trait: 'Linked Bloodline', + 'max': true + }, + 'Daisoujou': { + name: 'Daisoujou', + inherits: InheritanceType[Element.BLESS], + level: 40, + currentLevel: 40, + arcana: Arcana.HIEROPHANT, + affinities: [Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.WEAK], + skills: [ + ['Spirit Drain', 0], + ['Makouga', 0], + ['Samsara', 41], + ['Bless Boost', 42], + ['Diarahan', 43], + ['Me Patra', 44], + ['Null Rage', 45] + ], + stats: [21, 33, 24, 24, 25], + trait: 'Draining Mouth' + }, + 'Dakini': { + name: 'Dakini', + inherits: InheritanceType[Element.PHYS], + level: 50, + currentLevel: 50, + arcana: Arcana.EMPRESS, + affinities: [Affinity.NEUTRAL, Affinity.NULL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Bad Beat', 0], + ['Myriad Slashes', 0], + ['Rising Slash', 0], + ['High Counter', 52], + ['Deathbound', 53], + ['Rebellion', 54], + ['Charge', 55] + ], + stats: [34, 32, 34, 28, 29], + trait: 'Skillful Combo' + }, + 'Decarabia': { + name: 'Decarabia', + inherits: InheritanceType[Element.FIRE], + level: 32, + currentLevel: 32, + arcana: Arcana.COUNCILLOR, + affinities: [Affinity.WEAK, Affinity.NEUTRAL, Affinity.REPEL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.RESIST], + skills: [ + ['Agilao', 0], + ['Ominous Words', 0], + ['Tetrakarn', 33], + ['Fire Boost', 35], + ['Agidyne', 36], + ['Null Fire', 37], + ['Megidola', 38] + ], + stats: [21, 23, 19, 22, 18], + trait: 'Heated Bloodline' + }, + 'Dionysus': { + name: 'Dionysus', + inherits: InheritanceType[Element.AILMENT], + level: 71, + currentLevel: 71, + arcana: Arcana.COUNCILLOR, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.REPEL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NULL], + skills: [ + ['Maziodyne', 0], + ['Ziodyne', 0], + ['Brain Jack', 0], + ['Thermopylae', 72], + ['Ailment Boost', 73], + ['Amrita Shower', 75], + ['Debilitate', 76] + ], + stats: [42, 48, 44, 42, 44], + trait: 'Pinch Anchor' + }, + 'Dominion': { + name: 'Dominion', + inherits: InheritanceType[Element.BLESS], + level: 68, + currentLevel: 68, + arcana: Arcana.JUSTICE, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.REPEL, Affinity.NULL, Affinity.RESIST], + skills: [ + ['Makajamaon', 0], + ['Hamaon', 0], + ['Kougaon', 0], + ['Makougaon', 70], + ['Hama Boost', 71], + ['Mahamaon', 72], + ['Evade Curse', 74] + ], + stats: [42, 45, 43, 44, 37], + trait: 'Blessed Bloodline' + }, + 'Eligor': { + name: 'Eligor', + inherits: InheritanceType[Element.FIRE], + level: 16, + currentLevel: 16, + arcana: Arcana.EMPEROR, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST], + skills: [ + ['Maragi', 0], + ['Sharp Student', 0], + ['Tarukaja', 0], + ['Double Fangs', 18], + ['Sukunda', 19], + ['Memory Blow', 20] + ], + stats: [12, 10, 13, 10, 10], + trait: 'Thermal Conduct' + }, + 'Emperor\'s Amulet': { + name: 'Emperor\'s Amulet', + 'treasure': true, + inherits: InheritanceType[Element.ALMIGHTY], + level: 35, + currentLevel: 35, + arcana: Arcana.HANGEDMAN, + affinities: [Affinity.RESIST, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Agidyne', 0], + ['Bufudyne', 0], + ['Garudyne', 0], + ['Ziodyne', 0], + ['Psiodyne', 0], + ['Freidyne', 0], + ['Kougaon', 0], + ['Eigaon', 0], + ['Frigid Bloodline', 0], + ['Wind Bloodline', 0], + ['Psychic Bloodline', 0] + ], + stats: [35, 35, 35, 35, 35], + trait: 'Ultimate Vessel' + }, + 'Fafnir': { + name: 'Fafnir', + inherits: InheritanceType[Element.NUKE], + level: 86, + currentLevel: 86, + arcana: Arcana.HERMIT, + affinities: [Affinity.REPEL, Affinity.REPEL, Affinity.ABSORB, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.ABSORB, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Gigantomachia', 0], + ['Evil Smile', 0], + ['Cosmic Flare', 0], + ['Atomic Flare', 88], + ['Nuke Amp', 90], + ['Debilitate', 91], + ['Absorb Nuke', 92] + ], + stats: [61, 55, 58, 48, 43], + trait: 'Ailment Hunter', + }, + 'Flauros': { + name: 'Flauros', + special: true, + inherits: InheritanceType[Element.AILMENT], + level: 19, + currentLevel: 19, + arcana: Arcana.DEVIL, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Giant Slice', 0], + ['Dormin Rush', 0], + ['Dekaja', 0], + ['Dodge Phys', 20], + ['Rebellion', 22], + ['Cornered Fang', 23], + ['Heat Up', 24] + ], + stats: [15, 11, 13, 14, 11], + trait: 'Gluttonmouth' + }, + 'Forneus': { + name: 'Forneus', + inherits: InheritanceType[Element.PSY], + level: 63, + currentLevel: 63, + arcana: Arcana.MAGICIAN, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.ABSORB, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Psiodyne', 0], + ['Masukunda', 0], + ['Brain Jack', 0], + ['Survival Trick', 65], + ['Stagnant Air', 66], + ['Mapsiodyne', 67], + ['Evade Psy', 68] + ], + stats: [41, 39, 40, 42, 34], + trait: 'Bloodstained Eyes' + }, + 'Fortuna': { + name: 'Fortuna', + inherits: InheritanceType[Element.WIND], + level: 46, + currentLevel: 46, + arcana: Arcana.FORTUNE, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Magarula', 0], + ['Masukukaja', 0], + ['Tetraja', 0], + ['Garudyne', 47], + ['Touch n\' Go', 49], + ['Amrita Drop', 50], + ['Evade Elec', 51] + ], + stats: [23, 32, 29, 34, 27], + trait: 'Wind Bloodline' + }, + 'Futsunushi': { + name: 'Futsunushi', + inherits: InheritanceType[Element.PHYS], + level: 86, + currentLevel: 86, + arcana: Arcana.MAGICIAN, + affinities: [Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Myriad Slashes', 0], + ['Matarukaja', 0], + ['Apt Pupil', 0], + ['Charge', 88], + ['Brave Blade', 89], + ['Regenerate 3', 90], + ['Firm Stance', 91], + ['Auto-Maraku', 92] + ], + stats: [60, 58, 55, 52, 40], + trait: 'Will of the Sword', + 'max': true + }, + 'Fuu-Ki': { + name: 'Fuu-Ki', + inherits: InheritanceType[Element.WIND], + level: 23, + currentLevel: 23, + arcana: Arcana.STAR, + affinities: [Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.ABSORB, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ ['Tetra Break', 0], ['Tarukaja', 0], ['Garula', 0], ['Wind Boost', 25], ['Magarula', 26], ['Resist Wind', 27] ], + stats: [14, 17, 16, 15, 14], + trait: 'Intense Focus' + }, + 'Gabriel': { + name: 'Gabriel', + inherits: InheritanceType[Element.ALMIGHTY], + level: 77, + currentLevel: 77, + arcana: Arcana.TEMPERANCE, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL, Affinity.ABSORB, Affinity.NEUTRAL], + skills: [ + ['Maziodyne', 0], + ['Mabufudyne', 0], + ['Divine Judgement', 78], + ['Ali Dance', 79], + ['Evade Curse', 80], + ['Touch n\' Go', 81], + ['Ice Amp', 82], + ['Salvation', 83] + ], + stats: [43, 51, 48, 54, 42], + trait: 'Relentless' + }, + 'Ganesha': { + name: 'Ganesha', + inherits: InheritanceType[Element.AILMENT], + level: 53, + currentLevel: 53, + arcana: Arcana.SUN, + affinities: [Affinity.RESIST, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.ABSORB, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Miracle Punch', 0], + ['Tempest Slash', 0], + ['Rebellion', 0], + ['Tetraja', 55], + ['Resist Psy', 56], + ['Masukunda', 57], + ['Charge', 60] + ], + stats: [39, 31, 37, 33, 26], + trait: 'Gluttonmouth' + }, + 'Garuda': { + name: 'Garuda', + inherits: InheritanceType[Element.WIND], + level: 52, + currentLevel: 52, + arcana: Arcana.STAR, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.REPEL, Affinity.NEUTRAL], + skills: [ + ['Garudyne', 0], + ['Mind Slice', 0], + ['Amrita Shower', 53], + ['Masukukaja', 54], + ['Evade Elec', 55], + ['Magarudyne', 57], + ['Wind Amp', 59] + ], + stats: [30, 36, 29, 39, 29], + trait: 'Wind Bloodline' + }, + 'Genbu': { + name: 'Genbu', + inherits: InheritanceType[Element.ICE], + level: 7, + currentLevel: 7, + arcana: Arcana.TEMPERANCE, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ ['Bufu', 0], ['Rakunda', 0], ['Patra', 8], ['Mabufu', 10], ['Resist Forget', 11], ['Defense Master', 12] ], + stats: [5, 6, 7, 6, 4], + trait: 'Cold-Blooded' + }, + 'Girimehkala': { + name: 'Girimehkala', + inherits: InheritanceType[Element.AILMENT], + level: 43, + currentLevel: 43, + arcana: Arcana.MOON, + affinities: [Affinity.REPEL, Affinity.REPEL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NULL], + skills: [ ['Mudoon', 0], ['Marakunda', 0], ['Deathbound', 0], ['Agidyne', 45], ['Wage War', 47], ['Repel Phys', 50] ], + stats: [32, 24, 32, 29, 19], + trait: 'Cursed Bloodline' + }, + 'Hanuman': { + name: 'Hanuman', + inherits: InheritanceType[Element.PHYS], + level: 64, + currentLevel: 64, + arcana: Arcana.STRENGTH, + affinities: [Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL], + skills: [ + ['Tempest Slash', 0], + ['Matarunda', 0], + ['Revolution', 0], + ['Deathbound', 65], + ['Tetra Break', 67], + ['Regenerate 3', 69] + ], + stats: [43, 38, 40, 40, 38], + trait: 'Potent Hypnosis' + }, + 'Hariti': { + name: 'Hariti', + inherits: InheritanceType[Element.ELEC], + level: 40, + currentLevel: 40, + arcana: Arcana.EMPRESS, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.RESIST, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL], + skills: [ + ['Zionga', 0], + ['Energy Shower', 0], + ['Mabaisudi', 0], + ['Samarecarm', 41], + ['Nocturnal Flash', 42], + ['Mediarama', 44], + ['Dizzy Boost', 45], + ['Spirit Drain', 46] + ], + stats: [21, 32, 24, 23, 27], + trait: 'Electric Bloodline' + }, + 'Hastur': { + name: 'Hastur', + inherits: InheritanceType[Element.WIND], + level: 84, + currentLevel: 84, + arcana: Arcana.STAR, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.ABSORB, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL], + skills: [ + ['Vacuum Wave', 0], + ['Nocturnal Flash', 0], + ['Debilitate', 0], + ['Abyssal Eye', 86], + ['Wind Amp', 87], + ['Spirit Drain', 88], + ['Repel Wind', 89] + ], + stats: [51, 59, 52, 56, 41], + trait: 'Mouth of Savoring', + }, + 'Hecatoncheires': { + name: 'Hecatoncheires', + inherits: InheritanceType[Element.PHYS], + level: 42, + currentLevel: 42, + arcana: Arcana.HANGEDMAN, + affinities: [Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NULL], + skills: [ + ['Swift Strike', 0], + ['Regenerate 2', 0], + ['Tarukaja', 0], + ['Endure', 43], + ['Rebellion', 45], + ['Fortified Moxy', 46], + ['Gattling Blows', 49] + ], + stats: [35, 22, 27, 23, 26], + trait: 'Gluttonmouth' + }, + 'Hell Biker': { + name: 'Hell Biker', + special: true, + inherits: InheritanceType[Element.FIRE], + level: 37, + currentLevel: 37, + arcana: Arcana.DEATH, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.REPEL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL], + skills: [ + ['Mudoon', 0], + ['Agilao', 0], + ['Speed Master', 0], + ['Tentarafoo', 38], + ['Fire Boost', 39], + ['Maragion', 40], + ['Mamudoon', 41] + ], + stats: [23, 24, 24, 30, 17], + trait: 'Internal Hypnosis' + }, + 'High Pixie': { + name: 'High Pixie', + inherits: InheritanceType[Element.HEALING], + level: 16, + currentLevel: 16, + arcana: Arcana.FOOL, + affinities: [Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.RESIST, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ ['Garu', 0], ['Media', 0], ['Dormina', 0], ['Diarama', 19], ['Pulinpa', 20], ['Magaru', 22] ], + stats: [8, 14, 10, 13, 10], + trait: 'Skillful Combo' + }, + 'Hope Diamond': { + name: 'Hope Diamond', + 'treasure': true, + inherits: InheritanceType[Element.ALMIGHTY], + level: 40, + currentLevel: 40, + arcana: Arcana.DEATH, + affinities: [Affinity.RESIST, Affinity.RESIST, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Auto-Mataru', 0], + ['Auto-Maraku', 0], + ['Auto-Masuku', 0], + ['Endure', 0], + ['Regenerate 2', 0], + ['Invigorate 2', 0], + ['High Counter', 0], + ['Fast Heal', 0], + ['Internal Hypnosis', 0], + ['Striking Weight', 0], + ['Retaliating Body', 0] + ], + stats: [40, 40, 40, 40, 40], + trait: 'Ultimate Vessel' + }, + 'Horus': { + name: 'Horus', + inherits: InheritanceType[Element.ALMIGHTY], + level: 47, + currentLevel: 47, + arcana: Arcana.SUN, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.REPEL, Affinity.NEUTRAL], + skills: [ + ['Megidola', 0], + ['Diarama', 0], + ['Kougaon', 0], + ['Flash Bomb', 49], + ['Masukukaja', 50], + ['Hamaon', 51], + ['Hama Boost', 52] + ], + stats: [30, 32, 29, 35, 22], + trait: 'Potent Hypnosis' + }, + 'Hua Po': { + name: 'Hua Po', + inherits: InheritanceType[Element.FIRE], + level: 9, + currentLevel: 9, + arcana: Arcana.HANGEDMAN, + affinities: [Affinity.NEUTRAL, Affinity.WEAK, Affinity.REPEL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ ['Agi', 0], ['Dormina', 0], ['Tarunda', 11], ['Resist Forget', 12], ['Maragi', 13], ['Burn Boost', 15] ], + stats: [4, 10, 4, 8, 8], + trait: 'Thermal Conduct' + }, + 'Incubus': { + name: 'Incubus', + inherits: InheritanceType[Element.AILMENT], + level: 5, + currentLevel: 5, + arcana: Arcana.DEVIL, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL], + skills: [ ['Life Drain', 0], ['Dream Needle', 0], ['Dormina', 7], ['Tarunda', 8], ['Dodge Curse', 9] ], + stats: [4, 6, 4, 5, 3], + trait: 'Draining Mouth' + }, + 'Inugami': { + name: 'Inugami', + inherits: InheritanceType[Element.FIRE], + level: 14, + currentLevel: 14, + arcana: Arcana.HANGEDMAN, + affinities: [Affinity.NEUTRAL, Affinity.NULL, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL], + skills: [ + ['Pulinpa', 0], + ['Tarukaja', 0], + ['Giant Slice', 0], + ['Dream Needle', 15], + ['Lucky Punch', 17], + ['Brain Shake', 18], + ['Confuse Boost', 19] + ], + stats: [11, 9, 9, 12, 8], + trait: 'Foul Odor' + }, + 'Ippon-Datara': { + name: 'Ippon-Datara', + inherits: InheritanceType[Element.PHYS], + level: 13, + currentLevel: 13, + arcana: Arcana.HERMIT, + affinities: [Affinity.NEUTRAL, Affinity.RESIST, Affinity.RESIST, Affinity.WEAK, Affinity.NEUTRAL, Affinity.REPEL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.RESIST], + skills: [ + ['Sledgehammer', 0], + ['Tarukaja', 0], + ['Resist Dizzy', 0], + ['Rampage', 15], + ['Sharp Student', 17], + ['Counter', 18] + ], + stats: [11, 7, 14, 6, 8], + trait: 'Striking Weight' + }, + 'Ishtar': { + name: 'Ishtar', + inherits: InheritanceType[Element.HEALING], + level: 85, + currentLevel: 85, + arcana: Arcana.LOVERS, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Mediarahan', 0], + ['Samarecarm', 0], + ['Absorb Wind', 0], + ['Insta-Heal', 87], + ['Maziodyne', 88], + ['Spell Master', 89], + ['Salvation', 90] + ], + stats: [48, 59, 49, 58, 48], + trait: 'Grace of Mother', + 'max': true + }, + 'Isis': { + name: 'Isis', + inherits: InheritanceType[Element.HEALING], + level: 26, + currentLevel: 26, + arcana: Arcana.PRIESTESS, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL], + skills: [ + ['Makouga', 0], + ['Mahama', 0], + ['Diarama', 0], + ['Resist Despair', 27], + ['Hamaon', 29], + ['Hama Boost', 30], + ['Makarakarn', 32] + ], + stats: [14, 20, 17, 18, 16], + trait: 'Savior Bloodline' + }, + 'Jack Frost': { + name: 'Jack Frost', + inherits: InheritanceType[Element.ICE], + level: 11, + currentLevel: 11, + arcana: Arcana.MAGICIAN, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ ['Bufu', 0], ['Ice Break', 0], ['Baisudi', 0], ['Mabufu', 12], ['Rakunda', 13], ['Freeze Boost', 15] ], + stats: [8, 9, 7, 9, 7], + trait: 'Frigid Bloodline' + }, + 'Jack-o\'-Lantern': { + name: 'Jack-o\'-Lantern', + inherits: InheritanceType[Element.FIRE], + level: 2, + currentLevel: 2, + arcana: Arcana.MAGICIAN, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.ABSORB, Affinity.WEAK, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ ['Agi', 0], ['Rakunda', 0], ['Sharp Student', 4], ['Dazzler', 5], ['Resist Sleep', 7] ], + stats: [2, 3, 3, 3, 2], + trait: 'Thermal Conduct' + }, + 'Jatayu': { + name: 'Jatayu', + inherits: InheritanceType[Element.WIND], + level: 51, + currentLevel: 51, + arcana: Arcana.HANGEDMAN, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.REPEL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.RESIST, Affinity.NEUTRAL], + skills: [ + ['Garudyne', 0], + ['Masukukaja', 0], + ['Nocturnal Flash', 0], + ['Dizzy Boost', 52], + ['Wind Amp', 54], + ['Magarudyne', 55], + ['Speed Master', 57] + ], + stats: [31, 34, 29, 36, 30], + trait: 'Wind Bloodline' + }, + 'Jikokuten': { + name: 'Jikokuten', + inherits: InheritanceType[Element.PHYS], + level: 22, + currentLevel: 22, + arcana: Arcana.TEMPERANCE, + affinities: [Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.WEAK], + skills: [ + ['Assault Dive', 0], + ['Defense Master', 0], + ['Rakunda', 0], + ['Kill Rush', 24], + ['Counter', 25], + ['Matarukaja', 27], + ['Adverse Resolve', 28] + ], + stats: [18, 11, 16, 15, 13], + trait: 'Internal Hypnosis' + }, + 'Kaiwan': { + name: 'Kaiwan', + inherits: InheritanceType[Element.ALMIGHTY], + level: 36, + currentLevel: 36, + arcana: Arcana.STAR, + affinities: [Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Makajam', 0], + ['Psio', 0], + ['Forget Boost', 37], + ['Speed Master', 38], + ['Makajamaon', 39], + ['Psiodyne', 40], + ['Marakunda', 41] + ], + stats: [23, 26, 24, 22, 20], + trait: 'Psychic Bloodline' + }, + 'Kali': { + name: 'Kali', + inherits: InheritanceType[Element.FIRE], + level: 63, + currentLevel: 63, + arcana: Arcana.EMPRESS, + affinities: [Affinity.NEUTRAL, Affinity.REPEL, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.REPEL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST], + skills: [ + ['Heat Wave', 0], + ['Bloodbath', 0], + ['Brave Blade', 0], + ['Charge', 65], + ['High Counter', 66], + ['Repel Psy', 67], + ['Vorpal Blade', 68] + ], + stats: [43, 41, 39, 39, 34], + trait: 'Relentless' + }, + 'Kelpie': { + name: 'Kelpie', + inherits: InheritanceType[Element.WIND], + level: 6, + currentLevel: 6, + arcana: Arcana.STRENGTH, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ ['Garu', 0], ['Lunge', 0], ['Resist Brainwash', 8], ['Sukukaja', 9], ['Terror Claw', 10] ], + stats: [5, 5, 5, 6, 4], + trait: 'Striking Weight' + }, + 'Kikuri-Hime': { + name: 'Kikuri-Hime', + inherits: InheritanceType[Element.HEALING], + level: 40, + currentLevel: 40, + arcana: Arcana.PRIESTESS, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL], + skills: [ ['Lullaby', 0], ['Marakukaja', 0], ['Energy Drop', 0], ['Mediarama', 41], ['Tetraja', 43], ['Divine Grace', 45] ], + stats: [22, 31, 24, 28, 22], + trait: 'Relief Bloodline' + }, + 'Kin-Ki': { + name: 'Kin-Ki', + inherits: InheritanceType[Element.PHYS], + level: 25, + currentLevel: 25, + arcana: Arcana.CHARIOT, + affinities: [Affinity.RESIST, Affinity.REPEL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Vajra Blast', 0], + ['Rakukaja', 0], + ['Regenerate 1', 0], + ['Dodge Psy', 27], + ['Sledgehammer', 28], + ['Bad Beat', 30], + ['Counterstrike', 31] + ], + stats: [21, 13, 21, 15, 12], + trait: 'Retaliating Body' + }, + 'King Frost': { + name: 'King Frost', + inherits: InheritanceType[Element.ICE], + level: 61, + currentLevel: 61, + arcana: Arcana.EMPEROR, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.ABSORB, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL], + skills: [ + ['Bufudyne', 0], + ['Ice Break', 0], + ['Megaton Raid', 0], + ['Freeze Boost', 62], + ['Mabufudyne', 64], + ['Concentrate', 65], + ['Ice Amp', 67] + ], + stats: [40, 44, 43, 29, 34], + trait: 'Frigid Bloodline' + }, + 'Kodama': { + name: 'Kodama', + inherits: InheritanceType[Element.AILMENT], + level: 11, + currentLevel: 11, + arcana: Arcana.STAR, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Garu', 0], + ['Rakunda', 0], + ['Psi', 12], + ['Evil Touch', 13], + ['Tarukaja', 14], + ['Fear Boost', 15], + ['Resist Fear', 17] + ], + stats: [7, 11, 8, 10, 4], + trait: 'Skillful Combo' + }, + 'Koh-i-Noor': { + name: 'Koh-i-Noor', + 'treasure': true, + inherits: InheritanceType[Element.ALMIGHTY], + level: 25, + currentLevel: 25, + arcana: Arcana.PRIESTESS, + affinities: [Affinity.RESIST, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Dodge Fire', 0], + ['Dodge Ice', 0], + ['Dodge Wind', 0], + ['Dodge Elec', 0], + ['Dodge Psy', 0], + ['Dodge Nuke', 0], + ['Dodge Bless', 0], + ['Dodge Curse', 0], + ['Crisis Control', 0], + ['Bloodstained Eyes', 0], + ['Rare Antibody', 0] + ], + stats: [25, 25, 25, 25, 25], + trait: 'Ultimate Vessel' + }, + 'Kohryu': { + name: 'Kohryu', + special: true, + inherits: InheritanceType[Element.PSY], + level: 76, + currentLevel: 76, + arcana: Arcana.HIEROPHANT, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.REPEL, Affinity.NEUTRAL, Affinity.NULL, Affinity.WEAK, Affinity.NULL, Affinity.NEUTRAL], + skills: [ + ['Psycho Force', 0], + ['Mediarahan', 0], + ['Mapsiodyne', 0], + ['Life Aid', 78], + ['Concentrate', 79], + ['Psy Amp', 80], + ['Spell Master', 82] + ], + stats: [43, 51, 50, 53, 38], + trait: 'Universal Law', + 'max': true + }, + 'Koppa Tengu': { + name: 'Koppa Tengu', + inherits: InheritanceType[Element.WIND], + level: 11, + currentLevel: 11, + arcana: Arcana.TEMPERANCE, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL], + skills: [ ['Garu', 0], ['Sukukaja', 0], ['Growth 1', 12], ['Taunt', 13], ['Rage Boost', 14], ['Wage War', 15] ], + stats: [7, 8, 8, 11, 6], + trait: 'Intense Focus' + }, + 'Koropokkuru': { + name: 'Koropokkuru', + inherits: InheritanceType[Element.ICE], + level: 9, + currentLevel: 9, + arcana: Arcana.HERMIT, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.RESIST, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Makajam', 0], + ['Bufu', 0], + ['Dodge Ice', 11], + ['Sukunda', 12], + ['Fire Wall', 13], + ['Mabufu', 14], + ['Climate Decorum', 15] + ], + stats: [5, 8, 6, 9, 6], + trait: 'Foul Odor' + }, + 'Koumokuten': { + name: 'Koumokuten', + inherits: InheritanceType[Element.PHYS], + level: 49, + currentLevel: 49, + arcana: Arcana.HERMIT, + affinities: [Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL], + skills: [ + ['Assault Dive', 0], + ['Regenerate 2', 0], + ['Revolution', 0], + ['Attack Master', 51], + ['Ice Wall', 52], + ['Enduring Soul', 54], + ['Deadly Fury', 55] + ], + stats: [37, 29, 34, 29, 25], + trait: 'Gluttonmouth' + }, + 'Kumbhanda': { + name: 'Kumbhanda', + inherits: InheritanceType[Element.AILMENT], + level: 42, + currentLevel: 42, + arcana: Arcana.HERMIT, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST], + skills: [ + ['Magarula', 0], + ['Stagnant Air', 0], + ['Bloodbath', 0], + ['Tempest Slash', 43], + ['Dekaja', 45], + ['Fear Boost', 46], + ['Revolution', 47] + ], + stats: [25, 30, 25, 27, 26], + trait: 'Rare Antibody' + }, + 'Kurama Tengu': { + name: 'Kurama Tengu', + inherits: InheritanceType[Element.WIND], + level: 31, + currentLevel: 31, + arcana: Arcana.HERMIT, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL, Affinity.REPEL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.RESIST], + skills: [ ['Double Shot', 0], ['Masukunda', 0], ['Magarula', 0], ['Wind Boost', 32], ['Brain Jack', 34], ['Growth 2', 36] ], + stats: [20, 19, 21, 24, 16], + trait: 'Skillful Combo' + }, + 'Kushinada': { + name: 'Kushinada', + inherits: InheritanceType[Element.HEALING], + level: 42, + currentLevel: 42, + arcana: Arcana.LOVERS, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.REPEL, Affinity.NEUTRAL], + skills: [ + ['Hysterical Slap', 0], + ['Psy Wall', 0], + ['Mediarama', 0], + ['Matarukaja', 44], + ['Null Confuse', 45], + ['Wind Wall', 46], + ['Amrita Shower', 47], + ['Null Ice', 48] + ], + stats: [24, 30, 26, 28, 25], + trait: 'Savior Bloodline' + }, + 'Kushi Mitama': { + name: 'Kushi Mitama', + inherits: InheritanceType[Element.HEALING], + level: 12, + currentLevel: 12, + arcana: Arcana.COUNCILLOR, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ ['Dia', 0], ['Media', 0], ['Makajam', 0], ['Regenerate 1', 13], ['Wind Wall', 14], ['Forget Boost', 16] ], + stats: [7, 11, 9, 8, 8], + trait: 'Gluttonmouth' + }, + 'Lachesis': { + name: 'Lachesis', + inherits: InheritanceType[Element.ICE], + level: 35, + currentLevel: 35, + arcana: Arcana.FORTUNE, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.WEAK, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Mabaisudi', 0], + ['Bufula', 0], + ['Growth 2', 0], + ['Marakukaja', 36], + ['Elec Wall', 37], + ['Mabufula', 39], + ['Ice Boost', 41] + ], + stats: [18, 26, 22, 25, 21], + trait: 'Internal Hypnosis' + }, + 'Lakshmi': { + name: 'Lakshmi', + inherits: InheritanceType[Element.HEALING], + level: 69, + currentLevel: 69, + arcana: Arcana.FORTUNE, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL], + skills: [ + ['Lullaby', 0], + ['Diarahan', 0], + ['Bufudyne', 0], + ['Mediarahan', 70], + ['Climate Decorum', 71], + ['Amrita Shower', 72], + ['Life Aid', 74] + ], + stats: [39, 49, 41, 47, 38], + trait: 'Wealth of Lotus', + 'max': true + }, + 'Lamia': { + name: 'Lamia', + inherits: InheritanceType[Element.FIRE], + level: 26, + currentLevel: 26, + arcana: Arcana.EMPRESS, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NULL], + skills: [ + ['Mudo', 0], + ['Rakukaja', 0], + ['Rising Slash', 0], + ['Ominous Words', 27], + ['Foul Breath', 28], + ['Mamudo', 30], + ['Despair Boost', 31] + ], + stats: [21, 15, 18, 19, 12], + trait: 'Foul Odor' + }, + 'Leanan Sidhe': { + name: 'Leanan Sidhe', + inherits: InheritanceType[Element.ALMIGHTY], + level: 19, + currentLevel: 19, + arcana: Arcana.LOVERS, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ ['Rakunda', 0], ['Psio', 0], ['Marin Karin', 20], ['Mamudo', 21], ['Mapsi', 22], ['Eiga', 23] ], + stats: [9, 17, 12, 16, 10], + trait: 'Skillful Technique' + }, + 'Legion': { + name: 'Legion', + inherits: InheritanceType[Element.PSY], + level: 38, + currentLevel: 38, + arcana: Arcana.FOOL, + affinities: [Affinity.RESIST, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NULL], + skills: [ + ['Bloodbath', 0], + ['Life Drain', 0], + ['Evil Smile', 0], + ['Foul Breath', 39], + ['Tetra Break', 40], + ['Null Dizzy', 42], + ['Eigaon', 45] + ], + stats: [24, 24, 30, 23, 20], + trait: 'Draining Mouth' + }, + 'Lilim': { + name: 'Lilim', + inherits: InheritanceType[Element.ICE], + level: 32, + currentLevel: 32, + arcana: Arcana.DEVIL, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NULL], + skills: [ + ['Bufula', 0], + ['Lullaby', 0], + ['Freeze Boost', 0], + ['Masukunda', 34], + ['Dodge Bless', 35], + ['Spirit Drain', 36], + ['Mabufula', 37] + ], + stats: [17, 23, 18, 25, 20], + trait: 'Cold-Blooded' + }, + 'Lilith': { + name: 'Lilith', + inherits: InheritanceType[Element.ALMIGHTY], + level: 60, + currentLevel: 60, + arcana: Arcana.MOON, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.REPEL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.REPEL, Affinity.NEUTRAL, Affinity.NULL], + skills: [ + ['Mabufudyne', 0], + ['Makarakarn', 0], + ['Freidyne', 0], + ['Mafreidyne', 62], + ['Spirit Drain', 63], + ['Freeze Boost', 64], + ['Nuke Amp', 65] + ], + stats: [33, 43, 37, 39, 35], + trait: 'Mighty Gaze' + }, + 'Loa': { + name: 'Loa', + inherits: InheritanceType[Element.CURSE], + level: 70, + currentLevel: 70, + arcana: Arcana.HERMIT, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.RESIST, Affinity.WEAK, Affinity.NEUTRAL], + skills: [ + ['Mamudoon', 0], + ['Abysmal Surge', 0], + ['Life Drain', 0], + ['Maeigaon', 72], + ['Absorb Curse', 73], + ['Spirit Drain', 74], + ['Fortify Spirit', 75] + ], + stats: [42, 47, 43, 46, 39], + trait: 'Draining Mouth', + }, + 'Lucifer': { + name: 'Lucifer', + special: true, + inherits: InheritanceType[Element.ALMIGHTY], + level: 93, + currentLevel: 93, + arcana: Arcana.STAR, + affinities: [Affinity.NULL, Affinity.NULL, Affinity.RESIST, Affinity.RESIST, Affinity.RESIST, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.ABSORB], + skills: [ + ['Gigantomachia', 0], + ['Absorb Curse', 0], + ['Morning Star', 94], + ['Spell Master', 95], + ['Heat Riser', 96], + ['Repel Bless', 97], + ['Insta-Heal', 98], + ['Absorb Phys', 99] + ], + stats: [61, 59, 59, 56, 51], + trait: 'Allure of Wisdom', + 'max': true + }, + 'Macabre': { + name: 'Macabre', + inherits: InheritanceType[Element.CURSE], + level: 73, + currentLevel: 73, + arcana: Arcana.HANGEDMAN, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NULL], + skills: [ + ['DEATH Scythe', 0], + ['Evil Smile', 0], + ['Mamudoon', 0], + ['Auto-Masuku', 74], + ['Ghastly Wail', 75], + ['Myriad Slashes', 76], + ['Ali Dance', 78] + ], + stats: [48, 49, 42, 48, 39], + trait: 'Ailment Hunter', + }, + 'Mada': { + name: 'Mada', + inherits: InheritanceType[Element.FIRE], + level: 90, + currentLevel: 90, + arcana: Arcana.TOWER, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.ABSORB, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Inferno', 0], + ['Fire Amp', 0], + ['Burn Boost', 0], + ['Fortify Spirit', 91], + ['Blazing Hell', 92], + ['Amrita Shower', 93], + ['Enduring Soul', 95], + ['Spell Master', 96] + ], + stats: [55, 54, 61, 59, 48], + trait: 'Drunken Passion', + 'max': true + }, + 'Makami': { + name: 'Makami', + inherits: InheritanceType[Element.NUKE], + level: 15, + currentLevel: 15, + arcana: Arcana.TEMPERANCE, + affinities: [Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.RESIST, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NULL, Affinity.NEUTRAL], + skills: [ + ['Double Fangs', 0], + ['Frei', 0], + ['Energy Drop', 0], + ['Mafrei', 17], + ['Makajam', 18], + ['Resist Despair', 19], + ['Dodge Elec', 20] + ], + stats: [13, 12, 8, 11, 8], + trait: 'Skillful Technique' + }, + 'Mandrake': { + name: 'Mandrake', + inherits: InheritanceType[Element.ELEC], + level: 3, + currentLevel: 3, + arcana: Arcana.DEATH, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ ['Pulinpa', 0], ['Energy Drop', 0], ['Lunge', 4], ['Sukunda', 5] ], + stats: [2, 3, 3, 4, 4], + trait: 'Savior Bloodline' + }, + 'Mara': { + name: 'Mara', + inherits: InheritanceType[Element.PSY], + level: 73, + currentLevel: 73, + arcana: Arcana.TOWER, + affinities: [Affinity.NEUTRAL, Affinity.NULL, Affinity.ABSORB, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.REPEL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NULL], + skills: [ + ['Mapsiodyne', 0], + ['One-shot Kill', 0], + ['Tetra Break', 0], + ['Charge', 74], + ['Brain Buster', 76], + ['Psy Amp', 77], + ['Psycho Force', 78] + ], + stats: [51, 43, 43, 45, 44], + trait: 'Mighty Gaze' + }, + 'Maria': { + name: 'Maria', + inherits: InheritanceType[Element.HEALING], + level: 93, + currentLevel: 93, + arcana: Arcana.FAITH, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.ABSORB, Affinity.NEUTRAL], + skills: [ + ['Invigorate 3', 0], + ['Salvation', 0], + ['Holy Benevolence', 0], + ['Heat Riser', 94], + ['Holy Embrace', 96], + ['Angelic Grace', 97], + ['Holy Whisper', 98] + ], + stats: [52, 66, 53, 54, 61], + trait: 'Ave Maria', + 'max': true + }, + 'Matador': { + name: 'Matador', + inherits: InheritanceType[Element.PSY], + level: 17, + currentLevel: 17, + arcana: Arcana.DEATH, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ ['Psi', 0], ['Null Dizzy', 0], ['Sukukaja', 0], ['Mapsi', 18], ['Double Shot', 20], ['Swift Strike', 22] ], + stats: [11, 13, 10, 16, 8], + trait: 'Potent Hypnosis' + }, + 'Melchizedek': { + name: 'Melchizedek', + inherits: InheritanceType[Element.BLESS], + level: 58, + currentLevel: 58, + arcana: Arcana.JUSTICE, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.RESIST, Affinity.NEUTRAL, Affinity.ABSORB, Affinity.NULL], + skills: [ + ['Megaton Raid', 0], + ['Hamaon', 0], + ['Hama Boost', 59], + ['Revolution', 60], + ['Mahamaon', 62], + ['Matarukaja', 63], + ['God\'s Hand', 65] + ], + stats: [37, 32, 40, 39, 33], + trait: 'DEATHly Illness' + }, + 'Metatron': { + name: 'Metatron', + special: true, + inherits: InheritanceType[Element.BLESS], + level: 89, + currentLevel: 89, + arcana: Arcana.JUSTICE, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.REPEL, Affinity.ABSORB, Affinity.ABSORB, Affinity.NEUTRAL, Affinity.WEAK], + skills: [ + ['Mahamaon', 0], + ['Sword Dance', 0], + ['Makougaon', 0], + ['Megidolaon', 91], + ['Hama Boost', 92], + ['Concentrate', 93], + ['Bless Amp', 94], + ['Divine JUDGEMENT', 95] + ], + stats: [54, 61, 60, 57, 42], + trait: 'Martyr\'s Gift' + }, + 'Michael': { + name: 'Michael', + special: true, + inherits: InheritanceType[Element.ALMIGHTY], + level: 87, + currentLevel: 87, + arcana: Arcana.JUDGEMENT, + affinities: [Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.REPEL, Affinity.NULL], + skills: [ + ['Divine JUDGEMENT', 0], + ['Mabufudyne', 0], + ['Debilitate', 0], + ['Sword Dance', 89], + ['Mahamaon', 90], + ['Megidolaon', 91], + ['Cosmic Flare', 92] + ], + stats: [57, 54, 55, 56, 46], + trait: 'Potent Hypnosis' + }, + 'Mishaguji': { + name: 'Mishaguji', + inherits: InheritanceType[Element.AILMENT], + level: 52, + currentLevel: 52, + arcana: Arcana.HIEROPHANT, + affinities: [Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.ABSORB], + skills: [ + ['Regenerate 3', 0], + ['Brain Jack', 0], + ['Psiodyne', 0], + ['One-shot Kill', 54], + ['Endure', 55], + ['Deathbound', 56], + ['Ailment Boost', 57] + ], + stats: [32, 32, 32, 32, 35], + trait: 'Ailment Hunter' + }, + 'Mithra': { + name: 'Mithra', + inherits: InheritanceType[Element.BLESS], + level: 33, + currentLevel: 33, + arcana: Arcana.TEMPERANCE, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL], + skills: [ + ['Kouga', 0], + ['Mahama', 0], + ['Diarama', 0], + ['Makouga', 34], + ['Dekunda', 35], + ['Bless Boost', 36], + ['Thermopylae', 38] + ], + stats: [19, 26, 19, 24, 18], + trait: 'Blessed Bloodline' + }, + 'Mithras': { + name: 'Mithras', + inherits: InheritanceType[Element.NUKE], + level: 39, + currentLevel: 39, + arcana: Arcana.SUN, + affinities: [Affinity.RESIST, Affinity.RESIST, Affinity.ABSORB, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Tentarafoo', 0], + ['Mafreila', 0], + ['Heat Wave', 0], + ['Tetra Break', 41], + ['Nuke Break', 42], + ['Mabaisudi', 43], + ['Freidyne', 45] + ], + stats: [27, 25, 27, 25, 20], + trait: 'Skillful Technique' + }, + 'Mokoi': { + name: 'Mokoi', + inherits: InheritanceType[Element.AILMENT], + level: 9, + currentLevel: 9, + arcana: Arcana.DEATH, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Tarukaja', 0], + ['Dazzler', 0], + ['Skull Cracker', 10], + ['Marin Karin', 12], + ['Dodge Elec', 13], + ['Dekunda', 14] + ], + stats: [9, 5, 6, 10, 4], + trait: 'Gloomy Child' + }, + 'Moloch': { + name: 'Moloch', + inherits: InheritanceType[Element.FIRE], + level: 60, + currentLevel: 60, + arcana: Arcana.HANGEDMAN, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.ABSORB, Affinity.WEAK, Affinity.RESIST, Affinity.RESIST, Affinity.ABSORB, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL], + skills: [ + ['Agidyne', 0], + ['Stagnant Air', 0], + ['Evil Smile', 0], + ['Maragidyne', 62], + ['Ghastly Wail', 63], + ['Absorb Fire', 64], + ['Fire Amp', 65] + ], + stats: [32, 45, 42, 31, 37], + trait: 'Immunity' + }, + 'Mot': { + name: 'Mot', + inherits: InheritanceType[Element.AILMENT], + level: 72, + currentLevel: 72, + arcana: Arcana.DEATH, + affinities: [Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.ABSORB, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.REPEL], + skills: [ + ['Megidola', 0], + ['Matarukaja', 0], + ['Maeigaon', 0], + ['Concentrate', 74], + ['Megidolaon', 76], + ['Repel Elec', 77] + ], + stats: [43, 51, 48, 42, 39], + trait: 'Mighty Gaze' + }, + 'Mother Harlot': { + name: 'Mother Harlot', + inherits: InheritanceType[Element.ICE], + level: 85, + currentLevel: 85, + arcana: Arcana.EMPRESS, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.REPEL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NULL], + skills: [ + ['Mabufudyne', 0], + ['Mamudoon', 0], + ['Mudo Boost', 0], + ['Ice Age', 86], + ['Ice Amp', 87], + ['Repel Bless', 88], + ['Debilitate', 90] + ], + stats: [55, 54, 48, 50, 55], + trait: 'Ghost Nest', + 'max': true + }, + 'Mothman': { + name: 'Mothman', + inherits: InheritanceType[Element.ELEC], + level: 33, + currentLevel: 33, + arcana: Arcana.MOON, + affinities: [Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Skull Cracker', 0], + ['Mazionga', 0], + ['Shock Boost', 0], + ['Tentarafoo', 35], + ['Ambient Aid', 36], + ['Makajamaon', 37], + ['Ziodyne', 38] + ], + stats: [21, 24, 16, 24, 21], + trait: 'Static Electricity' + }, + 'Naga': { + name: 'Naga', + inherits: InheritanceType[Element.ELEC], + level: 24, + currentLevel: 24, + arcana: Arcana.HERMIT, + affinities: [Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Power Slash', 0], + ['Memory Blow', 0], + ['Zionga', 0], + ['Shock Boost', 26], + ['Counter', 27], + ['Mazionga', 28], + ['Marakukaja', 29] + ], + stats: [15, 17, 15, 17, 15], + trait: 'Striking Weight' + }, + 'Narcissus': { + name: 'Narcissus', + inherits: InheritanceType[Element.AILMENT], + level: 48, + currentLevel: 48, + arcana: Arcana.LOVERS, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NULL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL], + skills: [ + ['Dazzler', 0], + ['Magarula', 0], + ['Energy Drop', 0], + ['Growth 3', 50], + ['Dizzy Boost', 51], + ['Mediarama', 52], + ['Ambient Aid', 53] + ], + stats: [27, 31, 29, 33, 31], + trait: 'Gluttonmouth' + }, + 'Nebiros': { + name: 'Nebiros', + inherits: InheritanceType[Element.CURSE], + level: 74, + currentLevel: 74, + arcana: Arcana.DEVIL, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.RESIST], + skills: [ + ['Marin Karin', 0], + ['Mapsiodyne', 0], + ['Marakukaja', 0], + ['Brain Jack', 76], + ['Brainwash Boost', 77], + ['Megidolaon', 78], + ['Null Bless', 80] + ], + stats: [45, 52, 44, 46, 42], + trait: 'Psychic Bloodline' + }, + 'Neko Shogun': { + name: 'Neko Shogun', + special: true, + inherits: InheritanceType[Element.ALMIGHTY], + level: 30, + currentLevel: 30, + arcana: Arcana.STAR, + affinities: [Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.RESIST], + skills: [ + ['Psio', 0], + ['Diarama', 0], + ['Masukukaja', 0], + ['Invigorate 1', 31], + ['Cornered Fang', 33], + ['Defense Master', 35], + ['Fortified Moxy', 36] + ], + stats: [19, 20, 19, 21, 18], + trait: 'Pinch Anchor' + }, + 'Nekomata': { + name: 'Nekomata', + inherits: InheritanceType[Element.AILMENT], + level: 17, + currentLevel: 17, + arcana: Arcana.MAGICIAN, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Magaru', 0], + ['Terror Claw', 0], + ['Evil Touch', 0], + ['Hysterical Slap', 18], + ['Wind Break', 20], + ['Elec Wall', 21], + ['Dodge Elec', 22] + ], + stats: [13, 10, 12, 15, 8], + trait: 'Foul Odor' + }, + 'Nigi Mitama': { + name: 'Nigi Mitama', + inherits: InheritanceType[Element.HEALING], + level: 22, + currentLevel: 22, + arcana: Arcana.COUNCILLOR, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.RESIST], + skills: [ ['Baisudi', 0], ['Diarama', 0], ['Makouha', 0], ['Divine Grace', 24], ['Me Patra', 25], ['Climate Decorum', 26] ], + stats: [13, 15, 15, 16, 14], + trait: 'Relief Bloodline' + }, + 'Norn': { + name: 'Norn', + inherits: InheritanceType[Element.ALMIGHTY], + level: 52, + currentLevel: 52, + arcana: Arcana.FORTUNE, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.REPEL, Affinity.ABSORB, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL], + skills: [ + ['Ziodyne', 0], + ['Garudyne', 0], + ['Nocturnal Flash', 0], + ['Diarahan', 54], + ['Amrita Drop', 55], + ['Tetraja', 56], + ['Samarecarm', 57] + ], + stats: [30, 38, 33, 34, 28], + trait: 'Intense Focus' + }, + 'Nue': { + name: 'Nue', + inherits: InheritanceType[Element.CURSE], + level: 20, + currentLevel: 20, + arcana: Arcana.DEATH, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL], + skills: [ + ['Maeiha', 0], + ['Skull Cracker', 0], + ['Mudo', 21], + ['Pulinpa', 22], + ['Mamudo', 24], + ['Assault Dive', 25], + ['Curse Boost', 26] + ], + stats: [16, 10, 17, 14, 10], + trait: 'Mighty Gaze' + }, + 'Obariyon': { + name: 'Obariyon', + inherits: InheritanceType[Element.PHYS], + level: 8, + currentLevel: 8, + arcana: Arcana.FOOL, + affinities: [Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ ['Snap', 0], ['Sukunda', 0], ['Lucky Punch', 9], ['Resist Fear', 10], ['Dekaja', 12] ], + stats: [7, 3, 9, 8, 4], + trait: 'Striking Weight' + }, + 'Oberon': { + name: 'Oberon', + inherits: InheritanceType[Element.ELEC], + level: 66, + currentLevel: 66, + arcana: Arcana.EMPEROR, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NULL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Ziodyne', 0], + ['Nocturnal Flash', 0], + ['Heat Wave', 0], + ['Matarukaja', 68], + ['Myriad Slashes', 69], + ['Evade Nuke', 70], + ['Samarecarm', 71], + ['Elec Amp', 72] + ], + stats: [40, 45, 42, 43, 35], + trait: 'Static Electricity' + }, + 'Odin': { + name: 'Odin', + inherits: InheritanceType[Element.ELEC], + level: 84, + currentLevel: 84, + arcana: Arcana.EMPEROR, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.ABSORB, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.REPEL, Affinity.REPEL], + skills: [ + ['Thunder Reign', 0], + ['Myriad Slashes', 0], + ['Marakukaja', 0], + ['Wild Thunder', 86], + ['Concentrate', 87], + ['Fast Heal', 88], + ['Elec Amp', 89] + ], + stats: [53, 58, 54, 52, 42], + trait: 'Bargain Bolts', + 'max': true + }, + 'Okuninushi': { + name: 'Okuninushi', + inherits: InheritanceType[Element.PSY], + level: 54, + currentLevel: 54, + arcana: Arcana.FAITH, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.REPEL, Affinity.WEAK, Affinity.NULL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Mapsio', 0], + ['Myriad Slashes', 0], + ['Matarukaja', 0], + ['Psy Boost', 55], + ['Psy Break', 56], + ['Evade Nuke', 57], + ['Heat Wave', 59] + ], + stats: [39, 35, 33, 32, 30], + trait: 'Psychic Bloodline' + }, + 'Ongyo-Ki': { + name: 'Ongyo-Ki', + special: true, + inherits: InheritanceType[Element.PHYS], + level: 89, + currentLevel: 89, + arcana: Arcana.HERMIT, + affinities: [Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.REPEL, Affinity.REPEL], + skills: [ + ['Myriad Slashes', 0], + ['Makajamaon', 0], + ['Last Stand', 0], + ['Arms Master', 91], + ['Regenerate 3', 92], + ['Firm Stance', 93], + ['Agneyastra', 95] + ], + stats: [56, 53, 57, 59, 49], + trait: 'Demon\'s Bite', + 'max': true + }, + 'Oni': { + name: 'Oni', + inherits: InheritanceType[Element.PHYS], + level: 20, + currentLevel: 20, + arcana: Arcana.STRENGTH, + affinities: [Affinity.RESIST, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ ['Rampage', 0], ['Counter', 0], ['Snap', 0], ['Giant Slice', 22], ['Sharp Student', 23], ['Memory Blow', 24] ], + stats: [19, 9, 17, 12, 10], + trait: 'Retaliating Body' + }, + 'Onmoraki': { + name: 'Onmoraki', + inherits: InheritanceType[Element.CURSE], + level: 12, + currentLevel: 12, + arcana: Arcana.MOON, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NULL], + skills: [ ['Eiha', 0], ['Ice Wall', 0], ['Agi', 13], ['Evil Touch', 14], ['Pulinpa', 15], ['Confuse Boost', 17] ], + stats: [9, 12, 7, 10, 5], + trait: 'Intense Focus' + }, + 'Orichalcum': { + name: 'Orichalcum', + 'treasure': true, + inherits: InheritanceType[Element.ALMIGHTY], + level: 60, + currentLevel: 60, + arcana: Arcana.FAITH, + affinities: [Affinity.RESIST, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL], + skills: [ + ['Inferno', 0], + ['Diamond Dust', 0], + ['Panta Rhei', 0], + ['Thunder Reign', 0], + ['Psycho Force', 0], + ['Atomic Flare', 0], + ['Divine JUDGEMENT', 0], + ['Demonic Decree', 0], + ['Immunity', 0], + ['Mouth of Savoring', 0], + ['Blessed Bloodline', 0] + ], + stats: [60, 60, 60, 60, 60], + trait: 'Ultimate Vessel' + }, + 'Orlov': { + name: 'Orlov', + 'treasure': true, + inherits: InheritanceType[Element.ALMIGHTY], + level: 30, + currentLevel: 30, + arcana: Arcana.STRENGTH, + affinities: [Affinity.RESIST, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK], + skills: [ + ['Maragion', 0], + ['Mabufula', 0], + ['Magarula', 0], + ['Mazionga', 0], + ['Mapsio', 0], + ['Mafreila', 0], + ['Makouga', 0], + ['Maeiga', 0], + ['Heated Bloodline', 0], + ['Electric Bloodline', 0], + ['Atomic Bloodline', 0] + ], + stats: [30, 30, 30, 30, 30], + trait: 'Ultimate Vessel' + }, + 'Orobas': { + name: 'Orobas', + inherits: InheritanceType[Element.FIRE], + level: 17, + currentLevel: 17, + arcana: Arcana.HIEROPHANT, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST], + skills: [ ['Maragi', 0], ['Sukukaja', 0], ['Dekaja', 0], ['Marakunda', 19], ['Fire Break', 20], ['Makajamaon', 21] ], + stats: [11, 14, 15, 12, 6], + trait: 'Mighty Gaze' + }, + 'Orthrus': { + name: 'Orthrus', + inherits: InheritanceType[Element.FIRE], + level: 21, + currentLevel: 21, + arcana: Arcana.HANGEDMAN, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.ABSORB, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Agilao', 0], + ['Double Fangs', 0], + ['Maragi', 0], + ['Burn Boost', 22], + ['Cornered Fang', 24], + ['Matarukaja', 26] + ], + stats: [16, 14, 14, 19, 7], + trait: 'Thermal Conduct' + }, + 'Ose': { + name: 'Ose', + inherits: InheritanceType[Element.AILMENT], + level: 42, + currentLevel: 42, + arcana: Arcana.FOOL, + affinities: [Affinity.NEUTRAL, Affinity.NULL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NULL], + skills: [ + ['Oni Kagura', 0], + ['Counterstrike', 0], + ['Charge', 0], + ['Tempest Slash', 43], + ['Matarukaja', 45], + ['Heat Wave', 47] + ], + stats: [32, 24, 25, 31, 21], + trait: 'Retaliating Body' + }, + 'Pale Rider': { + name: 'Pale Rider', + inherits: InheritanceType[Element.CURSE], + level: 54, + currentLevel: 54, + arcana: Arcana.DEATH, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.REPEL], + skills: [ + ['Abysmal Surge', 0], + ['Eigaon', 0], + ['Brain Shake', 0], + ['Curse Boost', 55], + ['Megidola', 56], + ['Evade Bless', 58], + ['Deathbound', 59] + ], + stats: [32, 37, 33, 40, 27], + trait: 'Foul Stench' + }, + 'Parvati': { + name: 'Parvati', + inherits: InheritanceType[Element.PSY], + level: 56, + currentLevel: 56, + arcana: Arcana.LOVERS, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.REPEL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.RESIST, Affinity.WEAK], + skills: [ + ['Diarama', 0], + ['Psiodyne', 0], + ['Psy Break', 0], + ['Energy Shower', 57], + ['Diarahan', 58], + ['Mapsiodyne', 59], + ['Null Ice', 61] + ], + stats: [33, 39, 33, 39, 31], + trait: 'Skillful Technique' + }, + 'Pazuzu': { + name: 'Pazuzu', + inherits: InheritanceType[Element.CURSE], + level: 45, + currentLevel: 45, + arcana: Arcana.DEVIL, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NULL], + skills: [ + ['Maeiga', 0], + ['Tentarafoo', 0], + ['Mudoon', 0], + ['Ambient Aid', 47], + ['Evil Smile', 48], + ['Stagnant Air', 49], + ['Eigaon', 50] + ], + stats: [29, 33, 27, 26, 27], + trait: 'Cursed Bloodline' + }, + 'Phoenix': { + name: 'Phoenix', + inherits: InheritanceType[Element.NUKE], + level: 21, + currentLevel: 21, + arcana: Arcana.FAITH, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.WEAK, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ ['Freila', 0], ['Dream Needle', 0], ['Diarama', 22], ['Recarm', 23], ['Nuke Boost', 25], ['Mafreila', 26] ], + stats: [12, 15, 15, 17, 11], + trait: 'Atomic Bloodline' + }, + 'Pisaca': { + name: 'Pisaca', + inherits: InheritanceType[Element.CURSE], + level: 28, + currentLevel: 28, + arcana: Arcana.DEATH, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NULL], + skills: [ + ['Dream Needle', 0], + ['Rampage', 0], + ['Stagnant Air', 0], + ['Mamudo', 29], + ['Abysmal Surge', 31], + ['Despair Boost', 32], + ['Mudoon', 33] + ], + stats: [19, 21, 21, 16, 14], + trait: 'Rare Antibody' + }, + 'Pixie': { + name: 'Pixie', + inherits: InheritanceType[Element.ELEC], + level: 2, + currentLevel: 2, + arcana: Arcana.LOVERS, + affinities: [Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.WEAK, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.WEAK], + skills: [ ['Zio', 0], ['Dia', 0], ['Patra', 3], ['Tarukaja', 5], ['Resist Confuse', 6] ], + stats: [1, 3, 3, 4, 2], + trait: 'Static Electricity' + }, + 'Power': { + name: 'Power', + inherits: InheritanceType[Element.BLESS], + level: 41, + currentLevel: 41, + arcana: Arcana.JUSTICE, + affinities: [Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.WEAK], + skills: [ + ['Hamaon', 0], + ['Brain Shake', 0], + ['Swift Strike', 42], + ['Makouga', 43], + ['Bless Boost', 44], + ['Masukukaja', 45], + ['Null Curse', 46] + ], + stats: [30, 26, 28, 25, 21], + trait: 'Internal Hypnosis' + }, + 'Principality': { + name: 'Principality', + inherits: InheritanceType[Element.BLESS], + level: 29, + currentLevel: 29, + arcana: Arcana.JUSTICE, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.WEAK], + skills: [ + ['Makouga', 0], + ['Makajamaon', 0], + ['Tetraja', 0], + ['Mediarama', 30], + ['Forget Boost', 32], + ['Bless Boost', 34], + ['Mabaisudi', 35] + ], + stats: [17, 19, 18, 21, 19], + trait: 'Blessed Bloodline' + }, + 'Queen Mab': { + name: 'Queen Mab', + inherits: InheritanceType[Element.ALMIGHTY], + level: 43, + currentLevel: 43, + arcana: Arcana.MAGICIAN, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Mazionga', 0], + ['Makajamaon', 0], + ['Burn Boost', 0], + ['Matarunda', 44], + ['Makara Break', 46], + ['Agidyne', 47], + ['Concentrate', 48] + ], + stats: [23, 35, 26, 30, 22], + trait: 'Static Electricity' + }, + 'Queen\'s Necklace': { + name: 'Queen\'s Necklace', + 'treasure': true, + inherits: InheritanceType[Element.ALMIGHTY], + level: 15, + currentLevel: 15, + arcana: Arcana.EMPRESS, + affinities: [Affinity.RESIST, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Tarukaja', 0], + ['Rakukaja', 0], + ['Sukukaja', 0], + ['Recarm', 0], + ['Media', 0], + ['Tarunda', 0], + ['Rakunda', 0], + ['Sukunda', 0], + ['Potent Hypnosis', 0], + ['Relief Bloodline', 0], + ['Savior Bloodline', 0] + ], + stats: [15, 15, 15, 15, 15], + trait: 'Ultimate Vessel' + }, + 'Quetzalcoatl': { + name: 'Quetzalcoatl', + inherits: InheritanceType[Element.WIND], + level: 66, + currentLevel: 66, + arcana: Arcana.SUN, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Magarula', 0], + ['Garudyne', 0], + ['Memory Blow', 0], + ['Growth 3', 68], + ['Regenerate 3', 69], + ['Magarudyne', 70], + ['Wind Amp', 71] + ], + stats: [41, 46, 41, 43, 34], + trait: 'Wind Bloodline' + }, + 'Raja Naga': { + name: 'Raja Naga', + inherits: InheritanceType[Element.ELEC], + level: 55, + currentLevel: 55, + arcana: Arcana.TEMPERANCE, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Ziodyne', 0], + ['Elec Break', 0], + ['Tentarafoo', 0], + ['Shock Boost', 57], + ['Makarakarn', 58], + ['Maziodyne', 59], + ['Evade Wind', 60] + ], + stats: [33, 37, 36, 35, 31], + trait: 'Electric Bloodline' + }, + 'Rakshasa': { + name: 'Rakshasa', + inherits: InheritanceType[Element.PHYS], + level: 24, + currentLevel: 24, + arcana: Arcana.STRENGTH, + affinities: [Affinity.RESIST, Affinity.NULL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.RESIST], + skills: [ + ['Giant Slice', 0], + ['Wind Wall', 0], + ['Tarukaja', 0], + ['Regenerate 1', 26], + ['Mind Slice', 27], + ['Counterstrike', 28], + ['Adverse Resolve', 30] + ], + stats: [20, 15, 18, 17, 9], + trait: 'Skillful Combo' + }, + 'Rangda': { + name: 'Rangda', + inherits: InheritanceType[Element.CURSE], + level: 48, + currentLevel: 48, + arcana: Arcana.MAGICIAN, + affinities: [Affinity.REPEL, Affinity.REPEL, Affinity.NULL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NULL], + skills: [ ['Swift Strike', 0], ['Bloodbath', 0], ['Counterstrike', 0], ['Eigaon', 49], ['Matarunda', 51], ['Mudoon', 53] ], + stats: [28, 34, 30, 33, 26], + trait: 'Cursed Bloodline' + }, + 'Raphael': { + name: 'Raphael', + inherits: InheritanceType[Element.ALMIGHTY], + level: 78, + currentLevel: 78, + arcana: Arcana.LOVERS, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.ABSORB, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL], + skills: [ + ['Sword Dance', 0], + ['Charge', 0], + ['Dekaja', 0], + ['Heat Riser', 80], + ['Growth 3', 81], + ['Adverse Resolve', 82], + ['Arms Master', 83] + ], + stats: [57, 45, 49, 55, 35], + trait: 'Pinch Anchor' + }, + 'Red Rider': { + name: 'Red Rider', + inherits: InheritanceType[Element.PSY], + level: 41, + currentLevel: 41, + arcana: Arcana.TOWER, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NULL], + skills: [ + ['Rising Slash', 0], + ['Psy Break', 0], + ['Mapsio', 0], + ['Negative Pile', 42], + ['Despair Boost', 44], + ['Ominous Words', 45], + ['Last Stand', 46] + ], + stats: [26, 27, 25, 29, 23], + trait: 'Ailment Hunter' + }, + 'Regent': { + name: 'Regent', + 'treasure': true, + inherits: InheritanceType[Element.ALMIGHTY], + level: 10, + currentLevel: 10, + arcana: Arcana.EMPEROR, + affinities: [Affinity.RESIST, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Maragi', 0], + ['Mabufu', 0], + ['Magaru', 0], + ['Mazio', 0], + ['Mapsi', 0], + ['Mafrei', 0], + ['Makouha', 0], + ['Maeiha', 0], + ['Mighty Gaze', 0], + ['Skillful Technique', 0], + ['Skillful Combo', 0] + ], + stats: [10, 10, 10, 10, 10], + trait: 'Ultimate Vessel' + }, + 'Saki Mitama': { + name: 'Saki Mitama', + inherits: InheritanceType[Element.HEALING], + level: 6, + currentLevel: 6, + arcana: Arcana.LOVERS, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ ['Bufu', 0], ['Energy Drop', 0], ['Wind Wall', 0], ['Growth 1', 7], ['Rakukaja', 8], ['Resist Dizzy', 10] ], + stats: [4, 6, 5, 6, 4], + trait: 'Internal Hypnosis' + }, + 'Sandalphon': { + name: 'Sandalphon', + inherits: InheritanceType[Element.BLESS], + level: 75, + currentLevel: 75, + arcana: Arcana.MOON, + affinities: [Affinity.RESIST, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.REPEL, Affinity.NULL], + skills: [ + ['Mahamaon', 0], + ['Samarecarm', 0], + ['Amrita Shower', 0], + ['Angelic Grace', 77], + ['Repel Curse', 78], + ['Sword Dance', 79], + ['Megidolaon', 81] + ], + stats: [46, 51, 49, 48, 38], + trait: 'Omen', + 'max': true + }, + 'Sandman': { + name: 'Sandman', + inherits: InheritanceType[Element.WIND], + level: 23, + currentLevel: 23, + arcana: Arcana.MAGICIAN, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.WEAK, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Dormina', 0], + ['Garula', 0], + ['Dormin Rush', 0], + ['Sukunda', 24], + ['Null Sleep', 26], + ['Magarula', 27], + ['Sleep Boost', 28] + ], + stats: [11, 13, 14, 17, 21], + trait: 'Foul Odor' + }, + 'Sarasvati': { + name: 'Sarasvati', + inherits: InheritanceType[Element.HEALING], + level: 50, + currentLevel: 50, + arcana: Arcana.PRIESTESS, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Mediarama', 0], + ['Ice Wall', 0], + ['Tentarafoo', 0], + ['Psy Wall', 51], + ['Dekaja', 52], + ['Matarunda', 53], + ['Diarahan', 54] + ], + stats: [30, 35, 32, 33, 27], + trait: 'Relief Bloodline' + }, + 'Satan': { + name: 'Satan', + inherits: InheritanceType[Element.ICE], + level: 92, + currentLevel: 92, + arcana: Arcana.JUDGEMENT, + affinities: [Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.REPEL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.REPEL], + skills: [ + ['Diamond Dust', 0], + ['Ice Age', 0], + ['Regenerate 3', 0], + ['Black Viper', 94], + ['Invigorate 3', 95], + ['Fortify Spirit', 96], + ['Concentrate', 97], + ['Absorb Ice', 98] + ], + stats: [62, 59, 55, 52, 55], + trait: 'Cocytus', + 'max': true + }, + 'Satanael': { + name: 'Satanael', + special: true, + inherits: InheritanceType[Element.ALMIGHTY], + level: 95, + currentLevel: 95, + arcana: Arcana.FOOL, + affinities: [Affinity.RESIST, Affinity.RESIST, Affinity.RESIST, Affinity.RESIST, Affinity.RESIST, Affinity.RESIST, Affinity.RESIST, Affinity.RESIST, Affinity.NULL, Affinity.ABSORB], + skills: [ + ['Maeigaon', 0], + ['Megidolaon', 0], + ['Survival Trick', 0], + ['Riot Gun', 0], + ['Black Viper', 96], + ['Heat Riser', 97], + ['Tyrant\'s Mind', 98], + ['Victory Cry', 99] + ], + stats: [63, 60, 57, 56, 56], + trait: 'Pagan Allure', + }, + 'Scathach': { + name: 'Scathach', + inherits: InheritanceType[Element.WIND], + level: 77, + currentLevel: 77, + arcana: Arcana.PRIESTESS, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.REPEL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL], + skills: [ + ['Mabufudyne', 0], + ['Myriad Slashes', 0], + ['Makarakarn', 0], + ['Freeze Boost', 78], + ['Matarukaja', 79], + ['Vorpal Blade', 81], + ['Attack Master', 82] + ], + stats: [48, 52, 46, 48, 44], + trait: 'Skillful Technique' + }, + 'Seiryu': { + name: 'Seiryu', + inherits: InheritanceType[Element.ICE], + level: 62, + currentLevel: 62, + arcana: Arcana.COUNCILLOR, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Bufudyne', 0], + ['Diarahan', 0], + ['Marakukaja', 0], + ['Repel Nuke', 63], + ['Mabufudyne', 65], + ['Amrita Drop', 66], + ['Makarakarn', 67] + ], + stats: [38, 41, 43, 37, 34], + trait: 'Relentless' + }, + 'Setanta': { + name: 'Setanta', + inherits: InheritanceType[Element.PHYS], + level: 25, + currentLevel: 25, + arcana: Arcana.EMPEROR, + affinities: [Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ ['Giant Slice', 0], ['Dormin Rush', 0], ['Counter', 0], ['Charge', 27], ['Rebellion', 29], ['Rising Slash', 30] ], + stats: [19, 16, 18, 13, 16], + trait: 'Retaliating Body' + }, + 'Seth': { + name: 'Seth', + special: true, + inherits: InheritanceType[Element.FIRE], + level: 51, + currentLevel: 51, + arcana: Arcana.TOWER, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.REPEL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.RESIST], + skills: [ + ['One-shot Kill', 0], + ['Agidyne', 0], + ['Masukukaja', 0], + ['Gun Amp', 53], + ['Fire Break', 54], + ['Fortify Spirit', 56] + ], + stats: [32, 35, 30, 35, 28], + trait: 'Potent Hypnosis' + }, + 'Shiisaa': { + name: 'Shiisaa', + inherits: InheritanceType[Element.ELEC], + level: 15, + currentLevel: 15, + arcana: Arcana.STRENGTH, + affinities: [Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NULL, Affinity.WEAK], + skills: [ + ['Double Fangs', 0], + ['Skull Cracker', 0], + ['Frei', 0], + ['Dodge Curse', 16], + ['Rampage', 17], + ['Dodge Elec', 19] + ], + stats: [10, 11, 11, 11, 9], + trait: 'Atomic Bloodline' + }, + 'Shiki-Ouji': { + name: 'Shiki-Ouji', + inherits: InheritanceType[Element.PSY], + level: 18, + currentLevel: 18, + arcana: Arcana.CHARIOT, + affinities: [Affinity.NULL, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NULL, Affinity.NULL], + skills: [ + ['Tarukaja', 0], + ['Taunt', 0], + ['Double Shot', 0], + ['Mapsi', 19], + ['Dekaja', 21], + ['Psio', 23], + ['Oni Kagura', 24] + ], + stats: [16, 14, 12, 9, 10], + trait: 'Psychic Bloodline' + }, + 'Shiva': { + name: 'Shiva', + special: true, + inherits: InheritanceType[Element.PSY], + level: 82, + currentLevel: 82, + arcana: Arcana.JUDGEMENT, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.REPEL, Affinity.NEUTRAL, Affinity.ABSORB, Affinity.WEAK, Affinity.NULL, Affinity.NULL], + skills: [ + ['Psycho Force', 0], + ['Maziodyne', 0], + ['Enduring Soul', 0], + ['Riot Gun', 85], + ['Megidolaon', 86], + ['Auto-Mataru', 87], + ['Psycho Blast', 88] + ], + stats: [55, 54, 53, 53, 38], + trait: 'Psychic Bloodline' + }, + 'Siegfried': { + name: 'Siegfried', + inherits: InheritanceType[Element.PHYS], + level: 84, + currentLevel: 84, + arcana: Arcana.FAITH, + affinities: [Affinity.NULL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Brave Blade', 0], + ['Masukukaja', 0], + ['High Counter', 0], + ['Charge', 85], + ['Apt Pupil', 87], + ['Vorpal Blade', 89], + ['Auto-Mataru', 90] + ], + stats: [61, 43, 55, 55, 45], + trait: 'Retaliating Body' + }, + 'Silky': { + name: 'Silky', + inherits: InheritanceType[Element.HEALING], + level: 6, + currentLevel: 6, + arcana: Arcana.PRIESTESS, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.RESIST, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ ['Dormina', 0], ['Bufu', 0], ['Dia', 7], ['Patra', 9], ['Sharp Student', 10] ], + stats: [4, 7, 4, 5, 5], + trait: 'Intense Focus' + }, + 'Skadi': { + name: 'Skadi', + inherits: InheritanceType[Element.ICE], + level: 53, + currentLevel: 53, + arcana: Arcana.PRIESTESS, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.REPEL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL], + skills: [ + ['Deadly Fury', 0], + ['Evil Smile', 0], + ['Fear Boost', 0], + ['Ghastly Wail', 54], + ['Mabufudyne', 56], + ['Maeigaon', 57], + ['Spirit Drain', 58] + ], + stats: [33, 39, 32, 34, 28], + trait: 'Bloodstained Eyes' + }, + 'Slime': { + name: 'Slime', + inherits: InheritanceType[Element.CURSE], + level: 10, + currentLevel: 10, + arcana: Arcana.CHARIOT, + affinities: [Affinity.RESIST, Affinity.RESIST, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ ['Lunge', 0], ['Evil Touch', 0], ['Tarunda', 11], ['Fire Wall', 13], ['Headbutt', 14] ], + stats: [9, 6, 11, 6, 5], + trait: 'Rare Antibody' + }, + 'Sraosha': { + name: 'Sraosha', + special: true, + inherits: InheritanceType[Element.BLESS], + level: 80, + currentLevel: 80, + arcana: Arcana.STAR, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.ABSORB, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.REPEL, Affinity.WEAK], + skills: [ + ['Kougaon', 0], + ['Mahamaon', 0], + ['Hama Boost', 0], + ['Makougaon', 81], + ['Angelic Grace', 83], + ['Amrita Shower', 84], + ['Debilitate', 85] + ], + stats: [47, 56, 45, 56, 43], + trait: 'Blessed Bloodline' + }, + 'Stone of Scone': { + name: 'Stone of Scone', + 'treasure': true, + inherits: InheritanceType[Element.ALMIGHTY], + level: 20, + currentLevel: 20, + arcana: Arcana.FORTUNE, + affinities: [Affinity.RESIST, Affinity.RESIST, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Agilao', 0], + ['Bufula', 0], + ['Garula', 0], + ['Zionga', 0], + ['Psio', 0], + ['Freila', 0], + ['Kouga', 0], + ['Eiga', 0], + ['Relentless', 0], + ['Gluttonmouth', 0], + ['Intense Focus', 0] + ], + stats: [20, 20, 20, 20, 20], + trait: 'Ultimate Vessel' + }, + 'Succubus': { + name: 'Succubus', + inherits: InheritanceType[Element.CURSE], + level: 7, + currentLevel: 7, + arcana: Arcana.MOON, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NULL], + skills: [ ['Dormina', 0], ['Rebellion', 0], ['Agi', 8], ['Dekaja', 10], ['Sleep Boost', 11], ['Mudo', 12] ], + stats: [4, 7, 5, 8, 4], + trait: 'Foul Odor' + }, + 'Sudama': { + name: 'Sudama', + inherits: InheritanceType[Element.PSY], + level: 17, + currentLevel: 17, + arcana: Arcana.HERMIT, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.REPEL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Mapsi', 0], + ['Lucky Punch', 0], + ['Tarukaja', 0], + ['Ambient Aid', 20], + ['Wind Wall', 21], + ['Apt Pupil', 22], + ['Psio', 23] + ], + stats: [9, 14, 12, 13, 10], + trait: 'Gloomy Child' + }, + 'Sui-Ki': { + name: 'Sui-Ki', + inherits: InheritanceType[Element.ICE], + level: 24, + currentLevel: 24, + arcana: Arcana.MOON, + affinities: [Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.ABSORB, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Mabufu', 0], + ['Sledgehammer', 0], + ['Bufula', 0], + ['Null Ice', 26], + ['Wage War', 27], + ['Mabufula', 28], + ['Dodge Fire', 29] + ], + stats: [16, 15, 15, 18, 15], + trait: 'Frigid Bloodline' + }, + 'Surt': { + name: 'Surt', + inherits: InheritanceType[Element.FIRE], + level: 83, + currentLevel: 83, + arcana: Arcana.MAGICIAN, + affinities: [Affinity.NEUTRAL, Affinity.RESIST, Affinity.ABSORB, Affinity.WEAK, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Blazing Hell', 0], + ['Attack Master', 0], + ['Brave Blade', 0], + ['Fire Amp', 84], + ['Marakunda', 85], + ['Evade Ice', 86], + ['Gigantomachia', 88] + ], + stats: [55, 54, 51, 50, 46], + trait: 'Heated Bloodline' + }, + 'Suzaku': { + name: 'Suzaku', + inherits: InheritanceType[Element.NUKE], + level: 16, + currentLevel: 16, + arcana: Arcana.SUN, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.ABSORB, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Frei', 0], + ['Tarunda', 0], + ['Marin Karin', 0], + ['Dekunda', 18], + ['Mafrei', 19], + ['Speed Master', 20], + ['Matarunda', 21] + ], + stats: [9, 12, 10, 15, 9], + trait: 'Gluttonmouth' + }, + 'Take-Minakata': { + name: 'Take-Minakata', + inherits: InheritanceType[Element.ELEC], + level: 26, + currentLevel: 26, + arcana: Arcana.HANGEDMAN, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST], + skills: [ + ['Zionga', 0], + ['Assault Dive', 0], + ['Defense Master', 0], + ['Mazionga', 27], + ['Elec Boost', 29], + ['Swift Strike', 31], + ['Shock Boost', 32] + ], + stats: [17, 19, 18, 16, 15], + trait: 'Electric Bloodline' + }, + 'Tam Lin': { + name: 'Tam Lin', + special: true, + inherits: InheritanceType[Element.ALMIGHTY], + level: 27, + currentLevel: 27, + arcana: Arcana.FAITH, + affinities: [Affinity.RESIST, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.ABSORB, Affinity.WEAK], + skills: [ + ['Assault Dive', 0], + ['Brain Shake', 0], + ['Rebellion', 0], + ['Sharp Student', 28], + ['Brain Buster', 30], + ['Brainwash Boost', 31], + ['Heat Up', 32] + ], + stats: [21, 16, 18, 16, 17], + trait: 'Gluttonmouth' + }, + 'Thor': { + name: 'Thor', + inherits: InheritanceType[Element.ELEC], + level: 64, + currentLevel: 64, + arcana: Arcana.CHARIOT, + affinities: [Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.RESIST], + skills: [ + ['Ziodyne', 0], + ['Megaton Raid', 0], + ['High Counter', 0], + ['Elec Amp', 66], + ['Maziodyne', 67], + ['Heat Up', 68], + ['Wild Thunder', 71] + ], + stats: [44, 39, 43, 38, 35], + trait: 'Intense Focus' + }, + 'Thoth': { + name: 'Thoth', + inherits: InheritanceType[Element.NUKE], + level: 36, + currentLevel: 36, + arcana: Arcana.EMPEROR, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NULL, Affinity.NULL, Affinity.RESIST], + skills: [ + ['Taunt', 0], + ['Freila', 0], + ['Masukunda', 0], + ['Megido', 37], + ['Psy Wall', 39], + ['Concentrate', 40], + ['Growth 2', 42] + ], + stats: [21, 28, 21, 24, 21], + trait: 'Skillful Technique' + }, + 'Throne': { + name: 'Throne', + inherits: InheritanceType[Element.BLESS], + level: 72, + currentLevel: 72, + arcana: Arcana.JUSTICE, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.REPEL, Affinity.NEUTRAL], + skills: [ + ['Agidyne', 0], + ['Hamaon', 0], + ['Burn Boost', 0], + ['Fire Amp', 74], + ['Makougaon', 75], + ['Invigorate 3', 76], + ['Inferno', 78] + ], + stats: [42, 49, 43, 46, 43], + trait: 'Crisis Control' + }, + 'Thunderbird': { + name: 'Thunderbird', + inherits: InheritanceType[Element.ELEC], + level: 34, + currentLevel: 34, + arcana: Arcana.SUN, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.ABSORB, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK], + skills: [ + ['Mazionga', 0], + ['Tarukaja', 0], + ['Shock Boost', 0], + ['Rebellion', 35], + ['Ziodyne', 37], + ['Elec Boost', 38], + ['Maziodyne', 39] + ], + stats: [17, 24, 24, 26, 18], + trait: 'Electric Bloodline' + }, + 'Titania': { + name: 'Titania', + inherits: InheritanceType[Element.NUKE], + level: 56, + currentLevel: 56, + arcana: Arcana.EMPRESS, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.RESIST, Affinity.RESIST, Affinity.RESIST], + skills: [ ['Freidyne', 0], ['Ziodyne', 0], ['Lullaby', 0], ['Concentrate', 59], ['Nuke Amp', 60], ['Mediarahan', 61] ], + stats: [32, 40, 35, 38, 30], + trait: 'Foul Stench' + }, + 'Trumpeter': { + name: 'Trumpeter', + special: true, + inherits: InheritanceType[Element.ALMIGHTY], + level: 59, + currentLevel: 59, + arcana: Arcana.JUDGEMENT, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.ABSORB, Affinity.REPEL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.REPEL, Affinity.NULL], + skills: [ + ['Mafreidyne', 0], + ['Abysmal Surge', 0], + ['Brain Buster', 0], + ['Fortify Spirit', 61], + ['Gun Amp', 62], + ['Life Aid', 63], + ['Debilitate', 65] + ], + stats: [33, 42, 40, 38, 31], + trait: 'Relentless' + }, + 'Unicorn': { + name: 'Unicorn', + inherits: InheritanceType[Element.BLESS], + level: 39, + currentLevel: 39, + arcana: Arcana.FAITH, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NULL, Affinity.WEAK], + skills: [ + ['Assault Dive', 0], + ['Mahama', 0], + ['Dekunda', 0], + ['Samarecarm', 41], + ['Swift Strike', 42], + ['Kougaon', 43], + ['Hamaon', 44] + ], + stats: [20, 27, 25, 28, 24], + trait: 'Blessed Bloodline' + }, + 'Uriel': { + name: 'Uriel', + inherits: InheritanceType[Element.ALMIGHTY], + level: 81, + currentLevel: 81, + arcana: Arcana.JUSTICE, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.ABSORB, Affinity.REPEL, Affinity.NEUTRAL], + skills: [ + ['Deathbound', 0], + ['Myriad Slashes', 0], + ['Bloodbath', 0], + ['Repel Nuke', 83], + ['Megidolaon', 84], + ['Angelic Grace', 85], + ['Spell Master', 86] + ], + stats: [50, 54, 49, 55, 42], + trait: 'Mouth of Savoring' + }, + 'Valkyrie': { + name: 'Valkyrie', + inherits: InheritanceType[Element.PHYS], + level: 44, + currentLevel: 44, + arcana: Arcana.STRENGTH, + affinities: [Affinity.NEUTRAL, Affinity.RESIST, Affinity.WEAK, Affinity.REPEL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL], + skills: [ + ['Rising Slash', 0], + ['Counterstrike', 0], + ['Attack Master', 45], + ['Deathbound', 46], + ['Matarukaja', 47], + ['Dodge Phys', 49] + ], + stats: [33, 24, 28, 29, 25], + trait: 'Skillful Combo' + }, + 'Vasuki': { + name: 'Vasuki', + special: true, + inherits: InheritanceType[Element.AILMENT], + level: 68, + currentLevel: 68, + arcana: Arcana.STAR, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK], + skills: [ + ['Mahamaon', 0], + ['Brain Jack', 0], + ['Triple Down', 0], + ['Trigger Happy', 70], + ['Makarakarn', 71], + ['Brainwash Boost', 72], + ['Null Curse', 73] + ], + stats: [42, 45, 44, 42, 38], + trait: 'Foul Stench' + }, + 'Vishnu': { + name: 'Vishnu', + inherits: InheritanceType[Element.ALMIGHTY], + level: 83, + currentLevel: 83, + arcana: Arcana.FOOL, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.ABSORB, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NULL], + skills: [ + ['Megidolaon', 0], + ['Magarudyne', 0], + ['Ali Dance', 0], + ['Vacuum Wave', 85], + ['Concentrate', 86], + ['Repel Fire', 87], + ['Wind Amp', 88], + ['Riot Gun', 90] + ], + stats: [56, 51, 49, 57, 43], + trait: 'Vahana\'s Wings', + 'max': true + }, + 'Vohu Manah': { + name: 'Vohu Manah', + inherits: InheritanceType[Element.ALMIGHTY], + level: 80, + currentLevel: 80, + arcana: Arcana.COUNCILLOR, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.ABSORB, Affinity.NULL], + skills: [ + ['Divine Judgement', 0], + ['Bless Amp', 0], + ['Makougaon', 0], + ['Absorb Bless', 82], + ['Fortify Spirit', 83], + ['Invigorate 3', 84], + ['Salvation', 85] + ], + stats: [46, 59, 45, 56, 41], + trait: 'Positive Thoughts', + 'max': true + }, + 'White Rider': { + name: 'White Rider', + inherits: InheritanceType[Element.CURSE], + level: 38, + currentLevel: 38, + arcana: Arcana.CHARIOT, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.REPEL], + skills: [ + ['Triple Down', 0], + ['Evil Touch', 0], + ['Oni Kagura', 0], + ['Gun Boost', 40], + ['Maeiga', 41], + ['Masukukaja', 42], + ['Foul Breath', 43], + ['Ailment Boost', 44] + ], + stats: [22, 21, 26, 27, 25], + trait: 'Bloodstained Eyes' + }, + 'Yaksini': { + name: 'Yaksini', + inherits: InheritanceType[Element.ICE], + level: 20, + currentLevel: 20, + arcana: Arcana.EMPRESS, + affinities: [Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Hysterical Slap', 0], + ['Wage War', 0], + ['Counter', 0], + ['Oni Kagura', 22], + ['Attack Master', 23], + ['Vicious Strike', 24] + ], + stats: [14, 11, 13, 16, 13], + trait: 'Foul Odor' + }, + 'Yamata-no-Orochi': { + name: 'Yamata-no-Orochi', + inherits: InheritanceType[Element.ICE], + level: 64, + currentLevel: 64, + arcana: Arcana.JUDGEMENT, + affinities: [Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.ABSORB, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST], + skills: [ + ['One-shot Kill', 0], + ['Mabufudyne', 0], + ['Freeze Boost', 0], + ['Absorb Ice', 66], + ['Ice Amp', 67], + ['Diamond Dust', 69] + ], + stats: [44, 38, 48, 36, 33], + trait: 'Cold-Blooded' + }, + 'Yatagarasu': { + name: 'Yatagarasu', + inherits: InheritanceType[Element.FIRE], + level: 57, + currentLevel: 57, + arcana: Arcana.COUNCILLOR, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.WEAK], + skills: [ + ['Agidyne', 0], + ['Makara Break', 0], + ['Dekunda', 0], + ['Mediarahan', 59], + ['Last Stand', 60], + ['Wind Break', 61], + ['Null Wind', 64] + ], + stats: [35, 41, 30, 40, 32], + trait: 'Potent Hypnosis' + }, + 'Yoshitsune': { + name: 'Yoshitsune', + special: true, + inherits: InheritanceType[Element.PHYS], + level: 87, + currentLevel: 87, + arcana: Arcana.TOWER, + affinities: [Affinity.NULL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.REPEL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.REPEL, Affinity.NEUTRAL], + skills: [ + ['Brave Blade', 0], + ['Charge', 0], + ['Ziodyne', 0], + ['Last Stand', 89], + ['Fast Heal', 90], + ['Elec Amp', 92], + ['Hassou Tobi', 94] + ], + stats: [63, 52, 50, 54, 49], + trait: 'Retaliating Body' + }, + 'Yurlungur': { + name: 'Yurlungur', + inherits: InheritanceType[Element.ELEC], + level: 43, + currentLevel: 43, + arcana: Arcana.SUN, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL], + skills: [ + ['Brain Jack', 0], + ['Mazionga', 0], + ['Megidola', 0], + ['Revolution', 45], + ['Elec Break', 46], + ['Tetra Break', 48], + ['Elec Boost', 49] + ], + stats: [26, 29, 30, 27, 24], + trait: 'Mouth of Savoring' + }, + 'Zaou-Gongen': { + name: 'Zaou-Gongen', + inherits: InheritanceType[Element.FIRE], + level: 80, + currentLevel: 80, + arcana: Arcana.STRENGTH, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.REPEL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NULL], + skills: [ + ['Maragidyne', 0], + ['Abysmal Surge', 0], + ['God\'s Hand', 0], + ['Evade Phys', 82], + ['Enduring Soul', 83], + ['Gun Amp', 84], + ['Blazing Hell', 86] + ], + stats: [57, 45, 50, 56, 39], + trait: 'Undying Fury', + 'max': true + }, + 'Zouchouten': { + name: 'Zouchouten', + inherits: InheritanceType[Element.ELEC], + level: 31, + currentLevel: 31, + arcana: Arcana.STRENGTH, + affinities: [Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Kill Rush', 0], + ['Zionga', 0], + ['Terror Claw', 32], + ['Sharp Student', 33], + ['Resist Fear', 34], + ['Swift Strike', 35], + ['Attack Master', 36] + ], + stats: [22, 19, 24, 18, 17], + trait: 'Electric Bloodline' + }, + 'Ariadne': { + name: 'Ariadne', + inherits: InheritanceType[Element.ALMIGHTY], + level: 30, + currentLevel: 30, + arcana: Arcana.FORTUNE, + affinities: [Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NULL, Affinity.RESIST, Affinity.NEUTRAL], + skills: [ + ['Beast Weaver', 0], + ['Apt Pupil', 0], + ['Miracle Punch', 0], + ['Attack Master', 31], + ['Fortified Moxy', 32], + ['Evade Phys', 34], + ['Charge', 36] + ], + stats: [23, 19, 20, 17, 18], + trait: 'Tag Team', + 'dlc': true + }, + 'Ariadne Picaro': { + name: 'Ariadne Picaro', + inherits: InheritanceType[Element.ALMIGHTY], + level: 42, + currentLevel: 42, + arcana: Arcana.FORTUNE, + affinities: [Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NULL, Affinity.RESIST, Affinity.NEUTRAL], + skills: [ + ['Beast Weaver', 0], + ['Apt Pupil', 0], + ['Miracle Punch', 0], + ['Auto-Mataru', 43], + ['Heat Up', 44], + ['Evade Phys', 46], + ['Charge', 48] + ], + stats: [36, 23, 29, 24, 21], + trait: 'Tag Team', + 'dlc': true + }, + 'Asterius': { + name: 'Asterius', + inherits: InheritanceType[Element.ALMIGHTY], + level: 56, + currentLevel: 56, + arcana: Arcana.FORTUNE, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL], + skills: [ + ['Titanomachia', 0], + ['Maragidyne', 0], + ['Burn Boost', 0], + ['Auto-Mataru', 57], + ['Fire Amp', 59], + ['Tetrakarn', 60], + ['Gigantomachia', 62] + ], + stats: [43, 43, 32, 32, 25], + trait: 'Frenzied Bull', + 'dlc': true + }, + 'Asterius Picaro': { + name: 'Asterius Picaro', + inherits: InheritanceType[Element.ALMIGHTY], + level: 62, + currentLevel: 62, + arcana: Arcana.FORTUNE, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL], + skills: [ + ['Titanomachia', 0], + ['Maragidyne', 0], + ['Burn Boost', 0], + ['Auto-Masuku', 63], + ['Fire Amp', 65], + ['Makarakarn', 66], + ['Gigantomachia', 68] + ], + stats: [46, 46, 36, 36, 29], + trait: 'Frenzied Bull', + 'dlc': true + }, + 'Athena': { + name: 'Athena', + inherits: InheritanceType[Element.ALMIGHTY], + level: 46, + currentLevel: 46, + arcana: Arcana.CHARIOT, + affinities: [Affinity.RESIST, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Akasha Arts', 0], + ['Marakukaja', 0], + ['Rising Slash', 0], + ['Diarahan', 47], + ['Matarukaja', 48], + ['Auto-Maraku', 50], + ['Samarecarm', 51], + ['Megaton Raid', 52] + ], + stats: [33, 27, 29, 29, 27], + trait: 'Grace of the Olive', + 'dlc': true + }, + 'Athena Picaro': { + name: 'Athena Picaro', + inherits: InheritanceType[Element.ALMIGHTY], + level: 50, + currentLevel: 50, + arcana: Arcana.CHARIOT, + affinities: [Affinity.RESIST, Affinity.NULL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Akasha Arts', 0], + ['Matarukaja', 0], + ['Rising Slash', 0], + ['Diarahan', 51], + ['Marakukaja', 52], + ['Auto-Mataru', 54], + ['Samarecarm', 55], + ['Megaton Raid', 56] + ], + stats: [35, 30, 31, 32, 29], + trait: 'Grace of the Olive', + 'dlc': true + }, + 'Izanagi': { + name: 'Izanagi', + inherits: InheritanceType[Element.ALMIGHTY], + level: 20, + currentLevel: 20, + arcana: Arcana.FOOL, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL], + skills: [ + ['Cross Slash', 0], + ['Zionga', 0], + ['Tarukaja', 0], + ['Rising Slash', 21], + ['Dodge Phys', 22], + ['Mazionga', 24], + ['Growth 3', 25] + ], + stats: [14, 13, 13, 14, 13], + trait: 'God Maker', + 'dlc': true + }, + 'Izanagi Picaro': { + name: 'Izanagi Picaro', + inherits: InheritanceType[Element.ALMIGHTY], + level: 23, + currentLevel: 23, + arcana: Arcana.FOOL, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL], + skills: [ + ['Cross Slash', 0], + ['Zionga', 0], + ['Rakukaja', 0], + ['Rising Slash', 24], + ['Null Phys', 25], + ['Mazionga', 27], + ['Growth 3', 28] + ], + stats: [16, 15, 15, 16, 14], + trait: 'God Maker', + 'dlc': true + }, + 'Izanagi-no-Okami': { + name: 'Izanagi-no-Okami', + special: true, + inherits: InheritanceType[Element.ALMIGHTY], + level: 80, + currentLevel: 80, + arcana: Arcana.WORLD, + affinities: [Affinity.RESIST, Affinity.RESIST, Affinity.RESIST, Affinity.RESIST, Affinity.RESIST, Affinity.RESIST, Affinity.RESIST, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Myriad Truths', 0], + ['Victory Cry', 0], + ['Angelic Grace', 0], + ['Concentrate', 81], + ['Heat Riser', 82], + ['Heat Up', 83], + ['Salvation', 84], + ['Almighty Boost', 85] + ], + stats: [52, 56, 46, 48, 45], + trait: 'Country Maker', + 'dlc': true + }, + 'Izanagi-no-Okami Picaro': { + name: 'Izanagi-no-Okami Picaro', + special: true, + inherits: InheritanceType[Element.ALMIGHTY], + level: 89, + currentLevel: 89, + arcana: Arcana.WORLD, + affinities: [Affinity.RESIST, Affinity.RESIST, Affinity.RESIST, Affinity.RESIST, Affinity.RESIST, Affinity.RESIST, Affinity.RESIST, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL], + skills: [ + ['Myriad Truths', 0], + ['Victory Cry', 0], + ['Angelic Grace', 0], + ['Concentrate', 90], + ['Debilitate', 91], + ['Enduring Soul', 92], + ['Salvation', 93], + ['Almighty Boost', 94] + ], + stats: [54, 61, 56, 58, 45], + trait: 'Country Maker', + 'dlc': true + }, + 'Kaguya': { + name: 'Kaguya', + inherits: InheritanceType[Element.ALMIGHTY], + level: 16, + currentLevel: 16, + arcana: Arcana.MOON, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NULL], + skills: [ + ['Shining Arrows', 0], + ['Mediarama', 0], + ['Counterstrike', 0], + ['Divine Grace', 17], + ['Amrita Shower', 18], + ['Diarahan', 21], + ['Repel Phys', 22] + ], + stats: [11, 15, 12, 11, 6], + trait: 'Inviolable Beauty', + 'dlc': true + }, + 'Kaguya Picaro': { + name: 'Kaguya Picaro', + inherits: InheritanceType[Element.ALMIGHTY], + level: 25, + currentLevel: 25, + arcana: Arcana.MOON, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NULL, Affinity.NULL], + skills: [ + ['Shining Arrows', 0], + ['Mediarama', 0], + ['High Counter', 0], + ['Divine Grace', 26], + ['Amrita Shower', 27], + ['Diarahan', 30], + ['Repel Phys', 31] + ], + stats: [17, 20, 19, 15, 11], + trait: 'Inviolable Beauty', + 'dlc': true + }, + 'Magatsu-Izanagi': { + name: 'Magatsu-Izanagi', + inherits: InheritanceType[Element.ALMIGHTY], + level: 44, + currentLevel: 44, + arcana: Arcana.TOWER, + affinities: [Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NULL, Affinity.NULL], + skills: [ + ['Magatsu Mandala', 0], + ['Megidola', 0], + ['Ghastly Wail', 0], + ['Maziodyne', 45], + ['Bloodbath', 46], + ['Attack Master', 48], + ['Heat Riser', 50] + ], + stats: [37, 35, 32, 25, 10], + trait: 'Hollow Jester', + 'dlc': true + }, + 'Magatsu-Izanagi Picaro': { + name: 'Magatsu-Izanagi Picaro', + inherits: InheritanceType[Element.ALMIGHTY], + level: 48, + currentLevel: 48, + arcana: Arcana.TOWER, + affinities: [Affinity.NEUTRAL, Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NULL, Affinity.NULL], + skills: [ + ['Magatsu Mandala', 0], + ['Megidola', 0], + ['Ghastly Wail', 0], + ['Magarudyne', 49], + ['Bloodbath', 50], + ['Speed Master', 52], + ['Heat Riser', 54] + ], + stats: [40, 38, 35, 27, 11], + trait: 'Hollow Jester', + 'dlc': true + }, + 'Messiah': { + name: 'Messiah', + inherits: InheritanceType[Element.ALMIGHTY], + level: 81, + currentLevel: 81, + arcana: Arcana.JUDGEMENT, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.RESIST, Affinity.RESIST, Affinity.RESIST, Affinity.RESIST, Affinity.RESIST, Affinity.REPEL, Affinity.WEAK], + skills: [ + ['Oratorio', 0], + ['Megidolaon', 0], + ['God\'s Hand', 0], + ['Regenerate 3', 82], + ['Enduring Soul', 83], + ['Invigorate 3', 84], + ['Absorb Phys', 85], + ['Almighty Boost', 87] + ], + stats: [50, 50, 50, 50, 50], + trait: 'Hallowed Spirit', + 'dlc': true + }, + 'Messiah Picaro': { + name: 'Messiah Picaro', + inherits: InheritanceType[Element.ALMIGHTY], + level: 90, + currentLevel: 90, + arcana: Arcana.JUDGEMENT, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.RESIST, Affinity.RESIST, Affinity.RESIST, Affinity.RESIST, Affinity.RESIST, Affinity.REPEL, Affinity.WEAK], + skills: [ + ['Oratorio', 0], + ['Megidolaon', 0], + ['Agneyastra', 0], + ['Insta-Heal', 91], + ['Enduring Soul', 92], + ['Life Aid', 93], + ['Firm Stance', 94], + ['Almighty Boost', 96] + ], + stats: [56, 56, 55, 55, 55], + trait: 'Hallowed Spirit', + 'dlc': true + }, + 'Orpheus': { + name: 'Orpheus', + inherits: InheritanceType[Element.ALMIGHTY], + level: 26, + currentLevel: 26, + arcana: Arcana.FOOL, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.WEAK], + skills: [ + ['Cadenza', 0], + ['Agilao', 0], + ['Tarunda', 0], + ['Endure', 27], + ['Maragion', 29], + ['Marakukaja', 30], + ['Fire Boost', 32] + ], + stats: [17, 17, 17, 17, 17], + trait: 'Circle of Sadness', + 'dlc': true + }, + 'Orpheus F': { + name: 'Orpheus F', + inherits: InheritanceType[Element.ALMIGHTY], + level: 11, + currentLevel: 11, + arcana: Arcana.FOOL, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.WEAK], + skills: [ + ['Neo Cadenza', 0], + ['Agi', 0], + ['Tarunda', 0], + ['Endure', 0], + ['Maragion', 12], + ['Marakukaja', 14], + ['Dodge Curse', 15] + ], + stats: [8, 9, 8, 9, 6], + trait: 'Circle of Sadness', + 'dlc': true + }, + 'Orpheus F Picaro': { + name: 'Orpheus F Picaro', + inherits: InheritanceType[Element.ALMIGHTY], + level: 13, + currentLevel: 13, + arcana: Arcana.FOOL, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.WEAK], + skills: [ + ['Neo Cadenza', 0], + ['Maragi', 0], + ['Rakunda', 0], + ['Endure', 0], + ['Agilao', 14], + ['Marakukaja', 16], + ['Dodge Curse', 17] + ], + stats: [9, 11, 9, 10, 7], + trait: 'Circle of Sadness', + 'dlc': true + }, + 'Orpheus Picaro': { + name: 'Orpheus Picaro', + inherits: InheritanceType[Element.ALMIGHTY], + level: 29, + currentLevel: 29, + arcana: Arcana.FOOL, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.RESIST, Affinity.WEAK], + skills: [ + ['Cadenza', 0], + ['Maragion', 0], + ['Matarunda', 0], + ['Endure', 30], + ['Agidyne', 32], + ['Matarukaja', 33], + ['Fire Boost', 35] + ], + stats: [19, 19, 19, 19, 18], + trait: 'Circle of Sadness', + 'dlc': true + }, + 'Raoul': { + name: 'Raoul', + inherits: InheritanceType[Element.ALMIGHTY], + level: 76, + currentLevel: 76, + arcana: Arcana.FOOL, + affinities: [Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.NULL], + skills: [ + ['Phantom Show', 0], + ['Eigaon', 0], + ['Ali Dance', 0], + ['Maeigaon', 78], + ['Heat Riser', 79], + ['Curse Amp', 80], + ['Concentrate', 81], + ['Life Aid', 82] + ], + stats: [47, 49, 43, 54, 42], + trait: 'Hazy Presence', + 'dlc': true + }, + 'Thanatos': { + name: 'Thanatos', + inherits: InheritanceType[Element.ALMIGHTY], + level: 65, + currentLevel: 65, + arcana: Arcana.DEATH, + affinities: [Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.REPEL], + skills: [ + ['Door of Hades', 0], + ['Maeigaon', 0], + ['Mamudoon', 0], + ['Curse Amp', 66], + ['One-shot Kill', 68], + ['Fortified Moxy', 69], + ['Enduring Soul', 70] + ], + stats: [43, 49, 41, 38, 31], + trait: 'Iron Heart', + 'dlc': true + }, + 'Thanatos Picaro': { + name: 'Thanatos Picaro', + inherits: InheritanceType[Element.ALMIGHTY], + level: 69, + currentLevel: 69, + arcana: Arcana.DEATH, + affinities: [Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.REPEL], + skills: [ + ['Door of Hades', 0], + ['Maeigaon', 0], + ['Mamudoon', 0], + ['Mudo Boost', 70], + ['One-shot Kill', 72], + ['Adverse Resolve', 73], + ['Enduring Soul', 74] + ], + stats: [45, 51, 43, 40, 35], + trait: 'Iron Heart', + 'dlc': true + }, + 'Tsukiyomi': { + name: 'Tsukiyomi', + inherits: InheritanceType[Element.ALMIGHTY], + level: 50, + currentLevel: 50, + arcana: Arcana.MOON, + affinities: [Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.RESIST, Affinity.REPEL], + skills: [ + ['Abyssal Wings', 0], + ['Absorb Curse', 0], + ['Myriad Slashes', 0], + ['Life Drain', 0], + ['Curse Amp', 53], + ['Vorpal Blade', 55], + ['Arms Master', 56] + ], + stats: [38, 32, 33, 37, 17], + trait: 'Bolstering Force', + 'dlc': true + }, + 'Tsukiyomi Picaro': { + name: 'Tsukiyomi Picaro', + inherits: InheritanceType[Element.ALMIGHTY], + level: 55, + currentLevel: 55, + arcana: Arcana.MOON, + affinities: [Affinity.RESIST, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.NEUTRAL, Affinity.WEAK, Affinity.RESIST, Affinity.REPEL], + skills: [ + ['Abyssal Wings', 0], + ['Absorb Curse', 0], + ['Myriad Slashes', 0], + ['Spirit Drain', 0], + ['Curse Amp', 58], + ['Vorpal Blade', 60], + ['Spell Master', 61] + ], + stats: [41, 35, 36, 40, 20], + trait: 'Bolstering Force', + 'dlc': true + } +}; + +export const DlcPersonas: string [][] = [ + ['Ariadne', 'Ariadne Picaro'], + ['Asterius', 'Asterius Picaro'], + ['Athena', 'Athena Picaro'], + ['Izanagi', 'Izanagi Picaro'], + ['Izanagi-no-Okami', 'Izanagi-no-Okami Picaro'], + ['Kaguya', 'Kaguya Picaro'], + ['Magatsu-Izanagi', 'Magatsu-Izanagi Picaro'], + ['Messiah', 'Messiah Picaro'], + ['Orpheus', 'Orpheus Picaro'], + ['Orpheus F', 'Orpheus F Picaro'], + ['Thanatos', 'Thanatos Picaro'], + ['Tsukiyomi', 'Tsukiyomi Picaro'], + ['Raoul'], +]; + +export const TreasurePersonas: string [] = [ + 'Crystal Skull', + 'Koh-i-Noor', + 'Queen\'s Necklace', + 'Regent', + 'Stone of Scone', + 'Orlov', + 'Emperor\'s Amulet', + 'Hope Diamond', + 'Orichalcum', +]; + +interface TreasureModMap { + [index: string]: number[]; +} + +export const TreasureModifiers: TreasureModMap = { + [Arcana.FOOL]: [+2, +1, +1, -1, -1, -1, -1, +1, +1], + [Arcana.MAGICIAN]: [+1, -1, -1, +1, +2, +1, +1, +1, -2], + [Arcana.PRIESTESS]: [+1, +2, +1, -1, -1, +1, -1, +1, +1], + [Arcana.EMPRESS]: [+1, +1, +2, -1, -1, +1, +1, -1, +1], + [Arcana.EMPEROR]: [-1, -1, -1, +2, +1, -1, +1, +1, -1], + [Arcana.HIEROPHANT]: [-1, -2, -1, +1, +1, -1, -1, -1, +2], + [Arcana.LOVERS]: [+1, +1, +1, -1, -1, -1, -1, -2, -1], + [Arcana.CHARIOT]: [-1, -1, -1, +1, +1, +1, -2, -1, -1], + [Arcana.JUSTICE]: [+1, +2, -1, +1, -1, -2, +1, -1, +1], + [Arcana.HERMIT]: [-2, +1, -1, +2, -1, -1, +1, +1, -1], + [Arcana.FORTUNE]: [-1, -1, -1, +1, +2, +1, -1, +1, +1], + [Arcana.STRENGTH]: [-1, +1, +1, -1, +1, +2, +1, -1, -1], + [Arcana.HANGEDMAN]: [-1, -1, +1, +1, -1, +1, +2, -1, +1], + [Arcana.DEATH]: [+1, +1, -1, +1, +1, -1, -1, +2, +1], + [Arcana.TEMPERANCE]: [+2, -1, +1, -1, -1, +1, +1, -1, -1], + [Arcana.DEVIL]: [-1, +1, +1, -2, -1, -1, +2, -1, +1], + [Arcana.TOWER]: [-1, +1, -2, -1, +1, -1, +1, -1, -1], + [Arcana.STAR]: [+1, -1, -1, +1, +1, +2, -1, +1, +1], + [Arcana.MOON]: [-1, -1, +2, -1, -2, +1, -1, -1, -1], + [Arcana.SUN]: [+1, +1, -1, +1, -1, +1, -1, +2, +1], + [Arcana.JUDGEMENT]: [-1, -1, -1, -1, +1, -1, +1, -1, +1], + [Arcana.WORLD]: [+1, +1, +1, +1, +1, +1, +1, +1, +1], + [Arcana.FAITH]: [+1, +1, +1, -1, +1, -1, +1, +1, +2], + [Arcana.COUNCILLOR]: [+1, +1, +1, +1, +1, -1, +1, +1, +1], +}; + +export const getAllPersonasOfArcana = (arcana: Arcana, lockedDlc?: string[]): PersonaData[] => { + let arcanaPersonas: PersonaData[] = Object.values(Personas).filter(persona => persona.arcana === arcana).sort((a, b) => a.level - b.level); + + if (lockedDlc && 0 < lockedDlc.length) + arcanaPersonas = arcanaPersonas.filter(persona => !lockedDlc.includes(persona.name)); + + return arcanaPersonas; +} + +export const personaHasSkill = (persona: PersonaData, skill: SkillData): boolean => { + let has: boolean = false; + persona.skills.forEach(s => { + if (s[0] === skill.name) + has = true; + }); + return has; +} + +export const personaCanInherit = (persona: PersonaData, element: Element): boolean => { + const inherits = [ ...persona.inherits, Element.SUPPORT, Element.ALMIGHTY, Element.PASSIVE, Element.TRAIT]; + return inherits.includes(element); +} + +export const getPersonaSkillLevel = (persona: PersonaData, skill: SkillData): number => { + if (!personaHasSkill(persona, skill)) + return -1; + + let level = 0; + persona.skills.forEach(s => { + if (s[0] === skill.name) + level = s[1]; + }); + + return 0 === level ? persona.level : level; +} + +export const getPersonaApproxCost = (persona: PersonaData): number => { + return 2147 + (126 * persona.currentLevel) + (27 * persona.currentLevel * persona.currentLevel); +} + +export const isPersonaData = (o: any): o is PersonaData => Object.values(Personas).includes(o); \ No newline at end of file diff --git a/src/data/skills.ts b/src/data/skills.ts new file mode 100644 index 0000000..04c36dc --- /dev/null +++ b/src/data/skills.ts @@ -0,0 +1,2546 @@ +import { Element } from './types'; + +export interface SkillData { + name: string; + effect: string; + element: Element; + + unique?: boolean; +} + +interface SkillMap { + [index: string]: SkillData; +} + +export const Skills: SkillMap = { + 'Absorb Bless': { + name: 'Absorb Bless', + effect: 'Absorb Bless attacks.', + element: Element.PASSIVE, + }, + 'Absorb Curse': { + name: 'Absorb Curse', + effect: 'Absorb Curse attacks.', + element: Element.PASSIVE, + }, + 'Absorb Elec': { + name: 'Absorb Elec', effect: 'Absorb Electric attacks.', element: Element.PASSIVE}, + 'Absorb Fire': { + name: 'Absorb Fire', + effect: 'Absorb Fire attacks.', + element: Element.PASSIVE, + }, + 'Absorb Ice': { + name: 'Absorb Ice', + effect: 'Absorb Ice attacks.', + element: Element.PASSIVE, + }, + 'Absorb Nuke': { + name: 'Absorb Nuke',effect: 'Absorb Nuclear attacks.', element: Element.PASSIVE, }, + 'Absorb Phys': { + name: 'Absorb Phys', + effect: 'Absorb Phys attacks.', + element: Element.PASSIVE, + }, + 'Absorb Psy': { + name: 'Absorb Psy',effect: 'Absorb Psy attacks.', element: Element.PASSIVE, }, + 'Absorb Wind': { + name: 'Absorb Wind',effect: 'Absorb Wind attacks.', element: Element.PASSIVE, }, + 'Abysmal Surge': { + name: 'Abysmal Surge', + effect: 'Inflict Despair (medium odds) to all foes.', + element: Element.AILMENT, }, + 'Abyssal Eye': { + name: 'Abyssal Eye', + effect: 'Deal severe Almighty damage to all foes.', + element: Element.ALMIGHTY, + unique: true + }, + 'Abyssal Wings': { + name: 'Abyssal Wings', + effect: 'Deal severe Curse damage to all foes.', + element: Element.CURSE, + unique: true + }, + 'Active Support': { + name: 'Active Support', + effect: 'Moral Support may now Charge or recover SP.', + element: Element.PASSIVE, + unique: true + }, + 'Adverse Resolve': { + name: 'Adverse Resolve', + effect: 'Increase critical rate when being ambushed.', + element: Element.PASSIVE, + }, + 'Agi': { + name: 'Agi', + effect: 'Deal weak Fire damage to 1 foe.', + element: Element.FIRE, + }, + 'Agidyne': { + name: 'Agidyne', + effect: 'Deal heavy Fire damage to 1 foe.', + element: Element.FIRE, + + }, + 'Agilao': { + name: 'Agilao', + effect: 'Deal medium Fire damage to 1 foe.', + element: Element.FIRE, + }, + 'Agneyastra': { + name: 'Agneyastra', + effect: 'Deal 1 to 3 times medium Phys damage to all foes.', + element: Element.PHYS, + }, + 'Ailment Boost': { + name: 'Ailment Boost', + effect: 'Increase chance of inflicting all ailments.', + element: Element.PASSIVE, + }, + 'Ailment Hunter': { + name: 'Ailment Hunter', + effect: 'Damage +25% for each foe afflicted with an ailment', + element: Element.TRAIT, + }, + 'Akasha Arts': { + name: 'Akasha Arts', + effect: 'Deal 1-2 times severe Phys damage to all foes.', + element: Element.PHYS, + unique: true + }, + 'Ali Dance': { + name: 'Ali Dance', + effect: 'Half hit rate of all incoming attacks.', + element: Element.PASSIVE, + }, + 'All-out Attack Boost': { + name: 'All-out Attack Boost',effect: 'Increases damage from All-out Attacks', element: Element.PASSIVE}, + 'Almighty Amp': { + name: 'Almighty Amp', effect: 'Strengthen Almighty attacks by 50%.', element: Element.PASSIVE}, + 'Allure of Wisdom': { + name: 'Allure of Wisdom', + effect: 'Reduces costs of magic skills by 75%', + element: Element.TRAIT, + }, + 'Almighty Boost': { + name: 'Almighty Boost', + effect: 'Strengthen Almighty attacks by 25%.', + element: Element.PASSIVE, + }, + 'Ambient Aid': { + name: 'Ambient Aid', + effect: 'Greatly increase inflicting rate of all status effects under rainy day or special weather warning.', + element: Element.PASSIVE, + }, + 'Amrita Drop': { + name: 'Amrita Drop', + effect: 'Cure all ailments of 1 ally except for unique status.', + element: Element.HEALING, + }, + 'Amrita Shower': { + name: 'Amrita Shower', + effect: 'Cure all ailments of party except for unique status.', + element: Element.HEALING, + }, + 'Analysis': { + name: 'Analysis', + effect: 'Confirm affinities you have previously attacked.', + element: Element.PASSIVE, + unique: true + }, + 'Angelic Grace': { + name: 'Angelic Grace', + effect: 'Double evasion against Fire/Ice/Elec/Wind/Nuke/Psy/Bless/Curse attacks.', + element: Element.PASSIVE, + }, + 'Apt Pupil': { + name: 'Apt Pupil', + effect: 'Increase critical rate.', + element: Element.PASSIVE, + }, + 'Arms Master': { + name: 'Arms Master', + effect: 'Half HP cost for physical skills.', + element: Element.PASSIVE, + }, + 'Assault Dive': { + name: 'Assault Dive', + effect: 'Deal heavy Phys damage to 1 foe.', + element: Element.PHYS, + }, + 'Atomic Bloodline': { + name: 'Atomic Bloodline', + effect: 'Halves costs of Nuke skills', + element: Element.TRAIT, + }, + 'Atomic Flare': { + name: 'Atomic Flare', + effect: 'Deal severe Nuclear damage to 1 foe.', + element: Element.NUKE, + }, + 'Atomic Hellscape': { + name: 'Atomic Hellscape',effect: 'Reduces costs of Nuke skills by 75%', element: Element.TRAIT, }, + 'Attack Master': { + name: 'Attack Master', + effect: 'Automatic Tarukaja at the start of battle.', + element: Element.PASSIVE, + }, + 'Attract': { + name: 'Attract', + effect: 'Raises chance of being targeted', + element: Element.SUPPORT + }, + 'Auto-Maraku': { + name: 'Auto-Maraku', + effect: 'Automatic Marakukaja at the start of battle. (Overwrites Defense Master)', + element: Element.PASSIVE, + }, + 'Auto-Masuku': { + name: 'Auto-Masuku', + effect: 'Automatic Masukukaja at the start of battle. (Overwrites Speed Master)', + element: Element.PASSIVE, + }, + 'Auto-Mataru': { + name: 'Auto-Mataru', + effect: 'Automatic Matarukaja at the start of battle. (Overwrites Attack Master)', + element: Element.PASSIVE, + }, + 'Ave Maria': { + name: 'Ave Maria',effect: 'Reduces costs of Support spells by 75%', element: Element.TRAIT, }, + 'Ayamur': { + name: 'Ayamur', + effect: 'Deal 3 times medium Phys damage to 1 foe. High accuracy.', + element: Element.PHYS, + unique: true + }, + 'Bad Beat': { + name: 'Bad Beat', + effect: 'Deal medium Phys damage and inflict Despair (low odds) to all foes.', + element: Element.PHYS, + }, + 'Baisudi': { + name: 'Baisudi', + effect: 'Cure Burn/Freeze/Shock of 1 ally.', + element: Element.HEALING, + }, + 'Bargain Bolts': { + name: 'Bargain Bolts',effect: 'Reduces costs of Elec skills by 75%', element: Element.TRAIT, }, + 'Beast Weaver': { + name: 'Beast Weaver', + effect: 'Deal grave Phys damage to 1 foe and user is debuffed with Tarunda.', + element: Element.PHYS, + unique: true + }, + 'Black Viper': { + name: 'Black Viper', + effect: 'Deal severe Almighty damage to 1 foe.', + element: Element.ALMIGHTY, + unique: true + }, + 'Blazing Hell': { + name: 'Blazing Hell', + effect: 'Deal severe Fire damage to all foes.', + element: Element.FIRE, + }, + 'Bleeding Dry Brush': { + name: 'Bleeding Dry Brush', + effect: 'Drains next non-Almighty attack for 1 ally, Removes innate weaknesses', + element: Element.SUPPORT, + unique: true + }, + 'Bless Amp': { + name: 'Bless Amp', + effect: 'Strengthen (non instant death) Bless attacks by 50%.', + element: Element.PASSIVE, + }, + 'Bless Boost': { + name: 'Bless Boost', + effect: 'Strengthen (non instant death) Bless attacks by 25%.', + element: Element.PASSIVE, + }, + 'Blessed Bloodline': { + name: 'Blessed Bloodline', + effect: 'Halves costs of Bless skills', + element: Element.TRAIT, + }, + 'Bloodbath': { + name: 'Bloodbath', + effect: 'Deal heavy Phys damage and inflict Fear (low odds) to all foes.', + element: Element.PHYS, + + }, + 'Bloodstained Eyes': { + name: 'Bloodstained Eyes', + effect: 'Raises evasion against foes afflicted with ailments', + element: Element.TRAIT, + }, + 'Bolstering Force': { + name: 'Bolstering Force', + effect: 'Damage dealt during 1 More +50%', + element: Element.TRAIT, + unique: true + }, + 'Brain Buster': { + name: 'Brain Buster', + effect: 'Deal heavy Phys damage and inflict Brainwash (low odds) to all foes.', + element: Element.PHYS, + }, + 'Brain Jack': { + name: 'Brain Jack', + effect: 'Inflict Brainwash (medium odds) to all foes.', + element: Element.AILMENT, + }, + 'Brain Shake': { + name: 'Brain Shake', + effect: 'Deal medium Phys damage and inflict Brainwash (medium odds) to 1 foe.', + element: Element.PHYS, + }, + 'Brainwash Boost': { + name: 'Brainwash Boost', + effect: 'Increase chance of inflicting Brainwash.', + element: Element.PASSIVE, + }, + 'Brave Blade': { + name: 'Brave Blade', + effect: 'Deal grave Phys damage to 1 foe.', + element: Element.PHYS, + }, + 'Brave Step': { + name: 'Brave Step', + effect: 'Raises critical rate for 3 turns for all allies', + element: Element.SUPPORT, + unique: true + }, + 'Bufu': { + name: 'Bufu', + effect: 'Deal weak Ice damage to 1 foe.', + element: Element.ICE, + }, + 'Bufudyne': { + name: 'Bufudyne', + effect: 'Deal heavy Ice damage to 1 foe.', + element: Element.ICE, + }, + 'Bufula': { + name: 'Bufula', + effect: 'Deal medium Ice damage to 1 foe.', + element: Element.ICE, + }, + 'Burn Boost': { + name: 'Burn Boost', + effect: 'Increase chance of inflicting Burn.', + element: Element.PASSIVE, + }, + 'Cadenza': { + name: 'Cadenza', + effect: 'Restore 50% HP of party and increase evasion rate.', + element: Element.HEALING, + unique: true + }, + 'Champion\'s Cup': { + name: 'Champion\'s Cup', + effect: 'Diarama + Tarukaja', + element: Element.HEALING, + unique: true + }, + 'Charge': { + name: 'Charge', + effect: 'Multiply user\'s next Phys attack damage by 2.5.', + element: Element.SUPPORT, + }, + 'Checkmate': { + name: 'Checkmate', effect: 'Matarunda + Marakunda + Masukunda', element: Element.SUPPORT, unique: true}, + 'Chi You\'s Blessing': { + name: 'Chi You\'s Blessing', + effect: 'Reduces costs of Psy skills by 75%', + element: Element.TRAIT, + }, + 'Circle of Sadness': { + name: 'Circle of Sadness', + effect: 'Activates endure up to 4 times', + element: Element.TRAIT, + unique: true + }, + 'Cleave': { + name: 'Cleave', + effect: 'Deal weak Phys damage to 1 foe.', + element: Element.PHYS, + }, + 'Climate Decorum': { + name: 'Climate Decorum', + effect: 'Greatly increase evasion under rainy day or special weather warning.', + element: Element.PASSIVE, + }, + 'Cocytus': { + name: 'Cocytus',effect: 'Reduces costs of Ice skills by 75%', element: Element.TRAIT, }, + 'Cold-Blooded': { + name: 'Cold-Blooded', + effect: 'Increases chance of inflicting Freeze during 1 More', + element: Element.TRAIT, + }, + 'Conceal': { + name: 'Conceal', + effect: 'Lowers chance of being targeted', + element: Element.SUPPORT + }, + 'Concentrate': { + name: 'Concentrate', + effect: 'Multiply user\'s next magical attack damage by 2.5.', + element: Element.SUPPORT, + }, + 'Confuse Boost': { + name: 'Confuse Boost', + effect: 'Increase chance of inflicting Confuse.', + element: Element.PASSIVE, + }, + 'Cool Customer': { + name: 'Cool Customer', + effect: 'Reduces ailment susceptibility by 50% for all allies', + element: Element.TRAIT, + unique: true + }, + 'Cornered Fang': { + name: 'Cornered Fang', + effect: 'Deal medium Phys damage to 1 foe. More powerful when being ambushed.', + element: Element.PHYS, + }, + 'Cosmic Flare': { + name: 'Cosmic Flare', + effect: 'Deal severe Nuclear damage to all foes.', + element: Element.NUKE, + }, + 'Counter': { + name: 'Counter', + effect: '10% chance of reflecting Phys attacks.', + element: Element.PASSIVE, + }, + 'Counterstrike': { + name: 'Counterstrike', + effect: '15% chance of reflecting Phys attacks.', + element: Element.PASSIVE, + }, + 'Country Maker': { + name: 'Country Maker', + effect: 'Scales damage dealt and received against Compendium completion rate', + element: Element.TRAIT, + unique: true + }, + 'Crisis Control': { + name: 'Crisis Control', + effect: 'Reduces damage taken when weakness struck', + element: Element.TRAIT, + }, + 'Cross Slash': { + name: 'Cross Slash', + effect: 'Deal 2 times heavy Phys damage to 1 foe. High accuracy.', + element: Element.PHYS, + unique: true + }, + 'Curse Amp': { + name: 'Curse Amp', + effect: 'Strengthen (non instant death) Curse attacks by 50%.', + element: Element.PASSIVE, + }, + 'Curse Boost': { + name: 'Curse Boost', + effect: 'Strengthen (non instant death) Curse attacks by 25%.', + element: Element.PASSIVE, + }, + 'Cursed Bloodline': { + name: 'Cursed Bloodline', + effect: 'Halves costs of Curse skills', + element: Element.TRAIT, + }, + 'Dazzler': { + name: 'Dazzler', + effect: 'Inflict Dizzy (high odds) to 1 foe.', + element: Element.AILMENT, + }, + 'Deadly Fury': { + name: 'Deadly Fury', + effect: 'Deal severe Phys damage to 1 foe. More powerful under Baton Pass.', + element: Element.PHYS, + }, + 'Death Scythe': { + name: 'Death Scythe', + effect: 'Deal severe Phys damage and inflict Fear (medium odds) to 1 foe.', + element: Element.PHYS, + }, + 'Deathbound': { + name: 'Deathbound', + effect: 'Deal 1 to 2 times medium Phys damage to all foes.', + element: Element.PHYS, + }, + 'Deathly Illness': { + name: 'Deathly Illness', + effect: 'Increases success rate of instant death skills', + element: Element.TRAIT, + }, + 'Debilitate': { + name: 'Debilitate', + effect: 'Decrease 1 foe\'s Attack, Defense and Agility for 3 turns.', + element: Element.SUPPORT, + }, + 'Defense Master': { + name: 'Defense Master', + effect: 'Automatic Rakukaja at the start of battle.', + element: Element.PASSIVE, + }, + 'Dekaja': { + name: 'Dekaja', + effect: 'Negate all -kaja buff effects of all foes.', + element: Element.SUPPORT, + }, + 'Dekunda': { + name: 'Dekunda', + effect: 'Negate all -nda debuff effects of party.', + element: Element.SUPPORT, + }, + 'Demon\'s Bite': { + name: 'Demon\'s Bite',effect: 'Doubles own HP recovery', element: Element.TRAIT, }, + 'Demonic Decree': { + name: 'Demonic Decree', + effect: 'Half remaining HP of 1 foe.', + element: Element.CURSE, + }, + 'Despair Boost': { + name: 'Despair Boost', + effect: 'Increase chance of inflicting Despair.', + element: Element.PASSIVE, + }, + 'Dia': { + name: 'Dia', + effect: 'Slightly restore 1 ally\'s HP.', + element: Element.HEALING, + }, + 'Diamond Dust': { + name: 'Diamond Dust', + effect: 'Deal severe Ice damage to 1 foe.', + element: Element.ICE, + }, + 'Diarahan': { + name: 'Diarahan', + effect: 'Fully restore 1 ally\'s HP.', + element: Element.HEALING, + }, + 'Diarama': { + name: 'Diarama', + effect: 'Moderately restore 1 ally\'s HP.', + element: Element.HEALING, + }, + 'Die For Me!': { + name: 'Die For Me!', + effect: 'High chance of instantly killing all foes.', + element: Element.CURSE, + unique: true + }, + 'Divine Grace': { + name: 'Divine Grace', + effect: 'Effects of healing magic are increased by 50%.', + element: Element.PASSIVE, + }, + 'Divine Judgement': { + name: 'Divine Judgement', + effect: 'Half remaining HP of 1 foe.', + element: Element.BLESS, + }, + 'Dizzy Boost': { + name: 'Dizzy Boost', + effect: 'Increase chance of inflicting Dizzy.', + element: Element.PASSIVE, + }, + 'Dodge Bless': { + name: 'Dodge Bless', + effect: 'Double evasion rate against (non instant death) Bless attacks.', + element: Element.PASSIVE, + }, + 'Dodge Curse': { + name: 'Dodge Curse', + effect: 'Double evasion rate against (non instant death) Curse attacks.', + element: Element.PASSIVE, + }, + 'Dodge Elec': { + name: 'Dodge Elec', + effect: 'Double evasion rate against Electric attacks.', + element: Element.PASSIVE, + }, + 'Dodge Fire': { + name: 'Dodge Fire', + effect: 'Double evasion rate against Fire attacks.', + element: Element.PASSIVE, + }, + 'Dodge Ice': { + name: 'Dodge Ice', + effect: 'Double evasion rate against Ice attacks.', + element: Element.PASSIVE, + }, + 'Dodge Nuke': { + name: 'Dodge Nuke', + effect: 'Double evasion rate against Nuclear attacks.', + element: Element.PASSIVE, + }, + 'Dodge Phys': { + name: 'Dodge Phys', + effect: 'Doubles evasion rate against Phys attacks', + element: Element.PASSIVE, + }, + 'Dodge Psy': { + name: 'Dodge Psy', + effect: 'Double evasion rate against Psy attacks.', + element: Element.PASSIVE, + }, + 'Dodge Wind': { + name: 'Dodge Wind', + effect: 'Double evasion rate against Wind attacks.', + element: Element.PASSIVE, + }, + 'Door of Hades': { + name: 'Door of Hades', + effect: 'Deal heavy Almighty damage to all foes with medium chance of instant kill.', + element: Element.ALMIGHTY, + unique: true + }, + 'Dormin Rush': { + name: 'Dormin Rush', + effect: 'Deal medium Phys damage and inflict Sleep (low odds) to all foes.', + element: Element.PHYS, + }, + 'Dormina': { + name: 'Dormina', + effect: 'Inflict Sleep (high odds) to 1 foe.', + element: Element.AILMENT, + }, + 'Double Fangs': { + name: 'Double Fangs', + effect: 'Deal 2 times medium Phys damage to 1 foe.', + element: Element.PHYS, + }, + 'Double Shot': { + name: 'Double Shot', + effect: 'Deal 2 times light Gun damage to 1 foe.', + element: Element.GUN, + }, + 'Draining Mouth': { + name: 'Draining Mouth', + effect: 'Doubles effectiveness of absorption skills', + element: Element.TRAIT, + }, + 'Dream Needle': { + name: 'Dream Needle', + effect: 'Deal weak Gun damage and inflict Sleep (medium odds) to 1 foe.', + element: Element.GUN, + }, + 'Drunken Passion': { + name: 'Drunken Passion',effect: 'Reduces costs of Fire skills by 75%', element: Element.TRAIT, }, + 'EXP Boost': { + name: 'EXP Boost',effect: 'EXP +15% after battle', element: Element.PASSIVE}, + 'Eccentric Temper': { + name: 'Eccentric Temper', + effect: 'Low chance to strengthen Phys attacks by 80% for all allies', + element: Element.TRAIT, + unique: true + }, + 'Eiga': { + name: 'Eiga', + effect: 'Deal medium Curse damage to 1 foe.', + element: Element.CURSE, + }, + 'Eigaon': { + name: 'Eigaon', + effect: 'Deal heavy Curse damage to 1 foe.', + element: Element.CURSE, + }, + 'Eiha': { + name: 'Eiha', + effect: 'Deal weak Curse damage to 1 foe.', + element: Element.CURSE, + }, + 'Elec Amp': { + name: 'Elec Amp', + effect: 'Strengthen Electric attacks by 50%.', + element: Element.PASSIVE, + }, + 'Elec Boost': { + name: 'Elec Boost', + effect: 'Strengthen Electric attacks by 25%.', + element: Element.PASSIVE, + }, + 'Elec Break': { + name: 'Elec Break', + effect: 'Negate Electric resistances of all foes.', + element: Element.SUPPORT, + }, + 'Elec Wall': { + name: 'Elec Wall', + effect: 'Create a shield on 1 ally to reduce damage of Electric attacks for 3 turns.', + element: Element.SUPPORT, + }, + 'Electric Bloodline': { + name: 'Electric Bloodline', + effect: 'Halves costs of Elec skills', + element: Element.TRAIT, + }, + 'Emergency Shift': { + name: 'Emergency Shift', + effect: 'Chance to swap current party with backups when 2 or more people are KO\'d.', + element: Element.PASSIVE, + unique: true + }, + 'Endure': { + name: 'Endure', + effect: 'Survive one fatal blow with 1 HP remaining.', + element: Element.PASSIVE, + }, + 'Enduring Soul': { + name: 'Enduring Soul', + effect: 'Survive one fatal blow with HP completely recovered.', + element: Element.PASSIVE, + }, + 'Energy Drop': { + name: 'Energy Drop', + effect: 'Cure Confuse/Fear/Despair/Rage/Brainwash of 1 ally.', + element: Element.HEALING, + }, + 'Energy Shower': { + name: 'Energy Shower', + effect: 'Cure Confuse/Fear/Despair/Rage/Brainwash of party.', + element: Element.HEALING, + }, + 'Evade Bless': { + name: 'Evade Bless', + effect: 'Triple evasion rate against (non instant death) Bless attacks.', + element: Element.PASSIVE, + }, + 'Evade Curse': { + name: 'Evade Curse', + effect: 'Triple evasion rate against (non instant death) Curse attacks.', + element: Element.PASSIVE, + }, + 'Evade Elec': { + name: 'Evade Elec', + effect: 'Triple evasion rate against Electric attacks.', + element: Element.PASSIVE, + }, + 'Evade Fire': { + name: 'Evade Fire', + effect: 'Triple evasion rate against Fire attacks.', + element: Element.PASSIVE, + }, + 'Evade Ice': { + name: 'Evade Ice',effect: 'Triple evasion rate against Ice attacks.', element: Element.PASSIVE, }, + 'Evade Nuke': { + name: 'Evade Nuke', + effect: 'Triple evasion rate against Nuclear attacks.', + element: Element.PASSIVE, + }, + 'Evade Phys': { + name: 'Evade Phys', + effect: 'Triples evasion rate against Phys attacks', + element: Element.PASSIVE, + }, + 'Evade Psy': { + name: 'Evade Psy', + effect: 'Triple evasion rate against Psy attacks.', + element: Element.PASSIVE, + }, + 'Evade Wind': { + name: 'Evade Wind', + effect: 'Triple evasion rate against Wind attacks.', + element: Element.PASSIVE, + }, + 'Evil Smile': { + name: 'Evil Smile', + effect: 'Inflict Fear (medium odds) to all foes.', + element: Element.AILMENT, + }, + 'Evil Touch': { + name: 'Evil Touch', + effect: 'Inflict Fear (high odds) to 1 foe.', + element: Element.AILMENT, + }, + 'Explosive Scheme': { + name: 'Explosive Scheme', + effect: 'Restores 25% HP after Futaba\'s All-Out Attack for all allies', + element: Element.TRAIT, + unique: true + }, + 'Famine\'s Scream': { + name: 'Famine\'s Scream', + effect: 'Inflict Hunger (medium odds) to all foes.', + element: Element.AILMENT, + unique: true + }, + 'Fast Heal': { + name: 'Fast Heal', + effect: 'Half the time needed to recover from ailments.', + element: Element.PASSIVE, + }, + 'Fear Boost': { + name: 'Fear Boost', + effect: 'Increase chance of inflicting Fear.', + element: Element.PASSIVE, + }, + 'Fighting Spirit': { + name: 'Fighting Spirit', + effect: 'Next Phys attack +150% damage for all allies', + element: Element.SUPPORT, + unique: true + }, + 'Final Guard': { + name: 'Final Guard', + effect: 'Chance to nullify a fatal attack to a current party member.', + element: Element.PASSIVE, + unique: true + }, + 'Fire Amp': { + name: 'Fire Amp', + effect: 'Strengthen Fire attacks by 50%.', + element: Element.PASSIVE, + }, + 'Fire Boost': { + name: 'Fire Boost', + effect: 'Strengthen Fire attacks by 25%.', + element: Element.PASSIVE, + }, + 'Fire Break': { + name: 'Fire Break', + effect: 'Negate Fire resistances of all foes.', + element: Element.SUPPORT, + }, + 'Fire Wall': { + name: 'Fire Wall', + effect: 'Create a shield on 1 ally to reduce damage of Fire attacks for 3 turns.', + element: Element.SUPPORT, + }, + 'Firm Stance': { + name: 'Firm Stance', + effect: 'Half all incoming damage by sacrificing evasion completely.', + element: Element.PASSIVE, + }, + 'Flash Bomb': { + name: 'Flash Bomb', + effect: 'Deal medium Phys damage and inflict Dizzy (low odds) to all foes.', + element: Element.PHYS, + }, + 'Forget Boost': { + name: 'Forget Boost', + effect: 'Increase chance of inflicting Forget.', + element: Element.PASSIVE, + }, + 'Fortified Moxy': { + name: 'Fortified Moxy', + effect: 'Increase critical rate when beginning battle with preemptive turn.', + element: Element.PASSIVE, + }, + 'Fortify Spirit': { + name: 'Fortify Spirit', + effect: 'Reduce susceptibilities to all ailments.', + element: Element.PASSIVE, + }, + 'Foul Breath': { + name: 'Foul Breath', + effect: 'Increase susceptibility to all ailments of 1 foe.', + element: Element.ALMIGHTY, + }, + 'Foul Odor': { + name: 'Foul Odor', + effect: 'Increases chance of inflicting ailments after Baton Pass', + element: Element.TRAIT, + }, + 'Foul Stench': { + name: 'Foul Stench', + effect: 'Increases chance of inflicting ailments', + element: Element.TRAIT, + }, + 'Freeze Boost': { + name: 'Freeze Boost', + effect: 'Increase chance of inflicting Freeze.', + element: Element.PASSIVE, + }, + 'Frei': { + name: 'Frei', + effect: 'Deal weak Nuclear damage to 1 foe.', + element: Element.NUKE, + }, + 'Freidyne': { + name: 'Freidyne', + effect: 'Deal heavy Nuclear damage to 1 foe.', + element: Element.NUKE, + }, + 'Freila': { + name: 'Freila', + effect: 'Deal medium Nuclear damage to 1 foe.', + element: Element.NUKE, + }, + 'Frenzied Bull': { + name: 'Frenzied Bull', + effect: 'Scales damage dealt against lost HP under 50%', + element: Element.TRAIT, + unique: true + }, + 'Frigid Bloodline': { + name: 'Frigid Bloodline', + effect: 'Halves costs of Ice skills', + element: Element.TRAIT, + }, + 'Gaia Blessing': { + name: 'Gaia Blessing', + effect: 'Increases chance of inflicting Burn, Freeze, and Shock by 50% for all allies', + element: Element.TRAIT, + unique: true + }, + 'Gaia Pact': { + name: 'Gaia Pact', + effect: 'Increases chance of inflicting Burn, Freeze, and Shock by 25% for all allies', + element: Element.TRAIT, + unique: true + }, + 'Gambler\'s Foresight': { + name: 'Gambler\'s Foresight', + effect: 'Masukukaja, Begins battle with Concentrate', + element: Element.SUPPORT, + unique: true + }, + 'Garu': { + name: 'Garu', + effect: 'Deal weak Wind damage to 1 foe.', + element: Element.WIND, + }, + 'Garudyne': { + name: 'Garudyne', + effect: 'Deal heavy Wind damage to 1 foe.', + element: Element.WIND, + }, + 'Garula': { + name: 'Garula', + effect: 'Deal medium Wind damage to 1 foe.', + element: Element.WIND, + }, + 'Gattling Blows': { + name: 'Gattling Blows', + effect: 'Deal 3 to 4 times light Phys damage to 1 foe.', + element: Element.PHYS, + }, + 'Ghastly Wail': { + name: 'Ghastly Wail', + effect: 'Instantly kill all foes under Fear.', + element: Element.ALMIGHTY, + }, + 'Ghost Nest': { + name: 'Ghost Nest', + effect: 'Increases chance of inflicting ailments on downed foes', + element: Element.TRAIT, + }, + 'Giant Slice': { + name: 'Giant Slice', + effect: 'Deal medium Phys damage to 1 foe.', + element: Element.PHYS, + }, + 'Gigantomachia': { + name: 'Gigantomachia', + effect: 'Deal grave Phys damage to all foes.', + element: Element.PHYS, + }, + 'Gloomy Child': { + name: 'Gloomy Child', + effect: 'Activates all equipped special weather passives', + element: Element.TRAIT, + }, + 'Gluttonmouth': { + name: 'Gluttonmouth', + effect: 'Strengthens own HP recovery by 50%', + element: Element.TRAIT, + }, + 'God Maker': { + name: 'God Maker', + effect: 'Increases chance of ally traits activating', + element: Element.TRAIT, + unique: true + }, + 'God\'s Hand': { + name: 'God\'s Hand', + effect: 'Deal grave Phys damage to 1 foe.', + element: Element.PHYS, + }, + 'Grace of Mother': { + name: 'Grace of Mother', + effect: 'Reduces costs of Recovery skills by 75%', + element: Element.TRAIT, + }, + 'Grace of the Olive': { + name: 'Grace of the Olive', + effect: 'Reduces costs of skills to 0 during 1 More', + element: Element.TRAIT, + unique: true + }, + 'Great Aim': { + name: 'Great Aim',effect: 'Gun hit rate +5%', element: Element.PASSIVE}, + 'Growth 1': { + name: 'Growth 1', + effect: 'Persona gains 1/4 EXP while inactive.', + element: Element.PASSIVE, + }, + 'Growth 2': { + name: 'Growth 2', + effect: 'Persona gains 1/2 EXP while inactive.', + element: Element.PASSIVE, + }, + 'Growth 3': { + name: 'Growth 3', + effect: 'Persona gains full EXP even while inactive.', + element: Element.PASSIVE, + }, + 'Guiding Tendril': { + name: 'Guiding Tendril', + effect: 'Downs all foes, Only usable when ambushing foe, Life Aid', + element: Element.SUPPORT, + unique: true + }, + 'Gun Amp': { + name: 'Gun Amp', + effect: 'Gun damage +50%', + element: Element.PASSIVE, + }, + 'Gun Boost': { + name: 'Gun Boost',effect: 'Gun damage +25%', element: Element.PASSIVE, }, + 'Hallowed Spirit': { + name: 'Hallowed Spirit', + effect: 'Doubles own HP and SP recovery', + element: Element.TRAIT, + unique: true + }, + 'Hama': { + name: 'Hama', + effect: 'Small chance of instantly killing 1 foe.', + element: Element.BLESS, + }, + 'Hama Boost': { + name: 'Hama Boost', + effect: 'Increase success rate of instant death by Bless skills.', + element: Element.PASSIVE, + }, + 'Hamaon': { + name: 'Hamaon', + effect: 'Medium chance of instantly killing 1 foe.', + element: Element.BLESS, + }, + 'Hassou Tobi': { + name: 'Hassou Tobi', + effect: 'Deal 8 times weak Phys damage to all foes.', + element: Element.PHYS, + unique: true + }, + 'Hazy Presence': { + name: 'Hazy Presence', + effect: 'Increases chance of ally follow-up attacks', + element: Element.TRAIT, + unique: true + }, + 'Headbutt': { + name: 'Headbutt', + effect: 'Deal medium Phys damage and inflict Forget (medium odds) to 1 foe.', + element: Element.PHYS, + }, + 'Heat Riser': { + name: 'Heat Riser', + effect: 'Increase 1 ally\'s Attack, Defense and Agility for 3 turns.', + element: Element.SUPPORT, + }, + 'Heat Up': { + name: 'Heat Up', + effect: 'Recover 5% HP and 10 SP at the start of preemptive turn.', + element: Element.PASSIVE, + }, + 'Heat Wave': { + name: 'Heat Wave', + effect: 'Deal heavy Phys damage to all foes.', + element: Element.PHYS, + }, + 'Heated Bloodline': { + name: 'Heated Bloodline', + effect: 'Halves costs of Fire skills', + element: Element.TRAIT, + }, + 'High Counter': { + name: 'High Counter', + effect: '20% chance of reflecting Phys attacks.', + element: Element.PASSIVE, + }, + 'High Energy': { + name: 'High Energy', + effect: 'Next Magic attack +150% damage for all allies', + element: Element.SUPPORT, + unique: true + }, + 'Hollow Jester': { + name: 'Hollow Jester', + effect: 'Damage +40% for each foe afflicted with an ailment', + element: Element.TRAIT, + unique: true + }, + 'Holy Benevolence': { + name: 'Holy Benevolence', + effect: 'Revive all allies with 100% HP', + element: Element.HEALING, + unique: true + }, + 'Holy Embrace': { + name: 'Holy Embrace', + effect: 'Recover 25% max HP each turn in battle', + element: Element.PASSIVE, + unique: true + }, + 'Holy Whisper': { + name: 'Holy Whisper', + effect: 'Recover 15% max HP and 15 SP each turn in battle', + element: Element.PASSIVE, + unique: true + }, + 'Hyakka Ryouran': { + name: 'Hyakka Ryouran', + effect: 'Matarukaja + Marakukaja + Masukukaja', + element: Element.SUPPORT, + unique: true + }, + 'Hysterical Slap': { + name: 'Hysterical Slap', + effect: 'Deal medium Phys damage and inflict Rage (medium odds) to 1 foe.', + element: Element.PHYS, + }, + 'Ice Age': { + name: 'Ice Age', + effect: 'Deal severe Ice damage to all foes.', + element: Element.ICE, + }, + 'Ice Amp': { + name: 'Ice Amp', + effect: 'Strengthen Ice attacks by 50%.', + element: Element.PASSIVE, + }, + 'Ice Boost': { + name: 'Ice Boost', + effect: 'Strengthen Ice attacks by 25%.', + element: Element.PASSIVE, + }, + 'Ice Break': { + name: 'Ice Break', + effect: 'Negate Ice resistances of all foes.', + element: Element.SUPPORT, + }, + 'Ice Wall': { + name: 'Ice Wall', + effect: 'Create a shield on 1 ally to reduce damage of Ice attacks for 3 turns.', + element: Element.SUPPORT, + }, + 'Icy Glare': { + name: 'Icy Glare', + effect: 'Reduces ailment susceptibility by 25% for all allies', + element: Element.TRAIT, + unique: true + }, + 'Immunity': { + name: 'Immunity', + effect: 'Nullifies ailments', + element: Element.TRAIT, + }, + 'Inferno': { + name: 'Inferno', + effect: 'Deal severe Fire damage to 1 foe.', + element: Element.FIRE, + }, + 'Infinite Scheme': { + name: 'Infinite Scheme', + effect: 'Restores 100% after Futaba\'s All-Out Attack for all allies', + element: Element.TRAIT, + unique: true + }, + 'Ingenious Spirit': { + name: 'Ingenious Spirit', + effect: 'Chance to halve Support and Almighty skill costs for all allies', + element: Element.TRAIT, + unique: true + }, + 'Insta-Heal': { + name: 'Insta-Heal', + effect: 'Recover from an ailment in 1 turn.', + element: Element.PASSIVE, + }, + 'Intense Focus': { + name: 'Intense Focus', + effect: 'Single-target magic damage +20%', + element: Element.TRAIT, + }, + 'Internal Hypnosis': { + name: 'Internal Hypnosis', + effect: 'Extends buffs received by 1 turn', + element: Element.TRAIT, + }, + 'Invigorate 1': { + name: 'Invigorate 1', + effect: 'Recover 3 SP each turn in battle.', + element: Element.PASSIVE, + }, + 'Invigorate 2': { + name: 'Invigorate 2', + effect: 'Recover 5 SP each turn in battle.', + element: Element.PASSIVE, + }, + 'Invigorate 3': { + name: 'Invigorate 3', + effect: 'Recover 7 SP each turn in battle.', + element: Element.PASSIVE, + }, + 'Inviolable Beauty': { + name: 'Inviolable Beauty', + effect: 'Triples damage dealt by Counter skills', + element: Element.TRAIT, + unique: true + }, + 'Iron Heart': { + name: 'Iron Heart', + effect: 'Halves costs of SP skills after Baton Pass', + element: Element.TRAIT, + unique: true + }, + 'Just Die': { + name: 'Just Die',effect: 'Reduces costs of instant death skills to 0', element: Element.TRAIT, }, + 'Kill Rush': { + name: 'Kill Rush', + effect: 'Deal 1-3 times light Phys damage to 1 foe.', + element: Element.PHYS, + }, + 'Kouga': { + name: 'Kouga', + effect: 'Deal medium Bless damage to 1 foe.', + element: Element.BLESS, + }, + 'Kougaon': { + name: 'Kougaon', + effect: 'Deal heavy Bless damage to 1 foe.', + element: Element.BLESS, + }, + 'Kouha': { + name: 'Kouha', + effect: 'Deal weak Bless damage to 1 foe.', + element: Element.BLESS, + }, + 'Kuzunoha\'s Order': { + name: 'Kuzunoha\'s Order',effect: 'Reduces skill costs by 25%', element: Element.PASSIVE}, + 'Laevateinn': { + name: 'Laevateinn', effect: 'Colossal damage to 1 foe', element: Element.PHYS, unique: true}, + 'Last Stand': { + name: 'Last Stand', + effect: 'Reduces enemy hit rate by 2/3 when ambushed', + element: Element.PASSIVE, + }, + 'Life Aid': { + name: 'Life Aid', + effect: 'Recover 8% HP and SP after a successful battle.', + element: Element.PASSIVE, + }, + 'Life Boost': { + name: 'Life Boost',effect: 'All Stats +3, SP +20', element: Element.PASSIVE}, + 'Life Drain': { + name: 'Life Drain', + effect: 'Drains HP from 1 foe.', + element: Element.ALMIGHTY, + }, + 'Life Leech': { + name: 'Life Leech',effect: 'Drains 150 HP from 1 foe.', element: Element.ALMIGHTY, unique: true}, + 'Life Wall': { + name: 'Life Wall', + effect: 'Repels next non-Almighty attack for all allies', + element: Element.SUPPORT, + unique: true + }, + 'Linked Bloodline': { + name: 'Linked Bloodline', + effect: 'Greatly raises damage dealt after Baton Pass', + element: Element.TRAIT, + }, + 'Lucky Punch': { + name: 'Lucky Punch', + effect: 'Deal minuscule Phys damage to 1 foe. High critical rate.', + element: Element.PHYS, + }, + 'Lullaby': { + name: 'Lullaby', + effect: 'Inflict Sleep (medium odds) to all foes.', + element: Element.AILMENT, + }, + 'Lunge': { + name: 'Lunge', + effect: 'Deal weak Phys damage to 1 foe.', + element: Element.PHYS, + }, + 'Mabaisudi': { + name: 'Mabaisudi', + effect: 'Cure Burn/Freeze/Shock of party.', + element: Element.HEALING, + }, + 'Mabufu': { + name: 'Mabufu', + effect: 'Deal weak Ice damage to all foes.', + element: Element.ICE, + }, + 'Mabufudyne': { + name: 'Mabufudyne', + effect: 'Deal heavy Ice damage to all foes.', + element: Element.ICE, + }, + 'Mabufula': { + name: 'Mabufula', + effect: 'Deal medium Ice damage to all foes.', + element: Element.ICE, + }, + 'Maeiga': { + name: 'Maeiga', + effect: 'Deal medium Curse damage to all foes.', + element: Element.CURSE, + }, + 'Maeigaon': { + name: 'Maeigaon', + effect: 'Deal heavy Curse damage to all foes.', + element: Element.CURSE, + }, + 'Maeiha': { + name: 'Maeiha', + effect: 'Deal weak Curse damage to all foes.', + element: Element.CURSE, + }, + 'Mafrei': { + name: 'Mafrei', + effect: 'Deal weak Nuclear damage to all foes.', + element: Element.NUKE, + }, + 'Mafreidyne': { + name: 'Mafreidyne', + effect: 'Deal heavy Nuclear damage to all foes.', + element: Element.NUKE, + }, + 'Mafreila': { + name: 'Mafreila', + effect: 'Deal medium Nuclear damage to all foes.', + element: Element.NUKE, + }, + 'Magaru': { + name: 'Magaru', + effect: 'Deal small Wind damage to all foes.', + element: Element.WIND, + }, + 'Magarudyne': { + name: 'Magarudyne', + effect: 'Deal heavy Wind damage to all foes.', + element: Element.WIND, + }, + 'Magarula': { + name: 'Magarula', + effect: 'Deal medium Wind damage to all foes.', + element: Element.WIND, + }, + 'Magatsu Mandala': { + name: 'Magatsu Mandala', + effect: 'Deal heavy Curse damage to all foes and inflict Confuse/Fear/Despair (medium odds).', + element: Element.CURSE, + unique: true + }, + 'Magic Ability': { + name: 'Magic Ability', + effect: 'Strengthen all magical attacks by 25%.', + element: Element.PASSIVE + }, + 'Mahama': { + name: 'Mahama', + effect: 'Small chance of instantly killing all foes.', + element: Element.BLESS, + }, + 'Mahamaon': { + name: 'Mahamaon', + effect: 'Medium chance of instantly killing all foes.', + element: Element.BLESS, + }, + 'Majestic Presence': { + name: 'Majestic Presence', + effect: 'Doubles effectiveness and decreases costs of Recovery skills for all allies', + element: Element.TRAIT, + unique: true + }, + 'Makajam': { + name: 'Makajam', + effect: 'Inflict Forget (high odds) to 1 foe.', + element: Element.AILMENT, + }, + 'Makajamaon': { + name: 'Makajamaon', + effect: 'Inflict Forget (medium odds) to all foes.', + element: Element.AILMENT, + }, + 'Makara Break': { + name: 'Makara Break', + effect: 'Remove magic-repellent shields from all foes.', + element: Element.SUPPORT, + }, + 'Makarakarn': { + name: 'Makarakarn', + effect: 'Create a shield on 1 ally to repel 1 magical attack.', + element: Element.SUPPORT, + }, + 'Makouga': { + name: 'Makouga', + effect: 'Deal medium Bless damage to all foes.', + element: Element.BLESS, + }, + 'Makougaon': { + name: 'Makougaon', + effect: 'Deal heavy Bless damage to all foes.', + element: Element.BLESS, + }, + 'Makouha': { + name: 'Makouha', + effect: 'Deal weak Bless damage to all foes.', + element: Element.BLESS, + }, + 'Mamudo': { + name: 'Mamudo', + effect: 'Small chance of instantly killing all foes.', + element: Element.CURSE, + }, + 'Mamudoon': { + name: 'Mamudoon', + effect: 'Medium chance of instantly killing all foes.', + element: Element.CURSE, + }, + 'Mapsi': { + name: 'Mapsi', + effect: 'Deal weak Psy damage to all foes.', + element: Element.PSY, + }, + 'Mapsio': { + name: 'Mapsio', + effect: 'Deal medium Psy damage to all foes.', + element: Element.PSY, + }, + 'Mapsiodyne': { + name: 'Mapsiodyne', + effect: 'Deal heavy Psy damage to all foes.', + element: Element.PSY, + }, + 'Maragi': { + name: 'Maragi', + effect: 'Deal weak Fire damage to all foes.', + element: Element.FIRE, + }, + 'Maragidyne': { + name: 'Maragidyne', + effect: 'Deal heavy Fire damage to all foes.', + element: Element.FIRE, + }, + 'Maragion': { + name: 'Maragion', + effect: 'Deal medium Fire damage to all foes.', + element: Element.FIRE, + }, + 'Marakukaja': { + name: 'Marakukaja', + effect: 'Increase party\'s Defense for 3 turns.', + element: Element.SUPPORT, + }, + 'Marakunda': { + name: 'Marakunda', + effect: 'Decrease all foes\' Defense for 3 turns.', + element: Element.SUPPORT, + }, + 'Marin Karin': { + name: 'Marin Karin', + effect: 'Inflict Brainwash (high odds) to 1 foe.', + element: Element.AILMENT, + }, + 'Martyr\'s Gift': { + name: 'Martyr\'s Gift', + effect: 'Reduces costs of Bless skills by 75%', + element: Element.TRAIT, + }, + 'Masquerade': { + name: 'Masquerade', effect: 'Severe damage to 1 foe, x2 hits', element: Element.PHYS, unique: true}, + 'Mastery of Magic': { + name: 'Mastery of Magic', + effect: 'Low chance to decrease attack spell costs for all allies', + element: Element.TRAIT, + unique: true + }, + 'Masukukaja': { + name: 'Masukukaja', + effect: 'Increase party\'s Agility for 3 turns.', + element: Element.SUPPORT, + }, + 'Masukunda': { + name: 'Masukunda', + effect: 'Decrease all foes\' Agility for 3 turns.', + element: Element.SUPPORT, + }, + 'Matarukaja': { + name: 'Matarukaja', + effect: 'Increase party\'s Attack power for 3 turns.', + element: Element.SUPPORT, + }, + 'Matarunda': { + name: 'Matarunda', + effect: 'Decrease all foes\' Attack power for 3 turns.', + element: Element.SUPPORT, + }, + 'Mazio': { + name: 'Mazio', + effect: 'Deal weak Electric damage to all foes.', + element: Element.ELEC, + }, + 'Maziodyne': { + name: 'Maziodyne', + effect: 'Deal heavy Electric damage to all foes.', + element: Element.ELEC, + }, + 'Mazionga': { + name: 'Mazionga', + effect: 'Deal medium Electric damage to all foes.', + element: Element.ELEC, + }, + 'Me Patra': { + name: 'Me Patra', + effect: 'Cure Dizzy/Forget/Sleep/Hunger of party.', + element: Element.HEALING, + }, + 'Media': { + name: 'Media', + effect: 'Slightly restore party\'s HP.', + element: Element.HEALING, + }, + 'Mediarahan': { + name: 'Mediarahan', + effect: 'Fully restore party\'s HP.', + element: Element.HEALING, + }, + 'Mediarama': { + name: 'Mediarama', + effect: 'Moderately restore party\'s HP.', + element: Element.HEALING, + }, + 'Megaton Raid': { + name: 'Megaton Raid', + effect: 'Deal severe Phys damage to 1 foe.', + element: Element.PHYS, + }, + 'Megido': { + name: 'Megido', + effect: 'Deal medium Almighty damage to all foes.', + element: Element.ALMIGHTY, + }, + 'Megidola': { + name: 'Megidola', + effect: 'Deal heavy Almighty damage to all foes.', + element: Element.ALMIGHTY, + }, + 'Megidolaon': { + name: 'Megidolaon', + effect: 'Deal severe Almighty damage to all foes.', + element: Element.ALMIGHTY, + }, + 'Mementos Scan': { + name: 'Mementos Scan', + effect: 'Chance to fully map a floor of Mementos when entering that floor.', + element: Element.PASSIVE, + unique: true + }, + 'Memory Blow': { + name: 'Memory Blow', + effect: 'Deal light Phys damage and inflict Forget (low odds) to all foes.', + element: Element.PHYS, + }, + 'Mighty Gaze': { + name: 'Mighty Gaze', + effect: 'All-target magic damage +20%', + element: Element.TRAIT, + }, + 'Mind Slice': { + name: 'Mind Slice', + effect: 'Deal medium Phys damage and inflict Confuse (low odds) to all foes.', + element: Element.PHYS, + }, + 'Miracle Punch': { + name: 'Miracle Punch', + effect: 'Deal medium Phys damage to 1 foe. High critical rate.', + element: Element.PHYS, + }, + 'Miracle Rush': { + name: 'Miracle Rush', + effect: 'Deal medium Phys damage to all foes. High critical rate.', + element: Element.PHYS, + unique: true + }, + 'Money Boost': { + name: 'Money Boost',effect: 'Doubles money earned after battle', element: Element.PASSIVE}, + 'Moral Support': { + name: 'Moral Support', + effect: 'Chance to cast Kaja or party-healing magic during battle.', + element: Element.PASSIVE, + unique: true + }, + 'Morning Star': { + name: 'Morning Star', + effect: 'Deal severe Almighty damage to all foes.', + element: Element.ALMIGHTY, + unique: true + }, + 'Mother\'s Lament': { + name: 'Mother\'s Lament', + effect: 'Reduces costs of Curse skills by 75%', + element: Element.TRAIT, + }, + 'Mouth of Savoring': { + name: 'Mouth of Savoring', + effect: 'Strengthens own SP recovery by 50%', + element: Element.TRAIT, + }, + 'Mudo': { + name: 'Mudo', + effect: 'Small chance of instantly killing 1 foe.', + element: Element.CURSE, + }, + 'Mudo Boost': { + name: 'Mudo Boost', + effect: 'Increase success rate of instant death by Curse skills.', + element: Element.PASSIVE, + }, + 'Mudoon': { + name: 'Mudoon', + effect: 'medium chance of instantly killing 1 foe.', + element: Element.CURSE, + }, + 'Myriad Slashes': { + name: 'Myriad Slashes', + effect: 'Deal 2 to 3 times medium Phys damage to 1 foe.', + element: Element.PHYS, + }, + 'Myriad Truths': { + name: 'Myriad Truths', + effect: 'Deal 3 times heavy Almighty damage to all foes.', + element: Element.ALMIGHTY, + unique: true + }, + 'Naranari': { + name: 'Naranari',effect: 'Doubles effectiveness of SP regeneration skills', element: Element.TRAIT, }, + 'Negative Pile': { + name: 'Negative Pile', + effect: 'Deal heavy Phys damage and inflict Despair (medium odds) to 1 foe.', + element: Element.PHYS, + }, + 'Neo Cadenza': { + name: 'Neo Cadenza', + effect: 'Restore 50% HP of party and increase attack, defense, and evasion rate.', + element: Element.HEALING, + unique: true + }, + 'Nocturnal Flash': { + name: 'Nocturnal Flash', + effect: 'Inflict Dizzy (medium odds) to all foes.', + element: Element.AILMENT, + }, + 'Nuke Amp': { + name: 'Nuke Amp', + effect: 'Strengthen Nuclear attacks by 50%.', + element: Element.PASSIVE, + }, + 'Nuke Boost': { + name: 'Nuke Boost', + effect: 'Strengthen Nuclear attacks by 25%.', + element: Element.PASSIVE, + }, + 'Nuke Break': { + name: 'Nuke Break', + effect: 'Negate Nuclear resistances of all foes.', + element: Element.SUPPORT, + }, + 'Nuke Wall': { + name: 'Nuke Wall', + effect: 'Create a shield on 1 ally to reduce damage of Nuclear attacks for 3 turns.', + element: Element.SUPPORT + }, + 'Null Bless': { + name: 'Null Bless', + effect: 'Impart immunity against Bless attacks.', + element: Element.PASSIVE, + }, + 'Null Brainwash': { + name: 'Null Brainwash', + effect: 'Impart immunity against Brainwash.', + element: Element.PASSIVE, + }, + 'Null Burn': { + name: 'Null Burn',effect: 'Immune to Burn', element: Element.PASSIVE}, + 'Null Confuse': { + name: 'Null Confuse',effect: 'Impart immunity against Confuse.', element: Element.PASSIVE, }, + 'Null Curse': { + name: 'Null Curse', + effect: 'Impart immunity against Curse attacks.', + element: Element.PASSIVE, + }, + 'Null Despair': { + name: 'Null Despair',effect: 'Impart immunity against Despair.', element: Element.PASSIVE}, + 'Null Dizzy': { + name: 'Null Dizzy', + effect: 'Impart immunity against Dizzy.', + element: Element.PASSIVE, + }, + 'Null Elec': { + name: 'Null Elec', + effect: 'Impart immunity against Electric attacks.', + element: Element.PASSIVE, + }, + 'Null Fear': { + name: 'Null Fear',effect: 'Impart immunity against Fear.', element: Element.PASSIVE}, + 'Null Fire': { + name: 'Null Fire', + effect: 'Impart immunity against Fire attacks.', + element: Element.PASSIVE, + }, + 'Null Forget': { + name: 'Null Forget',effect: 'Impart immunity against Forget.', element: Element.PASSIVE, }, + 'Null Freeze': { + name: 'Null Freeze',effect: 'Immune to Freeze', element: Element.PASSIVE}, + 'Null Hunger': { + name: 'Null Hunger',effect: 'Immune to Hunger', element: Element.PASSIVE}, + 'Null Ice': { + name: 'Null Ice', + effect: 'Impart immunity against Ice attacks.', + element: Element.PASSIVE, + }, + 'Null Mortal': { + name: 'Null Mortal',effect: 'Nullifies damage from Bless and Curse attacks', element: Element.PASSIVE}, + 'Null Nuke': { + name: 'Null Nuke',effect: 'Impart immunity against Nuclear attacks.', element: Element.PASSIVE}, + 'Null Phys': { + name: 'Null Phys', + effect: 'Impart immunity against Phys attacks.', + element: Element.PASSIVE, + }, + 'Null Psy': { + name: 'Null Psy',effect: 'Impart immunity against Psy attacks.', element: Element.PASSIVE}, + 'Null Rage': { + name: 'Null Rage', + effect: 'Impart immunity against Rage.', + element: Element.PASSIVE, + }, + 'Null Shock': { + name: 'Null Shock',effect: 'Immune to Shock', element: Element.PASSIVE}, + 'Null Sleep': { + name: 'Null Sleep',effect: 'Impart immunity against Sleep.', element: Element.PASSIVE, }, + 'Null Wind': { + name: 'Null Wind', + effect: 'Impart immunity against Wind attacks.', + element: Element.PASSIVE, + }, + 'Omen': { + name: 'Omen', + effect: 'Greatly increases success rate of instant death skills', + element: Element.TRAIT, + }, + 'Ominous Words': { + name: 'Ominous Words', + effect: 'Inflict Despair (high odds) to 1 foe.', + element: Element.AILMENT, + }, + 'One-shot Kill': { + name: 'One-shot Kill', + effect: 'Deal severe Gun damage to 1 foe. High critical rate.', + element: Element.GUN, + }, + 'Oni Kagura': { + name: 'Oni Kagura', + effect: 'Deal medium Phys damage and inflict Rage (low odds) to all foes.', + element: Element.PHYS, + }, + 'Oratorio': { + name: 'Oratorio', + effect: 'Fully restore party\'s HP and negate all -nda debuffs.', + element: Element.HEALING, + unique: true + }, + 'Pagan Allure': { + name: 'Pagan Allure', + effect: 'Magic damage +50%, Cannot exceed 100% limit', + element: Element.TRAIT, + }, + 'Panta Rhei': { + name: 'Panta Rhei', + effect: 'Deal severe Wind damage to 1 foe', + element: Element.WIND, + }, + 'Patra': { + name: 'Patra', + effect: 'Cure Dizzy/Forget/Sleep/Hunger of 1 ally.', + element: Element.HEALING, + }, + 'Phantom Show': { + name: 'Phantom Show', + effect: 'Inflict Sleep (high odds) to all foes.', + element: Element.AILMENT, + unique: true + }, + 'Pinch Anchor': { + name: 'Pinch Anchor', + effect: 'Allows use of ambush-only skills after Baton Pass', + element: Element.TRAIT, + }, + 'Pinnacle of Magic': { + name: 'Pinnacle of Magic', + effect: 'Low chance to halve attack spell costs for all allies', + element: Element.TRAIT, + unique: true + }, + 'Position Hack': { + name: 'Position Hack', + effect: 'Chance to instantly Hold Up enemies when starting a battle.', + element: Element.PASSIVE, + unique: true + }, + 'Positive Thoughts': { + name: 'Positive Thoughts', + effect: 'Extends buffs received by 2 turns', + element: Element.TRAIT, + }, + 'Potent Hypnosis': { + name: 'Potent Hypnosis', + effect: 'Extends buffs cast by 1 turn', + element: Element.TRAIT, + }, + 'Power Slash': { + name: 'Power Slash', + effect: 'Deal medium Phys damage to 1 foe.', + element: Element.PHYS, + }, + 'President\'s Insight': { + name: 'President\'s Insight', + effect: 'Next Magic attack +150% damage for 1 ally, Attack Master', + element: Element.SUPPORT, + unique: true + }, + 'Proud Presence': { + name: 'Proud Presence', + effect: 'Doubles effectiveness of Recovery skills for all allies', + element: Element.TRAIT, + unique: true + }, + 'Psi': { + name: 'Psi', + effect: 'Deal weak Psy damage to 1 foe.', + element: Element.PSY, + }, + 'Psio': { + name: 'Psio', + effect: 'Deal medium Psy damage to 1 foe.', + element: Element.PSY, + }, + 'Psiodyne': { + name: 'Psiodyne', + effect: 'Deal heavy Psy damage to 1 foe.', + element: Element.PSY, + }, + 'Psy Amp': { + name: 'Psy Amp', + effect: 'Strengthen Psy attacks by 50%.', + element: Element.PASSIVE, + }, + 'Psy Boost': { + name: 'Psy Boost',effect: 'Strengthen Psy attacks by 25%.', element: Element.PASSIVE, }, + 'Psy Break': { + name: 'Psy Break', + effect: 'Negate Psy resistances of all foes.', + element: Element.SUPPORT, + }, + 'Psy Wall': { + name: 'Psy Wall', + effect: 'Create a shield on 1 ally to reduce damage of Psy attacks for 3 turns.', + element: Element.SUPPORT, + }, + 'Psychic Bloodline': { + name: 'Psychic Bloodline', + effect: 'Halves costs of Psy skills', + element: Element.TRAIT, + }, + 'Psycho Blast': { + name: 'Psycho Blast', + effect: 'Deal severe Psy damage to all foes.', + element: Element.PSY, + }, + 'Psycho Force': { + name: 'Psycho Force', + effect: 'Deal severe Psy damage to 1 foe.', + element: Element.PSY, + }, + 'Pulinpa': { + name: 'Pulinpa', + effect: 'Inflict Confuse (high odds) to 1 foe.', + element: Element.AILMENT, + }, + 'Rage Boost': { + name: 'Rage Boost', + effect: 'Increase chance of inflicting Rage.', + element: Element.PASSIVE, + }, + 'Raging Temper': { + name: 'Raging Temper', + effect: 'Low chance to strengthen Phys attacks by 40% for all allies', + element: Element.TRAIT, + unique: true + }, + 'Rakukaja': { + name: 'Rakukaja', + effect: 'Increase 1 ally\'s Defense for 3 turns.', + element: Element.SUPPORT, + }, + 'Rakunda': { + name: 'Rakunda', + effect: 'Decrease 1 foe\'s Defense for 3 turns.', + element: Element.SUPPORT, + }, + 'Rampage': { + name: 'Rampage', + effect: 'Deal 1 to 3 times weak Phys damage to all foes.', + element: Element.PHYS, + }, + 'Rare Antibody': { + name: 'Rare Antibody', + effect: 'Reduces susceptibility to ailments', + element: Element.TRAIT, + }, + 'Rebellion': { + name: 'Rebellion', + effect: 'Increase 1 ally\'s critical rate for 3 turns.', + element: Element.SUPPORT, + }, + 'Rebellion Blade': { + name: 'Rebellion Blade', + effect: 'Colossal damage to 1 foe, Damage +150% when target downed', + element: Element.ALMIGHTY, + unique: true + }, + 'Recarm': { + name: 'Recarm', + effect: 'Revive 1 ally with 50% HP recovered.', + element: Element.HEALING, + }, + 'Regenerate 1': { + name: 'Regenerate 1', + effect: 'Restore 2% of max HP each turn in battle.', + element: Element.PASSIVE, + }, + 'Regenerate 2': { + name: 'Regenerate 2', + effect: 'Recover 4% of max HP each turn in battle.', + element: Element.PASSIVE, + }, + 'Regenerate 3': { + name: 'Regenerate 3', + effect: 'Recover 6% of max HP each turn in battle.', + element: Element.PASSIVE, + }, + 'Relentless': { + name: 'Relentless', + effect: 'Damage that strikes foe weaknesses +50%', + element: Element.TRAIT, + }, + 'Relief Bloodline': { + name: 'Relief Bloodline', + effect: 'Halves costs of Support skills', + element: Element.TRAIT, + }, + 'Repel Bless': { + name: 'Repel Bless', + effect: 'Repel Bless attacks.', + element: Element.PASSIVE, + }, + 'Repel Curse': { + name: 'Repel Curse',effect: 'Repel Curse attacks.', element: Element.PASSIVE, }, + 'Repel Elec': { + name: 'Repel Elec',effect: 'Repel Electric attacks.', element: Element.PASSIVE, }, + 'Repel Fire': { + name: 'Repel Fire', + effect: 'Repel Fire attacks.', + element: Element.PASSIVE, + }, + 'Repel Ice': { + name: 'Repel Ice', + effect: 'Repel Ice attacks.', + element: Element.PASSIVE, + }, + 'Repel Nuke': { + name: 'Repel Nuke', + effect: 'Repel Nuclear attacks.', + element: Element.PASSIVE, + }, + 'Repel Phys': { + name: 'Repel Phys', + effect: 'Repel Phys attacks.', + element: Element.PASSIVE, + }, + 'Repel Psy': { + name: 'Repel Psy',effect: 'Repel Psy attacks.', element: Element.PASSIVE, }, + 'Repel Wind': { + name: 'Repel Wind', + effect: 'Repel Wind attacks.', + element: Element.PASSIVE, + }, + 'Resist Bless': { + name: 'Resist Bless',effect: 'Reduce damage from Bless attacks.', element: Element.PASSIVE, }, + 'Resist Brainwash': { + name: 'Resist Brainwash', + effect: 'Reduce susceptibility to Brainwash.', + element: Element.PASSIVE, + }, + 'Resist Burn': { + name: 'Resist Burn',effect: 'Halves susceptibility to Burn', element: Element.PASSIVE}, + 'Resist Confuse': { + name: 'Resist Confuse',effect: 'Reduce susceptibility to Confuse.', element: Element.PASSIVE, }, + 'Resist Curse': { + name: 'Resist Curse',effect: 'Reduce damage from Curse attacks.', element: Element.PASSIVE}, + 'Resist Despair': { + name: 'Resist Despair', + effect: 'Reduce susceptibility to Despair.', + element: Element.PASSIVE, + }, + 'Resist Dizzy': { + name: 'Resist Dizzy', + effect: 'Reduce susceptibility to Dizzy.', + element: Element.PASSIVE, + }, + 'Resist Elec': { + name: 'Resist Elec',effect: 'Reduce damage from Electric attacks.', element: Element.PASSIVE}, + 'Resist Fear': { + name: 'Resist Fear', + effect: 'Reduce susceptibility to Fear.', + element: Element.PASSIVE, + }, + 'Resist Fire': { + name: 'Resist Fire',effect: 'Reduce damage from Fire attacks.', element: Element.PASSIVE}, + 'Resist Forget': { + name: 'Resist Forget', + effect: 'Reduce susceptibility to Forget.', + element: Element.PASSIVE, + }, + 'Resist Freeze': { + name: 'Resist Freeze',effect: 'Halves susceptibility to Freeze', element: Element.PASSIVE}, + 'Resist Hunger': { + name: 'Resist Hunger',effect: 'Halves susceptibility to Hunger', element: Element.PASSIVE}, + 'Resist Ice': { + name: 'Resist Ice',effect: 'Reduce damage from Ice attacks.', element: Element.PASSIVE}, + 'Resist Nuke': { + name: 'Resist Nuke',effect: 'Reduce damage from Nuclear attacks.', element: Element.PASSIVE}, + 'Resist Phys': { + name: 'Resist Phys',effect: 'Reduce damage from Phys attacks.', element: Element.PASSIVE}, + 'Resist Psy': { + name: 'Resist Psy',effect: 'Reduce damage from Psy attacks.', element: Element.PASSIVE, }, + 'Resist Rage': { + name: 'Resist Rage',effect: 'Reduce susceptibility to Rage.', element: Element.PASSIVE}, + 'Resist Shock': { + name: 'Resist Shock',effect: 'Halves susceptibility to Shock', element: Element.PASSIVE}, + 'Resist Sleep': { + name: 'Resist Sleep', + effect: 'Reduce susceptibility to Sleep.', + element: Element.PASSIVE, + }, + 'Resist Wind': { + name: 'Resist Wind',effect: 'Reduce damage from Wind attacks.', element: Element.PASSIVE, }, + 'Retaliating Body': { + name: 'Retaliating Body', + effect: 'Doubles damage from Counter skills', + element: Element.TRAIT, + }, + 'Reverse Rub': { + name: 'Reverse Rub',effect: 'Inflict Rage (100%) to 1 ally.', element: Element.AILMENT, unique: true}, + 'Revolution': { + name: 'Revolution', + effect: 'Increase all foes and allies\' critical rate for 3 turns.', + element: Element.SUPPORT, + }, + 'Riot Gun': { + name: 'Riot Gun', + effect: 'Deal severe Gun damage to all foes.', + element: Element.GUN, + }, + 'Rising Slash': { + name: 'Rising Slash', + effect: 'Deal heavy Phys damage to 1 foe. More powerful under Baton Pass.', + element: Element.PHYS, + }, + 'Salvation': { + name: 'Salvation', + effect: 'Fully restore HP and cure all ailments of party except for unique status.', + element: Element.HEALING, + }, + 'Samarecarm': { + name: 'Samarecarm', + effect: 'Revive 1 ally with all HP recovered.', + element: Element.HEALING, + }, + 'Samsara': { + name: 'Samsara', + effect: 'High chance of instantly killing all foes.', + element: Element.BLESS, + unique: true + }, + 'Samurai\'s Ruling': { + name: 'Samurai\'s Ruling',effect: 'Raises critical rate and Magic evasion', element: Element.PASSIVE}, + 'Savior Bloodline': { + name: 'Savior Bloodline', + effect: 'Halves costs of Recovery skills', + element: Element.TRAIT, + }, + 'Scoundrel Eyes': { + name: 'Scoundrel Eyes', + effect: 'Raises evasion rate against Phys attacks for all allies', + element: Element.TRAIT, + unique: true + }, + 'Self-Destruct': { + name: 'Self-Destruct', + effect: 'Sacrifice self and deal medium Almighty damage to all.', + element: Element.ALMIGHTY, + unique: true + }, + 'Sharp Student': { + name: 'Sharp Student', + effect: 'Lower odds of receiving critical hit.', + element: Element.PASSIVE, + }, + 'Shining Arrows': { + name: 'Shining Arrows', + effect: 'Deal 4 to 8 times weak Bless damage to all foes.', + element: Element.BLESS, + unique: true + }, + 'Shock Boost': { + name: 'Shock Boost', + effect: 'Increase chance of inflicting Shock.', + element: Element.PASSIVE, + }, + 'Skillful Combo': { + name: 'Skillful Combo', + effect: 'Raises damage dealt after Baton Pass', + element: Element.TRAIT, + }, + 'Skillful Technique': { + name: 'Skillful Technique', + effect: 'Technical damage +25%', + element: Element.TRAIT, + }, + 'Skull Cracker': { + name: 'Skull Cracker', + effect: 'Deal medium Phys damage and inflict Confuse (medium odds) to 1 foe.', + element: Element.PHYS, + }, + 'Sledgehammer': { + name: 'Sledgehammer', + effect: 'Deal medium Phys damage and inflict Dizzy (medium odds) to 1 foe.', + element: Element.PHYS, + }, + 'Sleep Boost': { + name: 'Sleep Boost', + effect: 'Increase chance of inflicting Sleep.', + element: Element.PASSIVE, + }, + 'Snap': { + name: 'Snap', + effect: 'Deal medium Gun damage to 1 foe.', + element: Element.GUN, + }, + 'Soul Chain': { + name: 'Soul Chain', + effect: 'Recover 20 SP when performing Baton Pass.', + element: Element.PASSIVE + }, + 'Soul Touch': { + name: 'Soul Touch',effect: 'Recover 5 SP after Baton Pass', element: Element.PASSIVE}, + 'Speed Master': { + name: 'Speed Master', + effect: 'Automatic Sukukaja at the start of battle.', + element: Element.PASSIVE, + }, + 'Spell Master': { + name: 'Spell Master', + effect: 'Half SP cost for magic skills.', + element: Element.PASSIVE, + }, + 'Spirit Drain': { + name: 'Spirit Drain', + effect: 'Drains SP from 1 foe.', + element: Element.ALMIGHTY, + }, + 'Spirit Leech': { + name: 'Spirit Leech',effect: 'Drains 150 SP from 1 foe.', element: Element.ALMIGHTY, unique: true}, + 'Stagnant Air': { + name: 'Stagnant Air', + effect: 'Increase susceptibility to all ailments of all foes and allies.', + element: Element.ALMIGHTY, + }, + 'Static Electricity': { + name: 'Static Electricity', + effect: 'Increases chance of inflicting Shock on downed foes', + element: Element.TRAIT, + }, + 'Stealth': { + name: 'Stealth',effect: 'Lowers chance of being targeted', element: Element.PASSIVE}, + 'Stomach Blow': { + name: 'Stomach Blow', + effect: 'Medium Physical damage to 1 foe and inflict Hunger.', + element: Element.PHYS, + unique: true + }, + 'Striking Weight': { + name: 'Striking Weight', + effect: 'Phys damage +20%', + element: Element.TRAIT, + }, + 'Subrecover HP': { + name: 'Subrecover HP', + effect: 'After battle, 10% HP recovery for backup allies.', + element: Element.PASSIVE, + unique: true + }, + 'Subrecover HP EX': { + name: 'Subrecover HP EX', + effect: 'After battle, 20% HP recovery for backup allies.', + element: Element.PASSIVE, + unique: true + }, + 'Subrecover SP': { + name: 'Subrecover SP', + effect: 'After battle, 1% SP recovery for backup allies.', + element: Element.PASSIVE, + unique: true + }, + 'Subrecover SP EX': { + name: 'Subrecover SP EX', + effect: 'After battle, 3% SP recovery for backup allies.', + element: Element.PASSIVE, + unique: true + }, + 'Sukukaja': { + name: 'Sukukaja', + effect: 'Increase 1 ally\'s Agility for 3 turns.', + element: Element.SUPPORT, + }, + 'Sukunda': { + name: 'Sukunda', + effect: 'Decrease 1 foe\'s Agility for 3 turns.', + element: Element.SUPPORT, + }, + 'Summon': { + name: 'Summon',effect: 'Summon ally reinforcements.', element: Element.ALMIGHTY, unique: true}, + 'Support Plus 1': { + name: 'Support Plus 1', + effect: 'Adds Masukunda to Moral Support pool', + element: Element.PASSIVE, + unique: true + }, + 'Support Plus 2': { + name: 'Support Plus 2', + effect: 'Adds Masukunda and Marakunda to Moral Support pool', + element: Element.PASSIVE, + unique: true + }, + 'Support Plus 3': { + name: 'Support Plus 3', + effect: 'Adds Masukunda, Marakunda, and Matarunda to Moral Support pool', + element: Element.PASSIVE, + unique: true + }, + 'Support Rate Up': { + name: 'Support Rate Up', + effect: 'Raises chance of Moral Support activating', + element: Element.PASSIVE, + unique: true + }, + 'Survival Trick': { + name: 'Survival Trick', + effect: 'Survive one instant death attack with 1 HP remaining.', + element: Element.PASSIVE, + }, + 'Swift Strike': { + name: 'Swift Strike', + effect: 'Deal 2 to 4 times weak Phys damage to all foes.', + element: Element.PHYS, + }, + 'Sword Dance': { + name: 'Sword Dance', + effect: 'Deal grave Phys damage to 1 foe.', + element: Element.PHYS, + }, + 'Tactical Spirit': { + name: 'Tactical Spirit', + effect: 'Chance to halve Support skill costs for all allies', + element: Element.TRAIT, + unique: true + }, + 'Tag Team': { + name: 'Tag Team', + effect: 'Allows use of consumables without expending them after Baton Pass', + element: Element.TRAIT, + unique: true + }, + 'Tarukaja': { + name: 'Tarukaja', + effect: 'Increase 1 ally\'s Attack power for 3 turns.', + element: Element.SUPPORT, + }, + 'Tarunda': { + name: 'Tarunda', + effect: 'Decrease 1 foe\'s Attack power for 3 turns.', + element: Element.SUPPORT, + }, + 'Taunt': { + name: 'Taunt', + effect: 'Inflict Rage (high odds) to 1 foe.', + element: Element.AILMENT, + }, + 'Tempest Slash': { + name: 'Tempest Slash', + effect: 'Deal 3 to 5 times minuscule Phys damage to 1 foe.', + element: Element.PHYS, + }, + 'Tentarafoo': { + name: 'Tentarafoo', + effect: 'Inflict Confuse (medium odds) to all foes.', + element: Element.AILMENT, + }, + 'Terror Claw': { + name: 'Terror Claw', + effect: 'Deal medium Phys damage and inflict Fear (medium odds) to 1 foe.', + element: Element.PHYS, + }, + 'Tetra Break': { + name: 'Tetra Break', + effect: 'Remove physical-repellent shields from all foes.', + element: Element.SUPPORT, + }, + 'Tetraja': { + name: 'Tetraja', + effect: 'Create shields on party to nullify one instant death attack of Bless or Curse types.', + element: Element.SUPPORT, + }, + 'Tetrakarn': { + name: 'Tetrakarn', + effect: 'Create a shield on 1 ally to repel 1 Phys attack.', + element: Element.SUPPORT, + }, + 'Thermal Conduct': { + name: 'Thermal Conduct', + effect: 'Increases chance of inflicting Burn after Baton Pass', + element: Element.TRAIT, + }, + 'Thermopylae': { + name: 'Thermopylae', + effect: 'Increase party\'s Attack, Defense and Agility for 3 turns. Only usable if the party is being ambushed.', + element: Element.SUPPORT, + }, + 'Thunder Reign': { + name: 'Thunder Reign', + effect: 'Deal severe Electric damage to 1 foe.', + element: Element.ELEC, + }, + 'Titanomachia': { + name: 'Titanomachia', + effect: 'Deal severe Fire damage to all foes and inflict Fear (high odds).', + element: Element.FIRE, + unique: true + }, + 'Touch n\' Go': { + name: 'Touch n\' Go', + effect: 'Apply Sukukaja when performing Baton Pass.', + element: Element.PASSIVE, + }, + 'Treasure Reboot': { + name: 'Treasure Reboot', + effect: 'Chance to revive search objects in the area after battle.', + element: Element.PASSIVE, + unique: true + }, + 'Treasure Skimmer': { + name: 'Treasure Skimmer', + effect: 'Find out if a foe is carrying a rare item ahead of time.', + element: Element.PASSIVE, + unique: true + }, + 'Trigger Happy': { + name: 'Trigger Happy', + effect: 'Increase critical rate of Gun attacks.', + element: Element.PASSIVE, + }, + 'Triple Down': { + name: 'Triple Down', + effect: 'Deal 3 times small Gun damage to all foes.', + element: Element.GUN, + }, + 'Tyrant\'s Mind': { + name: 'Tyrant\'s Mind', + effect: 'All damage +25%, Can exceed 100% limit', + element: Element.PASSIVE, + unique: true + }, + 'Tyrant\'s Will': { + name: 'Tyrant\'s Will', + effect: 'Next Phys attack +150% damage for 1 ally, Defense Master', + element: Element.SUPPORT, + unique: true + }, + 'Ultimate Support': { + name: 'Ultimate Support', + effect: 'Moral Support may now fully recover and buff all allies', + element: Element.PASSIVE, + unique: true + }, + 'Ultimate Vessel': { + name: 'Ultimate Vessel', + effect: 'Carries multiple traits to pass down during fusion', + element: Element.TRAIT, + unique: true + }, + 'Undying Fury': { + name: 'Undying Fury',effect: 'Phys damage +30%', element: Element.TRAIT, }, + 'Universal Law': { + name: 'Universal Law',effect: 'Technical damage +50%', element: Element.TRAIT, }, + 'Unparalleled Eyes': { + name: 'Unparalleled Eyes', + effect: 'Greatly raises evasion rate against Phys attacks for all allies', + element: Element.TRAIT, + unique: true + }, + 'Unshaken Will': { + name: 'Unshaken Will', + effect: 'Impart immunity against all mental ailments.', + element: Element.PASSIVE, + unique: true + }, + 'Vacuum Wave': { + name: 'Vacuum Wave', + effect: 'Deal severe Wind damage to all foes.', + element: Element.WIND, + }, + 'Vahana\'s Wings': { + name: 'Vahana\'s Wings',effect: 'Reduces costs of Wind skills by 75%', element: Element.TRAIT, }, + 'Vajra Blast': { + name: 'Vajra Blast', + effect: 'Deal medium Phys damage to all foes.', + element: Element.PHYS, + }, + 'Vault Guardian': { + name: 'Vault Guardian', + effect: 'Marakukaja, Begins battle with Tetrakarn + Makarakarn', + element: Element.SUPPORT, + unique: true + }, + 'Veil of Midnight': { + name: 'Veil of Midnight', + effect: 'Chance to prevent down when weakness struck for all allies', + element: Element.TRAIT, + unique: true + }, + 'Veil of Sunrise': { + name: 'Veil of Sunrise', + effect: 'High chance to prevent down when weakness struck for all allies', + element: Element.TRAIT, + unique: true + }, + 'Vicious Strike': { + name: 'Vicious Strike', + effect: 'Deal medium Phys damage to all foes.', + element: Element.PHYS, + }, + 'Victory Cry': { + name: 'Victory Cry', + effect: 'Recover full HP and SP after a successful battle.', + element: Element.PASSIVE, + }, + 'Vitality of the Tree': { + name: 'Vitality of the Tree', + effect: 'Allows use of ambush-only skills under normal conditions', + element: Element.TRAIT, + }, + 'Vorpal Blade': { + name: 'Vorpal Blade', + effect: 'Deal severe Phys damage to all foes.', + element: Element.PHYS, + }, + 'Wage War': { + name: 'Wage War', + effect: 'Inflict Rage (medium odds) to all foes.', + element: Element.AILMENT, + }, + 'Wealth of Lotus': { + name: 'Wealth of Lotus',effect: 'Extends buffs cast by 2 turns', element: Element.TRAIT, }, + 'Wild Thunder': { + name: 'Wild Thunder', + effect: 'Deal severe Electric damage to all foes.', + element: Element.ELEC, + }, + 'Will of the Sword': { + name: 'Will of the Sword', + effect: 'Charge-type effects +200% damage instead, Begins battle with Concentrate', + element: Element.TRAIT, + }, + 'Wind Amp': { + name: 'Wind Amp', + effect: 'Strengthen Wind attacks by 50%.', + element: Element.PASSIVE, + }, + 'Wind Bloodline': { + name: 'Wind Bloodline', + effect: 'Halves costs of Wind skills', + element: Element.TRAIT, + }, + 'Wind Boost': { + name: 'Wind Boost', + effect: 'Strengthen Wind attacks by 25%.', + element: Element.PASSIVE, + }, + 'Wind Break': { + name: 'Wind Break', + effect: 'Negate Wind resistances of all foes.', + element: Element.SUPPORT, + }, + 'Wind Wall': { + name: 'Wind Wall', + effect: 'Create a shield on 1 ally to reduce damage of Wind attacks for 3 turns.', + element: Element.SUPPORT, + }, + 'Wings of Wisdom': { + name: 'Wings of Wisdom', + effect: 'Amrita Shower, Speed Master', + element: Element.SUPPORT, + unique: true + }, + 'Zio': { + name: 'Zio', + effect: 'Deal weak Electric damage to 1 foe.', + element: Element.ELEC, + }, + 'Ziodyne': { + name: 'Ziodyne', + effect: 'Deal heavy Electric damage to 1 foe.', + element: Element.ELEC, + }, + 'Zionga': { + name: 'Zionga', + effect: 'Deal medium Electric damage to 1 foe.', + element: Element.ELEC, + } +} + +export const getAllSkillsOfElement = (element: Element): SkillMap => { + const elementSkills: SkillMap = {}; + Object.keys(Skills).forEach(skill => { + if (element === Skills[skill].element) + elementSkills[skill] = Skills[skill]; + }); + + return elementSkills; +}; \ No newline at end of file diff --git a/src/data/types.ts b/src/data/types.ts new file mode 100644 index 0000000..349fa2f --- /dev/null +++ b/src/data/types.ts @@ -0,0 +1,88 @@ +export enum Arcana { + FOOL = 'Fool', + MAGICIAN = 'Magician', + PRIESTESS = 'Priestess', + EMPRESS = 'Empress', + EMPEROR = 'Emperor', + HIEROPHANT = 'Hieropant', + LOVERS = 'Lovers', + CHARIOT = 'Chariot', + JUSTICE = 'Justice', + HERMIT = 'Hermit', + FORTUNE = 'Fortune', + STRENGTH = 'Strength', + HANGEDMAN = 'Hanged Man', + DEATH = 'Death', + TEMPERANCE = 'Temperance', + DEVIL = 'Devil', + TOWER = 'Tower', + STAR = 'Star', + MOON = 'Moon', + SUN = 'Sun', + JUDGEMENT = 'Judgement', + WORLD = 'World', + FAITH = 'Faith', + COUNCILLOR = 'Councillor', +}; + +export enum Element { + PHYS = 'Physical', + GUN = 'Gun', + FIRE = 'Fire', + ICE = 'Ice', + ELEC = 'Electricity', + WIND = 'Wind', + PSY = 'Psychokinesis', + NUKE = 'Nuclear', + BLESS = 'Bless', + CURSE = 'Curse', + HEALING = 'Healing', + AILMENT = 'Ailment', + SUPPORT = 'Support', + ALMIGHTY = 'Almighty', + PASSIVE = 'Passive', + TRAIT = 'Trait', +}; + +export const enum Affinity { + NEUTRAL = '-', + WEAK = 'wk', + RESIST = 'rs', + NULL = 'nu', + REPEL = 'rp', + ABSORB = 'ab', +}; + +interface InheritanceMap { + [index: string]: Element []; +} + +export const InheritanceType: InheritanceMap = { + [ Element.PHYS ]: [ Element.PHYS, Element.GUN, Element.HEALING, Element.AILMENT ], + [ Element.FIRE ]: [ Element.PHYS, Element.GUN, Element.FIRE, Element.ELEC, Element.WIND, Element.PSY, Element.NUKE, Element.BLESS, Element.CURSE, Element.HEALING, Element.AILMENT ], + [ Element.ICE ]: [ Element.PHYS, Element.GUN, Element.ICE, Element.ELEC, Element.WIND, Element.PSY, Element.NUKE, Element.BLESS, Element.CURSE, Element.HEALING, Element.AILMENT ], + [ Element.ELEC ]: [ Element.PHYS, Element.GUN, Element.FIRE, Element.ICE, Element.ELEC, Element.PSY, Element.NUKE, Element.BLESS, Element.CURSE, Element.HEALING, Element.AILMENT ], + [ Element.WIND ]: [ Element.PHYS, Element.GUN, Element.FIRE, Element.ICE, Element.WIND, Element.PSY, Element.NUKE, Element.BLESS, Element.CURSE, Element.HEALING, Element.AILMENT ], + [ Element.PSY ]: [ Element.PHYS, Element.GUN, Element.FIRE, Element.ICE, Element.ELEC, Element.WIND, Element.PSY, Element.BLESS, Element.CURSE, Element.HEALING, Element.AILMENT ], + [ Element.NUKE ]: [ Element.PHYS, Element.GUN, Element.FIRE, Element.ICE, Element.ELEC, Element.WIND, Element.NUKE, Element.BLESS, Element.CURSE, Element.HEALING, Element.AILMENT ], + [ Element.BLESS ]: [ Element.FIRE, Element.ICE, Element.ELEC, Element.WIND, Element.PSY, Element.NUKE, Element.BLESS, Element.HEALING ], + [ Element.CURSE ]: [ Element.FIRE, Element.ICE, Element.ELEC, Element.WIND, Element.PSY, Element.NUKE, Element.CURSE, Element.AILMENT ], + [ Element.HEALING ]: [ Element.FIRE, Element.ICE, Element.ELEC, Element.WIND, Element.PSY, Element.NUKE, Element.BLESS, Element.HEALING, Element.AILMENT ], + [ Element.AILMENT ]: [ Element.PHYS, Element.GUN, Element.FIRE, Element.ICE, Element.ELEC, Element.WIND, Element.PSY, Element.NUKE, Element.CURSE, Element.AILMENT ], + [ Element.ALMIGHTY ]: [ Element.PHYS, Element.GUN, Element.FIRE, Element.ICE, Element.ELEC, Element.WIND, Element.PSY, Element.NUKE, Element.BLESS, Element.CURSE, Element.HEALING, Element.AILMENT ], +}; + +interface InheritQty { + parents: number; + result: number; +} + +export const InheritanceQuantities: InheritQty [] = [ + { parents: 0, result: 1 }, + { parents: 6, result: 2 }, + { parents: 9, result: 3 }, + { parents: 13, result: 4 }, + { parents: 24, result: 5 }, + { parents: 32, result: 6 }, + { parents: 42, result: 8 } +]; \ No newline at end of file diff --git a/src/helpers.ts b/src/helpers.ts new file mode 100644 index 0000000..087c805 --- /dev/null +++ b/src/helpers.ts @@ -0,0 +1,13 @@ +const LOCK_SEPARATOR: string = '__'; +const LOCK_LOCAL_ITEM_KEY = 'UNAVAILABLEDLCPERSONAS'; + +const serializeLockedDlc = (lockedDlc: string[]) => lockedDlc.join(LOCK_SEPARATOR); +const deserializeLockedDlc = (result: string|null) => result ? result.split(LOCK_SEPARATOR) : ([] as string[]); +export const getLockedDlc = () => deserializeLockedDlc(localStorage.getItem(LOCK_LOCAL_ITEM_KEY)); +export const setLockedDlc = (lockedDlc: string[]) => + localStorage.setItem(LOCK_LOCAL_ITEM_KEY, serializeLockedDlc(lockedDlc)); + +export const serializeName = (s: string) => s.replaceAll(" ", "0").replaceAll("-", "1").replaceAll("'", "2"); +export const deserializeName = (s: string) => s.replaceAll("0", " ").replaceAll("1", "-").replaceAll("2", "'"); + +export const getKeyOfValue = (o: {}, v: any) => Object.keys(o)[Object.values(o).findIndex(_ => v === _)]; \ No newline at end of file diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..4fbe28f --- /dev/null +++ b/src/main.ts @@ -0,0 +1,7 @@ +import { createApp } from "vue"; +import router from './router'; +import AppEntry from './Entry.vue'; + +import './assets/main.css'; + +createApp(AppEntry).use(router).mount('#app'); \ No newline at end of file diff --git a/src/router/index.ts b/src/router/index.ts new file mode 100644 index 0000000..e375274 --- /dev/null +++ b/src/router/index.ts @@ -0,0 +1,32 @@ +import { createRouter, createWebHistory } from 'vue-router'; + +import MainPage from '@/views/MainPage.vue'; +import PersonaPage from '@/views/PersonaPage.vue'; +import FusionPage from '@/views/FusionPage.vue'; + +const routes = [ + { + path: '/', + name: 'Main', + component: MainPage + }, + { + path: '/persona!:name', + name: 'Persona', + component: PersonaPage + }, + { + path: '/fusion!:name!:skills?', + name: 'Fusion', + component: FusionPage + } +]; + +const router = createRouter({ + history: createWebHistory(), + routes, + scrollBehavior (to, from, savedPosition) { + return { top: 0, behavior: 'smooth' }; + } +}); +export default router; \ No newline at end of file diff --git a/src/shims-vue.d.ts b/src/shims-vue.d.ts new file mode 100644 index 0000000..37e44c8 --- /dev/null +++ b/src/shims-vue.d.ts @@ -0,0 +1,5 @@ +declare module '*.vue' { + import type { DefineComponent } from 'vue'; + const component: DefineComponent<{}, {}, any>; + export default component; +} \ No newline at end of file diff --git a/src/views/FusionPage.vue b/src/views/FusionPage.vue new file mode 100644 index 0000000..63c29b8 --- /dev/null +++ b/src/views/FusionPage.vue @@ -0,0 +1,281 @@ + + + + + \ No newline at end of file diff --git a/src/views/MainPage.vue b/src/views/MainPage.vue new file mode 100644 index 0000000..5034fdf --- /dev/null +++ b/src/views/MainPage.vue @@ -0,0 +1,154 @@ + + + + + + + \ No newline at end of file diff --git a/src/views/PersonaPage.vue b/src/views/PersonaPage.vue new file mode 100644 index 0000000..f7dead1 --- /dev/null +++ b/src/views/PersonaPage.vue @@ -0,0 +1,162 @@ + + + + + \ No newline at end of file diff --git a/tsconfig.config.json b/tsconfig.config.json new file mode 100644 index 0000000..424084a --- /dev/null +++ b/tsconfig.config.json @@ -0,0 +1,8 @@ +{ + "extends": "@vue/tsconfig/tsconfig.node.json", + "include": ["vite.config.*", "vitest.config.*", "cypress.config.*", "playwright.config.*"], + "compilerOptions": { + "composite": true, + "types": ["node"] + } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..a5c78e6 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,17 @@ +{ + "extends": "@vue/tsconfig/tsconfig.web.json", + "include": ["env.d.ts", "src/**/*", "src/**/*.vue"], + "compilerOptions": { + "lib": [ "es2017", "es2021", "dom" ], + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + } + }, + + "references": [ + { + "path": "./tsconfig.config.json" + } + ] +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..de5cb31 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,14 @@ +import { fileURLToPath, URL } from 'node:url' + +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [vue()], + resolve: { + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)) + } + } +})