From 051a8b9b2758818b5eaa7ac5d907515d57e4e473 Mon Sep 17 00:00:00 2001 From: yuexin Date: Mon, 26 Jun 2023 11:46:48 +0800 Subject: [PATCH] mint and set uri --- init_scripts/generate_badge.js | 2 + package-lock.json | 450 ++++++++++++++++++++------------- package.json | 3 +- single.sol | Bin 0 -> 155012 bytes truffle-config.js | 4 +- 5 files changed, 287 insertions(+), 172 deletions(-) create mode 100644 single.sol diff --git a/init_scripts/generate_badge.js b/init_scripts/generate_badge.js index 86f3f30..871c737 100644 --- a/init_scripts/generate_badge.js +++ b/init_scripts/generate_badge.js @@ -8,6 +8,8 @@ module.exports = async function main(callback) { await badgeInstance.batchMint(account, 1); console.log(`success mint`); } + await badgeInstance.updateBaseURI("https://gateway.pinata.cloud/ipfs/QmY6AS9NwbZERqoRRfLUwqwwBRepAhu2M4hkj39XRUfYro"); + console.log("update uri over!") callback(0); } catch (err) { console.log(err); diff --git a/package-lock.json b/package-lock.json index a74e611..446862f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,8 @@ "license": "ISC", "dependencies": { "@openzeppelin/contracts": "^4.5.0", - "fs-jetpack": "^5.1.0" + "fs-jetpack": "^5.1.0", + "truffle-flattener": "^1.6.0" }, "devDependencies": { "@openzeppelin/test-helpers": "^0.5.15", @@ -1692,6 +1693,96 @@ "dev": true, "optional": true }, + "node_modules/@resolver-engine/core": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@resolver-engine/core/-/core-0.2.1.tgz", + "integrity": "sha512-nsLQHmPJ77QuifqsIvqjaF5B9aHnDzJjp73Q1z6apY3e9nqYrx4Dtowhpsf7Jwftg/XzVDEMQC+OzUBNTS+S1A==", + "dependencies": { + "debug": "^3.1.0", + "request": "^2.85.0" + } + }, + "node_modules/@resolver-engine/core/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@resolver-engine/core/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==" + }, + "node_modules/@resolver-engine/fs": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@resolver-engine/fs/-/fs-0.2.1.tgz", + "integrity": "sha512-7kJInM1Qo2LJcKyDhuYzh9ZWd+mal/fynfL9BNjWOiTcOpX+jNfqb/UmGUqros5pceBITlWGqS4lU709yHFUbg==", + "dependencies": { + "@resolver-engine/core": "^0.2.1", + "debug": "^3.1.0" + } + }, + "node_modules/@resolver-engine/fs/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@resolver-engine/fs/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==" + }, + "node_modules/@resolver-engine/imports": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@resolver-engine/imports/-/imports-0.2.2.tgz", + "integrity": "sha512-u5/HUkvo8q34AA+hnxxqqXGfby5swnH0Myw91o3Sm2TETJlNKXibFGSKBavAH+wvWdBi4Z5gS2Odu0PowgVOUg==", + "dependencies": { + "@resolver-engine/core": "^0.2.1", + "debug": "^3.1.0", + "hosted-git-info": "^2.6.0" + } + }, + "node_modules/@resolver-engine/imports-fs": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@resolver-engine/imports-fs/-/imports-fs-0.2.2.tgz", + "integrity": "sha512-gFCgMvCwyppjwq0UzIjde/WI+yDs3oatJhozG9xdjJdewwtd7LiF0T5i9lrHAUtqrQbqoFE4E+ZMRVHWpWHpKQ==", + "dependencies": { + "@resolver-engine/fs": "^0.2.1", + "@resolver-engine/imports": "^0.2.2", + "debug": "^3.1.0" + } + }, + "node_modules/@resolver-engine/imports-fs/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@resolver-engine/imports-fs/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==" + }, + "node_modules/@resolver-engine/imports/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@resolver-engine/imports/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==" + }, "node_modules/@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmmirror.com/@sindresorhus/is/download/@sindresorhus/is-0.14.0.tgz", @@ -1705,7 +1796,6 @@ "version": "0.14.3", "resolved": "https://registry.npmmirror.com/@solidity-parser/parser/-/parser-0.14.3.tgz", "integrity": "sha512-29g2SZ29HtsqA58pLCtopI1P/cPy5/UAzlcAXO6T/CNJimG6yA8kx4NaseMyJULiC+TEs02Y9/yeHzClqoA0hw==", - "dev": true, "dependencies": { "antlr4ts": "^0.5.0-alpha.4" } @@ -3415,7 +3505,6 @@ "version": "6.12.6", "resolved": "https://registry.npmmirror.com/ajv/download/ajv-6.12.6.tgz", "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", - "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -3551,8 +3640,7 @@ "node_modules/antlr4ts": { "version": "0.5.0-alpha.4", "resolved": "https://registry.npmmirror.com/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz", - "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==", - "dev": true + "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==" }, "node_modules/any-signal": { "version": "2.1.2", @@ -4054,7 +4142,6 @@ "version": "0.2.6", "resolved": "https://registry.npmmirror.com/asn1/download/asn1-0.2.6.tgz?cache=0&sync_timestamp=1635986760581&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fasn1%2Fdownload%2Fasn1-0.2.6.tgz", "integrity": "sha1-DTp7tuZOAqkMAwOzHykoaOoJoI0=", - "dev": true, "dependencies": { "safer-buffer": "~2.1.0" } @@ -4110,7 +4197,6 @@ "version": "1.0.0", "resolved": "https://registry.npmmirror.com/assert-plus/download/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, "engines": { "node": ">=0.8" } @@ -4202,8 +4288,7 @@ "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmmirror.com/asynckit/download/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "node_modules/at-least-node": { "version": "1.0.0", @@ -4251,7 +4336,6 @@ "version": "0.7.0", "resolved": "https://registry.npmmirror.com/aws-sign2/download/aws-sign2-0.7.0.tgz", "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true, "engines": { "node": "*" } @@ -4259,8 +4343,7 @@ "node_modules/aws4": { "version": "1.11.0", "resolved": "https://registry.npmmirror.com/aws4/download/aws4-1.11.0.tgz", - "integrity": "sha1-1h9G2DslGSUOJ4Ta9bCUeai0HFk=", - "dev": true + "integrity": "sha1-1h9G2DslGSUOJ4Ta9bCUeai0HFk=" }, "node_modules/axios": { "version": "0.20.0", @@ -4643,7 +4726,6 @@ "version": "1.0.2", "resolved": "https://registry.npmmirror.com/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, "dependencies": { "tweetnacl": "^0.14.3" } @@ -5337,8 +5419,7 @@ "node_modules/caseless": { "version": "0.12.0", "resolved": "https://registry.npmmirror.com/caseless/download/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "node_modules/cbor": { "version": "5.2.0", @@ -5823,7 +5904,6 @@ "version": "1.0.8", "resolved": "https://registry.npmmirror.com/combined-stream/download/combined-stream-1.0.8.tgz", "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", - "dev": true, "dependencies": { "delayed-stream": "~1.0.0" }, @@ -6105,8 +6185,7 @@ "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/core-util-is/download/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "node_modules/cors": { "version": "2.8.5", @@ -6341,7 +6420,6 @@ "version": "1.14.1", "resolved": "https://registry.npmmirror.com/dashdash/download/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, "dependencies": { "assert-plus": "^1.0.0" }, @@ -6640,7 +6718,6 @@ "version": "1.0.0", "resolved": "https://registry.npmmirror.com/delayed-stream/download/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true, "engines": { "node": ">=0.4.0" } @@ -6914,7 +6991,6 @@ "version": "0.1.2", "resolved": "https://registry.npmmirror.com/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, "dependencies": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -8333,8 +8409,7 @@ "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmmirror.com/extend/download/extend-3.0.2.tgz", - "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=", - "dev": true + "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=" }, "node_modules/extend-shallow": { "version": "2.0.1", @@ -8376,7 +8451,6 @@ "version": "1.3.0", "resolved": "https://registry.npmmirror.com/extsprintf/download/extsprintf-1.3.0.tgz?cache=0&sync_timestamp=1635890162613&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fextsprintf%2Fdownload%2Fextsprintf-1.3.0.tgz", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true, "engines": [ "node >=0.6.0" ] @@ -8411,8 +8485,7 @@ "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmmirror.com/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz", - "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", - "dev": true + "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=" }, "node_modules/fast-fifo": { "version": "1.0.0", @@ -8431,8 +8504,7 @@ "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", - "dev": true + "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=" }, "node_modules/fast-levenshtein": { "version": "2.0.6", @@ -8592,7 +8664,6 @@ "version": "2.1.0", "resolved": "https://registry.npmmirror.com/find-up/download/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, "dependencies": { "locate-path": "^2.0.0" }, @@ -8604,7 +8675,6 @@ "version": "2.0.0", "resolved": "https://registry.npmmirror.com/locate-path/download/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, "dependencies": { "p-locate": "^2.0.0", "path-exists": "^3.0.0" @@ -8617,7 +8687,6 @@ "version": "1.3.0", "resolved": "https://registry.npmmirror.com/p-limit/download/p-limit-1.3.0.tgz", "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", - "dev": true, "dependencies": { "p-try": "^1.0.0" }, @@ -8629,7 +8698,6 @@ "version": "2.0.0", "resolved": "https://registry.npmmirror.com/p-locate/download/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, "dependencies": { "p-limit": "^1.1.0" }, @@ -8641,7 +8709,6 @@ "version": "1.0.0", "resolved": "https://registry.npmmirror.com/p-try/download/p-try-1.0.0.tgz?cache=0&sync_timestamp=1633364506847&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fp-try%2Fdownload%2Fp-try-1.0.0.tgz", "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, "engines": { "node": ">=4" } @@ -8735,7 +8802,6 @@ "version": "0.6.1", "resolved": "https://registry.npmmirror.com/forever-agent/download/forever-agent-0.6.1.tgz", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true, "engines": { "node": "*" } @@ -8744,7 +8810,6 @@ "version": "2.3.3", "resolved": "https://registry.npmmirror.com/form-data/download/form-data-2.3.3.tgz", "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=", - "dev": true, "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -10091,7 +10156,6 @@ "version": "0.1.7", "resolved": "https://registry.npmmirror.com/getpass/download/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, "dependencies": { "assert-plus": "^1.0.0" } @@ -10419,7 +10483,6 @@ "version": "2.0.0", "resolved": "https://registry.npmmirror.com/har-schema/download/har-schema-2.0.0.tgz", "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true, "engines": { "node": ">=4" } @@ -10429,7 +10492,6 @@ "resolved": "https://registry.npmmirror.com/har-validator/download/har-validator-5.1.5.tgz", "integrity": "sha1-HwgDufjLIMD6E4It8ezds2veHv0=", "deprecated": "this library is no longer supported", - "dev": true, "dependencies": { "ajv": "^6.12.3", "har-schema": "^2.0.0" @@ -10685,8 +10747,7 @@ "node_modules/hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmmirror.com/hosted-git-info/download/hosted-git-info-2.8.9.tgz", - "integrity": "sha1-3/wL+aIcAiCQkPKqaUKeFBTa8/k=", - "dev": true + "integrity": "sha1-3/wL+aIcAiCQkPKqaUKeFBTa8/k=" }, "node_modules/htmlparser2": { "version": "3.10.1", @@ -10734,7 +10795,6 @@ "version": "1.2.0", "resolved": "https://registry.npmmirror.com/http-signature/download/http-signature-1.2.0.tgz?cache=0&sync_timestamp=1637178666193&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fhttp-signature%2Fdownload%2Fhttp-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -12494,8 +12554,7 @@ "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/is-typedarray/download/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "node_modules/is-upper-case": { "version": "1.1.2", @@ -12614,8 +12673,7 @@ "node_modules/isstream": { "version": "0.1.2", "resolved": "https://registry.npmmirror.com/isstream/download/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "node_modules/isurl": { "version": "1.0.0", @@ -12800,8 +12858,7 @@ "node_modules/jsbn": { "version": "0.1.1", "resolved": "https://registry.npmmirror.com/jsbn/download/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" }, "node_modules/jsdom": { "version": "7.2.2", @@ -12915,14 +12972,12 @@ "node_modules/json-schema": { "version": "0.4.0", "resolved": "https://registry.npmmirror.com/json-schema/download/json-schema-0.4.0.tgz?cache=0&sync_timestamp=1636423535512&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjson-schema%2Fdownload%2Fjson-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmmirror.com/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz", - "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", - "dev": true + "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=" }, "node_modules/json-schema-typed": { "version": "7.0.3", @@ -12950,8 +13005,7 @@ "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmmirror.com/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "node_modules/json-text-sequence": { "version": "0.1.1", @@ -13029,7 +13083,6 @@ "version": "1.4.2", "resolved": "https://registry.npmmirror.com/jsprim/download/jsprim-1.4.2.tgz", "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dev": true, "dependencies": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -14388,7 +14441,6 @@ "version": "1.51.0", "resolved": "https://registry.npmmirror.com/mime-db/download/mime-db-1.51.0.tgz?cache=0&sync_timestamp=1636426011488&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmime-db%2Fdownload%2Fmime-db-1.51.0.tgz", "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "dev": true, "engines": { "node": ">= 0.6" } @@ -14397,7 +14449,6 @@ "version": "2.1.34", "resolved": "https://registry.npmmirror.com/mime-types/download/mime-types-2.1.34.tgz?cache=0&sync_timestamp=1636432808076&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmime-types%2Fdownload%2Fmime-types-2.1.34.tgz", "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dev": true, "dependencies": { "mime-db": "1.51.0" }, @@ -14521,7 +14572,6 @@ "version": "1.0.4", "resolved": "https://registry.npmmirror.com/mkdirp/download/mkdirp-1.0.4.tgz", "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=", - "dev": true, "bin": { "mkdirp": "bin/cmd.js" }, @@ -15957,7 +16007,6 @@ "version": "0.9.0", "resolved": "https://registry.npmmirror.com/oauth-sign/download/oauth-sign-0.9.0.tgz", "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=", - "dev": true, "engines": { "node": "*" } @@ -16559,7 +16608,6 @@ "version": "3.0.0", "resolved": "https://registry.npmmirror.com/path-exists/download/path-exists-3.0.0.tgz", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, "engines": { "node": ">=4" } @@ -16789,8 +16837,7 @@ "node_modules/performance-now": { "version": "2.1.0", "resolved": "https://registry.npmmirror.com/performance-now/download/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "node_modules/picocolors": { "version": "1.0.0", @@ -17870,8 +17917,7 @@ "node_modules/psl": { "version": "1.8.0", "resolved": "https://registry.npmmirror.com/psl/download/psl-1.8.0.tgz", - "integrity": "sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ=", - "dev": true + "integrity": "sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ=" }, "node_modules/public-encrypt": { "version": "4.0.3", @@ -17901,7 +17947,6 @@ "version": "2.1.1", "resolved": "https://registry.npmmirror.com/punycode/download/punycode-2.1.1.tgz", "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=", - "dev": true, "engines": { "node": ">=6" } @@ -18329,7 +18374,6 @@ "resolved": "https://registry.npmmirror.com/request/download/request-2.88.2.tgz", "integrity": "sha1-1zyRhzHLWofaBH4gcjQUb2ZNErM=", "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dev": true, "dependencies": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -18360,7 +18404,6 @@ "version": "6.5.2", "resolved": "https://registry.npmmirror.com/qs/download/qs-6.5.2.tgz", "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true, "engines": { "node": ">=0.6" } @@ -18370,7 +18413,6 @@ "resolved": "https://registry.npmmirror.com/uuid/download/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" } @@ -18685,8 +18727,7 @@ "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmmirror.com/safe-buffer/download/safe-buffer-5.2.1.tgz", - "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", - "dev": true + "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=" }, "node_modules/safe-event-emitter": { "version": "1.0.1", @@ -18711,8 +18752,7 @@ "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmmirror.com/safer-buffer/download/safer-buffer-2.1.2.tgz", - "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=", - "dev": true + "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=" }, "node_modules/sax": { "version": "1.2.4", @@ -19581,7 +19621,6 @@ "version": "1.16.1", "resolved": "https://registry.npmmirror.com/sshpk/download/sshpk-1.16.1.tgz", "integrity": "sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=", - "dev": true, "dependencies": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -20525,7 +20564,6 @@ "version": "2.5.0", "resolved": "https://registry.npmmirror.com/tough-cookie/download/tough-cookie-2.5.0.tgz?cache=0&sync_timestamp=1632753998762&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftough-cookie%2Fdownload%2Ftough-cookie-2.5.0.tgz", "integrity": "sha1-zZ+yoKodWhK0c72fuW+j3P9lreI=", - "dev": true, "dependencies": { "psl": "^1.1.28", "punycode": "^2.1.1" @@ -20573,6 +20611,21 @@ "@truffle/preserve-to-ipfs": "^0.2.4" } }, + "node_modules/truffle-flattener": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/truffle-flattener/-/truffle-flattener-1.6.0.tgz", + "integrity": "sha512-scS5Bsi4CZyvlrmD4iQcLHTiG2RQFUXVheTgWeH6PuafmI+Lk5U87Es98loM3w3ImqC9/fPHq+3QIXbcPuoJ1Q==", + "dependencies": { + "@resolver-engine/imports-fs": "^0.2.2", + "@solidity-parser/parser": "^0.14.1", + "find-up": "^2.1.0", + "mkdirp": "^1.0.4", + "tsort": "0.0.1" + }, + "bin": { + "truffle-flattener": "index.js" + } + }, "node_modules/truffle-plugin-stdjsonin": { "version": "0.5.14", "resolved": "git+ssh://git@github.com/mhrsalehi/truffle-plugin-stdjsonin.git#0ddb4110de7e14b2242f7467600d1ac149e2c460", @@ -20641,6 +20694,11 @@ "integrity": "sha1-6KM1rdXOrlGqJh0ypJAVjvBC7wE=", "dev": true }, + "node_modules/tsort": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", + "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==" + }, "node_modules/tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npmmirror.com/tty-browserify/download/tty-browserify-0.0.0.tgz", @@ -20660,7 +20718,6 @@ "version": "0.6.0", "resolved": "https://registry.npmmirror.com/tunnel-agent/download/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, "dependencies": { "safe-buffer": "^5.0.1" }, @@ -20671,8 +20728,7 @@ "node_modules/tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmmirror.com/tweetnacl/download/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, "node_modules/tweetnacl-util": { "version": "0.15.1", @@ -21104,7 +21160,6 @@ "version": "4.4.1", "resolved": "https://registry.npmmirror.com/uri-js/download/uri-js-4.4.1.tgz", "integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=", - "dev": true, "dependencies": { "punycode": "^2.1.0" } @@ -21313,7 +21368,6 @@ "version": "1.10.0", "resolved": "https://registry.npmmirror.com/verror/download/verror-1.10.0.tgz?cache=0&sync_timestamp=1635885230540&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fverror%2Fdownload%2Fverror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, "engines": [ "node >=0.6.0" ], @@ -24948,6 +25002,104 @@ "dev": true, "optional": true }, + "@resolver-engine/core": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@resolver-engine/core/-/core-0.2.1.tgz", + "integrity": "sha512-nsLQHmPJ77QuifqsIvqjaF5B9aHnDzJjp73Q1z6apY3e9nqYrx4Dtowhpsf7Jwftg/XzVDEMQC+OzUBNTS+S1A==", + "requires": { + "debug": "^3.1.0", + "request": "^2.85.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "@resolver-engine/fs": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@resolver-engine/fs/-/fs-0.2.1.tgz", + "integrity": "sha512-7kJInM1Qo2LJcKyDhuYzh9ZWd+mal/fynfL9BNjWOiTcOpX+jNfqb/UmGUqros5pceBITlWGqS4lU709yHFUbg==", + "requires": { + "@resolver-engine/core": "^0.2.1", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "@resolver-engine/imports": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@resolver-engine/imports/-/imports-0.2.2.tgz", + "integrity": "sha512-u5/HUkvo8q34AA+hnxxqqXGfby5swnH0Myw91o3Sm2TETJlNKXibFGSKBavAH+wvWdBi4Z5gS2Odu0PowgVOUg==", + "requires": { + "@resolver-engine/core": "^0.2.1", + "debug": "^3.1.0", + "hosted-git-info": "^2.6.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "@resolver-engine/imports-fs": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@resolver-engine/imports-fs/-/imports-fs-0.2.2.tgz", + "integrity": "sha512-gFCgMvCwyppjwq0UzIjde/WI+yDs3oatJhozG9xdjJdewwtd7LiF0T5i9lrHAUtqrQbqoFE4E+ZMRVHWpWHpKQ==", + "requires": { + "@resolver-engine/fs": "^0.2.1", + "@resolver-engine/imports": "^0.2.2", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmmirror.com/@sindresorhus/is/download/@sindresorhus/is-0.14.0.tgz", @@ -24958,7 +25110,6 @@ "version": "0.14.3", "resolved": "https://registry.npmmirror.com/@solidity-parser/parser/-/parser-0.14.3.tgz", "integrity": "sha512-29g2SZ29HtsqA58pLCtopI1P/cPy5/UAzlcAXO6T/CNJimG6yA8kx4NaseMyJULiC+TEs02Y9/yeHzClqoA0hw==", - "dev": true, "requires": { "antlr4ts": "^0.5.0-alpha.4" } @@ -26542,7 +26693,6 @@ "version": "6.12.6", "resolved": "https://registry.npmmirror.com/ajv/download/ajv-6.12.6.tgz", "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", - "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -26654,8 +26804,7 @@ "antlr4ts": { "version": "0.5.0-alpha.4", "resolved": "https://registry.npmmirror.com/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz", - "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==", - "dev": true + "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==" }, "any-signal": { "version": "2.1.2", @@ -27075,7 +27224,6 @@ "version": "0.2.6", "resolved": "https://registry.npmmirror.com/asn1/download/asn1-0.2.6.tgz?cache=0&sync_timestamp=1635986760581&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fasn1%2Fdownload%2Fasn1-0.2.6.tgz", "integrity": "sha1-DTp7tuZOAqkMAwOzHykoaOoJoI0=", - "dev": true, "requires": { "safer-buffer": "~2.1.0" } @@ -27149,8 +27297,7 @@ "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/assert-plus/download/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "assertion-error": { "version": "1.1.0", @@ -27218,8 +27365,7 @@ "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmmirror.com/asynckit/download/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "at-least-node": { "version": "1.0.0", @@ -27251,14 +27397,12 @@ "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmmirror.com/aws-sign2/download/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { "version": "1.11.0", "resolved": "https://registry.npmmirror.com/aws4/download/aws4-1.11.0.tgz", - "integrity": "sha1-1h9G2DslGSUOJ4Ta9bCUeai0HFk=", - "dev": true + "integrity": "sha1-1h9G2DslGSUOJ4Ta9bCUeai0HFk=" }, "axios": { "version": "0.20.0", @@ -27595,7 +27739,6 @@ "version": "1.0.2", "resolved": "https://registry.npmmirror.com/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, "requires": { "tweetnacl": "^0.14.3" } @@ -28206,8 +28349,7 @@ "caseless": { "version": "0.12.0", "resolved": "https://registry.npmmirror.com/caseless/download/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "cbor": { "version": "5.2.0", @@ -28616,7 +28758,6 @@ "version": "1.0.8", "resolved": "https://registry.npmmirror.com/combined-stream/download/combined-stream-1.0.8.tgz", "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", - "dev": true, "requires": { "delayed-stream": "~1.0.0" } @@ -28872,8 +29013,7 @@ "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/core-util-is/download/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cors": { "version": "2.8.5", @@ -29091,7 +29231,6 @@ "version": "1.14.1", "resolved": "https://registry.npmmirror.com/dashdash/download/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, "requires": { "assert-plus": "^1.0.0" } @@ -29334,8 +29473,7 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/delayed-stream/download/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "delegates": { "version": "1.0.0", @@ -29580,7 +29718,6 @@ "version": "0.1.2", "resolved": "https://registry.npmmirror.com/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, "requires": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -30906,8 +31043,7 @@ "extend": { "version": "3.0.2", "resolved": "https://registry.npmmirror.com/extend/download/extend-3.0.2.tgz", - "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=", - "dev": true + "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=" }, "extend-shallow": { "version": "2.0.1", @@ -30941,8 +31077,7 @@ "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmmirror.com/extsprintf/download/extsprintf-1.3.0.tgz?cache=0&sync_timestamp=1635890162613&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fextsprintf%2Fdownload%2Fextsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "fake-merkle-patricia-tree": { "version": "1.0.1", @@ -30971,8 +31106,7 @@ "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmmirror.com/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz", - "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", - "dev": true + "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=" }, "fast-fifo": { "version": "1.0.0", @@ -30991,8 +31125,7 @@ "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", - "dev": true + "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=" }, "fast-levenshtein": { "version": "2.0.6", @@ -31133,7 +31266,6 @@ "version": "2.1.0", "resolved": "https://registry.npmmirror.com/find-up/download/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, "requires": { "locate-path": "^2.0.0" }, @@ -31142,7 +31274,6 @@ "version": "2.0.0", "resolved": "https://registry.npmmirror.com/locate-path/download/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, "requires": { "p-locate": "^2.0.0", "path-exists": "^3.0.0" @@ -31152,7 +31283,6 @@ "version": "1.3.0", "resolved": "https://registry.npmmirror.com/p-limit/download/p-limit-1.3.0.tgz", "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", - "dev": true, "requires": { "p-try": "^1.0.0" } @@ -31161,7 +31291,6 @@ "version": "2.0.0", "resolved": "https://registry.npmmirror.com/p-locate/download/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, "requires": { "p-limit": "^1.1.0" } @@ -31169,8 +31298,7 @@ "p-try": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/p-try/download/p-try-1.0.0.tgz?cache=0&sync_timestamp=1633364506847&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fp-try%2Fdownload%2Fp-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" } } }, @@ -31241,14 +31369,12 @@ "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmmirror.com/forever-agent/download/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { "version": "2.3.3", "resolved": "https://registry.npmmirror.com/form-data/download/form-data-2.3.3.tgz", "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=", - "dev": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -32268,7 +32394,6 @@ "version": "0.1.7", "resolved": "https://registry.npmmirror.com/getpass/download/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, "requires": { "assert-plus": "^1.0.0" } @@ -32544,14 +32669,12 @@ "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/har-schema/download/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { "version": "5.1.5", "resolved": "https://registry.npmmirror.com/har-validator/download/har-validator-5.1.5.tgz", "integrity": "sha1-HwgDufjLIMD6E4It8ezds2veHv0=", - "dev": true, "requires": { "ajv": "^6.12.3", "har-schema": "^2.0.0" @@ -32761,8 +32884,7 @@ "hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmmirror.com/hosted-git-info/download/hosted-git-info-2.8.9.tgz", - "integrity": "sha1-3/wL+aIcAiCQkPKqaUKeFBTa8/k=", - "dev": true + "integrity": "sha1-3/wL+aIcAiCQkPKqaUKeFBTa8/k=" }, "htmlparser2": { "version": "3.10.1", @@ -32807,7 +32929,6 @@ "version": "1.2.0", "resolved": "https://registry.npmmirror.com/http-signature/download/http-signature-1.2.0.tgz?cache=0&sync_timestamp=1637178666193&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fhttp-signature%2Fdownload%2Fhttp-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, "requires": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -34321,8 +34442,7 @@ "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/is-typedarray/download/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "is-upper-case": { "version": "1.1.2", @@ -34420,8 +34540,7 @@ "isstream": { "version": "0.1.2", "resolved": "https://registry.npmmirror.com/isstream/download/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "isurl": { "version": "1.0.0", @@ -34600,8 +34719,7 @@ "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmmirror.com/jsbn/download/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" }, "jsdom": { "version": "7.2.2", @@ -34707,14 +34825,12 @@ "json-schema": { "version": "0.4.0", "resolved": "https://registry.npmmirror.com/json-schema/download/json-schema-0.4.0.tgz?cache=0&sync_timestamp=1636423535512&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjson-schema%2Fdownload%2Fjson-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmmirror.com/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz", - "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", - "dev": true + "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=" }, "json-schema-typed": { "version": "7.0.3", @@ -34742,8 +34858,7 @@ "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmmirror.com/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "json-text-sequence": { "version": "0.1.1", @@ -34810,7 +34925,6 @@ "version": "1.4.2", "resolved": "https://registry.npmmirror.com/jsprim/download/jsprim-1.4.2.tgz", "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dev": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -36041,14 +36155,12 @@ "mime-db": { "version": "1.51.0", "resolved": "https://registry.npmmirror.com/mime-db/download/mime-db-1.51.0.tgz?cache=0&sync_timestamp=1636426011488&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmime-db%2Fdownload%2Fmime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "dev": true + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" }, "mime-types": { "version": "2.1.34", "resolved": "https://registry.npmmirror.com/mime-types/download/mime-types-2.1.34.tgz?cache=0&sync_timestamp=1636432808076&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmime-types%2Fdownload%2Fmime-types-2.1.34.tgz", "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dev": true, "requires": { "mime-db": "1.51.0" } @@ -36152,8 +36264,7 @@ "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmmirror.com/mkdirp/download/mkdirp-1.0.4.tgz", - "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=", - "dev": true + "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=" }, "mkdirp-promise": { "version": "5.0.1", @@ -37385,8 +37496,7 @@ "oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmmirror.com/oauth-sign/download/oauth-sign-0.9.0.tgz", - "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=", - "dev": true + "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=" }, "object-assign": { "version": "4.1.1", @@ -37895,8 +38005,7 @@ "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmmirror.com/path-exists/download/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" }, "path-is-absolute": { "version": "1.0.1", @@ -38089,8 +38198,7 @@ "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmmirror.com/performance-now/download/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "picocolors": { "version": "1.0.0", @@ -39071,8 +39179,7 @@ "psl": { "version": "1.8.0", "resolved": "https://registry.npmmirror.com/psl/download/psl-1.8.0.tgz", - "integrity": "sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ=", - "dev": true + "integrity": "sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ=" }, "public-encrypt": { "version": "4.0.3", @@ -39101,8 +39208,7 @@ "punycode": { "version": "2.1.1", "resolved": "https://registry.npmmirror.com/punycode/download/punycode-2.1.1.tgz", - "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=", - "dev": true + "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=" }, "pure-rand": { "version": "5.0.0", @@ -39455,7 +39561,6 @@ "version": "2.88.2", "resolved": "https://registry.npmmirror.com/request/download/request-2.88.2.tgz", "integrity": "sha1-1zyRhzHLWofaBH4gcjQUb2ZNErM=", - "dev": true, "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -39482,14 +39587,12 @@ "qs": { "version": "6.5.2", "resolved": "https://registry.npmmirror.com/qs/download/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, "uuid": { "version": "3.4.0", "resolved": "https://registry.npmmirror.com/uuid/download/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" } } }, @@ -39766,8 +39869,7 @@ "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmmirror.com/safe-buffer/download/safe-buffer-5.2.1.tgz", - "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", - "dev": true + "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=" }, "safe-event-emitter": { "version": "1.0.1", @@ -39791,8 +39893,7 @@ "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmmirror.com/safer-buffer/download/safer-buffer-2.1.2.tgz", - "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=", - "dev": true + "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=" }, "sax": { "version": "1.2.4", @@ -40548,7 +40649,6 @@ "version": "1.16.1", "resolved": "https://registry.npmmirror.com/sshpk/download/sshpk-1.16.1.tgz", "integrity": "sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=", - "dev": true, "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -41360,7 +41460,6 @@ "version": "2.5.0", "resolved": "https://registry.npmmirror.com/tough-cookie/download/tough-cookie-2.5.0.tgz?cache=0&sync_timestamp=1632753998762&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftough-cookie%2Fdownload%2Ftough-cookie-2.5.0.tgz", "integrity": "sha1-zZ+yoKodWhK0c72fuW+j3P9lreI=", - "dev": true, "requires": { "psl": "^1.1.28", "punycode": "^2.1.1" @@ -41396,6 +41495,18 @@ "original-require": "^1.0.1" } }, + "truffle-flattener": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/truffle-flattener/-/truffle-flattener-1.6.0.tgz", + "integrity": "sha512-scS5Bsi4CZyvlrmD4iQcLHTiG2RQFUXVheTgWeH6PuafmI+Lk5U87Es98loM3w3ImqC9/fPHq+3QIXbcPuoJ1Q==", + "requires": { + "@resolver-engine/imports-fs": "^0.2.2", + "@solidity-parser/parser": "^0.14.1", + "find-up": "^2.1.0", + "mkdirp": "^1.0.4", + "tsort": "0.0.1" + } + }, "truffle-plugin-stdjsonin": { "version": "git+ssh://git@github.com/mhrsalehi/truffle-plugin-stdjsonin.git#0ddb4110de7e14b2242f7467600d1ac149e2c460", "dev": true, @@ -41459,6 +41570,11 @@ "integrity": "sha1-6KM1rdXOrlGqJh0ypJAVjvBC7wE=", "dev": true }, + "tsort": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", + "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==" + }, "tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npmmirror.com/tty-browserify/download/tty-browserify-0.0.0.tgz", @@ -41475,7 +41591,6 @@ "version": "0.6.0", "resolved": "https://registry.npmmirror.com/tunnel-agent/download/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, "requires": { "safe-buffer": "^5.0.1" } @@ -41483,8 +41598,7 @@ "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmmirror.com/tweetnacl/download/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, "tweetnacl-util": { "version": "0.15.1", @@ -41836,7 +41950,6 @@ "version": "4.4.1", "resolved": "https://registry.npmmirror.com/uri-js/download/uri-js-4.4.1.tgz", "integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=", - "dev": true, "requires": { "punycode": "^2.1.0" } @@ -42012,7 +42125,6 @@ "version": "1.10.0", "resolved": "https://registry.npmmirror.com/verror/download/verror-1.10.0.tgz?cache=0&sync_timestamp=1635885230540&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fverror%2Fdownload%2Fverror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", diff --git a/package.json b/package.json index 1215682..ec1b2e5 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ }, "dependencies": { "@openzeppelin/contracts": "^4.5.0", - "fs-jetpack": "^5.1.0" + "fs-jetpack": "^5.1.0", + "truffle-flattener": "^1.6.0" } } diff --git a/single.sol b/single.sol new file mode 100644 index 0000000000000000000000000000000000000000..45f9f0850c6607da468a5f0a60b8954f05a4f11a GIT binary patch literal 155012 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 th1>#JbN({P_+H^ zjzgAQ4Ofjlr}dHQ_?~UNtzM_LxsRufZqvGV6N70i@p)<(V$!tlH#TtLHogvg+h_P& zj+E5P5>nxtmjzV-+Pytks*Gg4)@|YrB(FT151Hc|?a{S8tu#FpT=F4}%vq z0@77mJ+uurmkfPsG|i9KRrh7h)jOyT;~i-i0kgnslH)pGi4h<9#T7xF0?12ft&|GVzd(d7W8VKJ;nAi{NLybw_9YtQal}&k*>Mv(ja(LPog{9AG z`noyUFXdA&>HlR;f5)8L=($`qT_WrC4RM)Qo!-}3D$mZOGtyY2VC&4|L?&578`UIS z-K_PmIz!K&>E0}F@{4`i=Fx;7StV+Dz%KrP-pb`!en!&T)34`WU`idijTZ(iwT?&+ zA-SQ4WwXtMlQ-oVYf3q?Fb2`cF9r`LjmWRC??-x15-r<8GO;4jPhPUup z#HgjFI|zO4jHux|hyZS7sUgy*W}EEeV1+X$L-3=?jX$< zn_EnMQOl|H#>Lw1R_CA*);H7;fw($xCv3M6AoXgzz9)Pt;3(wECjJ8taVw)dM zo≠XJcrwr3pz*d%;6K1&>0Nx5IdqcYhe;VfWnw)p}iv^Ho;&S&b9UtSF$S1X6f~Os-U+{x8N0|e5<|%c+C5gyOWRn3wZif8rzL49&7RTfChXOn7#KfA(uE(S_%k_dFW0wF6_FSaz+H zHEnwYN0Z$d<+p(C>ZEDOkjfX8jzlBk$D)l(Yg>0@q@S#MHoh!Y)4eKaTq-K;vdr^% z_+9nq(UYm3owhv+ICkIrkdn{%rDe(7{&pP+weG^|JPS?Va=@}2g8NIx@oTNEgr)J7 z>oX1|M&>JGn=MW2`JTg8B8K}~_B$6oUVAz)X@5Tc>z7 zYx8n$;?f^t{PXovt>@vCzx8_eJi7L*dmU9jg|F-Sp=p{?bBisXmSd#8$N2Q(wle+4tO|m7&*$Lz=-vg?-ays%rMF#ZsxVJwtIfQ+uSp>%&*8bkNt(( z>ebSTeI4KBUYI)m!V@kn!Fjm8wbZ!|XZ%`jfD3zDUCXcJRbDK-G45|O*Y0M2qvWxM z#-4qvgWAncsNHs@mDc=Syy*e-LsS>5i^Pmv(ODB7NH>S401?Wn1sZjqll}Vvm%T=bx7}fRC1(kSi^v z%017bIqsgRq*J=kz$2{K&XKX8*0jDuL-Ww73(uAj|IOgWlxWTqn>(`x8=aJrM5Ncq zuPIk}4k+@uhZ)-NA(;U!$N_vNt7F zbVk7!lWpL-{f6Rt=1V*N+-F5zbHDog^;eC5JquP@U)n3UffItpGEvW_PbI}RpThp9 z;3|9x*+2Oos#4mf%F31Xa{S0ICoNd}3AJxFQqC-$hrzjreyMU1oTm*m>kd zJbw_fhP4onU{~1{#yIRP|M`@Y_LVu`?Kp>(ZZUb;)(ppy^X=ES*=sE|25T30AI93t zn%}a_O!`4JUZs;|A>e=Pk1#d%KG%D!<=9K}F&C+GvwmD^+!}uwr5eLfdY$GiS1C=TT1`rA42bG9~G8@E(jtW zH0*~14gF#0X-jeaY{d`bKI?ciG`jsb#;9YjYw>OS>^!0?PAEa@`4fycPN4da2CDIs zhIjQ;#?czCoM8>;eS%}@4b$Q9hrl;Iz);I^m7k?}o@XaQ^E$7EZBEMgx6$(wrJV&G zT~9nm@>aY8;pZ{xlNcNC6*`{hS&^Pcb{vkxgUF{)w;7HRZ`oU`xv-7;N~}AEs@Hcj zW_H9Q`|VsZeiptwHVJP@d&x&Ok3E4%kG)`W0(b%%sr80>d$7r$VQj&2E1*D<$p`A0 z4Cd?6UTNSd*Vgtly4E0i2tQ}X7@73c9m+|ArT$bBfA=_iT(GJ$efFk2rL)^dlZJx( zzMHO6ZrI)O@)00m+r)?d{MdOEWBV^SiVZE zpH~t$a}Klhvbc%4?BAEUMNwl}UOUc_HU*!&S$wj$-$(Fnb{3qz{d}=MVjv~sH*3`T`b!+x?lLQ_Hj*YiDxR=ok znC-c#&mUc)D7DoR{oF{ju~V*PcU0@=Tu-so?c;dG@mTKD*V9`MLTe~CAPynt$~<*k zH9Ea&lh?6%)UpOjtrtyG&r9ZBQv7vjNTlS`xNiPTr}hl|{Zs9i&#o=?BV+fmj=L@R zwbqQrYGTEF;o z6s6f?^UCbG`E!3tCw$qDq}+1DAOAS#+spr!P^;m5ltK{(W z*qM)>}AN zo3Ui@%5Fw2qa{`H4`ck7JtjY`9+Nf_n~S8%c;;E{k9DW4^`IlQS{}4Nc-}v^XM`t( z9KprPOz`gNls(Mvj>BKCt3%2(lo?}1yS3ltS?XTQeg)d${3K>x0x^C$l}T!63FA8v zRr2h#8>ex@9L&ZX{snVt-Rt46IeH*fO zIw5fa7hHrccwSPs8(CUz-&&qe%$`klMj52d+&8*wUEV1rsm~!?4o%HDC7)My_mLNJ zk(^!n9lg!77x3)to_YYOqi9a5=`D{@&%?5+hp@K_WPq^5jv%#1O3&z$J;Ap3mQdb^ zy4Q{($7oAlddI3SNk<*UD0RimGv7Ix`%YXzl|$B^xye=mu^<#zFc0vm=Gd?He)taZ zEY!h3oc~|(o$G!4=BK0yH)v&Qsp>AIGN#-Bo`?LJzN1}N=cx39d>lUZqnOQm9PnGn zsOfB5=E6=vt>dsFBd_J~bgiGCtl~zD`|9N91HVokr;ov%8{bVMen0t!bi=D#&QEn? zt)@8Zf)Z4umDl$#bF^diu6vH4t$nQI{??Lj_Os-LjZY(Lp?y(2u2L7M2Cj%IF`n8M zI=Jq?Zap>TTHfANg}oEhI$x|;&yS4x>0!NhnyWjTEm6nGVep{(7xF|ONgMLZ6N&J} z69PpGIVTuR?nD>S#Zz|nB^~JDByQjv`@$aIGQe!oQ!RbUdw8$zCbTJ%%*@KG*3^J;IfCyvepMci=bLcyKA3Rcmd=H*PBq79zSiD*<%g&1POH7t=QR%y+mc><>%B-N4|94n32@ZVzv?qXAxYb04YuDQXKPnoN&B6l2g5^Mdj%}R4c#DYCG z?@rxNP$Z$vdvcwB4i2=Blxua4&z(-ik|h>CeG1w6ULNXv%a=HDq}({a;$8AjPVxxk7O=?~G5It%@)bEl`n=2yH2lUDnd!)@op-?lP_!j` zu9y-JA?zD=Q&M4JEc^Q<*b0KlZMpi zw*m@kvSgqhP95;)Jtd&szgN!AF8|H5pLb_o>Fd|K@~)li7|b2oXiW59x#L|LbskQ| zWt?Iq>)}`seOm4xaII52C3F{aQB_y3ihX1InFH+nfaR&Pu!b2)fCB4!B_4Z+sfW+@eS8_=QWl{_tV1*Hz|LIWn;HI{J=WN z`ya(Oe4jb#(d@Mb8J#qJw0b+bf!+z&|GauP`fu*UySHPf8PDIlGo6t1Zv1{USu`L| z4UGL`kB%WKq4$0(>402~PGlm6<@v*^HMB578RIY4^j7#6*kC=)?}vcI^&mP54FlG= zq!E73{kRf1d<`prCgz}|b`J^I;H*ac5B5c>Mpb%G-^8hUmm}wRIk45ovDML%Bc@!AJR|Ahay+N{Rp04K=ugepqHU%faL-P8hxs)?^mN5 zFWV)?)O`vsOEXdhgWCA$)CtQSaLW4iC! z)cB@+kLPuGt)Zm`<@|Aat+`(pUN14gT$~&E@HDO{xn#3NYcZNurPutWZAt6F+@gh7 z$v%%fz3ORLAX`9V2v11$*AiM;lcz&@9_j!7UgBMLS)|v+Jn46+Zj%}Su0@v+$uF}> zUcuE<%Q%8;6Tj#=3H?~}oU;vIl>XIr_9pFTOJR5cT=#lviBEGq@=>FEC8=1c(odGe z;+w$zP>=HzlB?ufmUa!g+N%a~cp&}rTordJ@|K0+f1Q(}GqFY|T=iUs4COv!XV#XV zHEfy7eRlX!`D8!1S=pwe%6hMhzP>-i1-@EYJZc=PX%zmQ#H!J6;K#9^(JI+m&VehJrk_0mk>Mcq+Eh~(?( z=OkiN)C!`4~@M!mJ*U<9Ay0NsZ*kngT%x6s82 zgk)71AA3UQ7yDb-l|XL4j7))FekAn~UC+vZLDeQj5E{=pEv_5&oA$VrmRZI>X#p=n z^YpO2Sel46FVp3ltQnFpipnlV<6Kk ztN%(*q0Vq;MFaSV_vzWX8`7@4CvvBJn6g{$bVnDUW0d1T?@BA_sngtRPcGw!gNU}! z9?}sdJ|tN{R!2r7%}5rvKB--nK;6vu1Fk1i6`9-}@38>n{>Y!{SunXKYRgdM%c$>i zWv&q~qunp7EIhiA^(D-#l&8077Db?NopN~0#yww8@W@tu7WokAd+eZAiPd5yWEp@Y zIoGx_b)c(IrdjGCu<$5m5|(bod!S2Lb=sXyvVyL{3G-q%nVEHv_vNfaaFSjkv(|9e zI4Vy>#HX_b18&Qd@4pe~Pud>j?} z*H*t;y%9djrRK`=Dc#Il!;xz*IYwtpB+jj^gj4uPl@-1R7f?x@%zM>B)r&2E$6Ci) z3$9}nut|MEI=7Veq+deVdYw88gOfv$v&_NNnKXP?kKxxA3rMMQuhs>U+ed*Q<2pwL(9rpY?dX{i zfNhW@j5RpALgL7g5JNyi=M|7Fd|LUtlD#F_IUt>jEqd&WPp-u*^0u)Yvc$rxv;zOL zU!3kOAhO?`xw*8uVBDGn4Nmt~a)UUpjxKERc~$0wH5-yP3z)x%E3s$B87ohmn*dH9X~;(U(AP!XKwt{4g-A zIOl9#4A5Wu1n_HEh4y|xA7|^?+bOTd(l*lN($Kl8k{*_{nj$@w@gJ^D{Watb6}My2 z;OoTr*sq`qLw#ws72s4|oTWe2^Br)AJ5#pdF>G0%69yA0hl&}OoD_X^;&*IZ`Mgl{ zm?h3phkPI8YF*zBzw5L~_XgPx$x6tU>imuL|K6Tf3U2GGZCUDlzx#1@U4Pb@&RHLl zm!5vU^06MxudQ#Byk+fI-!u)a%7Q{vmLW1;*DS`XoOkKU;pQcowY-pYxQr@_S^i)v{T& zgahb2;!chGX?$bMAcr@nx$)}J3nh-^i=?*JSjZoK16ea*t9fdQIG&5Va7rpYwU+im>3A^ggBgrN0&V@*DHvGhmf0h2^eg>1^N2xOkUnNJGvD z_b02%x*gr{Eo)XBX@4_m+r!Szxc^*}|3C-Vnv47+Jas$%KUn=Xemw~O_$cK1_4ww8 z$xkhFjM*t;oX(H%MvTD-|4TsC!rFdjSK{X0FrLS-q&G}?mXg!$G2EQ6&xy^gjCwst z`_l$q;rvc;xuqn>@qK90xhE&P#%bF5_0F*4w#3b5slF9lg3bPWI{RBPH`i@2M?d7r z_eg`_+h@P6_I&9%%H_%4^EUU#bf)*sV)f|wqrk;auS2D_w8WI#pXOcqCu5CJb5!XQ z+z#BzKlmtgR-MJX-RR)9Tfg^PHfsT>n-*!kRUKK=xvqz??ms$R-RR`hQh&+HAD+Y& zFKy~Y+SJ<0_PM9A{hG6b*t6DeuYCtBB_52lsJg<}J;7ltLs)5ih@VaIQ<>ee1PPKd z&L^War{!&1kxfg)_?f=G(yz`NQj1u2hwmhEQ->s8DPH!y$TNd2VoCZNYnkwU>t8RO z(UZFr8Jlh9xiwh=`J&`7$b|eU;QlV2^QcU!Fyei3M2fG(np$pvPOrr;Jdt1U6ynDa;XoKJaO}c zBb0+M4z}UHKL!U8?<;3mdKGZn%PvlNPxyA3&%l=y#+GCR*c;%?gDVHbJm^@m$mB0F zUr7}&<@iPK;_Rh`EYsJ)Q4eEP+6PTl+TCD%4q#qNjfHid#+^a^W&ad^Bd_KB5+grf zJ4#x;OFag->2N!0tn)HI{rcpK_4i(E?-%(lJTAUn6NrS!0h2X;*(dw5 zPuA7HQYxrNlvWm*nBNgn>iZwVju2JVdkfM_)uwC(IJ<~G*|T~LLGUoQm=j(x+pueMzOd~(s5tT&69C1+IxBF?^6?f zKd_CZC?jh6#PYPGac2))gAG$owvRd6j$8FtIOmF``tr0tsr09^s)apM6?1pC^7g9k zGx?~=4N;>;TKHFUD!&}AS#RAJnsOo?l+g|vH$CHA8Fvr?Q3at_Q2jo64vD&H=oldj z)x*XKD;ZsJ6 z(&a_ZE~{ooi_aaSivKvir5o5Dc{y*L8|vXK*F|oa?k9C8Lj%>p*L5Oi*Kx_8bKKF- z|9(8*=rHSwX!syY&9Yc5Jk!i?#w(tex@cvr0#Sak?q+l1e}6Y}tsOH?9RYx;sssOUC`x zpgX^Pxq55Lg&^(l!lwO@OX=Ltv!2>*MW)BmeC1^`#oN&(0mO=Qsvbwp!Pqd|>O5MK zE2;Avmf`ujXumSe)qg)8*?x0&rX}<>Eo+|Myk=}|4@H}af3b3&tp?~l1lNV3G?_m| zzUnfPe<^#Y-g)&M_4a8q-}icQJ;#IT@m3s54-ratda7~T>R1UvF8&%*PlvFy0j1B;_{O(4v!O!_3=}yU2FPWG?$af z-(3a$ygZH%MRo9A)8%IV@@voKHw)ZSJ+HBN5nP^{yg%hKtDWd2JeLpSfAKgG#D@Vb zUh}V`I{a#UdNVxGHz(_X&15eQGKw7e5BozWD|tdXX!)Hg1^x+pVP1*5eiMJM#ye?< z7KXiM7W`IxrmF$Rcvmj^K%L%#^IG^j?XJJFM%eaByZW!nI9lvqW5lvYs?My?;p+Z} z!vb5W@oZ~U;|C|@6DWCNEZkf^#q`hNFJF&Y$*o)pUyaivzlv*qH$4#oh#yZK7t|5J z!Y6^_%kjrB%JZN_d8u)?)mm9F!T9 zy4R_ears6>)o3}M11HI>dwSO2Lym!+BIwNezIqLe?^AG-C-QlDc$K9-+^^u#-8mCi zKdo{=j^Z69W#qxW%#n11=Oz29jAz@&bu;x+d=azs(t6fe%rmUX>#6e}OEAN%;~lOk zW%D!4Q)T-x$N1lVyfLPijMwuz-h^z>SP~Lv>HUDcK5k4~EDNmt%hEAz&T0F8>v_5F zr4R4hoojH^oUbsq#x|0vcS@xuRWBk@2btdV`IKcPUq~c}A8 zWn^9UIRFbDaMqW`JwIGWf6rSnKRb%n_4SN-zwQe0cw|mhouE#kY<9_AIt@hjwcSNo zo{pz|O!#4}p1*pQ05x?E3dB{t@3xy)z3kNjW;|z*^Zrb zHB8EFSX=dy0H3us)>k7tHHF0s>#Y=4lt!XG;M(!}%HH)~2kJLEvU5Z@Q|Nbtlz=VnUYO3!U?iZAFU zZY?kOvceL&k_H}se}YOJd@FGLRs6#fkoNjzjFM|&7OiRwO-)13a49^9lB1~2tdpEe zl?TBnt*x&!Fttb1Q?1lV#yhc*&K4hebtN6!xm`hSxdlqeju4IN)4#-PVo%@xa`np@ zYL#+qZ+S1S2G-H@CF^y!s}wAwF;m-{LRh|!C(WEbF?YhX?z`(Nj$@bPgW)s# z?iOA?_tsR*{6^Z9P0*ybZCFZ~Zec$z=C5t}dOMfd#L~_=+oD-ootBbTc0u==Qq@zh zGqu)8Ln3{>#(P>x%P6NjwrZwr$=_$e%FTd<9i&u1caIn7=+SqF9Y*c5kr#uXqy#w% zPGh9%yi2Zm^JLVE;hM3}j;!y7V|I;`l4CYwhCJG%uu9)gx_FaRjrnGbp>pKZv}chl zVr0CwRtMPfIA@5BQFp{rZIe9dtjfjk&Nx2X9q;TOGbQ(I#!X*&+m3_Acxp%Aj*GmC z(hAyEQNc!Q6Pt4CitAyUQ0S)8KopKXp4YAjM zzBbpfnbzCM^{o?prM&D-6}9V&Z3H<6KdGHq4_oAnY09$bK($kqPj{;7PAbA=nYcGO zTBCT3r82xEr`}tg`E086?HqL5VIBRaoXPirJ>D_?-LT!fw*^68lCLWDZH*K5N@izL zACD$gM-*9~aVYU#S0axB(f2%Kd3ZtcSj3>}M$%hw-`0ztv>}7 zm~~CF_tA;CzG$kE?N#t!okd*EbK^=&+3VTvcHOUPo12Tpv+B|QgD{ob)GYwF@`ho%df}!)r*bYr`~WD zp4>cI&5bFyuLnkxQ#?0*e(Ep3L;g!mR(@}t)_#}#R{qj+-uZfv>a#F%LZGfIwi zqCFBtE)H<5K8H zGRVxODtpTj>T9$`$*~xhlcVrRbd7U{!t%Ey#En1mh;jPfLC44OAVM4rf+&Ybo!E~kr#$JFoqLSP4nUs0Ej^6Y7w-cB&&S~D7>p{O2gZ~Su4(&g@rc-k z=kh8N*UJ26PxbBYdN*+6XlJ_-ZZ-DHYuW_wUn-rIddK(ocJUop1&D)jb^+&?RZYudfV#N`IY${nbKPzeTNO8PHgDe z<;k9BTUG1;R4cW6!8ex-ORDS^*(-M3~sT8w#K;nwrebuXTfbsT@L)bP~k=eg#;Jfk&#bA~mS zGTm#%(rYkfYVQHvWQ~H&!~Ub=YAdJjWs7Tji*-~klKZgat)1SFh|X8=OmsbKgn3HX z72O@3TJx0dqqsxXu+&Or*6(s$f!`r-w}spuhgLT7JzV`v??X@E!JkqUO1j^B_BkiB zg}wc3Pl)&y?T;*^4PZ^zR)2|pczIU*f|sI-Ai1D#ClADs(JQD<*4)>zA37cA4#F+OXJnOJ07itf-g*M>|1rU=9qGaz-ikades={{)+KodDzZZPA4n~~VUOhX zaeZE`)k51Ihwu$&wul4d$C0_hhm_YSZas>**3Eb?)~OZXRlOEF(#%t@P5a5(ncL6! zQ}4yewKu|hI1GQ8Jx$oAlCz1Ne0JcS_)TlotkQ+#S$KXBbF-#WcEkr@0jinrOn;5i zLp9H_CBE^-{iGIIRA3P0#nW(%_Y3JxIF|lEt{m}GYJ?uDn%7NxJYr4*R`ezBxRzD? z`|L$9cUyNzySNsF%wL^gQx{{N+zlMKZsws>mcqg_s%jZ zbAA!h`tuk|_~X1D&3k#8`J(~V4g!<&a3^e<7d$YRApItuD46>&JuBB-2`G|^j{{!+ zTGR9P$$B(y4`0t^OP?(Q=I(Us&8i|+rMDqS`u9z|)t`4@`9`m2&R%{5{h-nmUUAwq zEFJt_pYD=T8hlZDHv1Eo_dn@AN3=Qu5TZ|#T8)?bfTd%P% zJFL;*8YEa*lQ)77(9&djkK>Og6!ohoLxT?_U4U+-Q+xRwub5y-YUK|N z$?oFI1;5=3UCWtG(CdD1?6t6%9|YGTfn0qsoq+z^u(r@`Dc_BrX(P-zQtdI*)?}4y z1*^Y``Q1|+EBDL_Fo+S#gMzaGC^DCtTm?WtgN!T5aD&Wo&Bm@ z)!H17s@L}FO;q&V_OTw&ZDhaa$wY@;XFYlD{(YkI!O5-WRmQ8K$*>5<$3@iNI-Z{2Fy zwI<|Sv@tqG@x{%`-lSJ_d1FSazUcZ|y(k?}^$)jl-&$d@@OGRt`WKen9IrrbkK?-wWQ zFz=_f_PFI)@}GFobJn@605c06Mw|Wf-p8KvH0J8*WSg8d8C!g4;Y`eERrOulcmy{h zng$L>dGIrt+NVV=`Cy0*A`k2cQJ`T{23Xl>*%&hYkEaTQbFWk!ROQfV+w_2DUM^!w z@?tz|lP(nHS?EbpTuw|rihkWsV{aP$bt|qV=e*lo%K;Vcl!~o_>-SVs3?g&7@WVzx61f&o(UDdxtVJ1v{_@W&uCnn z_Npz~S@c$B{GPSeTAJs5ZL9i1jgh*4dQMh<92($7^Aa}aA^zUI1Nslzj!5iw?>E?M zXtU3|@)VZJ+>2#g)f2fnQ`A?AIM0hb)Xnf5eX@?cU1g=p-j8xb`?$u5026aH$=;rW1ad zR=ppUh*zRB;TKaa_Lcaa)5G{(uTb=>$&+~_=r>6|9wO4q`RPgL=zq9ulv>Lqtn`|JbOW*Ejb*jkHsl-_rV1#??74l8JMxEKGH71WiQ*{DC4R*BigCBcP)1AycPey5%1rLPMqJw>nkAxZ^plO;x~NuYw<1J z-+cc@T=VMmr;ecG_*C*cRNzTdaCUN{y8BdbhQrmTHNR4J!O``_IAD|=^~l5~n!{P_ zKpInjEH5QiuS~0Hr4}hvKa--CE0dH;&UHpqxjt5|m8ye@+`>93mX1=N$x{9_PtrAo zCLYU=`!Q_C9hFhJ^1k@*Lhqc9lYSMP@v9i+jo_1C2Z!+fYH-M}CO!Ig{Q6G(^4q`} z{Pjls`%Pf^&G`Jv#B1|@wRJffEOS-+!3*U%;k&4j(K%mdygavJM}P9GF$=AKHbwN} zfPYvK)0f|>x8~_kk9o9()0fiIO~oacD!DB zJBxH_P3;k+^%benbwBx*ksp>(C(t9!im2x6x~96Z;PIKEhCw{}B5?NE>0Z+$dvaJU zSh_i3v)>ul@0_YR?#0W(Jg@k$_G9cv0da)Yyn>UNN!$cTD_0FmUz0DTFf%d z@FHhgkXKtzG`0NoKB~JFn%q6@pS$942T5|^s$Up|#>1izKuyLKX^FQ@DJ*~jte<*7sb zZ!y=EsgIn|4+4&_0-`J7rF;;c=g(t4M&*=dcb~J5sQ&I~P>b1H{clk#x)D264nli= z5WX}PQFpS($ljc4P}oaV%AA>aHM}RfZrjzgpR*$Mw2_VaOc(r)@~j~~_gV;ii%Uw* zsQKbg!A;br=4-jgGZa*>tM_EA>jM zXGH@wWcdo}-_^o(?9xf|u;bj|aZRmthC&=@|8k-Z-1=<++f^|~KhaTYPn^ONku6D^7U zd^_|PdnM31>pY5DW2$PyUM(U?>pGTztud>{!thkBHIDVia zId~KgTxU#`Yf&tvu{m!^)>3DCb27nk%mj}!gS{0un z4oEciIBbmWM#rn}!SCv$&!-;9ljc;pPXjXcpRv1}+3FRbQxhs8LgIb0a9VF0vtavt zy+={3Y}}7K6iJC&sNe!IQ4uS;KG8d|g_Ty7`r|1x3>GcLi5tx>dIELQ>}bLoeVDl> zdO2!|FxG@Ao&QMvNtlvF&iY`_EkHu82u_#2gRkIRQSU+gLM>FanVK6--{hX;J>~aU zuST_Ox4f{|=o?F$wSrEEZ1>RBnPzz~^|Oc*CdG2Xt0IN+xvq&@^UGnZ7`mFHz)bGX z6rSK4JTN%^yAxcan;4m0^WZB-hGs3q?cK=Ix5Yj7R71kN4KFu~o@6_#cAk`Ob>m~zb3EZmXIOw7dsS8r=W|Qtopeqo^yklxpncJ*I!#D5C3Og3^E1bU9Addz ztDCz*LwuV_k+qjZ65003@BJX{Y7|k(!0qy z)@br`c>e>u*?pEVD$lhIJi$7h1Enf^c_Y z&nxCTy26a#o=+rQwJm9;GM*k56OJ`o4V5R?cbt)^ZP6Cq8Ro#Jg%|8*^_)1byzV)t)*9UcSVKt3QRb9Y-F% z-80c<={Duec&a%ktMi0zVWgdRZ+0$g0%0mM3`yBGhYK`iwEQ3}J|{$y&+uuBcfw1$ z8h?KZujTFV{@)JjzZc(Jj|%>sSn;)}!d?wu=4$vgoIaU!bf1kXxP5HCWH#pYT-Rgn z9KGetZPs!aqhF6TXjFS^+hGYfZ=GW4{rL1=;3nbS#i)OY5pTvU*8|h#lRZwDfNu;kGm(e~ESh^7l{XkcK0F*LEc2-JEnQi2ABPUZuK8ImcgO zRPvL8Z`n-knp#cP&WB%4u2>q1%q7})v>sE$x|eg#IU`RMthYn2y56Xh{akx3=}}Xo zhV`FaIXDgo!4Gwg^`mXl%NkwJP9X}r8`?A} zO0KM~Aorb?Ehn{6WOmM!^0WS`8ei)vS!2(-TkEPhXMc)$h(LRO=(V0kXjhlmPOkut z=zYO$ak@!TYs|G*TjN-+*I!*rqVF-j74_7{)Ok(9gFKrEvE35e^><4iy8YA(6udTj*beQs^ssevG83jg{by<7bgyEbUx5qvD2# zp(W}k>6X`wph|4*pTr&yBNL$rAZISEA|n!m)%t^PYfFo)m7IW%&!;-+%>Lx6{fU~U zlcLTxuI*iMYDDu0T#qG^0RmSvsYY%_taE-9mbxVE=ce&HMrly>w8CDv=p&|?_S1YPmB)2sx3greKpvs}k3C66zo!`vOx zI+@ilMkYS~KkQmq9`Q@Li?tl5uOy_L zZm-ow99&YD)wOhCwJD{tUb~j$9;f43nYY9e9D6DHjyGX6sa@lBJ8s?;AAf$LLoR}M zbHCGzz`Ju2lXR)~5ZIsRc@1Z$as9-Nn&NPHD@pQzZk^hyyUkui>p}Srr3FLtUJFgK zViL>q4mDDX=#}eE6Vn`%<8}AK&U)t5upPciTz$%?tRHc%#+1KM|MWyD* zd&gF`)a@mWpwrL7n%aXl$K-g&p^JJ5KdO8-Mya({e}{WO?@k>w@`~XdVoLtkSqDU0 zb#InC7S#XgjJG>gT%j9bVpE1Uqufn8)A;GJvmJeUud3E)&M$07nVtinj@K}*t&C|b z?I7>zUXw=_&KOzm5{Jubp!vM%55v==rgtxVbbDGz#zoXX$1`oNfVLHgwrYq!itmNo zh)2a;mNmsarLRJiIO+`SM-mm-X@T6+89&Fly>0;-Fk5Prb}hc9=bP5Xc{P%EB0P<* zQ@cix|Lc?mE3;g_2V5vVu6+e*5~63Sh(Mszp6crpk}J-SDe;QQh)L-;z9O%Sr7@#vJARF*>QeV~(@eV;H@G3L5bVRFnt*MmK`O?@SCwVPD9f*=q8?BrJNKvRIh?vZ{poQ1wODQ;##f7a$fG#5sxSSfoeT3!Efab z9nP_M5*<2aw?WNoEymgrHgjit2mY}3h}ARI_))f1xThz=>o-UG^Ey9dj^{WbBe6Ep z6xt7aY1$bpou3kbJ?f=ecsiWnm;In@iDSHcFrU|tC3dr(1^;s#db^v2j28Ks-UHsW zK6D3Kf$Bm+T}#D_wn}ugs(h&t>UFNS!lliWJ}tG3IdGGAQjT)1(NsOg(5k7=x8;h~ z&#gz@oc~-e9qid?`I((5)Rz?PlE1+=x(B<@@3cBwd|AUeN3~x1Qg^P`f1CAPtA*s% zqw{U0)@v=!B<0EB@6Twtvt~ccWn)h0vl3-o)c?vTj#ug{iCxN7a^=%gt&7fUd1{H~ zxmsyGax7$3Hggx=3@7bkyVK(C1y-O)Vicw}9bIk}$esPA<^3bu5sTp+07-HASzd^Y^x{ zN*sf4;r