From e10c8dcd2a8a5fddffb3dfea3fade246cba53e44 Mon Sep 17 00:00:00 2001 From: Robert Nilsen <93103203+Padletut@users.noreply.github.com> Date: Wed, 21 Aug 2024 16:41:02 +0200 Subject: [PATCH 01/51] chore: Add build, watch, start, and dev scripts to package.json --- package-lock.json | 3968 +++++++++++++++++++++++++++++++++++++++++++++ package.json | 16 +- 2 files changed, 3982 insertions(+), 2 deletions(-) create mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..565e4f268 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,3968 @@ +{ + "name": "css-frameworks-ca", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "css-frameworks-ca", + "version": "0.0.1", + "license": "ISC", + "dependencies": { + "bootstrap": "^5.3.3" + }, + "devDependencies": { + "live-server": "^1.2.2", + "npm-run-all": "^4.1.5", + "sass": "^1.77.8" + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/apache-crypt": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/apache-crypt/-/apache-crypt-1.2.6.tgz", + "integrity": "sha512-072WetlM4blL8PREJVeY+WHiUh1R5VNt2HfceGS8aKqttPHcmqE5pkKuXPz/ULmJOFkc8Hw3kfKl6vy7Qka6DA==", + "dev": true, + "dependencies": { + "unix-crypt-td-js": "^1.1.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/apache-md5": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/apache-md5/-/apache-md5-1.1.8.tgz", + "integrity": "sha512-FCAJojipPn0bXjuEpjOOOMN8FZDkxfWWp4JGN9mifU2IhxvKyXZYqpzPHdnTSUpmPDy+tsslB6Z1g+Vg6nVbYA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/async-each": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", + "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "dev": true, + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "node_modules/bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bootstrap": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.3.tgz", + "integrity": "sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], + "peerDependencies": { + "@popperjs/core": "^2.11.8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "dev": true, + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-stream": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", + "integrity": "sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==", + "dev": true, + "dependencies": { + "duplexer": "~0.1.1", + "from": "~0", + "map-stream": "~0.1.0", + "pause-stream": "0.0.11", + "split": "0.3", + "stream-combiner": "~0.0.4", + "through": "~2.3.1" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "dev": true, + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/expand-brackets/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "dev": true, + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "dev": true, + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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/http-auth": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/http-auth/-/http-auth-3.1.3.tgz", + "integrity": "sha512-Jbx0+ejo2IOx+cRUYAGS1z6RGc6JfYUNkysZM4u4Sfk1uLlGv814F7/PIjQQAuThLdAWxb74JMGd5J8zex1VQg==", + "dev": true, + "dependencies": { + "apache-crypt": "^1.1.2", + "apache-md5": "^1.0.6", + "bcryptjs": "^2.3.0", + "uuid": "^3.0.0" + }, + "engines": { + "node": ">=4.6.1" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "dev": true + }, + "node_modules/immutable": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", + "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", + "dev": true + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", + "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", + "dev": true, + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-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": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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/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": { + "node": ">=0.10.0" + } + }, + "node_modules/live-server": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/live-server/-/live-server-1.2.2.tgz", + "integrity": "sha512-t28HXLjITRGoMSrCOv4eZ88viHaBVIjKjdI5PO92Vxlu+twbk6aE0t7dVIaz6ZWkjPilYFV6OSdMYl9ybN2B4w==", + "dev": true, + "dependencies": { + "chokidar": "^2.0.4", + "colors": "1.4.0", + "connect": "^3.6.6", + "cors": "latest", + "event-stream": "3.3.4", + "faye-websocket": "0.11.x", + "http-auth": "3.1.x", + "morgan": "^1.9.1", + "object-assign": "latest", + "opn": "latest", + "proxy-middleware": "latest", + "send": "latest", + "serve-index": "^1.9.1" + }, + "bin": { + "live-server": "live-server.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/live-server/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/live-server/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/live-server/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/live-server/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/live-server/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", + "dev": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/live-server/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/live-server/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/live-server/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/live-server/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/live-server/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/live-server/node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "dev": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/live-server/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/live-server/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/live-server/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/live-server/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/live-server/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "integrity": "sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==", + "dev": true + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "dev": true, + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/morgan": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", + "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", + "dev": true, + "dependencies": { + "basic-auth": "~2.0.1", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-finished": "~2.3.0", + "on-headers": "~1.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/nan": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.20.0.tgz", + "integrity": "sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==", + "dev": true, + "optional": true + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "dev": true, + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "dev": true, + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/opn": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-6.0.0.tgz", + "integrity": "sha512-I9PKfIZC+e4RXZ/qr1RhgyCnGgYX0UEIlXgWnCOVACIvFgaC9rz6Won7xbdhoHrd8IIhV7YEpHjreNUNkqCGkQ==", + "deprecated": "The package has been renamed to `open`", + "dev": true, + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", + "dev": true + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", + "dev": true, + "dependencies": { + "through": "~2.3" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true, + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/proxy-middleware": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/proxy-middleware/-/proxy-middleware-0.15.0.tgz", + "integrity": "sha512-EGCG8SeoIRVMhsqHQUdDigB2i7qU7fCsWASwn54+nPutYO8n4q6EiwMzyfWlC+dzRFExP+kvcnDFdBDHoZBU7Q==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true + }, + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "dev": true + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dev": true, + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sass": { + "version": "1.77.8", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.8.tgz", + "integrity": "sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/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/send/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/snapdragon/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", + "dev": true + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.20", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", + "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", + "dev": true + }, + "node_modules/split": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", + "integrity": "sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==", + "dev": true, + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "dev": true, + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stream-combiner": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", + "integrity": "sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==", + "dev": true, + "dependencies": { + "duplexer": "~0.1.1" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string.prototype.padend": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz", + "integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/union-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unix-crypt-td-js": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/unix-crypt-td-js/-/unix-crypt-td-js-1.1.4.tgz", + "integrity": "sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw==", + "dev": true + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "dev": true, + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "dev": true, + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dev": true, + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + } + } +} diff --git a/package.json b/package.json index 4086f0f7b..9d1ea0960 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,11 @@ "version": "0.0.1", "description": "A starting point for the CSS Frameworks CA project", "scripts": { - "test": "echo \"We will learn more about testing in the Workflow course\" && exit 1" + "test": "echo \"We will learn more about testing in the Workflow course\" && exit 1", + "build": "sass src/scss:dist/css", + "watch": "sass --watch src/scss:dist/css", + "start": "live-server", + "dev": "npm-run-all --parallel watch start" }, "repository": { "type": "git", @@ -22,5 +26,13 @@ "bugs": { "url": "https://github.com/NoroffFEU/css-frameworks-ca/issues" }, - "homepage": "https://github.com/NoroffFEU/css-frameworks-ca#readme" + "homepage": "https://github.com/NoroffFEU/css-frameworks-ca#readme", + "dependencies": { + "bootstrap": "^5.3.3" + }, + "devDependencies": { + "live-server": "^1.2.2", + "npm-run-all": "^4.1.5", + "sass": "^1.77.8" + } } From f2e64a16426b6905a416339ec0e90e7414147cfc Mon Sep 17 00:00:00 2001 From: Robert Nilsen <93103203+Padletut@users.noreply.github.com> Date: Thu, 12 Sep 2024 05:17:35 +0200 Subject: [PATCH 02/51] feat: Add footer styles - Added styles for the footer component - Set the height of the footer to 56px - Added padding-top of 60px to the footer chore: Update cards styles - Added styles for the cards component - Set the box-shadow and min-height properties for the .card-custom class - Set the font-size, margin, and flex-wrap properties for the .card-custom h1 and .form-check-container classes - Set the min-width property for the .card-custom class at a min-width of 576px - Set the display property to none for the .nav-tabs class chore: Update index.scss - Imported variables, bootstrap, and various components in index.scss - Added scroll-behavior: smooth to all elements - Set the font-family to 'Roboto', sans-serif for the body - Set the --bs-body-bg variable to #F9FAFB - Set the height of the body to 100vh - Added padding to the main element - Set the display property to flex for the .card class chore: Add variables - Added variables for body background color, theme colors, button colors, and button shadows feat: Add input validation function - Added a validateInputs function in validateinputs.mjs - Applied custom Bootstrap validation styles to forms with the .needs-validation class feat: Add header styles - Added styles for the header component - Set the height of the header to 90px - Added padding-bottom of 90px to the header - Set the letter-spacing property for the .navbar-nav class - Set custom styles for the .navbar-brand-custom class after the sm breakpoint - Added styles for the input.custom-search class feat: Add sign in and sign up functionality - Imported the validateInputs function from validateinputs.mjs in index.js - Added event listeners for switching between login and register account tabs - Added event listeners for sign in and sign up buttons feat: Add custom button styles - Added styles for custom buttons - Created a mixin for custom buttons with customizable background, border, color, hover background, hover border, hover color, active background, active border, active color, disabled background, disabled border, and disabled color - Applied the custom-button mixin to the .btn-auth-form-custom class chore: Update template.html - Added the necessary HTML structure for the header, main, and footer sections - Imported Bootstrap CSS and custom CSS - Imported Bootstrap JS and validateinputs.js - Set the title of the page to "ConnectSphere - Authorization" --- images/ConnectSphere logo.png | Bin 0 -> 69961 bytes index.html | 175 ++++++++++++++++++++++++++++++ js/index.js | 27 +++++ js/validateinputs.mjs | 20 ++++ src/scss/_variables.scss | 23 ++++ src/scss/components/_buttons.scss | 58 ++++++++++ src/scss/components/_cards.scss | 22 ++++ src/scss/components/_footer.scss | 5 + src/scss/components/_header.scss | 38 +++++++ src/scss/index.scss | 27 +++++ template.html | 61 +++++++++++ 11 files changed, 456 insertions(+) create mode 100644 images/ConnectSphere logo.png create mode 100644 index.html create mode 100644 js/index.js create mode 100644 js/validateinputs.mjs create mode 100644 src/scss/_variables.scss create mode 100644 src/scss/components/_buttons.scss create mode 100644 src/scss/components/_cards.scss create mode 100644 src/scss/components/_footer.scss create mode 100644 src/scss/components/_header.scss create mode 100644 template.html diff --git a/images/ConnectSphere logo.png b/images/ConnectSphere logo.png new file mode 100644 index 0000000000000000000000000000000000000000..71d116301ca134bcdf0f1a442dd1c2dd87dd62e9 GIT binary patch literal 69961 zcmeFZXH=9+(>6K;Ns=Vz93{<=b4H>PMWQgw3@~IEa?VL|4w5qhf@Ba0f`~{K5D<_I zl0`DYH@MyV+0XO7=X~#4=dACXADgv?nZEDp>h7xQy6Wm1CQ9p(G9C^U4gdhaQ&mya zLB3zyzOXQmzaw{yqyPXx1OzN^aQklKW^aMKOox1jLinA)fO`PKKmec;Ae!xr_Ui&t z>fvvx+jpdt{l80rp^g?XaW@wSaW^+OR9s9*5G)FT0(nG0A|gD30zg3?FieD>M-(h( zAtGRD2^AHEAxA{1|E-ks52awle;Jw=j6lF#T;Yxm2xJGq^zROAzdBery8JgCAb&|$ zK#&pzR^UIb1Ql8S@yYgfO}sED+!Y43M>tx#dVpPEa#k=0S9`hJbuc`DyTB~%yquwM zE4VAzPS?@R1p?Faa)Np4TD!VBiSzM6+&h+EqP6~Yj%U>8>kMoT-GgO#f_rCIgf*C7NEmvn(SV`pehPP*b9hDM&-)`%mBygWCq}_I9Y%e`b%?B97DZ!-6Bw#; zJLVrhs6xM|%JOTf{1ChU>H&xy7;cXgN5#IKX1O&KBJK)zwSze-!yI5PV5HR6xTQ>iS|KLK1n~R+%`+v&*OM>rL-{0Z>+rMh??v9)C1v#MS8gFEk?b_ry<^10%{VV)_s}(G9M4X%T->}4OyPbVZ75$mLRLZ@|kL@y5 z=9AxqKK{2r0|0=8zk}wF_~wWFH~ajr6(a+O@9S;gjE5TH_7tLsvQRJv8)6UwgE4S{ z!Dv77(NIxPQ3(USyV8%nTTp0B@s5Kz<>mtMFtG23tAwB8p`hHo0|2^#?gFtf&>o{> z5TicU1u+8|ZyPwoRDZZo*9+kavqvzfIzSvdVTr3C}&f|pC0U`$8`!zXSoIeyJC&l}x940Q7F4%!V%@G0nQw|FkM*(aH zM{XSlIQZX}$pEDL%M92kWcO}|aCAb*f^YL0FEToT!6;0BHxDDw-KN|SqA&&j3X&}U)znTDLdwZefQyF;txsB_8gA>>)eTkuO6ZA~JndtZ&) z-AZ?_`N}T|!BrZSF8} zhfYWD-2)VtaSqf)U33)Vk!dd`yfo?uJM;m@+czYtUhkP6-N7ugze94|w**v?a1xt0 zz(}1IB(hWjPYb3Q9%a$bj_P{9mq{3$s9IL-3!FJ^6rHZ3>1edhdXihe@SLMX^}`EF48Zw#3(2?=%_#d5dXGCaN9yhL&Xe4+8WtrMJET6{x&)v3JNX; z78eG}ojaIl=)j=3TLA|2pm1PN2rww{FDXFs>z(e;6PK%IQ8{72y$zwyk;7S024vExN}*@N9&t#2cR4+1t5 z0SiF{z(9zI00<-^2owfGp&&5<5WfWkWC7t9u;kM~&H>@7prgTy>Ze#7FB>*%qlkNH_pAS-sjb0Fv=O9-$yQVp@#; zu7Km0Qe}b*_Apxl*H9nz%=9s8J-#>OK^%2NN^UU%Ek7+-c1>4fCwnbB$Qo^~^ie2Q z9bXG4cUR0m1J=U#M2disrws)6)O9ZS5zSIio5U{|JzWv64xeiZ*BDk##qs%#*~w{K z(x^R3IE22hWPJZ)LL$fC@(aulXPKHvgj{^FMN1HPiEU zbYRz;sMuZOhSb=heAD)1Ee@29Dyw@H37tKOat}H`r#(u&^2~_Mh#Ohmqj@ZihcNOO zt|KZZ^@M4peaEES@1^YtdUuFsI-_eshlE)Abj@)p|AB8mrVrk_*#9UzO;5m6$UHvl zv3VJfZZN)^+88@4`&WN`^~<-r_Z|s2;Za4POkKa=-CU%O`l1f z^?HloYlP=QukmIZ#z1Hk_HBSSnyw*gB%!RA!j+qaN^-kqu3)jA#(LeTAZfeV5oc=N zfOb;26Dk##MImnL)FREp?`|Vm4_Z<#2-J;mYV+Y zu_i$~k4W)Be&AZd*U+VV(oCFJ*}kXV<(>My>#v|Tn4}>}m2vb^!h~7q1f&Dh9);%* z-ZSM0nWpf$Z>*mx)rm<|R#co=7LS;Xw?6*d8*#z+^0g8otI;h>TD8Vyxpz`v*zI-Ap$^0)N?`S>X5;yd6#GRa3 z5ixoAsiqOrIBTK7(iMB+#=J3F{9!TJCTk%bX?mYk$@FTM@~`}cbBC60@ec)we}YK- z0|JR|6Z0?p!vbO;fe#rVK%qZCgcrySyr0jJ&lb+|Cn-V#$X|s9->*+D$o*i&{|g-c z4LngWfF!qSSkdu-cmIM#6incg+p7%dTEIs@jlZrV;Zg=D^(UC1qL6`ZM?@fbn1_eQ z--fh@BOrW8DC4`Ws>~4X5SSUn3BhaaYHtT*xmA1*9a-WPBR4IG6iAG`fZVvax`q!G zcm#oB!aM>3K-ya=d~`DO{~m_^j#H&HOZIv!8s+gSE}ae)F_Wu1pilpiaem>H^Y9vG zOz9V%FYmufz@7qO6r8CYKC!9`66d=Fb@OCADX60F@6Cb@46o4-(FNEn8&UI?@^ zeb;nsXEf0#J8m5aA-zm#6#7~Ka-n?AJtgF|7a2uYG_Rv1fYKc>ky^jxae-a3+&+deYx8@o+uR(~0k5`mA){K=J9o zw_}~3zWQHZ?~7Po=*h>qe76*FSt`4yo$gLCSfgl=_R{ApM4kd~UKUXw1d@BM7AtI&a-)Qmzd zHhJ||XT++(sjvO-ki^h?q!yKb?bs9g`MsGGO;nayB`L9L$6$qzucCo3YLK4FJ$k^|C*a&$^^&udibWixJhy99+Z;JN>M`lq%QNwGu0G%WTbos7P}hC0iY(WGLBSYze={9yLKO6T1iCZO5fugH52^5ez#(D;Qhkk)?!@6$i)+6!^B@&hJk%jEu*Y&)1dj?mlcuyD$1;H=!Dh3n; zi3o}Eix{C|12&kw60N9f+Vg|&b^wF#U?O2-|2O*Hq03F2rc1``_qJM#|fFOt;DDo%h8vG9@0R-~?F$wm+Ch-Tr z%gO0!{2CQ`N@4HBpaVlVIXXaLEwbF`br zjiWp1`c=a8gohH@;@zbFyZ2MF`o;%}no*A#mu9X2KJ0l8lj2+9v2wVJVyQnqFRBe; z^iN#aA(QblWHOHUFZAQz$qCtQ>SDbmC%8bIKXWA-)-TSA%&5qu2gJg_unNLOL2?;n z&b^N0cP!9FI;7dZ+GiQVMOM*pZpWDI1jEJKhtbo z3vi9#lPsr+S3f&t?%pEPF@m_$Zu68wu7Q z^)D%4MtvQ3t5=DYyjEY9Ge}Mnn2i-&LZ3@e>bjxd4N6;edv;jl#JTmcqlV2QmgbRV zdE5ZB4y0nvMIJqZ(`Q^V=kuUem^j7s`TM?Mrgus8hD?Bbe+(^Vmo2= zewK<|Q;CaLvwSnDd>zwJt3HZO9I4mTgBlVW82~HAE;YD2px#}+lR!Q}VAxP3g{4~? zbta`hr#viQJ6BTmt(@O&{JsoP7qGkIR<0s@DbOPGzEHz?vU6Tz%@`(vBn|HAo_o z_B$0~3X3$e==pwDuKLMgdH<>Le}oLs;@`8-?^*UO7s61j@0M~= z)qdR1iq`u*QKTYWyI^WOWGq*s&_2KRW5~JD$-M$aQhBrD$Rq0uzoX|-cLQ?ha|s0K zwTSPsA=2#6o|L2d{ZwcOoxOL6sH@-O3Ji^AqFCIXmFguActOb}E&s(T?whvM!Ib`| z4Gx~|iMmF&4SEb%YzpVZ%np2UCL!Vhz-LZTF6xV~%@gkf5wAScs=>`rXoJpocjZ%X z2<5z4gWg?6YX=d=cG)VkR|{%>!^dJoR{QuR5WCgVKH4E+Jd??F>hf-=t87`9OJCa~ z`npDghhEpy@rdLqZn5POm8pYT5OKv5&NO!3Q7E`*CmX1f){7n#q~7B)aFykFflwG; zR4bsd7473Z`cRpMkhjijdQhJuUNnjJwez4*@`L;r3Y7p7!I5!|7yH>#*Z3{a`xkB; zEONW@op+vFs_JO{&^{7YefW%FocoE87gza_lKE@qScB6q;DzLCv99x1z!Ht=tqe5- z=?S#R>-zYKr|RxR+Q|bkxDv+EOy%8dSmz{!L}-3y%$k);(>60GUS2A?i?mI6` zAGj@>7a3rqZ~*W__4bChOy55R5_LStZJcm#9mluL#2puC7^?e|Y?vbP&G5e^8~-ZE z|664GJ9O<#uLO@fn?f}fd97qN+A?Zr2sHm4Gf~2SRsBfT@$V4n@h4UwF~$}M{~scZ z+@HOGsNq6?BHsT1VQzP*vLF)OT!9LIAg3fy94MMEoG%#8|EC@oyZ?LS{7Z@5{{Z0s z{b>9bV)+@ybtN}BW>hFLq4--)eP)zjs-@s1d`LV3)E(}mxa`+5T~_D3bc)8Sta1#G){<4yVFp zlszt8TuG*HUT8*hd%p-9QZU;!Z>rQxw9Mts{Tf}h_A}-+lr6$8sUydC)CtFTzx=hE zW}DGz1>q~xts4%#sDsI9XLs1_#{-ul=8G=&V8xnDcIp=_bZp(t3-`BAa_hV@gNpRS zU*ISWEcV9cZ)99vmgcy;?CtOFwsD?$M;wUV+mtsH5y8@~S)|(PVVQX7@_b7jRi{kE zKUud*f)-1aAZ19*d;W$MlF803C1YE5X!%xdNV7>cn~_m=w3(P?=nJi<_-bzTnxJ#i zG@I?JDB?vaie`t5glDxz^<{6W&n}LcfLMf_r?=?V^QC#_pR^nk{pXv98D^JUpZ&i- z$Z_MQW9Md@b0qblqkJaZlKg4?J9(zz2d4v(&J4gJ1DPiKrMVSZfo0qL<1TT|@Y;-g zuH96*X7NeV3{ZmwHUUmY&M%u|^Judpdi>~kZTx(O86?}@MY8%A(v~wb&R0UioyHmbb zpkS011pmGHk~2!A6s`9Whqs=r7OHW~=;-*^s?=3n>jfCzp)XZaU5 z0doCK7!?;p1Ec~XkCV|!W~f>PuF0#ng6T?$kBh~fA4&WB0r~!=3LV6R&hXv_%l_z_ z;J4>Ok4e>l2SHd#3tPbPW;Z1!bKAFcS+&TM?SD}&R6Y;~kPXNJM0O0GJxodU5e`LF zil1Z$z^^U(N%Svr?}ooPW8c(eV4u0I#D8%CeNd5}EgPP(pvGP^q9 zkr}#3OuP!$*f2{~c0mAo6e=TN<=gt{4_K%6lr7V+l+m4!JZtOEVv>$Ri@*CbHDMeS z-#(HxByRZQf$TrO|FOV77Wl^k|5)H33;bh&e=P8i1^%(XKNk4M0{>Xx9}E0rfqyLU zj|Kj*z&{rF|BD4q3{e2wwEJ_|1 z53cNI!(Z^>mw^i!_KrG@W1{Kl_3mbNVfXc>5YHm^iWEPQGdwlFNvyc*V#rN2*vs@- z1ofT%Ylf_PTqcxnV$rZXkYrNDi8>#{gY3fqjMN2lzjR@Zg*NWGOcubUSD5u zB(5AWS`=;3kh*A4e#?V!nNY%1=3N z!uF2I#j%#KrDx;OVDXnE4WvKNt>hlc0RVOJcdx*A0010SxPpQfLPuGiK~+gX7$hbv z%)`$M0svH^a&$cml26H`7f)dX`tqL->eB6k08GqPSnml93kj0|;7~#$*}kwy9DNef zd(TxK_XbbmsN_U0=X11J$wfyRJ$q~-x<~(|tkKVVe|PtC`ttS0^Np)vuMvX4dqixB z>xDJ|F`Y0;@z3<}nku~m9f7E%DqqnV2-gRDtnTyy00(GZp8l@2GFK=s9Ra8Sr%7HG zqW-0ukTxy0Cjf>-z*i=sjk_obI)L}Qdhba9?TKneh0=jAKU1gOLV?EFxb zz61DNk^F@m@VStt0t*m}0?6c0WH*|e$ujYxch#T-8aDAOqXu@| z0l3E*BoN4&0|GPUxjzCJL{R|>bi_kw3>s+p!12zn6=qIhEh;F0uEEryboFrol9tp_ zDv$36UzZt|d+h4u!Q`BTme{LI&(pJ+iB&exG=^~j0IKt`?rTw*gpKvprFF{whl|&*V^GlngpWq{XU*2urqG=FQEJ^fZ7Ylcv-$w*#dA}EIqZBRoKf%d zXI`RLvUIrxTJI%kX>jh|-DR~X=m4%flfDsHa{T(t{{(sWdd~X*;G89!S>06>^3xgY z;9jE>w=sw=4{|u&V7~4T3-}qwIkqfVXTnVyeP|HXqQ&&E->X$8QIT;Vb(v@@fd7y_ z?I(7!2Ogj*T(j#@6K3O}U6=nJ3hFa_gK>9&tp5>D4AtF40HKv2zt<@MklcA5FUy4j z7)mc*0RUcaQkaydkZZid0ss{AgYMVLVd8d^RCVD$@1}j-MUD!_P?W`G>5?Rr$5;)d z!6~3flcUt@690_eSc^uLe=lo^u%R0yinsBV$Rudni5$b6BDaU)bvQP<+7Cfiz0PZj+xA2H@CNMIV6R%km$)j%f|*i=|HroQRs3h;}Lg9MI& z@GWCzz$P&fO6E}pRBZiZkTnA#{dge=t$~O;DRoyacpr-e^;sbC4%X99!XCTegal;+ z4FiR8)*a>sqBg82*dd{y9(JbWa?J)-Z=&;FPYdz71cL`vY7(i6wwst+8(SeiJaF;C@k07lEI24_DSar* zD4HqxGBrx?Or&SN*8@)TQ)gOb5M($$Hn@Ls-PDsBW5i>bNw3Pg zdM_Rmym+ebSNh;_z1B(v_9wCzlNGd&+be`?hIKr2;UIZwJC7eKM z2NH!Gd`y6B+GfC8#tuT4%I^(Yw@Z+g$LQnb&hyv0)`j&->J# z2|w#kn@#f_yp#4Y?X)UGUs~Tw|5$&zN_EO)n|s@S>WQ5e^^Drt<3S>R$J3 z`$dvvl6cN>&SPDNSA8_~?!~N;k?HN=Fb?P(7M08a;X@dI_e`o!C3=7<{J_b z0$;4Sv&Kk2VC9e+QC|Q*vT4vw-HQt!!CEBrcPu^E*!tLn75P=!F0zFlPMJx5?nlCT zpTCm#n|6b)tF!AV_f*xY;iXka++lo0OsmA4O_PheRh5mMjvZttyCtxtvL(nf;!No< zoye7#1$#GYwfA$cRMZLrb;B-8;Q4BnUYaYUX6;L1EBX4?@L;Zoq@j>ug0E;;22uJe znY9oGc`ZH)&9yRzhqT1sL$kv)mEIJ_7HZcux2Q=bt>@^co`}v%_$gdihig7?dnbUc zsl(-!NSV~ieDqLXacZGzWX5@hM=a%e%JU)}Ja}3I*EF!1qgm6Eiz^v#)ob1U19fu5 zhtpN&bHvdcsa=@HSW$ycjTSzc246Xsr!j@GXNyXQiqR*5Ma%1N=gfD5$$UE!YPDKw z>p!=68XkUS>QrhcV}7Pf?!gN()oFuz!Vkv%2CWBQrTx@eHqd$e-Nx(7_c)!9@sbh+ zuHYwvsTC;$gAO%6j9MY2;8f`2eVg=2WBq{p;)8jjw7+fR>S*`nWoPFrY1CkD_WZc!*9R59a_u`Xged;wiGvmn!Jk-;62B zp?ylL{HFQFe;>30aqAa~f0CP@!y$Eez8ajoQU)!{&3Pmv^(pg<*Qv%;rmd;AX@`}< zNUjXI>z+ol+3CR1!bZI5!E2`@*o*Iv;<2!UX zd8zDG8S%&mfBhS;ZN!U>#h=TU>LUhMpAYVyKO5<+@v1m-*?&>-QoNtJpZ@i*m(*eD zRrT*af7&Y*h19dc*hnitjY^=#ocSbOc#sGC)*x9s&T~ zYyd!D=pX+BAGiqsxB&rxZ{`4icm@DK?)1D(TM{XY?WAIe{3ml>=GzyFXNinE05G<# zswk)D`Fy9tP=AflTJr^Df?vCV~OCJcTO| zV`co)xI9}bgN%rBoe9|6ooLB=s>&b&S8!q?Ib{$Q%04R3;IwINTTsEM41o|==#h<_ z!mVvsuxL}lp+qzz2`;9gPJ}fC6g0SULS5!gCXq~0`>fh(L~2nhSTWiyaS8@_hmz!s z=(7|w=!r>KBi;Soa)kG>;}rOp3VH}3=rvAGSLi*?svG>cJB$6Aj`K>Vk6)Tk8cIw( z`LYw?0W$-aX$RbvKC{=Zj5B*gqf(p*0~x3?^JkkdX1q+y+eB_gy_U;v z^t`?=NtES4^;9eeU;<~k%53wBOiN44Of*5+2iR{3OMW4ZT{^nZ ztpZdVrueKZ*%1x-lINfB2A_IEw-ILEn{8znKGA3dFbQuk+VCX2{Fn(D#=LQ_6x z55bB|5X{&za>Cin$&ZRkc`j zlKwU>-=NB(+tgI`FH9ovo-%a|A4w7U6D>ZJ)hiK8T&vpmi;sFNB?-bwjlz;wB~jC3 z0U1H$vHMhUQBQkBcr^Dq9L`I_akLAAfLPeUI4i`&dT(t4yk5Psg4$Kd`I1P{?Q^QSs1_)!?O|?unuvG6ph+j~n!UW^9 z-Pcz@++1VMv=JLy_(R8q25bmJj%t!BJ2q2no(3dTt|D?tna*lOLPoK+GJ^dX!!xSK z*ol*o_!YMPO`xrG@yg!)}PO6m(++>Dz{U(bQuRvwg}&DM=a zGO21ymtybO*gm&A($@>j_4k3X(+P?x>o$=q&RrQ+8MNeJqe3&+4D>@nOI zU$!x z_O96ju@#^sb_xTxQs^3%VU=uaFb>ydd32<_B1v$Sg;zv2^RpUzfHVgcj3cMmY1l`O}zv$MTnrr8)? zARRPpwP58?D$wiV_BvlIM>;_S`i>$rP=if@KheV5AuC71L#J9VSx%^>(tzW&?{Vd1 zXS2ze0arjGDere$c1qMAwG?m~e`GSw1R!O!rqD^>}g;NWS?k~4X zBhFDL^`e>bExSpWdMp$(UNWga)?)yr5)z|RP=cY6+C;<;^6@?lFc4AlbLQ0=f!)1v zrccMzATiyie!h!kIu-eiZ0UoEkIKf3l82y%bvCSAQ&omf@2@V3N(*1ViyDZ!tepJN z8H0=G*IxFb{Zoe>WkrlSg`W0!;F*1Zc;_V&Hg8}rP$aX5mV9{8(3C%)Z$gT7D(Z=I zFS9ss^ZdqD*-uV*&4!oWDn}MWciY@;v%lrd+5G?l|gs!8B3UN z;?@AX(55%b%{fvsy==2p?;x`(n1iFxS2pEkJ`SsEMPyAHP>z&VA0&5&7=tj3fmws3 zpcpDV>e_rM>L09A5xK$cOp|UWtbjlW#1U#}Xnbws9e@&53&{~`agbQsIFwd*q^qxOM?6q|^W4_j*J$To+KBUml`M z90g4p7~q_pn}yrjGUts5@CybvyRgnnNqvpc#;g1|JXGsp*7bpO5RUxr3EuP~B6u)= zxjd;Mj&>h^rCzTd*Jge&_KOUltkOMsHAMIi`!1j8@xG{1|2QleDr^U%))ip{c>1x{=AxSON>ArL{NEU zCIz)J@vTK3*F5+lPU(_d`G`Zt{ z93Goq9LW;0-P*La^0ZF)d3icE*ZzFskyO}NopujHehOd0FbocN#O&`=KO@2M!l#v1 zx#*WEZacJL;)@s5$r-J)@Msi|809rqFq^YSnkufkjKKr5ITAC_5dvj~g(%d}o z>I;qSR232~lU0hN3J=!MLP9!EKQqU_@v*U3Mr6m&$wMH_lRD>5ye<2kN9BPMAe^pJ z9^;u7IKmi#I9fl6JDH%OqG}%z{rT}QDCj!J&kxgsPTB=(({h8g6>j-ztMq1fV(X@g zc0$&}H2ttn_5K=8x~cP4tJI+WYwO8bwbBCVu~DW+&l)6d_{&B`M>1=DQ;k zeQvY9&u5~$ySvuaoAeasb5qqR>USqzUlgq%Ed_% z4dtH+S1b8GgLZk+VeP3QOecv;l=6RRFA!PD&bvs=?m*%nG-C3xQuS*QttsZLaTx{_FX~<)5FDNLieV+_j zUB5dai`!X5&a=bXUbHrVep|$@>xgJ)rapV}#gnnIv3E#R(!y!7p9|ji`A8Z~BkmiS zxdm4%VX7CXkBN;3frOvRSk+hH&aAV&ij9RThN_+LJ8jKH={vBz-goyrBX<=HuiCfi zA&s7YyP~mA9SY_8QKN`ne^&1YL}1}!^;i2$0&!7%obBxGOOQ#;Rs31{Mr%{!g1K?0~b&STNgH`7E?^Xd9>*|^kH$8l@`0>?JuA2;#Hl)*y z(t{LuHL&Y~{MOb?*kBq+NctkjHsEYtX3=AFR7>-e-}lK?{Ob2-u=2GGbnjxO6Pd<% z;y9VTq~@zN2^qe|PWZ^Msi!J|NzfPuq&D{v^~c~Bol{iPnzdCga_S10={rs^Wqdu< zeaP*1b7(|eM+M~0{iFul7TPV=Y`(OpnPykbB1=v#{TkW9$bkyZwBsK-+^GO-xI?KP z2fwIb7dAWX$h+8VFPqb+aX;uwO{#%{!1u}RbVXV*&pa{(?d_|JU*Q!C80u`%_%nqi zYb<-yQ4ugclN6m%EXlAOv>7t%u*TeY9w2N#_#`kf1~>NLz>nZyE#REZW6}GrU=0g1 zPWcDHn)F`h=NCgqlD;F&$*xA)+^HO7&#=tbZXv08sf~_$%CQh>p`}Fd_j6R!oE!>B zMs{{lbw}#b(mf*oXggu03KJBF3LBB4w&ML%c{NotGkRiT;>+ZURf(x;QxDV9f<%i} zjm4#q*B7T|N3$!Bq<-e@cU&?y;5wN~9GAw%nPp=zc2k7%TjPQW$G=R;Kk=|S52ycm z7EkBD+8tolXmQ7AkYZ=#b!YQ-UCzi^U8kyXimc31%0%8FL~3MXbP3IF{`H}fqgTJg zOG-*Um*N|SiqMcLHoDPTdcU8aIYJ^kn>WJpb*e|}3nNwo$qCPtN<-?~>Bs$2_Jc~2^nP^WR7AEOqxV=4E?cF-?DZj|5xQb54AEF`A>3WaOiVS2Nrby1GbGkur7I zr>J#56>ev3?%)s?6@_hSWtFJr_wq&iMp1}Di0(`OKCT77p3IGo>l2@S#uav;PEcK5 z=G2jb(5!XLREtVOU0#te)%3C9)MPi0$juJDyVUjBoc_zFAyXHfq`fk}H$QJ;m2cMV zv{C&A580)P`o(GnH{S!dr>nmCZ?`W9NQw%wJ_yHfmcq2x+Zn*imqVThDA|T+QH?lj zs}<;xEcTZWrEHmw4Gl-oE!P-3LblU}TwUE?`A>*LSyWlaRXDY&O3TWSMIqS6CM&H; zpIv_&FM-J>$Q zbPr3A^=C0wz(_Bp^sDaH#wl*7Qx7hL2?l?QOX15 zZxt;w>t5*aai)nd;f(;5;`?&4nr}>pFfd@DQhO=g6A%#CSv)04f9l@qHSpp_<%{3` zPtl(I*q*VkSmdz%U(Mt#roVTyqu-PX-42QtG&0ou zDvH|gOhHEnvvCPl?0M^Kg42hZX-B+0Roy!l4vefKuhiSz`u26$*#8lQ-scu)=G=`s zi*u?_LdD8x?dUgeq|$ZkC@6)VdPJOf_UV}H|M=z7el&G=H>Pr;G5~WBqa^z$pL7u0= z=6uJRl1T5x$Kj7aL4FNZj`~6mR#Vf#&7B>FoME7l5Ik?<=o{U%n^a{gQ3W)q^@_%b zT5<$p?L??`wUl>72@z0=K9_uFO@y7Nq8>*h9$KXjhuicx)2j6mh3RD0>^UH-1nd{2 zp^0uU?Hkx~REaSrqv!)}E~P}{)Yy_oM9t`FHhmt%Up|~GtZLgx$~3zK#W_)AQd(Y$ zS>+|$Zhi4T=whV7gt8!?s|ufC=PfOP!XuPLVT0ni$kK~@+cf+@3RwiTZd^yStkn1z zj?E8cO};4CyH9~8M_B9I=d#y%N;g$w8nV)Yi;qA0Ii*OiDq)Dtu-<_-g5Y%G(`;`P zd!B|aL_oqrdbq=5v9HEdcx2n!v8>)h%zmB=Zfz|~sl*zI)#EFbTJDt_wy`$0QC^_M zJ2AH~koWrVA%FxLh{A%(8p_j9u#2|RPxb+Jzv9950gvMo$)Hpsn)AwbEg?L3*^80}T_x5hdixii>S8grY%Z%~_e37nfr#Fyi|2sNol*`H<#?qx^d8A~s7n6y@&h?yZEfTt zRTHs`C$p4nc1Coc$Zn=K2v|k*Au=sou$|5?L9yy;d~8ycEr%`Lwihd6MknYbP5+VP zk|NzgAP>4`*GB-FS${P?=c3Wpp+d#C`z{S0XQbyD|c4l?q*WLaADrzc~ zQk|(H_M{eUuKg4h7AI5kem7@Yt~+Zj`e7JoH7iLfXP!0cjXDWyPPG)Pxw4RqL&8cJvcT~x#0>{Rjua{QxR&y`up+CbL8Awk!g1FG5ij_$+H`B8H7vi+NMtm%bvx2Uf zM>d^1;YhIEH*LI__SY!TGC%$%w6)Q>xrUfz_z_YYt&dUNbx4bUe4MO)?z;}5&u@Q` zjidGWUe7%WX06$;K6DSe-k*u`U4~5SW^mT}|Maeu>(gI~xNJR2Gd65?;4zMyQ{$bB zdB+g8Ts1Lb?&Op}?SDbM*S_HZ5Jz%Oqc_io*KAd+5byKlIbc=X{lTNpz4ke)Hr{@o zm^!Q~og4j%B>;hNn@#mq%r$+-eCZ>!u_GD*BAwj}s*_De&F;6g?|81mQ6bCO!%$q( z7&U*o*x$H#CN9&ugn>MU23YTJ7T2{>_BW#O9LMYmrMUb0uQ{sEUAVQ58%>?13 z5&!l5%{{|+Z(PFisS0Yzc}sSbUKKUQ#%V-1zh1(V^u1A_Y4+j*lYE}u!U_#cn{wZK zvvM+xi~qw9d6f3EJa{2s63JaJ8tISbYLN%tH4CYoCy-LMcQejoB_nTEqc;|S(!$Y6 zL~ubJ+e##(fvotR-_3(6Jt40*vY;V+kpD2&1Z?b3F#dyuNV4e$Fw$}5#clj1dc9Qe zVJzOqVGU=eeLDS@2CBT%fVjbn*loCj!}39Qi0?+0El0WY3(V+djZEd*_$8f@c7cL`LaDo!l5Izb(wpn zlr8P0i4uPzYOU8ru<-N9igE_RUcJYFr35v$gP-VqSGYyYAxH}oK1S28F&vC0<$~MT zFyS&=T5S-@YjLJ;ZEl*MhsSeR@u$@9LH~{c7Q{(B11hV7X;++z*k-!c`lr zd;y@m>(w$O=}nF*ObFdb(qO^v0qBMDA*WOp}N zXycRkMFZpb^xjcy53MB7R)c2g@_<+>XV?$kZE!RSk2k^5_!b+2$bT-`dTr)jwrp?6 ztRXl0@G$b5?l^|N9dBF1Z7|A1dYx$+n!@~;6+3vga1>avIKm!}Z*kiSJCroKJ+CW} z!@$7E$jU10=me+F1#KOrl7P&DLv@`S+B_Mz__|d z`C6j+{PyZ`@o-0Hrye~~CO1+jW*KVL$GE^eKWv;95D`)5%?2O09lO>TggE;K%LW62 zo`Fz_ecl-5Eu8pwYqDS!MlKcH`<}eQ?dZ64hdj6coIGbF?%A-FmsPqHTNih2yJO6L zz_uCXYDJfM-M9XqVg-~4oa`UCT& z)#QcSS?ZoK zA1E=%S(Y1o7k!P0DrEd<;WdV9Mak}?&B(e#?MGr8H2w#%j{L&n8a`I+oH~IFI0`h2 z{l`~FTqWbpSBlF4t5;W@*3XDGxAZQi+dA#(OOVefa`Y<=3K|~RDoLB=m$hdP*YH*n zl6NWQaKl`AV%&jP+0zgXfIY2gLqh{lm_L|U9auKbX)+C2eB-w>*Gv%D6o;?>(omta zE=g^gFbgjVcXuI(-He2jGm2Y)iop-r`SQ9-z`i{q< zUT(x*TL^W)6~v)!ukE6%zwNQ@+4~4-S=Ll&lO76Y!>e;IJenR3D8&*hk)WXE*|_q; z2;_9W@AegNHP`99P?GL4+?Ve3Epy|Q%e>JSJ2djw2R6K~zuDkRwk7-QwI*Zkzln&T z^Um<|$t|`uf@Twdd9SAGlz;5?$$TaVSCx1ck}KL$PC``Cjq90ezBmY-%BvqTU+1=f4NBJ)j(|9&k$Ei{G^-B#=)htKNWjWMvhXjrHC6(41HlW%tU4W!#GA zhhb;5lYr`TatKw|vuQ_1r(tVpGT`wMM6)o|!f{@NX=Q#GBUDmM(@`k>Y89!8Mo-_Q zL(->wlQ!|DYO#TXY=l25GF1|V9s}3LePE~8D()ihvEw6t0`SgeTU1KU#CDF;)bnrF z;?zc!o*$PLlOOr)@z;ik61xS(($mlyLtKN6C@VX+&s;{km|q@?x+-6V(j<>hptT@v z1lax?tNJ>;VIvs0bQ8-ziXpwjf|nJ)AKfp{AF+n4_77)B#Lavcm{{%#B=8HmHg#z~ zm2>HM`XcH9J-NL8-S+L@g12eNfI3a-o~!toDd64R4rTQ8DRN-`%^jy7M6rIYWDiV* z5vR(D&dq;%J&#HG^^pB#iY0{TB(;9_T)$M$eRJK#MqO~aDs%4Ge(&|mnU0&6OO&mI zf?4J;`*P2_+r#tNFiom9n2*cjk@|nrW<^j;@%m!l%iCwoOKR<)fM|e-3T8>E!?xYl zfcC^CvX_HejAl_m+!xZSF|V+MFj6;Omugm-S1)R&jeQwj5RMam)uN}B zg^>)~ZRZ?lBf)FN5@MLwiTFC#L(6t+-}1v`So!&85fpGVoa-@iIiB529(#)fBg-k88|C(oL}-?XOKub8C9@t{9({SA(+PyJN`jWQko_{59bE~ zf2GRz<{SaK{8jnTXWZ3}KyErI#;?n_V`?+OOV$E>f^Y2!cw)smzT2_Rg*B}sQ6`V` zFZ4dsMki5}Rn{ZX^J^09_*2nTq@hPjU2e+KB^*Cp1U{S8e_Sy=Htl|bhD=TU#bC~L znogmr?qokO39fYVYnsm}aWMHFUDv-|AOAm>OyI_-YDtdhrg z%&4c;mUzlI!-~^)E1vPOF_eUa1i;GLF4tn<5uUH)Qs$sa>)o#xrQ}2Aw2aR$-A2Z9Tat?KvwNOR8UjAb9lm6P)#!NJ2 zZ2W<1 z{^0L6)0JdMj(_fXqW8M2EvYY!Xm1xa+=AhoJ&2Ac>e-Z)!@59p^f6kvJX)FD4PLf< z?FTmEPZ^=(kF6WhzUtU3ApAan+%F5{4sg@FfyXScsy0Yr+|6@b^m+8ll4d=tbRL)+cwYKrs|l;FJhl31+Z%M=RW0<>l}m8z0sXY?mdQurjwC^K z`kis}e3|&jXZml+G!?QpsK5Un)t3}=7u8oLf1wKc8hSTn>j$@e29J*`#>aa$!)hbK{`c1`;L{-eWaZoM=03jq|!cm~8q2?=leP2Y)A1t(vH|&XzVT|WXMzeRL zG`;IOJexgfHP9o~ct=#B_v!`HC^M}0!&F1_v7LIUFyMmNI!WX~dk?I0Lys7nY&>-8 z(-AVdgO9%J0|{G?RIQt5mSu9$$8{p9YAYUj^~5<*_9Zc5w+pU`FuI=@+>teY$9}9u z#~;ouZ_^8_zM{J)9&Zm7SDC6f6D}X(_YJsnL9c$K}g&gFI`AwFL1+ZaFhEc8n`e@z01-7Cvs z(e$56#`?tLUcB;HR7K^*F>##Tkq=H(HGE2rbfsUzQ8?(+8rppwJzrsOc#Aw=VYi%q zo3L_1U$ARRYpZ-M)qD|EIbJzj3Ci=un=1>579qjwv5>&DlLWL5Z1 zC)SEhl`X5~Q=q(~wU<}hf*xG&KY6+~O{R`CkE&;5WAxaLvBjqb?-err$%QiVpgAKAYM+M-Wag33E(5N7&<>)I z5_?aiqa}$yaC>UQdM||aYK{xM<_?2~Gn+NPWN1D=`B8z%cH{(Vd z{sl~XU>(JhQ7xZ`@)-QZZ>f~{;`F*ZsrP2Gw$f8<58v(TEa{BqHv0RbNA;8A(r zh+xkxzd#)*j2)D{x~kz|N-0ND{a}&h_e)0cI9W>LRSsr#lrf@#vlh0Fn0tFdFB9T+5W9v2*;i5~=ejD07Zy!~A+G1$5JWUEjqRZ;xb;3qcn4`Sax zreqYOgWf?PXumgw8zs8W&advy>B8;++>;7ao?_g@I7``t^ogK11KF3$L!osQ z?U#Q#>2v+qrhjoMtO^xyRO-{dms|OS)HnB*a(Kb|Tm-Xuck%zD?!y=4w<8KgsJfBA zZ2Ailth;FmjqFo6NPRYZ^(puG6|0O0O_XkxX|6>fRa-(>r50gXSy|;JX?zDBJ~Nxw z$CET68NeJ9%L%p-Q?KF2Y^P}S^o&nX?>dXbPqa1PMv;+u{CC9(5FQa$JPGjj5^a03 zM#I=B;i`0=bfqZZI9IBL1X!MKBUijg8Ut9apDl$qM+*8J+DJ79wuQK{KsR00b`RUg ztVD-nq9?&$mtSd5)_epJc$$bp<2-Gvtqx>rkGmm zNs>R*79LigvnnLoX7_*SvBOhJB-; zTcMWRcVE0}jrvi`^JYv0pD~@)`M#(AyW54YUVrKXyeM(9|@coxMH% zHzeRmW3je#bOoHvXdMA$1En9*=JELIwxrd2c!BMAyAsaVv4=dUMyp0ID$Y$EZkyer ztii+Wt%tV)bw180@S)oV0|V5$_e&PoqUyP{Wtn(MU1Y{FW-n%ojg*>~vMNyJHImps zqj}78L&=fBqL)1#dEUf0)i9LN<_N|C8aE9i+Q^YN0}At<7L4Pd?=cS;MoMW79WG2u z1=UGl2h75aGqhiwNaljACvvPAvN*KW~+63z&d)jaH(QN{6ExjrK z?52VbdEaaAj^S1-(KYqAbig#08~ZNSW&aMFMA|ZDm_P?{!Hf-UoHH-WvMcnVZ$@x0 zLpm#1f000Af1~SK$OiS}CI;$|NSJ-|`~%rBUx+X=315u_<3F2< zcw@r@Q88*M2@}Kpe(8)xNR9k?Gh~66oc5KaY261}`ax`XsPF3|=#7vNL#kpCcL|6y zb=qc*zs3)m(2jx_qJ=h&@?pr}neMulXtlQ01|}UF3B%2r)#1MVz!+{k`W1THGeVLQ z!;qXN+H<_a&+H^}PTd*!z0q~cMHEuknvj+TZ~@l-a5S)=1@XxVWm8kj8N%#=f|Wj- zj2r+;-_QcSvBfn^9WXPKe!}8;-?^H89;r9eO(4f!tq9m$nazY18dL9%%Tvh-z2x{R z*6LZJkI5V$&}}xejls@D3N3QPq4n@WE-!NWn@8VO~NbWtM@$1>i5~+@mJSS z=CzVEyW($3MWxpD_N*}j-<-7RAMca6z4jC+R5fgm8MPF{s}>{G%WJ?PH6*r8S-nES zSUra@v>Z7W)=(TdO;=;b>Z*^gdgFlG$+TA0^^sTwMT#eH=cyB3)Y^y`QOyyEqnF2m zdXHBxvH@n(<@#ymW8fK{_{QXS_XSmna)Wm%<2H8iKSSquBs6*dxaH1vt{*Wade1-b z^h~OdthNw_8?+6ZzOZm^ksV-u*>hK^USO@jmfB$M{qe7&v+joHNmCB20|hedE(U^* zx<@YB#>v=$knxGP63IkkwpwfbPczH8xZBP%|1PNSlj#tfayu+u8etZw_29Ows;kry z*6Tx8X)xN{g$gOlO>yh=529op6`3+DpS9K9H(H0(lnxsqKncz&HCj*FQ2FoC%E?8aD7^JxTNBMP_K@b5nf{a89tTj3WM3*-eDUe+R^f@@!uHBOTtn2cVl7@qIC-FtxH(N zVEt{yF^wqkju9jurv;A-M9h5k&|*M*-A%my=TpmjZ&w53x46$j&%x_oT0h_xnQ}+o z<`bvba{rPE4#ai)6Z~{5Z2_`%`^%KB>j*`t=Rdx?e%KrJ^1a5HK%x9d!m241iA6ua zQb4B5Jy6(OlMW9#F>8aj7@vF`_jbnb)=T=zk)^WKZ`8@XWaK<lfff z-wrCPtURg^cc|3ao8pD+f&)(v#+mb96!`iBp=_pu)HNb)x?~13mKSHO)Ik!M?Qb_P z4_%ADsdzN{rCe>ZKi{|p{o&et`B{%le<=0S^3SCj;*Q;_j>8et%`C2g zc62ni+Ub1N+zjZCE7N!0OUswCN{jUxu5rTK!!PlhpN$pV`DY$v*EJWM224>@#D3)W zLZrn%zxVm4W2bzhX#|xAnLw@W>@qQrq3-L^Fc!jz79}o1BQ`4n+G3PqdXFp&@FAkR zE+`8Ayw*$gh$KSS;}#RZrxjQ;vaHIb$)IS1ckURgFAzp4MdV|w%9P4v#u8F)z~*A- z?9y@%3mpZ}sqV99!7?_duS@Ie1HsoDGV+0ItvSX%T`(EW5M>}kza&ZMZQ+S2B;UGK@l5IY@0laWileBaetLJBW9VZycWh=><{rD* z0~&ct{s`A;M+OK;%cLKy0mtV@Gb zlh-|pgYF-TO_N@52G1ab5fkk8&h`gs964jcikr9JB?>`Rv$M-~aZ1hNt`vAsF^yba zYJRbn&k)n%A|vxrXAVnZE;2rFzWGnMyXkq0ge9!O1vv5b^ZN)q4g;qg-wl6}MF&X% zOLTn_lO&Ws7DVXPbIq~fZ9CVV&kx#33||);6C&XLe}kNu;X!L_en*pLL)Y-Y%qG}; zvlFS=Q)dzaZuamHde?44MrP3NBGz7}=hFKroICz3RZ;mZUQr0`4}b5`dfD=pD>Y-@ zWITzPwFsJuEhqv+SE*3m2t3lk>^aj^`HJPcpl9D#zvIfYfA*1)=R7SK8ykzfm9mt9 zv6D5nZvtdaI1OEfBTcfxx5<5!D&3sXcFqLV1ktl?8PTiXgF@0jyL?H1ozk!yDR$QUk3Nm^W|7v&XM!4ZvJO; zCKRnUgmrm=jdkfdfC#n>LfbcEDj>Whx%BM(4^pIgy>`O zs)Ibb#V;fCajO)uz-y14M9QwmU^uL7<9=?DhkdDb=YH#kXzSrY;$Z^Pv2^eX*iAD* zmlfa>);~6WhAE5}kBOmsdeOcHfK1kpB++|hWEFbV-pfl4ywc0iva|trQID1NmX)k5 zsDDT}$ddQSDRC;)!}uMbdR#2v*VQgsj@d>=LVmwrtd3oKdtGaA>bp@4UhH@4Sblc2 zv;(k_uhMM$Y`$CG%r5{so3GV7+0D6m?OcokiagqCWFv>z)$b-tRoLEcxJT-gpEfL5 zYH$l#OXz+2dq?eYANue$HHW-n;_IvQ&+5Tf3%P-tSWL_#IJK?j688h&gqg~gw&?Ac zZ3>V4o+yYT(L++CNoFNJOeD)7lZbnLcC*Oc5`n+#xk=}O`FeA|7X!o*CJzcp&NSlM z?3oFEgXp!GjwOuT=fQ{J$75XqU-bRdesIakC*ovbG1F1$zVMv7*~tA;aA!`CPgc1$ ztS)GuJwA;s9s|44;>3um=Q%_ivFW=4yW%TY;v#rIi|*M72yJQ0WseC~l%Efm(Bn({c&-c&&+{>@7zT8d3A$HlgX2jYSvf*C}$KQCX_0NQBSB96xk zV$;}rCxPMDqfR0hxj*5lzT$HMY%s=%mH7m$Scni!t*vX{RFnW#f2F~jJxT0>1s~tC zL>my70p}_9qO`ME0Fx_(vIEfVQ-u1U8Nep)v(j}xi^&rWxaa8o$3q16dZ7p{)~Y!p zu6uqpv*ONq9JmU6WJ_)BLhb2fmD-~pm6>%OA*rXl&XlJi+rr=M&UpRTcr{svacci(6Pj;2l zE|>UuYuAJNrovW#HwKl^*yHu)q$RfaSgQI7@NHSBb3tL@T!6oG^^r75^`dEDO>=rI={YwaE{Y?%1auq|HnDy5XV8cOTbdKKpY9pWK2Vr3UYC z_9ppU?TdZ?8~=WEN$_<=wmj1p7X~7mS>^wj@DzdYB%sED_=#~r9Ner@=g$yXDI0Lg zb#hWlNJ{E%Eu_7!jfB&uTh)I#12~Pur$yuq5*g3hm^FA?0*LAMDLUH52Eo|zLB!4E zi$y&FdoK`wDXg!|ia^HpKuk*@7j!q~s953;xI1I7xWlqsh<5^Bm*NqddAv{L8oS|y zh8&8R_g&@|e>OoVHN&HD_Q*U`4sHD}7xmBM0^uc{oe{5!@hP@8`mtSZSc#n^(!-uY zmTI=X&XdVg*WlX5k4QxT|G?m-Se4eruhe@x)l$EHe_PMZTVlY5EMI7Lz^p7$em$ii z#Qh0jNX$(1DVLhqoAQfN{TS?4bOrR?S%lMKv^3*lSFkIr=hYYgf190c2x38Zn0lzv zb78~})84SM1DmE_=iCWzN2Q=EKbyY}^%F*0lnzYYFl^nFb2ZxEvp(##bRM1lDIn4F zgB+VpuJ8Hfebp8*y{uE4T8cBaRbsol78_=N+Djs3C1~4T(LcMH$pc~wbjcNs&$&hu zgr0;ciur(6mEn|^4;0xaSx?uB(P4{Pist^YdoK{FeiOdZz9Nx74GC^*?JRft19v=M z1-3k%%9C{u-SB&zh|e@X{w_B-BUtfMQ&m)E=2ur$EG=JgaBu*OLm3nEkw{Rab9wH_ z*qG&&Fgf|r-@mb_%vfbDs%!ND7LB)bl;9KK?LhMzh99TtX>z zw`66h;jcX`rc8Q7z8m)smk8>IyI-Q44YAs~jJ}8n+nohb6`_nu?vYSH>7lcqGtOWR z?Fo8KEiW^9;tLFl(jeM-?A!#z+dM08!Pob7yZ*h;N~S)CVxa51=WS#tXwckDf?U9r zDNA997&Avrn2Blz_oe)2JkI;8zp!HJAi+ZkxKc;}WY7vvd|V~=y8B3#BE;cZ6MTP^ ztP$)tvJBd|4!%0wisRHVZ1fT1Q2e4wF4*9^C5|_~7k(Fwe|Y86T@F@Zs?@1w&}L;z zM{5URaoIptpyrqRh+EO==>%Zr+yaz6+`-<(KMB6rb+_9L$U~*e4A!3`Bu4YjqEEAy zB$UBjzPD^ZuyEX_5%|M_EnBhzH!m-syG3f8o&TW zixvrgG3-br5oX)A-w%kJ8SIcT<=POc|Na)k&Xyi}O!@5(RNxE?hk)<($?rqpDawA6 z`8{C^E%^f^KRrE&@QvgQc(O`L8>29AkcwpnDFSvi%f3XTR9ovbhwDvTWu)3SaB%$l zVLaN9eykuUprx6zGR}I@$SW!=66f>jgth!^2QjnrXDgKP`C%n=yL0P_bGnA|hhguk z$2en)9gD?B3g}MEDD`1N=)W&rS0}EAOY*+O)gLd8A0Ka~iO{SXgpG`i zE8ilugA%0+ap1mv@eR0w35$R6F)H310JBYR>8{p(K})(#dy z+P21{S9A65bgY0yT5QCTI$olo1Z(32KyoiH@ArIspWkO6e77N6?d(%tZK<;^G_SkR zSWKB|A>wTRw?e=lucqQQ-TQ z*rMFx5i!!DJM;6KQUXXamiP~6X3q)C@Q$RTEW>D9rmRE&F`!ejiHZM`LQ9vXQL{aX zc4C;cuPWSOisZ=sE3}3^*pshUJ8WPg&Axc zY=$P7nN2prek%;&%Fyk2!qh{is<+PMjP&cw5#!9s7x=)wVtxf_r*7X9 zVPj|KWCg9wll^q5Tb>)h27C++c$k{C7&9h|nm^eDWb0Pz?f7%b-y!>3KsiOBg~gp2 zULTYbP%PY>IN!ZS$q1v55PfbyUuk(HV8VF#w|Y!^B0_OorrpbeqaP?%E@1Ov%K=|n zV=~@YWR*27_Mtz{Z0a%a>Ss@N-e9q|sJO}Yt-k3>oN;75zD{*WI}UgAgL3SIeAClu3V9n{Sv;X*y4Z z$d+7&UH{VX(J+pocp1`8e%$+o@dXPGJMUrMIRh#rp5j%vy1|W!W)Q;+v5W=IKmjEo z6|5xgwr6e`#e8M6bG(_3J-VkWuBUL=rohq6Vxx0wi1bOq6;KSlDtdT+V0AOId=1UB4u@uGM@Nz5jn?SH z_Q+3P^A!M?8PbB^@?MxfMlbgJccN7z;~G$SJ%wv0#$15sj=zv*A0x4e>@dF0;RJ}d zIw`=^LW5{r*ZNu3Q{R@zZFDCl6vU5vQQSoHI}+Lw-q^=!P2*betGJ{{HH5;`*HF{ ziQ3vk)pb{nH>BfrYWPcyyzmvp3IdD{ib8fgLIG+Q7~W$?Tl*3Q`>G~I`P z-FOHlZ@Z$;-wt;TPOmn-mQ(BA6^>6*`IeuvGbc|~+*zEH^nBdgV87-b^gvH-`Foc3 zMF{*FJjvX9L+FE@FdKUIf-=u!58Yb)-%@LV)#u~(b4`(svjY@tXqNthp-?#buj=36 z{B2w4Rv)_Qqfz$Sn(*;_T-(V~j)vAwd&pyMg*)7l7_FEvge?q%em)BWz#>#Ws1hiO zLgY*^F@-z7HEJPYB*Mh&Ky1DNwY;@WMos+fz(j=GYs*wx#m3a*T50%ilG^4j0N=xv z5^!ct2j(irSa80Rfbv2ElbpPq-(Ej5&PyYa5ALbw1Ch%zjup7&q@@l_w)y{*?%aG zV5L%JqWN(#bVISm)$#fGv@P#3>2yHxHn+_Zxp9^I17G4XNkCu+3xSOIMPlzkHvBpB zmoTyWllK;Ft3N-i?{l;rXqTuz?X{+EAv>BTKhDRm3Kjz>_)$LHKO0gl3o+)Dl8wAy zW=$XBBwiw5`JoB-TemLYP*`)<10}rBao<4>`93p?!nTEbGH&z6M!wlkx_i6EZAnacOydyoiRp)Hf#|(1X5M@k}r839$$01AC`Fl9ch+ zKHJmtHpMJJ$Z~MQTcQy9z(eStw?$jBpq>g4^@AJLWjT`Xw$fDy? zvO-y<4jWMEq*Q8QBH;uCFPD}CuHakhByRz74#@ixU01;3yyI81+ki)$gxDnL{m~T> zh{ENewzT!G2YFx$&gf|Zf+mGg9e4Sg1|i&opINN6pop_b8F+Sc&{Jdn0r}Pw6?smB z0{s~`1yzomAfLy?K5^qoI3)&TkCZ&0CjHECZDDxOS7J=rCl?~I6^y*rbE(UDw{(b; zqrX6`mj%Y0!^bUR`KF8VG69uNmgLg_3iFZ~JqGOofl#uXELn+^LPS>15XR}Coz&eQ zUyb1Lt@9{kIsZ|1vw3!6NobG zXK?-AarEk9NqwUkfupuDDbG_ROr_Z}kkUe=#X{h2k^z9!udx8H*rEAiL}TJqQYrlR z?=_2hK;u2EJ3Z=+9Rkf8)?QXk<_k7x8D`V`Kg42+wTUa)g-hg7?;1&x?Ylxu51Dg z5-aBi{$hr{PyABi$+QhiH9@t>%NubZ*aa>JuR<HnUDwqS95hzoQEG?G~Ayu`Of%YY1(vY(XzCEEsB^yw_3r`<>Xj8H%uB5OS2+9SuHUxQ=LDVvvo(j{x2Q!GvF329==O9 zcymUQBwC+g(wR^9L+>oI5J6K+M z%&yqp$*F|o@Q?KJdp(HqH zd%DL^S974T$AUH~4Gn@A-}m@TgYgQ;P?J(p7X$l3wOfE=G0;*05j1q`GlOA1q@)zP z^N1PC+YxUR2y6+U(*OO6T%^QDU=1cFcX)SH!-U$vgzta6>Uw*1W6RZpgF^9N(F7fPtr-H`8$f*cJPH*)+z6d!`If}?J4IbX5hwli zr;h~_Z?(T?7D=b^bTdrx)}U%WD-VT@E+Uwv0Mueia?pLe!9h{epTW5R4BkA^C+}9;&E(( z-dgqpwq%@!Za<6?mZ4J6w70ni@AG^;3H@;pkC-Xe;vB^@m50aGK~~7QSEYLl-X)LQ za8L@N)!eBvDU&Eo?BgjpdbGcjMhSOti#lv)*p2f&`Oj?uh>OV;W0}OO8LYQokjG2# z^jn*OjOOahIw;JcIdTpyo&kf6g)~`(fs~5uWkG#mjEZ)u7-^)O$jhio{gKl7CY#3G z(787%QD}xW7me@`;ul;y+Vln}+T@H0rO9G~-$NRB59qEGT;5^whaz_Cu;y8oTt&dg zb)AXip+3CbHLB)+IelvQ6X6YIHCfmXM{76h5+O0f5?9>hwOuLQOhqi!V=PiQZL)-6 zY+;>{4@Q7ayzTf#R?HxaWF${wDOHy)do)%xM-oLU_SOC` z&E*C5*<4*v((}!YyusXB0^WdW=I-UFDo4$F;OGgE-s+_3t;IYrK;?j3xAQ+0UN&*WDl{LCstEe zom*a3VM_vV@S{pawdIy9 z!kku(WL)g6VB$`yw#k6B%xnk#Sx0cdCgRsWNS+^i<>f8{{8-_S5PF{4Cu2#w5OurW zXhJ!-&Lo}Ap7H59t5?4$4SmM04cgVzG8UMvqX(hth!r)&u_3*Q;6$}jEM|MF%U>Z` zR6HASrV*Y(Qu(eTy`j}lzbyr=@GoZR-`_R!B&5V}I(uUNsYH!)UcT_Wb2Q`5SA|4~|Z#&15>qYbF3m{s~93Qpb&At?oKF z-(y9MI9lpkT#0CCh~vpzIQjoMNU?MUz(BB{+Rx0&Euziot_oa1v-Pt|+u1?N&dC|G zY1}(JVEKX+V}%A)ZU}ugJ+LVQAc;LAl6Nl(@hLrG%T|6S1cWgRHUbt3<#Z_-9Wq&(RlqpBW{$SSU zkybq3h@tahfQi9qCn6P!xs3|bA7g*{d@89I7UOB?x_`j1=1RC;mw>^{x}x(0pT6p{ z>*Gb!Dk<8OF|PzXxcj;HQaJot&Q3H@UGWK-pK{MD7QNQgb~>Bff^7$|x^$g>7|=>~ z(q<xo@yo*pGjhT_@@J~!2+nIl5R^WB!l+26nT&m!B+?S#*E;9% zoDW>%h5=$C?ql^gElfHfG8CDAR_EgAIOs6ifOgZPPM0-=03Bbl6CPanc)J3R zMc%lE@v(`eEfNZbXZknqYW;@CAD%3-(Gh{*z3;~%R?iY|g_qI88@FHAa2Qq~`4y79 zbYJxSbUy|jyE;tXc|Rlks8j3Lj}Ye0lmCKiG8wpXIcC}Qi2a=RzX1VX3Q{WV0e z5{*T~5u?A4woThw+Cz9}J3SZyM+iBPIv{?jjA$v}Pqc=^*r{mDHD=RC<*JOdbC*e72 z+6d-g1ge05oWQDjQF@UMCofPiG;nR_WGCep)4>ym!#UFS89j0I_ck{%*qf>Qc!>s- zk#FYvDt-Q4jLvRGmumMG`IqeG@LV?vm3MKVY6@tYa)M>LmbVJQc~JgJ3~IhzQ*%Uf7mMg(!D>M{d5QdDaS4)3Xq z*iU=*nLK(5oLA5iC4xoL9Z+}3(vs!(kI~aTL8G+!5d0`w@F8s}LrO!f;Ws5l#gQ4h zSh|Vyi4V|o1wX|g!7w;e2>anP?|+wAGCGot&W!Dw3ZtME?@DxkzZ9@budIw|Uom{q zNy?vIR9FbqU4;N`A!GXaCfdIDfN1+W%ylq+ZZBF;UYr2w+OMHF0*x?I z2Xj42>N;2r;}E{7+AUziYH<2SXzbOv`60Z`n@I6^I7+AfQ1ASDDT3TSgQUu@vT*KC zMHIe~vJS;WoPv}y-2aDeUGsoDO*U1(7)*G50ekCiiut#Tvm}ysG5wE~t_1eF0QcZZ z8E4Zjq7f)Pt!>DJ>ysa4@WW@biz_A8j(`jVBL6wQyVJMvhp#ZP>C?N{8kK3zXj-p? z4Ne2sd0PWFogiX)YTC6rPVF<924N$#C{;Rai+*wOrW~bS9L%Orc`$JVAkok(&*No6 z9NyOa8wZlkDk`d4Y-{H-kp-Z4t8UdsrS!xF7r)bC|Sdcuj{et4>3Xt)yrf%bHfJU*x;DMDIn+-9S+ z-S7QM6@~5{o-U&U{edcr!kT8x5*sJ0cw3W8X^*3KpGa0M_3salEGwJsTgo@47WzVT zZa7~9ah3R_M7L2c7rImxw+H)j_lv8AOmJ>J6==AQ|LS-1cAq(8f3aPEG!gBew zq>u$v^a&GCy(zv|3t_jmw|+yT%W+-%W-`2~To^AsQrP|tO`i04CB5np_QBNSw`~1p zz~4(4Q*&ODzJUIsTyX^2xEERgWZQA;Mttrs#)x+&Repi*qY)Ufn=vfrl!Fgtqx3$z zn3Qbk&CjRDo#8q>l}52Dv2!`z0~BHZY}hM4Umv$qM#$U0DQJ{%pT;%aLvPMEddU?a zPW)(EOiav6#ssCxJO5pO&J~rn7_UFMT?|0H|9=VHD7s|BS5^#pj{cPbH>O`=++6m~ z+$VqwX>BcT9zg^FA;QeeT%gke;2-ZUo_T zbIsTxbNo;KJ|>=yj~6nHG^Cn2rlH?23hB9Vr5#`UWR=XK$wy2;2He+H1UcJb(bUP) z{NZ!)@mQYc2(XN@CwjU=DcH>THF+dAioCXCXiT}kn}MX?&TsUvM+v**zvkEYNsWl7 zd!VxtroJ}Qu(>~_qF(&(C6Y2xq`O?v?iM>~Q9^g$n?*KhgU!II770rB?}jyckY7GN zewqn2oJs}ELHS-hQk9_9J?4i+EhSM%%n%MxTVCxpCtA`qfP(nric8{Wmzv*Bwv3?XqlhO457u3-6Q$v zEahhh=M@$nXJvMR?KN`k_07KKoLyR+NHBZUFM=hO`#Y2KF2q*+HCGzY`}HaUOA^_A zhXX@1SvJbOxy$suzL3%q!m}oQBdII_vok^NlZMyUmRD?d<_wL@&3lk8gDWj?JhhW!k1fry2zb5C;(T zFt;Bn4Y(*fme9u!V;<>^5HWJ*RHmH|>)s2~FZ{-3DU4<&u|*PJKnH&ju@6n~HScPP zg_^l(aX$P(`*Jk?entc?y4q>PGBv$>FD`SBeKrOT_UbxKA`!qL6_dVOHErCYxB5_!(|7p_#wGUpGe4X+;UG>g}b+O0rJ| zLMKcKtfvvi-vU2#uSVZ11ip)@HwH`nFoY!A_nSyOqAEGY19VaLc09so8!f}3-AS-o zoFlE)aC+sLEeQ+3F?V~99zW;x?%3)YzcZ79OjgM4X%P#SMNb$i3K*drDc(&1>=X zC9)yzSge#j#s{4W?x9Frx`r+<`Wj;25=>}mtj0uu^$yBNRrI(FjPFpsy$yZSO^)2P zvmhfQZ+0Lifi`_kJeJ;4p+@8LuX%^X;l5g2I|s>DyxEr6S{PbadQ}T}hX3uVexv8L zsg3+-g&rI5R;dp_$hA;}ihie z{ON#rt0r;ibZ~JSAZxi_X-OGuiSU73q73w%niJE3wKL&Am*cFRf1?(0i-zJ(H@=AT zq7qA2;uRB1NSXU%1w7$8a!NpJilpO58JSnWqKpQG^#Gk9_TzjOUrc08yrV5u`08@{ zN10+vkk^%up7Tohap!vQf@=KbwXta+MFVtEZI^d4;LM*>BvDdC;GX#F^5s;9|FLCS zqWK4j$qxQ%!|o6R}mU8ef zYoay1VKg#!$8y$}BL52)Ep~3+WV+O&Y0!zT-Tz0uJXyHWx#BmkNK$yN&8jAhPysJr z8kh{4lCMd*HwjOiy!*Bz!p2qC`mz4b>+(#PsPatPo~q-Jsy3*9v4n@T1?`bj61;Xm=9oBT`+|l&StoDgwD=kww zp2T9qFK!xE#j~+U2`)x1VLJLAya9d-?%L|NOaxqK+0+d_uJMEO6raE*;Clw&*P5B# z?(h7ll;IWeho~T&l2dx7xcF{k-h1@JCvC7y0hX;BGxyLK8(Jno#KUD7L5z~ToI<1d zytpp3kYb$Mr&}fPQMpkfjDFAk^SegL>J2X?6;(wVg6!8gMMm{2bgr}-tpq4p*;rP7 z4%_^gqW3iPGF>5*t*39qa3LtMdhobniFdcPaYrf2Q)yhSp49b#VLF1vkWrvp93-E8 zXu%{86GWPkRmf&1@*BW}n`UQavJi^^SgsKnb0+3QxlWqUBRY z&biIaVH`FT5jui*$sy`N$T*>i^tv3w4zlZb(lbrtJ0))5FnwN@l4(oIVWW@Rc>$f9K%4dFT!yb*uM@2(lagp! zy%%FPduTjIc4u1%BllbEAn79dY}gQJLgB*1h6VuTRVMlGe6OtR`0UtdA*&fcto~3H zH*#beX?8=ibF|iP!TRzV9cfvxz}WWr;e0o=M#t-+b5msEB(+>L`g)dm(QbJhyZ46g z{?b1OzxL^yPyWi(UpE`4ohgvK95hBqx@6LrDe!M-K*R zFiwzq3|IlE5_sf;sgva5)5+sXFEv_G8A!pjaJ?Z_p*2vmJw~h|ZDp{x3xSJB%mOti_y&oRmmG6XCEZ zwo=&J-*Y-)${e~Hl|4FZ(j(U4=Hof5G>->1(?&}ZOd#%<-%gQ)K4ye6QmZH2fC2X# zU7F`K43(p&ZM4GsYInISa^5d&dX*qZ)~i^IZV>?@)cxC4_4MeoIaVXkp2&{RS(xeIfmbw}O6o0~WPMJ& zuoiWl94h=13@eEcMMvH!jT-uwyvDVT!~7`V@z0wvGadS;-sQC7ORqOUe%vG)4m66=p?($*xY^lEpfbv@Wn)cu z?ad1h#G)cJ?Z)=s@giOLM90hsM10r3fkKLpWxnl$Qhyqjd={k0B)~J@lN6Xbw|m)- zc#of(BuL=@2S*376)Zx{lkoqUuQJ1r|309>M9&R35Gh>|Nsr~k1CFd@eSAfpB`#$) z3X?o$s5PAZ;CDUr4PjEwJoAJICCa*Q`27)Pt=FF?!C`HHECdxQ;xOY|wvlhkfMQ`x z2vu+J)h_{&ZA0L0GIgl6F*_0=@Wc!+_%8d!gsmV^RC?vEL%PWL0^KZ+^=n79bC2L7!Ivlw>IxIeFyP z=Ox-BNk*SSzSt0_qi8e3VKy$MG~H|}+Z3x?5;Aip9-e$L5}=Y8eK<=ICY&it+wUT;gY?9e;(V@%VBTY0BNzAVm!g|I3oo?htPKAGjd`v( zjU6e>^UTM=JsyuRO?CVX7+X^+v006kqq%6|xyP~gfa{()fFB%VyPEEO0u6?J8uXKJ zZ18qO*vvQUw4w|T&tTZ|ddl7a2$lH5F9h-V#h2F+py##56)zGq}p>8V+7TPB%B{z$iiSX+?` zxjB?+gK)E^5Ju@$jF@Tps6$)e??<+8?U_+MAzjaWm*!$V_z9DkPALp*6(B@*b_a{t z^E=upKM|9z$FFr3o9GHxz$k$W5b0ud;eD)4xZ>;5#F?v1=iXXKgL~x2PZ*p_)-JS&d{mGdDhLcIOZ9-xd7rnz4z(X;xQuO?du>JS?>MT`a?>s9-6@Awf{9+(#2?2xLrG62eqrC@2Guw%Tq?D!DC)GK17V_AdLPhNzObRr#M@W_ zf)ia`TC4Z)>Q{Lsc=pq*WZSc87G4#>VRTz*8X1!XG|Z~n@)c<9nm%lo<*+}1BJ&`P zUS}13?P(N+wi~ucjo@uqbwS&S(Y_hC26g0((E2ogx5uSfnWP+Al1A#&^8=yb4WP^V zD`T)dn%A8I-`G~$cgHYOpuRq$2pOnze$HzAqKD{mIBl96&ORC^V+4X4uc@M3Qni4fQC* zNzYtzRY0iEcB2D&&d&t8baflP+#3sZ{O^loKXMt-F`){LQ_B@av7$4izvz8oTA<}F z-%+0^cMMOO57umm8Y!h$Ara-SR1ui^q@aOsUBA^z<>22jiSFWJ%XRr_x@YHaTWbtO z@6ec+USn=s82W>a4Fa5=1j?6)o&qJL%jKBM4k!5&G#HYCIUEQ$bSbK_&7ijAZiU+J zvzqm8k@C(EB5M(bP>HZcqlgIOuq_vH3bT{AmU|X6tv*lj&dWw%3pR@0ZU|kJ608~G zS1Blp?3Ku+7!@cN-Oxq{J*YXXS!--GMCu8l-^$uqwJDM%qvQnlyzLR;2jVR`UPxav zp$CT5H+IG1+@h-+u;asgmP%3pvFAm{tNcBGLpmln7w}i#w^6^cIecq{HWB(-!47Pr zyt)I@nT`4ncBNt6b( z+vRXt`PSTcN4>5p4PfQySBd-GCn-9VSGpCxG#M2#2QUwWAdG1XPw1y@ZH_B1Is5VM zqcAG=B&prqw5aKgqZLN2GRP=L=2R2H5KRScV)(5!ZW9SzwMluX;GTyyeFExTWS*ZI z5>64Pt1A>&sI8rg$%*8$5{ELB(bW8K+OTaMkoKJ^)298q zgq|=gLM5TlxEz9OAZo(sXV;<|PU6opc9EO#%LE)2DuhWx7TaPKt=1nURI7S6Ya*<~ z8>w8YKK3O;%Zaje{T(`V81q0d0>mQxGZ8d-G&Dy4@ikxu z&8DTt)|lW{_8TVjQ9FxuX&^ne;y!7m?ttoeq;((?6kU8dd#D-hFHs6as~;_&s+ryD zL+-E;g1)B;hoKHQN$%ri<`T3pfF^Qbtg9J5ThD7S(@p;g;Baf-ovual_V&U3hD!!d zMgSI~mE*|l6G6w4`PsBzCvm-(*-}(GqNzY{JYF^Djsruug%fv0NEwsVzD#P*5vM9B zH>M_rb;~{%6Dy%&veEhj4|B%M1``z;bvRQCt|}4+^X^Hw_(S!$J>i+tL_dgQz>yqu z&F@Y_R+v#sXC|rQg0xMJb4(;09%R=rj6Y?w;4Y)YaUJjaOx2`pNnDV}l`Tl$4hwxG)+2CDN2r2Qu}2sk+yss~XxZ zr?!V#iKG?Gh1Y$^=KKHmdq%RM05EKtAN)>*Q==!1X*`lfRihOy2`x`!HVTZY%qYi0 z7h?-cM#y_>|br+Q04!M%FJvBVbtY5I_s-ZAg#+WG^IAv_6(s0|JBV4>hZtg zTa`w?#?n#oQJ_Uy|2kkekHMN>3r7$ekMb+n#QD0Ri50F!PY>g-SncZwCs(}>vb1?}Jt?lrC6bm)gq3l~7Bo2JgWjkfZW}(|hNg^FKc&3pYP%YILZJ znJ5bJgbRo1_tlpiYg|G#reD$MD+CC*pBT+8zjs~$lB4`P`e5Rr{^{b0e~#k1k@M=R zO5#Z^wes%k?;keb=CI#a>$*Wag90y8pT{Uzy0+v32HyO9oE)!{XtMBGK_y>EZH307 zZlr6fc^jj;Wh@abqZFBu*DZhGZQ_i#t@U_hG%D!IV8Glg+%Mr*J{FcXb&p1kvYgAl z@X(OqWo3Jw01U|{3*>6v_4vfaR5qBO%#;I#sJ~$)@Y(K{zLcO23?89CMBDO+&`l8a z2PCA&G~VBcPGoT3dE75+S{)aNy5dDy#5Ac3X78@_jgS^;GM_pKtCwp-C@uEyVPV9- zEYN1Mn*E|5DG`4t1%9cDBo}vUV`MQ_4VMgSAcdW~plA>f&eu(Wwa}FT}N(10|HhG~QG< zInr&<)fB)OkKQxm*Sa1)dFX_vZTC@E#=4+Gj_QLN-Q4hthe?bNht+I` zb)XHo{oG)K27>dH+?vnCl-myhJuK^O@wBkkB98T;Rck^LknbMwgYRH#b{k_#Mrc&Y zg$|Y(tvx3ttp{p z@I%DsVTJ7J9Y@h=XZdY~cD(AG2moTe;cY(sO+U6h1xyzOwA=5H4Ii+M z`{Lc(<)M}xMCD*|GE;vJ2&4D{E!al?XzSV&R+!1rb)Q^lRfrtb1z%gn=#P#CHd zL6RscchiJms&ryO$n(>Q1%Iwh;Yr0SwD3|ODm#-Bq7$?eei8?ZRhfJ~nsw=oCvL>! z_RjR>zSrA&liBf+MWoga*#7-6jbkWIOttD`4P}QNVQzgGQua}OP!wKdxz+r`3aF4T z2IXpt&*Qol@USiAy}x$IaFJ9&5~h6^JmVTjxs_$g2Urk!wsB;UIR{Bg1_n-P* zy|74mY9Zm zi|1RC?Y$D|3NcRR4Phfyo0GMpI|=aPuOmB${&T zI6>v}n&5cPv-s7=!`>I_JL|sp>!bAnFbFy=9c--jPO>WSj$lH% zLxUEehNNfh*(;`In3?(e3%X}eCC<+X$pY(}194UpR(p{M7nqdG29l2VV0c!@br!_7 zTCfw(hoL&O|2=TxzJ=IoaeK?~s4hHyyS@^j+zD^((EezrlO5A$rcy`VAeRE_54FqS zi?p4BYUy$XLO!`pb6k$K)@L@#@!(u2SeB5dD>KY*Ma1JM0 zsBdF-du=T3&*2>7z2>WHrm~Zp@-t$iVHqA3ikD@a2K~16)Y&bx!8>GT`-!3@*NIzc z2^Pb@VCcSaX6NXw+a1Eot|7?lf)a|H=iq}l;(jKDpDRuUXX5w+rS*5*mtwk0m*R&@ z{`B`E;0gcR+k-C9(4>#$Ymhnroi3(R+d!7llqtL>PHq<~jbcQ|?170h zLAg9Mm@=y~y+^+mc1_Y|_(Gb^mDX8$-Jx+h-2VI^%)LEhUSEIGeVC907R}2GA`j70 zzgz1IF*uy--9o`?v<{`6LNUees{=}e3uffb@+ThxhlZ95^NbOx0|W*WIYLo~`-q0@ z8a$69JWi_pC}}mu1f6I%a*Tr+W*M>|{t)cb<6-gWv6)sXi`?aww=P6PQm8_E z|0?K}4IAtHnvFOoo-Nf*eZ{1#q#hkXS;8PVy4jZLLlXHQrE#b@D17({W*YFF!M55S zZWX+$J};8NoUJ^OlZk*`rhCsw&p=4u%^O>P^~nUoPN~C$WkPAGk$di zySeDKT+w*9p}iApPB@yah@t%F7AiU-0LIEl|eLyimXY z<{q9mCly4I@te{P1n=mZ!6ltgN3G#=&5NwC6g89x1*j-lbfTNEuq*6yy91LF?Z&4q z8Is$aO(`ccYOA>!2b^x`<>*8zG`Es$98B#SMzWfr2)r+}F8+<%oo(LOa+7FPHs%GW z$A_FgJqiV0`n1(Xkokq)qSiVz_Ol_}@;YeTbA89wNsGVWM(Vj#xe5uvi940lof*D? z(w&j$=&8w{FFyexf~WV9%Q8$7LMBDJBm5mG;mwzP zu+LR#!d!jeF<0f9$X#Bbap`o;VDNu43yX2NE-I}oPOTWG)bNQFGMrjV$4~^t!b_K} zdb;ncmhgPA>Zs*OfbrWt=K6-@~gzk0{|tVseROvhojJP`80H|l5b4=uaZPNV>bk7IH{z>^MAs}M=_ zNL$(gODKW0m`NT9LYMzTgDYlhvzG#+PL7xPw+nsM3^8$Nlzb!uTFw~kY^Bj%R8fk` z-5>`#g?P~>D0xBF-M8Gbrpt^DQ^;Y`%)aJL?ne2lc_=%geHxfBHU4&xWO z-~SD5a#g_Bo_0L;^zQB{=3g58x5}PB)*jBy&!cn2-(;Mwz#;DuiK9S!k++h~U?Y`!+= zNek(myA-jIh$Yh%X?K|GROz^@`%F;h#Bo?LDe&=}b6A*vbUYr2Zn&$I^!P2-F>D@M zPcd>e4}JdS-=f1W6vNG;*1Cl20;6ywLM>(3L^**_KKIdSvA;T8Pf@c=!L|ek76+jB zU-7_%63%0)&ipZL#ue$|wy<>AcI;xF@DjtgTk;&SaPLKd4Hd zWWZCEmh;F4GjT*Cm^hsT+e&N*+lXN|r8Zq#$VNM2!yjWavzlbgmL2P`MjB9WKf!d} zW(YjovI>?}WJ1Ms{H#SwE8j2$e`obdiV-~QNpd#{$~Jg{!l?@t8A$YdmMky$eF zjLSTwG}YaBp%;djXP!iZ<`7P9d|&lQS_)&lw>uSZmGX-vkp6Yj-o zLUO4;Xremqg$H;?ddD5Fe(;Y+BLnmOBRYa{=R4+8Bn184tpPBJLtAa0!p^>)u|(dG z&i4HQ{#(C%O2!9cReXtNW-APADc~)VWfP_mO=0Z7Nlj*tOaYNOv=rF6N-SrOxsEA+ zit4HYMpovr-#dy}<3Aq5qHt{g4ne$4JI2SU&x}1)IzQe09rRx|%^r9I;<69geoGI&DZoz-J$N3_g(e82r?&-2yR66-E|P z*DcVc!b=%{M2~mno<8A%(?Cm!CXd>wty>E}?E{jn+TSqie${2(w7Um^=FksKsq#?* z$@&tHry4e8f|9@7m#iEAuwD5T*Xi)i&2!nC9*4hJ^gDD4Hs(Cz;q~Iu*^MdOdk4wY zjM$)lG}9OZ3%%|vJXNuUwXRVzueR8_Mu}1!y{wvx&~0HYNM+q+4xL|Q$V@AE|Hmu` zf}^is;lrjx{;Hwjpn35rusgwQQrWXDH=fe?bj^!X%1b|%6Ozkwi(HzD$jtpsE_iuTx?Ozi*sN`4Y8ffs9iP0gC%>|Tt<~-Ow}W7m8Ezfy{)Li+ z@9|tc1|WwxZDT^N*IazAL-*RL&XhBcR=mk_r&evJo3U|zs?w5_q#7x&6d!kVKXS)U zelPuycN*SvxtZ!0zK*hf>G9tlUv`&x>Z9sY2}g6Op}pO~=!9{=u7&~)EkqL5Ny{Vb zl>0&snPV(9MHPb+YF9S*H;<0EY{zceo^+Wx{A*(%T&OJcVZPtWL_YH9`1$nD7S*35 zE#&@aKL)OT%q3@~`ice=**K(Kho$kl*OBLC*B83-GNPfBe~Q}MYFUdDO+sb;Z8R1e8=q+y z35*PH#DkTW<3W1J0I5_jVP(hIT~OJZA?o*BG<&g0^Tpf97{R}xfSX-9=-OQtX6Kyr z^}q16RS;G#)~UTExLq<4j@5DCOUFCj=tq&+u`YavhNH1+$>LIGiQb*=(w7Fp<}w+x ziJ&*jQ^xHKxS``Ew&;nfpMSaDR!^%+32%LdBe{s&S(>9PtLQlOPGe$;snuwYG__Rol|Y}w6ObEE3h5r>-rqWN*u4d=$qYu2$3vA@ zN@9klr%IGZG1$vk&N|2EJW>td6f0JwThz0dM}OMA=CSX}re75>Nq+B(5xMR0p9n{Mx`i&D^A4oE(`|3YedT3;-9nMiFuDHWVZG*tx$+qA=JGvzAkyC}is#4MYjm{- zM^{S!o}Q*u=@J*uu(g*?3v!(G=S_BOcygkUsAI#?dZpuIQ;VUBd+*kL znyz|i#CXa5?65vJz7YwD_NyEO&(oP#-lAQTC-E$)r&9t%ba40)&oi1o(4(i~#1Q|| zd+kKQu-eIIVJ$2u!gcQvy`XiGNjfY3h* z%^czL_84oH{*L)p#fyrary#zIyo6J1N8WVu=(epn85#^}%M$K3_p;=%rQJe>thDb^ zvkKqF z&on;S+aX7#=~hWAH7DFsuaa}|&og*`75M3~>s|_`x^c>ga}5@ykYw8x0Xsoz53%2_ z6dns?)OXizIFC$xm;gNZX_;F`3GaBe?NXx7ea^CVg?#&p+`-F;YY(N~0IHzk2)kkY z`M_Ccejc&$`QkZ-4Bum3E|(0X|BmmakE69o`bdYp54rbR;$!44dA>5em1gN1J*eF! zpfR7TR)l~9^iU|1QMUjD$MQb!u?{Ik?son_Q;kM1B~_MAA}{Fe&F@3V$j=Ak$l!tNtl?;ss88OUEZT5tp?=SX8d-%x3o%ZGGekxNdRWYp0 zMmJQH2E7y}m!!-EvfUT{$Sqr^YDMGVn%)bKC*&Qyd|7mGS*S9YO6JKQO5gHC;_I%dY7JL7BlCf=Z^$`unU$VoIm*p&3;0#k^9R{ zklXzr>lAjI#yD2|%0UB7T28$7Y5EVG`Q~d%=|jDL{rFbeIR*j+@1}$|zkY#WNoz#j z#-tbTXo_{WpZYjOdUPoCWm!eLU#z8DmrXg~nt+A3&LMk6KKOC|2?Y*iHR)i)? z9GG&L7*3nvd8JGv|FZA=W%EH`!;;OvM!Nz<92IjDe4~pO$E^(@-o@dBFlZ_lzTw4X zQ3$*8Hc2+DlHylL^3IqQv;b45ZwFm;b>{Q9WlqO(5SRCJ4`P+}_34@$|4j6F!83>d1TNSjjw-a z&De1!ZC+-f6o)k>9=B3>Fp&QC0e_k|*+<}A?AwYP&y6!f^)gbGdQq65O_UVAd+}En zpD*JZ1^qxHWf%_3*oH%&2%aR#;0d3{DbYnbGUyExZiqbfhVDsl)r;PTmm+X7egCLE z#o<>43wka@I5OzYB9FqwBiv4dtdH+4fq3#g{}_+Om6)Z??IEyJHKG@JiL-4>Ml6pp z`|nT%!0SkAv~VautQ4@O;+TPGbNH}NySuwjvV1NlOo;Qfoeh~$9OO;} z*fAyFJ8C5`#NOStuKg^hKMOqezn?u^1)mcM+*SCFnAbCjrIuGbwYO_L3)R!ybWult zY#%~hJ?GeWjv`lT(zc5pR@T-i`&yK9)wlH-W+WlOaT%CI>vh9}5tf|5xq%}HEN?7S zpM5~MD>Ci{`@{}C`z~68}r?Gw~}<&5si;k)Z~%c+8;h? zN&a)OsPv4zu@pEyj{rN$q@T?Re?BK9(+GzzFb6Pkxd-}xFAQ+}+HJFliXj8t6NdgA z_G#Zb?D&`_Z~YE2c^CbU4SOjS6%Ib$LDRVfQ=1j~Ig@CC*M613VE_6IGY5xsgXZW& zF{0ugT$;H!)p3gl{~(qP?7y}kgXvvw~hO3L&d6;Lk&}eSdxo$of z{xz-F-k)D$*etHE?*UcQEfW+CR}?ASaD@y71(lDgtl4DLV{7aAyt?_e&fncj)k06! z;W3~oVma8+F9Zn1`DseJC{@U>{RGa7sh+TO8mQ-$bOak0TE_8@Er&Dc7qD>1j!sW^ zm)ASJ{ss}gTpgD={TJT22y^&%ZGJ|PK3y3DGZ&8!9GbmWP!nL$VS5jK%bUJiM3&Ry zL>BPWkkH^`9G*xffveja?p-tT{=D(P()1qKomLV@SAt>i@`noKyv4O~L)SZbz>tl@ z&0(t0N?lN)Z3}wlg>A9lT`SlnSbrq|CnT`2vx<}bX$p%NY1WE?u20md!l@t&wc4)2 z;)fMLN%g_)UYgniH^_ z-pO4@9JLiyPOW5Nv$^5I2V_1^qDB?;+lPDSI*wbAGq_ZHc{RPkaE89psx;||!2Z;@_QY}hhB}uy`Enr%!=|MMLyip2+ z%1eD4bkSI1ypJ0zczU>*7Q-MT5zwP0SHF>$hZ_5owY%b7HEX$tL|G!+S=O@q4a~f+ z90h7wJLYJgHXl3o7^!!E<-R{#8J;Zg)R>?IcQM7-YuFlTZ6rO9Q=AXG(9#rUl`uftk`6P0&`ou=5ZECnqZ1DITu;mi)&KyWklInKd zNS%4^?9&q=jfQlw3Z8!UU=k3JXfKPf(`iwL`&76jjUshSyq@x}GTTT^n=(Dcc*MAC zo}0r&10XK|cT9{JF}yff5paCtWjo+9%8~Yorqba*K9MV?052WEaof7w#c?K*haVqv zF?O6t?`Y@pb$Tel@#06RTqP#o%XG{?tcCtm)7h&Lc=)ER{W~XjKZ+2UiJ2vs2xD&9 z%e^4+iGIx~hb^nFq_s8S`kE$s_|s3j0128TauO-D3G3Z2JD}2a`$p@9KAwsFabE%n z8ubM|)M7nmi047+vv=+xZzShqX7D^derv)5E(9Vg^;B`lp> z>WA{2eQQOQyz97d!-wDDci9|&|ClJ$Umjbuol!ts))~GZZq#jv7pWJ`t;YNrp^YrH z;uR+i1&9eBXKsMtJpqWG6AjV7#)PZBAgD=sm`Z2uNtL8 z*qNBhsF9iNRz3f|=kIQ;_Kfdq7!0>#8w|9}%bOSuQl8XM#sEGBy9u&Xrgw?X`&~ZxCP%Lhck-b|e^SvbCmBXFC zF}avyCNG!g=GiRaxaYU2O{KE*Vl83uIudYq0Rn;uB!F6mg;c@hr+(cowr+|v5VP(9 z9TcEyhUYP{lx8OS{wUx-Hz1-uFEL=0BEzt!2J?vp%RmMB?f7p&J=fqK$?xQIaU)EKr06uPO&5 zBpq9i{(1ApvN?-@$32DWn^#8n%$c#dHGC19U$hO(8;NZk{-Z5whtBm9XaV9UyJAIg6@`1~c? zji9VZX3pszsd;XUqbn3O4S8CyLG{zUC86E?g%bfo5^ai(8vd^(LV+e;LfuAfm%>k^NlMMMDa z@~q{RM!;Y2%g9QzE&r}9u(Su#SQU03_+KnufT-dA+aU}aScn!X{8wS~UCC#!&>Bi0 zX7gZ8rfz5Hnk*E7^~~!5B7ni4l54>21*p7+r=qj1D`!I0PVgP7q`DV#Pw1&eXHvl)?z=sbAg2EBy zw{E=4lm1A;IA~%*eg_-yeyvb{Q5fU-SU`B2A_JXDOZ4(ID$!%pU?8;B4*uDL{?D5G-|kbk9fAhj z(rn`dm0#!g=5iL`u5htOwKHv|y($AKfT1dB<}{Msh%r0yV?NKR*YfCIQ1yy63c|wzV!KhAlD~o!_5Mbp*W6C4}KWed6g*M)zLz) zs)a(JYvOjg2walHlQen7P@qkDP}4A!nFRzAPFEJp!EQaujH%z0q*24w6YsLufr4-1 z&w8YTlONh|+pucA)*$Vo>%5VHv*h^GU9XSQ6rOpl#SMEMwS>*76971@NU3ZE5~H*f zjz@zwj`L6B?w7~Iw{M-7`uc!G`u}b^^9*&{d38E!=^DL%vGm`vh>WMUh?NR6GIRG| z5Eu=wsvDQDuS787ihub-De%AH7|pB z5YlNDP-x>6*E;mEPEUrKRt5dWuU#xO-GUX1nf=*L&Uj zma?wEE6+>~baVzqz@A5W4)r$`RP8V0RZPlEzKNTc=U(4Um{cd@%iQRFyMzOMB{bP8W}iT{^jcG zwWH+~jLRmpH9tS!=;Ckw7fFD6!#G`={?qt_AJFw$u-<;=7ecA8uNN#)HuATRcdxR; zcgf5k-a|EXeD&_R|8B6iCiDGp=d{+y*dI19;bk5CxJ~58D&Ic2XFTOxWHUH41pRz} zKA8TgOc`(%JdR$ze)|E>H^**|t@XgY@8`iXvV^prl$a#@eR#311)JCz4KerEthQ|s z8O#W^?~IYR_kV71j(jKByAe`}hjR;i^U|9gy#SkVtVwX#+$ZJY`e`#C!h2z2!p!)T zu$n2i`-3CA>}7ok6pY9fySMAQ_pJFD{&a@J9PrB|BKkaf%CmR-wp%M{)2mMH_s6b- zuMXSOt37@1PcglQJ4FFwW)OpkJSz94n?5Ioo3Ar*jY0 zYhz=FcI5&^>fe@Z^myYBv(g2HRuF-)`I*qrG}HW%n_bH;QG0DYVY^;G<97z3ym7x z7)=7p&j=J6g*==nO?(A#D(D%fSI^l?1mOmlntb1B%^UOw4RJKP@6)?}N~VxM z!Q2fSPOyAurg>j(?WhnfNDgJM(ztZty-XNjB9}t*-IV!4!@0Hn$sX3h5P?@M{thK>5oE5L*!1ut^_Z}K}_&BlycqrWvbN01F*33m_j^A4!!TQkXLF*&k0t~ z^`CF#lti=S+$2g^RwXH z_<(BlG)({&k%sUuI-UEmNMI1kHBO&e#OM64y|4ai`iuWpT0mMrNy(8C0;5Ff5+tNU zxOU^OCpCr4gUC4l_jSstN!LtF$nc#3^Cz4%H{m~OzKLDkeE*0tl#H} z^0=BJH)5rV-OFuu)MaN-x1DplAN5G@K=lz}6gX0J^WO}RnQG><#9I|=MqWvgdt?#Q zLyWP67Urz+yNlFeQI?!utNY_+v|qSkS(ZM~)cW837FuO~=CtBbX#49AkSh{yuZ}>x z&U)VqQq{7PDKZNZSh-!%$8FK$Tw1ZnJxX>>T=#xc?cJA^9!DtVNE)U=AE{laxWS^Z z#v1ui9{Bs6L{!zlS!&^$K$v=vqSiV2&WgGyZB%*WiO;*5LT{J z*(#^3)G?JmYafXG|9C_l|8$c(=J({$3I^Kt_XERSVo=y~u(G1L92r;P*zXi`Aox4?UdU1W zH0EDMt*Zg&IirM{wzsP#j=!Y$Yuwc0ByZb+UTx0Zx`lT5G} zt6~mHeC|2QlWC7RXctSQGDsKa_zolb3`c{)FoVU4*@w3x{yrvIM>LW=%Kx!{xz6Jp z*AMWQV&4U6B(=LK$8 zn?)%G#jTQdDdMDm|M41oP98_5ZUs2@^8CK--N@S6-RTqn>lJGMAPINs{rSFb3SfbJ zK$lJ13#Dh!uqzRYO@Ux#+COZ~c6)MnHC{{!IgoEa7-x@;cA(zuo4jZ^%dmp!Eh+YUxzFzG0qo|knf z(exO`lo>15afg`=+0obL{HP4W4?&5T$FSieRo|-}|4UMzw4K{Wp;-x;eQs_7I=i~o zqT~y&biftc&HzSOeVVi;b)$SwdE}hudb-qS)D?v+7Er?!xbvr z9l|stw@YVA$RnruRU2HMnF0wgi)VX9-P7_qnK^mKb!sniRvwB|<^J*}Nf$d-?K6H* z=9-QdsJ2ARqhkj3awQgLMSflwE)5(79IYIo`iJf+JE^26#reA74}SwUDawuR6H(OS zKEM7B!eCJT7qH4l3T%(*c?;^CRTjF;J`y~`!G%h^gBe+W?!!?|5g>b4 zzPL3R7+2j|KP+l;w9Bl;WkjdSZYzRArsgV|Y0ETN;GdWVk9#YCyM2ORU?Iq`9LQ)kMee8}RkT`1`-O3FXm zyrtW2*F>>KyHRZ0fV=_uCE)8On0svOIJN14yE`9bXXjG-Aqf4;Ua+VJTV2f?1TT6GC{_bYgyDYA?AAseW`@>U}}r4Ey# zH&U@4l2u*jJ|^dXvqT?iN3WKtq~NBvT?`uyF5ZHrrl0A981iFfs2is$h0m5SZWO}# z<=vO`cS(e0s=f?AbzE+bZ0qu%Dc7yu`PkH%ditt0RJu&Da?#QZl4?Wm6NB)-79^aH zSp4Zs7paNIaZDEx!LZtcy_-!ABsbk-%Jj(`tu&iqYS4CkdsK}OsiCd5LAI0)R%t{g-?$4`mO%>Rr1l^%8LfQ+D>z(TYVJx+B^@ zKK6nvkLnPboM~k|bC-P=U2(g)0n?q;<5>W4U-Df+jAm5JKF1Hqj`ppTrqBB+^Ph_0 znL?Nq`$smndm51CJ5R`)))2Z2Da8sQ=w=PjoTgc!d$JE6a}}Ek;Mhvu_0RFovm*3n zM^Xbo*ww(=Ee~(oZ?PA#lRIrM0zRWX3W8g z=CibSq*WdJsB1hbmu55ul%k2NG~*G~j=}k(=8)n2=S0Ajh#7%4>$5{H{xrkX)JvTk zSk$*aJ>@R>Q8C|jU~O_&rytB8cPHIX+ym zuYUdrT=yzvA3QdaN$l4tP^2yyjPO1}+;O}3&m)c(_OJ-*PQOSOdo~qL+4BL&H-!R4 zG%Fii;VQ)R7CStScG%Ry&o=#};P-CF`5~O)H>*fjRNBK(90`RHTZzIx8ohaTbg933 zdG6)9wP@qLHBs%3)a~pqC_2BwnIqB!wd{vGmWCe`ch9Nqd}goez~`7!3g#iDRnc-x zHB%v)vOq5e3W&SIfFx z$`ta+1kbWkM7Zyw7<3Ghz4Od~_ zY;17R&9RxQnx;F#z}ucRRuF|-?FYE4Ejv#zWA|CG*R1^+u?}ZSw$sjlEl?syx2aZR z9E7t7s|=fd=z-cBX7&2_`g>Dcsoy|Cbvtj_0uGF&`ugDVcEW#z&nPox2LLN!fqtbJ zov78G+1oRQK-V12ZpjKU{k|$8#OT0F zg-*;cOmb=%n**Lzyl5*R$dA#x9ZplV3lmuxYN0ZcMJ%0-@lKqc(OqceRo7Ub+50I7 zh>8tb012a)Eh}Y2D^Dz%UCfDBy+wfBKGRFI)cR1(%b0x(4i1&BShaZhpDu{U!nvN5 zx*b~vhga9ez=32RPmH@;8qW{m>s4NJT#)|(PnY)YX3S&{mkG$rmF7(O!!!N#+r|qW z_GJNiB|7)Ma%VH6=YOL2<+>N3E{QDZ6e4-!?r??hFINtM=>QcpV&H1g<;K6>(8>8B z4dFIV)ioriYuuAEzc#j*mJJ^}VCl0UPv*jQZazC}|JMNEOr8D`CzE#)9uFZB_Y0e$ z8qxL-kATzq%LJ87Z+28L$|KczC>stvDc)UN^XxIj-cmWqSg@4Oo_~y%=ra126xy<= zUuYfcgjC;ckh&A*?c8uv6F)Ml4>d-hw}+r`P>Nr0Fv72GnE7J4ub{&>gPOtcuhEL> zgW*KLz38qM8eK5!{JX?LcqLX*)#jLUihB$J9F(edf8Q_^H-6If5VWnIj$#B==^LeY z@j5phU9oNTzQPC2A-R?D0d3YX?^vI_`|w3hTs7gN*gKAQK&$$0u#(VmX{3JvEYG#U z@-7Q2rT7t)#W-;aVg}=v8eOC^9V<6^5PNg##UQ@#koyfEumw@n9!nyY?Emk*gEkbs zNE`(pO>-^yoQodlMty%)3;87E;sZyVVglOS|7wrIVOLy^xmnSPs)R=Mt*aQC?9v$nCeou|@kvzC0-b}v@d zdG7-ZnR0Na$>3ng<)563cxuCqX6VLHkUy>8xjvLu>@6*1FRitpcI8u^%k}|PwmZGc zW%be4iOmHgUw=(7iyAzmEIz#U24CKe4L(?QPW01ml#=Lh4G}K=@K`!MKYseq?=MApT`!pi~`gZzAJ@D zok8pbbMfxpj#l-G8vgv?Kw>x0NbqXIrm8bsWI|1_K9E8E&0i96dY|+hbxCZ^+JHVb z0A>7?%I*7gpiaCKQL_mLUCYf85luVl0T!rPO~vqtc45=rl(a)jaXbUFtd=s@x1Y~u z=l@QpbtFggwq+}uG8FJj+${%$!xf%?KVMhr8R~gS^rk7Iz(V2s_$!aqIK?!(*0z5f zZPAPgNq;e64!^UI>}@fwQjxi3N^2%F~XvR`W$i_3J{u_71;q- zBI#P%2YSsYPo=@ZQ>LdVpqPm`tzHHn9*GfY%?Pq6U$83CSdoolyD&nzOEc%5m~pX0 zS|m?%+>6!x$*7TMe-atRlg_O1+Fs~3U$#cOaMl)(Qc6b|>4?a*i%t*IttcKuI#%F? z6YL%GB?eq(WdJa1iXMct!lG9`jrh{A1Ul}z1b)>mD^&h$Vnfw%)x3) z61$f~KQsdJ*>;US*p1j>zOt^>U4F4roG^m;z-FcU(b4_D#Y~g+QyJzy#r;X(%h6Se z>8|O+$tK}b;@=>-vV&a>Bd+m(Tj2PgPAI$O>&7Pcft2}LbhaQ#XJ4+(h5P!j%`rw= zA$vjR5ObX5$bAPw;7x5k$A0k^dCs0wATP;zGhR8@tI(_&5gRK7b#>zDlk}X7e3uo* zhCvKaPA`<4W;ms{_<6dpSVuha$f`|_S|Q$Tk9B0Y2KNnynJfqYf1Qb!cTE5J9pv8h zt~Ty^3tK^%ovLreoK~rCgDu_cqpre4`7&ARHIQ?@jhoJiF};hzn;zNmiZo|dt!PVq z!|d!Y0?3sKYGZMM_jZDKj{Q?F%m@Pt-cqXfL6U6f1C#%I&z9qgq6(v%FGsjUH*ce< zU$`#>Zc$gUw_KK_x%Q2k4%5WZ{~nH@-wC=ovf7Ho1kF(`bEV)x=8aM*yGcy8;ImULdOlBmbLa{i0pT?$km}Q5#~V* z!BhRk_*qoOM(lPbmu`7WQPYd3g*t!}m7?R;M0}*!@Z>k8s1y;~BK`DoL2X55LBWn8FW#MFalv6)8Y# z@5cn~#>SBiL-q7cg#3-9HX94MfO{HOEB6@Bq_T$3^RzE)FBs`Yv+eh@r$w7x|0arJ z!trvZO$#*G9$Osa2Pn7Mrsw8YlAli5&nj5ge-x+{JA0TgNyDn9_#@eKgvkpXkLOawYW3y7p2K8`KEO3c6 zziVIZUv$RJhB#b~O5O2c`ggP+j=Su((zsa8oX^-5dE3v^A0k_l?pMjM*DRb1C;a0i zdOIcCp3@x4x-6zZkO8?)w^r%iH@>9=VG66qb)%xG%UbwK;*K*&q>4+R)R{a1$$`}8 zuXR<;gPNX^{|a;V{Kh|)g~~Rd&-3RlO}Z~HvB-;xDDbhx!zL+Thmy!@WPzR#r&{vw zGJoM;0+1ot29?KytWv#3edajb^ydU63hJjz>!Q4ZGwu>!;3Aii1h4Yx8qvYZKe8%4 zM{ZIY3nW2wc+4> z>6qb*+K|E&PW(RMz6c@#zdgnazpGQnl>kbBMMX+wHUj!6LsIIAdvXy*&gJ7vS1J6C-y5jKS77Fjo98k>H)es!3h+fk}m zvub*+jdLY|O54Y0;q;%D(dme;J|~J#iTO)AOKo}b6dWX1^I_|F)kZ@jRG0JdImWA4 z=@+)I4WEoGqm(bOtEFDC|0jFt?EVEP3te1N_7|_Z9GaG-9Hv)nreTo{D4dp4RFmuC z`}rE{Q%YbN^2z6WIKJW>DcKjRsh2f*Cm{4@q;IVm*~zdr;F&{fXi}-e(@?LZrI)~& zGX$&KTV908W=(908ya$U5ZgrD-|}a4ZBl-78a5)kCCw-nZRb3Hn4$Qaq8vvu&^a2uT_7lyA;l62%EiQv%{sc z*S>kHEQTkmdFFOC^ead>V`+m*hCn~E0xvST-wT# ziof%dt)`6|e7^SGoV)*P@vlHOhMjEoQ4=ahl({3j!emLgo!dC?Lurt$PIBVWF@>WC3h9=N~^yLseFqM zrIi>O)T06T9y>i5Go=kBv*x-v6V3dx=!s_gyYN_}FS89sZfMVJ z?~?&VOfl#;3#9h1eFr_8rm48G{g2XQ?ET7GRjKLEY0Mt9+7{|ic2L@dHPPgSZR(@~ zFD&DRh7PL)@#?PqXvR=sd5=!oai!&{yD<~{5vfldi zcI;+VrD!EzR4Pw+L3{O^7J$~UY@26P-;Gj%j}HLt*yDE}`Y!+pwt6YwV{(hWK(fpG zn=UQO<&%N}s@wDjLSVuLT&3uC{luk~DbV|5X^XeK-jxHHTMS&P;8~ievU((k-?J*| z3q}Fy$Tz-g3T1kqtnD)aNOuNeffvOK8qj^%CRp~paZ=;Ygv$TLcRMycPjNS)V7 zArAVnlq&d&`&0CJvW!&|7lKvH+i-bV51Ka}mIHTl>a)gg{jGh`=U=85qY{L96h1vO zC{F7PgH?d_=Z*2&fO6RQnwd{2nB5p3X0F`hglG7E361xXwS2Au8=ffD3hnFhzX78U z1ieR*4_umJV`CF!3Z&Bd>D5QL{boZ@-$S$cBy~nuu^#t^FTKg1y)fxW$bvP*dSlxG zcW&89O%HSpak9O>z`lPRNJ={#I;@eM6M0 zDe@8LlxPxX@hAFsoO=0!j?s4phVXd<&%M&qpSC(s5~B!-kdn9vP;rmE z6T5$Q&$Kha{-hSi<`uoXgFz+a+DqRX1%?74;B;Z;8IXm>zz7{$agVQ0fym~8ry@Tg zeLhCN^Ha=S&4LmNENGY8;%a`sWLc-eFWW1OLwWx{)vTqX~unldMCp4AIJe*;Mmyen0&`4RXGh@aBqqND=g&>uf_%tUg06md1P zyHGv={6Nx}d1PGYx*6@0!TR3~B=UMfo7*8)PN$mglTX0;$)*BPS0J*n@}X|gHl8{Q z$HB>=-IGRS+W9rWIkNUJV+m}ZhkaoRwF*zEa(Hf1)DM}QK?_(A25?fxm%Fh&foWza z53obY3PFQ-ZJ!bfwfQjW`O0R@pAZPG>uD-DaZjuW^t}i@=4)o0xi((hS*>A?NT;Lw zPb>+2-bNb&k>56u9&x-)r$RBC6}ansR6d5%8B75A|GPNT1OiPk;sB71a)(Nb=z5|gJNZ0#-J8B)z&k1o!{h^_n&vm|On_K4 zWmLg0?jW=+aOy9GkQSIsq+kpi^rS8PInaB%EOmBq=Fic0(6!(M*dkH;NAzC}=KJRX za^O0bqadj#5*K4a759zOIkXX9*rP4JN zj+$YsiRH0tyFVo$IJmq$fI+1;Q6CM-&*?Qz<#|Fo2@1+3EMLPQwNg5H8D#_3kkTtwE(2 z)IyG10N>8HAVyy=-D>>$eZHlb4b`W7fYtlcx>6DB^qogD&P`7+7&wgUh3l7ILRAmcJPN+@hl2=} zl9`+pbZExUxE-}^QHtOz)GjnPn$v*nDYN7A4?mKx4odHXdYnpK&r{O)1O9IGzRc%^K_H(L@GDZM9FM;NQ#UDNqk+^rY&MRW(w7vEJhVyHo$)MQ` zk4Jb#r@28#H=t*N;&sP}0rL~M&kspijemvML)o^Ywa>j4x6}OLah|kFv<__Sr2xAP zV9x?l*M}2;B^juVr(6j^{&9nCma-)2YvNmQtJtw!e=w}jaQQ_{V}U~p-yhf0r{y@2 zc*WXwEM5z@L+^XPfqE!vo72e{K3Q{XQKblj(3Vi3`HE-lx4*X?Y&_;3rmhVEJ0d@TPIC z3E?u(Fg#RAATE~F^c5Hw@)+?Azq1sq+G>_*3qK_!yw!ne29$1I+A>DUB!Z>&N$3U_ z22y`6F0I(UcGlv&QdMu*b%iB%8g!gQOCO6@Z8Fh`p#Lr^w7imn;zsk6IxWYC*)FTSL=nDQq)X|~2QEiZ z2Lj3Rd8XpxhMz;1LwqwyNspS}JtmK^&5<;HF%BCO8DYVYI_98M!3v7o_4yJMM|BB2 z_Z8bITcOBA>a~+&T3nt3>IvHvay@$|lw+k3#yeW}=3L`OB|4fSp;&8j#A!fPb<;() z-x_YdPPL$jNHjnVbZfa~?qpczhBd1>7*83D+rhk8mHsMHhpDqG{r!dlE0t-hdJ%Ht z1P)B41^MgJtyqF;2qUfW05i2AQ6fg;f=#Ta{18ebUMf5c1g}jo5vr9p7ezM6A02)6 zP}Oktw#AXu4G7W!L$&ZKLeySXno$F44!<=U2!s;ux_5NMuABo#nW)%35daKx0OqLl zOGd|t4065a>((KFUL_Hqk%bw)c%5omc;6_sH6(LE%D^DMa&qzcGIy7Og2T0)35<;#Tls9t*5XC{Z6!dh_ zw?0jyEfx z?f*;>d*+7UjHZlCwl&bHI2vMXr2m#PjE^*zYQ42e?&_*Dg-eahppx>;C#R*Q#pA-5 znO2E}f-hIOsAk}@Y3b#*CdaIygZ@VBYXKWD28=8;l#kH$K(BJUWwp9ezhegxy-jBO zo_0_L>WRaXnp?ks(T!*3Xv|B(=I|}EJtUA58CCQ^GnYY-m92};$^iDED7;`M6b>$f zQN=v(caawiKW6Q_GJDJ#bO4t!ohI=?Ph;Bo_sn@Ei}rw50-!6I_f$$`Ir;;L^s=r? zs>xv-?eS!hN(nx^K4y=PTIYZ6eT=+7%YVlb`4O@kU$Gjlx-_)J@?+)g9t%9T%~l+K zj{glb^33MXnOK8I;W}8&K>3>=oyajhi*g95E%P+UIA61J(!SBQ!QhKsm$Y3hiEymQ z^f@~)CeE!i^sIhmrKJ~CKAf{fP#Xu&n5#z00j=V@t_$Wsjivue2e%SgaWWwxVfyMS zkgArIb0b?cb=d(tQn9s*gkI^lE7~TYI-T+`l3=$*O{)f^@JAksgS*-(J)Ff9s7!;w zz$wtgmgXvda9ZM50@-nMZ-hSeXtVQNB@g?D|80bkP3hoAvwf*-Vt&}8{f*|wY_CB% zK$aLI9$@NH_qPIq_$FMO4DOZN{w~bL$?@~^45ZEJqpd$f!n6lRrCn1dxT=0~9<-#z znHJEc&3otGqCLP81tQ|-s=6_*d8Y6{pCKI1htKgW3P8?XFQh9^t_?cwqjbuzfDPdu z2xkT1A)Q{OMulo*@e#ViV+)5$YK_Mw_742hR9GeE8!Sp8$Y7IXIr!ByW0;IU*H?R? zsYfQg@^Ly_^Q79zwXG7K9%-(m-j^;`ZZnC=@}%=%4Xx zbs+t^YxuPNsidT2OXjzuQjnNMK@Ff#QcvRnvks@(2IqfLahR76$kG1RD`p??g0vw) zgPc5U?|ZCbp@$%km46CZ0jr`@&Z^=hDOt#7YkG2vFlLPfGqz-mT@^CVqXbWCRr#|K>$VCHOk9IAiShQ1=7MT9!<+)iNSs%?9tPWhc|`K*s8308o*`m3r<*oqG^;zBdrz|FaC;@ePu3Y+rT z0_@neln9VCkoZVWIu~wIvXJ)AEo$IrkQx*lRInK{dlt2>Xi%j-DQWZA!+BWf8fK)6 zWPXc>5I%Yl>%pTpLxjZZ>#>JjFWzgO5SXk>YT}RBQReeSzN^R%UvoDU?R`+9WapQb zsnN^-U_^5sdSX+^cdc64*j%<~f4dGCURH`}h$wMH0|s{7DaV)urDu1Kej;r+HR7ki zPhNhei=f8a5bKz^p*Hmw3VkX2QkIkr8n1-MsibT2uK1^ZXmpV|?X0Xg)L1n^MOVE| zjw6Pj5|Zf#w{kz>gT_No9cw<^&VTH{G(D3z>IAl#8j5%peluzd3cS)js~Yn)Ltu_R zSgIsqSve|*A7gT&=ANqP-g-I}oX^MlSU8ohwDaR{>LL&b(`T$xVNef_v>(aJK`R8h zFPIN{n~rWM2doJr3GtwBLK$#F1BeUhn0nb*oK(qPCVN6GLPVjgISTbVQy%hB23{1O z1XxT{8%xLQRhy509^HuJhxKC4uIBpQcCRs9Vn@Auf(1}SXyrh68*6v>0rkMzf5Tt? z+&Z4D7&w_E18$v3OUH{~s1(vs*jAy^9f>}+a$W9phBTg#RsPapWbn1R^u7^{{ARCB zye3oo+lS%>sR)THP11rKiJAE%r)dOCC_2i19sKQA56t5f$EeZa6NJ$F=d8XF1x0nD|F3@bG&xD^h(p>7X2kHZWC z)Hu$JDBuiA8+zfD=b{?4dC%BStdz1Hof?odv2$5(9Z7?`@mR*qmIp;XU>Z(AaYst7 zZNoI4e8(za%BkOpcLl{TvT4j{Mwx|XQ1t$S#S>KR#wfu>*TEASh*Kh*PO1H?Hv<5o zFA;;K>yz&kVf>sRpLA_s`6S9;7g(rW2%hL-Wsb>WR2o3P_T&J)$+A7GkPqyk)(m?0 zzI>Mc+h%h*%a5(p(Zuhpg*zwadly731{E^~PAQy@%FobA!JD~`2nW+ivfR&fO=#~` zT9Tx>Lts}E*=!-lcr{L&U9YB|h{Y`EV>2A(5csfIYh&;NT^ZXO=j6LdWjcKodP2zV*UsmWGJe+vE| DE0#+3 literal 0 HcmV?d00001 diff --git a/index.html b/index.html new file mode 100644 index 000000000..a3542687c --- /dev/null +++ b/index.html @@ -0,0 +1,175 @@ + + + + + + + + + + + ConnectSphere - Authorization + + + +
+ +
+
+
+
+
+ + + + +
+
+
+

+

Sign in to your account

+

+
+ + +
+ Please enter a valid email address +
+
+
+ + +
+ Please enter your password +
+
+
+
+ + +
+ +
+
+ +
+
+

Don’t have an account yet?

+ Sign up +
+
+
+ + + +
+
+

+

Create your account

+

+
+ + +
+ Please enter your First name +
+
+
+ + +
+ Please enter a valid email address +
+
+
+ + +
+ Please enter your password +
+
+
+ + +
+ Please confirm your password +
+
+
+ +
+
+

Already have an account?

+ Sign in +
+
+
+
+
+
+
+
+
+
+

© 2025 ConnectSphere. All rights reserved.

+
+
+ + + \ No newline at end of file diff --git a/js/index.js b/js/index.js new file mode 100644 index 000000000..b843c28c7 --- /dev/null +++ b/js/index.js @@ -0,0 +1,27 @@ +import { validateInputs } from "./validateinputs.mjs"; + + +// Switch between Login and Register account tabs + +document.getElementById("signUpLink").addEventListener("click", function (event) { + event.preventDefault(); + const signUpTab = new bootstrap.Tab(document.getElementById("signUp-tab")); + signUpTab.show(); +}); + +document.getElementById("signInLink").addEventListener("click", function (event) { + event.preventDefault(); + const signInTab = new bootstrap.Tab(document.getElementById("signIn-tab")); + signInTab.show(); +}); + + +// Eventlistener Sign in and Sign up + +document.getElementById("signInButton").addEventListener("click", function (event) { + validateInputs(); +}); + +document.getElementById("signUpButton").addEventListener("click", function (event) { + validateInputs(); +}); \ No newline at end of file diff --git a/js/validateinputs.mjs b/js/validateinputs.mjs new file mode 100644 index 000000000..4df741934 --- /dev/null +++ b/js/validateinputs.mjs @@ -0,0 +1,20 @@ +export function validateInputs() { + (() => { + 'use strict' + + // Fetch all the forms we want to apply custom Bootstrap validation styles to + const forms = document.querySelectorAll('.needs-validation') + + // Loop over them and prevent submission + Array.from(forms).forEach(form => { + form.addEventListener('submit', event => { + if (!form.checkValidity()) { + event.preventDefault() + event.stopPropagation() + } + + form.classList.add('was-validated') + }, false) + }) + })() +} diff --git a/src/scss/_variables.scss b/src/scss/_variables.scss new file mode 100644 index 000000000..ec010dcab --- /dev/null +++ b/src/scss/_variables.scss @@ -0,0 +1,23 @@ +// Body background color +$body-bg: #F9FAFB; + +// Theme-colors +$primary: #3F51B5; + +$theme-colors: ( + "primary": $primary +); + +// Button colors +$btn-primary-bg: #7C3AED; +$btn-primary-hover-bg: #673AB7; +$btn-primary-active-bg: #5E35B1; +$bd-violet: #7C3AED; +$btn-primary-border-color: $btn-primary-bg; +$btn-primary-border: 0; +$btn-primary-color: white; + +// Button shadows +$btn-box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25); +$btn-hover-box-shadow: 0px 4px 8px 0px rgba(0, 0, 0, 0.35); +$btn-active-box-shadow: 0px 4px 12px 0px rgba(0, 0, 0, 0.45); \ No newline at end of file diff --git a/src/scss/components/_buttons.scss b/src/scss/components/_buttons.scss new file mode 100644 index 000000000..b8b8287bd --- /dev/null +++ b/src/scss/components/_buttons.scss @@ -0,0 +1,58 @@ +@mixin custom-button($background, + $border, + $color: color-contrast($background), + $hover-background: if($color ==$color-contrast-light, shade-color($background, $btn-hover-bg-shade-amount), tint-color($background, $btn-hover-bg-tint-amount)), + $hover-border: if($color ==$color-contrast-light, shade-color($border, $btn-hover-border-shade-amount), tint-color($border, $btn-hover-border-tint-amount)), + $hover-color: color-contrast($hover-background), + $active-background: if($color ==$color-contrast-light, shade-color($background, $btn-active-bg-shade-amount), tint-color($background, $btn-active-bg-tint-amount)), + $active-border: if($color ==$color-contrast-light, shade-color($border, $btn-active-border-shade-amount), tint-color($border, $btn-active-border-tint-amount)), + $active-color: color-contrast($active-background), + $disabled-background: $background, + $disabled-border: $border, + $disabled-color: color-contrast($disabled-background), + $box-shadow: none // Add box-shadow parameter with default value + +) { + --#{$prefix}btn-color: #{$color}; + --#{$prefix}btn-bg: #{$background}; + --#{$prefix}btn-border-color: #{$border}; + --#{$prefix}btn-hover-color: #{$hover-color}; + --#{$prefix}btn-hover-bg: #{$hover-background}; + --#{$prefix}btn-hover-border-color: #{$hover-border}; + --#{$prefix}btn-focus-shadow-rgb: #{to-rgb(mix($color, $border, 15%))}; + --#{$prefix}btn-active-color: #{$active-color}; + --#{$prefix}btn-active-bg: #{$active-background}; + --#{$prefix}btn-active-border-color: #{$active-border}; + --#{$prefix}btn-active-shadow: #{$btn-active-box-shadow}; + --#{$prefix}btn-disabled-color: #{$disabled-color}; + --#{$prefix}btn-disabled-bg: #{$disabled-background}; + --#{$prefix}btn-disabled-border-color: #{$disabled-border}; + box-shadow: $btn-box-shadow; + + &:hover { + box-shadow: $btn-hover-box-shadow; + } + + &:active { + box-shadow: $btn-active-box-shadow; + } +} + +.btn-auth-form-custom { + @include custom-button($btn-primary-bg, + $btn-primary-border-color, + $btn-primary-color, + $hover-background: $btn-primary-hover-bg, + $hover-border: $btn-primary-border-color, + $hover-color: $btn-primary-color, + $active-background: $btn-primary-active-bg, + $active-border: $btn-primary-border-color, + $active-color: $btn-primary-color ); +} + +// Link button with custom text styles +.btn-link { + text-decoration: none; + color: $btn-primary-bg; + font-weight: 600; +} \ No newline at end of file diff --git a/src/scss/components/_cards.scss b/src/scss/components/_cards.scss new file mode 100644 index 000000000..1c17e9524 --- /dev/null +++ b/src/scss/components/_cards.scss @@ -0,0 +1,22 @@ +.card-custom { + box-shadow: $card-box-shadow, 0px 4px 4px 0px rgba(0, 0, 0, 0.25); + min-height: 100%; + + h1 { + font-size: 24px; + margin: $card-title-spacer-y 0 $card-spacer-y; + } + + .form-check-container { + flex-wrap: wrap; + justify-content: space-between; + } + + @media (min-width: 576px) { + min-width: 300px; + } +} + +.nav-tabs { + display: none; +} \ No newline at end of file diff --git a/src/scss/components/_footer.scss b/src/scss/components/_footer.scss new file mode 100644 index 000000000..99010228d --- /dev/null +++ b/src/scss/components/_footer.scss @@ -0,0 +1,5 @@ +$footer-height: 56px; + +footer { + padding-top: 60px; +} \ No newline at end of file diff --git a/src/scss/components/_header.scss b/src/scss/components/_header.scss new file mode 100644 index 000000000..37c59985e --- /dev/null +++ b/src/scss/components/_header.scss @@ -0,0 +1,38 @@ +$header-height: 90px; + +header { + padding-bottom: 90px; +} + +// Navbar + +.navbar { + .navbar-nav { + letter-spacing: 2px; + } + + // Custom styles for navbar-brand after sm breakpoint + .navbar-brand-custom { + font-size: 1rem; // Default font size + letter-spacing: 4.8px; + + @media (min-width: 576px) { + // sm breakpoint + font-size: 1.5rem; // Increase font size after sm breakpoint + } + } +} + +// Search + +input.custom-search { + + &:focus { + color: #212529; + font-weight: 500; + } + + &::placeholder { + color: var(--bs-dark-border-subtle); + } +} \ No newline at end of file diff --git a/src/scss/index.scss b/src/scss/index.scss index 8b1378917..d0721f5c2 100644 --- a/src/scss/index.scss +++ b/src/scss/index.scss @@ -1 +1,28 @@ +@import "variables"; +@import "../../node_modules/bootstrap/scss/bootstrap"; +@import "components/header"; +@import "components/footer"; +@import "components/buttons"; +@import "components/cards"; + +* { + scroll-behavior: smooth; + +} + +body { + font-family: 'Roboto', sans-serif; + --bs-body-bg: #{$body-bg}; + height: 100vh; + + main { + padding: 10% 0; + position: relative; + + .card { + display: flex; + + } + } +} \ No newline at end of file diff --git a/template.html b/template.html new file mode 100644 index 000000000..5be3a7b48 --- /dev/null +++ b/template.html @@ -0,0 +1,61 @@ + + + + + + + + + + + ConnectSphere - Authorization + + + +
+ +
+
+
+
+

© 2025 ConnectSphere. All rights reserved.

+
+
+ + + \ No newline at end of file From a9151094d1c5a6ef943ddf646183a275e4965e47 Mon Sep 17 00:00:00 2001 From: Robert Nilsen <93103203+Padletut@users.noreply.github.com> Date: Thu, 12 Sep 2024 21:59:35 +0200 Subject: [PATCH 03/51] created feed page --- feed/images/placeholder.svg | 5 + feed/images/profilepictureplaceholder.svg | 26 ++++ feed/index.html | 154 ++++++++++++++++++++++ index.html | 4 +- js/index.js | 51 ++++--- package-lock.json | 18 ++- package.json | 3 +- src/scss/components/_cards.scss | 38 ++++++ src/scss/components/_header.scss | 1 + src/scss/index.scss | 3 +- template.html | 2 +- 11 files changed, 282 insertions(+), 23 deletions(-) create mode 100644 feed/images/placeholder.svg create mode 100644 feed/images/profilepictureplaceholder.svg create mode 100644 feed/index.html diff --git a/feed/images/placeholder.svg b/feed/images/placeholder.svg new file mode 100644 index 000000000..008d4dbb9 --- /dev/null +++ b/feed/images/placeholder.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/feed/images/profilepictureplaceholder.svg b/feed/images/profilepictureplaceholder.svg new file mode 100644 index 000000000..eff8d98a3 --- /dev/null +++ b/feed/images/profilepictureplaceholder.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/feed/index.html b/feed/index.html new file mode 100644 index 000000000..7043bc53c --- /dev/null +++ b/feed/index.html @@ -0,0 +1,154 @@ + + + + + + + + + + + ConnectSphere - Feed + + + +
+ +
+
+
+
+
+
+

+

Create New Post

+

+
+ + +
+ Please enter a title +
+
+
+ + +
+ Please write post content +
+
+
+ + +
+
+ + +
+
+ +
+
+
+
+
+
+
+

Feed

+ +
+
+
+
+
+
+
+ image +
+
+

John Doe

+ Posted on March 15, 2024 +
+
+
+
+

Exciting News in Tech!

+
+
+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor + incididunt + ut + labore et dolore magna aliqua.

+ post image +
+
+ +
+
+ +
+
+
+
+

© 2025 ConnectSphere. All rights reserved.

+
+
+ + + \ No newline at end of file diff --git a/index.html b/index.html index a3542687c..cf5da8e6e 100644 --- a/index.html +++ b/index.html @@ -6,7 +6,7 @@ - + ConnectSphere - Authorization @@ -32,7 +32,7 @@ Profile - - @@ -90,23 +99,6 @@

-
-
-
-

Feed

- -
-
-
diff --git a/index.html b/index.html index cf5da8e6e..5b4427571 100644 --- a/index.html +++ b/index.html @@ -136,15 +136,15 @@

+ placeholder="password" minlength="8" required>
- Please enter your password + Please enter a password with at least 8 characters
+ placeholder="password" minlength="8" required>
Please confirm your password diff --git a/src/scss/components/_header.scss b/src/scss/components/_header.scss index 912fa347a..8e60ac784 100644 --- a/src/scss/components/_header.scss +++ b/src/scss/components/_header.scss @@ -1,5 +1,3 @@ -$header-height: 90px; - header { padding-bottom: 90px; box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25); @@ -27,7 +25,6 @@ header { // Search input.custom-search { - &:focus { color: #212529; font-weight: 500; diff --git a/src/scss/index.scss b/src/scss/index.scss index 4f0da407e..c060545b3 100644 --- a/src/scss/index.scss +++ b/src/scss/index.scss @@ -1,6 +1,6 @@ @import "variables"; @import "../../node_modules/bootstrap/scss/bootstrap"; -@import "../../node_modules//bootstrap-icons/font/bootstrap-icons.min.css"; +@import "../../node_modules//bootstrap-icons/font/bootstrap-icons.min"; @import "components/header"; @import "components/footer"; @import "components/buttons"; From 91b7b37298502cc0bc1ad99af0bc3b24e00c8597 Mon Sep 17 00:00:00 2001 From: Robert Nilsen <93103203+Padletut@users.noreply.github.com> Date: Thu, 12 Sep 2024 23:27:27 +0200 Subject: [PATCH 05/51] Refactor navigation links in index.html and feed/index.html --- feed/index.html | 4 +- index.html | 4 +- profile/index.html | 146 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 150 insertions(+), 4 deletions(-) create mode 100644 profile/index.html diff --git a/feed/index.html b/feed/index.html index 02a2c8820..a425fb621 100644 --- a/feed/index.html +++ b/feed/index.html @@ -29,10 +29,10 @@ Home
diff --git a/src/scss/components/_cards.scss b/src/scss/components/_cards.scss index 39a0f9afb..b1d21a2ef 100644 --- a/src/scss/components/_cards.scss +++ b/src/scss/components/_cards.scss @@ -45,6 +45,17 @@ gap: 25px; } + .card-tags { + display: flex; + gap: 0.5rem; + flex-wrap: wrap; + } + + .card-tags .badge { + font-size: 0.875rem; + padding: 0.5rem; + } + .card-header, .card-footer { column-gap: 3rem; From 1b7aa4d9fe53ccefd505e583dc4a3848391bf250 Mon Sep 17 00:00:00 2001 From: Robert Nilsen <93103203+Padletut@users.noreply.github.com> Date: Thu, 12 Sep 2024 23:56:23 +0200 Subject: [PATCH 07/51] Refactor CSS imports in index.html files --- feed/index.html | 1 + profile/index.html | 96 ++++++++++++++++++++++++++++------------------ 2 files changed, 60 insertions(+), 37 deletions(-) diff --git a/feed/index.html b/feed/index.html index a0f8a7710..541006d9d 100644 --- a/feed/index.html +++ b/feed/index.html @@ -5,6 +5,7 @@ + diff --git a/profile/index.html b/profile/index.html index 0b27bc91e..85a41c4dc 100644 --- a/profile/index.html +++ b/profile/index.html @@ -5,8 +5,9 @@ + - + ConnectSphere - Profile @@ -17,7 +18,7 @@
LogoConnectSphere + class="d-inline-block align-text-center">ConnectSphere +
+
\ No newline at end of file diff --git a/index.html b/index.html index 6c5574abd..cd22c60da 100644 --- a/index.html +++ b/index.html @@ -69,7 +69,7 @@
-
+

Sign in to your account

@@ -112,7 +112,7 @@

- +

Create your account

diff --git a/js/index.js b/js/index.js index c2ec2701e..54cb6b148 100644 --- a/js/index.js +++ b/js/index.js @@ -1,4 +1,12 @@ import { validateInputs } from "./validateinputs.mjs"; +import { loadHTML } from "./loadhtml.mjs"; + +// Load modals +const modalsContainer = document.getElementById("modals-container"); +if (modalsContainer) { + loadHTML('../modals/createnewpostmodal.html', 'modals-container', initializeCreatePostModal) + loadHTML('../modals/commentmodal.html', 'modals-container', initializeCommentModal); +} // Switch between Login and Register account tabs @@ -21,52 +29,96 @@ if (signInLink) { }); } - // Eventlistener Sign in and Sign up - const signInButton = document.getElementById("signInButton"); const signUpButton = document.getElementById("signUpButton"); -if (signInButton) { - signInButton.addEventListener("click", function (event) { - event.preventDefault(); - const form = document.querySelector('.needs-validation'); - if (form.checkValidity()) { - window.location.href = "profile/index.html"; - } else { - form.classList.add('was-validated'); - } - }); -} - -if (signUpButton) { - signUpButton.addEventListener("click", function (event) { - event.preventDefault(); - validateInputs(); - }); +function handleFormSubmission(buttonElement, formId, redirectUrl) { + if (buttonElement) { + buttonElement.addEventListener("click", function (event) { + event.preventDefault(); + const form = document.getElementById(formId); + if (validateInputs(form)) { + form.reset(); + window.location.href = redirectUrl; + } else { + event.preventDefault(); + event.stopPropagation(); + form.classList.add('was-validated'); + } + }); + } } -// Eventlistener Post page - -const postButton = document.getElementById("postButton"); -const postModalElement = document.getElementById('createPostModal'); +handleFormSubmission(signInButton, "signInForm", "profile/index.html"); +handleFormSubmission(signUpButton, "signUpForm", "profile/index.html"); -if (postButton) { - postButton.addEventListener("click", function (event) { - event.preventDefault(); - if (validateInputs()) { - const modal = bootstrap.Modal.getInstance(postModalElement); - modal.hide(); - } - }); +function initializeCreatePostModal() { + // Handle create new post modal + const openPostModalButton = document.getElementById("openPostModalButton"); + if (openPostModalButton) { + openPostModalButton.addEventListener("click", function (event) { + event.preventDefault(); + const createNewPostModalElement = document.getElementById("createPostModal"); + if (createNewPostModalElement) { + const createNewPostModal = new bootstrap.Modal(createNewPostModalElement); + createNewPostModal.show(); + const submitButton = createNewPostModalElement.querySelector('button[type="submit"]'); + if (submitButton) { + submitButton.addEventListener("click", function (event) { + event.preventDefault(); + const form = createNewPostModalElement.querySelector('.needs-validation'); + if (validateInputs(form)) { + createNewPostModal.hide(); + } + }); + } + // Reset validation state when modal is hidden + createNewPostModalElement.addEventListener('hidden.bs.modal', function () { + const form = createNewPostModalElement.querySelector('.needs-validation'); + if (form) { + form.classList.remove('was-validated'); + form.reset(); + } + }); + } else { + console.error('Post modal element not found'); + } + }); + } } -if (postModalElement) { - postModalElement.addEventListener('show.bs.modal', function () { - const form = postModalElement.querySelector('.needs-validation'); - if (form) { - form.classList.remove('was-validated'); - form.reset(); - } - }); +function initializeCommentModal() { + // Handle comment modal + const openCommentModalButton = document.getElementById("commentOpenModalButton"); + if (openCommentModalButton) { + openCommentModalButton.addEventListener("click", function (event) { + event.preventDefault(); + const commentModalElement = document.getElementById("commentModal"); + if (commentModalElement) { + const commentModal = new bootstrap.Modal(commentModalElement); + commentModal.show(); + const submitButton = commentModalElement.querySelector('button[type="submit"]'); + if (submitButton) { + submitButton.addEventListener("click", function (event) { + event.preventDefault(); + const form = commentModalElement.querySelector('.needs-validation'); + if (validateInputs(form)) { + commentModal.hide(); + } + }); + } + // Reset validation state when modal is hidden + commentModalElement.addEventListener('hidden.bs.modal', function () { + const form = commentModalElement.querySelector('.needs-validation'); + if (form) { + form.classList.remove('was-validated'); + form.reset(); + } + }); + } else { + console.error('Comment modal element not found'); + } + }); + } } \ No newline at end of file diff --git a/js/loadhtml.mjs b/js/loadhtml.mjs new file mode 100644 index 000000000..0c7fff5ae --- /dev/null +++ b/js/loadhtml.mjs @@ -0,0 +1,20 @@ +// Function to load HTML content into a container +export function loadHTML(url, containerId, callback) { + return fetch(url) + .then(response => { + if (!response.ok) { + throw new Error(`Failed to load ${url}: ${response.statusText}`); + } + return response.text(); + }) + .then(data => { + document.getElementById(containerId).innerHTML += data; + // Call the callback function if provided + if (callback) { + callback(); + } + }) + .catch(error => { + console.error('Error loading HTML:', error); + }); +} \ No newline at end of file diff --git a/js/validateinputs.mjs b/js/validateinputs.mjs index 19d57a18c..f87e5cc05 100644 --- a/js/validateinputs.mjs +++ b/js/validateinputs.mjs @@ -1,18 +1,14 @@ -export function validateInputs() { - let isValid = true; - (() => { - 'use strict' +export function validateInputs(form) { + 'use strict'; - // Fetch all the forms we want to apply custom Bootstrap validation styles to - const forms = document.querySelectorAll('.needs-validation') + if (!form) { + console.error('Form element is not provided'); + return false; + } - // Loop over them and prevent submission - Array.from(forms).forEach(form => { - if (!form.checkValidity()) { - isValid = false; - } - form.classList.add('was-validated'); - }); - })(); + const isValid = form.checkValidity(); + if (!isValid) { + form.classList.add('was-validated'); + } return isValid; } \ No newline at end of file diff --git a/modals/commentmodal.html b/modals/commentmodal.html new file mode 100644 index 000000000..7d6e19be3 --- /dev/null +++ b/modals/commentmodal.html @@ -0,0 +1,30 @@ + + \ No newline at end of file diff --git a/modals/createnewpostmodal.html b/modals/createnewpostmodal.html new file mode 100644 index 000000000..8d2e8119c --- /dev/null +++ b/modals/createnewpostmodal.html @@ -0,0 +1,51 @@ + + \ No newline at end of file diff --git a/profile/index.html b/profile/index.html index 2b0124f51..568a98014 100644 --- a/profile/index.html +++ b/profile/index.html @@ -63,8 +63,7 @@
-
@@ -187,61 +186,6 @@

Followers

-
@@ -272,12 +216,14 @@

Exciting News in Tech!

Innovation
- diff --git a/modals/createnewpostmodal.html b/modals/createnewpostmodal.html index 8d2e8119c..a5835b412 100644 --- a/modals/createnewpostmodal.html +++ b/modals/createnewpostmodal.html @@ -40,7 +40,7 @@

(www.example.com/example.jpg)

- +

From d733c6615a75f466955bbf3595a4dfd1cbbf94d2 Mon Sep 17 00:00:00 2001 From: Robert Nilsen <93103203+Padletut@users.noreply.github.com> Date: Sun, 15 Sep 2024 00:14:57 +0200 Subject: [PATCH 27/51] Refactor button width and add hover effect to comment and create new post modals --- feed/index.html | 5 +++-- profile/index.html | 7 ++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/feed/index.html b/feed/index.html index d036b2f8e..a76830c8d 100644 --- a/feed/index.html +++ b/feed/index.html @@ -93,12 +93,13 @@

Exciting News in Tech!

- From ef5153c23751d3bcce495a26f9b48390d42287d1 Mon Sep 17 00:00:00 2001 From: Robert Nilsen <93103203+Padletut@users.noreply.github.com> Date: Thu, 19 Sep 2024 19:29:37 +0200 Subject: [PATCH 42/51] Refactor post card header in feed and profile pages --- feed/index.html | 27 ++++++++++++++++----------- profile/index.html | 24 +++++++++++++----------- src/scss/components/_cards.scss | 8 ++++++++ 3 files changed, 37 insertions(+), 22 deletions(-) diff --git a/feed/index.html b/feed/index.html index d375813ca..f96c4aacf 100644 --- a/feed/index.html +++ b/feed/index.html @@ -69,14 +69,19 @@
-
-
- image -
-
-

John Doe

- Posted on March 15, 2024 -
+
@@ -88,9 +93,9 @@

Exciting News in Tech!

post image
- Tech - News - Innovation + Tech + News + Innovation

-