From 5b6fecbea733a0da9751fe73f9ce5e26da4c5f68 Mon Sep 17 00:00:00 2001 From: Yan Chen <48968912+chenyan-dfinity@users.noreply.github.com> Date: Fri, 8 Nov 2024 13:10:16 -0800 Subject: [PATCH] web container (#253) Workflow: * Import files from github. Binary/image files are saved in the container, but not displayed in the folder * Deploy backend to generate JS binding, environment variable, `canister_id.json` and `.env` files needed for frontend build * If the folder contains `package.json`, a selection of non-".mo" file will enable frontend build * Frontend build copies everything from state.files into the container, and run `npm install`, `npm run build` * Deploy asset canister. Authorize a random identity and copy the identity to the container * Inside the container, run `node upploadAsset.js ` Known limitations: * Update the asset doesn't refresh the TTL. What's a good API without being abused? * Cannot talk to local replica inside the web container. But it seems to be a problem on the replica side...There are two workarounds: 1) copy the build artifact from container and upload in the main browser code; 2) talk to the mainnet inside container * Only fully supported in Chrome. Firefox may have CORS problem running `npm install` in jsh. Normal deployment is fine. Safari support is only in TP. --- README.md | 7 +- package-lock.json | 188 +++++-- package.json | 12 +- public/.ic-assets.json | 6 - public/.ic-assets.json5 | 14 + script/assetstorage.wasm.gz | Bin 0 -> 399926 bytes script/check_canisters.sh | 16 + script/update_settings.sh | 15 + service/pool/IC.mo | 32 +- service/pool/Main.mo | 92 +++- service/pool/Types.mo | 67 ++- service/pool/tests/actor_class/dfx.json | 5 - service/pool/tests/canisterPool.test.sh | 38 +- service/pool/tests/frontend.test.sh | 50 ++ service/pool/tests/upgrade.test.sh | 15 +- src/App.tsx | 228 +++++--- src/build.ts | 67 ++- src/components/CandidUI.tsx | 31 +- src/components/Console.tsx | 82 ++- src/components/DeployModal.tsx | 51 +- src/components/Editor.tsx | 66 ++- src/components/Explorer.tsx | 55 +- src/components/FileModal.tsx | 2 +- src/components/FolderStructure.tsx | 23 +- src/components/FrontendDeployModal.tsx | 244 +++++++++ src/components/Logger.tsx | 19 +- src/config/actor.ts | 5 +- src/contexts/WorkplaceState.ts | 83 ++- src/declarations/backend/backend.did | 132 ++++- src/declarations/backend/backend.did.d.ts | 114 +++- src/declarations/backend/backend.did.js | 182 ++++++- src/declarations/backend/index.d.ts | 2 +- src/declarations/backend/index.js | 9 +- src/declarations/react_app/index.d.ts | 2 +- src/declarations/react_app/index.js | 9 +- src/declarations/react_app/react_app.did | 25 +- src/declarations/react_app/react_app.did.d.ts | 21 +- src/declarations/react_app/react_app.did.js | 78 ++- src/declarations/saved/index.d.ts | 2 +- src/declarations/saved/index.js | 9 +- src/declarations/saved/saved.did.d.ts | 3 + src/declarations/wasm-utils/index.d.ts | 2 +- src/declarations/wasm-utils/index.js | 9 +- src/declarations/wasm-utils/wasm-utils.did | 1 + .../wasm-utils/wasm-utils.did.d.ts | 4 + src/declarations/wasm-utils/wasm-utils.did.js | 7 +- src/examples.ts | 38 +- src/node/package-lock.json | 485 ++++++++++++++++++ src/node/package.json | 13 + src/node/uploadAsset.js | 76 +++ src/reportWebVitals.js | 13 - src/webcontainer.ts | 192 +++++++ src/workers/file.ts | 79 +-- vite.config.ts | 25 +- 54 files changed, 2538 insertions(+), 507 deletions(-) delete mode 100644 public/.ic-assets.json create mode 100644 public/.ic-assets.json5 create mode 100755 script/assetstorage.wasm.gz create mode 100644 script/check_canisters.sh create mode 100644 script/update_settings.sh create mode 100644 service/pool/tests/frontend.test.sh create mode 100644 src/components/FrontendDeployModal.tsx create mode 100644 src/node/package-lock.json create mode 100644 src/node/package.json create mode 100644 src/node/uploadAsset.js delete mode 100644 src/reportWebVitals.js create mode 100644 src/webcontainer.ts diff --git a/README.md b/README.md index 1ed907e7..213db2f6 100644 --- a/README.md +++ b/README.md @@ -26,10 +26,7 @@ We plan on adding many more features to make playground a full-featured web IDE - [Install Internet Computer SDK](https://sdk.dfinity.org/docs/quickstart/local-quickstart.html) - [Install npm](https://nodejs.org/en/download/) -- [Install mops](https://mops.one/docs/install) - ``` - npm i -g ic-mops - ``` +- [Install mops-cli](https://github.com/chenyan2002/mops-cli/releases) - [Install Rust](https://www.rust-lang.org/tools/install) - Add wasm32 target to Rust ``` @@ -49,6 +46,8 @@ npm start # Run the local development server dfx deploy ``` +If you want to deploy frontend, remember to upload `assetstorage.wasm.gz` to the backend canister and update the module hash in `FrontendDeployModal`. + ### npm audit warnings Vulnerabilities from dev dependencies are false positives, we only aim to fix warnings from `npm audit --production`. diff --git a/package-lock.json b/package-lock.json index cab3fc43..a0e7bd68 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,13 +8,17 @@ "name": "motoko-playground", "version": "0.1.0", "dependencies": { - "@dfinity/agent": "^2.0.0", - "@dfinity/candid": "^2.0.0", - "@dfinity/principal": "^2.0.0", + "@dfinity/agent": "^2.1.3", + "@dfinity/candid": "^2.1.3", + "@dfinity/identity": "^2.1.3", + "@dfinity/principal": "^2.1.3", "@monaco-editor/react": "4.6.0", "@types/react": "^18.3.5", "@types/react-dom": "^18.3.0", "@types/styled-components": "^5.1.34", + "@webcontainer/api": "^1.2.4", + "@xterm/addon-fit": "^0.10.0", + "@xterm/xterm": "^5.5.0", "lodash.debounce": "^4.0.8", "motoko": "^3.8.1", "prettier-plugin-motoko": "^0.9.4", @@ -463,9 +467,9 @@ } }, "node_modules/@dfinity/agent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-2.0.0.tgz", - "integrity": "sha512-Cc2VDAMfxCNIQoaEeKPf0rbS/Y21HAF+eEFj6GfijNnUxS42i4zwUF2PUvEJZqaB2FQwA9SC7MDyuwL8BR2oJA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-2.1.3.tgz", + "integrity": "sha512-4XmqhFR3GQSUrmx7lMFx7DyHEhFkM6nz4O9FeYJ/WpkmPe8tulKaAfgWbWdTSCjbd8meCgKVHo+QYj+JHXagcw==", "dependencies": { "@noble/curves": "^1.4.0", "@noble/hashes": "^1.3.1", @@ -475,22 +479,37 @@ "simple-cbor": "^0.4.1" }, "peerDependencies": { - "@dfinity/candid": "^2.0.0", - "@dfinity/principal": "^2.0.0" + "@dfinity/candid": "^2.1.3", + "@dfinity/principal": "^2.1.3" } }, "node_modules/@dfinity/candid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-2.0.0.tgz", - "integrity": "sha512-poxIEnzErcKBM5yroabQ3VqQpiYZnqYZdLJWFuIQZzioGdP1mlnVLHx7IbgHN4HBlqVXYPFmEzMU02FnyYUA1Q==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-2.1.3.tgz", + "integrity": "sha512-Asn7AfydLhhk7E5z9oW+5UL6ne11gxFlYTxHuhrIc7FdqYlM5Flcq1Wfg9EzRa6Btdol3w58Bcph7Brwh1bcIQ==", + "peerDependencies": { + "@dfinity/principal": "^2.1.3" + } + }, + "node_modules/@dfinity/identity": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@dfinity/identity/-/identity-2.1.3.tgz", + "integrity": "sha512-qII0V91S1YeIz5/XRHomwrUhTME+C3oqdTnb99tBitXA2Gq6LU2JaCLbKbN7ehhSyW6EjO4tySJxANz6hYENcQ==", + "dependencies": { + "@noble/curves": "^1.2.0", + "@noble/hashes": "^1.3.1", + "borc": "^2.1.1" + }, "peerDependencies": { - "@dfinity/principal": "^2.0.0" + "@dfinity/agent": "^2.1.3", + "@dfinity/principal": "^2.1.3", + "@peculiar/webcrypto": "^1.4.0" } }, "node_modules/@dfinity/principal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-2.0.0.tgz", - "integrity": "sha512-cqJ5kOrPpxco+wvJC4TFBhdr4lkw9mnwKGAYunesyqdzSYi8lnFB4dShNqlHFWdwoxNAw6OZkt/B+0nLa+7Yqw==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-2.1.3.tgz", + "integrity": "sha512-HtiAfZcs+ToPYFepVJdFlorIfPA56KzC6J97ZuH2lGNMTAfJA+NEBzLe476B4wVCAwZ0TiGJ27J4ks9O79DFEg==", "dependencies": { "@noble/hashes": "^1.3.1" } @@ -1074,6 +1093,45 @@ "node": ">= 8" } }, + "node_modules/@peculiar/asn1-schema": { + "version": "2.3.13", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.13.tgz", + "integrity": "sha512-3Xq3a01WkHRZL8X04Zsfg//mGaA21xlL4tlVn4v2xGT0JStiztATRkMwa5b+f/HXmY2smsiLXYK46Gwgzvfg3g==", + "peer": true, + "dependencies": { + "asn1js": "^3.0.5", + "pvtsutils": "^1.3.5", + "tslib": "^2.6.2" + } + }, + "node_modules/@peculiar/json-schema": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", + "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", + "peer": true, + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@peculiar/webcrypto": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.5.0.tgz", + "integrity": "sha512-BRs5XUAwiyCDQMsVA9IDvDa7UBR9gAvPHgugOeGng3YN6vJ9JYonyDc0lNczErgtCWtucjR5N7VtaonboD/ezg==", + "peer": true, + "dependencies": { + "@peculiar/asn1-schema": "^2.3.8", + "@peculiar/json-schema": "^1.1.12", + "pvtsutils": "^1.3.5", + "tslib": "^2.6.2", + "webcrypto-core": "^1.8.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, "node_modules/@rollup/plugin-virtual": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@rollup/plugin-virtual/-/plugin-virtual-3.0.2.tgz", @@ -2159,6 +2217,24 @@ "node": ">=0.10.0" } }, + "node_modules/@webcontainer/api": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@webcontainer/api/-/api-1.2.4.tgz", + "integrity": "sha512-vV42eKuat5QGz7agFJupT5sZj0CHOj/gg6J3/HanvgOVETt7gupzR+iuVNHwudS3yuW+x78Ai7T6fwvV7uBThQ==" + }, + "node_modules/@xterm/addon-fit": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@xterm/addon-fit/-/addon-fit-0.10.0.tgz", + "integrity": "sha512-UFYkDm4HUahf2lnEyHvio51TNGiLK66mqP2JoATy7hRZeXaGMRDr00JiSF7m63vR5WKATF605yEggJKsw0JpMQ==", + "peerDependencies": { + "@xterm/xterm": "^5.0.0" + } + }, + "node_modules/@xterm/xterm": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@xterm/xterm/-/xterm-5.5.0.tgz", + "integrity": "sha512-hqJHYaQb5OptNunnyAnkHyM8aCjZ1MEIDTQu1iIbbTD/xops91NB5yq1ZK/dC2JDbVWtF23zUtl9JE2NqwT87A==" + }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -2240,6 +2316,20 @@ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "dev": true }, + "node_modules/asn1js": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", + "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", + "peer": true, + "dependencies": { + "pvtsutils": "^1.3.2", + "pvutils": "^1.1.3", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/bail": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", @@ -2765,21 +2855,21 @@ "dev": true }, "node_modules/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/cookie-parser": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz", - "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==", + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.7.tgz", + "integrity": "sha512-nGUvgXnotP3BsjiLX2ypbQnWoGUPIIfHQNZkkC668ntrzGWEZVW70HDEB1qnNGMicPje6EttlIgzo51YSwNQGw==", "dev": true, "dependencies": { - "cookie": "0.4.1", + "cookie": "0.7.2", "cookie-signature": "1.0.6" }, "engines": { @@ -3180,9 +3270,9 @@ } }, "node_modules/express": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", - "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", "dev": true, "dependencies": { "accepts": "~1.3.8", @@ -3190,7 +3280,7 @@ "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.6.0", + "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -3222,9 +3312,9 @@ } }, "node_modules/express/node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", "dev": true, "engines": { "node": ">= 0.6" @@ -3638,9 +3728,9 @@ } }, "node_modules/http-proxy-middleware": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-3.0.2.tgz", - "integrity": "sha512-fBLFpmvDzlxdckwZRjM0wWtwDZ4KBtQ8NFqhrFKoEtK4myzuiumBuNTxD+F4cVbXfOZljIbrynmvByofDzT7Ag==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-3.0.3.tgz", + "integrity": "sha512-usY0HG5nyDUwtqpiZdETNbmKtw3QQ1jwYFZ9wi5iHzX2BcILwQKtYDJPo7XHTsu5Z0B2Hj3W9NNnbd+AjFWjqg==", "dev": true, "dependencies": { "@types/http-proxy": "^1.17.15", @@ -5690,6 +5780,24 @@ "node": ">= 0.10" } }, + "node_modules/pvtsutils": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.5.tgz", + "integrity": "sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==", + "peer": true, + "dependencies": { + "tslib": "^2.6.1" + } + }, + "node_modules/pvutils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", + "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/qs": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", @@ -6602,8 +6710,7 @@ "node_modules/tslib": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", - "dev": true + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" }, "node_modules/type-is": { "version": "1.6.18", @@ -6979,6 +7086,19 @@ "loose-envify": "^1.0.0" } }, + "node_modules/webcrypto-core": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.8.0.tgz", + "integrity": "sha512-kR1UQNH8MD42CYuLzvibfakG5Ew5seG85dMMoAM/1LqvckxaF6pUiidLuraIu4V+YCIFabYecUZAW0TuxAoaqw==", + "peer": true, + "dependencies": { + "@peculiar/asn1-schema": "^2.3.8", + "@peculiar/json-schema": "^1.1.12", + "asn1js": "^3.0.1", + "pvtsutils": "^1.3.5", + "tslib": "^2.6.2" + } + }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", diff --git a/package.json b/package.json index 0a6b2a38..f580cb60 100644 --- a/package.json +++ b/package.json @@ -4,13 +4,17 @@ "private": true, "type": "module", "dependencies": { - "@dfinity/agent": "^2.0.0", - "@dfinity/candid": "^2.0.0", - "@dfinity/principal": "^2.0.0", + "@dfinity/agent": "^2.1.3", + "@dfinity/candid": "^2.1.3", + "@dfinity/identity": "^2.1.3", + "@dfinity/principal": "^2.1.3", "@monaco-editor/react": "4.6.0", "@types/react": "^18.3.5", "@types/react-dom": "^18.3.0", "@types/styled-components": "^5.1.34", + "@webcontainer/api": "^1.2.4", + "@xterm/addon-fit": "^0.10.0", + "@xterm/xterm": "^5.5.0", "lodash.debounce": "^4.0.8", "motoko": "^3.8.1", "prettier-plugin-motoko": "^0.9.4", @@ -31,6 +35,7 @@ "@types/node": "^20.14.2", "@vitejs/plugin-react": "^4.3.1", "comlink": "^4.4.1", + "dotenv": "^16.3.1", "http-proxy-middleware": "^3.0.2", "husky": "^9.1.5", "lint-staged": "^15.2.10", @@ -38,7 +43,6 @@ "prettier": "^3.3.3", "typescript": "^5.5.4", "vite": "^5.4.3", - "dotenv": "^16.3.1", "vite-plugin-environment": "^1.1.3", "vite-plugin-top-level-await": "^1.4.4", "vite-plugin-wasm": "^3.3.0" diff --git a/public/.ic-assets.json b/public/.ic-assets.json deleted file mode 100644 index d8148ada..00000000 --- a/public/.ic-assets.json +++ /dev/null @@ -1,6 +0,0 @@ -[ - { - "match": ".well-known", - "ignore": false - } -] diff --git a/public/.ic-assets.json5 b/public/.ic-assets.json5 new file mode 100644 index 00000000..772f9423 --- /dev/null +++ b/public/.ic-assets.json5 @@ -0,0 +1,14 @@ +[ + { + "match": "**/*", + "headers": { + "Cross-Origin-Embedder-Policy": "credentialless", + "Cross-Origin-Opener-Policy": "same-origin", + "Content-Security-Policy": "frame-src *; frame-ancestors 'self'" + } + }, + { + "match": ".well-known", + "ignore": false + } +] diff --git a/script/assetstorage.wasm.gz b/script/assetstorage.wasm.gz new file mode 100755 index 0000000000000000000000000000000000000000..b0e0ec09f2f545a83f69c98e69290339bcc6774e GIT binary patch literal 399926 zcmV)dK&QVSiwFP!000021Ke0^loUmlj?Bo+h|Gvc3h)64Qq^F0Gb`fm*#on>Kc*U; zadzE3{+KhnXV307MRx(+LU&Jfq2nH>U!bCb@)lIyPZ706ke4WeASf{C0HPuSq5=aW z@)i*GMnu-DixOv#>+YHCuF8yiZ``<#@7{IsOfF>|4u z5iogU4!2!n?gbLAerjlF2-a@Uwl(O58v+L!^tU#+LEGQZ5Zr)jN(oa5V8yrPRAp&H zusBu|u$H&wifYP(lJ=ku#e>Quvq6QcK}W5jK}D@W4jasm@pZVW;#O7}A2@t)d0nEa zCW#zLv66{coqlXLtbTBLMQrHMc%r<%>c8U1XiKfAt$P4bN$pS(tEs9_O3C=pL0RH$ z7?~NJDr3o5c||;ttQu5R5lhCwig`?Qr&0}YD=JPUYMO8hFYLbasX(1w#*0C<0 z7*v}W7OSa{qQh&z9AryQd+AIpF}Pf5%&d@0&uI4~JrS>tR|Mg@Ruk%mKA=Tob#?KY zO3icAJcM*;tA@pqsiUHek5>jO#{+$=J{cQ0G~3w}B@vHRY9msV!HL@YktHcSpxmFR zO2$EGvOm#xoRH%MI!Ixw?>LxEuAzd5-R~O=32P4;E*mWER zELSqEv^+cz&eA#~mP6rk%Pgk@%yLM3 z=E}Qc0hJI}IVYD+g{W9*0vAB9Wm%5JrEgIzUr7$r*C zElyWZbc;$CWQI`YI~X%1gqgBjWyB%Al}RslI;k)il0h&DVL5DPQRO429T@~%nx%z9 zj_pbyIN0rtiT0HsM${~y%Jj(?haA_St_$cOHvk|QGr&TkoiS2Z7ei(ijKRe+dOikg z0~X4^w8f#2lfGOk4K5}w2I~k16DSSVkk-H$*bo5hcEMmPL_~&?(tO?2Z3k;RSTjKj zrc#?CP>Kn?KE0@=GtQs_92d#R5)8Is>|U#ap%x}ikt-nt=yfAt0qY2cfJPU~*pcE0 zK!L&<@QjObgg6GI2}6{@KugCL)PT8Nv7`d#+08c=tKf2?uRcAcMv(2Q3NS)?Kp?wf zBBb%uCkg=YCAHl`St)fLl_L(eb|<)-g}Yl&Z`73@azbe_Emo6cObHIqM{!pRRdtCA}eOGm*uSGow1kOL?O&`Tg3zO)tw5}GnljA7=&jIL4+ zj8LV4eH}-rd17I31FPmkoRY4@C%A-=5*0faE-Gg_u&NZI5{)z{M^*aL0E#0KOxnrb zBwh17kE$|&c}O{dN=h&^ONc!qC9(`uUx7qujnV;3b(8}B7ND~21YEfM03-U}33@>A;AGm6d@Rm1 zJoPCKBAph-E?4k}Iw1f-*TtM!To%8AdFsN!&BZuHl1MRR;IJ$)tf~sZO%@@RIHkZa z>WmfE3d_a@>fm(7jYhPoX)R)nD7xvz4eGvK-pOO^W@lJ@SZ(3~6Lm=+VSY0_o_HV} ztE(!%FP^Bcs;xm2oz7|Q@H*Jb_C*JmE>s4Q+)hRUP`=Dk*4G8_{Q+>)Yfb5l<$n;`hbTv(B|` zwbUnT6LGZC?%I}70p}@DJ}{Q77=l(6`n%w*0z8 zZC!1>JTzy?t*O0MnuD8W~*S+kHcISAX+WW~Nwvmmsmywg?F#DLi#cuja^griq zVC(4#>k)C39dW1lNBL>-727TT`h>l~Ju8mc@4Ls@*K8?2!CLr9wvC@+ukh3C3_Ht4 z@`w0i{1Q9I9_HV$^Q@U)W=;G8o6jD1n(c4dW9~%v9X^6DvoU-{KqiM*cS6 z#NXvx_*TBl-N{GN5p*eAPR4ovG{=9Ry~nnSZQ`)qhjmyy=Rbt^+DF8v?oR6=e-1k;wt8=Po5fh~9e2I8*?ru7)SK;%C)50;-aInh zpXE&_6UZ`e2Kj*h-rMKyvc48m*&e*#J}%~pIbtGPOQwn!>F4}uF<#8_$FW7?C3@O@ zR-AEXk;&o(`Was$9uhM|D?RJZ6zANr;s_h#j}v>yi`IGa9$g@|(~07b>_su(eZm{< zuXLXiFN+!e2==6S(tAOSBD2LpZ@Sp$wTcmBia6u#<4=gW?5sD{Z}Rr@31R`;L{p{=}abi^Uf96@N)gA}hROe4$uGKOjwXxi{Ot z|8x9`u?df}{-$e_({H@hWZZF_EV9lx6OD1kKfYr>O6qR@$mo6dQnHa;vj2G>If3g> z;>P!ldlJuE$LXtNr@L1ibDwutuy4dR_IvgcnZ(YE_xM`zDm};F6syEMe+gS5meGsu zO7X3`QS9Io{0-s^pW==8SG#YB5CxG%XE z#3{Z^yzDKe`^9cD&26Eh#3r%Qo9~~p4|tE0huA4`*WaxZ3;gZgbT-j{Tf8L}`cu7T ze=;3u@8T`~hu(Smr8UA|<^6#jv_JAj`Y*e$v#oR|{=jHg(&N1R$__+T>f6f>KdyQs;@w*;y48->qnLUyDGyNAfO3k~A@SOsMjVS7C-mQqZ z)TBjLw56%3>9_v?EGyb9AAcbX7B-_Z&FZib#?er9kyUD<&^8QH%u;ivS!6`km_ezVFU`aF0HAri8xMM z5Vc_C%(_1p#?|JU>A9ij%~S;bQvQNSV4VRYx&u{5EScV471@wZcprca)&sv2B&ORh zZ}7XB*s|d*(e)S?e!EcT_J(0}=+g0;Yp*k|?_^vp6TrqYs8uqkv^shQMN#NmD$Sq~ zm0})U{LMN9jL>6#1TqCreIf5*Q%;;K??zvl{s1qb3oaj$ouO=xIw=<=lH^(|My`jo z429ZK^PVfZ7i#lEjDe)?P<7Nw+Zob!UIVjE@0mA;^hMxR)aq+;?Hq+0m?+&hq^lY0 zqQ(_ak3!>_l(}l$l(NC!&(%FGIj&}rbTM|ycBqqfs4FNsuy@U8&ea?moa<1w6`g_8 ziX|sp9hwmM+KRzfNBIiuEx0VuA- zD!U!Y(g8D3Z*<~R*=;I*SjW%M@xxj18^omGrbTylf%uilHu^7sKI1m!El7;Q8tfyn z9yejoURvD?qX^HA?+a$Cf?ILAgW_rpo>rU%9vLiiDeh;^#XQxF!N)+1R`)VdKOBg) z;(i!ns8j`UJZ-DUVQB8K%ndBP4ycbfFj|P!qorCkj@apTZ}h^YVg9=X`M6i6I|5}w z5y2`Pkc5Aey9$H@XinPRuoZSfn*+4z3@kL|>T-98D5)kH8IU^UhOyorkfw%?J7GI) z0Yw7hdsSLWeqbR0b;*Ly$dei?a=Fr+rdFzJ>*naflX*>TU(nR{1jya3k-J+rwRj#% zehnx=X_OodW*;*3_@J4E5{Zw9o!PAKDRQ#fodxaAlIN2CB#7)%HJvaIqRD-H5C}4P4Dj}-S6ZB?1ccDTOovjU*Z#kP zZZ~!XutpV%qKg%|h}c^UR=U2W3QT0 z#M6_O;v&%xLxD>eg?T>(KLIyBpb+l5<}|L>b9s#`AnC^S)9PsZG#G!X%jWN8O@fhDx$3X-H7?*6L`FwE4G2R5JfooBw&r{O(|HDH{1rSzk5mq|E;|+qquobZV%b zJEn(bv`1fa1=iK4AZ-T_mNqMMp%UfER%28Ky$D0;SPCi-aMT_nU163?0S8?Sn2h^}jtU zv8OZ_MLQHkZN|o^*#@;Y%2?lSTnV*iA=LIU@=?1M?C+Vj|7RMucWC=BrR)zY*iLWm zpAFl|&Hb}s`$TG}y?a;>&1ld6McC%{IKR4&0U^;)G3Ezw?qmGV!Fw71xah6Opx1DK z=vV7KAn*&Kd%KYaaKYXF#vB08ZO#L5K+=KOode*1)d2o?4S-F}IRM_>oCDzP%~u8R zz$?DXDl5CocxPcD3&55Fa4vX}-he|Jh*Fxy@Ae%0-lOsRD{cNq%{llzpNroUx%fSj zi{Ar327dK%u^8o7cXa|&Tp3ONoj?O(dj=cK0aX{g7 zW8?=qHy%gX2gf=M;-t2JOzy#P@wuFXPzcU^v2LiE4wDIaA-*X zvV;}ZQ*S{M=V^RrH|YW2`z%^ss1hPMm2mVzUL^!1T?wO%>~=oN(4{ci&{!IKu`Iix z&%9Wc-O#68EW27mFE4x=E&72@qfJJ3LvJ#4F^mj6n4R)KxAb)vbE;w0#hhwbaxteG z7F{g+Z}$EL&aShp7suCi-}jz1w`49!v(`$|OlU*Xw9SOH(5`9I5DT_oN6+EE z(?362`bUnY&9n_=kO-p$3|Kt@q8TyeHy-M7)F1-{n4>`lPCO@Skcd&EMj13nfRz59 z@AJIxy6nr$o-{4sIq+#_@3r6cUY`5=ywCeQ-@W#z=7~>q$`fpuepfTa>)J5Ik1fZ< z{n2)O5oY&jmzwxOJrce+nBj|qiZ7l}RCPYf7nibpaban`_|f)8?%Jh{+!lNRGq;g1 zCNq37srcf6TEVxoeDSMKXZYg1PiOezolj@@;_;`)o-aGMHO+TM^5508{$p)u{YMwE z;D4kYX|K)h-kxqEZS_bp5hG?rVrmY#p9mf=H&3`jRJtM}MZz|dn z>N)jI#T|WZx#P9%1^@c?0zcu2JF7;D5vFOfSI3i`R*dkJn(SFU*{gVVkA6#i6-K!9 z%?u-4_-2L?&VN%e!qv~Ij87P#>F^YgdI1(%%Sy!Bwgl%t+z#jKGdSPhYy|I58^LoK zoX;topHN_&{#FL(v){_#eCAtA;{1o(OT??&OTuZk}6TOE~7$LEmmD8!Kvz${Kw<73EZMm{QN1UAclTJTw0ontdFaatHu z#A$m>MHh%`Nbvqc<@mH0$h>eNIg>^N4MAcI%kW0!kQb_mi2l-7J}Kv{k-goR#iV^A zW=mc=rv6T;zlTysy-#W1#KEt9(ufAUubI_rWLfbUYkYo78xv*}P{y=6#|0~^SKpsk zM%}bMs#RV3e3usY>UKoEv8^xZ1?gzDdqYI0MF%tjR7Dtes zA)ffF%Bnp=e= zmkDQlnDfp#e$MA#?L}U)@e)ZIG&eE$z1eu2G!I@Yp*PjLWjYCfaeT$2c<;1hX(MoT z5is}ith!O62a~A$hjv)HrY)APZNSibGZ=E>M|UcBjFrK_gfg4H4Z7kaXb+e zDM_!y#wYTr5GoZXF=c0hBogm2Bx!{mBJI4#yz+^L_w9!F$JP6G`h5{GuWE-!Hev@2gsC9v4*qLO~d<)a8&F zOCvwbZM7y5q~!X!T?}V|5F%iV*b6&mWy4~Q)1;KFw^~NUOycv5JU?sc2$}K52$^v< z88CBAlf-Hd;ILK5`IG8};ldXe;7UHEJYFzpu4h{lR z7A)_t3VxA<7o?FLy`|36q^XnWgH9-TAH=-MWo=6VF0mMNuzV*AlH^&;YasLmODS$! z&CpdVvEul_R=imG!FKfj!ua|7GS9C|QDW#cNZ`$4!;%b!&O80{$FVJZKSpVc{JN8% z;l`0)Qz}02u+pf9Vln0IGvyQsd*AC}S+GeIUOC1zM2E4(2#yn>R_7KtX=OD0|A2sONlNbst=hKYckdRX*}ets8yiLCfbCMbJn z^~S__!knJ;ju!-2EC`)AV9YQ3C4~FQ7ndmHTrsAqg&cGy%%>mZQiVkDB#966mU}`E_Vl-lsb z=)7k~b!&pne1c8h<7N=+t2p^EM?lX3=q)4d8P$GXgKIhyBYE#KVgJ5qh6ZT-G(dQBP zKd?;T?Btqe ztTiOyrzD{FF^9=%JR{}CmCJdbl5&&JWTf1|XIe@*Cne=>E%S*Fwu$LsTJYWUGcn&4 z6yG_*XKDU}nVRJ}dVuilTgx$B#$nB}JIA))s>esQ`XPvV+?E|r>;*{gddwy_$py1{ zzq4Rv0;pSUdC0_Vx8-?7S*-BJE*f_|lkIms_mta6f$eGa=0jklbQ^yc#kP=fr7bA0 z!3DU|zI^Iq?_To4%{_~_(r)h9m3B+UmDa44reamb!XT#(S&AzX@ zJH2=I{hc;^d8Z9u)@j4LWF4^&?`YPC2T2V}sSf>p;UiEFAHoUddhA-)~;fp(McuS`ZZ|=0=_D&nVsMChq zI&C=GX~V6ZHoU3RhBtQF@PEG^(5%2NphQ zMAN@|-0;4hH#!|?Q>P8D)i*oMXL+;JR5v@DfOAc!Q+YwB4L5e$aHP|Q8!nd=+{V>j z-RY3)J8ih`Imgi2vTTsm#Z`7QvBMmDX60_6MZ@ z%*u+zd4x=LgWL6Yxc}zHeVs!4s!kiOes(~sc%2S3{458mUNJE@*y#p%;7V;6D=Rx4 zaz(l2X&2j9PN$vpT`^Ggc8c8|6*=pj%@NnY393#R&cZ3meATV4Ok>~danOJEbn~Lx zr(80lS=u>vcDB~FXtINhKhE4yHL01M^~aeRe_Y}oL(iS1NT`*KvX&i{_*1#8oWZ_& zP%6tgsUurHyHz>}`qXz9O`BeMFnVPClg9l!QZAuivog^d;`A!=;l1|{1*6mX<{9?9 zf2K`)gAUR6tdXMC=h2Co2tMlME z4S8^I&KbH%9vnB52WL*U;5dNErSss-#g0R1awY(yEUc@p{>eV=JN_}{Ls5l)G;k{ zR?0!flbFMaGTaggpwr9U!s~a_8En46XR{!SR%-_}g1oxafqDT!lK-p{?69k`Ldb7U zT;n!-7L!S(WO;%IAD#%YtS#u1>oDWJWq?EPjL zZpG~Rvy(Z0)|p4DF@On-|IN-Y#jlhUOkEu@GO4MAPt^{l{Er7DC&yf(z^W+)MldO) zMWyTKy-%0)aS=pg$b>O(dH-5c64N1RnUbN0RT0XyQSoQC zM(#+44>{LLmJijVIB!(9;zM63dmYdhCtq>0$yb~<$yZvi<@dFhWg8@!hjPGmcDPEPf zquyE2);mP8k?43Q20}}i&$Wj6Ocv&Xf|*8`>s((6%y*XKymWkDZpvS}6P|&1KjYKp$&Q=v`?- z|AWgT^zkc8=wo~#l~CN3CG@Us3CyE*Ft27{zQ0+(?@tT(b19g=USNKoz+7EMb+VUH zoi>+ITfjVOPw162p-)~Wp-)^{LXR?pehm@&i<$`iwst@-Wu;5=HtKMC8-=7$+V%Dp zS>_(vtT*2VZQ**mt(=D4-`Q#RS~2$YFyN?5xap(4zBAl_fI{5TRo4*oFM09%Fwhr_ z#MR2tuxie4lx)EdGCY5-hPIgFl)Ayoaho~i{FsZ0{#Oba*TOg4ly6Y^peFTDDcmbp zlgo}LUj8EP3`YlYA}6u}{e=sO=V(BjEqq^6`BzTF-sRuT3w6z@lcKrgPUgpo<&>AX zl@l6~Nv&zaX=`q(%ScY@LS^c3fEN%JQjVs4G~nmiH=PG<<>8y=$lN>mBJ5mz>Cj1{ zkx!_&*g3?~)0l)I9K5)`1T?qyeB-drj!fT)59{oBaVxWHOGH+}M+Frcn%uHNP=HU9 z-sBf>voi1JFo_%o3+MxyFefOZ<~jBbqPc_Sj-NU#%KDenJU~)cv-ip2dfs$R3Qx8hMiOX~LZEArI>+E*tS=tY7q>s3wz4e-H8tjT?sdDM7 z#K(Qa$D&VVnFmzb^GT93l>+h`<`LN`otzS7G{S%$p*0}mp>m2Ba6@X>@NQf!4BWE3 za8AE)hF>^~dtLnfG+xLjFXZ`xM3ot$q>{{-O0=d@%;cjlCGP2i>U{cuI+rHV<>*7P zlJ^0XNXjpIpH^w4LYJ8qnWO@i>E}U?w3h%UIq2#h;;OGfCcg{Rr@hV8;b#go2M33= z(w2t17l-Sv+<>E5y9o+NyA((WdLMGbvaq{+$?x>bxQ~Vuc{R&)2onV`e?}bKg2gZw zu){sMf|xXLQDxsXk^i zeVmBH6dY$+Gr|)uQkEzwpCw3@v4%-4FWL7~AkE9Ecgs@*`lMnd z+)S)Q8#K+Q&~%TQ6n!tyq!F6I&id5x1FOGdUyapYaVy!kzA~H?ovCZ4Gs(rF$&3vP zGf57Hrfi(3YmF?dlvBq-(AN=>b2*um+)Y&zLn;v=_VZvB1)DsRn}+#Jil%3nrX5L= zvnWkVB*=V)E8CzsDwbEzrJB~v(YW!NfLRw9L{RAy?W5)$w!Sz$+YwDCO=P;FW^ zPy`tWd+XXO!k1fD`nhQQ;rk==0ioR#)rR?DLSR)$*QYO4o?=#J(j(0=3k!;4^n=r1 zZFq2g5x(4#;maw-m%>I<1Z&~~)ysIonaCiPf_;XkmVkW*GUdyIN7-lYwvctA@aDk5 zWo~{w$U&~>An>$3;9V%Bw-+gO{U>flRFrX%_C1*GFIn|Xh7oxWJ`gww-1)3LS5Ehu zXC?k-K6Un;o8cLRj)k3*6Gxz%4w&!6y6LRpEzix_eHuFd=4umrvMJ7ElH)vXZf`1` zx-zEH_D}ZqxQU#ZmlCFZt8T% z8#`@yL#GY5blULxP8)9SwBdD~Hhf{H4L5b#@Y+rrUejsA7j)WiW2X&AI&HY2(}q`f z+HifR4cB$raBZgz!%iCpoi_A4ZMdeqbezUer=6|twBf2w8xD8caH!m3o0eBs!5!}l z)nu=n_(}3Qm)Bg&tKhnYY?(>-^PZuYGM)=$JQq?|!7Ck1H?N2-pScQNQV-Ns@S?R2OX9HkcA#sqS0EaLFz3Idu#CfI`z` zLo8P|ek%@U*y3o>7sXGfoh@b)mfvnSx?z>Us)go( zGz(3(7MiUY+KL@tJ{VuS!}&{+6J9%&Crsg${U)MNn{IQraD|79xWes@UExl~72fRD zn@=4^oRDbBaT9(qv(7UIl}gawMtht{WKKJ^a^Cw(I_CtW?|5&Jo8(- zJl*s)nWbNx%TYukO)gc`am}TQ+^m`r5i``@;Ge!S2LE6=b!foJP}HG8li&N! zs?p)H1{aO|_I|S*#CeGwzQ6;gJBVViQ@{l1Ld z6JO*~e38@Yc#V6lb#l646GcYGErO^LhS_Jx#a5HWh>a!kSm+-gtR_3i1RyTj}+A-b&i`-f9JGY zO{qVX@X2YD@TrCR8&cuXR@PDGDEFbM&=Lozzl~Eo&2fq+(9M}7TiWR)uhXd{@l!0C z=Ub(C(j;hT67&mM@j0pJ8A0c`lt&CR)FA?Oduv$?cFNLG`5OtVa`u5$GR9A-Yn}6Q z{9$L%T-F@DqSY0kmS;#R@tJ;Z3ND;w;^LkiRck3!OSO%dcNz_-Bu;>N(@jjHk}{1dF&QFVVf9GD*&$)NPIgY&&+Vcw zNLQ%7G$@^1I!uPNiT4SWu8<*?N>^C%OME4TzvTU5mMGJgQVM<^sJu#LE_^r1v_Ddr z3xC17+4vupR*qUVY&TNG5N9rQROZ55CI4J(uAk%EP(#m-Az(U+)+_qC#noN0jk@C! z)YjsrZcefR!URz6FEcjtHB*)=%AJ|n;C?U zxNvx01yJRZyUe-FU1pYc;{RZncyB94PT)qr{x6?2;?nJ0@Ovg7k(`J=%s-UltZrdG zb_O71$Vdty+MLym8FHTr%o?}(X7`S&zS8Ejy8sKsu8`=W|NbwZB88Yk65n^}IBby_8RCM`Z7q}$exBuQ*JlhjBD z5Dtyc>aD?7Ebr%;C?;*$ujNEru|LC>S)9_2m~@GBWvoZ)NGf&1o&-z2Y;-EoyE|>@ zUG8?G&?w@&8n#(+5OyL2iYsvaItc?!r8Qv zwb#~yvUyD4=^a&#-s(pfvXN13`siM@G6=kU#3 z;*B`MMBd@Jz^cAKOG+@$!ouKGgWUaR?R1ihPlIXl+YR=-78Db?ipkh{U0(E#u$#pM zJTh;0h3h)JC7fa-iKLdeYTW+Kb-*gF>L&GGY@<8zCp(ToWcxwDjzE$!Qk5Wsg-&+y z%x(zqIo}A31;;4&(_0I9iGzY zF{h3)V)Uc^=CJUFpvsn$4PRB2sD=K!Ynbd`6sfV;_JCWUK*%rB82BR_3lVAW{aQU)Yxm-7?a8inuV((P2IlW-$NW#{Kn2vY zt3C67JI8#Xfk%-1j|87f1Uydxue*+YB?GUAfoHurth@oUps6wNx(Ik(47^^_l(Yd3 zN(96*HXpRK>V5T~&o2c9zl`ctLD5EuL$duh8MH4%SeDf1CO8<}d-BMVM^5UIEst{X zqXNB1eVYhzCKLe^MQm&Oe6sm^{BA~9$*&*)y6jg$2{r65YJTrdg|RNblHtK(WIY&G zqD#*_^GyE!5WiRNqnU=(c2~8ZFjU@EUBQ^cLJ3Df4ataUT{Wr67{bmg(eGGdLC+Kq z3-S6)^<6K{Qs4E;I6qW&Nw#0vRb9zR?khMfsnM!{IRg)NdlR)GWYjH#e7bSn(;*_& zAYggW$SU+@pfhauC)n;MZ1;Z;W4m8rI}t_}7_=Wq)(ko*3_66{VGS%gAG2sTZZxy{XGl3x44-* zWi{GFKe@D-5ZU)F(^8nSo|Rb?Sr0_^8yXFUbppusO$Ni1l`Numhe!NR$xK-h1CfB8Ofn`NnSAdm-niA=s3& zTw)Ti56#}>+1Db%Lfj%Re{%B2l|PRBvE`2?f6S!ILYU7V*C>v@pzj$;?1w7So_KGFDvjCzNVPb+QM zGPJ&`-v>@9Lur>Aly*^sZxLi|J{VS`Z)7HR0HL z2KKcK-~mQ}J~Vk@aH+C=&|*w8J*Jrk8`(9xsyEQP^nq`Dlbs`0AU%k!z>2a_Zlpz5 zT3CTU{eMaIxh2(yQ>5BJp*ISJ-t_O5LN#ZaSnXEGOTR3nT2`b=51L4IG)t-vf2XCX z&|)hpZ6Z;-4T)OM5s8`&Bx+n1i9XbUG#wRM-FC%k)oh?uV@X;y8)(&7Hm#Zsv}!16 z`l3#y>Gmv%KBT4Tga4OQpIcJh(_Wfx7Ye=k-z|k^r0Ff4O4Ao-Np;V%ofA))B!U)}(3a0tTfRG5Z23NH##=t;dv43Oqj}5s98>92%cs&k zOHt_#q0&2>sPw5cmF~<^=^jm`_dn-U`qc8N^ku!G*W-zJ5Bws%u@fJ=blPGyL>AB*`=uTl|rRI&_t!5O;hQ; zSt|WmO{H&m&Z+dX%cs(xS&B;U6)OF~7F7DG7F7D#?`10e4_PYx8RYjda7ivlADlY! z{?xrsl#Fup2rfd-BINBb%9J5A{SdzW8ouRySH68vN|=?RX?**Q?|e(zMx-##SobtmsdhmIXLqQPh~j`3T3$nNj#ke$P$L>suIWiitd(JkYt_sY-f2zg?l z4cQ_xIz$Z1I{abqPR3fjRuIC zmjlsK7NW%lh!&QBsBnV?Zm?T$gM@QnM-g*Fp_v=<&D@Y{!*^{*nra>?-#k*Tc_g=C zBo&M&PL0pIk|!W}GVfNbvZ5n6m3C#h-<4v00$$qIIWh+gUYik$pJZ^Waqy&DGu7>H zHg;=eyEU`jV(Z}7*BM<6z5loW;*_}9uDJ*0b}cTqo4RGg<#6qWa=56h96HGrQYUkT z^rDIDTQ)BEJLz(`7tN$dG1{ntzJD;E-J#yT{uSoR z0dpxFB&m#0LcQ{zb;0pWUZhKATwV8~>8mmaTdi?RrO+0Xb3(F<{B_z?)pezBxrH}w zWs;Izr1?0N|CB~!dhrALDsf|lT@=i0T@)M@cJ0;`c1@|UYo{yhqGD}4J$tLZk110g z12cHIlbOsgz7eX4^v62}E^4t?eyX#zrYh}Xt&3OMHKo$7ovyUo;lh5Z<-&MEgTP^9 z+1+W>Cs$>6ITHa9L3H8UG_%hZbUK2c;@lHYS%IzSh;vU&XLC>Bc~w8p=AQU%Yt(oe zBxY|nKy{e(MNRoNm1BJj0#<#ciPe`mIAEPD!Igvf?Fj{xig(DbMllV z{tyA)RAjzUemj0n)##Pmx0g&QF+Z+v-xBmqzI`igyhAn@PdQlz{9BU0h>unrpx^w_ zc97Z# zZ?08(gLJXpoD}P|)WnlSWjt{y){BXwSnpGEYkpcUK%l&p(2ZraSPVUrT#vk%7?SQ{ zRC8zbhk>Q1EOrNbjOb%lOu3a&ok1W@+4Unyzg)vN=~rs_PFp*wKZGRfRz0Ri)bOpu zx6hxlkQ?rhC2XRGkjyMH#A_EJf)p8~O8IK`ZC}dQmQucEs+6ypE#+%Amhz=vyF1|K zpJ*>Ehb3WJy3C_w89HaG97CIozc&MuZ{j15nh5Q4W-KI|mF>mW)P2axC|kkGAt_~V z6CgiYiUqY~s9{;m_t(uQ$DT1C^Byl@DTbD{Ma{I+nF5f^)_7O)!J8?{`0;jV8_u9D zRr^z?bXV2J-v>#U$BmcWKY9cpP4|@3nD=rtw7{i-VJTi^3*R{jgstm?brGhoa z+LsEprBtw)Div&IO9h*arGh)e*y~#E33$G%(-`~xRu~gBEr-!&pAFK0Cxtv)mw%%l z|E9{T*l5kLz-7xiV+&VC(>7V<$J!xibp}D>&30k?!os!`7B*9bh0SbXVY9KYaEAy= zW*Zmc)APM5Z8pBMknCutEv{c<10X85Pi(Z93X<({G}jtO=dwEwLD@MogQJc16lanf zA$6=63^=NQrG89G^kL)-!!+W^&M4YO99@;cQK}HJ#?c~$h;1oEY^Dkko7qCdW@91Z z4%O9q;Saj6Mii&QwarNXh9s&H&( zD;%4R6^=VZ*K6BrsvwQ7k6jr}b@0k-s-r;IYnP*{ez+Zqf~+m^bQ6jeDTr)KL1Z&k z5ZTNYL^c}>B6o*A>%Mhn@pnMM(PL<>;!{v_n#uK~k!KvPRM(1(a=%4TB$W%{+R10=nsJs+)2^U)u);-eRUd1}kyqw&k z{bh-l5%bX^D5`CvHUCgM6s^smXn(V2TBP2xE%lboRJ~<0TW{HHthd}Dihig)AFWIC z(PR@JT?0PqT0S35Ts|LN13v0%;-fAg>4z5OqplZa_~_N`khCrITODf?e*>9283N5w{%nzX6+N)APzvriWF-G zZY0;J85e7Iq*ybc{c|<6#XL_c7uvk3QXiV}SpXbXT&y|qA?aexnv0ZgQL-T(v+Akz zjA}MY>U<(+|nVIIHoq7RYsB@-Ri*}=zD{XN6hjQ%IYf;+ysid^?bdtz+I#t^F zq9||%Q)6joKHg||0#bQZJJPzkt=+ysPJ!%HdFPR4hh(bm=Z@+t=wsKN)mJE{bWz&b zhzCH`Q9G$FB#7tnTq*7BNOeO7q22n(1+_(Ks=gi97B%CAtxO-4+`GJ^l2_xXvt6a6 zYmi8}61cPmvh_lhCzpS<7kSCXOSY`a#H#Mio^qtw=~~%R?5O^LZ0Rr9jIxaYuRu`0 zB!z-Xw!A@075szk@cV+c_`OEcqQY@p*qL$cG!}MlVbh;!B{NlyQSC%dq)9wQTjgK2 zGc}nnnqrHL$5OgYm1k;LmAuU3mSji98S?>EqyoKiNCXJ7D@RXR zjmJtd@e74#=W4#U9X76Mi;Zg&Y&e-5-i!^qF^6{xY|JkU8~3)B?VLP+ld2zVftXLT zq*Zymb2zNvpoN^|@t)4)@m8wU${s*S9&bK?uv#8K97FEz8TowL)Q1u0S{z24%bcw6 z8V;o>%H@pSwh&h~qxWIXipuJO>r`WDCrnLR$mnfrdgC14Hiz4ow0_hp`6m%?o5Gzgl_ zV$VKhsbkfoY=egC52*7hRlUJ&dzPq}R8?=dXrg+<^^$m4*X-Dz6zTwNc=ga#)f_h3 z<5F^Anrqm`1jvOYwlo?ST-quXuHdGQ6qSirR63;;vlz-aRE|*FtB5dA#=-R+sodal znQANkk~wCVO#87t?mH;s0GP4$;Owkw>%Am(8{|t)RTfE3E%Sa3X?=gNEJ`SK6t=JF zC=BAg^3tVZCm0)9z4cO67viJVcH>*7)P?vh>t^E{rsiQ`Lf_nOWY4w#DHl_kGEmuo z4cyAkb_BPj4Z+aCD}CIo>E)gs)f*FX$tUFE#N?799$y_3C-`i6 z#yl-W3^gvM1sAHe!Yj+mvI_KTceDe@jTyTh|HQ_A=`YRdLW6*)2+ ziyV=qUhH7M^a{nZ)-q85mc8lu#lb5s4+mrAtW?YHMsA8Vmi?r%#*>gT7-b|1+!UL$ z{Mgz?`iyeILR})viA#i4_JkFZ2Cw3d~^@07g z)vV>Ft+bZAyBw2~F6(w{lg(?x=Dl@!u~*+O;fGS&)Yi348|a)NHJUM78bZgEEXEvR zBEy2or;PU;8SlANZPT&N@y}9`=*7*HIK53hP$f=p4MXcyvT;|Kd*nion(ONK{6gFk%D=2f* z7WtPpJKF~CJX%IAd2P#zb($_*dcaanhK9nW$4oKsxEO$`HX?eXp*9}ru$EHVYn6B- zmb>3Dl!!=qDB5?yPKwrBmhUgO;r(r~j`M9*1{JK%Us{$yHB}i@J6#5~Lyyz z)@8PT$uir&c$w{QS!Vm2m)U;%GTXmsneDeNv;F8Y+izWF`EjtzhRl}w_L7i zWVa96zJ8f=*t}dRe%&$$c;PbJZ))T2JGCr#-?b?IrNUjFWu&~RBIOqW`U{r1#*NEt zKeEjB8dPfWw>?bOH|!PTFpI=HT5RbZJrR3E54G4U9o&z8+m$-WxWY49FY?UTi7L_{&v$hlDV3N*wNhLn zr~h2M{dF^4D)DQ8V{W^_#dq^ttp!ES=aq6gm%3}aDhW?zp1?Z%(LB;FTGa-CWozas+PEN6QvQ}eGCRO!rhM){Baf7We#a}TdI zqBBLluPh$pT~Ke&F(4#w=;WDY8% z@=9GyAI~d^lsuZTP`J}JEYm8J478CISyy`9A)fhJrsv~0tu@3c6>cGUw`JGxZo~%! zT)+sWxAhD2mQ-`cB~4Wkc8hN(FWBsRMkXztB$xY7*qH}-C zR%>5g7->Aub%O~~aoylkM%{m*_h|`D#+`DOfv*j=$Uq_cyd{K)I=Y9Y8ol-|0G~UQ z?mklpY`MOlgd0IhP>00?sL@`CC4(kesCyrB!y6E!WT-FpPM^N-8jhYZ@2^>=Lkew+ zzeOFXNKn=e+~$xjXmw}u3K#&d+0>9%a3(LyM10?MYME~g&8iulJ$c-Su8AhUs&k`B zUpKTE^eUPd`j@WYtJPhNo9VtzBzEJ!%H@UBL9U0vQ$}M?o&pv9IDB16^RtxIZrhO% z5f^dem#K?o3t3PFVP`cUDU40%_X$@t_8}L^GMFYOdBB4%Yi{Hv0sz!O4MAs%UilUY zSySMQNl9vOAE5b1X4oHlu%WeP` zhL;ExQJ?p*B22nX(3|`6P~e-yPTil^NkWQcO^OQ(DN@`>3mdf$=44R^aYJst_gA)-w93xG zwtioJyMaj}?Ep=Z?94U3lQv(+X*KkN6VLv9GW#Z?w#tc=;KKBpvw zOziccP5h;X8BYW0z7)bwrVxJb5(v-0q`WLhm~9}z^O?-W=JO_csg{@G(!=;w3}|Hs z#r}~gb;O9~+qGxpJ-Jcix7EqJ2_7ZyZwmCgmTgeb-sd>L zdVfB+k@+Jphg>Azu2=GnZB|$M^KbG_S9~+LNk#$2EJ=GLqkIOVlrc(QIi-JT4Q-Mz1gSa}KZ=8?#>#!{Hxevgp2o+*0Y7ESe$U zmgD_Sn%EEIQ?jT-p0PXZNfFCLUUF?Eg6U7(#Gt>k>ZPQg2C){BGE96WL&RX07NR$b zt7*nm!2`5mq>tB2Tf}*oOoDxSL57Hq)70CIo8GCOkdr}*~0XfPbgqzqMkdaWFfr? zwT=$ou*HOht7bgkIse5>E<(++4prqi_D6-JteI+gV$~0by*Ed2Jh!=reU?^p=~F9CdfSD#*=5} zjT>8K`)lbRB|SpGWi7}^OAV3~ykp#~to>vk{BLeq zNhijZBYWatvs}w`gHhQW2iu@wI)S~_Su^H4ddyrLi5J#X8++m8@qEI`Br~o_HtyW= zpj%G-?uXq()zR2bxT7g`r>(C3W)@nEi5h-u@M6Cw^tC|vV&b`N)q62o>Wrgax*@GWsri<;`3<@`seofnoOLwu$!}?N z$FEegKlp9sY|%6RT^9Vxs~%Y(oh{if5*fcmd*DM`r_K2`vZS&jj|ayc>g3Uu=2lyp zThWUSf#rsVEq#%H2)6Ro!j`{V{?@J5EC(i2ldaZq?%rv^@7#%$C@!+N#2%p*k<%O?v693X?wLh+LR;My*qhAnBwdd+T{e(w=x9Eh=|- zp&q^{GB(;X-x4i@&(rvPQM$43Aw}cL$Cr-U6RvfeIH6(0M)OYHJ8CvKlXEetGvVaI z?Wt`wZJKkz&Aipi1-D3(d8c9ba=~f8sXOhou*v&cS?_1twai-YBu8_;t3r&C;?H;G zs*^e@&d#cFb7L*?vW@NHi(+k#^8nKDe&)eIT_Iv1bCi71fu>)u{o9X_$Pvc}0nSu_ z+aiz+Zjf}jjne4Z$)xu-%cPi<8$|4xSQtS}?avCOTr8C2gcjqsK1LhQ<8+MuD9UWq ze6NK;((n%PIZxziToprn3FF=|YF$v?%!Rx>KcAQ5wX;gr!;cP**{9x{DDb@PsRG$> zw?}sHVx=TW90o68GQU{3+_M%wwk@O}tUN#Y%(==IoUO<&3wd=+a*iFX=kxlQ;$*j z>1_%yV)rn?WtH*{7vj^DiXzOy629S!>MXMTX$nOC4VZ8CP~`@7gmSBv@A$H1r++IB zky7U=iI~-Vzg0vvClok@oDz0Z199LNWqp3#U#-^Xw?0N`9^)pgAoj0rPI}n9$l=Ml zt=8dU?ENp)V*twG$>Cyrg{Gjc&=juh;YlMh8V^q}1MxExY*L3OAP#kSf-Z1)vacwI zCr9}*Fb;+lEm_eae4Z-G$*~%ctd%M|WQuZlGFOZbPv#kJv&Hn`$&Ir9eT8;sCnE_> zj>JbN*Dgwva=<^EI$(^mw=I_=wk4x)i;qigxgs1P>nAyY(~?zXb^4t-EvfoNrG={C z&0?a3+Mbn+7f0<=YCR_lvcCC3yR(vW`4(p%*R;~R3+-CAJ|$u4%yQQIf{u_Wq|OE| z6}B6g9@{Sk+3e4A9DrX-9}!$EjN0^j>%)>pBDPxb??{G!2ZVoRMgwh+M^>dUyx8%` zqHI=P76{D6LBP|RFT{#}6TMq2$SFy_J74zu{C>5i>x)R$_R~MwVI-}$8~gLxSHgQ9 zcF%83%s3}H{|JGi0&leZu7wv)NxeU2C*;1O*em13Knt*~83CqFM{e`}yyDvdnIJ(_ zDeHp(R&Gvo5#to~IElyij6OaBAYue0He+i2qDz|u{?)B$_d>gtO$Pxrzp5Cn20T;~ zhSTVYXQgdMnG=oy+PB0V^?Em+%bQ?7TU-kE>pF)0x>n~6 zHNPtjzODw?r)Q;MFLS!H>b8G5fxQbryae_HUI8fH^{6@sWKh(y@IT=SlLjwQmin$LRDeD)H>V`dEfDh7RVdeHY_P)`q9Z8PYL(}U&~9rVRbgI2Pg%ISgb%=LR? zt&9E>=dNc@Q(FFG1;-sK`hG(wR7-NL5|n3$1SRqV63HoR*74BG%PBZ z#v3M+fehIiw(|OkN7$n$Uh1$om%Y%`R8 zqRI589%QP@EEtplLUnX7h|hPxIN);uIZ<$E&ukmanuTO(YqSK|p;;u|-wyFyOv%#$ zl|)V*2=OR)j@p2(KY%YgX<|ixrGF>pxe~AJz^4`dPW}^LJ{M_Hh{g9JOQ6nMEKRA0*Zhj2B3sXlD5RojEq*qD zX9EdORQT76Jo#yYR(Z_uZ)ZbeIJn&}v;9!O>zuiiEJ_PCAX!69Fl{L}RaxT8Ckm-s z5M^;^O%zh@tddx%HiNsQDv87|@w0(?JlA-d1hZ2LW+xTQm@7$%#Y%E`yYWSN_L5jz z)3eh`#Z8M_$ma7t?b#^{Ajb?on`4ek8=O3O?;|cw^=>B-t8Lx~=(nw8seY3cCR8Qo zE?eN(;?Qh$+P07bR9{I-Y7NF*-~-e(d>dc49I+1O0$a{VlymQpa_&8mBf8q|-y$Po zIpfNgd&w5?T(ot-NW^#SA*B{<@g{nImBSV%?-!yugR47d22M>#4sq5*r=*$X-%KOG z-+K#-}k;{4wWT_(y6OpJQYtV zhpWUR>@>PWOsr00H+YY-0pjRbV?%qm;L3$nxXFNDh=*1AsJ226U2uaP{ucj^BhlcS z!xv-MZmX`%=q>g8S)TCYHLy#d4-Mbk9W5C5A+^CIibeY@+K@8CU!%Z;B&+)H6|C+? zxFWa@P}zZSG?l5tB|UH6zk4e_+0oQqecUb}%|r!VbW#JG(V@K<{)~X$mZ8k19@sV( z!_37c5I$a(jR7_l>}NQc$1i1~T>mPfX%>Ovp1;8A*oha#!gEcUTy-4iR`%q+AU@H< zQ2}-E4qO75)gO*IvXPEv_yenYeG18xxkXXt4WP^vRjT&6#`d;qzct++ihYq#DNXos zb7y(Y?In(+%IQ-ya96o`<-SsoXZRukk>?B2(s*8;Zt*v!?U5Jo?`N>wjr?)m&W62B z*kIkVKLRA5v9Xv9_&CoWM_6AfvAKbbgN!w9^JY)YNY5u6lNlie;r0@CxFdGB^Zdl@6tZ@BVKF=0z8pK;ewHyig*a&D3dQWWNz6`B9UH5d9X>jq z$i(dI%ct?4iP>?MjM!8MC@Sn{$+ouQF$)Yvyl-^=mYD7IxWfRQiF{*p&OSuvXlqFy zl0|WNoW)1eLu~yizODIJH=9&M09VUll+2DzM=~Mk(DDS)+sp`xRXs@s8m z^*A^6zXBf)U>YCwE zCc4f3Ht#Pg<(3MHGxsTy->Ht16w!~_Y&c(^GMumXZ(`6%gzAL?J2n+W4&mm7np5^R z^)&5j58`&_fF`?vdUR1NBEH*dxkHH82X~Gqpz=~t1~W9fOqkC|D6`#eNIa7E(%Ezi$>-3 zZLZ|EDZG2MRpH&EIw5l*N#EaCbk~Th{9gH@yE^Zj%I4-|EAEoqQblG84Ox5sbNeE@ zKe06UxQqXEWvc78E*qSxuG@YQ|LO7z>Z+X6`<~&P)7;Z@QARgOn(|Xurg*NG6wi%A zL>4WcYYX&DfnKWI5Y4EuUhcfgjd4Qdik~yDNWI*~1P_-{EO)Mh{0r2^JD<}fZ-1)X z85!&LKlXf;$c^jc#s!O$Xodxafb$9g=dMU$T;w^utirf+Z89&#X_peHEm02lwMnK# zohA_Mpu1t+vKPhsSElu2EjoY5K`1y&&%i7MgDr-BFR0{mPw)pA1tnIRq(_Ge;u=5kC zYJo_AU(?vB#RUU(wZIrVKYnHE*|x1f++jW2_SpIH#Y@=Ev?^gclN1I#wjAutJ{#<` zsb71xs>=;qGuCLz%n>{FbyucbZQFXn9hR$Y5C7L)kqWglR#U067VvLVn|3A(e?iAg zW4*t5Rbyw)%+&iMzIYv@|AfhP$||F&B`#4iczNY$w>>YdcKl_@(rn<|o-trgs1+1d6S@}rAanw@D?Y4&pU$K-RMKRyN2 z{OD!qjvu))C1%@K1n#iJY#GXo(AI+BW?XW^@Ut1*n@Zv>bXId47 zok@zq9!rYCF3kqxm(K?6E5g33j5TD~ptdc+z-z8d0oe96dOIut+a3e2xgs@RJ7a^1 z%V&dYzy@7SY|sS+ye7>CT`y{4gCDvw1zs0Y1zz7MOMNg~;I+Na@Q0qqny%;C)O3Bl z_`>dMsOg$6F$bSWTw+e#EgjT!oip3lbe%I}FWH%#fMF(EF{M>m*BLWivP3&+TMkAvC_62#r z0|i^1Oj>y}GrjMgVy)A0u~v0z5tqnp76kKVmaWYOww^Q7wWbtXM|QmOS@W{R!Vi8I z)qZV(*dM&yy07Q1eBIY`E$hC{G#(d-0+yK{?5x`B6I|_83h#|r2f5lSsgq|}?RBz6 zwb#jIReNni!0ihLUx6C0ae-GFrB!9u7N=g%Z)MlC?zkZ-&vgY0y55*Jr=_5)fJm2g zRhB_g(sj->RE4#_>09!ixSJfy&Uc!>h5#kTvAS3ZlHs-w>%uwS`MVBfK5 zCDqY}N~$xRR8rm6hTC7%aV6E4cT`FBgqfVnDjhOo>J#4S#xq(eql$u?jrCKb*7Z}P z4g+WI?znL3i>_ed)H^!Bvnzz#P%(8ZTQN22uwv>=M-@|VR(XP+ql&3B7An9#t2!=8 zjS~^%kK|AZZ}B>*v#D~Y$5Z7_XO^myI-h#+Wa`Da#yY7JDPc9CV7h;aI;ri2)veEM zdDNsf>aCgDs57ljJ4QjQV?86i97l*Pm-| z*WcZ)K(*=(Mw!cG_@frw#AywBe3U8+N>y z+dFMI)@j42(}uTo+VIv+8@{B|hA-~4;Vqpuyt&hc+dFOeqD~ub>$Kr$rwzAu+VG}M z8{XJy!yBGuNwg$jbxWs1Uf+R`+uUhq*LB+Ph07}o+QJjG={YM2ngH>dPM7n7P8)9Q zwBbmn4L3Z?VxP%sufE(8pNA~%{F-YtyXM&JQb!<9S5QW@vt_O8wBg$4oC?CrDl3`1 zzw&a+cE(-6+raU5N+v!hOWuNbI$I>jy*-<;DGIcKCIr>BlRu?Oy2UPaCp8l-lm zs&Ud*q1GYOH5A{JPvzF7H)q?G-kiB2r8hsDDZTk=ReJNdD!nc=^8Pjk?TgrMlsn;kg@v+uR5x%tj=w&vzpsk!M(>C6 zxSP1>O*mtdVMux(qwf7S@*)v{XK6FaC1A(DTpYD#RJw#|ThbYDm?Fo;ftc*NcNK#0 z{?f)4_B!*lE!aI}2Yk+O(he9-^LD`bDW;sTfZNg7!_HcYFXuTSvd&NsPzPb912^lgPdF9X7i8P^>wp(LY*4TDVG?R*aZ22 zOKy}C=imH1><8pLJwU*IwYU&D``mFSl`zJ zf;|%cPS3rkvjOnV*q1-~`CoqgpZ@n#XT_p`Q|gp0taDQ3;fQDW;Zopuzvc4Dm0yo) zaeuyGbscUKZ8Y9_kVCfZD95o!2jr_2)l}EE>N=P0+Gf9~_kKSA&xZ_i0V>aN2axzufyxepebm_D5yrmg1S-kH5rrAQJj|?XT3uYy>F>ZXY?eR z|F=&X(UAB4yh@>ljQ7+9=+;s>Qmtr#G|L|qe=z-v1-0yoV=vnq^FIQ_R>Z8Z}VKFK~T050ie%=ENB+(r!^$l8!v?h<%}H^c8kg z-3I)b3V+8wa9rchYKgyX8h_I%{7F*W6AoukPqN4%C`D%`jvLY1XyN0ZiZk(^1utiqTz`|`1~q$I zNyK>ph?&s1yePs^5%d{(d`knE>;z0EzyyloC*J=m#W^GLWjUgr;`7eD&T)(ES@CBD z+?x`>CiKOCy+vRntf8TR)qcT2%sQV)&dWzvI#cw7&hU{QN1cr4IttQRr?@k<<&jq9agDzz17tT)*^mWVEZ1PJ* z&g7P&4iN0()G?n>haw3#A&DI9sxLSqb%-?bES8rrxypWtuvvZw9>Ox*=GZI zwl1+Ag+}Pvwj@o8P!T;N8#wcjU!F@nL`~%?eu|%5fWSKILLT=EcU zpDQ3N{%CIoy;YHrpoTvVQ7=6m0ejE~OD~bT>q-54Pt5?HGdk4Od0B)Mm#6dN;f(%A+!S1t1Q5;xNbN zLq2}hA4UwE9R!?@`HEx!v1_)$ch>tQrfifgP^ofb`27e+3u96Xb*i;~gk7zT$t?`x z=L7X{T}*P}dPQ$}ynJ;`cHstvejI{_BQfcP8{_Bn@(W_>3$KZv`}Ocz^_)I#il2|v z!xyUO^zpj*`R01KSv{wZ*T>JdAr+k_$?%4l9Bb+z{iacS!Sq+LN`NDha5Q4vE=i-i zwi`2?2gdhCtUkZ^azYAy^1>Toh4v(XbYnpFq!ZQkfXjmT3vri*6S7(P8aO!U_cz90 zsM$5~7r*XriocB1{p;c{o9q7d@fYH@?9yztG~4fvm)0HeUN*ftN30ou-quww;fA#pY9q=i@cbr>N#rs;~u?TVy`D z=VLx4HJ>uv+3I)F`uZK@sm?ddu}jaftB&6cdQ5Zdk~wyz=Ge8w9O17Nrl(18`!Lu= zCIt^ut%y6jun2?-jiWCILS3Ai)`SWqLN|k2G8<7u#5rNC>!(HkugyFl?pv2=eqpw& z6SXYtIFfllue>1hfF#bfTCVsn%=|d@ ztEb5S65bFiJOzv#-VS4R7e5^kWh%-pe(H-V6;&5M9Z3}FNb+=ZqDD6-Pq!sXG%@oa z|4+e29pbr?nL3Ci-Ud(AAXy*KuN#e>qgojpvST&ZCu)wp2euZk&_fWeH;p;3qUSe_ zJwyNNdh8x*L`d93vjliw=+~eoX+QOoc)POEem&QHqXul1`n9OSsfXFr57!e4V)D@JxcP9f&A;ggNdW5c)#2voC+opRe10u&OSX`ixS6Kd zb$=MZPz<;F+ulmO?0qZd_w={E{*^C%{F#UMJT^A2JKXzNa1&cvHzA4^sjat;nU7~0 z(27?2fxm^**n$LUM|{)I1f%rI-aYb~%rcx8HB z-d`YI3)vI>YwFP+i3wA}tShPP2%_Yzco;BgR{fw_!%@tp=vux*pf;X;^kB1kd6Vdw z^vgAtST(;^?c$RdPH}2VvPg?oa+PAH^?nyK5zU|;)NmlE9@i9au_$W6UuaS%$=&7G zc9W1BYTe(!<@UFtb$`8=+h4a*0X5pn$NhETU`jm>mgel|vf)vq6?`a5HBe`nOz(Jyd+UFeTqM}M5&xj+Dj z`@<%^R^LvfA${^s!P0#O(kIpoA$jZlJY_q&?S7gb=P#Z$c2y1C2^`^X4(%t?U1177 zuOmiUjVGde4B{TwFSEz>vINj~fG+(_@b|y4OtQr!L)Cxb-PF+l8<%`xXaH*OI%S8W za)VgTX)Sp}qm~RCwdC4HEx9h%l2ro6eAyf*XIQLIHUd7ve&Qx}Hq)A$ZpZ!>$)5iOq$kJ#!#y3P&a7d?3qV7oM%H7nROi zSunh9=X0@n2pY~tY>9A?b82POSj|RFXfGu?WQ)Z8vXzt9Y#y&bdLq^x9W!5vB7iba zpJ%3OX~(mpsSp_XFvE&%vBs4!A?DRQP0s3HQ0uW$>&drRPuCLbVQi|dVY*ArfLz({ z)z3NuNLQW9Q?pFB)k`;xZF`*l8UMEZ*x1P9`|xr6QvR{A0e(6@ezEJZvBKl~@Izrj zJ)qA66VeXPM<)1nbTzSW-@f1`ZHcOY1G%iC?DOYf!0;w!5j)y?S5@z1ZW`tNMIk1k zcz1JaClF6ToBG{V7m|}RFDoHvU!y-mE?Hu>vc$Z6l(nT{88+w=4%}#SeIRTEdGBYZ zb`8m{&u-i=wA}SAMu^GqN=T4#S0e#B?EPQ^d@=)DS8m|45;-Rf9DT}lAtSS5?0+K$;{5)?RqNw@2}E}4ai{w*8~ZRjrh)Z} z25OzrzH&IVHIoQ%}zD zlW{Y7axU&FMn@Iu;El50+eVH1B`8cET`ET^1(RV2 zl4zh~4dal%{Z8F`Yd+nWhu&z-Su)wMz z9!l8b1#0%kn87%W$}y6s>B$$ksoS6 z>5NlfXGBIKHmpV1=u;QQ#u)BBIhkM#4|ll1d7(Hv6NBP{$cf6^LK*O=Vh zVQw8x^9{bzmE$_Bv&5iJf%;ZSswci3;j>-GajK|uJa8Z6buK!`fm}f;asp_!ik}av zwvsZ1s0(z+jab5vP&)SukWJp_i%hRMt~Ff4-%C!|g(EcB{Pf>lh_XcqCeyEkf+Y;?xYP7PRMDfT`T}q)K4D^ zFnsE#iJLc@`&~ch_iwc(Tw0zdklIJj`0CcIJBq5u+~A@kKVDGZ7x1@lt92gFuiZ*3 zpboliVbpHFpTsXMsL$`N2R;0(-|yZ{GcW97n4yy1wY1(|?=Kwy;3$+R{hcy{o(k8U zgt6Pp14{9n5P_kanxI`bub_KJ)xsoS zE=D^qh#vO`-Pqst(J+zem&oLKKe7nY@7)ZQ?qCIe=NGvwJXrMSUEd2<(7QExlcvz; zd-Y%?&8C-TIS|`uHQ&Q@R&oURpscbNUkOmX$~#{Rd#@!7d(qyPQPW=73G^E8#63vi z-c5!n8yzoNbANz3PhRw6&~-ym?m@ry03oqAvg(r9x`t=;ibbzH5DatUH-Zd@sd?o= zX>6;;y$H*#`NQfR>^&Z!W<3v*WLYroe}E=6K7QQT$v7Fr%KWaN7x1h3y}Pm1>E!`_ zx*oYevKRSxa@zrZJZ@s(URpSTkp86n3SLxrb2t>$>$PDsum5M~v;RY&?GVc4qKjM^ zJ#M;FeRcWk83VT~@ZBj3%%Ug0_9=FPM;1<9)Zh(2nfI%C@k)9WAq{f%PdvC2lniR3 zDekR@J>WoZHXM%jexKSW4Mh(p&sRmay_8qKMo^|&Je0Ipty^>{qz*-U*C3~pllEQE&{!iKB=XSvz`nRX0SfuKON1;_wRfNK~c zrxBVvAaEFvXu}-3+aIb2gJpjJzsWW*$0aof5fG?u1m-yZUl0BsHvN?xOoBwy9?idk zr%wqtbJ5m{_k|pu&6q(Me~+0#1tv&^L!o+MycK9<4_02U-y@myxE-WGh1J0d2)s?i zz!FVVMJyQ^hC8cL@7z-{L81j%eMw$bPkQr2DEeI@1X*G(7IhV_Eowl7$CNl1B})uv^PQr3<24MHY6qkcHh!7W&aQz8xJRa(NWTc z-Z+x5cG0j{y5F;#1Rnjlo5-LnAUqBV+RHx^7X`xt&{-4R)Po@`-d-vYpS0ec@%#al z^*gIIK2F0H$M3kpud` zLj0jSSx=C5sMrD)o)SPt>s}8^S`Teaa~J}_3^BP$3zNi08UVuy0EP)z2>`m-69TC5 zc=EPIVv*h+)^D%E+r#|!Dt{GqCT|bNZ`+`VeynBqfuKhuG22Or$yFn%(7ijd-@w_< z6exl|(ZYUDBLql$_o{`JleXL^5&d{vR98AD>hn%o@^iIB4;LKeg;uYstx<0!euajm zSH$c)=K#&UJLuIu?~7KYgf*#+P!TUo%7M6&dy`1GO@9xV+zTOp1yf#Z()Us~Fr`@v z1|=o&Rx1fuA=#yx!e~V*Ki->f);mvmHd5ys-Eo-hoT)bZe)btV1_rXv*ooj}pRq_x z!ggWJ8=R#(hwFH$fQkbPudoZ>)XCL z?0z;GKT^%(<5`p8ZF*-3lk#SSZ?R_Sp+}LP*^RM}md2f{G z@)wVs<$D}CWG!X3>s4&mt=R6Ot)}K+YHZ)zVT>lSMcCBGHVUJ|Mmzj5+NgZ6V3fW8 zTEcEc8esNj)9lUE?1hMg*s!f)7?9|WDWWED&{T1b-#Cx&Y|*xQJ3~+H-u6w{=D}5q zh}+zC=0%h3;_J+BntZzo3WgbBoR9|`e;MGKqA&c&dk2>Q^{--6pJsx;(^lB+eKgPf ze389KB!o;an9?2L&{k{QkuSG}v@5uTbA)~@cBpFTJ`~4; z$$DZA!vo?lFJ=)u@at+yDHaoxKs_JGJ|{No$~-9OhABSFZKOGj+M);;#GuDZns^;3WI3VTv3?1|&kd(={f@NTQexCe(74$%s` z;_iJ!M)#0b!U{Fsv39}!`%Gdk{QS{;AnpFJAZ*Y0j?BpNyM}oyt>EJ+-1nq$-_s#v zdX@nhuQS~D#7OQ+<39aZ2w(ka=dr$3Q)vXM7JuNd-O6%=1D$ zo~M3}VCZv}5)R`QU$JJXHD@XJ7m3VSJo~e+*f$%$!Jo|S#*`J4lgJQ~-I47bFY@eR zA-zi{s7VPOY3;q+6d9x2SbTpbN(_K);_bRcwC==LmDZI^FYlDExQG)~<5xBd1K${S zqs<4TO?Tw-E5EK^5y?o>zAAgNZb)q9u(Fi~LMfPE$m!*={^=I|*ZFlnBxHBPP$-n8yF_E_8QDU= z3pT0fiLs~Bjr=@G4zU*bsfeqxu+6lU@)}QB6{nr}%s-Ff zvlS3};?;JgfslTzfzU#H3J}V%vC=F)#aL+;pJHz{i%;Rqw&L@m&5m8#?-I3Mv;$vp zTA#Le`qJD)_S>j+L2VLv)8MlNzVLCl{?)5$Vj)Pq%O)#d|%hvJf7|LfZkcecs+27Rz%ki@Pf57x{&+ESXqO4^s_ z_%Lpz_lqoh_psZRKD;Fy1c~(#N{5N#27@8L0EatVIEkaLJ4G6+NM17T>91sedmH41 zvE7i2OU=K3swh5f$t30h;oZ@oP8{k1n%z-%^1XoX#rQiMP5Mg?(FRCN(jBeCULIyG zVHs!WL69b+AQYMi))MPAQ(iA75svaFT>Y0%G_cQ~{I!w@;I(zO6xKl)v72^CJoNrb zMKHr^mpQ0*nF}cxKgfP``tZgOUN3gbm-#@Z&+ol61>Ir4w;nDB#Ol{z5X&;^x)qd~ z(sQp52Jq)Te~@G{?TiOSi}5kbpxTBGsAHBZjG0bQGQ=xxftT(WFWoU-x?{X_3tkjL zdf0ECAcS{VLrPVbm8wRON;?M2>xjH_C{x+v7g3qD2mU0)uLzJe8K=qWG2viB8d>%X!%sXUeqs?$mYj-Ex2F*_L$pK~=MJ#u zE|n{gi8WEW-F)J`p!^lEn8ZD>Gu|Hcs`-sOL9g-y06_Nvz6NH~t?e_1dNag-)yv%i zU|dHv0nn@ADn%vL)&QajbT>|*JDEVYos8MD zDJxKxnS#(!Y+rlXr9Z@D^WDRtwDgV#0;IxTh-UV6rn>J|-5<5&bV0h;9d|2hPt&i~ z57~~pS?2eFp8Ncjc(T&ZYgZ!8dnmT(!$D;aHtjva0rgAM?t?nZsT=YQ`;V|3TbF4S z3X2k3c?gvIu-EP3!?*4oRh6_;n^ikwBW)G6fx77CBa9>)S@%ZE5%v50?M$G)CtW!J z*zfxO5zL+@?T`5rN5Zan74cTlG7U>@{`$yz8BXsIhvOY$pX?Bu9&0zjDw5~)nC#%M zJL0$Hr-{Lr-q^rOr(HE#)Betr{Tt*rQA|IAlXB&9Y_X9pXA_QyqX!2(ey>RR7|Olh zNho(Slx4MjSbd@OTKyxTCpf^8yL}H!20V#rdC6|M%pefAcQ1b`CyN?vT+Kk^GFCRu zzuaQt{eJK6sPYCJ06_g(d{*JqLvKXse&|`6AYhEF3WlC09Q;r<-85CZoN)%UWXN{x z*p3+&Va3Ryy@e4Bm7h-(mq|VMD7OM_!@ri3ZQ6MyWT7N!n+BoRu~~1oG3)I%W_@~2 zY}Th7BIm^E!M>-SVUfKHwut!icAz{YL0-0&L7~js5P6rj&ILv*^`<ZQI5<+qP}nwr$(CZQHhO+xX|c z{P&VcCX=qJ>8h^Dbaz&-I&C5rZ+GudBQA9Jl@v{Q`J_1!<1n=pRq#C!v&ag~&KSMb z!~5GL5n}tmlwZl*f5SM1ii;4*O*5=%-Jwhbr^hB;#yc2CumC?VcSps{zQ&+N{`+Ky7JN-;?$*mrC!Ai8_d}a+W&604VrziiYWlN zNq|CrWNS%o3fXu>JO0iU3Kq9?4h)Ft?L*w0#?T#9XXqRl5TQp-)_XiRX92*h=Db`? zS5oIYh@ZliRE3Jt>W;S54rdjmcrTY2XSoGe}>e1xXJh#3Vb@dc&Ed;k{rVuS!PZ?-0Q>c2!*8Y zPnyUaGaD3A0WAUoDXE>!2}aS8mgTxRgWMtZy0gw{Sax^Rr4AfUY1q?l1fN#ypNF9l z>57f<#2-7|XXc1OfNfbyWBG>-;{66~V&)$avNmG}1$KmpV3Nzz;o)eG9Xs0m44u{l z#73Z7QOfN;qW>Z_1wF{ur|no|H!_bVh~jp?O_g+%Ska7YgAGyqF@NmN%6YC5#_Hw0 zV?&ZDCzJBP^WP0|-8p!aVRGn5`a5M(QaUx2!{P#0W_m$9BB@3HUF#U`6y zqDhODja#seIZqB_3lyNM-c(d~<(Ocv5sAdbk?1p2UU98>fyfkzceEB7{lb-Fz6nk^ zzavH04IH%`6+@JF{2Nm&W!pTRw*zhvtbp*OB$U|Wt6{E?lXS2DolI`zWv8+3fR2Ni zneLfKI8y?iL^g0##Sy?^O)j-onHHBO`z2_)$B#WHgX30WKrZ8Om8YEq3ncitGP8le zU4;$v4XMDHM~i5KbuWkPZGeR^Y_yaH;I@b$DEI#NB}N0Zd+q9j zNm4W!`m3;4>4@Twtmo9DR=tlOOU}b0M@;;ps;a|0W@`_etE~l21iVSkhkT{2E!?Z* zh-0UqY4$#+UZY|Y_g!&?U*H4Bql?o=xH|EKyRVq69X{DdAv=Fek zfKlK<8ZyknCtPptp(k~4+1(y+Lh$C3c1#JaFfjawFdXhHp4XoL*&F@OKq_v-vs?)! zozS5eVFuELQ2(sd+lI{?pO1Z~KQk*5B&i3F2?%hTqWcT09PnjYWW}XsHRcyCMsw*o zz1cHGPp4)zrI+u3eETtOkT0&?+3nV5yrvHlzN%F-9YCZ^695w#V8pBLMRm)X3ES|j0|EQqkqU?f8vYDPrnThgZixE}2NtHgu_aAmVw2}&_L|2fJKl2C6I9;Ne^fTYUkt9yOHD(M?t zdN+%H<(2aL2iu|)^%x#F_%sY%9wfhe)c{25*g!^#mEjzy3|-m{yclhzXrsfxQj28( z*nzM*y*uykqg{NlhiJ|bi}-cNQ(UvTdvG)m7AqTq%ei3Oh}a9!-06|#Kv6-WanJAb z9)Wb6-+ZFmLA(v3#t#Z7%Z5Rw1TWy4Wtt}u7Lg zI|crD=X+_d&Ha>S)>m+Ge{BWuoez2$MLj~O#6bmGDCCDbPz4!fd&TImKfPBwjl}NH_tbo z6CL;t<6;*aa;??{QhRECM$%J_>UA5x7lc$R8`8Bog3b=1LZ^!IfqJBf_Zf9%ayrpg zDG2T~1e(mhM*>mtnt_axg~=3);@?de!+4?{kBVAh2|{zBm9bzKwrIL4AY%~>i@uE> zK01Eaj&@o`U1bV`tOyYxQezs%NicUXXxFebub z-EhHItRth83Q0mN!G!t5`>8rOk1N&^LGwrKg~6#7Idl+kGe(dXmM(*#(i*1a3mAL| zXW${JbF|O9Vv0r-zBc#;k^M85NS)N2!3$2bAfeaqUr^NDB-rTiW+DMOdGrs9eEqPq z+oshRC^j^FvvIr=DwZp56rXhRPGs|lOQ?a*A#kEApJYQxU^wLMFy*^N&($8gB$ZPV z>^w!GqnBAh!J@n%x30BI$(^1CFN*rrv@>PiJ^qIRf3kxxg{5rj4X}BLP(32|u=u#X z={D(|f&>@Hwok6`SQH(a9mD&(;F70>jV^CX$I<30*4ZUzFlNljDjU)Bbk7NQ9^yhs8aRT`D`K zI>;&nR(Ol*e{Z7QZviyG(*`!)vjYi^+2Jk}bX2a(tMv}&tq|^?Y}y7KswWclYw?El-5r$v9Wjr(Bq?Fd60dx76^Lo2({3B zQN3#qHg}z`wd|j~(b?;qjA>@G1t?47$c5n}K};lckvRe0H%#Ef6LTBzj=dQ0I0O)B za*c5Ya$WuSy%Mr4`!eZie|A{-Pm`EX5ZVwC56qrAM8rqDNm`|%cLsOR6J@>hbD;01 zeE0pK9^;zrK4FrxJJBlU5FpOE|-xNk{yzl&e6zW{{W}mO=$A@;Ka88T2#o94S`pvC8>uI! zlhjMp@>dZo9rQBJ1^?;XtgE~9Rf0s~`Xwlx^cF~jpnw`s%owFTauV$m)UAkG9-p5g z)PcCkC5Yi92p?gD!u5$8G4L_EtcTSOboBKqjxkNpx_S)eHWqa}gfw5=DBS~Lg;Eu} zhCjVQkT8F_fbB>Q(XX27wEryHVNPM*{$2n6rULcWV(AFn>|uDAjCYmoJry#$CyCpM zc1?Pgn}YPJq(u3_7}tLJNK3MZ8Vt2pWD(wyEk`~(nRrRoNAgMXZS}Q4^nJ`l?JRfh z@_;R6+qMdD_V=M`VNXuv3aKus9>gxpJE0~}4%T>x(9tm&15CB+d^sg@T2U~`j zP$VDGv3A~Tw%EP=ksu3d$+vKi?tUJGV}3sR!706j4@DOrOWpJ~R(Xl=xV7>TA-}7> zI=uQ&obX=~(^$%)5E{L)0$r)+K%FGO7)W;<55+i+vL%vQR$#@U7rOgjbXtE(n|c$H zT~DNO*HF1ZYvs~}l=nM;;i_i6#b{naCn@odX53#F4^WHpNNb#D_8@jfXu-vmlo8A#fm9;znxZ-NenJ65% z!rAb2WW`_ahMiT_YNJ6-3+kW}t!ZNDmb)<^)%%~stcF%91F8rK13drGd40V2Y*J^{ z1c}b6zo;&Z2BJk6rv=p*p|KooX~v8mxP&+zVTf3dL;2(xZU%)L>iTxg?Fu8;{H5l< zezlCUbtVR>=u5I0G1Pg6`Urv;{o;%Q!t>dyQm%E0xV=CfjuTLPr0;};DGoIKHK>p$ z`+VL@0R+SpPxJUdaCl5j4h+pqM6{(X=PC61)YM2t+d?7msoGL5K#RAw0qfCO`IIc0 z%Q1eS<82NG#eQTdH6B@yK3r4zoZYx7F1`KY#`d}qZ+h5SK;L8T1$_>E`j*O40Rd}O zG?XB5cHoHVx5kQ~9z6Wg@%l9`h*;dgC8?S1x{;9imfm#aFTTZi+cZCT(yF7sVuKK| z8hs})dd!5gvYpm@LT4UOvDVAV50B>pazgc_Yd;pb-Ycj)T!R*XWjsn(9ZRM7jmR#e*L-i);xLXMIy+H58xx=WssKU+g0Fi}o z##+Y|lADo)%5@O{H3mkveazFIa_bYz=G-WG22lJNd_+pkfOJ>mJi*hIBI=Y1F~d!2 z<7g-yH%Q&N`eW;jijN=Wsm5#B>yYJjw0|bDsZKgD^^SvtY{j(_Am1w*+s{Ct1$H8= zCXlK&V(E$?Qd++=^txpO&?GU;NC*-1>_M>6KRl~XNY4BkZNv)Bi>M1S>SCLcY!=aE z-q{!ause}hi7rajunYgIyQURipG$T)6n*cdFo5p`Y>h+h4l2(ABC&M za_ew-2ngyA$PhvTJaiCEz7N&hEaLAY8ne+`NS+y0IMs{M&uK7f5aN-)+xnoN-nqRO zT<2@H_zsMxR{mze;YSaIA| z2~gZEy<_`$z)h1wxK!$x*zYoJ#mv?Gon0_2!{+j?zt9m*Gt|6`?Bw1D z#5qqB>q%hTy-*F&4s^N$hnPi&uqDhcn(?|Wcd-3x}g3p{QR6Q zL-cxyG7c?e%irz_4-YYN&+H8;`}(1k+eoUND%>_mkTeY$*JKDUK#7+k(D8*fBL)RJ z9_63n-Rq8uncZoR=x<#Iqk^jIR5mLr6#kXA|f@c##_+Hlj*Lc z(N#h=2QFCMTE{;{tzd*jr#ti4#vB+x!*G-zC@bNUp{9zJ3C0me1}Rf<>-aPcA^55! z(5zbMmhoh=`Hi|a$B1|+Z`O$k5k%5(*pQS+2!SgV(9=DK3ti6BO>^pRD;x~|0qStL ztkUg>8+u0Veme)+$R8_VETgX-;<#?J_~6{{PwS&oOvC%Jb&T(C#c6zGo>dVMO5C#d z;78nBPoBM|E~7IkrZzkr{j?uCGq?HFNDnwlc^eM#s+C& z!9{qZ)B6Fu8Ab0!)MeVyXcQ`evo3OX5Pw^s2(#Z;t_ujsuF%Nm0t;V+so9@#TZg@Q z%p)T|{Gb@v&8U@ap^fnrLZw5OZ$+*9KbmNZ9#D99ZL;=yn^>d{V89yGn{1j*<`k4a zw=Hl_Z8KqPI~hmu)!XnIpVxt>LzojSPf^7uM*XfO8r!MU}UeG6kBcG{gjm0rzv1$mi z08JBAUXbx-$~$*OF~i6%xM)^4k_GsIzFai?+tV+kLJf_FV+MGZRa*$zW`NM!w&>RQ zA&A4!Sr+n{$}$H$ra!NuId2mvufp_lz=J(8N<0zBprYicc{Ag0<}BRX zqpc&$V##MjEFt1X8+LH}HwD{!&8uyAhn7TSNp1??`irCDikyuu4nIJ(hMRJW1xBQg z2cXxq1_eiiM^e*(zomT&OZT{Gs}}ARB@Ike(n(lW*2?rzoD(jf-OOn7sdJDV|4y}O zuw#^)jGTQ0547z~W)J}L-mse#j5d@F<@>(2(`s^&0v~rywleLvL^nIWF7AX~DTFfs zcNZn_0XQF;zB=gd>84-9d&ewV5IOSQMAZOkgzEWr3viJMua~#Oc5*rYTS!aW zRYEcgiA)9Lto1k{J@qkyy2>MUleH7lX~)tzv7WV=Pct*b=7`XD%w)voo>XAlDQ4NNLTak!~ zj5iSfr47A%w;ie0>+A1%{5~ddsCz8r*>TuxuZF? z1);aT|H}T7VRf#;pOt_#m4?ODm2)E;Fgr$BvH1YFK@N$X`bP3m!bg$!RNu7@8`~V> zV{tdNOTSdmEt)4E=5|H1d+E})GVou#^d0<7*j{@>WY=J8wt^jG(^ic78_4Xp`E2DH zWry*K*zyh&vPo6y3=a?rO+H+h4{lY{drL7iO|0e2*~(1NqVTv2f}E);K$d{%{q96) zW39RXBNz6+j=8pBW1M-#PL||0*B2{IvAwbsXo|kJI4BstiqPuiCcbx@xk>A#CSRTD zn5S~|QMhqs9>8A4Jz;`KEr~eqeR)9A(Tbxx;OpbFiut0SiJ~%&)TQmH-DhUv#Mown zx3c%h;R@I?ip~b$#NoAZS9)S{m#jcuS1Q{QE6^=A`O|3l8yjYp)V#IGbpn>F=*`~H zevxP(``jQD3n@W@y*J<41M4{Edf|Na1XkkA3@mVI4?L;=Afi{S#x}@rl7?4;;|SO% zXx`)*98tHWQ5~=IL}8Owb(z&`UfBwN{{g#I+CJVam|CUz3*0=a&&)Hah5D&wJ2BqP zcgn!?{0pC|1bla;eJd|oc_??hW|Yf^jtT=4;Lz9*IGVA)$4Bv==e-H|^v~Jf*Gf0g z5PXPW*}jBwUid8+u(WUVi}4C%CZw>^;6VaCn!wFgZG=m4eXP~IkBrQibS>&M`o}B5 zRm)c&oW-%s3c)5ZC70>)591sf1axof9^LHlPz&Y4N1z6dV3{J5#q#~{ z_Ua(T1p7c*0_a+=D63swY59zPfTEtMLqO3}dtk9A? z&awWuNNkMsn$J7gnwcCW;!18d#TB#{7hUtnO=G6C9JUK>$Q;#C!9dDa9yt_Oky}-4 z_Lg*fe`3l|@Z>f6_XB0I!`P4?=e@Nk1|xr^o$ zIwkcQFL4}>{i`}i1Tc~e91Go4ei!L&V+49h66jgyGX>Ei_p8dh3S#(bRm=v4!;vX`KIisO;mn`=J+YxHEb_O}b05D$?2u~jZwtlQ3C zw@qw7Q%9{2+U6l35`C|aOuZ+Zc^J9=%Mnoe+t1w;xBG)skV-i{$|xlx4-mi;hl^0G zSMGsF?qurWr|#AK#*pAoJ`ar+5&DnaU-EnOyhA)D^d7JQ_tZQflHqUf5(4HtSDBJs zz}kSSzLI{hsjjrX6qa`Eu-q>A_WiIk>i2`2Cs71HKW?jOCftJt*q;zE*e8Q3$d1I2 zH2J}J8%Yv@g}LEcW_I=ala5}AYBxu-1v)k10~sIX=-gv_?)V?GDqBpTTlJ!)@yvcC;WJ_>S#`Xh4US=$UA1!HY!GncP zgqo8~cqCP?1-;(i0=5j>vroLg#O@+_9~$`s!vi#={4w6oi4p;Q5WBIWO`2@C4MOav zE2#DA^Dsq|?5ax|MEV|Ty~z0X!HqZtqG>|2cYcoSK#Q!@Y=4^&7z|s1{9)^B^V(?% zH?0XYZ5$_&jHnM_*=_%9ZV>~tyRKUW#?f>8ry2lNed@Rbzl-$QkCb;LTTV=nvK;OoM!vg*)gI3MXNk+ZVpDH`g_?BQ}`sMJ!y)k_*9LrYO{t zwfV1f2>Y1x+9L*D?{M8VkqpkM1W{O$-FGNA`BTivj!MX5U$2lE>e_Vr3kx+spwGvA zp9i=cHfenHhpW2ssB0tlYgViMcEDW5LYz)2iG;nvZr{6MS*_AZ_fP82IB57dfj~CG zk_6=;Wf~%PD^X{pT(`A*_0!MYu44Ko4#NAU4jStvtk+pM^hYNzr*-P`b zm5}depdJhRT&aF|SuV_?-fErVE{4$2A{%Bl&G8Ie9fV2>sX4LoLJhkm>nn*(e%gzRoD zvU*Mj%H@QJUh^2H{U<#01hkek3dwoiB60@+#(b55R1VR0T089o+zElmcAB-RWu< zrdg&QfU+5Zh-Mogu~i)6mavY)adG?~;XAOtkj7hYmZ6dGtR14+^2^}xj0EC_-?j9NgB$;qB{ylpzD*eau*!df*;qU>LIlXsyOh=rqWJ8TAUa!_V-c5$Y3BZJzm&<2sv$iHXLV zBtO@lkCSMOy!hnxdn0F(O~okEy4g_ex4Su#aj_P=-;fQru6~%*g=aHVtHrEEugkFW zuR9rJ?g`dGI@E=9AlZH8EE?>hR~do_UcIih_O(JBYUd7j_GlEscQ%`5#1`XyC+&L= zs(?$s7U4nib$Kim;?U<<#eME!Z=2!xBt6cjUno77{X}%}uVTt_dwfn`W$>qKsoFK{ zMVuaR9neiB6=t^-NSCxG01EZo(io8<^5wg<5^c^<8X-AdCH;EQz2pY6znXrZU5SZ( zE)3s;-VOv4xs83AK@Lt)XIjb3R$c9~h0NvEsLs>aav>d=)2gac8QUl81N}r7mKO`G zDMC+KcJ|MFVT)Sl^s#dTrmOs6=dpC_orvR!waivauY3gwS_e&4v7&GBWQ-emB{W_H0=#LN62+Y=sd%(I z{6Vo2Lwv!75}m%pVx*lA&oe<-z?MbY8>?R6tWq||m*PU5AlE-s&0e4-JKp(Q;?+X( zmPpL3ihJ8ueuz7xd`vdVIhA;zFOfHY0RTxqbDDrIdy;^D>L3y4hVPh$A%=pITt^XB zR~A;6=4C>Ih?W@@I2#py*fM60jA3DlGMVKP94hPYJjZJ(@N!Zv-{k4}kxusN!v8Ls zoTw33g7ITUH+TmmovoGDyR{d#eBs3n8M_P~CiMVE}h++S8+=SY^S zr{Z-<`AiCqgI3uRN8*nYkOjERIR7|HO(+1fqj`qAZI15Lj_Ar~gOW@|;J~4usdXTN z#*hhQ665bQ3Os>lI;*&NXs2*q!PW;?A;~{!V8|lm_M?4YBEL6 zzh{8tVLT{)O4&*ySkgo#NK9G
F&Fn~k2v;wfQp@ysM!27kRQaq)rrUI_yU~C@` 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%0D2Pr@L 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 Tq1lKFnJWJeC!gQ98gmi=Q~Rtb literal 0 HcmV?d00001 diff --git a/script/check_canisters.sh b/script/check_canisters.sh new file mode 100644 index 00000000..186f54e7 --- /dev/null +++ b/script/check_canisters.sh @@ -0,0 +1,16 @@ +#!ic-repl +identity dfx "~/.config/dfx/identity/default/identity.pem"; + +let ttl = 2700_000_000_000; +let now = exec("date", "+%s000000000", record { silence = true }); + +function is_not_expired(info) { + let elapsed = sub(now, info.timestamp); + lt(elapsed, ttl); +}; + +function __main(backend) { + let children = call backend.dump(); + let active = children.filter(is_not_expired); + stringify(active.size()); +}; diff --git a/script/update_settings.sh b/script/update_settings.sh new file mode 100644 index 00000000..49a710da --- /dev/null +++ b/script/update_settings.sh @@ -0,0 +1,15 @@ +#!ic-repl + +identity dfx "~/.config/dfx/identity/default/identity.pem"; + +function __main(backend) { + let children = call backend.dump(); + let i = 0; + while lt(i, children.size()) { + let info = children[i]; + call backend.update_settings(record { canister_id = info.id; settings = record { log_visibility = opt variant { public } } }); + stringify("Updated ", i, ": ", info.id); + let i = add(i, 1); + }; +}; + diff --git a/service/pool/IC.mo b/service/pool/IC.mo index dcf9dd67..8696c093 100644 --- a/service/pool/IC.mo +++ b/service/pool/IC.mo @@ -45,21 +45,39 @@ module { body : Blob; headers : [http_header]; }; + public type install_chunked_code_args = { + arg : Blob; + wasm_module_hash : Blob; + mode : { #reinstall; #upgrade; #install }; + chunk_hashes_list : [{hash : Blob}]; + target_canister : canister_id; + store_canister : ?canister_id; + }; + public type canister_status_result = { + status : { #stopped; #stopping; #running }; + memory_size : Nat; + cycles : Nat; + settings : definite_canister_settings; + query_stats : { + response_payload_bytes_total : Nat; + num_instructions_total : Nat; + num_calls_total : Nat; + request_payload_bytes_total : Nat; + }; + idle_cycles_burned_per_day : Nat; + module_hash : ?Blob; + reserved_cycles : Nat; + }; public type user_id = Principal; public type wasm_module = Blob; public type Self = actor { - canister_status : shared { canister_id : canister_id } -> async { - status : { #stopped; #stopping; #running }; - memory_size : Nat; - cycles : Nat; - settings : definite_canister_settings; - module_hash : ?Blob; - }; + canister_status : shared { canister_id : canister_id } -> async canister_status_result; create_canister : shared { settings : ?canister_settings } -> async { canister_id : canister_id; }; delete_canister : shared { canister_id : canister_id } -> async (); deposit_cycles : shared { canister_id : canister_id } -> async (); + install_chunked_code : shared install_chunked_code_args -> async (); install_code : shared { arg : Blob; wasm_module : wasm_module; diff --git a/service/pool/Main.mo b/service/pool/Main.mo index 3fe936d7..1154812a 100644 --- a/service/pool/Main.mo +++ b/service/pool/Main.mo @@ -84,8 +84,9 @@ shared (creator) actor class Self(opt_params : ?Types.InitParams) = this { await* f2; }; private func getExpiredCanisterInfo(origin : Logs.Origin) : async* (Types.CanisterInfo, {#install; #reinstall}) { - switch (pool.getExpiredCanisterId()) { + let res = switch (pool.getExpiredCanisterId()) { case (#newId) { + try { Cycles.add(params.cycles_per_canister); let settings = ?{ controllers = null; @@ -102,9 +103,12 @@ shared (creator) actor class Self(opt_params : ?Types.InitParams) = this { stats := Logs.updateStats(stats, #getId(params.cycles_per_canister)); statsByOrigin.addCanister(origin); (info, #install); + } catch(e) { + pool.rollbackLen(); + throw e; + }; }; case (#reuse info) { - let no_uninstall = Option.get(params.no_uninstall, false); let cid = { canister_id = info.id }; let status = await IC.canister_status cid; let topUpCycles : Nat = if (status.cycles < params.cycles_per_canister) { @@ -114,7 +118,12 @@ shared (creator) actor class Self(opt_params : ?Types.InitParams) = this { Cycles.add topUpCycles; await IC.deposit_cycles cid; }; - if (not no_uninstall and Option.isSome(status.module_hash)) { + let need_uninstall = switch ((params.stored_module, status.module_hash)) { + case ((null, ?_)) { true }; + case ((_, null)) { false }; + case (?stored, ?current) { stored.hash != current }; + }; + if (need_uninstall) { await* pool_uninstall_code(cid.canister_id); }; switch (status.status) { @@ -125,7 +134,7 @@ shared (creator) actor class Self(opt_params : ?Types.InitParams) = this { }; stats := Logs.updateStats(stats, #getId topUpCycles); statsByOrigin.addCanister(origin); - let mode = if (no_uninstall) { #reinstall } else { #install }; + let mode = if (need_uninstall and Option.isNull(params.stored_module)) { #install } else { #reinstall }; (info, mode); }; case (#outOfCapacity time) { @@ -134,6 +143,20 @@ shared (creator) actor class Self(opt_params : ?Types.InitParams) = this { throw Error.reject("No available canister id, wait for " # debug_show (second) # " seconds."); }; }; + switch (params.stored_module) { + case null {}; + case (?stored) { + await IC.install_chunked_code { + arg = stored.arg; + target_canister = res.0.id; + store_canister = ?(Principal.fromActor this); + chunk_hashes_list = [{ hash = stored.hash }]; + wasm_module_hash = stored.hash; + mode = res.1; + } + }; + }; + res; }; func validateOrigin(origin: Logs.Origin) : Bool { if (origin.origin == "") { @@ -187,6 +210,9 @@ shared (creator) actor class Self(opt_params : ?Types.InitParams) = this { if (not Principal.isController(caller)) { throw Error.reject "Only called by controller"; }; + if (Option.isSome(params.stored_module) and Option.isSome(args)) { + throw Error.reject "args should be null when stored_module is set"; + }; let origin = { origin = "admin"; tags = [] }; let (info, mode) = switch (opt_info) { case null { await* getExpiredCanisterInfo(origin) }; @@ -237,6 +263,9 @@ shared (creator) actor class Self(opt_params : ?Types.InitParams) = this { }; public shared ({ caller }) func getCanisterId(nonce : PoW.Nonce, origin : Logs.Origin) : async Types.CanisterInfo { + if (Option.get(params.admin_only, false)) { + throw Error.reject "Cannot call this endpoint when admin_only is true"; + }; if (not validateOrigin(origin)) { throw Error.reject "Please specify a valid origin"; }; @@ -252,10 +281,43 @@ shared (creator) actor class Self(opt_params : ?Types.InitParams) = this { nonceCache.add nonce; (await* getExpiredCanisterInfo(origin)).0; }; + // Only used by webcontainer frontend. Once we have a dedicated frontend pool, this endpoint should be deprecated. + public func installStoredWasm(info : Types.CanisterInfo, args: Types.InstallArgs, origin: Logs.Origin) : async Types.CanisterInfo { + if (not validateOrigin(origin)) { + throw Error.reject "Please specify a valid origin"; + }; + if (not pool.find info) { + stats := Logs.updateStats(stats, #mismatch); + throw Error.reject "Cannot find canister"; + }; + assert(info.id == args.canister_id); + if (info.timestamp == 0) { + stats := Logs.updateStats(stats, #mismatch); + throw Error.reject "Cannot install removed canister"; + }; + let module_hash = args.wasm_module; + await IC.install_chunked_code { + arg = args.arg; + target_canister = args.canister_id; + store_canister = ?(Principal.fromActor this); + chunk_hashes_list = [{ hash = module_hash }]; + wasm_module_hash = module_hash; + mode = args.mode; + }; + statsByOrigin.addInstall({ origin = origin.origin; tags = ["wasm:asset"] }); + switch (pool.refresh(info, false)) { + case (?newInfo) { + updateTimer(newInfo); + newInfo; + }; + case null { throw Error.reject "Cannot find canister" }; + }; + }; public shared ({ caller }) func installCode(info : Types.CanisterInfo, args : Types.InstallArgs, install_config : Types.InstallConfig) : async Types.CanisterInfo { if (not validateOrigin(install_config.origin)) { throw Error.reject "Please specify a valid origin"; }; + assert(info.id == args.canister_id); if (info.timestamp == 0) { stats := Logs.updateStats(stats, #mismatch); throw Error.reject "Cannot install removed canister"; @@ -321,7 +383,7 @@ shared (creator) actor class Self(opt_params : ?Types.InitParams) = this { }; func updateTimer(info: Types.CanisterInfo) { - if (Option.get(params.no_uninstall, false)) { + if (Option.isSome(params.stored_module)) { return; }; func job() : async () { @@ -399,7 +461,7 @@ shared (creator) actor class Self(opt_params : ?Types.InitParams) = this { throw Error.reject "only called by controllers"; }; for (info in pool.getAllCanisters()) { - if (not Option.get(params.no_uninstall, false)) { + if (Option.isNull(params.stored_module)) { await* pool_uninstall_code(info.id); }; ignore pool.retire info; @@ -432,7 +494,8 @@ shared (creator) actor class Self(opt_params : ?Types.InitParams) = this { pool.getChildren(id), func(child : Principal) : Types.CanisterInfo { queue := Deque.pushBack(queue, child); - Option.unwrap(pool.info(child)); + let ?info = pool.info(child) else { Debug.trap "unwrap pool.info" }; + info; }, ); result := List.push((id, List.toArray children), result); @@ -561,13 +624,11 @@ shared (creator) actor class Self(opt_params : ?Types.InitParams) = this { public shared ({ caller }) func canister_status({ canister_id : ICType.canister_id; - }) : async { - status : { #stopped; #stopping; #running }; - memory_size : Nat; - cycles : Nat; - settings : ICType.definite_canister_settings; - module_hash : ?Blob; - } { + }) : async ICType.canister_status_result { + if (Principal.isController(caller)) { + assert(pool.findId canister_id); + return await IC.canister_status { canister_id }; + }; switch (sanitizeInputs(caller, canister_id)) { case (#ok _) await IC.canister_status { canister_id }; case (#err makeMsg) { @@ -684,6 +745,7 @@ shared (creator) actor class Self(opt_params : ?Types.InitParams) = this { #getInitParams : Any; #getStats : Any; #http_request : Any; + #installStoredWasm : Any; #installCode : Any; #deployCanister : Any; #releaseAllCanisters : Any; @@ -718,7 +780,6 @@ shared (creator) actor class Self(opt_params : ?Types.InitParams) = this { case (#create_canister _) false; case (#install_code _) false; case (#uninstall_code _) false; - case (#canister_status _) false; case (#start_canister _) false; case (#stop_canister _) false; case (#delete_canister _) false; @@ -728,6 +789,7 @@ shared (creator) actor class Self(opt_params : ?Types.InitParams) = this { case (#load_canister_snapshot _) false; case (#_ttp_request _) false; case (#__transform _) false; + case (#canister_status _) Principal.isController(caller); case (#update_settings _) Principal.isController(caller); case _ true; }; diff --git a/service/pool/Types.mo b/service/pool/Types.mo index 67e18e00..a565df2f 100644 --- a/service/pool/Types.mo +++ b/service/pool/Types.mo @@ -10,6 +10,7 @@ import List "mo:base/List"; import Option "mo:base/Option"; import Int "mo:base/Int"; import Timer "mo:base/Timer"; +import Debug "mo:base/Debug"; import ICType "./IC"; module { @@ -19,8 +20,9 @@ module { canister_time_to_live: Nat; nonce_time_to_live: Nat; max_family_tree_size: Nat; - // Used for asset canister. If set to true, will not use timer to kill expired canisters, and will not uninstall code when fetching an expired canister. - no_uninstall: ?Bool; + // Used for installing asset canister. If set, will not use timer to kill expired canisters, and will not uninstall code when fetching an expired canister (unless the module hash changed). + stored_module: ?{hash: Blob; arg: Blob}; + admin_only: ?Bool; wasm_utils_principal: ?Text; }; public let defaultParams : InitParams = { @@ -29,7 +31,8 @@ module { canister_time_to_live = 1200_000_000_000; nonce_time_to_live = 300_000_000_000; max_family_tree_size = 5; - no_uninstall = null; + stored_module = null; + admin_only = null; wasm_utils_principal = ?"ozk6r-tyaaa-aaaab-qab4a-cai"; }; public type InstallArgs = { @@ -85,30 +88,39 @@ module { public type NewId = { #newId; #reuse:CanisterInfo; #outOfCapacity:Nat }; + public func rollbackLen() { + len -= 1; + }; public func getExpiredCanisterId() : NewId { - if (len < size) { - // increment len here to prevent race condition - len += 1; - #newId - } else { - switch (tree.entries().next()) { - case null { assert false; loop(); }; - case (?info) { - let now = Time.now(); - let elapsed : Nat = Int.abs(now) - Int.abs(info.timestamp); - if (elapsed >= ttl) { - // Lazily cleanup pool state before reusing canister - tree.remove info; - let newInfo = { timestamp = now; id = info.id; }; - tree.insert newInfo; - metadata.put(newInfo.id, (newInfo.timestamp, false)); - deleteFamilyNode(newInfo.id); - #reuse newInfo - } else { - #outOfCapacity(ttl - elapsed) - } + switch (tree.entries().next()) { + case null { + if (len < size) { + len += 1; + #newId + } else { + Debug.trap "No canister in the pool" }; - }; + }; + case (?info) { + let now = Time.now(); + let elapsed : Nat = Int.abs(now) - Int.abs(info.timestamp); + if (elapsed >= ttl) { + // Lazily cleanup pool state before reusing canister + tree.remove info; + let newInfo = { timestamp = now; id = info.id; }; + tree.insert newInfo; + metadata.put(newInfo.id, (newInfo.timestamp, false)); + deleteFamilyNode(newInfo.id); + #reuse newInfo + } else { + if (len < size) { + len += 1; + #newId + } else { + #outOfCapacity(ttl - elapsed) + } + } + }; }; }; public func removeCanister(info: CanisterInfo) { @@ -288,7 +300,10 @@ module { case null List.nil(); case (?children) { let now = Time.now(); - List.filter(children, func(p: Principal) : Bool = notExpired(Option.unwrap(info p), now)); + List.filter(children, func(p: Principal) : Bool { + let ?cinfo = info p else { Debug.trap "unwrap info(p)" }; + notExpired(cinfo, now); + }); } } }; diff --git a/service/pool/tests/actor_class/dfx.json b/service/pool/tests/actor_class/dfx.json index bc68dbd8..bd682def 100644 --- a/service/pool/tests/actor_class/dfx.json +++ b/service/pool/tests/actor_class/dfx.json @@ -8,10 +8,5 @@ "main": "Deleter.mo", "type": "motoko" } - }, - "defaults": { - "build": { - "packtool": "mops sources" - } } } diff --git a/service/pool/tests/canisterPool.test.sh b/service/pool/tests/canisterPool.test.sh index c92d7ef8..c48b1a43 100644 --- a/service/pool/tests/canisterPool.test.sh +++ b/service/pool/tests/canisterPool.test.sh @@ -11,26 +11,7 @@ let init = opt record { nonce_time_to_live = 1; canister_time_to_live = 5_000_000_000; max_family_tree_size = 5; - no_uninstall = opt true; -}; -let S = install(wasm, init, null); -let nonce = record { timestamp = 1 : int; nonce = 1 : nat }; -let CID2 = call S.getCanisterId(nonce, origin); -call S.installCode(CID2, record { arg = blob ""; wasm_module = empty_wasm; mode = variant { install }; canister_id = CID2.id }, record { profiling = false; is_whitelisted = false; origin = origin }); -read_state("canister", CID2.id, "module_hash"); -let c1 = call S.deployCanister(null, opt record { arg = blob ""; wasm_module = empty_wasm; bypass_wasm_transform = opt true }); -let c1 = c1[0]; -call S.transferOwnership(c1, vec {c1.id; S}); -fail call S.deployCanister(opt c1, opt record { arg = blob ""; wasm_module = empty_wasm; bypass_wasm_transform = opt true }); -assert _ ~= "Cannot find canister"; - -let init = opt record { - cycles_per_canister = 105_000_000_000; - max_num_canisters = 2; - nonce_time_to_live = 1; - canister_time_to_live = 5_000_000_000; - max_family_tree_size = 5; - no_uninstall = opt false; + stored_module = null; }; let S = install(wasm, init, null); let nonce = record { timestamp = 1 : int; nonce = 1 : nat }; @@ -51,17 +32,11 @@ let init = opt record { }; let S = install(wasm, init, null); -let c1 = call S.getCanisterId(nonce, origin); -c1; -let c2 = call S.getCanisterId(nonce, origin); -c2; -let c3 = call S.getCanisterId(nonce, origin); -c3; -let c4 = call S.getCanisterId(nonce, origin); -c4; -assert c1.id != c2.id; -assert c1.id == c3.id; -assert c2.id == c4.id; +let s1 = par_call [S.getCanisterId(nonce, origin), S.getCanisterId(nonce, origin)]; +assert s1[0].id != s1[1].id; +let s2 = par_call [S.getCanisterId(nonce, origin), S.getCanisterId(nonce, origin)]; +assert or(eq(s1[0].id, s2[0].id), eq(s1[0].id, s2[1].id)) == true; +assert or(eq(s1[1].id, s2[1].id), eq(s1[1].id, s2[0].id)) == true; // Out of capacity let init = opt record { @@ -105,5 +80,4 @@ call S.getCanisterId(nonce, origin); // Enough time has passed that the timer has removed the canister code fail read_state("canister", CID.id, "module_hash"); assert _ ~= "absent"; -read_state("canister", CID2.id, "module_hash"); read_state("canister", CID3.id, "module_hash"); diff --git a/service/pool/tests/frontend.test.sh b/service/pool/tests/frontend.test.sh new file mode 100644 index 00000000..b89b5f45 --- /dev/null +++ b/service/pool/tests/frontend.test.sh @@ -0,0 +1,50 @@ +#!ic-repl +load "prelude.sh"; + +let wasm = file("../../../.dfx/local/canisters/backend/backend.wasm"); +let asset = file("../../../script/assetstorage.wasm.gz"); +let module_hash = blob "\2c\24\b5\e1\58\48\90\a7\96\50\11\d5\d1\d8\27\ac\a6\8c\48\9c\9a\63\08\47\57\30\42\0f\a5\33\72\e8"; +let empty_wasm = blob "\00asm\01\00\00\00"; + +let origin = record { origin = "test"; tags = vec {"tag"} }; +let nonce = record { timestamp = 1 : int; nonce = 1 : nat }; +let init = opt record { + cycles_per_canister = 105_000_000_000; + max_num_canisters = 2; + nonce_time_to_live = 1; + canister_time_to_live = 5_000_000_000; + max_family_tree_size = 5; + stored_module = opt record { hash = module_hash; arg = encode () }; +}; +let S = install(wasm, init, null); +call ic.upload_chunk(record { chunk = asset; canister_id = S }); +let nonce = record { timestamp = 1 : int; nonce = 1 : nat }; +let c1 = call S.deployCanister(null, null); +let c1 = c1[0]; +call S.transferOwnership(c1, vec {c1.id; S}); +fail call S.deployCanister(opt c1, null); +assert _ ~= "Cannot find canister"; +let c2 = call S.getCanisterId(nonce, origin); +let c3 = call S.deployCanister(null, null); +assert read_state("canister", c2.id, "module_hash") == module_hash; +assert c2.id != c1.id; +assert c3[0].id != c2.id; + +call ic.upload_chunk(record { chunk = empty_wasm; canister_id = S }); +let hash = _.hash; +let init = opt record { + cycles_per_canister = 105_000_000_000; + max_num_canisters = 2; + nonce_time_to_live = 1; + canister_time_to_live = 5_000_000_000; + max_family_tree_size = 5; + stored_module = opt record { hash = hash; arg = encode () }; +}; +upgrade(S, wasm, init); +let c4 = call S.getCanisterId(nonce, origin); +assert c4.id == c2.id; + +assert read_state("canister", c1.id, "module_hash") == module_hash; +assert read_state("canister", c3[0].id, "module_hash") == module_hash; +assert read_state("canister", c4.id, "module_hash") == hash; + diff --git a/service/pool/tests/upgrade.test.sh b/service/pool/tests/upgrade.test.sh index 1101ed91..95a5be93 100644 --- a/service/pool/tests/upgrade.test.sh +++ b/service/pool/tests/upgrade.test.sh @@ -15,16 +15,12 @@ let S = install(wasm, init, null); let nonce = record { timestamp = 1 : int; nonce = 1 : nat }; let c1 = call S.getCanisterId(nonce, origin); -c1; let c2 = call S.getCanisterId(nonce, origin); -c2; upgrade(S, wasm, init); let c3 = call S.getCanisterId(nonce, origin); -c3; let c4 = call S.getCanisterId(nonce, origin); -c4; -assert c1.id != c2.id; +assert c1.id == c2.id; assert c1.id == c3.id; assert c2.id == c4.id; @@ -41,10 +37,11 @@ upgrade(S, wasm, init); // stats are preserved after upgrade call S.getStats(); assert _ == stats; -let c5 = call S.getCanisterId(nonce, origin); -c5; -assert c5.id != c1.id; -assert c5.id != c2.id; +// TTL increased, c4 suddenly get more time. +let c6 = call S.getCanisterId(nonce, origin); +let c7 = call S.getCanisterId(nonce, origin); +assert c6.id != c4.id; +assert c7.id != c6.id; fail call S.getCanisterId(nonce, origin); assert _ ~= "No available canister id"; diff --git a/src/App.tsx b/src/App.tsx index 5426a205..2befef0f 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,7 +1,7 @@ import { useCallback, useEffect, useReducer, useState } from "react"; import styled, { createGlobalStyle } from "styled-components"; -import { wrap } from "comlink"; +import * as Comlink from "comlink"; import { CandidUI } from "./components/CandidUI"; import { Editor } from "./components/Editor"; @@ -13,15 +13,21 @@ import { workplaceReducer, WorkplaceDispatchContext, WorkerContext, + ContainerContext, getActorAliases, getDeployedCanisters, getShareableProject, WorkplaceReducerAction, + generateNonMotokoFilesToWebContainer, + generateEnv, } from "./contexts/WorkplaceState"; import { ProjectModal } from "./components/ProjectModal"; import { DeployModal, DeploySetter } from "./components/DeployModal"; +import { FrontendDeployModal } from "./components/FrontendDeployModal"; import { backend, saved } from "./config/actor"; import { setupEditorIntegration } from "./integrations/editorIntegration"; +import { Container } from "./webcontainer"; +import { Terminal } from "@xterm/xterm"; const MOC_VERSION = "0.12.1"; @@ -61,9 +67,22 @@ const AppContainer = styled.div<{ candidWidth: string; consoleHeight: string }>` --consoleHeight: ${(props) => props.consoleHeight ?? 0}; `; -const worker = wrap( - new Worker(new URL("./workers/moc.ts", import.meta.url), { type: "module" }) +const worker = Comlink.wrap( + new Worker(new URL("./workers/moc.ts", import.meta.url), { type: "module" }), ); +const terminal = new Terminal({ + convertEol: true, + cursorBlink: true, + fontSize: 14, + fontFamily: "monospace", + theme: { + background: "#ffffff", + foreground: "#000000", + cursor: "#000000", + selectionBackground: "#aaaaaa", + }, +}); +const container = new Container(terminal); const urlParams = new URLSearchParams(window.location.search); const hasUrlParams = !!( urlParams.get("git") || @@ -71,7 +90,7 @@ const hasUrlParams = !!( urlParams.get("post") ); async function fetchFromUrlParams( - dispatch: (action: WorkplaceReducerAction) => void + dispatch: (action: WorkplaceReducerAction) => void, ): Promise | undefined> { const git = urlParams.get("git"); const tag = urlParams.get("tag"); @@ -103,7 +122,7 @@ async function fetchFromUrlParams( project.files.map((file) => { worker.Moc({ type: "save", file: file.name, content: file.content }); return [file.name, file.content]; - }) + }), ); if (project.packages.length) { for (const pack of project.packages[0]) { @@ -154,7 +173,7 @@ export function App() { const [workplaceState, workplaceDispatch] = useReducer( workplaceReducer.reduce, {}, - workplaceReducer.init + workplaceReducer.init, ); const [isProjectModalOpen, setIsProjectModalOpen] = useState(!hasUrlParams); const [isFirstVisit, setIsFirstVisit] = useState(!hasUrlParams); @@ -166,6 +185,7 @@ export function App() { // States for deploy modal const [showDeployModal, setShowDeployModal] = useState(false); + const [showFrontendDeployModal, setShowFrontendDeployModal] = useState(false); const [isDeploying, setIsDeploying] = useState(false); const [candidCode, setCandidCode] = useState(""); const [initTypes, setInitTypes] = useState([]); @@ -176,6 +196,7 @@ export function App() { setInitTypes, setCandidCode, setShowDeployModal, + setShowFrontendDeployModal, setWasm, }; @@ -195,7 +216,7 @@ export function App() { logger.log( `Use this link to access the code:\n${ window.location.origin - }/?tag=${hash.toString()}` + }/?tag=${hash.toString()}`, ); } @@ -207,18 +228,32 @@ export function App() { canister: info, }, }); + if (info.name) { + const canisters = { ...workplaceState.canisters, [info.name]: info }; + const { env_files } = generateEnv(canisters); + Object.entries(env_files).forEach(([path, content]) => { + container.writeFile(`user/${path}`, content.file.contents); + }); + } }; const importCode = useCallback( - (files: Record) => { + async (files: Record) => { workplaceDispatch({ type: "loadProject", payload: { files, }, }); + const { files: bundle } = generateNonMotokoFilesToWebContainer( + files, + workplaceState.canisters, + ); + await container.rm("user", { recursive: true, force: true }); + await container.mkdir("user"); + await container.mount(bundle, { mountPoint: "user" }); }, - [workplaceDispatch] + [workplaceDispatch], ); // Add the Motoko package to allow for compilation / checking @@ -241,6 +276,19 @@ export function App() { }); logger.log(`moc version ${MOC_VERSION}`); logger.log(`base library version ${baseInfo.version}`); + await container.initFiles(); + await container.run_cmd("npm", ["install"], { + cwd: "utils", + output: false, + }); + container.start_shell(); + if (container.isDummy) { + logger.log( + "WebContainer is not supported in this browser. Frontend build is disabled.", + ); + } else { + logger.log("Shell started in the terminal tab"); + } // fetch code after loading base library if (hasUrlParams) { const files = await fetchFromUrlParams(workplaceDispatch); @@ -285,86 +333,106 @@ export function App() { /> - - setShowDeployModal(false)} - onDeploy={deployWorkplace} - isDeploy={setIsDeploying} - canisters={getDeployedCanisters(workplaceState.canisters)} - ttl={TTL} - fileName={mainFile} - wasm={wasm} - candid={candidCode} - initTypes={initTypes} - logger={logger} - origin={workplaceState.origin} - /> - - + + setShowDeployModal(false)} + onDeploy={deployWorkplace} + isDeploy={setIsDeploying} + canisters={getDeployedCanisters(workplaceState.canisters)} ttl={TTL} + fileName={mainFile} + wasm={wasm} + candid={candidCode} + initTypes={initTypes} logger={logger} - deploySetter={deploySetter} + origin={workplaceState.origin} /> - setShowFrontendDeployModal(false)} + onDeploy={deployWorkplace} + isDeploy={setIsDeploying} + canisters={getDeployedCanisters(workplaceState.canisters)} logger={logger} - deploySetter={deploySetter} - isDeploying={isDeploying} - setConsoleHeight={setConsoleHeight} + origin={workplaceState.origin} /> - {showCandidUI ? ( - { - if (!message.caller) return; - // We have to check children for all canisters in workplaceState, - // because message.caller can call other canisters to spawn new children. - const nameMap = Object.fromEntries( - Object.entries(workplaceState.canisters).map( - ([name, info]) => [info.id, name] - ) - ); - Object.entries(workplaceState.canisters).forEach( - async ([_, info]) => { - if (!info.timestamp || info.isExternal) { - return; - } - const subtree = await backend.getSubtree(info); - subtree.reverse().forEach(([parentId, children]) => { - const parentName = nameMap[parentId]; - // Assume children is sorted by timestamp - children.reverse().forEach((child, i) => { - child.name = `${parentName}_${i}`; - child.isExternal = false; - nameMap[child.id] = child.name; - workplaceDispatch({ - type: "deployWorkplace", - payload: { canister: child, do_not_select: true }, + + + + {showCandidUI ? ( + { + if (!message.caller) return; + // We have to check children for all canisters in workplaceState, + // because message.caller can call other canisters to spawn new children. + const nameMap = Object.fromEntries( + Object.entries(workplaceState.canisters).map( + ([name, info]) => [info.id, name], + ), + ); + Object.values(workplaceState.canisters).forEach( + async (info) => { + if (!info.timestamp || info.isExternal) { + return; + } + const subtree = await backend.getSubtree(info); + subtree.reverse().forEach(([parentId, children]) => { + const parentName = nameMap[parentId]; + // Assume children is sorted by timestamp + children.reverse().forEach((child, i) => { + child.name = `${parentName}_${i}`; + child.isExternal = false; + nameMap[child.id] = child.name; + workplaceDispatch({ + type: "deployWorkplace", + payload: { canister: child, do_not_select: true }, + }); }); }); - }); - } - ); - }} - /> - ) : null} - + }, + ); + }} + /> + ) : null} + + diff --git a/src/build.ts b/src/build.ts index b5a8986a..1e56e027 100644 --- a/src/build.ts +++ b/src/build.ts @@ -10,6 +10,7 @@ export interface CanisterInfo { name?: string; candid?: string | null; stableSig?: string | null; + isFrontend?: boolean; } /* export function interpret(file: string, logger: ILoggingStore): void { @@ -61,7 +62,7 @@ function logDiags(diagnostics: Diagnostics[], logger: ILoggingStore) { function get_wasm_metadata( wasm: WebAssembly.Module, - name: string + name: string, ): string | undefined { let section = WebAssembly.Module.customSections(wasm, `icp:public ${name}`); if (section.length === 0) { @@ -77,7 +78,7 @@ function get_wasm_metadata( } export async function extractCandidFromWasm( - wasm: Uint8Array + wasm: Uint8Array, ): Promise<[string, undefined | string]> { const mod = await WebAssembly.compile(wasm); const serv = get_wasm_metadata(mod, "candid:service"); @@ -89,7 +90,7 @@ export async function extractCandidFromWasm( } export async function getBaseDeps( worker, - entry: string + entry: string, ): Promise> { const visited = new Set(); const result = new Set(); @@ -122,7 +123,7 @@ export async function getBaseDeps( export async function compileCandid( worker, file: string, - logger: ILoggingStore + logger: ILoggingStore, ): Promise { const candid_result = await worker.Moc({ type: "candid", file }); if (candid_result.diagnostics) logDiags(candid_result.diagnostics, logger); @@ -141,7 +142,7 @@ export async function compileCandid( export async function compileWasm( worker, file: string, - logger: ILoggingStore + logger: ILoggingStore, ): Promise<[CompileResult, string[]] | undefined> { logger.log("Compiling code..."); const out = await worker.Moc({ type: "compile", file }); @@ -159,7 +160,7 @@ export async function compileWasm( return; } logger.log( - `Compiled Wasm size: ${Math.floor(out.code.wasm.length / 1024)}KB` + `Compiled Wasm size: ${Math.floor(out.code.wasm.length / 1024)}KB`, ); let warn_code = []; if (out.diagnostics) { @@ -175,10 +176,11 @@ export async function deploy( args: Uint8Array, mode: string, wasm: Uint8Array, + is_asset: boolean, profiling: boolean, hasStartPage: boolean, logger: ILoggingStore, - origin: Origin + origin: Origin, ): Promise { try { logger.log(`Deploying code...`); @@ -189,20 +191,21 @@ export async function deploy( } logger.log(`Requesting a new canister id...`); canisterInfo = await createCanister(worker, logger, origin); - updatedState = await install( + } else { + if (mode !== "reinstall" && mode !== "upgrade") { + throw new Error(`Unknown mode ${mode}`); + } + } + if (is_asset) { + updatedState = await install_asset_canister( canisterInfo, wasm, args, - "install", - profiling, - hasStartPage, + mode, logger, - origin + origin, ); } else { - if (mode !== "reinstall" && mode !== "upgrade") { - throw new Error(`Unknown mode ${mode}`); - } updatedState = await install( canisterInfo, wasm, @@ -211,7 +214,7 @@ export async function deploy( profiling, hasStartPage, logger, - origin + origin, ); } //updatedState.candid = candid_source; @@ -234,7 +237,7 @@ function mkOrigin(origin: Origin, is_install: boolean) { async function createCanister( worker, logger: ILoggingStore, - origin: Origin + origin: Origin, ): Promise { const timestamp = BigInt(Date.now()) * BigInt(1_000_000); const nonce = await worker.pow(timestamp); @@ -251,6 +254,32 @@ export async function deleteCanister(info: CanisterInfo) { await backend.removeCode(info); } +async function install_asset_canister( + canisterInfo: CanisterInfo, + module_hash: Uint8Array, + args: Uint8Array, + mode: string, + logger: ILoggingStore, + origin: Origin, +): Promise { + if (!canisterInfo) { + throw new Error("no canister id"); + } + const installArgs = { + arg: [...args], + wasm_module: [...module_hash], + mode: { [mode]: null }, + canister_id: canisterInfo.id, + }; + const new_info = await backend.installStoredWasm( + canisterInfo, + installArgs, + mkOrigin(origin, true), + ); + logger.log(`Asset canister installed at canister id ${new_info.id}`); + return new_info; +} + async function install( canisterInfo: CanisterInfo, module: Uint8Array, @@ -259,7 +288,7 @@ async function install( profiling: boolean, hasStartPage: boolean, logger: ILoggingStore, - origin: Origin + origin: Origin, ): Promise { if (!canisterInfo) { throw new Error("no canister id"); @@ -282,7 +311,7 @@ async function install( const new_info = await backend.installCode( canisterInfo, installArgs, - installConfig + installConfig, ); canisterInfo = new_info; logger.log(`Code installed at canister id ${canisterInfo.id}`); diff --git a/src/components/CandidUI.tsx b/src/components/CandidUI.tsx index 220091f6..a2f18f67 100644 --- a/src/components/CandidUI.tsx +++ b/src/components/CandidUI.tsx @@ -11,7 +11,9 @@ const CandidPanel = styled.div<{ isExpanded: boolean }>` width: var(--candidWidth); `; -const CandidFrame = styled.iframe` +const CandidFrame = styled.iframe.attrs({ + sandbox: "allow-scripts allow-same-origin allow-forms allow-popups", +})` height: calc(var(--appHeight) - var(--sectionHeaderHeight)); border: none; width: var(--candidWidth); @@ -41,6 +43,7 @@ interface PropTypes { canisterId: string; candid?: string | null | undefined; setCandidWidth?: (width: string) => void; + isFrontend: boolean; forceUpdate?: any; onMessage?: (event: { origin: string; source: Window; message: any }) => void; } @@ -50,6 +53,7 @@ export function CandidUI({ candid, setCandidWidth, forceUpdate, + isFrontend, onMessage, }: PropTypes) { const [isExpanded, setIsExpanded] = useState(true); @@ -59,8 +63,10 @@ export function CandidUI({ ? `&did=${encodeURIComponent(btoa(candid))}` : "&external-config"; - const url = - `${CANDID_UI_CANISTER_URL}/?id=${canisterId}&tag=${forceUpdate}` + didParam; + const url = isFrontend + ? `https://${canisterId}.icp0.io` + : `${CANDID_UI_CANISTER_URL}/?id=${canisterId}&tag=${forceUpdate}` + + didParam; // Handle incoming messages from iframe const handleMessage = useCallback( @@ -78,12 +84,12 @@ export function CandidUI({ console.warn( "Received Candid UI message from unexpected origin:", origin, - `(Expected: ${CANDID_UI_CANISTER_URL})` + `(Expected: ${CANDID_UI_CANISTER_URL})`, ); return; } const message = JSON.parse( - data.substring(CANDID_UI_MESSAGE_PREFIX.length) + data.substring(CANDID_UI_MESSAGE_PREFIX.length), ); onMessage?.({ origin, source, message }); } @@ -93,7 +99,7 @@ export function CandidUI({ } } }, - [onMessage] + [onMessage], ); useEffect(() => { @@ -104,6 +110,9 @@ export function CandidUI({ setIsExpanded(true); }, [canisterId, candid, forceUpdate]); useEffect(() => { + if (isFrontend) { + return; + } window.addEventListener("message", handleMessage, false); return () => window.removeEventListener("message", handleMessage); }, [handleMessage, onMessage, url]); @@ -118,6 +127,9 @@ export function CandidUI({ console.warn("Unable to open new tab for Candid UI"); return; } + if (isFrontend) { + return; + } // Limit number of message attempts let remainingAttempts = 20; @@ -145,6 +157,9 @@ export function CandidUI({ }; const sendConfigMessage = (newWindow: Window, acknowledge: any) => { + if (isFrontend) { + return; + } console.log("Sending config message to Candid UI"); // Configure candid using iframe message @@ -158,7 +173,7 @@ export function CandidUI({ }; newWindow.postMessage( `${CANDID_UI_MESSAGE_PREFIX}${JSON.stringify(message)}`, - CANDID_UI_CANISTER_URL + CANDID_UI_CANISTER_URL, ); }; @@ -175,7 +190,7 @@ export function CandidUI({ src={iconCollapse} alt="Collapse icon" /> - {isExpanded ? "CANDID UI" : null} + {isExpanded ? (isFrontend ? "FRONTEND" : "CANDID UI") : null} {isExpanded ? ( - + - {fileName === "README" ? fileCode : ""} + {fileExtension === "md" ? fileCode : ""} - + - + ); } diff --git a/src/components/Explorer.tsx b/src/components/Explorer.tsx index bf1ce603..f3227a5b 100644 --- a/src/components/Explorer.tsx +++ b/src/components/Explorer.tsx @@ -12,7 +12,7 @@ import { import { PackageModal } from "./PackageModal"; import { FileModal } from "./FileModal"; import { CanisterModal } from "./CanisterModal"; -import { DeploySetter } from "./DeplayModal"; +import { DeploySetter } from "./DeployModal"; import { PackageInfo } from "../workers/file"; import { ILoggingStore } from "./Logger"; import { deleteCanister } from "../build"; @@ -45,6 +45,18 @@ const CloseButton = styled(MyButton)` margin-right: -1.1rem; margin-left: -0.3rem; `; +const CanisterName = styled.span` + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + max-width: calc(100% - 4rem); + display: inline-block; +`; +const TimeDisplay = styled.div` + margin-left: auto; + white-space: nowrap; + flex-shrink: 0; +`; interface ExplorerProps { state: WorkplaceState; @@ -99,7 +111,7 @@ export function Explorer({ state, ttl, logger, deploySetter }: ExplorerProps) { if (action === "delete") { const canisterInfo = state.canisters[selectedCanister]; logger.log( - `Deleting canister ${selectedCanister} with id ${canisterInfo.id.toText()}...` + `Deleting canister ${selectedCanister} with id ${canisterInfo.id.toText()}...`, ); await deleteCanister(canisterInfo); logger.log("Canister deleted"); @@ -132,7 +144,7 @@ export function Explorer({ state, ttl, logger, deploySetter }: ExplorerProps) { } const timer = setTimeout(() => { const times: Array<[string, number | undefined]> = Object.values( - state.canisters + state.canisters, ).map((info) => { return [info.name!, calcTimeLeft(info.timestamp)]; }); @@ -162,7 +174,7 @@ export function Explorer({ state, ttl, logger, deploySetter }: ExplorerProps) { } else { return { status: "Expired" }; } - }) + }), ); }, 1000); // Clear timeout if the component is unmounted @@ -196,7 +208,9 @@ export function Explorer({ state, ttl, logger, deploySetter }: ExplorerProps) { typeof state.files[key] === "string") + .sort()} onSelectFile={onSelectFile} activeFile={state.selectedFile} /> @@ -235,22 +249,25 @@ export function Explorer({ state, ttl, logger, deploySetter }: ExplorerProps) { disabled={state.selectedCanister === canister} onClick={() => onCanister(canister, "select")} aria-label="Select canister" + title={canister} > - canister:{canister} - {timeLeft[i]?.status === "Active" ? ( -

- - {timeLeft[i]?.minutes} - - : - - {timeLeft[i]?.seconds} - -
- ) : ( -
- )} + {canister} + + {timeLeft[i]?.status === "Active" ? ( +
+ + {timeLeft[i]?.minutes} + + : + + {timeLeft[i]?.seconds} + +
+ ) : ( +
+ )} +
onCanister(canister, "delete")} aria-label={`Delete canister ${canister}`} diff --git a/src/components/FileModal.tsx b/src/components/FileModal.tsx index 283af671..63418334 100644 --- a/src/components/FileModal.tsx +++ b/src/components/FileModal.tsx @@ -35,7 +35,7 @@ export function FileModal({ isOpen, close }) { if (!fileName) { return; } - const name = fileName.endsWith(".mo") ? fileName : `${fileName}.mo`; + const name = fileName.includes(".") ? fileName : `${fileName}.mo`; await worker.Moc({ type: "save", file: name, content: "" }); await dispatch({ type: "saveFile", payload: { path: name, contents: "" } }); await dispatch({ type: "selectFile", payload: { path: name } }); diff --git a/src/components/FolderStructure.tsx b/src/components/FolderStructure.tsx index 5a6ec026..6bada829 100644 --- a/src/components/FolderStructure.tsx +++ b/src/components/FolderStructure.tsx @@ -28,7 +28,7 @@ export function structureFolders(filePaths: Array) { return result; }, - { files: [], folders: {} } as FoldersJson + { files: [], folders: {} } as FoldersJson, ); } @@ -60,6 +60,15 @@ const FileButton = styled(ListButton)` border-bottom: none; height: 3rem; user-select: none; + white-space: nowrap; + overflow: hidden; +`; +const FileName = styled.span` + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + max-width: calc(100% - 2.4rem); + display: inline-block; `; const Icon = styled.img` @@ -73,13 +82,16 @@ interface RenderOptions { activeFile: string | null; nestDepth?: number; } +function isExpandFolder(folderName: string) { + return folderName !== "declarations" && folderName !== "assets"; +} function renderFolderStructure(options: RenderOptions) { const { folderStructure, onSelectFile, activeFile, nestDepth = 0 } = options; const finalStructure = Object.entries(folderStructure.folders).map( ([folderName, contents]) => ( - + {folderName} @@ -91,7 +103,7 @@ function renderFolderStructure(options: RenderOptions) { nestDepth: nestDepth + 1, })} - ) + ), ); folderStructure.files.forEach((filePath) => { @@ -106,10 +118,11 @@ function renderFolderStructure(options: RenderOptions) { isActive={isActive} disabled={isActive} aria-label="File" + title={fileName} > - {fileName} - + {fileName} + , ); }); diff --git a/src/components/FrontendDeployModal.tsx b/src/components/FrontendDeployModal.tsx new file mode 100644 index 00000000..1901a52b --- /dev/null +++ b/src/components/FrontendDeployModal.tsx @@ -0,0 +1,244 @@ +import { useState, useEffect, useContext } from "react"; +import styled from "styled-components"; +import { Ed25519KeyIdentity } from "@dfinity/identity"; +import { IDL } from "@dfinity/candid"; + +import { Modal } from "./shared/Modal"; +import { CanisterInfo, deploy } from "../build"; +import { ILoggingStore } from "./Logger"; +import { Button } from "./shared/Button"; +import { + WorkerContext, + WorkplaceState, + ContainerContext, + Origin, + generateNonMotokoFilesToWebContainer, +} from "../contexts/WorkplaceState"; +import { backend } from "../config/actor"; +import { Field } from "./shared/Field"; + +const assetWasmHash = + "2c24b5e1584890a7965011d5d1d827aca68c489c9a6308475730420fa53372e8"; + +const ModalContainer = styled.div` + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: center; + width: 46rem; +`; + +const FormContainer = styled.div` + width: 100%; + margin-top: 2rem; +`; + +const ButtonContainer = styled.div` + display: flex; + justify-content: center; + width: 100%; + margin-top: 3rem; +`; + +const MyButton = styled(Button)` + width: 12rem; +`; +interface FrontendDeployModalProps { + state: WorkplaceState; + isOpen: boolean; + close: () => void; + onDeploy: (info: CanisterInfo) => void; + isDeploy: (tag: boolean) => void; + canisters: Record; + logger: ILoggingStore; + origin: Origin; +} +const MAX_CANISTERS = 3; + +function guessBuildDir(src: string | undefined): string[] { + try { + const dfx = JSON.parse(src!); + const asset: any = Object.values(dfx["canisters"]).find( + (desc: any) => desc["type"] === "assets", + ); + return asset["source"]; + } catch (e) { + return ["dist"]; + } +} +export function FrontendDeployModal({ + state, + isOpen, + close, + onDeploy, + isDeploy, + canisters, + logger, + origin, +}: FrontendDeployModalProps) { + const [canisterName, setCanisterName] = useState("frontend"); + const [buildDir, setBuildDir] = useState(["dist"]); + const worker = useContext(WorkerContext); + const container = useContext(ContainerContext); + + useEffect(() => { + setBuildDir(guessBuildDir(state.files["dfx.json"] as string)); + }, [state.files["dfx.json"]]); + + const exceedsLimit = Object.keys(canisters).length >= MAX_CANISTERS; + + async function deployClick(mode: string) { + try { + await close(); + if (container.isDummy) { + logger.log("Frontend build is disabled."); + return; + } + const { files, env } = generateNonMotokoFilesToWebContainer( + state.files, + canisters, + ); + // mount doesn't remove old files, but this is fine for now + await container.mount(files, { mountPoint: "user" }); + if (Object.keys(canisters).length === 0) { + logger.log( + "No backend canisters found. Please deploy at least one backend canister first.", + ); + return; + } + await isDeploy(true); + logger.log("Building frontend... (see logs in the terminal tab)"); + await container.run_cmd("npm", ["install"], { cwd: "user" }); + await container.run_cmd("npm", ["run", "build"], { + cwd: "user", + env, + }); + var info: CanisterInfo | undefined = canisters[canisterName]; + if (mode !== "upgrade") { + const module_hash = assetWasmHash + .match(/.{2}/g)! + .map((byte) => parseInt(byte, 16)); + info = await deploy( + worker, + canisterName, + canisters[canisterName], + new Uint8Array(IDL.encode([], [])), + mode, + new Uint8Array(module_hash), + true, + false, + false, + logger, + origin, + ); + const identity = Ed25519KeyIdentity.generate(); + const principal = identity.getPrincipal(); + const args = IDL.encode([IDL.Principal], [principal]); + await backend.callForward(info!, "authorize", args); + await container.writeFile( + "utils/identity.json", + JSON.stringify(identity.toJSON()), + ); + logger.log(`Authorized asset canister with ${principal}`); + } + logger.log(`Uploading frontend...`); + const dirs = buildDir.map((dir) => `../user/${dir}`).join(","); + await container.run_cmd( + "node", + ["uploadAsset.js", info!.id.toText(), dirs], + { cwd: "utils" }, + ); + logger.log(`Frontend uploaded`); + info!.isFrontend = true; + onDeploy(info!); + await isDeploy(false); + } catch (err) { + logger.log(err.message); + await isDeploy(false); + throw err; + } + } + const welcomeText =

Deploy your frontend to the IC

; + const deployLabelText = "Select a canister name"; + const newDeploy = ( + <> + setCanisterName(e.target.value)} + /> + + {Object.keys(canisters).map((canister, i) => ( + + ))} + + + ); + const selectDeploy = ( + setCanisterName(e.target.value)} + > + {Object.keys(canisters).map((canister) => ( + + ))} + + ); + + return ( + <> + + +
+ {welcomeText} + + {exceedsLimit ? selectDeploy : newDeploy} + setBuildDir(e.target.value)} + /> + +
+ {canisterName ? ( + + {canisters.hasOwnProperty(canisterName) ? ( + <> + deployClick("upgrade")} + > + Update + + deployClick("reinstall")}> + Reinstall + + + ) : ( + deployClick("install")} + > + Install + + )} + Cancel + + ) : null} +
+
+ + ); +} diff --git a/src/components/Logger.tsx b/src/components/Logger.tsx index fe60e2f8..38870ce8 100644 --- a/src/components/Logger.tsx +++ b/src/components/Logger.tsx @@ -1,17 +1,24 @@ -import { useState, createContext, useContext } from "react"; +import { useState, createContext, useContext, Fragment } from "react"; export interface ILoggingStore { clearLogs(): void; - log(line: string): void; - logLines: string[]; + log(line: string | React.ReactNode): void; + logLines: Array; } const useLoggingStore = (): ILoggingStore => { - const [logLines, setLogLines] = useState([]); + const [logLines, setLogLines] = useState>([]); const clearLogs = () => setLogLines([]); - const log = (line: string) => { + const log = (line: string | React.ReactNode) => { const time = new Date(Date.now()).toLocaleTimeString(); - setLogLines((prevLines) => [...prevLines, `[${time}] ${line}`]); + setLogLines((prevLines) => [ + ...prevLines, + typeof line === "string" ? ( + `[${time}] ${line}` + ) : ( + {line} + ), + ]); }; return { clearLogs, diff --git a/src/config/actor.ts b/src/config/actor.ts index 970a1db1..c2003e36 100644 --- a/src/config/actor.ts +++ b/src/config/actor.ts @@ -20,8 +20,10 @@ const LOCAL_PORT = 4943; const hostname = window.location.hostname; const local = hostname === "127.0.0.1" || hostname.endsWith("localhost"); +// only enable when testing webcontainer upload +//const local = false; -export const agent = new HttpAgent({ +export const agent = HttpAgent.createSync({ // Prefer calling local replica directly instead of CRA proxy host: local ? `http://localhost:${LOCAL_PORT}` : "https://icp-api.io", }); @@ -63,7 +65,6 @@ async function getDidFromMetadata( const did = status.get("candid"); return did as any; } - async function getDidFromTmpHack(canisterId: Principal) { const common_interface: IDL.InterfaceFactory = ({ IDL }) => IDL.Service({ diff --git a/src/contexts/WorkplaceState.ts b/src/contexts/WorkplaceState.ts index 19800ad4..3484e5a2 100644 --- a/src/contexts/WorkplaceState.ts +++ b/src/contexts/WorkplaceState.ts @@ -1,6 +1,7 @@ import * as React from "react"; import { CanisterInfo } from "../build"; import { PackageInfo } from "../workers/file"; +import { Container } from "../webcontainer"; export interface Origin { origin: string; @@ -9,7 +10,7 @@ export interface Origin { session_tags?: Array; } export interface WorkplaceState { - files: Record; + files: Record; selectedFile: string | null; canisters: Record; selectedCanister: string | null; @@ -17,7 +18,7 @@ export interface WorkplaceState { origin: Origin; } export function getActorAliases( - canisters: Record + canisters: Record, ): Array<[string, string]> { return Object.entries(canisters).map(([name, info]) => [ name, @@ -25,17 +26,17 @@ export function getActorAliases( ]); } export function getExternalCanisters( - canisters: Record + canisters: Record, ): Record { return Object.fromEntries( - Object.entries(canisters).filter(([_, info]) => info.isExternal) + Object.entries(canisters).filter(([_, info]) => info.isExternal), ); } export function getDeployedCanisters( - canisters: Record + canisters: Record, ): Record { return Object.fromEntries( - Object.entries(canisters).filter(([_, info]) => !info.isExternal) + Object.entries(canisters).filter(([_, info]) => !info.isExternal), ); } export function getShareableProject(state: WorkplaceState) { @@ -66,6 +67,62 @@ export function getShareableProject(state: WorkplaceState) { ]; return { files, packages, canisters }; } +export function generateNonMotokoFilesToWebContainer( + state_files: Record, + canisters?: Record, +) { + const files = Object.entries(state_files) + .filter(([path]) => !path.endsWith(".mo")) + .reduce((acc, [path, content]) => { + const parts = path.split("/"); + let current = acc; + for (let i = 0; i < parts.length - 1; i++) { + if (!current[parts[i]]) { + current[parts[i]] = { directory: {} }; + } + current = current[parts[i]].directory; + } + current[parts[parts.length - 1]] = { + file: { + contents: content, + }, + }; + return acc; + }, {}); + const { env, env_files } = generateEnv(canisters ?? {}); + Object.entries(env_files).forEach(([path, content]) => { + files[path] = content; + }); + return { files, env }; +} +export function generateEnv(canisters: Record) { + const env: Record = { + DFX_NETWORK: "ic", + NODE_ENV: "production", + }; + const canister_ids = {}; + Object.entries(canisters).forEach(([name, info]) => { + if (info.name && info.candid && !info.isFrontend) { + env[`CANISTER_ID_${name.toUpperCase()}`] = info.id.toString(); + canister_ids[name] = { ic: info.id.toString() }; + } + }); + const env_files = { + "canister_ids.json": { + file: { + contents: JSON.stringify(canister_ids, null, 2), + }, + }, + ".env": { + file: { + contents: Object.entries(env) + .map(([key, value]) => `${key}=${value}`) + .join("\n"), + }, + }, + }; + return { env, env_files }; +} export type WorkplaceReducerAction = /** @@ -74,7 +131,7 @@ export type WorkplaceReducerAction = | { type: "loadProject"; payload: { - files: Record; + files: Record; }; } | { @@ -126,10 +183,8 @@ export type WorkplaceReducerAction = | { type: "deployWorkplace"; payload: { - /** path of file that should be updated. Should correspond to a property in state.files */ canister: CanisterInfo; do_not_select?: boolean; - /** new contents of file */ }; } | { @@ -148,6 +203,9 @@ function selectFirstFile(files: Record): string | null { if ("README" in files) { return "README"; } + if ("README.md" in files) { + return "README.md"; + } if ("Main.mo" in files) { return "Main.mo"; } @@ -181,7 +239,7 @@ export const workplaceReducer = { /** Return updated state based on an action */ reduce( state: WorkplaceState, - action: WorkplaceReducerAction + action: WorkplaceReducerAction, ): WorkplaceState { switch (action.type) { case "loadProject": @@ -288,9 +346,12 @@ export const WorkplaceDispatchContext = React.createContext< React.Dispatch >(() => { console.warn( - "using default WorkplaceDispathcContext. Make sure to Provide one in your component tree" + "using default WorkplaceDispathcContext. Make sure to Provide one in your component tree", ); }); export const WorkerContext = React.createContext(() => { console.warn("provide a value for worker"); }); +export const ContainerContext = React.createContext(() => { + console.warn("provide a value for web container"); +}); diff --git a/src/declarations/backend/backend.did b/src/declarations/backend/backend.did index 7c356675..4eb40a59 100644 --- a/src/declarations/backend/backend.did +++ b/src/declarations/backend/backend.did @@ -1,17 +1,86 @@ type wasm_module = blob; +type transform_function = func + (record { + context: blob; + response: http_request_result; + }) -> (http_request_result) query; +type snapshot_id = blob; +type snapshot = + record { + id: snapshot_id; + taken_at_timestamp: nat64; + total_size: nat64; + }; +type log_visibility = + variant { + controllers; + public; + }; +type http_request_result = + record { + body: blob; + headers: vec http_header; + status: nat; + }; +type http_request_args = + record { + body: opt blob; + headers: vec http_header; + max_response_bytes: opt nat64; + method: variant { + get; + head; + post; + }; + transform: opt record { + context: blob; + function: transform_function; + }; + url: text; + }; +type http_header = + record { + name: text; + value: text; + }; type definite_canister_settings = record { compute_allocation: nat; controllers: vec principal; freezing_threshold: nat; + log_visibility: log_visibility; memory_allocation: nat; + wasm_memory_limit: nat; + }; +type canister_status_result = + record { + cycles: nat; + idle_cycles_burned_per_day: nat; + memory_size: nat; + module_hash: opt blob; + query_stats: + record { + num_calls_total: nat; + num_instructions_total: nat; + request_payload_bytes_total: nat; + response_payload_bytes_total: nat; + }; + reserved_cycles: nat; + settings: definite_canister_settings; + status: variant { + running; + stopped; + stopping; + }; }; type canister_settings = record { compute_allocation: opt nat; controllers: opt vec principal; freezing_threshold: opt nat; + log_visibility: opt log_visibility; memory_allocation: opt nat; + wasm_memory_limit: opt nat; }; type canister_id = principal; type Stats = @@ -26,23 +95,30 @@ type Stats = type Self = service { GCCanisters: () -> () oneway; + __transform: (record { + context: blob; + response: http_request_result; + }) -> (http_request_result) composite_query; + _ttp_request: (http_request_args) -> (http_request_result); balance: () -> (nat) query; callForward: (CanisterInfo, text, blob) -> (blob); canister_status: (record {canister_id: canister_id;}) -> - (record { - cycles: nat; - memory_size: nat; - module_hash: opt blob; - settings: definite_canister_settings; - status: variant { - running; - stopped; - stopping; - }; - }); + (canister_status_result); create_canister: (record {settings: opt canister_settings;}) -> (record {canister_id: canister_id;}); + deleteSnapshot: (CanisterInfo) -> (); delete_canister: (record {canister_id: canister_id;}) -> (); + delete_canister_snapshot: + (record { + canister_id: principal; + snapshot_id: blob; + }) -> (); + deployCanister: (opt CanisterInfo, opt DeployArgs) -> (CanisterInfo, + variant { + install; + reinstall; + upgrade; + }); dump: () -> (vec CanisterInfo) query; getCanisterId: (Nonce, Origin) -> (CanisterInfo); getInitParams: () -> (InitParams) query; @@ -60,6 +136,8 @@ type Self = }) query; http_request: (HttpRequest) -> (HttpResponse) query; installCode: (CanisterInfo, InstallArgs, InstallConfig) -> (CanisterInfo); + installExternalCanister: (InstallArgs) -> (); + installStoredWasm: (CanisterInfo, InstallArgs, Origin) -> (CanisterInfo); install_code: (record { arg: blob; @@ -71,15 +149,28 @@ type Self = }; wasm_module: wasm_module; }) -> (); + listSnapshots: (CanisterInfo) -> (vec snapshot); + list_canister_snapshots: (record {canister_id: principal;}) -> + (vec snapshot); + loadSnapshot: (CanisterInfo) -> (); + load_canister_snapshot: (record {}) -> (); mergeTags: (text, opt text) -> (); + releaseAllCanisters: () -> (); removeCode: (CanisterInfo) -> (); resetStats: () -> (); start_canister: (record {canister_id: canister_id;}) -> (); stop_canister: (record {canister_id: canister_id;}) -> (); + takeSnapshot: (CanisterInfo) -> (opt blob); + take_canister_snapshot: + (record { + canister_id: principal; + replace_snapshot: opt blob; + }) -> (snapshot); + transferOwnership: (CanisterInfo, vec principal) -> (); uninstall_code: (record {canister_id: canister_id;}) -> (); update_settings: (record { - canister_id: canister_id; + canister_id: principal; settings: canister_settings; }) -> (); wallet_receive: () -> (); @@ -97,7 +188,10 @@ type Nonce = type InstallConfig = record { is_whitelisted: bool; - origin: Origin; + origin: record { + origin: text; + tags: vec text; + }; page_limit: opt nat32; profiling: bool; start_page: opt nat32; @@ -115,11 +209,17 @@ type InstallArgs = }; type InitParams = record { + admin_only: opt bool; canister_time_to_live: nat; cycles_per_canister: nat; max_family_tree_size: nat; max_num_canisters: nat; nonce_time_to_live: nat; + stored_module: opt record { + arg: blob; + hash: blob; + }; + wasm_utils_principal: opt text; }; type HttpResponse = record { @@ -140,6 +240,12 @@ type HttpRequest = method: text; url: text; }; +type DeployArgs = + record { + arg: blob; + bypass_wasm_transform: opt bool; + wasm_module: blob; + }; type CanisterInfo = record { id: principal; diff --git a/src/declarations/backend/backend.did.d.ts b/src/declarations/backend/backend.did.d.ts index f189e2eb..b494bd0b 100644 --- a/src/declarations/backend/backend.did.d.ts +++ b/src/declarations/backend/backend.did.d.ts @@ -1,10 +1,16 @@ import type { Principal } from "@dfinity/principal"; import type { ActorMethod } from "@dfinity/agent"; +import type { IDL } from "@dfinity/candid"; export interface CanisterInfo { id: Principal; timestamp: bigint; } +export interface DeployArgs { + arg: Uint8Array | number[]; + wasm_module: Uint8Array | number[]; + bypass_wasm_transform: [] | [boolean]; +} export interface HttpRequest { url: string; method: string; @@ -19,7 +25,12 @@ export interface HttpResponse { export interface InitParams { max_num_canisters: bigint; canister_time_to_live: bigint; + stored_module: + | [] + | [{ arg: Uint8Array | number[]; hash: Uint8Array | number[] }]; + wasm_utils_principal: [] | [string]; cycles_per_canister: bigint; + admin_only: [] | [boolean]; nonce_time_to_live: bigint; max_family_tree_size: bigint; } @@ -30,7 +41,7 @@ export interface InstallArgs { canister_id: Principal; } export interface InstallConfig { - origin: Origin; + origin: { origin: string; tags: Array }; profiling: boolean; is_whitelisted: boolean; start_page: [] | [number]; @@ -46,6 +57,11 @@ export interface Origin { } export interface Self { GCCanisters: ActorMethod<[], undefined>; + __transform: ActorMethod< + [{ context: Uint8Array | number[]; response: http_request_result }], + http_request_result + >; + _ttp_request: ActorMethod<[http_request_args], http_request_result>; balance: ActorMethod<[], bigint>; callForward: ActorMethod< [CanisterInfo, string, Uint8Array | number[]], @@ -53,19 +69,22 @@ export interface Self { >; canister_status: ActorMethod< [{ canister_id: canister_id }], - { - status: { stopped: null } | { stopping: null } | { running: null }; - memory_size: bigint; - cycles: bigint; - settings: definite_canister_settings; - module_hash: [] | [Uint8Array | number[]]; - } + canister_status_result >; create_canister: ActorMethod< [{ settings: [] | [canister_settings] }], { canister_id: canister_id } >; + deleteSnapshot: ActorMethod<[CanisterInfo], undefined>; delete_canister: ActorMethod<[{ canister_id: canister_id }], undefined>; + delete_canister_snapshot: ActorMethod< + [{ canister_id: Principal; snapshot_id: Uint8Array | number[] }], + undefined + >; + deployCanister: ActorMethod< + [[] | [CanisterInfo], [] | [DeployArgs]], + [CanisterInfo, { reinstall: null } | { upgrade: null } | { install: null }] + >; dump: ActorMethod<[], Array>; getCanisterId: ActorMethod<[Nonce, Origin], CanisterInfo>; getInitParams: ActorMethod<[], InitParams>; @@ -82,6 +101,11 @@ export interface Self { [CanisterInfo, InstallArgs, InstallConfig], CanisterInfo >; + installExternalCanister: ActorMethod<[InstallArgs], undefined>; + installStoredWasm: ActorMethod< + [CanisterInfo, InstallArgs, Origin], + CanisterInfo + >; install_code: ActorMethod< [ { @@ -89,18 +113,37 @@ export interface Self { wasm_module: wasm_module; mode: { reinstall: null } | { upgrade: null } | { install: null }; canister_id: canister_id; - } + }, ], undefined >; + listSnapshots: ActorMethod<[CanisterInfo], Array>; + list_canister_snapshots: ActorMethod< + [{ canister_id: Principal }], + Array + >; + loadSnapshot: ActorMethod<[CanisterInfo], undefined>; + load_canister_snapshot: ActorMethod<[{}], undefined>; mergeTags: ActorMethod<[string, [] | [string]], undefined>; + releaseAllCanisters: ActorMethod<[], undefined>; removeCode: ActorMethod<[CanisterInfo], undefined>; resetStats: ActorMethod<[], undefined>; start_canister: ActorMethod<[{ canister_id: canister_id }], undefined>; stop_canister: ActorMethod<[{ canister_id: canister_id }], undefined>; + takeSnapshot: ActorMethod<[CanisterInfo], [] | [Uint8Array | number[]]>; + take_canister_snapshot: ActorMethod< + [ + { + replace_snapshot: [] | [Uint8Array | number[]]; + canister_id: Principal; + }, + ], + snapshot + >; + transferOwnership: ActorMethod<[CanisterInfo, Array], undefined>; uninstall_code: ActorMethod<[{ canister_id: canister_id }], undefined>; update_settings: ActorMethod< - [{ canister_id: canister_id; settings: canister_settings }], + [{ canister_id: Principal; settings: canister_settings }], undefined >; wallet_receive: ActorMethod<[], undefined>; @@ -117,14 +160,65 @@ export type canister_id = Principal; export interface canister_settings { freezing_threshold: [] | [bigint]; controllers: [] | [Array]; + log_visibility: [] | [log_visibility]; + wasm_memory_limit: [] | [bigint]; memory_allocation: [] | [bigint]; compute_allocation: [] | [bigint]; } +export interface canister_status_result { + status: { stopped: null } | { stopping: null } | { running: null }; + memory_size: bigint; + cycles: bigint; + settings: definite_canister_settings; + query_stats: { + response_payload_bytes_total: bigint; + num_instructions_total: bigint; + num_calls_total: bigint; + request_payload_bytes_total: bigint; + }; + idle_cycles_burned_per_day: bigint; + module_hash: [] | [Uint8Array | number[]]; + reserved_cycles: bigint; +} export interface definite_canister_settings { freezing_threshold: bigint; controllers: Array; + log_visibility: log_visibility; + wasm_memory_limit: bigint; memory_allocation: bigint; compute_allocation: bigint; } +export interface http_header { + value: string; + name: string; +} +export interface http_request_args { + url: string; + method: { get: null } | { head: null } | { post: null }; + max_response_bytes: [] | [bigint]; + body: [] | [Uint8Array | number[]]; + transform: + | [] + | [{ function: transform_function; context: Uint8Array | number[] }]; + headers: Array; +} +export interface http_request_result { + status: bigint; + body: Uint8Array | number[]; + headers: Array; +} +export type log_visibility = { controllers: null } | { public: null }; +export interface snapshot { + id: snapshot_id; + total_size: bigint; + taken_at_timestamp: bigint; +} +export type snapshot_id = Uint8Array | number[]; +export type transform_function = ActorMethod< + [{ context: Uint8Array | number[]; response: http_request_result }], + http_request_result +>; export type wasm_module = Uint8Array | number[]; export interface _SERVICE extends Self {} +export declare const idlFactory: IDL.InterfaceFactory; +export declare const init: (args: { IDL: typeof IDL }) => IDL.Type[]; diff --git a/src/declarations/backend/backend.did.js b/src/declarations/backend/backend.did.js index 8d0ea112..8eb36370 100644 --- a/src/declarations/backend/backend.did.js +++ b/src/declarations/backend/backend.did.js @@ -2,27 +2,97 @@ export const idlFactory = ({ IDL }) => { const InitParams = IDL.Record({ max_num_canisters: IDL.Nat, canister_time_to_live: IDL.Nat, + stored_module: IDL.Opt( + IDL.Record({ arg: IDL.Vec(IDL.Nat8), hash: IDL.Vec(IDL.Nat8) }), + ), + wasm_utils_principal: IDL.Opt(IDL.Text), cycles_per_canister: IDL.Nat, + admin_only: IDL.Opt(IDL.Bool), nonce_time_to_live: IDL.Nat, max_family_tree_size: IDL.Nat, }); + const http_header = IDL.Record({ value: IDL.Text, name: IDL.Text }); + const http_request_result = IDL.Record({ + status: IDL.Nat, + body: IDL.Vec(IDL.Nat8), + headers: IDL.Vec(http_header), + }); + const transform_function = IDL.Func( + [ + IDL.Record({ + context: IDL.Vec(IDL.Nat8), + response: http_request_result, + }), + ], + [http_request_result], + ["query"], + ); + const http_request_args = IDL.Record({ + url: IDL.Text, + method: IDL.Variant({ + get: IDL.Null, + head: IDL.Null, + post: IDL.Null, + }), + max_response_bytes: IDL.Opt(IDL.Nat64), + body: IDL.Opt(IDL.Vec(IDL.Nat8)), + transform: IDL.Opt( + IDL.Record({ + function: transform_function, + context: IDL.Vec(IDL.Nat8), + }), + ), + headers: IDL.Vec(http_header), + }); const CanisterInfo = IDL.Record({ id: IDL.Principal, timestamp: IDL.Int, }); const canister_id = IDL.Principal; + const log_visibility = IDL.Variant({ + controllers: IDL.Null, + public: IDL.Null, + }); const definite_canister_settings = IDL.Record({ freezing_threshold: IDL.Nat, controllers: IDL.Vec(IDL.Principal), + log_visibility: log_visibility, + wasm_memory_limit: IDL.Nat, memory_allocation: IDL.Nat, compute_allocation: IDL.Nat, }); + const canister_status_result = IDL.Record({ + status: IDL.Variant({ + stopped: IDL.Null, + stopping: IDL.Null, + running: IDL.Null, + }), + memory_size: IDL.Nat, + cycles: IDL.Nat, + settings: definite_canister_settings, + query_stats: IDL.Record({ + response_payload_bytes_total: IDL.Nat, + num_instructions_total: IDL.Nat, + num_calls_total: IDL.Nat, + request_payload_bytes_total: IDL.Nat, + }), + idle_cycles_burned_per_day: IDL.Nat, + module_hash: IDL.Opt(IDL.Vec(IDL.Nat8)), + reserved_cycles: IDL.Nat, + }); const canister_settings = IDL.Record({ freezing_threshold: IDL.Opt(IDL.Nat), controllers: IDL.Opt(IDL.Vec(IDL.Principal)), + log_visibility: IDL.Opt(log_visibility), + wasm_memory_limit: IDL.Opt(IDL.Nat), memory_allocation: IDL.Opt(IDL.Nat), compute_allocation: IDL.Opt(IDL.Nat), }); + const DeployArgs = IDL.Record({ + arg: IDL.Vec(IDL.Nat8), + wasm_module: IDL.Vec(IDL.Nat8), + bypass_wasm_transform: IDL.Opt(IDL.Bool), + }); const Nonce = IDL.Record({ nonce: IDL.Nat, timestamp: IDL.Int }); const Origin = IDL.Record({ origin: IDL.Text, @@ -58,47 +128,75 @@ export const idlFactory = ({ IDL }) => { canister_id: IDL.Principal, }); const InstallConfig = IDL.Record({ - origin: Origin, + origin: IDL.Record({ origin: IDL.Text, tags: IDL.Vec(IDL.Text) }), profiling: IDL.Bool, is_whitelisted: IDL.Bool, start_page: IDL.Opt(IDL.Nat32), page_limit: IDL.Opt(IDL.Nat32), }); const wasm_module = IDL.Vec(IDL.Nat8); + const snapshot_id = IDL.Vec(IDL.Nat8); + const snapshot = IDL.Record({ + id: snapshot_id, + total_size: IDL.Nat64, + taken_at_timestamp: IDL.Nat64, + }); const Self = IDL.Service({ GCCanisters: IDL.Func([], [], ["oneway"]), + __transform: IDL.Func( + [ + IDL.Record({ + context: IDL.Vec(IDL.Nat8), + response: http_request_result, + }), + ], + [http_request_result], + ["composite_query"], + ), + _ttp_request: IDL.Func([http_request_args], [http_request_result], []), balance: IDL.Func([], [IDL.Nat], ["query"]), callForward: IDL.Func( [CanisterInfo, IDL.Text, IDL.Vec(IDL.Nat8)], [IDL.Vec(IDL.Nat8)], - [] + [], ), canister_status: IDL.Func( [IDL.Record({ canister_id: canister_id })], - [ - IDL.Record({ - status: IDL.Variant({ - stopped: IDL.Null, - stopping: IDL.Null, - running: IDL.Null, - }), - memory_size: IDL.Nat, - cycles: IDL.Nat, - settings: definite_canister_settings, - module_hash: IDL.Opt(IDL.Vec(IDL.Nat8)), - }), - ], - [] + [canister_status_result], + [], ), create_canister: IDL.Func( [IDL.Record({ settings: IDL.Opt(canister_settings) })], [IDL.Record({ canister_id: canister_id })], - [] + [], ), + deleteSnapshot: IDL.Func([CanisterInfo], [], []), delete_canister: IDL.Func( [IDL.Record({ canister_id: canister_id })], [], - [] + [], + ), + delete_canister_snapshot: IDL.Func( + [ + IDL.Record({ + canister_id: IDL.Principal, + snapshot_id: IDL.Vec(IDL.Nat8), + }), + ], + [], + [], + ), + deployCanister: IDL.Func( + [IDL.Opt(CanisterInfo), IDL.Opt(DeployArgs)], + [ + CanisterInfo, + IDL.Variant({ + reinstall: IDL.Null, + upgrade: IDL.Null, + install: IDL.Null, + }), + ], + [], ), dump: IDL.Func([], [IDL.Vec(CanisterInfo)], ["query"]), getCanisterId: IDL.Func([Nonce, Origin], [CanisterInfo], []), @@ -110,18 +208,24 @@ export const idlFactory = ({ IDL }) => { IDL.Vec(IDL.Tuple(IDL.Text, IDL.Nat)), IDL.Vec(IDL.Tuple(IDL.Text, IDL.Nat)), ], - ["query"] + ["query"], ), getSubtree: IDL.Func( [CanisterInfo], [IDL.Vec(IDL.Tuple(IDL.Principal, IDL.Vec(CanisterInfo)))], - ["query"] + ["query"], ), http_request: IDL.Func([HttpRequest], [HttpResponse], ["query"]), installCode: IDL.Func( [CanisterInfo, InstallArgs, InstallConfig], [CanisterInfo], - [] + [], + ), + installExternalCanister: IDL.Func([InstallArgs], [], []), + installStoredWasm: IDL.Func( + [CanisterInfo, InstallArgs, Origin], + [CanisterInfo], + [], ), install_code: IDL.Func( [ @@ -137,31 +241,52 @@ export const idlFactory = ({ IDL }) => { }), ], [], - [] + [], + ), + listSnapshots: IDL.Func([CanisterInfo], [IDL.Vec(snapshot)], []), + list_canister_snapshots: IDL.Func( + [IDL.Record({ canister_id: IDL.Principal })], + [IDL.Vec(snapshot)], + [], ), + loadSnapshot: IDL.Func([CanisterInfo], [], []), + load_canister_snapshot: IDL.Func([IDL.Record({})], [], []), mergeTags: IDL.Func([IDL.Text, IDL.Opt(IDL.Text)], [], []), + releaseAllCanisters: IDL.Func([], [], []), removeCode: IDL.Func([CanisterInfo], [], []), resetStats: IDL.Func([], [], []), start_canister: IDL.Func( [IDL.Record({ canister_id: canister_id })], [], - [] + [], ), stop_canister: IDL.Func([IDL.Record({ canister_id: canister_id })], [], []), + takeSnapshot: IDL.Func([CanisterInfo], [IDL.Opt(IDL.Vec(IDL.Nat8))], []), + take_canister_snapshot: IDL.Func( + [ + IDL.Record({ + replace_snapshot: IDL.Opt(IDL.Vec(IDL.Nat8)), + canister_id: IDL.Principal, + }), + ], + [snapshot], + [], + ), + transferOwnership: IDL.Func([CanisterInfo, IDL.Vec(IDL.Principal)], [], []), uninstall_code: IDL.Func( [IDL.Record({ canister_id: canister_id })], [], - [] + [], ), update_settings: IDL.Func( [ IDL.Record({ - canister_id: canister_id, + canister_id: IDL.Principal, settings: canister_settings, }), ], [], - [] + [], ), wallet_receive: IDL.Func([], [], []), }); @@ -171,7 +296,12 @@ export const init = ({ IDL }) => { const InitParams = IDL.Record({ max_num_canisters: IDL.Nat, canister_time_to_live: IDL.Nat, + stored_module: IDL.Opt( + IDL.Record({ arg: IDL.Vec(IDL.Nat8), hash: IDL.Vec(IDL.Nat8) }), + ), + wasm_utils_principal: IDL.Opt(IDL.Text), cycles_per_canister: IDL.Nat, + admin_only: IDL.Opt(IDL.Bool), nonce_time_to_live: IDL.Nat, max_family_tree_size: IDL.Nat, }); diff --git a/src/declarations/backend/index.d.ts b/src/declarations/backend/index.d.ts index 733c06c5..ec6d7de9 100644 --- a/src/declarations/backend/index.d.ts +++ b/src/declarations/backend/index.d.ts @@ -40,7 +40,7 @@ export declare interface CreateActorOptions { */ export declare const createActor: ( canisterId: string | Principal, - options?: CreateActorOptions + options?: CreateActorOptions, ) => ActorSubclass<_SERVICE>; /** diff --git a/src/declarations/backend/index.js b/src/declarations/backend/index.js index d07ab457..b21158f8 100644 --- a/src/declarations/backend/index.js +++ b/src/declarations/backend/index.js @@ -9,15 +9,14 @@ export { idlFactory } from "./backend.did.js"; * process.env.CANISTER_ID_ * beginning in dfx 0.15.0 */ -export const canisterId = - process.env.CANISTER_ID_BACKEND || process.env.BACKEND_CANISTER_ID; +export const canisterId = process.env.CANISTER_ID_BACKEND; export const createActor = (canisterId, options = {}) => { const agent = options.agent || new HttpAgent({ ...options.agentOptions }); if (options.agent && options.agentOptions) { console.warn( - "Detected both agent and agentOptions passed to createActor. Ignoring agentOptions and proceeding with the provided agent." + "Detected both agent and agentOptions passed to createActor. Ignoring agentOptions and proceeding with the provided agent.", ); } @@ -25,7 +24,7 @@ export const createActor = (canisterId, options = {}) => { if (process.env.DFX_NETWORK !== "ic") { agent.fetchRootKey().catch((err) => { console.warn( - "Unable to fetch root key. Check to ensure that your local replica is running" + "Unable to fetch root key. Check to ensure that your local replica is running", ); console.error(err); }); @@ -39,4 +38,4 @@ export const createActor = (canisterId, options = {}) => { }); }; -export const backend = createActor(canisterId); +export const backend = canisterId ? createActor(canisterId) : undefined; diff --git a/src/declarations/react_app/index.d.ts b/src/declarations/react_app/index.d.ts index 50975856..9162bbe8 100644 --- a/src/declarations/react_app/index.d.ts +++ b/src/declarations/react_app/index.d.ts @@ -40,7 +40,7 @@ export declare interface CreateActorOptions { */ export declare const createActor: ( canisterId: string | Principal, - options?: CreateActorOptions + options?: CreateActorOptions, ) => ActorSubclass<_SERVICE>; /** diff --git a/src/declarations/react_app/index.js b/src/declarations/react_app/index.js index 72c7d4ca..3a7e7c21 100644 --- a/src/declarations/react_app/index.js +++ b/src/declarations/react_app/index.js @@ -9,15 +9,14 @@ export { idlFactory } from "./react_app.did.js"; * process.env.CANISTER_ID_ * beginning in dfx 0.15.0 */ -export const canisterId = - process.env.CANISTER_ID_REACT_APP || process.env.REACT_APP_CANISTER_ID; +export const canisterId = process.env.CANISTER_ID_REACT_APP; export const createActor = (canisterId, options = {}) => { const agent = options.agent || new HttpAgent({ ...options.agentOptions }); if (options.agent && options.agentOptions) { console.warn( - "Detected both agent and agentOptions passed to createActor. Ignoring agentOptions and proceeding with the provided agent." + "Detected both agent and agentOptions passed to createActor. Ignoring agentOptions and proceeding with the provided agent.", ); } @@ -25,7 +24,7 @@ export const createActor = (canisterId, options = {}) => { if (process.env.DFX_NETWORK !== "ic") { agent.fetchRootKey().catch((err) => { console.warn( - "Unable to fetch root key. Check to ensure that your local replica is running" + "Unable to fetch root key. Check to ensure that your local replica is running", ); console.error(err); }); @@ -39,4 +38,4 @@ export const createActor = (canisterId, options = {}) => { }); }; -export const react_app = createActor(canisterId); +export const react_app = canisterId ? createActor(canisterId) : undefined; diff --git a/src/declarations/react_app/react_app.did b/src/declarations/react_app/react_app.did index c4f659eb..ccf075ff 100644 --- a/src/declarations/react_app/react_app.did +++ b/src/declarations/react_app/react_app.did @@ -139,7 +139,25 @@ type ListPermitted = record { permission: Permission }; type ValidationResult = variant { Ok : text; Err : text }; -service: { +type AssetCanisterArgs = variant { + Init: InitArgs; + Upgrade: UpgradeArgs; +}; + +type InitArgs = record {}; + +type UpgradeArgs = record { + set_permissions: opt SetPermissions; +}; + +/// Sets the list of principals granted each permission. +type SetPermissions = record { + prepare: vec principal; + commit: vec principal; + manage_permissions: vec principal; +}; + +service: (asset_canister_args: opt AssetCanisterArgs) -> { api_version: () -> (nat16) query; get: (record { @@ -181,6 +199,7 @@ service: { create_batch : (record {}) -> (record { batch_id: BatchId }); create_chunk: (record { batch_id: BatchId; content: blob }) -> (record { chunk_id: ChunkId }); + create_chunks: (record { batch_id: BatchId; content: vec blob }) -> (record { chunk_ids: vec ChunkId }); // Perform all operations successfully, or reject commit_batch: (CommitBatchArguments) -> (); @@ -220,10 +239,10 @@ service: { authorize: (principal) -> (); deauthorize: (principal) -> (); - list_authorized: () -> (vec principal) query; + list_authorized: () -> (vec principal); grant_permission: (GrantPermission) -> (); revoke_permission: (RevokePermission) -> (); - list_permitted: (ListPermitted) -> (vec principal) query; + list_permitted: (ListPermitted) -> (vec principal); take_ownership: () -> (); get_asset_properties : (key: Key) -> (record { diff --git a/src/declarations/react_app/react_app.did.d.ts b/src/declarations/react_app/react_app.did.d.ts index a1d26d51..85c42854 100644 --- a/src/declarations/react_app/react_app.did.d.ts +++ b/src/declarations/react_app/react_app.did.d.ts @@ -1,6 +1,8 @@ import type { Principal } from "@dfinity/principal"; import type { ActorMethod } from "@dfinity/agent"; +import type { IDL } from "@dfinity/candid"; +export type AssetCanisterArgs = { Upgrade: UpgradeArgs } | { Init: InitArgs }; export type BatchId = bigint; export type BatchOperationKind = | { @@ -67,6 +69,7 @@ export interface HttpResponse { streaming_strategy: [] | [StreamingStrategy]; status_code: number; } +export type InitArgs = {}; export type Key = string; export interface ListPermitted { permission: Permission; @@ -92,6 +95,11 @@ export interface SetAssetPropertiesArguments { allow_raw_access: [] | [[] | [boolean]]; max_age: [] | [[] | [bigint]]; } +export interface SetPermissions { + prepare: Array; + commit: Array; + manage_permissions: Array; +} export interface StreamingCallbackHttpResponse { token: [] | [StreamingCallbackToken]; body: Uint8Array | number[]; @@ -113,6 +121,9 @@ export interface UnsetAssetContentArguments { key: Key; content_encoding: string; } +export interface UpgradeArgs { + set_permissions: [] | [SetPermissions]; +} export type ValidationResult = { Ok: string } | { Err: string }; export interface _SERVICE { api_version: ActorMethod<[], number>; @@ -135,6 +146,10 @@ export interface _SERVICE { [{ content: Uint8Array | number[]; batch_id: BatchId }], { chunk_id: ChunkId } >; + create_chunks: ActorMethod< + [{ content: Array; batch_id: BatchId }], + { chunk_ids: Array } + >; deauthorize: ActorMethod<[Principal], undefined>; delete_asset: ActorMethod<[DeleteAssetArguments], undefined>; delete_batch: ActorMethod<[DeleteBatchArguments], undefined>; @@ -164,7 +179,7 @@ export interface _SERVICE { sha256: [] | [Uint8Array | number[]]; index: bigint; content_encoding: string; - } + }, ], { content: Uint8Array | number[] } >; @@ -202,7 +217,7 @@ export interface _SERVICE { sha256: [] | [Uint8Array | number[]]; content_type: string; content_encoding: string; - } + }, ], undefined >; @@ -217,3 +232,5 @@ export interface _SERVICE { validate_revoke_permission: ActorMethod<[RevokePermission], ValidationResult>; validate_take_ownership: ActorMethod<[], ValidationResult>; } +export declare const idlFactory: IDL.InterfaceFactory; +export declare const init: (args: { IDL: typeof IDL }) => IDL.Type[]; diff --git a/src/declarations/react_app/react_app.did.js b/src/declarations/react_app/react_app.did.js index 0bad0835..8cfba1c3 100644 --- a/src/declarations/react_app/react_app.did.js +++ b/src/declarations/react_app/react_app.did.js @@ -1,4 +1,17 @@ export const idlFactory = ({ IDL }) => { + const SetPermissions = IDL.Record({ + prepare: IDL.Vec(IDL.Principal), + commit: IDL.Vec(IDL.Principal), + manage_permissions: IDL.Vec(IDL.Principal), + }); + const UpgradeArgs = IDL.Record({ + set_permissions: IDL.Opt(SetPermissions), + }); + const InitArgs = IDL.Record({}); + const AssetCanisterArgs = IDL.Variant({ + Upgrade: UpgradeArgs, + Init: InitArgs, + }); const ClearArguments = IDL.Record({}); const BatchId = IDL.Nat; const Key = IDL.Text; @@ -93,7 +106,7 @@ export const idlFactory = ({ IDL }) => { callback: IDL.Func( [StreamingCallbackToken], [IDL.Opt(StreamingCallbackHttpResponse)], - ["query"] + ["query"], ), }), }); @@ -121,7 +134,7 @@ export const idlFactory = ({ IDL }) => { tree: IDL.Vec(IDL.Nat8), }), ], - ["query"] + ["query"], ), clear: IDL.Func([ClearArguments], [], []), commit_batch: IDL.Func([CommitBatchArguments], [], []), @@ -129,19 +142,29 @@ export const idlFactory = ({ IDL }) => { compute_evidence: IDL.Func( [ComputeEvidenceArguments], [IDL.Opt(IDL.Vec(IDL.Nat8))], - [] + [], ), configure: IDL.Func([ConfigureArguments], [], []), create_asset: IDL.Func([CreateAssetArguments], [], []), create_batch: IDL.Func( [IDL.Record({})], [IDL.Record({ batch_id: BatchId })], - [] + [], ), create_chunk: IDL.Func( [IDL.Record({ content: IDL.Vec(IDL.Nat8), batch_id: BatchId })], [IDL.Record({ chunk_id: ChunkId })], - [] + [], + ), + create_chunks: IDL.Func( + [ + IDL.Record({ + content: IDL.Vec(IDL.Vec(IDL.Nat8)), + batch_id: BatchId, + }), + ], + [IDL.Record({ chunk_ids: IDL.Vec(ChunkId) })], + [], ), deauthorize: IDL.Func([IDL.Principal], [], []), delete_asset: IDL.Func([DeleteAssetArguments], [], []), @@ -157,7 +180,7 @@ export const idlFactory = ({ IDL }) => { total_length: IDL.Nat, }), ], - ["query"] + ["query"], ), get_asset_properties: IDL.Func( [Key], @@ -169,7 +192,7 @@ export const idlFactory = ({ IDL }) => { max_age: IDL.Opt(IDL.Nat64), }), ], - ["query"] + ["query"], ), get_chunk: IDL.Func( [ @@ -181,7 +204,7 @@ export const idlFactory = ({ IDL }) => { }), ], [IDL.Record({ content: IDL.Vec(IDL.Nat8) })], - ["query"] + ["query"], ), get_configuration: IDL.Func([], [ConfigurationResponse], []), grant_permission: IDL.Func([GrantPermission], [], []), @@ -189,7 +212,7 @@ export const idlFactory = ({ IDL }) => { http_request_streaming_callback: IDL.Func( [StreamingCallbackToken], [IDL.Opt(StreamingCallbackHttpResponse)], - ["query"] + ["query"], ), list: IDL.Func( [IDL.Record({})], @@ -203,20 +226,16 @@ export const idlFactory = ({ IDL }) => { sha256: IDL.Opt(IDL.Vec(IDL.Nat8)), length: IDL.Nat, content_encoding: IDL.Text, - }) + }), ), content_type: IDL.Text, - }) + }), ), ], - ["query"] - ), - list_authorized: IDL.Func([], [IDL.Vec(IDL.Principal)], ["query"]), - list_permitted: IDL.Func( - [ListPermitted], - [IDL.Vec(IDL.Principal)], - ["query"] + ["query"], ), + list_authorized: IDL.Func([], [IDL.Vec(IDL.Principal)], []), + list_permitted: IDL.Func([ListPermitted], [IDL.Vec(IDL.Principal)], []), propose_commit_batch: IDL.Func([CommitBatchArguments], [], []), revoke_permission: IDL.Func([RevokePermission], [], []), set_asset_content: IDL.Func([SetAssetContentArguments], [], []), @@ -232,29 +251,42 @@ export const idlFactory = ({ IDL }) => { }), ], [], - [] + [], ), take_ownership: IDL.Func([], [], []), unset_asset_content: IDL.Func([UnsetAssetContentArguments], [], []), validate_commit_proposed_batch: IDL.Func( [CommitProposedBatchArguments], [ValidationResult], - [] + [], ), validate_configure: IDL.Func([ConfigureArguments], [ValidationResult], []), validate_grant_permission: IDL.Func( [GrantPermission], [ValidationResult], - [] + [], ), validate_revoke_permission: IDL.Func( [RevokePermission], [ValidationResult], - [] + [], ), validate_take_ownership: IDL.Func([], [ValidationResult], []), }); }; export const init = ({ IDL }) => { - return []; + const SetPermissions = IDL.Record({ + prepare: IDL.Vec(IDL.Principal), + commit: IDL.Vec(IDL.Principal), + manage_permissions: IDL.Vec(IDL.Principal), + }); + const UpgradeArgs = IDL.Record({ + set_permissions: IDL.Opt(SetPermissions), + }); + const InitArgs = IDL.Record({}); + const AssetCanisterArgs = IDL.Variant({ + Upgrade: UpgradeArgs, + Init: InitArgs, + }); + return [IDL.Opt(AssetCanisterArgs)]; }; diff --git a/src/declarations/saved/index.d.ts b/src/declarations/saved/index.d.ts index 10b6d08c..b7e4f525 100644 --- a/src/declarations/saved/index.d.ts +++ b/src/declarations/saved/index.d.ts @@ -40,7 +40,7 @@ export declare interface CreateActorOptions { */ export declare const createActor: ( canisterId: string | Principal, - options?: CreateActorOptions + options?: CreateActorOptions, ) => ActorSubclass<_SERVICE>; /** diff --git a/src/declarations/saved/index.js b/src/declarations/saved/index.js index 9ddbcd44..68ee7913 100644 --- a/src/declarations/saved/index.js +++ b/src/declarations/saved/index.js @@ -9,15 +9,14 @@ export { idlFactory } from "./saved.did.js"; * process.env.CANISTER_ID_ * beginning in dfx 0.15.0 */ -export const canisterId = - process.env.CANISTER_ID_SAVED || process.env.SAVED_CANISTER_ID; +export const canisterId = process.env.CANISTER_ID_SAVED; export const createActor = (canisterId, options = {}) => { const agent = options.agent || new HttpAgent({ ...options.agentOptions }); if (options.agent && options.agentOptions) { console.warn( - "Detected both agent and agentOptions passed to createActor. Ignoring agentOptions and proceeding with the provided agent." + "Detected both agent and agentOptions passed to createActor. Ignoring agentOptions and proceeding with the provided agent.", ); } @@ -25,7 +24,7 @@ export const createActor = (canisterId, options = {}) => { if (process.env.DFX_NETWORK !== "ic") { agent.fetchRootKey().catch((err) => { console.warn( - "Unable to fetch root key. Check to ensure that your local replica is running" + "Unable to fetch root key. Check to ensure that your local replica is running", ); console.error(err); }); @@ -39,4 +38,4 @@ export const createActor = (canisterId, options = {}) => { }); }; -export const saved = createActor(canisterId); +export const saved = canisterId ? createActor(canisterId) : undefined; diff --git a/src/declarations/saved/saved.did.d.ts b/src/declarations/saved/saved.did.d.ts index 35779c7f..684be8da 100644 --- a/src/declarations/saved/saved.did.d.ts +++ b/src/declarations/saved/saved.did.d.ts @@ -1,5 +1,6 @@ import type { Principal } from "@dfinity/principal"; import type { ActorMethod } from "@dfinity/agent"; +import type { IDL } from "@dfinity/candid"; export interface CanisterInfo { id: Principal; @@ -37,3 +38,5 @@ export interface _SERVICE { getStats: ActorMethod<[], StatResult>; putProject: ActorMethod<[Project], HashId>; } +export declare const idlFactory: IDL.InterfaceFactory; +export declare const init: (args: { IDL: typeof IDL }) => IDL.Type[]; diff --git a/src/declarations/wasm-utils/index.d.ts b/src/declarations/wasm-utils/index.d.ts index 5de01b1e..2469544e 100644 --- a/src/declarations/wasm-utils/index.d.ts +++ b/src/declarations/wasm-utils/index.d.ts @@ -40,7 +40,7 @@ export declare interface CreateActorOptions { */ export declare const createActor: ( canisterId: string | Principal, - options?: CreateActorOptions + options?: CreateActorOptions, ) => ActorSubclass<_SERVICE>; /** diff --git a/src/declarations/wasm-utils/index.js b/src/declarations/wasm-utils/index.js index a566fac6..4e554468 100644 --- a/src/declarations/wasm-utils/index.js +++ b/src/declarations/wasm-utils/index.js @@ -9,15 +9,14 @@ export { idlFactory } from "./wasm-utils.did.js"; * process.env.CANISTER_ID_ * beginning in dfx 0.15.0 */ -export const canisterId = - process.env.CANISTER_ID_WASM_UTILS || process.env.WASM_UTILS_CANISTER_ID; +export const canisterId = process.env.CANISTER_ID_WASM_UTILS; export const createActor = (canisterId, options = {}) => { const agent = options.agent || new HttpAgent({ ...options.agentOptions }); if (options.agent && options.agentOptions) { console.warn( - "Detected both agent and agentOptions passed to createActor. Ignoring agentOptions and proceeding with the provided agent." + "Detected both agent and agentOptions passed to createActor. Ignoring agentOptions and proceeding with the provided agent.", ); } @@ -25,7 +24,7 @@ export const createActor = (canisterId, options = {}) => { if (process.env.DFX_NETWORK !== "ic") { agent.fetchRootKey().catch((err) => { console.warn( - "Unable to fetch root key. Check to ensure that your local replica is running" + "Unable to fetch root key. Check to ensure that your local replica is running", ); console.error(err); }); @@ -39,4 +38,4 @@ export const createActor = (canisterId, options = {}) => { }); }; -export const wasm_utils = createActor(canisterId); +export const wasm_utils = canisterId ? createActor(canisterId) : undefined; diff --git a/src/declarations/wasm-utils/wasm-utils.did b/src/declarations/wasm-utils/wasm-utils.did index 774fa3fe..004ede4e 100644 --- a/src/declarations/wasm-utils/wasm-utils.did +++ b/src/declarations/wasm-utils/wasm-utils.did @@ -2,6 +2,7 @@ type Config = record { profiling : opt record { start_page: opt nat32; page_limit: opt nat32 }; remove_cycles_add : bool; limit_stable_memory_page : opt nat32; + limit_heap_memory_page : opt nat32; backend_canister_id : opt principal; }; diff --git a/src/declarations/wasm-utils/wasm-utils.did.d.ts b/src/declarations/wasm-utils/wasm-utils.did.d.ts index 0694fb1f..005ccad6 100644 --- a/src/declarations/wasm-utils/wasm-utils.did.d.ts +++ b/src/declarations/wasm-utils/wasm-utils.did.d.ts @@ -1,11 +1,13 @@ import type { Principal } from "@dfinity/principal"; import type { ActorMethod } from "@dfinity/agent"; +import type { IDL } from "@dfinity/candid"; export interface Config { backend_canister_id: [] | [Principal]; remove_cycles_add: boolean; profiling: [] | [{ start_page: [] | [number]; page_limit: [] | [number] }]; limit_stable_memory_page: [] | [number]; + limit_heap_memory_page: [] | [number]; } export interface _SERVICE { is_whitelisted: ActorMethod<[Uint8Array | number[]], Uint8Array | number[]>; @@ -14,3 +16,5 @@ export interface _SERVICE { Uint8Array | number[] >; } +export declare const idlFactory: IDL.InterfaceFactory; +export declare const init: (args: { IDL: typeof IDL }) => IDL.Type[]; diff --git a/src/declarations/wasm-utils/wasm-utils.did.js b/src/declarations/wasm-utils/wasm-utils.did.js index b8a35fd3..f5cbdcc6 100644 --- a/src/declarations/wasm-utils/wasm-utils.did.js +++ b/src/declarations/wasm-utils/wasm-utils.did.js @@ -6,20 +6,21 @@ export const idlFactory = ({ IDL }) => { IDL.Record({ start_page: IDL.Opt(IDL.Nat32), page_limit: IDL.Opt(IDL.Nat32), - }) + }), ), limit_stable_memory_page: IDL.Opt(IDL.Nat32), + limit_heap_memory_page: IDL.Opt(IDL.Nat32), }); return IDL.Service({ is_whitelisted: IDL.Func( [IDL.Vec(IDL.Nat8)], [IDL.Vec(IDL.Nat8)], - ["query"] + ["query"], ), transform: IDL.Func( [IDL.Vec(IDL.Nat8), Config], [IDL.Vec(IDL.Nat8)], - ["query"] + ["query"], ), }); }; diff --git a/src/examples.ts b/src/examples.ts index a17ca9b1..433d49ab 100644 --- a/src/examples.ts +++ b/src/examples.ts @@ -22,9 +22,8 @@ export const exampleProjects: ExampleProject[] = [ readme: `${readmeArchiveURL}/echo/README.md`, }, { - name: "Counter", - repo: { dir: "motoko/counter/src", ...example }, - readme: `${readmeURL}/counter/README.md`, + name: "Counter (full stack)", + repo: { dir: "motoko/minimal-counter-dapp", ...example }, }, { name: "Calculator", @@ -43,18 +42,15 @@ export const exampleProjects: ExampleProject[] = [ }, { name: "Super Heroes", - repo: { dir: "motoko/superheroes/src/superheroes", ...example }, - readme: `${readmeURL}/superheroes/README.md`, + repo: { dir: "motoko/superheroes", ...example }, }, { - name: "Random Maze", - repo: { dir: "motoko/random_maze/src/random_maze", ...example }, - readme: `${readmeURL}/random_maze/README.md`, + name: "Random Maze (full stack)", + repo: { dir: "motoko/random_maze", ...example }, }, { name: "Game of Life", repo: { dir: "motoko/life", ...example }, - readme: `${readmeURL}/life/README.md`, }, { name: "Publisher and Subscriber", @@ -87,5 +83,29 @@ export async function fetchExample( const content = await (await fetch(proj.readme)).text(); files = { README: content, ...files }; } + files = rewritePackageJson(files); + return files; +} + +function rewritePackageJson(files: Record) { + // Find all package.json files in any directory + Object.entries(files).forEach(([path, content]) => { + if (path.endsWith("package.json")) { + try { + const json = JSON.parse(content); + if (json.scripts) { + // Remove dfx commands from scripts + Object.entries(json.scripts).forEach(([key, value]) => { + if (typeof value === "string" && value.startsWith("dfx")) { + json.scripts[key] = ""; + } + }); + files[path] = JSON.stringify(json, null, 2); + } + } catch (e) { + console.warn(`Failed to parse package.json at ${path}:`, e); + } + } + }); return files; } diff --git a/src/node/package-lock.json b/src/node/package-lock.json new file mode 100644 index 00000000..6dbd77b7 --- /dev/null +++ b/src/node/package-lock.json @@ -0,0 +1,485 @@ +{ + "name": "node-utils", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "node-utils", + "version": "0.1.0", + "dependencies": { + "@dfinity/agent": "^2.1.3", + "@dfinity/assets": "^2.1.3", + "@dfinity/candid": "^2.1.3", + "@dfinity/identity": "^2.1.3", + "@dfinity/principal": "^2.1.3", + "glob": "^8.1.0" + } + }, + "node_modules/@dfinity/agent": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-2.1.3.tgz", + "integrity": "sha512-4XmqhFR3GQSUrmx7lMFx7DyHEhFkM6nz4O9FeYJ/WpkmPe8tulKaAfgWbWdTSCjbd8meCgKVHo+QYj+JHXagcw==", + "dependencies": { + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.3.1", + "base64-arraybuffer": "^0.2.0", + "borc": "^2.1.1", + "buffer": "^6.0.3", + "simple-cbor": "^0.4.1" + }, + "peerDependencies": { + "@dfinity/candid": "^2.1.3", + "@dfinity/principal": "^2.1.3" + } + }, + "node_modules/@dfinity/assets": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@dfinity/assets/-/assets-2.1.3.tgz", + "integrity": "sha512-X+mIytc805zt7hgznzTbducHHemT7EBujBlGqL23XMsHmpAhOwljTiwOpY4UmUFrk2VekfWiQYDnwtyE/QxeJg==", + "dependencies": { + "base64-arraybuffer": "^1.0.2", + "mime": "^3.0.0" + }, + "peerDependencies": { + "@dfinity/agent": "^2.1.3", + "@dfinity/principal": "^2.1.3", + "@noble/hashes": "^1.3.1" + } + }, + "node_modules/@dfinity/assets/node_modules/base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/@dfinity/candid": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-2.1.3.tgz", + "integrity": "sha512-Asn7AfydLhhk7E5z9oW+5UL6ne11gxFlYTxHuhrIc7FdqYlM5Flcq1Wfg9EzRa6Btdol3w58Bcph7Brwh1bcIQ==", + "peerDependencies": { + "@dfinity/principal": "^2.1.3" + } + }, + "node_modules/@dfinity/identity": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@dfinity/identity/-/identity-2.1.3.tgz", + "integrity": "sha512-qII0V91S1YeIz5/XRHomwrUhTME+C3oqdTnb99tBitXA2Gq6LU2JaCLbKbN7ehhSyW6EjO4tySJxANz6hYENcQ==", + "dependencies": { + "@noble/curves": "^1.2.0", + "@noble/hashes": "^1.3.1", + "borc": "^2.1.1" + }, + "peerDependencies": { + "@dfinity/agent": "^2.1.3", + "@dfinity/principal": "^2.1.3", + "@peculiar/webcrypto": "^1.4.0" + } + }, + "node_modules/@dfinity/principal": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-2.1.3.tgz", + "integrity": "sha512-HtiAfZcs+ToPYFepVJdFlorIfPA56KzC6J97ZuH2lGNMTAfJA+NEBzLe476B4wVCAwZ0TiGJ27J4ks9O79DFEg==", + "dependencies": { + "@noble/hashes": "^1.3.1" + } + }, + "node_modules/@noble/curves": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.6.0.tgz", + "integrity": "sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ==", + "dependencies": { + "@noble/hashes": "1.5.0" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.5.0.tgz", + "integrity": "sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@peculiar/asn1-schema": { + "version": "2.3.13", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.13.tgz", + "integrity": "sha512-3Xq3a01WkHRZL8X04Zsfg//mGaA21xlL4tlVn4v2xGT0JStiztATRkMwa5b+f/HXmY2smsiLXYK46Gwgzvfg3g==", + "peer": true, + "dependencies": { + "asn1js": "^3.0.5", + "pvtsutils": "^1.3.5", + "tslib": "^2.6.2" + } + }, + "node_modules/@peculiar/json-schema": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", + "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", + "peer": true, + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@peculiar/webcrypto": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.5.0.tgz", + "integrity": "sha512-BRs5XUAwiyCDQMsVA9IDvDa7UBR9gAvPHgugOeGng3YN6vJ9JYonyDc0lNczErgtCWtucjR5N7VtaonboD/ezg==", + "peer": true, + "dependencies": { + "@peculiar/asn1-schema": "^2.3.8", + "@peculiar/json-schema": "^1.1.12", + "pvtsutils": "^1.3.5", + "tslib": "^2.6.2", + "webcrypto-core": "^1.8.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/asn1js": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", + "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", + "peer": true, + "dependencies": { + "pvtsutils": "^1.3.2", + "pvutils": "^1.1.3", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "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==" + }, + "node_modules/base64-arraybuffer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz", + "integrity": "sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bignumber.js": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", + "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "engines": { + "node": "*" + } + }, + "node_modules/borc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/borc/-/borc-2.1.2.tgz", + "integrity": "sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w==", + "dependencies": { + "bignumber.js": "^9.0.0", + "buffer": "^5.5.0", + "commander": "^2.15.0", + "ieee754": "^1.1.13", + "iso-url": "~0.4.7", + "json-text-sequence": "~0.1.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/borc/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/borc/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/delimit-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz", + "integrity": "sha512-a02fiQ7poS5CnjiJBAsjGLPp5EwVoGHNeu9sziBd9huppRfsAFIpv5zNLv0V1gbop53ilngAf5Kf331AwcoRBQ==" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/iso-url": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-0.4.7.tgz", + "integrity": "sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==", + "engines": { + "node": ">=10" + } + }, + "node_modules/json-text-sequence": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz", + "integrity": "sha512-L3mEegEWHRekSHjc7+sc8eJhba9Clq1PZ8kMkzf8OxElhXc8O4TS5MwcVlj9aEbm5dr81N90WHC5nAz3UO971w==", + "dependencies": { + "delimit-stream": "0.1.0" + } + }, + "node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/pvtsutils": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.5.tgz", + "integrity": "sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==", + "peer": true, + "dependencies": { + "tslib": "^2.6.1" + } + }, + "node_modules/pvutils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", + "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/simple-cbor": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/simple-cbor/-/simple-cbor-0.4.1.tgz", + "integrity": "sha512-rijcxtwx2b4Bje3sqeIqw5EeW7UlOIC4YfOdwqIKacpvRQ/D78bWg/4/0m5e0U91oKvlGh7LlJuZCu07ISCC7w==" + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "peer": true + }, + "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==" + }, + "node_modules/webcrypto-core": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.8.0.tgz", + "integrity": "sha512-kR1UQNH8MD42CYuLzvibfakG5Ew5seG85dMMoAM/1LqvckxaF6pUiidLuraIu4V+YCIFabYecUZAW0TuxAoaqw==", + "peer": true, + "dependencies": { + "@peculiar/asn1-schema": "^2.3.8", + "@peculiar/json-schema": "^1.1.12", + "asn1js": "^3.0.1", + "pvtsutils": "^1.3.5", + "tslib": "^2.6.2" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + } + } +} diff --git a/src/node/package.json b/src/node/package.json new file mode 100644 index 00000000..d472f5aa --- /dev/null +++ b/src/node/package.json @@ -0,0 +1,13 @@ +{ + "name": "node-utils", + "version": "0.1.0", + "private": true, + "dependencies": { + "@dfinity/agent": "^2.1.3", + "@dfinity/candid": "^2.1.3", + "@dfinity/principal": "^2.1.3", + "@dfinity/assets": "^2.1.3", + "@dfinity/identity": "^2.1.3", + "glob": "^8.1.0" + } +} diff --git a/src/node/uploadAsset.js b/src/node/uploadAsset.js new file mode 100644 index 00000000..a1122b08 --- /dev/null +++ b/src/node/uploadAsset.js @@ -0,0 +1,76 @@ +const { AssetManager } = require("@dfinity/assets"); +const { HttpAgent } = require("@dfinity/agent"); +const { Ed25519KeyIdentity } = require("@dfinity/identity"); +const fs = require("fs"); +const path = require("path"); +const glob = require("glob"); +const util = require("util"); +const crypto = require("crypto"); + +const globPromise = util.promisify(glob); +const identity = Ed25519KeyIdentity.fromJSON( + fs.readFileSync("./identity.json", "utf-8"), +); +const agent = HttpAgent.createSync({ + host: "https://icp-api.io", //"http://mylocalhost.com:4943", + identity, +}); +//agent.fetchRootKey(); + +async function upload(canisterId, asset_dirs) { + const assetManager = new AssetManager({ + canisterId, + agent, + }); + const headers = [ + ["Cross-Origin-Embedder-Policy", "require-corp"], + ["Cross-Origin-Resource-Policy", "cross-origin"], + ]; + const old = await assetManager.list(); + const oldKeys = new Set(old.map((f) => f.key)); + console.log(oldKeys); + const batch = assetManager.batch(); + for (const asset_dir of asset_dirs.split(",")) { + const files = await globPromise(`${asset_dir}/**/*`, { nodir: true }); + for (const file of files) { + const fileName = path.relative(asset_dir, file); + const contents = fs.readFileSync(file); + if (contents.length === 0) { + continue; + } + const key = `/${fileName}`; + const item = old.find((f) => f.key === key); + if (item) { + oldKeys.delete(key); + const hash = crypto.createHash("sha256").update(contents).digest(); + const encoding = item.encodings.find( + (e) => e.content_encoding === "identity", + ); + if (encoding && Buffer.from(encoding.sha256[0]).equals(hash)) { + console.log(`Skip ${fileName}`); + continue; + } else { + console.log(`Replace ${fileName}`); + batch.delete(key); + } + } else { + console.log(`Add ${fileName}`); + } + await batch.store(contents, { fileName, headers }); + } + } + for (const key of oldKeys) { + console.log(`Delete ${key}`); + batch.delete(key); + } + await batch.commit(); +} + +if (process.argv.length !== 4) { + console.error("Usage: node uploadAsset.js "); + process.exit(1); +} +(async () => { + const [, , canister_id, asset_dir] = process.argv; + await upload(canister_id, asset_dir); +})(); diff --git a/src/reportWebVitals.js b/src/reportWebVitals.js deleted file mode 100644 index 9ecd33f9..00000000 --- a/src/reportWebVitals.js +++ /dev/null @@ -1,13 +0,0 @@ -const reportWebVitals = (onPerfEntry) => { - if (onPerfEntry && onPerfEntry instanceof Function) { - import("web-vitals").then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { - getCLS(onPerfEntry); - getFID(onPerfEntry); - getFCP(onPerfEntry); - getLCP(onPerfEntry); - getTTFB(onPerfEntry); - }); - } -}; - -export default reportWebVitals; diff --git a/src/webcontainer.ts b/src/webcontainer.ts new file mode 100644 index 00000000..a8c60968 --- /dev/null +++ b/src/webcontainer.ts @@ -0,0 +1,192 @@ +import { WebContainer, FileSystemTree, SpawnOptions } from "@webcontainer/api"; +import { Terminal } from "@xterm/xterm"; + +export class Container { + public container: WebContainer | null = null; + public isDummy = false; + private terminal: Terminal; + + constructor(terminal: Terminal) { + this.terminal = terminal; + } + + async init() { + if (this.isDummy) { + return; + } + if (!this.container) { + try { + this.container = await WebContainer.boot({ + coep: "credentialless", + workdirName: "playground", + }); + } catch (err) { + this.isDummy = true; + console.error(err); + } + } + return this.container; + } + + async initFiles() { + await this.init(); + if (this.isDummy) { + return; + } + const nodeFiles = import.meta.glob("./node/*", { + query: "?raw", + import: "default", + eager: true, + }); + const utilsFiles: FileSystemTree = Object.entries(nodeFiles).reduce( + (acc, [key, value]) => { + const fileName = key.replace("./node/", ""); + acc[fileName] = { + file: { + contents: value, + }, + }; + return acc; + }, + {}, + ); + const files: FileSystemTree = { + utils: { + directory: utilsFiles, + }, + user: { + directory: {}, + }, + etc: { + directory: { + hosts: { + file: { + contents: "127.0.0.1 mylocalhost.com", + }, + }, + }, + }, + }; + await this.container!.mount(files); + } + async mount(files: FileSystemTree, options?: { mountPoint?: string }) { + await this.init(); + if (this.isDummy) { + return; + } + await this.container!.mount(files, options); + } + async rm(path: string, options?: { recursive?: boolean; force?: boolean }) { + await this.init(); + if (this.isDummy) { + return; + } + await this.container!.fs.rm(path, options); + } + async writeFile( + path: string, + contents: string | Uint8Array, + options?: + | string + | { + encoding?: string; + }, + ) { + await this.init(); + if (this.isDummy) { + return; + } + await this.container!.fs.writeFile(path, contents, options); + } + async mkdir( + path: string, + options?: { + recursive?: boolean; + }, + ) { + await this.init(); + if (this.isDummy) { + return; + } + await this.container!.fs.mkdir(path, options); + } + private async spawn(cmd: string, args: string[], options?: SpawnOptions) { + const new_options = { + ...options, + terminal: { + cols: this.terminal.cols, + rows: this.terminal.rows, + }, + }; + const process = await this.container!.spawn(cmd, args, new_options); + return process; + } + async start_shell() { + await this.init(); + if (this.isDummy) { + this.terminal.writeln( + "WebContainer fails to initialize. Frontend build is disabled.", + ); + return; + } + const userAgent = navigator.userAgent.toLowerCase(); + // TODO: double check the browsers listed here indeed works + const isChromiumBased = [ + "chrome", + "edge", + "brave", + "opera", + "duckduckgo", + "vivaldi", + ].some((browser) => userAgent.indexOf(browser) > -1); + const isMobile = + /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test( + userAgent, + ); + if (!isChromiumBased || isMobile) { + this.terminal.writeln( + `You are using ${isMobile ? "a mobile browser" : userAgent}. +Some terminal commands may not work. Please consider using a desktop Chromium-based browser like Chrome, Edge, or Brave.`, + ); + } + const process = await this.spawn("jsh", []); + process.output.pipeTo( + new WritableStream({ + write: (data) => { + if (data.includes("command not found: moc")) { + this.terminal.writeln("haha, you called moc!"); + } else { + this.terminal.write(data); + } + }, + }), + ); + const input = process.input.getWriter(); + this.terminal.onData((data) => { + input.write(data); + }); + return process; + } + async run_cmd(cmd: string, args: string[], options?: SpawnOptions) { + await this.init(); + if (this.isDummy) { + return; + } + if (options?.output ?? true) { + this.terminal.writeln(`/${options?.cwd ?? ""}$ ${cmd} ${args.join(" ")}`); + } + const process = await this.spawn(cmd, args, options); + process.output.pipeTo( + new WritableStream({ + write: (data) => { + this.terminal.write(data); + }, + }), + ); + const exitCode = await process.exit; + if (exitCode !== 0) { + this.terminal.writeln(`\r\nexited with code ${exitCode}`); + throw new Error(`Command failed with code ${exitCode}`); + } + } +} diff --git a/src/workers/file.ts b/src/workers/file.ts index 66b9f1c9..18f11476 100644 --- a/src/workers/file.ts +++ b/src/workers/file.ts @@ -1,17 +1,5 @@ import { loadMoc } from "./mocShim"; -interface ExtraFile { - match: RegExp; - resolveName(results: RegExpExecArray): string; -} - -const extraFiles: ExtraFile[] = [ - { - match: /^readme\.md$/i, - resolveName: () => "README", - }, -]; - export interface PackageInfo { name: string; repo: string; @@ -50,8 +38,8 @@ export async function fetchPackage(info: PackageInfo): Promise { export async function fetchGithub( repo: RepoInfo, - target_dir = "" -): Promise | undefined> { + target_dir = "", +): Promise | undefined> { const possiblyCDN = !( (repo.branch.length % 2 === 0 && /^[A-F0-9]+$/i.test(repo.branch)) || repo.branch === "master" || @@ -74,10 +62,20 @@ export async function saveWorkplaceToMotoko(files: Record) { } } +const isValidFile = (path: string) => { + const validFiles = + /\.(mo|md|js|ts|json|txt|png|jpg|jpeg|gif|svg|ico|css|scss|html|tsx|jsx)$/; + return validFiles.test(path); // && !path.includes("/declarations/"); +}; +const isBinaryFile = (path: string) => { + const binaryFiles = /\.(png|jpg|jpeg|gif|ico|wasm)$/; + return binaryFiles.test(path); +}; + async function fetchFromCDN( repo: RepoInfo, - target_dir = "" -): Promise | undefined> { + target_dir = "", +): Promise | undefined> { const Motoko = await loadMoc(); const meta_url = `https://data.jsdelivr.com/v1/package/gh/${repo.repo}@${repo.branch}/flat`; const base_url = `https://cdn.jsdelivr.net/gh/${repo.repo}@${repo.branch}`; @@ -89,20 +87,20 @@ async function fetchFromCDN( const promises: any[] = []; const files = {}; for (const f of json.files) { - const extraFileName = extraFiles.flatMap(({ match, resolveName }) => { - const results = match.exec(f.path); - return results ? [resolveName(results)] : []; - })[0]; - if ( - f.name.startsWith(`/${repo.dir}/`) && - (extraFileName || /\.mo$/i.test(f.name)) - ) { + if (f.name.startsWith(`/${repo.dir}/`) && isValidFile(f.name)) { const promise = (async () => { - const content = await (await fetch(base_url + f.name)).text(); + const response = await fetch(base_url + f.name); const stripped = - extraFileName || target_dir + f.name.slice(repo.dir ? repo.dir.length + 1 : 0); - Motoko.saveFile(stripped, content); + let content: string | Uint8Array; + if (isBinaryFile(f.name)) { + content = new Uint8Array(await response.arrayBuffer()); + } else { + content = await response.text(); + if (f.name.endsWith(".mo")) { + Motoko.saveFile(stripped, content); + } + } files[stripped] = content; })(); promises.push(promise); @@ -118,8 +116,8 @@ async function fetchFromCDN( async function fetchFromGithub( repo: RepoInfo, - target_dir = "" -): Promise | undefined> { + target_dir = "", +): Promise | undefined> { const Motoko = await loadMoc(); const meta_url = `https://api.github.com/repos/${repo.repo}/git/trees/${repo.branch}?recursive=1`; const base_url = `https://raw.githubusercontent.com/${repo.repo}/${repo.branch}/`; @@ -131,23 +129,26 @@ async function fetchFromGithub( const promises: any[] = []; const files = {}; for (const f of json.tree) { - const extraFileName = extraFiles.flatMap(({ match, resolveName }) => { - const results = match.exec(f.path); - return results ? [resolveName(results)] : []; - })[0]; if ( f.path.startsWith(repo.dir ? `${repo.dir}/` : "") && f.type === "blob" && - (extraFileName || /\.mo$/i.test(f.path)) + isValidFile(f.path) ) { const promise = (async () => { - const content = await (await fetch(base_url + f.path)).text(); + const response = await fetch(base_url + f.path); const stripped = - extraFileName || target_dir + - (target_dir ? "/" : "") + - f.path.slice(repo.dir ? repo.dir.length + 1 : 0); - Motoko.saveFile(stripped, content); + (target_dir ? "/" : "") + + f.path.slice(repo.dir ? repo.dir.length + 1 : 0); + let content: string | Uint8Array; + if (isBinaryFile(f.path)) { + content = new Uint8Array(await response.arrayBuffer()); + } else { + content = await response.text(); + if (f.path.endsWith(".mo")) { + Motoko.saveFile(stripped, content); + } + } files[stripped] = content; })(); promises.push(promise); diff --git a/vite.config.ts b/vite.config.ts index abafb36a..2832d2cb 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -30,7 +30,13 @@ export default defineConfig(({ mode }) => { "react-markdown", "prettier-plugin-motoko", ], - agent: ["@dfinity/agent", "@dfinity/candid", "@dfinity/principal"], + xterm: ["@xterm/xterm", "@xterm/addon-fit"], + agent: [ + "@dfinity/agent", + "@dfinity/candid", + "@dfinity/principal", + "@dfinity/identity", + ], }, }, }, @@ -42,7 +48,6 @@ export default defineConfig(({ mode }) => { wasm(), topLevelAwait(), devServerPlugin(), - sourcemapPlugin(), svgrPlugin(), setupProxyPlugin(), @@ -101,22 +106,6 @@ function devServerPlugin(): Plugin { }; } -// Migration guide: Follow the guide below -// https://vitejs.dev/config/build-options.html#build-sourcemap -function sourcemapPlugin(): Plugin { - return { - name: "sourcemap-plugin", - config(_, { mode }) { - const { GENERATE_SOURCEMAP } = loadEnv(mode, ".", ["GENERATE_SOURCEMAP"]); - return { - build: { - sourcemap: GENERATE_SOURCEMAP === "true", - }, - }; - }, - }; -} - // In Create React App, SVGs can be imported directly as React components. This is achieved by svgr libraries. // https://create-react-app.dev/docs/adding-images-fonts-and-files/#adding-svgs function svgrPlugin(): Plugin {