From 27ad6063804c7521f863a6c5da69d735b74637b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Noord?= <13665637+DanielNoord@users.noreply.github.com> Date: Thu, 1 Jul 2021 22:36:05 +0200 Subject: [PATCH 1/7] Update packages --- package-lock.json | 2546 +++++++++++++++++++++++++++++++-------------- 1 file changed, 1749 insertions(+), 797 deletions(-) diff --git a/package-lock.json b/package-lock.json index cc8baee..1ce70ca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -34,6 +34,7 @@ }, "node_modules/@babel/code-frame": { "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "dependencies": { @@ -41,22 +42,31 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.12.11", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "dev": true + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", + "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, "node_modules/@babel/highlight": { - "version": "7.13.10", - "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.14.5", "chalk": "^2.0.0", "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/highlight/node_modules/ansi-styles": { "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "dependencies": { @@ -68,6 +78,7 @@ }, "node_modules/@babel/highlight/node_modules/chalk": { "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "dependencies": { @@ -81,6 +92,7 @@ }, "node_modules/@babel/highlight/node_modules/color-convert": { "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "dependencies": { @@ -89,11 +101,13 @@ }, "node_modules/@babel/highlight/node_modules/color-name": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, "node_modules/@babel/highlight/node_modules/escape-string-regexp": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true, "engines": { @@ -102,6 +116,7 @@ }, "node_modules/@babel/highlight/node_modules/has-flag": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true, "engines": { @@ -110,6 +125,7 @@ }, "node_modules/@babel/highlight/node_modules/supports-color": { "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "dependencies": { @@ -120,8 +136,9 @@ } }, "node_modules/@discoveryjs/json-ext": { - "version": "0.5.2", - "integrity": "sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz", + "integrity": "sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g==", "dev": true, "engines": { "node": ">=10.0.0" @@ -129,10 +146,12 @@ }, "node_modules/@eastdesire/jscolor": { "version": "2.4.5", + "resolved": "https://registry.npmjs.org/@eastdesire/jscolor/-/jscolor-2.4.5.tgz", "integrity": "sha512-LDCEGN7qKKO3tq6yYtx6cbz/tQlr9LqKNSFaG2GIIn03y67ot3doucpDGoQjCwXG2xUB4pDXRuH2lobjjxhtJA==" }, "node_modules/@eslint/eslintrc": { "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.2.tgz", "integrity": "sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg==", "dev": true, "dependencies": { @@ -151,11 +170,12 @@ } }, "node_modules/@nodelib/fs.scandir": { - "version": "2.1.4", - "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", + "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.4", + "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" }, "engines": { @@ -163,19 +183,21 @@ } }, "node_modules/@nodelib/fs.stat": { - "version": "2.0.4", - "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", + "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.6", - "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz", + "integrity": "sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA==", "dev": true, "dependencies": { - "@nodelib/fs.scandir": "2.1.4", + "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" }, "engines": { @@ -183,33 +205,39 @@ } }, "node_modules/@tsconfig/node10": { - "version": "1.0.7", - "integrity": "sha512-aBvUmXLQbayM4w3A8TrjwrXs4DZ8iduJnuJLLRGdkWlyakCf1q6uHZJBzXoRA/huAEknG5tcUyQxN3A+In5euQ==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", "dev": true }, "node_modules/@tsconfig/node12": { - "version": "1.0.7", - "integrity": "sha512-dgasobK/Y0wVMswcipr3k0HpevxFJLijN03A8mYfEPvWvOs14v0ZlYTR4kIgMx8g4+fTyTFv8/jLCIfRqLDJ4A==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", "dev": true }, "node_modules/@tsconfig/node14": { - "version": "1.0.0", - "integrity": "sha512-RKkL8eTdPv6t5EHgFKIVQgsDapugbuOptNd9OOunN/HAkzmmTnZELx1kNCK0rSdUYGmiFMM3rRQMAWiyp023LQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", "dev": true }, "node_modules/@tsconfig/node16": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.1.tgz", "integrity": "sha512-FTgBI767POY/lKNDNbIzgAX6miIDBs6NTCbdlDb8TrWovHsSvaVIZDlTqym29C6UqhzwcJx4CYr+AlrMywA0cA==", "dev": true }, "node_modules/@types/chai": { "version": "4.2.19", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.19.tgz", "integrity": "sha512-jRJgpRBuY+7izT7/WNXP/LsMO9YonsstuL+xuvycDyESpoDoIAsMd7suwpB4h9oEWB+ZlPTqJJ8EHomzNhwTPQ==", "dev": true }, "node_modules/@types/eslint": { - "version": "7.2.9", - "integrity": "sha512-SdAAXZNvWfhtf3X3y1cbbCZhP3xyPh7mfTvzV6CgfWc/ZhiHpyr9bVroe2/RCHIf7gczaNcprhaBLsx0CCJHQA==", + "version": "7.2.13", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.13.tgz", + "integrity": "sha512-LKmQCWAlnVHvvXq4oasNUMTJJb2GwSyTY8+1C7OH5ILR8mPLaljv1jxL1bXW3xB3jFbQxTKxJAvI8PyjB09aBg==", "dev": true, "dependencies": { "@types/estree": "*", @@ -218,6 +246,7 @@ }, "node_modules/@types/eslint-scope": { "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.0.tgz", "integrity": "sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw==", "dev": true, "dependencies": { @@ -226,40 +255,45 @@ } }, "node_modules/@types/estree": { - "version": "0.0.47", - "integrity": "sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg==", + "version": "0.0.48", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.48.tgz", + "integrity": "sha512-LfZwXoGUDo0C3me81HXgkBg5CTQYb6xzEl+fNmbO4JdRiSKQ8A0GD1OBBvKAIsbCUgoyAty7m99GqqMQe784ew==", "dev": true }, "node_modules/@types/json-schema": { "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", "dev": true }, "node_modules/@types/json5": { "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", "dev": true }, "node_modules/@types/mocha": { "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.2.tgz", "integrity": "sha512-Lwh0lzzqT5Pqh6z61P3c3P5nm6fzQK/MMHl9UKeneAeInVflBSz1O2EkX6gM6xfJd7FBXBY5purtLx7fUiZ7Hw==", "dev": true }, "node_modules/@types/node": { - "version": "14.14.37", - "integrity": "sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw==", + "version": "15.14.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.0.tgz", + "integrity": "sha512-um/+/ip3QZmwLfIkWZSNtQIJNVAqrJ92OkLMeuZrjZMTAJniI7fh8N8OICyDhAJ2mzgk/fmYFo72jRr5HyZ1EQ==", "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "4.27.0", - "integrity": "sha512-DsLqxeUfLVNp3AO7PC3JyaddmEHTtI9qTSAs+RB6ja27QvIM0TA8Cizn1qcS6vOu+WDLFJzkwkgweiyFhssDdQ==", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.1.tgz", + "integrity": "sha512-9yfcNpDaNGQ6/LQOX/KhUFTR1sCKH+PBr234k6hI9XJ0VP5UqGxap0AnNwBnWFk1MNyWBylJH9ZkzBXC+5akZQ==", "dev": true, "dependencies": { - "@typescript-eslint/experimental-utils": "4.27.0", - "@typescript-eslint/scope-manager": "4.27.0", + "@typescript-eslint/experimental-utils": "4.28.1", + "@typescript-eslint/scope-manager": "4.28.1", "debug": "^4.3.1", "functional-red-black-tree": "^1.0.1", - "lodash": "^4.17.21", "regexpp": "^3.1.0", "semver": "^7.3.5", "tsutils": "^3.21.0" @@ -282,14 +316,15 @@ } }, "node_modules/@typescript-eslint/experimental-utils": { - "version": "4.27.0", - "integrity": "sha512-n5NlbnmzT2MXlyT+Y0Jf0gsmAQzCnQSWXKy4RGSXVStjDvS5we9IWbh7qRVKdGcxT0WYlgcCYUK/HRg7xFhvjQ==", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.1.tgz", + "integrity": "sha512-n8/ggadrZ+uyrfrSEchx3jgODdmcx7MzVM2sI3cTpI/YlfSm0+9HEUaWw3aQn2urL2KYlWYMDgn45iLfjDYB+Q==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.27.0", - "@typescript-eslint/types": "4.27.0", - "@typescript-eslint/typescript-estree": "4.27.0", + "@typescript-eslint/scope-manager": "4.28.1", + "@typescript-eslint/types": "4.28.1", + "@typescript-eslint/typescript-estree": "4.28.1", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, @@ -304,31 +339,15 @@ "eslint": "*" } }, - "node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils": { - "version": "3.0.0", - "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/@typescript-eslint/parser": { - "version": "4.27.0", - "integrity": "sha512-XpbxL+M+gClmJcJ5kHnUpBGmlGdgNvy6cehgR6ufyxkEJMGP25tZKCaKyC0W/JVpuhU3VU1RBn7SYUPKSMqQvQ==", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.28.1.tgz", + "integrity": "sha512-UjrMsgnhQIIK82hXGaD+MCN8IfORS1CbMdu7VlZbYa8LCZtbZjJA26De4IPQB7XYZbL8gJ99KWNj0l6WD0guJg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "4.27.0", - "@typescript-eslint/types": "4.27.0", - "@typescript-eslint/typescript-estree": "4.27.0", + "@typescript-eslint/scope-manager": "4.28.1", + "@typescript-eslint/types": "4.28.1", + "@typescript-eslint/typescript-estree": "4.28.1", "debug": "^4.3.1" }, "engines": { @@ -348,12 +367,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "4.27.0", - "integrity": "sha512-DY73jK6SEH6UDdzc6maF19AHQJBFVRf6fgAXHPXCGEmpqD4vYgPEzqpFz1lf/daSbOcMpPPj9tyXXDPW2XReAw==", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.28.1.tgz", + "integrity": "sha512-o95bvGKfss6705x7jFGDyS7trAORTy57lwJ+VsYwil/lOUxKQ9tA7Suuq+ciMhJc/1qPwB3XE2DKh9wubW8YYA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "4.27.0", - "@typescript-eslint/visitor-keys": "4.27.0" + "@typescript-eslint/types": "4.28.1", + "@typescript-eslint/visitor-keys": "4.28.1" }, "engines": { "node": "^8.10.0 || ^10.13.0 || >=11.10.1" @@ -364,8 +384,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "4.27.0", - "integrity": "sha512-I4ps3SCPFCKclRcvnsVA/7sWzh7naaM/b4pBO2hVxnM3wrU51Lveybdw5WoIktU/V4KfXrTt94V9b065b/0+wA==", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.1.tgz", + "integrity": "sha512-4z+knEihcyX7blAGi7O3Fm3O6YRCP+r56NJFMNGsmtdw+NCdpG5SgNz427LS9nQkRVTswZLhz484hakQwB8RRg==", "dev": true, "engines": { "node": "^8.10.0 || ^10.13.0 || >=11.10.1" @@ -376,12 +397,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "4.27.0", - "integrity": "sha512-KH03GUsUj41sRLLEy2JHstnezgpS5VNhrJouRdmh6yNdQ+yl8w5LrSwBkExM+jWwCJa7Ct2c8yl8NdtNRyQO6g==", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.1.tgz", + "integrity": "sha512-GhKxmC4sHXxHGJv8e8egAZeTZ6HI4mLU6S7FUzvFOtsk7ZIDN1ksA9r9DyOgNqowA9yAtZXV0Uiap61bIO81FQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "4.27.0", - "@typescript-eslint/visitor-keys": "4.27.0", + "@typescript-eslint/types": "4.28.1", + "@typescript-eslint/visitor-keys": "4.28.1", "debug": "^4.3.1", "globby": "^11.0.3", "is-glob": "^4.0.1", @@ -402,11 +424,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "4.27.0", - "integrity": "sha512-es0GRYNZp0ieckZ938cEANfEhsfHrzuLrePukLKtY3/KPXcq1Xd555Mno9/GOgXhKzn0QfkDLVgqWO3dGY80bg==", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.1.tgz", + "integrity": "sha512-K4HMrdFqr9PFquPu178SaSb92CaWe2yErXyPumc8cYWxFmhgJsNY9eSePmO05j0JhBvf2Cdhptd6E6Yv9HVHcg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "4.27.0", + "@typescript-eslint/types": "4.28.1", "eslint-visitor-keys": "^2.0.0" }, "engines": { @@ -419,11 +442,13 @@ }, "node_modules/@ungap/promise-all-settled": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, "node_modules/@webassemblyjs/ast": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.0.tgz", "integrity": "sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg==", "dev": true, "dependencies": { @@ -433,21 +458,25 @@ }, "node_modules/@webassemblyjs/floating-point-hex-parser": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz", "integrity": "sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA==", "dev": true }, "node_modules/@webassemblyjs/helper-api-error": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz", "integrity": "sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w==", "dev": true }, "node_modules/@webassemblyjs/helper-buffer": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz", "integrity": "sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA==", "dev": true }, "node_modules/@webassemblyjs/helper-numbers": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz", "integrity": "sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ==", "dev": true, "dependencies": { @@ -458,11 +487,13 @@ }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz", "integrity": "sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA==", "dev": true }, "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz", "integrity": "sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew==", "dev": true, "dependencies": { @@ -474,6 +505,7 @@ }, "node_modules/@webassemblyjs/ieee754": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz", "integrity": "sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA==", "dev": true, "dependencies": { @@ -482,6 +514,7 @@ }, "node_modules/@webassemblyjs/leb128": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.0.tgz", "integrity": "sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g==", "dev": true, "dependencies": { @@ -490,11 +523,13 @@ }, "node_modules/@webassemblyjs/utf8": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.0.tgz", "integrity": "sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw==", "dev": true }, "node_modules/@webassemblyjs/wasm-edit": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz", "integrity": "sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ==", "dev": true, "dependencies": { @@ -510,6 +545,7 @@ }, "node_modules/@webassemblyjs/wasm-gen": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz", "integrity": "sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ==", "dev": true, "dependencies": { @@ -522,6 +558,7 @@ }, "node_modules/@webassemblyjs/wasm-opt": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz", "integrity": "sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg==", "dev": true, "dependencies": { @@ -533,6 +570,7 @@ }, "node_modules/@webassemblyjs/wasm-parser": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz", "integrity": "sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw==", "dev": true, "dependencies": { @@ -546,6 +584,7 @@ }, "node_modules/@webassemblyjs/wast-printer": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz", "integrity": "sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ==", "dev": true, "dependencies": { @@ -555,6 +594,7 @@ }, "node_modules/@webpack-cli/configtest": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.4.tgz", "integrity": "sha512-cs3XLy+UcxiP6bj0A6u7MLLuwdXJ1c3Dtc0RkKg+wiI1g/Ti1om8+/2hc2A2B60NbBNAbMgyBMHvyymWm/j4wQ==", "dev": true, "peerDependencies": { @@ -564,6 +604,7 @@ }, "node_modules/@webpack-cli/info": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.3.0.tgz", "integrity": "sha512-ASiVB3t9LOKHs5DyVUcxpraBXDOKubYu/ihHhU+t1UPpxsivg6Od2E2qU4gJCekfEddzRBzHhzA/Acyw/mlK/w==", "dev": true, "dependencies": { @@ -575,6 +616,7 @@ }, "node_modules/@webpack-cli/serve": { "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.5.1.tgz", "integrity": "sha512-4vSVUiOPJLmr45S8rMGy7WDvpWxfFxfP/Qx/cxZFCfvoypTYpPPL1X8VIZMe0WTA+Jr7blUxwUSEZNkjoMTgSw==", "dev": true, "peerDependencies": { @@ -588,16 +630,19 @@ }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", "dev": true }, "node_modules/@xtuc/long": { "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, "node_modules/acorn": { "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true, "bin": { @@ -609,6 +654,7 @@ }, "node_modules/acorn-jsx": { "version": "5.3.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", "dev": true, "peerDependencies": { @@ -617,6 +663,7 @@ }, "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": { @@ -632,6 +679,7 @@ }, "node_modules/ajv-keywords": { "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, "peerDependencies": { @@ -640,6 +688,7 @@ }, "node_modules/ansi-colors": { "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true, "engines": { @@ -648,6 +697,7 @@ }, "node_modules/ansi-regex": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true, "engines": { @@ -656,6 +706,7 @@ }, "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": { @@ -670,6 +721,7 @@ }, "node_modules/anymatch": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dev": true, "dependencies": { @@ -682,11 +734,13 @@ }, "node_modules/arg": { "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true }, "node_modules/argparse": { "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "dependencies": { @@ -695,6 +749,7 @@ }, "node_modules/array-includes": { "version": "3.1.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", "dev": true, "dependencies": { @@ -713,6 +768,7 @@ }, "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": { @@ -721,6 +777,7 @@ }, "node_modules/array.prototype.flat": { "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", "dev": true, "dependencies": { @@ -737,6 +794,7 @@ }, "node_modules/assertion-error": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true, "engines": { @@ -745,6 +803,7 @@ }, "node_modules/astral-regex": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, "engines": { @@ -753,11 +812,13 @@ }, "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/binary-extensions": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, "engines": { @@ -766,6 +827,7 @@ }, "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": { @@ -775,6 +837,7 @@ }, "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": { @@ -786,17 +849,19 @@ }, "node_modules/browser-stdout": { "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, "node_modules/browserslist": { - "version": "4.16.4", - "integrity": "sha512-d7rCxYV8I9kj41RH8UKYnvDYCRENUlHRgyXy/Rhr/1BaeLGfiCptEdFE8MIrvGfWbBFNjVYx76SQWvNX1j+/cQ==", + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", "dev": true, "dependencies": { - "caniuse-lite": "^1.0.30001208", + "caniuse-lite": "^1.0.30001219", "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.712", + "electron-to-chromium": "^1.3.723", "escalade": "^3.1.1", "node-releases": "^1.1.71" }, @@ -813,11 +878,13 @@ }, "node_modules/buffer-from": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true }, "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": { @@ -830,6 +897,7 @@ }, "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": { @@ -838,6 +906,7 @@ }, "node_modules/camelcase": { "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", "dev": true, "engines": { @@ -848,12 +917,18 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001208", - "integrity": "sha512-OE5UE4+nBOro8Dyvv0lfx+SRtfVIOM9uhKqFmJeUbGriqhhStgp1A0OyBpgy3OUF8AhYCT+PVwPC1gMl2ZcQMA==", - "dev": true + "version": "1.0.30001241", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001241.tgz", + "integrity": "sha512-1uoSZ1Pq1VpH0WerIMqwptXHNNGfdl7d1cJUFs80CwQ/lVzdhTvsFZCeNFslze7AjsQnb4C85tzclPa1VShbeQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } }, "node_modules/chai": { "version": "4.3.4", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", "dev": true, "dependencies": { @@ -869,8 +944,9 @@ } }, "node_modules/chalk": { - "version": "4.1.0", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -885,6 +961,7 @@ }, "node_modules/check-error": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", "dev": true, "engines": { @@ -893,6 +970,7 @@ }, "node_modules/chokidar": { "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", "dev": true, "dependencies": { @@ -913,6 +991,7 @@ }, "node_modules/chrome-trace-event": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", "dev": true, "engines": { @@ -921,6 +1000,7 @@ }, "node_modules/cliui": { "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "dependencies": { @@ -931,6 +1011,7 @@ }, "node_modules/clone-deep": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, "dependencies": { @@ -944,6 +1025,7 @@ }, "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": { @@ -955,36 +1037,43 @@ }, "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/colorette": { "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", "dev": true }, "node_modules/commander": { "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, "node_modules/concat-map": { "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "node_modules/confusing-browser-globals": { "version": "1.0.10", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz", "integrity": "sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==", "dev": true }, "node_modules/create-require": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "dev": true }, "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": { @@ -998,6 +1087,7 @@ }, "node_modules/debug": { "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "dependencies": { @@ -1014,6 +1104,7 @@ }, "node_modules/decamelize": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true, "engines": { @@ -1025,6 +1116,7 @@ }, "node_modules/deep-eql": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "dependencies": { @@ -1036,11 +1128,13 @@ }, "node_modules/deep-is": { "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, "node_modules/define-properties": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, "dependencies": { @@ -1052,6 +1146,7 @@ }, "node_modules/diff": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true, "engines": { @@ -1060,6 +1155,7 @@ }, "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": { @@ -1071,6 +1167,7 @@ }, "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": { @@ -1081,18 +1178,21 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.3.713", - "integrity": "sha512-HWgkyX4xTHmxcWWlvv7a87RHSINEcpKYZmDMxkUlHcY+CJcfx7xEfBHuXVsO1rzyYs1WQJ7EgDp2CoErakBIow==", + "version": "1.3.763", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.763.tgz", + "integrity": "sha512-UyvEPae0wvzsyNJhVfGeFSOlUkHEze8xSIiExO5tZQ8QTr7obFiJWGk3U4e7afFOJMQJDszqU/3Pk5jtKiaSEg==", "dev": true }, "node_modules/emoji-regex": { "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "node_modules/enhanced-resolve": { - "version": "5.8.0", - "integrity": "sha512-Sl3KRpJA8OpprrtaIswVki3cWPiPKxXuFxJXBp+zNb6s6VwNWwFRUdtmzd2ReUut8n+sCPx7QCtQ7w5wfJhSgQ==", + "version": "5.8.2", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz", + "integrity": "sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -1104,6 +1204,7 @@ }, "node_modules/enquirer": { "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "dev": true, "dependencies": { @@ -1115,6 +1216,7 @@ }, "node_modules/envinfo": { "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", "dev": true, "bin": { @@ -1126,6 +1228,7 @@ }, "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": { @@ -1133,8 +1236,9 @@ } }, "node_modules/es-abstract": { - "version": "1.18.0", - "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz", + "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", @@ -1145,14 +1249,14 @@ "has-symbols": "^1.0.2", "is-callable": "^1.2.3", "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.2", - "is-string": "^1.0.5", - "object-inspect": "^1.9.0", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.10.3", "object-keys": "^1.1.1", "object.assign": "^4.1.2", "string.prototype.trimend": "^1.0.4", "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.0" + "unbox-primitive": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -1162,12 +1266,14 @@ } }, "node_modules/es-module-lexer": { - "version": "0.4.1", - "integrity": "sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.6.0.tgz", + "integrity": "sha512-f8kcHX1ArhllUtb/wVSyvygoKCznIjnxhLxy7TCvIiMdT7fL4ZDTIKaadMe6eLvOXg6Wk02UeoFgUoZ2EKZZUA==", "dev": true }, "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": { @@ -1184,6 +1290,7 @@ }, "node_modules/escalade": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true, "engines": { @@ -1192,6 +1299,7 @@ }, "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": { @@ -1203,6 +1311,7 @@ }, "node_modules/eslint": { "version": "7.29.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.29.0.tgz", "integrity": "sha512-82G/JToB9qIy/ArBzIWG9xvvwL3R86AlCjtGw+A29OMZDqhTybz/MByORSukGxeI+YPCR4coYyITKk8BFH9nDA==", "dev": true, "dependencies": { @@ -1258,6 +1367,7 @@ }, "node_modules/eslint-config-airbnb-base": { "version": "14.2.1", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz", "integrity": "sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA==", "dev": true, "dependencies": { @@ -1275,6 +1385,7 @@ }, "node_modules/eslint-config-prettier": { "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==", "dev": true, "bin": { @@ -1286,6 +1397,7 @@ }, "node_modules/eslint-import-resolver-node": { "version": "0.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", "dev": true, "dependencies": { @@ -1295,6 +1407,7 @@ }, "node_modules/eslint-import-resolver-node/node_modules/debug": { "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { @@ -1303,11 +1416,13 @@ }, "node_modules/eslint-import-resolver-node/node_modules/ms": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "node_modules/eslint-module-utils": { "version": "2.6.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz", "integrity": "sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A==", "dev": true, "dependencies": { @@ -1320,6 +1435,7 @@ }, "node_modules/eslint-module-utils/node_modules/debug": { "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { @@ -1328,6 +1444,7 @@ }, "node_modules/eslint-plugin-import": { "version": "2.23.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz", "integrity": "sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ==", "dev": true, "dependencies": { @@ -1356,6 +1473,7 @@ }, "node_modules/eslint-plugin-import/node_modules/debug": { "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { @@ -1364,6 +1482,7 @@ }, "node_modules/eslint-plugin-import/node_modules/doctrine": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "dependencies": { @@ -1373,74 +1492,15 @@ "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-import/node_modules/find-up": { - "version": "2.1.0", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/locate-path": { - "version": "2.0.0", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/eslint-plugin-import/node_modules/ms": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "node_modules/eslint-plugin-import/node_modules/p-limit": { - "version": "1.3.0", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/p-locate": { - "version": "2.0.0", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/p-try": { - "version": "1.0.0", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/path-exists": { - "version": "3.0.0", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, "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": { @@ -1452,7 +1512,35 @@ } }, "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-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/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, "dependencies": { @@ -1465,24 +1553,18 @@ "url": "https://github.com/sponsors/mysticatea" } }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, "engines": { "node": ">=4" } }, - "node_modules/eslint-visitor-keys": { - "version": "2.0.0", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/esm": { "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", "dev": true, "engines": { @@ -1491,6 +1573,7 @@ }, "node_modules/espree": { "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "dev": true, "dependencies": { @@ -1504,6 +1587,7 @@ }, "node_modules/espree/node_modules/eslint-visitor-keys": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, "engines": { @@ -1512,6 +1596,7 @@ }, "node_modules/esprima": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, "bin": { @@ -1524,6 +1609,7 @@ }, "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": { @@ -1535,6 +1621,7 @@ }, "node_modules/esquery/node_modules/estraverse": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", "dev": true, "engines": { @@ -1543,6 +1630,7 @@ }, "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": { @@ -1554,6 +1642,7 @@ }, "node_modules/esrecurse/node_modules/estraverse": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", "dev": true, "engines": { @@ -1562,6 +1651,7 @@ }, "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": { @@ -1570,6 +1660,7 @@ }, "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": { @@ -1578,6 +1669,7 @@ }, "node_modules/events": { "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true, "engines": { @@ -1585,8 +1677,9 @@ } }, "node_modules/execa": { - "version": "5.0.0", - "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "dependencies": { "cross-spawn": "^7.0.3", @@ -1608,20 +1701,21 @@ }, "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.5", - "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.6.tgz", + "integrity": "sha512-GnLuqj/pvQ7pX8/L4J84nijv6sAnlwvSDpMkJi9i7nPmPxGtRPkBSStfvDW5l6nMdX9VWe+pkKWFTgD+vF2QSQ==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", + "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" + "micromatch": "^4.0.4" }, "engines": { "node": ">=8" @@ -1629,21 +1723,25 @@ }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, "node_modules/fastest-levenshtein": { "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", "dev": true }, "node_modules/fastq": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz", "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", "dev": true, "dependencies": { @@ -1652,6 +1750,7 @@ }, "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": { @@ -1663,6 +1762,7 @@ }, "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": { @@ -1673,22 +1773,20 @@ } }, "node_modules/find-up": { - "version": "5.0.0", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "locate-path": "^2.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, "node_modules/flat": { "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true, "bin": { @@ -1697,6 +1795,7 @@ }, "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": { @@ -1709,16 +1808,19 @@ }, "node_modules/flatted": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, "node_modules/fs.realpath": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, "node_modules/fsevents": { "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, "hasInstallScript": true, @@ -1732,16 +1834,19 @@ }, "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/functional-red-black-tree": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, "node_modules/get-caller-file": { "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, "engines": { @@ -1750,6 +1855,7 @@ }, "node_modules/get-func-name": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", "dev": true, "engines": { @@ -1758,6 +1864,7 @@ }, "node_modules/get-intrinsic": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "dev": true, "dependencies": { @@ -1770,8 +1877,9 @@ } }, "node_modules/get-stream": { - "version": "6.0.0", - "integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, "engines": { "node": ">=10" @@ -1782,6 +1890,7 @@ }, "node_modules/glob": { "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "dependencies": { @@ -1801,6 +1910,7 @@ }, "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": { @@ -1812,11 +1922,13 @@ }, "node_modules/glob-to-regexp": { "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, "node_modules/globals": { "version": "13.9.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz", "integrity": "sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==", "dev": true, "dependencies": { @@ -1830,8 +1942,9 @@ } }, "node_modules/globby": { - "version": "11.0.3", - "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==", + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", "dev": true, "dependencies": { "array-union": "^2.1.0", @@ -1850,6 +1963,7 @@ }, "node_modules/globby/node_modules/ignore": { "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", "dev": true, "engines": { @@ -1858,11 +1972,13 @@ }, "node_modules/graceful-fs": { "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", "dev": true }, "node_modules/growl": { "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true, "engines": { @@ -1871,6 +1987,7 @@ }, "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": { @@ -1882,6 +1999,7 @@ }, "node_modules/has-bigints": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", "dev": true, "funding": { @@ -1890,6 +2008,7 @@ }, "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": { @@ -1898,6 +2017,7 @@ }, "node_modules/has-symbols": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", "dev": true, "engines": { @@ -1909,6 +2029,7 @@ }, "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": { @@ -1917,11 +2038,13 @@ }, "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/human-signals": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, "engines": { @@ -1930,6 +2053,7 @@ }, "node_modules/ignore": { "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true, "engines": { @@ -1938,6 +2062,7 @@ }, "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": { @@ -1953,6 +2078,7 @@ }, "node_modules/import-local": { "version": "3.0.2", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", "dev": true, "dependencies": { @@ -1968,6 +2094,7 @@ }, "node_modules/import-local/node_modules/find-up": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "dependencies": { @@ -1980,6 +2107,7 @@ }, "node_modules/import-local/node_modules/locate-path": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "dependencies": { @@ -1991,6 +2119,7 @@ }, "node_modules/import-local/node_modules/p-limit": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "dependencies": { @@ -2005,6 +2134,7 @@ }, "node_modules/import-local/node_modules/p-locate": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "dependencies": { @@ -2014,8 +2144,27 @@ "node": ">=8" } }, + "node_modules/import-local/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/import-local/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/import-local/node_modules/pkg-dir": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "dependencies": { @@ -2027,6 +2176,7 @@ }, "node_modules/imurmurhash": { "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true, "engines": { @@ -2035,6 +2185,7 @@ }, "node_modules/inflight": { "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "dependencies": { @@ -2044,11 +2195,13 @@ }, "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/interpret": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", "dev": true, "engines": { @@ -2057,12 +2210,14 @@ }, "node_modules/is-arrayish": { "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, "node_modules/is-bigint": { - "version": "1.0.1", - "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", + "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2070,6 +2225,7 @@ }, "node_modules/is-binary-path": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "dependencies": { @@ -2080,11 +2236,12 @@ } }, "node_modules/is-boolean-object": { - "version": "1.1.0", - "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", + "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", "dev": true, "dependencies": { - "call-bind": "^1.0.0" + "call-bind": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -2095,6 +2252,7 @@ }, "node_modules/is-callable": { "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", "dev": true, "engines": { @@ -2106,6 +2264,7 @@ }, "node_modules/is-core-module": { "version": "2.4.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", "dev": true, "dependencies": { @@ -2116,8 +2275,9 @@ } }, "node_modules/is-date-object": { - "version": "1.0.2", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", + "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==", "dev": true, "engines": { "node": ">= 0.4" @@ -2128,6 +2288,7 @@ }, "node_modules/is-extglob": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true, "engines": { @@ -2136,6 +2297,7 @@ }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, "engines": { @@ -2144,6 +2306,7 @@ }, "node_modules/is-glob": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, "dependencies": { @@ -2155,6 +2318,7 @@ }, "node_modules/is-negative-zero": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", "dev": true, "engines": { @@ -2166,6 +2330,7 @@ }, "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": { @@ -2173,8 +2338,9 @@ } }, "node_modules/is-number-object": { - "version": "1.0.4", - "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", + "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", "dev": true, "engines": { "node": ">= 0.4" @@ -2185,6 +2351,7 @@ }, "node_modules/is-plain-obj": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true, "engines": { @@ -2193,6 +2360,7 @@ }, "node_modules/is-plain-object": { "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "dependencies": { @@ -2203,12 +2371,13 @@ } }, "node_modules/is-regex": { - "version": "1.1.2", - "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", + "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -2219,6 +2388,7 @@ }, "node_modules/is-stream": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", "dev": true, "engines": { @@ -2226,8 +2396,9 @@ } }, "node_modules/is-string": { - "version": "1.0.5", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", + "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", "dev": true, "engines": { "node": ">= 0.4" @@ -2237,11 +2408,12 @@ } }, "node_modules/is-symbol": { - "version": "1.0.3", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "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.1" + "has-symbols": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -2252,11 +2424,13 @@ }, "node_modules/isexe": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, "node_modules/isobject": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, "engines": { @@ -2264,25 +2438,43 @@ } }, "node_modules/jest-worker": { - "version": "26.6.2", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.6.tgz", + "integrity": "sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA==", "dev": true, "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" + "supports-color": "^8.0.0" }, "engines": { "node": ">= 10.13.0" } }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/js-tokens": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, "node_modules/js-yaml": { "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "dependencies": { @@ -2295,21 +2487,37 @@ }, "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": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, + "node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, "node_modules/kind-of": { "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "engines": { @@ -2318,6 +2526,7 @@ }, "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": { @@ -2330,6 +2539,7 @@ }, "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": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "dependencies": { @@ -2344,6 +2554,7 @@ }, "node_modules/loader-runner": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", "dev": true, "engines": { @@ -2351,46 +2562,39 @@ } }, "node_modules/locate-path": { - "version": "6.0.0", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "dependencies": { - "p-locate": "^5.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/lodash": { - "version": "4.17.21", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, "node_modules/lodash.clonedeep": { "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", "dev": true }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", - "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/lodash.truncate": { "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", "dev": true }, "node_modules/log-symbols": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", "dev": true, "dependencies": { @@ -2402,6 +2606,7 @@ }, "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": { @@ -2413,11 +2618,13 @@ }, "node_modules/make-error": { "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, "node_modules/memorystream": { "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", "dev": true, "engines": { @@ -2426,11 +2633,13 @@ }, "node_modules/merge-stream": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, "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": { @@ -2439,6 +2648,7 @@ }, "node_modules/micromatch": { "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "dependencies": { @@ -2450,19 +2660,21 @@ } }, "node_modules/mime-db": { - "version": "1.47.0", - "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==", + "version": "1.48.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", + "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { - "version": "2.1.30", - "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==", + "version": "2.1.31", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", + "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", "dev": true, "dependencies": { - "mime-db": "1.47.0" + "mime-db": "1.48.0" }, "engines": { "node": ">= 0.6" @@ -2470,6 +2682,7 @@ }, "node_modules/mimic-fn": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, "engines": { @@ -2478,6 +2691,7 @@ }, "node_modules/minimatch": { "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "dependencies": { @@ -2489,11 +2703,13 @@ }, "node_modules/minimist": { "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, "node_modules/mocha": { "version": "8.4.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.4.0.tgz", "integrity": "sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ==", "dev": true, "dependencies": { @@ -2537,11 +2753,29 @@ }, "node_modules/mocha/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/mocha/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/mocha/node_modules/js-yaml": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz", "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==", "dev": true, "dependencies": { @@ -2551,13 +2785,69 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/mocha/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/mocha/node_modules/ms": { "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, + "node_modules/mocha/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/mocha/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/mocha/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/mocha/node_modules/supports-color": { "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "dependencies": { @@ -2572,11 +2862,13 @@ }, "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/nanoid": { "version": "3.1.20", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz", "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==", "dev": true, "bin": { @@ -2588,26 +2880,31 @@ }, "node_modules/natural-compare": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, "node_modules/neo-async": { "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "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/node-releases": { - "version": "1.1.71", - "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==", + "version": "1.1.73", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", + "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==", "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": { @@ -2619,6 +2916,7 @@ }, "node_modules/normalize-package-data/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": { @@ -2627,6 +2925,7 @@ }, "node_modules/normalize-path": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, "engines": { @@ -2635,6 +2934,7 @@ }, "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": { @@ -2659,6 +2959,7 @@ }, "node_modules/npm-run-all/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": { @@ -2670,6 +2971,7 @@ }, "node_modules/npm-run-all/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": { @@ -2683,6 +2985,7 @@ }, "node_modules/npm-run-all/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": { @@ -2691,11 +2994,13 @@ }, "node_modules/npm-run-all/node_modules/color-name": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, "node_modules/npm-run-all/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": { @@ -2711,6 +3016,7 @@ }, "node_modules/npm-run-all/node_modules/escape-string-regexp": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true, "engines": { @@ -2719,6 +3025,7 @@ }, "node_modules/npm-run-all/node_modules/has-flag": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true, "engines": { @@ -2727,6 +3034,7 @@ }, "node_modules/npm-run-all/node_modules/path-key": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true, "engines": { @@ -2735,6 +3043,7 @@ }, "node_modules/npm-run-all/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": { @@ -2743,6 +3052,7 @@ }, "node_modules/npm-run-all/node_modules/shebang-command": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "dependencies": { @@ -2754,6 +3064,7 @@ }, "node_modules/npm-run-all/node_modules/shebang-regex": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true, "engines": { @@ -2762,6 +3073,7 @@ }, "node_modules/npm-run-all/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": { @@ -2773,6 +3085,7 @@ }, "node_modules/npm-run-all/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": { @@ -2784,6 +3097,7 @@ }, "node_modules/npm-run-path": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "dependencies": { @@ -2794,8 +3108,9 @@ } }, "node_modules/object-inspect": { - "version": "1.9.0", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", + "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2803,6 +3118,7 @@ }, "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": { @@ -2811,6 +3127,7 @@ }, "node_modules/object.assign": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "dev": true, "dependencies": { @@ -2827,28 +3144,28 @@ } }, "node_modules/object.entries": { - "version": "1.1.3", - "integrity": "sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.4.tgz", + "integrity": "sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==", "dev": true, "dependencies": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "has": "^1.0.3" + "es-abstract": "^1.18.2" }, "engines": { "node": ">= 0.4" } }, "node_modules/object.values": { - "version": "1.1.3", - "integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", + "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "has": "^1.0.3" + "es-abstract": "^1.18.2" }, "engines": { "node": ">= 0.4" @@ -2859,6 +3176,7 @@ }, "node_modules/once": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "dependencies": { @@ -2867,6 +3185,7 @@ }, "node_modules/onetime": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "dependencies": { @@ -2881,6 +3200,7 @@ }, "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": { @@ -2896,43 +3216,41 @@ } }, "node_modules/p-limit": { - "version": "3.1.0", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "dependencies": { - "yocto-queue": "^0.1.0" + "p-try": "^1.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, "node_modules/p-locate": { - "version": "5.0.0", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "dependencies": { - "p-limit": "^3.0.2" + "p-limit": "^1.1.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, "node_modules/p-try": { - "version": "2.2.0", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true, "engines": { - "node": ">=6" + "node": ">=4" } }, "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": { @@ -2944,6 +3262,7 @@ }, "node_modules/parse-json": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "dependencies": { @@ -2955,15 +3274,17 @@ } }, "node_modules/path-exists": { - "version": "4.0.0", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/path-is-absolute": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true, "engines": { @@ -2972,6 +3293,7 @@ }, "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": { @@ -2979,12 +3301,14 @@ } }, "node_modules/path-parse": { - "version": "1.0.6", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "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": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, "engines": { @@ -2993,6 +3317,7 @@ }, "node_modules/pathval": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true, "engines": { @@ -3000,8 +3325,9 @@ } }, "node_modules/picomatch": { - "version": "2.2.3", - "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", "dev": true, "engines": { "node": ">=8.6" @@ -3012,6 +3338,7 @@ }, "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": { @@ -3023,6 +3350,7 @@ }, "node_modules/pify": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true, "engines": { @@ -3031,6 +3359,7 @@ }, "node_modules/pkg-dir": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "dependencies": { @@ -3040,69 +3369,9 @@ "node": ">=4" } }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "2.1.0", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "2.0.0", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "1.3.0", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "2.0.0", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-dir/node_modules/p-try": { - "version": "1.0.0", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-dir/node_modules/path-exists": { - "version": "3.0.0", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/pkg-up": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", "dev": true, "dependencies": { @@ -3112,69 +3381,9 @@ "node": ">=4" } }, - "node_modules/pkg-up/node_modules/find-up": { - "version": "2.1.0", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-up/node_modules/locate-path": { - "version": "2.0.0", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-up/node_modules/p-limit": { - "version": "1.3.0", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-up/node_modules/p-locate": { - "version": "2.0.0", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-up/node_modules/p-try": { - "version": "1.0.0", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "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": { @@ -3183,6 +3392,7 @@ }, "node_modules/prettier": { "version": "2.3.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz", "integrity": "sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==", "dev": true, "bin": { @@ -3194,6 +3404,7 @@ }, "node_modules/progress": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true, "engines": { @@ -3202,6 +3413,7 @@ }, "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": { @@ -3210,6 +3422,7 @@ }, "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": [ @@ -3229,6 +3442,7 @@ }, "node_modules/randombytes": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "dependencies": { @@ -3237,6 +3451,7 @@ }, "node_modules/read-pkg": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "dependencies": { @@ -3250,6 +3465,7 @@ }, "node_modules/read-pkg-up": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "dependencies": { @@ -3260,69 +3476,9 @@ "node": ">=4" } }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "2.1.0", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "2.0.0", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "1.3.0", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "2.0.0", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-try": { - "version": "1.0.0", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/read-pkg/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": { @@ -3334,6 +3490,7 @@ }, "node_modules/readdirp": { "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", "dev": true, "dependencies": { @@ -3345,6 +3502,7 @@ }, "node_modules/rechoir": { "version": "0.7.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz", "integrity": "sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==", "dev": true, "dependencies": { @@ -3355,8 +3513,9 @@ } }, "node_modules/regexpp": { - "version": "3.1.0", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "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" @@ -3367,6 +3526,7 @@ }, "node_modules/require-directory": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true, "engines": { @@ -3375,6 +3535,7 @@ }, "node_modules/require-from-string": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, "engines": { @@ -3383,6 +3544,7 @@ }, "node_modules/resolve": { "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", "dev": true, "dependencies": { @@ -3395,6 +3557,7 @@ }, "node_modules/resolve-cwd": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, "dependencies": { @@ -3406,6 +3569,7 @@ }, "node_modules/resolve-cwd/node_modules/resolve-from": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, "engines": { @@ -3414,6 +3578,7 @@ }, "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": { @@ -3422,6 +3587,7 @@ }, "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": { @@ -3431,6 +3597,7 @@ }, "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": { @@ -3445,6 +3612,7 @@ }, "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": [ @@ -3467,6 +3635,7 @@ }, "node_modules/safe-buffer": { "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, "funding": [ @@ -3486,6 +3655,7 @@ }, "node_modules/schema-utils": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", "dev": true, "dependencies": { @@ -3503,6 +3673,7 @@ }, "node_modules/semver": { "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { @@ -3517,6 +3688,7 @@ }, "node_modules/serialize-javascript": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", "dev": true, "dependencies": { @@ -3525,6 +3697,7 @@ }, "node_modules/shallow-clone": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, "dependencies": { @@ -3536,6 +3709,7 @@ }, "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": { @@ -3547,6 +3721,7 @@ }, "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": { @@ -3555,16 +3730,19 @@ }, "node_modules/shell-quote": { "version": "1.7.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", "dev": true }, "node_modules/signal-exit": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", "dev": true }, "node_modules/slash": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, "engines": { @@ -3573,6 +3751,7 @@ }, "node_modules/slice-ansi": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "dependencies": { @@ -3589,11 +3768,13 @@ }, "node_modules/source-list-map": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", "dev": true }, "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==", "dev": true, "engines": { @@ -3602,6 +3783,7 @@ }, "node_modules/source-map-support": { "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", "dev": true, "dependencies": { @@ -3611,6 +3793,7 @@ }, "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": { @@ -3620,11 +3803,13 @@ }, "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": { @@ -3633,17 +3818,20 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.7", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz", + "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==", "dev": true }, "node_modules/sprintf-js": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, "node_modules/string-width": { "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", "dev": true, "dependencies": { @@ -3657,6 +3845,7 @@ }, "node_modules/string.prototype.padend": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.2.tgz", "integrity": "sha512-/AQFLdYvePENU3W5rgurfWSMU6n+Ww8n/3cUt7E+vPBB/D7YDG8x+qjoFs4M/alR2bW7Qg6xMjVwWUOvuQ0XpQ==", "dev": true, "dependencies": { @@ -3673,6 +3862,7 @@ }, "node_modules/string.prototype.trimend": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", "dev": true, "dependencies": { @@ -3685,6 +3875,7 @@ }, "node_modules/string.prototype.trimstart": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", "dev": true, "dependencies": { @@ -3697,6 +3888,7 @@ }, "node_modules/strip-ansi": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "dependencies": { @@ -3708,6 +3900,7 @@ }, "node_modules/strip-bom": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true, "engines": { @@ -3716,6 +3909,7 @@ }, "node_modules/strip-final-newline": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, "engines": { @@ -3724,6 +3918,7 @@ }, "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": { @@ -3735,6 +3930,7 @@ }, "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": { @@ -3745,27 +3941,26 @@ } }, "node_modules/table": { - "version": "6.0.9", - "integrity": "sha512-F3cLs9a3hL1Z7N4+EkSscsel3z55XT950AvB05bwayrNg5T1/gykXtigioTAjbltvbMSJvvhFCbnf6mX+ntnJQ==", + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", + "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", "dev": true, "dependencies": { "ajv": "^8.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", "lodash.clonedeep": "^4.5.0", - "lodash.flatten": "^4.4.0", "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", - "string-width": "^4.2.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0" }, "engines": { "node": ">=10.0.0" } }, "node_modules/table/node_modules/ajv": { - "version": "8.1.0", - "integrity": "sha512-B/Sk2Ix7A36fs/ZkuGLIR86EdjbgR6fsAcbx9lOP/QBSXujDNbVmIS/U4Itz5k8fPFDeVZl/zQ/gJW4Jrq6XjQ==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.0.tgz", + "integrity": "sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -3780,11 +3975,13 @@ }, "node_modules/table/node_modules/json-schema-traverse": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "node_modules/tapable": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", "dev": true, "engines": { @@ -3792,8 +3989,9 @@ } }, "node_modules/terser": { - "version": "5.6.1", - "integrity": "sha512-yv9YLFQQ+3ZqgWCUk+pvNJwgUTdlIxUk1WTN+RnaFJe2L7ipG2csPT0ra2XRm7Cs8cxN7QXmK1rFzEwYEQkzXw==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.1.tgz", + "integrity": "sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg==", "dev": true, "dependencies": { "commander": "^2.20.0", @@ -3808,16 +4006,17 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.1.1", - "integrity": "sha512-5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz", + "integrity": "sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA==", "dev": true, "dependencies": { - "jest-worker": "^26.6.2", + "jest-worker": "^27.0.2", "p-limit": "^3.1.0", "schema-utils": "^3.0.0", - "serialize-javascript": "^5.0.1", + "serialize-javascript": "^6.0.0", "source-map": "^0.6.1", - "terser": "^5.5.1" + "terser": "^5.7.0" }, "engines": { "node": ">= 10.13.0" @@ -3830,8 +4029,33 @@ "webpack": "^5.1.0" } }, + "node_modules/terser-webpack-plugin/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/terser-webpack-plugin/node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, "node_modules/terser/node_modules/source-map": { "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true, "engines": { @@ -3840,11 +4064,13 @@ }, "node_modules/text-table": { "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, "node_modules/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": { @@ -3856,6 +4082,7 @@ }, "node_modules/ts-loader": { "version": "9.2.3", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.2.3.tgz", "integrity": "sha512-sEyWiU3JMHBL55CIeC4iqJQadI0U70A5af0kvgbNLHVNz2ACztQg0j/9x10bjjIht8WfFYLKfn4L6tkZ+pu+8Q==", "dev": true, "dependencies": { @@ -3874,6 +4101,7 @@ }, "node_modules/ts-node": { "version": "10.0.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.0.0.tgz", "integrity": "sha512-ROWeOIUvfFbPZkoDis0L/55Fk+6gFQNZwwKPLinacRl6tsxstTF1DbAcLKkovwnpKMVvOMHP1TIbnwXwtLg1gg==", "dev": true, "dependencies": { @@ -3915,6 +4143,7 @@ }, "node_modules/ts-node/node_modules/diff": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, "engines": { @@ -3923,6 +4152,7 @@ }, "node_modules/tsconfig-paths": { "version": "3.9.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", "dev": true, "dependencies": { @@ -3932,24 +4162,15 @@ "strip-bom": "^3.0.0" } }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.1", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, "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": { @@ -3964,6 +4185,7 @@ }, "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": { @@ -3975,6 +4197,7 @@ }, "node_modules/type-detect": { "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, "engines": { @@ -3983,6 +4206,7 @@ }, "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": { @@ -3993,8 +4217,9 @@ } }, "node_modules/typescript": { - "version": "4.3.4", - "integrity": "sha512-uauPG7XZn9F/mo+7MrsRjyvbxFpzemRjKEZXS4AK83oP2KKOJPvb+9cO/gmnv8arWZvhnjVOXz7B49m1l0e9Ew==", + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", + "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -4006,6 +4231,7 @@ }, "node_modules/unbox-primitive": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", "dev": true, "dependencies": { @@ -4020,6 +4246,7 @@ }, "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": { @@ -4028,11 +4255,13 @@ }, "node_modules/v8-compile-cache": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "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": { @@ -4042,6 +4271,7 @@ }, "node_modules/watchpack": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.2.0.tgz", "integrity": "sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA==", "dev": true, "dependencies": { @@ -4053,12 +4283,13 @@ } }, "node_modules/webpack": { - "version": "5.39.1", - "integrity": "sha512-ulOvoNCh2PvTUa+zbpRuEb1VPeQnhxpnHleMPVVCq3QqnaFogjsLyps+o42OviQFoaGtTQYrUqDXu1QNkvUPzw==", + "version": "5.41.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.41.1.tgz", + "integrity": "sha512-AJZIIsqJ/MVTmegEq9Tlw5mk5EHdGiJbDdz9qP15vmUH+oxI1FdWcL0E9EO8K/zKaRPWqEs7G/OPxq1P61u5Ug==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.0", - "@types/estree": "^0.0.47", + "@types/estree": "^0.0.48", "@webassemblyjs/ast": "1.11.0", "@webassemblyjs/wasm-edit": "1.11.0", "@webassemblyjs/wasm-parser": "1.11.0", @@ -4066,7 +4297,7 @@ "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.8.0", - "es-module-lexer": "^0.4.0", + "es-module-lexer": "^0.6.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", @@ -4077,7 +4308,7 @@ "neo-async": "^2.6.2", "schema-utils": "^3.0.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.1", + "terser-webpack-plugin": "^5.1.3", "watchpack": "^2.2.0", "webpack-sources": "^2.3.0" }, @@ -4099,6 +4330,7 @@ }, "node_modules/webpack-cli": { "version": "4.7.2", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.7.2.tgz", "integrity": "sha512-mEoLmnmOIZQNiRl0ebnjzQ74Hk0iKS5SiEEnpq3dRezoyR3yPaeQZCMCe+db4524pj1Pd5ghZXjT41KLzIhSLw==", "dev": true, "dependencies": { @@ -4142,6 +4374,7 @@ }, "node_modules/webpack-cli/node_modules/commander": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true, "engines": { @@ -4149,8 +4382,9 @@ } }, "node_modules/webpack-merge": { - "version": "5.7.3", - "integrity": "sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", "dev": true, "dependencies": { "clone-deep": "^4.0.1", @@ -4162,6 +4396,7 @@ }, "node_modules/webpack-sources": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.0.tgz", "integrity": "sha512-WyOdtwSvOML1kbgtXbTDnEW0jkJ7hZr/bDByIwszhWd/4XX1A3XMkrbFMsuH4+/MfLlZCUzlAdg4r7jaGKEIgQ==", "dev": true, "dependencies": { @@ -4173,8 +4408,9 @@ } }, "node_modules/webpack/node_modules/acorn": { - "version": "8.2.2", - "integrity": "sha512-VrMS8kxT0e7J1EX0p6rI/E0FbfOVcvBpbIqHThFv+f8YrZIlMfVotYcXKVPmTvPW8sW5miJzfUFrrvthUZg8VQ==", + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", + "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -4185,6 +4421,7 @@ }, "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": { @@ -4199,6 +4436,7 @@ }, "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": { @@ -4214,6 +4452,7 @@ }, "node_modules/wide-align": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "dependencies": { @@ -4222,6 +4461,7 @@ }, "node_modules/wide-align/node_modules/ansi-regex": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true, "engines": { @@ -4230,6 +4470,7 @@ }, "node_modules/wide-align/node_modules/is-fullwidth-code-point": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true, "engines": { @@ -4238,6 +4479,7 @@ }, "node_modules/wide-align/node_modules/string-width": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "dependencies": { @@ -4250,6 +4492,7 @@ }, "node_modules/wide-align/node_modules/strip-ansi": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "dependencies": { @@ -4261,11 +4504,13 @@ }, "node_modules/wildcard": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", "dev": true }, "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": { @@ -4274,11 +4519,13 @@ }, "node_modules/workerpool": { "version": "6.1.0", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz", "integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==", "dev": true }, "node_modules/wrap-ansi": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "dependencies": { @@ -4295,11 +4542,13 @@ }, "node_modules/wrappy": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "node_modules/y18n": { "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, "engines": { @@ -4308,11 +4557,13 @@ }, "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/yargs": { "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "dependencies": { @@ -4330,6 +4581,7 @@ }, "node_modules/yargs-parser": { "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", "dev": true, "engines": { @@ -4338,6 +4590,7 @@ }, "node_modules/yargs-unparser": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "dev": true, "dependencies": { @@ -4352,6 +4605,7 @@ }, "node_modules/yn": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, "engines": { @@ -4360,6 +4614,7 @@ }, "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": { @@ -4373,26 +4628,34 @@ "dependencies": { "@babel/code-frame": { "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.12.11", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", + "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", "dev": true }, "@babel/highlight": { - "version": "7.13.10", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.14.5", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, "dependencies": { "ansi-styles": { "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "^1.9.0" @@ -4400,6 +4663,8 @@ }, "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", @@ -4409,6 +4674,8 @@ }, "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" @@ -4416,18 +4683,26 @@ }, "color-name": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, "escape-string-regexp": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, "has-flag": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, "supports-color": { "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -4436,14 +4711,20 @@ } }, "@discoveryjs/json-ext": { - "version": "0.5.2", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz", + "integrity": "sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g==", "dev": true }, "@eastdesire/jscolor": { - "version": "2.4.5" + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/@eastdesire/jscolor/-/jscolor-2.4.5.tgz", + "integrity": "sha512-LDCEGN7qKKO3tq6yYtx6cbz/tQlr9LqKNSFaG2GIIn03y67ot3doucpDGoQjCwXG2xUB4pDXRuH2lobjjxhtJA==" }, "@eslint/eslintrc": { "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.2.tgz", + "integrity": "sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -4458,47 +4739,65 @@ } }, "@nodelib/fs.scandir": { - "version": "2.1.4", + "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.4", + "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "@nodelib/fs.stat": { - "version": "2.0.4", + "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.6", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz", + "integrity": "sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA==", "dev": true, "requires": { - "@nodelib/fs.scandir": "2.1.4", + "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "@tsconfig/node10": { - "version": "1.0.7", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", "dev": true }, "@tsconfig/node12": { - "version": "1.0.7", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", "dev": true }, "@tsconfig/node14": { - "version": "1.0.0", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", "dev": true }, "@tsconfig/node16": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.1.tgz", + "integrity": "sha512-FTgBI767POY/lKNDNbIzgAX6miIDBs6NTCbdlDb8TrWovHsSvaVIZDlTqym29C6UqhzwcJx4CYr+AlrMywA0cA==", "dev": true }, "@types/chai": { "version": "4.2.19", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.19.tgz", + "integrity": "sha512-jRJgpRBuY+7izT7/WNXP/LsMO9YonsstuL+xuvycDyESpoDoIAsMd7suwpB4h9oEWB+ZlPTqJJ8EHomzNhwTPQ==", "dev": true }, "@types/eslint": { - "version": "7.2.9", + "version": "7.2.13", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.13.tgz", + "integrity": "sha512-LKmQCWAlnVHvvXq4oasNUMTJJb2GwSyTY8+1C7OH5ILR8mPLaljv1jxL1bXW3xB3jFbQxTKxJAvI8PyjB09aBg==", "dev": true, "requires": { "@types/estree": "*", @@ -4507,6 +4806,8 @@ }, "@types/eslint-scope": { "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.0.tgz", + "integrity": "sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw==", "dev": true, "requires": { "@types/eslint": "*", @@ -4514,88 +4815,100 @@ } }, "@types/estree": { - "version": "0.0.47", + "version": "0.0.48", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.48.tgz", + "integrity": "sha512-LfZwXoGUDo0C3me81HXgkBg5CTQYb6xzEl+fNmbO4JdRiSKQ8A0GD1OBBvKAIsbCUgoyAty7m99GqqMQe784ew==", "dev": true }, "@types/json-schema": { "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", + "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", "dev": true }, "@types/json5": { "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", "dev": true }, "@types/mocha": { "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.2.tgz", + "integrity": "sha512-Lwh0lzzqT5Pqh6z61P3c3P5nm6fzQK/MMHl9UKeneAeInVflBSz1O2EkX6gM6xfJd7FBXBY5purtLx7fUiZ7Hw==", "dev": true }, "@types/node": { - "version": "14.14.37", + "version": "15.14.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.0.tgz", + "integrity": "sha512-um/+/ip3QZmwLfIkWZSNtQIJNVAqrJ92OkLMeuZrjZMTAJniI7fh8N8OICyDhAJ2mzgk/fmYFo72jRr5HyZ1EQ==", "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "4.27.0", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.1.tgz", + "integrity": "sha512-9yfcNpDaNGQ6/LQOX/KhUFTR1sCKH+PBr234k6hI9XJ0VP5UqGxap0AnNwBnWFk1MNyWBylJH9ZkzBXC+5akZQ==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "4.27.0", - "@typescript-eslint/scope-manager": "4.27.0", + "@typescript-eslint/experimental-utils": "4.28.1", + "@typescript-eslint/scope-manager": "4.28.1", "debug": "^4.3.1", "functional-red-black-tree": "^1.0.1", - "lodash": "^4.17.21", "regexpp": "^3.1.0", "semver": "^7.3.5", "tsutils": "^3.21.0" } }, "@typescript-eslint/experimental-utils": { - "version": "4.27.0", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.1.tgz", + "integrity": "sha512-n8/ggadrZ+uyrfrSEchx3jgODdmcx7MzVM2sI3cTpI/YlfSm0+9HEUaWw3aQn2urL2KYlWYMDgn45iLfjDYB+Q==", "dev": true, "requires": { "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.27.0", - "@typescript-eslint/types": "4.27.0", - "@typescript-eslint/typescript-estree": "4.27.0", + "@typescript-eslint/scope-manager": "4.28.1", + "@typescript-eslint/types": "4.28.1", + "@typescript-eslint/typescript-estree": "4.28.1", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" - }, - "dependencies": { - "eslint-utils": { - "version": "3.0.0", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - } - } } }, "@typescript-eslint/parser": { - "version": "4.27.0", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.28.1.tgz", + "integrity": "sha512-UjrMsgnhQIIK82hXGaD+MCN8IfORS1CbMdu7VlZbYa8LCZtbZjJA26De4IPQB7XYZbL8gJ99KWNj0l6WD0guJg==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "4.27.0", - "@typescript-eslint/types": "4.27.0", - "@typescript-eslint/typescript-estree": "4.27.0", + "@typescript-eslint/scope-manager": "4.28.1", + "@typescript-eslint/types": "4.28.1", + "@typescript-eslint/typescript-estree": "4.28.1", "debug": "^4.3.1" } }, "@typescript-eslint/scope-manager": { - "version": "4.27.0", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.28.1.tgz", + "integrity": "sha512-o95bvGKfss6705x7jFGDyS7trAORTy57lwJ+VsYwil/lOUxKQ9tA7Suuq+ciMhJc/1qPwB3XE2DKh9wubW8YYA==", "dev": true, "requires": { - "@typescript-eslint/types": "4.27.0", - "@typescript-eslint/visitor-keys": "4.27.0" + "@typescript-eslint/types": "4.28.1", + "@typescript-eslint/visitor-keys": "4.28.1" } }, "@typescript-eslint/types": { - "version": "4.27.0", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.1.tgz", + "integrity": "sha512-4z+knEihcyX7blAGi7O3Fm3O6YRCP+r56NJFMNGsmtdw+NCdpG5SgNz427LS9nQkRVTswZLhz484hakQwB8RRg==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "4.27.0", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.1.tgz", + "integrity": "sha512-GhKxmC4sHXxHGJv8e8egAZeTZ6HI4mLU6S7FUzvFOtsk7ZIDN1ksA9r9DyOgNqowA9yAtZXV0Uiap61bIO81FQ==", "dev": true, "requires": { - "@typescript-eslint/types": "4.27.0", - "@typescript-eslint/visitor-keys": "4.27.0", + "@typescript-eslint/types": "4.28.1", + "@typescript-eslint/visitor-keys": "4.28.1", "debug": "^4.3.1", "globby": "^11.0.3", "is-glob": "^4.0.1", @@ -4604,19 +4917,25 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "4.27.0", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.1.tgz", + "integrity": "sha512-K4HMrdFqr9PFquPu178SaSb92CaWe2yErXyPumc8cYWxFmhgJsNY9eSePmO05j0JhBvf2Cdhptd6E6Yv9HVHcg==", "dev": true, "requires": { - "@typescript-eslint/types": "4.27.0", + "@typescript-eslint/types": "4.28.1", "eslint-visitor-keys": "^2.0.0" } }, "@ungap/promise-all-settled": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, "@webassemblyjs/ast": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.0.tgz", + "integrity": "sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg==", "dev": true, "requires": { "@webassemblyjs/helper-numbers": "1.11.0", @@ -4625,18 +4944,26 @@ }, "@webassemblyjs/floating-point-hex-parser": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz", + "integrity": "sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA==", "dev": true }, "@webassemblyjs/helper-api-error": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz", + "integrity": "sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w==", "dev": true }, "@webassemblyjs/helper-buffer": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz", + "integrity": "sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA==", "dev": true }, "@webassemblyjs/helper-numbers": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz", + "integrity": "sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ==", "dev": true, "requires": { "@webassemblyjs/floating-point-hex-parser": "1.11.0", @@ -4646,10 +4973,14 @@ }, "@webassemblyjs/helper-wasm-bytecode": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz", + "integrity": "sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA==", "dev": true }, "@webassemblyjs/helper-wasm-section": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz", + "integrity": "sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew==", "dev": true, "requires": { "@webassemblyjs/ast": "1.11.0", @@ -4660,6 +4991,8 @@ }, "@webassemblyjs/ieee754": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz", + "integrity": "sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA==", "dev": true, "requires": { "@xtuc/ieee754": "^1.2.0" @@ -4667,6 +5000,8 @@ }, "@webassemblyjs/leb128": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.0.tgz", + "integrity": "sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g==", "dev": true, "requires": { "@xtuc/long": "4.2.2" @@ -4674,10 +5009,14 @@ }, "@webassemblyjs/utf8": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.0.tgz", + "integrity": "sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw==", "dev": true }, "@webassemblyjs/wasm-edit": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz", + "integrity": "sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ==", "dev": true, "requires": { "@webassemblyjs/ast": "1.11.0", @@ -4692,6 +5031,8 @@ }, "@webassemblyjs/wasm-gen": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz", + "integrity": "sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ==", "dev": true, "requires": { "@webassemblyjs/ast": "1.11.0", @@ -4703,6 +5044,8 @@ }, "@webassemblyjs/wasm-opt": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz", + "integrity": "sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg==", "dev": true, "requires": { "@webassemblyjs/ast": "1.11.0", @@ -4713,6 +5056,8 @@ }, "@webassemblyjs/wasm-parser": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz", + "integrity": "sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw==", "dev": true, "requires": { "@webassemblyjs/ast": "1.11.0", @@ -4725,6 +5070,8 @@ }, "@webassemblyjs/wast-printer": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz", + "integrity": "sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ==", "dev": true, "requires": { "@webassemblyjs/ast": "1.11.0", @@ -4733,11 +5080,15 @@ }, "@webpack-cli/configtest": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.4.tgz", + "integrity": "sha512-cs3XLy+UcxiP6bj0A6u7MLLuwdXJ1c3Dtc0RkKg+wiI1g/Ti1om8+/2hc2A2B60NbBNAbMgyBMHvyymWm/j4wQ==", "dev": true, "requires": {} }, "@webpack-cli/info": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.3.0.tgz", + "integrity": "sha512-ASiVB3t9LOKHs5DyVUcxpraBXDOKubYu/ihHhU+t1UPpxsivg6Od2E2qU4gJCekfEddzRBzHhzA/Acyw/mlK/w==", "dev": true, "requires": { "envinfo": "^7.7.3" @@ -4745,28 +5096,40 @@ }, "@webpack-cli/serve": { "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.5.1.tgz", + "integrity": "sha512-4vSVUiOPJLmr45S8rMGy7WDvpWxfFxfP/Qx/cxZFCfvoypTYpPPL1X8VIZMe0WTA+Jr7blUxwUSEZNkjoMTgSw==", "dev": true, "requires": {} }, "@xtuc/ieee754": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", "dev": true }, "@xtuc/long": { "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, "acorn": { "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true }, "acorn-jsx": { "version": "5.3.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", "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", @@ -4777,19 +5140,27 @@ }, "ajv-keywords": { "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, "requires": {} }, "ansi-colors": { "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true }, "ansi-regex": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true }, "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" @@ -4797,6 +5168,8 @@ }, "anymatch": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dev": true, "requires": { "normalize-path": "^3.0.0", @@ -4805,10 +5178,14 @@ }, "arg": { "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true }, "argparse": { "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { "sprintf-js": "~1.0.2" @@ -4816,6 +5193,8 @@ }, "array-includes": { "version": "3.1.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", + "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -4827,10 +5206,14 @@ }, "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 }, "array.prototype.flat": { "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", + "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", "dev": true, "requires": { "call-bind": "^1.0.0", @@ -4840,22 +5223,32 @@ }, "assertion-error": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, "astral-regex": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "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 }, "binary-extensions": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "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", @@ -4864,6 +5257,8 @@ }, "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" @@ -4871,25 +5266,33 @@ }, "browser-stdout": { "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, "browserslist": { - "version": "4.16.4", + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001208", + "caniuse-lite": "^1.0.30001219", "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.712", + "electron-to-chromium": "^1.3.723", "escalade": "^3.1.1", "node-releases": "^1.1.71" } }, "buffer-from": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true }, "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", @@ -4898,18 +5301,26 @@ }, "callsites": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, "camelcase": { "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", "dev": true }, "caniuse-lite": { - "version": "1.0.30001208", + "version": "1.0.30001241", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001241.tgz", + "integrity": "sha512-1uoSZ1Pq1VpH0WerIMqwptXHNNGfdl7d1cJUFs80CwQ/lVzdhTvsFZCeNFslze7AjsQnb4C85tzclPa1VShbeQ==", "dev": true }, "chai": { "version": "4.3.4", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", "dev": true, "requires": { "assertion-error": "^1.1.0", @@ -4921,7 +5332,9 @@ } }, "chalk": { - "version": "4.1.0", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -4930,10 +5343,14 @@ }, "check-error": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", "dev": true }, "chokidar": { "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", "dev": true, "requires": { "anymatch": "~3.1.1", @@ -4948,10 +5365,14 @@ }, "chrome-trace-event": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", "dev": true }, "cliui": { "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "requires": { "string-width": "^4.2.0", @@ -4961,6 +5382,8 @@ }, "clone-deep": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, "requires": { "is-plain-object": "^2.0.4", @@ -4970,6 +5393,8 @@ }, "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" @@ -4977,30 +5402,44 @@ }, "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 }, "colorette": { "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", "dev": true }, "commander": { "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, "concat-map": { "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "confusing-browser-globals": { "version": "1.0.10", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz", + "integrity": "sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==", "dev": true }, "create-require": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "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", @@ -5010,6 +5449,8 @@ }, "debug": { "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "requires": { "ms": "2.1.2" @@ -5017,10 +5458,14 @@ }, "decamelize": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true }, "deep-eql": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { "type-detect": "^4.0.0" @@ -5028,10 +5473,14 @@ }, "deep-is": { "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, "define-properties": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, "requires": { "object-keys": "^1.0.12" @@ -5039,10 +5488,14 @@ }, "diff": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true }, "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" @@ -5050,21 +5503,29 @@ }, "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" } }, "electron-to-chromium": { - "version": "1.3.713", + "version": "1.3.763", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.763.tgz", + "integrity": "sha512-UyvEPae0wvzsyNJhVfGeFSOlUkHEze8xSIiExO5tZQ8QTr7obFiJWGk3U4e7afFOJMQJDszqU/3Pk5jtKiaSEg==", "dev": true }, "emoji-regex": { "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "enhanced-resolve": { - "version": "5.8.0", + "version": "5.8.2", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz", + "integrity": "sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==", "dev": true, "requires": { "graceful-fs": "^4.2.4", @@ -5073,6 +5534,8 @@ }, "enquirer": { "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "dev": true, "requires": { "ansi-colors": "^4.1.1" @@ -5080,17 +5543,23 @@ }, "envinfo": { "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", "dev": true }, "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.18.0", + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz", + "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -5101,22 +5570,26 @@ "has-symbols": "^1.0.2", "is-callable": "^1.2.3", "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.2", - "is-string": "^1.0.5", - "object-inspect": "^1.9.0", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.10.3", "object-keys": "^1.1.1", "object.assign": "^4.1.2", "string.prototype.trimend": "^1.0.4", "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.0" + "unbox-primitive": "^1.0.1" } }, "es-module-lexer": { - "version": "0.4.1", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.6.0.tgz", + "integrity": "sha512-f8kcHX1ArhllUtb/wVSyvygoKCznIjnxhLxy7TCvIiMdT7fL4ZDTIKaadMe6eLvOXg6Wk02UeoFgUoZ2EKZZUA==", "dev": true }, "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", @@ -5126,14 +5599,20 @@ }, "escalade": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true }, "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 }, "eslint": { "version": "7.29.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.29.0.tgz", + "integrity": "sha512-82G/JToB9qIy/ArBzIWG9xvvwL3R86AlCjtGw+A29OMZDqhTybz/MByORSukGxeI+YPCR4coYyITKk8BFH9nDA==", "dev": true, "requires": { "@babel/code-frame": "7.12.11", @@ -5175,10 +5654,31 @@ "table": "^6.0.9", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + } } }, "eslint-config-airbnb-base": { "version": "14.2.1", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz", + "integrity": "sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA==", "dev": true, "requires": { "confusing-browser-globals": "^1.0.10", @@ -5188,11 +5688,15 @@ }, "eslint-config-prettier": { "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", + "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==", "dev": true, "requires": {} }, "eslint-import-resolver-node": { "version": "0.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", "dev": true, "requires": { "debug": "^2.6.9", @@ -5201,6 +5705,8 @@ "dependencies": { "debug": { "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" @@ -5208,12 +5714,16 @@ }, "ms": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, "eslint-module-utils": { "version": "2.6.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz", + "integrity": "sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A==", "dev": true, "requires": { "debug": "^3.2.7", @@ -5222,6 +5732,8 @@ "dependencies": { "debug": { "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { "ms": "^2.1.1" @@ -5231,6 +5743,8 @@ }, "eslint-plugin-import": { "version": "2.23.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz", + "integrity": "sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ==", "dev": true, "requires": { "array-includes": "^3.1.3", @@ -5252,6 +5766,8 @@ "dependencies": { "debug": { "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" @@ -5259,56 +5775,25 @@ }, "doctrine": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { "esutils": "^2.0.2" } }, - "find-up": { - "version": "2.1.0", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, "ms": { "version": "2.0.0", - "dev": true - }, - "p-limit": { - "version": "1.3.0", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "dev": true - }, - "path-exists": { - "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, "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", @@ -5316,28 +5801,30 @@ } }, "eslint-utils": { - "version": "2.1.0", + "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": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "dev": true - } + "eslint-visitor-keys": "^2.0.0" } }, "eslint-visitor-keys": { - "version": "2.0.0", + "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 }, "esm": { "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", "dev": true }, "espree": { "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "dev": true, "requires": { "acorn": "^7.4.0", @@ -5347,16 +5834,22 @@ "dependencies": { "eslint-visitor-keys": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true } } }, "esprima": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, "esquery": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, "requires": { "estraverse": "^5.1.0" @@ -5364,12 +5857,16 @@ "dependencies": { "estraverse": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", "dev": true } } }, "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" @@ -5377,24 +5874,34 @@ "dependencies": { "estraverse": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", "dev": true } } }, "estraverse": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, "esutils": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, "events": { "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true }, "execa": { - "version": "5.0.0", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "requires": { "cross-spawn": "^7.0.3", @@ -5410,34 +5917,45 @@ }, "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.5", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.6.tgz", + "integrity": "sha512-GnLuqj/pvQ7pX8/L4J84nijv6sAnlwvSDpMkJi9i7nPmPxGtRPkBSStfvDW5l6nMdX9VWe+pkKWFTgD+vF2QSQ==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", + "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" + "micromatch": "^4.0.4" } }, "fast-json-stable-stringify": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, "fast-levenshtein": { "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, "fastest-levenshtein": { "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", + "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", "dev": true }, "fastq": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz", + "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", "dev": true, "requires": { "reusify": "^1.0.4" @@ -5445,6 +5963,8 @@ }, "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" @@ -5452,25 +5972,32 @@ }, "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", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "locate-path": "^2.0.0" } }, "flat": { "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true }, "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", @@ -5479,35 +6006,51 @@ }, "flatted": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, "fs.realpath": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, "fsevents": { "version": "2.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 }, "functional-red-black-tree": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, "get-caller-file": { "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, "get-func-name": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", "dev": true }, "get-intrinsic": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "dev": true, "requires": { "function-bind": "^1.1.1", @@ -5516,11 +6059,15 @@ } }, "get-stream": { - "version": "6.0.0", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true }, "glob": { "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -5533,6 +6080,8 @@ }, "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" @@ -5540,17 +6089,23 @@ }, "glob-to-regexp": { "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, "globals": { "version": "13.9.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz", + "integrity": "sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==", "dev": true, "requires": { "type-fest": "^0.20.2" } }, "globby": { - "version": "11.0.3", + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", "dev": true, "requires": { "array-union": "^2.1.0", @@ -5563,20 +6118,28 @@ "dependencies": { "ignore": { "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", "dev": true } } }, "graceful-fs": { "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", "dev": true }, "growl": { "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "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" @@ -5584,34 +6147,50 @@ }, "has-bigints": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", "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 }, "has-symbols": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", "dev": true }, "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 }, "human-signals": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true }, "ignore": { "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, "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", @@ -5620,6 +6199,8 @@ }, "import-local": { "version": "3.0.2", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", + "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", "dev": true, "requires": { "pkg-dir": "^4.2.0", @@ -5628,6 +6209,8 @@ "dependencies": { "find-up": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { "locate-path": "^5.0.0", @@ -5636,6 +6219,8 @@ }, "locate-path": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { "p-locate": "^4.1.0" @@ -5643,6 +6228,8 @@ }, "p-limit": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -5650,13 +6237,29 @@ }, "p-locate": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { "p-limit": "^2.2.0" } }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "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 + }, "pkg-dir": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "requires": { "find-up": "^4.0.0" @@ -5666,10 +6269,14 @@ }, "imurmurhash": { "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, "inflight": { "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { "once": "^1.3.0", @@ -5678,59 +6285,83 @@ }, "inherits": { "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, "interpret": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", "dev": true }, "is-arrayish": { "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, "is-bigint": { - "version": "1.0.1", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", + "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", "dev": true }, "is-binary-path": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "requires": { "binary-extensions": "^2.0.0" } }, "is-boolean-object": { - "version": "1.1.0", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", + "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", "dev": true, "requires": { - "call-bind": "^1.0.0" + "call-bind": "^1.0.2" } }, "is-callable": { "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", "dev": true }, "is-core-module": { "version": "2.4.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", + "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", "dev": true, "requires": { "has": "^1.0.3" } }, "is-date-object": { - "version": "1.0.2", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", + "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==", "dev": true }, "is-extglob": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, "requires": { "is-extglob": "^2.1.1" @@ -5738,73 +6369,112 @@ }, "is-negative-zero": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", "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.4", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", + "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", "dev": true }, "is-plain-obj": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true }, "is-plain-object": { "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { "isobject": "^3.0.1" } }, "is-regex": { - "version": "1.1.2", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", + "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", "dev": true, "requires": { "call-bind": "^1.0.2", - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.2" } }, "is-stream": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", "dev": true }, "is-string": { - "version": "1.0.5", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", + "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", "dev": true }, "is-symbol": { - "version": "1.0.3", + "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.1" + "has-symbols": "^1.0.2" } }, "isexe": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, "isobject": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, "jest-worker": { - "version": "26.6.2", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.6.tgz", + "integrity": "sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA==", "dev": true, "requires": { "@types/node": "*", "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "js-tokens": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, "js-yaml": { "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -5813,22 +6483,41 @@ }, "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": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, "kind-of": { "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "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", @@ -5837,6 +6526,8 @@ }, "load-json-file": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -5847,37 +6538,42 @@ }, "loader-runner": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", + "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", "dev": true }, "locate-path": { - "version": "6.0.0", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "^5.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, - "lodash": { - "version": "4.17.21", - "dev": true - }, "lodash.clonedeep": { "version": "4.5.0", - "dev": true - }, - "lodash.flatten": { - "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", "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 }, "lodash.truncate": { "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", "dev": true }, "log-symbols": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", + "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", "dev": true, "requires": { "chalk": "^4.0.0" @@ -5885,6 +6581,8 @@ }, "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" @@ -5892,22 +6590,32 @@ }, "make-error": { "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, "memorystream": { "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", "dev": true }, "merge-stream": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "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.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "requires": { "braces": "^3.0.1", @@ -5915,22 +6623,30 @@ } }, "mime-db": { - "version": "1.47.0", + "version": "1.48.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", + "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==", "dev": true }, "mime-types": { - "version": "2.1.30", + "version": "2.1.31", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", + "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", "dev": true, "requires": { - "mime-db": "1.47.0" + "mime-db": "1.48.0" } }, "mimic-fn": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, "minimatch": { "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { "brace-expansion": "^1.1.7" @@ -5938,10 +6654,14 @@ }, "minimist": { "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, "mocha": { "version": "8.4.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.4.0.tgz", + "integrity": "sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ==", "dev": true, "requires": { "@ungap/promise-all-settled": "1.1.2", @@ -5973,21 +6693,72 @@ "dependencies": { "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 }, + "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" + } + }, "js-yaml": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz", + "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==", "dev": true, "requires": { "argparse": "^2.0.1" } }, + "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" + } + }, "ms": { "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "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" + } + }, + "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 }, "supports-color": { "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "requires": { "has-flag": "^4.0.0" @@ -5997,30 +6768,44 @@ }, "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 }, "nanoid": { "version": "3.1.20", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz", + "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==", "dev": true }, "natural-compare": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, "neo-async": { "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "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 }, "node-releases": { - "version": "1.1.71", + "version": "1.1.73", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", + "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==", "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", @@ -6031,16 +6816,22 @@ "dependencies": { "semver": { "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true } } }, "normalize-path": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, "npm-run-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", @@ -6056,6 +6847,8 @@ "dependencies": { "ansi-styles": { "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "^1.9.0" @@ -6063,6 +6856,8 @@ }, "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", @@ -6072,6 +6867,8 @@ }, "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" @@ -6079,10 +6876,14 @@ }, "color-name": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, "cross-spawn": { "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { "nice-try": "^1.0.4", @@ -6094,22 +6895,32 @@ }, "escape-string-regexp": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, "has-flag": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, "path-key": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, "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": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { "shebang-regex": "^1.0.0" @@ -6117,10 +6928,14 @@ }, "shebang-regex": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, "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" @@ -6128,6 +6943,8 @@ }, "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" @@ -6137,21 +6954,29 @@ }, "npm-run-path": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "requires": { "path-key": "^3.0.0" } }, "object-inspect": { - "version": "1.9.0", + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", + "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", "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.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "dev": true, "requires": { "call-bind": "^1.0.0", @@ -6161,27 +6986,31 @@ } }, "object.entries": { - "version": "1.1.3", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "has": "^1.0.3" - } - }, - "object.values": { - "version": "1.1.3", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.4.tgz", + "integrity": "sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "has": "^1.0.3" + "es-abstract": "^1.18.2" + } + }, + "object.values": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", + "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.2" } }, "once": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { "wrappy": "1" @@ -6189,6 +7018,8 @@ }, "onetime": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "requires": { "mimic-fn": "^2.1.0" @@ -6196,6 +7027,8 @@ }, "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", @@ -6207,25 +7040,33 @@ } }, "p-limit": { - "version": "3.1.0", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { - "yocto-queue": "^0.1.0" + "p-try": "^1.0.0" } }, "p-locate": { - "version": "5.0.0", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "^3.0.2" + "p-limit": "^1.1.0" } }, "p-try": { - "version": "2.2.0", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, "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" @@ -6233,6 +7074,8 @@ }, "parse-json": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { "error-ex": "^1.3.1", @@ -6240,155 +7083,111 @@ } }, "path-exists": { - "version": "4.0.0", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "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": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "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 }, "path-parse": { - "version": "1.0.6", + "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": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true }, "pathval": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true }, "picomatch": { - "version": "2.2.3", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", "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": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true }, "pkg-dir": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { "find-up": "^2.1.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "dev": true - } } }, "pkg-up": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", "dev": true, "requires": { "find-up": "^2.1.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "dev": true - } } }, "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 }, "prettier": { "version": "2.3.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz", + "integrity": "sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==", "dev": true }, "progress": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, "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 }, "randombytes": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "requires": { "safe-buffer": "^5.1.0" @@ -6396,6 +7195,8 @@ }, "read-pkg": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { "load-json-file": "^4.0.0", @@ -6405,6 +7206,8 @@ "dependencies": { "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" @@ -6414,53 +7217,18 @@ }, "read-pkg-up": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "requires": { "find-up": "^2.0.0", "read-pkg": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "dev": true - } } }, "readdirp": { "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", "dev": true, "requires": { "picomatch": "^2.2.1" @@ -6468,25 +7236,35 @@ }, "rechoir": { "version": "0.7.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz", + "integrity": "sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==", "dev": true, "requires": { "resolve": "^1.9.0" } }, "regexpp": { - "version": "3.1.0", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, "require-directory": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, "require-from-string": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true }, "resolve": { "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", "dev": true, "requires": { "is-core-module": "^2.2.0", @@ -6495,6 +7273,8 @@ }, "resolve-cwd": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, "requires": { "resolve-from": "^5.0.0" @@ -6502,20 +7282,28 @@ "dependencies": { "resolve-from": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true } } }, "resolve-from": { "version": "4.0.0", + "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" @@ -6523,6 +7311,8 @@ }, "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" @@ -6530,10 +7320,14 @@ }, "safe-buffer": { "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true }, "schema-utils": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", "dev": true, "requires": { "@types/json-schema": "^7.0.6", @@ -6543,6 +7337,8 @@ }, "semver": { "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -6550,6 +7346,8 @@ }, "serialize-javascript": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", "dev": true, "requires": { "randombytes": "^2.1.0" @@ -6557,6 +7355,8 @@ }, "shallow-clone": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, "requires": { "kind-of": "^6.0.2" @@ -6564,6 +7364,8 @@ }, "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" @@ -6571,22 +7373,32 @@ }, "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 }, "shell-quote": { "version": "1.7.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", + "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", "dev": true }, "signal-exit": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", "dev": true }, "slash": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, "slice-ansi": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { "ansi-styles": "^4.0.0", @@ -6596,14 +7408,20 @@ }, "source-list-map": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", "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==", "dev": true }, "source-map-support": { "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -6612,6 +7430,8 @@ }, "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", @@ -6620,10 +7440,14 @@ }, "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", @@ -6631,15 +7455,21 @@ } }, "spdx-license-ids": { - "version": "3.0.7", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz", + "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==", "dev": true }, "sprintf-js": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, "string-width": { "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", "dev": true, "requires": { "emoji-regex": "^8.0.0", @@ -6649,6 +7479,8 @@ }, "string.prototype.padend": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.2.tgz", + "integrity": "sha512-/AQFLdYvePENU3W5rgurfWSMU6n+Ww8n/3cUt7E+vPBB/D7YDG8x+qjoFs4M/alR2bW7Qg6xMjVwWUOvuQ0XpQ==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -6658,6 +7490,8 @@ }, "string.prototype.trimend": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -6666,6 +7500,8 @@ }, "string.prototype.trimstart": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -6674,6 +7510,8 @@ }, "strip-ansi": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { "ansi-regex": "^5.0.0" @@ -6681,40 +7519,49 @@ }, "strip-bom": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true }, "strip-final-newline": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true }, "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": "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" } }, "table": { - "version": "6.0.9", + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", + "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", "dev": true, "requires": { "ajv": "^8.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", "lodash.clonedeep": "^4.5.0", - "lodash.flatten": "^4.4.0", "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", - "string-width": "^4.2.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0" }, "dependencies": { "ajv": { - "version": "8.1.0", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.0.tgz", + "integrity": "sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -6725,16 +7572,22 @@ }, "json-schema-traverse": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true } } }, "tapable": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", + "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", "dev": true }, "terser": { - "version": "5.6.1", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.1.tgz", + "integrity": "sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg==", "dev": true, "requires": { "commander": "^2.20.0", @@ -6744,28 +7597,56 @@ "dependencies": { "source-map": { "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true } } }, "terser-webpack-plugin": { - "version": "5.1.1", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz", + "integrity": "sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA==", "dev": true, "requires": { - "jest-worker": "^26.6.2", + "jest-worker": "^27.0.2", "p-limit": "^3.1.0", "schema-utils": "^3.0.0", - "serialize-javascript": "^5.0.1", + "serialize-javascript": "^6.0.0", "source-map": "^0.6.1", - "terser": "^5.5.1" + "terser": "^5.7.0" + }, + "dependencies": { + "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" + } + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + } } }, "text-table": { "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, "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" @@ -6773,6 +7654,8 @@ }, "ts-loader": { "version": "9.2.3", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.2.3.tgz", + "integrity": "sha512-sEyWiU3JMHBL55CIeC4iqJQadI0U70A5af0kvgbNLHVNz2ACztQg0j/9x10bjjIht8WfFYLKfn4L6tkZ+pu+8Q==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -6783,6 +7666,8 @@ }, "ts-node": { "version": "10.0.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.0.0.tgz", + "integrity": "sha512-ROWeOIUvfFbPZkoDis0L/55Fk+6gFQNZwwKPLinacRl6tsxstTF1DbAcLKkovwnpKMVvOMHP1TIbnwXwtLg1gg==", "dev": true, "requires": { "@tsconfig/node10": "^1.0.7", @@ -6799,35 +7684,34 @@ "dependencies": { "diff": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true } } }, "tsconfig-paths": { "version": "3.9.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", + "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", "dev": true, "requires": { "@types/json5": "^0.0.29", "json5": "^1.0.1", "minimist": "^1.2.0", "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "dev": true, - "requires": { - "minimist": "^1.2.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" @@ -6835,6 +7719,8 @@ }, "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" @@ -6842,18 +7728,26 @@ }, "type-detect": { "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true }, "type-fest": { "version": "0.20.2", + "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.3.4", + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", + "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==", "dev": true }, "unbox-primitive": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", "dev": true, "requires": { "function-bind": "^1.1.1", @@ -6864,6 +7758,8 @@ }, "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" @@ -6871,10 +7767,14 @@ }, "v8-compile-cache": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "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", @@ -6883,6 +7783,8 @@ }, "watchpack": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.2.0.tgz", + "integrity": "sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA==", "dev": true, "requires": { "glob-to-regexp": "^0.4.1", @@ -6890,11 +7792,13 @@ } }, "webpack": { - "version": "5.39.1", + "version": "5.41.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.41.1.tgz", + "integrity": "sha512-AJZIIsqJ/MVTmegEq9Tlw5mk5EHdGiJbDdz9qP15vmUH+oxI1FdWcL0E9EO8K/zKaRPWqEs7G/OPxq1P61u5Ug==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.0", - "@types/estree": "^0.0.47", + "@types/estree": "^0.0.48", "@webassemblyjs/ast": "1.11.0", "@webassemblyjs/wasm-edit": "1.11.0", "@webassemblyjs/wasm-parser": "1.11.0", @@ -6902,7 +7806,7 @@ "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.8.0", - "es-module-lexer": "^0.4.0", + "es-module-lexer": "^0.6.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", @@ -6913,19 +7817,23 @@ "neo-async": "^2.6.2", "schema-utils": "^3.0.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.1", + "terser-webpack-plugin": "^5.1.3", "watchpack": "^2.2.0", "webpack-sources": "^2.3.0" }, "dependencies": { "acorn": { - "version": "8.2.2", + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", + "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==", "dev": true } } }, "webpack-cli": { "version": "4.7.2", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.7.2.tgz", + "integrity": "sha512-mEoLmnmOIZQNiRl0ebnjzQ74Hk0iKS5SiEEnpq3dRezoyR3yPaeQZCMCe+db4524pj1Pd5ghZXjT41KLzIhSLw==", "dev": true, "requires": { "@discoveryjs/json-ext": "^0.5.0", @@ -6945,12 +7853,16 @@ "dependencies": { "commander": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true } } }, "webpack-merge": { - "version": "5.7.3", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", "dev": true, "requires": { "clone-deep": "^4.0.1", @@ -6959,6 +7871,8 @@ }, "webpack-sources": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.0.tgz", + "integrity": "sha512-WyOdtwSvOML1kbgtXbTDnEW0jkJ7hZr/bDByIwszhWd/4XX1A3XMkrbFMsuH4+/MfLlZCUzlAdg4r7jaGKEIgQ==", "dev": true, "requires": { "source-list-map": "^2.0.1", @@ -6967,6 +7881,8 @@ }, "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" @@ -6974,6 +7890,8 @@ }, "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", @@ -6985,6 +7903,8 @@ }, "wide-align": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "requires": { "string-width": "^1.0.2 || 2" @@ -6992,14 +7912,20 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "string-width": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", @@ -7008,6 +7934,8 @@ }, "strip-ansi": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { "ansi-regex": "^3.0.0" @@ -7017,18 +7945,26 @@ }, "wildcard": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", "dev": true }, "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 }, "workerpool": { "version": "6.1.0", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz", + "integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==", "dev": true }, "wrap-ansi": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "requires": { "ansi-styles": "^4.0.0", @@ -7038,18 +7974,26 @@ }, "wrappy": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "y18n": { "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true }, "yallist": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "yargs": { "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "requires": { "cliui": "^7.0.2", @@ -7063,10 +8007,14 @@ }, "yargs-parser": { "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", "dev": true }, "yargs-unparser": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "dev": true, "requires": { "camelcase": "^6.0.0", @@ -7077,10 +8025,14 @@ }, "yn": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "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 } } From 3401a6165f0700543aa934ac1562e26355106cb4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Jul 2021 20:37:58 +0000 Subject: [PATCH 2/7] Bump prettier from 2.3.1 to 2.3.2 Bumps [prettier](https://github.com/prettier/prettier) from 2.3.1 to 2.3.2. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/2.3.1...2.3.2) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1ce70ca..86a0d31 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,7 +24,7 @@ "esm": "^3.2.25", "mocha": "^8.4.0", "npm-run-all": "^4.1.5", - "prettier": "2.3.1", + "prettier": "2.3.2", "ts-loader": "^9.2.3", "ts-node": "^10.0.0", "typescript": "^4.3.4", @@ -3391,9 +3391,9 @@ } }, "node_modules/prettier": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz", - "integrity": "sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.2.tgz", + "integrity": "sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==", "dev": true, "bin": { "prettier": "bin-prettier.js" @@ -7161,9 +7161,9 @@ "dev": true }, "prettier": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz", - "integrity": "sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.2.tgz", + "integrity": "sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==", "dev": true }, "progress": { diff --git a/package.json b/package.json index b10bafc..98b8ac6 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "esm": "^3.2.25", "mocha": "^8.4.0", "npm-run-all": "^4.1.5", - "prettier": "2.3.1", + "prettier": "2.3.2", "ts-loader": "^9.2.3", "ts-node": "^10.0.0", "typescript": "^4.3.4", From c9b6a06908bf8e55b4479de925f191c434e49154 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Jul 2021 02:04:48 +0000 Subject: [PATCH 3/7] Bump webpack from 5.41.1 to 5.42.0 Bumps [webpack](https://github.com/webpack/webpack) from 5.41.1 to 5.42.0. - [Release notes](https://github.com/webpack/webpack/releases) - [Commits](https://github.com/webpack/webpack/compare/v5.41.1...v5.42.0) --- updated-dependencies: - dependency-name: webpack dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 18 +++++++++--------- package.json | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 86a0d31..eff5a91 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,7 +28,7 @@ "ts-loader": "^9.2.3", "ts-node": "^10.0.0", "typescript": "^4.3.4", - "webpack": "^5.39.1", + "webpack": "^5.42.0", "webpack-cli": "^4.7.2" } }, @@ -4283,9 +4283,9 @@ } }, "node_modules/webpack": { - "version": "5.41.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.41.1.tgz", - "integrity": "sha512-AJZIIsqJ/MVTmegEq9Tlw5mk5EHdGiJbDdz9qP15vmUH+oxI1FdWcL0E9EO8K/zKaRPWqEs7G/OPxq1P61u5Ug==", + "version": "5.42.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.42.0.tgz", + "integrity": "sha512-Ln8HL0F831t1x/yPB/qZEUVmZM4w9BnHZ1EQD/sAUHv8m22hthoPniWTXEzFMh/Sf84mhrahut22TX5KxWGuyQ==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.0", @@ -4293,7 +4293,7 @@ "@webassemblyjs/ast": "1.11.0", "@webassemblyjs/wasm-edit": "1.11.0", "@webassemblyjs/wasm-parser": "1.11.0", - "acorn": "^8.2.1", + "acorn": "^8.4.1", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.8.0", @@ -7792,9 +7792,9 @@ } }, "webpack": { - "version": "5.41.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.41.1.tgz", - "integrity": "sha512-AJZIIsqJ/MVTmegEq9Tlw5mk5EHdGiJbDdz9qP15vmUH+oxI1FdWcL0E9EO8K/zKaRPWqEs7G/OPxq1P61u5Ug==", + "version": "5.42.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.42.0.tgz", + "integrity": "sha512-Ln8HL0F831t1x/yPB/qZEUVmZM4w9BnHZ1EQD/sAUHv8m22hthoPniWTXEzFMh/Sf84mhrahut22TX5KxWGuyQ==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.0", @@ -7802,7 +7802,7 @@ "@webassemblyjs/ast": "1.11.0", "@webassemblyjs/wasm-edit": "1.11.0", "@webassemblyjs/wasm-parser": "1.11.0", - "acorn": "^8.2.1", + "acorn": "^8.4.1", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.8.0", diff --git a/package.json b/package.json index 98b8ac6..04e9886 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "ts-loader": "^9.2.3", "ts-node": "^10.0.0", "typescript": "^4.3.4", - "webpack": "^5.39.1", + "webpack": "^5.42.0", "webpack-cli": "^4.7.2" }, "ccrepo": { From 69afafd0fbe8e8bd6d098983602d012474946d04 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Jul 2021 02:04:56 +0000 Subject: [PATCH 4/7] Bump eslint from 7.29.0 to 7.30.0 Bumps [eslint](https://github.com/eslint/eslint) from 7.29.0 to 7.30.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v7.29.0...v7.30.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 53 ++++++++++++++++++++++++++++++++++++++++------- package.json | 2 +- 2 files changed, 47 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 86a0d31..20bf344 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,7 @@ "@typescript-eslint/eslint-plugin": "^4.27.0", "@typescript-eslint/parser": "^4.27.0", "chai": "^4.3.4", - "eslint": "^7.29.0", + "eslint": "^7.30.0", "eslint-config-airbnb-base": "^14.2.1", "eslint-config-prettier": "^8.3.0", "eslint-plugin-import": "^2.23.4", @@ -169,6 +169,26 @@ "node": "^10.12.0 || >=12.0.0" } }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", + "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "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", @@ -1310,13 +1330,14 @@ } }, "node_modules/eslint": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.29.0.tgz", - "integrity": "sha512-82G/JToB9qIy/ArBzIWG9xvvwL3R86AlCjtGw+A29OMZDqhTybz/MByORSukGxeI+YPCR4coYyITKk8BFH9nDA==", + "version": "7.30.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.30.0.tgz", + "integrity": "sha512-VLqz80i3as3NdloY44BQSJpFw534L9Oh+6zJOUaViV4JPd+DaHwutqP7tcpkW3YiXbK6s05RZl7yl7cQn+lijg==", "dev": true, "dependencies": { "@babel/code-frame": "7.12.11", "@eslint/eslintrc": "^0.4.2", + "@humanwhocodes/config-array": "^0.5.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -4738,6 +4759,23 @@ "strip-json-comments": "^3.1.1" } }, + "@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", + "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "dev": true + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -5610,13 +5648,14 @@ "dev": true }, "eslint": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.29.0.tgz", - "integrity": "sha512-82G/JToB9qIy/ArBzIWG9xvvwL3R86AlCjtGw+A29OMZDqhTybz/MByORSukGxeI+YPCR4coYyITKk8BFH9nDA==", + "version": "7.30.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.30.0.tgz", + "integrity": "sha512-VLqz80i3as3NdloY44BQSJpFw534L9Oh+6zJOUaViV4JPd+DaHwutqP7tcpkW3YiXbK6s05RZl7yl7cQn+lijg==", "dev": true, "requires": { "@babel/code-frame": "7.12.11", "@eslint/eslintrc": "^0.4.2", + "@humanwhocodes/config-array": "^0.5.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", diff --git a/package.json b/package.json index 98b8ac6..24c2971 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "@typescript-eslint/eslint-plugin": "^4.27.0", "@typescript-eslint/parser": "^4.27.0", "chai": "^4.3.4", - "eslint": "^7.29.0", + "eslint": "^7.30.0", "eslint-config-airbnb-base": "^14.2.1", "eslint-config-prettier": "^8.3.0", "eslint-plugin-import": "^2.23.4", From dcf00b82b820c7d8dcfbd042e4fa4f5156a082a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Noord?= <13665637+DanielNoord@users.noreply.github.com> Date: Mon, 5 Jul 2021 10:05:26 +0200 Subject: [PATCH 5/7] Fix duplicate golden cookie with autoclickers #762 --- dist/CookieMonsterDev.js | 2 +- dist/CookieMonsterDev.js.map | 2 +- src/Disp/GoldenCookieTimers/GoldenCookieTimers.js | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/dist/CookieMonsterDev.js b/dist/CookieMonsterDev.js index 7aecc0c..1ee0112 100644 --- a/dist/CookieMonsterDev.js +++ b/dist/CookieMonsterDev.js @@ -1,3 +1,3 @@ /*! For license information please see CookieMonsterDev.js.LICENSE.txt */ -(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){var i=t[n];if(void 0!==i)return i.exports;var a=t[n]={exports:{}};return e[n].call(a.exports,a,a.exports,o),a.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};function t(){e.WrinklerButtons&&Game.elderWrath?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")}const n=["","","M","G","T","P","E","Z","Y"],i=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],a=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={},S=Date.now(),B=Date.now();function P(t,o,r){const l=e.ScaleDecimals+1;if(t===1/0)return"Infinity";if(void 0===t)return"0";if(0===e.Scale)return M.Beautify(t,o);if(Number.isFinite(t)){if(t<0)return`-${P(Math.abs(t))}`;let s="";if(0===t)return t.toString();if(t>.001&&t=.01&&t=.01&&t=.01&&t0&&(c+=o,s-=1)}return c}const Bt="CMText",Pt="CMBack",Et="Blue",Nt="Green",Ot="Yellow",Ft="Orange",At="Red",Lt="Purple",Wt="Gray",jt="Pink",Dt="Brown",Ht=[Et,Nt,Ot,Ft,At,Lt,jt,Dt,Wt],Ut=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"],["FavouriteSettingPlaceholder","Click to set this setting as favourite and show it in 'favourite' settings at the top of the Cookie Monster Settings","250px"]],$t={};let Rt,It=0,zt=-1,Vt=[],_t=function(){},Qt=1,Xt=1,qt=1;const Yt=[10,15,30,60,300,600,900,1800],Kt=[1,5,10,15,30],Jt={Frenzy:Ot,"Dragon Harvest":Dt,"Elder frenzy":Nt,Clot:At,"Click frenzy":Et,Dragonflight:jt};let Zt,eo,to,oo,no,io,ao,ro={},lo="",so=[];function co(){let t,o=Game.buyBulk;1===Game.buyMode?Xt=o:o=Xt,1===o?o=Le:10===o?o=We:100===o&&(o=je),l("storeBulk1").style.removeProperty("color"),l("storeBulk10").style.removeProperty("color"),l("storeBulk100").style.removeProperty("color"),1===Game.buyMode?1===e.BuildColour?(Object.keys(o).forEach((t=>{l(`productPrice${Game.Objects[t].id}`).style.color=e[`Colour${o[t].color}`]})),l(`storeBulk${mt}`).style.color=e.ColourGreen):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(Le).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=P(St(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings?1===e.SortBuildings?(t=Object.keys(Le).map((e=>{const t={};return t.name=e,t.pp=Le[e].pp,t.color=Le[e].color,t})),t.sort(((e,t)=>Ht.indexOf(e.color)===Ht.indexOf(t.color)?e.pp-t.pp:Ht.indexOf(e.color)-Ht.indexOf(t.color)))):2===e.SortBuildings?(t=Object.keys(o).map((e=>{const t={};return t.name=e,t.pp=o[e].pp,t.color=o[e].color,t})),t.sort(((e,t)=>Ht.indexOf(e.color)===Ht.indexOf(t.color)?e.pp-t.pp:Ht.indexOf(e.color)-Ht.indexOf(t.color)))):3===e.SortBuildings&&(t=Object.keys(De).map((e=>{const t={};return t.name=e,t.id=Game.Objects[e].id,t.amountUntilNext=De[e].AmountNeeded,t.priceUntilNext=De[e].price,t})),t.sort(((e,t)=>e.id-t.id)),t.sort(((e,t)=>(101!==e.amountUntilNext?e.priceUntilNext:1/0)-(101!==t.amountUntilNext?t.priceUntilNext:1/0)))):(t=Object.keys(Le).map((e=>{const t={};return t.name=e,t.id=Game.Objects[e].id,t})),t.sort(((e,t)=>e.id-t.id)));for(let e=0;e{e.UpgradesNeverCollapse||"products"===t.id?t.style.height="auto":"vaultUpgrades"===t.id?(t.style.height="",t.style.minHeight="0px"):"upgrades"===t.id?(t.style.height="",t.className.includes("hasMenu")?t.style.minHeight="82px":t.style.minHeight="60px"):(t.style.height="",t.style.minHeight="60px")}))}function uo(){if(e.UpBarColour>0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eHt.indexOf(e.color)===Ht.indexOf(t.color)?e.pp-t.pp:Ht.indexOf(e.color)-Ht.indexOf(t.color))):t.sort(((e,t)=>e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",(c.length>0||a>0)&&(c+=a+(o?1===a?" day":" days":"d")+", "),(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function ho(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=Nt):(n=mo(t),o=t>300?At:t>60?Ft:Ot),{text:n,color:o}}function go(){return e.CPSMode?_:0===e.CalcWrink?Game.cookiesPs*(1-Game.cpsSucked):1===e.CalcWrink?Game.cookiesPs*(Re+(1-.05*Ie)):null!==$e[1]&&2===e.CalcWrink&&1===Game.wrinklers[$e[1]].type?Game.cookiesPs*(3*Re/Ie+(1-.05*Ie)):Game.cookiesPs*(Re/Ie+(1-.05*Ie))}function fo(){return 1===e.CalcWrink?He:2===e.CalcWrink?$e[0]:0}function Co(e,t,o){const n=document.createElement("div");n.id=e,n.style.height="12px",n.style.margin="0px 10px",n.style.position="relative";const i=document.createElement("div");i.style.width="100%",i.style.height="10px",i.style.margin="auto",i.style.position="absolute",i.style.left="0px",i.style.top="0px",i.style.right="0px",i.style.bottom="0px";const a=document.createElement("span");a.style.display="inline-block",a.style.textAlign="right",a.style.fontSize="10px",a.style.width="108px",a.style.marginRight="5px",a.style.verticalAlign="text-top",a.textContent=t,i.appendChild(a);for(let e=0;e{let n,i=Game.buyBulk;1===Game.buyMode?Qt=i:i=Qt,1===i&&(i=Le),10===i&&(i=We),100===i&&(i=je),t+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[t].childNodes[1].textContent=Game.Objects[o].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[t].textContent=P(i[o].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].className=Bt+i[o].color,n=e.PPDisplayTime?mo(Math.round(i[o].pp)):P(Math.round(i[o].pp),2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].textContent=n;const a=ho((Game.Objects[o].bulkPrice-(Game.cookies+fo()))/go());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[t].className=Bt+a.color,"Done!"===a.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&xt(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(xt(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&xt(e.fortune.name)&&(t*=1.07),e.grandma&&xt(e.grandma.name)&&(t*=1+.01*yt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&xt(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function Mo(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;xt("Thousand fingers")&&(t+=.1),xt("Million fingers")&&(t*=5),xt("Billion fingers")&&(t*=10),xt("Trillion fingers")&&(t*=20),xt("Quadrillion fingers")&&(t*=20),xt("Quintillion fingers")&&(t*=20),xt("Sextillion fingers")&&(t*=20),xt("Septillion fingers")&&(t*=20),xt("Octillion fingers")&&(t*=20),xt("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(yt).forEach((e=>{"Cursor"!==yt[e].name&&(n+=yt[e].amount)})),t*=n,o*=To(e),o*=Game.magicCpS("Cursor"),o*=wt("cursorCps"),Game.ComputeCps(.1,xt("Reinforced index finger")+xt("Carpal tunnel prevention cream")+xt("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{xt(Game.GrandmaSynergies[e])&&(o*=2)})),xt("Bingo center/Research facility")&&(o*=4),xt("Ritual rolling pins")&&(o*=2),xt("Naughty list")&&(o*=2),xt("Elderwort biscuits")&&(o*=1.02),o*=wt("grandmaCps"),xt("Cat ladies"))for(let e=0;e{"Grandma"!==yt[e].name&&(i+=yt[e].amount)})),o*=1+.01*Gt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=To(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function So(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(yt).forEach((t=>{yt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(xt("Starlove")&&(e=3),Game.hasGod){const t=Tt("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function Bo(){J=Game.UpgradesOwned,Z=Game.pledges,ee=Game.AchievementsOwned,te=Game.heavenlyPower,oe=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=yt[e];void 0===o&&(yt[e]=Mo(e),o=yt[e],yo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(ae=t.minigame.slot[0],re=t.minigame.slot[1],le=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),yt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=bt[e];void 0===o&&(bt[e]=So(e),o=bt[e]),o.bought=t.bought,bt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=kt[e];void 0===o&&(kt[e]=xo(e),o=kt[e]),o.won=t.won,kt[e]=o})),wo(),ne=me,ie=he}function Po(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function Eo(e){e.appendChild(Po("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(Po("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(Po("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(Po("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===to){e.appendChild(Po("Production left till next achievement")),e.lastChild.id="CMTooltipProductionLeftHeader";const t=document.createElement("div");t.id="CMTooltipProductionLeft",e.appendChild(t)}if("b"===to){e.appendChild(Po("Buildings (price / PP) left till next achievement")),e.lastChild.id="CMTooltipNextAchievementHeader";const t=document.createElement("div");t.id="CMTooltipNextAchievement",e.appendChild(t)}}function No(t,o){let n="";return n=t.pp<=0||t.pp===1/0?Wt:t.pp0&&(n=At),n}function Oo(){let e=1;return Object.keys(Game.buffs).forEach((t=>{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function Fo(e){kt[e]&&0===kt[e].won&&(kt[e].won=1,"shadow"!==Game.Achievements[e].pool&&(ee+=1))}function Ao(){de=0;let e=1;const t={};Object.keys(Game.Objects).forEach((e=>{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),ce=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(oe)*te*function(){let e=0;if(xt("Heavenly chip secret")&&(e+=.05),xt("Heavenly cookie stand")&&(e+=.2),xt("Heavenly bakery")&&(e+=.25),xt("Heavenly confectionery")&&(e+=.25),xt("Heavenly key")&&(e+=.25),e*=1+.05*Gt("Dragon God"),xt("Lucky digit")&&(e*=1.01),xt("Lucky number")&&(e*=1.01),xt("Lucky payout")&&(e*=1.01),Game.hasGod){const t=Tt("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=wt("cps"),xt("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];xt(o.name)&&("function"==typeof o.power?e*=1+.01*bt[o.name].power(bt[o.name]):e*=1+.01*o.power)})),xt("Specialized chocolate chips")&&(e*=1.01),xt("Designer cocoa beans")&&(e*=1.02),xt("Underworld ovens")&&(e*=1.03),xt("Exotic nuts")&&(e*=1.04),xt("Arcane sugar")&&(e*=1.05),xt("Increased merriness")&&(e*=1.15),xt("Improved jolliness")&&(e*=1.15),xt("A lump of coal")&&(e*=1.01),xt("An itchy sweater")&&(e*=1.01),xt("Santa's dominion")&&(e*=1.2),xt("Fortune #100")&&(e*=1.01),xt("Fortune #101")&&(e*=1.07),xt("Dragon scale")&&(e*=1.03);let o=1;if(Tt){let t=Tt("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=Tt("ages"),1===t?e*=1+.15*Math.sin(S/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(S/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(S/1e3/86400*Math.PI*2)),t=Tt("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=Tt("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=Tt("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}xt("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=ee/25;let i=1;if(xt("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*Gt("Breath of Milk"),Tt){const e=Tt("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=wt("milk");let a=1;xt("Kitten helpers")&&(a*=1+.1*n*i),xt("Kitten workers")&&(a*=1+.125*n*i),xt("Kitten engineers")&&(a*=1+.15*n*i),xt("Kitten overseers")&&(a*=1+.175*n*i),xt("Kitten managers")&&(a*=1+.2*n*i),xt("Kitten accountants")&&(a*=1+.2*n*i),xt("Kitten specialists")&&(a*=1+.2*n*i),xt("Kitten experts")&&(a*=1+.2*n*i),xt("Kitten consultants")&&(a*=1+.2*n*i),xt("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),xt("Kitten marketeers")&&(a*=1+.15*n*i),xt("Kitten analysts")&&(a*=1+.125*n*i),xt("Kitten executives")&&(a*=1+.115*n*i),xt("Kitten angels")&&(a*=1+.1*n*i),xt("Fortune #103")&&(a*=1+.05*n*i),Object.keys(yt).forEach((e=>{const t=yt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&xt("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),de+=t.amount*a})),xt('"egg"')&&(de+=9),e*=a;let r=1;if(xt("Chicken egg")&&(r*=1.01),xt("Duck egg")&&(r*=1.01),xt("Turkey egg")&&(r*=1.01),xt("Quail egg")&&(r*=1.01),xt("Robin egg")&&(r*=1.01),xt("Ostrich egg")&&(r*=1.01),xt("Cassowary egg")&&(r*=1.01),xt("Salmon roe")&&(r*=1.01),xt("Frogspawn")&&(r*=1.01),xt("Shark egg")&&(r*=1.01),xt("Turtle egg")&&(r*=1.01),xt("Ant larva")&&(r*=1.01),xt("Century egg")){let e=10*Math.floor((B-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),Oe=1+.1*(1-(1-e/100)**3),r*=Oe}e*=r,xt("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+Gt("Radiant Appetite");const l=de*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&Fo(Game.CpsAchievements[e].name)})),pe=l;const{n:s}=Game.shimmerTypes.golden,c=Gt("Dragon's Fortune");for(let t=0;t{xt(e[o])&&(t+=.1)}))}e*=t}if(xt("Shimmering veil [off]")){let t=.5;xt("Reinforced membrane")&&(t+=.1),e*=1+t}xt("Magic shenanigans")&&(e*=1e3),xt("Occult obstruction")&&(e*=0),de=Game.runModHookOnValue("cps",de),e*=Oo(),de*=e}const Lo=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Wo=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],jo=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],Do=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Ho=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function Uo(e){return kt[e]?kt[e].won:0}function $o(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{xt(Game.GrandmaSynergies[t])&&(e+=1)})),!Uo("Elder")&&e>=7&&Fo("Elder"),!Uo("Veteran")&&e>=14&&Fo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(yt).forEach((e=>{t+=yt[e].amount,i=Math.min(yt[e].amount,i),Uo("Mathematician")||yt[e].amount=1&&Fo("One with everything"),1===o&&Fo("Mathematician"),1===n&&Fo("Base 10"),i>=100&&Fo("Centennial"),i>=150&&Fo("Centennial and a half"),i>=200&&Fo("Bicentennial"),i>=250&&Fo("Bicentennial and a half"),i>=300&&Fo("Tricentennial"),i>=350&&Fo("Tricentennial and a half"),i>=400&&Fo("Quadricentennial"),i>=450&&Fo("Quadricentennial and a half"),i>=500&&Fo("Quincentennial"),i>=550&&Fo("Quincentennial and a half"),i>=600&&Fo("Sexcentennial"),t>=100&&Fo("Builder"),t>=500&&Fo("Architect"),t>=1e3&&Fo("Engineer"),t>=2e3&&Fo("Lord of Constructs"),t>=4e3&&Fo("Grand design"),t>=8e3&&Fo("Ecumenopolis"),J>=20&&Fo("Enhancer"),J>=50&&Fo("Augmenter"),J>=100&&Fo("Upgrader"),J>=200&&Fo("Lord of Progress"),J>=300&&Fo("The full picture"),J>=400&&Fo("When there's nothing left to add"),t>=4e3&&J>=300&&Fo("Polymath"),t>=8e3&&J>=400&&Fo("Renaissance baker"),yt.Cursor.amount+yt.Grandma.amount>=777&&Fo("The elder scrolls");let a=!0;Object.keys(Wo).forEach((e=>{xt(Wo[e])||(a=!1)})),a&&Fo("Spooky cookies");let r=!0;if(Object.keys(jo).forEach((e=>{xt(jo[e])||(r=!1)})),r&&Fo("Let it snow"),xt("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{xt(e[o].name)&&(t+=1)})),t>=e.length&&Fo("O Fortuna")}}function Ro(e,t){Bo(),yt[e].amount+=t;const o=yt[e];"Cursor"===e?(o.amount>=1&&Fo("Click"),o.amount>=2&&Fo("Double-click"),o.amount>=50&&Fo("Mouse wheel"),o.amount>=100&&Fo("Of Mice and Men"),o.amount>=200&&Fo("The Digital"),o.amount>=300&&Fo("Extreme polydactyly"),o.amount>=400&&Fo("Dr. T"),o.amount>=500&&Fo("Thumbs, phalanges, metacarpals"),o.amount>=600&&Fo("With her finger and her thumb"),o.amount>=700&&Fo("Gotta hand it to you"),o.amount>=800&&Fo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&Fo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=ee;return Ao(),$o(),n!==ee&&Ao(),de-Game.cookiesPs}function Io(e,t,o){let n=e,i=0;for(;nt.plantsById[t.plot[oo[1]][oo[0]][0]-1].mature,o=t.plantsById[t.plot[oo[1]][oo[0]][0]-1].name;l("CMTooltipBorder").appendChild(Po("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?P(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${P(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?P(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${P(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?P(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${P(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?P(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${P(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===to?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(Po("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarAutosaveBar").textContent=Math.ceil(t):l("CMTimerBarAutosaveBar").textContent="",l("CMTimerBarAutosaveTime").textContent=Math.ceil(t),n+=1}else l("CMTimerBarAutosave").style.display="none";0!==Game.shimmerTypes.golden.spawned||Game.Has("Golden switch [off]")?l("CMTimerBarGC").style.display="none":(l("CMTimerBarGC").style.display="",l("CMTimerBarGCMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=Co(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Jt[Game.buffs[t].name]?Jt[Game.buffs[t].name]:Lt,a.lastChild.children[1].className=Pt+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ao!==n&&(ao=n,Go())}}(),bo(),Vo(),function(){if(1===e.TooltipWrink&&1===It){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===Vt[t]||void 0===Vt[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),zt=t,Vt[t]=1}}else Vt[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[zt],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[zt].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),yt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=P(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu(),t(),e.Scale){let e=l("cookies").innerHTML.replace(/.*(?=
)/i,P(Game.cookies));Game.prefs.monospace&&(e=`${e}`),l("cookies").innerHTML=e}}function Qo(){E.addLatest(Game.computedMouseCps)}class Xo{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}calcSum(e){let t=e;return t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length),0===t?0:this.queue.slice(-t).reduce(((e,t)=>e+t),0)}}function qo(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+ft;Game.cpsSucked>0&&(o+=He),lt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-j,i=Math.max(0,Game.cookies-D)/n,a=Math.max(0,He-H)/n,r=Math.max(0,$e[0]-U)/n,l=Math.max(0,o-Ae)/n,s=(Game.cookieClicks-$)/n;for(let e=0;e{if(e.PPRigidelMode&&1===o)t[n].color=Wt;else{t[n].color=No(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const i=Game.Objects[n].getSumPrice(o);Game.cookiesPs?t[n].pp=Math.max(i-(Game.cookies+fo()),0)/Game.cookiesPs+i/t[n].bonus:t[n].pp=i/t[n].bonus,e.PPRigidelMode&&1===o||ht.push([t[n].pp,o,i])}))}function Jo(){!function(){ut=1/0,ht=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Ko(Le,1),Ko(We,10),Ko(je,100),ht.sort(((e,t)=>e[0]-t[0]));let t=e.PPExcludeTop;if(e.PPOnlyConsiderBuyable)for(;ht[t][2]>Game.cookies&&(t+=1,ht.length!==t+1););ut=ht[t][0],mt=ht[t][1],Yo(Le,1),Yo(We,10),Yo(je,100)}(),Object.keys(ze).forEach((e=>{Game.cookiesPs?ze[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+fo()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/ze[e].bonus:ze[e].pp=Game.Upgrades[e].getPrice()/ze[e].bonus,Number.isNaN(ze[e].pp)&&(ze[e].pp=1/0),ze[e].color=No(ze[e],Game.Upgrades[e].getPrice())})),window.CookieMonsterData.Objects1=JSON.parse(JSON.stringify(Le)),window.CookieMonsterData.Objects10=JSON.parse(JSON.stringify(We)),window.CookieMonsterData.Objects100=JSON.parse(JSON.stringify(je)),window.CookieMonsterData.Upgrades=[],Object.entries(ze).forEach((e=>{window.CookieMonsterData.Upgrades[e[0]]=JSON.parse(JSON.stringify(e[1]))}))}function Zo(e,t,o,n,i){let a=o,r=0;for(let o=0;o{t[o]={},t[o].bonus=Ro(o,e),1!==e&&(q=1)})),t}function tn(){Object.keys(Game.Objects).forEach((e=>{Le[e].price=Zo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),We[e].price=Zo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),je[e].price=Zo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100),De[e].price=Zo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,De[e].AmountNeeded)}))}function on(){Le=en(1),We=en(10),je=en(100),ze=[],Object.keys(Game.Upgrades).forEach((t=>{const o=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){Bo(),"Shimmering veil [on]"===bt[e].name?bt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===bt[e].name?bt["Golden switch [off]"].bought=0:bt[e].bought=(bt[e].bought+1)%2,Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(J+=1),"Elder Pledge"===e?(Z+=1,Z>0&&Fo("Elder nap"),Z>=5&&Fo("Elder slumber")):"Elder Covenant"===e?Fo("Elder calm"):"Prism heart biscuits"===e?Fo("Lovely cookies"):"Heavenly key"===e&&Fo("Wholesome");const t=ee;Ao(),$o(),t!==ee&&Ao();const o=function(){let e=0;xt("Thousand fingers")&&(e+=.1),xt("Million fingers")&&(e*=5),xt("Billion fingers")&&(e*=10),xt("Trillion fingers")&&(e*=20),xt("Quadrillion fingers")&&(e*=20),xt("Quintillion fingers")&&(e*=20),xt("Sextillion fingers")&&(e*=20),xt("Septillion fingers")&&(e*=20),xt("Octillion fingers")&&(e*=20),xt("Nonillion fingers")&&(e*=20);let t=0;Object.keys(yt).forEach((e=>{t+=yt[e].amount})),t-=yt.Cursor.amount,e*=t,xt("Plastic mouse")&&(e+=.01*de),xt("Iron mouse")&&(e+=.01*de),xt("Titanium mouse")&&(e+=.01*de),xt("Adamantium mouse")&&(e+=.01*de),xt("Unobtainium mouse")&&(e+=.01*de),xt("Eludium mouse")&&(e+=.01*de),xt("Wishalloy mouse")&&(e+=.01*de),xt("Fantasteel mouse")&&(e+=.01*de),xt("Nevercrack mouse")&&(e+=.01*de),xt("Armythril mouse")&&(e+=.01*de),xt("Technobsidian mouse")&&(e+=.01*de),xt("Plasmarble mouse")&&(e+=.01*de),xt("Miraculite mouse")&&(e+=.01*de),xt("Fortune #104")&&(e+=.01*de);let o=1;if(xt("Santa's helpers")&&(o*=1.1),xt("Cookie egg")&&(o*=1.1),xt("Halo gloves")&&(o*=1.1),xt("Dragon claw")&&(o*=1.03),xt("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,xt("Luminous gloves")?20:10)),o*=wt("click"),yt.Temple.minigameLoaded&&Tt){const e=Tt("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*Gt("Dragon Cursor");let n=o*Game.ComputeCps(1,xt("Reinforced index finger")+xt("Carpal tunnel prevention cream")+xt("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[de-Game.cookiesPs,o]:[de-Game.cookiesPs]}return[]}(t);"Elder Pledge"===t?(ze[t]={bonus:Game.cookiesPs-R},1===e.CalcWrink?ze[t].bonus-=I:2===e.CalcWrink&&(ze[t].bonus-=z),Number.isFinite(ze[t].bonus)||(ze[t].bonus=0)):(ze[t]={},o[0]&&(ze[t].bonus=o[0]),o[1]&&(ze[t].bonusMouse=o[1]))}))}function nn(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,Ke=nn(7,e,Pe),qe=2*Ke[1]/Pe,Ye=Ke[2]/60/60/6/Be,et=nn(6,e,Ee),Je=2*et[1]/Ee,Ze=et[2]/60/60/6/Be,nt=nn(7,7*e,Pe),tt=2*nt[1]/Pe,ot=nt[2]/60/60/6/Be,rt=nn(6,7*e,Ee),it=2*rt[1]/Ee,at=rt[2]/60/60/6/Be}function rn(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Q,i=Math.max(0,o-X)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?Qe+=e:"cookie"===o.pool?Xe+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(_e+=e)}}))}function sn(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),Fe=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(Fe*=2)}}function cn(){Ce=900*Se/.15,Ce*=Be;const e=Oo();e>0?Ce/=e:Ce=0,ye=Pe*(.15*Ce)+13,be=Ee*(.15*Ce)+13,ke=7*Ce,Ge=Pe*(.15*ke)+13,ve=Ee*(.15*ke)+13,we=2*Ce,xe=.15*we,Te=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountTe&&(Te=2*Game.Objects[e].price,Me=e)}))}function dn(){let e=1,t=1,o=1;xt("Green yeast digestives")&&(o*=1.01),xt("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),Pe=o*e,Ee=o*t,Be=1,0===Game.shimmerTypes.golden.n&&(Be*=1+1.23*Game.auraMult("Dragon's Fortune"))}function pn(e){const t={};Object.keys(Game.Objects).forEach((o=>{if(0!==Object.keys(De).length&&De[o].TotalNeeded>Game.Objects[o].amount&&!e)t[o]={AmountNeeded:De[o].TotalNeeded-Game.Objects[o].amount,TotalNeeded:De[o].TotalNeeded,price:Game.Objects[o].getSumPrice(De[o].TotalNeeded-Game.Objects[o].amount)};else{const e=function(e){const t=Game.AchievementsOwned;let o=100,n=100;for(;o>-1;)if(Ro(e,o),ee>t)n=o,o-=10;else{if(100===o)return 101;for(o+=1;o<=n;){if(Ro(e,o),ee>t)return o;o+=1}}return 101}(o);t[o]={AmountNeeded:e,TotalNeeded:Game.Objects[o].amount+e,price:Game.Objects[o].getSumPrice(e)}}})),De=t}function un(){He=0,Ue=0,$e=[0,null];for(let e=0;e$e[0]&&($e=[t,e]))}}function mn(){wo(),un(),cn(),dn(),an(),ln(),sn(),N=new Xo(Yt[Yt.length-1]),O=new Xo(Yt[Yt.length-1]),F=new Xo(Yt[Yt.length-1]),A=new Xo(Yt[Yt.length-1]),L=new Xo(Kt[Kt.length-1]),W=new Xo(5),E=new Xo(20*Kt[Kt.length-1]),rn(),pn(),qo(),on(),tn(),Jo()}const hn={CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,CalcWrink:0,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,TimeFormat:0,DetailedTime:1,PPDisplayTime:0,BuildColour:1,PPOnlyConsiderBuyable:0,PPExcludeTop:0,PPRigidelMode:0,PPSecondsLowerLimit:0,ColourBlue:"#4bb8f0",ColourGreen:"#00ff00",ColourYellow:"#ffff00",ColourOrange:"#ff7f00",ColourRed:"#ff0000",ColourPurple:"#ff00ff",ColourGray:"#b3b3b3",ColourPink:"#ff1493",ColourBrown:"#8b4513",BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,AutosaveTimerBar:0,UpBarColour:1,UpgradeBarFixedPos:1,SortBuildings:0,SortUpgrades:0,UpgradesNeverCollapse:0,DragonAuraInfo:1,GrimoireBar:1,GCTimer:1,Favicon:1,WrinklerButtons:1,HideSectionsButtons:0,TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnBon:1,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,MissingAchievements:0,UpStats:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,ColourGCFlash:"#ffffff",GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,ColourFortuneFlash:"#ffffff",FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,ColourSeaFlash:"#ffffff",SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,ColourGardFlash:"#ffffff",GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,ColourMagicFlash:"#ffffff",MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,ColourWrinklerFlash:"#ffffff",WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,ColourWrinklerMaxFlash:"#ffffff",WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",BulkBuyBlock:0,FavouriteSettings:1,Header:{Favourite:1,Calculation:1,Notation:1,Colours:1,BarsDisplay:1,Tooltip:1,Statistics:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Achievs:1,Misc:1,InfoTab:1}},gn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function fn(){1===e.BotBar?(l("CMBotBar").style.display="",bo()):l("CMBotBar").style.display="none",Go()}function Cn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),bo(),co(),uo()}function yn(){1===e.Favicon&&y>0?ct.wrath?l("CMFavicon").href="https://CookieMonsterTeam.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://CookieMonsterTeam.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class bn{constructor(e,t){this.type=e,this.group=t}}class kn extends bn{constructor(e,t,o){super(e,t),this.desc=o}}class Gn extends bn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}class vn extends bn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.toggle=i,void 0!==a&&(this.func=a)}}class wn extends bn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}const xn={CPSMode:new vn("bool","Calculation",["Current cookies per second","Average cookies per second"],"Calculate times using current cookies per second or average cookies per second",!1),AvgCPSHist:new vn("bool","Calculation",["Average CPS in past 10s","Average CPS in past 15s","Average CPS in past 30s","Average CPS in past 1m","Average CPS in past 5m","Average CPS in past 10m","Average CPS in past 15m","Average CPS in past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new vn("bool","Calculation",["Average clicks in past 1s","Average clicks in past 5s","Average clicks in past 10s","Average clicks in past 15s","Average clicks in past 30s"],"How much time average Cookie Clicks should consider",!1),CalcWrink:new vn("bool","Calculation",["Calculate with wrinklers OFF","Calculate with wrinklers ON","Calculate with single fattest wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) wrinklers",!0,(()=>{se=!0})),Scale:new vn("bool","Notation",["Game's setting scale","Metric","Short scale","Short scale (Abbreviated)","Scientific notation","Engineering notation"],"Change how long numbers are formatted",!1,(()=>{Cn()})),ScaleDecimals:new vn("bool","Notation",["1 decimals","2 decimals","3 decimals"],'Set the number of decimals used when applicable. This only works with Cookie Monster scales and not with "Game\'s Setting Scale"',!1,(()=>{Cn()})),ScaleSeparator:new vn("bool","Notation",[". for decimals (standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(()=>{Cn()})),ScaleCutoff:new Gn("numscale","Notation","Notation cut-off point: ","The number from which Cookie Monster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),TimeFormat:new vn("bool","Notation",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new vn("bool","Notation",["Detailed time OFF","Detailed time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(()=>{1===e.DetailedTime?Game.sayTime=_t:Game.sayTime=M.sayTime})),PPDisplayTime:new vn("bool","Notation",["PP as value (standard)","PP as time unit"],"Display PP as calculated value or as approximate time unit. Note that PP does not translate directly into a time unit and this is therefore only an approximation.",!1),BuildColour:new vn("bool","Colours",["Building colours OFF","Building colours ON"],"Colour code buildings",!0,(()=>{co()})),PPOnlyConsiderBuyable:new vn("bool","Colours",["Don't ignore non-buyable","Ignore non-buyable"],"Makes Cookie Monster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),PPExcludeTop:new vn("bool","Colours",["Don't ignore any","Ignore 1st best","Ignore 1st and 2nd best","Ignore 1st, 2nd and 3rd best"],"Makes Cookie Monster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPRigidelMode:new vn("bool","Colours",["Rigidel mode OFF","Rigidel mode ON"],'Makes Cookie Monster ignore all "buy 1" options when colouring PP in order to stay at a total building count ending in 10 for pantheon god Rigidel',!0),PPSecondsLowerLimit:new Gn("numscale","Colours","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),ColourBlue:new kn("colour","Colours","Standard colour is blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels"),ColourGreen:new kn("colour","Colours","Standard colour is green. Used to show best PP building, for Blood Frenzy bar, and for various labels"),ColourYellow:new kn("colour","Colours","Standard colour is yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels"),ColourOrange:new kn("colour","Colours","Standard colour is orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels"),ColourRed:new kn("colour","Colours","Standard colour is Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels"),ColourPurple:new kn("colour","Colours","Standard colour is purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels"),ColourGray:new kn("colour","Colours","Standard colour is gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar"),ColourPink:new kn("colour","Colours","Standard colour is pink. Used for Dragonflight bar"),ColourBrown:new kn("colour","Colours","Standard colour is brown. Used for Dragon Harvest bar"),BotBar:new vn("bool","BarsDisplay",["Bottom bar OFF","Bottom bar ON"],"Building information",!0,(()=>{fn()})),TimerBar:new vn("bool","BarsDisplay",["Timer bar OFF","Timer bar ON"],"Bar with timers for golden cookie, season popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(()=>{vo()})),TimerBarPos:new vn("bool","BarsDisplay",["Timer bar position (top left)","Timer bar position (bottom)"],"Placement of the timer bar",!1,(()=>{0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),Go()})),TimerBarOverlay:new vn("bool","BarsDisplay",["Timer bar overlay OFF","Timer bar overlay only seconds","Timer bar overlay full"],"Overlay on timers displaying seconds and/or percentage left",!0),AutosaveTimerBar:new vn("bool","BarsDisplay",["Autosave timer bar OFF","Autosave timer bar ON"],"Show a timer counting down till next autosave in the timer bar",!0),UpBarColour:new vn("bool","BarsDisplay",["Upgrade colours/bar OFF","Upgrade colours with bar ON","Upgrade colours without bar ON"],"Colour code upgrades and optionally add a counter bar",!1,(()=>{1===e.UpBarColor?(l("CMUpgradeBar").style.display="",uo()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",uo()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),UpgradeBarFixedPos:new vn("bool","BarsDisplay",["Upgrade bar fixed position OFF","Upgrade bar fixed position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(()=>{1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),SortBuildings:new vn("bool","BarsDisplay",["Sort buildings: default","Sort buildings: PP of x1 purchase","Sort buildings: PP of selected bulk mode","Sort buildings: price until next achievement"],"Sort the display of buildings in default order, by PP, or until next achievement",!1,(()=>{co()})),SortUpgrades:new vn("bool","BarsDisplay",["Sort upgrades: default","Sort upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(()=>{uo()})),UpgradesNeverCollapse:new vn("bool","BarsDisplay",["Upgrades always expanded OFF","Upgrades always expanded ON"],"Toggle to make the upgrades sections always expanded to the size needed to display all upgrades",!0,(()=>{po()})),DragonAuraInfo:new vn("bool","BarsDisplay",["Extra dragon aura info OFF","Extra dragon aura info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),GrimoireBar:new vn("bool","BarsDisplay",["Grimoire magic meter timer OFF","Grimoire magic meter timer ON"],"A timer overlay showing how long till the Grimoire magic meter is full",!0),GCTimer:new vn("bool","BarsDisplay",["Golden cookie timer OFF","Golden cookie timer ON"],"A timer on the golden cookie when it has been spawned",!0,(()=>{1===e.GCTimer?Object.keys(ro).forEach((e=>{ro[e].style.display="block",ro[e].style.left=gt[e].l.style.left,ro[e].style.top=gt[e].l.style.top})):Object.keys(ro).forEach((e=>ro[e].style.display="none"))})),Favicon:new vn("bool","BarsDisplay",["Favicon OFF","Favicon ON"],"Update favicon with golden/wrath cookie",!0,(()=>{yn()})),WrinklerButtons:new vn("bool","BarsDisplay",["Extra wrinkler buttons OFF","Extra wrinkler buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(()=>{t()})),HideSectionsButtons:new vn("bool","BarsDisplay",["Hide buildings/upgrades button OFF","Hide buildings/upgrades button ON"],"Show buttons for hiding and showing the buildings and upgrades sections in the right column",!0,(()=>{e.HideSectionsButtons?l("CMSectionHidButtons").style.display="":l("CMSectionHidButtons").style.display="none"})),TooltipBuildUpgrade:new vn("bool","Tooltip",["Building/upgrade tooltip information OFF","Building/upgrade tooltip information ON"],"Extra information in building/upgrade tooltips",!0),TooltipAmor:new vn("bool","Tooltip",["Buildings tooltip amortization information OFF","Buildings tooltip amortization information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new vn("bool","Tooltip",["Tooltip lucky warning OFF","Tooltip lucky warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new vn("bool","Tooltip",["Tooltip lucky frenzy warning OFF","Tooltip lucky frenzy warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new vn("bool","Tooltip",["Tooltip conjure warning OFF","Tooltip conjure warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new vn("bool","Tooltip",["Tooltip conjure frenzy warning OFF","Tooltip conjure frenzy warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new vn("bool","Tooltip",["Tooltip edifice warning OFF","Tooltip edifice warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new Gn("numscale","Tooltip","Tooltip warning at x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnBon:new vn("bool","Tooltip",["Calculate tooltip warning with bonus CPS OFF","Calculate tooltip warning with bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),ToolWarnPos:new vn("bool","Tooltip",["Tooltip warning position (left)","Tooltip warning position (bottom)"],"Placement of the warning boxes",!1,(()=>{zo()})),TooltipGrim:new vn("bool","Tooltip",["Grimoire tooltip information OFF","Grimoire tooltip information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new vn("bool","Tooltip",["Wrinkler tooltip OFF","Wrinkler tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new vn("bool","Tooltip",["Sugar lump tooltip OFF","Sugar lump tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new vn("bool","Tooltip",["Garden plots tooltip OFF","Garden plots tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new vn("bool","Tooltip",["Pantheon tooltip OFF","Pantheon tooltip ON"],"Shows additional info in the pantheon tooltip",!0),TooltipAscendButton:new vn("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new vn("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new vn("bool","Statistics",["Missing upgrades OFF","Missing upgrades ON"],"Shows missing upgrades in statistics menu",!0),MissingAchievements:new vn("bool","Statistics",["Missing Achievements OFF","Missing Normal Achievements ON"],"Shows missing normal achievements in statistics menu.",!0),UpStats:new vn("bool","Statistics",["Statistics update rate (default)","Statistics update rate (1s)"],"Default rate is once every 5 seconds",!1),HeavenlyChipsTarget:new Gn("numscale","Statistics","Heavenly chips target: ",'Use this to set a heavenly chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new vn("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many golden cookies you have missed",!0),Title:new vn("bool","NotificationGeneral",["Title OFF","Title ON","Title pinned tab highlight"],'Update title with colden cookie/season popup timers; pinned tab highlight only changes the title when a golden cookie/season popup spawns; "!" means that golden cookie/reindeer can spawn',!0),GeneralSound:new vn("bool","NotificationGeneral",["Consider game volume setting OFF","Consider game volume setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new vn("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when golden cookie spawns",!0,(()=>{gn(e.GCNotification)})),GCFlash:new vn("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on golden cookie",!0),ColourGCFlash:new kn("colour","NotificationGC","The colour of the GC flash, standard colour is white"),GCSound:new vn("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on golden cookie",!0),GCVolume:new wn("vol","NotificationGC",[],"Volume"),GCSoundURL:new vn("url","NotificationGC","Sound URL:","URL of the sound to be played when a golden cookie spawns"),FortuneNotification:new vn("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when fortune cookie is on the ticker",!0,(()=>{gn(e.FortuneNotification)})),FortuneFlash:new vn("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on fortune cookie spawn",!0),ColourFortuneFlash:new kn("colour","NotificationFC","The colour of the fortune flash, standard colour is white"),FortuneSound:new vn("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on fortune cookie spawn",!0),FortuneVolume:new wn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new vn("url","NotificationFC","Sound URL:","URL of the sound to be played when the ticker has a fortune cookie"),SeaNotification:new vn("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on season popup",!0,(()=>{gn(e.SeaNotification)})),SeaFlash:new vn("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on season popup",!0),ColourSeaFlash:new kn("colour","NotificationSea","The colour of the season popup flash, standard colour is white"),SeaSound:new vn("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on season popup",!0),SeaVolume:new wn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new vn("url","NotificationSea","Sound URL:","URL of the sound to be played when on season popup spawns"),GardFlash:new vn("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on garden tick",!0),ColourGardFlash:new kn("colour","NotificationGard","The colour of the garden flash, standard colour is white"),GardSound:new vn("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on garden tick",!0),GardVolume:new wn("vol","NotificationGard",[],"Volume"),GardSoundURL:new vn("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new vn("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(()=>{gn(e.MagicNotification)})),MagicFlash:new vn("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),ColourMagicFlash:new kn("colour","NotificationMagi","The colour of the magic flash, standard colour is white"),MagicSound:new vn("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new wn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new vn("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new vn("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a wrinkler appears",!0,(()=>{gn(e.WrinklerNotification)})),WrinklerFlash:new vn("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a wrinkler appears",!0),ColourWrinklerFlash:new kn("colour","NotificationWrink","The colour of the wrinkler flash, standard colour is white"),WrinklerSound:new vn("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a wrinkler appears",!0),WrinklerVolume:new wn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new vn("url","NotificationWrink","Sound URL:","URL of the sound to be played when a wrinkler appears"),WrinklerMaxNotification:new vn("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of wrinklers has appeared",!0,(()=>{gn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new vn("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),ColourWrinklerMaxFlash:new kn("colour","NotificationWrinkMax","The colour of the maximum wrinkler flash, standard colour is white"),WrinklerMaxSound:new vn("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of wrinklers has appeared",!0),WrinklerMaxVolume:new wn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new vn("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of wrinklers has appeared"),BulkBuyBlock:new vn("bool","Miscellaneous",["Block bulk buying OFF","Block bulk buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0),FavouriteSettings:new vn("bool","Miscellaneous",["Favourite settings section OFF","Favourite settings section ON","Favourite settings section ON (Locked)"],"Show stars before each setting which allows selecting it for a 'favourites' section at the top of the Cookie Monster settings. Setting this to Locked removes the stars but shows the 'favourites' section",!0,(()=>{Game.UpdateMenu()}))};function Tn(){return JSON.stringify({favouriteSettings:so,settings:e,version:"2.031.9"})}function Mn(){if(ge!==Game.dragonLevel||se){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{if(e=n,Game.Objects[e].amount{yt[e]=Mo(e)})),bt=[],Object.keys(Game.Upgrades).forEach((e=>{bt[e]=So(e)})),kt=[],Object.keys(Game.Achievements).forEach((e=>{kt[e]=xo(e)})),Bo()}let Pn=!1;function En(t,o,n){(1===e[o]||n)&&3===t&&!1===Pn||1===t?(l("CMFlashScreen").style.backgroundColor=e[`Colour${o}`],l("CMFlashScreen").style.opacity="0.5",3===t?(l("CMFlashScreen").style.display="inline",setTimeout((()=>{En(2,o,!0)}),1e3/Game.fps)):setTimeout((()=>{En(0,o,!0)}),1e3/Game.fps)):2===t?(l("CMFlashScreen").style.opacity="1",setTimeout((()=>{En(1,o,!0)}),1e3/Game.fps)):0===t&&(l("CMFlashScreen").style.display="none")}function Nn(t,o,n,i){if((1===e[o]||i)&&!1===Pn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function On(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===Pn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function Fn(){if(io!==Game.OnAscend&&(io=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(fn(),vo()),ko()),!Game.OnAscend&&0===Game.AscendTimer){r!==Object.keys(Game.mods).length&&(Bn(),mn(),r=Object.keys(Game.mods).length),se&&(pn(!0),on(),Game.Has("Golden switch [off]")?(Bo(),bt["Golden switch [off]"].bought=0,Ao(),Se=de):Se=Game.cookiesPs,dn(),cn(),ln(),an(),Mn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)Ct[e][t]=Sn(e,t)}(),sn(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;Bo();let t=2;5!==ne&&18!==ne||(t-=1),5!==ie&&18!==ie||(t-=1),ne=5,ie=18;for(let e=0;e{yt[t].amount>0&&(e=t)})),yt[e].amount-=1,K-=1}return Object.keys(yt).forEach((t=>{const o=yt[t];e+=St(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),ft=e}(),se=0);const t=Game.auraMult("Fierce Hoarder")>0;!Y&&t?(Y=!0,q=1):Y&&!t&&(Y=!1,q=1),q&&(tn(),q=0),function(){un(),Jo(),pn(!1),function(){Re=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(yt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}Ie=e,Re=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),qo(),rn();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);pt=mo(e/go())}(),f!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(f=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,f&&(En(3,"FortuneFlash",!1),Nn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),On("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),g!==Game.shimmerTypes.reindeer.spawned&&(g=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(dt=Game.shimmers[e])})),En(3,"SeaFlash",!1),Nn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),On("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&C!==Game.Objects.Farm.minigame.nextStep&&(0!==C&&C0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>v?(v=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?En(3,"WrinklerMaxFlash",!1):En(3,"WrinklerFlash",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?Nn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):Nn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?On("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):On("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):v=t}}()}G=0,gt={},Object.keys(Game.shimmers).forEach((e=>{gt[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(ct=Game.shimmers[e],G+=1)})),Object.keys(ro).forEach((e=>{void 0===gt[e]&&(ro[e].parentNode.removeChild(ro[e]),delete ro[e])})),y!==Game.shimmerTypes.golden.n?(y=Game.shimmerTypes.golden.n,y&&(b{void 0===ro[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ro[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),yn(),b=G,0===G&&(ct=0)):1===e.GCTimer&&y&&Object.keys(ro).forEach((e=>{ro[e].style.opacity=gt[e].l.style.opacity,ro[e].style.transform=gt[e].l.style.transform,ro[e].textContent=Math.ceil(gt[e].life/Game.fps)}))}function An(){let t="";for(let o=0;o{void 0===e[t]?(o=!0,e[t]=hn[t]):"Header"===t&&Object.keys(hn.Header).forEach((n=>{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=hn[t][n])}))})),o&&Ln(),Fn(),Object.keys(hn).forEach((e=>{"Header"!==e&&void 0!==xn[e].func&&xn[e].func()}))}else Wn(hn);Game.UpdateMenu(),An()}function jn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Dn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Zo(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${P(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${ho((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(P(Game.Objects[o].bulkPrice)).join(P((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return to=t,oo=o,Vo(),l("tooltip").innerHTML}function Hn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>Dn("g",`${e}`)),"this"),Game.tooltip.wobble()})}))}function Un(){if(!m&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];p=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){p(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Ln()}function Qn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){_n(o),Game.UpdateMenu()},n.appendChild(i),n}function Xn(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape($t[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function qn(t,o,n,i){const a=document.createElement("div");a.className="listing";const r=document.createElement("b");return r.textContent=o,!0===i&&(r.style.color=e.ColourGreen),a.appendChild(r),a.appendChild(document.createTextNode(": ")),a.appendChild(n),a}function Yn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Kn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(Qn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+fo(){Game.HasUnlocked(Ho[e])||c.push(Ho[e])})),0!==c.length&&e.appendChild(Xn("basic","Rare plant drops left to unlock",Yn(c))),e}())),o.appendChild(Qn("Prestige","Prestige")),e.Header.Prestige&&o.appendChild(function(){const t=document.createElement("div");t.className="CMStatsPrestigeSection";const o=Math.floor(Game.HowMuchPrestige(lt+Game.cookiesReset+He+(Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg")?Ae:0)));t.appendChild(Xn("withTooltip","Prestige level (cur / max)",document.createTextNode(`${P(Game.prestige)} / ${P(o)}`),"PrestMaxTooltipPlaceholder"));const n=Math.max(0,Game.HowManyCookiesReset(o+1)-(lt+Game.cookiesReset+He+(Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg")&&Ae?Ae:0))),i=document.createDocumentFragment();i.appendChild(document.createTextNode(P(n)));const a=document.createElement("small");a.textContent=` (${mo(n/st,1)})`,i.appendChild(a),t.appendChild(Xn("withTooltip","Cookies to next level",i,"NextPrestTooltipPlaceholder")),t.appendChild(Xn("withTooltip","Heavenly chips (cur / max)",document.createTextNode(`${P(Game.heavenlyChips)} / ${P(o-Game.prestige+Game.heavenlyChips)}`),"HeavenChipMaxTooltipPlaceholder")),t.appendChild(Xn("basic","Heavenly chips per second (last 5 seconds)",document.createTextNode(P(Ne,2))));const r=Number(e.HeavenlyChipsTarget);if(!Number.isNaN(r)){const e=r-Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned));e>0&&(t.appendChild(Xn("basic","Heavenly chips to target set in settings (cur)",document.createTextNode(P(e)))),t.appendChild(Xn("basic","Time till target (cur, current 5 second average)",document.createTextNode(mo(e/Ne)))))}const l=function(e){let t=Game.cookiesPs;Bo(),0===bt["Heavenly key"].bought&&(bt["Heavenly chip secret"].bought=1,bt["Heavenly cookie stand"].bought=1,bt["Heavenly bakery"].bought=1,bt["Heavenly confectionery"].bought=1,bt["Heavenly key"].bought=1,Ao(),t=de,Bo()),lt>=1e6&&Fo("Sacrifice"),lt>=1e9&&Fo("Oblivion"),lt>=1e12&&Fo("From scratch"),lt>=1e15&&Fo("Nihilism"),lt>=1e18&&Fo("Dematerialize"),lt>=1e21&&Fo("Nil zero zilch"),lt>=1e24&&Fo("Transcendence"),lt>=1e27&&Fo("Obliterate"),lt>=1e30&&Fo("Negative void"),lt>=1e33&&Fo("To crumbs, you say?"),lt>=1e36&&Fo("You get nothing"),lt>=1e39&&Fo("Humble rebeginnings"),lt>=1e42&&Fo("The end of the world"),lt>=1e45&&Fo("Oh, you're back"),lt>=1e48&&Fo("Lazarus"),lt>=1e51&&Fo("Smurf account"),lt>=1e54&&Fo("If at first you don't succeed"),bt["Heavenly chip secret"].bought=1,bt["Heavenly cookie stand"].bought=1,bt["Heavenly bakery"].bought=1,bt["Heavenly confectionery"].bought=1,bt["Heavenly key"].bought=1,oe=e;const o=ee;Ao(),$o(),o!==ee&&Ao();const n=de-t;return oe=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(P(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Xn("withTooltip","Reset bonus income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Xn("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Xn("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Xn("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(Qn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${P(He)} / ${P(Ue)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){jn()},e.appendChild(t),o.appendChild(Xn("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${P($e[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==$e[1]&&(Game.wrinklers[$e[1]].hp=0)},n.appendChild(i),o.appendChild(Xn("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==$e[1]?$e[1]:"None"})`,n))}if(o.appendChild(function(){const t=document.createElement("div");t.className="CMStatsSeasonSection";let o=!1;const n=[];Object.keys(Wo).forEach((e=>{Game.Has(Wo[e])||(n.push(Wo[e]),o=!0)}));const i=[];Object.keys(jo).forEach((e=>{Game.Has(jo[e])||(i.push(jo[e]),o=!0)}));const a=[];Object.keys(Do).forEach((e=>{Game.Has(Do[e])||(a.push(Do[e]),o=!0)}));const r=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(r.push(Game.eggDrops[e]),o=!0)}));const l=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(l.push(Game.rareEggDrops[e]),o=!0)}));const s=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),c=Game.Has("Century egg");if(("christmas"===Game.season||o||s||c)&&(t.appendChild(Qn("Season Specials","Sea")),e.Header.Sea)){if(0!==n.length){t.appendChild(qn(0,"Halloween cookies left to buy",Yn(n),"halloween"===Game.season));let e=.95;if(Game.HasAchiev("Spooky cookies")&&(e=.8),Game.Has("Starterror")&&(e*=.9),e*=1/Game.dropRateMult(),Game.hasGod){const t=Game.hasGod("seasons");1===t?e*=.9:2===t?e*=.95:3===t&&(e*=.97)}const o=n.length/7;t.appendChild(qn(0,"Chance of receiving a cookie from wrinkler/shiny wrinkler",document.createTextNode(`${P((1-e)*o*100)}% / ${P((1-.9*e)*o*100)}%`),"halloween"===Game.season))}if(0!==i.length){t.appendChild(qn(0,"Christmas cookies left to buy",Yn(i),"christmas"===Game.season));let e=.8;if(Game.HasAchiev("Let it snow")&&(e=.6),e*=1/Game.dropRateMult(),Game.Has("Starsnow")&&(e*=.95),Game.hasGod){const t=Game.hasGod("seasons");1===t?e*=.9:2===t?e*=.95:3===t&&(e*=.97)}const o=i.length/7;t.appendChild(qn(0,"Chance of receiving a cookie from reindeer",document.createTextNode(`${P((1-e)*o*100)}%`),"christmas"===Game.season))}0!==a.length&&t.appendChild(qn(0,"Valentine cookies left to buy",Yn(a),"valentines"===Game.season));const e=function(e){let t=e*(1/Game.dropRateMult());if(Game.HasAchiev("Hide & seek champion")&&(t*=.7),Game.Has("Omelette")&&(t*=.9),Game.Has("Starspawn")&&(t*=.9),Game.hasGod){const e=Game.hasGod("seasons");1===e?t*=.9:2===e?t*=.95:3===e&&(t*=.97)}const o=1-t,n=Game.eggDrops.length-r.length,i=Game.rareEggDrops.length-l.length,a=.9*o*(1-n/Game.eggDrops.length),s=.1*o*(1-i/Game.rareEggDrops.length),c=.9*o*(n/Game.eggDrops.length)+.1*o*(i/Game.rareEggDrops.length);return[a+.9*c*(1-n/Game.eggDrops.length),s+.1*c*(1-i/Game.rareEggDrops.length)]};0!==r.length&&(t.appendChild(qn(0,"Normal easter eggs left to unlock",Yn(r),"easter"===Game.season)),t.appendChild(qn(0,"Chance of receiving an egg from wrinkler/golden cookie",document.createTextNode(`${P(100*e(.98)[0])}% / ${P(100*e(.9)[0])}%`),"easter"===Game.season))),0!==l.length&&(t.appendChild(qn(0,"Rare easter eggs left to unlock",Yn(l),"easter"===Game.season)),t.appendChild(qn(0,"Chance of receiving a rare egg from wrinkler/golden cookie",document.createTextNode(`${P(100*e(.98)[1])}% / ${P(100*e(.9)[1])}%`),"easter"===Game.season))),"christmas"===Game.season&&t.appendChild(qn(0,"Reindeer reward",document.createTextNode(P(Fe)),!0)),s&&t.appendChild(Xn("withTooltip","Chocolate egg cookies",document.createTextNode(P(Ae)),"ChoEggTooltipPlaceholder")),c&&t.appendChild(Xn("basic","Century egg multiplier",document.createTextNode(Math.round(1e4*(Oe-1))/100+"%")))}return t}()),o.appendChild(Qn("Achievements","Achievs")),e.Header.Achievs&&Object.keys(Game.Objects).forEach((e=>{const t=De[e];o.appendChild(Xn("basic",e,t.AmountNeeded<101?document.createTextNode(`Next achievement in ${t.AmountNeeded}, price: ${P(t.price)}`):document.createTextNode("No new achievement for next 100 buildings")))})),o.appendChild(Qn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Xn("basic",`Average cookies per second (past ${Yt[e.AvgCPSHist]<60?`${Yt[e.AvgCPSHist]} seconds`:Yt[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(P(go(),3)))),o.appendChild(Xn("basic",`Average cookie clicks per second (past ${Kt[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(P(Ve,1)))),o.appendChild(Xn("basic",`Cookies from clicking (past ${Kt[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(P(E.calcSum(Ve*Kt[e.AvgClicksHist]))))),Game.Has("Fortune cookies")){const e=[];Object.keys(Lo).forEach((t=>{Game.Has(Lo[t])||e.push(Lo[t])})),0!==e.length&&o.appendChild(Xn("basic","Fortune Upgrades Left to Buy",Yn(e)))}if(e.ShowMissedGC&&o.appendChild(Xn("basic","Missed golden cookies",document.createTextNode(P(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Xn("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&Qe){const t=Qe.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Qe,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(_e){const t=_e.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=_e,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Xe){const t=Xe.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Xe,e.appendChild(i)}}})),e.MissingAchievements&&function(){let t;Object.values(document.querySelectorAll("div.title")).forEach((e=>{e.textContent.includes("Achievements")&&(t=e.parentElement.querySelectorAll("div.listing.crateBox")[0])})),e.MissingAchievements&&Object.values(t.children).forEach((e=>{if(!e.className.includes("enabled")){const t=e.onclick.toString().split(/\[(.*)\]/gi)[1],{icon:o}=Game.AchievementsById[t];e.style.backgroundPosition=`${48*-o[0]}px ${48*-o[1]}px`,e.onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>function(e){const t=[];"shadow"===e.pool?t.push("Shadow Achievement","#9700cf"):t.push("Achievement",0),t.push("Locked",0);let o=0;(Game.Has("Neuromancy")||Game.sesame&&"debug"===e.pool)&&(o=1),o&&0===e.won?t.push("Click to win!","#00c462"):o&&e.won>0&&t.push("Click to lose!","#00c462");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());let{desc:i}=e;e.descFunc&&(i=e.descFunc("stats"));let a="";for(let e=0;e[${t[e]}]`);return a=a.substring(1),`
\n
\n
${e.name}
\n ${a}
${i}
\n ${Game.sesame?`
Id : ${e.id} | Order : ${Math.floor(e.order)}${e.tier?` | Tier : ${e.tier}`:""}
`:""}`}(Game.AchievementsById[t])),"top"),Game.tooltip.wobble())}}}))}()}const Jn={Favourite:"Favourite Settings",Calculation:"Calculation",Notation:"Notation",Colours:"Colours and colour coding",BarsDisplay:"Infobars and visual settings",Tooltip:"Tooltips",Statistics:"Statistics",Notification:"Notifications",Miscellaneous:"Miscellaneous"},Zn={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function ei(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){_n(t),Game.UpdateMenu()},n.appendChild(i),n}function ti(t){const o=document.createElement("div");if(o.className="listing",1===e.FavouriteSettings&&o.appendChild(function(e){const t=document.createElement("a");return so.includes(e)?(t.innerText="★",t.style.color="yellow"):t.innerText="☆",t.className="option",t.onclick=function(){!function(e){so.includes(e)?so=so.filter((t=>t!==e)):so.push(e)}(e),Ln(),Game.UpdateMenu()},t.onmouseover=function(){Game.tooltip.draw(this,escape($t.FavouriteSettingPlaceholder.innerHTML))},t.onmouseout=function(){Game.tooltip.hide()},t.appendChild(document.createTextNode(" ")),t}(t)),"bool"===xn[t].type){const n=document.createElement("a");xn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=zn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===xn[t].label.length?(e[t]=0,xn[t].toggle&&(l(zn+t).className="option off")):l(zn+t).className="option",void 0!==xn[t].func&&xn[t].func(),Ln()}(t),Game.UpdateMenu()},n.textContent=xn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=xn[t].desc,i.style.lineHeight="1.6",o.appendChild(i),o}if("vol"===xn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=xn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Vn(t),Game.UpdateMenu()},r.onchange=function(){Vn(t),Game.UpdateMenu()},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){Nn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===xn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${xn[t].label} `,n.style.lineHeight="1.6",o.appendChild(n);const i=document.createElement("input");i.id=zn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${zn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){!function(e,t){Game.promptWrapL.className="framed";const o=e;Game.promptL.innerHTML=`${o}
`,Object.keys(t).forEach((e=>{const o=document.createElement("a");o.id=`promptOption${e}`,o.className="option",o.onclick=function(){PlaySound("snd/tick.mp3"),t[e][1]()},o.textContent=t[e][0],Game.promptL.children[1].appendChild(o)})),Game.promptAnchorL.style.display="block",Game.darkenL.style.display="block",Game.promptL.focus(),Game.promptOn=1,Game.UpdatePrompt()}(a.outerHTML,[["Save",function(){e[t]=l(`CMConfig${t}Prompt`).value,Ln(),Game.ClosePrompt(),Game.UpdateMenu()}],["Cancel",function(){Game.ClosePrompt()}]])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=xn[t].desc,s.style.lineHeight="1.6",o.appendChild(s),o}if("colour"===xn[t].type){const n=document.createElement("span");n.className="option";const i=document.createElement("input");i.id=t,i.style.width="65px",i.setAttribute("value",e[t]),n.appendChild(i),new Rn(i,{hash:!0,position:"right",onInput:function(){e[this.targetElement.id]=this.toHEXString(),An(),Ln(),Game.UpdateMenu()}});const a=document.createElement("label");if(a.textContent=xn[t].desc,a.style.lineHeight="1.6",n.appendChild(a),t.includes("Flash")){const e=document.createElement("a");e.className="option",e.onclick=function(){En(3,t.replace("Colour",""),!0)},e.textContent="Test flash",n.appendChild(e)}return o.appendChild(n),In().init(),o}if("numscale"===xn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${xn[t].label} `,n.style.lineHeight="1.6",o.appendChild(n);const i=document.createElement("input");i.id=zn+t,i.className="option",i.type="number",i.value=e[t],i.min=xn[t].min,i.max=xn[t].max,i.oninput=function(){e[t]=this.value,Ln(),Cn(),Game.UpdateMenu()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=xn[t].desc,a.style.lineHeight="1.6",o.appendChild(a),o}return o}function oi(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function ni(){M.Beautify=Beautify,Beautify=P,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),se=1,S=Date.now(),B=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){oi(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){oi(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(()=>{oi(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>Dn("u",`${e}`)),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e].amount>0){const o=yt[Game.ObjectsById[e].name].name;yt[o].amount-=1,K-=1,t=yt[o].basePrice*Game.priceIncrease**Math.max(0,yt[o].amount-1-yt[o].free),t=Game.modifyBuildingPrice(yt[o],t),t=Math.ceil(t);break}const o=ee;return Ao(),$o(),o!==ee&&Ao(),[de-Game.cookiesPs,t]}(t),n=mo(o/(e+Game.cookiesPs));let i;i=0===Game.cookiesPs?P(1/0):P(e/Game.cookiesPs*100),l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${P(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${fe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==In().picker&&void 0!==In().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Jn).forEach((t=>{if("Favourite"===t){if(0!==so.length&&e.FavouriteSettings>0&&(o.appendChild(ei(t,Jn[t])),e.Header[t]))for(let e=0;e{const n=ei(t,Zn[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(xn).forEach((e=>{xn[e].group===t&&o.appendChild(ti(e))}))})):Object.keys(xn).forEach((e=>{xn[e].group===t&&o.appendChild(ti(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Wn(hn)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Kn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){_n("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThis update implements the following functions:
\n- For developers: we now expose some data calculated by Cookie Monster to the global scope. You can access it through the CookieMonsterData object
\n- The column with the most optimal building now has a green coloured indicator whenever colour coding is turned on
\n- The current season in the seasons statistics section is now displayed with green text for easier identification
\n- New option to show a timer bar that counts down till next autosave
\n- New option to sort buildings based on the "cost till next achievement"
\n- Added extra information about achievements in statistics page
\n
\nThis update fixes the following bugs:
\n- Fixed a bug where ignoring certain buildings in rare cases did not create a "most optimal building"
\n- Fixed some issues related to "left till achievement"
\n- Fixed some cases where upgrades and buildings were not correctly sorted
\n- Fixed the tooltip of "Pop all normal wrinklers" displaying an incorrect reward when Shiny\'s are present
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,_t=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):mo(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),lo=`${Game.OnAscend?"Ascending! ":""}${P(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=lo;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=ct?ct.wrath?`[W${Math.ceil(ct.life/Game.fps)}]`:`[G${Math.ceil(ct.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,f&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=g?`[R${Math.ceil(dt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=lo;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;ct&&(t=!0,ct.wrath?e+=`[W${Math.ceil(ct.life/Game.fps)}]`:e+=`[G${Math.ceil(ct.life/Game.fps)}]`),f&&(t=!0,e+="[F]"),"christmas"===Game.season&&g&&(e+=`[R${Math.ceil(dt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${P(Game.prestige)}.
(CpS +${P(Game.prestige)}%)`,n+='
'),n+=X<1?"Ascending now would grant you no prestige.":X<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${P(X)} prestige levels (+${P(X)}% CpS)
and ${P(X)} heavenly chips to spend.`,n+='
',n+=`You need ${P(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${pt} to reach the next level and you were making ${P(Ne,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function ii(){window.CookieMonsterData={},Bn(),cn(),mn(),r=Object.keys(Game.mods).length,ue=document.createElement("style"),ue.type="text/css",ue.id="CMCSS",document.head.appendChild(ue),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=Bt+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.9",Ot)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",Et)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",Et)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",Et)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{yo(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=Co("CMTimerBarAutosave","Autosave",[{id:"CMTimerBarAutosaveBar",color:Lt}]);e.appendChild(t);const o=Co("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:Wt},{id:"CMTimerBarGCBar",color:Lt}]);e.appendChild(o);const n=Co("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:Wt},{id:"CMTimerBarRenBar",color:Ft}]);e.appendChild(n);const i=document.createElement("div");i.id="CMTimerBarBuffTimers",e.appendChild(i),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=Pt+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(Et,"Better than the best PP of a building option")),e.appendChild(o(Nt,"Same as the best PP building option")),e.appendChild(o(Ot,"Within the top 10 of PP for buildings")),e.appendChild(o(Ft,"Within the top 20 of PP for buildings")),e.appendChild(o(At,"Within the top 30 of PP for buildings")),e.appendChild(o(Lt,"Outside of the top 30 of PP for buildings")),e.appendChild(o(Wt,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=Bt+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",Et)),e.appendChild(o("CMUpgradeBarGreen",Nt)),e.appendChild(o("CMUpgradeBarYellow",Ot)),e.appendChild(o("CMUpgradeBarOrange",Ft)),e.appendChild(o("CMUpgradeBarRed",At)),e.appendChild(o("CMUpgradeBarPurple",Lt)),e.appendChild(o("CMUpgradeBarGray",Wt)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMFlashScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMSectionHidButtons",e.style.textAlign="center";const t=document.createElement("a");t.className="option",t.onclick=function(){"flex"===l("upgrades").style.display?(l("upgrades").style.display="none",l("toggleUpgrades").style.display="none",l("techUpgrades").style.display="none",l("vaultUpgrades").style.display="none"):(l("upgrades").style.display="flex",0!==l("toggleUpgrades").children.length&&(l("toggleUpgrades").style.display="block"),0!==l("techUpgrades").children.length&&(l("techUpgrades").style.display="block"),0!==l("vaultUpgrades").children.length&&(l("vaultUpgrades").style.display="block"))},t.textContent="Hide/Show Upgrades",e.appendChild(t);const o=document.createElement("a");o.className="option",o.onclick=function(){"grid"===l("products").style.display?l("products").style.display="none":l("products").style.display="grid"},o.textContent="Hide/Show Buildings",e.appendChild(o),l("store").insertBefore(e,l("store").childNodes[2])}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(Ut).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i),$t[e]=n}(Ut[e][0],Ut[e][1],Ut[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){jn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>Dn("wb","PopAllNormal")),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==$e[1]&&(Game.wrinklers[$e[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>Dn("wb","PopFattest")),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>Dn("b",`${e}`)),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(s=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>Dn("s","Lump")),"this"),Game.tooltip.wobble()}),h=Game.LoadMinigames,Game.LoadMinigames=function(){h(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>Dn("ha","HarvestAllButton")),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>Dn("p",[`${t[0]}`,`${t[2]}`])),"this"),Game.tooltip.wobble()}}))),Hn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>Dn("pag",e)),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>Dn("pas",[e,Game.Objects.Temple.minigame.slot[e]])),"this"),Game.tooltip.wobble()}}}(),$n()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){It=1},l("backgroundLeftCanvas").onmouseout=function(){It=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{Vt[e]=0}))},ni(),$n(),Game.CalculateGains(),Wn(),Rt=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.9 loaded!"):Game.Notify("Cookie Monster version 2.031.9 loaded!","","",1,1),Game.Win("Third-party")}const ai={init:function(){Pn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.9 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(ii(),Game.registerHook("click",Qo),Game.registerHook("draw",_o),Game.registerHook("logic",Fn),Pn=!1)},load:function(e){const t=JSON.parse(e);Bn(),void 0!==t.favouriteSettings&&(so=t.favouriteSettings),Wn(t.settings),"2.031.9"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:Tn};Game.registerMod("CookieMonster",ai)})()})(); +(()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){var i=t[n];if(void 0!==i)return i.exports;var a=t[n]={exports:{}};return e[n].call(a.exports,a,a.exports,o),a.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};function t(){e.WrinklerButtons&&Game.elderWrath?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")}const n=["","","M","G","T","P","E","Z","Y"],i=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],a=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],T=[],M={},S=Date.now(),B=Date.now();function P(t,o,r){const l=e.ScaleDecimals+1;if(t===1/0)return"Infinity";if(void 0===t)return"0";if(0===e.Scale)return M.Beautify(t,o);if(Number.isFinite(t)){if(t<0)return`-${P(Math.abs(t))}`;let s="";if(0===t)return t.toString();if(t>.001&&t=.01&&t=.01&&t=.01&&t0&&(c+=o,s-=1)}return c}const Bt="CMText",Pt="CMBack",Et="Blue",Nt="Green",Ot="Yellow",Ft="Orange",At="Red",Lt="Purple",Wt="Gray",jt="Pink",Dt="Brown",Ht=[Et,Nt,Ot,Ft,At,Lt,jt,Dt,Wt],Ut=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"],["FavouriteSettingPlaceholder","Click to set this setting as favourite and show it in 'favourite' settings at the top of the Cookie Monster Settings","250px"]],$t={};let Rt,It=0,zt=-1,Vt=[],_t=function(){},Qt=1,Xt=1,qt=1;const Yt=[10,15,30,60,300,600,900,1800],Kt=[1,5,10,15,30],Jt={Frenzy:Ot,"Dragon Harvest":Dt,"Elder frenzy":Nt,Clot:At,"Click frenzy":Et,Dragonflight:jt};let Zt,eo,to,oo,no,io,ao,ro={},lo="",so=[];function co(){let t,o=Game.buyBulk;1===Game.buyMode?Xt=o:o=Xt,1===o?o=Le:10===o?o=We:100===o&&(o=je),l("storeBulk1").style.removeProperty("color"),l("storeBulk10").style.removeProperty("color"),l("storeBulk100").style.removeProperty("color"),1===Game.buyMode?1===e.BuildColour?(Object.keys(o).forEach((t=>{l(`productPrice${Game.Objects[t].id}`).style.color=e[`Colour${o[t].color}`]})),l(`storeBulk${mt}`).style.color=e.ColourGreen):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(Le).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=P(St(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings?1===e.SortBuildings?(t=Object.keys(Le).map((e=>{const t={};return t.name=e,t.pp=Le[e].pp,t.color=Le[e].color,t})),t.sort(((e,t)=>Ht.indexOf(e.color)===Ht.indexOf(t.color)?e.pp-t.pp:Ht.indexOf(e.color)-Ht.indexOf(t.color)))):2===e.SortBuildings?(t=Object.keys(o).map((e=>{const t={};return t.name=e,t.pp=o[e].pp,t.color=o[e].color,t})),t.sort(((e,t)=>Ht.indexOf(e.color)===Ht.indexOf(t.color)?e.pp-t.pp:Ht.indexOf(e.color)-Ht.indexOf(t.color)))):3===e.SortBuildings&&(t=Object.keys(De).map((e=>{const t={};return t.name=e,t.id=Game.Objects[e].id,t.amountUntilNext=De[e].AmountNeeded,t.priceUntilNext=De[e].price,t})),t.sort(((e,t)=>e.id-t.id)),t.sort(((e,t)=>(101!==e.amountUntilNext?e.priceUntilNext:1/0)-(101!==t.amountUntilNext?t.priceUntilNext:1/0)))):(t=Object.keys(Le).map((e=>{const t={};return t.name=e,t.id=Game.Objects[e].id,t})),t.sort(((e,t)=>e.id-t.id)));for(let e=0;e{e.UpgradesNeverCollapse||"products"===t.id?t.style.height="auto":"vaultUpgrades"===t.id?(t.style.height="",t.style.minHeight="0px"):"upgrades"===t.id?(t.style.height="",t.className.includes("hasMenu")?t.style.minHeight="82px":t.style.minHeight="60px"):(t.style.height="",t.style.minHeight="60px")}))}function uo(){if(e.UpBarColour>0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eHt.indexOf(e.color)===Ht.indexOf(t.color)?e.pp-t.pp:Ht.indexOf(e.color)-Ht.indexOf(t.color))):t.sort(((e,t)=>e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",(c.length>0||a>0)&&(c+=a+(o?1===a?" day":" days":"d")+", "),(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function ho(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=Nt):(n=mo(t),o=t>300?At:t>60?Ft:Ot),{text:n,color:o}}function go(){return e.CPSMode?_:0===e.CalcWrink?Game.cookiesPs*(1-Game.cpsSucked):1===e.CalcWrink?Game.cookiesPs*(Re+(1-.05*Ie)):null!==$e[1]&&2===e.CalcWrink&&1===Game.wrinklers[$e[1]].type?Game.cookiesPs*(3*Re/Ie+(1-.05*Ie)):Game.cookiesPs*(Re/Ie+(1-.05*Ie))}function fo(){return 1===e.CalcWrink?He:2===e.CalcWrink?$e[0]:0}function Co(e,t,o){const n=document.createElement("div");n.id=e,n.style.height="12px",n.style.margin="0px 10px",n.style.position="relative";const i=document.createElement("div");i.style.width="100%",i.style.height="10px",i.style.margin="auto",i.style.position="absolute",i.style.left="0px",i.style.top="0px",i.style.right="0px",i.style.bottom="0px";const a=document.createElement("span");a.style.display="inline-block",a.style.textAlign="right",a.style.fontSize="10px",a.style.width="108px",a.style.marginRight="5px",a.style.verticalAlign="text-top",a.textContent=t,i.appendChild(a);for(let e=0;e{let n,i=Game.buyBulk;1===Game.buyMode?Qt=i:i=Qt,1===i&&(i=Le),10===i&&(i=We),100===i&&(i=je),t+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[t].childNodes[1].textContent=Game.Objects[o].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[t].textContent=P(i[o].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].className=Bt+i[o].color,n=e.PPDisplayTime?mo(Math.round(i[o].pp)):P(Math.round(i[o].pp),2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].textContent=n;const a=ho((Game.Objects[o].bulkPrice-(Game.cookies+fo()))/go());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[t].className=Bt+a.color,"Done!"===a.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&xt(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(xt(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&xt(e.fortune.name)&&(t*=1.07),e.grandma&&xt(e.grandma.name)&&(t*=1+.01*yt.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&xt(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function Mo(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;xt("Thousand fingers")&&(t+=.1),xt("Million fingers")&&(t*=5),xt("Billion fingers")&&(t*=10),xt("Trillion fingers")&&(t*=20),xt("Quadrillion fingers")&&(t*=20),xt("Quintillion fingers")&&(t*=20),xt("Sextillion fingers")&&(t*=20),xt("Septillion fingers")&&(t*=20),xt("Octillion fingers")&&(t*=20),xt("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(yt).forEach((e=>{"Cursor"!==yt[e].name&&(n+=yt[e].amount)})),t*=n,o*=To(e),o*=Game.magicCpS("Cursor"),o*=wt("cursorCps"),Game.ComputeCps(.1,xt("Reinforced index finger")+xt("Carpal tunnel prevention cream")+xt("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{xt(Game.GrandmaSynergies[e])&&(o*=2)})),xt("Bingo center/Research facility")&&(o*=4),xt("Ritual rolling pins")&&(o*=2),xt("Naughty list")&&(o*=2),xt("Elderwort biscuits")&&(o*=1.02),o*=wt("grandmaCps"),xt("Cat ladies"))for(let e=0;e{"Grandma"!==yt[e].name&&(i+=yt[e].amount)})),o*=1+.01*Gt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=To(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function So(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(yt).forEach((t=>{yt[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(xt("Starlove")&&(e=3),Game.hasGod){const t=Tt("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function Bo(){J=Game.UpgradesOwned,Z=Game.pledges,ee=Game.AchievementsOwned,te=Game.heavenlyPower,oe=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=yt[e];void 0===o&&(yt[e]=Mo(e),o=yt[e],yo(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(ae=t.minigame.slot[0],re=t.minigame.slot[1],le=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),yt[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=bt[e];void 0===o&&(bt[e]=So(e),o=bt[e]),o.bought=t.bought,bt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=kt[e];void 0===o&&(kt[e]=xo(e),o=kt[e]),o.won=t.won,kt[e]=o})),wo(),ne=me,ie=he}function Po(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function Eo(e){e.appendChild(Po("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(Po("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(Po("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(Po("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===to){e.appendChild(Po("Production left till next achievement")),e.lastChild.id="CMTooltipProductionLeftHeader";const t=document.createElement("div");t.id="CMTooltipProductionLeft",e.appendChild(t)}if("b"===to){e.appendChild(Po("Buildings (price / PP) left till next achievement")),e.lastChild.id="CMTooltipNextAchievementHeader";const t=document.createElement("div");t.id="CMTooltipNextAchievement",e.appendChild(t)}}function No(t,o){let n="";return n=t.pp<=0||t.pp===1/0?Wt:t.pp0&&(n=At),n}function Oo(){let e=1;return Object.keys(Game.buffs).forEach((t=>{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function Fo(e){kt[e]&&0===kt[e].won&&(kt[e].won=1,"shadow"!==Game.Achievements[e].pool&&(ee+=1))}function Ao(){de=0;let e=1;const t={};Object.keys(Game.Objects).forEach((e=>{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),ce=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(oe)*te*function(){let e=0;if(xt("Heavenly chip secret")&&(e+=.05),xt("Heavenly cookie stand")&&(e+=.2),xt("Heavenly bakery")&&(e+=.25),xt("Heavenly confectionery")&&(e+=.25),xt("Heavenly key")&&(e+=.25),e*=1+.05*Gt("Dragon God"),xt("Lucky digit")&&(e*=1.01),xt("Lucky number")&&(e*=1.01),xt("Lucky payout")&&(e*=1.01),Game.hasGod){const t=Tt("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=wt("cps"),xt("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];xt(o.name)&&("function"==typeof o.power?e*=1+.01*bt[o.name].power(bt[o.name]):e*=1+.01*o.power)})),xt("Specialized chocolate chips")&&(e*=1.01),xt("Designer cocoa beans")&&(e*=1.02),xt("Underworld ovens")&&(e*=1.03),xt("Exotic nuts")&&(e*=1.04),xt("Arcane sugar")&&(e*=1.05),xt("Increased merriness")&&(e*=1.15),xt("Improved jolliness")&&(e*=1.15),xt("A lump of coal")&&(e*=1.01),xt("An itchy sweater")&&(e*=1.01),xt("Santa's dominion")&&(e*=1.2),xt("Fortune #100")&&(e*=1.01),xt("Fortune #101")&&(e*=1.07),xt("Dragon scale")&&(e*=1.03);let o=1;if(Tt){let t=Tt("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=Tt("ages"),1===t?e*=1+.15*Math.sin(S/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(S/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(S/1e3/86400*Math.PI*2)),t=Tt("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=Tt("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=Tt("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}xt("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=ee/25;let i=1;if(xt("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*Gt("Breath of Milk"),Tt){const e=Tt("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=wt("milk");let a=1;xt("Kitten helpers")&&(a*=1+.1*n*i),xt("Kitten workers")&&(a*=1+.125*n*i),xt("Kitten engineers")&&(a*=1+.15*n*i),xt("Kitten overseers")&&(a*=1+.175*n*i),xt("Kitten managers")&&(a*=1+.2*n*i),xt("Kitten accountants")&&(a*=1+.2*n*i),xt("Kitten specialists")&&(a*=1+.2*n*i),xt("Kitten experts")&&(a*=1+.2*n*i),xt("Kitten consultants")&&(a*=1+.2*n*i),xt("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),xt("Kitten marketeers")&&(a*=1+.15*n*i),xt("Kitten analysts")&&(a*=1+.125*n*i),xt("Kitten executives")&&(a*=1+.115*n*i),xt("Kitten angels")&&(a*=1+.1*n*i),xt("Fortune #103")&&(a*=1+.05*n*i),Object.keys(yt).forEach((e=>{const t=yt[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&xt("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),de+=t.amount*a})),xt('"egg"')&&(de+=9),e*=a;let r=1;if(xt("Chicken egg")&&(r*=1.01),xt("Duck egg")&&(r*=1.01),xt("Turkey egg")&&(r*=1.01),xt("Quail egg")&&(r*=1.01),xt("Robin egg")&&(r*=1.01),xt("Ostrich egg")&&(r*=1.01),xt("Cassowary egg")&&(r*=1.01),xt("Salmon roe")&&(r*=1.01),xt("Frogspawn")&&(r*=1.01),xt("Shark egg")&&(r*=1.01),xt("Turtle egg")&&(r*=1.01),xt("Ant larva")&&(r*=1.01),xt("Century egg")){let e=10*Math.floor((B-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),Oe=1+.1*(1-(1-e/100)**3),r*=Oe}e*=r,xt("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+Gt("Radiant Appetite");const l=de*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&Fo(Game.CpsAchievements[e].name)})),pe=l;const{n:s}=Game.shimmerTypes.golden,c=Gt("Dragon's Fortune");for(let t=0;t{xt(e[o])&&(t+=.1)}))}e*=t}if(xt("Shimmering veil [off]")){let t=.5;xt("Reinforced membrane")&&(t+=.1),e*=1+t}xt("Magic shenanigans")&&(e*=1e3),xt("Occult obstruction")&&(e*=0),de=Game.runModHookOnValue("cps",de),e*=Oo(),de*=e}const Lo=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Wo=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],jo=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],Do=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Ho=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function Uo(e){return kt[e]?kt[e].won:0}function $o(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{xt(Game.GrandmaSynergies[t])&&(e+=1)})),!Uo("Elder")&&e>=7&&Fo("Elder"),!Uo("Veteran")&&e>=14&&Fo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(yt).forEach((e=>{t+=yt[e].amount,i=Math.min(yt[e].amount,i),Uo("Mathematician")||yt[e].amount=1&&Fo("One with everything"),1===o&&Fo("Mathematician"),1===n&&Fo("Base 10"),i>=100&&Fo("Centennial"),i>=150&&Fo("Centennial and a half"),i>=200&&Fo("Bicentennial"),i>=250&&Fo("Bicentennial and a half"),i>=300&&Fo("Tricentennial"),i>=350&&Fo("Tricentennial and a half"),i>=400&&Fo("Quadricentennial"),i>=450&&Fo("Quadricentennial and a half"),i>=500&&Fo("Quincentennial"),i>=550&&Fo("Quincentennial and a half"),i>=600&&Fo("Sexcentennial"),t>=100&&Fo("Builder"),t>=500&&Fo("Architect"),t>=1e3&&Fo("Engineer"),t>=2e3&&Fo("Lord of Constructs"),t>=4e3&&Fo("Grand design"),t>=8e3&&Fo("Ecumenopolis"),J>=20&&Fo("Enhancer"),J>=50&&Fo("Augmenter"),J>=100&&Fo("Upgrader"),J>=200&&Fo("Lord of Progress"),J>=300&&Fo("The full picture"),J>=400&&Fo("When there's nothing left to add"),t>=4e3&&J>=300&&Fo("Polymath"),t>=8e3&&J>=400&&Fo("Renaissance baker"),yt.Cursor.amount+yt.Grandma.amount>=777&&Fo("The elder scrolls");let a=!0;Object.keys(Wo).forEach((e=>{xt(Wo[e])||(a=!1)})),a&&Fo("Spooky cookies");let r=!0;if(Object.keys(jo).forEach((e=>{xt(jo[e])||(r=!1)})),r&&Fo("Let it snow"),xt("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{xt(e[o].name)&&(t+=1)})),t>=e.length&&Fo("O Fortuna")}}function Ro(e,t){Bo(),yt[e].amount+=t;const o=yt[e];"Cursor"===e?(o.amount>=1&&Fo("Click"),o.amount>=2&&Fo("Double-click"),o.amount>=50&&Fo("Mouse wheel"),o.amount>=100&&Fo("Of Mice and Men"),o.amount>=200&&Fo("The Digital"),o.amount>=300&&Fo("Extreme polydactyly"),o.amount>=400&&Fo("Dr. T"),o.amount>=500&&Fo("Thumbs, phalanges, metacarpals"),o.amount>=600&&Fo("With her finger and her thumb"),o.amount>=700&&Fo("Gotta hand it to you"),o.amount>=800&&Fo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&Fo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=ee;return Ao(),$o(),n!==ee&&Ao(),de-Game.cookiesPs}function Io(e,t,o){let n=e,i=0;for(;nt.plantsById[t.plot[oo[1]][oo[0]][0]-1].mature,o=t.plantsById[t.plot[oo[1]][oo[0]][0]-1].name;l("CMTooltipBorder").appendChild(Po("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?P(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${P(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?P(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${P(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?P(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${P(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?P(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${P(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===to?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(Po("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarAutosaveBar").textContent=Math.ceil(t):l("CMTimerBarAutosaveBar").textContent="",l("CMTimerBarAutosaveTime").textContent=Math.ceil(t),n+=1}else l("CMTimerBarAutosave").style.display="none";0!==Game.shimmerTypes.golden.spawned||Game.Has("Golden switch [off]")?l("CMTimerBarGC").style.display="none":(l("CMTimerBarGC").style.display="",l("CMTimerBarGCMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=Co(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Jt[Game.buffs[t].name]?Jt[Game.buffs[t].name]:Lt,a.lastChild.children[1].className=Pt+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),ao!==n&&(ao=n,Go())}}(),bo(),Vo(),function(){if(1===e.TooltipWrink&&1===It){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===Vt[t]||void 0===Vt[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),zt=t,Vt[t]=1}}else Vt[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[zt],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[zt].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),yt.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=P(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu(),t(),e.Scale){let e=l("cookies").innerHTML.replace(/.*(?=
)/i,P(Game.cookies));Game.prefs.monospace&&(e=`${e}`),l("cookies").innerHTML=e}}function Qo(){E.addLatest(Game.computedMouseCps)}class Xo{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}calcSum(e){let t=e;return t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length),0===t?0:this.queue.slice(-t).reduce(((e,t)=>e+t),0)}}function qo(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+ft;Game.cpsSucked>0&&(o+=He),lt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-j,i=Math.max(0,Game.cookies-D)/n,a=Math.max(0,He-H)/n,r=Math.max(0,$e[0]-U)/n,l=Math.max(0,o-Ae)/n,s=(Game.cookieClicks-$)/n;for(let e=0;e{if(e.PPRigidelMode&&1===o)t[n].color=Wt;else{t[n].color=No(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const i=Game.Objects[n].getSumPrice(o);Game.cookiesPs?t[n].pp=Math.max(i-(Game.cookies+fo()),0)/Game.cookiesPs+i/t[n].bonus:t[n].pp=i/t[n].bonus,e.PPRigidelMode&&1===o||ht.push([t[n].pp,o,i])}))}function Jo(){!function(){ut=1/0,ht=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Ko(Le,1),Ko(We,10),Ko(je,100),ht.sort(((e,t)=>e[0]-t[0]));let t=e.PPExcludeTop;if(e.PPOnlyConsiderBuyable)for(;ht[t][2]>Game.cookies&&(t+=1,ht.length!==t+1););ut=ht[t][0],mt=ht[t][1],Yo(Le,1),Yo(We,10),Yo(je,100)}(),Object.keys(ze).forEach((e=>{Game.cookiesPs?ze[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+fo()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/ze[e].bonus:ze[e].pp=Game.Upgrades[e].getPrice()/ze[e].bonus,Number.isNaN(ze[e].pp)&&(ze[e].pp=1/0),ze[e].color=No(ze[e],Game.Upgrades[e].getPrice())})),window.CookieMonsterData.Objects1=JSON.parse(JSON.stringify(Le)),window.CookieMonsterData.Objects10=JSON.parse(JSON.stringify(We)),window.CookieMonsterData.Objects100=JSON.parse(JSON.stringify(je)),window.CookieMonsterData.Upgrades=[],Object.entries(ze).forEach((e=>{window.CookieMonsterData.Upgrades[e[0]]=JSON.parse(JSON.stringify(e[1]))}))}function Zo(e,t,o,n,i){let a=o,r=0;for(let o=0;o{t[o]={},t[o].bonus=Ro(o,e),1!==e&&(q=1)})),t}function tn(){Object.keys(Game.Objects).forEach((e=>{Le[e].price=Zo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),We[e].price=Zo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),je[e].price=Zo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100),De[e].price=Zo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,De[e].AmountNeeded)}))}function on(){Le=en(1),We=en(10),je=en(100),ze=[],Object.keys(Game.Upgrades).forEach((t=>{const o=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){Bo(),"Shimmering veil [on]"===bt[e].name?bt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===bt[e].name?bt["Golden switch [off]"].bought=0:bt[e].bought=(bt[e].bought+1)%2,Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(J+=1),"Elder Pledge"===e?(Z+=1,Z>0&&Fo("Elder nap"),Z>=5&&Fo("Elder slumber")):"Elder Covenant"===e?Fo("Elder calm"):"Prism heart biscuits"===e?Fo("Lovely cookies"):"Heavenly key"===e&&Fo("Wholesome");const t=ee;Ao(),$o(),t!==ee&&Ao();const o=function(){let e=0;xt("Thousand fingers")&&(e+=.1),xt("Million fingers")&&(e*=5),xt("Billion fingers")&&(e*=10),xt("Trillion fingers")&&(e*=20),xt("Quadrillion fingers")&&(e*=20),xt("Quintillion fingers")&&(e*=20),xt("Sextillion fingers")&&(e*=20),xt("Septillion fingers")&&(e*=20),xt("Octillion fingers")&&(e*=20),xt("Nonillion fingers")&&(e*=20);let t=0;Object.keys(yt).forEach((e=>{t+=yt[e].amount})),t-=yt.Cursor.amount,e*=t,xt("Plastic mouse")&&(e+=.01*de),xt("Iron mouse")&&(e+=.01*de),xt("Titanium mouse")&&(e+=.01*de),xt("Adamantium mouse")&&(e+=.01*de),xt("Unobtainium mouse")&&(e+=.01*de),xt("Eludium mouse")&&(e+=.01*de),xt("Wishalloy mouse")&&(e+=.01*de),xt("Fantasteel mouse")&&(e+=.01*de),xt("Nevercrack mouse")&&(e+=.01*de),xt("Armythril mouse")&&(e+=.01*de),xt("Technobsidian mouse")&&(e+=.01*de),xt("Plasmarble mouse")&&(e+=.01*de),xt("Miraculite mouse")&&(e+=.01*de),xt("Fortune #104")&&(e+=.01*de);let o=1;if(xt("Santa's helpers")&&(o*=1.1),xt("Cookie egg")&&(o*=1.1),xt("Halo gloves")&&(o*=1.1),xt("Dragon claw")&&(o*=1.03),xt("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,xt("Luminous gloves")?20:10)),o*=wt("click"),yt.Temple.minigameLoaded&&Tt){const e=Tt("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*Gt("Dragon Cursor");let n=o*Game.ComputeCps(1,xt("Reinforced index finger")+xt("Carpal tunnel prevention cream")+xt("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[de-Game.cookiesPs,o]:[de-Game.cookiesPs]}return[]}(t);"Elder Pledge"===t?(ze[t]={bonus:Game.cookiesPs-R},1===e.CalcWrink?ze[t].bonus-=I:2===e.CalcWrink&&(ze[t].bonus-=z),Number.isFinite(ze[t].bonus)||(ze[t].bonus=0)):(ze[t]={},o[0]&&(ze[t].bonus=o[0]),o[1]&&(ze[t].bonusMouse=o[1]))}))}function nn(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,Ke=nn(7,e,Pe),qe=2*Ke[1]/Pe,Ye=Ke[2]/60/60/6/Be,et=nn(6,e,Ee),Je=2*et[1]/Ee,Ze=et[2]/60/60/6/Be,nt=nn(7,7*e,Pe),tt=2*nt[1]/Pe,ot=nt[2]/60/60/6/Be,rt=nn(6,7*e,Ee),it=2*rt[1]/Ee,at=rt[2]/60/60/6/Be}function rn(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Q,i=Math.max(0,o-X)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?Qe+=e:"cookie"===o.pool?Xe+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(_e+=e)}}))}function sn(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),Fe=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(Fe*=2)}}function cn(){Ce=900*Se/.15,Ce*=Be;const e=Oo();e>0?Ce/=e:Ce=0,ye=Pe*(.15*Ce)+13,be=Ee*(.15*Ce)+13,ke=7*Ce,Ge=Pe*(.15*ke)+13,ve=Ee*(.15*ke)+13,we=2*Ce,xe=.15*we,Te=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountTe&&(Te=2*Game.Objects[e].price,Me=e)}))}function dn(){let e=1,t=1,o=1;xt("Green yeast digestives")&&(o*=1.01),xt("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),Pe=o*e,Ee=o*t,Be=1,0===Game.shimmerTypes.golden.n&&(Be*=1+1.23*Game.auraMult("Dragon's Fortune"))}function pn(e){const t={};Object.keys(Game.Objects).forEach((o=>{if(0!==Object.keys(De).length&&De[o].TotalNeeded>Game.Objects[o].amount&&!e)t[o]={AmountNeeded:De[o].TotalNeeded-Game.Objects[o].amount,TotalNeeded:De[o].TotalNeeded,price:Game.Objects[o].getSumPrice(De[o].TotalNeeded-Game.Objects[o].amount)};else{const e=function(e){const t=Game.AchievementsOwned;let o=100,n=100;for(;o>-1;)if(Ro(e,o),ee>t)n=o,o-=10;else{if(100===o)return 101;for(o+=1;o<=n;){if(Ro(e,o),ee>t)return o;o+=1}}return 101}(o);t[o]={AmountNeeded:e,TotalNeeded:Game.Objects[o].amount+e,price:Game.Objects[o].getSumPrice(e)}}})),De=t}function un(){He=0,Ue=0,$e=[0,null];for(let e=0;e$e[0]&&($e=[t,e]))}}function mn(){wo(),un(),cn(),dn(),an(),ln(),sn(),N=new Xo(Yt[Yt.length-1]),O=new Xo(Yt[Yt.length-1]),F=new Xo(Yt[Yt.length-1]),A=new Xo(Yt[Yt.length-1]),L=new Xo(Kt[Kt.length-1]),W=new Xo(5),E=new Xo(20*Kt[Kt.length-1]),rn(),pn(),qo(),on(),tn(),Jo()}const hn={CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,CalcWrink:0,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,TimeFormat:0,DetailedTime:1,PPDisplayTime:0,BuildColour:1,PPOnlyConsiderBuyable:0,PPExcludeTop:0,PPRigidelMode:0,PPSecondsLowerLimit:0,ColourBlue:"#4bb8f0",ColourGreen:"#00ff00",ColourYellow:"#ffff00",ColourOrange:"#ff7f00",ColourRed:"#ff0000",ColourPurple:"#ff00ff",ColourGray:"#b3b3b3",ColourPink:"#ff1493",ColourBrown:"#8b4513",BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,AutosaveTimerBar:0,UpBarColour:1,UpgradeBarFixedPos:1,SortBuildings:0,SortUpgrades:0,UpgradesNeverCollapse:0,DragonAuraInfo:1,GrimoireBar:1,GCTimer:1,Favicon:1,WrinklerButtons:1,HideSectionsButtons:0,TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnBon:1,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,MissingAchievements:0,UpStats:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,ColourGCFlash:"#ffffff",GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,ColourFortuneFlash:"#ffffff",FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,ColourSeaFlash:"#ffffff",SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,ColourGardFlash:"#ffffff",GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,ColourMagicFlash:"#ffffff",MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,ColourWrinklerFlash:"#ffffff",WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,ColourWrinklerMaxFlash:"#ffffff",WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",BulkBuyBlock:0,FavouriteSettings:1,Header:{Favourite:1,Calculation:1,Notation:1,Colours:1,BarsDisplay:1,Tooltip:1,Statistics:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Achievs:1,Misc:1,InfoTab:1}},gn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function fn(){1===e.BotBar?(l("CMBotBar").style.display="",bo()):l("CMBotBar").style.display="none",Go()}function Cn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),bo(),co(),uo()}function yn(){1===e.Favicon&&y>0?ct.wrath?l("CMFavicon").href="https://CookieMonsterTeam.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://CookieMonsterTeam.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class bn{constructor(e,t){this.type=e,this.group=t}}class kn extends bn{constructor(e,t,o){super(e,t),this.desc=o}}class Gn extends bn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}class vn extends bn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.toggle=i,void 0!==a&&(this.func=a)}}class wn extends bn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}const xn={CPSMode:new vn("bool","Calculation",["Current cookies per second","Average cookies per second"],"Calculate times using current cookies per second or average cookies per second",!1),AvgCPSHist:new vn("bool","Calculation",["Average CPS in past 10s","Average CPS in past 15s","Average CPS in past 30s","Average CPS in past 1m","Average CPS in past 5m","Average CPS in past 10m","Average CPS in past 15m","Average CPS in past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new vn("bool","Calculation",["Average clicks in past 1s","Average clicks in past 5s","Average clicks in past 10s","Average clicks in past 15s","Average clicks in past 30s"],"How much time average Cookie Clicks should consider",!1),CalcWrink:new vn("bool","Calculation",["Calculate with wrinklers OFF","Calculate with wrinklers ON","Calculate with single fattest wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) wrinklers",!0,(()=>{se=!0})),Scale:new vn("bool","Notation",["Game's setting scale","Metric","Short scale","Short scale (Abbreviated)","Scientific notation","Engineering notation"],"Change how long numbers are formatted",!1,(()=>{Cn()})),ScaleDecimals:new vn("bool","Notation",["1 decimals","2 decimals","3 decimals"],'Set the number of decimals used when applicable. This only works with Cookie Monster scales and not with "Game\'s Setting Scale"',!1,(()=>{Cn()})),ScaleSeparator:new vn("bool","Notation",[". for decimals (standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(()=>{Cn()})),ScaleCutoff:new Gn("numscale","Notation","Notation cut-off point: ","The number from which Cookie Monster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),TimeFormat:new vn("bool","Notation",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new vn("bool","Notation",["Detailed time OFF","Detailed time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(()=>{1===e.DetailedTime?Game.sayTime=_t:Game.sayTime=M.sayTime})),PPDisplayTime:new vn("bool","Notation",["PP as value (standard)","PP as time unit"],"Display PP as calculated value or as approximate time unit. Note that PP does not translate directly into a time unit and this is therefore only an approximation.",!1),BuildColour:new vn("bool","Colours",["Building colours OFF","Building colours ON"],"Colour code buildings",!0,(()=>{co()})),PPOnlyConsiderBuyable:new vn("bool","Colours",["Don't ignore non-buyable","Ignore non-buyable"],"Makes Cookie Monster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),PPExcludeTop:new vn("bool","Colours",["Don't ignore any","Ignore 1st best","Ignore 1st and 2nd best","Ignore 1st, 2nd and 3rd best"],"Makes Cookie Monster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPRigidelMode:new vn("bool","Colours",["Rigidel mode OFF","Rigidel mode ON"],'Makes Cookie Monster ignore all "buy 1" options when colouring PP in order to stay at a total building count ending in 10 for pantheon god Rigidel',!0),PPSecondsLowerLimit:new Gn("numscale","Colours","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),ColourBlue:new kn("colour","Colours","Standard colour is blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels"),ColourGreen:new kn("colour","Colours","Standard colour is green. Used to show best PP building, for Blood Frenzy bar, and for various labels"),ColourYellow:new kn("colour","Colours","Standard colour is yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels"),ColourOrange:new kn("colour","Colours","Standard colour is orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels"),ColourRed:new kn("colour","Colours","Standard colour is Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels"),ColourPurple:new kn("colour","Colours","Standard colour is purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels"),ColourGray:new kn("colour","Colours","Standard colour is gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar"),ColourPink:new kn("colour","Colours","Standard colour is pink. Used for Dragonflight bar"),ColourBrown:new kn("colour","Colours","Standard colour is brown. Used for Dragon Harvest bar"),BotBar:new vn("bool","BarsDisplay",["Bottom bar OFF","Bottom bar ON"],"Building information",!0,(()=>{fn()})),TimerBar:new vn("bool","BarsDisplay",["Timer bar OFF","Timer bar ON"],"Bar with timers for golden cookie, season popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(()=>{vo()})),TimerBarPos:new vn("bool","BarsDisplay",["Timer bar position (top left)","Timer bar position (bottom)"],"Placement of the timer bar",!1,(()=>{0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),Go()})),TimerBarOverlay:new vn("bool","BarsDisplay",["Timer bar overlay OFF","Timer bar overlay only seconds","Timer bar overlay full"],"Overlay on timers displaying seconds and/or percentage left",!0),AutosaveTimerBar:new vn("bool","BarsDisplay",["Autosave timer bar OFF","Autosave timer bar ON"],"Show a timer counting down till next autosave in the timer bar",!0),UpBarColour:new vn("bool","BarsDisplay",["Upgrade colours/bar OFF","Upgrade colours with bar ON","Upgrade colours without bar ON"],"Colour code upgrades and optionally add a counter bar",!1,(()=>{1===e.UpBarColor?(l("CMUpgradeBar").style.display="",uo()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",uo()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),UpgradeBarFixedPos:new vn("bool","BarsDisplay",["Upgrade bar fixed position OFF","Upgrade bar fixed position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(()=>{1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),SortBuildings:new vn("bool","BarsDisplay",["Sort buildings: default","Sort buildings: PP of x1 purchase","Sort buildings: PP of selected bulk mode","Sort buildings: price until next achievement"],"Sort the display of buildings in default order, by PP, or until next achievement",!1,(()=>{co()})),SortUpgrades:new vn("bool","BarsDisplay",["Sort upgrades: default","Sort upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(()=>{uo()})),UpgradesNeverCollapse:new vn("bool","BarsDisplay",["Upgrades always expanded OFF","Upgrades always expanded ON"],"Toggle to make the upgrades sections always expanded to the size needed to display all upgrades",!0,(()=>{po()})),DragonAuraInfo:new vn("bool","BarsDisplay",["Extra dragon aura info OFF","Extra dragon aura info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),GrimoireBar:new vn("bool","BarsDisplay",["Grimoire magic meter timer OFF","Grimoire magic meter timer ON"],"A timer overlay showing how long till the Grimoire magic meter is full",!0),GCTimer:new vn("bool","BarsDisplay",["Golden cookie timer OFF","Golden cookie timer ON"],"A timer on the golden cookie when it has been spawned",!0,(()=>{1===e.GCTimer?Object.keys(ro).forEach((e=>{ro[e].style.display="block",ro[e].style.left=gt[e].l.style.left,ro[e].style.top=gt[e].l.style.top})):Object.keys(ro).forEach((e=>ro[e].style.display="none"))})),Favicon:new vn("bool","BarsDisplay",["Favicon OFF","Favicon ON"],"Update favicon with golden/wrath cookie",!0,(()=>{yn()})),WrinklerButtons:new vn("bool","BarsDisplay",["Extra wrinkler buttons OFF","Extra wrinkler buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(()=>{t()})),HideSectionsButtons:new vn("bool","BarsDisplay",["Hide buildings/upgrades button OFF","Hide buildings/upgrades button ON"],"Show buttons for hiding and showing the buildings and upgrades sections in the right column",!0,(()=>{e.HideSectionsButtons?l("CMSectionHidButtons").style.display="":l("CMSectionHidButtons").style.display="none"})),TooltipBuildUpgrade:new vn("bool","Tooltip",["Building/upgrade tooltip information OFF","Building/upgrade tooltip information ON"],"Extra information in building/upgrade tooltips",!0),TooltipAmor:new vn("bool","Tooltip",["Buildings tooltip amortization information OFF","Buildings tooltip amortization information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new vn("bool","Tooltip",["Tooltip lucky warning OFF","Tooltip lucky warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new vn("bool","Tooltip",["Tooltip lucky frenzy warning OFF","Tooltip lucky frenzy warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new vn("bool","Tooltip",["Tooltip conjure warning OFF","Tooltip conjure warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new vn("bool","Tooltip",["Tooltip conjure frenzy warning OFF","Tooltip conjure frenzy warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new vn("bool","Tooltip",["Tooltip edifice warning OFF","Tooltip edifice warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new Gn("numscale","Tooltip","Tooltip warning at x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnBon:new vn("bool","Tooltip",["Calculate tooltip warning with bonus CPS OFF","Calculate tooltip warning with bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),ToolWarnPos:new vn("bool","Tooltip",["Tooltip warning position (left)","Tooltip warning position (bottom)"],"Placement of the warning boxes",!1,(()=>{zo()})),TooltipGrim:new vn("bool","Tooltip",["Grimoire tooltip information OFF","Grimoire tooltip information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new vn("bool","Tooltip",["Wrinkler tooltip OFF","Wrinkler tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new vn("bool","Tooltip",["Sugar lump tooltip OFF","Sugar lump tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new vn("bool","Tooltip",["Garden plots tooltip OFF","Garden plots tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new vn("bool","Tooltip",["Pantheon tooltip OFF","Pantheon tooltip ON"],"Shows additional info in the pantheon tooltip",!0),TooltipAscendButton:new vn("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new vn("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new vn("bool","Statistics",["Missing upgrades OFF","Missing upgrades ON"],"Shows missing upgrades in statistics menu",!0),MissingAchievements:new vn("bool","Statistics",["Missing Achievements OFF","Missing Normal Achievements ON"],"Shows missing normal achievements in statistics menu.",!0),UpStats:new vn("bool","Statistics",["Statistics update rate (default)","Statistics update rate (1s)"],"Default rate is once every 5 seconds",!1),HeavenlyChipsTarget:new Gn("numscale","Statistics","Heavenly chips target: ",'Use this to set a heavenly chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new vn("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many golden cookies you have missed",!0),Title:new vn("bool","NotificationGeneral",["Title OFF","Title ON","Title pinned tab highlight"],'Update title with colden cookie/season popup timers; pinned tab highlight only changes the title when a golden cookie/season popup spawns; "!" means that golden cookie/reindeer can spawn',!0),GeneralSound:new vn("bool","NotificationGeneral",["Consider game volume setting OFF","Consider game volume setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new vn("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when golden cookie spawns",!0,(()=>{gn(e.GCNotification)})),GCFlash:new vn("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on golden cookie",!0),ColourGCFlash:new kn("colour","NotificationGC","The colour of the GC flash, standard colour is white"),GCSound:new vn("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on golden cookie",!0),GCVolume:new wn("vol","NotificationGC",[],"Volume"),GCSoundURL:new vn("url","NotificationGC","Sound URL:","URL of the sound to be played when a golden cookie spawns"),FortuneNotification:new vn("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when fortune cookie is on the ticker",!0,(()=>{gn(e.FortuneNotification)})),FortuneFlash:new vn("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on fortune cookie spawn",!0),ColourFortuneFlash:new kn("colour","NotificationFC","The colour of the fortune flash, standard colour is white"),FortuneSound:new vn("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on fortune cookie spawn",!0),FortuneVolume:new wn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new vn("url","NotificationFC","Sound URL:","URL of the sound to be played when the ticker has a fortune cookie"),SeaNotification:new vn("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on season popup",!0,(()=>{gn(e.SeaNotification)})),SeaFlash:new vn("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on season popup",!0),ColourSeaFlash:new kn("colour","NotificationSea","The colour of the season popup flash, standard colour is white"),SeaSound:new vn("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on season popup",!0),SeaVolume:new wn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new vn("url","NotificationSea","Sound URL:","URL of the sound to be played when on season popup spawns"),GardFlash:new vn("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on garden tick",!0),ColourGardFlash:new kn("colour","NotificationGard","The colour of the garden flash, standard colour is white"),GardSound:new vn("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on garden tick",!0),GardVolume:new wn("vol","NotificationGard",[],"Volume"),GardSoundURL:new vn("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new vn("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(()=>{gn(e.MagicNotification)})),MagicFlash:new vn("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),ColourMagicFlash:new kn("colour","NotificationMagi","The colour of the magic flash, standard colour is white"),MagicSound:new vn("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new wn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new vn("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new vn("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a wrinkler appears",!0,(()=>{gn(e.WrinklerNotification)})),WrinklerFlash:new vn("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a wrinkler appears",!0),ColourWrinklerFlash:new kn("colour","NotificationWrink","The colour of the wrinkler flash, standard colour is white"),WrinklerSound:new vn("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a wrinkler appears",!0),WrinklerVolume:new wn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new vn("url","NotificationWrink","Sound URL:","URL of the sound to be played when a wrinkler appears"),WrinklerMaxNotification:new vn("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of wrinklers has appeared",!0,(()=>{gn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new vn("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),ColourWrinklerMaxFlash:new kn("colour","NotificationWrinkMax","The colour of the maximum wrinkler flash, standard colour is white"),WrinklerMaxSound:new vn("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of wrinklers has appeared",!0),WrinklerMaxVolume:new wn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new vn("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of wrinklers has appeared"),BulkBuyBlock:new vn("bool","Miscellaneous",["Block bulk buying OFF","Block bulk buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0),FavouriteSettings:new vn("bool","Miscellaneous",["Favourite settings section OFF","Favourite settings section ON","Favourite settings section ON (Locked)"],"Show stars before each setting which allows selecting it for a 'favourites' section at the top of the Cookie Monster settings. Setting this to Locked removes the stars but shows the 'favourites' section",!0,(()=>{Game.UpdateMenu()}))};function Tn(){return JSON.stringify({favouriteSettings:so,settings:e,version:"2.031.9"})}function Mn(){if(ge!==Game.dragonLevel||se){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{if(e=n,Game.Objects[e].amount{yt[e]=Mo(e)})),bt=[],Object.keys(Game.Upgrades).forEach((e=>{bt[e]=So(e)})),kt=[],Object.keys(Game.Achievements).forEach((e=>{kt[e]=xo(e)})),Bo()}let Pn=!1;function En(t,o,n){(1===e[o]||n)&&3===t&&!1===Pn||1===t?(l("CMFlashScreen").style.backgroundColor=e[`Colour${o}`],l("CMFlashScreen").style.opacity="0.5",3===t?(l("CMFlashScreen").style.display="inline",setTimeout((()=>{En(2,o,!0)}),1e3/Game.fps)):setTimeout((()=>{En(0,o,!0)}),1e3/Game.fps)):2===t?(l("CMFlashScreen").style.opacity="1",setTimeout((()=>{En(1,o,!0)}),1e3/Game.fps)):0===t&&(l("CMFlashScreen").style.display="none")}function Nn(t,o,n,i){if((1===e[o]||i)&&!1===Pn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function On(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===Pn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function Fn(){if(io!==Game.OnAscend&&(io=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(fn(),vo()),ko()),!Game.OnAscend&&0===Game.AscendTimer){r!==Object.keys(Game.mods).length&&(Bn(),mn(),r=Object.keys(Game.mods).length),se&&(pn(!0),on(),Game.Has("Golden switch [off]")?(Bo(),bt["Golden switch [off]"].bought=0,Ao(),Se=de):Se=Game.cookiesPs,dn(),cn(),ln(),an(),Mn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)Ct[e][t]=Sn(e,t)}(),sn(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;Bo();let t=2;5!==ne&&18!==ne||(t-=1),5!==ie&&18!==ie||(t-=1),ne=5,ie=18;for(let e=0;e{yt[t].amount>0&&(e=t)})),yt[e].amount-=1,K-=1}return Object.keys(yt).forEach((t=>{const o=yt[t];e+=St(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),ft=e}(),se=0);const t=Game.auraMult("Fierce Hoarder")>0;!Y&&t?(Y=!0,q=1):Y&&!t&&(Y=!1,q=1),q&&(tn(),q=0),function(){un(),Jo(),pn(!1),function(){Re=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(yt.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}Ie=e,Re=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),qo(),rn();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);pt=mo(e/go())}(),f!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(f=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,f&&(En(3,"FortuneFlash",!1),Nn(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),On("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),g!==Game.shimmerTypes.reindeer.spawned&&(g=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(dt=Game.shimmers[e])})),En(3,"SeaFlash",!1),Nn(e.SeaSoundURL,"SeaSound","SeaVolume",!1),On("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&C!==Game.Objects.Farm.minigame.nextStep&&(0!==C&&C0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>v?(v=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?En(3,"WrinklerMaxFlash",!1):En(3,"WrinklerFlash",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?Nn(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):Nn(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?On("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):On("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):v=t}}()}G=0,gt={},Object.keys(Game.shimmers).forEach((e=>{gt[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(ct=Game.shimmers[e],G+=1)})),Object.keys(ro).forEach((e=>{void 0===gt[e]&&(ro[e].parentNode.removeChild(ro[e]),delete ro[e])})),y!==Game.shimmerTypes.golden.n?(y=Game.shimmerTypes.golden.n,y&&(b{void 0===ro[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",o.style.pointerEvents="none",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ro[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),yn(),b=G,0===G&&(ct=0)):1===e.GCTimer&&y&&Object.keys(ro).forEach((e=>{ro[e].style.opacity=gt[e].l.style.opacity,ro[e].style.transform=gt[e].l.style.transform,ro[e].textContent=Math.ceil(gt[e].life/Game.fps)}))}function An(){let t="";for(let o=0;o{void 0===e[t]?(o=!0,e[t]=hn[t]):"Header"===t&&Object.keys(hn.Header).forEach((n=>{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=hn[t][n])}))})),o&&Ln(),Fn(),Object.keys(hn).forEach((e=>{"Header"!==e&&void 0!==xn[e].func&&xn[e].func()}))}else Wn(hn);Game.UpdateMenu(),An()}function jn(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function Dn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Zo(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${P(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${ho((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(P(Game.Objects[o].bulkPrice)).join(P((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return to=t,oo=o,Vo(),l("tooltip").innerHTML}function Hn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>Dn("g",`${e}`)),"this"),Game.tooltip.wobble()})}))}function Un(){if(!m&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];p=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){p(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Ln()}function Qn(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){_n(o),Game.UpdateMenu()},n.appendChild(i),n}function Xn(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape($t[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function qn(t,o,n,i){const a=document.createElement("div");a.className="listing";const r=document.createElement("b");return r.textContent=o,!0===i&&(r.style.color=e.ColourGreen),a.appendChild(r),a.appendChild(document.createTextNode(": ")),a.appendChild(n),a}function Yn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function Kn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(Qn("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+fo(){Game.HasUnlocked(Ho[e])||c.push(Ho[e])})),0!==c.length&&e.appendChild(Xn("basic","Rare plant drops left to unlock",Yn(c))),e}())),o.appendChild(Qn("Prestige","Prestige")),e.Header.Prestige&&o.appendChild(function(){const t=document.createElement("div");t.className="CMStatsPrestigeSection";const o=Math.floor(Game.HowMuchPrestige(lt+Game.cookiesReset+He+(Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg")?Ae:0)));t.appendChild(Xn("withTooltip","Prestige level (cur / max)",document.createTextNode(`${P(Game.prestige)} / ${P(o)}`),"PrestMaxTooltipPlaceholder"));const n=Math.max(0,Game.HowManyCookiesReset(o+1)-(lt+Game.cookiesReset+He+(Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg")&&Ae?Ae:0))),i=document.createDocumentFragment();i.appendChild(document.createTextNode(P(n)));const a=document.createElement("small");a.textContent=` (${mo(n/st,1)})`,i.appendChild(a),t.appendChild(Xn("withTooltip","Cookies to next level",i,"NextPrestTooltipPlaceholder")),t.appendChild(Xn("withTooltip","Heavenly chips (cur / max)",document.createTextNode(`${P(Game.heavenlyChips)} / ${P(o-Game.prestige+Game.heavenlyChips)}`),"HeavenChipMaxTooltipPlaceholder")),t.appendChild(Xn("basic","Heavenly chips per second (last 5 seconds)",document.createTextNode(P(Ne,2))));const r=Number(e.HeavenlyChipsTarget);if(!Number.isNaN(r)){const e=r-Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned));e>0&&(t.appendChild(Xn("basic","Heavenly chips to target set in settings (cur)",document.createTextNode(P(e)))),t.appendChild(Xn("basic","Time till target (cur, current 5 second average)",document.createTextNode(mo(e/Ne)))))}const l=function(e){let t=Game.cookiesPs;Bo(),0===bt["Heavenly key"].bought&&(bt["Heavenly chip secret"].bought=1,bt["Heavenly cookie stand"].bought=1,bt["Heavenly bakery"].bought=1,bt["Heavenly confectionery"].bought=1,bt["Heavenly key"].bought=1,Ao(),t=de,Bo()),lt>=1e6&&Fo("Sacrifice"),lt>=1e9&&Fo("Oblivion"),lt>=1e12&&Fo("From scratch"),lt>=1e15&&Fo("Nihilism"),lt>=1e18&&Fo("Dematerialize"),lt>=1e21&&Fo("Nil zero zilch"),lt>=1e24&&Fo("Transcendence"),lt>=1e27&&Fo("Obliterate"),lt>=1e30&&Fo("Negative void"),lt>=1e33&&Fo("To crumbs, you say?"),lt>=1e36&&Fo("You get nothing"),lt>=1e39&&Fo("Humble rebeginnings"),lt>=1e42&&Fo("The end of the world"),lt>=1e45&&Fo("Oh, you're back"),lt>=1e48&&Fo("Lazarus"),lt>=1e51&&Fo("Smurf account"),lt>=1e54&&Fo("If at first you don't succeed"),bt["Heavenly chip secret"].bought=1,bt["Heavenly cookie stand"].bought=1,bt["Heavenly bakery"].bought=1,bt["Heavenly confectionery"].bought=1,bt["Heavenly key"].bought=1,oe=e;const o=ee;Ao(),$o(),o!==ee&&Ao();const n=de-t;return oe=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(P(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Xn("withTooltip","Reset bonus income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Xn("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Xn("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Xn("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(Qn("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${P(He)} / ${P(Ue)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){jn()},e.appendChild(t),o.appendChild(Xn("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${P($e[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==$e[1]&&(Game.wrinklers[$e[1]].hp=0)},n.appendChild(i),o.appendChild(Xn("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==$e[1]?$e[1]:"None"})`,n))}if(o.appendChild(function(){const t=document.createElement("div");t.className="CMStatsSeasonSection";let o=!1;const n=[];Object.keys(Wo).forEach((e=>{Game.Has(Wo[e])||(n.push(Wo[e]),o=!0)}));const i=[];Object.keys(jo).forEach((e=>{Game.Has(jo[e])||(i.push(jo[e]),o=!0)}));const a=[];Object.keys(Do).forEach((e=>{Game.Has(Do[e])||(a.push(Do[e]),o=!0)}));const r=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(r.push(Game.eggDrops[e]),o=!0)}));const l=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(l.push(Game.rareEggDrops[e]),o=!0)}));const s=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),c=Game.Has("Century egg");if(("christmas"===Game.season||o||s||c)&&(t.appendChild(Qn("Season Specials","Sea")),e.Header.Sea)){if(0!==n.length){t.appendChild(qn(0,"Halloween cookies left to buy",Yn(n),"halloween"===Game.season));let e=.95;if(Game.HasAchiev("Spooky cookies")&&(e=.8),Game.Has("Starterror")&&(e*=.9),e*=1/Game.dropRateMult(),Game.hasGod){const t=Game.hasGod("seasons");1===t?e*=.9:2===t?e*=.95:3===t&&(e*=.97)}const o=n.length/7;t.appendChild(qn(0,"Chance of receiving a cookie from wrinkler/shiny wrinkler",document.createTextNode(`${P((1-e)*o*100)}% / ${P((1-.9*e)*o*100)}%`),"halloween"===Game.season))}if(0!==i.length){t.appendChild(qn(0,"Christmas cookies left to buy",Yn(i),"christmas"===Game.season));let e=.8;if(Game.HasAchiev("Let it snow")&&(e=.6),e*=1/Game.dropRateMult(),Game.Has("Starsnow")&&(e*=.95),Game.hasGod){const t=Game.hasGod("seasons");1===t?e*=.9:2===t?e*=.95:3===t&&(e*=.97)}const o=i.length/7;t.appendChild(qn(0,"Chance of receiving a cookie from reindeer",document.createTextNode(`${P((1-e)*o*100)}%`),"christmas"===Game.season))}0!==a.length&&t.appendChild(qn(0,"Valentine cookies left to buy",Yn(a),"valentines"===Game.season));const e=function(e){let t=e*(1/Game.dropRateMult());if(Game.HasAchiev("Hide & seek champion")&&(t*=.7),Game.Has("Omelette")&&(t*=.9),Game.Has("Starspawn")&&(t*=.9),Game.hasGod){const e=Game.hasGod("seasons");1===e?t*=.9:2===e?t*=.95:3===e&&(t*=.97)}const o=1-t,n=Game.eggDrops.length-r.length,i=Game.rareEggDrops.length-l.length,a=.9*o*(1-n/Game.eggDrops.length),s=.1*o*(1-i/Game.rareEggDrops.length),c=.9*o*(n/Game.eggDrops.length)+.1*o*(i/Game.rareEggDrops.length);return[a+.9*c*(1-n/Game.eggDrops.length),s+.1*c*(1-i/Game.rareEggDrops.length)]};0!==r.length&&(t.appendChild(qn(0,"Normal easter eggs left to unlock",Yn(r),"easter"===Game.season)),t.appendChild(qn(0,"Chance of receiving an egg from wrinkler/golden cookie",document.createTextNode(`${P(100*e(.98)[0])}% / ${P(100*e(.9)[0])}%`),"easter"===Game.season))),0!==l.length&&(t.appendChild(qn(0,"Rare easter eggs left to unlock",Yn(l),"easter"===Game.season)),t.appendChild(qn(0,"Chance of receiving a rare egg from wrinkler/golden cookie",document.createTextNode(`${P(100*e(.98)[1])}% / ${P(100*e(.9)[1])}%`),"easter"===Game.season))),"christmas"===Game.season&&t.appendChild(qn(0,"Reindeer reward",document.createTextNode(P(Fe)),!0)),s&&t.appendChild(Xn("withTooltip","Chocolate egg cookies",document.createTextNode(P(Ae)),"ChoEggTooltipPlaceholder")),c&&t.appendChild(Xn("basic","Century egg multiplier",document.createTextNode(Math.round(1e4*(Oe-1))/100+"%")))}return t}()),o.appendChild(Qn("Achievements","Achievs")),e.Header.Achievs&&Object.keys(Game.Objects).forEach((e=>{const t=De[e];o.appendChild(Xn("basic",e,t.AmountNeeded<101?document.createTextNode(`Next achievement in ${t.AmountNeeded}, price: ${P(t.price)}`):document.createTextNode("No new achievement for next 100 buildings")))})),o.appendChild(Qn("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Xn("basic",`Average cookies per second (past ${Yt[e.AvgCPSHist]<60?`${Yt[e.AvgCPSHist]} seconds`:Yt[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(P(go(),3)))),o.appendChild(Xn("basic",`Average cookie clicks per second (past ${Kt[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(P(Ve,1)))),o.appendChild(Xn("basic",`Cookies from clicking (past ${Kt[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(P(E.calcSum(Ve*Kt[e.AvgClicksHist]))))),Game.Has("Fortune cookies")){const e=[];Object.keys(Lo).forEach((t=>{Game.Has(Lo[t])||e.push(Lo[t])})),0!==e.length&&o.appendChild(Xn("basic","Fortune Upgrades Left to Buy",Yn(e)))}if(e.ShowMissedGC&&o.appendChild(Xn("basic","Missed golden cookies",document.createTextNode(P(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Xn("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&Qe){const t=Qe.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Qe,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(_e){const t=_e.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=_e,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Xe){const t=Xe.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Xe,e.appendChild(i)}}})),e.MissingAchievements&&function(){let t;Object.values(document.querySelectorAll("div.title")).forEach((e=>{e.textContent.includes("Achievements")&&(t=e.parentElement.querySelectorAll("div.listing.crateBox")[0])})),e.MissingAchievements&&Object.values(t.children).forEach((e=>{if(!e.className.includes("enabled")){const t=e.onclick.toString().split(/\[(.*)\]/gi)[1],{icon:o}=Game.AchievementsById[t];e.style.backgroundPosition=`${48*-o[0]}px ${48*-o[1]}px`,e.onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>function(e){const t=[];"shadow"===e.pool?t.push("Shadow Achievement","#9700cf"):t.push("Achievement",0),t.push("Locked",0);let o=0;(Game.Has("Neuromancy")||Game.sesame&&"debug"===e.pool)&&(o=1),o&&0===e.won?t.push("Click to win!","#00c462"):o&&e.won>0&&t.push("Click to lose!","#00c462");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());let{desc:i}=e;e.descFunc&&(i=e.descFunc("stats"));let a="";for(let e=0;e[${t[e]}]`);return a=a.substring(1),`
\n
\n
${e.name}
\n ${a}
${i}
\n ${Game.sesame?`
Id : ${e.id} | Order : ${Math.floor(e.order)}${e.tier?` | Tier : ${e.tier}`:""}
`:""}`}(Game.AchievementsById[t])),"top"),Game.tooltip.wobble())}}}))}()}const Jn={Favourite:"Favourite Settings",Calculation:"Calculation",Notation:"Notation",Colours:"Colours and colour coding",BarsDisplay:"Infobars and visual settings",Tooltip:"Tooltips",Statistics:"Statistics",Notification:"Notifications",Miscellaneous:"Miscellaneous"},Zn={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function ei(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){_n(t),Game.UpdateMenu()},n.appendChild(i),n}function ti(t){const o=document.createElement("div");if(o.className="listing",1===e.FavouriteSettings&&o.appendChild(function(e){const t=document.createElement("a");return so.includes(e)?(t.innerText="★",t.style.color="yellow"):t.innerText="☆",t.className="option",t.onclick=function(){!function(e){so.includes(e)?so=so.filter((t=>t!==e)):so.push(e)}(e),Ln(),Game.UpdateMenu()},t.onmouseover=function(){Game.tooltip.draw(this,escape($t.FavouriteSettingPlaceholder.innerHTML))},t.onmouseout=function(){Game.tooltip.hide()},t.appendChild(document.createTextNode(" ")),t}(t)),"bool"===xn[t].type){const n=document.createElement("a");xn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=zn+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===xn[t].label.length?(e[t]=0,xn[t].toggle&&(l(zn+t).className="option off")):l(zn+t).className="option",void 0!==xn[t].func&&xn[t].func(),Ln()}(t),Game.UpdateMenu()},n.textContent=xn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=xn[t].desc,i.style.lineHeight="1.6",o.appendChild(i),o}if("vol"===xn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=xn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){Vn(t),Game.UpdateMenu()},r.onchange=function(){Vn(t),Game.UpdateMenu()},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){Nn(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===xn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${xn[t].label} `,n.style.lineHeight="1.6",o.appendChild(n);const i=document.createElement("input");i.id=zn+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${zn+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){!function(e,t){Game.promptWrapL.className="framed";const o=e;Game.promptL.innerHTML=`${o}
`,Object.keys(t).forEach((e=>{const o=document.createElement("a");o.id=`promptOption${e}`,o.className="option",o.onclick=function(){PlaySound("snd/tick.mp3"),t[e][1]()},o.textContent=t[e][0],Game.promptL.children[1].appendChild(o)})),Game.promptAnchorL.style.display="block",Game.darkenL.style.display="block",Game.promptL.focus(),Game.promptOn=1,Game.UpdatePrompt()}(a.outerHTML,[["Save",function(){e[t]=l(`CMConfig${t}Prompt`).value,Ln(),Game.ClosePrompt(),Game.UpdateMenu()}],["Cancel",function(){Game.ClosePrompt()}]])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=xn[t].desc,s.style.lineHeight="1.6",o.appendChild(s),o}if("colour"===xn[t].type){const n=document.createElement("span");n.className="option";const i=document.createElement("input");i.id=t,i.style.width="65px",i.setAttribute("value",e[t]),n.appendChild(i),new Rn(i,{hash:!0,position:"right",onInput:function(){e[this.targetElement.id]=this.toHEXString(),An(),Ln(),Game.UpdateMenu()}});const a=document.createElement("label");if(a.textContent=xn[t].desc,a.style.lineHeight="1.6",n.appendChild(a),t.includes("Flash")){const e=document.createElement("a");e.className="option",e.onclick=function(){En(3,t.replace("Colour",""),!0)},e.textContent="Test flash",n.appendChild(e)}return o.appendChild(n),In().init(),o}if("numscale"===xn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${xn[t].label} `,n.style.lineHeight="1.6",o.appendChild(n);const i=document.createElement("input");i.id=zn+t,i.className="option",i.type="number",i.value=e[t],i.min=xn[t].min,i.max=xn[t].max,i.oninput=function(){e[t]=this.value,Ln(),Cn(),Game.UpdateMenu()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=xn[t].desc,a.style.lineHeight="1.6",o.appendChild(a),o}return o}function oi(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function ni(){M.Beautify=Beautify,Beautify=P,M.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){M.CalculateGains(),se=1,S=Date.now(),B=Date.now()},M.tooltip={},M.tooltip.draw=Game.tooltip.draw,M.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){M.tooltip.drawMod(e,t,o)},M.tooltip.update=Game.tooltip.update,M.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){M.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},M.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){oi(M.UpdateWrinklers)},M.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){oi(M.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(()=>{oi(Game.ClickCookie)}),!1),M.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){M.RebuildUpgrades(),T=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(T[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>Dn("u",`${e}`)),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},M.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e].amount>0){const o=yt[Game.ObjectsById[e].name].name;yt[o].amount-=1,K-=1,t=yt[o].basePrice*Game.priceIncrease**Math.max(0,yt[o].amount-1-yt[o].free),t=Game.modifyBuildingPrice(yt[o],t),t=Math.ceil(t);break}const o=ee;return Ao(),$o(),o!==ee&&Ao(),[de-Game.cookiesPs,t]}(t),n=mo(o/(e+Game.cookiesPs));let i;i=0===Game.cookiesPs?P(1/0):P(e/Game.cookiesPs*100),l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${P(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},M.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){M.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${fe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},M.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==In().picker&&void 0!==In().picker.owner||(M.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Jn).forEach((t=>{if("Favourite"===t){if(0!==so.length&&e.FavouriteSettings>0&&(o.appendChild(ei(t,Jn[t])),e.Header[t]))for(let e=0;e{const n=ei(t,Zn[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(xn).forEach((e=>{xn[e].group===t&&o.appendChild(ti(e))}))})):Object.keys(xn).forEach((e=>{xn[e].group===t&&o.appendChild(ti(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Wn(hn)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",Kn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){_n("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nThis update implements the following functions:
\n- For developers: we now expose some data calculated by Cookie Monster to the global scope. You can access it through the CookieMonsterData object
\n- The column with the most optimal building now has a green coloured indicator whenever colour coding is turned on
\n- The current season in the seasons statistics section is now displayed with green text for easier identification
\n- New option to show a timer bar that counts down till next autosave
\n- New option to sort buildings based on the "cost till next achievement"
\n- Added extra information about achievements in statistics page
\n
\nThis update fixes the following bugs:
\n- Fixed a bug where ignoring certain buildings in rare cases did not create a "most optimal building"
\n- Fixed some issues related to "left till achievement"
\n- Fixed some cases where upgrades and buildings were not correctly sorted
\n- Fixed the tooltip of "Pop all normal wrinklers" displaying an incorrect reward when Shiny\'s are present
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},M.sayTime=Game.sayTime,_t=function(e,t){return Number.isNaN(e)||e<=0?M.sayTime(e,t):mo(e/Game.fps,1)},M.Logic=Game.Logic,Game.Logic=function(){M.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),lo=`${Game.OnAscend?"Ascending! ":""}${P(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=lo;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=ct?ct.wrath?`[W${Math.ceil(ct.life/Game.fps)}]`:`[G${Math.ceil(ct.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,f&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=g?`[R${Math.ceil(dt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=lo;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;ct&&(t=!0,ct.wrath?e+=`[W${Math.ceil(ct.life/Game.fps)}]`:e+=`[G${Math.ceil(ct.life/Game.fps)}]`),f&&(t=!0,e+="[F]"),"christmas"===Game.season&&g&&(e+=`[R${Math.ceil(dt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${P(Game.prestige)}.
(CpS +${P(Game.prestige)}%)`,n+='
'),n+=X<1?"Ascending now would grant you no prestige.":X<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${P(X)} prestige levels (+${P(X)}% CpS)
and ${P(X)} heavenly chips to spend.`,n+='
',n+=`You need ${P(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${pt} to reach the next level and you were making ${P(Ne,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function ii(){window.CookieMonsterData={},Bn(),cn(),mn(),r=Object.keys(Game.mods).length,ue=document.createElement("style"),ue.type="text/css",ue.id="CMCSS",document.head.appendChild(ue),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=Bt+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.9",Ot)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",Et)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",Et)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",Et)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{yo(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=Co("CMTimerBarAutosave","Autosave",[{id:"CMTimerBarAutosaveBar",color:Lt}]);e.appendChild(t);const o=Co("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:Wt},{id:"CMTimerBarGCBar",color:Lt}]);e.appendChild(o);const n=Co("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:Wt},{id:"CMTimerBarRenBar",color:Ft}]);e.appendChild(n);const i=document.createElement("div");i.id="CMTimerBarBuffTimers",e.appendChild(i),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=Pt+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(Et,"Better than the best PP of a building option")),e.appendChild(o(Nt,"Same as the best PP building option")),e.appendChild(o(Ot,"Within the top 10 of PP for buildings")),e.appendChild(o(Ft,"Within the top 20 of PP for buildings")),e.appendChild(o(At,"Within the top 30 of PP for buildings")),e.appendChild(o(Lt,"Outside of the top 30 of PP for buildings")),e.appendChild(o(Wt,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=Bt+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",Et)),e.appendChild(o("CMUpgradeBarGreen",Nt)),e.appendChild(o("CMUpgradeBarYellow",Ot)),e.appendChild(o("CMUpgradeBarOrange",Ft)),e.appendChild(o("CMUpgradeBarRed",At)),e.appendChild(o("CMUpgradeBarPurple",Lt)),e.appendChild(o("CMUpgradeBarGray",Wt)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMFlashScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMSectionHidButtons",e.style.textAlign="center";const t=document.createElement("a");t.className="option",t.onclick=function(){"flex"===l("upgrades").style.display?(l("upgrades").style.display="none",l("toggleUpgrades").style.display="none",l("techUpgrades").style.display="none",l("vaultUpgrades").style.display="none"):(l("upgrades").style.display="flex",0!==l("toggleUpgrades").children.length&&(l("toggleUpgrades").style.display="block"),0!==l("techUpgrades").children.length&&(l("techUpgrades").style.display="block"),0!==l("vaultUpgrades").children.length&&(l("vaultUpgrades").style.display="block"))},t.textContent="Hide/Show Upgrades",e.appendChild(t);const o=document.createElement("a");o.className="option",o.onclick=function(){"grid"===l("products").style.display?l("products").style.display="none":l("products").style.display="grid"},o.textContent="Hide/Show Buildings",e.appendChild(o),l("store").insertBefore(e,l("store").childNodes[2])}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(Ut).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i),$t[e]=n}(Ut[e][0],Ut[e][1],Ut[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){jn()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>Dn("wb","PopAllNormal")),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==$e[1]&&(Game.wrinklers[$e[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>Dn("wb","PopFattest")),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>Dn("b",`${e}`)),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(s=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>Dn("s","Lump")),"this"),Game.tooltip.wobble()}),h=Game.LoadMinigames,Game.LoadMinigames=function(){h(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>Dn("ha","HarvestAllButton")),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>Dn("p",[`${t[0]}`,`${t[2]}`])),"this"),Game.tooltip.wobble()}}))),Hn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>Dn("pag",e)),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>Dn("pas",[e,Game.Objects.Temple.minigame.slot[e]])),"this"),Game.tooltip.wobble()}}}(),$n()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){It=1},l("backgroundLeftCanvas").onmouseout=function(){It=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{Vt[e]=0}))},ni(),$n(),Game.CalculateGains(),Wn(),Rt=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.9 loaded!"):Game.Notify("Cookie Monster version 2.031.9 loaded!","","",1,1),Game.Win("Third-party")}const ai={init:function(){Pn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.9 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(ii(),Game.registerHook("click",Qo),Game.registerHook("draw",_o),Game.registerHook("logic",Fn),Pn=!1)},load:function(e){const t=JSON.parse(e);Bn(),void 0!==t.favouriteSettings&&(so=t.favouriteSettings),Wn(t.settings),"2.031.9"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:Tn};Game.registerMod("CookieMonster",ai)})()})(); //# sourceMappingURL=https://cookiemonsterteam.github.io/CookieMonster/dist/CookieMonsterDev.js.map \ No newline at end of file diff --git a/dist/CookieMonsterDev.js.map b/dist/CookieMonsterDev.js.map index 05a6620..9e4ef60 100644 --- a/dist/CookieMonsterDev.js.map +++ b/dist/CookieMonsterDev.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./node_modules/@eastdesire/jscolor/jscolor.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///./src/Config/VariablesAndData.js","webpack:///./src/Config/Toggles/ToggleWrinklerButtons.js","webpack:///./src/Data/Scales.ts","webpack:///./src/Main/VariablesAndData.js","webpack:///./src/Disp/BeautifyAndFormatting/Beautify.js","webpack:///./src/Cache/VariablesAndData.js","webpack:///./src/Sim/VariablesAndData.js","webpack:///./src/Disp/VariablesAndData.js","webpack:///./src/Sim/ReplacedGameFunctions/SimAuraMult.js","webpack:///./src/Sim/ReplacedGameFunctions/SimGetSellMultiplier.js","webpack:///./src/Sim/ReplacedGameFunctions/SimEff.js","webpack:///./src/Sim/ReplacedGameFunctions/SimHas.js","webpack:///./src/Sim/ReplacedGameFunctions/SimHasGod.js","webpack:///./src/Sim/ReplacedGameFunctions/SimModifyBuidlingPrice.js","webpack:///./src/Sim/SimulationEvents/SellBuilding.js","webpack:///./src/Disp/BuildingsUpgrades/Buildings.js","webpack:///./src/Disp/BuildingsUpgrades/UpdateUpgradeSectionsHeight.js","webpack:///./src/Disp/BuildingsUpgrades/Upgrades.js","webpack:///./src/Disp/BeautifyAndFormatting/FormatTime.js","webpack:///./src/Disp/BeautifyAndFormatting/GetTimeColour.js","webpack:///./src/Disp/HelperFunctions/GetCPS.js","webpack:///./src/Disp/HelperFunctions/GetWrinkConfigBank.js","webpack:///./src/Disp/InfoBars/CreateDOMElements.js","webpack:///./src/Disp/InfoBars/BottomBar.js","webpack:///./src/Disp/HelperFunctions/UpdateBackground.js","webpack:///./src/Config/SpecificToggles.js","webpack:///./src/Cache/Dragon/CacheDragonAuras.js","webpack:///./src/Sim/InitializeData/InitAchievement.js","webpack:///./src/Sim/ReplacedGameFunctions/SimGetTieredCpsMult.js","webpack:///./src/Sim/InitializeData/InitialBuildingData.js","webpack:///./src/Sim/InitializeData/InitUpgrade.js","webpack:///./src/Sim/SimulationData/CopyData.js","webpack:///./src/Disp/Tooltips/CreateTooltip.js","webpack:///./src/Cache/PP/ColourOfPP.js","webpack:///./src/Cache/CPS/GetCPSBuffMult.js","webpack:///./src/Sim/SimulationData/SimWin.js","webpack:///./src/Sim/Calculations/CalculateGains.js","webpack:///./src/Sim/ReplacedGameFunctions/SimGetHeavenlyMultiplier.js","webpack:///./src/Data/Gamedata.ts","webpack:///./src/Sim/ReplacedGameFunctions/SimHasAchiev.js","webpack:///./src/Sim/Calculations/CheckOtherAchiev.js","webpack:///./src/Sim/SimulationEvents/BuyBuildingBonusIncome.js","webpack:///./src/Disp/HelperFunctions/CalculateGrimoireRefillTime.js","webpack:///./src/Config/Toggles/ToggleToolWarnPos.js","webpack:///./src/Disp/Tooltips/UpdateTooltips.js","webpack:///./src/Disp/Tooltips/TypesOfTooltips/Building.js","webpack:///./src/Disp/Tooltips/TypesOfTooltips/Upgrade.js","webpack:///./src/Disp/Tooltips/TypesOfTooltips/SugarLump.js","webpack:///./src/Disp/HelperFunctions/GetLumpColour.js","webpack:///./src/Disp/Tooltips/TypesOfTooltips/Grimoire.js","webpack:///./src/Disp/Tooltips/TypesOfTooltips/GardenPlots.js","webpack:///./src/Disp/Tooltips/TypesOfTooltips/HarvestAll.js","webpack:///./src/Disp/Tooltips/TypesOfTooltips/WrinklerButton.js","webpack:///./src/Disp/Tooltips/TypesOfTooltips/PantheonGods.js","webpack:///./src/Disp/Tooltips/TypesOfTooltips/Warnings.js","webpack:///./src/Disp/DrawHook.js","webpack:///./src/Disp/InfoBars/TimerBar.js","webpack:///./src/Disp/Tooltips/WrinklerTooltips.js","webpack:///./src/Disp/MenuSections/Refreshmenu.js","webpack:///./src/Main/ClickHook.js","webpack:///./src/Cache/CPS/AverageQueue.js","webpack:///./src/Cache/CPS/CPS.js","webpack:///./src/Cache/PP/Building.js","webpack:///./src/Cache/PP/PP.js","webpack:///./src/Cache/PP/Upgrade.js","webpack:///./src/Sim/SimulationEvents/BuyBuilding.js","webpack:///./src/Cache/PriceAndIncome/PriceAndIncome.js","webpack:///./src/Sim/SimulationEvents/BuyUpgrades.js","webpack:///./src/Cache/Stats/ChainCookies.js","webpack:///./src/Cache/Stats/HeavenlyChips.js","webpack:///./src/Cache/Stats/MissingUpgrades.js","webpack:///./src/Disp/MenuSections/Statistics/CreateMissingUpgrades.js","webpack:///./src/Cache/Stats/Reindeer.js","webpack:///./src/Cache/Stats/Stats.js","webpack:///./src/Cache/TillNextAchievement/AllAmountTillNextAchievement.js","webpack:///./src/Cache/TillNextAchievement/IndividualAmountTillNextAchievement.js","webpack:///./src/Cache/Wrinklers/Wrinklers.js","webpack:///./src/Cache/CacheInit.js","webpack:///./src/Data/SettingsDefault.ts","webpack:///./src/Config/CheckNotificationPermissions.js","webpack:///./src/Config/Toggles/ToggleBotBar.js","webpack:///./src/Disp/HelperFunctions/RefreshScale.js","webpack:///./src/Disp/TabTitle/FavIcon.js","webpack:///./src/Data/SettingClasses/BaseSetting.ts","webpack:///./src/Data/SettingClasses/SettingColours.ts","webpack:///./src/Data/SettingClasses/SettingInputNumber.ts","webpack:///./src/Data/SettingClasses/SettingStandard.ts","webpack:///./src/Data/SettingClasses/SettingVolume.ts","webpack:///./src/Data/SettingsData.js","webpack:///./src/Config/Toggles/ToggleDetailedTime.js","webpack:///./src/Config/Toggles/ToggleUpgradeBarAndColour.js","webpack:///./src/Config/Toggles/ToggleUpgradeBarFixedPos.js","webpack:///./src/Config/Toggles/ToggleGCTimer.js","webpack:///./src/Config/Toggles/ToggleSectionHideButtons.js","webpack:///./src/InitSaveLoad/save.js","webpack:///./src/Cache/Dragon/Dragon.js","webpack:///./src/Sim/SimulationEvents/GodChange.js","webpack:///./src/Sim/InitializeData/InitData.js","webpack:///./src/InitSaveLoad/Variables.js","webpack:///./src/Disp/Notifications/Flash.js","webpack:///./src/Disp/Notifications/Sound.js","webpack:///./src/Disp/Notifications/Notification.js","webpack:///./src/Main/LoopHook.js","webpack:///./src/Disp/HelperFunctions/UpdateAscendState.js","webpack:///./src/Cache/CPS/NoGoldSwitchCPS.js","webpack:///./src/Sim/Calculations/NoGoldenSwitchCalc.js","webpack:///./src/Cache/PantheonGods/CacheGods.js","webpack:///./src/Cache/CPS/SellChoEgg.js","webpack:///./src/Sim/SimulationEvents/SellBuildingForChoEgg.js","webpack:///./src/Cache/CacheLoop.js","webpack:///./src/Cache/CPS/CurrWrinklerCPS.js","webpack:///./src/Main/CheckStates/Ticker.js","webpack:///./src/Main/CheckStates/Season.js","webpack:///./src/Main/CheckStates/Garden.js","webpack:///./src/Main/CheckStates/Grimoire.js","webpack:///./src/Main/CheckStates/Wrinkler.js","webpack:///./src/Main/CheckStates/GoldenCookie.js","webpack:///./src/Disp/GoldenCookieTimers/GoldenCookieTimers.js","webpack:///./src/Disp/HelperFunctions/UpdateColours.js","webpack:///./src/Config/SaveLoadReload/SaveLoadReloadSettings.js","webpack:///./src/Disp/HelperFunctions/PopWrinklers.js","webpack:///./src/Disp/Tooltips/Tooltip.js","webpack:///./src/Main/ReplaceGameElements/TooltipGrimoire.js","webpack:///./src/Main/ReplaceGameElements/NativeGrimoire.js","webpack:///./src/Config/ToggleSetting.js","webpack:///./src/Disp/MenuSections/Statistics/CreateDOMElements.js","webpack:///./src/Disp/MenuSections/Statistics/AddStatsPage.js","webpack:///./src/Disp/MenuSections/Statistics/CreateStatsSections.js","webpack:///./src/Sim/SimulationEvents/ResetAscension.js","webpack:///./src/Disp/MenuSections/Statistics/CreateMissingAchievements.js","webpack:///./src/Data/Sectionheaders.ts","webpack:///./src/Disp/MenuSections/Settings/CreateHeader.js","webpack:///./src/Disp/MenuSections/Settings/CreateOption.js","webpack:///./src/Config/Toggles/ToggleFavourites.js","webpack:///./src/Disp/MenuSections/Prompt.js","webpack:///./src/Main/ReplaceGameFunctions/FixMouse.js","webpack:///./src/Main/ReplaceGameFunctions/ReplaceNative.js","webpack:///./src/Disp/Tooltips/PositionLocation.js","webpack:///./src/Main/ReplaceGameElements/TooltipUpgrades.js","webpack:///./src/Disp/Dragon/Dragon.js","webpack:///./src/Sim/SimulationEvents/AuraChange.js","webpack:///./src/Disp/MenuSections/AddMenus.js","webpack:///./src/Disp/MenuSections/Settings/SettingsPage.js","webpack:///./src/Disp/MenuSections/Info/InfoPage.js","webpack:///./src/Data/Moddata.ts","webpack:///./src/Disp/TabTitle/TabTitle.js","webpack:///./src/Disp/Tooltips/AscendButton.js","webpack:///./src/Main/Initialization.js","webpack:///./src/Disp/Initialization/CssArea.js","webpack:///./src/Disp/BuildingsUpgrades/UpgradeBar.js","webpack:///./src/Disp/Initialization/FlashScreen.js","webpack:///./src/Disp/Initialization/CreateSectionHideButtons.js","webpack:///./src/Disp/Initialization/CreateWrinklerButton.js","webpack:///./src/Disp/Initialization/UpdateBuildingUpgradeStyle.js","webpack:///./src/Main/ReplaceGameElements/Tooltips.js","webpack:///./src/Main/WrinklerArea/AddDetectArea.js","webpack:///./src/CookieMonster.js","webpack:///./src/InitSaveLoad/init.js","webpack:///./src/InitSaveLoad/load.js"],"names":["global","factory","module","exports","document","win","Error","window","this","BoxShadow","funcName","elm","jsc","jscolor","initialized","instances","readyQueue","register","addEventListener","pub","init","installBySelector","selector","rootNode","node","elms","querySelectorAll","matchClass","RegExp","lookupClass","i","length","dataOpts","m","undefined","type","toLowerCase","isColorAttrSupported","getDataAttr","className","match","targetElm","optsStr","console","warn","docsRef","opts","trim","parseOptionsStr","e","str","JSON","parse","eParse","looseJSON","Function","eEval","getInstances","inst","targetElement","push","createEl","tagName","el","createElement","setData","nodeOrSelector","sel","querySelector","isNode","val","Node","nodeType","nodeName","removeChildren","firstChild","removeChild","isTextInput","isButton","n","indexOf","isButtonEmpty","value","textContent","isPassiveEventSupported","supported","Object","defineProperty","get","removeEventListener","setAttribute","dataProp","obj","arguments","data","hasOwnProperty","prop","map","removeData","getData","setDefault","name","attrName","getAttribute","setDataAttr","_attachedGroupEvents","attachGroupEvent","groupName","evnt","func","detachGroupEvents","evt","preventDefault","returnValue","captureTarget","target","setCapture","_capturedTarget","releaseTarget","releaseCapture","triggerEvent","eventName","bubbles","cancelable","ev","Event","createEvent","initEvent","dispatchEvent","triggerInputEvent","eventKey","keys","9","13","27","code","keyCode","strList","replace","split","hasClass","classList","contains","addClass","classNames","add","removeClass","repl","remove","getCompStyle","getComputedStyle","currentStyle","setStyle","styles","important","reversible","priority","origStyle","setVal","style","setProperty","hexColor","r","g","b","Math","round","toString","substr","toUpperCase","hexaColor","a","rgbColor","rgbaColor","linearGradient","stdName","prefixes","helper","tryFunc","tryVal","background","getFuncName","Array","prototype","join","call","setBorderRadius","setBoxShadow","getElementPos","relativeToViewport","x","y","rect","getBoundingClientRect","left","top","viewPos","getViewPos","getElementSize","offsetWidth","offsetHeight","getAbsPointerPos","changedTouches","clientX","clientY","getRelPointerPos","targetRect","srcElement","doc","documentElement","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getViewSize","innerWidth","clientWidth","innerHeight","clientHeight","RGB_HSV","min","v","max","h","HSV_RGB","s","u","floor","parseColorString","ret","rgba","format","parseInt","charAt","mR","mG","mB","mA","par","re","parseFloat","parsePaletteValue","mixed","vals","isArray","colors","color","containsTranparentColor","isAlphaFormat","scaleCanvasForHighDPR","canvas","dpr","devicePixelRatio","width","height","getContext","scale","genColorPreviewCanvas","separatorPos","specWidth","scaleForHighDPR","sepW","previewSeparator","sqSize","chessboardSize","sqColor1","chessboardColor1","sqColor2","chessboardColor2","cWidth","cHeight","ctx","fillStyle","fillRect","start","clearRect","lineWidth","beginPath","strokeStyle","moveTo","lineTo","stroke","genColorPreviewGradient","position","params","apply","redrawPosition","picker","owner","tp","vp","thisObj","fixed","c","ts","vs","pd","getPickerDims","ps","borderW","borderH","l","smartPosition","pp","positionValue","contractShadow","_drawPosition","vShadow","shadowBlur","wrap","boxS","shadow","shadowColor","w","controlBorderWidth","sliderSpace","getControlPadding","sliderSize","getSliderChannel","hasAlphaChannel","pal","getPaletteDims","padding","closeButton","buttonHeight","pW","pH","contentW","contentH","paddedW","paddedH","borderWidth","palette","cols","rows","cellW","cellH","sampleCount","_palette","paletteCols","ceil","paletteSpacing","paletteHeight","pointerBorderWidth","pointerThickness","getPadYChannel","mode","triggerCallback","callback","error","triggerGlobal","eventNames","trigger","_pointerMoveEvent","mouse","touch","_pointerEndEvent","_pointerOrigin","onDocumentKeyUp","tryHide","onWindowResize","onWindowScroll","onParentScroll","onDocumentMouseDown","showOnClick","disabled","show","onControlPointerStart","onPickerTouchStart","controlName","pointerType","registerDragEvents","offset","onDocumentPointerMove","onDocumentPointerEnd","parent","frameElement","ofs","abs","rel","channels","fromHSVA","setPad","setSld","setASld","onPaletteSampleClick","currentTarget","_setFormat","getFormat","paletteSetsAlpha","_paletteHasTransparency","fromRGBA","hideOnPaletteClick","hide","ofsX","ofsY","pointerAbs","xVal","yVal","fmt","createPadCanvas","draw","hGrad","createLinearGradient","addColorStop","vGrad","createSliderGradient","color1","color2","grad","createASliderGradient","hShadow","blur","spread","inset","flags","leaveValue","leaveAlpha","leavePreview","enumOpts","previewPosition","alphaChannel","deprecatedOpts","THIS","setOption","option","oldOpt","newOpt","setter","getOption","getter","drawPicker","_processParentElementsInDOM","box","boxB","pad","padB","padM","padCanvas","cross","crossBY","crossBX","crossLY","crossLX","sld","sldB","sldM","sldGrad","sldPtrS","sldPtrIB","sldPtrMB","sldPtrOB","asld","asldB","asldM","asldGrad","asldPtrS","asldPtrIB","asldPtrMB","asldPtrOB","btn","btnT","appendChild","passive","insetColors","outsetColor","p","displaySlider","displayAlphaSlider","pickerDims","crossOuterSize","crossSize","controlPadding","borderRadius","PI","clear","zIndex","border","borderColor","backgroundColor","opacity","controlBorderColor","cursor","instance","control","pointerBorderColor","pointerColor","overflow","display","sliderInnerSpace","innerHTML","chessboard","si","sampleColor","sampleCssColor","sc","sw","backgroundImage","toDataURL","backgroundRepeat","backgroundPosition","bottom","maxWidth","whiteSpace","buttonColor","font","textAlign","onmousedown","lineHeight","createTextNode","closeText","redrawPad","redrawSld","redrawASld","activeClassName","container","body","parentNode","yChannel","rgb1","rgb2","rgb","toHEXString","sldChannel","isPickerOwner","alpha","onChange","onInput","valueElement","alphaElement","previewElement","previewSize","previewPadding","required","hash","uppercase","forceStyle","hideOnLeave","minS","maxS","minV","maxV","minA","maxA","redraw","exposeColor","success","opt","channel","res","evs","callbackProp","isNaN","hsv","fromHSV","fromRGB","fromString","setPreviewElementBg","setValueElementValue","toHEXAString","toRGBString","toRGBAString","toGrayscale","toCanvas","toBackground","isLight","_currentFormat","processValueInput","processAlphaInput","colorStr","alphaVal","setAlphaElementValue","backgrounds","image","size","repeat","origin","preview","bg","sty","right","_parentElementsProcessed","compStyle","set__palette","options","presetsArr","preset","slice","pres","presets","nonProperties","test","valueElementOrigEvents","oninput","oldVal","initValue","initAlpha","install","shift","ready","triggerNow","installByClassName","JSColor","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","__esModule","d","definition","key","o","enumerable","CMOptions","ToggleWrinklerButtons","WrinklerButtons","Game","elderWrath","metric","shortScale","shortScaleAbbreviated","LastModCount","TooltipLumpBackup","BackupGrimoireLaunch","BackupGrimoireLaunchMod","BackupGrimoireDraw","HasReplaceNativeGrimoireLaunch","HasReplaceNativeGrimoireDraw","LoadMinigames","LastSeasonPopupState","LastTickerFortuneState","LastGardenNextStep","LastGoldenCookieState","LastSpawnedGoldenCookieState","LastMagicBarFull","CurrSpawnedGoldenCookieState","LastWrinklerCount","TooltipBuildBackup","TooltipGrimoireBackup","TooltipUpgradeBackup","BackupFunctions","CycliusDateAtBeginLoop","Date","now","CenturyDateAtBeginLoop","num","floats","forced","decimals","ScaleDecimals","Infinity","Scale","Beautify","Number","isFinite","answer","ScaleCutoff","ScaleSeparator","toLocaleString","toExponential","exponential","AmountOfTenPowerThree","toFixed","log","CacheAverageCookiesFromClicks","CookiesDiff","WrinkDiff","WrinkFattestDiff","ChoEggDiff","ClicksDiff","HeavenlyChipsDiff","CacheLastCPSCheck","CacheLastCookies","CacheLastWrinkCookies","CacheLastWrinkFattestCookies","CacheLastClicks","CacheAverageGainBank","CacheAverageGainWrink","CacheAverageGainWrinkFattest","CacheAverageGainChoEgg","CacheAverageCPS","CacheLastHeavenlyCheck","CacheLastHeavenlyChips","CacheDoRemakeBuildPrices","CacheHadBuildAura","SimBuildingsOwned","SimUpgradesOwned","SimPledges","SimAchievementsOwned","SimHeavenlyPower","SimPrestige","SimDragonAura","SimDragonAura2","SimGod1","SimGod2","SimGod3","SimDoSims","SimEffs","SimCookiesPs","SimCookiesPsRaw","DispCSS","CacheDragonAura","CacheDragonAura2","CacheLastDragonLevel","CacheCostDragonUpgrade","CacheLucky","CacheLuckyReward","CacheLuckyWrathReward","CacheLuckyFrenzy","CacheLuckyRewardFrenzy","CacheLuckyWrathRewardFrenzy","CacheConjure","CacheConjureReward","CacheEdifice","CacheEdificeBuilding","CacheNoGoldSwitchCookiesPS","CacheDragonsFortuneMultAdjustment","CacheGoldenCookiesMult","CacheWrathCookiesMult","CacheHCPerSecond","CacheCentEgg","CacheSeaSpec","CacheLastChoEgg","CacheObjects1","CacheObjects10","CacheObjects100","CacheObjectsNextAchievement","CacheWrinklersTotal","CacheWrinklersNormal","CacheWrinklersFattest","CacheCurrWrinklerCPSMult","CacheCurrWrinklerCount","CacheUpgrades","CacheAverageClicks","CacheMissingUpgrades","CacheMissingUpgradesPrestige","CacheMissingUpgradesCookies","CacheChainRequired","CacheChainRequiredNext","CacheChainMaxReward","CacheChainWrathRequired","CacheChainWrathRequiredNext","CacheChainWrathMaxReward","CacheChainFrenzyRequired","CacheChainFrenzyRequiredNext","CacheChainFrenzyMaxReward","CacheChainFrenzyWrathRequired","CacheChainFrenzyWrathRequiredNext","CacheChainFrenzyWrathMaxReward","CacheRealCookiesEarned","CacheAvgCPSWithChoEgg","CacheSpawnedGoldenShimmer","CacheSeasonPopShimmer","CacheTimeTillNextPrestige","CacheMinPP","CacheMinPPBulk","CachePPArray","CacheGoldenShimmersByID","CacheSellForChoEgg","CacheGods","0","1","2","3","4","5","6","7","8","10","SimObjects","SimUpgrades","SimAchievements","SimAuraMult","what","dragonAuras","SimGetSellMultiplier","giveBack","SimEff","def","SimHas","it","ascensionMode","pool","tier","bought","SimHasGod","hasGod","Temple","minigame","Objects","god","gods","id","SimModifyBuildingPrice","building","price","ModifiedPrice","hasBuff","fortune","minigameLoaded","godLvl","BuildingSell","build","basePrice","free","amount","noSim","noSimRes","toChange","startingAmount","moni","buyBulk","priceIncrease","modifyBuildingPrice","getSellMultiplier","ColourTextPre","ColourBackPre","ColourBlue","ColourGreen","ColourYellow","ColourOrange","ColourRed","ColourPurple","ColourGray","ColourPink","ColourBrown","ColoursOrdering","TooltipText","SimpleTooltipElements","CMLastAscendState","TooltipWrinklerArea","TooltipWrinkler","TooltipWrinklerBeingShown","CMSayTime","LastTargetBotBar","LastTargetBuildings","LastTargetTooltipBuilding","CookieTimes","ClickTimes","BuffColours","Frenzy","Clot","Dragonflight","TooltipPrice","TooltipBonusIncome","TooltipType","TooltipName","TooltipBonusMouse","LastAscendState","LastNumberOfTimers","GCTimers","Title","FavouriteSettings","UpdateBuildings","arr","buyMode","removeProperty","BuildColour","forEach","SortBuildings","k","sort","amountUntilNext","AmountNeeded","priceUntilNext","gridRow","UpdateUpgradeSectionsHeight","values","getElementsByClassName","section","UpgradesNeverCollapse","minHeight","includes","UpdateUpgrades","UpBarColour","blue","green","yellow","orange","red","purple","gray","UpgradesInStore","me","addedColour","j","childNodes","div","SortUpgrades","nameChecker","arr2","upgrade","findIndex","order","FormatTime","time","longFormat","formattedTime","TimeFormat","GetTimeColour","text","GetCPS","CPSMode","CalcWrink","cookiesPs","cpsSucked","wrinklers","GetWrinkConfigBank","CreateTimer","bars","timerBar","margin","fontSize","marginRight","verticalAlign","colorBar","borderTopRightRadius","borderBottomRightRadius","timer","marginLeft","CreateBotBarBuildingColumn","buildingName","bonus","header","substring","lastChild","paddingLeft","UpdateBotBar","BotBar","count","PPString","PPDisplayTime","timeColour","bulkPrice","cookies","UpdateBackground","Background","LeftBackground","DrawBackground","UpdateBotTimerBarPosition","TimerBar","TimerBarPos","ToggleTimerBar","CacheDragonAuras","dragonAura","dragonAura2","InitAchievement","achievementName","Achievements","you","SimGetTieredCpsMult","mult","tieredUpgrades","Tiers","special","synergies","syn","buildingTie1","buildingTie2","grandma","Grandma","misfortune","vanilla","InitialBuildingData","cps","magicCpS","ComputeCps","GrandmaSynergies","UpgradesByPool","kitten","Portal","baseCps","baseCPS","InitUpgrade","upgradeName","Upgrades","power","level","pow","CopyData","UpgradesOwned","pledges","AchievementsOwned","heavenlyPower","prestige","totalCookies","slot","won","TooltipCreateHeader","fontWeight","TooltipCreateCalculationSection","tooltip","income","marginBottom","click","production","ColourOfPP","PPSecondsLowerLimit","PPOnlyConsiderBuyable","GetCPSBuffMult","buffs","multCpS","SimWin","CalculateGains","effs","myEffs","ii","heavenlyMult","SimGetHeavenlyMultiplier","heralds","cookieUpgrades","buildMult","sin","santaLevel","milkProgress","milkMult","catMult","storedCps","eggMult","day","startDate","lumps","rawCookiesPs","CpsAchievements","threshold","shimmerTypes","golden","auraMult","bakeryName","goldenSwitchMult","upgrades","goldenCookieUpgrades","veilMult","runModHookOnValue","Fortunes","HalloCookies","ChristCookies","ValCookies","PlantDrops","SimHasAchiev","CheckOtherAchiev","grandmas","buildingsOwned","mathematician","base10","minAmount","ObjectsById","Cursor","hasAllHalloCook","hasAllChristCook","list","fortunes","BuyBuildingsBonusIncome","tieredAchievs","achievUnlock","lastAchievementsOwned","CalculateGrimoireRefillTime","currentMagic","maxMagic","targetMagic","magic","fps","ToggleToolWarnPos","ToolWarnPos","UpdateTooltips","tooltipBox","paddingBottom","TooltipBuildUpgrade","increase","productionAchievs","HasAchiev","achiev","nextProductionAchiev","ObjectsTillNext","PPOfAmount","PPFrag","Building","getPrice","bonusMouse","previousSibling","chocolate","Upgrade","TooltipLump","lumpType","lumpColour","lumpCurrentType","SugarLump","spellCost","getSpellCost","spellsById","TooltipGrim","magicM","recover","recoverColour","conjure","reward","seperator","loss","Grimoire","Farm","TooltipPlots","plot","mature","plantsById","plantName","GardenPlots","totalGain","mortal","tile","immortal","matureBase","HarvestAll","WrinklerReward","WrinklerButton","TooltipPantheon","GodID","cps1","cps2","cps3","PantheonGods","getElementById","TooltipWarn","create","boxId","labelTextFront","labelTextBack","deficitId","transition","labelDiv","labelSpan","deficitDiv","deficitSpan","ToolWarnUser","bonusIncomeUsed","ToolWarnBon","limitLucky","bonusNoFren","ToolWarnLucky","ToolWarnLuckyFrenzy","limitLuckyFrenzy","ToolWarnConjure","limitConjure","ToolWarnConjureFrenzy","limitConjureFrenzy","ToolWarnEdifice","children","Warnings","CMDrawHook","prefs","autosave","drawT","onMenu","Stats","innerText","sayTime","T","maxWidthTwoBar","maxWidthOneBar","numberOfTimers","AutosaveTimerBar","timeTillNextAutosave","OnAscend","TimerBarOverlay","spawned","Has","minTime","maxTime","season","reindeer","BuffTimerBars","classColour","UpdateTimerBar","TooltipWrink","showingTooltip","phase","selected","placeholder","wrinkler","minWidth","escape","CheckWrinklerTooltip","sucked","toSuck","UpdateWrinklerTooltip","UpStats","UpdateMenu","monospace","CMClickHook","addLatest","computedMouseCps","CMAvgQueue","maxLength","queue","newValue","timePeriod","reduce","CacheAvgCPS","currDate","choEggTotal","cookiesEarned","timeDiff","bankDiffAvg","wrinkDiffAvg","wrinkFattestDiffAvg","choEggDiffAvg","clicksDiffAvg","cookieClicks","cpsLength","AvgCPSHist","calcAverage","choEgg","HasUnlocked","AvgClicksHist","CacheColour","PPRigidelMode","getSumPrice","PPExcludeTop","CachePP","indexOfMin","CacheBuildingsPP","CookieMonsterData","Objects1","stringify","Objects10","Objects100","entries","BuildingGetPrice","CacheBuildingIncome","result","CacheBuildingsPrices","CacheIncome","bonusIncome","unlocked","CountsAsUpgradeOwned","diffMouseCPS","multClick","out","MouseCps","BuyUpgradesBonusIncome","MaxChainCookieReward","digit","maxPayout","totalFromChain","nextMoni","nextRequired","chain","LN10","CacheChain","cpsBuffMult","CacheHeavenlyChipsPS","chipsOwned","HowMuchPrestige","cookiesReset","ascendNowToGet","heavenlyChipsDiffAvg","CacheAllMissingUpgrades","classes","noFrame","crates","icon","iconFunction","getDynamicTooltip","crateMissing","CacheSeasonSpec","CacheStatsCookies","CacheGoldenAndWrathCookiesMults","goldenMult","wrathMult","eff","AllAmountTillNextAchievement","forceRecalc","TotalNeeded","tillNext","AchievementsAtStart","index","lastIndexWithChange","IndividualAmountTillNextAchievement","CacheWrinklers","InitCache","DetailedTime","UpgradeBarFixedPos","DragonAuraInfo","GrimoireBar","GCTimer","Favicon","HideSectionsButtons","TooltipAmor","TooltipAscendButton","MissingUpgrades","MissingAchievements","HeavenlyChipsTarget","ShowMissedGC","GeneralSound","GCNotification","GCFlash","ColourGCFlash","GCSound","GCVolume","GCSoundURL","FortuneNotification","FortuneFlash","ColourFortuneFlash","FortuneSound","FortuneVolume","FortuneSoundURL","SeaNotification","SeaFlash","ColourSeaFlash","SeaSound","SeaVolume","SeaSoundURL","GardFlash","ColourGardFlash","GardSound","GardVolume","GardSoundURL","MagicNotification","MagicFlash","ColourMagicFlash","MagicSound","MagicVolume","MagicSoundURL","WrinklerNotification","WrinklerFlash","ColourWrinklerFlash","WrinklerSound","WrinklerVolume","WrinklerSoundURL","WrinklerMaxNotification","WrinklerMaxFlash","ColourWrinklerMaxFlash","WrinklerMaxSound","WrinklerMaxVolume","WrinklerMaxSoundURL","BulkBuyBlock","Header","Favourite","Calculation","Notation","Colours","BarsDisplay","Tooltip","Statistics","Notification","NotificationGeneral","NotificationGC","NotificationFC","NotificationSea","NotificationGard","NotificationMagi","NotificationWrink","NotificationWrinkMax","Miscellaneous","Lucky","Chain","Spells","Garden","Prestige","Wrink","Sea","Achievs","Misc","InfoTab","ToggleOnOff","checkNotificationPromise","requestPermission","then","ToggleBotBar","RefreshScale","BeautifyAll","RefreshStore","RebuildUpgrades","UpdateFavicon","wrath","href","Setting","group","SettingColours","desc","super","SettingInputNumber","label","SettingStandard","toggle","SettingVolume","insertBefore","UpBarColor","save","favouriteSettings","settings","version","CacheDragonCost","dragonLevel","dragonLevels","buy","replaceAll","cost","CalculateChangeGod","CurrentSlot","godsById","InitData","isInitializing","Flash","config","setTimeout","url","sndConfig","volConfig","sound","Audio","volume","play","CreateNotification","notifyConfig","title","message","visibilityState","badge","CMLoopHook","AscendTimer","mods","CachePantheonGods","sellTotal","Bank","marketGoods","goods","goodsVal","marketGood","stock","cookiesPsRawHighest","buildingsToSacrifice","highestBuilding","SellBuildingsForChoEgg","CacheSellAllForChoEgg","hasBuildAura","godMult","CacheCurrWrinklerCPS","cookiesToNext","HowManyCookiesReset","LoopCache","TickerEffect","shimmers","spawnLead","nextStep","CheckMagicMeter","CurrentWrinklers","getWrinklersMax","CheckWrinklerCount","cookie","fontFamily","onclick","pop","onmouseover","filter","webkitFilter","onmouseout","CreateGCTimer","transform","life","UpdateColours","SaveConfig","saveString","b64_to_utf8","unescape","localStorage","getItem","CookieMonsterSave","newSaveString","setItem","utf8_to_b64","LoadConfig","CMConfig","Colors","mod","PopAllNormalWrinklers","hp","CreateTooltip","buildPrice","amortizeAmount","storedTotalCps","globalCpsMult","crateTooltip","lumpTooltip","spellTooltip","tileTooltip","toolTooltip","godTooltip","slotTooltip","area","ReplaceTooltipGrimoire","dynamic","wobble","ReplaceNativeGrimoireDraw","magicBarTextL","ReplaceNativeGrimoire","launch","ReplaceNativeGrimoireLaunch","ToggleConfigVolume","ToggleHeader","StatsHeader","span","StatsListing","listingName","StatsMissDispListing","current","StatsMissDisp","theMissDisp","frag","createDocumentFragment","missing","AddMenuStats","stats","goldCookTooltip","luckyColour","luckyTime","luckyReqFrag","luckyReqSpan","luckyReqSmall","luckyColourFrenzy","luckyTimeFrenzy","luckyReqFrenFrag","luckyReqFrenSpan","luckyReqFrenSmall","luckySplit","luckyRewardMaxSpan","luckyRewardFrenzyMaxSpan","luckyCurBase","luckyCurSpan","chainColour","chainTime","chainReqFrag","chainReqSpan","chainReqSmall","chainWrathColour","chainWrathTime","chainWrathReqFrag","chainWrathReqSpan","chainWrathReqSmall","chainColourFrenzy","chainTimeFrenzy","chainReqFrenFrag","chainReqFrenSpan","chainReqFrenSmall","chainWrathColourFrenzy","chainWrathTimeFrenzy","chainWrathReqFrenFrag","chainWrathReqFrenSpan","chainWrathReqFrenSmall","chainCurMax","chainCur","chainCurWrath","conjureColour","conjureTime","conjureReqFrag","conjureReqSpan","conjureReqSmall","conjureFrenzyColour","conjureFrenzyCur","conjureFrenzyTime","conjureFrenzyReqFrag","conjureFrenzyReqSpan","conjureFrenzyReqSmall","bakeberryColour","bakeberryFrag","chocorootColour","chocorootFrag","queenbeetColour","queenbeetFrag","duketaterColour","duketaterFrag","missingPlantDrops","possiblePresMax","neededCook","cookiesNextFrag","cookiesNextSmall","heavenlyChips","HCTarget","CookiesTillTarget","resetBonus","newHeavenlyChips","curCPS","ResetCPS","ResetBonus","resetFrag","resetSmall","currentPrestige","willHave","willGet","delta7","next7Reset","next7Total","frag7","delta777","next777Reset","next777Total","frag777","delta777777","next777777Reset","next777777Total","frag777777","popAllFrag","popAllA","popFattestFrag","popFattestA","specDisp","missingHalloweenCookies","missingChristmasCookies","missingValentineCookies","missingNormalEggs","eggDrops","missingRareEggs","rareEggDrops","centEgg","failRateHalloween","dropRateMult","obtainedCookiesChance","failRateChristmas","dropRateEgg","StartingFailRate","failRateEgg","succesRateEgg","obtainedEggs","obtainedRareEggs","pNormal1","pRare1","pRedrop","calcSum","missedGoldenClicks","menuSection","prestigeUpgradesMissing","titlefrag","PrestigeUpgrades","normalUpgradesMissing","tech","nextSibling","cookieUpgradesMissing","achievs","parentElement","achievsCrate","AchievementsById","mouseDown","setOnCrate","tags","neuromancy","sesame","descFunc","tagsStr","CrateTooltipLockedAchievements","AddMissingAchievements","ConfigGroups","ConfigGroupsNotification","CreatePrefHeader","CreatePrefOption","FavStar","ele","ToggleFavouriteSetting","FavouriteSettingPlaceholder","CreateFavouriteStar","ToggleConfig","float","percent","slider","step","onchange","input","readOnly","inputPrompt","content","promptWrapL","promptL","PlaySound","promptAnchorL","darkenL","focus","promptOn","UpdatePrompt","CookieMonsterPrompt","outerHTML","ClosePrompt","innerSpan","FixMouseY","timerBarHeight","mouseY","ReplaceNative","drawMod","from","update","updateMod","warnOffset","tta","tt","UpdateTooltipLocation","UpdateWrinklers","UpdateSpecial","ClickCookie","ClickProduct","DescribeDragonAura","aura","bonusCPS","priceOfChange","CalculateChangeAura","timeToRecover","bonusCPSPercentage","div2","AddAuraInfo","ToggleSpecialMenu","on","shouldHide","AddDragonLevelUpTooltip","subGroup","subGroupObject","resDef","resDefBut","AddMenuPref","info","description","notes","menu","AddMenuInfo","AddMenu","detail","Logic","titleGC","titleFC","titleSP","addFC","addSP","lastIndexOf","spawn","UpdateTitle","ReplaceAscendTooltip","InitializeCookieMonster","head","borderTop","textShadow","table","tbody","firstCol","td","CreateBotBar","CMTimerBarAutosave","CMTimerBarGC","CMTimerBarRen","TimerBarBuffTimers","CreateTimerBar","UpgradeBar","legend","legendLine","CreateUpgradeBarLegend","upgradeNumber","CreateUpgradeBar","WhiteScreen","CreateFlashScreen","CreateSectionHideButtons","getElementsByTagName","CreateFavicon","CreateSimpleTooltip","append","CreateWrinklerButtons","canLumps","child","coords","ReplaceTooltipPantheon","popups","Popup","Notify","Win","CM","proceed","confirm","registerHook","load","registerMod"],"mappings":"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AE,4BAA4BhJ,MAAM2U,QAAU,QCT3C,MAAMmI,EAAmB,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAG1DC,EAAuB,CAClC,GACA,GACA,IACA,IACA,KACA,QACA,QACA,OACA,OACA,MACA,MACA,MACA,QACA,SACA,SACA,cACA,UACA,SACA,YACA,UACA,WACA,SACA,WACA,YACA,YACA,kBAIWC,EAAkC,CAC7C,GACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,OC3IK,IAAIC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAnBAC,EAAqB,GAErBC,EAAwB,GACxBC,EAAuB,GAOvBC,EAAkB,GAalBC,EAAyBC,KAAKC,MAI9BC,EAAyBF,KAAKC,MCf1B,SAAS,EAASE,EAAKC,EAAQC,GAC5C,MAAMC,EAAWnC,EAAUoC,cAAgB,EAC3C,GAAIJ,IAAQK,IACV,MAAO,WAET,QAAmB,IAARL,EACT,MAAO,IAET,GAAwB,IAApBhC,EAAUsC,MACZ,OAAOX,EAAgBY,SAASP,EAAKC,GAEvC,GAAIO,OAAOC,SAAST,GAAM,CACxB,GAAIA,EAAM,EACR,MAAO,IAAI,EAASne,KAAKu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","file":"CookieMonsterDev.js","sourcesContent":["/**\r\n * jscolor - JavaScript Color Picker\r\n *\r\n * @link http://jscolor.com\r\n * @license For open source use: GPLv3\r\n * For commercial use: JSColor Commercial License\r\n * @author Jan Odvarko - East Desire\r\n *\r\n * See usage examples at http://jscolor.com/examples/\r\n */\r\n\r\n\r\n(function (global, factory) {\r\n\r\n\t'use strict';\r\n\r\n\tif (typeof module === 'object' && typeof module.exports === 'object') {\r\n\t\t// Export jscolor as a module\r\n\t\tmodule.exports = global.document ?\r\n\t\t\tfactory (global) :\r\n\t\t\tfunction (win) {\r\n\t\t\t\tif (!win.document) {\r\n\t\t\t\t\tthrow new Error('jscolor needs a window with document');\r\n\t\t\t\t}\r\n\t\t\t\treturn factory(win);\r\n\t\t\t}\r\n\t\treturn;\r\n\t}\r\n\r\n\t// Default use (no module export)\r\n\tfactory(global);\r\n\r\n})(typeof window !== 'undefined' ? window : this, function (window) { // BEGIN factory\r\n\r\n// BEGIN jscolor code\r\n\r\n\r\n'use strict';\r\n\r\n\r\nvar jscolor = (function () { // BEGIN jscolor\r\n\r\nvar jsc = {\r\n\r\n\r\n\tinitialized : false,\r\n\r\n\tinstances : [], // created instances of jscolor\r\n\r\n\treadyQueue : [], // functions waiting to be called after init\r\n\r\n\r\n\tregister : function () {\r\n\t\tif (typeof window !== 'undefined' && window.document) {\r\n\t\t\twindow.document.addEventListener('DOMContentLoaded', jsc.pub.init, false);\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tinstallBySelector : function (selector, rootNode) {\r\n\t\trootNode = rootNode ? jsc.node(rootNode) : window.document;\r\n\t\tif (!rootNode) {\r\n\t\t\tthrow new Error('Missing root node');\r\n\t\t}\r\n\r\n\t\tvar elms = rootNode.querySelectorAll(selector);\r\n\r\n\t\t// for backward compatibility with DEPRECATED installation/configuration using className\r\n\t\tvar matchClass = new RegExp('(^|\\\\s)(' + jsc.pub.lookupClass + ')(\\\\s*(\\\\{[^}]*\\\\})|\\\\s|$)', 'i');\r\n\r\n\t\tfor (var i = 0; i < elms.length; i += 1) {\r\n\r\n\t\t\tif (elms[i].jscolor && elms[i].jscolor instanceof jsc.pub) {\r\n\t\t\t\tcontinue; // jscolor already installed on this element\r\n\t\t\t}\r\n\r\n\t\t\tif (elms[i].type !== undefined && elms[i].type.toLowerCase() == 'color' && jsc.isColorAttrSupported) {\r\n\t\t\t\tcontinue; // skips inputs of type 'color' if supported by the browser\r\n\t\t\t}\r\n\r\n\t\t\tvar dataOpts, m;\r\n\r\n\t\t\tif (\r\n\t\t\t\t(dataOpts = jsc.getDataAttr(elms[i], 'jscolor')) !== null ||\r\n\t\t\t\t(elms[i].className && (m = elms[i].className.match(matchClass))) // installation using className (DEPRECATED)\r\n\t\t\t) {\r\n\t\t\t\tvar targetElm = elms[i];\r\n\r\n\t\t\t\tvar optsStr = '';\r\n\t\t\t\tif (dataOpts !== null) {\r\n\t\t\t\t\toptsStr = dataOpts;\r\n\r\n\t\t\t\t} else if (m) { // installation using className (DEPRECATED)\r\n\t\t\t\t\tconsole.warn('Installation using class name is DEPRECATED. Use data-jscolor=\"\" attribute instead.' + jsc.docsRef);\r\n\t\t\t\t\tif (m[4]) {\r\n\t\t\t\t\t\toptsStr = m[4];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar opts = null;\r\n\t\t\t\tif (optsStr.trim()) {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\topts = jsc.parseOptionsStr(optsStr);\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\tconsole.warn(e + '\\n' + optsStr);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttry {\r\n\t\t\t\t\tnew jsc.pub(targetElm, opts);\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\tconsole.warn(e);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tparseOptionsStr : function (str) {\r\n\t\tvar opts = null;\r\n\r\n\t\ttry {\r\n\t\t\topts = JSON.parse(str);\r\n\r\n\t\t} catch (eParse) {\r\n\t\t\tif (!jsc.pub.looseJSON) {\r\n\t\t\t\tthrow new Error('Could not parse jscolor options as JSON: ' + eParse);\r\n\t\t\t} else {\r\n\t\t\t\t// loose JSON syntax is enabled -> try to evaluate the options string as JavaScript object\r\n\t\t\t\ttry {\r\n\t\t\t\t\topts = (new Function ('var opts = (' + str + '); return typeof opts === \"object\" ? opts : {};'))();\r\n\t\t\t\t} catch (eEval) {\r\n\t\t\t\t\tthrow new Error('Could not evaluate jscolor options: ' + eEval);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn opts;\r\n\t},\r\n\r\n\r\n\tgetInstances : function () {\r\n\t\tvar inst = [];\r\n\t\tfor (var i = 0; i < jsc.instances.length; i += 1) {\r\n\t\t\t// if the targetElement still exists, the instance is considered \"alive\"\r\n\t\t\tif (jsc.instances[i] && jsc.instances[i].targetElement) {\r\n\t\t\t\tinst.push(jsc.instances[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn inst;\r\n\t},\r\n\r\n\r\n\tcreateEl : function (tagName) {\r\n\t\tvar el = window.document.createElement(tagName);\r\n\t\tjsc.setData(el, 'gui', true);\r\n\t\treturn el;\r\n\t},\r\n\r\n\r\n\tnode : function (nodeOrSelector) {\r\n\t\tif (!nodeOrSelector) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tif (typeof nodeOrSelector === 'string') {\r\n\t\t\t// query selector\r\n\t\t\tvar sel = nodeOrSelector;\r\n\t\t\tvar el = null;\r\n\t\t\ttry {\r\n\t\t\t\tel = window.document.querySelector(sel);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.warn(e);\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t\tif (!el) {\r\n\t\t\t\tconsole.warn('No element matches the selector: %s', sel);\r\n\t\t\t}\r\n\t\t\treturn el;\r\n\t\t}\r\n\r\n\t\tif (jsc.isNode(nodeOrSelector)) {\r\n\t\t\t// DOM node\r\n\t\t\treturn nodeOrSelector;\r\n\t\t}\r\n\r\n\t\tconsole.warn('Invalid node of type %s: %s', typeof nodeOrSelector, nodeOrSelector);\r\n\t\treturn null;\r\n\t},\r\n\r\n\r\n\t// See https://stackoverflow.com/questions/384286/\r\n\tisNode : function (val) {\r\n\t\tif (typeof Node === 'object') {\r\n\t\t\treturn val instanceof Node;\r\n\t\t}\r\n\t\treturn val && typeof val === 'object' && typeof val.nodeType === 'number' && typeof val.nodeName === 'string';\r\n\t},\r\n\r\n\r\n\tnodeName : function (node) {\r\n\t\tif (node && node.nodeName) {\r\n\t\t\treturn node.nodeName.toLowerCase();\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\r\n\tremoveChildren : function (node) {\r\n\t\twhile (node.firstChild) {\r\n\t\t\tnode.removeChild(node.firstChild);\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tisTextInput : function (el) {\r\n\t\treturn el && jsc.nodeName(el) === 'input' && el.type.toLowerCase() === 'text';\r\n\t},\r\n\r\n\r\n\tisButton : function (el) {\r\n\t\tif (!el) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tvar n = jsc.nodeName(el);\r\n\t\treturn (\r\n\t\t\t(n === 'button') ||\r\n\t\t\t(n === 'input' && ['button', 'submit', 'reset'].indexOf(el.type.toLowerCase()) > -1)\r\n\t\t);\r\n\t},\r\n\r\n\r\n\tisButtonEmpty : function (el) {\r\n\t\tswitch (jsc.nodeName(el)) {\r\n\t\t\tcase 'input': return (!el.value || el.value.trim() === '');\r\n\t\t\tcase 'button': return (el.textContent.trim() === '');\r\n\t\t}\r\n\t\treturn null; // could not determine element's text\r\n\t},\r\n\r\n\r\n\t// See https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\r\n\tisPassiveEventSupported : (function () {\r\n\t\tvar supported = false;\r\n\r\n\t\ttry {\r\n\t\t\tvar opts = Object.defineProperty({}, 'passive', {\r\n\t\t\t\tget: function () { supported = true; }\r\n\t\t\t});\r\n\t\t\twindow.addEventListener('testPassive', null, opts);\r\n\t\t\twindow.removeEventListener('testPassive', null, opts);\r\n\t\t} catch (e) {}\r\n\r\n\t\treturn supported;\r\n\t})(),\r\n\r\n\r\n\tisColorAttrSupported : (function () {\r\n\t\tvar elm = window.document.createElement('input');\r\n\t\tif (elm.setAttribute) {\r\n\t\t\telm.setAttribute('type', 'color');\r\n\t\t\tif (elm.type.toLowerCase() == 'color') {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t})(),\r\n\r\n\r\n\tdataProp : '_data_jscolor',\r\n\r\n\r\n\t// usage:\r\n\t// setData(obj, prop, value)\r\n\t// setData(obj, {prop:value, ...})\r\n\t//\r\n\tsetData : function () {\r\n\t\tvar obj = arguments[0];\r\n\r\n\t\tif (arguments.length === 3) {\r\n\t\t\t// setting a single property\r\n\t\t\tvar data = obj.hasOwnProperty(jsc.dataProp) ? obj[jsc.dataProp] : (obj[jsc.dataProp] = {});\r\n\t\t\tvar prop = arguments[1];\r\n\t\t\tvar value = arguments[2];\r\n\r\n\t\t\tdata[prop] = value;\r\n\t\t\treturn true;\r\n\r\n\t\t} else if (arguments.length === 2 && typeof arguments[1] === 'object') {\r\n\t\t\t// setting multiple properties\r\n\t\t\tvar data = obj.hasOwnProperty(jsc.dataProp) ? obj[jsc.dataProp] : (obj[jsc.dataProp] = {});\r\n\t\t\tvar map = arguments[1];\r\n\r\n\t\t\tfor (var prop in map) {\r\n\t\t\t\tif (map.hasOwnProperty(prop)) {\r\n\t\t\t\t\tdata[prop] = map[prop];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tthrow new Error('Invalid arguments');\r\n\t},\r\n\r\n\r\n\t// usage:\r\n\t// removeData(obj, prop, [prop...])\r\n\t//\r\n\tremoveData : function () {\r\n\t\tvar obj = arguments[0];\r\n\t\tif (!obj.hasOwnProperty(jsc.dataProp)) {\r\n\t\t\treturn true; // data object does not exist\r\n\t\t}\r\n\t\tfor (var i = 1; i < arguments.length; i += 1) {\r\n\t\t\tvar prop = arguments[i];\r\n\t\t\tdelete obj[jsc.dataProp][prop];\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n\r\n\r\n\tgetData : function (obj, prop, setDefault) {\r\n\t\tif (!obj.hasOwnProperty(jsc.dataProp)) {\r\n\t\t\t// data object does not exist\r\n\t\t\tif (setDefault !== undefined) {\r\n\t\t\t\tobj[jsc.dataProp] = {}; // create data object\r\n\t\t\t} else {\r\n\t\t\t\treturn undefined; // no value to return\r\n\t\t\t}\r\n\t\t}\r\n\t\tvar data = obj[jsc.dataProp];\r\n\r\n\t\tif (!data.hasOwnProperty(prop) && setDefault !== undefined) {\r\n\t\t\tdata[prop] = setDefault;\r\n\t\t}\r\n\t\treturn data[prop];\r\n\t},\r\n\r\n\r\n\tgetDataAttr : function (el, name) {\r\n\t\tvar attrName = 'data-' + name;\r\n\t\tvar attrValue = el.getAttribute(attrName);\r\n\t\treturn attrValue;\r\n\t},\r\n\r\n\r\n\tsetDataAttr : function (el, name, value) {\r\n\t\tvar attrName = 'data-' + name;\r\n\t\tel.setAttribute(attrName, value);\r\n\t},\r\n\r\n\r\n\t_attachedGroupEvents : {},\r\n\r\n\r\n\tattachGroupEvent : function (groupName, el, evnt, func) {\r\n\t\tif (!jsc._attachedGroupEvents.hasOwnProperty(groupName)) {\r\n\t\t\tjsc._attachedGroupEvents[groupName] = [];\r\n\t\t}\r\n\t\tjsc._attachedGroupEvents[groupName].push([el, evnt, func]);\r\n\t\tel.addEventListener(evnt, func, false);\r\n\t},\r\n\r\n\r\n\tdetachGroupEvents : function (groupName) {\r\n\t\tif (jsc._attachedGroupEvents.hasOwnProperty(groupName)) {\r\n\t\t\tfor (var i = 0; i < jsc._attachedGroupEvents[groupName].length; i += 1) {\r\n\t\t\t\tvar evt = jsc._attachedGroupEvents[groupName][i];\r\n\t\t\t\tevt[0].removeEventListener(evt[1], evt[2], false);\r\n\t\t\t}\r\n\t\t\tdelete jsc._attachedGroupEvents[groupName];\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tpreventDefault : function (e) {\r\n\t\tif (e.preventDefault) { e.preventDefault(); }\r\n\t\te.returnValue = false;\r\n\t},\r\n\r\n\r\n\tcaptureTarget : function (target) {\r\n\t\t// IE\r\n\t\tif (target.setCapture) {\r\n\t\t\tjsc._capturedTarget = target;\r\n\t\t\tjsc._capturedTarget.setCapture();\r\n\t\t}\r\n\t},\r\n\r\n\r\n\treleaseTarget : function () {\r\n\t\t// IE\r\n\t\tif (jsc._capturedTarget) {\r\n\t\t\tjsc._capturedTarget.releaseCapture();\r\n\t\t\tjsc._capturedTarget = null;\r\n\t\t}\r\n\t},\r\n\r\n\r\n\ttriggerEvent : function (el, eventName, bubbles, cancelable) {\r\n\t\tif (!el) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar ev = null;\r\n\r\n\t\tif (typeof Event === 'function') {\r\n\t\t\tev = new Event(eventName, {\r\n\t\t\t\tbubbles: bubbles,\r\n\t\t\t\tcancelable: cancelable\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\t// IE\r\n\t\t\tev = window.document.createEvent('Event');\r\n\t\t\tev.initEvent(eventName, bubbles, cancelable);\r\n\t\t}\r\n\r\n\t\tif (!ev) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// so that we know that the event was triggered internally\r\n\t\tjsc.setData(ev, 'internal', true);\r\n\r\n\t\tel.dispatchEvent(ev);\r\n\t\treturn true;\r\n\t},\r\n\r\n\r\n\ttriggerInputEvent : function (el, eventName, bubbles, cancelable) {\r\n\t\tif (!el) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (jsc.isTextInput(el)) {\r\n\t\t\tjsc.triggerEvent(el, eventName, bubbles, cancelable);\r\n\t\t}\r\n\t},\r\n\r\n\r\n\teventKey : function (ev) {\r\n\t\tvar keys = {\r\n\t\t\t9: 'Tab',\r\n\t\t\t13: 'Enter',\r\n\t\t\t27: 'Escape',\r\n\t\t};\r\n\t\tif (typeof ev.code === 'string') {\r\n\t\t\treturn ev.code;\r\n\t\t} else if (ev.keyCode !== undefined && keys.hasOwnProperty(ev.keyCode)) {\r\n\t\t\treturn keys[ev.keyCode];\r\n\t\t}\r\n\t\treturn null;\r\n\t},\r\n\r\n\r\n\tstrList : function (str) {\r\n\t\tif (!str) {\r\n\t\t\treturn [];\r\n\t\t}\r\n\t\treturn str.replace(/^\\s+|\\s+$/g, '').split(/\\s+/);\r\n\t},\r\n\r\n\r\n\t// The className parameter (str) can only contain a single class name\r\n\thasClass : function (elm, className) {\r\n\t\tif (!className) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (elm.classList !== undefined) {\r\n\t\t\treturn elm.classList.contains(className);\r\n\t\t}\r\n\t\t// polyfill\r\n\t\treturn -1 != (' ' + elm.className.replace(/\\s+/g, ' ') + ' ').indexOf(' ' + className + ' ');\r\n\t},\r\n\r\n\r\n\t// The className parameter (str) can contain multiple class names separated by whitespace\r\n\taddClass : function (elm, className) {\r\n\t\tvar classNames = jsc.strList(className);\r\n\r\n\t\tif (elm.classList !== undefined) {\r\n\t\t\tfor (var i = 0; i < classNames.length; i += 1) {\r\n\t\t\t\telm.classList.add(classNames[i]);\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t// polyfill\r\n\t\tfor (var i = 0; i < classNames.length; i += 1) {\r\n\t\t\tif (!jsc.hasClass(elm, classNames[i])) {\r\n\t\t\t\telm.className += (elm.className ? ' ' : '') + classNames[i];\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\r\n\t// The className parameter (str) can contain multiple class names separated by whitespace\r\n\tremoveClass : function (elm, className) {\r\n\t\tvar classNames = jsc.strList(className);\r\n\r\n\t\tif (elm.classList !== undefined) {\r\n\t\t\tfor (var i = 0; i < classNames.length; i += 1) {\r\n\t\t\t\telm.classList.remove(classNames[i]);\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t// polyfill\r\n\t\tfor (var i = 0; i < classNames.length; i += 1) {\r\n\t\t\tvar repl = new RegExp(\r\n\t\t\t\t'^\\\\s*' + classNames[i] + '\\\\s*|' +\r\n\t\t\t\t'\\\\s*' + classNames[i] + '\\\\s*$|' +\r\n\t\t\t\t'\\\\s+' + classNames[i] + '(\\\\s+)',\r\n\t\t\t\t'g'\r\n\t\t\t);\r\n\t\t\telm.className = elm.className.replace(repl, '$1');\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tgetCompStyle : function (elm) {\r\n\t\tvar compStyle = window.getComputedStyle ? window.getComputedStyle(elm) : elm.currentStyle;\r\n\r\n\t\t// Note: In Firefox, getComputedStyle returns null in a hidden iframe,\r\n\t\t// that's why we need to check if the returned value is non-empty\r\n\t\tif (!compStyle) {\r\n\t\t\treturn {};\r\n\t\t}\r\n\t\treturn compStyle;\r\n\t},\r\n\r\n\r\n\t// Note:\r\n\t// Setting a property to NULL reverts it to the state before it was first set\r\n\t// with the 'reversible' flag enabled\r\n\t//\r\n\tsetStyle : function (elm, styles, important, reversible) {\r\n\t\t// using '' for standard priority (IE10 apparently doesn't like value undefined)\r\n\t\tvar priority = important ? 'important' : '';\r\n\t\tvar origStyle = null;\r\n\r\n\t\tfor (var prop in styles) {\r\n\t\t\tif (styles.hasOwnProperty(prop)) {\r\n\t\t\t\tvar setVal = null;\r\n\r\n\t\t\t\tif (styles[prop] === null) {\r\n\t\t\t\t\t// reverting a property value\r\n\r\n\t\t\t\t\tif (!origStyle) {\r\n\t\t\t\t\t\t// get the original style object, but dont't try to create it if it doesn't exist\r\n\t\t\t\t\t\torigStyle = jsc.getData(elm, 'origStyle');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (origStyle && origStyle.hasOwnProperty(prop)) {\r\n\t\t\t\t\t\t// we have property's original value -> use it\r\n\t\t\t\t\t\tsetVal = origStyle[prop];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// setting a property value\r\n\r\n\t\t\t\t\tif (reversible) {\r\n\t\t\t\t\t\tif (!origStyle) {\r\n\t\t\t\t\t\t\t// get the original style object and if it doesn't exist, create it\r\n\t\t\t\t\t\t\torigStyle = jsc.getData(elm, 'origStyle', {});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (!origStyle.hasOwnProperty(prop)) {\r\n\t\t\t\t\t\t\t// original property value not yet stored -> store it\r\n\t\t\t\t\t\t\torigStyle[prop] = elm.style[prop];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tsetVal = styles[prop];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (setVal !== null) {\r\n\t\t\t\t\telm.style.setProperty(prop, setVal, priority);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\r\n\thexColor : function (r, g, b) {\r\n\t\treturn '#' + (\r\n\t\t\t('0' + Math.round(r).toString(16)).substr(-2) +\r\n\t\t\t('0' + Math.round(g).toString(16)).substr(-2) +\r\n\t\t\t('0' + Math.round(b).toString(16)).substr(-2)\r\n\t\t).toUpperCase();\r\n\t},\r\n\r\n\r\n\thexaColor : function (r, g, b, a) {\r\n\t\treturn '#' + (\r\n\t\t\t('0' + Math.round(r).toString(16)).substr(-2) +\r\n\t\t\t('0' + Math.round(g).toString(16)).substr(-2) +\r\n\t\t\t('0' + Math.round(b).toString(16)).substr(-2) +\r\n\t\t\t('0' + Math.round(a * 255).toString(16)).substr(-2)\r\n\t\t).toUpperCase();\r\n\t},\r\n\r\n\r\n\trgbColor : function (r, g, b) {\r\n\t\treturn 'rgb(' +\r\n\t\t\tMath.round(r) + ',' +\r\n\t\t\tMath.round(g) + ',' +\r\n\t\t\tMath.round(b) +\r\n\t\t')';\r\n\t},\r\n\r\n\r\n\trgbaColor : function (r, g, b, a) {\r\n\t\treturn 'rgba(' +\r\n\t\t\tMath.round(r) + ',' +\r\n\t\t\tMath.round(g) + ',' +\r\n\t\t\tMath.round(b) + ',' +\r\n\t\t\t(Math.round((a===undefined || a===null ? 1 : a) * 100) / 100) +\r\n\t\t')';\r\n\t},\r\n\r\n\r\n\tlinearGradient : (function () {\r\n\r\n\t\tfunction getFuncName () {\r\n\t\t\tvar stdName = 'linear-gradient';\r\n\t\t\tvar prefixes = ['', '-webkit-', '-moz-', '-o-', '-ms-'];\r\n\t\t\tvar helper = window.document.createElement('div');\r\n\r\n\t\t\tfor (var i = 0; i < prefixes.length; i += 1) {\r\n\t\t\t\tvar tryFunc = prefixes[i] + stdName;\r\n\t\t\t\tvar tryVal = tryFunc + '(to right, rgba(0,0,0,0), rgba(0,0,0,0))';\r\n\r\n\t\t\t\thelper.style.background = tryVal;\r\n\t\t\t\tif (helper.style.background) { // CSS background successfully set -> function name is supported\r\n\t\t\t\t\treturn tryFunc;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn stdName; // fallback to standard 'linear-gradient' without vendor prefix\r\n\t\t}\r\n\r\n\t\tvar funcName = getFuncName();\r\n\r\n\t\treturn function () {\r\n\t\t\treturn funcName + '(' + Array.prototype.join.call(arguments, ', ') + ')';\r\n\t\t};\r\n\r\n\t})(),\r\n\r\n\r\n\tsetBorderRadius : function (elm, value) {\r\n\t\tjsc.setStyle(elm, {'border-radius' : value || '0'});\r\n\t},\r\n\r\n\r\n\tsetBoxShadow : function (elm, value) {\r\n\t\tjsc.setStyle(elm, {'box-shadow': value || 'none'});\r\n\t},\r\n\r\n\r\n\tgetElementPos : function (e, relativeToViewport) {\r\n\t\tvar x=0, y=0;\r\n\t\tvar rect = e.getBoundingClientRect();\r\n\t\tx = rect.left;\r\n\t\ty = rect.top;\r\n\t\tif (!relativeToViewport) {\r\n\t\t\tvar viewPos = jsc.getViewPos();\r\n\t\t\tx += viewPos[0];\r\n\t\t\ty += viewPos[1];\r\n\t\t}\r\n\t\treturn [x, y];\r\n\t},\r\n\r\n\r\n\tgetElementSize : function (e) {\r\n\t\treturn [e.offsetWidth, e.offsetHeight];\r\n\t},\r\n\r\n\r\n\t// get pointer's X/Y coordinates relative to viewport\r\n\tgetAbsPointerPos : function (e) {\r\n\t\tvar x = 0, y = 0;\r\n\t\tif (typeof e.changedTouches !== 'undefined' && e.changedTouches.length) {\r\n\t\t\t// touch devices\r\n\t\t\tx = e.changedTouches[0].clientX;\r\n\t\t\ty = e.changedTouches[0].clientY;\r\n\t\t} else if (typeof e.clientX === 'number') {\r\n\t\t\tx = e.clientX;\r\n\t\t\ty = e.clientY;\r\n\t\t}\r\n\t\treturn { x: x, y: y };\r\n\t},\r\n\r\n\r\n\t// get pointer's X/Y coordinates relative to target element\r\n\tgetRelPointerPos : function (e) {\r\n\t\tvar target = e.target || e.srcElement;\r\n\t\tvar targetRect = target.getBoundingClientRect();\r\n\r\n\t\tvar x = 0, y = 0;\r\n\r\n\t\tvar clientX = 0, clientY = 0;\r\n\t\tif (typeof e.changedTouches !== 'undefined' && e.changedTouches.length) {\r\n\t\t\t// touch devices\r\n\t\t\tclientX = e.changedTouches[0].clientX;\r\n\t\t\tclientY = e.changedTouches[0].clientY;\r\n\t\t} else if (typeof e.clientX === 'number') {\r\n\t\t\tclientX = e.clientX;\r\n\t\t\tclientY = e.clientY;\r\n\t\t}\r\n\r\n\t\tx = clientX - targetRect.left;\r\n\t\ty = clientY - targetRect.top;\r\n\t\treturn { x: x, y: y };\r\n\t},\r\n\r\n\r\n\tgetViewPos : function () {\r\n\t\tvar doc = window.document.documentElement;\r\n\t\treturn [\r\n\t\t\t(window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0),\r\n\t\t\t(window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0)\r\n\t\t];\r\n\t},\r\n\r\n\r\n\tgetViewSize : function () {\r\n\t\tvar doc = window.document.documentElement;\r\n\t\treturn [\r\n\t\t\t(window.innerWidth || doc.clientWidth),\r\n\t\t\t(window.innerHeight || doc.clientHeight),\r\n\t\t];\r\n\t},\r\n\r\n\r\n\t// r: 0-255\r\n\t// g: 0-255\r\n\t// b: 0-255\r\n\t//\r\n\t// returns: [ 0-360, 0-100, 0-100 ]\r\n\t//\r\n\tRGB_HSV : function (r, g, b) {\r\n\t\tr /= 255;\r\n\t\tg /= 255;\r\n\t\tb /= 255;\r\n\t\tvar n = Math.min(Math.min(r,g),b);\r\n\t\tvar v = Math.max(Math.max(r,g),b);\r\n\t\tvar m = v - n;\r\n\t\tif (m === 0) { return [ null, 0, 100 * v ]; }\r\n\t\tvar h = r===n ? 3+(b-g)/m : (g===n ? 5+(r-b)/m : 1+(g-r)/m);\r\n\t\treturn [\r\n\t\t\t60 * (h===6?0:h),\r\n\t\t\t100 * (m/v),\r\n\t\t\t100 * v\r\n\t\t];\r\n\t},\r\n\r\n\r\n\t// h: 0-360\r\n\t// s: 0-100\r\n\t// v: 0-100\r\n\t//\r\n\t// returns: [ 0-255, 0-255, 0-255 ]\r\n\t//\r\n\tHSV_RGB : function (h, s, v) {\r\n\t\tvar u = 255 * (v / 100);\r\n\r\n\t\tif (h === null) {\r\n\t\t\treturn [ u, u, u ];\r\n\t\t}\r\n\r\n\t\th /= 60;\r\n\t\ts /= 100;\r\n\r\n\t\tvar i = Math.floor(h);\r\n\t\tvar f = i%2 ? h-i : 1-(h-i);\r\n\t\tvar m = u * (1 - s);\r\n\t\tvar n = u * (1 - s * f);\r\n\t\tswitch (i) {\r\n\t\t\tcase 6:\r\n\t\t\tcase 0: return [u,n,m];\r\n\t\t\tcase 1: return [n,u,m];\r\n\t\t\tcase 2: return [m,u,n];\r\n\t\t\tcase 3: return [m,n,u];\r\n\t\t\tcase 4: return [n,m,u];\r\n\t\t\tcase 5: return [u,m,n];\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tparseColorString : function (str) {\r\n\t\tvar ret = {\r\n\t\t\trgba: null,\r\n\t\t\tformat: null // 'hex' | 'hexa' | 'rgb' | 'rgba'\r\n\t\t};\r\n\r\n\t\tvar m;\r\n\r\n\t\tif (m = str.match(/^\\W*([0-9A-F]{3,8})\\W*$/i)) {\r\n\t\t\t// HEX notation\r\n\r\n\t\t\tif (m[1].length === 8) {\r\n\t\t\t\t// 8-char notation (= with alpha)\r\n\t\t\t\tret.format = 'hexa';\r\n\t\t\t\tret.rgba = [\r\n\t\t\t\t\tparseInt(m[1].substr(0,2),16),\r\n\t\t\t\t\tparseInt(m[1].substr(2,2),16),\r\n\t\t\t\t\tparseInt(m[1].substr(4,2),16),\r\n\t\t\t\t\tparseInt(m[1].substr(6,2),16) / 255\r\n\t\t\t\t];\r\n\r\n\t\t\t} else if (m[1].length === 6) {\r\n\t\t\t\t// 6-char notation\r\n\t\t\t\tret.format = 'hex';\r\n\t\t\t\tret.rgba = [\r\n\t\t\t\t\tparseInt(m[1].substr(0,2),16),\r\n\t\t\t\t\tparseInt(m[1].substr(2,2),16),\r\n\t\t\t\t\tparseInt(m[1].substr(4,2),16),\r\n\t\t\t\t\tnull\r\n\t\t\t\t];\r\n\r\n\t\t\t} else if (m[1].length === 3) {\r\n\t\t\t\t// 3-char notation\r\n\t\t\t\tret.format = 'hex';\r\n\t\t\t\tret.rgba = [\r\n\t\t\t\t\tparseInt(m[1].charAt(0) + m[1].charAt(0),16),\r\n\t\t\t\t\tparseInt(m[1].charAt(1) + m[1].charAt(1),16),\r\n\t\t\t\t\tparseInt(m[1].charAt(2) + m[1].charAt(2),16),\r\n\t\t\t\t\tnull\r\n\t\t\t\t];\r\n\r\n\t\t\t} else {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\treturn ret;\r\n\t\t}\r\n\r\n\t\tif (m = str.match(/^\\W*rgba?\\(([^)]*)\\)\\W*$/i)) {\r\n\t\t\t// rgb(...) or rgba(...) notation\r\n\r\n\t\t\tvar par = m[1].split(',');\r\n\t\t\tvar re = /^\\s*(\\d+|\\d*\\.\\d+|\\d+\\.\\d*)\\s*$/;\r\n\t\t\tvar mR, mG, mB, mA;\r\n\t\t\tif (\r\n\t\t\t\tpar.length >= 3 &&\r\n\t\t\t\t(mR = par[0].match(re)) &&\r\n\t\t\t\t(mG = par[1].match(re)) &&\r\n\t\t\t\t(mB = par[2].match(re))\r\n\t\t\t) {\r\n\t\t\t\tret.format = 'rgb';\r\n\t\t\t\tret.rgba = [\r\n\t\t\t\t\tparseFloat(mR[1]) || 0,\r\n\t\t\t\t\tparseFloat(mG[1]) || 0,\r\n\t\t\t\t\tparseFloat(mB[1]) || 0,\r\n\t\t\t\t\tnull\r\n\t\t\t\t];\r\n\r\n\t\t\t\tif (\r\n\t\t\t\t\tpar.length >= 4 &&\r\n\t\t\t\t\t(mA = par[3].match(re))\r\n\t\t\t\t) {\r\n\t\t\t\t\tret.format = 'rgba';\r\n\t\t\t\t\tret.rgba[3] = parseFloat(mA[1]) || 0;\r\n\t\t\t\t}\r\n\t\t\t\treturn ret;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\r\n\tparsePaletteValue : function (mixed) {\r\n\t\tvar vals = [];\r\n\r\n\t\tif (typeof mixed === 'string') { // input is a string of space separated color values\r\n\t\t\t// rgb() and rgba() may contain spaces too, so let's find all color values by regex\r\n\t\t\tmixed.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\\(([^)]*)\\)/ig, function (val) {\r\n\t\t\t\tvals.push(val);\r\n\t\t\t});\r\n\t\t} else if (Array.isArray(mixed)) { // input is an array of color values\r\n\t\t\tvals = mixed;\r\n\t\t}\r\n\r\n\t\t// convert all values into uniform color format\r\n\r\n\t\tvar colors = [];\r\n\r\n\t\tfor (var i = 0; i < vals.length; i++) {\r\n\t\t\tvar color = jsc.parseColorString(vals[i]);\r\n\t\t\tif (color) {\r\n\t\t\t\tcolors.push(color);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn colors;\r\n\t},\r\n\r\n\r\n\tcontainsTranparentColor : function (colors) {\r\n\t\tfor (var i = 0; i < colors.length; i++) {\r\n\t\t\tvar a = colors[i].rgba[3];\r\n\t\t\tif (a !== null && a < 1.0) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\r\n\tisAlphaFormat : function (format) {\r\n\t\tswitch (format.toLowerCase()) {\r\n\t\tcase 'hexa':\r\n\t\tcase 'rgba':\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\r\n\t// Canvas scaling for retina displays\r\n\t//\r\n\t// adapted from https://www.html5rocks.com/en/tutorials/canvas/hidpi/\r\n\t//\r\n\tscaleCanvasForHighDPR : function (canvas) {\r\n\t\tvar dpr = window.devicePixelRatio || 1;\r\n\t\tcanvas.width *= dpr;\r\n\t\tcanvas.height *= dpr;\r\n\t\tvar ctx = canvas.getContext('2d');\r\n\t\tctx.scale(dpr, dpr);\r\n\t},\r\n\r\n\r\n\tgenColorPreviewCanvas : function (color, separatorPos, specWidth, scaleForHighDPR) {\r\n\r\n\t\tvar sepW = Math.round(jsc.pub.previewSeparator.length);\r\n\t\tvar sqSize = jsc.pub.chessboardSize;\r\n\t\tvar sqColor1 = jsc.pub.chessboardColor1;\r\n\t\tvar sqColor2 = jsc.pub.chessboardColor2;\r\n\r\n\t\tvar cWidth = specWidth ? specWidth : sqSize * 2;\r\n\t\tvar cHeight = sqSize * 2;\r\n\r\n\t\tvar canvas = jsc.createEl('canvas');\r\n\t\tvar ctx = canvas.getContext('2d');\r\n\r\n\t\tcanvas.width = cWidth;\r\n\t\tcanvas.height = cHeight;\r\n\t\tif (scaleForHighDPR) {\r\n\t\t\tjsc.scaleCanvasForHighDPR(canvas);\r\n\t\t}\r\n\r\n\t\t// transparency chessboard - background\r\n\t\tctx.fillStyle = sqColor1;\r\n\t\tctx.fillRect(0, 0, cWidth, cHeight);\r\n\r\n\t\t// transparency chessboard - squares\r\n\t\tctx.fillStyle = sqColor2;\r\n\t\tfor (var x = 0; x < cWidth; x += sqSize * 2) {\r\n\t\t\tctx.fillRect(x, 0, sqSize, sqSize);\r\n\t\t\tctx.fillRect(x + sqSize, sqSize, sqSize, sqSize);\r\n\t\t}\r\n\r\n\t\tif (color) {\r\n\t\t\t// actual color in foreground\r\n\t\t\tctx.fillStyle = color;\r\n\t\t\tctx.fillRect(0, 0, cWidth, cHeight);\r\n\t\t}\r\n\r\n\t\tvar start = null;\r\n\t\tswitch (separatorPos) {\r\n\t\t\tcase 'left':\r\n\t\t\t\tstart = 0;\r\n\t\t\t\tctx.clearRect(0, 0, sepW/2, cHeight);\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'right':\r\n\t\t\t\tstart = cWidth - sepW;\r\n\t\t\t\tctx.clearRect(cWidth - (sepW/2), 0, sepW/2, cHeight);\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\tif (start !== null) {\r\n\t\t\tctx.lineWidth = 1;\r\n\t\t\tfor (var i = 0; i < jsc.pub.previewSeparator.length; i += 1) {\r\n\t\t\t\tctx.beginPath();\r\n\t\t\t\tctx.strokeStyle = jsc.pub.previewSeparator[i];\r\n\t\t\t\tctx.moveTo(0.5 + start + i, 0);\r\n\t\t\t\tctx.lineTo(0.5 + start + i, cHeight);\r\n\t\t\t\tctx.stroke();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tcanvas: canvas,\r\n\t\t\twidth: cWidth,\r\n\t\t\theight: cHeight,\r\n\t\t};\r\n\t},\r\n\r\n\r\n\t// if position or width is not set => fill the entire element (0%-100%)\r\n\tgenColorPreviewGradient : function (color, position, width) {\r\n\t\tvar params = [];\r\n\r\n\t\tif (position && width) {\r\n\t\t\tparams = [\r\n\t\t\t\t'to ' + {'left':'right', 'right':'left'}[position],\r\n\t\t\t\tcolor + ' 0%',\r\n\t\t\t\tcolor + ' ' + width + 'px',\r\n\t\t\t\t'rgba(0,0,0,0) ' + (width + 1) + 'px',\r\n\t\t\t\t'rgba(0,0,0,0) 100%',\r\n\t\t\t];\r\n\t\t} else {\r\n\t\t\tparams = [\r\n\t\t\t\t'to right',\r\n\t\t\t\tcolor + ' 0%',\r\n\t\t\t\tcolor + ' 100%',\r\n\t\t\t];\r\n\t\t}\r\n\r\n\t\treturn jsc.linearGradient.apply(this, params);\r\n\t},\r\n\r\n\r\n\tredrawPosition : function () {\r\n\r\n\t\tif (!jsc.picker || !jsc.picker.owner) {\r\n\t\t\treturn; // picker is not shown\r\n\t\t}\r\n\r\n\t\tvar thisObj = jsc.picker.owner;\r\n\r\n\t\tvar tp, vp;\r\n\r\n\t\tif (thisObj.fixed) {\r\n\t\t\t// Fixed elements are positioned relative to viewport,\r\n\t\t\t// therefore we can ignore the scroll offset\r\n\t\t\ttp = jsc.getElementPos(thisObj.targetElement, true); // target pos\r\n\t\t\tvp = [0, 0]; // view pos\r\n\t\t} else {\r\n\t\t\ttp = jsc.getElementPos(thisObj.targetElement); // target pos\r\n\t\t\tvp = jsc.getViewPos(); // view pos\r\n\t\t}\r\n\r\n\t\tvar ts = jsc.getElementSize(thisObj.targetElement); // target size\r\n\t\tvar vs = jsc.getViewSize(); // view size\r\n\t\tvar pd = jsc.getPickerDims(thisObj);\r\n\t\tvar ps = [pd.borderW, pd.borderH]; // picker outer size\r\n\t\tvar a, b, c;\r\n\t\tswitch (thisObj.position.toLowerCase()) {\r\n\t\t\tcase 'left': a=1; b=0; c=-1; break;\r\n\t\t\tcase 'right':a=1; b=0; c=1; break;\r\n\t\t\tcase 'top': a=0; b=1; c=-1; break;\r\n\t\t\tdefault: a=0; b=1; c=1; break;\r\n\t\t}\r\n\t\tvar l = (ts[b]+ps[b])/2;\r\n\r\n\t\t// compute picker position\r\n\t\tif (!thisObj.smartPosition) {\r\n\t\t\tvar pp = [\r\n\t\t\t\ttp[a],\r\n\t\t\t\ttp[b]+ts[b]-l+l*c\r\n\t\t\t];\r\n\t\t} else {\r\n\t\t\tvar pp = [\r\n\t\t\t\t-vp[a]+tp[a]+ps[a] > vs[a] ?\r\n\t\t\t\t\t(-vp[a]+tp[a]+ts[a]/2 > vs[a]/2 && tp[a]+ts[a]-ps[a] >= 0 ? tp[a]+ts[a]-ps[a] : tp[a]) :\r\n\t\t\t\t\ttp[a],\r\n\t\t\t\t-vp[b]+tp[b]+ts[b]+ps[b]-l+l*c > vs[b] ?\r\n\t\t\t\t\t(-vp[b]+tp[b]+ts[b]/2 > vs[b]/2 && tp[b]+ts[b]-l-l*c >= 0 ? tp[b]+ts[b]-l-l*c : tp[b]+ts[b]-l+l*c) :\r\n\t\t\t\t\t(tp[b]+ts[b]-l+l*c >= 0 ? tp[b]+ts[b]-l+l*c : tp[b]+ts[b]-l-l*c)\r\n\t\t\t];\r\n\t\t}\r\n\r\n\t\tvar x = pp[a];\r\n\t\tvar y = pp[b];\r\n\t\tvar positionValue = thisObj.fixed ? 'fixed' : 'absolute';\r\n\t\tvar contractShadow =\r\n\t\t\t(pp[0] + ps[0] > tp[0] || pp[0] < tp[0] + ts[0]) &&\r\n\t\t\t(pp[1] + ps[1] < tp[1] + ts[1]);\r\n\r\n\t\tjsc._drawPosition(thisObj, x, y, positionValue, contractShadow);\r\n\t},\r\n\r\n\r\n\t_drawPosition : function (thisObj, x, y, positionValue, contractShadow) {\r\n\t\tvar vShadow = contractShadow ? 0 : thisObj.shadowBlur; // px\r\n\r\n\t\tjsc.picker.wrap.style.position = positionValue;\r\n\t\tjsc.picker.wrap.style.left = x + 'px';\r\n\t\tjsc.picker.wrap.style.top = y + 'px';\r\n\r\n\t\tjsc.setBoxShadow(\r\n\t\t\tjsc.picker.boxS,\r\n\t\t\tthisObj.shadow ?\r\n\t\t\t\tnew jsc.BoxShadow(0, vShadow, thisObj.shadowBlur, 0, thisObj.shadowColor) :\r\n\t\t\t\tnull);\r\n\t},\r\n\r\n\r\n\tgetPickerDims : function (thisObj) {\r\n\t\tvar w = 2 * thisObj.controlBorderWidth + thisObj.width;\r\n\t\tvar h = 2 * thisObj.controlBorderWidth + thisObj.height;\r\n\r\n\t\tvar sliderSpace = 2 * thisObj.controlBorderWidth + 2 * jsc.getControlPadding(thisObj) + thisObj.sliderSize;\r\n\r\n\t\tif (jsc.getSliderChannel(thisObj)) {\r\n\t\t\tw += sliderSpace;\r\n\t\t}\r\n\t\tif (thisObj.hasAlphaChannel()) {\r\n\t\t\tw += sliderSpace;\r\n\t\t}\r\n\r\n\t\tvar pal = jsc.getPaletteDims(thisObj, w);\r\n\r\n\t\tif (pal.height) {\r\n\t\t\th += pal.height + thisObj.padding;\r\n\t\t}\r\n\t\tif (thisObj.closeButton) {\r\n\t\t\th += 2 * thisObj.controlBorderWidth + thisObj.padding + thisObj.buttonHeight;\r\n\t\t}\r\n\r\n\t\tvar pW = w + (2 * thisObj.padding);\r\n\t\tvar pH = h + (2 * thisObj.padding);\r\n\r\n\t\treturn {\r\n\t\t\tcontentW: w,\r\n\t\t\tcontentH: h,\r\n\t\t\tpaddedW: pW,\r\n\t\t\tpaddedH: pH,\r\n\t\t\tborderW: pW + (2 * thisObj.borderWidth),\r\n\t\t\tborderH: pH + (2 * thisObj.borderWidth),\r\n\t\t\tpalette: pal,\r\n\t\t};\r\n\t},\r\n\r\n\r\n\tgetPaletteDims : function (thisObj, width) {\r\n\t\tvar cols = 0, rows = 0, cellW = 0, cellH = 0, height = 0;\r\n\t\tvar sampleCount = thisObj._palette ? thisObj._palette.length : 0;\r\n\r\n\t\tif (sampleCount) {\r\n\t\t\tcols = thisObj.paletteCols;\r\n\t\t\trows = cols > 0 ? Math.ceil(sampleCount / cols) : 0;\r\n\r\n\t\t\t// color sample's dimensions (includes border)\r\n\t\t\tcellW = Math.max(1, Math.floor((width - ((cols - 1) * thisObj.paletteSpacing)) / cols));\r\n\t\t\tcellH = thisObj.paletteHeight ? Math.min(thisObj.paletteHeight, cellW) : cellW;\r\n\t\t}\r\n\r\n\t\tif (rows) {\r\n\t\t\theight =\r\n\t\t\t\trows * cellH +\r\n\t\t\t\t(rows - 1) * thisObj.paletteSpacing;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tcols: cols,\r\n\t\t\trows: rows,\r\n\t\t\tcellW: cellW,\r\n\t\t\tcellH: cellH,\r\n\t\t\twidth: width,\r\n\t\t\theight: height,\r\n\t\t};\r\n\t},\r\n\r\n\r\n\tgetControlPadding : function (thisObj) {\r\n\t\treturn Math.max(\r\n\t\t\tthisObj.padding / 2,\r\n\t\t\t(2 * thisObj.pointerBorderWidth + thisObj.pointerThickness) - thisObj.controlBorderWidth\r\n\t\t);\r\n\t},\r\n\r\n\r\n\tgetPadYChannel : function (thisObj) {\r\n\t\tswitch (thisObj.mode.charAt(1).toLowerCase()) {\r\n\t\t\tcase 'v': return 'v'; break;\r\n\t\t}\r\n\t\treturn 's';\r\n\t},\r\n\r\n\r\n\tgetSliderChannel : function (thisObj) {\r\n\t\tif (thisObj.mode.length > 2) {\r\n\t\t\tswitch (thisObj.mode.charAt(2).toLowerCase()) {\r\n\t\t\t\tcase 's': return 's'; break;\r\n\t\t\t\tcase 'v': return 'v'; break;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn null;\r\n\t},\r\n\r\n\r\n\t// calls function specified in picker's property\r\n\ttriggerCallback : function (thisObj, prop) {\r\n\t\tif (!thisObj[prop]) {\r\n\t\t\treturn; // callback func not specified\r\n\t\t}\r\n\t\tvar callback = null;\r\n\r\n\t\tif (typeof thisObj[prop] === 'string') {\r\n\t\t\t// string with code\r\n\t\t\ttry {\r\n\t\t\t\tcallback = new Function (thisObj[prop]);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.error(e);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// function\r\n\t\t\tcallback = thisObj[prop];\r\n\t\t}\r\n\r\n\t\tif (callback) {\r\n\t\t\tcallback.call(thisObj);\r\n\t\t}\r\n\t},\r\n\r\n\r\n\t// Triggers a color change related event(s) on all picker instances.\r\n\t// It is possible to specify multiple events separated with a space.\r\n\ttriggerGlobal : function (eventNames) {\r\n\t\tvar inst = jsc.getInstances();\r\n\t\tfor (var i = 0; i < inst.length; i += 1) {\r\n\t\t\tinst[i].trigger(eventNames);\r\n\t\t}\r\n\t},\r\n\r\n\r\n\t_pointerMoveEvent : {\r\n\t\tmouse: 'mousemove',\r\n\t\ttouch: 'touchmove'\r\n\t},\r\n\t_pointerEndEvent : {\r\n\t\tmouse: 'mouseup',\r\n\t\ttouch: 'touchend'\r\n\t},\r\n\r\n\r\n\t_pointerOrigin : null,\r\n\t_capturedTarget : null,\r\n\r\n\r\n\tonDocumentKeyUp : function (e) {\r\n\t\tif (['Tab', 'Escape'].indexOf(jsc.eventKey(e)) !== -1) {\r\n\t\t\tif (jsc.picker && jsc.picker.owner) {\r\n\t\t\t\tjsc.picker.owner.tryHide();\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tonWindowResize : function (e) {\r\n\t\tjsc.redrawPosition();\r\n\t},\r\n\r\n\r\n\tonWindowScroll : function (e) {\r\n\t\tjsc.redrawPosition();\r\n\t},\r\n\r\n\r\n\tonParentScroll : function (e) {\r\n\t\t// hide the picker when one of the parent elements is scrolled\r\n\t\tif (jsc.picker && jsc.picker.owner) {\r\n\t\t\tjsc.picker.owner.tryHide();\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tonDocumentMouseDown : function (e) {\r\n\t\tvar target = e.target || e.srcElement;\r\n\r\n\t\tif (target.jscolor && target.jscolor instanceof jsc.pub) { // clicked targetElement -> show picker\r\n\t\t\tif (target.jscolor.showOnClick && !target.disabled) {\r\n\t\t\t\ttarget.jscolor.show();\r\n\t\t\t}\r\n\t\t} else if (jsc.getData(target, 'gui')) { // clicked jscolor's GUI element\r\n\t\t\tvar control = jsc.getData(target, 'control');\r\n\t\t\tif (control) {\r\n\t\t\t\t// jscolor's control\r\n\t\t\t\tjsc.onControlPointerStart(e, target, jsc.getData(target, 'control'), 'mouse');\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// mouse is outside the picker's controls -> hide the color picker!\r\n\t\t\tif (jsc.picker && jsc.picker.owner) {\r\n\t\t\t\tjsc.picker.owner.tryHide();\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tonPickerTouchStart : function (e) {\r\n\t\tvar target = e.target || e.srcElement;\r\n\r\n\t\tif (jsc.getData(target, 'control')) {\r\n\t\t\tjsc.onControlPointerStart(e, target, jsc.getData(target, 'control'), 'touch');\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tonControlPointerStart : function (e, target, controlName, pointerType) {\r\n\t\tvar thisObj = jsc.getData(target, 'instance');\r\n\r\n\t\tjsc.preventDefault(e);\r\n\t\tjsc.captureTarget(target);\r\n\r\n\t\tvar registerDragEvents = function (doc, offset) {\r\n\t\t\tjsc.attachGroupEvent('drag', doc, jsc._pointerMoveEvent[pointerType],\r\n\t\t\t\tjsc.onDocumentPointerMove(e, target, controlName, pointerType, offset));\r\n\t\t\tjsc.attachGroupEvent('drag', doc, jsc._pointerEndEvent[pointerType],\r\n\t\t\t\tjsc.onDocumentPointerEnd(e, target, controlName, pointerType));\r\n\t\t};\r\n\r\n\t\tregisterDragEvents(window.document, [0, 0]);\r\n\r\n\t\tif (window.parent && window.frameElement) {\r\n\t\t\tvar rect = window.frameElement.getBoundingClientRect();\r\n\t\t\tvar ofs = [-rect.left, -rect.top];\r\n\t\t\tregisterDragEvents(window.parent.window.document, ofs);\r\n\t\t}\r\n\r\n\t\tvar abs = jsc.getAbsPointerPos(e);\r\n\t\tvar rel = jsc.getRelPointerPos(e);\r\n\t\tjsc._pointerOrigin = {\r\n\t\t\tx: abs.x - rel.x,\r\n\t\t\ty: abs.y - rel.y\r\n\t\t};\r\n\r\n\t\tswitch (controlName) {\r\n\t\tcase 'pad':\r\n\t\t\t// if the value slider is at the bottom, move it up\r\n\t\t\tif (jsc.getSliderChannel(thisObj) === 'v' && thisObj.channels.v === 0) {\r\n\t\t\t\tthisObj.fromHSVA(null, null, 100, null);\r\n\t\t\t}\r\n\t\t\tjsc.setPad(thisObj, e, 0, 0);\r\n\t\t\tbreak;\r\n\r\n\t\tcase 'sld':\r\n\t\t\tjsc.setSld(thisObj, e, 0);\r\n\t\t\tbreak;\r\n\r\n\t\tcase 'asld':\r\n\t\t\tjsc.setASld(thisObj, e, 0);\r\n\t\t\tbreak;\r\n\t\t}\r\n\t\tthisObj.trigger('input');\r\n\t},\r\n\r\n\r\n\tonDocumentPointerMove : function (e, target, controlName, pointerType, offset) {\r\n\t\treturn function (e) {\r\n\t\t\tvar thisObj = jsc.getData(target, 'instance');\r\n\t\t\tswitch (controlName) {\r\n\t\t\tcase 'pad':\r\n\t\t\t\tjsc.setPad(thisObj, e, offset[0], offset[1]);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'sld':\r\n\t\t\t\tjsc.setSld(thisObj, e, offset[1]);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'asld':\r\n\t\t\t\tjsc.setASld(thisObj, e, offset[1]);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tthisObj.trigger('input');\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tonDocumentPointerEnd : function (e, target, controlName, pointerType) {\r\n\t\treturn function (e) {\r\n\t\t\tvar thisObj = jsc.getData(target, 'instance');\r\n\t\t\tjsc.detachGroupEvents('drag');\r\n\t\t\tjsc.releaseTarget();\r\n\r\n\t\t\t// Always trigger changes AFTER detaching outstanding mouse handlers,\r\n\t\t\t// in case some color change that occured in user-defined onChange/onInput handler\r\n\t\t\t// intruded into current mouse events\r\n\t\t\tthisObj.trigger('input');\r\n\t\t\tthisObj.trigger('change');\r\n\t\t};\r\n\t},\r\n\r\n\r\n\tonPaletteSampleClick : function (e) {\r\n\t\tvar target = e.currentTarget;\r\n\t\tvar thisObj = jsc.getData(target, 'instance');\r\n\t\tvar color = jsc.getData(target, 'color');\r\n\r\n\t\t// when format is flexible, use the original format of this color sample\r\n\t\tif (thisObj.format.toLowerCase() === 'any') {\r\n\t\t\tthisObj._setFormat(color.format); // adapt format\r\n\t\t\tif (!jsc.isAlphaFormat(thisObj.getFormat())) {\r\n\t\t\t\tcolor.rgba[3] = 1.0; // when switching to a format that doesn't support alpha, set full opacity\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// if this color doesn't specify alpha, use alpha of 1.0 (if applicable)\r\n\t\tif (color.rgba[3] === null) {\r\n\t\t\tif (thisObj.paletteSetsAlpha === true || (thisObj.paletteSetsAlpha === 'auto' && thisObj._paletteHasTransparency)) {\r\n\t\t\t\tcolor.rgba[3] = 1.0;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthisObj.fromRGBA.apply(thisObj, color.rgba);\r\n\r\n\t\tthisObj.trigger('input');\r\n\t\tthisObj.trigger('change');\r\n\r\n\t\tif (thisObj.hideOnPaletteClick) {\r\n\t\t\tthisObj.hide();\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tsetPad : function (thisObj, e, ofsX, ofsY) {\r\n\t\tvar pointerAbs = jsc.getAbsPointerPos(e);\r\n\t\tvar x = ofsX + pointerAbs.x - jsc._pointerOrigin.x - thisObj.padding - thisObj.controlBorderWidth;\r\n\t\tvar y = ofsY + pointerAbs.y - jsc._pointerOrigin.y - thisObj.padding - thisObj.controlBorderWidth;\r\n\r\n\t\tvar xVal = x * (360 / (thisObj.width - 1));\r\n\t\tvar yVal = 100 - (y * (100 / (thisObj.height - 1)));\r\n\r\n\t\tswitch (jsc.getPadYChannel(thisObj)) {\r\n\t\tcase 's': thisObj.fromHSVA(xVal, yVal, null, null); break;\r\n\t\tcase 'v': thisObj.fromHSVA(xVal, null, yVal, null); break;\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tsetSld : function (thisObj, e, ofsY) {\r\n\t\tvar pointerAbs = jsc.getAbsPointerPos(e);\r\n\t\tvar y = ofsY + pointerAbs.y - jsc._pointerOrigin.y - thisObj.padding - thisObj.controlBorderWidth;\r\n\t\tvar yVal = 100 - (y * (100 / (thisObj.height - 1)));\r\n\r\n\t\tswitch (jsc.getSliderChannel(thisObj)) {\r\n\t\tcase 's': thisObj.fromHSVA(null, yVal, null, null); break;\r\n\t\tcase 'v': thisObj.fromHSVA(null, null, yVal, null); break;\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tsetASld : function (thisObj, e, ofsY) {\r\n\t\tvar pointerAbs = jsc.getAbsPointerPos(e);\r\n\t\tvar y = ofsY + pointerAbs.y - jsc._pointerOrigin.y - thisObj.padding - thisObj.controlBorderWidth;\r\n\t\tvar yVal = 1.0 - (y * (1.0 / (thisObj.height - 1)));\r\n\r\n\t\tif (yVal < 1.0) {\r\n\t\t\t// if format is flexible and the current format doesn't support alpha, switch to a suitable one\r\n\t\t\tvar fmt = thisObj.getFormat();\r\n\t\t\tif (thisObj.format.toLowerCase() === 'any' && !jsc.isAlphaFormat(fmt)) {\r\n\t\t\t\tthisObj._setFormat(fmt === 'hex' ? 'hexa' : 'rgba');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthisObj.fromHSVA(null, null, null, yVal);\r\n\t},\r\n\r\n\r\n\tcreatePadCanvas : function () {\r\n\r\n\t\tvar ret = {\r\n\t\t\telm: null,\r\n\t\t\tdraw: null\r\n\t\t};\r\n\r\n\t\tvar canvas = jsc.createEl('canvas');\r\n\t\tvar ctx = canvas.getContext('2d');\r\n\r\n\t\tvar drawFunc = function (width, height, type) {\r\n\t\t\tcanvas.width = width;\r\n\t\t\tcanvas.height = height;\r\n\r\n\t\t\tctx.clearRect(0, 0, canvas.width, canvas.height);\r\n\r\n\t\t\tvar hGrad = ctx.createLinearGradient(0, 0, canvas.width, 0);\r\n\t\t\thGrad.addColorStop(0 / 6, '#F00');\r\n\t\t\thGrad.addColorStop(1 / 6, '#FF0');\r\n\t\t\thGrad.addColorStop(2 / 6, '#0F0');\r\n\t\t\thGrad.addColorStop(3 / 6, '#0FF');\r\n\t\t\thGrad.addColorStop(4 / 6, '#00F');\r\n\t\t\thGrad.addColorStop(5 / 6, '#F0F');\r\n\t\t\thGrad.addColorStop(6 / 6, '#F00');\r\n\r\n\t\t\tctx.fillStyle = hGrad;\r\n\t\t\tctx.fillRect(0, 0, canvas.width, canvas.height);\r\n\r\n\t\t\tvar vGrad = ctx.createLinearGradient(0, 0, 0, canvas.height);\r\n\t\t\tswitch (type.toLowerCase()) {\r\n\t\t\tcase 's':\r\n\t\t\t\tvGrad.addColorStop(0, 'rgba(255,255,255,0)');\r\n\t\t\t\tvGrad.addColorStop(1, 'rgba(255,255,255,1)');\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'v':\r\n\t\t\t\tvGrad.addColorStop(0, 'rgba(0,0,0,0)');\r\n\t\t\t\tvGrad.addColorStop(1, 'rgba(0,0,0,1)');\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tctx.fillStyle = vGrad;\r\n\t\t\tctx.fillRect(0, 0, canvas.width, canvas.height);\r\n\t\t};\r\n\r\n\t\tret.elm = canvas;\r\n\t\tret.draw = drawFunc;\r\n\r\n\t\treturn ret;\r\n\t},\r\n\r\n\r\n\tcreateSliderGradient : function () {\r\n\r\n\t\tvar ret = {\r\n\t\t\telm: null,\r\n\t\t\tdraw: null\r\n\t\t};\r\n\r\n\t\tvar canvas = jsc.createEl('canvas');\r\n\t\tvar ctx = canvas.getContext('2d');\r\n\r\n\t\tvar drawFunc = function (width, height, color1, color2) {\r\n\t\t\tcanvas.width = width;\r\n\t\t\tcanvas.height = height;\r\n\r\n\t\t\tctx.clearRect(0, 0, canvas.width, canvas.height);\r\n\r\n\t\t\tvar grad = ctx.createLinearGradient(0, 0, 0, canvas.height);\r\n\t\t\tgrad.addColorStop(0, color1);\r\n\t\t\tgrad.addColorStop(1, color2);\r\n\r\n\t\t\tctx.fillStyle = grad;\r\n\t\t\tctx.fillRect(0, 0, canvas.width, canvas.height);\r\n\t\t};\r\n\r\n\t\tret.elm = canvas;\r\n\t\tret.draw = drawFunc;\r\n\r\n\t\treturn ret;\r\n\t},\r\n\r\n\r\n\tcreateASliderGradient : function () {\r\n\r\n\t\tvar ret = {\r\n\t\t\telm: null,\r\n\t\t\tdraw: null\r\n\t\t};\r\n\r\n\t\tvar canvas = jsc.createEl('canvas');\r\n\t\tvar ctx = canvas.getContext('2d');\r\n\r\n\t\tvar drawFunc = function (width, height, color) {\r\n\t\t\tcanvas.width = width;\r\n\t\t\tcanvas.height = height;\r\n\r\n\t\t\tctx.clearRect(0, 0, canvas.width, canvas.height);\r\n\r\n\t\t\tvar sqSize = canvas.width / 2;\r\n\t\t\tvar sqColor1 = jsc.pub.chessboardColor1;\r\n\t\t\tvar sqColor2 = jsc.pub.chessboardColor2;\r\n\r\n\t\t\t// dark gray background\r\n\t\t\tctx.fillStyle = sqColor1;\r\n\t\t\tctx.fillRect(0, 0, canvas.width, canvas.height);\r\n\r\n\t\t\tif (sqSize > 0) { // to avoid infinite loop\r\n\t\t\t\tfor (var y = 0; y < canvas.height; y += sqSize * 2) {\r\n\t\t\t\t\t// light gray squares\r\n\t\t\t\t\tctx.fillStyle = sqColor2;\r\n\t\t\t\t\tctx.fillRect(0, y, sqSize, sqSize);\r\n\t\t\t\t\tctx.fillRect(sqSize, y + sqSize, sqSize, sqSize);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar grad = ctx.createLinearGradient(0, 0, 0, canvas.height);\r\n\t\t\tgrad.addColorStop(0, color);\r\n\t\t\tgrad.addColorStop(1, 'rgba(0,0,0,0)');\r\n\r\n\t\t\tctx.fillStyle = grad;\r\n\t\t\tctx.fillRect(0, 0, canvas.width, canvas.height);\r\n\t\t};\r\n\r\n\t\tret.elm = canvas;\r\n\t\tret.draw = drawFunc;\r\n\r\n\t\treturn ret;\r\n\t},\r\n\r\n\r\n\tBoxShadow : (function () {\r\n\t\tvar BoxShadow = function (hShadow, vShadow, blur, spread, color, inset) {\r\n\t\t\tthis.hShadow = hShadow;\r\n\t\t\tthis.vShadow = vShadow;\r\n\t\t\tthis.blur = blur;\r\n\t\t\tthis.spread = spread;\r\n\t\t\tthis.color = color;\r\n\t\t\tthis.inset = !!inset;\r\n\t\t};\r\n\r\n\t\tBoxShadow.prototype.toString = function () {\r\n\t\t\tvar vals = [\r\n\t\t\t\tMath.round(this.hShadow) + 'px',\r\n\t\t\t\tMath.round(this.vShadow) + 'px',\r\n\t\t\t\tMath.round(this.blur) + 'px',\r\n\t\t\t\tMath.round(this.spread) + 'px',\r\n\t\t\t\tthis.color\r\n\t\t\t];\r\n\t\t\tif (this.inset) {\r\n\t\t\t\tvals.push('inset');\r\n\t\t\t}\r\n\t\t\treturn vals.join(' ');\r\n\t\t};\r\n\r\n\t\treturn BoxShadow;\r\n\t})(),\r\n\r\n\r\n\tflags : {\r\n\t\tleaveValue : 1 << 0,\r\n\t\tleaveAlpha : 1 << 1,\r\n\t\tleavePreview : 1 << 2,\r\n\t},\r\n\r\n\r\n\tenumOpts : {\r\n\t\tformat: ['auto', 'any', 'hex', 'hexa', 'rgb', 'rgba'],\r\n\t\tpreviewPosition: ['left', 'right'],\r\n\t\tmode: ['hsv', 'hvs', 'hs', 'hv'],\r\n\t\tposition: ['left', 'right', 'top', 'bottom'],\r\n\t\talphaChannel: ['auto', true, false],\r\n\t\tpaletteSetsAlpha: ['auto', true, false],\r\n\t},\r\n\r\n\r\n\tdeprecatedOpts : {\r\n\t\t// : ( can be null)\r\n\t\t'styleElement': 'previewElement',\r\n\t\t'onFineChange': 'onInput',\r\n\t\t'overwriteImportant': 'forceStyle',\r\n\t\t'closable': 'closeButton',\r\n\t\t'insetWidth': 'controlBorderWidth',\r\n\t\t'insetColor': 'controlBorderColor',\r\n\t\t'refine': null,\r\n\t},\r\n\r\n\r\n\tdocsRef : ' ' + 'See https://jscolor.com/docs/',\r\n\r\n\r\n\t//\r\n\t// Usage:\r\n\t// var myPicker = new JSColor( [, ])\r\n\t//\r\n\t// (constructor is accessible via both 'jscolor' and 'JSColor' name)\r\n\t//\r\n\r\n\tpub : function (targetElement, opts) {\r\n\r\n\t\tvar THIS = this;\r\n\r\n\t\tif (!opts) {\r\n\t\t\topts = {};\r\n\t\t}\r\n\r\n\t\tthis.channels = {\r\n\t\t\tr: 255, // red [0-255]\r\n\t\t\tg: 255, // green [0-255]\r\n\t\t\tb: 255, // blue [0-255]\r\n\t\t\th: 0, // hue [0-360]\r\n\t\t\ts: 0, // saturation [0-100]\r\n\t\t\tv: 100, // value (brightness) [0-100]\r\n\t\t\ta: 1.0, // alpha (opacity) [0.0 - 1.0]\r\n\t\t};\r\n\r\n\t\t// General options\r\n\t\t//\r\n\t\tthis.format = 'auto'; // 'auto' | 'any' | 'hex' | 'hexa' | 'rgb' | 'rgba' - Format of the input/output value\r\n\t\tthis.value = undefined; // INITIAL color value in any supported format. To change it later, use method fromString(), fromHSVA(), fromRGBA() or channel()\r\n\t\tthis.alpha = undefined; // INITIAL alpha value. To change it later, call method channel('A', )\r\n\t\tthis.onChange = undefined; // called when color changes. Value can be either a function or a string with JS code.\r\n\t\tthis.onInput = undefined; // called repeatedly as the color is being changed, e.g. while dragging a slider. Value can be either a function or a string with JS code.\r\n\t\tthis.valueElement = undefined; // element that will be used to display and input the color value\r\n\t\tthis.alphaElement = undefined; // element that will be used to display and input the alpha (opacity) value\r\n\t\tthis.previewElement = undefined; // element that will preview the picked color using CSS background\r\n\t\tthis.previewPosition = 'left'; // 'left' | 'right' - position of the color preview in previewElement\r\n\t\tthis.previewSize = 32; // (px) width of the color preview displayed in previewElement\r\n\t\tthis.previewPadding = 8; // (px) space between color preview and content of the previewElement\r\n\t\tthis.required = true; // whether the associated text input must always contain a color value. If false, the input can be left empty.\r\n\t\tthis.hash = true; // whether to prefix the HEX color code with # symbol (only applicable for HEX format)\r\n\t\tthis.uppercase = true; // whether to show the HEX color code in upper case (only applicable for HEX format)\r\n\t\tthis.forceStyle = true; // whether to overwrite CSS style of the previewElement using !important flag\r\n\r\n\t\t// Color Picker options\r\n\t\t//\r\n\t\tthis.width = 181; // width of the color spectrum (in px)\r\n\t\tthis.height = 101; // height of the color spectrum (in px)\r\n\t\tthis.mode = 'HSV'; // 'HSV' | 'HVS' | 'HS' | 'HV' - layout of the color picker controls\r\n\t\tthis.alphaChannel = 'auto'; // 'auto' | true | false - if alpha channel is enabled, the alpha slider will be visible. If 'auto', it will be determined according to color format\r\n\t\tthis.position = 'bottom'; // 'left' | 'right' | 'top' | 'bottom' - position relative to the target element\r\n\t\tthis.smartPosition = true; // automatically change picker position when there is not enough space for it\r\n\t\tthis.showOnClick = true; // whether to show the picker when user clicks its target element\r\n\t\tthis.hideOnLeave = true; // whether to automatically hide the picker when user leaves its target element (e.g. upon clicking the document)\r\n\t\tthis.palette = []; // colors to be displayed in the palette, specified as an array or a string of space separated color values (in any supported format)\r\n\t\tthis.paletteCols = 10; // number of columns in the palette\r\n\t\tthis.paletteSetsAlpha = 'auto'; // 'auto' | true | false - if true, palette colors that don't specify alpha will set alpha to 1.0\r\n\t\tthis.paletteHeight = 16; // maximum height (px) of a row in the palette\r\n\t\tthis.paletteSpacing = 4; // distance (px) between color samples in the palette\r\n\t\tthis.hideOnPaletteClick = false; // when set to true, clicking the palette will also hide the color picker\r\n\t\tthis.sliderSize = 16; // px\r\n\t\tthis.crossSize = 8; // px\r\n\t\tthis.closeButton = false; // whether to display the Close button\r\n\t\tthis.closeText = 'Close';\r\n\t\tthis.buttonColor = 'rgba(0,0,0,1)'; // CSS color\r\n\t\tthis.buttonHeight = 18; // px\r\n\t\tthis.padding = 12; // px\r\n\t\tthis.backgroundColor = 'rgba(255,255,255,1)'; // CSS color\r\n\t\tthis.borderWidth = 1; // px\r\n\t\tthis.borderColor = 'rgba(187,187,187,1)'; // CSS color\r\n\t\tthis.borderRadius = 8; // px\r\n\t\tthis.controlBorderWidth = 1; // px\r\n\t\tthis.controlBorderColor = 'rgba(187,187,187,1)'; // CSS color\r\n\t\tthis.shadow = true; // whether to display a shadow\r\n\t\tthis.shadowBlur = 15; // px\r\n\t\tthis.shadowColor = 'rgba(0,0,0,0.2)'; // CSS color\r\n\t\tthis.pointerColor = 'rgba(76,76,76,1)'; // CSS color\r\n\t\tthis.pointerBorderWidth = 1; // px\r\n\t\tthis.pointerBorderColor = 'rgba(255,255,255,1)'; // CSS color\r\n\t\tthis.pointerThickness = 2; // px\r\n\t\tthis.zIndex = 5000;\r\n\t\tthis.container = undefined; // where to append the color picker (BODY element by default)\r\n\r\n\t\t// Experimental\r\n\t\t//\r\n\t\tthis.minS = 0; // min allowed saturation (0 - 100)\r\n\t\tthis.maxS = 100; // max allowed saturation (0 - 100)\r\n\t\tthis.minV = 0; // min allowed value (brightness) (0 - 100)\r\n\t\tthis.maxV = 100; // max allowed value (brightness) (0 - 100)\r\n\t\tthis.minA = 0.0; // min allowed alpha (opacity) (0.0 - 1.0)\r\n\t\tthis.maxA = 1.0; // max allowed alpha (opacity) (0.0 - 1.0)\r\n\r\n\r\n\t\t// Getter: option(name)\r\n\t\t// Setter: option(name, value)\r\n\t\t// option({name:value, ...})\r\n\t\t//\r\n\t\tthis.option = function () {\r\n\t\t\tif (!arguments.length) {\r\n\t\t\t\tthrow new Error('No option specified');\r\n\t\t\t}\r\n\r\n\t\t\tif (arguments.length === 1 && typeof arguments[0] === 'string') {\r\n\t\t\t\t// getting a single option\r\n\t\t\t\ttry {\r\n\t\t\t\t\treturn getOption(arguments[0]);\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\tconsole.warn(e);\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\r\n\t\t\t} else if (arguments.length >= 2 && typeof arguments[0] === 'string') {\r\n\t\t\t\t// setting a single option\r\n\t\t\t\ttry {\r\n\t\t\t\t\tif (!setOption(arguments[0], arguments[1])) {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\tconsole.warn(e);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tthis.redraw(); // immediately redraws the picker, if it's displayed\r\n\t\t\t\tthis.exposeColor(); // in case some preview-related or format-related option was changed\r\n\t\t\t\treturn true;\r\n\r\n\t\t\t} else if (arguments.length === 1 && typeof arguments[0] === 'object') {\r\n\t\t\t\t// setting multiple options\r\n\t\t\t\tvar opts = arguments[0];\r\n\t\t\t\tvar success = true;\r\n\t\t\t\tfor (var opt in opts) {\r\n\t\t\t\t\tif (opts.hasOwnProperty(opt)) {\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\tif (!setOption(opt, opts[opt])) {\r\n\t\t\t\t\t\t\t\tsuccess = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t\tconsole.warn(e);\r\n\t\t\t\t\t\t\tsuccess = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tthis.redraw(); // immediately redraws the picker, if it's displayed\r\n\t\t\t\tthis.exposeColor(); // in case some preview-related or format-related option was changed\r\n\t\t\t\treturn success;\r\n\t\t\t}\r\n\r\n\t\t\tthrow new Error('Invalid arguments');\r\n\t\t}\r\n\r\n\r\n\t\t// Getter: channel(name)\r\n\t\t// Setter: channel(name, value)\r\n\t\t//\r\n\t\tthis.channel = function (name, value) {\r\n\t\t\tif (typeof name !== 'string') {\r\n\t\t\t\tthrow new Error('Invalid value for channel name: ' + name);\r\n\t\t\t}\r\n\r\n\t\t\tif (value === undefined) {\r\n\t\t\t\t// getting channel value\r\n\t\t\t\tif (!this.channels.hasOwnProperty(name.toLowerCase())) {\r\n\t\t\t\t\tconsole.warn('Getting unknown channel: ' + name);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\treturn this.channels[name.toLowerCase()];\r\n\r\n\t\t\t} else {\r\n\t\t\t\t// setting channel value\r\n\t\t\t\tvar res = false;\r\n\t\t\t\tswitch (name.toLowerCase()) {\r\n\t\t\t\t\tcase 'r': res = this.fromRGBA(value, null, null, null); break;\r\n\t\t\t\t\tcase 'g': res = this.fromRGBA(null, value, null, null); break;\r\n\t\t\t\t\tcase 'b': res = this.fromRGBA(null, null, value, null); break;\r\n\t\t\t\t\tcase 'h': res = this.fromHSVA(value, null, null, null); break;\r\n\t\t\t\t\tcase 's': res = this.fromHSVA(null, value, null, null); break;\r\n\t\t\t\t\tcase 'v': res = this.fromHSVA(null, null, value, null); break;\r\n\t\t\t\t\tcase 'a': res = this.fromHSVA(null, null, null, value); break;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tconsole.warn('Setting unknown channel: ' + name);\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tif (res) {\r\n\t\t\t\t\tthis.redraw(); // immediately redraws the picker, if it's displayed\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\r\n\t\t// Triggers given input event(s) by:\r\n\t\t// - executing on callback specified as picker's option\r\n\t\t// - triggering standard DOM event listeners attached to the value element\r\n\t\t//\r\n\t\t// It is possible to specify multiple events separated with a space.\r\n\t\t//\r\n\t\tthis.trigger = function (eventNames) {\r\n\t\t\tvar evs = jsc.strList(eventNames);\r\n\t\t\tfor (var i = 0; i < evs.length; i += 1) {\r\n\t\t\t\tvar ev = evs[i].toLowerCase();\r\n\r\n\t\t\t\t// trigger a callback\r\n\t\t\t\tvar callbackProp = null;\r\n\t\t\t\tswitch (ev) {\r\n\t\t\t\t\tcase 'input': callbackProp = 'onInput'; break;\r\n\t\t\t\t\tcase 'change': callbackProp = 'onChange'; break;\r\n\t\t\t\t}\r\n\t\t\t\tif (callbackProp) {\r\n\t\t\t\t\tjsc.triggerCallback(this, callbackProp);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// trigger standard DOM event listeners on the value element\r\n\t\t\t\tjsc.triggerInputEvent(this.valueElement, ev, true, true);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\t// h: 0-360\r\n\t\t// s: 0-100\r\n\t\t// v: 0-100\r\n\t\t// a: 0.0-1.0\r\n\t\t//\r\n\t\tthis.fromHSVA = function (h, s, v, a, flags) { // null = don't change\r\n\t\t\tif (h === undefined) { h = null; }\r\n\t\t\tif (s === undefined) { s = null; }\r\n\t\t\tif (v === undefined) { v = null; }\r\n\t\t\tif (a === undefined) { a = null; }\r\n\r\n\t\t\tif (h !== null) {\r\n\t\t\t\tif (isNaN(h)) { return false; }\r\n\t\t\t\tthis.channels.h = Math.max(0, Math.min(360, h));\r\n\t\t\t}\r\n\t\t\tif (s !== null) {\r\n\t\t\t\tif (isNaN(s)) { return false; }\r\n\t\t\t\tthis.channels.s = Math.max(0, Math.min(100, this.maxS, s), this.minS);\r\n\t\t\t}\r\n\t\t\tif (v !== null) {\r\n\t\t\t\tif (isNaN(v)) { return false; }\r\n\t\t\t\tthis.channels.v = Math.max(0, Math.min(100, this.maxV, v), this.minV);\r\n\t\t\t}\r\n\t\t\tif (a !== null) {\r\n\t\t\t\tif (isNaN(a)) { return false; }\r\n\t\t\t\tthis.channels.a = this.hasAlphaChannel() ?\r\n\t\t\t\t\tMath.max(0, Math.min(1, this.maxA, a), this.minA) :\r\n\t\t\t\t\t1.0; // if alpha channel is disabled, the color should stay 100% opaque\r\n\t\t\t}\r\n\r\n\t\t\tvar rgb = jsc.HSV_RGB(\r\n\t\t\t\tthis.channels.h,\r\n\t\t\t\tthis.channels.s,\r\n\t\t\t\tthis.channels.v\r\n\t\t\t);\r\n\t\t\tthis.channels.r = rgb[0];\r\n\t\t\tthis.channels.g = rgb[1];\r\n\t\t\tthis.channels.b = rgb[2];\r\n\r\n\t\t\tthis.exposeColor(flags);\r\n\t\t\treturn true;\r\n\t\t};\r\n\r\n\r\n\t\t// r: 0-255\r\n\t\t// g: 0-255\r\n\t\t// b: 0-255\r\n\t\t// a: 0.0-1.0\r\n\t\t//\r\n\t\tthis.fromRGBA = function (r, g, b, a, flags) { // null = don't change\r\n\t\t\tif (r === undefined) { r = null; }\r\n\t\t\tif (g === undefined) { g = null; }\r\n\t\t\tif (b === undefined) { b = null; }\r\n\t\t\tif (a === undefined) { a = null; }\r\n\r\n\t\t\tif (r !== null) {\r\n\t\t\t\tif (isNaN(r)) { return false; }\r\n\t\t\t\tr = Math.max(0, Math.min(255, r));\r\n\t\t\t}\r\n\t\t\tif (g !== null) {\r\n\t\t\t\tif (isNaN(g)) { return false; }\r\n\t\t\t\tg = Math.max(0, Math.min(255, g));\r\n\t\t\t}\r\n\t\t\tif (b !== null) {\r\n\t\t\t\tif (isNaN(b)) { return false; }\r\n\t\t\t\tb = Math.max(0, Math.min(255, b));\r\n\t\t\t}\r\n\t\t\tif (a !== null) {\r\n\t\t\t\tif (isNaN(a)) { return false; }\r\n\t\t\t\tthis.channels.a = this.hasAlphaChannel() ?\r\n\t\t\t\t\tMath.max(0, Math.min(1, this.maxA, a), this.minA) :\r\n\t\t\t\t\t1.0; // if alpha channel is disabled, the color should stay 100% opaque\r\n\t\t\t}\r\n\r\n\t\t\tvar hsv = jsc.RGB_HSV(\r\n\t\t\t\tr===null ? this.channels.r : r,\r\n\t\t\t\tg===null ? this.channels.g : g,\r\n\t\t\t\tb===null ? this.channels.b : b\r\n\t\t\t);\r\n\t\t\tif (hsv[0] !== null) {\r\n\t\t\t\tthis.channels.h = Math.max(0, Math.min(360, hsv[0]));\r\n\t\t\t}\r\n\t\t\tif (hsv[2] !== 0) { // fully black color stays black through entire saturation range, so let's not change saturation\r\n\t\t\t\tthis.channels.s = Math.max(0, this.minS, Math.min(100, this.maxS, hsv[1]));\r\n\t\t\t}\r\n\t\t\tthis.channels.v = Math.max(0, this.minV, Math.min(100, this.maxV, hsv[2]));\r\n\r\n\t\t\t// update RGB according to final HSV, as some values might be trimmed\r\n\t\t\tvar rgb = jsc.HSV_RGB(this.channels.h, this.channels.s, this.channels.v);\r\n\t\t\tthis.channels.r = rgb[0];\r\n\t\t\tthis.channels.g = rgb[1];\r\n\t\t\tthis.channels.b = rgb[2];\r\n\r\n\t\t\tthis.exposeColor(flags);\r\n\t\t\treturn true;\r\n\t\t};\r\n\r\n\r\n\t\t// DEPRECATED. Use .fromHSVA() instead\r\n\t\t//\r\n\t\tthis.fromHSV = function (h, s, v, flags) {\r\n\t\t\tconsole.warn('fromHSV() method is DEPRECATED. Using fromHSVA() instead.' + jsc.docsRef);\r\n\t\t\treturn this.fromHSVA(h, s, v, null, flags);\r\n\t\t};\r\n\r\n\r\n\t\t// DEPRECATED. Use .fromRGBA() instead\r\n\t\t//\r\n\t\tthis.fromRGB = function (r, g, b, flags) {\r\n\t\t\tconsole.warn('fromRGB() method is DEPRECATED. Using fromRGBA() instead.' + jsc.docsRef);\r\n\t\t\treturn this.fromRGBA(r, g, b, null, flags);\r\n\t\t};\r\n\r\n\r\n\t\tthis.fromString = function (str, flags) {\r\n\t\t\tif (!this.required && str.trim() === '') {\r\n\t\t\t\t// setting empty string to an optional color input\r\n\t\t\t\tthis.setPreviewElementBg(null);\r\n\t\t\t\tthis.setValueElementValue('');\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tvar color = jsc.parseColorString(str);\r\n\t\t\tif (!color) {\r\n\t\t\t\treturn false; // could not parse\r\n\t\t\t}\r\n\t\t\tif (this.format.toLowerCase() === 'any') {\r\n\t\t\t\tthis._setFormat(color.format); // adapt format\r\n\t\t\t\tif (!jsc.isAlphaFormat(this.getFormat())) {\r\n\t\t\t\t\tcolor.rgba[3] = 1.0; // when switching to a format that doesn't support alpha, set full opacity\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.fromRGBA(\r\n\t\t\t\tcolor.rgba[0],\r\n\t\t\t\tcolor.rgba[1],\r\n\t\t\t\tcolor.rgba[2],\r\n\t\t\t\tcolor.rgba[3],\r\n\t\t\t\tflags\r\n\t\t\t);\r\n\t\t\treturn true;\r\n\t\t};\r\n\r\n\r\n\t\tthis.toString = function (format) {\r\n\t\t\tif (format === undefined) {\r\n\t\t\t\tformat = this.getFormat(); // format not specified -> use the current format\r\n\t\t\t}\r\n\t\t\tswitch (format.toLowerCase()) {\r\n\t\t\t\tcase 'hex': return this.toHEXString(); break;\r\n\t\t\t\tcase 'hexa': return this.toHEXAString(); break;\r\n\t\t\t\tcase 'rgb': return this.toRGBString(); break;\r\n\t\t\t\tcase 'rgba': return this.toRGBAString(); break;\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t};\r\n\r\n\r\n\t\tthis.toHEXString = function () {\r\n\t\t\treturn jsc.hexColor(\r\n\t\t\t\tthis.channels.r,\r\n\t\t\t\tthis.channels.g,\r\n\t\t\t\tthis.channels.b\r\n\t\t\t);\r\n\t\t};\r\n\r\n\r\n\t\tthis.toHEXAString = function () {\r\n\t\t\treturn jsc.hexaColor(\r\n\t\t\t\tthis.channels.r,\r\n\t\t\t\tthis.channels.g,\r\n\t\t\t\tthis.channels.b,\r\n\t\t\t\tthis.channels.a\r\n\t\t\t);\r\n\t\t};\r\n\r\n\r\n\t\tthis.toRGBString = function () {\r\n\t\t\treturn jsc.rgbColor(\r\n\t\t\t\tthis.channels.r,\r\n\t\t\t\tthis.channels.g,\r\n\t\t\t\tthis.channels.b\r\n\t\t\t);\r\n\t\t};\r\n\r\n\r\n\t\tthis.toRGBAString = function () {\r\n\t\t\treturn jsc.rgbaColor(\r\n\t\t\t\tthis.channels.r,\r\n\t\t\t\tthis.channels.g,\r\n\t\t\t\tthis.channels.b,\r\n\t\t\t\tthis.channels.a\r\n\t\t\t);\r\n\t\t};\r\n\r\n\r\n\t\tthis.toGrayscale = function () {\r\n\t\t\treturn (\r\n\t\t\t\t0.213 * this.channels.r +\r\n\t\t\t\t0.715 * this.channels.g +\r\n\t\t\t\t0.072 * this.channels.b\r\n\t\t\t);\r\n\t\t};\r\n\r\n\r\n\t\tthis.toCanvas = function () {\r\n\t\t\treturn jsc.genColorPreviewCanvas(this.toRGBAString()).canvas;\r\n\t\t};\r\n\r\n\r\n\t\tthis.toDataURL = function () {\r\n\t\t\treturn this.toCanvas().toDataURL();\r\n\t\t};\r\n\r\n\r\n\t\tthis.toBackground = function () {\r\n\t\t\treturn jsc.pub.background(this.toRGBAString());\r\n\t\t};\r\n\r\n\r\n\t\tthis.isLight = function () {\r\n\t\t\treturn this.toGrayscale() > 255 / 2;\r\n\t\t};\r\n\r\n\r\n\t\tthis.hide = function () {\r\n\t\t\tif (isPickerOwner()) {\r\n\t\t\t\tdetachPicker();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis.show = function () {\r\n\t\t\tdrawPicker();\r\n\t\t};\r\n\r\n\r\n\t\tthis.redraw = function () {\r\n\t\t\tif (isPickerOwner()) {\r\n\t\t\t\tdrawPicker();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis.getFormat = function () {\r\n\t\t\treturn this._currentFormat;\r\n\t\t};\r\n\r\n\r\n\t\tthis._setFormat = function (format) {\r\n\t\t\tthis._currentFormat = format.toLowerCase();\r\n\t\t};\r\n\r\n\r\n\t\tthis.hasAlphaChannel = function () {\r\n\t\t\tif (this.alphaChannel === 'auto') {\r\n\t\t\t\treturn (\r\n\t\t\t\t\tthis.format.toLowerCase() === 'any' || // format can change on the fly (e.g. from hex to rgba), so let's consider the alpha channel enabled\r\n\t\t\t\t\tjsc.isAlphaFormat(this.getFormat()) || // the current format supports alpha channel\r\n\t\t\t\t\tthis.alpha !== undefined || // initial alpha value is set, so we're working with alpha channel\r\n\t\t\t\t\tthis.alphaElement !== undefined // the alpha value is redirected, so we're working with alpha channel\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\treturn this.alphaChannel; // the alpha channel is explicitly set\r\n\t\t};\r\n\r\n\r\n\t\tthis.processValueInput = function (str) {\r\n\t\t\tif (!this.fromString(str)) {\r\n\t\t\t\t// could not parse the color value - let's just expose the current color\r\n\t\t\t\tthis.exposeColor();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis.processAlphaInput = function (str) {\r\n\t\t\tif (!this.fromHSVA(null, null, null, parseFloat(str))) {\r\n\t\t\t\t// could not parse the alpha value - let's just expose the current color\r\n\t\t\t\tthis.exposeColor();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis.exposeColor = function (flags) {\r\n\t\t\tvar colorStr = this.toString();\r\n\t\t\tvar fmt = this.getFormat();\r\n\r\n\t\t\t// reflect current color in data- attribute\r\n\t\t\tjsc.setDataAttr(this.targetElement, 'current-color', colorStr);\r\n\r\n\t\t\tif (!(flags & jsc.flags.leaveValue) && this.valueElement) {\r\n\t\t\t\tif (fmt === 'hex' || fmt === 'hexa') {\r\n\t\t\t\t\tif (!this.uppercase) { colorStr = colorStr.toLowerCase(); }\r\n\t\t\t\t\tif (!this.hash) { colorStr = colorStr.replace(/^#/, ''); }\r\n\t\t\t\t}\r\n\t\t\t\tthis.setValueElementValue(colorStr);\r\n\t\t\t}\r\n\r\n\t\t\tif (!(flags & jsc.flags.leaveAlpha) && this.alphaElement) {\r\n\t\t\t\tvar alphaVal = Math.round(this.channels.a * 100) / 100;\r\n\t\t\t\tthis.setAlphaElementValue(alphaVal);\r\n\t\t\t}\r\n\r\n\t\t\tif (!(flags & jsc.flags.leavePreview) && this.previewElement) {\r\n\t\t\t\tvar previewPos = null; // 'left' | 'right' (null -> fill the entire element)\r\n\r\n\t\t\t\tif (\r\n\t\t\t\t\tjsc.isTextInput(this.previewElement) || // text input\r\n\t\t\t\t\t(jsc.isButton(this.previewElement) && !jsc.isButtonEmpty(this.previewElement)) // button with text\r\n\t\t\t\t) {\r\n\t\t\t\t\tpreviewPos = this.previewPosition;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.setPreviewElementBg(this.toRGBAString());\r\n\t\t\t}\r\n\r\n\t\t\tif (isPickerOwner()) {\r\n\t\t\t\tredrawPad();\r\n\t\t\t\tredrawSld();\r\n\t\t\t\tredrawASld();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis.setPreviewElementBg = function (color) {\r\n\t\t\tif (!this.previewElement) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar position = null; // color preview position: null | 'left' | 'right'\r\n\t\t\tvar width = null; // color preview width: px | null = fill the entire element\r\n\t\t\tif (\r\n\t\t\t\tjsc.isTextInput(this.previewElement) || // text input\r\n\t\t\t\t(jsc.isButton(this.previewElement) && !jsc.isButtonEmpty(this.previewElement)) // button with text\r\n\t\t\t) {\r\n\t\t\t\tposition = this.previewPosition;\r\n\t\t\t\twidth = this.previewSize;\r\n\t\t\t}\r\n\r\n\t\t\tvar backgrounds = [];\r\n\r\n\t\t\tif (!color) {\r\n\t\t\t\t// there is no color preview to display -> let's remove any previous background image\r\n\t\t\t\tbackgrounds.push({\r\n\t\t\t\t\timage: 'none',\r\n\t\t\t\t\tposition: 'left top',\r\n\t\t\t\t\tsize: 'auto',\r\n\t\t\t\t\trepeat: 'no-repeat',\r\n\t\t\t\t\torigin: 'padding-box',\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\t// CSS gradient for background color preview\r\n\t\t\t\tbackgrounds.push({\r\n\t\t\t\t\timage: jsc.genColorPreviewGradient(\r\n\t\t\t\t\t\tcolor,\r\n\t\t\t\t\t\tposition,\r\n\t\t\t\t\t\twidth ? width - jsc.pub.previewSeparator.length : null\r\n\t\t\t\t\t),\r\n\t\t\t\t\tposition: 'left top',\r\n\t\t\t\t\tsize: 'auto',\r\n\t\t\t\t\trepeat: position ? 'repeat-y' : 'repeat',\r\n\t\t\t\t\torigin: 'padding-box',\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// data URL of generated PNG image with a gray transparency chessboard\r\n\t\t\t\tvar preview = jsc.genColorPreviewCanvas(\r\n\t\t\t\t\t'rgba(0,0,0,0)',\r\n\t\t\t\t\tposition ? {'left':'right', 'right':'left'}[position] : null,\r\n\t\t\t\t\twidth,\r\n\t\t\t\t\ttrue\r\n\t\t\t\t);\r\n\t\t\t\tbackgrounds.push({\r\n\t\t\t\t\timage: 'url(\\'' + preview.canvas.toDataURL() + '\\')',\r\n\t\t\t\t\tposition: (position || 'left') + ' top',\r\n\t\t\t\t\tsize: preview.width + 'px ' + preview.height + 'px',\r\n\t\t\t\t\trepeat: position ? 'repeat-y' : 'repeat',\r\n\t\t\t\t\torigin: 'padding-box',\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tvar bg = {\r\n\t\t\t\timage: [],\r\n\t\t\t\tposition: [],\r\n\t\t\t\tsize: [],\r\n\t\t\t\trepeat: [],\r\n\t\t\t\torigin: [],\r\n\t\t\t};\r\n\t\t\tfor (var i = 0; i < backgrounds.length; i += 1) {\r\n\t\t\t\tbg.image.push(backgrounds[i].image);\r\n\t\t\t\tbg.position.push(backgrounds[i].position);\r\n\t\t\t\tbg.size.push(backgrounds[i].size);\r\n\t\t\t\tbg.repeat.push(backgrounds[i].repeat);\r\n\t\t\t\tbg.origin.push(backgrounds[i].origin);\r\n\t\t\t}\r\n\r\n\t\t\t// set previewElement's background-images\r\n\t\t\tvar sty = {\r\n\t\t\t\t'background-image': bg.image.join(', '),\r\n\t\t\t\t'background-position': bg.position.join(', '),\r\n\t\t\t\t'background-size': bg.size.join(', '),\r\n\t\t\t\t'background-repeat': bg.repeat.join(', '),\r\n\t\t\t\t'background-origin': bg.origin.join(', '),\r\n\t\t\t};\r\n\t\t\tjsc.setStyle(this.previewElement, sty, this.forceStyle);\r\n\r\n\r\n\t\t\t// set/restore previewElement's padding\r\n\t\t\tvar padding = {\r\n\t\t\t\tleft: null,\r\n\t\t\t\tright: null,\r\n\t\t\t};\r\n\t\t\tif (position) {\r\n\t\t\t\tpadding[position] = (this.previewSize + this.previewPadding) + 'px';\r\n\t\t\t}\r\n\r\n\t\t\tvar sty = {\r\n\t\t\t\t'padding-left': padding.left,\r\n\t\t\t\t'padding-right': padding.right,\r\n\t\t\t};\r\n\t\t\tjsc.setStyle(this.previewElement, sty, this.forceStyle, true);\r\n\t\t};\r\n\r\n\r\n\t\tthis.setValueElementValue = function (str) {\r\n\t\t\tif (this.valueElement) {\r\n\t\t\t\tif (jsc.nodeName(this.valueElement) === 'input') {\r\n\t\t\t\t\tthis.valueElement.value = str;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.valueElement.innerHTML = str;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis.setAlphaElementValue = function (str) {\r\n\t\t\tif (this.alphaElement) {\r\n\t\t\t\tif (jsc.nodeName(this.alphaElement) === 'input') {\r\n\t\t\t\t\tthis.alphaElement.value = str;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.alphaElement.innerHTML = str;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis._processParentElementsInDOM = function () {\r\n\t\t\tif (this._parentElementsProcessed) { return; }\r\n\t\t\tthis._parentElementsProcessed = true;\r\n\r\n\t\t\tvar elm = this.targetElement;\r\n\t\t\tdo {\r\n\t\t\t\t// If the target element or one of its parent nodes has fixed position,\r\n\t\t\t\t// then use fixed positioning instead\r\n\t\t\t\tvar compStyle = jsc.getCompStyle(elm);\r\n\t\t\t\tif (compStyle.position && compStyle.position.toLowerCase() === 'fixed') {\r\n\t\t\t\t\tthis.fixed = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (elm !== this.targetElement) {\r\n\t\t\t\t\t// Ensure to attach onParentScroll only once to each parent element\r\n\t\t\t\t\t// (multiple targetElements can share the same parent nodes)\r\n\t\t\t\t\t//\r\n\t\t\t\t\t// Note: It's not just offsetParents that can be scrollable,\r\n\t\t\t\t\t// that's why we loop through all parent nodes\r\n\t\t\t\t\tif (!jsc.getData(elm, 'hasScrollListener')) {\r\n\t\t\t\t\t\telm.addEventListener('scroll', jsc.onParentScroll, false);\r\n\t\t\t\t\t\tjsc.setData(elm, 'hasScrollListener', true);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} while ((elm = elm.parentNode) && jsc.nodeName(elm) !== 'body');\r\n\t\t};\r\n\r\n\r\n\t\tthis.tryHide = function () {\r\n\t\t\tif (this.hideOnLeave) {\r\n\t\t\t\tthis.hide();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis.set__palette = function (val) {\r\n\t\t\tthis.palette = val;\r\n\t\t\tthis._palette = jsc.parsePaletteValue(val);\r\n\t\t\tthis._paletteHasTransparency = jsc.containsTranparentColor(this._palette);\r\n\t\t};\r\n\r\n\r\n\t\tfunction setOption (option, value) {\r\n\t\t\tif (typeof option !== 'string') {\r\n\t\t\t\tthrow new Error('Invalid value for option name: ' + option);\r\n\t\t\t}\r\n\r\n\t\t\t// enum option\r\n\t\t\tif (jsc.enumOpts.hasOwnProperty(option)) {\r\n\t\t\t\tif (typeof value === 'string') { // enum string values are case insensitive\r\n\t\t\t\t\tvalue = value.toLowerCase();\r\n\t\t\t\t}\r\n\t\t\t\tif (jsc.enumOpts[option].indexOf(value) === -1) {\r\n\t\t\t\t\tthrow new Error('Option \\'' + option + '\\' has invalid value: ' + value);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// deprecated option\r\n\t\t\tif (jsc.deprecatedOpts.hasOwnProperty(option)) {\r\n\t\t\t\tvar oldOpt = option;\r\n\t\t\t\tvar newOpt = jsc.deprecatedOpts[option];\r\n\t\t\t\tif (newOpt) {\r\n\t\t\t\t\t// if we have a new name for this option, let's log a warning and use the new name\r\n\t\t\t\t\tconsole.warn('Option \\'%s\\' is DEPRECATED, using \\'%s\\' instead.' + jsc.docsRef, oldOpt, newOpt);\r\n\t\t\t\t\toption = newOpt;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// new name not available for the option\r\n\t\t\t\t\tthrow new Error('Option \\'' + option + '\\' is DEPRECATED');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar setter = 'set__' + option;\r\n\r\n\t\t\tif (typeof THIS[setter] === 'function') { // a setter exists for this option\r\n\t\t\t\tTHIS[setter](value);\r\n\t\t\t\treturn true;\r\n\r\n\t\t\t} else if (option in THIS) { // option exists as a property\r\n\t\t\t\tTHIS[option] = value;\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tthrow new Error('Unrecognized configuration option: ' + option);\r\n\t\t}\r\n\r\n\r\n\t\tfunction getOption (option) {\r\n\t\t\tif (typeof option !== 'string') {\r\n\t\t\t\tthrow new Error('Invalid value for option name: ' + option);\r\n\t\t\t}\r\n\r\n\t\t\t// deprecated option\r\n\t\t\tif (jsc.deprecatedOpts.hasOwnProperty(option)) {\r\n\t\t\t\tvar oldOpt = option;\r\n\t\t\t\tvar newOpt = jsc.deprecatedOpts[option];\r\n\t\t\t\tif (newOpt) {\r\n\t\t\t\t\t// if we have a new name for this option, let's log a warning and use the new name\r\n\t\t\t\t\tconsole.warn('Option \\'%s\\' is DEPRECATED, using \\'%s\\' instead.' + jsc.docsRef, oldOpt, newOpt);\r\n\t\t\t\t\toption = newOpt;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// new name not available for the option\r\n\t\t\t\t\tthrow new Error('Option \\'' + option + '\\' is DEPRECATED');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar getter = 'get__' + option;\r\n\r\n\t\t\tif (typeof THIS[getter] === 'function') { // a getter exists for this option\r\n\t\t\t\treturn THIS[getter](value);\r\n\r\n\t\t\t} else if (option in THIS) { // option exists as a property\r\n\t\t\t\treturn THIS[option];\r\n\t\t\t}\r\n\r\n\t\t\tthrow new Error('Unrecognized configuration option: ' + option);\r\n\t\t}\r\n\r\n\r\n\t\tfunction detachPicker () {\r\n\t\t\tjsc.removeClass(THIS.targetElement, jsc.pub.activeClassName);\r\n\t\t\tjsc.picker.wrap.parentNode.removeChild(jsc.picker.wrap);\r\n\t\t\tdelete jsc.picker.owner;\r\n\t\t}\r\n\r\n\r\n\t\tfunction drawPicker () {\r\n\r\n\t\t\t// At this point, when drawing the picker, we know what the parent elements are\r\n\t\t\t// and we can do all related DOM operations, such as registering events on them\r\n\t\t\t// or checking their positioning\r\n\t\t\tTHIS._processParentElementsInDOM();\r\n\r\n\t\t\tif (!jsc.picker) {\r\n\t\t\t\tjsc.picker = {\r\n\t\t\t\t\towner: null, // owner picker instance\r\n\t\t\t\t\twrap : jsc.createEl('div'),\r\n\t\t\t\t\tbox : jsc.createEl('div'),\r\n\t\t\t\t\tboxS : jsc.createEl('div'), // shadow area\r\n\t\t\t\t\tboxB : jsc.createEl('div'), // border\r\n\t\t\t\t\tpad : jsc.createEl('div'),\r\n\t\t\t\t\tpadB : jsc.createEl('div'), // border\r\n\t\t\t\t\tpadM : jsc.createEl('div'), // mouse/touch area\r\n\t\t\t\t\tpadCanvas : jsc.createPadCanvas(),\r\n\t\t\t\t\tcross : jsc.createEl('div'),\r\n\t\t\t\t\tcrossBY : jsc.createEl('div'), // border Y\r\n\t\t\t\t\tcrossBX : jsc.createEl('div'), // border X\r\n\t\t\t\t\tcrossLY : jsc.createEl('div'), // line Y\r\n\t\t\t\t\tcrossLX : jsc.createEl('div'), // line X\r\n\t\t\t\t\tsld : jsc.createEl('div'), // slider\r\n\t\t\t\t\tsldB : jsc.createEl('div'), // border\r\n\t\t\t\t\tsldM : jsc.createEl('div'), // mouse/touch area\r\n\t\t\t\t\tsldGrad : jsc.createSliderGradient(),\r\n\t\t\t\t\tsldPtrS : jsc.createEl('div'), // slider pointer spacer\r\n\t\t\t\t\tsldPtrIB : jsc.createEl('div'), // slider pointer inner border\r\n\t\t\t\t\tsldPtrMB : jsc.createEl('div'), // slider pointer middle border\r\n\t\t\t\t\tsldPtrOB : jsc.createEl('div'), // slider pointer outer border\r\n\t\t\t\t\tasld : jsc.createEl('div'), // alpha slider\r\n\t\t\t\t\tasldB : jsc.createEl('div'), // border\r\n\t\t\t\t\tasldM : jsc.createEl('div'), // mouse/touch area\r\n\t\t\t\t\tasldGrad : jsc.createASliderGradient(),\r\n\t\t\t\t\tasldPtrS : jsc.createEl('div'), // slider pointer spacer\r\n\t\t\t\t\tasldPtrIB : jsc.createEl('div'), // slider pointer inner border\r\n\t\t\t\t\tasldPtrMB : jsc.createEl('div'), // slider pointer middle border\r\n\t\t\t\t\tasldPtrOB : jsc.createEl('div'), // slider pointer outer border\r\n\t\t\t\t\tpal : jsc.createEl('div'), // palette\r\n\t\t\t\t\tbtn : jsc.createEl('div'),\r\n\t\t\t\t\tbtnT : jsc.createEl('span'), // text\r\n\t\t\t\t};\r\n\r\n\t\t\t\tjsc.picker.pad.appendChild(jsc.picker.padCanvas.elm);\r\n\t\t\t\tjsc.picker.padB.appendChild(jsc.picker.pad);\r\n\t\t\t\tjsc.picker.cross.appendChild(jsc.picker.crossBY);\r\n\t\t\t\tjsc.picker.cross.appendChild(jsc.picker.crossBX);\r\n\t\t\t\tjsc.picker.cross.appendChild(jsc.picker.crossLY);\r\n\t\t\t\tjsc.picker.cross.appendChild(jsc.picker.crossLX);\r\n\t\t\t\tjsc.picker.padB.appendChild(jsc.picker.cross);\r\n\t\t\t\tjsc.picker.box.appendChild(jsc.picker.padB);\r\n\t\t\t\tjsc.picker.box.appendChild(jsc.picker.padM);\r\n\r\n\t\t\t\tjsc.picker.sld.appendChild(jsc.picker.sldGrad.elm);\r\n\t\t\t\tjsc.picker.sldB.appendChild(jsc.picker.sld);\r\n\t\t\t\tjsc.picker.sldB.appendChild(jsc.picker.sldPtrOB);\r\n\t\t\t\tjsc.picker.sldPtrOB.appendChild(jsc.picker.sldPtrMB);\r\n\t\t\t\tjsc.picker.sldPtrMB.appendChild(jsc.picker.sldPtrIB);\r\n\t\t\t\tjsc.picker.sldPtrIB.appendChild(jsc.picker.sldPtrS);\r\n\t\t\t\tjsc.picker.box.appendChild(jsc.picker.sldB);\r\n\t\t\t\tjsc.picker.box.appendChild(jsc.picker.sldM);\r\n\r\n\t\t\t\tjsc.picker.asld.appendChild(jsc.picker.asldGrad.elm);\r\n\t\t\t\tjsc.picker.asldB.appendChild(jsc.picker.asld);\r\n\t\t\t\tjsc.picker.asldB.appendChild(jsc.picker.asldPtrOB);\r\n\t\t\t\tjsc.picker.asldPtrOB.appendChild(jsc.picker.asldPtrMB);\r\n\t\t\t\tjsc.picker.asldPtrMB.appendChild(jsc.picker.asldPtrIB);\r\n\t\t\t\tjsc.picker.asldPtrIB.appendChild(jsc.picker.asldPtrS);\r\n\t\t\t\tjsc.picker.box.appendChild(jsc.picker.asldB);\r\n\t\t\t\tjsc.picker.box.appendChild(jsc.picker.asldM);\r\n\r\n\t\t\t\tjsc.picker.box.appendChild(jsc.picker.pal);\r\n\r\n\t\t\t\tjsc.picker.btn.appendChild(jsc.picker.btnT);\r\n\t\t\t\tjsc.picker.box.appendChild(jsc.picker.btn);\r\n\r\n\t\t\t\tjsc.picker.boxB.appendChild(jsc.picker.box);\r\n\t\t\t\tjsc.picker.wrap.appendChild(jsc.picker.boxS);\r\n\t\t\t\tjsc.picker.wrap.appendChild(jsc.picker.boxB);\r\n\r\n\t\t\t\tjsc.picker.wrap.addEventListener('touchstart', jsc.onPickerTouchStart,\r\n\t\t\t\t\tjsc.isPassiveEventSupported ? {passive: false} : false);\r\n\t\t\t}\r\n\r\n\t\t\tvar p = jsc.picker;\r\n\r\n\t\t\tvar displaySlider = !!jsc.getSliderChannel(THIS);\r\n\t\t\tvar displayAlphaSlider = THIS.hasAlphaChannel();\r\n\t\t\tvar pickerDims = jsc.getPickerDims(THIS);\r\n\t\t\tvar crossOuterSize = (2 * THIS.pointerBorderWidth + THIS.pointerThickness + 2 * THIS.crossSize);\r\n\t\t\tvar controlPadding = jsc.getControlPadding(THIS);\r\n\t\t\tvar borderRadius = Math.min(\r\n\t\t\t\tTHIS.borderRadius,\r\n\t\t\t\tMath.round(THIS.padding * Math.PI)); // px\r\n\t\t\tvar padCursor = 'crosshair';\r\n\r\n\t\t\t// wrap\r\n\t\t\tp.wrap.className = 'jscolor-picker-wrap';\r\n\t\t\tp.wrap.style.clear = 'both';\r\n\t\t\tp.wrap.style.width = pickerDims.borderW + 'px';\r\n\t\t\tp.wrap.style.height = pickerDims.borderH + 'px';\r\n\t\t\tp.wrap.style.zIndex = THIS.zIndex;\r\n\r\n\t\t\t// picker\r\n\t\t\tp.box.className = 'jscolor-picker';\r\n\t\t\tp.box.style.width = pickerDims.paddedW + 'px';\r\n\t\t\tp.box.style.height = pickerDims.paddedH + 'px';\r\n\t\t\tp.box.style.position = 'relative';\r\n\r\n\t\t\t// picker shadow\r\n\t\t\tp.boxS.className = 'jscolor-picker-shadow';\r\n\t\t\tp.boxS.style.position = 'absolute';\r\n\t\t\tp.boxS.style.left = '0';\r\n\t\t\tp.boxS.style.top = '0';\r\n\t\t\tp.boxS.style.width = '100%';\r\n\t\t\tp.boxS.style.height = '100%';\r\n\t\t\tjsc.setBorderRadius(p.boxS, borderRadius + 'px');\r\n\r\n\t\t\t// picker border\r\n\t\t\tp.boxB.className = 'jscolor-picker-border';\r\n\t\t\tp.boxB.style.position = 'relative';\r\n\t\t\tp.boxB.style.border = THIS.borderWidth + 'px solid';\r\n\t\t\tp.boxB.style.borderColor = THIS.borderColor;\r\n\t\t\tp.boxB.style.background = THIS.backgroundColor;\r\n\t\t\tjsc.setBorderRadius(p.boxB, borderRadius + 'px');\r\n\r\n\t\t\t// IE hack:\r\n\t\t\t// If the element is transparent, IE will trigger the event on the elements under it,\r\n\t\t\t// e.g. on Canvas or on elements with border\r\n\t\t\tp.padM.style.background = 'rgba(255,0,0,.2)';\r\n\t\t\tp.sldM.style.background = 'rgba(0,255,0,.2)';\r\n\t\t\tp.asldM.style.background = 'rgba(0,0,255,.2)';\r\n\r\n\t\t\tp.padM.style.opacity =\r\n\t\t\tp.sldM.style.opacity =\r\n\t\t\tp.asldM.style.opacity =\r\n\t\t\t\t'0';\r\n\r\n\t\t\t// pad\r\n\t\t\tp.pad.style.position = 'relative';\r\n\t\t\tp.pad.style.width = THIS.width + 'px';\r\n\t\t\tp.pad.style.height = THIS.height + 'px';\r\n\r\n\t\t\t// pad - color spectrum (HSV and HVS)\r\n\t\t\tp.padCanvas.draw(THIS.width, THIS.height, jsc.getPadYChannel(THIS));\r\n\r\n\t\t\t// pad border\r\n\t\t\tp.padB.style.position = 'absolute';\r\n\t\t\tp.padB.style.left = THIS.padding + 'px';\r\n\t\t\tp.padB.style.top = THIS.padding + 'px';\r\n\t\t\tp.padB.style.border = THIS.controlBorderWidth + 'px solid';\r\n\t\t\tp.padB.style.borderColor = THIS.controlBorderColor;\r\n\r\n\t\t\t// pad mouse area\r\n\t\t\tp.padM.style.position = 'absolute';\r\n\t\t\tp.padM.style.left = 0 + 'px';\r\n\t\t\tp.padM.style.top = 0 + 'px';\r\n\t\t\tp.padM.style.width = (THIS.padding + 2 * THIS.controlBorderWidth + THIS.width + controlPadding) + 'px';\r\n\t\t\tp.padM.style.height = (2 * THIS.controlBorderWidth + 2 * THIS.padding + THIS.height) + 'px';\r\n\t\t\tp.padM.style.cursor = padCursor;\r\n\t\t\tjsc.setData(p.padM, {\r\n\t\t\t\tinstance: THIS,\r\n\t\t\t\tcontrol: 'pad',\r\n\t\t\t})\r\n\r\n\t\t\t// pad cross\r\n\t\t\tp.cross.style.position = 'absolute';\r\n\t\t\tp.cross.style.left =\r\n\t\t\tp.cross.style.top =\r\n\t\t\t\t'0';\r\n\t\t\tp.cross.style.width =\r\n\t\t\tp.cross.style.height =\r\n\t\t\t\tcrossOuterSize + 'px';\r\n\r\n\t\t\t// pad cross border Y and X\r\n\t\t\tp.crossBY.style.position =\r\n\t\t\tp.crossBX.style.position =\r\n\t\t\t\t'absolute';\r\n\t\t\tp.crossBY.style.background =\r\n\t\t\tp.crossBX.style.background =\r\n\t\t\t\tTHIS.pointerBorderColor;\r\n\t\t\tp.crossBY.style.width =\r\n\t\t\tp.crossBX.style.height =\r\n\t\t\t\t(2 * THIS.pointerBorderWidth + THIS.pointerThickness) + 'px';\r\n\t\t\tp.crossBY.style.height =\r\n\t\t\tp.crossBX.style.width =\r\n\t\t\t\tcrossOuterSize + 'px';\r\n\t\t\tp.crossBY.style.left =\r\n\t\t\tp.crossBX.style.top =\r\n\t\t\t\t(Math.floor(crossOuterSize / 2) - Math.floor(THIS.pointerThickness / 2) - THIS.pointerBorderWidth) + 'px';\r\n\t\t\tp.crossBY.style.top =\r\n\t\t\tp.crossBX.style.left =\r\n\t\t\t\t'0';\r\n\r\n\t\t\t// pad cross line Y and X\r\n\t\t\tp.crossLY.style.position =\r\n\t\t\tp.crossLX.style.position =\r\n\t\t\t\t'absolute';\r\n\t\t\tp.crossLY.style.background =\r\n\t\t\tp.crossLX.style.background =\r\n\t\t\t\tTHIS.pointerColor;\r\n\t\t\tp.crossLY.style.height =\r\n\t\t\tp.crossLX.style.width =\r\n\t\t\t\t(crossOuterSize - 2 * THIS.pointerBorderWidth) + 'px';\r\n\t\t\tp.crossLY.style.width =\r\n\t\t\tp.crossLX.style.height =\r\n\t\t\t\tTHIS.pointerThickness + 'px';\r\n\t\t\tp.crossLY.style.left =\r\n\t\t\tp.crossLX.style.top =\r\n\t\t\t\t(Math.floor(crossOuterSize / 2) - Math.floor(THIS.pointerThickness / 2)) + 'px';\r\n\t\t\tp.crossLY.style.top =\r\n\t\t\tp.crossLX.style.left =\r\n\t\t\t\tTHIS.pointerBorderWidth + 'px';\r\n\r\n\r\n\t\t\t// slider\r\n\t\t\tp.sld.style.overflow = 'hidden';\r\n\t\t\tp.sld.style.width = THIS.sliderSize + 'px';\r\n\t\t\tp.sld.style.height = THIS.height + 'px';\r\n\r\n\t\t\t// slider gradient\r\n\t\t\tp.sldGrad.draw(THIS.sliderSize, THIS.height, '#000', '#000');\r\n\r\n\t\t\t// slider border\r\n\t\t\tp.sldB.style.display = displaySlider ? 'block' : 'none';\r\n\t\t\tp.sldB.style.position = 'absolute';\r\n\t\t\tp.sldB.style.left = (THIS.padding + THIS.width + 2 * THIS.controlBorderWidth + 2 * controlPadding) + 'px';\r\n\t\t\tp.sldB.style.top = THIS.padding + 'px';\r\n\t\t\tp.sldB.style.border = THIS.controlBorderWidth + 'px solid';\r\n\t\t\tp.sldB.style.borderColor = THIS.controlBorderColor;\r\n\r\n\t\t\t// slider mouse area\r\n\t\t\tp.sldM.style.display = displaySlider ? 'block' : 'none';\r\n\t\t\tp.sldM.style.position = 'absolute';\r\n\t\t\tp.sldM.style.left = (THIS.padding + THIS.width + 2 * THIS.controlBorderWidth + controlPadding) + 'px';\r\n\t\t\tp.sldM.style.top = 0 + 'px';\r\n\t\t\tp.sldM.style.width = (\r\n\t\t\t\t\t(THIS.sliderSize + 2 * controlPadding + 2 * THIS.controlBorderWidth) +\r\n\t\t\t\t\t(displayAlphaSlider ? 0 : Math.max(0, THIS.padding - controlPadding)) // remaining padding to the right edge\r\n\t\t\t\t) + 'px';\r\n\t\t\tp.sldM.style.height = (2 * THIS.controlBorderWidth + 2 * THIS.padding + THIS.height) + 'px';\r\n\t\t\tp.sldM.style.cursor = 'default';\r\n\t\t\tjsc.setData(p.sldM, {\r\n\t\t\t\tinstance: THIS,\r\n\t\t\t\tcontrol: 'sld',\r\n\t\t\t});\r\n\r\n\t\t\t// slider pointer inner and outer border\r\n\t\t\tp.sldPtrIB.style.border =\r\n\t\t\tp.sldPtrOB.style.border =\r\n\t\t\t\tTHIS.pointerBorderWidth + 'px solid ' + THIS.pointerBorderColor;\r\n\r\n\t\t\t// slider pointer outer border\r\n\t\t\tp.sldPtrOB.style.position = 'absolute';\r\n\t\t\tp.sldPtrOB.style.left = -(2 * THIS.pointerBorderWidth + THIS.pointerThickness) + 'px';\r\n\t\t\tp.sldPtrOB.style.top = '0';\r\n\r\n\t\t\t// slider pointer middle border\r\n\t\t\tp.sldPtrMB.style.border = THIS.pointerThickness + 'px solid ' + THIS.pointerColor;\r\n\r\n\t\t\t// slider pointer spacer\r\n\t\t\tp.sldPtrS.style.width = THIS.sliderSize + 'px';\r\n\t\t\tp.sldPtrS.style.height = jsc.pub.sliderInnerSpace + 'px';\r\n\r\n\r\n\t\t\t// alpha slider\r\n\t\t\tp.asld.style.overflow = 'hidden';\r\n\t\t\tp.asld.style.width = THIS.sliderSize + 'px';\r\n\t\t\tp.asld.style.height = THIS.height + 'px';\r\n\r\n\t\t\t// alpha slider gradient\r\n\t\t\tp.asldGrad.draw(THIS.sliderSize, THIS.height, '#000');\r\n\r\n\t\t\t// alpha slider border\r\n\t\t\tp.asldB.style.display = displayAlphaSlider ? 'block' : 'none';\r\n\t\t\tp.asldB.style.position = 'absolute';\r\n\t\t\tp.asldB.style.left = (\r\n\t\t\t\t\t(THIS.padding + THIS.width + 2 * THIS.controlBorderWidth + controlPadding) +\r\n\t\t\t\t\t(displaySlider ? (THIS.sliderSize + 3 * controlPadding + 2 * THIS.controlBorderWidth) : 0)\r\n\t\t\t\t) + 'px';\r\n\t\t\tp.asldB.style.top = THIS.padding + 'px';\r\n\t\t\tp.asldB.style.border = THIS.controlBorderWidth + 'px solid';\r\n\t\t\tp.asldB.style.borderColor = THIS.controlBorderColor;\r\n\r\n\t\t\t// alpha slider mouse area\r\n\t\t\tp.asldM.style.display = displayAlphaSlider ? 'block' : 'none';\r\n\t\t\tp.asldM.style.position = 'absolute';\r\n\t\t\tp.asldM.style.left = (\r\n\t\t\t\t\t(THIS.padding + THIS.width + 2 * THIS.controlBorderWidth + controlPadding) +\r\n\t\t\t\t\t(displaySlider ? (THIS.sliderSize + 2 * controlPadding + 2 * THIS.controlBorderWidth) : 0)\r\n\t\t\t\t) + 'px';\r\n\t\t\tp.asldM.style.top = 0 + 'px';\r\n\t\t\tp.asldM.style.width = (\r\n\t\t\t\t\t(THIS.sliderSize + 2 * controlPadding + 2 * THIS.controlBorderWidth) +\r\n\t\t\t\t\tMath.max(0, THIS.padding - controlPadding) // remaining padding to the right edge\r\n\t\t\t\t) + 'px';\r\n\t\t\tp.asldM.style.height = (2 * THIS.controlBorderWidth + 2 * THIS.padding + THIS.height) + 'px';\r\n\t\t\tp.asldM.style.cursor = 'default';\r\n\t\t\tjsc.setData(p.asldM, {\r\n\t\t\t\tinstance: THIS,\r\n\t\t\t\tcontrol: 'asld',\r\n\t\t\t})\r\n\r\n\t\t\t// alpha slider pointer inner and outer border\r\n\t\t\tp.asldPtrIB.style.border =\r\n\t\t\tp.asldPtrOB.style.border =\r\n\t\t\t\tTHIS.pointerBorderWidth + 'px solid ' + THIS.pointerBorderColor;\r\n\r\n\t\t\t// alpha slider pointer outer border\r\n\t\t\tp.asldPtrOB.style.position = 'absolute';\r\n\t\t\tp.asldPtrOB.style.left = -(2 * THIS.pointerBorderWidth + THIS.pointerThickness) + 'px';\r\n\t\t\tp.asldPtrOB.style.top = '0';\r\n\r\n\t\t\t// alpha slider pointer middle border\r\n\t\t\tp.asldPtrMB.style.border = THIS.pointerThickness + 'px solid ' + THIS.pointerColor;\r\n\r\n\t\t\t// alpha slider pointer spacer\r\n\t\t\tp.asldPtrS.style.width = THIS.sliderSize + 'px';\r\n\t\t\tp.asldPtrS.style.height = jsc.pub.sliderInnerSpace + 'px';\r\n\r\n\r\n\t\t\t// palette\r\n\t\t\tp.pal.className = 'jscolor-palette';\r\n\t\t\tp.pal.style.display = pickerDims.palette.rows ? 'block' : 'none';\r\n\t\t\tp.pal.style.position = 'absolute';\r\n\t\t\tp.pal.style.left = THIS.padding + 'px';\r\n\t\t\tp.pal.style.top = (2 * THIS.controlBorderWidth + 2 * THIS.padding + THIS.height) + 'px';\r\n\r\n\t\t\t// palette's color samples\r\n\r\n\t\t\tp.pal.innerHTML = '';\r\n\r\n\t\t\tvar chessboard = jsc.genColorPreviewCanvas('rgba(0,0,0,0)');\r\n\r\n\t\t\tvar si = 0; // color sample's index\r\n\t\t\tfor (var r = 0; r < pickerDims.palette.rows; r++) {\r\n\t\t\t\tfor (var c = 0; c < pickerDims.palette.cols && si < THIS._palette.length; c++, si++) {\r\n\t\t\t\t\tvar sampleColor = THIS._palette[si];\r\n\t\t\t\t\tvar sampleCssColor = jsc.rgbaColor.apply(null, sampleColor.rgba);\r\n\r\n\t\t\t\t\tvar sc = jsc.createEl('div'); // color sample's color\r\n\t\t\t\t\tsc.style.width = (pickerDims.palette.cellW - 2 * THIS.controlBorderWidth) + 'px';\r\n\t\t\t\t\tsc.style.height = (pickerDims.palette.cellH - 2 * THIS.controlBorderWidth) + 'px';\r\n\t\t\t\t\tsc.style.backgroundColor = sampleCssColor;\r\n\r\n\t\t\t\t\tvar sw = jsc.createEl('div'); // color sample's wrap\r\n\t\t\t\t\tsw.className = 'jscolor-palette-sample';\r\n\t\t\t\t\tsw.style.display = 'block';\r\n\t\t\t\t\tsw.style.position = 'absolute';\r\n\t\t\t\t\tsw.style.left = (\r\n\t\t\t\t\t\t\tpickerDims.palette.cols <= 1 ? 0 :\r\n\t\t\t\t\t\t\tMath.round(10 * (c * ((pickerDims.contentW - pickerDims.palette.cellW) / (pickerDims.palette.cols - 1)))) / 10\r\n\t\t\t\t\t\t) + 'px';\r\n\t\t\t\t\tsw.style.top = (r * (pickerDims.palette.cellH + THIS.paletteSpacing)) + 'px';\r\n\t\t\t\t\tsw.style.border = THIS.controlBorderWidth + 'px solid';\r\n\t\t\t\t\tsw.style.borderColor = THIS.controlBorderColor;\r\n\t\t\t\t\tsw.style.cursor = 'pointer';\r\n\t\t\t\t\tif (sampleColor.rgba[3] !== null && sampleColor.rgba[3] < 1.0) { // only create chessboard background if the sample has transparency\r\n\t\t\t\t\t\tsw.style.backgroundImage = 'url(\\'' + chessboard.canvas.toDataURL() + '\\')';\r\n\t\t\t\t\t\tsw.style.backgroundRepeat = 'repeat';\r\n\t\t\t\t\t\tsw.style.backgroundPosition = 'center center';\r\n\t\t\t\t\t}\r\n\t\t\t\t\tjsc.setData(sw, {\r\n\t\t\t\t\t\tinstance: THIS,\r\n\t\t\t\t\t\tcontrol: 'palette-sample',\r\n\t\t\t\t\t\tcolor: sampleColor,\r\n\t\t\t\t\t})\r\n\t\t\t\t\tsw.addEventListener('click', jsc.onPaletteSampleClick, false);\r\n\t\t\t\t\tsw.appendChild(sc);\r\n\t\t\t\t\tp.pal.appendChild(sw);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\r\n\t\t\t// the Close button\r\n\t\t\tfunction setBtnBorder () {\r\n\t\t\t\tvar insetColors = THIS.controlBorderColor.split(/\\s+/);\r\n\t\t\t\tvar outsetColor = insetColors.length < 2 ? insetColors[0] : insetColors[1] + ' ' + insetColors[0] + ' ' + insetColors[0] + ' ' + insetColors[1];\r\n\t\t\t\tp.btn.style.borderColor = outsetColor;\r\n\t\t\t}\r\n\t\t\tvar btnPadding = 15; // px\r\n\t\t\tp.btn.className = 'jscolor-btn-close';\r\n\t\t\tp.btn.style.display = THIS.closeButton ? 'block' : 'none';\r\n\t\t\tp.btn.style.position = 'absolute';\r\n\t\t\tp.btn.style.left = THIS.padding + 'px';\r\n\t\t\tp.btn.style.bottom = THIS.padding + 'px';\r\n\t\t\tp.btn.style.padding = '0 ' + btnPadding + 'px';\r\n\t\t\tp.btn.style.maxWidth = (pickerDims.contentW - 2 * THIS.controlBorderWidth - 2 * btnPadding) + 'px';\r\n\t\t\tp.btn.style.overflow = 'hidden';\r\n\t\t\tp.btn.style.height = THIS.buttonHeight + 'px';\r\n\t\t\tp.btn.style.whiteSpace = 'nowrap';\r\n\t\t\tp.btn.style.border = THIS.controlBorderWidth + 'px solid';\r\n\t\t\tsetBtnBorder();\r\n\t\t\tp.btn.style.color = THIS.buttonColor;\r\n\t\t\tp.btn.style.font = '12px sans-serif';\r\n\t\t\tp.btn.style.textAlign = 'center';\r\n\t\t\tp.btn.style.cursor = 'pointer';\r\n\t\t\tp.btn.onmousedown = function () {\r\n\t\t\t\tTHIS.hide();\r\n\t\t\t};\r\n\t\t\tp.btnT.style.lineHeight = THIS.buttonHeight + 'px';\r\n\t\t\tp.btnT.innerHTML = '';\r\n\t\t\tp.btnT.appendChild(window.document.createTextNode(THIS.closeText));\r\n\r\n\t\t\t// reposition the pointers\r\n\t\t\tredrawPad();\r\n\t\t\tredrawSld();\r\n\t\t\tredrawASld();\r\n\r\n\t\t\t// If we are changing the owner without first closing the picker,\r\n\t\t\t// make sure to first deal with the old owner\r\n\t\t\tif (jsc.picker.owner && jsc.picker.owner !== THIS) {\r\n\t\t\t\tjsc.removeClass(jsc.picker.owner.targetElement, jsc.pub.activeClassName);\r\n\t\t\t}\r\n\r\n\t\t\t// Set a new picker owner\r\n\t\t\tjsc.picker.owner = THIS;\r\n\r\n\t\t\t// The redrawPosition() method needs picker.owner to be set, that's why we call it here,\r\n\t\t\t// after setting the owner\r\n\t\t\tif (THIS.container === window.document.body) {\r\n\t\t\t\tjsc.redrawPosition();\r\n\t\t\t} else {\r\n\t\t\t\tjsc._drawPosition(THIS, 0, 0, 'relative', false);\r\n\t\t\t}\r\n\r\n\t\t\tif (p.wrap.parentNode !== THIS.container) {\r\n\t\t\t\tTHIS.container.appendChild(p.wrap);\r\n\t\t\t}\r\n\r\n\t\t\tjsc.addClass(THIS.targetElement, jsc.pub.activeClassName);\r\n\t\t}\r\n\r\n\r\n\t\tfunction redrawPad () {\r\n\t\t\t// redraw the pad pointer\r\n\t\t\tvar yChannel = jsc.getPadYChannel(THIS);\r\n\t\t\tvar x = Math.round((THIS.channels.h / 360) * (THIS.width - 1));\r\n\t\t\tvar y = Math.round((1 - THIS.channels[yChannel] / 100) * (THIS.height - 1));\r\n\t\t\tvar crossOuterSize = (2 * THIS.pointerBorderWidth + THIS.pointerThickness + 2 * THIS.crossSize);\r\n\t\t\tvar ofs = -Math.floor(crossOuterSize / 2);\r\n\t\t\tjsc.picker.cross.style.left = (x + ofs) + 'px';\r\n\t\t\tjsc.picker.cross.style.top = (y + ofs) + 'px';\r\n\r\n\t\t\t// redraw the slider\r\n\t\t\tswitch (jsc.getSliderChannel(THIS)) {\r\n\t\t\tcase 's':\r\n\t\t\t\tvar rgb1 = jsc.HSV_RGB(THIS.channels.h, 100, THIS.channels.v);\r\n\t\t\t\tvar rgb2 = jsc.HSV_RGB(THIS.channels.h, 0, THIS.channels.v);\r\n\t\t\t\tvar color1 = 'rgb(' +\r\n\t\t\t\t\tMath.round(rgb1[0]) + ',' +\r\n\t\t\t\t\tMath.round(rgb1[1]) + ',' +\r\n\t\t\t\t\tMath.round(rgb1[2]) + ')';\r\n\t\t\t\tvar color2 = 'rgb(' +\r\n\t\t\t\t\tMath.round(rgb2[0]) + ',' +\r\n\t\t\t\t\tMath.round(rgb2[1]) + ',' +\r\n\t\t\t\t\tMath.round(rgb2[2]) + ')';\r\n\t\t\t\tjsc.picker.sldGrad.draw(THIS.sliderSize, THIS.height, color1, color2);\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'v':\r\n\t\t\t\tvar rgb = jsc.HSV_RGB(THIS.channels.h, THIS.channels.s, 100);\r\n\t\t\t\tvar color1 = 'rgb(' +\r\n\t\t\t\t\tMath.round(rgb[0]) + ',' +\r\n\t\t\t\t\tMath.round(rgb[1]) + ',' +\r\n\t\t\t\t\tMath.round(rgb[2]) + ')';\r\n\t\t\t\tvar color2 = '#000';\r\n\t\t\t\tjsc.picker.sldGrad.draw(THIS.sliderSize, THIS.height, color1, color2);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\t// redraw the alpha slider\r\n\t\t\tjsc.picker.asldGrad.draw(THIS.sliderSize, THIS.height, THIS.toHEXString());\r\n\t\t}\r\n\r\n\r\n\t\tfunction redrawSld () {\r\n\t\t\tvar sldChannel = jsc.getSliderChannel(THIS);\r\n\t\t\tif (sldChannel) {\r\n\t\t\t\t// redraw the slider pointer\r\n\t\t\t\tvar y = Math.round((1 - THIS.channels[sldChannel] / 100) * (THIS.height - 1));\r\n\t\t\t\tjsc.picker.sldPtrOB.style.top = (y - (2 * THIS.pointerBorderWidth + THIS.pointerThickness) - Math.floor(jsc.pub.sliderInnerSpace / 2)) + 'px';\r\n\t\t\t}\r\n\r\n\t\t\t// redraw the alpha slider\r\n\t\t\tjsc.picker.asldGrad.draw(THIS.sliderSize, THIS.height, THIS.toHEXString());\r\n\t\t}\r\n\r\n\r\n\t\tfunction redrawASld () {\r\n\t\t\tvar y = Math.round((1 - THIS.channels.a) * (THIS.height - 1));\r\n\t\t\tjsc.picker.asldPtrOB.style.top = (y - (2 * THIS.pointerBorderWidth + THIS.pointerThickness) - Math.floor(jsc.pub.sliderInnerSpace / 2)) + 'px';\r\n\t\t}\r\n\r\n\r\n\t\tfunction isPickerOwner () {\r\n\t\t\treturn jsc.picker && jsc.picker.owner === THIS;\r\n\t\t}\r\n\r\n\r\n\t\tfunction onValueKeyDown (ev) {\r\n\t\t\tif (jsc.eventKey(ev) === 'Enter') {\r\n\t\t\t\tif (THIS.valueElement) {\r\n\t\t\t\t\tTHIS.processValueInput(THIS.valueElement.value);\r\n\t\t\t\t}\r\n\t\t\t\tTHIS.tryHide();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tfunction onAlphaKeyDown (ev) {\r\n\t\t\tif (jsc.eventKey(ev) === 'Enter') {\r\n\t\t\t\tif (THIS.alphaElement) {\r\n\t\t\t\t\tTHIS.processAlphaInput(THIS.alphaElement.value);\r\n\t\t\t\t}\r\n\t\t\t\tTHIS.tryHide();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tfunction onValueChange (ev) {\r\n\t\t\tif (jsc.getData(ev, 'internal')) {\r\n\t\t\t\treturn; // skip if the event was internally triggered by jscolor\r\n\t\t\t}\r\n\r\n\t\t\tvar oldVal = THIS.valueElement.value;\r\n\r\n\t\t\tTHIS.processValueInput(THIS.valueElement.value); // this might change the value\r\n\r\n\t\t\tjsc.triggerCallback(THIS, 'onChange');\r\n\r\n\t\t\tif (THIS.valueElement.value !== oldVal) {\r\n\t\t\t\t// value was additionally changed -> let's trigger the change event again, even though it was natively dispatched\r\n\t\t\t\tjsc.triggerInputEvent(THIS.valueElement, 'change', true, true);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tfunction onAlphaChange (ev) {\r\n\t\t\tif (jsc.getData(ev, 'internal')) {\r\n\t\t\t\treturn; // skip if the event was internally triggered by jscolor\r\n\t\t\t}\r\n\r\n\t\t\tvar oldVal = THIS.alphaElement.value;\r\n\r\n\t\t\tTHIS.processAlphaInput(THIS.alphaElement.value); // this might change the value\r\n\r\n\t\t\tjsc.triggerCallback(THIS, 'onChange');\r\n\r\n\t\t\t// triggering valueElement's onChange (because changing alpha changes the entire color, e.g. with rgba format)\r\n\t\t\tjsc.triggerInputEvent(THIS.valueElement, 'change', true, true);\r\n\r\n\t\t\tif (THIS.alphaElement.value !== oldVal) {\r\n\t\t\t\t// value was additionally changed -> let's trigger the change event again, even though it was natively dispatched\r\n\t\t\t\tjsc.triggerInputEvent(THIS.alphaElement, 'change', true, true);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tfunction onValueInput (ev) {\r\n\t\t\tif (jsc.getData(ev, 'internal')) {\r\n\t\t\t\treturn; // skip if the event was internally triggered by jscolor\r\n\t\t\t}\r\n\r\n\t\t\tif (THIS.valueElement) {\r\n\t\t\t\tTHIS.fromString(THIS.valueElement.value, jsc.flags.leaveValue);\r\n\t\t\t}\r\n\r\n\t\t\tjsc.triggerCallback(THIS, 'onInput');\r\n\r\n\t\t\t// triggering valueElement's onInput\r\n\t\t\t// (not needed, it was dispatched normally by the browser)\r\n\t\t}\r\n\r\n\r\n\t\tfunction onAlphaInput (ev) {\r\n\t\t\tif (jsc.getData(ev, 'internal')) {\r\n\t\t\t\treturn; // skip if the event was internally triggered by jscolor\r\n\t\t\t}\r\n\r\n\t\t\tif (THIS.alphaElement) {\r\n\t\t\t\tTHIS.fromHSVA(null, null, null, parseFloat(THIS.alphaElement.value), jsc.flags.leaveAlpha);\r\n\t\t\t}\r\n\r\n\t\t\tjsc.triggerCallback(THIS, 'onInput');\r\n\r\n\t\t\t// triggering valueElement's onInput (because changing alpha changes the entire color, e.g. with rgba format)\r\n\t\t\tjsc.triggerInputEvent(THIS.valueElement, 'input', true, true);\r\n\t\t}\r\n\r\n\r\n\t\t// let's process the DEPRECATED 'options' property (this will be later removed)\r\n\t\tif (jsc.pub.options) {\r\n\t\t\t// let's set custom default options, if specified\r\n\t\t\tfor (var opt in jsc.pub.options) {\r\n\t\t\t\tif (jsc.pub.options.hasOwnProperty(opt)) {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tsetOption(opt, jsc.pub.options[opt]);\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\tconsole.warn(e);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t// let's apply configuration presets\r\n\t\t//\r\n\t\tvar presetsArr = [];\r\n\r\n\t\tif (opts.preset) {\r\n\t\t\tif (typeof opts.preset === 'string') {\r\n\t\t\t\tpresetsArr = opts.preset.split(/\\s+/);\r\n\t\t\t} else if (Array.isArray(opts.preset)) {\r\n\t\t\t\tpresetsArr = opts.preset.slice(); // slice() to clone\r\n\t\t\t} else {\r\n\t\t\t\tconsole.warn('Unrecognized preset value');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// always use the 'default' preset. If it's not listed, append it to the end.\r\n\t\tif (presetsArr.indexOf('default') === -1) {\r\n\t\t\tpresetsArr.push('default');\r\n\t\t}\r\n\r\n\t\t// let's apply the presets in reverse order, so that should there be any overlapping options,\r\n\t\t// the formerly listed preset will override the latter\r\n\t\tfor (var i = presetsArr.length - 1; i >= 0; i -= 1) {\r\n\t\t\tvar pres = presetsArr[i];\r\n\t\t\tif (!pres) {\r\n\t\t\t\tcontinue; // preset is empty string\r\n\t\t\t}\r\n\t\t\tif (!jsc.pub.presets.hasOwnProperty(pres)) {\r\n\t\t\t\tconsole.warn('Unknown preset: %s', pres);\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tfor (var opt in jsc.pub.presets[pres]) {\r\n\t\t\t\tif (jsc.pub.presets[pres].hasOwnProperty(opt)) {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tsetOption(opt, jsc.pub.presets[pres][opt]);\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\tconsole.warn(e);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t// let's set specific options for this color picker\r\n\t\tvar nonProperties = [\r\n\t\t\t// these options won't be set as instance properties\r\n\t\t\t'preset',\r\n\t\t];\r\n\t\tfor (var opt in opts) {\r\n\t\t\tif (opts.hasOwnProperty(opt)) {\r\n\t\t\t\tif (nonProperties.indexOf(opt) === -1) {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tsetOption(opt, opts[opt]);\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\tconsole.warn(e);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t//\r\n\t\t// Install the color picker on chosen element(s)\r\n\t\t//\r\n\r\n\r\n\t\t// Determine picker's container element\r\n\t\tif (this.container === undefined) {\r\n\t\t\tthis.container = window.document.body; // default container is BODY element\r\n\r\n\t\t} else { // explicitly set to custom element\r\n\t\t\tthis.container = jsc.node(this.container);\r\n\t\t}\r\n\r\n\t\tif (!this.container) {\r\n\t\t\tthrow new Error('Cannot instantiate color picker without a container element');\r\n\t\t}\r\n\r\n\r\n\t\t// Fetch the target element\r\n\t\tthis.targetElement = jsc.node(targetElement);\r\n\r\n\t\tif (!this.targetElement) {\r\n\t\t\t// temporarily customized error message to help with migrating from versions prior to 2.2\r\n\t\t\tif (typeof targetElement === 'string' && /^[a-zA-Z][\\w:.-]*$/.test(targetElement)) {\r\n\t\t\t\t// targetElement looks like valid ID\r\n\t\t\t\tvar possiblyId = targetElement;\r\n\t\t\t\tthrow new Error('If \\'' + possiblyId + '\\' is supposed to be an ID, please use \\'#' + possiblyId + '\\' or any valid CSS selector.');\r\n\t\t\t}\r\n\r\n\t\t\tthrow new Error('Cannot instantiate color picker without a target element');\r\n\t\t}\r\n\r\n\t\tif (this.targetElement.jscolor && this.targetElement.jscolor instanceof jsc.pub) {\r\n\t\t\tthrow new Error('Color picker already installed on this element');\r\n\t\t}\r\n\r\n\r\n\t\t// link this instance with the target element\r\n\t\tthis.targetElement.jscolor = this;\r\n\t\tjsc.addClass(this.targetElement, jsc.pub.className);\r\n\r\n\t\t// register this instance\r\n\t\tjsc.instances.push(this);\r\n\r\n\r\n\t\t// if target is BUTTON\r\n\t\tif (jsc.isButton(this.targetElement)) {\r\n\r\n\t\t\tif (this.targetElement.type.toLowerCase() !== 'button') {\r\n\t\t\t\t// on buttons, always force type to be 'button', e.g. in situations the target