From 151887d4bc00461fc601846cec6986e6c0db29fa Mon Sep 17 00:00:00 2001 From: zeme-wana <15709674+zeme-wana@users.noreply.github.com> Date: Fri, 21 Jun 2024 12:28:38 +0200 Subject: [PATCH] Complete Migration from RDT to Docusaurus (#6227) - Delete the contents of doc/read-the-docs-site, only keeping the README with a migration notice. - Move docusaurus folder into doc folder. - Update the GH workflows for publishing the haddock site and docusaurus site. - Delete GH web hook and update redirects on RTD site. - Remove mentions of read-the-docs and combined-haddock from nix code - Update release process, mentioning how to publish Docusaurus and the Haddock site - Update links in Docusaurus mentioning the new haddock site --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- .github/ISSUE_TEMPLATE/feature_request.yml | 2 +- .github/workflows/combined-haddock.yml | 33 -- .github/workflows/docusaurus-site.yml | 31 ++ .github/workflows/haddock-site.yml | 59 ++++ .github/workflows/publish-docs.yml | 42 --- .readthedocs.yml | 14 - CONTRIBUTING.adoc | 17 +- README.adoc | 6 +- cabal.project | 3 +- {docusaurus => doc/docusaurus}/.gitignore | 0 {docusaurus => doc/docusaurus}/README.md | 14 +- .../docusaurus}/babel.config.js | 0 .../docusaurus}/docs/adr/_category_.json | 0 .../docusaurus}/docs/adr/adr-index.md | 0 .../docusaurus}/docs/adr/adr1.md | 0 .../docusaurus}/docs/adr/adr2.md | 0 .../docusaurus}/docs/adr/adr3.md | 0 .../docusaurus}/docs/adr/adr4.md | 0 .../docs/essential-concepts/_category_.json | 0 .../essential-concepts/language-versions.md | 0 .../docs/essential-concepts/ledger.md | 0 .../essential-concepts/plutus-foundation.md | 0 .../essential-concepts/plutus-platform.mdx | 0 .../docs/getting-started-plutus-tx.md | 2 +- {docusaurus => doc/docusaurus}/docs/index.md | 0 .../docs/reference/_category_.json | 0 .../docs/reference/common-weaknesses.md | 0 .../docs/reference/cost-model-parameters.md | 0 .../docusaurus}/docs/reference/examples.md | 0 .../docs/reference/further-resources.md | 0 .../docusaurus}/docs/reference/glossary.md | 0 .../docs/reference/haddock-documentation.md | 0 .../docs/reference/plutus-language-changes.md | 0 .../reference/plutus-tx-compiler-options.md | 0 .../script-optimization-techniques.md | 0 .../upgrade-vasil-plutus-script-addresses.md | 0 .../docs/simple-example/_category_.json | 0 .../alternatives-to-plutus-tx.md | 0 .../docs/simple-example/auction-properties.md | 0 .../docs/simple-example/eutxo-model.md | 0 .../docs/simple-example/further-reading.md | 0 .../docs/simple-example/libraries.md | 0 .../docs/simple-example/life-cycle.md | 0 .../docs/simple-example/off-chain-code.md | 4 +- .../docs/simple-example/plutus-tx-code.md | 2 +- .../docs/simple-example/simple-example.md | 0 .../docusaurus}/docs/troubleshooting.md | 0 .../docs/using-plutus-tx/_category_.json | 0 .../_category_.json | 0 .../optimizing-scripts-with-asData.md | 0 .../triggering-a-validation-failure.md | 0 .../using-plutus-tx/compiling-plutus-tx.md | 0 .../using-plutus-tx/overview-plutus-tx.md | 0 .../using-plutus-tx/producing-a-blueprint.md | 0 .../writing-plutus-tx-programs.md | 0 .../docs/working-with-scripts/_category_.json | 0 .../exporting-scripts-datums-redeemers.md | 0 .../profiling-budget-usage.md | 0 .../writing-basic-minting-policies.md | 0 .../writing-basic-validator-scripts.md | 0 .../docusaurus}/docusaurus.config.ts | 4 +- {docusaurus => doc/docusaurus}/package.json | 0 {docusaurus => doc/docusaurus}/sidebars.ts | 0 .../docusaurus}/src/components/CsvTable.tsx | 0 .../src/components/LiteralInclude.tsx | 0 .../docusaurus}/src/css/custom.css | 0 .../docusaurus}/src/theme/Footer/index.js | 0 .../docusaurus}/src/theme/MDXComponents.ts | 0 .../docusaurus}/static/.nojekyll | 0 .../static/code/AuctionValidator.hs | 0 .../static/code}/BasicPlutusTx.hs | 0 .../docusaurus}/static/code/BasicPolicies.hs | 0 .../static/code/BasicValidators.hs | 0 .../docusaurus}/static/code/Cip57Blueprint.hs | 0 .../static/code}/QuickStart.hs | 0 .../static/code}/plutus.json | 0 .../static/csv}/builtin-parameters.csv | 0 .../static/csv}/machine-parameters.csv | 0 .../img}/closing-tx-simple-auction-v3.png | Bin .../static/img/docusaurus-social-card.png | Bin .../static/img}/double-satisfaction.png | Bin .../docusaurus}/static/img/favicon.ico | Bin .../img}/first-bid-simple-auction-v3.png | Bin .../docusaurus}/static/img/github.svg | 0 .../docusaurus}/static/img/logo-footer.svg | 0 .../docusaurus}/static/img/logo.svg | 0 .../static/img}/platform-architecture.png | Bin .../img}/second-bid-simple-auction-v3.png | Bin {docusaurus => doc/docusaurus}/tsconfig.json | 0 {docusaurus => doc/docusaurus}/yarn.lock | 0 doc/read-the-docs-site/.gitignore | 1 - doc/read-the-docs-site/LICENSE | 53 --- doc/read-the-docs-site/NOTICE | 13 - doc/read-the-docs-site/README.md | 30 +- doc/read-the-docs-site/_static/.gitkeep | 0 .../_static/theme_overrides.css | 6 - doc/read-the-docs-site/_templates/.gitkeep | 0 .../0001-record-architecture-decisions.rst | 167 --------- .../adr/0002-steppable-cek-machine.md | 189 ---------- .../adr/0003-sharing-prod-debugging-cek.md | 122 ------- .../adr/0004-deferred-unlifting.md | 84 ----- doc/read-the-docs-site/adr/index.rst | 36 -- doc/read-the-docs-site/bibliography.bib | 109 ------ doc/read-the-docs-site/cardano-logo.png | Bin 6361 -> 0 bytes doc/read-the-docs-site/conf.py | 128 ------- doc/read-the-docs-site/explanations/index.rst | 11 - .../explanations/language-versions.rst | 63 ---- .../explanations/ledger.rst | 139 -------- .../explanations/platform.rst | 73 ---- .../explanations/plutus-foundation.rst | 38 -- .../extensions-flags-pragmas.rst | 85 ----- doc/read-the-docs-site/exts/hs_domain.py | 28 -- .../howtos/Cip57Blueprint.hs | 164 --------- doc/read-the-docs-site/howtos/asdata.rst | 128 ------- .../howtos/exporting-a-blueprint.rst | 310 ---------------- .../howtos/exporting-a-script.rst | 46 --- doc/read-the-docs-site/howtos/index.rst | 13 - doc/read-the-docs-site/howtos/myscript.uplc | 0 .../howtos/profiling-scripts.rst | 64 ---- doc/read-the-docs-site/index.rst | 58 --- doc/read-the-docs-site/plutus-doc.cabal | 105 ------ doc/read-the-docs-site/quick-start.rst | 10 - .../reference/bibliography.rst | 6 - .../cardano/cost-model-parameters.rst | 18 - .../reference/cardano/index.rst | 10 - .../reference/cardano/language-changes.rst | 100 ------ .../upgr-vasil-plutus-script-addresses.rst | 42 --- doc/read-the-docs-site/reference/glossary.rst | 113 ------ doc/read-the-docs-site/reference/index.rst | 11 - .../common-weaknesses/double-satisfaction.rst | 73 ---- .../common-weaknesses/hard-limits.rst | 72 ---- .../common-weaknesses/index.rst | 12 - .../compiler-options-table.rst | 183 ---------- .../writing-scripts/compiler-options.rst | 16 - .../reference/writing-scripts/examples.rst | 17 - .../reference/writing-scripts/index.rst | 11 - .../writing-scripts/optimization.rst | 96 ----- doc/read-the-docs-site/requirements.txt | 63 ---- doc/read-the-docs-site/simple-example.rst | 330 ------------------ doc/read-the-docs-site/troubleshooting.rst | 134 ------- .../tutorials/AuctionValidator.hs | 237 ------------- .../tutorials/BasicPolicies.hs | 57 --- .../tutorials/BasicValidators.hs | 98 ------ doc/read-the-docs-site/tutorials/Main.hs | 6 - .../tutorials/basic-minting-policies.rst | 64 ---- .../tutorials/basic-validators.rst | 102 ------ doc/read-the-docs-site/tutorials/index.rst | 12 - .../tutorials/plutus-tx.rst | 219 ------------ docusaurus/static/code/BasicPlutusTx.hs | 188 ---------- docusaurus/static/code/QuickStart.hs | 26 -- docusaurus/static/code/plutus.json | 92 ----- docusaurus/static/csv/builtin-parameters.csv | 160 --------- docusaurus/static/csv/machine-parameters.csv | 17 - .../img/closing-tx-simple-auction-v3.png | Bin 149602 -> 0 bytes docusaurus/static/img/double-satisfaction.png | Bin 18293 -> 0 bytes .../img/first-bid-simple-auction-v3.png | Bin 139034 -> 0 bytes .../static/img/platform-architecture.png | Bin 32443 -> 0 bytes .../img/second-bid-simple-auction-v3.png | Bin 164852 -> 0 bytes nix/outputs.nix | 4 - nix/project.nix | 17 - nix/shell.nix | 1 + 162 files changed, 125 insertions(+), 4990 deletions(-) delete mode 100644 .github/workflows/combined-haddock.yml create mode 100644 .github/workflows/docusaurus-site.yml create mode 100644 .github/workflows/haddock-site.yml delete mode 100644 .github/workflows/publish-docs.yml delete mode 100644 .readthedocs.yml rename {docusaurus => doc/docusaurus}/.gitignore (100%) rename {docusaurus => doc/docusaurus}/README.md (65%) rename {docusaurus => doc/docusaurus}/babel.config.js (100%) rename {docusaurus => doc/docusaurus}/docs/adr/_category_.json (100%) rename {docusaurus => doc/docusaurus}/docs/adr/adr-index.md (100%) rename {docusaurus => doc/docusaurus}/docs/adr/adr1.md (100%) rename {docusaurus => doc/docusaurus}/docs/adr/adr2.md (100%) rename {docusaurus => doc/docusaurus}/docs/adr/adr3.md (100%) rename {docusaurus => doc/docusaurus}/docs/adr/adr4.md (100%) rename {docusaurus => doc/docusaurus}/docs/essential-concepts/_category_.json (100%) rename {docusaurus => doc/docusaurus}/docs/essential-concepts/language-versions.md (100%) rename {docusaurus => doc/docusaurus}/docs/essential-concepts/ledger.md (100%) rename {docusaurus => doc/docusaurus}/docs/essential-concepts/plutus-foundation.md (100%) rename {docusaurus => doc/docusaurus}/docs/essential-concepts/plutus-platform.mdx (100%) rename {docusaurus => doc/docusaurus}/docs/getting-started-plutus-tx.md (91%) rename {docusaurus => doc/docusaurus}/docs/index.md (100%) rename {docusaurus => doc/docusaurus}/docs/reference/_category_.json (100%) rename {docusaurus => doc/docusaurus}/docs/reference/common-weaknesses.md (100%) rename {docusaurus => doc/docusaurus}/docs/reference/cost-model-parameters.md (100%) rename {docusaurus => doc/docusaurus}/docs/reference/examples.md (100%) rename {docusaurus => doc/docusaurus}/docs/reference/further-resources.md (100%) rename {docusaurus => doc/docusaurus}/docs/reference/glossary.md (100%) rename {docusaurus => doc/docusaurus}/docs/reference/haddock-documentation.md (100%) rename {docusaurus => doc/docusaurus}/docs/reference/plutus-language-changes.md (100%) rename {docusaurus => doc/docusaurus}/docs/reference/plutus-tx-compiler-options.md (100%) rename {docusaurus => doc/docusaurus}/docs/reference/script-optimization-techniques.md (100%) rename {docusaurus => doc/docusaurus}/docs/reference/upgrade-vasil-plutus-script-addresses.md (100%) rename {docusaurus => doc/docusaurus}/docs/simple-example/_category_.json (100%) rename {docusaurus => doc/docusaurus}/docs/simple-example/alternatives-to-plutus-tx.md (100%) rename {docusaurus => doc/docusaurus}/docs/simple-example/auction-properties.md (100%) rename {docusaurus => doc/docusaurus}/docs/simple-example/eutxo-model.md (100%) rename {docusaurus => doc/docusaurus}/docs/simple-example/further-reading.md (100%) rename {docusaurus => doc/docusaurus}/docs/simple-example/libraries.md (100%) rename {docusaurus => doc/docusaurus}/docs/simple-example/life-cycle.md (100%) rename {docusaurus => doc/docusaurus}/docs/simple-example/off-chain-code.md (84%) rename {docusaurus => doc/docusaurus}/docs/simple-example/plutus-tx-code.md (99%) rename {docusaurus => doc/docusaurus}/docs/simple-example/simple-example.md (100%) rename {docusaurus => doc/docusaurus}/docs/troubleshooting.md (100%) rename {docusaurus => doc/docusaurus}/docs/using-plutus-tx/_category_.json (100%) rename {docusaurus => doc/docusaurus}/docs/using-plutus-tx/advanced-plutus-tx-concepts/_category_.json (100%) rename {docusaurus => doc/docusaurus}/docs/using-plutus-tx/advanced-plutus-tx-concepts/optimizing-scripts-with-asData.md (100%) rename {docusaurus => doc/docusaurus}/docs/using-plutus-tx/advanced-plutus-tx-concepts/triggering-a-validation-failure.md (100%) rename {docusaurus => doc/docusaurus}/docs/using-plutus-tx/compiling-plutus-tx.md (100%) rename {docusaurus => doc/docusaurus}/docs/using-plutus-tx/overview-plutus-tx.md (100%) rename {docusaurus => doc/docusaurus}/docs/using-plutus-tx/producing-a-blueprint.md (100%) rename {docusaurus => doc/docusaurus}/docs/using-plutus-tx/writing-plutus-tx-programs.md (100%) rename {docusaurus => doc/docusaurus}/docs/working-with-scripts/_category_.json (100%) rename {docusaurus => doc/docusaurus}/docs/working-with-scripts/exporting-scripts-datums-redeemers.md (100%) rename {docusaurus => doc/docusaurus}/docs/working-with-scripts/profiling-budget-usage.md (100%) rename {docusaurus => doc/docusaurus}/docs/working-with-scripts/writing-basic-minting-policies.md (100%) rename {docusaurus => doc/docusaurus}/docs/working-with-scripts/writing-basic-validator-scripts.md (100%) rename {docusaurus => doc/docusaurus}/docusaurus.config.ts (97%) rename {docusaurus => doc/docusaurus}/package.json (100%) rename {docusaurus => doc/docusaurus}/sidebars.ts (100%) rename {docusaurus => doc/docusaurus}/src/components/CsvTable.tsx (100%) rename {docusaurus => doc/docusaurus}/src/components/LiteralInclude.tsx (100%) rename {docusaurus => doc/docusaurus}/src/css/custom.css (100%) rename {docusaurus => doc/docusaurus}/src/theme/Footer/index.js (100%) rename {docusaurus => doc/docusaurus}/src/theme/MDXComponents.ts (100%) rename {docusaurus => doc/docusaurus}/static/.nojekyll (100%) rename {docusaurus => doc/docusaurus}/static/code/AuctionValidator.hs (100%) rename doc/{read-the-docs-site/tutorials => docusaurus/static/code}/BasicPlutusTx.hs (100%) rename {docusaurus => doc/docusaurus}/static/code/BasicPolicies.hs (100%) rename {docusaurus => doc/docusaurus}/static/code/BasicValidators.hs (100%) rename {docusaurus => doc/docusaurus}/static/code/Cip57Blueprint.hs (100%) rename doc/{read-the-docs-site/tutorials => docusaurus/static/code}/QuickStart.hs (100%) rename doc/{read-the-docs-site/howtos => docusaurus/static/code}/plutus.json (100%) rename doc/{read-the-docs-site/reference/cardano => docusaurus/static/csv}/builtin-parameters.csv (100%) rename doc/{read-the-docs-site/reference/cardano => docusaurus/static/csv}/machine-parameters.csv (100%) rename doc/{read-the-docs-site => docusaurus/static/img}/closing-tx-simple-auction-v3.png (100%) rename {docusaurus => doc/docusaurus}/static/img/docusaurus-social-card.png (100%) rename doc/{read-the-docs-site/reference/writing-scripts/common-weaknesses => docusaurus/static/img}/double-satisfaction.png (100%) rename {docusaurus => doc/docusaurus}/static/img/favicon.ico (100%) rename doc/{read-the-docs-site => docusaurus/static/img}/first-bid-simple-auction-v3.png (100%) rename {docusaurus => doc/docusaurus}/static/img/github.svg (100%) rename {docusaurus => doc/docusaurus}/static/img/logo-footer.svg (100%) rename {docusaurus => doc/docusaurus}/static/img/logo.svg (100%) rename doc/{read-the-docs-site/explanations => docusaurus/static/img}/platform-architecture.png (100%) rename doc/{read-the-docs-site => docusaurus/static/img}/second-bid-simple-auction-v3.png (100%) rename {docusaurus => doc/docusaurus}/tsconfig.json (100%) rename {docusaurus => doc/docusaurus}/yarn.lock (100%) delete mode 100644 doc/read-the-docs-site/.gitignore delete mode 100644 doc/read-the-docs-site/LICENSE delete mode 100644 doc/read-the-docs-site/NOTICE delete mode 100644 doc/read-the-docs-site/_static/.gitkeep delete mode 100644 doc/read-the-docs-site/_static/theme_overrides.css delete mode 100644 doc/read-the-docs-site/_templates/.gitkeep delete mode 100644 doc/read-the-docs-site/adr/0001-record-architecture-decisions.rst delete mode 100644 doc/read-the-docs-site/adr/0002-steppable-cek-machine.md delete mode 100644 doc/read-the-docs-site/adr/0003-sharing-prod-debugging-cek.md delete mode 100644 doc/read-the-docs-site/adr/0004-deferred-unlifting.md delete mode 100644 doc/read-the-docs-site/adr/index.rst delete mode 100644 doc/read-the-docs-site/bibliography.bib delete mode 100644 doc/read-the-docs-site/cardano-logo.png delete mode 100644 doc/read-the-docs-site/conf.py delete mode 100644 doc/read-the-docs-site/explanations/index.rst delete mode 100644 doc/read-the-docs-site/explanations/language-versions.rst delete mode 100644 doc/read-the-docs-site/explanations/ledger.rst delete mode 100644 doc/read-the-docs-site/explanations/platform.rst delete mode 100644 doc/read-the-docs-site/explanations/plutus-foundation.rst delete mode 100644 doc/read-the-docs-site/extensions-flags-pragmas.rst delete mode 100644 doc/read-the-docs-site/exts/hs_domain.py delete mode 100644 doc/read-the-docs-site/howtos/Cip57Blueprint.hs delete mode 100644 doc/read-the-docs-site/howtos/asdata.rst delete mode 100644 doc/read-the-docs-site/howtos/exporting-a-blueprint.rst delete mode 100644 doc/read-the-docs-site/howtos/exporting-a-script.rst delete mode 100644 doc/read-the-docs-site/howtos/index.rst delete mode 100644 doc/read-the-docs-site/howtos/myscript.uplc delete mode 100644 doc/read-the-docs-site/howtos/profiling-scripts.rst delete mode 100644 doc/read-the-docs-site/index.rst delete mode 100644 doc/read-the-docs-site/plutus-doc.cabal delete mode 100644 doc/read-the-docs-site/quick-start.rst delete mode 100644 doc/read-the-docs-site/reference/bibliography.rst delete mode 100644 doc/read-the-docs-site/reference/cardano/cost-model-parameters.rst delete mode 100644 doc/read-the-docs-site/reference/cardano/index.rst delete mode 100644 doc/read-the-docs-site/reference/cardano/language-changes.rst delete mode 100644 doc/read-the-docs-site/reference/cardano/upgr-vasil-plutus-script-addresses.rst delete mode 100644 doc/read-the-docs-site/reference/glossary.rst delete mode 100644 doc/read-the-docs-site/reference/index.rst delete mode 100644 doc/read-the-docs-site/reference/writing-scripts/common-weaknesses/double-satisfaction.rst delete mode 100644 doc/read-the-docs-site/reference/writing-scripts/common-weaknesses/hard-limits.rst delete mode 100644 doc/read-the-docs-site/reference/writing-scripts/common-weaknesses/index.rst delete mode 100644 doc/read-the-docs-site/reference/writing-scripts/compiler-options-table.rst delete mode 100644 doc/read-the-docs-site/reference/writing-scripts/compiler-options.rst delete mode 100644 doc/read-the-docs-site/reference/writing-scripts/examples.rst delete mode 100644 doc/read-the-docs-site/reference/writing-scripts/index.rst delete mode 100644 doc/read-the-docs-site/reference/writing-scripts/optimization.rst delete mode 100644 doc/read-the-docs-site/requirements.txt delete mode 100644 doc/read-the-docs-site/simple-example.rst delete mode 100644 doc/read-the-docs-site/troubleshooting.rst delete mode 100644 doc/read-the-docs-site/tutorials/AuctionValidator.hs delete mode 100644 doc/read-the-docs-site/tutorials/BasicPolicies.hs delete mode 100644 doc/read-the-docs-site/tutorials/BasicValidators.hs delete mode 100644 doc/read-the-docs-site/tutorials/Main.hs delete mode 100644 doc/read-the-docs-site/tutorials/basic-minting-policies.rst delete mode 100644 doc/read-the-docs-site/tutorials/basic-validators.rst delete mode 100644 doc/read-the-docs-site/tutorials/index.rst delete mode 100644 doc/read-the-docs-site/tutorials/plutus-tx.rst delete mode 100644 docusaurus/static/code/BasicPlutusTx.hs delete mode 100644 docusaurus/static/code/QuickStart.hs delete mode 100644 docusaurus/static/code/plutus.json delete mode 100644 docusaurus/static/csv/builtin-parameters.csv delete mode 100644 docusaurus/static/csv/machine-parameters.csv delete mode 100644 docusaurus/static/img/closing-tx-simple-auction-v3.png delete mode 100644 docusaurus/static/img/double-satisfaction.png delete mode 100644 docusaurus/static/img/first-bid-simple-auction-v3.png delete mode 100644 docusaurus/static/img/platform-architecture.png delete mode 100644 docusaurus/static/img/second-bid-simple-auction-v3.png diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index e867d78a3bd..ffe7f2bfdea 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -9,7 +9,7 @@ body: attributes: value: | Thanks for taking the time to fill out this bug report. - Please check the existing issues, [Plutus Docs](https://plutus.readthedocs.io/en/latest/) and [Cardano Stack Exchange](https://cardano.stackexchange.com/) before raising. + Please check the existing issues, [Plutus Docs](https://intersectmbo.github.io/plutus/docs) and [Cardano Stack Exchange](https://cardano.stackexchange.com/) before raising. - type: textarea id: summary attributes: diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index e2def837ca2..34fce863a59 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -8,7 +8,7 @@ body: attributes: value: | Thanks for taking the time to fill out this feature request. - Please check the existing issues and [Plutus Docs](https://plutus.readthedocs.io/en/latest/) before raising. + Please check the existing issues and [Plutus Docs](https://intersectmbo.github.io/plutus/docs) before raising. - type: textarea id: description attributes: diff --git a/.github/workflows/combined-haddock.yml b/.github/workflows/combined-haddock.yml deleted file mode 100644 index 76aa23443c1..00000000000 --- a/.github/workflows/combined-haddock.yml +++ /dev/null @@ -1,33 +0,0 @@ -# This workflow builds a combined haddock and publishes it to: -# https://intersectmbo.github.io/plutus/haddock/master -# https://intersectmbo.github.io/plutus/haddock/release/X.X.X.X -name: "Combined Haddock" -on: - workflow_dispatch: - push: - branches: - - master - - release/** -jobs: - build-and-deploy-combined-haddock: - runs-on: [self-hosted, plutus-shared] - permissions: - contents: write - environment: - name: github-pages - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Build Haddock - run: | - nix develop --accept-flake-config --command bash ./scripts/combined-haddock.sh haddock all - - - name: Deploy Haddock - uses: JamesIves/github-pages-deploy-action@v4 - with: - # This folder is generated in the step above - folder: haddock - target-folder: haddock/${{ github.ref_name }} - # haddock is ~400MB and keeping the entire history is unnecessary. - single-commit: true diff --git a/.github/workflows/docusaurus-site.yml b/.github/workflows/docusaurus-site.yml new file mode 100644 index 00000000000..c4b254d38a1 --- /dev/null +++ b/.github/workflows/docusaurus-site.yml @@ -0,0 +1,31 @@ +# This workflow builds and publishes the Docusaurus site to: +# https://intersectmbo.github.io/plutus/docs + +name: "🦕 Docusaurus Site" + +on: + workflow_dispatch: + +jobs: + publish: + name: Publish + runs-on: [self-hosted, plutus-shared] + permissions: + contents: write + environment: + name: github-pages + steps: + - name: Checkout + uses: actions/checkout@main + + - name: Build Site + working-directory: doc/docusaurus + run: nix develop --command bash -c 'yarn && yarn build' + + - name: Deploy Site + uses: JamesIves/github-pages-deploy-action@v4.6.1 + with: + folder: doc/docusaurus/build + target-folder: docs + single-commit: true + diff --git a/.github/workflows/haddock-site.yml b/.github/workflows/haddock-site.yml new file mode 100644 index 00000000000..115e8c54dc5 --- /dev/null +++ b/.github/workflows/haddock-site.yml @@ -0,0 +1,59 @@ +# This workflow builds and publishes the Haddock site to: +# https://intersectmbo.github.io/plutus/haddock/$version +# And optionally to: +# https://intersectmbo.github.io/plutus/haddock/latest + +name: "📜 Haddock Site" + +on: + workflow_dispatch: + inputs: + version: + description: | + The release version tag. For example if $version == "1.29.0.0" then the + current contents of the branch tagged "1.29.0.0" will be deployed to: + https://intersectmbo.github.io/plutus/haddock/$version + required: true + type: string + + latest: + description: | + If true, then the $version branch will also be deployed to: + https://intersectmbo.github.io/plutus/haddock/latest. + You want to leave this to true unless you are deploying old versions. + type: boolean + required: true + default: true + +jobs: + publish: + name: Publish + runs-on: [self-hosted, plutus-shared] + permissions: + contents: write + environment: + name: github-pages + steps: + - name: Checkout + uses: actions/checkout@main + with: + ref: ${{ inputs.version }} + + - name: Build Site + run: | + nix develop --command ./scripts/combined-haddock.sh _haddock all + + - name: Deploy Site + uses: JamesIves/github-pages-deploy-action@v4.6.1 + with: + folder: _haddock + target-folder: haddock/${{ inputs.version }} + single-commit: true + + - name: Deploy Site (latest) + if: ${{ inputs.latest == true }} + uses: JamesIves/github-pages-deploy-action@v4.6.1 + with: + folder: _haddock + target-folder: haddock/latest + single-commit: true \ No newline at end of file diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml deleted file mode 100644 index 69317178e50..00000000000 --- a/.github/workflows/publish-docs.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: "Build and Deploy to Github Pages" -on: - workflow_dispatch: - push: - branches: - - master -jobs: - build-haddock-site: - runs-on: ubuntu-latest - permissions: - contents: write - environment: - name: github-pages - steps: - - uses: actions/checkout@v4 - - uses: nixbuild/nix-quick-install-action@v28 - with: - nix_conf: | - experimental-features = nix-command flakes - accept-flake-config = true - - name: Build Haddock Site - run: | - nix build .#combined-haddock - mkdir dist - cp -RL ./result/share/doc/* ./dist/ - - name: Build Docusaurus Site - working-directory: docusaurus - run: | - yarn - yarn build - - name: Copy Docusaurus Site to Dist - run: | - mkdir dist/docs - cp -RL docusaurus/build/* ./dist/docs/ - - uses: JamesIves/github-pages-deploy-action@v4 - with: - folder: dist - target-folder: ${{ github.ref_name }} - # Publish Docusaurus and Haddock static builds to the same branch - # We publish our haddock, which is non-trivially big. - # So keeping the whole history is expensive, and anyway we don't need it. - single-commit: true diff --git a/.readthedocs.yml b/.readthedocs.yml deleted file mode 100644 index 76203eac134..00000000000 --- a/.readthedocs.yml +++ /dev/null @@ -1,14 +0,0 @@ -version: 2 - -sphinx: - configuration: doc/read-the-docs-site/conf.py - -build: - os: "ubuntu-22.04" - tools: - # This means "latest version 3", which seems fine - python: "3" - -python: - install: - - requirements: doc/read-the-docs-site/requirements.txt diff --git a/CONTRIBUTING.adoc b/CONTRIBUTING.adoc index 8811bb966f6..1d4e69a666e 100644 --- a/CONTRIBUTING.adoc +++ b/CONTRIBUTING.adoc @@ -415,7 +415,7 @@ The amount of time it's worth spending doing this is probably much more than you PRs should target `master` unless there is a very good reason not to. The only PRs to release branches should be backport PRs which should consist only of cherry-picks of commits from master (and any fixups that are needed). -For more details, see link:./doc/read-the-docs-site/RELEASE{outfilesuffix}[Plutus Release Process]. +For more details, see link:./RELEASE{outfilesuffix}[Plutus Release Process]. ==== What changes to include, and pull request sizes @@ -605,12 +605,10 @@ If your PR contains a dozen drive-by refactorings, it's unlikely to be merged as === Continuous integration -We have a few sources of CI checks at the moment: +We have two sources of CI checks at the moment: - Hydra -- ReadTheDocs - Github Actions -- Buildkite The CI will report statuses on your PRs with links to the logs in case of failure. Pull requests cannot be merged without at least the Hydra CI check being green. @@ -632,16 +630,11 @@ These will be automatically retried, but if you're in a hurry Michael has permis Nondeterministic failures are very annoying. Michael also has permissions to restart failed builds. -==== ReadTheDocs +==== Docusaurus -The documentation site is built on ReadTheDocs. -It will build a preview for each PR which is linked from the PR status. -It's useful to take a look if you're changing any of the documentation. +The documentation site is built with Docusaurus. -Enter the development shell using `nix develop`. -If you get a segfault, run `GC_DONT_GC=1 nix develop` instead. - -Then you can run `serve-docs` to host a local instance at http://0.0.0.0:8002 (Haddock is at http://0.0.0.0:8002/haddock). +Refer to the [README.md](doc/docusaurus/README.md) for more information. ==== Github Actions diff --git a/README.adoc b/README.adoc index d693fa9523e..cd7f1bbcec3 100644 --- a/README.adoc +++ b/README.adoc @@ -42,9 +42,11 @@ After setting it up you should just be able to depend on the `plutus` packages a === User documentation -The main documentation is located https://intersectmbo.github.io/plutus/master/docs/[here]. +The main documentation is located https://intersectmbo.github.io/plutus/docs/[here]. -The latest documentation for the metatheory can be found https://ci.iog.io/job/input-output-hk-plutus/master/x86_64-linux.packages.plutus-metatheory-site/latest/download/1[here]. +The haddock documentation is located https://intersectmbo.github.io/plutus/haddock/[here]. + +The documentation for the metatheory can be found https://intersectmbo.github.io/plutus/metatheory/[here]. === Talks diff --git a/cabal.project b/cabal.project index fbdc55dea12..c18b2e88175 100644 --- a/cabal.project +++ b/cabal.project @@ -18,8 +18,7 @@ index-state: -- Bump this if you need newer packages from CHaP , cardano-haskell-packages 2024-01-16T11:00:00Z -packages: doc/read-the-docs-site - plutus-benchmark +packages: plutus-benchmark plutus-conformance plutus-core plutus-ledger-api diff --git a/docusaurus/.gitignore b/doc/docusaurus/.gitignore similarity index 100% rename from docusaurus/.gitignore rename to doc/docusaurus/.gitignore diff --git a/docusaurus/README.md b/doc/docusaurus/README.md similarity index 65% rename from docusaurus/README.md rename to doc/docusaurus/README.md index ba50651e8e0..a0bfb9ebdd6 100644 --- a/docusaurus/README.md +++ b/doc/docusaurus/README.md @@ -26,16 +26,6 @@ This command generates static content into the `build` directory and can be serv ### Deployment -Using SSH: +Go to the [docusaurus-site.yml](https://github.com/IntersectMBO/plutus/actions/workflows/docusaurus-site.yml) workflow and click `Run workflow` on the right. -``` -$ USE_SSH=true yarn deploy -``` - -Not using SSH: - -``` -$ GIT_USER= yarn deploy -``` - -If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. +This will build and publish the website to the `gh-pages` branch at https://intersectmbo.github.io/plutus/docs. \ No newline at end of file diff --git a/docusaurus/babel.config.js b/doc/docusaurus/babel.config.js similarity index 100% rename from docusaurus/babel.config.js rename to doc/docusaurus/babel.config.js diff --git a/docusaurus/docs/adr/_category_.json b/doc/docusaurus/docs/adr/_category_.json similarity index 100% rename from docusaurus/docs/adr/_category_.json rename to doc/docusaurus/docs/adr/_category_.json diff --git a/docusaurus/docs/adr/adr-index.md b/doc/docusaurus/docs/adr/adr-index.md similarity index 100% rename from docusaurus/docs/adr/adr-index.md rename to doc/docusaurus/docs/adr/adr-index.md diff --git a/docusaurus/docs/adr/adr1.md b/doc/docusaurus/docs/adr/adr1.md similarity index 100% rename from docusaurus/docs/adr/adr1.md rename to doc/docusaurus/docs/adr/adr1.md diff --git a/docusaurus/docs/adr/adr2.md b/doc/docusaurus/docs/adr/adr2.md similarity index 100% rename from docusaurus/docs/adr/adr2.md rename to doc/docusaurus/docs/adr/adr2.md diff --git a/docusaurus/docs/adr/adr3.md b/doc/docusaurus/docs/adr/adr3.md similarity index 100% rename from docusaurus/docs/adr/adr3.md rename to doc/docusaurus/docs/adr/adr3.md diff --git a/docusaurus/docs/adr/adr4.md b/doc/docusaurus/docs/adr/adr4.md similarity index 100% rename from docusaurus/docs/adr/adr4.md rename to doc/docusaurus/docs/adr/adr4.md diff --git a/docusaurus/docs/essential-concepts/_category_.json b/doc/docusaurus/docs/essential-concepts/_category_.json similarity index 100% rename from docusaurus/docs/essential-concepts/_category_.json rename to doc/docusaurus/docs/essential-concepts/_category_.json diff --git a/docusaurus/docs/essential-concepts/language-versions.md b/doc/docusaurus/docs/essential-concepts/language-versions.md similarity index 100% rename from docusaurus/docs/essential-concepts/language-versions.md rename to doc/docusaurus/docs/essential-concepts/language-versions.md diff --git a/docusaurus/docs/essential-concepts/ledger.md b/doc/docusaurus/docs/essential-concepts/ledger.md similarity index 100% rename from docusaurus/docs/essential-concepts/ledger.md rename to doc/docusaurus/docs/essential-concepts/ledger.md diff --git a/docusaurus/docs/essential-concepts/plutus-foundation.md b/doc/docusaurus/docs/essential-concepts/plutus-foundation.md similarity index 100% rename from docusaurus/docs/essential-concepts/plutus-foundation.md rename to doc/docusaurus/docs/essential-concepts/plutus-foundation.md diff --git a/docusaurus/docs/essential-concepts/plutus-platform.mdx b/doc/docusaurus/docs/essential-concepts/plutus-platform.mdx similarity index 100% rename from docusaurus/docs/essential-concepts/plutus-platform.mdx rename to doc/docusaurus/docs/essential-concepts/plutus-platform.mdx diff --git a/docusaurus/docs/getting-started-plutus-tx.md b/doc/docusaurus/docs/getting-started-plutus-tx.md similarity index 91% rename from docusaurus/docs/getting-started-plutus-tx.md rename to doc/docusaurus/docs/getting-started-plutus-tx.md index 29ae63d3201..cc3ae56e72b 100644 --- a/docusaurus/docs/getting-started-plutus-tx.md +++ b/doc/docusaurus/docs/getting-started-plutus-tx.md @@ -28,4 +28,4 @@ Use `cardano-cli` to deploy your script. Use an off-chain framework, such as [cardano-transaction-lib](https://github.com/Plutonomicon/cardano-transaction-lib) and [lucid](https://github.com/spacebudz/lucid), to interact with your script. -All these are based on the [Cardano API](https://github.com/IntersectMBO/cardano-node/tree/master/cardano-api), a low-level API that provides the capability to do the off-chain work with a local running node. +All these are based on the [Cardano API](https://github.com/IntersectMBO/cardano-api), a low-level API that provides the capability to do the off-chain work with a local running node. diff --git a/docusaurus/docs/index.md b/doc/docusaurus/docs/index.md similarity index 100% rename from docusaurus/docs/index.md rename to doc/docusaurus/docs/index.md diff --git a/docusaurus/docs/reference/_category_.json b/doc/docusaurus/docs/reference/_category_.json similarity index 100% rename from docusaurus/docs/reference/_category_.json rename to doc/docusaurus/docs/reference/_category_.json diff --git a/docusaurus/docs/reference/common-weaknesses.md b/doc/docusaurus/docs/reference/common-weaknesses.md similarity index 100% rename from docusaurus/docs/reference/common-weaknesses.md rename to doc/docusaurus/docs/reference/common-weaknesses.md diff --git a/docusaurus/docs/reference/cost-model-parameters.md b/doc/docusaurus/docs/reference/cost-model-parameters.md similarity index 100% rename from docusaurus/docs/reference/cost-model-parameters.md rename to doc/docusaurus/docs/reference/cost-model-parameters.md diff --git a/docusaurus/docs/reference/examples.md b/doc/docusaurus/docs/reference/examples.md similarity index 100% rename from docusaurus/docs/reference/examples.md rename to doc/docusaurus/docs/reference/examples.md diff --git a/docusaurus/docs/reference/further-resources.md b/doc/docusaurus/docs/reference/further-resources.md similarity index 100% rename from docusaurus/docs/reference/further-resources.md rename to doc/docusaurus/docs/reference/further-resources.md diff --git a/docusaurus/docs/reference/glossary.md b/doc/docusaurus/docs/reference/glossary.md similarity index 100% rename from docusaurus/docs/reference/glossary.md rename to doc/docusaurus/docs/reference/glossary.md diff --git a/docusaurus/docs/reference/haddock-documentation.md b/doc/docusaurus/docs/reference/haddock-documentation.md similarity index 100% rename from docusaurus/docs/reference/haddock-documentation.md rename to doc/docusaurus/docs/reference/haddock-documentation.md diff --git a/docusaurus/docs/reference/plutus-language-changes.md b/doc/docusaurus/docs/reference/plutus-language-changes.md similarity index 100% rename from docusaurus/docs/reference/plutus-language-changes.md rename to doc/docusaurus/docs/reference/plutus-language-changes.md diff --git a/docusaurus/docs/reference/plutus-tx-compiler-options.md b/doc/docusaurus/docs/reference/plutus-tx-compiler-options.md similarity index 100% rename from docusaurus/docs/reference/plutus-tx-compiler-options.md rename to doc/docusaurus/docs/reference/plutus-tx-compiler-options.md diff --git a/docusaurus/docs/reference/script-optimization-techniques.md b/doc/docusaurus/docs/reference/script-optimization-techniques.md similarity index 100% rename from docusaurus/docs/reference/script-optimization-techniques.md rename to doc/docusaurus/docs/reference/script-optimization-techniques.md diff --git a/docusaurus/docs/reference/upgrade-vasil-plutus-script-addresses.md b/doc/docusaurus/docs/reference/upgrade-vasil-plutus-script-addresses.md similarity index 100% rename from docusaurus/docs/reference/upgrade-vasil-plutus-script-addresses.md rename to doc/docusaurus/docs/reference/upgrade-vasil-plutus-script-addresses.md diff --git a/docusaurus/docs/simple-example/_category_.json b/doc/docusaurus/docs/simple-example/_category_.json similarity index 100% rename from docusaurus/docs/simple-example/_category_.json rename to doc/docusaurus/docs/simple-example/_category_.json diff --git a/docusaurus/docs/simple-example/alternatives-to-plutus-tx.md b/doc/docusaurus/docs/simple-example/alternatives-to-plutus-tx.md similarity index 100% rename from docusaurus/docs/simple-example/alternatives-to-plutus-tx.md rename to doc/docusaurus/docs/simple-example/alternatives-to-plutus-tx.md diff --git a/docusaurus/docs/simple-example/auction-properties.md b/doc/docusaurus/docs/simple-example/auction-properties.md similarity index 100% rename from docusaurus/docs/simple-example/auction-properties.md rename to doc/docusaurus/docs/simple-example/auction-properties.md diff --git a/docusaurus/docs/simple-example/eutxo-model.md b/doc/docusaurus/docs/simple-example/eutxo-model.md similarity index 100% rename from docusaurus/docs/simple-example/eutxo-model.md rename to doc/docusaurus/docs/simple-example/eutxo-model.md diff --git a/docusaurus/docs/simple-example/further-reading.md b/doc/docusaurus/docs/simple-example/further-reading.md similarity index 100% rename from docusaurus/docs/simple-example/further-reading.md rename to doc/docusaurus/docs/simple-example/further-reading.md diff --git a/docusaurus/docs/simple-example/libraries.md b/doc/docusaurus/docs/simple-example/libraries.md similarity index 100% rename from docusaurus/docs/simple-example/libraries.md rename to doc/docusaurus/docs/simple-example/libraries.md diff --git a/docusaurus/docs/simple-example/life-cycle.md b/doc/docusaurus/docs/simple-example/life-cycle.md similarity index 100% rename from docusaurus/docs/simple-example/life-cycle.md rename to doc/docusaurus/docs/simple-example/life-cycle.md diff --git a/docusaurus/docs/simple-example/off-chain-code.md b/doc/docusaurus/docs/simple-example/off-chain-code.md similarity index 84% rename from docusaurus/docs/simple-example/off-chain-code.md rename to doc/docusaurus/docs/simple-example/off-chain-code.md index 779d66a0b89..e083f422e63 100644 --- a/docusaurus/docs/simple-example/off-chain-code.md +++ b/doc/docusaurus/docs/simple-example/off-chain-code.md @@ -8,10 +8,10 @@ Since the main purpose of this example is to introduce Plutus Tx and Plutus Core In addition to the on-chain code, one typically needs the accompanying off-chain code and services to perform tasks like building transactions, submitting transactions, deploying smart contracts, querying for available UTXOs on the chain, etc. - + A full suite of solutions is [in development](https://plutus-apps.readthedocs.io/en/latest/plutus/explanations/plutus-tools-component-descriptions.html). See the [plutus-apps](https://github.com/IntersectMBO/plutus-apps) repo and its accompanying [Plutus tools SDK user guide](https://plutus-apps.readthedocs.io/en/latest/) for more details. Some other alternatives include [cardano-transaction-lib](https://github.com/Plutonomicon/cardano-transaction-lib) and [lucid](https://github.com/spacebudz/lucid). -All these are based on the [Cardano API](https://github.com/IntersectMBO/cardano-node/tree/master/cardano-api), a low-level API that provides the capability to do the off-chain work with a local running node. +All these are based on the [Cardano API](https://github.com/IntersectMBO/cardano-api), a low-level API that provides the capability to do the off-chain work with a local running node. diff --git a/docusaurus/docs/simple-example/plutus-tx-code.md b/doc/docusaurus/docs/simple-example/plutus-tx-code.md similarity index 99% rename from docusaurus/docs/simple-example/plutus-tx-code.md rename to doc/docusaurus/docs/simple-example/plutus-tx-code.md index 1a975b09499..30a970ee07b 100644 --- a/docusaurus/docs/simple-example/plutus-tx-code.md +++ b/doc/docusaurus/docs/simple-example/plutus-tx-code.md @@ -7,7 +7,7 @@ sidebar_position: 20 Recall that Plutus Tx is a subset of Haskell. It is the source language one uses to write Plutus validators. A Plutus Tx program is compiled into Plutus Core, which is interpreted on-chain. -The full Plutus Tx code for the auction smart contract can be found at [AuctionValidator.hs](https://github.com/IntersectMBO/plutus/blob/master/doc/read-the-docs-site/tutorials/AuctionValidator.hs). +The full Plutus Tx code for the auction smart contract can be found at [AuctionValidator.hs](https://github.com/IntersectMBO/plutus-tx-template/blob/main/app/AuctionValidator.hs). diff --git a/docusaurus/docs/simple-example/simple-example.md b/doc/docusaurus/docs/simple-example/simple-example.md similarity index 100% rename from docusaurus/docs/simple-example/simple-example.md rename to doc/docusaurus/docs/simple-example/simple-example.md diff --git a/docusaurus/docs/troubleshooting.md b/doc/docusaurus/docs/troubleshooting.md similarity index 100% rename from docusaurus/docs/troubleshooting.md rename to doc/docusaurus/docs/troubleshooting.md diff --git a/docusaurus/docs/using-plutus-tx/_category_.json b/doc/docusaurus/docs/using-plutus-tx/_category_.json similarity index 100% rename from docusaurus/docs/using-plutus-tx/_category_.json rename to doc/docusaurus/docs/using-plutus-tx/_category_.json diff --git a/docusaurus/docs/using-plutus-tx/advanced-plutus-tx-concepts/_category_.json b/doc/docusaurus/docs/using-plutus-tx/advanced-plutus-tx-concepts/_category_.json similarity index 100% rename from docusaurus/docs/using-plutus-tx/advanced-plutus-tx-concepts/_category_.json rename to doc/docusaurus/docs/using-plutus-tx/advanced-plutus-tx-concepts/_category_.json diff --git a/docusaurus/docs/using-plutus-tx/advanced-plutus-tx-concepts/optimizing-scripts-with-asData.md b/doc/docusaurus/docs/using-plutus-tx/advanced-plutus-tx-concepts/optimizing-scripts-with-asData.md similarity index 100% rename from docusaurus/docs/using-plutus-tx/advanced-plutus-tx-concepts/optimizing-scripts-with-asData.md rename to doc/docusaurus/docs/using-plutus-tx/advanced-plutus-tx-concepts/optimizing-scripts-with-asData.md diff --git a/docusaurus/docs/using-plutus-tx/advanced-plutus-tx-concepts/triggering-a-validation-failure.md b/doc/docusaurus/docs/using-plutus-tx/advanced-plutus-tx-concepts/triggering-a-validation-failure.md similarity index 100% rename from docusaurus/docs/using-plutus-tx/advanced-plutus-tx-concepts/triggering-a-validation-failure.md rename to doc/docusaurus/docs/using-plutus-tx/advanced-plutus-tx-concepts/triggering-a-validation-failure.md diff --git a/docusaurus/docs/using-plutus-tx/compiling-plutus-tx.md b/doc/docusaurus/docs/using-plutus-tx/compiling-plutus-tx.md similarity index 100% rename from docusaurus/docs/using-plutus-tx/compiling-plutus-tx.md rename to doc/docusaurus/docs/using-plutus-tx/compiling-plutus-tx.md diff --git a/docusaurus/docs/using-plutus-tx/overview-plutus-tx.md b/doc/docusaurus/docs/using-plutus-tx/overview-plutus-tx.md similarity index 100% rename from docusaurus/docs/using-plutus-tx/overview-plutus-tx.md rename to doc/docusaurus/docs/using-plutus-tx/overview-plutus-tx.md diff --git a/docusaurus/docs/using-plutus-tx/producing-a-blueprint.md b/doc/docusaurus/docs/using-plutus-tx/producing-a-blueprint.md similarity index 100% rename from docusaurus/docs/using-plutus-tx/producing-a-blueprint.md rename to doc/docusaurus/docs/using-plutus-tx/producing-a-blueprint.md diff --git a/docusaurus/docs/using-plutus-tx/writing-plutus-tx-programs.md b/doc/docusaurus/docs/using-plutus-tx/writing-plutus-tx-programs.md similarity index 100% rename from docusaurus/docs/using-plutus-tx/writing-plutus-tx-programs.md rename to doc/docusaurus/docs/using-plutus-tx/writing-plutus-tx-programs.md diff --git a/docusaurus/docs/working-with-scripts/_category_.json b/doc/docusaurus/docs/working-with-scripts/_category_.json similarity index 100% rename from docusaurus/docs/working-with-scripts/_category_.json rename to doc/docusaurus/docs/working-with-scripts/_category_.json diff --git a/docusaurus/docs/working-with-scripts/exporting-scripts-datums-redeemers.md b/doc/docusaurus/docs/working-with-scripts/exporting-scripts-datums-redeemers.md similarity index 100% rename from docusaurus/docs/working-with-scripts/exporting-scripts-datums-redeemers.md rename to doc/docusaurus/docs/working-with-scripts/exporting-scripts-datums-redeemers.md diff --git a/docusaurus/docs/working-with-scripts/profiling-budget-usage.md b/doc/docusaurus/docs/working-with-scripts/profiling-budget-usage.md similarity index 100% rename from docusaurus/docs/working-with-scripts/profiling-budget-usage.md rename to doc/docusaurus/docs/working-with-scripts/profiling-budget-usage.md diff --git a/docusaurus/docs/working-with-scripts/writing-basic-minting-policies.md b/doc/docusaurus/docs/working-with-scripts/writing-basic-minting-policies.md similarity index 100% rename from docusaurus/docs/working-with-scripts/writing-basic-minting-policies.md rename to doc/docusaurus/docs/working-with-scripts/writing-basic-minting-policies.md diff --git a/docusaurus/docs/working-with-scripts/writing-basic-validator-scripts.md b/doc/docusaurus/docs/working-with-scripts/writing-basic-validator-scripts.md similarity index 100% rename from docusaurus/docs/working-with-scripts/writing-basic-validator-scripts.md rename to doc/docusaurus/docs/working-with-scripts/writing-basic-validator-scripts.md diff --git a/docusaurus/docusaurus.config.ts b/doc/docusaurus/docusaurus.config.ts similarity index 97% rename from docusaurus/docusaurus.config.ts rename to doc/docusaurus/docusaurus.config.ts index 3bdfc27ebff..92812868b3c 100644 --- a/docusaurus/docusaurus.config.ts +++ b/doc/docusaurus/docusaurus.config.ts @@ -8,10 +8,10 @@ const config: Config = { favicon: "img/favicon.ico", // Set the production url of your site here - url: "https://plutus.readthedocs.io", + url: "https://intersectmbo.github.io", // Set the // pathname under which your site is served // For GitHub pages deployment, it is often '//' - baseUrl: "/plutus/master/docs/", + baseUrl: "/plutus/docs/", // GitHub pages deployment config. // If you aren't using GitHub pages, you don't need these. diff --git a/docusaurus/package.json b/doc/docusaurus/package.json similarity index 100% rename from docusaurus/package.json rename to doc/docusaurus/package.json diff --git a/docusaurus/sidebars.ts b/doc/docusaurus/sidebars.ts similarity index 100% rename from docusaurus/sidebars.ts rename to doc/docusaurus/sidebars.ts diff --git a/docusaurus/src/components/CsvTable.tsx b/doc/docusaurus/src/components/CsvTable.tsx similarity index 100% rename from docusaurus/src/components/CsvTable.tsx rename to doc/docusaurus/src/components/CsvTable.tsx diff --git a/docusaurus/src/components/LiteralInclude.tsx b/doc/docusaurus/src/components/LiteralInclude.tsx similarity index 100% rename from docusaurus/src/components/LiteralInclude.tsx rename to doc/docusaurus/src/components/LiteralInclude.tsx diff --git a/docusaurus/src/css/custom.css b/doc/docusaurus/src/css/custom.css similarity index 100% rename from docusaurus/src/css/custom.css rename to doc/docusaurus/src/css/custom.css diff --git a/docusaurus/src/theme/Footer/index.js b/doc/docusaurus/src/theme/Footer/index.js similarity index 100% rename from docusaurus/src/theme/Footer/index.js rename to doc/docusaurus/src/theme/Footer/index.js diff --git a/docusaurus/src/theme/MDXComponents.ts b/doc/docusaurus/src/theme/MDXComponents.ts similarity index 100% rename from docusaurus/src/theme/MDXComponents.ts rename to doc/docusaurus/src/theme/MDXComponents.ts diff --git a/docusaurus/static/.nojekyll b/doc/docusaurus/static/.nojekyll similarity index 100% rename from docusaurus/static/.nojekyll rename to doc/docusaurus/static/.nojekyll diff --git a/docusaurus/static/code/AuctionValidator.hs b/doc/docusaurus/static/code/AuctionValidator.hs similarity index 100% rename from docusaurus/static/code/AuctionValidator.hs rename to doc/docusaurus/static/code/AuctionValidator.hs diff --git a/doc/read-the-docs-site/tutorials/BasicPlutusTx.hs b/doc/docusaurus/static/code/BasicPlutusTx.hs similarity index 100% rename from doc/read-the-docs-site/tutorials/BasicPlutusTx.hs rename to doc/docusaurus/static/code/BasicPlutusTx.hs diff --git a/docusaurus/static/code/BasicPolicies.hs b/doc/docusaurus/static/code/BasicPolicies.hs similarity index 100% rename from docusaurus/static/code/BasicPolicies.hs rename to doc/docusaurus/static/code/BasicPolicies.hs diff --git a/docusaurus/static/code/BasicValidators.hs b/doc/docusaurus/static/code/BasicValidators.hs similarity index 100% rename from docusaurus/static/code/BasicValidators.hs rename to doc/docusaurus/static/code/BasicValidators.hs diff --git a/docusaurus/static/code/Cip57Blueprint.hs b/doc/docusaurus/static/code/Cip57Blueprint.hs similarity index 100% rename from docusaurus/static/code/Cip57Blueprint.hs rename to doc/docusaurus/static/code/Cip57Blueprint.hs diff --git a/doc/read-the-docs-site/tutorials/QuickStart.hs b/doc/docusaurus/static/code/QuickStart.hs similarity index 100% rename from doc/read-the-docs-site/tutorials/QuickStart.hs rename to doc/docusaurus/static/code/QuickStart.hs diff --git a/doc/read-the-docs-site/howtos/plutus.json b/doc/docusaurus/static/code/plutus.json similarity index 100% rename from doc/read-the-docs-site/howtos/plutus.json rename to doc/docusaurus/static/code/plutus.json diff --git a/doc/read-the-docs-site/reference/cardano/builtin-parameters.csv b/doc/docusaurus/static/csv/builtin-parameters.csv similarity index 100% rename from doc/read-the-docs-site/reference/cardano/builtin-parameters.csv rename to doc/docusaurus/static/csv/builtin-parameters.csv diff --git a/doc/read-the-docs-site/reference/cardano/machine-parameters.csv b/doc/docusaurus/static/csv/machine-parameters.csv similarity index 100% rename from doc/read-the-docs-site/reference/cardano/machine-parameters.csv rename to doc/docusaurus/static/csv/machine-parameters.csv diff --git a/doc/read-the-docs-site/closing-tx-simple-auction-v3.png b/doc/docusaurus/static/img/closing-tx-simple-auction-v3.png similarity index 100% rename from doc/read-the-docs-site/closing-tx-simple-auction-v3.png rename to doc/docusaurus/static/img/closing-tx-simple-auction-v3.png diff --git a/docusaurus/static/img/docusaurus-social-card.png b/doc/docusaurus/static/img/docusaurus-social-card.png similarity index 100% rename from docusaurus/static/img/docusaurus-social-card.png rename to doc/docusaurus/static/img/docusaurus-social-card.png diff --git a/doc/read-the-docs-site/reference/writing-scripts/common-weaknesses/double-satisfaction.png b/doc/docusaurus/static/img/double-satisfaction.png similarity index 100% rename from doc/read-the-docs-site/reference/writing-scripts/common-weaknesses/double-satisfaction.png rename to doc/docusaurus/static/img/double-satisfaction.png diff --git a/docusaurus/static/img/favicon.ico b/doc/docusaurus/static/img/favicon.ico similarity index 100% rename from docusaurus/static/img/favicon.ico rename to doc/docusaurus/static/img/favicon.ico diff --git a/doc/read-the-docs-site/first-bid-simple-auction-v3.png b/doc/docusaurus/static/img/first-bid-simple-auction-v3.png similarity index 100% rename from doc/read-the-docs-site/first-bid-simple-auction-v3.png rename to doc/docusaurus/static/img/first-bid-simple-auction-v3.png diff --git a/docusaurus/static/img/github.svg b/doc/docusaurus/static/img/github.svg similarity index 100% rename from docusaurus/static/img/github.svg rename to doc/docusaurus/static/img/github.svg diff --git a/docusaurus/static/img/logo-footer.svg b/doc/docusaurus/static/img/logo-footer.svg similarity index 100% rename from docusaurus/static/img/logo-footer.svg rename to doc/docusaurus/static/img/logo-footer.svg diff --git a/docusaurus/static/img/logo.svg b/doc/docusaurus/static/img/logo.svg similarity index 100% rename from docusaurus/static/img/logo.svg rename to doc/docusaurus/static/img/logo.svg diff --git a/doc/read-the-docs-site/explanations/platform-architecture.png b/doc/docusaurus/static/img/platform-architecture.png similarity index 100% rename from doc/read-the-docs-site/explanations/platform-architecture.png rename to doc/docusaurus/static/img/platform-architecture.png diff --git a/doc/read-the-docs-site/second-bid-simple-auction-v3.png b/doc/docusaurus/static/img/second-bid-simple-auction-v3.png similarity index 100% rename from doc/read-the-docs-site/second-bid-simple-auction-v3.png rename to doc/docusaurus/static/img/second-bid-simple-auction-v3.png diff --git a/docusaurus/tsconfig.json b/doc/docusaurus/tsconfig.json similarity index 100% rename from docusaurus/tsconfig.json rename to doc/docusaurus/tsconfig.json diff --git a/docusaurus/yarn.lock b/doc/docusaurus/yarn.lock similarity index 100% rename from docusaurus/yarn.lock rename to doc/docusaurus/yarn.lock diff --git a/doc/read-the-docs-site/.gitignore b/doc/read-the-docs-site/.gitignore deleted file mode 100644 index e35d8850c96..00000000000 --- a/doc/read-the-docs-site/.gitignore +++ /dev/null @@ -1 +0,0 @@ -_build diff --git a/doc/read-the-docs-site/LICENSE b/doc/read-the-docs-site/LICENSE deleted file mode 100644 index 0c8a80022ea..00000000000 --- a/doc/read-the-docs-site/LICENSE +++ /dev/null @@ -1,53 +0,0 @@ -Apache License - -Version 2.0, January 2004 - -http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of this License; and -You must cause any modified files to carry prominent notices stating that You changed the files; and -You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and -If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - -You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. -5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS diff --git a/doc/read-the-docs-site/NOTICE b/doc/read-the-docs-site/NOTICE deleted file mode 100644 index 7bfbc260968..00000000000 --- a/doc/read-the-docs-site/NOTICE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright 2023 Input Output Global, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/doc/read-the-docs-site/README.md b/doc/read-the-docs-site/README.md index 874d8749230..7d537985e9b 100644 --- a/doc/read-the-docs-site/README.md +++ b/doc/read-the-docs-site/README.md @@ -1,18 +1,16 @@ -# Plutus documentation site +# Read The Docs Site -This is a sphinx site. +As of 20-06-2024, the plutus `readthedocs` site, previously hosted at: +``` +https://plutus.readthedocs.io +``` +Is now permanently redirecting to: +``` +https://intersectmbo.github.io/plutus/docs +``` +Using the [Exact Redirect](https://readthedocs.org/dashboard/plutus/redirects/): +``` +/* -> https://intersectmbo.github.io/plutus/docs +``` +And the [GitHub Webhook](https://readthedocs.org/dashboard/plutus/webhooks/) has been deleted. -Run `nix develop` to enter a development shell with `sphinx-build` and `sphinx-autobuild`. - -The following commands are also available: - -- `develop-rtd-site` - Start a development server with live reload on `http://localhost:8000` -- `build-rtd-site` - Build the docs locally in `_build/index.html` -- `serve-rtd-site` - Build the full site with nix (including Haddock) and serve it on `http://localhost:8002` - -The doc site from main is built automatically and hosted [here](https://plutus.readthedocs.io/en/latest). - -Additionally, the site is built for all PRs, and a link to a preview can be found in the PR statuses. diff --git a/doc/read-the-docs-site/_static/.gitkeep b/doc/read-the-docs-site/_static/.gitkeep deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/doc/read-the-docs-site/_static/theme_overrides.css b/doc/read-the-docs-site/_static/theme_overrides.css deleted file mode 100644 index 44a0fd7699b..00000000000 --- a/doc/read-the-docs-site/_static/theme_overrides.css +++ /dev/null @@ -1,6 +0,0 @@ -/* Fix table wrapping https://github.com/readthedocs/sphinx_rtd_theme/issues/117 */ -@media screen and (min-width: 768px) { - .wy-table-responsive table td, .wy-table-responsive table th { - white-space: normal !important; - } -} diff --git a/doc/read-the-docs-site/_templates/.gitkeep b/doc/read-the-docs-site/_templates/.gitkeep deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/doc/read-the-docs-site/adr/0001-record-architecture-decisions.rst b/doc/read-the-docs-site/adr/0001-record-architecture-decisions.rst deleted file mode 100644 index 69290383797..00000000000 --- a/doc/read-the-docs-site/adr/0001-record-architecture-decisions.rst +++ /dev/null @@ -1,167 +0,0 @@ -ADR 1: Record architectural decisions -======================================= - -Date: 2022-06-08 - -Authors ---------- - -koslambrou - -Status ------- - -Accepted - -Context -------- - -We are in search for a means to document our architectural and design decisions -for all of our components. -In order to do that, there is practice called architectural decision records ("ADR"), -that we can integrate into our workflow. - -This does not replace actual architecture documentation, but provides people who are contributing: - -* the means to understand architectural and design decisions that were made -* a framework for proposing changes to the current architecture - -For each decision, it is important to consider the following factors: - -* what we have decided to do -* why we have made this decision -* what we expect the impact of this decision to be -* what we have learned in the process - -As we're already using `rST `_, -`Sphinxdoc `_ and -`readthedocs `_, it would be practical to -integrate these ADRs as part of our current documentation infrastructure. - -Decision --------- - -* We will use ADRs to document, propose and discuss - any important or significant architectural and design decisions. - -* The ADR format will follow the format described in `Implications`_ section. - -* We will follow the convention of storing those ADRs as rST or Markdown formatted - documents stored under the `docs/adr` directory, as exemplified in Nat Pryce's - `adr-tools `_. This does not imply that we will - be using `adr-tools` itself, as we might diverge from the proposed structure. - -* We will keep rejected ADRs - -* We will strive, if possible, to create an ADR as early as possible in relation to the actual - implementation. - -Implications ------------- - -ADRs should be written using the template described in the `ADR template`_ which comes from -Chapter 6.5.2 (*A Template for Documenting Architectural Decisions*) of -*Documenting Software Architectures: Views and Beyond (2nd Edition)*. - -However, the mandatory sections are *Title*, *Status*, *Issue/Context*, *Decision*, *Implications/Consequences*. -The rest are optional. - -Another good reference is the article -`Architecture Decision Records `_ -by Michael Nygard (Nov. 15, 2011). - -ADR template -^^^^^^^^^^^^ - -What follows is the ADR format (adapted from the book). - -+----------------------+---------------------------------------------------------------------------+ -| Section | Description | -+======================+===========================================================================+ -| Title | These documents have names that are short noun phrases. | -| | | -| | For example, "ADR 1: Deployment on Ruby on Rails 3.0.10" | -| | or "ADR 9: LDAP for Multitenant Integration" | -+----------------------+---------------------------------------------------------------------------+ -| Authors | List each author's name and email. | -+----------------------+---------------------------------------------------------------------------+ -| Status | State the status of the decision, such as "draft" if the decision is | -| | still being written, as "proposed" if the project stakeholders haven't | -| | agreed with it yet, "accepted" once it is agreed. If a later ADR changes | -| | or reverses a decision, it may be marked as "deprecated" or "superseded" | -| | with a reference to its replacement. (This is not the status of | -| | implementing the decision.) | -+----------------------+---------------------------------------------------------------------------+ -| Issue (or context) | This section describes the architectural design issue being addressed. | -| | This description should leave no questions as to why this issue needs to | -| | be addressed now. The language in this section is value-neutral. It is | -| | simply describing facts. | -+----------------------+---------------------------------------------------------------------------+ -| Decision | Clearly state the solution chosen. It is the selection of one of the | -| | positions that the architect could have taken. It is stated in full | -| | sentences, with active voice. "We will …" | -+----------------------+---------------------------------------------------------------------------+ -| Tags | Add one or more tags to the decision. Useful for organizing the set of | -| | decision. | -+----------------------+---------------------------------------------------------------------------+ -| Assumptions | Clearly describe the underlying assumptions in the environment in which a | -| | decision is being made. These could be cost, schedule, technology, and so | -| | on. Note that constraints in the environment (such as a list of accepted | -| | technology standards, an enterprise architecture, or commonly employed | -| | patterns) may limit the set of alternatives considered. | -+----------------------+---------------------------------------------------------------------------+ -| Argument | Outline why a position was selected. This is probably as important as the | -| | decision itself. The argument for a decision can include items such as | -| | implementation cost, total cost of ownership, time to market, and | -| | availability of required development resources. | -+----------------------+---------------------------------------------------------------------------+ -| Alternatives | List alternatives (that is, options or positions) considered. | -| | | -| | Explain alternatives with sufficient detail to judge their suitability; | -| | refer to external documentation to do so if necessary. Only viable | -| | positions should be described here. While you don’t need an exhaustive | -| | list, you also don’t want to hear the question “Did you think about... ?” | -| | during a final review, which might lead to a loss of credibility and a | -| | questioning of other architectural decisions. Listing alternatives | -| | espoused by others also helps them know that their opinions were heard. | -| | Finally, listing alternatives helps the architect make the right | -| | decision, because listing alternatives cannot be done unless those | -| | alternatives were given due consideration. | -+----------------------+---------------------------------------------------------------------------+ -| Implications | Describe the decision’s implications. For example, it may | -| (or consequences) | | -| | * Introduce a need to make other decisions | -| | * Create new requirements | -| | * Modify existing requirements | -| | * Pose additional constraints to the environment | -| | * Require renegotiation of scope | -| | * Require renegotiation of the schedule with the customers | -| | * Require additional training for the staff | -| | | -| | Clearly understanding and stating the implications of the decisions has | -| | been a very effective tool in gaining buy-in. All consequences should be | -| | listed here, not just the "positive" ones. A particular decision may have | -| | positive, negative, and neutral consequences, but all of them affect the | -| | team and project in the future. | -+----------------------+---------------------------------------------------------------------------+ -| Related Decisions | List decisions related to this one. Useful relations among decisions | -| | include causality (which decisions caused other ones), structure (showing | -| | decisions’ parents or children, corresponding to architecture elements at | -| | higher or lower levels), or temporality (which decisions came before or | -| | after others). | -+----------------------+---------------------------------------------------------------------------+ -| Related Requirements | Map decisions to objectives or requirements, to show accountability. Each | -| | architecture decision is assessed as to its contribution to each major | -| | objective. We can then assess how well the objective is met across all | -| | decisions, as part of an overall architecture evaluation. | -+----------------------+---------------------------------------------------------------------------+ -| Affected Artifacts | List the architecture elements and/or relations affected by this | -| | decision. You might also list the effects on other design or scope | -| | decisions, pointing to the documents where those decisions are described. | -| | You might also include external artifacts upstream and downstream of the | -| | architecture, as well as management artifacts such as budgets and | -| | schedules. | -+----------------------+---------------------------------------------------------------------------+ -| Notes | Capture notes and issues that are discussed during the decision process. | -| | They can be links to a external document, a PR, a Github issue, etc. | -+----------------------+---------------------------------------------------------------------------+ diff --git a/doc/read-the-docs-site/adr/0002-steppable-cek-machine.md b/doc/read-the-docs-site/adr/0002-steppable-cek-machine.md deleted file mode 100644 index 1305fe5042e..00000000000 --- a/doc/read-the-docs-site/adr/0002-steppable-cek-machine.md +++ /dev/null @@ -1,189 +0,0 @@ -# ADR 2: Steppable CEK machine - -Date: 2022-10 - -## Authors - -Marty Stumpf -Ziyang Liu - -## Status - -Proposed - -## Context - -In order to have a minimal viable product of a debugger for Plutus, we need a CEK machine that will give us more information for debugging than our current one. - -In order to provide debugging information for each evaluation step, we need a steppable CEK machine. Implementing the steppable CEK machine is a non-trivial task and involves some design decisions. One decision to make is about whether we can share the code between the production and the debugging machine. That is not the scope of this ADR. See the next ADR for that. - -This ADR proposes a design for an implementation of a steppable CEK machine. Of course, this doesn't mean that this is the final decision. This means that the next step for us is to prototype the machine in this way - which we have reasons to believe will go well. We may adjust our proposed approach depending on how the prototyping goes. - -## Decision - -This section describes the proposed implementation of the debugging machine. - -We first **abstract out the computation to "steps"** on our current machine. We then **implement a coroutine system** to add the debugging functionalities. - -### Abstracting out the computation to "steps" - -This abstraction has been implemented in [PR#4909](https://github.com/IntersectMBO/plutus/pull/4909/). - -The current machine inlined the steps. We separate each steps into separate functions. They all return a `CekState`: - -```haskell -data CekState uni fun = - -- the next state is computing - Computing WordArray (Context uni fun) (Closure uni fun) - -- the next state is returning - | Returning WordArray (Context uni fun) (CekValue uni fun) - -- evaluation finished - | Terminating (Term NamedDeBruijn uni fun ()) - -data Closure uni fun = - Closure (Term NamedDeBruijn uni fun ()) (CekValEnv uni fun) -``` - -The computing step is `computeCekStep` with the following signature: - -```haskell -computeCekStep - :: forall uni fun s - . (Ix fun, PrettyUni uni fun, GivenCekReqs uni fun s) - => WordArray - -> Context uni fun - -> Closure uni fun - -> CekM uni fun s (CekState uni fun) -``` - -Similarly for the returning step (`returnCekStep`). Then we link up all the steps with `continue`, and the machine behaves very similar to our current one: - -```haskell -continue :: forall uni fun s - . (Ix fun, PrettyUni uni fun, GivenCekReqs uni fun s) - => CekState uni fun - -> CekM uni fun s (Term NamedDeBruijn uni fun ()) -continue (Computing !unbudgetedSteps ctx (Closure term env)) = do - state <- computeCekStep unbudgetedSteps ctx env term - continue state -continue (Returning !unbudgetedSteps ctx val) = do - state <- returnCekStep unbudgetedSteps ctx val - continue state -continue (Terminating term) = pure term -``` - -### Coroutines in Haskell - -The next step is to add debugging capabilities between each step. To do so, we implement it as a *coroutine system*. A detailed introduction to coroutines in Haskell can be found in [Coroutine Pipelines](https://themonadreader.files.wordpress.com/2011/10/issue19.pdf). -This section gives a brief summary. - -A coroutine system is composed of multiple computations cooperatively passing data and control to one another. -In this instance, one computation is the user issuing commands like "step forward", and the other is the CEK machine processing the commands and performing actions like interpreting the script being debugged. -We'll refer to them as the "user computation" and the "machine computation" respectively. - -Coroutines in Haskell can be implemented using the free monad transformer, [FreeT](https://hackage.haskell.org/package/free/docs/Control-Monad-Trans-Free.html#t:FreeT). -The `Coroutine` type used in the above article is isomorphic to `FreeT`. - -To use `FreeT f m`, we need two things: a suspension functor `f`, and a base monad `m`. - -The suspension functor is a pattern functor that describes the ways the user computation can suspend and pass control to the machine computation. -Each constructor of the suspension functor should thus represent a user request, such as "step forward". -Constructors generally follow a `RequestType request (response -> a)` pattern. - -As an example, consider the following suspension functor (the `uni` and `fun` parameters are omitted for readability): - -```haskell -data RequestF a - = StepF CekState (CekState -> a) - | LogF Text a - | InputF (Command -> a) - deriving Functor -``` - -`StepF` passes a `CekState` to the machine computation and suspends, requesting the machine computation to progress one step, and send a `CekState` back. -`LogF` sends a `Text` to the machine computation (its response type is `()` and is omitted). -`InputF` requests a `Command` from the user. - -Note that this pattern is not limited to a single suspension functor and two computations. -Multiple suspension functors and computations can be composed using [coproducts](https://www.cambridge.org/core/services/aop-cambridge-core/content/view/14416CB20C4637164EA9F77097909409/S0956796808006758a.pdf/data-types-a-la-carte.pdf). - -The base monad `m` is the monad the machine computation runs in. -The machine computation interprets each request into an `m` action. -It is essentially a natural transformation from the suspension functor to `m`. This `m` will replace our current monad `CekM`. Although we can actually just use `CekM` in the steppable CEK machine when we add `IO` capabilities for debugging. This is because we can convert it to/from `IO` via `unsafeSTToIO` and `unsafeIOToST`. - -Suppose we define a type `SteppableCekM a` as our base monad `m`. -Then the machine computation can be implemented as the following request handler function: - -```haskell -handle :: RequestF a -> SteppableCekM a -handle = \case - StepF state k -> step state >>= pure . k - LogF text k -> log text >> pure k - InputF k -> input >>= pure . k -``` - -where `step state`, `log text` and `input` return `SteppableCekM` actions. `step` will likely correspond to `computeCekStep` and `returnCekStep` depending on the states. - -We can then use `handle` to construct a monad morphism, interpreting the user computation (a `FreeT` structure) into a `SteppableCekM` action: - -```haskell -runSteppableCek :: FreeT RequestF SteppableCekM a -> SteppableCekM a -runSteppableCek userAction = do - runFreeT userAction >>= \case - Pure res -> pure res - Free req -> handle req >>= runSteppableCek -``` - -To construct the user computation, `FreeT RequestF SteppableCekM`, we first provide helper functions for constructing `RequestF`s and lifting them into the `FreeT`: - -```haskell -stepF :: Monad m => CekState -> FreeT RequestF m CekState -stepF state = liftF (StepF state id) - -logF :: Monad m => Text -> FreeT RequestF m () -logF text = liftF (LogF text ()) - -inputF :: Monad m => FreeT RequestF m Command -inputF = liftF (InputF id) -``` - -then we can implement the user computation like this: - -```haskell -userComputation :: CekState -> FreeT RequestF SteppableCekM () - userComputation currentState = do - cmd <- inputF - case cmd of - Step -> do - logF "Received Step command" - mState <- stepF currentState - userComputation mState - ... -``` - -We enter the debugging mode with the input UPLC program or term to debug with `enterDebug`: - -```haskell -enterDebug :: UPLCTerm -> FreeT RequestF SteppableCekM () -enterDebug termToDebug = do - state <- stepF (Computing (toWordArray 0) NoFrame (Closure term Env.empty)) - userComputation state - ... -``` - -### Argument: coroutine system - -Why a coroutine system? In short, structuring the code this way will ease our future work. Some of the advantages are mentioned above already. Here is a summary: - -- The debugger is naturally a coroutine, where one routine is the user and the other is the CEK machine, and they take turns to suspend and pass data and control to each other in a debugging session. The literature has contributed a good way to design/implement a coroutine. It makes sense to implement a well studied design. -- We can probably reuse the same monad (`CekM`) in the steppable CEK machine, because we can convert it to/from `IO` via `unsafeSTToIO` and `unsafeIOToST`. -- It should be easier when we add more functionalities because multiple suspension functors and computations can be composed using [coproducts](https://www.cambridge.org/core/services/aop-cambridge-core/content/view/14416CB20C4637164EA9F77097909409/S0956796808006758a.pdf/data-types-a-la-carte.pdf). -- This should also play nicely when we implement Debug Adapter Protocol for the debugger later on. - -## Implications - -In summary, we proposed to implement the debugging machine as a coroutine system with "steps". This implies that: - -- We have to maintain the CEK machine. E.g., we need to check its conformance. -- We will add a debugger for our users. We can give users more information at each evaluation step. -- We will need to write some tests to ensure that the debugging machine continuously output reasonable information. diff --git a/doc/read-the-docs-site/adr/0003-sharing-prod-debugging-cek.md b/doc/read-the-docs-site/adr/0003-sharing-prod-debugging-cek.md deleted file mode 100644 index eb7a9cde27f..00000000000 --- a/doc/read-the-docs-site/adr/0003-sharing-prod-debugging-cek.md +++ /dev/null @@ -1,122 +0,0 @@ -# ADR 3: Sharing code between the production and debugging CEK machine - -Date: 2022-10 - -## Authors - -Marty Stumpf - -## Status - -Draft - -## Context - -In order to have a minimal viable product of a debugger for Plutus, we need a CEK machine that will give us more information for debugging than our current one. - -One of the first decision we need to make is: should the debugging machine be a separate one? The debugging machine need to satisfy these requirements: - -- we must not compromise the performance of the production machine, and -- the debugging machine must behave the same as the production machine. - -There are tradeoffs between these two requirements. If we have a separate machine, the performance of the production machine will be untouched. But there is more scope for us to make mistakes with the new machine. - -However, if we share code between the two machines, the performance of the production machine may be compromised. - -This ADR proposes an approach for the two machines to share code while not compromising performance. - -## Decision: Polymorphic compute/return steps - -As long as the debugging machine has the same type, we can alter `computeCek`/`returnCek` to be polymorphic over a type-level `Bool` specifying if we’re in debug mode or not. Then we demote it to the term level in the definition of `computeCek`/`returnCek` and branch on the `Bool` thus implementing different logic depending on whether we're in debug mode or not. This promotion to the type level allows us to statically instantiate the `Bool` in an instance and thus make GHC compile the whole worker of the CEK machine twice: once in debug mode and once in production mode. Theoretically, GHC will take care to remove all the dead debug code when in production mode. - -### Detailed description with code snippets - -Whether we are debugging or not, we will be returning a `CekState`: - -```haskell -data CekState uni fun = - -- the next state is computing - Computing WordArray (Context uni fun) (Closure uni fun) - -- the next state is returning - | Returning WordArray (Context uni fun) (CekValue uni fun) - -- evaluation finished - | Terminating (Term NamedDeBruijn uni fun ()) - -data Closure uni fun = - Closure (Term NamedDeBruijn uni fun ()) (CekValEnv uni fun) -``` - -We enter either modes via `enterComputeCek`, which takes an extra `Bool` than our current implementation, to indicate whether we are in debugging mode or not: - -```haskell -enterComputeCek - :: forall uni fun s - . (Ix fun, PrettyUni uni fun, GivenCekReqs uni fun s) - => Bool - -> Context uni fun - -> Closure uni fun - -> CekM uni fun s (CekState uni fun) -enterComputeCek debug ctx (Closure term env) = - -- The initial step is always computing with zero budget, empty context and environment. - -- `computeCekStep` matches on the `term` and calls `computeCek` or `returnCek` depending on the clause. - computeCekStep (toWordArray 0) NoFrame (Closure term Env.empty) where - - computeCek - :: WordArray -- for costing - -> Context uni fun - -> Closure uni fun - -> CekM uni fun s (CekState uni fun) - computeCek = if debug then computeCekDebug else computeCekStep - {-# NOINLINE computeCek #-} -- Making sure the `if` is only evaluated once. - - -- in debugging mode, immediately returns the current `CekState` and halts execution. Debugging mode details to be worked out. - computeCekDebug - :: WordArray - -> Context uni fun - -> Closure uni fun - -> CekM uni fun s (CekState uni fun) - computeCekDebug budget ctx (Closure term env) = - pure $ Computing budget ctx (Closure term env) - - -- In production mode, `computeCekStep` matches on the term and calls `computeCek` or `returnCek` on a subterm. - -- In production mode, `computeCek` calls the original `computeCekStep`, i.e. in production mode `computeCekStep` calls itself through the thin `computeCek` wrapper thus achieving recursion and replicating the old behavior of the CEK machine. - computeCekStep - :: WordArray - -> Context uni fun - -> Closure uni fun - -> CekM uni fun s (CekState uni fun) -- the return type is `CekState` instead of a term. - computeCekStep unbudgetedSteps ctx (Closure (Force _ body) env) = do -- exactly like in current prod - !unbudgetedSteps' <- stepAndMaybeSpend BForce unbudgetedSteps -- update costs - computeCek unbudgetedSteps' (FrameForce ctx) (Closure body env) -- compute again with updated costs and ctx - -- there's a lot of code in here! Some clauses call `returnCek`, some `computeCek`, achieving recursive calling similar to our current implementation. - - -- details of `forceEvaluate`, `applyEvaluate` etc to be worked out. - - -- similarly for the returning step - - returnCek = if debug then returnCekDebug else returnCekStep - {-# NOINLINE returnCek #-} - - returnCekDebug = ... - - - returnCekStep - :: forall uni fun s - . (PrettyUni uni fun, GivenCekReqs uni fun s) - => WordArray - -> Context uni fun - -> CekValue uni fun - -> CekM uni fun s (CekState uni fun) -- return a state instead of a term - returnCekStep !unbudgetedSteps NoFrame val = do - spendAccumulatedBudget unbudgetedSteps - pure $ Terminating $ dischargeCekValue val --wrap the term in the `Terminating` constructor when returning the term. - -``` - -This trick lets us inline the "step" functions and call them recursively like before. Because when we are not debugging, we are still using basically the same code as our current implementation, the performance should not be affected by much. (Given that the machine is tail-recursive, the additional wrapping of the returned term in the `Terminating` constructor will affect performance in a negligible way.) - -## Implications - -This is a draft of an idea. There are further details to be worked out in a prototype. The implementor should use their own judgement. - -Whether we proceed with this approach or not depends on how the prototyping goes, and its benchmarking results. If we find that the slow down is negligible enough, then we may proceed with this. Otherwise, we proceed with a separate implementation for the debugging machine. diff --git a/doc/read-the-docs-site/adr/0004-deferred-unlifting.md b/doc/read-the-docs-site/adr/0004-deferred-unlifting.md deleted file mode 100644 index ec57ee45d2c..00000000000 --- a/doc/read-the-docs-site/adr/0004-deferred-unlifting.md +++ /dev/null @@ -1,84 +0,0 @@ -# ADR 4: Deferred unlifting in Plutus Core - -Date: 2022-11 - -## Authors - -Michael Peyton Jones - -## Status - -Accepted - -## Context - -A key part of the evaluation of builtin applications in Plutus Core is "unlifting". -Unlifting is the process of taking a Plutus Core term and turning it into a Haskell value of a known type. -For example, we can unlift an integer constant term into the actual Haskell integer it contains. -This is necessary in order to apply the denotation of the builtin being applied, since that is a Haskell function that operates on Haskell types (e.g. integer addition). - -However, unlifting can fail: we cannot unlift a _string_ constant into a Haskell integer! -This failure is visible in program execution, since it terminates the program with an error. - -The original design of the builtin application machinery performed unlifting of an argument as soon as it was received. -This meant that unlifting failures would surface at that point, whereas most of the errors that relate to builtin evaluation can only occur once the builtin has all its arguments, since that's when we run the actual function. - -For example: -``` -[(builtin addInteger) (con string "hello")] -``` -would fail (due to the unlifting failure), even though the builtin _never_ receives all its arguments and is never fully evaluated. - -The fact that unlifting errors occur early on makes the specification of the behaviour of builtins significantly more complex. -It would be simpler if unlifting errors occurred when the builtin has all its arguments. -We refer to these two alternatives as "immediate" unlifting (the status quo) and "deferred" unlifting. - -Deferred unlifting only makes evaluation slightly more lenient: some terms (such as the above example) do not give an error where they would do with immediate unlifting. - -## Decision - -We decided: -- To switch to deferred unlifting by default in protocol version 7 (Vasil). -- Having observed (after the hard fork) that no script evaluation in the history of the chain relied on immediate unlifting, to remove all support for immediate unlifting from the evaluator. - -## Argument - -The difference between immediate and deferred unlifting is only visible in quite specific circumstances. -Since builtins are _usually_ fully applied (otherwise they don't do anything!), an unlifting error will usually be forced right away, regardless of whether we use immediate or deferred unlifting. -The only case where this is not true is where the builtin _never_ receives all its arguments, such as the example given above. -More generally, the only case where behaviour differs is _partially applied_ builtins which are applied to _ill-typed arguments_. -This is quite unusual, since users typically write programs that a) do something and b) are well-typed. - -Consequently we felt that it was safe to change the default unlifting behaviour. - -However, in order to gain the full benefit of simplification, we would like to remove the existence of immediate unlifting entirely. -If historical script evaluations on the chain still rely on immediate unlifting, then we must support it (and specify it!) forever. -However, once the default has changed, if the history of the chain still validates with _deferred_ unlifting, then we know that no historical script evaluations relied on that behaviour. -At that point we can _unconditionally_ enable deferred unlifting without worrying about not being able to validate the chain. - -In theory, there could be outputs locked with script hashes whose behaviour would (if they are ever spent) rely on inmmediate unlifting. -We cannot rule this out, but given that it has never been relevant in the entire history of the chain, we considered this to be extremely unlikely. - -## Alternatives - -### 1. Status quo - -Undesirable, we face the complexity forever. - -### 2. Support both versions forever - -Arguably even worse than 1, in that we have to maintain and specify both versions forever, so our complexity burden is even greater. - -## Implications - -This has already been implemented, and the specification has been updated. -It has no further implications for other decisions that we know of. - -## Notes - -Relevant PRs: -- [Support for both versions of unlifting](https://github.com/IntersectMBO/plutus/pull/4516) -- [Choose the unlifting mode based on protocol version](https://github.com/IntersectMBO/plutus/pull/4522) -- [Remove immediate unlifting](https://github.com/IntersectMBO/plutus/pull/4879) -- [Mainnet script dump test](https://github.com/IntersectMBO/plutus/pull/4726) -- [Update PLC specification for deferred unlifting](https://github.com/IntersectMBO/plutus/pull/4960) diff --git a/doc/read-the-docs-site/adr/index.rst b/doc/read-the-docs-site/adr/index.rst deleted file mode 100644 index 4a6c8a94376..00000000000 --- a/doc/read-the-docs-site/adr/index.rst +++ /dev/null @@ -1,36 +0,0 @@ -Architectural decision records -==================================== - -We document our architectural and design decisions for all of our components. -In order to do that, there is practice called architectural decision records ("ADR"), -that we can integrate into our workflow. -An ADR is a document that captures an important architectural decision made along with its context and consequences. - -The goals are: - -* making decisions transparent to internal/external stakeholders and contributors. - -* getting feedback on decisions that we're about to make or have made - -* providing external contributors a framework to propose architectural changes - -* providing a big picture of all major decisions that were made - -The general process for creating an ADR is: - -1. cloning the repository - -2. creating a new file with the format `-.rst` in the directory `doc/adr` - -3. adding the ADR in the table of content tree of the Readthedocs - -4. committing and pushing to the repository - -.. toctree:: - :maxdepth: 1 - :titlesonly: - - 0001-record-architecture-decisions - 0002-steppable-cek-machine - 0003-sharing-prod-debugging-cek - 0004-deferred-unlifting diff --git a/doc/read-the-docs-site/bibliography.bib b/doc/read-the-docs-site/bibliography.bib deleted file mode 100644 index 202dd9b30ad..00000000000 --- a/doc/read-the-docs-site/bibliography.bib +++ /dev/null @@ -1,109 +0,0 @@ -@inproceedings{eutxo, - title = {The {Extended UTXO} Model}, - author = {Manuel M. T. Chakravarty and James Chapman and Kenneth - MacKenzie and Orestis Melkonian and Michael {Peyton - Jones} and Philip Wadler}, - booktitle = {Proceedings of Trusted Smart Contracts (WTSC)}, - year = 2020, - volume = "12063", - publisher = "Springer", - series = "LNCS", - note={Also available at https://github.com/IntersectMBO/plutus} -} - -@inproceedings{utxoma, - title={{UTXO$_{\mathrm{ma}}$}: {UTXO} with Multi-Asset Support}, - author={Manuel M. T. Chakravarty and James Chapman and Kenneth MacKenzie and Orestis Melkonian and Jann M{\"u}ller and Michael {Peyton Jones} and Polina Vinogradova and Philip Wadler and Joachim Zahnentferner}, - year=2020, - booktitle={International Symposium on Leveraging Applications of Formal Methods}, - organization={Springer}, - note={Also available at https://github.com/IntersectMBO/plutus} -} - -@inproceedings{eutxoma, - title={Native custom tokens in the extended {UTXO} model}, - author={Chakravarty, Manuel MT and Chapman, James and MacKenzie, Kenneth and Melkonian, Orestis and M{\"u}ller, Jann and Jones, Michael Peyton and Vinogradova, Polina and Wadler, Philip}, - booktitle={International Symposium on Leveraging Applications of Formal Methods}, - pages={89--111}, - year={2020}, - organization={Springer}, - note={Also available at https://github.com/IntersectMBO/plutus} -} - -@techreport{chakravarty2020hydra, - title={Hydra: Fast Isomorphic State Channels}, - author={Chakravarty, Manuel M. T. and Coretti, Sandro and Fitzi, Matthias and Gazi, Peter and Kant, Philipp and Kiayias, Aggelos and Russell, Alexander}, - year={2020}, - url= {https://eprint.iacr.org/2020/299}, - institution={Cryptology ePrint Archive, Report 2020/299} -} - -@Misc{functional-smart-contracts-summit, - author= {Chakravarty, Manuel MT and Thompson, Simon and Wadler, Philip}, - title = {Functional smart contracts on Cardano}, - howpublished = {\url{https://www.youtube.com/watch?v=MpWeg6Fg0t8}} -} - -@Misc{plutus-platform-summit, - author= {Peyton Jones, Michael and M{\"u}ller, Jann}, - title = {The Plutus Platform}, - howpublished = {\url{https://www.youtube.com/watch?v=usMPt8KpBeI}} -} - -@inproceedings{marlowe, - author = {Pablo Lamela Seijas and - Simon J. Thompson}, - title = {Marlowe: Financial Contracts on Blockchain}, - booktitle = {Leveraging Applications of Formal Methods, Verification and Validation. - Industrial Practice - 8th International Symposium, ISoLA 2018, Limassol, - Cyprus, November 5-9, 2018, Proceedings, Part {IV}}, - pages = {356--375}, - year = {2018}, - crossref = {DBLP:conf/isola/2018-4}, - url = {https://doi.org/10.1007/978-3-030-03427-6\_27}, - doi = {10.1007/978-3-030-03427-6\_27}, - timestamp = {Tue, 14 May 2019 10:00:41 +0200}, - biburl = {https://dblp.org/rec/bib/conf/isola/SeijasT18}, - bibsource = {dblp computer science bibliography, https://dblp.org} -} - -@techreport{Cardano-wallet-spec, -author = {Duncan Coutts and Edsko de Vries}, -title = {Formal specification for a {Cardano} wallet}, -note={Available at \url{https://cardanodocs.com/files/formal-specification-of-the-cardano-wallet.pdf}}, -institution={IOHK}, -year={2018} -} - -@techreport{Cardano-ledger-spec, -title = {A Formal Specification of the {Cardano} Ledger}, -author={Jared Corduan and Polina Vinogradova and Matthias G{\"u}demann}, -note={Available at \url{https://github.com/IntersectMBO/cardano-ledger-specs}}, -institution={IOHK}, -year={2019} -} - -@techreport{plutus-core-spec, -title = {Formal Specification of the {Plutus Core} Language}, -note={Available at \url{https://github.com/IntersectMBO/plutus}}, -author={IOHK}, -institution={IOHK}, -year={2019} -} - -@techreport{plutus-report -title = {Plutus Platform Technical Report}, -note={Available at \url{https://github.com/IntersectMBO/plutus}}, -author={IOHK}, -institution={IOHK}, -year={2019} -} - -@misc{cbor, - title = {{RFC 7049 - Concise Binary Object Representation (CBOR)}}, - howpublished = {\url{https://tools.ietf.org/html/rfc7049}}, - month = oct, - year = {2013}, - note = {Accessed: 2020-01-01}, - author={IETF} -} diff --git a/doc/read-the-docs-site/cardano-logo.png b/doc/read-the-docs-site/cardano-logo.png deleted file mode 100644 index f888d1bd35ba0fc1199d45b804ba774c5527e0aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6361 zcmbW6Wl)=8+oppQEpEl#y%cwMcZy4KD;C_{9g0hfThZbYq&Sooij(4=LUGwpw(q_> z^ZnS_nLNpLKgV@SCi#^_tEtGMp%9?}001<3IVlYQ0Okrhze9q9K4TuajY3~w+%#k* z0JW1Od(eZFm7e@NWn};pbVdTeMA`!2pH`q35%dB8;0j>?Pg<C#dxfz7D9lwM+`k#{ z?rAaP5C*D*y;oDxl72crJ_3Rs0osoMu^s@|I6(V5K)&T^<{tuZH3DS5Jk5d)0Nxe= zR|i0>4j|M7;BN!))IL$+7Jxu4fVTm_-3;KWd0OLd1n|}Xxa*&&Kr?`^4#4vnz}*Dk zssr#tO&XtsZyKH`A5>Tm;QkDF1GTDuGJzuQy1%przzY>ZZEFB;>i*K2zqI}@tp)Hv zg-{B$g3^CNXy}s_R0ySi(Hm%u{|KR0&lFnknbrWf{w6*PpM#+2sRQ%@U4Ev}<>#Qk z!YBGy2n~9w_YXZUL(#MFiT+3U&+30uXy<<&psN4l1D&5ML52VEd5(Ba`Rnu4?V0}d zc`ERC|H<l~@TtRJt7r6d{Cnr=_}|O__Wx)4FZ%z<3cCE<>VFLSFZ5LMzdAt8pIbep zJa_(U^<3%yqJQ7Tf2aKaSp7@ks=>nd{Q>>{Ke%hCXaZnh;ox5&AR-~7puR*y$H2tG z#=*tICwN6jL`*_TMovLVMNLCXN6)~>#LU9V#?Ha{n(GZW4=*3TfS{1Dh^Uyjgrt<T zjI5lzf})bLimIBrhNhObj;@}*!CONkV-r&|a|=tWch)wxcJ>aAPR=f_@7>%zJiUP4 zKE8hb0fE6Gp<&?>kx|hxv2pPUiAl*RscGpMnOWH%a&q(X3kr*hOG-a}Dl4z3tg5c5 zt*dYN+}PCI(%SZ=y`!_MyQjCWe*iQ%G(7TkbZmTLa%y^J_S@X|AM*=87nhb-R@c@y zz`r)Pws&^-_74t^j!#Y@zt7J9TwGpV-`w8aKddB<bpQak9P(1)TEN94BX2*nd9s4d zcU5vA{AdK^7@>5`&Ps|(X^V=yjD_zRK9y)6x0+jY;iccspv0sUD`>knq-88>)?}y^ z6WOPQB}t_S7I>YoSWjmAwq&0tZhLkIT5aD=ZjPS_x=lI@y1nRwr<y(ELPWuTus!8x z7dVakh}0TR{@{*Ce**ULv)HQ4SRLixw~iXN+aLndfO)|mIyDCS88h}rc|G|TR>Ja- z*aQp|1i&9|_zYqW^xB!{`F1Ec;g)81O>I?RTdb<x*nrEkMqh>u5hK4LJ9dYiQSwSd zf-*mLyhp1;K9Kc&b%e`ft3|8mfzP5>Z`v2~0u`U-u1l@xHZXr1(_ZLTO-9D&Wu*9A z*Ieg&ee=}3<Q(aY_GJXJ;nLnaln6aHd4)qK#&IJ|MlPS>2q835Y!f6I(DqmJ1D5bF zs0L$k8NFr;r{pBoC^7@)u~rSr8U4#I0xoG~FeJ<TR7Y97f+szaRpXm*w|QP|(VPd^ z?<%QgTSDN4uFLqR4lkO|w?uY356;`^PNT0;AmRDb@=K@ev-Cpdwqtpm+LR*m@Akmt z;W{Xg0)t8yVlBvKvO+qrhjfy1pYYq<fX2ZZ=|m%_>K?d|8z9+qa!n9vxne@XV~VEO z80b6~uwI?E$&_`5wA1+Og0C!sH9}TnCz=fzXYE5iU%g_J_K+2R`UlV-BL3?h9E3qp z^#YM()ueZ)j}PIGOI0B6K_N+hs$r*2CcC!Bm3}9~%{n<aU?kOcstjoKT2odAOY8i# zOn~<9gI@?j8xy`3Q{qNBGk4b7<-+2o&9mJ}e(@jRR)w`uY&m)T4TwKi3CpBp-w<G* zxUP5)o+0F?6<JH^8s?Gq9sWc(o(^Nt6)*iYnb6I5%!?%`bmggI&GtJ{B2PzsQ=`{W zcNle9dohsK_WsL>E8K*M1e0%_=h%!NZJ1E$g`(%7Pb=>xh AY<Gy)F4b4b{bAUw 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 diff --git a/doc/read-the-docs-site/conf.py b/doc/read-the-docs-site/conf.py deleted file mode 100644 index fba9bce21d0..00000000000 --- a/doc/read-the-docs-site/conf.py +++ /dev/null @@ -1,128 +0,0 @@ - - -import sys -import os -import sphinx_rtd_theme -import recommonmark - -from recommonmark.transform import AutoStructify -from os.path import abspath, join, dirname - -sys.path.insert(0, abspath(join(dirname(__file__)))) -sys.path.append(os.path.abspath('exts')) - -# -- RTD configuration ------------------------------------------------ - -on_rtd = os.environ.get("READTHEDOCS", None) == "True" - -# This is used for linking and such so we link to the thing we're building -rtd_version = os.environ.get("READTHEDOCS_VERSION", "latest") -if rtd_version not in ["stable", "latest"]: - rtd_version = "stable" - -# -- Project information ----------------------------------------------------- - -project = 'Plutus Core and Plutus Tx User Guide' -copyright = '2023, IOHK' -author = 'IOHK' - -# The full version, including alpha/beta/rc tags -release = '1.0.0' - -# -- General configuration --------------------------------------------------- -master_doc = 'index' -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. - -extensions = [ - "sphinx_rtd_theme", - 'recommonmark', - 'sphinx_markdown_tables', - 'sphinxemoji.sphinxemoji', - "sphinx.ext.intersphinx", - 'sphinxcontrib.plantuml', - 'sphinxcontrib.bibtex', - 'hs_domain', -] - -bibtex_bibfiles = ['bibliography.bib'] -bibtex_default_style = 'plain' - -# Amazingly, RTD actually provide plantuml -if on_rtd: - plantuml = 'java -Djava.awt.headless=true -jar /usr/share/plantuml/plantuml.jar' - -primary_domain = 'hs' - -haddock_mapping = {} -haddock_dir = os.getenv('SPHINX_HADDOCK_DIR', None) -if haddock_dir: - for entry in os.scandir(haddock_dir): - if entry.is_dir(): - html_dir = os.path.join(entry.path, 'html') - inv_file = os.path.join(html_dir, 'objects.inv') - if os.path.exists(inv_file): - haddock_mapping[entry.name] = (html_dir, inv_file) - -intersphinx_mapping = haddock_mapping - - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] -html_static_path = ['_static'] - -source_suffix = { - '.rst': 'restructuredtext', - '.md': 'markdown', -} - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -# This pattern also affects html_static_path and html_extra_path. -exclude_patterns = [ - 'haddock', # Otherwise it tries to pick up the README.md's in the Haddock doc! - 'README.md' -] - -# -- Options for HTML output ------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -# -html_theme = "sphinx_rtd_theme" - -html_theme_options = { - 'logo_only': False, - 'display_version': False, - 'prev_next_buttons_location': 'bottom', - 'style_external_links': False, - 'style_nav_header_background': '#fcfcfc', - # Toc options - 'collapse_navigation': False, - 'sticky_navigation': True, - 'navigation_depth': 4, - 'includehidden': True, - 'titles_only': False -} - -html_logo = "cardano-logo.png" - -html_context = { - "display_github": True, # Add 'Edit on Github' link instead of 'View page source' - "github_user": "input-output-hk", - "github_repo": "plutus", - "github_version": "master", - "conf_py_path": "/doc/read-the-docs-site/", - "source_suffix": source_suffix, -} - -# -- Custom Document processing ---------------------------------------------- - -def setup(app): - app.add_config_value('recommonmark_config', { - 'enable_auto_doc_ref': False, - 'enable_auto_toc_tree': False, - }, True) - app.add_transform(AutoStructify) - app.add_css_file("theme_overrides.css") diff --git a/doc/read-the-docs-site/explanations/index.rst b/doc/read-the-docs-site/explanations/index.rst deleted file mode 100644 index edaf5ac897f..00000000000 --- a/doc/read-the-docs-site/explanations/index.rst +++ /dev/null @@ -1,11 +0,0 @@ -Explanations -============ - -.. toctree:: - :maxdepth: 3 - :titlesonly: - - platform - ledger - plutus-foundation - language-versions diff --git a/doc/read-the-docs-site/explanations/language-versions.rst b/doc/read-the-docs-site/explanations/language-versions.rst deleted file mode 100644 index eed8d7814a0..00000000000 --- a/doc/read-the-docs-site/explanations/language-versions.rst +++ /dev/null @@ -1,63 +0,0 @@ -.. _what_are_plutus_language_versions: - -What are Plutus language versions? -================================== - -The Cardano ledger tags scripts with a *language*. This determines what the ledger -will do with the script. - -For example, the "simple" script language introduced in the Allegra era allows for -a few basic kinds of checks to be made, such as time locks. In order to interpret -simple scripts, the ledger must (among other things) extract the validation interval -information from the transaction in order to check the conditions imposed by the script. - -Plutus scripts, introduced in the Alonzo era, have a more complex interface than -simple scripts. Plutus scripts are programs written in the Plutus Core programming -language that receive three arguments: - - 1. the datum, - 2. the redeemer, and - 3. the context. - -The *context* contains all the information about the transaction which is currently -being validated. (See :ref:`Scripts and the Extended UTXO model <scripts_and_the_eutxo_model>` -for more details). - -Languages must continue to behave the same forever; otherwise, we could change the -behaviour of existing scripts, potentially making outputs un-spendable and breaking -users' assumptions. That means that many kinds of changes to the behaviour of the -language instead require a "new" language. This includes changes to the interface -of the language. - -For example, if we want to put more information in the *context* (e.g., in order to -convey information about new fields that have been added to transactions), then -we need a new language, because old scripts would not be able to understand the new information. - -.. note:: - For more details about what kinds of changes require a new language, see the - Cardano Improvement Proposal, `CIP 35--Plutus Core Evolution <https://cips.cardano.org/cips/cip35/>`_. - -Hence, in order to change Plutus, we need to create a new language in the ledger. -Since in most cases this language will be very similar to the ones that came before, -we refer to these as "Plutus language versions." However, from the ledger's perspective, -they are entirely unrelated and there is generally no requirement that they be similar -or compatible in any way. - -There are two different uses of "language" here that are important to keep distinct: - - * Plutus Core is a *programming* language in which Plutus scripts are written; - * Plutus (the Plutus Core programming language and a particular interface) is a - "language" in the terminology of the ledger. - -In particular, a specific version of the Plutus Core programming language may be -used in multiple versions of the Plutus ledger language, if, for example, the only -difference is to the interface. To date, all versions of Plutus use the same version -of the Plutus Core! That means that, in practice, the process for creating scripts -of different Plutus language versions tends to be similar. The main difference is that -you will likely need a different ``ScriptContext`` type, and different built-in -functions may be available. - -*See also:* - -* :ref:`Plutus language changes <plutus_language_changes>` for a description of what has changed between versions. -* :doc:`Upgrading to Vasil and Plutus script addresses </reference/cardano/upgr-vasil-plutus-script-addresses>`. diff --git a/doc/read-the-docs-site/explanations/ledger.rst b/doc/read-the-docs-site/explanations/ledger.rst deleted file mode 100644 index e9c57dad86f..00000000000 --- a/doc/read-the-docs-site/explanations/ledger.rst +++ /dev/null @@ -1,139 +0,0 @@ -.. _what_is_a_ledger: - -What is a ledger? -================= - -The :ref:`Plutus Platform<what_is_the_plutus_platform>` is designed to work with -distributed ledgers (henceforth simply “ledgers”). Ledgers are typically *implemented* -with a blockchain, such as Cardano. However, much of the time when we are talking -about ledgers we don't care about the underlying implementation, and so we will just -talk about the ledger itself. - -.. note:: - This is not always true: applications do need to care about details of how the - underlying blockchain works, because that affects behaviour such as settlement - time and rollback policies. As much as possible the Plutus Application Framework - tries to shield developers from this complexity, but it is not always possible. - -In its simplest form, a ledger is a system that tracks who owns what. - -For example: - -+------------+----------+ -| Owner | Balance | -+============+==========+ -| Alice | 43 USD | -+------------+----------+ -| Bob | 12 USD | -+------------+----------+ - -Ledgers are typically transformed by performing a *transaction* that transfers some -assets from one party to another. In order to be *valid* a transaction will have to -pass some checks, such as demonstrating that the transfer is authorized by the owner -of the funds. After applying a transaction (say, Alice sends Bob 5 USD), we have a -new state of the ledger. - -+------------+----------+ -| Owner | Balance | -+============+==========+ -| Alice | 38 USD | -+------------+----------+ -| Bob | 17 USD | -+------------+----------+ - -Account-based and UTXO-based ledgers ------------------------------------- - -There are two dominant paradigms for how to *represent* such a system. The first, -account-based ledgers, model the system exactly as in our example above. They keep -a list of accounts, and for each account, a balance. A transaction simply decreases -the balance of the sender, and increases the balance of the recipient. - -Account-based ledgers (such as Ethereum) are very simple to implement, but they -have difficulties due to the fact that the state of an account is *global*: all -transactions that do anything with an account must touch this one number. This can -lead to issues with throughput, as well as ordering issues (if Alice sends 5 USD to -Bob, and Bob sends 5 USD to Carol, this may succeed or fail depending on the order -in which the transactions are processed). - -The other paradigm is UTXO-based ledgers. UTXO-based ledgers (such as Bitcoin) -represent the state of the ledger as a set of "unspent transaction outputs" (UTXOs). -A UTXO is like an envelope with some money in it: it is "addressed" to a particular -party, and it contains some funds. A transaction *spends* some number of UTXOs, -and creates some more. - -So a transaction that sends 5 USD from Alice to Bob would do so by spending some -number of already-existing UTXOs belonging to Alice, and creating a new UTXO with -5 USD belonging to Bob. - -UTXO-based ledgers are more complicated, but avoid some of the issues of account-based -ledgers, since any transaction deals only with the inputs that it spends. Cardano -is a UTXO-based ledger, and we heavily rely on this. For example, :term:`Hydra`, -Cardano's scalability solution, uses the fact that independent parts of the transaction -graph can be processed in parallel to improve throughput. - -.. _scripts_and_the_eutxo_model: - -Scripts and the Extended UTXO Model ------------------------------------ - -UTXO-based ledgers typically start out with a very simple model of "ownership" of -UTXOs. An output will have a public key (strictly, the hash of a public key) attached -to it, and in order to spend this output the spending transaction must be signed by -the corresponding private key. We call this a "pay-to-pubkey" output. - -Cardano uses an extended model called the :term:`Extended UTXO Model` (EUTXO). -In the EUTXO model, an output can be locked by (the hash of) a *script*. We call -this a "pay-to-script" output. A script is a *program* that decides whether or not -the transaction which spends the output is authorized to do so. Such a script is -called a validator script, because it validates whether the spending is allowed. - -A simple validator script would be one that checked whether the spending transaction -was signed by a particular key---this would exactly replicate the behaviour of simple -pay-to-pubkey outputs. However, with a bit of careful extension, we can use scripts -to let us express a large amount of useful logic on the chain. - -With the EUTXO model, validator scripts are passed three arguments: - -- The *datum*: this is a piece of data attached to the *output* that the script is - locking (strictly, again, just the hash is present). This is typically used to - carry state. -- The *redeemer*: this is a piece of data attached to the *input* that is doing - the spending. This is typically used to provide an input to the script from the - spender. -- The *context*: this is a piece of data which represents information about the - transaction doing the spending. This is used to make assertions about the way - the output is being sent (such as "Bob signed it"). - -As an example, let's see how we could implement an atomic swap. - -- The datum contains the keys of the two parties in the swap, and a description - of what they are swapping. -- The redeemer is unused. -- The context contains a representation of the transaction. - -The logic of the validator script is then: does the transaction make a payment from -the second party to the first party, containing the value that they are supposed -to send? If so, then they may spend this output and send it where they want (or we -could insist that they send it to their key, but we might as well let them do what -they like with it). - -Different kinds of scripts --------------------------- - -The Cardano ledger currently has a few different kinds of validator scripts: - -- The "simple" script language (introduced in the Allegra hard fork), which allows - basic checks such as time locks -- Various Plutus language versions (see :ref:`What are Plutus language versions? <what_are_plutus_language_versions>`) - -Further reading ------------------ - -See `The EUTXO Handbook, A deep dive into Cardano's accounting model <https://www.essentialcardano.io/article/the-eutxo-handbook>`_. - -The Extended UTXO Model is described in :cite:t:`functional-smart-contracts-summit`. -More formal detail can be found in in :cite:t:`eutxo,utxoma,eutxoma`. - -For more help on how to actually implement interesting logic using the EUTXO model -and scripts, read some of our :ref:`tutorials<plutus_tutorials>`. diff --git a/doc/read-the-docs-site/explanations/platform.rst b/doc/read-the-docs-site/explanations/platform.rst deleted file mode 100644 index 46bb59f2f7e..00000000000 --- a/doc/read-the-docs-site/explanations/platform.rst +++ /dev/null @@ -1,73 +0,0 @@ -.. _what_is_the_plutus_platform: - -What is the Plutus Platform? -============================ - -The Plutus Platform is a platform for writing *applications* that interact with a *distributed ledger* featuring *scripting* capabilities, in particular the :term:`Cardano` blockchain. - -Applications ------------- - -What sort of "applications" are we talking about here? -Let's think about a pair of users, Alice and Bob, who want to engage in an atomic swap of some assets stored on Cardano. - -.. uml:: - :caption: Alice and Bob doing an atomic swap - - actor Alice - actor Bob - participant Application - database Cardano - - Alice -> Application: I want to do an escrowed swap with Bob,\n 50 Ada for my Special Token - Application -> Ledger: I want to lock up Alice's Special Token so that\n it can only be unlocked if Bob completes the swap - Ledger -> Application: Ok, that change has settled - Application -> Bob: Hey, Alice wants to do a swap with you - Bob -> Application: I want to take up Alice's swap - Application -> Cardano: I want to spend that locked output with Alice's\n Special Token while sending 50 of Bob's Ada to Alice - Ledger -> Ledger: Does this transaction satisfy the \nconditions that were asked for? Yes it does! - Ledger -> Application: Ok, that change has settled - Application -> Alice: The swap is completed! - Application -> Bob: The swap is completed! - -Alice and Bob don't interact directly, nor do they directly interact with the ledger. -Very few "smart" blockchain systems encourage their users to interact directly with the chain themselves, since this is usually complex and error-prone. -Rather, the users interact with some *application* that presents the world in a form that they can understand and interact with. - -Of course, such an application must want to do something with the ledger, otherwise you wouldn't need anything new! -Simple applications might do nothing more than submit basic transactions that transfer assets - imagine a simple "regular payments" application. -However, our main focus is applications that *do* use smart features in order to have a kernel of trusted code that is validated as part of the ledger. - -This enables applications that are not possible otherwise. -Alice and Bob need trusted logic in order to perform their swap: a "dumb" application could submit the transactions transferring the assets, but would have no recourse against Bob defecting. -Using the smart features of the ledger ensures that Bob can't take Alice's token unless he *really does* send her the money, and it does this without involving a trusted third party. - -Creating and using the trusted kernel of code is the most technically difficult and security-sensitive part of the whole operation. -Nonetheless, writing the rest of the application contains plenty of complexity. -Amongst other things, an application needs to deal with the software around the ledger (wallets, nodes, etc.); distributed systems issues such as settlement delays, inconsistent state between parties, and rollbacks; and simple user-experience issues like upgrades, state management and synchronization. -Furthermore, while none of these are quite as security-critical as the trusted kernel, users certainly *can* be attacked through such applications, and even non-malicious bugs are likely to be quite upsetting when a user's money is at stake. - -Even simple applications must deal with this complexity, and for more advanced applications that deal with state across time, the difficulty is magnified. - -The Plutus Platform -------------------- - -This is why the Plutus Platform is a *platform*. -Rather than just providing a few tools to make the bare minimum possible, we aim to support application development in its entirety, right the way through from authoring to testing, runtime support, and (eventually) verification. -Ultimately, we wrote it because we needed it ourselves to do anything useful! - -Conceptually, the Platform breaks down based on which part of the system we're interested in: - -- :ref:`Plutus Foundation<what_is_plutus_foundation>`: support for writing the trusted kernel of code, and executing it on the chain -- `The Plutus Application Framework <https://github.com/IntersectMBO/plutus-apps>`_: support for writing applications ("Plutus Applications") in a particular style - -.. figure:: ./platform-architecture.png - - A high-level architecture of the Plutus Platform, with an emphasis on applications. - -Further reading ---------------- - -The platform is introduced in :cite:t:`plutus-platform-summit`. - -The design of the platform is discussed in :cite:t:`plutus-report`. diff --git a/doc/read-the-docs-site/explanations/plutus-foundation.rst b/doc/read-the-docs-site/explanations/plutus-foundation.rst deleted file mode 100644 index e19712972a8..00000000000 --- a/doc/read-the-docs-site/explanations/plutus-foundation.rst +++ /dev/null @@ -1,38 +0,0 @@ -.. _what_is_plutus_foundation: - -What is Plutus Foundation? -========================== - -In order for an application to run its :ref:`trusted kernel<what_is_the_plutus_platform>` of logic as a script on a :ref:`ledger<what_is_a_ledger>`, the ledger needs a way of specifying and executing scripts. -Scripts are simply programs, so this means we need a *programming language*. - -Plutus Core ------------ - -In the Plutus Platform, this language is *Plutus Core*. -Plutus Core is a variant of the lambda calculus, a well-studied formalism for computing. - -.. note:: - Plutus Core is our "assembly language". - Trust me, you don't want to see any! - Dealing with that is the compiler's job. - -Plutus Core is designed for simplicity, determinism, and to allow careful cost control of program execution. -Using the lambda calculus makes it an easy compilation target for functional programming languages, and allows us to have a simple, formally verified evaluator. - -Plutus Tx ---------- - -Writing Plutus Core by hand is not a job for a human! -It is designed to be written by a compiler, and the Platform provides a compiler from a subset of Haskell to Plutus Core. -This allows you to seamlessly write applications in Haskell, while compiling part of the code to on-chain Plutus Core, and part into an off-chain application. - -Supporting "mixed" code in this way enables libraries written with the Plutus Haskell SDK to share logic and datatypes across both parts of the application, reducing the risk of errors significantly. - -Further reading ---------------- - -The formal details of Plutus Core are in its specification :cite:p:`plutus-core-spec`. -The design is discussed in :cite:t:`plutus-report`. - -For more about Plutus Tx, see the :ref:`tutorial<plutus_tx_tutorial>`. diff --git a/doc/read-the-docs-site/extensions-flags-pragmas.rst b/doc/read-the-docs-site/extensions-flags-pragmas.rst deleted file mode 100644 index 2a16a28074e..00000000000 --- a/doc/read-the-docs-site/extensions-flags-pragmas.rst +++ /dev/null @@ -1,85 +0,0 @@ -.. _extensions_flags_pragmas: - -GHC Extensions, Flags and Pragmas -================================= - -Plutus Tx is a subset of Haskell and is compiled to Untyped Plutus Core by the Plutus Tx compiler, a GHC (Glasgow Haskell Compiler) plugin. - -In order to ensure the success and correct compilation of Plutus Tx programs, all Plutus Tx modules (that is, Haskell modules that contain code to be compiled by the Plutus Tx compiler) should use the following GHC extensions, flags and pragmas. - - -Extensions -------------------------------------------------- - -Plutus Tx modules should use the ``Strict`` extension: :: - - {-# LANGUAGE Strict #-} - -Unlike in Haskell, function applications in Plutus Tx are strict. -In other words, when evaluating ``(\x -> 42) (3 + 4)`` the expression ``3 + 4`` is evaluated first, before evaluating the function body (``42``), even though ``x`` is not used in the function body. -The ``Strict`` extension ensures that let bindings and patterns are also (by default) strict, for instance, evaluating -``let x = 3 + 4 in 42`` evaluates ``3 + 4`` first, even though ``x`` is not used. - -Bang patterns and lazy patterns can be used to explicitly specify whether a let binding is strict or non-strict, as in ``let !x = 3 + 4 in 42`` (strict) and ``let ~x = 3 + 4 in 42`` (non-strict). -At this time, it is not possible to make function applications non-strict: ``(\(~x) -> 42) (3 + 4)`` still evaluates ``3 + 4`` strictly. - -Making let bindings strict by default has the following advantages: - -* It makes let bindings and function applications semantically equivalent, e.g., ``let x = 3 + 4 in 42`` has the same semantics as ``(\x -> 42) (3 + 4)``. - This is what one would come to expect, as it is the case in most other programming languages, regardless of whether the language is strict or non-strict. -* Untyped Plutus Core programs, which are compiled from Plutus Tx, are not evaluated lazily (unlike Haskell), that is, there is no memoization of the results of evaluated expressions. - Thus using non-strict bindings can cause an expression to be inadvertently evaluated for an unbounded number of times. - Consider ``let x = <expensive> in \y -> x + y``. - If ``x`` is non-strict, ``<expensive>`` will be evalutated every time ``\y -> x + y`` is applied to an argument, which means it can be evaluated 0 time, 1 time, 2 times, or any number of times (this is not the case if lazy evaluation was employed). - On the other hand, if ``x`` is strict, it is always evaluated once, which is at most one more time than what is necessary. - -Flags -------------------------------------------------- - -GHC has a variety of optimization flags, many of which are on by default. -Although Plutus Tx is, syntactically, a subset of Haskell, it has different semantics and a different evaluation strategy (Haskell: non-strict semantics, call by need; Plutus Tx: strict semantics, call by value). -As a result, some GHC optimizations are not helpful for Plutus Tx programs, and can even be harmful, in the sense that it can make Plutus Tx programs less efficient, or fail to be compiled. -An example is the full laziness optimization, controlled by GHC flag ``-ffull-laziness``, which floats let bindings out of lambdas whenever possible. -Since Untyped Plutus Core does not employ lazy evaluation, the full laziness optimization is usually not beneficial, and can sometimes make a Plutus Tx program more expensive. -Conversely, some GHC features must be turned on in order to ensure Plutus Tx programs are compiled successfully. - -All Plutus Tx modules should use the following GHC flags: :: - - -fno-ignore-interface-pragmas - -fno-omit-interface-pragmas - -fno-full-laziness - -fno-spec-constr - -fno-specialise - -fno-strictness - -fno-unbox-strict-fields - -fno-unbox-small-strict-fields - -``-fno-ignore-interface-pragmas`` and ``-fno-omit-interface-pragmas`` ensure unfoldings of Plutus Tx functions are available. -The rest are GHC optimizations that are generally bad for Plutus Tx, and should thus be turned off. - -These flags can be specified either in a Haskell module, e.g.: :: - - {-# OPTIONS_GHC -fno-ignore-interface-pragmas #-} - -or in a build file. E.g., if your project is built using Cabal, you can add the flags to the ``.cabal`` files, like so: - - ghc-options: - -fno-ignore-interface-pragmas - -Note that this section only covers GHC flags, not Plutus Tx compiler flags. -Information about the latter can be found in :ref:`plutus_tx_options`. - -Pragmas -------------------------------------------------- - -All functions and methods should have the ``INLINEABLE`` pragma, so that their unfoldings are made available to the Plutus Tx compiler. - -The ``-fexpose-all-unfoldings`` flag also makes GHC expose all unfoldings, but unfoldings exposed this way can be more optimized than unfoldings exposed via ``INLINEABLE``. -In general we do not want GHC to perform optimizations, since GHC optimizes a program based on the assumption that it has non-strict semantics and is evaluated lazily (call by need), which is not true for Plutus Tx programs. -Therefore, ``INLINEABLE`` is preferred over ``-fexpose-all-unfoldings`` even though the latter is simpler. - -``-fexpose-all-unfoldings`` can be useful for functions that are generated by GHC and do not have the ``INLINEABLE`` pragma. -``-fspecialise`` and ``-fspec-constr`` are two examples of optimizations that can generate such functions. -The most reliable solution, however, is to simply turn these optimizations off. -Another option is to bump ``-funfolding-creation-threshold`` to make it more likely for GHC to retain unfoldings for functions without the ``INLINEABLE`` pragma. -``-fexpose-all-unfoldings`` should be used as a last resort. diff --git a/doc/read-the-docs-site/exts/hs_domain.py b/doc/read-the-docs-site/exts/hs_domain.py deleted file mode 100644 index dc7a8d40277..00000000000 --- a/doc/read-the-docs-site/exts/hs_domain.py +++ /dev/null @@ -1,28 +0,0 @@ -# This is a copy of the one from the module, it's here so that -# it's easier for people not using Nix to build the site. - -from sphinxcontrib.domaintools import * - -def hs_domain(): - return custom_domain('HaskellDomain', - name = 'hs', - label = "Haskell", - - elements = dict( - hsobj = dict( - objname = "Haskell entity", - ), - hstype = dict( - objname = "Haskell type", - ), - hsval = dict( - objname = "Haskell value", - ), - hsmod = dict( - objname = "Haskell module", - ), - ) - ) - -def setup(app): - app.add_domain(hs_domain()) diff --git a/doc/read-the-docs-site/howtos/Cip57Blueprint.hs b/doc/read-the-docs-site/howtos/Cip57Blueprint.hs deleted file mode 100644 index ebf255e5b2a..00000000000 --- a/doc/read-the-docs-site/howtos/Cip57Blueprint.hs +++ /dev/null @@ -1,164 +0,0 @@ --- BEGIN pragmas -{-# LANGUAGE DataKinds #-} -{-# LANGUAGE DeriveAnyClass #-} -{-# LANGUAGE DerivingStrategies #-} -{-# LANGUAGE FlexibleInstances #-} -{-# LANGUAGE GADTs #-} -{-# LANGUAGE KindSignatures #-} -{-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE RecordWildCards #-} -{-# LANGUAGE ScopedTypeVariables #-} -{-# LANGUAGE StandaloneDeriving #-} -{-# LANGUAGE Strict #-} -{-# LANGUAGE TemplateHaskell #-} -{-# LANGUAGE TypeApplications #-} -{-# LANGUAGE UndecidableInstances #-} -{-# LANGUAGE ViewPatterns #-} -{-# OPTIONS_GHC -Wno-missing-signatures #-} - --- END pragmas - -module Cip57Blueprint where - --- BEGIN imports -import PlutusTx.Blueprint - -import Data.ByteString (ByteString) -import Data.Kind (Type) -import Data.List.NonEmpty (NonEmpty) -import Data.Set (Set) -import Data.Set qualified as Set -import Data.Text (Text) -import GHC.Generics (Generic) -import PlutusLedgerApi.V3 (BuiltinData, ScriptContext, UnsafeFromData (..)) -import PlutusTx.Blueprint.TH (makeIsDataSchemaIndexed) -import PlutusTx.Lift (makeLift) -import PlutusTx.Prelude (BuiltinUnit, check) - --- END imports --- BEGIN MyParams annotations - -{-# ANN MkMyParams (SchemaTitle "Title for the MyParams definition") #-} -{-# ANN MkMyParams (SchemaDescription "Description for the MyParams definition") #-} - --- END MyParams annotations --- BEGIN MyRedeemer annotations - -{-# ANN R1 (SchemaComment "Left redeemer") #-} -{-# ANN R2 (SchemaComment "Right redeemer") #-} - --- END MyRedeemer annotations --- BEGIN interface types - -type MyDatum = Integer - -data MyRedeemer = R1 | R2 - -data MyParams = MkMyParams - { myBool :: Bool - , myInteger :: Integer - } - -$(makeLift ''MyParams) - --- END interface types --- BEGIN makeIsDataSchemaIndexed MyParams - -$(makeIsDataSchemaIndexed ''MyParams [('MkMyParams, 0)]) -$(makeIsDataSchemaIndexed ''MyRedeemer [('R1, 0), ('R2, 1)]) - --- END makeIsDataSchemaIndexed MyParams --- BEGIN generic instances - -deriving stock instance (Generic MyParams) -deriving stock instance (Generic MyRedeemer) - --- END generic instances --- BEGIN AsDefinitionId instances - -deriving anyclass instance (AsDefinitionId MyParams) -deriving anyclass instance (AsDefinitionId MyRedeemer) - --- END AsDefinitionId instances --- BEGIN validator - -typedValidator :: MyParams -> MyDatum -> MyRedeemer -> ScriptContext -> Bool -typedValidator MkMyParams{..} datum redeemer _scriptContext = - case redeemer of - R1 -> myBool - R2 -> myInteger == datum - -untypedValidator :: MyParams -> BuiltinData -> BuiltinData -> BuiltinData -> BuiltinUnit -untypedValidator params datum redeemer scriptContext = - check $ typedValidator params datum' redeemer' scriptContext' - where - datum' = unsafeFromBuiltinData datum - redeemer' = unsafeFromBuiltinData redeemer - scriptContext' = unsafeFromBuiltinData scriptContext - --- END validator --- BEGIN contract blueprint declaration - -myContractBlueprint :: ContractBlueprint -myContractBlueprint = - MkContractBlueprint - { contractId = Just "my-contract" - , contractPreamble = myPreamble -- defined below - , contractValidators = Set.singleton myValidator -- defined below - , contractDefinitions = deriveDefinitions @[MyParams, MyDatum, MyRedeemer] - } - --- END contract blueprint declaration --- BEGIN preamble declaration - -myPreamble :: Preamble -myPreamble = - MkPreamble - { preambleTitle = "My Contract" - , preambleDescription = Just "A simple contract" - , preambleVersion = "1.0.0" - , preamblePlutusVersion = PlutusV2 - , preambleLicense = Just "MIT" - } - --- END preamble declaration --- BEGIN validator blueprint declaration - -myValidator = - MkValidatorBlueprint - { validatorTitle = "My Validator" - , validatorDescription = Just "An example validator" - , validatorParameters = - [ MkParameterBlueprint - { parameterTitle = Just "My Validator Parameters" - , parameterDescription = Just "Compile-time validator parameters" - , parameterPurpose = Set.singleton Spend - , parameterSchema = definitionRef @MyParams - } - ] - , validatorRedeemer = - MkArgumentBlueprint - { argumentTitle = Just "My Redeemer" - , argumentDescription = Just "A redeemer that does something awesome" - , argumentPurpose = Set.fromList [Spend, Mint] - , argumentSchema = definitionRef @MyRedeemer - } - , validatorDatum = - Just - MkArgumentBlueprint - { argumentTitle = Just "My Datum" - , argumentDescription = Just "A datum that contains something awesome" - , argumentPurpose = Set.singleton Spend - , argumentSchema = definitionRef @MyDatum - } - , validatorCompiledCode = Nothing -- you can optionally provide the compiled code here - } - --- END validator blueprint declaration --- BEGIN write blueprint to file - --- >>> writeBlueprintToFile "plutus.json" -writeBlueprintToFile :: FilePath -> IO () -writeBlueprintToFile path = writeBlueprint path myContractBlueprint - --- END write blueprint to file diff --git a/doc/read-the-docs-site/howtos/asdata.rst b/doc/read-the-docs-site/howtos/asdata.rst deleted file mode 100644 index 4372aaf6869..00000000000 --- a/doc/read-the-docs-site/howtos/asdata.rst +++ /dev/null @@ -1,128 +0,0 @@ -.. highlight:: haskell -.. _asdata: - -How to use ``AsData`` to optimize scripts -========================================= - -The Plutus libraries contain a ``PlutusTx.asData`` module that contains Template Haskell (TH) code for encoding algebraic data types (ADTs) as ``Data`` objects in Plutus Core, as opposed to sums-of-products terms. -In general, ``asData`` pushes the burden of a computation nearer to where a value is used, in a crude sense making the evaluation less strict and more lazy. -This is intended for expert Plutus developers. - -Purpose -------- - -Values stored in datums or redeemers need to be encoded into ``Data`` objects. -When writing and optimizing a Plutus script, one of the challenges is finding the right approach to handling ``Data`` objects and how expensive that method will be. -To make an informed decision, you may need to benchmark and profile your smart contract code to measure its actual resource consumption. -The primary purpose of ``asData`` is to give you more options for how you want to handle ``Data``. - -Choice of two approoaches -------------------------- - -When handling ``Data`` objects, you have a choice of two pathways. -It is up to you to determine which pathway to use depending on your particular use case. -There are trade offs in performance and where errors occur. - -Approach one: proactively do all of the parsing -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The first approach is to parse the object immediately (using ``fromBuiltinData``) into a native Plutus Core datatype, which will also identify any problems with the structuring of the object. -However, this performs all the work up front. - -This is the normal style that has been promoted in the past. - -Approach two: only do the parsing if and when necessary -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -In the second approach, the script doesn't do any parsing work immediately, and instead does it later, when it needs to. -It might be that this saves you a lot of work, because you may never need to parse the entire object. -Instead, the script will just carry the item around as a ``Data`` object. - -Using this method, every time the script uses the object, it will look at it to find out if it has the right shape. -If it does have the right shape, it will deconstruct the ``Data`` object and do its processing; if not, it will throw an error. -This work may be repeated depending on how your script is written. -In some cases, you might do less work, in some cases you might do more work, depending on your specific use case. - -The Plutus Tx library provides some helper functions to make this second style easier to do, in the form of the ``asData`` function. - -Using ``asData`` ------------------- - -The ``asData`` function takes the definition of a data type and replaces it with an equivalent definition whose representation uses ``Data`` directly. - -For example, if we wanted to use it on the types from the :ref:`auction example<simple_example>`, we would put the datatype declarations inside a Template Haskell quote and call ``asData`` on it. - -.. literalinclude:: ../tutorials/AuctionValidator.hs - :start-after: BLOCK9 - :end-before: BLOCK10 - -This is normal Template Haskell that just generates new Haskell source, so you can see the code that it generates with `{-# OPTIONS_GHC -ddump-splices #-}`, but it will look something like this: - -.. code-block:: - - PlutusTx.asData - [d| data Bid' - = Bid' {bBidder' :: PubKeyHash, bAmount' :: Lovelace} - deriving newtype (Eq, Ord, ToBuitinData, FromBuiltinData, UnsafeFromBuiltinData) - data AuctionRedeemer' = NewBid' Bid | Payout' - deriving newtype (Eq, Ord, ToBuitinData, FromBuiltinData, UnsafeFromBuiltinData) |] - - ======> - - newtype Bid' = Bid'2 BuiltinData - deriving newtype (Eq, Ord, PlutusTx.ToData, FromData, UnsafeFromData) - - {-# COMPLETE Bid' #-} - pattern Bid' :: PubKeyHash -> Lovelace -> Bid' - pattern Bid' ... - - newtype AuctionRedeemer' = AuctionRedeemer'2 BuiltinData - deriving newtype (Eq, Ord, PlutusTx.ToData, FromData, UnsafeFromData) - - {-# COMPLETE NewBid', Payout' #-} - pattern NewBid' :: Bid -> AuctionRedeemer' - pattern NewBid' ... - pattern Payout' :: AuctionRedeemer' - pattern Payout' ... - -That is: - -- It creates a newtype wrapper around ``BuiltinData`` -- It creates pattern synonyms corresponding to each of the constructors you wrote - -This lets you write code "as if" you were using the original declaration that you wrote, while in fact the pattern synonyms are handling conversion to/from ``Data`` for you. -But any values of this type actually are represented with ``Data``. -That means that when we newtype-derive the instances for converting to and from ``Data`` we get the instances for ``BuiltinData`` - which are free! - -Nested fields -~~~~~~~~~~~~~ - -The most important caveat to using ``asData`` is that ``Data`` objects encoding datatypes must also encode the *fields* of the datatype as ``Data``. -However, ``asData`` tries to make the generated code a drop-in replacement for the original code, which means that when using the pattern synonyms they try to give you the fields as they were originally defined, which means *not* encoded as ``Data``. - -For example, in the ``Bid`` case above the ``bAmount`` field is originally defined to have type ``Lovelace`` which is a newtype around a Plutus Core builtin integer. -However, since we are using ``asData``, we need to encode the field into ``Data`` in order to store it. -That means that when you construct a ``Bid`` object you must take the ``Integer`` that you start with and convert it to ``Data``, and when you pattern match on a ``Bid`` object you do the reverse conversion. - -These conversions are potentially expensive! -If the ``bAmount`` field was a complex data structure, then every time we constructed or deconstructed a ``Bid`` object we would need to convert that datastructure to or from ``Data``. -Whether or not this is a problem depends on the precise situation, but in general: - -- If the field is a builtin integer or bytestring or a wrapper around those, it is probably cheap -- If the field is a datatype which is itself defined with ``asData`` then it is free (since it's already ``Data``!) -- If the field is a complex or large datatype then it is potentially expensive - -Therefore ``asData`` tends to work best when you use it for a type and also for all the types of its fields. - -Choosing an approach --------------------- - -There are a number of tradeoffs to consider: - -1. Plutus Tx's datatypes are faster to work with and easier to optimize than ``Data``, so if the resulting object is going to be processed in its entirety (or have parts of it repeatedly processed) then it can be better to parse it up-front. -2. If it is important to check that the entire structure is well-formed, then it is better to parse it up-front, since the conversion will check the entire structure for well-formedness immediately, rather than checking only the parts that are used when they are used. -3. If you do not want to use ``asData`` for the types of the fields, then it may be better to not use it at all in order to avoid conversion penalties at the use sites. - -Which approach is better is an empirical question and may vary in different cases. -A single script may wish to use different approaches in different places. -For example, your datum might contain a large state object which is usually only inspected in part (a good candidate for ``asData``), whereas your redeemer might be a small object which is inspected frequently to determine what to do (a good candidate for a native Plutus Tx datatype). diff --git a/doc/read-the-docs-site/howtos/exporting-a-blueprint.rst b/doc/read-the-docs-site/howtos/exporting-a-blueprint.rst deleted file mode 100644 index a48da0cb28a..00000000000 --- a/doc/read-the-docs-site/howtos/exporting-a-blueprint.rst +++ /dev/null @@ -1,310 +0,0 @@ -.. highlight:: haskell -.. _exporting_a_blueprint: - -How to produce a Plutus Contract Blueprint -========================================== - -Plutus Contract Blueprints (`CIP-0057`_) are used to document the binary interface of a -Plutus contract in a machine-readable format (JSON schema). - -A contract Blueprint can be produced by using the -`writeBlueprint` function exported by the `PlutusTx.Blueprint` module:: - - writeBlueprint - :: FilePath - -- ^ The file path where the blueprint will be written to, - -- e.g. '/tmp/plutus.json' - -> ContractBlueprint - -- ^ Contains all the necessary information to generate - -- a blueprint for a Plutus contract. - -> IO () - -In order to demonstrate the usage of the `writeBlueprint` function, -Let's consider the following example validator function and its interface: - -.. literalinclude:: Cip57Blueprint.hs - :start-after: BEGIN interface types - :end-before: END interface types - -.. literalinclude:: Cip57Blueprint.hs - :start-after: BEGIN validator - :end-before: END validator - -First of all we need to import required functionality: - -.. literalinclude:: Cip57Blueprint.hs - :start-after: BEGIN imports - :end-before: END imports - -Next we define a contract blueprint value of the following type: - -.. code-block:: haskell - - data ContractBlueprint where - MkContractBlueprint - :: forall referencedTypes - . { contractId :: Maybe Text - -- ^ An optional identifier for the contract. - , contractPreamble :: Preamble - -- ^ An object with meta-information about the contract. - , contractValidators :: Set (ValidatorBlueprint referencedTypes) - -- ^ A set of validator blueprints that are part of the contract. - , contractDefinitions :: Definitions referencedTypes - -- ^ A registry of schema definitions used across the blueprint. - } - -> ContractBlueprint - -.. note:: - - The 'referencedTypes' type parameter is used to track the types used in the contract - making sure their schemas are included in the blueprint and that they are referenced - in a type-safe way. - - The blueprint will contain JSON schema definitions for all the types used in the contract, - including the types **nested** within the top-level types (`MyParams`, `MyDatum`, `MyRedeemer`): - - * ``Integer`` - nested within `MyDatum` and `MyParams`. - * ``Bool`` - nested within `MyParams`. - - This way, the `referencedTypes` type variable is inferred to be the following list: - - .. code-block:: haskell - - '[ MyParams -- top-level type - , MyDatum -- top-level type - , MyRedeemer -- top-level type - , Integer -- nested type - , Bool -- nested type - ] - -We can construct a value of this type like in this: - -.. literalinclude:: Cip57Blueprint.hs - :start-after: BEGIN contract blueprint declaration - :end-before: END contract blueprint declaration - -The `contractId` field is optional and can be used to give a unique identifier to the contract. - -The `contractPreamble` field is a value of type `PlutusTx.Blueprint.Preamble` -contains a meta-information about the contract: - -.. code-block:: haskell - - data Preamble = MkPreamble - { preambleTitle :: Text - -- ^ A short and descriptive title of the contract application - , preambleDescription :: Maybe Text - -- ^ A more elaborate description - , preambleVersion :: Text - -- ^ A version number for the project. - , preamblePlutusVersion :: PlutusVersion - -- ^ The Plutus version assumed for all validators - , preambleLicense :: Maybe Text - -- ^ A license under which the specification - -- and contract code is distributed - } - -Here is an example construction: - -.. literalinclude:: Cip57Blueprint.hs - :start-after: BEGIN preamble declaration - :end-before: END preamble declaration - -The ``contractDefinitions`` field is a registry of schema definitions used across the blueprint. -It can be constructed using the ``deriveDefinitions`` function which automatically -constructs schema definitions for all the types its applied to inluding the types -nested within them. - -Since every type in the ``referencedTypes`` list is going to have its derived JSON-schema in the -``contractDefinitions`` registry under a certain unique ``DefinitionId`` key, we need to make sure -that it has: - -* an instance of the ``GHC.Generics.Generic`` type class: - - .. literalinclude:: Cip57Blueprint.hs - :start-after: BEGIN generic instances - :end-before: END generic instances - -* an instance of the ``AsDefinitionId`` type class. Most of the times it could be derived - generically with the ``anyclass`` strategy, for example: - - .. literalinclude:: Cip57Blueprint.hs - :start-after: BEGIN AsDefinitionId instances - :end-before: END AsDefinitionId instances - -* an instance of the ``HasSchema`` type class. If your validator exposes standard supported types - like ``Integer`` or ``Bool`` you don't need to define this instance. If your validator uses - custom types then you should be deriving it using the ``makeIsDataSchemaIndexed`` Template Haskell function, - which derives it alongside with the corresponding `ToBuiltinData`/`FromBuiltinData` instances, - for example: - - .. literalinclude:: Cip57Blueprint.hs - :start-after: BEGIN makeIsDataSchemaIndexed MyParams - :end-before: END makeIsDataSchemaIndexed MyParams - -Finally, we need to define a validator blueprint for each validator used in the contract. - -Our contract can contain one or more validators and for each one we need to provide -a description as a value of the following type: - - .. code-block:: haskell - - data ValidatorBlueprint (referencedTypes :: [Type]) = MkValidatorBlueprint - { validatorTitle :: Text - -- ^ A short and descriptive name for the validator. - , validatorDescription :: Maybe Text - -- ^ An informative description of the validator. - , validatorRedeemer :: ArgumentBlueprint referencedTypes - -- ^ A description of the redeemer format expected by this validator. - , validatorDatum :: Maybe (ArgumentBlueprint referencedTypes) - -- ^ A description of the datum format expected by this validator. - , validatorParameters :: Maybe (NonEmpty (ParameterBlueprint referencedTypes)) - -- ^ A list of parameters required by the script. - , validatorCompiledCode :: Maybe ByteString - -- ^ A full compiled and CBOR-encoded serialized flat script. - } - -In our example this would be: - -.. literalinclude:: Cip57Blueprint.hs - :start-after: BEGIN validator blueprint declaration - :end-before: END validator blueprint declaration - -The ``definitionRef`` function is used to reference a schema definition of a given type. It is -smart enough to discover the schema definition from the ``referencedType`` list and -fails to compile if the referenced type is not included. - -With all the pieces in place, we can now write the blueprint to a file: - -.. literalinclude:: Cip57Blueprint.hs - :start-after: BEGIN write blueprint to file - :end-before: END write blueprint to file - -Annotations ------------ - -Any `CIP-0057`_ blueprint type definition may include `optional keywords`_ to provide -additional information: - -* title -* description -* $comment - -Its possible to add these keywords to a Blueprint type definition by annotating the -Haskell type from which its derived with a corresponding annotation: - -* ``SchemaTitle`` -* ``SchemaDescription`` -* ``SchemaComment`` - -For example, to add a title and description to the ``MyParams`` type, -we can use the ``SchemaTitle`` and ``SchemaDescription`` annotations: - -.. literalinclude:: Cip57Blueprint.hs - :start-after: BEGIN MyParams annotations - :end-before: END MyParams annotations - -results in the following JSON schema definition: - -.. code-block:: json - - { - "title": "Title for the MyParams definition", - "description": "Description for the MyParams definition", - "dataType": "constructor", - "fields": [ - { "$ref": "#/definitions/Bool" }, - { "$ref": "#/definitions/Integer" } - ], - "index": 0 - } - -For sum-types its possible to annotate constructors: - -.. literalinclude:: Cip57Blueprint.hs - :start-after: BEGIN MyRedeemer annotations - :end-before: END MyRedeemer annotations - -to produce the JSON schema definition: - -.. code-block:: json - - { - "oneOf": [ - { - "$comment": "Left redeemer", - "dataType": "constructor", - "fields": [], - "index": 0 - }, - { - "$comment": "Right redeemer", - "dataType": "constructor", - "fields": [], - "index": 1 - } - ] - } - -It is also possible to annotate validator's parameter or argument **type** -(as opposed to annotating *constructors*): - -.. code-block:: haskell - - {-# ANN type MyParams (SchemaTitle "Example parameter title") #-} - {-# ANN type MyRedeemer (SchemaTitle "Example redeemer title") #-} - -and then instead of providing them literally - -.. code-block:: haskell - - myValidator = - MkValidatorBlueprint - { ... elided - , validatorParameters = - [ MkParameterBlueprint - { parameterTitle = Just "My Validator Parameters" - , parameterDescription = Just "Compile-time validator parameters" - , parameterPurpose = Set.singleton Spend - , parameterSchema = definitionRef @MyParams - } - ] - , validatorRedeemer = - MkArgumentBlueprint - { argumentTitle = Just "My Redeemer" - , argumentDescription = Just "A redeemer that does something awesome" - , argumentPurpose = Set.fromList [Spend, Mint] - , argumentSchema = definitionRef @MyRedeemer - } - , ... elided - } - -use TH to have a more concise version : - -.. code-block:: haskell - - myValidator = - MkValidatorBlueprint - { ... elided - , validatorParameters = - [ $(deriveParameterBlueprint ''MyParams (Set.singleton Purpose.Spend)) ] - , validatorRedeemer = - $(deriveArgumentBlueprint ''MyRedeemer (Set.fromList [Purpose.Spend, Purpose.Mint])) - , ... elided - } - - -Result ------- - -Here is the full `CIP-0057`_ blueprint produced by this "howto" example: - -.. literalinclude:: plutus.json - -.. note:: - You can find a more elaborate example of a contract blueprint in the ``Blueprint.Tests`` - module of the plutus repository. - -.. _CIP-0057: https://cips.cardano.org/cip/CIP-0057 -.. _optional keywords: https://cips.cardano.org/cip/CIP-0057#for-any-data-type - diff --git a/doc/read-the-docs-site/howtos/exporting-a-script.rst b/doc/read-the-docs-site/howtos/exporting-a-script.rst deleted file mode 100644 index b888aec959c..00000000000 --- a/doc/read-the-docs-site/howtos/exporting-a-script.rst +++ /dev/null @@ -1,46 +0,0 @@ -.. highlight:: haskell -.. _exporting_a_script: - -How to export scripts, datums and redeemers -=========================================== - -.. note:: - This guide uses the scripts from the :ref:`basic validators tutorial <basic_validators_tutorial>`. - -Since scripts must match their on-chain hashes exactly, it is important that the -scripts which an application uses do not accidentally change. For example, changing -the source code or updating dependencies or tooling may lead to small changes in -the script. As a result, the hash will change. In cases where the hashes must match -exactly, even changes which do not alter the functionality of the script can be problematic. - -For this reason, once you expect that you will not modify the on-chain part of your application more, it is sensible to *freeze* it by saving the final Plutus Core to a file. - -Additionally, while most Plutus Applications use scripts by directly submitting them as part of transactions from the application itself, it can be useful to be able to export a serialized script. -For example, you might want to submit it as part of a manually created transaction with the Cardano node CLI, or send it to another party for them to use. - -Fortunately, it is quite simple to do this. -Most of the types have typeclass instances for ``Serialise`` which allows translating directly into CBOR. -This applies to ``Validator``, ``Redeemer``, and ``Datum`` types. -If you want to create values that you can pass to the Cardano CLI, you will need to convert them to the appropriate types from ``cardano-api`` and use ``serialiseToTextEnvelope``. - -.. literalinclude:: ../tutorials/BasicValidators.hs - :start-after: BLOCK5 - :end-before: BLOCK6 - -``CompiledCode`` has a different serialization method, ``Flat``, but the principle is the same. - -The serialized form of ``CompiledCode`` can also be dumped using a plugin option: - -.. code-block:: haskell - - {-# OPTIONS_GHC -fplugin-opt PlutusTx.Plugin:dump-uplc #-} - -This will dump the output to a temporary file with a name based on the module name. -The filename will be printed to the console when compiling the source file. -You can then move it to a more permanent location. - -It can be read in conveniently with ``loadFromFile`` as an alternative to ``compile``. - -.. literalinclude:: ../tutorials/BasicValidators.hs - :start-after: BLOCK6 - :end-before: BLOCK7 diff --git a/doc/read-the-docs-site/howtos/index.rst b/doc/read-the-docs-site/howtos/index.rst deleted file mode 100644 index 270e01c3280..00000000000 --- a/doc/read-the-docs-site/howtos/index.rst +++ /dev/null @@ -1,13 +0,0 @@ -.. _plutus_howtos: - -How-to guides -============= - -.. toctree:: - :maxdepth: 3 - :titlesonly: - - asdata - exporting-a-script - exporting-a-blueprint - profiling-scripts diff --git a/doc/read-the-docs-site/howtos/myscript.uplc b/doc/read-the-docs-site/howtos/myscript.uplc deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/doc/read-the-docs-site/howtos/profiling-scripts.rst b/doc/read-the-docs-site/howtos/profiling-scripts.rst deleted file mode 100644 index 37ccf4bc125..00000000000 --- a/doc/read-the-docs-site/howtos/profiling-scripts.rst +++ /dev/null @@ -1,64 +0,0 @@ -.. highlight:: haskell -.. _profiling_scripts: - -How to profile the budget usage of Plutus scripts -================================================= - -Figuring out why your script takes more CPU or memory units than you expect can be tricky. -You can find out more detail about how these resources are being used in your script by *profiling* it, and viewing the results in a flamegraph. - -Compiling a script for profiling --------------------------------- - -Profiling requires compiling your script differently so that it will emit information that we can use to analyse its performance. - -.. note:: As with profiling in other languages, this additional instrumentation can affect how your program is optimized, so its behaviour may not be identical to the non-profiled version. - -To do this, you need to give a couple of options to the Plutus Tx plugin in the source file where your script is compiled. - -.. code-block:: haskell - - {-# OPTIONS_GHC -fplugin-opt PlutusTx.Plugin:profile-all #-} - {-# OPTIONS_GHC -fplugin-opt PlutusTx.Plugin:conservative-optimisation #-} - -This instructs the plugin to insert profiling instrumentation for all functions. -In the future there may be the option to profile a more targeted set of functions. -It also makes sure that any inserted profiling instrumentation code would not be optimized away during PlutusTx compilation. - -Acquiring an executable script ------------------------------- - -Profiling works by seeing how the budget is used as the script runs. -It therefore requires an executable script, which means that you need not only the validator script but all the arguments it receives. -You can get this fully-applied script from the emulator or from the Cardano node. - -Running the script ------------------- - -You can run the script with the ``uplc`` executable. - -.. note:: All the executables referred to here can be built from the ``plutus`` repository using ``cabal build``. - -.. code-block:: bash - - uplc evaluate -i myscript.flat --if flat --trace-mode LogsWithBudgets -o logs - -This runs the script using the trace mode that emits budget information, and puts the resulting logs in a file. -This will be a CSV file with three columns: a message indicating which function we are entering or exiting; the cumulative CPU used at that time; and the cumulative memory used at that time. - -Analysing the results ---------------------- - -We can then convert the logs into a flamegraph using the standard ``flamegraph.pl`` tool. -The ``traceToStacks`` executable turns the logs into a format that ``flamegraph.pl`` understands - -.. code-block:: bash - - cat logs | traceToStacks | flamegraph.pl > cpu.svg - cat logs | traceToStacks --column 2 | flamegraph.pl > mem.svg - -Since ``flamegraph.pl`` can only handle one metric at a time, ``traceToStacks`` has a ``--column`` argument to select the other column if you want to get a memory flamegraph. - -You can then view the resulting SVGs in a viewer of your choice, e.g. a web browser. - -Alternatively, there are other, more powerful, tools that understand the format produced by ``traceToStacks``, such as `speedscope <https://www.speedscope.app/>`_. diff --git a/doc/read-the-docs-site/index.rst b/doc/read-the-docs-site/index.rst deleted file mode 100644 index 3b7013904ce..00000000000 --- a/doc/read-the-docs-site/index.rst +++ /dev/null @@ -1,58 +0,0 @@ -Plutus Core and Plutus Tx user guide -================================================== - -Plutus Core ---------------------- - -The Plutus project consists of Plutus Core, the programming language used for -scripts on Cardano; tooling and compilers for compiling various intermediate -languages into Plutus Core; and Plutus Tx, the compiler that compiles the Haskell -source code into Plutus Core to form the on-chain part of a contract application. -All of this is used in combination to write Plutus Core scripts that run on the -Cardano blockchain. - -This documentation introduces the Plutus Core programming language and programming -with Plutus Tx. It includes explanations, tutorials, how-to instructions, -troubleshooting, and reference information. - -The intended audience of this documentation includes people who want to implement -smart contracts on the Cardano blockchain. This involves using Plutus Tx to write -scripts, requiring some knowledge of the Haskell programming language. - -This guide is also meant for certification companies, certification auditors, -and people who need an accurate specification. See, for example: - -* the `Cardano Ledger Specification <https://github.com/IntersectMBO/cardano-ledger#cardano-ledger>`_ and -* the `Plutus Core Specification <https://github.com/IntersectMBO/plutus#specifications-and-design>`_. - -The Plutus repository ----------------------------------- - -The `Plutus repository <https://github.com/IntersectMBO/plutus>`_ contains -the implementation, specification, and mechanized metatheory of Plutus Core. -It also contains the Plutus Tx compiler and the libraries, such as ``PlutusTx.List``, -for writing Haskell code that can be compiled to Plutus Core. - -.. toctree:: - :caption: Explore Plutus - :maxdepth: 2 - - explanations/index - simple-example - quick-start - extensions-flags-pragmas - tutorials/index - howtos/index - troubleshooting - -.. toctree:: - :caption: Architectural decision records - :maxdepth: 1 - - adr/index - -.. toctree:: - :caption: Reference - :maxdepth: 2 - - reference/index diff --git a/doc/read-the-docs-site/plutus-doc.cabal b/doc/read-the-docs-site/plutus-doc.cabal deleted file mode 100644 index c57a7650bbf..00000000000 --- a/doc/read-the-docs-site/plutus-doc.cabal +++ /dev/null @@ -1,105 +0,0 @@ -cabal-version: 2.2 -name: plutus-doc -version: 0.1.0.0 -license: Apache-2.0 -license-files: - LICENSE - NOTICE - -maintainer: jann.mueller@iohk.io -author: Michael Peyton Jones, Jann Mueller -synopsis: Plutus documentation -description: Plutus documentation -category: Language -build-type: Simple - -source-repository head - type: git - location: https://github.com/IntersectMBO/plutus - -common lang - default-language: Haskell2010 - default-extensions: - DeriveFoldable - DeriveFunctor - DeriveGeneric - DeriveLift - DeriveTraversable - ExplicitForAll - GeneralizedNewtypeDeriving - ImportQualifiedPost - MultiParamTypeClasses - ScopedTypeVariables - StandaloneDeriving - - -- See Plutus Tx readme for why we need the following flags: - -- -fobject-code -fno-ignore-interface-pragmas and -fno-omit-interface-pragmas - ghc-options: - -Wall -Wnoncanonical-monad-instances -Wincomplete-uni-patterns - -Wincomplete-record-updates -Wredundant-constraints -Widentities - -fobject-code -fno-ignore-interface-pragmas - -fno-omit-interface-pragmas - -common ghc-version-support - -- See the section on GHC versions in CONTRIBUTING - if (impl(ghc <9.6) || impl(ghc >=9.7)) - buildable: False - -executable doc-doctests - import: lang, ghc-version-support - - if (impl(ghcjs) || os(windows)) - buildable: False - - hs-source-dirs: tutorials howtos - main-is: Main.hs - ghc-options: -Wno-unused-imports - build-tool-depends: doctest:doctest - other-modules: - AuctionValidator - BasicPlutusTx - BasicPolicies - BasicValidators - Cip57Blueprint - - build-depends: - , aeson - , base >=4.9 && <5 - , bytestring - , containers - , flat ^>=0.6 - , lens - , plutus-core ^>=1.30 - , plutus-ledger-api ^>=1.30 - , plutus-tx ^>=1.30 - , prettyprinter - , random - , serialise - , template-haskell >=2.13.0.0 - , text - - if !(impl(ghcjs) || os(ghcjs)) - build-depends: plutus-tx-plugin - -executable quick-start - import: lang, ghc-version-support - - if (impl(ghcjs) || os(windows)) - buildable: False - - hs-source-dirs: tutorials - main-is: QuickStart.hs - build-tool-depends: doctest:doctest - other-modules: AuctionValidator - build-depends: - , aeson - , base >=4.9 && <5 - , base16-bytestring - , bytestring - , plutus-core ^>=1.30 - , plutus-ledger-api ^>=1.30 - , plutus-tx ^>=1.30 - , plutus-tx-plugin ^>=1.30 - - if !(impl(ghcjs) || os(ghcjs)) - build-depends: plutus-tx-plugin diff --git a/doc/read-the-docs-site/quick-start.rst b/doc/read-the-docs-site/quick-start.rst deleted file mode 100644 index b1a03838f3a..00000000000 --- a/doc/read-the-docs-site/quick-start.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. _quick_start: - -Quick Start -================================= - -The easiest way to create a Cardano smart contract is to use the `plutus-tx-template <https://github.com/IntersectMBO/plutus-tx-template>`_ repository template. - -Follow the instructions inside the `README.md` to setup your environment and run the example project. - -There are several other options for writing on-chain validators, such as `Aiken <https://aiken-lang.org/>`_ and `OpShin <https://github.com/OpShin/opshin>`_, and you can refer to their respective documentation for how to use them. diff --git a/doc/read-the-docs-site/reference/bibliography.rst b/doc/read-the-docs-site/reference/bibliography.rst deleted file mode 100644 index a5ef6e68180..00000000000 --- a/doc/read-the-docs-site/reference/bibliography.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. _bibliography: - -Bibliography -============ - -.. bibliography:: ../bibliography.bib diff --git a/doc/read-the-docs-site/reference/cardano/cost-model-parameters.rst b/doc/read-the-docs-site/reference/cardano/cost-model-parameters.rst deleted file mode 100644 index 7fb37c213ee..00000000000 --- a/doc/read-the-docs-site/reference/cardano/cost-model-parameters.rst +++ /dev/null @@ -1,18 +0,0 @@ -.. _cost_model_parameters: - -Cost model parameters -===================== - -The cost model for Plutus Core scripts has a number of parameters. -These are listed and briefly described below. -All of these parameters are listed in the Cardano protocol parameters and can be individually adjusted. - -.. csv-table:: Machine parameters - :file: ./machine-parameters.csv - :widths: 20, 30, 40 - :header-rows: 1 - -.. csv-table:: Builtin parameters - :file: ./builtin-parameters.csv - :widths: 20, 30, 40 - :header-rows: 1 diff --git a/doc/read-the-docs-site/reference/cardano/index.rst b/doc/read-the-docs-site/reference/cardano/index.rst deleted file mode 100644 index 8922c53ef9c..00000000000 --- a/doc/read-the-docs-site/reference/cardano/index.rst +++ /dev/null @@ -1,10 +0,0 @@ -Plutus on Cardano -================= - -.. toctree:: - :maxdepth: 3 - :titlesonly: - - language-changes - upgr-vasil-plutus-script-addresses - cost-model-parameters diff --git a/doc/read-the-docs-site/reference/cardano/language-changes.rst b/doc/read-the-docs-site/reference/cardano/language-changes.rst deleted file mode 100644 index 047cf77917c..00000000000 --- a/doc/read-the-docs-site/reference/cardano/language-changes.rst +++ /dev/null @@ -1,100 +0,0 @@ -.. _plutus_language_changes: - -Plutus language changes -======================= - -Language versions ------------------ - -See the documentation on :ref:`language versions <what_are_plutus_language_versions>` for an explanation of what they are. - -PlutusV1 -~~~~~~~~~~ - -``PlutusV1`` was the initial version of Plutus, introduced in the Alonzo hard fork. - -PlutusV2 -~~~~~~~~~~ - -``PlutusV2`` was introduced in the Vasil hard fork. - -The main changes in ``PlutusV2`` were to the interface to scripts. -The ``ScriptContext`` was extended to include the following information: - -- The full "redeemers" structure, which contains all the redeemers used in the transaction -- Reference inputs in the transaction (proposed in `CIP-31 <https://cips.cardano.org/cips/cip31/>`_) -- Inline datums in the transaction (proposed in `CIP-32 <https://cips.cardano.org/cips/cip32/>`_) -- Reference scripts in the transaction (proposed in `CIP-33 <https://cips.cardano.org/cips/cip33/>`_) - -Examples ------------- - -- `PlutusV2 functionalities <https://github.com/input-output-hk/cardano-node-wiki/blob/main/docs/reference/plutus/babbage-script-example.md>`_ -- `How to use reference inputs <https://github.com/perturbing/vasil-tests/blob/main/reference-inputs-cip-31.md>`_ -- `How to use inline datums <https://github.com/perturbing/vasil-tests/blob/main/inline-datums-cip-32.md>`_ -- `How to reference scripts <https://github.com/perturbing/vasil-tests/blob/main/referencing-scripts-cip-33.md>`_ -- `How to use collateral outputs <https://github.com/perturbing/vasil-tests/blob/main/collateral-output-cip-40.md>`_ - -Built-in functions and types ----------------------------- - -Built-in functions and types can be introduced with just a hard fork. -In some cases they are also available only in particular language versions. -This section indicates in which hard fork particular built-ins were introduced, and any language version constraints. - -Alonzo -~~~~~~ - -This is when the majority of the built-in types and functions were added to ``PlutusV1``. -You can find an enumeration of them in :cite:t:`plutus-core-spec`. - -Vasil -~~~~~ - -All of the built-in types and functions from ``PlutusV1`` were added to ``PlutusV2``. - -The following built-in function was added to ``PlutusV2`` only (ie, it is not available in ``PlutusV1``). - -- ``serializeData`` (proposed in `CIP-42 <https://cips.cardano.org/cips/cip42/>`_) - -PlutusV3 -~~~~~~~~~ - -Plutus and cryptography teams at IOG, in collaboration with `MLabs <https://mlabs.city/>`_, continue to develop Plutus capabilities. Starting with the release of `Cardano node v.8.8.0-pre <https://github.com/IntersectMBO/cardano-node/releases/tag/8.8.0-pre>`_, ``PlutusV3`` is available on `SanchoNet <https://sancho.network/>`_, introducing the Cardano community to governance features from `CIP-1694 <https://cips.cardano.org/cip/CIP-1694#goal>`_ in a controlled testnet environment. - -``PlutusV3`` is the new ledger language that enhances Plutus Core's cryptographic capabilities, offering the following benefits for the smart contract developer community: - -- Providing an updated script context that will let users see `CIP-1694 <https://cips.cardano.org/cip/CIP-1694#goal>`_ governance-related entities and voting features -- Interoperability between blockchains -- Advanced Plutus primitives -- Well-known and optimal cryptographic algorithms -- Support for porting of smart contracts from Ethereum -- Creating sidechain bridges -- Improving performance by adding a sums of products (SOPs) feature to support the direct encoding of differrent data types. - -Sums of products -~~~~~~~~~~~~~~~~ - -``PlutusV3`` introduces sums of products - a way of encoding data types that leads to smaller and cheaper scripts compared with `Scott encoding <https://en.wikipedia.org/wiki/Mogensen%E2%80%93Scott_encoding>`_, a common way of encoding data types in Plutus Core. - -The sums of products approach aims to boost script efficiency and improve code generation for Plutus Core compilers. The changes involve new term constructors for packing fields into constructor values and efficient tag inspection for case branches, potentially running programs 30% faster. For an in-depth discussion, see `CIP-85 <https://cips.cardano.org/cip/CIP-0085>`_. - -New cryptographic primitives -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -``PlutusV3`` provides new built-in primitives that expand the language's capabilities. - -- **BLS12-381**: A curve pairing that includes 17 primitives that support cryptographic curves. This is a benefit to sidechain specification implementation and `Mithril <https://iohk.io/en/blog/posts/2023/07/20/mithril-nears-mainnet-release/>`_ integration. -- **Blake2b-224**: A cryptographic hash function for on-chain computation of public-key hashes for the validation of transaction signatures. Supports community projects and contributes to Cardano's versatility. -- **Keccak-256**: A cryptographic hash function that produces a 256-bit (32-byte) hash value, commonly used for secure data verification. Supports Ethereum signature verification within scripts and cross-chain solutions. - -Bitwise primitives -~~~~~~~~~~~~~~~~~~~ - -PlutusV3 initially brings several new bitwise primitives (with more to come at later stages). The introduction of `CIP-58 <https://cips.cardano.org/cip/CIP-0058>`_ bitwise primitives will enable the following features: - -- Very low-level bit manipulations within Plutus, supporting the ability to execute high-performance data manipulation operations. -- Supporting the implementation of secure and robust cryptographic algorithms within Plutus. -- Facilitating standard, high-performance implementations for conversions between integers and bytestrings. - -``PlutusV3`` adds two bitwise primitives: ``integerToByteString`` and ``byteStringToInteger``. The remaining primitives will be added to ``PlutusV3`` gradually and will not require a new ledger language. diff --git a/doc/read-the-docs-site/reference/cardano/upgr-vasil-plutus-script-addresses.rst b/doc/read-the-docs-site/reference/cardano/upgr-vasil-plutus-script-addresses.rst deleted file mode 100644 index 56f21b3608b..00000000000 --- a/doc/read-the-docs-site/reference/cardano/upgr-vasil-plutus-script-addresses.rst +++ /dev/null @@ -1,42 +0,0 @@ -.. _upgrading_to_vasil_and_plutus_script_addresses: - -Upgrading to Vasil and Plutus script addresses -==================================================== - -A Plutus V2 script will not have the same hash value as a Plutus V1 script ----------------------------------------------------------------------------------- - -DApp developers might expect that when doing a migration from ``PlutusV1`` scripts -to ``PlutusV2`` scripts, the same source code, when recompiled, will generate the -same hash value of that script address. However, it is impossible for a compiled -``PlutusV2`` script to have the same script hash and address as a compiled ``PlutusV1`` script. - -Using the exact same script with different language versions will result in different -hashes. The exact same script (as in ``UPLC.Program``) can be used as a ``PlutusV1`` script -or a ``PlutusV2`` script, and since the language version is part of the hash, the two -hashes will be different. - -A Plutus V1 script will not necessarily have the same hash value when recompiled with a later version of the Plutus Compiler ----------------------------------------------------------------------------------------------------------------------------------- - -Suppose you write your Haskell source code (Plutus Tx), compile it into Plutus Core -code (PLC), generate its hash value, then use it in a transaction. If you don’t save -your compiled code, and then decide to use the same script in the future, you would -have to recompile it. This could result in a different hash value of the script address -even without upgrading from ``PlutusV1`` to ``PlutusV2`` scripts. This is because the hash -is computed based on the output of the compiled code. - -Given Plutus compiler version changes, changes in the dependencies, and multiple -other improvements, it is expected that the hash value of the script address will -change after the source code is recompiled. - -When to export and save the output of a compiled script ---------------------------------------------------------------------- - -Once you expect that you will not modify the on-chain part of your application and -you don’t want the hash value of your script address to change, the best way to -keep it the same is to save the output of your final compiled Plutus Core code (PLC) -to a file. - -For details on how to export scripts, please see :doc:`How to export scripts, datums and -redeemers </howtos/exporting-a-script>`. diff --git a/doc/read-the-docs-site/reference/glossary.rst b/doc/read-the-docs-site/reference/glossary.rst deleted file mode 100644 index 46f82eda749..00000000000 --- a/doc/read-the-docs-site/reference/glossary.rst +++ /dev/null @@ -1,113 +0,0 @@ -.. _glossary: - -Glossary -======== - -.. glossary:: - address - The address of an UTXO says where the output is "going". - The address stipulates the conditions for unlocking the output. - This can be a public key hash, or (in the Extended UTXO model) a script hash. - - Cardano - The blockchain system upon which the Plutus Platform is built. - - currency - A class of token whose minting is controlled by a particular monetary policy script. - On the Cardano ledger there is a special currency called Ada which can never be minted and which is controlled separately. - - datum - The data field on script outputs in the Extended UTXO model. - - Extended UTXO Model - The ledger model which the Plutus Platform relies on. - - This is implemented in the Alonzo hard fork of the Cardano blockchain. - - See :ref:`what_is_a_ledger`. - - minting - A transaction which mints tokens creates new tokens, providing that the corresponding minting policy script is satisfied. - The amount minted can be negative, in which case the tokens will be destroyed instead of created. - - minting policy script - A script which must be satisfied in order for a transaction to mint tokens of the corresponding currency. - - Hydra - A Layer 2 scalability solution for Cardano. See :cite:t:`chakravarty2020hydra`. - - distributed ledger - ledger - See :ref:`what_is_a_ledger`. - - Marlowe - A domain-specific language for writing financial contract applications. - - multi-asset - A generic term for a ledger which supports multiple different asset types natively. - - off-chain code - The part of a contract application’s code which runs off the chain, usually as a contract application. - - on-chain code - The part of a contract application’s code which runs on the chain (i.e. as scripts). - - Plutus Core - The programming language in which scripts on the Cardano blockchain are written. - Plutus Core is a small functional programming language — a formal specification is available with further details. - Plutus Core is not read or written by humans, it is a compilation target for other languages. - - See :ref:`what_is_plutus_foundation`. - - Plutus IR - An intermediate language that compiles to Plutus Core. - Plutus IR is not used by users, but rather as a compilation target on the way to Plutus Core. - However, it is significantly more human-readable than Plutus Core, so should be preferred in cases where humans may want to inspect the program. - - Plutus Platform - The combined software support for writing contract applications, - including: - - 1. Plutus Foundation, and - - 2. The Plutus Application Framework - - See :ref:`what_is_the_plutus_platform`. - - Plutus Tx - The libraries and compiler for compiling Haskell into Plutus Core to form the on-chain part of a contract application. - - redeemer - The argument to the validator script which is provided by the transaction which spends a script output. - - rollback - The result of the local node switching to the consensus chain. - - script - A generic term for an executable program used in the ledger. - In the Cardano blockchain, these are written in Plutus Core. - - script context - A data structure containing a summary of the transaction being validated, as well as a way of identifying the current script being run. - - script output - A UTXO locked by a script. - - token - A generic term for a native tradeable asset in the ledger. - - transaction output - Outputs produced by transactions. - They are consumed when they are spent by another transaction. - Typically, some kind of evidence is required to be able to spend a UTXO, such as a signature from a public key, or (in the Extended UTXO Model) satisfying a script. - - UTXO - An unspent :term:`transaction output` - - utxo congestion - The effect of multiple transactions attempting to spend the same :term:`transaction output`. - - validator script - The script attached to a script output in the Extended UTXO model. - Must be run and return positively in order for the output to be spent. - Determines the address of the output. diff --git a/doc/read-the-docs-site/reference/index.rst b/doc/read-the-docs-site/reference/index.rst deleted file mode 100644 index 9943e2e6756..00000000000 --- a/doc/read-the-docs-site/reference/index.rst +++ /dev/null @@ -1,11 +0,0 @@ -Reference -========= - -.. toctree:: - :maxdepth: 3 - :titlesonly: - - writing-scripts/index - cardano/index - glossary - bibliography diff --git a/doc/read-the-docs-site/reference/writing-scripts/common-weaknesses/double-satisfaction.rst b/doc/read-the-docs-site/reference/writing-scripts/common-weaknesses/double-satisfaction.rst deleted file mode 100644 index 827f440cb51..00000000000 --- a/doc/read-the-docs-site/reference/writing-scripts/common-weaknesses/double-satisfaction.rst +++ /dev/null @@ -1,73 +0,0 @@ -Double satisfaction -=================== - -Suppose we have a validator V that implements a typical “atomic swap” or “escrowed swap” between A and B where A goes first, i.e. V says: - - This output can only be spent if, in the same transaction, there is an output sending the agreed-upon payment (encoded in the output’s datum) to A. - -Now suppose that A and B have two swaps in progress, one for a token T1 at the price of 10 Ada, and one for a token T2 at the same price. -That means that there will exist two outputs, both locked by V. - -Now B constructs a transaction which spends both outputs, and creates one output addressed to A with 10 Ada (taking T1 and T2 for himself). - -.. figure:: double-satisfaction.png - - A diagram showing the transaction setup for the double satisfaction of two swaps. - -A naive implementation of V will just check that the transaction has *an* output to A with 10 Ada in it, and then be satisfied. -But this allows B to "double satisfy" the two validators, because they will both see the same output and be satisfied. -The end result is that B can get away with paying only 10 Ada to A, even though B's true liability to A is 20 Ada! - -What is going wrong here? -~~~~~~~~~~~~~~~~~~~~~~~~~ - -It is difficult to say exactly what is going wrong here. -Neither validator’s expectations are explicitly being violated. - -One way of looking at it is that this is a consequence of the fact that validators only *validate*, rather than *doing* things. -In a model like Ethereum's, where smart contracts *make transfers*, then two smart contracts would simply make two transfers, and there would be no problem. -But in the EUTXO model all a validator can do is try to ascertain whether its wishes have been carried out, which in this case is ambiguous. - -Following this metaphor, we can see how the same problem could arise in the real world. -Suppose that two tax auditors from two different departments come to visit you in turn to see if you’ve paid your taxes. -You come up with a clever scheme to confuse them. -Your tax liability to both departments is $10, so you make a single payment to the tax office's bank account for $10. -When the auditors arrive, you show them your books, containing the payment to the tax office. -They both leave satisfied. - -How do we solve this problem in the real world? -Well, the two tax offices might have different bank accounts, but more likely they would simply require you to use two different payment references! -That way, the payment that each auditor expect to see is unique, so they know it's for them. -We can do something similar in the EUTXO model, see the section on `Unique outputs`_ below. - -Risks -~~~~~ - -This is a serious problem for many kinds of application. -Any application that makes payments to specific parties needs to ensure that those payments are correctly identified and don't overlap with other payments. - -Solutions -~~~~~~~~~ - -It's possible that a solution will be developed that makes this weakness easier to avoid. -In the mean time, there are workarounds that developers can use. - -Unique outputs --------------- - -The simplest workaround is to ensure that the outputs which your scripts care about are unique. -This prevents them being confused with other outputs. - -In the swap example, if A had used a different key hashes as their payment addresses in each, then one output could not have satisfied both validators, since each one would want an output addressed to a different key hash. - -It is not too difficult to use unique outputs. -For payments to users, wallets typically already generate unique key hashes for every payment received. -For payments to script addresses it is a bit more complicated, and applications may wish to include the equivalent of a "payment reference" in the datum to keep things unique. - -Ban other scripts ------------------ - -A more draconian workaround is to for your script to insist that it runs in a transaction which is running no other scripts, so there is no risk of confusion. -Note that it is not enough to consider just validator scripts, minting and reward scripts must also be banned. - -However, this prevents even benign usage of multiple scripts in one transaction, which stops people from designing interesting interactions, and may force users to break up transactions unnecessarily. diff --git a/doc/read-the-docs-site/reference/writing-scripts/common-weaknesses/hard-limits.rst b/doc/read-the-docs-site/reference/writing-scripts/common-weaknesses/hard-limits.rst deleted file mode 100644 index 3488bdc757a..00000000000 --- a/doc/read-the-docs-site/reference/writing-scripts/common-weaknesses/hard-limits.rst +++ /dev/null @@ -1,72 +0,0 @@ -Hard limits -=========== - -Many resources on Cardano are limited in some fashion. At a high level, limits can be enforced in two ways: - -- *Hard limits*: these are limits which cannot be breached. Typically, these are implemented with specific thresholds, where exceeding the threshold causes a hard failure. -- *Soft limits*: these are limits which *can* be breached, but where there is a significant disincentive to do so. One way of implementing a soft limit is to have sharply increasing costs to using the resource beyond the soft limit. - -Hard limits are clear, easy to specify, and provide hard guarantees for the protocol, but they have the disadvantage that there is no way to evade the limit. -This means that there is a discontinuity at the limit: beforehand you can always do more by paying more, but after the limit there is nothing you can do. - -Currently, these resources on Cardano have hard limits: - -- Transaction size -- Block size -- UTXO size -- Script execution units - -If an application *requires* a transaction that exceeds one of these limits, then the application will be stuck unless the limit is increased or removed. -This is most common when scripts are involved, since a script can require a very particular shape of transaction, regardless of whether this exceeds limits. - -Examples: - -- A script requires providing a datum which is extremely large and exceeds the transaction size limit. -- A script which locks an output needs more execution units than the limit. -- A script requires creating a single output containing a very large amount of tokens, which exceeds the output size limit. - -Risks -~~~~~ - -This is typically an issue for applications that work with user-supplied data, or data that can grow in an unbounded way over time. -This can result in data which itself becomes large, or which requires a large amount of resources to process. - -For example: - -- Managing an arbitrary collection of assets (unbounded over time). -- Allowing user-specified payloads in datums (user-supplied unbounded data). - -Script size should not itself be a risk (since scripts and their sizes should generally be known ahead of time), but large scripts can reduce the amount of space available for other uses, heightening the risk of hitting a limit. - -Solutions -~~~~~~~~~ - -In the long run, hard limits may be increased, removed, or turned into soft limits. - -In the mean time, there are some approaches that developers can use to reduce the risk. - -Careful testing ---------------- - -It is important to test as many of the execution paths of your application as possible. -This is important for correctness, but also to ensure that there are not unexpected cases where script resource usage spikes. - -Bounding data usage -------------------- - -Carefully consider whether your application may rely on unbounded data, and try to avoid that. -For example, if your application needs to manage a large quantity of assets, try to split them across multiple UTXOs instead of relying on a single UTXO to hold them all. - -Providing datums when creating outputs --------------------------------------- - -Datum size issues are most likely to be discovered when an output is spent, because the datum is provided only as a hash on the output. -Insisting that the datum is provided in the transaction that creates the output can reveal that it is too big earlier in the process, allowing another path to be taken. -Depending on the application, this may still prevent it from progressing, if there is only one way to move forwards. - -If `CIP-32 <https://cips.cardano.org/cips/cip32/>`_ is implemented, this can be done conveniently by using inline datums, although that also risks hitting the output size limit. - -Reducing script size costs through reference inputs ---------------------------------------------------- - -If `CIP-33 <https://cips.cardano.org/cips/cip33/>`_ is implemented, then the contribution of scripts to transaction size can be massively reduced by using a reference script instead of including the entire script. diff --git a/doc/read-the-docs-site/reference/writing-scripts/common-weaknesses/index.rst b/doc/read-the-docs-site/reference/writing-scripts/common-weaknesses/index.rst deleted file mode 100644 index c90254ee7a0..00000000000 --- a/doc/read-the-docs-site/reference/writing-scripts/common-weaknesses/index.rst +++ /dev/null @@ -1,12 +0,0 @@ -Common weaknesses -================= - -This section provides a listing of common *weaknesses* in Plutus applications. -"Weakness" is used in the sense of the `Common Weakness Enumeration <https://cwe.mitre.org/>`_), as a potential source of vulnerabilities in applications. - -.. toctree:: - :maxdepth: 3 - :titlesonly: - - double-satisfaction - hard-limits diff --git a/doc/read-the-docs-site/reference/writing-scripts/compiler-options-table.rst b/doc/read-the-docs-site/reference/writing-scripts/compiler-options-table.rst deleted file mode 100644 index 1636aac858e..00000000000 --- a/doc/read-the-docs-site/reference/writing-scripts/compiler-options-table.rst +++ /dev/null @@ -1,183 +0,0 @@ - -.. - This file is generated by running plutus-tx-plugin:gen-plugin-opts-doc. - Do not modify by hand. - -.. list-table:: - :header-rows: 1 - :widths: 35 15 15 50 - - * - Option - - Value Type - - Default - - Description - - - * - ``conservative-optimisation`` - - Bool - - False - - When conservative optimisation is used, only the optimisations that never make the program worse (in terms of cost or size) are employed. Implies ``no-relaxed-float-in``, ``no-inline-constants``, and ``preserve-logging``. - - - * - ``context-level`` - - Int - - 1 - - Set context level for error messages. - - - * - ``coverage-all`` - - Bool - - False - - Add all available coverage annotations in the trace output - - - * - ``coverage-boolean`` - - Bool - - False - - Add boolean coverage annotations in the trace output - - - * - ``coverage-location`` - - Bool - - False - - Add location coverage annotations in the trace output - - - * - ``defer-errors`` - - Bool - - False - - If a compilation error happens and this option is turned on, the compilation error is suppressed and the original Haskell expression is replaced with a runtime-error expression. - - - * - ``dump-compilation-trace`` - - Bool - - False - - Dump compilation trace for debugging - - - * - ``dump-pir`` - - Bool - - False - - Dump Plutus IR - - - * - ``dump-plc`` - - Bool - - False - - Dump Typed Plutus Core - - - * - ``dump-uplc`` - - Bool - - False - - Dump Untyped Plutus Core - - - * - ``inline-constants`` - - Bool - - True - - Always inline constants. Inlining constants always reduces script costs slightly, but may increase script sizes if a large constant is used more than once. Implied by ``no-conservative-optimisation``. - - - * - ``max-cse-iterations`` - - Int - - 4 - - Set the max iterations for CSE - - - * - ``max-simplifier-iterations-pir`` - - Int - - 12 - - Set the max iterations for the PIR simplifier - - - * - ``max-simplifier-iterations-uplc`` - - Int - - 12 - - Set the max iterations for the UPLC simplifier - - - * - ``optimize`` - - Bool - - True - - Run optimization passes such as simplification and floating let-bindings. - - - * - ``pedantic`` - - Bool - - False - - Run type checker after each compilation pass - - - * - ``preserve-logging`` - - Bool - - False - - Turn off optimisations that may alter (i.e., add, remove or change the order of) trace messages. Implied by ``conservative-optimisation``. - - - * - ``profile-all`` - - ProfileOpts - - None - - Set profiling options to All, which adds tracing when entering and exiting a term. - - - * - ``relaxed-float-in`` - - Bool - - True - - Use a more aggressive float-in pass, which often leads to reduced costs but may occasionally lead to slightly increased costs. Implied by ``no-conservative-optimisation``. - - - * - ``remove-trace`` - - Bool - - False - - Eliminate calls to ``trace`` from Plutus Core - - - * - ``simplifier-beta`` - - Bool - - True - - Run a simplification pass that performs beta transformations - - - * - ``simplifier-inline`` - - Bool - - True - - Run a simplification pass that performs inlining - - - * - ``simplifier-remove-dead-bindings`` - - Bool - - True - - Run a simplification pass that removes dead bindings - - - * - ``simplifier-unwrap-cancel`` - - Bool - - True - - Run a simplification pass that cancels unwrap/wrap pairs - - - * - ``strictify-bindings`` - - Bool - - True - - Run a simplification pass that makes bindings stricter - - - * - ``target-version`` - - Version - - 1.1.0 - - The target Plutus Core language version - - - * - ``typecheck`` - - Bool - - True - - Perform type checking during compilation. - - - * - ``verbosity`` - - Verbosity - - Quiet - - Set logging verbosity level (0=Quiet, 1=Verbose, 2=Debug) - - diff --git a/doc/read-the-docs-site/reference/writing-scripts/compiler-options.rst b/doc/read-the-docs-site/reference/writing-scripts/compiler-options.rst deleted file mode 100644 index 94d7946b8ad..00000000000 --- a/doc/read-the-docs-site/reference/writing-scripts/compiler-options.rst +++ /dev/null @@ -1,16 +0,0 @@ -.. _plutus_tx_options: - -Plutus Tx Compiler Options -========================== - -These options can be passed to the compiler via the ``OPTIONS_GHC`` pragma, for instance - -.. code-block:: haskell - - {-# OPTIONS_GHC -fplugin-opt PlutusTx.Plugin:dump-uplc #-} - {-# OPTIONS_GHC -fplugin-opt PlutusTx.Plugin:max-simplifier-iterations=3 #-} - -For each boolean option, you can add a ``no-`` prefix to switch it off, such as -``no-typecheck``, ``no-simplifier-beta``. - -.. include:: ./compiler-options-table.rst diff --git a/doc/read-the-docs-site/reference/writing-scripts/examples.rst b/doc/read-the-docs-site/reference/writing-scripts/examples.rst deleted file mode 100644 index ff6aa465db3..00000000000 --- a/doc/read-the-docs-site/reference/writing-scripts/examples.rst +++ /dev/null @@ -1,17 +0,0 @@ -.. _plutus_examples: - -Examples -======== - -Full examples of Plutus Applications can be found in the ``plutus-apps`` `repository <https://github.com/IntersectMBO/plutus-apps/tree/master/plutus-use-cases>`_. -The source code can be found in the ``src`` and the tests in the ``test`` folder. - -The examples are a mixture of simple examples and more complex ones, including: - -- A crowdfunding application -- A futures application -- A stablecoin -- A uniswap clone - -.. important:: - Make sure to look at the same version of the `plutus-apps` repository as you are using, to ensure that the examples work. diff --git a/doc/read-the-docs-site/reference/writing-scripts/index.rst b/doc/read-the-docs-site/reference/writing-scripts/index.rst deleted file mode 100644 index f0aa7cd73b5..00000000000 --- a/doc/read-the-docs-site/reference/writing-scripts/index.rst +++ /dev/null @@ -1,11 +0,0 @@ -Writing scripts -=============== - -.. toctree:: - :maxdepth: 3 - :titlesonly: - - compiler-options - optimization - examples - common-weaknesses/index diff --git a/doc/read-the-docs-site/reference/writing-scripts/optimization.rst b/doc/read-the-docs-site/reference/writing-scripts/optimization.rst deleted file mode 100644 index 02a4d46237f..00000000000 --- a/doc/read-the-docs-site/reference/writing-scripts/optimization.rst +++ /dev/null @@ -1,96 +0,0 @@ -Optimization techniques for Plutus scripts -========================================== - -Identifying problem areas -~~~~~~~~~~~~~~~~~~~~~~~~~ - -In order to identify which parts of the script are responsible for significant resource consumption, you can use the :ref:`profiling support <profiling_scripts>`. - -Using strict let-bindings to avoid recomputation -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Let-bindings in Haskell are translated to strict let-bindings in Plutus IR, unless they look like they might do computation, in which case they are translated to non-strict let-bindings. -This is to avoid triggering effects (e.g. errors) at unexpected times. - -However, non-strict let-bindings are less efficient. -They do not evaluate their right-hand side immediately, instead they do so where the variable is used. -But they are not *lazy* (evaluating the right-hand side at most once), instead it may be evaluated once each time it is used. -You may wish to explicitly mark let-bindings as strict in Haskell to avoid this. - -.. code-block:: haskell - - -- This may be compiled non-strictly, which could result - -- in it being evaluated multiple times. However, it will - -- not be evaluated if we take the branch where it is not used. - let x = y + z - in if b then x + x else 1 - - -- This will be compiled strictly, but this will mean it - -- is evaluated even if we take the branch where it is not used. - let !x = y + z - in if b then x + x else 1 - -Specializing higher-order functions -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The use of higher-order functions is a common technique to facilitate code reuse. -Higher-order functions are widely used in the Plutus libraries but can be less efficient than specialized versions. - -For instance, the Plutus function ``findOwnInput`` makes use of the higher-order function ``find`` to search for the current script input. - -.. code-block:: haskell - - findOwnInput :: ScriptContext -> Maybe TxInInfo - findOwnInput ScriptContext{scriptContextTxInfo=TxInfo{txInfoInputs}, - scriptContextPurpose=Spending txOutRef} = - find (\TxInInfo{txInInfoOutRef} -> txInInfoOutRef == txOutRef) txInfoInputs - findOwnInput _ = Nothing - -This can be rewritten with a recursive function specialized to the specific check in question. - -.. code-block:: haskell - - findOwnInput :: ScriptContext -> Maybe TxInInfo - findOwnInput ScriptContext{scriptContextTxInfo=TxInfo{txInfoInputs}, - scriptContextPurpose=Spending txOutRef} = go txInfoInputs - where - go [] = Nothing - go (i@TxInInfo{txInInfoOutRef} : rest) = if txInInfoOutRef == txOutRef - then Just i - else go rest - findOwnInput _ = Nothing - -Common sub-expression elimination -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -When several instances of identical expressions exist within a function’s body, it’s worth replacing them with a single (strict) let-bound variable to hold the computed value. - -In this example, the cost of storing and retrieving ``n * c`` in a single variable is significantly less than recomputing it several times. - -.. code-block:: haskell - - let a' = a `divide` n * c - -- occurrence 1 - b' = b * (n * c) - -- occurrence 2 - C' = c + (n * c) - in - foo a' b' c' n - - -- Only one occurrence - let !t_mul = n * c - a' = a `divide` t_mul - b' = b * t_mul - c' = c + t_mul - in - foo a' b' c' n - -Using ``error`` for faster failure -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Plutus scripts have access to one impure effect, ``error``, which immediately terminates the script evaluation and will fail validation. -This failure is very fast, but it is also unrecoverable, so only use it in cases where you want to fail the entire validation if there is a failure. - -The Plutus libraries have some functions that fail with ``error``. -Usually these are given an ``unsafe`` prefix to their name. -For example, :hsobj:`PlutusTx.IsData.Class.FromData` parses a value of type ``Data``, returning the result in a ``Maybe`` value to indicate whether it succeeded or failed; whereas :hsobj:`PlutusTx.IsData.Class.UnsafeFromData` does the same but fails with ``error``. diff --git a/doc/read-the-docs-site/requirements.txt b/doc/read-the-docs-site/requirements.txt deleted file mode 100644 index 9a31c1dc8d1..00000000000 --- a/doc/read-the-docs-site/requirements.txt +++ /dev/null @@ -1,63 +0,0 @@ -alabaster==0.7.12 -argcomplete==2.0.0 -Babel==2.9.1 -Brotli==1.0.9 -brotlicffi==1.0.9.2 -certifi>=2023.07.22 -cffi==1.15.0 -chardet==4.0.0 -charset-normalizer==2.0.10 -commonmark==0.9.1 -dicttoxml==1.7.4 -docutils==0.17.1 -future==0.18.3 -idna==3.3 -imagesize==1.3.0 -importlib-metadata==4.10.1 -Jinja2==3.0.3 -latexcodec==2.0.1 -Markdown==3.3.6 -MarkupSafe==2.0.1 -more-itertools==8.12.0 -oset==0.1.3 -packaging==21.3 -pbr==5.8.0 -pexpect==4.8.0 -pip==21.1.3 -prettytable==3.0.0 -ptyprocess==0.7.0 -pybtex==0.24.0 -pybtex-docutils==1.0.1 -pycparser==2.21 -Pygments==2.15.0 -pyparsing==3.0.6 -PySocks==1.7.1 -PyStemmer==2.0.1 -pytz==2021.3 -PyYAML==6.0.1 -recommonmark==0.7.1 -requests==2.31.0 -requests-toolbelt==0.9.1 -six==1.16.0 -snowballstemmer==2.2.0 -Sphinx==4.4.0 -sphinx-markdown-tables==0.0.14 -sphinx-rtd-theme==1.0.0 -sphinxcontrib-apidoc==0.3.0 -sphinxcontrib-applehelp==1.0.2 -sphinxcontrib-bibtex==2.5.0 -sphinxcontrib-devhelp==1.0.2 -sphinxcontrib-domaintools==0.3 -sphinxcontrib-htmlhelp==2.0.0 -sphinxcontrib-jsmath==1.0.1 -sphinxcontrib-plantuml==0.22 -sphinxcontrib-qthelp==1.0.3 -sphinxcontrib-serializinghtml==1.1.5 -sphinxcontrib-websupport==1.2.4 -sphinxemoji==0.1.6 -toml==0.10.2 -urllib3>=1.26.18 -wcwidth==0.2.5 -xmltodict==0.12.0 -yq==2.13.0 -zipp==3.7.0 diff --git a/doc/read-the-docs-site/simple-example.rst b/doc/read-the-docs-site/simple-example.rst deleted file mode 100644 index 10408d1dae9..00000000000 --- a/doc/read-the-docs-site/simple-example.rst +++ /dev/null @@ -1,330 +0,0 @@ -.. _simple_example: - -Simple example -=================== - -Plutus script for an auction smart contract -------------------------------------------------- - -.. caution:: - This conceptual guide to an auction smart contract in Plutus introduces fundamentals for educational use. However, it is not optimized for security or efficiency and should not be deployed in production environments. This example simplifies some security aspects, leading to potential vulnerabilities. For detailed insights on developing secure smart contracts, please refer to the `Cardano Plutus Script Vulnerability Guide <https://library.mlabs.city/common-plutus-security-vulnerabilities>`_ by MLabs. - -Overview -~~~~~~~~~~~~ - -This example presents Plutus Tx code for a smart contract that controls the auction of an asset, which can be executed on the Cardano blockchain. In a sense, the smart contract is acting as the auctioneer in that it enforces certain rules and requirements in order for the auction to occur successfully. - -Plutus Tx is a high-level language for writing the validation logic of the contract, the logic that determines whether a transaction is allowed to spend a UTXO. -Plutus Tx is not a new language, but rather a subset of Haskell, and it is compiled into Plutus Core, a low-level language based on higher-order polymorphic lambda calculus. -Plutus Core is the code that runs on-chain, i.e., by every node validating the transaction, using an interpreter known as the CEK machine. -A Plutus Core program included in a Cardano transaction is often referred to as Plutus script or Plutus validator. - -To develop and deploy a smart contract, you would also need off-chain code for building transactions, submitting transactions, deploying smart contracts, querying for available UTXOs on the chain and so on. -You may also want a front-end interface for your smart contract for better user experiences. -In this example, we are not covering these aspects. - -Before we get to the Plutus Tx code, let's briefly go over some basic concepts, including UTXO, EUTXO, datum, redeemer and script context. - -The EUTXO model, datum, redeemer and script context ------------------------------------------------------ - -On the Cardano blockchain, a transaction contains an arbitrary number of inputs and an arbitrary number of outputs. -The effect of a transaction is to consume inputs and produce new outputs. - -UTXO (unspent transaction output) is the ledger model used by some blockchains, including bitcoin. -A UTXO is produced by a transaction, is immutable, and can only be spent once by another transaction. -In the original UTXO model, a UTXO contains a wallet address and a value (e.g., some amount of one or more currencies/tokens). -Inside a transaction, a UTXO is uniquely identified by the wallet address. -It can be spent by a transaction if the transaction is signed by the private key of the wallet address. - -The Extended UTXO model (EUTXO) extends the original model with a new kind of UTXO: script UTXO. -A script UTXO contains a value, a script (usually a Plutus script), a piece of data called *datum*, and is identified by the hash of the script. -For a transaction to spend it, the transaction must provide a piece of input data to the script, referred to as the *redeemer*. -The script is then run, and it must succeed in order for the transaction to be allowed to spend the UTXO. -In addition to the redeemer, the script also has access to the datum contained in the UTXO, as well as the details of the transaction trying to spend it. This is referred to as *script context*. - -Note that the only thing a Plutus script does is to determine whether a transaction can spend the script UTXO that contains the script. It is *not* responsible for such things as deciding whether it can spend a different UTXO, checking that the input value in a transaction equals the output value, or updating the state of the smart contract. -Consider it a pure function that returns ``Bool``. -Checking transaction validity is done by the ledger rules, and updating the state of a smart contract is done by constructing the transaction to produce a new script UTXO with an updated datum. - -The immutability of UTXOs leads to the extremely useful property of completely predictable transaction fees. -The Plutus script in a transaction can be run off-chain to determine the fee before submitting the transaction onto the blockchain. -When the transaction is submitted, if some UTXOs it tries to spend have already been spent, the transaction is immediately rejected without penalty. -If all input UTXOs still exist, and the Plutus script is invoked, the on-chain behavior would be exactly identical to the off-chain behavior. -This could not be achieved if transaction inputs were mutable, such as is the case in Ethereum's account-based model. - -See also: - - * `Plutus scripts <https://docs.cardano.org/smart-contracts/plutus/plutus-scripts/>`_ for further reading about scripts, and - * `Understanding the Extended UTXO model <https://docs.cardano.org/learn/eutxo-explainer>`_ - -Auction properties ----------------------- - -In this example, Alice wants to auction some asset she owns, represented as a non-fungible token (NFT) on Cardano. -She would like to create and deploy an auction smart contract with the following properties: - -* there is a minimum bid amount -* each bid must be higher than the previous highest bid (if any) -* once a new bid is made, the previous highest bid (if it exists) is immediately refunded -* there is a deadline for placing bids; once the deadline has passed, new bids are no longer accepted, the asset can be transferred to the highest bidder (or to the seller if there are no bids), and the highest bid (if one exists) can be transferred to the seller. - -Next, let's go through and discuss the Plutus Tx code we're using, shown below, for this specific example of an auction smart contract. - -Plutus Tx code ---------------------- - -Recall that Plutus Tx is a subset of Haskell. It is the source language one uses to write Plutus validators. -A Plutus Tx program is compiled into Plutus Core, which is interpreted on-chain. -The full Plutus Tx code for the auction smart contract can be found at `AuctionValidator.hs <https://github.com/IntersectMBO/plutus/blob/master/doc/read-the-docs-site/tutorials/AuctionValidator.hs>`_. - -Data types -~~~~~~~~~~~~~~~~~~~~~~~ - -First, let's define the following data types and instances for the validator: - -.. literalinclude:: tutorials/AuctionValidator.hs - :start-after: BLOCK1 - :end-before: BLOCK2 - -The purpose of ``makeLift`` and ``unstableMakeIsData`` will be explained later. - -Typically, writing a Plutus Tx validator script for a smart contract involves four data types: - -Contract parameters - These are fixed properties of the contract. - In our example, it is the ``AuctionParams`` type, containing properties like seller and minimum bid. - -Datum - This is part of a script UTXO. It should be thought of as the state of the contract. - Our example requires only one piece of state: the current highest bid. We use the ``AuctionDatum`` type to represent this. - -Redeemer - This is an input to the Plutus script provided by the transaction that is trying to spend a script UTXO. - If a smart contract is regarded as a state machine, the redeemer would be the input that ticks the state machine. - In our example, it is the ``AuctionRedeemer`` type: one may either submit a new bid, or request to close the auction and pay out the winner and the seller, both of which lead to a new state of the auction. - -Script context - This type contains the information of the transaction that the validator can inspect. - In our example, our validator verifies several conditions of the transaction; e.g., if it is a new bid, then it must be submitted before the auction's end time; the previous highest bid must be refunded to the previous bidder, etc. - - The script context type is fixed for each Plutus language version. For Plutus V2, for example, it is ``PlutusLedgerApi.V2.Contexts.ScriptContext``. - -.. note:: - When writing a Plutus validator using Plutus Tx, it is advisable to turn off Haskell's ``Prelude``. - Usage of most functions and methods in ``Prelude`` should be replaced by their counterparts in the ``plutus-tx`` library, e.g., ``PlutusTx.Eq.==``. - -Main validator function -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Now we are ready to introduce our main validator function. -The beginning of the function looks like the following: - -.. literalinclude:: tutorials/AuctionValidator.hs - :start-after: BLOCK2 - :end-before: BLOCK3 - -Depending on whether this transaction is attempting to submit a new bid or to request payout, the validator validates the corresponding set of conditions. - -The ``sufficientBid`` condition verifies that the bid amount is sufficient: - -.. literalinclude:: tutorials/AuctionValidator.hs - :start-after: BLOCK3 - :end-before: BLOCK4 - -The ``validBidTime`` condition verifies that the bid is submitted before the auction's deadline: - -.. literalinclude:: tutorials/AuctionValidator.hs - :start-after: BLOCK4 - :end-before: BLOCK5 - -Here, ``to x`` is the time interval ending at ``x``, i.e., ``(-∞, x]``. -``txInfoValidRange`` is a transaction property. -It is the time interval in which the transaction is allowed to go through phase-1 validation. -``contains`` takes two time intervals, and checks that the first interval completely includes the second. -Since the transaction may be validated at any point in the ``txInfoValidRange`` interval, we need to check that the entire interval lies within ``(-∞, apEndTime params]``. - -The reason we need the ``txInfoValidRange`` interval instead of using the exact time the transaction is validated is due to `determinism <https://iohk.io/en/blog/posts/2021/09/06/no-surprises-transaction-validation-on-cardano/>`_. -Using the exact time would be like calling a ``getCurrentTime`` function and branching based on the current time. -On the other hand, by using the ``txInfoValidRange`` interval, the same interval is always used by the same transaction. - -The ``refundsPreviousHighestBid`` condition checks that the transaction pays the previous highest bid to the previous bidder: - -.. literalinclude:: tutorials/AuctionValidator.hs - :start-after: BLOCK5 - :end-before: BLOCK6 - -It uses ``PlutusTx.find`` to find the transaction output (a UTXO) that pays to the previous bidder the amount equivalent to the previous highest bid, and verifies that there is at least one such output. - -``lovelaceValue amt`` constructs a ``Value`` with ``amt`` Lovelaces (the subunit of the Ada currency). -``Value`` is a multi-asset type that represents a collection of assets, including Ada. -An asset is identified by a (symbol, token) pair, where the symbol represents the policy that controls the minting and burning of tokens, and the token represents a particular kind of token manipulated by the policy. -``(adaSymbol, adaToken)`` is the special identifier for Ada/Lovelace. - -The ``correctNewDatum`` condition verifies that the transaction produces a *continuing output* containing the correct datum (the new highest bid): - -.. literalinclude:: tutorials/AuctionValidator.hs - :start-after: BLOCK6 - :end-before: BLOCK7 - -A "continuing output" is a transaction output that pays to the same script address from which we are currently spending. -Exactly one continuing output must be present in this example so that the next bidder can place a new bid. The new bid, in turn, will need to spend the continuing output and get validated by the same validator script. - -If the transaction is requesting a payout, the validator will then verify the other three conditions: `validPayoutTime`, `sellerGetsHighestBid` and `highestBidderGetsAsset`. -These conditions are similar to the ones already explained, so their details are omitted. - -Finally, we need to compile the validator written in Plutus Tx into Plutus Core, using the Plutus Tx compiler: - -.. literalinclude:: tutorials/AuctionValidator.hs - :start-after: BLOCK8 - :end-before: BLOCK9 - -The type of the compiled validator is ``CompiledCode (BuiltinData -> BuiltinData -> BuiltinData -> ())``, where type ``BuiltinData -> BuiltinData -> BuiltinData -> ()`` is also known as the *untyped validator*. -An untyped validator takes three ``BuiltinData`` arguments, representing the serialized datum, redeemer, and script context. -The call to ``PlutusTx.unsafeFromBuiltinData`` is the reason we need the ``PlutusTx.unstableMakeIsData`` shown before, which derives ``UnsafeFromData`` instances. -And instead of returning a ``Bool``, it simply returns ``()``, and the validation succeeds if the script evaluates without error. - -Note that ``AuctionParams`` is an argument of neither the untyped validator nor the final UPLC program. ``AuctionParams`` contains contract properties that don't change, so it is simply built into the validator. - -Since the Plutus Tx compiler compiles ``a`` into ``CompiledCode a``, we first use ``auctionUntypedValidator`` to obtain an untyped validator. -It takes ``AuctionParams``, and returns an untyped validator. -We then define the ``auctionValidatorScript`` function, which takes ``AuctionParams`` and returns the compiled Plutus Core program. - -To create the Plutus validator script for a particular auction, we call ``auctionValidatorScript`` with the appropriate ``AuctionParams``. -We will then be able to launch the auction on-chain by submitting a transaction that outputs a script UTXO with ``Nothing`` as the datum. - -.. note:: - It is worth noting that we must call ``PlutusTx.compile`` on the entire ``auctionUntypedValidator``, rather than applying it to ``params`` before compiling, as in ``$$(PlutusTx.compile [||auctionUntypedValidator params||])``. - The latter won't work, because everything being compiled (inside ``[||...||]``) must be known at compile time, but ``params`` is not: it can differ at runtime depending on what kind of auction we want to run. - Instead, we compile the entire ``auctionUntypedValidator`` into Plutus Core, then use ``liftCode`` to lift ``params`` into a Plutus Core term, and apply the compiled ``auctionUntypedValidator`` to it at the Plutus Core level. - To do so, we need the ``Lift`` instance for ``AuctionParams``, derived via ``PlutusTx.makeLift``. - -Life cycle of the auction smart contract -------------------------------------------- - -With the Plutus script written, Alice is now ready to start the auction smart contract. -At the outset, Alice creates a script UTXO whose address is the hash of the Plutus script, whose value is the token to be auctioned, and whose datum is ``Nothing``. -Recall that the datum represents the highest bid, and there's no bid yet. -This script UTXO also contains the script itself, so that nodes validating transactions that -try to spend this script UTXO have access to the script. - -Initial UTXO -~~~~~~~~~~~~~~~~~ - -Alice needs to create the initial UTXO transaction with the desired UTXO as an output. -The token being auctioned can either be minted by this transaction, or if it already exists in another UTXO on the ledger, the transaction should consume that UTXO as an input. -We will not go into the details here of how minting tokens works. - -The first bid -~~~~~~~~~~~~~~~~~~ - -Suppose Bob, the first bidder, wants to bid 100 Ada for Alice's NFT. -In order to do this, Bob creates a transaction that has at least two inputs and at least one output. - -The required inputs are (1) the script UTXO Alice created; (2) Bob's bid of 100 Ada. -The 100 Ada can come in one or multiple UTXOs. -Note that the input UTXOs must have a total value of more than 100 Ada, because in addition to the bid amount, they also need to cover the transaction fee. - -The required output is a script UTXO with the same address as the initial UTXO (since the Plutus script itself remains the same), which is known as a *continuing output*. -This continuing output UTXO should contain: - -* a datum that contains Bob's wallet address and Bob's bid amount (100 Ada). - - * Bob's wallet address is used to claim the token (if Bob ends up winning the auction) or receive the refund (if a higher bid is placed later). - -* a value: the token being auctioned plus the 100 Ada from Bob's bid. - -If the input UTXOs contain more Ada than 100 plus the transaction fee, then there should be additional output UTXOs that return the extra Ada. -Again, verifying that the input value of a transaction minus the transaction fee equals the output value (unless the transaction is burning tokens) is the responsibility of the ledger, not the Plutus script. - -In order for Bob's transaction to be able to spend the initial script UTXO Alice created, Bob's transaction must also contain a redeemer. -As shown in the code above, there are two kinds of redeemers in our example: ``NewBid Bid`` and ``Payout``. -The redeemer in Bob's transaction is a ``NewBid Bid`` where the ``Bid`` contains Bob's wallet address and bid amount. - -.. image:: first-bid-simple-auction-v3.png - :width: 700 - :alt: First bid diagram - -Once Bob's transaction is submitted, the node validating this transaction will run the Plutus script, which checks a number of conditions like whether the bid happens before the deadline, and whether the bid is high enough. -If the checks pass and everything else about the transaction is valid, the transaction will go through and be included in a block. -At this point, the initial UTXO created by Alice no longer exists on the ledger, since it has been spent by Bob's transaction. - -The second bid -~~~~~~~~~~~~~~~~~~~~ - -Next, suppose a second bidder, Charlie, wants to outbid Bob. Charlie wants to bid 200 Ada. - -Charlie will create another transaction. -This transaction should have an additional output compared to Bob's transaction: a UTXO that returns Bob's bid of 100 Ada. -Recall that this is one of the conditions checked by the Plutus script; the transaction is rejected if the refund output is missing. - -.. image:: second-bid-simple-auction-v3.png - :width: 700 - :alt: Second bid diagram - -Charlie's transaction needs to spend the script UTXO produced by Bob's transaction, so it also needs a redeemer. The redeemer is a ``NewBid Bid`` where ``Bid`` contains Charlie's wallet address and bid amount. -Charlie's transaction cannot spend the initial UTXO produced by Alice, since it has already been spent by Bob's transaction. - -Closing the auction -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Let’s assume that there won’t be another bid. -Once the deadline has passed, the auction can be closed. - -In order to do that, somebody has to create another transaction. -That could be Alice, who wants to collect the bid, or it could be Charlie, who wants to collect the NFT. -It can be anybody, but Alice and Charlie have an incentive to create it. - -This transaction has one required input: the script UTXO produced by Charlie's transaction, and two required outputs: (1) the payment of the auctioned token to Charlie; (2) the payment of 200 Ada to Alice. - -.. image:: closing-tx-simple-auction-v3.png - :width: 700 - :alt: Closing transaction diagram - -Libraries for writing Plutus Tx scripts -------------------------------------------- - -This auction example shows a relatively low-level way of writing scripts using Plutus Tx. -In practice, you may consider using a higher-level library that abstracts away some of the details. -For example, `plutus-apps <https://github.com/IntersectMBO/plutus-apps>`_ provides a constraint library for writing Plutus Tx. -Using these libraries, writing a validator in Plutus Tx becomes a matter of defining state transactions and the corresponding constraints, e.g., the condition ``refundsPreviousHighestBid`` can simply be written as ``Constraints.mustPayToPubKey bidder (lovelaceValue amt)``. - -Alternatives to Plutus Tx ------------------------------ - -There are languages other than Plutus Tx that can be compiled into Plutus Core. -We list some of them here for reference. However, we are not endorsing them; we are not representing their qualities nor their state of development regarding their production-readiness. - -* `Aiken <https://github.com/txpipe/aiken/>`_ -* `Hebi <https://github.com/OpShin/hebi>`_ -* `Helios <https://github.com/hyperion-bt/helios>`_ -* `OpShin <https://github.com/OpShin/opshin>`_ -* `plu-ts <https://github.com/HarmonicLabs/plu-ts>`_ -* `Plutarch <https://github.com/Plutonomicon/plutarch-core>`_ -* `Pluto <https://github.com/Plutonomicon/pluto>`_ - -Off-chain code ------------------------ - -Since the main purpose of this example is to introduce Plutus Tx and Plutus Core, we walked through only the on-chain code, which is responsible for validating transactions (in the sense of determining whether a transaction is allowed to spend a UTXO). - -In addition to the on-chain code, one typically needs the accompanying off-chain code and services to perform tasks like building transactions, submitting transactions, deploying smart contracts, querying for available UTXOs on the chain, etc. - -A full suite of solutions is `in development <https://plutus-apps.readthedocs.io/en/latest/plutus/explanations/plutus-tools-component-descriptions.html>`_. -See the `plutus-apps <https://github.com/IntersectMBO/plutus-apps>`_ repo and its accompanying `Plutus tools SDK user guide <https://plutus-apps.readthedocs.io/en/latest/>`_ for more details. - -Some other alternatives include `cardano-transaction-lib <https://github.com/Plutonomicon/cardano-transaction-lib>`_ and `lucid <https://github.com/spacebudz/lucid>`_. -All these are based on the `Cardano API <https://github.com/IntersectMBO/cardano-node/tree/master/cardano-api>`_, a low-level API that provides the capability to do the off-chain work with a local running node. - -See also: `Plutus application development <https://docs.cardano.org/smart-contracts/plutus/dapp-development/>`_, a high-level overview of resources for building DApps using Plutus. -A DApp is basically a smart contract plus a front end. - -Further reading ------------------------ - -The EUTXO model -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -* `The Extended UTXO Model <https://iohk.io/en/research/library/papers/the-extended-utxo-model/>`_ (Paper) -* `The EUTXO Handbook <https://www.essentialcardano.io/article/the-eutxo-handbook>`_ -* Blog Post: Cardano's Extended UTXO accounting model---built to support multi-assets and smart contracts (`part 1 <https://iohk.io/en/blog/posts/2021/03/11/cardanos-extended-utxo-accounting-model/>`_, `part 2 <https://iohk.io/en/blog/posts/2021/03/12/cardanos-extended-utxo-accounting-model-part-2/>`_) diff --git a/doc/read-the-docs-site/troubleshooting.rst b/doc/read-the-docs-site/troubleshooting.rst deleted file mode 100644 index bfad2b869db..00000000000 --- a/doc/read-the-docs-site/troubleshooting.rst +++ /dev/null @@ -1,134 +0,0 @@ -Troubleshooting -=============== - -Plugin errors -------------- - -Errors that start with ``GHC Core to PLC plugin`` are errors from ``plutus-tx-plugin``. - -.. note:: - Often these errors arise due to GHC doing something to the code before the plugin gets to see it. - So the solution is often to prevent GHC from doing this, which is why we often recommend trying various GHC compiler flags. - -Haddock -~~~~~~~ - -The plugin will typically fail when producing Haddock documentation. -However, in this instance you can simply tell it to defer any errors to runtime (which will never happen since you're building documentation). - -A easy way to do this is to add the following lines for your ``package-name`` to ``cabal.project``:: - - package package-name - haddock-options: "--optghc=-fplugin-opt PlutusTx.Plugin:defer-errors" - -Non-``INLINABLE`` functions -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -A common error is: - -``Error: Reference to a name which is not a local, a builtin, or an external INLINABLE function`` - -This means the plugin doesn't have access to implementation of the function, which it needs to be able to compile the function to Plutus Core. -Some things you can do to fix it: - -- Make sure to add ``{-# INLINABLE functionname #-}`` to your function. -- If there's an extra ``$c`` in front of the function name in the error, GHC has generated a specialised version of your function, - which prevents the plugin from accessing it. - You can turn off specialisation with ``{-# OPTIONS_GHC -fno-specialise #-}`` -- Other compiler options that can help: - - - ``{-# OPTIONS_GHC -fno-strictness #-}`` - - ``{-# OPTIONS_GHC -fno-ignore-interface-pragmas #-}`` - - ``{-# OPTIONS_GHC -fno-omit-interface-pragmas #-}`` - - ``{-# OPTIONS_GHC -fobject-code #-}`` - - Some more details are in `the plutus-tx readme <https://github.com/IntersectMBO/plutus/tree/master/plutus-tx#building-projects-with-plutus-tx>`_. - -Haskell Language Server issues ------------------------------- - -For more advice on using Haskell Language Server (HLS), consult the `CONTRIBUTING guide <https://github.com/IntersectMBO/plutus/blob/master/CONTRIBUTING.adoc>`_ in the ``plutus`` repository. - -Wrong version -~~~~~~~~~~~~~ - -``ghcide compiled against GHC 8.10.3 but currently using 8.10.2.20201118`` - -Your editor is not picking up the right version of the Haskell Language Server (HLS). -Plutus needs a custom version of HLS which is provided by Nix. -So get this working in your editor, make sure to do these two things: - -- Start your editor from ``nix develop`` (or use ``direnv``) -- Most editors are configured to use ``haskell-language-server-wrapper``, which is a wrapper which picks the right HLS version. - Change this to just ``haskell-language-server``. - -If this doesn't work, run ``which haskell-language-server`` in `nix develop`, and use this absolute path in the configuration of your editor. - -Error codes ------------ - -To reduce code size, on-chain errors only output codes. Here's what they mean: - -.. - This list can be generated with: - grep -rEoh "\btrace\w*\s+\"[^\"]{1,5}\"\s+(--.*|\{-\".*\"-\})" * - -- Ledger errors - - - ``L0: Input constraint`` - - ``L1: Output constraint`` - - ``L2: Missing datum`` - - ``L3: Wrong validation interval`` - - ``L4: Missing signature`` - - ``L5: Spent value not OK`` - - ``L6: Produced value not OK`` - - ``L7: Public key output not spent`` - - ``L8: Script output not spent`` - - ``L9: Value minted not OK`` - - ``La: MustPayToPubKey`` - - ``Lb: MustPayToOtherScript`` - - ``Lc: MustHashDatum`` - - ``Ld: checkScriptContext failed`` - - ``Le: Can't find any continuing outputs`` - - ``Lf: Can't get any continuing outputs`` - - ``Lg: Can't get validator and datum hashes`` - - ``Lh: Can't get currency symbol of the current validator script`` - - ``Li: DecodingError`` - -- Prelude errors - - ``PT1: TH Generation of Indexed Data Error`` - - ``PT2: PlutusTx.IsData.Class.unsafeFromBuiltinData: Void is not supported`` - - ``PT3: PlutusTx.Ratio: zero denominator`` - - ``PT5: PlutusTx.Prelude.check: input is 'False'`` - - ``PT6: PlutusTx.List.!!: negative index`` - - ``PT7: PlutusTx.List.!!: index too large`` - - ``PT8: PlutusTx.List.head: empty list`` - - ``PT9: PlutusTx.List.tail: empty list`` - - ``PT10: PlutusTx.Enum.().succ: bad argument`` - - ``PT11: PlutusTx.Enum.().pred: bad argument`` - - ``PT12: PlutusTx.Enum.().toEnum: bad argument`` - - ``PT13: PlutusTx.Enum.Bool.succ: bad argument`` - - ``PT14: PlutusTx.Enum.Bool.pred: bad argument`` - - ``PT15: PlutusTx.Enum.Bool.toEnum: bad argument`` - - ``PT16: PlutusTx.Enum.Ordering.succ: bad argument`` - - ``PT17: PlutusTx.Enum.Ordering.pred: bad argument`` - - ``PT18: PlutusTx.Enum.Ordering.toEnum: bad argument`` - - ``PT19: PlutusTx.List.last: empty list`` - - ``PT20: PlutusTx.Ratio.recip: reciprocal of zero`` - -- State machine errors - - - ``S0: Can't find validation input`` - - ``S1: State transition invalid - checks failed`` - - ``S2: Thread token not found`` - - ``S3: Non-zero value allocated in final state`` - - ``S4: State transition invalid - constraints not satisfied by ScriptContext`` - - ``S5: State transition invalid - constraints not satisfied by ScriptContext`` - - ``S6: State transition invalid - input is not a valid transition at the current state`` - - ``S7: Value minted different from expected`` - - ``S8: Pending transaction does not spend the designated transaction output`` - -- Currency errors - - - ``C0: Value minted different from expected`` - - ``C1: Pending transaction does not spend the designated transaction output`` diff --git a/doc/read-the-docs-site/tutorials/AuctionValidator.hs b/doc/read-the-docs-site/tutorials/AuctionValidator.hs deleted file mode 100644 index 64b002a3f6d..00000000000 --- a/doc/read-the-docs-site/tutorials/AuctionValidator.hs +++ /dev/null @@ -1,237 +0,0 @@ -{-# LANGUAGE DataKinds #-} -{-# LANGUAGE DerivingStrategies #-} -{-# LANGUAGE ImportQualifiedPost #-} -{-# LANGUAGE MultiParamTypeClasses #-} -{-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE PatternSynonyms #-} -{-# LANGUAGE ScopedTypeVariables #-} -{-# LANGUAGE Strict #-} -{-# LANGUAGE TemplateHaskell #-} -{-# LANGUAGE ViewPatterns #-} - -{-# OPTIONS_GHC -fno-ignore-interface-pragmas #-} -{-# OPTIONS_GHC -fno-omit-interface-pragmas #-} -{-# OPTIONS_GHC -fno-full-laziness #-} -{-# OPTIONS_GHC -fno-spec-constr #-} -{-# OPTIONS_GHC -fno-specialise #-} -{-# OPTIONS_GHC -fno-strictness #-} -{-# OPTIONS_GHC -fno-unbox-strict-fields #-} -{-# OPTIONS_GHC -fno-unbox-small-strict-fields #-} -{-# OPTIONS_GHC -fplugin-opt PlutusTx.Plugin:target-version=1.0.0 #-} - -module AuctionValidator where - -import PlutusCore.Version (plcVersion100) -import PlutusLedgerApi.V1 (Lovelace, POSIXTime, PubKeyHash, Value) -import PlutusLedgerApi.V1.Address (pubKeyHashAddress) -import PlutusLedgerApi.V1.Interval (contains) -import PlutusLedgerApi.V1.Value (lovelaceValue) -import PlutusLedgerApi.V2 (Datum (..), OutputDatum (..), ScriptContext (..), TxInfo (..), - TxOut (..), from, to) -import PlutusLedgerApi.V2.Contexts (getContinuingOutputs) -import PlutusTx -import PlutusTx.AsData qualified as PlutusTx -import PlutusTx.Prelude qualified as PlutusTx -import PlutusTx.Show qualified as PlutusTx - --- BLOCK1 -data AuctionParams = AuctionParams - { apSeller :: PubKeyHash, - -- ^ Seller's wallet address. The highest bid (if exists) will be sent to the seller. - -- If there is no bid, the asset auctioned will be sent to the seller. - apAsset :: Value, - -- ^ The asset being auctioned. It can be a single token, multiple tokens of the same - -- kind, or tokens of different kinds, and the token(s) can be fungible or non-fungible. - -- These can all be encoded as a `Value`. - apMinBid :: Lovelace, - -- ^ The minimum bid in Lovelace. - apEndTime :: POSIXTime - -- ^ The deadline for placing a bid. This is the earliest time the auction can be closed. - } - -PlutusTx.makeLift ''AuctionParams - -data Bid = Bid - { bBidder :: PubKeyHash, - -- ^ Bidder's wallet address. - bAmount :: Lovelace - -- ^ Bid amount in Lovelace. - } - -PlutusTx.deriveShow ''Bid -PlutusTx.unstableMakeIsData ''Bid - -instance PlutusTx.Eq Bid where - {-# INLINEABLE (==) #-} - bid == bid' = - bBidder bid PlutusTx.== bBidder bid' - PlutusTx.&& bAmount bid PlutusTx.== bAmount bid' - --- | Datum represents the state of a smart contract. In this case --- it contains the highest bid so far (if exists). -newtype AuctionDatum = AuctionDatum { adHighestBid :: Maybe Bid } - -PlutusTx.unstableMakeIsData ''AuctionDatum - --- | Redeemer is the input that changes the state of a smart contract. --- In this case it is either a new bid, or a request to close the auction --- and pay out the seller and the highest bidder. -data AuctionRedeemer = NewBid Bid | Payout - -PlutusTx.unstableMakeIsData ''AuctionRedeemer --- BLOCK2 - - -{-# INLINEABLE auctionTypedValidator #-} --- | Given the auction parameters, determines whether the transaction is allowed to --- spend the UTXO. -auctionTypedValidator :: - AuctionParams -> - AuctionDatum -> - AuctionRedeemer -> - ScriptContext -> - Bool -auctionTypedValidator params (AuctionDatum highestBid) redeemer ctx@(ScriptContext txInfo _) = - PlutusTx.and conditions - where - conditions :: [Bool] - conditions = case redeemer of - NewBid bid -> - [ -- The new bid must be higher than the highest bid. - -- If this is the first bid, it must be at least as high as the minimum bid. - sufficientBid bid, - -- The bid is not too late. - validBidTime, - -- The previous highest bid should be refunded. - refundsPreviousHighestBid, - -- A correct new datum is produced, containing the new highest bid. - correctNewDatum bid - ] - Payout -> - [ -- The payout is not too early. - validPayoutTime, - -- The seller gets the highest bid. - sellerGetsHighestBid, - -- The highest bidder gets the asset. - highestBidderGetsAsset - ] --- BLOCK3 - sufficientBid :: Bid -> Bool - sufficientBid (Bid _ amt) = case highestBid of - Just (Bid _ amt') -> amt PlutusTx.> amt' - Nothing -> amt PlutusTx.>= apMinBid params --- BLOCK4 - validBidTime :: Bool - validBidTime = to (apEndTime params) `contains` txInfoValidRange txInfo --- BLOCK5 - refundsPreviousHighestBid :: Bool - refundsPreviousHighestBid = case highestBid of - Nothing -> True - Just (Bid bidder amt) -> - case PlutusTx.find - (\o -> txOutAddress o PlutusTx.== pubKeyHashAddress bidder - PlutusTx.&& txOutValue o PlutusTx.== lovelaceValue amt) - (txInfoOutputs txInfo) of - Just _ -> True - Nothing -> PlutusTx.traceError ("Not found: refund output") --- BLOCK6 - correctNewDatum :: Bid -> Bool - correctNewDatum bid = case getContinuingOutputs ctx of - [o] -> case txOutDatum o of - OutputDatum (Datum newDatum) -> case PlutusTx.fromBuiltinData newDatum of - Just bid' -> - PlutusTx.traceIfFalse - ( "Invalid output datum: expected " - PlutusTx.<> PlutusTx.show bid - PlutusTx.<> ", but got " - PlutusTx.<> PlutusTx.show bid' - ) - (bid PlutusTx.== bid') - Nothing -> - PlutusTx.traceError - ( "Failed to decode output datum: " - PlutusTx.<> PlutusTx.show newDatum - ) - OutputDatumHash _ -> - PlutusTx.traceError "Expected OutputDatum, got OutputDatumHash" - NoOutputDatum -> - PlutusTx.traceError "Expected OutputDatum, got NoOutputDatum" - os -> - PlutusTx.traceError - ( "Expected exactly one continuing output, got " - PlutusTx.<> PlutusTx.show (PlutusTx.length os) - ) --- BLOCK7 - validPayoutTime :: Bool - validPayoutTime = from (apEndTime params) `contains` txInfoValidRange txInfo - - sellerGetsHighestBid :: Bool - sellerGetsHighestBid = case highestBid of - Nothing -> True - Just (Bid _ amt) -> - case PlutusTx.find - ( \o -> - txOutAddress o PlutusTx.== pubKeyHashAddress (apSeller params) - PlutusTx.&& txOutValue o PlutusTx.== lovelaceValue amt - ) - (txInfoOutputs txInfo) of - Just _ -> True - Nothing -> PlutusTx.traceError ("Not found: Output paid to seller") - - highestBidderGetsAsset :: Bool - highestBidderGetsAsset = case highestBid of - Nothing -> True - Just (Bid bidder _) -> - case PlutusTx.find - ( \o -> - txOutAddress o PlutusTx.== pubKeyHashAddress bidder - PlutusTx.&& txOutValue o PlutusTx.== apAsset params - ) - (txInfoOutputs txInfo) of - Just _ -> True - Nothing -> PlutusTx.traceError ("Not found: Output paid to highest bidder") --- BLOCK8 -{-# INLINEABLE auctionUntypedValidator #-} -auctionUntypedValidator :: - AuctionParams -> - BuiltinData -> - BuiltinData -> - BuiltinData -> - PlutusTx.BuiltinUnit -auctionUntypedValidator params datum redeemer ctx = - PlutusTx.check - ( auctionTypedValidator - params - (PlutusTx.unsafeFromBuiltinData datum) - (PlutusTx.unsafeFromBuiltinData redeemer) - (PlutusTx.unsafeFromBuiltinData ctx) - ) - -auctionValidatorScript :: - AuctionParams -> - CompiledCode (BuiltinData -> BuiltinData -> BuiltinData -> PlutusTx.BuiltinUnit) -auctionValidatorScript params = - $$(PlutusTx.compile [||auctionUntypedValidator||]) - `PlutusTx.unsafeApplyCode` PlutusTx.liftCode plcVersion100 params --- BLOCK9 -PlutusTx.asData [d| - data Bid' = Bid' - { bBidder' :: PubKeyHash, - -- ^ Bidder's wallet address. - bAmount' :: Lovelace - -- ^ Bid amount in Lovelace. - } - -- We can derive instances with the newtype strategy, and they - -- will be based on the instances for 'Data' - deriving newtype (Eq, Ord, PlutusTx.ToData, FromData, UnsafeFromData) - - -- don't do this for the datum, since it's just a newtype so - -- simply delegates to the underlying type - - -- | Redeemer is the input that changes the state of a smart contract. - -- In this case it is either a new bid, or a request to close the auction - -- and pay out the seller and the highest bidder. - data AuctionRedeemer' = NewBid' Bid | Payout' - deriving newtype (Eq, Ord, PlutusTx.ToData, FromData, UnsafeFromData) - |] --- BLOCK10 diff --git a/doc/read-the-docs-site/tutorials/BasicPolicies.hs b/doc/read-the-docs-site/tutorials/BasicPolicies.hs deleted file mode 100644 index abac078a5c0..00000000000 --- a/doc/read-the-docs-site/tutorials/BasicPolicies.hs +++ /dev/null @@ -1,57 +0,0 @@ -{-# LANGUAGE DataKinds #-} -{-# LANGUAGE NoImplicitPrelude #-} -{-# LANGUAGE ScopedTypeVariables #-} -{-# LANGUAGE TemplateHaskell #-} -module BasicPolicies where - -import PlutusCore.Default qualified as PLC -import PlutusTx -import PlutusTx.Lift -import PlutusTx.Prelude - -import PlutusLedgerApi.V1.Contexts -import PlutusLedgerApi.V1.Crypto -import PlutusLedgerApi.V1.Scripts -import PlutusLedgerApi.V1.Value -import PlutusTx.AssocMap qualified as Map - -tname :: TokenName -tname = error () - -key :: PubKeyHash -key = error () - --- BLOCK1 -oneAtATimePolicy :: () -> ScriptContext -> Bool -oneAtATimePolicy _ ctx = - -- 'ownCurrencySymbol' lets us get our own hash (= currency symbol) - -- from the context - let ownSymbol = ownCurrencySymbol ctx - txinfo = scriptContextTxInfo ctx - minted = txInfoMint txinfo - -- Here we're looking at some specific token name, which we - -- will assume we've got from elsewhere for now. - in currencyValueOf minted ownSymbol == singleton ownSymbol tname 1 - -{-# INLINABLE currencyValueOf #-} --- | Get the quantities of just the given 'CurrencySymbol' in the 'Value'. -currencyValueOf :: Value -> CurrencySymbol -> Value -currencyValueOf (Value m) c = case Map.lookup c m of - Nothing -> mempty - Just t -> Value (Map.singleton c t) --- BLOCK2 --- The 'plutus-ledger' package from 'plutus-apps' provides helper functions to automate --- some of this boilerplate. -oneAtATimePolicyUntyped :: BuiltinData -> BuiltinData -> BuiltinUnit --- 'check' fails with 'error' if the argument is not 'True'. -oneAtATimePolicyUntyped r c = - check $ oneAtATimePolicy (unsafeFromBuiltinData r) (unsafeFromBuiltinData c) - --- We can use 'compile' to turn a minting policy into a compiled Plutus Core program, --- just as for validator scripts. -oneAtATimeCompiled :: CompiledCode (BuiltinData -> BuiltinData -> BuiltinUnit) -oneAtATimeCompiled = $$(compile [|| oneAtATimePolicyUntyped ||]) --- BLOCK3 -singleSignerPolicy :: () -> ScriptContext -> Bool -singleSignerPolicy _ ctx = txSignedBy (scriptContextTxInfo ctx) key --- BLOCK4 diff --git a/doc/read-the-docs-site/tutorials/BasicValidators.hs b/doc/read-the-docs-site/tutorials/BasicValidators.hs deleted file mode 100644 index 24add791f32..00000000000 --- a/doc/read-the-docs-site/tutorials/BasicValidators.hs +++ /dev/null @@ -1,98 +0,0 @@ -{-# LANGUAGE DataKinds #-} -{-# LANGUAGE NoImplicitPrelude #-} -{-# LANGUAGE NumericUnderscores #-} -{-# LANGUAGE ScopedTypeVariables #-} -{-# LANGUAGE TemplateHaskell #-} -{-# LANGUAGE TypeApplications #-} -{-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE ViewPatterns #-} -module BasicValidators where - -import PlutusCore.Default qualified as PLC -import PlutusTx -import PlutusTx.Lift -import PlutusTx.Prelude - -import PlutusLedgerApi.Common -import PlutusLedgerApi.V1.Contexts -import PlutusLedgerApi.V1.Crypto -import PlutusLedgerApi.V1.Scripts -import PlutusLedgerApi.V1.Value - -import Data.ByteString qualified as BS -import Data.ByteString.Lazy qualified as BSL - -import Codec.Serialise -import Flat qualified - -import Prelude (IO, print, show) -import Prelude qualified as Haskell - -myKeyHash :: PubKeyHash -myKeyHash = Haskell.undefined - --- BLOCK1 --- | A specific date. -newtype Date = Date Integer --- | Either a specific end date, or "never". -data EndDate = Fixed Integer | Never - --- 'unstableMakeIsData' is a TemplateHaskell function that takes a type name and --- generates an 'IsData' instance definition for it. It should work for most --- types, including newtypes and sum types. For production usage use 'makeIsDataIndexed' --- which ensures that the output is stable across time. -unstableMakeIsData ''Date -unstableMakeIsData ''EndDate --- BLOCK2 -alwaysSucceeds :: BuiltinData -> BuiltinData -> BuiltinData -> () -alwaysSucceeds _ _ _ = () - -alwaysFails :: BuiltinData -> BuiltinData -> BuiltinData -> () -alwaysFails _ _ _ = error () - --- We can use 'compile' to turn a validator function into a compiled Plutus Core program. --- Here's a reminder of how to do it. -alwaysSucceedsCompiled :: CompiledCode (BuiltinData -> BuiltinData -> BuiltinData -> ()) -alwaysSucceedsCompiled = $$(compile [|| alwaysSucceeds ||]) --- BLOCK3 --- | Checks if a date is before the given end date. -beforeEnd :: Date -> EndDate -> Bool -beforeEnd (Date d) (Fixed e) = d <= e -beforeEnd (Date _) Never = True - --- | Check that the date in the redeemer is before the limit in the datum. -validateDate :: BuiltinData -> BuiltinData -> BuiltinData -> BuiltinUnit --- The 'check' function takes a 'Bool' and fails if it is false. --- This is handy since it's more natural to talk about booleans. -validateDate datum redeemer _ = - check $ beforeEnd (unsafeFromBuiltinData datum) (unsafeFromBuiltinData redeemer) - -dateValidator :: CompiledCode (BuiltinData -> BuiltinData -> BuiltinData -> BuiltinUnit) -dateValidator = $$(compile [|| validateDate ||]) --- BLOCK4 -validatePayment :: BuiltinData -> BuiltinData -> BuiltinData -> BuiltinUnit -validatePayment _ _ ctx = - let valCtx = unsafeFromBuiltinData ctx - -- The 'TxInfo' in the validation context is the representation of the - -- transaction being validated - txinfo = scriptContextTxInfo valCtx - -- 'pubKeyOutputsAt' collects the 'Value' at all outputs which pay to - -- the given public key hash - values = pubKeyOutputsAt myKeyHash txinfo - -- 'fold' sums up all the values, we assert that there must be more - -- than 1 Ada (more stuff is fine!) - in check $ lovelaceValueOf (fold values) >= 1_000_000 ---- BLOCK5 --- We can serialize a 'Validator' directly to CBOR -serialisedDateValidator :: SerialisedScript -serialisedDateValidator = serialiseCompiledCode dateValidator - --- The serialized forms can be written or read using normal Haskell IO functionality. -showSerialised :: IO () -showSerialised = print serialisedDateValidator --- BLOCK6 --- The 'loadFromFile' function is a drop-in replacement for 'compile', but --- takes the file path instead of the code to compile. -validatorCodeFromFile :: CompiledCode (() -> () -> ScriptContext -> Bool) -validatorCodeFromFile = $$(loadFromFile "howtos/myscript.uplc") --- BLOCK7 diff --git a/doc/read-the-docs-site/tutorials/Main.hs b/doc/read-the-docs-site/tutorials/Main.hs deleted file mode 100644 index cfc05d9557e..00000000000 --- a/doc/read-the-docs-site/tutorials/Main.hs +++ /dev/null @@ -1,6 +0,0 @@ -module Main where - -import PlutusTx () - -main :: IO () -main = pure () diff --git a/doc/read-the-docs-site/tutorials/basic-minting-policies.rst b/doc/read-the-docs-site/tutorials/basic-minting-policies.rst deleted file mode 100644 index e2ddadc8f4b..00000000000 --- a/doc/read-the-docs-site/tutorials/basic-minting-policies.rst +++ /dev/null @@ -1,64 +0,0 @@ -.. highlight:: haskell -.. _basic_minting_policies_tutorial: - -Writing basic minting policies -============================== - -:term:`Minting policy scripts<minting policy script>` are the programs that can be used to control the minting of new assets on the chain. -Minting policy scripts are much like :term:`validator scripts<validator script>`, and they are written similarly, so check out the :ref:`basic validators tutorial<basic_validators_tutorial>` before reading this one. - -Minting policy arguments ------------------------- - -Minting policies, like validators, receive some information from the validating node: - -- The :term:`redeemer`, which is some script-specific data specified by the party performing the minting. -- The :term:`script context`, which contains a representation of the spending transaction, as well as the hash of the minting policy which is currently being run. - -The minting policy is a function which receives these two inputs as *arguments*. -The validating node is responsible for passing them in and running the minting policy. -As with validator scripts, the arguments are passed encoded as :hsobj:`PlutusCore.Data.Data`. - -Plutus script context versions ------------------------------------- - -Minting policies have access to the :term:`script context` as their second argument. -Each version of Plutus minting policy scripts are differentiated only by their ``ScriptContext`` argument. - - See this example from the file ``MustSpendScriptOutput.hs`` (lines 340 to 422) showing code addressing `Versioned Policies for both Plutus V1 and Plutus V2 <https://github.com/IntersectMBO/plutus-apps/blob/05e394fb6188abbbe827ff8a51a24541a6386422/plutus-contract/test/Spec/TxConstraints/MustSpendScriptOutput.hs#L340-L422>`_. - -Minting policies tend to be particularly interested in the ``mint`` field, since the point of a minting policy is to control which tokens are minted. - -It is also important for a minting policy to look at the tokens in the ``mint`` field that use its own currency symbol i.e. policy hash. -Note that checking only a specific token name is usually not correct. -The minting policy must check for correct minting (or lack there of) of all token names under its currency symbol. -This requires the policy to refer to its own hash --- fortunately this is provided for us in the script context of a minting policy. - -Writing minting policies ------------------------- - -Here is an example that puts this together to make a simple policy that allows anyone to mint the token so long as they do it one token at a time. -To begin with, we'll write a version that works with structured types. - -.. literalinclude:: BasicPolicies.hs - :start-after: BLOCK1 - :end-before: BLOCK2 - -However, scripts are actually given their arguments as type ``Data``, and must signal failure with ``error``, so we need to wrap up our typed version to use it on-chain. - -.. literalinclude:: BasicPolicies.hs - :start-after: BLOCK2 - :end-before: BLOCK3 - -Other policy examples ---------------------- - -Probably the simplest useful policy is one that requires a specific key to have signed the transaction in order to do any minting. -This gives the key holder total control over the supply, but this is often sufficient for asset types where there is a centralized authority. - -.. literalinclude:: BasicPolicies.hs - :start-after: BLOCK3 - :end-before: BLOCK4 - -.. note:: - We don't need to check that this transaction actually mints any of our asset type: the ledger rules ensure that the minting policy will only be run if some of that asset is being minted. diff --git a/doc/read-the-docs-site/tutorials/basic-validators.rst b/doc/read-the-docs-site/tutorials/basic-validators.rst deleted file mode 100644 index 466d5513d5b..00000000000 --- a/doc/read-the-docs-site/tutorials/basic-validators.rst +++ /dev/null @@ -1,102 +0,0 @@ -.. highlight:: haskell -.. _basic_validators_tutorial: - -Writing basic validator scripts -=============================== - -:term:`Validator scripts<validator script>` are the programs that can be used to lock transaction outputs on the chain. -Validator scripts are :term:`Plutus Core` programs, but we can use :term:`Plutus Tx` to write them easily in Haskell. -Check out the :ref:`Plutus Tx tutorial<plutus_tx_tutorial>` before reading this one. - -Validator arguments -------------------- - -Validators receive some information from the validating node: - -- The :term:`redeemer`, which is some script-specific data specified by the party spending the output. -- The :term:`datum`, which is some script-specific data specified by the party who created the output. -- The :term:`script context`, which contains a representation of the spending transaction, as well as the index of the input whose validator is currently being run. - -The validator is a function which receives these three inputs as *arguments*. -The validating node is responsible for passing them in and running the validator. - -The ``Data`` type ------------------ - -But how are the validator's arguments passed? -Different scripts are going to expect different sorts of values in their datums and redeemers. - -The answer is that we pass the arguments as a *generic* structured data type :hsobj:`PlutusCore.Data.Data`. -``Data`` is designed to make it easy to encode structured data into it, and is essentially a subset of CBOR. - -Validator scripts take three arguments of type ``Data``. -Since ``Data`` is represented as a builtin type in Plutus Core, we use a special Haskell type ``BuiltinData`` rather than the underlying ``Data`` type - -However, you will typically not want to use ``BuiltinData`` directly in your program, rather you will want to use your own datatypes. -We can easily convert to and from ``BuiltinData`` with the :hsobj:`PlutusTx.IsData.Class.ToData`, :hsobj:`PlutusTx.IsData.Class.FromData`, and :hsobj:`PlutusTx.IsData.Class.UnsafeFromData` typeclasses. -You usually don't need to write your own instances of these classes. -Instead, you can use the ``unstableMakeIsData`` or ``makeIsDataIndexed`` Template Haskell functions to generate one. - -.. note:: - The :hsobj:`PlutusTx.IsData.Class.UnsafeFromData` class provides ``unsafeFromBuiltinData``, which is the same as ``fromBuiltinData``, but is faster and fails with ``error`` rather than returning a ``Maybe``. - We'll use ``unsafeFromBuiltinData`` in this tutorial, but sometimes the other version is useful. - -.. literalinclude:: BasicValidators.hs - :start-after: BLOCK1 - :end-before: BLOCK2 - -Signaling failure ------------------ - -The most important thing that a validator can do is *fail*. -This indicates that the attempt to spend the output is invalid and that transaction validation should fail. -A validator succeeds if it does not explicitly fail. -The actual value returned by the validator is irrelevant. - -How does a validator fail? -It does so by using the :hsobj:`PlutusTx.Builtins.error` builtin. -Some other builtins may also trigger failure if they are used incorrectly (e.g. ``1/0``). - -Validator functions -------------------- - -We write validator scripts as Haskell functions, which we compile with Plutus Tx into Plutus Core. -The type of a validator function is ``BuiltinData -> BuiltinData -> BuiltinData -> ()``, that is, a function which takes three arguments of type ``BuiltinData``, and returns a value of type ``()`` ("unit" or "the empty tuple" -- since the return type doesn't matter we just pick something trivial). - -Here are two examples of simple validators that always succeed and always fail, respectively: - -.. literalinclude:: BasicValidators.hs - :start-after: BLOCK2 - :end-before: BLOCK3 - -If we want to write a validator that uses types other than ``BuiltinData``, we'll need to use the functions from :hsobj:`PlutusTx.IsData.Class.FromData` to decode them. -Importantly, ``unsafeFromBuiltinData`` can fail: in our example if the ``BuiltinData`` in the second argument is *not* a correctly encoded ``Date`` then it will fail the whole validation with ``error``, which is usually what we want if we have bad arguments. - -.. TODO: write a HOWTO about error reporting - -.. important:: - Unfortunately there's no way to provide failure diagnostics when a validator fails on chain -- it just fails. - However, since transaction validation is entirely deterministic, you'll always be informed of this before you submit the transaction to the chain, so you can debug it locally using ``traceError``. - -Here's an example that uses our date types to check whether the date which was provided is less than the stored limit in the datum. - -.. literalinclude:: BasicValidators.hs - :start-after: BLOCK3 - :end-before: BLOCK4 - -Plutus script context versions ------------------------------------- - -Validators have access to the :term:`script context` as their third argument. -Each version of Plutus validators are differentiated only by their ``ScriptContext`` argument. - - See this example from the file ``MustSpendScriptOutput.hs`` (lines 340 to 422) showing code addressing `Versioned Policies for both Plutus V1 and Plutus V2 <https://github.com/IntersectMBO/plutus-apps/blob/05e394fb6188abbbe827ff8a51a24541a6386422/plutus-contract/test/Spec/TxConstraints/MustSpendScriptOutput.hs#L340-L422>`_. - -The script context gives validators a great deal of power, because it allows them to inspect other inputs and outputs of the current transaction. -For example, here is a validator that will only accept the transaction if a particular payment is made as part of it. - -.. literalinclude:: BasicValidators.hs - :start-after: BLOCK4 - :end-before: BLOCK5 - -This makes use of some useful functions for working with script contexts. diff --git a/doc/read-the-docs-site/tutorials/index.rst b/doc/read-the-docs-site/tutorials/index.rst deleted file mode 100644 index e77c3c51b12..00000000000 --- a/doc/read-the-docs-site/tutorials/index.rst +++ /dev/null @@ -1,12 +0,0 @@ -.. _plutus_tutorials: - -Tutorials -========= - -.. toctree:: - :maxdepth: 3 - :titlesonly: - - plutus-tx - basic-validators - basic-minting-policies diff --git a/doc/read-the-docs-site/tutorials/plutus-tx.rst b/doc/read-the-docs-site/tutorials/plutus-tx.rst deleted file mode 100644 index bc328dfb03a..00000000000 --- a/doc/read-the-docs-site/tutorials/plutus-tx.rst +++ /dev/null @@ -1,219 +0,0 @@ -.. highlight:: haskell -.. _plutus_tx_tutorial: - -Using Plutus Tx -=============== - -Plutus applications are written as a single Haskell program, which describes both the code that runs off the chain (on a user’s computer, or in their wallet, for example), and on the chain as part of transaction validation. - -The parts of the program that describe the on-chain code are still just Haskell, but they are compiled into :term:`Plutus Core`, rather than into the normal compilation target language. -We refer to them as :term:`Plutus Tx` programs (where 'Tx' indicates that these components usually go into transactions). - -.. warning:: - - Strictly speaking, while the majority of simple Haskell will work, only a subset of Haskell is supported by the Plutus Tx compiler. - The Plutus Tx compiler will tell you if you are attempting to use an unsupported component. - -The key technique that we use to implement Plutus Tx is called *staged metaprogramming*, which means that the main Haskell program generates *another* program (in this case, the Plutus Core program that will run on the blockchain). -Plutus Tx is the mechanism we use to write those programs, but since Plutus Tx is just part of the main Haskell program, we can share types and definitions between the two. - -.. _template_haskell_preliminaries: - -Template Haskell preliminaries ------------------------------- - -Plutus Tx uses Haskell's metaprogramming support, Template Haskell, for two main reasons: - -- Template Haskell enables us to work at compile time, which is when we do Plutus Tx compilation. -- It allows us to wire up the machinery that invokes the Plutus Tx compiler. - -Template Haskell is very versatile, but we only use a few features. - -Template Haskell begins with *quotes*. -A Template Haskell quote is a Haskell expression ``e`` inside special brackets ``[|| e ||]``. -It has type ``Q (TExp a)`` where ``e`` has type ``a``. ``TExp a`` is a *representation* an expression of type ``a``, i.e. the syntax of the actual Haskell expression that was quoted. -The quote lives in the type ``Q`` of quotes, which isn’t very interesting for us. - -.. note:: - - There is also an abbreviation ``TExpQ a`` for ``Q (TExp a)``, which avoids some parentheses. - -You can *splice* a quote into your program using the ``$$`` operator. -This inserts the syntax represented by the quote into the program at the point where the splice is written. - -Simply put, a quote allows us to talk about Haskell programs as *values*. - -The Plutus Tx compiler compiles Haskell *expressions* (not values!), so naturally it takes a quote (representing an expression) as an argument. -The result is a new quote, this time for a Haskell program that represents the *compiled* program. -In Haskell, the type of :hsobj:`PlutusTx.TH.compile` is ``TExpQ a → TExpQ (CompiledCode a)``. -This is just what we already said: - -- ``TExpQ a`` is a quoted representing a program of type ``a``. - -- ``TExpQ (CompiledCode a)`` is quote representing a - compiled Plutus Core program. - -.. note:: - - :hsobj:`PlutusTx.CompiledCode` also has a type parameter ``a``, which corresponds to the type of the original expression. - This lets us "remember" the type of the original Haskell program we compiled. - -Since :hsobj:`PlutusTx.TH.compile` produces a quote, to use the result we need to splice it back into our program. -The Plutus Tx compiler runs when compiling the main program, and the compiled program will be inserted into the main program. - -This is all you need to know about the Template Haskell! -We often use the same simple pattern: make a quote, immediately call :hsobj:`PlutusTx.TH.compile`, and then splice the result back in. - -.. _writing_basic_plutustx_programs: - -Writing basic Plutus Tx programs --------------------------------- - -.. literalinclude:: BasicPlutusTx.hs - :start-after: BLOCK1 - :end-before: BLOCK2 - -This simple program just evaluates to the integer ``1``. - -.. note:: - The examples that show the Plutus Core generated from compilation include doctests. - The syntax of Plutus Core might look unfamiliar, since this syntax is used for the 'assembly language', which means you don't need to inspect the compiler's output. - But for the purpose of this tutorial, it is useful to understand what is happening. - -.. literalinclude:: BasicPlutusTx.hs - :start-after: BLOCK2 - :end-before: BLOCK3 - -We can see how the metaprogramming works: the Haskell program ``1`` was turned into a ``CompiledCode Integer`` at compile time, which we spliced into our Haskell program. -We can inspect the generated program at runtime to see the generated Plutus Core (or to put it on the blockchain). - -We also see the standard usage pattern: a TH quote, wrapped in a call to :hsobj:`PlutusTx.TH.compile`, wrapped in a ``$$`` splice. -This is how all our Plutus Tx programs are written. - -This is a slightly more complex program. It includes the identity function on integers. - -.. literalinclude:: BasicPlutusTx.hs - :start-after: BLOCK3 - :end-before: BLOCK4 - -.. _functions_and_datatypes: - -Functions and datatypes ------------------------ - -You can use functions inside your expression. -In practice, you will usually want to define the entirety of your Plutus Tx program as a definition outside the quote, and then simply call it inside the quote. - -.. literalinclude:: BasicPlutusTx.hs - :start-after: BLOCK4 - :end-before: BLOCK5 - -We can use normal Haskell datatypes and pattern matching freely: - -.. literalinclude:: BasicPlutusTx.hs - :start-after: BLOCK5 - :end-before: BLOCK6 - -Unlike functions, datatypes do not need any kind of special annotation to be used inside a quote, hence we can use types like ``Maybe`` from the Haskell ``Prelude``. -This works for your own datatypes too! - -Here’s a small example with a datatype representing a potentially open-ended end date. - -.. literalinclude:: BasicPlutusTx.hs - :start-after: BLOCK6 - :end-before: BLOCK7 - -We could also have defined the ``pastEnd`` function as a separate ``INLINABLE`` binding and just referred to it in the quote, but in this case, it’s small enough to just write in place. - -.. _typeclasses: - -Typeclasses ------------ - -So far we have used functions like ``lessThanEqInteger`` for comparing ``Integer`` s, which is much less convenient than ``<`` from the standard Haskell ``Ord`` typeclass. - -Plutus Tx does support typeclasses, but we cannot use many of the standard typeclasses, since we require their class methods to be ``INLINABLE``, and the implementations for types such as ``Integer`` use the Plutus Tx built-ins. - -Redefined versions of many standard typeclasses are available in the Plutus Tx Prelude. -As such, you should be able to use most typeclass functions in your Plutus Tx programs. - -For example, here is a version of the ``pastEnd`` function using ``<``. -This will be compiled to exactly the same code as the previous definition. - -.. literalinclude:: BasicPlutusTx.hs - :start-after: BLOCK7 - :end-before: BLOCK8 - -.. _the_plutus_tx_prelude: - -The Plutus Tx Prelude ---------------------- - -The :hsmod:`PlutusTx.Prelude` module is a drop-in replacement for the normal Haskell Prelude, with some redefined functions and typeclasses that makes it easier for the Plutus Tx compiler to handle (i.e.``INLINABLE``). - -Use the Plutus Tx Prelude for code that you expect to compile with the Plutus Tx compiler. -All the definitions in the Plutus Tx Prelude include working Haskell definitions, which means that you can use them in normal Haskell code too, although the Haskell Prelude versions will probably perform better. - -To use the Plutus Tx Prelude, use the ``NoImplicitPrelude`` language pragma and import :hsmod:`PlutusTx.Prelude`. - -Plutus Tx includes some built-in types and functions for working with primitive data (integers and bytestrings), as well as a few special functions. -These types are also exported from the Plutus Tx Prelude. - -The :hsobj:`PlutusTx.Builtins.error` built-in deserves a special mention. -:hsobj:`PlutusTx.Builtins.error` causes the transaction to abort when it is evaluated, which is one way to trigger a validation failure. - -.. _lifting_values: - -Lifting values --------------- - -So far we’ve seen how to define pieces of code *statically* (when you *compile* your main Haskell program), but you might want to generate code *dynamically* (that is, when you *run* your main Haskell program). -For example, you might be writing the body of a transaction to initiate a crowdfunding smart contract, which would need to be parameterized by data determining the size of the goal, the campaign start and end times, etc. - -We can do this in the same way that we parameterize code in functional programming: write the static code as a *function* and provide the argument later to configure it. - -In our case, there is a slight complication: we want to make the argument and apply the function to it at *runtime*. -Plutus Tx addresses this through *lifting*. -Lifting enables the use of the same types, both inside your Plutus Tx program *and* in the external code that uses it. - -.. note:: - - In this context, *runtime* means the runtime of the main Haskell program, **not** when the Plutus Core runs on the chain. - We want to configure our code when the main Haskell program runs, as that is when we will be getting user input. - -In this example, we add an add-one function. - -.. literalinclude:: BasicPlutusTx.hs - :start-after: BLOCK8 - :end-before: BLOCK9 - -Now, suppose we want to apply this to ``4`` at runtime, giving us a program that computes to ``5``. -We need to *lift* the argument (``4``) from Haskell to Plutus Core, and then we need to apply the function to it. - -.. literalinclude:: BasicPlutusTx.hs - :start-after: BLOCK9 - :end-before: BLOCK10 - -We lifted the argument using the :hsobj:`PlutusTx.liftCode` function. -To use this, a type must have an instance of the :hsobj:`PlutusTx.Lift` class. -For your own datatypes you should generate these with the :hsobj:`PlutusTx.makeLift` TH function from :hsmod:`PlutusTx.Lift`. - -.. note:: - - :hsobj:`PlutusTx.liftCode` is relatively unsafe because it ignores any errors that might occur from lifting something that might not be supported. - There is a :hsobj:`PlutusTx.safeLiftCode` if you want to explicitly handle these occurrences. - -The combined program applies the original compiled lambda to the lifted value (notice that the lambda is a bit complicated now, since we have compiled the addition into a built-in). - -Here’s an example with our custom datatype. -The output is the encoded version of ``False``. - -.. literalinclude:: BasicPlutusTx.hs - :start-after: BLOCK10 - :end-before: BLOCK11 - -Plutus Tx Compiler Options --------------------------- - -A number of options can be passed to the Plutus Tx compiler. See :ref:`plutus_tx_options` -for details. diff --git a/docusaurus/static/code/BasicPlutusTx.hs b/docusaurus/static/code/BasicPlutusTx.hs deleted file mode 100644 index f7ce8375007..00000000000 --- a/docusaurus/static/code/BasicPlutusTx.hs +++ /dev/null @@ -1,188 +0,0 @@ --- BLOCK1 --- Necessary language extensions for the Plutus Tx compiler to work. -{-# LANGUAGE DataKinds #-} -{-# LANGUAGE NoImplicitPrelude #-} -{-# LANGUAGE ScopedTypeVariables #-} -{-# LANGUAGE TemplateHaskell #-} - -{-# OPTIONS_GHC -fplugin-opt PlutusTx.Plugin:target-version=1.0.0 #-} - -module BasicPlutusTx where - -import PlutusCore.Default qualified as PLC -import PlutusCore.Version (plcVersion100) --- Main Plutus Tx module. -import PlutusTx --- Additional support for lifting. -import PlutusTx.Lift --- Builtin functions. -import PlutusTx.Builtins --- The Plutus Tx Prelude, discussed further below. -import PlutusTx.Prelude - --- Setup for doctest examples. - --- $setup --- >>> import Tutorial.PlutusTx --- >>> import PlutusTx --- >>> import PlutusCore --- >>> import PlutusCore.Evaluation.Machine.Ck --- >>> import Data.Text.Prettyprint.Doc - --- BLOCK2 -integerOne :: CompiledCode Integer -{- 'compile' turns the 'TExpQ Integer' into a - 'TExpQ (CompiledCode Integer)' and the splice - inserts it into the program. -} -integerOne = $$(compile - {- The quote has type 'TExpQ Integer'. - We always use unbounded integers in Plutus Core, so we have to pin - down this numeric literal to an ``Integer`` rather than an ``Int``. -} - [|| (1 :: Integer) ||]) - -{- | ->>> pretty $ getPlc integerOne -(program 1.0.0 - (con 1) -) --} --- BLOCK3 -integerIdentity :: CompiledCode (Integer -> Integer) -integerIdentity = $$(compile [|| \(x:: Integer) -> x ||]) - -{- | ->>> pretty $ getPlc integerIdentity -(program 1.0.0 - (lam ds (con integer) ds) -) --} --- BLOCK4 -{- Functions which will be used in Plutus Tx programs should be marked - with GHC’s 'INLINABLE' pragma. This is usually necessary for - non-local functions to be usable in Plutus Tx blocks, as it instructs - GHC to keep the information that the Plutus Tx compiler needs. While - you may be able to get away with omitting it, it is good practice to - always include it. -} -{-# INLINABLE plusOne #-} -plusOne :: Integer -> Integer -{- 'addInteger' comes from 'PlutusTx.Builtins', and is - mapped to the builtin integer addition function in Plutus Core. -} -plusOne x = x `addInteger` 1 - -{-# INLINABLE myProgram #-} -myProgram :: Integer -myProgram = - let - -- Local functions do not need to be marked as 'INLINABLE'. - plusOneLocal :: Integer -> Integer - plusOneLocal x = x `addInteger` 1 - - localTwo = plusOneLocal 1 - externalTwo = plusOne 1 - in localTwo `addInteger` externalTwo - -functions :: CompiledCode Integer -functions = $$(compile [|| myProgram ||]) - -{- We’ve used the CK evaluator for Plutus Core to evaluate the program - and check that the result was what we expected. -} -{- | ->>> pretty $ unsafeEvaluateCk $ toTerm $ getPlc functions -(con 4) --} --- BLOCK5 -matchMaybe :: CompiledCode (Maybe Integer -> Integer) -matchMaybe = $$(compile [|| \(x:: Maybe Integer) -> case x of - Just n -> n - Nothing -> 0 - ||]) --- BLOCK6 --- | Either a specific end date, or "never". -data EndDate = Fixed Integer | Never - --- | Check whether a given time is past the end date. -pastEnd :: CompiledCode (EndDate -> Integer -> Bool) -pastEnd = $$(compile [|| \(end::EndDate) (current::Integer) -> case end of - Fixed n -> n `lessThanEqualsInteger` current - Never -> False - ||]) --- BLOCK7 --- | Check whether a given time is past the end date. -pastEnd' :: CompiledCode (EndDate -> Integer -> Bool) -pastEnd' = $$(compile [|| \(end::EndDate) (current::Integer) -> case end of - Fixed n -> n < current - Never -> False - ||]) --- BLOCK8 -addOne :: CompiledCode (Integer -> Integer) -addOne = $$(compile [|| \(x:: Integer) -> x `addInteger` 1 ||]) --- BLOCK9 -addOneToN :: Integer -> CompiledCode Integer -addOneToN n = - addOne - -- 'unsafeApplyCode' applies one 'CompiledCode' to another. - `unsafeApplyCode` - -- 'liftCode' lifts the argument 'n' into a - -- 'CompiledCode Integer'. It needs a version to tell it what - -- Plutus Core language version to target, if you don't care you - -- can use 'liftCodeDef' - liftCode plcVersion100 n - -{- | ->>> pretty $ getPlc addOne -(program 1.0.0 - [ - (lam - addInteger - (fun (con integer) (fun (con integer) (con integer))) - (lam ds (con integer) [ [ addInteger ds ] (con 1) ]) - ) - (lam - arg - (con integer) - (lam arg (con integer) [ [ (builtin addInteger) arg ] arg ]) - ) - ] -) ->>> let program = getPlc $ addOneToN 4 ->>> pretty program -(program 1.0.0 - [ - [ - (lam - addInteger - (fun (con integer) (fun (con integer) (con integer))) - (lam ds (con integer) [ [ addInteger ds ] (con 1) ]) - ) - (lam - arg - (con integer) - (lam arg (con integer) [ [ (builtin addInteger) arg ] arg ]) - ) - ] - (con 4) - ] -) ->>> pretty $ unsafeEvaluateCk $ toTerm program -(con 5) --} --- BLOCK10 --- 'makeLift' generates instances of 'Lift' automatically. -makeLift ''EndDate - -pastEndAt :: EndDate -> Integer -> CompiledCode Bool -pastEndAt end current = - pastEnd - `unsafeApplyCode` - liftCode plcVersion100 end - `unsafeApplyCode` - liftCode plcVersion100 current - -{- | ->>> let program = getPlc $ pastEndAt Never 5 ->>> pretty $ unsafeEvaluateCk $ toTerm program -(abs - out_Bool (type) (lam case_True out_Bool (lam case_False out_Bool case_False)) -) --} --- BLOCK11 diff --git a/docusaurus/static/code/QuickStart.hs b/docusaurus/static/code/QuickStart.hs deleted file mode 100644 index a874fb3ba83..00000000000 --- a/docusaurus/static/code/QuickStart.hs +++ /dev/null @@ -1,26 +0,0 @@ --- BLOCK1 -{-# LANGUAGE ImportQualifiedPost #-} - -module Main where - -import AuctionValidator -import Data.ByteString qualified as B -import Data.ByteString.Base16 qualified as Base16 -import Data.ByteString.Short qualified as B -import PlutusLedgerApi.V2 qualified as V2 - -main :: IO () -main = B.writeFile "validator.uplc" . Base16.encode $ B.fromShort serialisedScript - where - script = auctionValidatorScript params - serialisedScript = V2.serialiseCompiledCode script - params = - AuctionParams - { apSeller = error "Replace with seller's wallet address" - , -- The asset to be auctioned is 10000 lovelaces - apAsset = V2.singleton V2.adaSymbol V2.adaToken 10000 - , -- The minimum bid is 100 lovelaces - apMinBid = 100 - , apEndTime = error "Replace with your desired end time" - } --- BLOCK2 diff --git a/docusaurus/static/code/plutus.json b/docusaurus/static/code/plutus.json deleted file mode 100644 index 542a1ed4301..00000000000 --- a/docusaurus/static/code/plutus.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "$id": "my-contract", - "$schema": "https://cips.cardano.org/cips/cip57/schemas/plutus-blueprint.json", - "$vocabulary": { - "https://cips.cardano.org/cips/cip57": true, - "https://json-schema.org/draft/2020-12/vocab/applicator": true, - "https://json-schema.org/draft/2020-12/vocab/core": true, - "https://json-schema.org/draft/2020-12/vocab/validation": true - }, - "preamble": { - "title": "My Contract", - "description": "A simple contract", - "version": "1.0.0", - "plutusVersion": "v2", - "license": "MIT" - }, - "validators": [ - { - "title": "My Validator", - "description": "An example validator", - "redeemer": { - "title": "My Redeemer", - "description": "A redeemer that does something awesome", - "purpose": { - "oneOf": [ - "spend", - "mint" - ] - }, - "schema": { - "$ref": "#/definitions/MyRedeemer" - } - }, - "datum": { - "title": "My Datum", - "description": "A datum that contains something awesome", - "purpose": "spend", - "schema": { - "$ref": "#/definitions/Integer" - } - }, - "parameters": [ - { - "title": "My Validator Parameters", - "description": "Compile-time validator parameters", - "purpose": "spend", - "schema": { - "$ref": "#/definitions/MyParams" - } - } - ] - } - ], - "definitions": { - "Bool": { - "dataType": "#boolean" - }, - "Integer": { - "dataType": "integer" - }, - "MyParams": { - "title": "Title for the MyParams definition", - "description": "Description for the MyParams definition", - "dataType": "constructor", - "fields": [ - { - "$ref": "#/definitions/Bool" - }, - { - "$ref": "#/definitions/Integer" - } - ], - "index": 0 - }, - "MyRedeemer": { - "oneOf": [ - { - "$comment": "Left redeemer", - "dataType": "constructor", - "fields": [], - "index": 0 - }, - { - "$comment": "Right redeemer", - "dataType": "constructor", - "fields": [], - "index": 1 - } - ] - } - } -} diff --git a/docusaurus/static/csv/builtin-parameters.csv b/docusaurus/static/csv/builtin-parameters.csv deleted file mode 100644 index 649c735fe1d..00000000000 --- a/docusaurus/static/csv/builtin-parameters.csv +++ /dev/null @@ -1,160 +0,0 @@ -Builtin function,Parameter name,Note -addInteger,addInteger-cpu-arguments-intercept,Linear model intercept for the CPU calculation -addInteger,addInteger-cpu-arguments-slope,Linear model coefficient for the CPU calculation -addInteger,addInteger-memory-arguments-intercept,Linear model intercept for the memory calculation -addInteger,addInteger-memory-arguments-slope,Linear model coefficient for the memory calculation -appendByteString,appendByteString-cpu-arguments-intercept,Linear model intercept for the CPU calculation -appendByteString,appendByteString-cpu-arguments-slope,Linear model coefficient for the CPU calculation -appendByteString,appendByteString-memory-arguments-intercept,Linear model intercept for the memory calculation -appendByteString,appendByteString-memory-arguments-slope,Linear model coefficient for the memory calculation -appendString,appendString-cpu-arguments-intercept,Linear model intercept for the CPU calculation -appendString,appendString-cpu-arguments-slope,Linear model coefficient for the CPU calculation -appendString,appendString-memory-arguments-intercept,Linear model intercept for the memory calculation -appendString,appendString-memory-arguments-slope,Linear model coefficient for the memory calculation -bData,bData-cpu-arguments,Constant CPU cost -bData,bData-memory-arguments,Constant CPU cost -blake2b_256,blake2b_256-cpu-arguments-intercept,Linear model intercept for the CPU calculation -blake2b_256,blake2b_256-cpu-arguments-slope,Linear model coefficient for the CPU calculation -blake2b_256,blake2b_256-memory-arguments,Constant memory cost -chooseData,chooseData-cpu-arguments,Constant CPU cost -chooseData,chooseData-memory-arguments,Constant memory cost -chooseList,chooseList-cpu-arguments,Constant CPU cost -chooseList,chooseList-memory-arguments,Constant memory cost -chooseUnit,chooseUnit-cpu-arguments,Constant CPU cost -chooseUnit,chooseUnit-memory-arguments,Constant memory cost -consByteString,consByteString-cpu-arguments-intercept,Linear model intercept for the CPU calculation -consByteString,consByteString-cpu-arguments-slope,Linear model coefficient for the CPU calculation -consByteString,consByteString-memory-arguments-intercept,Linear model intercept for the memory calculation -consByteString,consByteString-memory-arguments-slope,Linear model coefficient for the memory calculation -constrData,constrData-cpu-arguments,Constant CPU cost -constrData,constrData-memory-arguments,Constant memory cost -decodeUtf8,decodeUtf8-cpu-arguments-intercept,Linear model intercept for the CPU calculation -decodeUtf8,decodeUtf8-cpu-arguments-slope,Linear model coefficient for the CPU calculation -decodeUtf8,decodeUtf8-memory-arguments-intercept,Linear model intercept for the memory calculation -decodeUtf8,decodeUtf8-memory-arguments-slope,Linear model coefficient for the memory calculation -divideInteger,divideInteger-cpu-arguments-constant,Constant CPU cost (argument sizes above diagonal) -divideInteger,divideInteger-cpu-arguments-model-arguments-intercept,Linear model intercept for the CPU calculation (argument sizes on or below diagonal) -divideInteger,divideInteger-cpu-arguments-model-arguments-slope,Linear model coefficient for the CPU calculation (argument sizes on or below diagonal) -divideInteger,divideInteger-memory-arguments-intercept,Linear model intercept for the memory calculation (argument sizes on or below diagonal) -divideInteger,divideInteger-memory-arguments-minimum,Constant memory cost (argument sizes above diagonal) -divideInteger,divideInteger-memory-arguments-slope,Linear model coefficient for the memory calculation (argument sizes on or below diagonal) -encodeUtf8,encodeUtf8-cpu-arguments-intercept,Linear model intercept for the CPU calculation below diagonal -encodeUtf8,encodeUtf8-cpu-arguments-slope,Linear model coefficient for the CPU calculation -encodeUtf8,encodeUtf8-memory-arguments-intercept,Linear model intercept for the memory calculation -encodeUtf8,encodeUtf8-memory-arguments-slope,Linear model coefficient for the memory calculation -equalsByteString,equalsByteString-cpu-arguments-constant,Constant CPU cost (arguments different sizes) -equalsByteString,equalsByteString-cpu-arguments-intercept,Linear model intercept for the CPU calculation (arguments same size) -equalsByteString,equalsByteString-cpu-arguments-slope,Linear model coefficient for the CPU calculation (arguments same size) -equalsByteString,equalsByteString-memory-arguments,Constant memory -equalsData,equalsData-cpu-arguments-intercept,Linear model intercept for the CPU calculation -equalsData,equalsData-cpu-arguments-slope,Linear model coefficient for the CPU calculation -equalsData,equalsData-memory-arguments,Constant memory cost -equalsInteger,equalsInteger-cpu-arguments-intercept,Linear model intercept for the CPU calculation -equalsInteger,equalsInteger-cpu-arguments-slope,Linear model coefficient for the memory calculation -equalsInteger,equalsInteger-memory-arguments,Constant memory cost -equalsString,equalsString-cpu-arguments-constant,Constant CPU cost (arguments different sizes) -equalsString,equalsString-cpu-arguments-intercept,Linear model intercept for the CPU calculation (arguments same size) -equalsString,equalsString-cpu-arguments-slope,Linear model coefficient for the CPU calculation (arguments same size) -equalsString,equalsString-memory-arguments,Constant memory cost -fstPair,fstPair-cpu-arguments,Constant CPU cost -fstPair,fstPair-memory-arguments,Constant memory cost -headList,headList-cpu-arguments,Constant CPU cost -headList,headList-memory-arguments,Constant memory cost -iData,iData-cpu-arguments,Constant CPU cost -iData,iData-memory-arguments,Constant memory cost -ifThenElse,ifThenElse-cpu-arguments,Constant CPU cost -ifThenElse,ifThenElse-memory-arguments,Constant memory cost -indexByteString,indexByteString-cpu-arguments,Constant CPU cost -indexByteString,indexByteString-memory-arguments,Constant memory cost -lengthOfByteString,lengthOfByteString-cpu-arguments,Constant CPU cost -lengthOfByteString,lengthOfByteString-memory-arguments,Constant memory cost -lessThanByteString,lessThanByteString-cpu-arguments-intercept,Linear model intercept for the CPU calculation -lessThanByteString,lessThanByteString-cpu-arguments-slope,Linear model coefficient for the CPU calculation -lessThanByteString,lessThanByteString-memory-arguments,Constant memory cost -lessThanEqualsByteString,lessThanEqualsByteString-cpu-arguments-intercept,Linear model intercept for the CPU calculation -lessThanEqualsByteString,lessThanEqualsByteString-cpu-arguments-slope,Linear model coefficient for the CPU calculation -lessThanEqualsByteString,lessThanEqualsByteString-memory-arguments,Constant memory cost -lessThanEqualsInteger,lessThanEqualsInteger-cpu-arguments-intercept,Linear model intercept for the CPU calculation -lessThanEqualsInteger,lessThanEqualsInteger-cpu-arguments-slope,Linear model coefficient for the CPU calculation -lessThanEqualsInteger,lessThanEqualsInteger-memory-arguments,Constant memory cost -lessThanInteger,lessThanInteger-cpu-arguments-intercept,Linear model intercept for the CPU calculation -lessThanInteger,lessThanInteger-cpu-arguments-slope,Linear model coefficient for the CPU calculation -lessThanInteger,lessThanInteger-memory-arguments,Constant memory cost -listData,listData-cpu-arguments,Constant CPU cost -listData,listData-memory-arguments,Constant memory cost -mapData,mapData-cpu-arguments,Constant CPU cost -mapData,mapData-memory-arguments,Constant memory cost -mkCons,mkCons-cpu-arguments,Constant CPU cost -mkCons,mkCons-memory-arguments,Constant memory cost -mkNilData,mkNilData-cpu-arguments,Constant CPU cost -mkNilData,mkNilData-memory-arguments,Constant memory cost -mkNilPairData,mkNilPairData-cpu-arguments,Constant CPU cost -mkNilPairData,mkNilPairData-memory-arguments,Constant memory cost -mkPairData,mkPairData-cpu-arguments,Constant CPU cost -mkPairData,mkPairData-memory-arguments,Constant memory cost -modInteger,modInteger-cpu-arguments-constant,Constant CPU cost (argument sizes above diagonal) -modInteger,modInteger-cpu-arguments-model-arguments-intercept,Linear model intercept for the CPU calculation (argument sizes on or below diagonal) -modInteger,modInteger-cpu-arguments-model-arguments-slope,Linear model coefficient for the CPU calculation (argument sizes above diagonal) -modInteger,modInteger-memory-arguments-intercept,Linear model intercept for the memory calculation -modInteger,modInteger-memory-arguments-minimum,Constant memory cost (argument sizes above diagonal) -modInteger,modInteger-memory-arguments-slope,Linear model coefficient for the memory calculation (argument sizes on or below diagonal) -multiplyInteger,multiplyInteger-cpu-arguments-intercept,Linear model intercept for the CPU calculation -multiplyInteger,multiplyInteger-cpu-arguments-slope,Linear model coefficient for the CPU calculation -multiplyInteger,multiplyInteger-memory-arguments-intercept,Linear model intercept for the memory calculation -multiplyInteger,multiplyInteger-memory-arguments-slope,Linear model coefficient for the memory calculation -nullList,nullList-cpu-arguments,Constant CPU cost -nullList,nullList-memory-arguments,Constant memory cost -quotientInteger,quotientInteger-cpu-arguments-constant,Constant CPU cost (argument sizes above diagonal) -quotientInteger,quotientInteger-cpu-arguments-model-arguments-intercept,Linear model intercept for the CPU calculation (argument sizes on or below diagonal) -quotientInteger,quotientInteger-cpu-arguments-model-arguments-slope,Linear model coefficient for the CPU calculation (argument sizes on or below diagonal) -quotientInteger,quotientInteger-memory-arguments-intercept,Linear model intercept for the CPU calculation (argument sizes on or below diagonal) -quotientInteger,quotientInteger-memory-arguments-minimum,Constant memory cost (argument sizes above diagonal) -quotientInteger,quotientInteger-memory-arguments-slope,Linear model coefficient for the memory calculation (argument sizes on or below diagonal) -remainderInteger,remainderInteger-cpu-arguments-constant,Constant CPU cost (argument sizes above diagonal) -remainderInteger,remainderInteger-cpu-arguments-model-arguments-intercept,Linear model intercept for the CPU calculation (argument sizes on or below diagonal) -remainderInteger,remainderInteger-cpu-arguments-model-arguments-slope,Linear model coefficient for the CPU calculation (argument sizes on or below diagonal) -remainderInteger,remainderInteger-memory-arguments-intercept,Linear model intercept for the memory calculation (argument sizes on or below diagonal) -remainderInteger,remainderInteger-memory-arguments-minimum,Constant memory cost (argument sizes above diagonal) -remainderInteger,remainderInteger-memory-arguments-slope,Linear model coefficient for the memory calculation (argument sizes on or below diagonal) -serialiseData,serialiseData-cpu-arguments-intercept,Linear model intercept for the CPU calculation -serialiseData,serialiseData-cpu-arguments-slope,Linear model coefficient for the CPU calculation -serialiseData,serialiseData-memory-arguments-intercept,Linear model intercept for the memory calculation -serialiseData,serialiseData-memory-arguments-slope,Linear model coefficient for the memory calculation -sha2_256,sha2_256-cpu-arguments-intercept,Linear model intercept for the CPU calculation -sha2_256,sha2_256-cpu-arguments-slope,Linear model coefficient for the CPU calculation -sha2_256,sha2_256-memory-arguments,Constant memory cost -sha3_256,sha3_256-cpu-arguments-intercept,Linear model intercept for the CPU calculation -sha3_256,sha3_256-cpu-arguments-slope,Linear model coefficient for the CPU calculation -sha3_256,sha3_256-memory-arguments,Constant memory cost -sliceByteString,sliceByteString-cpu-arguments-intercept,Linear model intercept for the CPU calculation -sliceByteString,sliceByteString-cpu-arguments-slope,Linear model coefficient for the CPU calculation -sliceByteString,sliceByteString-memory-arguments-intercept,Linear model intercept for the memory calculation -sliceByteString,sliceByteString-memory-arguments-slope,Linear model coefficient for the memory calculation -sndPair,sndPair-cpu-arguments,Constant CPU cost -sndPair,sndPair-memory-arguments,Constant memory cost -subtractInteger,subtractInteger-cpu-arguments-intercept,Linear model intercept for the CPU calculation -subtractInteger,subtractInteger-cpu-arguments-slope,Linear model coefficient for the CPU calculation -subtractInteger,subtractInteger-memory-arguments-intercept,Linear model intercept for the memory calculation -subtractInteger,subtractInteger-memory-arguments-slope,Linear model coefficient for the memory calculation -tailList,tailList-cpu-arguments,Constant CPU cost -tailList,tailList-memory-arguments,Constant memory cost -trace,trace-cpu-arguments,Constant CPU cost -trace,trace-memory-arguments,Constant memory cost -unBData,unBData-cpu-arguments,Constant CPU cost -unBData,unBData-memory-arguments,Constant memory cost -unConstrData,unConstrData-cpu-arguments,Constant CPU cost -unConstrData,unConstrData-memory-arguments,Constant memory cost -unIData,unIData-cpu-arguments,Constant CPU cost -unIData,unIData-memory-arguments,Constant memory cost -unListData,unListData-cpu-arguments,Constant CPU cost -unListData,unListData-memory-arguments,Constant memory cost -unMapData,unMapData-cpu-arguments,Constant CPU cost -unMapData,unMapData-memory-arguments,Constant memory cost -verifyEcdsaSecp256k1Signature,verifyEcdsaSecp256k1Signature-cpu-arguments,Constant CPU cost -verifyEcdsaSecp256k1Signature,verifyEcdsaSecp256k1Signature-memory-arguments,Constant memory cost -verifyEd25519Signature,verifyEd25519Signature-cpu-arguments-intercept,Linear model intercept for the CPU calculation -verifyEd25519Signature,verifyEd25519Signature-cpu-arguments-slope,Linear model coefficient for the CPU calculation -verifyEd25519Signature,verifyEd25519Signature-memory-arguments,Constant memory cost -verifySchnorrSecp256k1Signature,verifySchnorrSecp256k1Signature-cpu-arguments-intercept,Linear model intercept for the CPU calculation -verifySchnorrSecp256k1Signature,verifySchnorrSecp256k1Signature-cpu-arguments-slope,Linear model coefficient for the CPU calculation -verifySchnorrSecp256k1Signature,verifySchnorrSecp256k1Signature-memory-arguments,Constant memory cost diff --git a/docusaurus/static/csv/machine-parameters.csv b/docusaurus/static/csv/machine-parameters.csv deleted file mode 100644 index ad191aa17e8..00000000000 --- a/docusaurus/static/csv/machine-parameters.csv +++ /dev/null @@ -1,17 +0,0 @@ -Operation,Parameter name,Note -apply,cekApplyCost-exBudgetCPU,Constant CPU cost -apply,cekApplyCost-exBudgetMemory,Constant memory cost -builtin,cekBuiltinCost-exBudgetCPU,Constant CPU cost -builtin,cekBuiltinCost-exBudgetMemory,Constant memory cost -con,cekConstCost-exBudgetCPU,Constant CPU cost -con,cekConstCost-exBudgetMemory,Constant memory cost -delay,cekDelayCost-exBudgetCPU,Constant CPU cost -delay,cekDelayCost-exBudgetMemory,Constant memory cost -force,cekForceCost-exBudgetCPU,Constant CPU cost -force,cekForceCost-exBudgetMemory,Constant memory cost -lam,cekLamCost-exBudgetCPU,Constant CPU cost -lam,cekLamCost-exBudgetMemory,Constant memory cost -startup,cekStartupCost-exBudgetCPU,Constant CPU cost -startup,cekStartupCost-exBudgetMemory,Constant memory cost -var,cekVarCost-exBudgetCPU,Constant CPU cost -var,cekVarCost-exBudgetMemory,Constant memory cost diff --git a/docusaurus/static/img/closing-tx-simple-auction-v3.png b/docusaurus/static/img/closing-tx-simple-auction-v3.png deleted file mode 100644 index 54d4a0befbbef1e7b5923df796ce227a07024267..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 149602 zcmeFZcT`i|*DY)p5m6NBML-0CfS^b(f^=!2BSk?#dJDa(Akq;Cy$FO7s&wg!K%`4A zAt1ejfDj;*yW{ix&|BVn$2Z3J=bNE2G|4&pti8%ybIom_ijvF~LMp;jr%qjwlYI<5 zb&3di>eR(c1Q)=+yoG&u2Yy_#lhtuNb&7!x|NHcP?Ns+uXJkp`9zRld9bLh!7HQ1Z zaUE=Ft?<>qoVq-*+eXfE$Hm3SnP4NrZp^)sF0|*XGg|RR#ensIerfq?F|SKTYqE8( zJU?R^BP8gIrZ}JOCz3bSy7G_sh2IfKXp$2IH}}2Xet^PEtmufmTYhd}93n6mXXz!{ z3h%>kwtQ;gO)+)wp4h-C>%@rQ<~NQh-#(}KfBus0+PHeW=yQA#JkiPP+p-S<c-}uR zmFNh(Elytkm;UFs<No_?ylwv5EWbTO<-gtGw;le!yTdW+^T?zXEdM#f?+g6%hp)N> z<i*IoqT!37Zo`Db&WS@vjcJ$TNMius3(2p>WcZx)pVv!xM4J_MWh%v#e|CxF(arz- zJNW5Kb_v;Gio#uBA<7AHQ5SIAFOfR)*ZaB*2%ba^ohq~52>FmzAtmP*224z$RzFrg z-Z=Ny$1swznQ9lfLQTUDW)4^O_Y@NK71j*O9@ac~pt(px=i#sw%>cjZz7I)O&e(_* zXm)QpvaR-#s+jKU>pZ6W>q0ra3~(h1%NHY+4O`2$eiC!z+YXtpLXtgj*+j?{Ay`GP zlg?qH<c%)l!z?bn2Y-E2#a056Y?qInLVSrBzwrj%$<)Xrw%b#4qicH5!?39KO>6Rm z;r&THva#cs;J>Z2q$rztW9d4SveL=J_ThY3Yyz%fXO4M<Nz6@*n$}WXG@KygN!gvt z^y5F$Pye~0ulo(?qTe^4F<11atsl1yc$`^`!qUvw@Z$&1WoN(lY;jWk`ShtAKJZ`y zcDpNljT9RbozD2B`RIq+cIqctyRTm+zx>x{`%@$2S+>2L*l@1%S|b-lyheJa$?wYU z#B$zGr4@)>9UV%&l0;i^>#whTr}b0+>#wI+pU9s7>+ime|3AN-*>$0d*o<9sy?YL` zWwEomejr%0{-v_CJ1l9r%~-(6l+|NlLvdt#E7o+V!;Les;hDzH_@J>8&tHq`Ad-MM zl^>LQjZ7S1itf-TXs#{h8Vii`#p!!&MP3S@efu=Vq>kl6vfW=_TCf3Mf-NlU$(@Bv z8@E?X>)YSW$Ov7@LTf#7yX&~-+A8-~)$(1tgMi8e(_#3nWoNtAi`bk}jYIEJ^9v>E zf8vKOIj0_BSNrG`LKZ6ic6t~G16(kna7#AC)@Obwb7gs9<8r4;N97#n(Q<`tt+iW) zcOSV<hN>sd<*sLGW<*<|*P)W|UyFos;V;neY@jSHjG%;+S05F#J0T+z%&g)4GsER6 zA=1-%Ch5l2zrKM{kj)HBakXd%-|)X`%UTvLDbrm^O1C%ChbCM#>+>)yD@(mhE|cW? z*OwLyfGtS%rLrzN)mCn6r+Gd8mI?nU8#3+n#(#%b-z=_%yuhjVFQ5HTa|zi$5DE9V zbHz#c*KU>snvT};1=yg%*$DZL%y(bfGkyo2oKPdtm2iQ{zwY%N<EOr~(jT9;;;*%1 z3ha!e-2AkKvn=62hmnu3feaOM7QzjJOLNjIEaXASK!ZU4O2T#2#y92h?yzkGSma;p zcxHMH8XpRkgn*rS+4I+3e31mm4o$wXlKk0-wrUsRr}zGP^BF_}QaX_9bnz)+jwep2 zp-Wntij3&555xsU$OpYD{i@Sls5TPNAoia2Xwy@RULoVX$>lX4%QoLOmj<l#L&4Fy z)9{{R=?Y6jpPk{T#8P0UP6JmH+d;8=GZKHL2H(v~$g(B;Ge31C_u**TFkJIyu7SCg zS%$NnVZH40$-9>rf}v5l1aiaA(CO;Q7!!RTy}uTuA}IkWz-O~0A%lc_9V8gpYE1EX z@QAWcF>ehpUc#3!UTV?qw=&g2-!@d0ClItozz2eZ|4tlj%!u9~r*)c?2S2Y(|BRjI zfOdLfJ#3%2*B8cb={<BchYc1gPH4rJ=;QWF$qh!(M9fnBY!cdh;}xEb+toJXTb*5k zTjco`M_vat%2$(Gl~U?gB+h;)U}PQhF#5PRK3YHhVh8M!ZG9z3V$F#40*Z}><{FNp zonjU~Gx}e@OoT*5Fk_mMlDsF6_L7_duKD=Uj5^5bK0b|%15f-QS%PLV;f8U%mL&T2 z&TFf-7oITM@eEWW!iEiCH*|~LeeNIht}g#7s0wy0YEGBobH<eBEs;n~+uM%2uP=9Q z>+a3HTKPO#Is$x&vO$z2EZ8`ldp$)f5vxer<x{(rXVv}XmFeWcFwxzl)cngjc|!_( z^@fEsj_dAK8S}g*h1`NpTm}U`&sd*=3eo8+_kMo!1ycnjI?Su7{$%C8y#&azsle=t zCps&`rOVM$x$&$-Yi}jSoGB^I9|YSn5nXHE(6~8;s<!n!menFd7mfUMo4nTe{ik+8 z7}ACTj%)!*?V%(!sF`M~`yu3AMY=9_(xhE76dxB7Xasc|luVFc!VNhm26!D;XKFTj zXM5&wOx4aBUhB=GsrqAm+s_qFR+DoY*byXyv1tEACqm)J{I}+)lR45)2}%1|G0Liy zEeKT9t$!b}YHbto!8nJo=7<h@6l=~~f#P>Z#7y;^s9NaJ-fbzDpc0`hL>RS=&Y<wc zP)@=;(#73-qKp*kEErN~)jnOpR6G>B9T>*0T1MZD!{mf)7Z?Ym_y3Ryk?}q-kVy%^ zT!RKalZEZ)wtJB~l4zcUs_&Sey6$$Lp;hw7ID3pxfF*YWt9R%}Sr}7X;jU1*+Lzsm z?8~B$A35pQyVE;{6%yU(EVjXLw)JiW+!zV1<S5d3?*-EwDKBc+N!FN3VV!nmT7a@( zsGyYe_E*CzHl`M{wyQjPMhhWH;WkP=lvyEbJYSi%-F;^+A)DU$nqlU3O=Ou1-v^HO zIk_K&gutHvl@S*1GQdeM5~o@_GY2-#5oGIulpgFRwP1AgT7!e!KpGpXDJ1$>71mZ^ zT>G<ad=&Qm9r3xI!&#RaWnQ6<2d2;J%xU_#V%KxMWZr$Da(TmgKi}@xu0N%lUNVtj zIeSu1=yD&2|5nfGtbAjG(#b7d+Na|H1=0El>nvAk-h__q&AT{YB;Yqf<BU80fU1}A z5p7RC{+zs06~vXj?0(&U((STPhR210U69MG(?5w;hlGR;mVP<{<qhtf)GdrtwGOkq z<EP#tV{tJjzE-qy9Je3h#ijTFpG^zG3S?z7muwWAh>%Hw_toWNlXImz$`h+8PBuwA z0A%$qRhPe3HH0((43kEDKFaA$;2I5*R=to$^_N)EbexfBPhdK>>Dj|UJL@ORf(ybw zhif{!_%YCxnuVUw@@3Pl&D^?7m!q8Ecv5KK)X`+5&^y@H{uuTLdgP@deI$30rL6(f zLiR&0F?|8+b!gxQsOII#mNi3eKYL#~_pP#5uXzUx$nc4r`1Uhh0LZRSM(zq8!2N4g z&sA+y$~+yHCXF%>^D$3rY-fEI`tj?)V4dS9J5@7M-%3b5)Ek>#ZivGcKiuFwA}ILj zq<W4{3Ww3wqyLgn{mxfgsD5E0tdQQV0}&xFBxnJ{?LWR{kv{K|y*h?A+%N8`nI9NE zHx~3(eG2o?)vYYX(b`OwS%S{QxnQYDyTl=!{?^Ij?%{FfJ4RGG=FZgFeW}YPDAeZA zj+ZsMc%6q(F5@eTCH0q54V?!TtGqXGINTLLf86Tt*t}N-vUYX#cbD13ix$N(c|MLg z94Ks)+EWXA&-)yR>(iJ{L*3Lo!H&n@ij-{Xu-g?h%VsiN15>+gu2{{R)ksk0^}9!v zLNu0%_Zj|Rj;I?@<Y<gFN`dY5n4{f?ve)gbMs>Yu8S@HgXFvTcNK+lm?Lo~(#Vm)H zTYVVqSwRK~DHF0!GG<ZujKAV-x7!ZVJa2Xv5pT__CZDjPiDMfq()4F~{u&2~aIR!P zQpszB8~Q~(t66=fMzYK)Y$hD5Pjpkm-S;gvJO$nM9nfJL^%o}!o4I4Q$8yryWoRWJ zLPxG8{mVb9-MaZ|@(Z-<#Lys)_c#Mdo)@^fgdR_TDlySC(b5nfh^0O;Y=1<A{J_-m zVgac*exDx-3c4}xz%bfSlz%W2$YHQ5R!6j&*X;57@g%Pym-03LN)x|GBaSUHChS!r z-pfA0WQXH0Tu^?LKv;jd-tO0JIUoA-y~#0Djqm1_I%;T{BveQ~262j$Kp_sRRv<^q z46;b*N)1iE0d);uu|TbBtLJsGM}Em+{k~pCP+RV)EK<uLFs2#s(I|ehg21ldywD^- zo%3oaZz{Xg5L@+@)r38d(4Yr5R&VO)-Mk8AviH;>IqDA*@O%>?4+rhdotuy9Yc19h z=%6)nlM8Z%cMtB?)O>zHd!Lb_FVwJSJ$gY_4G|?rI$(3K+QTM<Mo@s7a=AB{bhOB0 z-VQZ*f0izYad}}s${}Bs0Ar5CZVu?fN10z=Akl86*4$gejxT)MfBZS?2}y5|l9ZT_ z=~FiSAjWee3(tPChp{k6Tzgfi`6hANc-xlP>7X8RA8~zopzEV#wj>1k2oac)vAR%w z6CE=D?a9K**^?dNWkNtRS&yEu`Fc9rcO%dc-CY5V2t;m#{E~aL{;hFq#_#X3G>^G$ zY6#PqtfKiIIDO@4PnZnPmHK>#+3tEW*XEc@@|u<EP(<6OIvmc?MTg(z`KQfobL@TA zGweOjbG~g=M13jp3h26X-a-QAB)|H(-`wP_y3ttO%hl-QzT70scm_Ctv-1W~1Ro1P zIYmoqE%SM)=9Kn<*x0lG)A|^);FsE>%;xQB+<7Edso@+k(`K}9mU5UA86i(Pn`Olk z=JrrwmEX?f8bbg4cax5FGiBR6PYx!c2p*Kk#fu5YHn^}Tx#P7c{cJ(^&VCWZ^_YU; z<mKu>NA2x>b&}{{?Bn;>9<y{kPuUJx<7QBfNb8#{Dv^Y&dJ;SHAfUIO)VMCvTO1Pw z75_M@Jot3dL-`irBNS9LTjWpfYT?HLL9GaHFYjt@!5tq7q6V~AZojqiz{a!5t3xhQ z0lrGhxFu*|c>^AO+1%7v5aEvNPo8PB^m0Y0F1lyEz0q>HGJM-$C3j5>UwUP_eHwi9 zH=VXNx{4r%skvSAnQ6sVU9?<qIwGrVf<~!ZoV+hc*HilErD4Mh2xmWaBP+}}dZQ}l zCX|wju6<kdT`@@G*6SY}GKaNR?%Sebd8!3Z3dCn3Mg+8+K(`FKyW7a_kv*nlQGB32 zT{Gb^ZHZo^r+`?a@$IM@oeb&2N@$4J;X&qzZ1bbHf^Jhtj#f)CY+-CRsEA(y+b~nD z1h8F^RhTNN&uXWF?)s0dX>9$@`qL{3hvkWFEOoRsHr0SLIHHl|$nyD7?80uC3XzoA zsBK3l=iHdgLHX1(v&A`^+~X;qmKH_}BJ~;I1UIF{kx`Bu?1&Ph?W3_Fn~bwX`@?21 z+raN~OG(+dx<7$f8UnIQ`Zb3yhqj73KPmiMwa9)d-8pm1gtVo;a(kGs!V6Ro|4M4Z zfd-fxY;>BU_JQCm`7V=+iUwbVp!^k$5Fd<4brDP=rE#AXTGZBp4KEWe(#GZ$O)|4% zZ<D9EK%NbN?k_^O-+Q^PNUL5{BS0*jT1ws}l3fOl^?|8E92$Jwe>~aTpk1e487?0! zjA+|+(l?dOxWNFA^GR8LcqY%j(*+7!Y`wurl~_lqdlHAA5<pk~__P`63q$=TO2gRW z*-d?p^Xe^9k1XH69$vW4t@_A{ly-hEeHS(v+p0%LWl0u-q6#_2Eog6SnN^s8<leco z%&dIcMNcNV1fW7asd^2$Dl<BF&py5*uM|#cl8{9|o8Qf)-mGJRhb%LVh&RK~mdi$P z4SS;T3cHET#*-Ro?bZ}!L`f(rWo)e2vOJjqPSI|N9xASiA%V)(#iGtadQ_3b4c&8G z+Hm1x5L16gLBloZVi_wzDB}#PCw=Dz+Zw)O1bBGvat<JV*edJRlD}33Td_daY^6xw zwIl#YHZ`?7LFc-Hnc;*aA5eKEeH9*haV(DeD$Am5sFcw6>Z=*cn9{i%XvGbw?&R-^ z3~>HqHpfuQ{H5*1$Fj^;?(4xb-=9$~_XW9HXP$e)_>RA)W-XN0JQ<eW-t#hGRI5w~ zaedx>eoc)w-jb35-jB1$HM3@!x%8I99hO1Qeq#Qg<Pwnkk6<EI)$9uFr{U6<x9e2% z1%PWuorQ$H-GavS6Q6ZrjZwTZ*z~Swy%G(&<j9~OEP1b#N4j<wKse9NrzJ{2RB2MH zvowm7vn3#Ib5u-?;j1yDi{_JGsqbJ06)TGtf{3M7iIE{L*Qx2u)kTMRBp^tJ=G{<L zKBWFqLK;$4%=2VLw{Ae=1(cF0Exgm}GZ`o83zbKmVZ7$N=c1~uvvyip>ROvS@vYZ} zo6q;YSmAZh;Gso}1YBzSH$4F~97Lc4i;lACCU$69*u}2i7eHL^uE`zBj{2Q!SqvRh zR|E%k+%hlpW+n99P_|~{_}QzZ0aAzX;X0Z<)v_l-KIP-c{cdmd8W&sPBDHWPLAsNa zaS9kq{`j*BzCTVh{FRd9>o6`-WD3&u`@Hs6&<yQ>M3QLelKK*j?=8It3@*YQL^h|f zk(W)T1sBTt*9bNI_!+;!c~U`#n+ki{Gx=daWq9`;*Or#|Axu@4S+G-GWC(ccW3ANI zlvOpS4hw7&w8r$wwx_(8&Er^PF>$RU^ff*3&Db%9xwbW$*tac^MEn*DpRWIEm{NqP z;oEk*jrdbNd_bqnk^b2m-zHWDQmFP*(kk7#{^&jHM`8DaMnlw(%%0vkhqcC^hLzMf zO3L_8^8AE*)62*B>^-8xBn{i+2lVHS(buf?N>?OcJTL4rKRtwA_MF~-naxUO>%@sC zO5Bo_nXCB`bjD*Sjisyzc?)rd>M8X)(PSc|UjW^N`W}^{$wXS2xP%{Nw#QuN1^e8E z&#?07A2Py2qCyUwE_`t9QpU;dTuBHZ&y<O&26)F3vW>f5Gz6UZ#WOMzD6+JtM|y|; zX}uL0m9pkFO2e0i*se+4n{Lt!-lRWe(vDwjrFaarj|{HXDQ%K&dbZYKl5dO(V4VT@ zJ^BQQ2##(Oe3Go`6sA3!POS>BW<y-p{{WpEZ4-cacnQ)%1I4A6c=<+KG@0y)p>x-h zYuoCH1?`ofjhCmf2PHRa94~4xKGSN}YbQYBy8t=d(_afMqxEmpQm;C#68?b~H$h>{ z3vCb?J!o{z^MAj!=Eh51D?Ga4CX;g~6DLFZeQkGIj>Yp#j{r-#c!k*zQny1yf<bj9 ziDz{0{C<Df)t-S2xN)ubQ7>Y(WkQRRbvY(NKIu4mUOxn+Wc7N{WMX8KV5aB|cV(gq z6V4uURuj4n0}7i-Ix)}-@6ZMTC(*iaQSB_hR+t$%cE;UV9X#9*E57>DJ0*^`?yPqO zQ73Nw`7S^hGI@iv9U4tk$&7-O>VZWw^YJb)y~Vw+mspM<XqTiX2JMnEUd>*NY=&4o z5v-Hf$->C`-aU-*o*LYS00}a)0w=<jS5|#zA0~*n4*e=@lHd1Ov)=8NIh}3($i!xa z+8bgi!O)rae2D9hYN>6XrU>O+Z@4llFqF;!UpRUgHLgSQQ(h#6rxA<_|9yR*1^n8b zMk=?<+9;u1^%3Orv5opKro*?_YcqcC_kNGN{DV;Juz7ICX@#Dm#7=8u4;3XhWC{~{ zsR78J$nKukxQX1A;bl4~C7|>s4#%mhQYgte!+-&uzzzb2Mb7c)CwBGHsVqN^sk&%J z-W<x)odmM#%(k+bd%~k$5UdAJigAy5mcAng6?AVVYJA2RGFp|H%%~piE{tctGfzV8 zvlR;>QpQhw9CKi@^VxX)VQ|bkVEdl}lIP(AVNKT>H$g%@5qxX6$s5QxlfG479mf|A zoFt*MZh5xBx#`{OHINq8W$m(aKGj2q?D8j%YN7cuq#v{MpIeaZGKqO}?FlE>s3<;n zPL_m_$SYjY3kfHvfEjr$U4zPbaXua{u<AKXPhLlS5{sOm_o=^{2fdBBp1!3pj(xEr z)Ocex&a&tGx2a4YS<#g0;0Y4UPRM^Oeae^k2DEh=0LR3S{PqB3-P}*W0fL?IqR6Ia zd3}zW*<1N|EFgP1%e>n)S5jbTRbjMs`mj^h%>zx2@;Fh!eT1O%f#;^%=*Hrrd{{#v z*i`WwmdRM1VlPx{SiUkX;dixpJ?Y(b3p|AHrJ16A4;jx+UMTDf0uJEX-HhX0-#!NO zn2L__m$J-r18eiv1JI$OC7VASzKUci7sA2qW&X(aZ9<t;x1EfYnZ<UwV{a6_GM-Ym z={?g7NG7<44R;YwBOQ0c<ohLEixtoax78XyR$*CpOU_*osehXSWfc(|{02raj-@{y zv;Z$@yTBE$>0XfaRy}<ozUb+})Ea_U55%?}F0hM^4Oazde0G7OesM`ya-hdYTBb9S zA~j09;dQdFyhDy&rQx3s6t(rhg<5DubmL*I6b=yga`l`K>wOTBjw%npHq<;BUp~f9 zf!1qF=5-$+N`3|`o9TU!{A(r=*;xn>y^}P_&cLg%=x0r!cE(l6a`W!;aF&1f$}I-? zrfqOL4aEn4xL!+pU6<`;m|F!zf=%lfhYzSwjo8Ch&|o_?7oTsc3Nl)Y<`uT%pYV#J z>JOUl0`&<!bc@%o=SoIL*DVYMbnioUQHG<^>h8_71mSeF(o#7|cLyYz1RB30(zo<( z;&P~T72fTuj3*QCuO-8&$hPTDP^YgB8PshOUgsa=%H-KA|9%Q3)X>J;&~Mc1>?g7* z%Q0mob9%ql!+@i}^;cu_`(8;R4ZW*D#tk;05Y4Qe3r%7`EYwDg(!Ky~Te;U2Q(al+ zYGyd)8o*oR$vU}9?tN{Jb@>r5Yf?JZ>iW{BM+Ux(L>F&%p3Q8K@ly{vu0Kg%zB)F} z{_1zwWo^n;N(Q*T$&lF7sru?`a=VNR%%}!Lv;m$OQgG{G5R3&aeU3gC!2S+Q@Zg;S zL)bJMV|j)O%w(zme$i8u471pfpL%ad2*STO9W6t$JT8#r8A@6g-tPTS8LNb@!l|#} z7zBA}m+Q2bJRZwt?ymo7@#AJqwLtwQf1<8JVffaz8PwGnLQ)q`cfp~9^p|z{Mr#wR zq8cOB<DhJ0b_!KvW_sksZ%JG(NMQZt0Gfsb!}=n?)O)L)54}U}WvCA+>jw2)dED&W z#Hjfle|5%>-xs&zR~g{jiS@Fh*si)m{~hvfG=UMq`7xDc|NO|9{7;8HOPs?5IUu=f zDd`}~B8-SlCke<&h(}lfJ4vIcCRq7H7+V!2jX7+MfA<VY6d0Aw3zTG{wP|Iq*B0vw z4YJ_2bgb6nZbERHb?T&wxV=)QdEIe?bCF=MwKPQd%4J<de{oyT=L>`Zo}`&So?7N? zUl?q0uvZbjeA}dfq|hQe9!xVpG4?<E*rcG_>MBxi?@5x)V-&pSdM~5fc<}0)tA;b+ zTxi3OJr&kGZV%>!Q~{K(W+B_`L2<HVQyp36$J{UdZaS|ncN5c!q#iVH6O@hFwU=B9 zzQJ^RV-n@lCQ=!vMk$5iZjg4mB9?G|#-u|iC?OaI2~@fqbzXx}HVT#5p5Y(l94yNb z7OKQGb2&JAAd{(_NkVUHwYI(*bi?|E(&%Bb3~EV8k2S>UO8ZYh`_W!{wkiaBxK|x` z&s+#j3kIRP&6uinILOz!u7y&P5d5U0<-8zNXzVYA$LG65$mmHh95J=u8)yy$nUb>% zL-06SbvPMH`ZT6rVz|HPOXX51@5IW7V$f7qZwe}0K{nkod<j`w<iU3)hu()99@bBT zZHSQvD~s0F4Vu;5h)BVCp7D$LiC(qaaVZn#$!0ydahH?pL}tDZ&GO?04qeKg=GB#v zw8r&0Mg};j__r@wEOR;?{x#qfmu0SWB!8PI^$C>o4$<*F4d+_hkI}0wTI<1NF0s6^ zq?Qjo4P3{2CbNh@iG1+&Ofj+QFLVK!NHw?H6%^H4C!pu<6pTz9f3?h96&e%^YF6uh zDy%%32J8k#Uu+(>%f<4Aa2p~dLX_NlKe)gjOR0~7?oiSewAE%c;Oh7yi!#mzbXTm> zl(8cs=l7gu<6OG)MnGO#t0KFCe0&R*b)H=<b>7KU`osZ#)3}{KWts3iUsbTWR{r?J zdpABR9cR$fR?Q!_&(<Uz<O%Q0%*{C6g+3EjLy(%t4811cg)f3}#_iNf;K(oAbzx6I zY_dOq5a~J@%bEZx{CC}FAzZ)DOHm3)4SA6{Finpt%EZxm){u3_^+(9-9lJ>gL=||! z8Q{vIiv^0}MMN3Kp<yt;6O`x6iN{TEVx<$CN0H6%yE$>jGV`?OlU19N1=sPg*ZjGA z<-4iP{&L}i**%>)Q~Lwtkikg$8|5Xp;Agr*Fk=>YZgtL#PO6}vdSRWLTyK(?h+WqA zBSwD8WL01|{gyWGN`!M6YfWN1e3TM;DK?<R!RZARJ-*|x#5-X|#$sC7g1e>`$QbgX zDF7SpZk!OPct8Tx0=kEhzT<k48UQBEgBdg8oThEV2aU!_9tIX(>q$$8bJY)3iI?}K ze-bVi-vMKQ&Lv(Cz)?gEE?1GenAPlT$BIJVoZ}{@<q&%o4G72AJ3QN0iI^|a;HUd0 zY2`MTkx9Z{0(;d<BHY?9Q-K$y)OLri)3Y6>xX+;0nY;1KT=}dpz9$u3T5JbEbmH6w zHKS9Z32a&(W0*XlGydgd!y|$t<T1_UGt+qsBnzK-KJozVK?xZCegnXXpPCYBNFB)< z5n3hn@)>Bo9$wZm#-q5A%S9_3di)~PO;nj=-$Xb1V@5l~x(;{UY)yWxKs3jwY3X$@ z$qYE%b%z-*&VT3w?ULiWjkP&0_A2Qb4nzr1T(nwJu17FV>Gu_2)rAV@RitE@4;=Oi z$55i<%#iU0jkoG+9zR#ZTuLDdwaQNS|2V-5&=e|?F3B)Bl6p%&atguEP4V780-E?z z#_cu|;l0B(wNASyeu{YAh9j=H2)LRhWz3?fs$PojE$Z{FP9#IJZDV2!i|l0$1ddLY z++HCB!$h&3R|gmn*D>nQuaaQ+dzU)zhkdU#fJ!@A9eii*NP*0}vgDDgpY|$O0%Cu) z$>ZUAG5vDgaII+`5i%bz(|ZO*dBUeT8s3~3S6tSl<sHB<tnq~u!h{kNX!m>$bUonX zM!*2M^et6q@4*k5^*iLP2KcE_6{<XjXB~_()4v}Dkva~U<O7-#Isbu}0se8Z?$;?* zn2|*#XjVgJ7D&}^-+FK6wZxyEp*E6Bi1drf=9*u-cC))F(Z*2KT$Z`<qg&$xryG;i z{nOfjzV<FVS(9%>TgUr-|HD|VRcmwwUVES<D>trPDpsZPFvxHDmeV+J!TE8mbB@(@ zaiVyv2HB?RX9j?(T^Un-#z{?<S$X4_rAF!IsF}t0{4l1*D3d%M#C0$;RxnxC0LbfD z)F~C@ynN6buO;_Szq|KGTXPG+!*tij+R%Y}ww#Zvb!RPAko4XI;laCYN|+s9$CP%_ zgI#5%Czm+&=@gHGyh$Ip=;9lTqC~HN%>YXP?p{dysZZ(2ph8OeK`#lSc8IAk!x`TL z!_FZ~B&F5^zfjsMmuINS3^2gkC5`29D=%c3^}rCISJW1aLPqO6nC`{xCtASNsRd4K z^36|OFuUhlNd}7R1^a~X_q#@+8#qjM<mLWKD<Ol0%Uj$5t#h%Xdq0*w$XmQ}>tG&a zApG)so@a{nZMj>7s|Dl38KV)NH^grFx-R$j5`c!uVePQf@S{ZwX@AkgFDdi+G$jUj zv9!Bcm~((cHLxcwd@4SHXNZ81)XiCQq%H%K5%S?1JeL^hM<A}gk;Kk~h;%n>j$5ge z1w@h#C!R>EI9V~CNJ_rvYW^S*)cmLmG9b_`&4pB-Q27{^u{x#SlS?VQs1?qdV=YAr z6$2s*xyl>Q;}@2Ap3Vx8lXx#70D%)d_UN|lBQMgQ-O)z-(YUOePK3yrx)`)h?f4Z2 zc#2rkHz!&SZ+n+DFX<0JmZgv^NQ&31j0ylsEOQS%x%u+GpEfo^-cLad`!w4Ig8cHG z!h@K2_b)2lhXGK&lkcUSr>)zwS0#A#pF5M1WRtdKd7c(-Jk!@%Jg@;85c8qiLC9>h zlAn8vsksas6wRm_*2fH6nQ2|;Jn#<DIwUtfbxgn|b$b5^A+iY&+1hPYIZtIXZ7}Lf zbkM4Uc@KW4y0%Ym0cuIL$M*j&nNG7y>axtFiz%8KvYGFvMd=$Fq=gRBeO$I;tEziL zJ2%5@PpoNoo&lZ<1ZLTp=_n9D+_TPrCMoPM>M+!K=9Z5&LP`~>d3`yGQg(kz{0xkH zzU9~1;M0@m`G$-E%`WLz_9;L6K}b8U+JfBM`N?RXLRq*xGkQz4GD7}apJFEb<I|hV zYG8_dMjJ^R*p^^+fQxrEZ1yN6!c#U#!Ek)$iD{_d8ag5esL*(QWT6e7t)_TTc#`-| z9m&gPTCf?Chre!Z&G+0AM+@@(S`pOHd2T0PY<rH^G_N)d!RkO?`#`sqW_o!~^;r@a zS)7%u+KJa~qQ@GN{?HPE)(}Q-n;Z!Oe&$nQYQuv)Dj){4T69EO%9{M#e7WW;AA%o| zjAN1aC0q3q1?`n*byD+c-p&pzf_*;C^i6j@LjFCcRx*KC8P%<noGpDF%aab})O|m| zi$~V89(~=8vSBIzB$#>X0L;Unm32Vl!nVw<?-Czx1FFcJ?lFO^9;Jju071^<)2=Cd zv#XKzVCD@iYIY7fbT%pkQ)WM5hMG@D?V6~FwwlBStGCgcqPD?Z+~sFmrpR4fW>WCe z!b0&!ek?&tFj?lN`*j1HFOmt6ezjl1DXt3d*xV24vndW{Y{>Sm@{IjEZU8{n$g`B4 zZF{|2{Z<`69o6w#^@M)-sz_RA_=&%_qDllXlaAf&MZkKjZa%AeZ;(yiTcqaX8bhF0 zY@Dw$*srfvUlLvd{TL{>a4P-|CSIbUFk-#}`BfECW6*Ck;tC}3i%RcefY)N(*c)Cg zIdn_SGo1L_4@*DwTxT%h;2;<KXO_pd>Ax8$4a=m!POd9QSFd^n+~G1h!uhxs^rj!$ zJQVI_?SIZdm?s9JA+u`{bO#CkIJbGyA$tR$JP|NA+`uMB>mJZ|2c?IeTcUzqaw|+^ z98#cMRs)#7%XUl>&jH|Ng@j_3(^QtEpG={W=O+?sK!rDlt)#fGw06>7@)=-8@VJ5z zFW{TXuOR*K60irUpuTd5B#{{<0`*ef_pzyoKOQ-83xqdI%4jciV;bK&I|vD3cVczp z+)V-kcX_<y(J4y`(;E%tx-ZbJTsuR}EfaJcnGs&oIGKdBSYgl^jbvZ!dLV=*jh8uR zv)MK2I`M4tXwYi6He=ofh)W>r`zpZS&P{_PFF^vBSNTNArTxbdw*@6{Qj(kr!G1nC zpO=7A8+3e_k^zW(&N4bcXBG+nRDGN>FP^_=_vM+Qz64~lt^j30i_a1`Ugjhrja#>? z18-i+Z(2`sb-8&ZJEWn3Gj{jx35xTj1nJEJkK(RW-c77HwV9Dp&sOQU)@Wxgg(T7a z1ogYt21z+u#}*|zE9zb{Xc`*c3+5rTDiX%3KCS}|bLW|T0%95f4DPCjol-rR;ASM< z#`Dz4x7(^8rhgJF()?;LJ)I!X&AT426x6ueU(UXtc_bL1E|FpbF(Et5E>uoN0ZP?> z&<Ixc9s`t}2rp^!IHmT!S9i`BOX2Gt<6U*&j0<~`RhW?}zJ8!%dN}cvL@>}r{alRE z8uyeK%7^^;>4D;bHG4x1v<24iN8a{~46hjdqL2|qRwYe>^Re11$y}{1HuXU_o<TDB zwi3#5>C;&+YBT2W=$t+_R<^OZV741fAcP>58?wjC^~O;2LlSuymo`F=Xy%|ywV|ab z<;{SrAP=|pDKejt0VyYQ#Rn)!7!j(7nx;?qVcXu`c+MANH;@~di$=z33^>cWtNqod z;<X2b(r5v?vA}$xyg?BB<AmEgb&m~5BLX{`0jNvFu%-JR0bPI%nW%I&oKz|}pMGz{ z;|3WON*E-uvR)<1;%?g1lrB69>~sn&`cO&b5O2-6puQ73nMZ|ZA^jy}dN!DyQbBp@ zpQ@Fb4-|f0RJ*JJir2g4G&PJmz9~Ho?{{f=40LHpwd=0ZLyusxK|i2N2Oi2qbK_<h z2?#@2b_l1|D!^L1oqYxC1slaLX6eMlPh$F+g#-k{88kGV_j8rCVr&ByRTXTIs=p({ zlHCc62{dG88sf}&^xVo2Uj1MyP+U8OaTVb9RxqI@Kt7&y2is4Q&zhSExJH}1d0+cM zrej%e2wCGW2`raQ_JLh)&kJLK+bwmd;OnU+HI&lF76ViYg*6jXNvP64#~|WjfcWQH zb0hM3BmrO9l+R&NUn@GS2p1mq(4tgS6^7e+D>;(ZebIDgPx*>9%%aH&HaR7mW*pij zh{Sn;p|@^w(M38BzC8*+Q7{bEgIVhJqoQNnP^;x87y{lLx2*&fB!x>&xK!<pq0?q- zp<0z7=`21$zO#AZM2ws{?Cf21(Mp!kIWdolBTyj*T^%gau4~wXZ?bBKgk4jm5Ymkz zyVA3b7~sm0c?Al7aZDu!=mBRL=Z1HF%=V1t<Mq;gE7kWz8wd#cXOrM2FJ1H9lAJg< zLtp>Icqo&L4uaueB)}h^)pvh=j-T1C0qDA_`U^|}z|<ahN?Hfd&Tr!NmG9qg7A`K- zzZVS1eM7#=|CYk7W}{yK0Y%j4Y5*5>#3CE@4Ra~DQE`99b>De_G7bY21b*j3@QMy9 zUgWFr*Q-DXY16g1<YoXA!YjZryNGE-6D`s9A*y=x%h%A=)xO?68Ps?ga$e_N(9|^h zS2nG%^VkO7>B4S)F?`!!Q`9FD@nfV}WW-KRY8&}H33QVEYkJLI?%N{$ZNue7Vs3_* z>(EQ~h0vkfDK1hlfVvA035a4=f$;TC_biZLTDlk>0>YvdRg5P}b~HeyWbH-b6&3HW z63Odd2>h;ucjT-5c^GwZ+02^(VJWF45%%-rN28qrgp(P=Fwf}KG5-cDEL5>NOK%l$ zo#nHa_npXT9nu$EN_>?xm<SOWyLBC5SMBREyO@H?msx{SxBN(<_(nkR%<N(o6mcJl zk%Zu9E>9a4gDXVLn8wH~<3@GT!_tkR7G`0~^IV++q1kH;@M}Yg;FHsgp1eBOKHXq? zo$uu3a^fN4<kz6)%|K}0=WU(n9$z>uol;1OLHIn&8DYMa8CM-bA~gkuCRP`S+bV!w zyY>8$lM}#Zh1()P=xr_rM245#s*!kPw01ZEWKayruFlOO>Qe6y>Ltyh=0Ab4{^+<C zvilt#rQTl8rj~#_2P4yJMg$LMqc-(~7|(OQPtM_B=6`ry=?~ipMC-bEN}Vm3+6N>U zGNdUU`LT76OmcO1CzQYY+_p49V?oxC?VKBDqlfnhp!B!BU}U679lAp+V-f2Ih73j9 zZdHprH?6M{;F*y|MWnuOVItPk8H8Qop$6#C3z>^s@EXz)0md_78{UE6^<YsHmi@~D zI?^h+^4ygWK~g6LSrgaWbu~{|Bq3T2m5liVVc0?VtB<aHE&q$Ml(9Zvr0?uiP!hYs z=o;=B*E4$m_&Gy+hLPs`%Z@HffuJ856i0Xg;#Un-1f74iDh#i-P<u<B{!#Quv|4{< z_ZQ4jsMLw}bk0uQ&F6)nC1u1b={f2u8A-|3al2@O%Tijk8!kg}F61ZsR|c4bJTQQI z*2wscb$DH~ryTF#6AKI13=JlB(HZ(aT>#;(Q_r)9t$KD9{>k;HPJKrBsY4%sFcx01 z!_>}~@(r%6FHKi%j}K+9T)XjGuRJ|pN`J6`ncKK~FuA|dJF80mw}?MlS(bSKNV{}E z`v=ab^bDXjjs}g@E&%xtpe})6oPmY*WSyr@#f5>RD5QG{z%i2_B6!BRO<fVs|CC5@ zAO)`gmj<z7%l3gsR8+*S<?llmr_{h`v__h#Jq&xr6!_8$a6CX^WDe-><$j+pksq;z zy%=#>uyQ>9EewU7I1^Zd={W{?H5HhS1;-vS;C5WR56eG)1K{c9Tg{+%pA`Vc2h+($ zR4LFYmV$E`2j#2d_(uSi>@+?R0)gvP10jb#J~biI-s4q~IeBeBd^rMoXiEV^FLoeP z0##yy-e9ZrnRsI>H2K%l{}$0N00^0NCG7FL%y)n}>xYUnS67kVq*cp8EBCDZt#=of z0lLnf?$nV%s4wCj5dW8eRSD1T;M<g+#h#mTwhE{cFO(b$zRCa4?ulzT9_#fbJznQJ zq8}nVH7@k~&KNmxvVd-{6~}R2$oZ&P`{Oh?p%U!{^z$ipXdpFp$4~5bwbO4Xu%k8~ zDX0EEmhjz#6xK@|<bV3-_-_j?04=A}FObWh5;_wl(Q=yjpxn7kxoS%)DZ_M19F(1b z{xFla9ZgNVh`__Sdy;Gm2wKw1XMfcF#;o7V!F2N_z~|<Yv>=-=B~0UEvX4%AJ@C=* z<;N8}uMWQ#InFaQJ>KWK`T{%dWcKiQuBwmhQ40_mitg<;@E%)RW!U^5*46*=#RwR` zBtQ6W-<dQozv|p;L%;n?ky0g)m=kY;`<-vgEfdqC1^5oF+x^1}&S@DXqARR`))Df* zFVf<r>s=2Zdl~^G$)4_qX}tPTk{)BayfeN61iN0V+UZ~0!jzTyB!6=l_rH9Ozuzf= z;(5cSc3#uKYoj@guIRPW=%eC$pI5HwPu=mTN7a1x_<bbh13TDH%r{vkw4>cEG*I1F z;HBNLe2*Kn+}n8m1F%14`13CKBLvS{a(I%U*&l;WF4kc9FU4(2!|+>e%xZ*=>FoR< zJ1`lYhpKbI#M26Re(E*W`YtELN_HWRHpTN`;y+)Z`{yg)EOV#YltLC}N}jKdwuKo! zVp;v5P4Ue6oo~TEhc!QkF#X=ZQ^*TlN%18gOZuh<$PM#f(2~N=oLb$bRW<o%hUW|Y zXA~eFM38e(`SjS*8XU)&HawnvRZ-**E){_)q!s$l&F}nk^OqWx=hSnTau^Y3)HzZt zRcl2DPE}7EkU@XDSls)6KK?<YCmHe5Zf3k@&5F!G+J3HrBaww>T55QsQVL6swj^h` z`N3k#Hf1^f?ETMC;m3*pF1+LRKMOB#J<@8pOZp`6haAjE?&k5GBWrg5ksG1--7h?> zkdQr})BFBwz*G0R)7yOd*R=k5o)4CnkT7|0Py`5WlD)wBiWd_{T}7or4GnjeMY#Ew zhi36ngTdzm+oLrtytchNMSm<RG>lgdAG6{ztE0tCTH-Sen0-Tq)fd;F!&yHoC8NZS z`@||t^!?O*A?4S}LK<B@9A(wS`u{WMtp-YmY+*p*nqHf3vj>y0lC;U<uuf#3PDFhX zrwN$yu2C;<f}<HOU+{iRd-Hiz|1;T|AodJ)`INnA${0!(U`ixB42q8#ZPuJB&Blg* zr(pU(X{-hc-2pgn#tq1sB2Uh<W&x$g4p{ciLmBcYf?!x95Du~EMQP)4imy`O8Z+`$ z#4g_|ng1|SU%%}RxO66*6QUvF^J?d~;`%?kgii#?JgO8-EdVXRyQcByHGnOSrDbBn zAt^HNj8m=j@oN>#gmYnCa>WJ9GulA(DPS5R2vz)<0<M}l+U%oaQuunT33Do0=#TmS z@eSYj-|J0nfHmH0$-bD2I~EW2ZF`Xxv0%W%)0+cRoEm0HXa`a5^p7dtk4iDu|1tz( zQJZo*p%&o%I!j0Xz{)9(1s67t_EL{}UOys#H^KC;Iqu_4eSnJLY9MKe1BcNbYCh+j zd4(EJ2BayTH;^AfY|I-s0Cji$!vJuOA_mC&VE^8#S1NPmlx!aK&4ZrzAMQ#(#Dy}? z0RbkuWF-9&`O8`Fe;xR@X&%@)^FIY=1y<gt)=nJw$e?mp^&FgT%`6oIB4*a|`Xe~d z$(rI1)qs<H^Ne`U7rYacEOhfocA$;C72UHcC42s5Y`<?C-nFIPaDKEz5&y?Tin1mT zpB|0Yvq?e(<M3849cegfKg&TbgPL&e1!jJlVoB;1n~9gHky4*d_BqP-v104Lu}tbi zE>%)ouX=Anu_c_35IfDUyGlsvGt`OFXCZ+FJ6V|=PP+%s%O;g7T^J9dG3yWubLvv` zL2o*d4Vl5-RPV=4k6M}tX%$X9sn<02GD?Q7&uf3(#qsmmhrtr!b%ws~ip1{gt(R%~ zloB9!6{nMbLk!@9CJ$?bAH;M5W&WkJ5Uj{<#d&;rFfG>%_7%cNF?V~mLzMD?QZa}> zgMd48*ejQ$`GYEjo|ftdow*GIoeoNrzJ{tLX?z7w5$oduhlT<gAK}Yw{1-Kf+;UkR zIB~kcX2Y%oOtTZsG*bqt=2N;s+p=yI*~0CDl$tM{QZ)Q51h;EjnNltxv8Wf=Cu0q( z1{0b?6&>7BMQ`GF5?h3RgDBGn3^z+`&uRP%4Bz?V_r<h;^_*4t#{y#iJcgk7JkEmx zOIhZyq7aF3WYFR=sb*kRSw@6cdgB}`#M*_#OkWbBhT)s`FIm;z8gVViBqi%EEBaB1 z+tUazi;s}^TC3qNbS@~32%2~>UWMPhdm!aRn1Iu?E7%%k6a2whtAXk_I>(<Qq<-JN zeBNifJ?8T0610QNu-VqBOO-<VE$H3TUl!+1t!*@RL4tBvZamM0gk#$nyFST`W)?EQ zTf+p7a3wWEPhk1U2aO(jmLvp71%4CZd%RKVluGfeD{3ZuR1ENaj7yJ3#)?_U|GXUh zvOW)_YnKj4R8)I5iv=y}COdk1RTBYz`muHnMk+WebiqiioPS*D;`u2-3z^@Kt(7{@ zzY}dHMR~qS<HDsSSi#}(3TC3nWY&%TXG89i)Ma>1)|^p@G*xTVTj~q1{F<KG8;je$ zH);*EVmI%3Vs3GEK-N6;J+185xCe5I=adp6!)WB8HJ{SToMx+ocx=oOemR1jj$^de zsY!K1xI!#ye|t~Xu$AY&*?QfMu19M5++LxJ5A`qY&g{x0_(xqbANN&5dB|6Xwh~9o z#c1^drRjh6`JsZ`Zy?td^rfu7rkiWSZHTHQNkPtp`0TjIdNu8AL{;>KDT=tIHC&wn z1Q$+T<Q4>%GJ08M#%-g78y(eDigyqbjG>bpk%w%Fu2~dZ%SKGOP)+>a&yPCtzXb?( zn(H^^ECOHE_t!{b$CNk<>OR^J(!AAr8e2Z63msW)S0lgd4xi4VxVO$LEOycHZq6^N zHce>!v5Rh~v7%h_`h$8$yaPNdjs9IGo*5D~b8dGX37mgRmBoqdFpn!msmvE>875<v zG0Z!4x^sHaK#e<dDtBKVjznz<3=4?_T`uS>|IllB%}_4$K*;k_-V!TvH@U^-HypBx ziTur1th7^hrJz5;y2M{zQHxQZ;#@ZlxI*u>`z4AC^T~VvD4DiC<e1CbnJBm==!~(q zckoT;DYq~;QSLFyH{BZvQ{~B(5)wqOT6}`7p_|nT7ZV(@(`@n(fv+VSX47UVn6-@t z7qpPmc1B8`ep5YJ9!Dq#--^MOTWUBCr%MxHyi>j_RG@X&!rF?G!N7wiqo%uPYv&cF zA{_gC<!E3Zrzn>>?lO8b-!antWA`|Hi~@&_Gp_!ntp?o?3SIww%yRfH^KT?H9D83K ziQrL`W4>VT7{D>zjoN9Y{S-Rc#r?I8n@C{5qlOy7!4}%|%yA9VZmd!<Z<(Bqh}^Gr z5T!Qy>D2MVs&l|nzT)e!ao!AtCGP{w*EkIeBV3a+71MaEtB-@&{iiWJ(dtM0W}oA* zEH1bZfk6we!gYni+T|+u=4jj(GN0^?e^Opv_CF{D=T0tS5j6RgqE<ofikfxy*yiKf z@m@H&gO+HH*U)NzTCeL^@z<64Kpyd~<-(1GSY2qKHT`T#u@M13c0>0Y<+DP2t5D35 zLS3HM8n=d}ir9GeSa+8uT3c?GWtONT*1N08JEG?5pf~+r{;jF}kALrQR3UoNq-Zum z3bley_XdpT^J`T~Ka@n>|E@P}v#f9z*%V>l{kn^j`E2!kpwPZ@Rj+gx_uy35k>mcD z)drPgFoZ)?*`eYK8Q9O%b?)1SB@%<f-P@x@`f?`dhQ8e{d>HvEs{958zFzW>#jIf^ zfjr@Ux*Vb^$z+iLR^ykY{uEZ>lM4oDPjhDY@LIX%jY|S~kS5H}?BNT=V*Q?-I6B~L za#(DP1K}k{R;m8+28RZr3KgiF$hak$dW+{^zb99;dd1<%ZlC*ix3dwEg;?h{%B*~m zrcYc>@9GCt%$KIiX%-agmc2tyk2Ay7jqGaYzT3o=e2WmwM;mFocPtwwBn=I2h8-gF zkYx~4R%C~<&%5qIHp1)j5cJVWY`p$AHq@YULmonz#F~|KHeEV8x1oaC34-6zo4h`Y zEl$kvFsax5ULreR+2|@wUNIu*3`OLLcsnzF?{6<Xk%x%I=pF@M|I%O7FlQDT*;aAl z9f=?Q^^R!u-t93ZHOxj`i}!UG1+Mqt+9muEf_e>^k!>^=P?kQ#nWA$wm9~5$^>Zp6 z37h;D8pN$$bOrVE(dyoMM6wv-a;-2597cEfPz5@&bCNS|{F^gUAC<#ID%F<c>FO>d zI<5&D2x`X*e#focSLXAmQ<Z-=&mB$G{hW;%9`j~efcbTT|NAP>9qT$ouhBqQF>WY& zg4U7~+4SMK|IJ<%>S;mmyZ_5$aFfPwYLkoEr=gd_YZ9@;7m#P`xSvtI$$BbqA^R?} zjE*MN$mvazarNv+yDrg&vPgNF)Z)}DnS=7@16Ywyj@_d64|^Q^^N|&={x5eyy6oCi zC4AH279KOs;dc7Kw~16p)$>#}xx@?~WPY7Aoj3Q{YDLVEqE}I5{L1C<3<S^NykhiK zC|xCL-fihfCGTDuqGWZ#+;bieK|bGM{r$hyd=_Pf!|E#flGg2#_iO86)9$fe4wdQh zL@>_s{1U%N`DOTHhn<21oafR{*Y+=qF18a&-m8|{0xt>WA${KC2=8nu^ZWq*F!!~q zPq~m*hbQIW(m&<kqp}>ce$ncKZSiexk+;^4Yc}2$`I}ACsiKECOW_OI5M+~ca^HrA z<FkitEJ*YRjYqe4MpE(wt=>nrm8J3_(PCl#<zA`S{qdwN?~mL6#roBjJb0SFyDy1* zEk3g(G7n?RUAgKey8rV{wu@Le95QG}q@)2w9)8M1X?4CDNs>@sQ7&&L6i0?nIQsfn zN2_Ovtf|qLn#oDZWlnhiIC+NCf1Uv|CJ(8*K$-1oBY-opm=b924mD~Fp!fXv$yh}$ z^XRixepqDbRVmfX!61n0hc>sB%z|s`YPIw4hfRwoq>UQJlnc58%U95jf@|~IpbV-> zA|L%#?6&{oxRLVJRdDqbuerrF^ev~^KxO^?7d_LDNj|`M;n6h}-OtN!GQ(@9^L9R4 zEhYcLYAps@^Ht<uN2%B#je>4o$htOLJS<vsU4FUy6f;~D<>lFB<3?fdU);$6Z60>E zK!`hk*ivXlSTnRq+>?~7-eJqMe1OM-?u|Ue`hsZ&=$}#pCvn4J0h;>nHv4SOM+{fC z#BdJQ2FY7xP$-2nDy>TdMarj6i*5@k%9$iH-#p2XSN_V7(dzreu(zxsPk8g`&ilC@ zRMCLzuU;^96us!d(#BzVgZU%tT1RGFIwBp>8yOjNveQd!e>_zla;N}d(0or(b4Dt( z>6RB!zp@t*1X)HK7s~T(jPOQk^{>{#y!~I-P`%Np(nzo@TX~50|5lx144{GYsgYD* z<JpjYSH*U3xz&{2C93tn?YuyJh?Gaa8ex6Yfy^nXcr9NWgA9Mp42;h97l_DD`45O- zLw4A!6wLo9j%<T5!w*rZ?%xmD`D~ROz_Nbr(X{P7v4RiJSweCiS6O!DWwRn#k!6U# zP?P(=F2-dhZfo<#g1e~z!837~nMvUuK183V_=Nl05y)Cv9vt!zH<Z?Lcbay&S?*1Z z^luxP)I(a^v^P@w6xecpU-rX)aoM2Ljk?`+7ntFD(ds+R*F5uWt~b99PW|-VI<8JL zUR;iOeb<8b9yP8fIxnZ`i28hdIkIX~HClgaUIZUO>jRv{$}|czc_83vvGS0=49fm* zxi_07Qtg&ovU^VS5J0|6B3Mjd$rk|8L@=Vo98U|UuCZ4~L!qrg^}0kIEx6&*A7u*p z=Sa^7@y4i0&;&4}S=v~Oz2qmhkYbgfG}QN{TYZxL>o)&E6=s>lW+?IPq+fKqiRfF? zq?u{`X<JpR?5cVr1vx5?&2TDQOr-qyhK9$phlCK0;3qXrqU7k!5wjFg+7?4gZWBXK z;t+u>i`bjLBYs{Fy6}AY|KP5rQ#RYkuNK@ZV&vT4<J|d<s4CnmS2Kkx^;ECFd%imy zE-z1*nFn@qhSrexqNy?cH@EeSmnBa}zW!LVx7VAYk=YP!`s{ic7>o{!3?C^)kf4s% z_(fxY!<~Tf|A3V)dD^7l{`#+8f&BybEUtKW6(Ft`HB|N+eFvo(m+pBJ?e#>5S+iwf z!<!x1Pamg9OBa5~*v5tkUWKcvuyJ_MMpf&+2Fa2cp2BX95Y0|Wy$>>R{+~>2@gHE` zMZ0cUAP<GCy-wLrvcx1e3`ID0=^uL(S#5!0l7#tatynDLs7aQ~t&)p~bnzUZic=Kn z(j{jdggD)6KwX0=kvLw#?QpA+UQr7#Pnm7$KP;U$E-3%Y@BYo0b}30WZ>QhlDNjn9 z)|Cvedz+Na`lEmRf`XwFqf>;3meE2n7kC=lI7JR7oku1~{qRB~+1m1?sS&E3Rbyzt zrX?L#V8XnP75NKyfIUG#r~W}e{K{P_-UlN{Meb7=$8QhIAN&F#;)0&z7Ou`rYw7pO z|0SY@_cn{wr$`iq^+Y!v^M@q(`@xU4^pR?0IbLJgbhdSx9P)0Wndh653u6Cl%0uyg zJER+uF9qJzsugB!!V~$TQq4Nkx>F>(kdg(ehy~{CZ~YGRE4-iMOH<)0zi$NG`qn{` z0gkHE<don%e@Zntj8>k>dQMRT8sFC@g)~XlMT^UsB%WkOMb&?>qojjo*t=JKYzGTn z$umL@L!5oTXiPgO@2qi)$CYAGYt)YHNCX)rNS<_tygS&cRZGk0eeV`C1%={-!G30V z|N7uyp6rY#YG@p*)-E9;Pl)W!9K?ZA-+7Wiv;Hmh3<8pVb!)EPnoF4Br$qbPG!9C2 zeI7-xTKXs3A`cnM`L9XN1B+YLAbPh7k1X$-u)Sb$xe3?oW+_K}-z??8;_7znQ@4@_ z-C0GqvF~)*(cr^dC&dypKLA*qvXfndFu&Kf{vYhUc{r47A2_blH=R?|ITcdLX|ar* zl6};X3L#_cThUM?G1=EnCqhxokQ$UMjcu}KjIC@nmMLNE3S+WPObmwcyB|#N>FvF) z-@o5KzH@b5u4$g<zCZi^+)o;KZmrjPbEZaR1P*P^b4Bg+Ba*{CJK;kms_&iV?mSRO z?(fY60mi^gM^U=tNnf?pMCB@qwN@(53)Rw5J+Iy5^-4E-81Ai6yxjZ_X3!o0MZ=5V zWns^TEQr7Qb=U0>E#59K#@#{3E&mMYw5k!*>^*XZ&a{Tj?T!r%_%=MUXKMf-GxPdt z+bzVJ_iO;6(F8(No;N2Dlh)}xzUfQ5<H^`K{nl)LS$MA(d6R4`8wct+(j^%osU5Z* zXZ{!O4mt5!+wfz;T~htk*^7Mva~<Q9=d1@H$*OYtT3CwvJif2?o*L~%LjA3UZpEWd zW^El;CkyUlk>fj>M<=N>NnPlU7qY>z?FW7tj7(L_eA))I&a@_HrTc`BO|km4skVia zMmv0Ti1jzj+|eL-r}csD=%wYsq3_}Dv5lzVT<giH?$_mybuwl&5nHVT`4$WnM{uM< z!<IwTz799nYb@N~$R+_fFJ6+tc9S(vk_W;d(imf>VWa0Cl-HlGS5DbX1RjC!)ZZqR zr!RHLMYXy?(V|?|S_J5!v~sl63>q<byGQp~JEccZx~64{8S3_3m|Hg7{2rq36S&4j z6`vd0ygE(~6hayvHC`vaX+Y|<5_OZid_+UOzW&m<U!%`<_K^m0b8dmV>y8TzZg0C; zj-eCYxx$a~G!&j_yzJ93c@s7KvOfC)n!N*GfH0gCax&kf@kDLUpik|hQ>wwWrZ)Ev zvt^W(d$L-*j)QMuztvaSn6|nY5{84xlvUZ4?*$K?b#+GEmyH4^hDE=w*jv$;2fuMb zu|_yFvjOBxUvb&#O3tV!d*9x7f2=WbfKmSl(2IYrf!QJ~o^Nt*o8rACU|fu6%dyDW z7{cStMapn=z|oj@k~d`a_J{=pIoA(k@>2>^7x*;4bt7km<4IZ#n6E?V+|g3i<LRQS zq3?KBAG!b0=sI1X?HpKlf?$UvFYYk5(-OD0dFS#5le%iN^gaCwUymx%qb}9#^UY*n zJ9YX@vB<yPkx#_Jmp_e_MxLr&*+f|wB*k6en~i}*6z_e}Y-dQjpeSW;QBlR@4H;gI zUKI?zJ_)yX>o~Y3=}=a%)rrN%n_J+6eOD72_#ztF1*=Kk^9%Q>sezLXaGdG6C`zqg zU%$)cJzYco*n``h3``0{hShNW2T63HUa3;6sTFq%zAh{xExjlZ*EW1(lD>T1W-^LE zpV}|h`@G|1NGtvPa(6#lt9Vd;ju~q3T{5^S@&N-_cHK!wH&AH#t3_jkdf+i3n7a7h z@l(0aj=Zu522c!=t))OJPSYRP-;Taut(sG^%`oT;mam?wE|_*jVXjJ$p?6>4AJ+pB zXtt4CLBN>_MzL5Z$7Aff{n?159=J{GVmqZ@OrEzx{D$5)eod`ejTM~l4AWl=bQBdx zb!qxJPK0?+O=o4S;GGmpf2Z*{{kvYh?Ws1(RcBpAB9ylsGmtFr>{{(KM|8J+*EVj9 zo=fbXQ|Eo)^tC8a4TBt=g%=+j<wMJ6w;yyiU-Je#n;Tr-VsxWm+jnc#v6UkPT!xsJ z<$8mnC|_47dHZye9yfk&AH1q%?zmkR?$Y^nu^Ri`SZA+CyC);}eo3i~+N@Z|`n*;2 zX7Cgm1ge%=&g5GI_BpC`!_D{ub5L9udLPne>f`WXgWagxVqYo)&hg<=St}QoLa3U8 zLq(UfDR~RFvMUD(T4gCq{z#3PvdUt~Yk4$g==SeiGBaIwMhL}bm5!5F`yzv~Ur(w5 z!OPwC9-Z-UK$<%FB%mbPZ_@ns<8|Y~x)hW1?OwNhVw!~s&GMm4l(ZP_UQgp+*Wwd0 zC{C%}8H1l?;X8+2=9h3Di%A1aRm&#&s$fXghS%e6Xzln(h4=5k+*~D;8p`Fm7&f^} zPIhbH@XGzqWc!?~1G{}~7*^(E1%t4)P>a_&vFdMfh~vvZ*buRS)9&h>hjBMS?7HG9 zQ^)%9e5ZC-dhW4rNp`bkvRkRcMfeVe0D1wQV}-Q(pSue>zEI$`ciWNB@W7ETo`O1g zJs*O=sG!oda_dY;16w`9i)`h|V)n3mIXrIH8tr{8*WwC&?VUrxb_S=!b}@$ACSwMz z8(puPxHNAQpHVfDyt=Yzx0Ec*)@fzlQ))V}b$OWH$VR%M?k}jBc;T8@RuzL{ck=wS z#I}&t5|N!t8u!<gKKJqZ-(tbdwTgWEYVRmsOY}NBxo~X8#p&XS@Lv;))oTvaU%13~ zy5WK|`2piPyKyjb)2y1HDZ<`u`n|`s{p|kIk-lfz;m@50?*`{~RQ;i?5)v{Q>ZHHT zbjQQQ9)Uj`_cu=L-FIei6(=Qvi)oBWMSo!`rWgce*7;gBd6D0r(Ca@a#&)Tw@=I<! zD9`CdipBbckcN-U9fNahmlqcTwFavd8$&CoI)fi)27TGXVD_Z+n+8AR_FtY`cmF&u zbroNxps6c(-dVJH?A=S(pkH}-#GkL%et2v!McZmIX$RtqhBgK<;@72uCrnmfHn`4J z+_cGRZhhb&?A?0k!c)^(u`;R>zfBZM@T@ckEe&<oEj!P}`E?)2bI}c9AY~D{l;zCC znWix6jcvb<u8&rpKf7^lsWT|W*$}GA%MfcY^VIOJYa3WUJpp+b@=qfa6|w}3GDi=c zcBxz|Z1eDZ<N}!Y4u;nRIZ-^EDsgc2<}5mxHSg}RR#xVzxyc128WAn}P%`S9pmbS! z{?lE=g~;s#>mARqtK9tr>$kzwbg`1Rf@q^HA7{@=7wpp4JTr}suG^S$y@>cuPmk)w zmdV3!ZFfuOuhUXNZ9Vqk>B^S$m8pC>>$}<tW&}PYYYd!UyCQ6iyN@}jF>cKgixm?> z4pavB?*DD=cZHqY#Zl1Wx`If#kfFc-UaO1q)Kq*YdN2S^H}A#lm)e~vAVL-KIIwp6 z_bYfLvU1|;#*d=qvTRqzQq}DiH~40SShFZRJRvgX5{rwe>~5>P>|GREWTSQ-Zk;O% zp&KyN7)KS76R+E9+Y!@!VKmc3xc}OQ38+1$>-Y+CnZ5os%yHw+^{+g8*3H+(H=d`D z))k5Sy?%o)8{Z`}Hw1D0`$@$OT5kLtwL!U!uNTg5$j<ur|F<<nhyO=#K!pGM#4N0o zGbGPpyi4s{JoX3pjO~G#6&AUn&hGV3M?5MP9du8hKApa<S>kEyx=@^vei(c<zFphs z0=!R%i@FOw>+1A!qo8}zMqdiLcwGm%bz~lQ7#_NIV=r!{|NpXui&^(oIA2C`9N4W_ zIRk^M8PB^{hzo0jViz8+qxm1C-A{iQ!H0e&Y&C%CM5g|sz2>d9t(k|H=RLD1ZJX}t zEWX~!Y3JpAaZV4S>S?_@0q~_S!|_5MRlSqt=awh^_<B@5GM-5Oc54M##xPJV0Iki7 zNf_jx_b>5|p5)%;L-)&bL}5?BS@j-j#*G|cA!{CQ?4&RCph00X`soIT{z@t{_neAU zDHlNcL^cMk2KrWP5=dsj)i-X7TI0Y=(1!Wpwl{u*ocW!`at^^6fu~T~GY2GDAI^%V zl7f@7oI)X(bl0q;rMQ^DUgt-*h!+r$1eqW%;Upu@TN!m5+eSZYVUKBwupu%?uSrUc z5)5CXP|MeRhbt#@tz((ZHXfma`%OOqBF8XqPRfJJbCcI-+mxREOD*3q1tG2gjYPWb zP9#*t1sfh|WewSW?aG!gIUcFaB+7@lwR^|2s(l;xA8$ibs)slBbz7@9{=Bb$zShi{ z&XRkQ$@c_8S-0G(<CZOFT=49w|Dp;Uwnb2PPiYOH=QA!n%XM-bQxYxtY0qQf)0{H- zfgtLBENmdlN%~XRznK<{L4y03Y25oBm)SqG-V-??S`y6e)z%~i%?U_<IPsOknpWLl zh2T0X;QCS*AKmgd*`Vm57J$$(t5agMATRA1TRq=v8T;sCT@HXwmVd1IqD~O605ZvQ z$;4-1rz_UVvJRY>V%QjF6gq7=`u}r7;LIrLHuV@pl~;6#oK3D$0`-CP4KnUu>%-M7 zN#etR6zX!N@DkvKlAqRa?;z*WD|&okp@F7Lc<{Fmjb~pC+fqIb`!|xc8qMAAE152{ zEQ2GaCgo>B81whH=CA0tZM*O=CG`@(;rtoMVTR3Fx$23fe0;CHe0Js{%OwHG$<5y2 z)>=MZ;nK6*4L>u}pP`?_T4^zPZA622i$OR#|H`spc&qMk52A^RjO%l=E*LzZPKB3h zA6yEA(Z71yrD02^j-h)U!t;rlxi2wsmTF{gFaR3Xu@-S$49=9oA6RN+1KDx;x_HoL zZpd;-G~8zO_VnX$VZQ3~D$N%kT<XOjA#KGVRpnaI)(NK?qTKeu=vP`l(gRaMzAT;J z^Pn{<Rck)LsMY%j)hEH*PQu=XY<Q;O==`f^Zdm|HnV2<!o;da@j{Gb%Jtp*@{JEVK zGhKP+5mp}+ZhubXK#2azW#9poo6M*t3x}jhB7gG7dbDo}e31D~hkCWO$^(|Ocu&oP z5PW2p7&e6J?P^bVv+@B$qZfVF6*3icgId{VJ24vRqvE{g*12*8nU{EL<yQbYN}##6 zVRveWDpXKn9r$$H+P#6()0)BMab!-ZAu-{^iGn;g`v_CS7}`$a`nFxveSx;r?&=-C z0uv*(A)uhfh!Z(_RjbT_^rCQW^<ZfA8{h4JBjs79rF-$HcR~U6FfPm31`!!dpeZM> z>`!hl|1C03pFN>I;~U^WP0~38j`a?6{SWLzq6HD0^HTz5u2oga{Kxi&T-63FxW$y* za2FSRM4s1^@py#(aoMfklCxe(<4-TbXzHfR#G*(yWm8;{G`?6Kf6w28(tGwWMQhb) z9-UH%0TZPs1=d_pE(LVv9!gr)X?JDj?(-VZ{$fPTu3O`Fv8c1c+ZzAx+?JvBm3K<* zajJ8Ar7mPM>>q$To2peUQZ9b;OTc^ocl|;Q0}8bICk%1B-FNAjfTF0lsq)TX=j&{P zaqqWX+G#ZjY;{wQnqxE<XykZ3uCz>5OF)K)PnmK)sB%85WPCxe<#OEiIV&u;`8<04 z=Vs92UH6MOEOAE+J@X$seW}pO4^%Z44b96QZ8@V)n5b)!Xs}f=AUc~3<AS%dn=$OB z_XP)g578gD`cwT7*KZ7o9|ikGuLZ6(OU(u8UX!9&bZQf@wAH=jBTn{ITm%sAVi5@4 zL*J$D#7(DY)x^g=@BQ=Q$eNUoXt0%<?>p~AjDU#&r5lUvnUaT54;bW6OxD3q+~kMN z>w;|r*M@|E0)u+VG)CRr)g+@KYS%hO*CC7=xfm&MZ2fkKVV~{iy{ARFnF3FZ)5p0{ z%j{1S6UsKd3t}ZcGfQ^u|6L+I_mNu$7+49b-_X&73kVqO#bkP}=C1l%_5`=zYWcz) zdVp|T{<K$20CGHH0u8BylxOKmH{C(mJcK?*1gepzzmFOoelX`U8+81D1%OAp=G*R9 zQA!$Gk_CX<aiv)v-)>DiL=&aCEf3GE3&MVgGKyTv+|y>5BRo?EmdcIB#>I)$U-hqF zewN;LJyf{I!c|l#e+sOYyFMl~af}tG-_jU!=x?XkxjrW2roWwmFvQ&dCPk3GUcG<7 z#DuzXzUWjmHrOUF3{)2F^fDUA@7Y7);*E~jf0F<VE#X&Ui8`p5eXCb0*L3b97Rje{ z?FrYH4pXu)NL<#ds{Gy5ORoFN3&>rKNJLV8I)W_@okac}Kzf}1RO9_i%b*sOpwxVE z0aYFsbt>H5l<UEl7cp^B%x|4kZ)+T3XTPOb{?%@m(UR&q{xjjFQza4uF9RU*>2P%x z%tDEJ23B|OizTkXHMM37?)?WY5*ENEKNVoMx4b~#mQ_G$b_*2_ptR;^A7DWFA8xJc z8a9{YrY9D@0IhUe=6}mig$+csCf4<9R+rD^hV>2w#Kq~8R>ZFV6(8VEpS*v$A^#q* zg*8&^u@D?Bi!WYi?13;n4lvE=SGawOH-_t3FD?7Of-p^B*hN3d{s*`K`j=t*s->u4 z=Ww<`pXKG|xnySkTpb+1SR?+QCEE|)IOm_Ir7vahKh?Hx88qtsmyis*oc(9(N?tu< zow)9IDK&}8*~PH2MN3y!q36#WD@d*9zX}%aTA$JZK0L!i52d#z**hS~{+%n?JN8R0 z1JT|^ch;9`(lAaP4=_7t<>}o#rzVCi1*YbNoSx=tS?96LbnuFin#13Nh+u;a07D=x zq;s+U{89{q3~zNCRxVbLxS3MbJfVI{59QBp;`rnTABoc;)Zf<waG9?aLBi%t5LRdP z#6T0eTRx!A^W&eJ+276MBrttOUXX=4V62C#qK~10>@li?oq=ES87l96&oO20qp$}_ z!`q>VQDj|UM8&XE7^D|ufWED%8T>n<(H(~)S_3m}4V6$CAN}~9RE;eVKw6mPt=;Y% z5S8RKDIZih0@kwJ!VP?M^=Q8X=LS|&`kf1yBq>G_rKo){@XO+TErNGSe!63763aWe zDD6Q);gYFdL&5++@DcxyYkY*L-X-@P7z5a?^ZxnqUdgEQ-8KG8<pxqP>96;Q@T_zt zcRgB#o7Tf;Q^RK<L;GYsx&`4;?sG5^^yu~1rV2<0u0?Ql07b7Z_=|=_TtD$U;SwKx z>|-L*THxu>V=(PhPMA2bq}gl75bj~c&}KU<&V)i$n~jpqzr|uy3yMW5xmc=B_w4rI zOQD}feZiebVOzF-%#z2S{tbTz!}4h+lH$k}22%9Mj<klp^g36lFcqBvC2vp^_e~Zr za}@$}76LQ(HW$psj9l|w^y114+}T81p&KdiV7-hEDJ>m>|Fs!?AR}VfBF5ka7~#yO z9l$#4ZD@qP6j#y;Col2d=4;|6hi^PRDpyusGja5k&@47Hs_{U8{Y;-hD>D;#vw&t< zEYdnzd#3=Q0X{7_pQN0K^cf0pB+o(5KMCrsM};PcF&l(c8x$gW^8x-?9^~>TyuM{` zW?72oInB=ZOkvW#1`K_yz%eUMzgxdVxwXG>;M-;38o@vwp6yJbXo5Af*Q#<CL0rC+ zux<}fT2R=P@SlKIN5$<5@$uLr=Ip*4QaUb+3V&tL-D)F^$K-~iQ_75vBg>b@sZ~y? zNgseRHx?9^%_kQAjkL9Z0x-|-^34&$W&mhIt{#Izm+uai&%lb9ez{DWr72G%Vp4Rn zDn?Zk8UB@*qQ$Ung(ejAyzJyL(@A+#TZ8-V6TFaU<$x4ugJ<%185H1|!4rtad|Yil zWQcRf!sxiBkW#Q-w<D~nzaUztTob$yO)3EFx{~O}Dv$OCH2Z0?n=9rM@z?*)P!HhU zcLTXLAG7A5z%*$6pPRWJFI~^hFvHA5jF$OF356JbefkDSA+t4&a8EL;N(bm;CHBKz zz;zKK(lI#44y(1r1*P{<%ZxyvRde{eWPs_LH6w`#g=`RT8S8QMxx|3l+dXs}d`?-r zr0^uWPpG=1;=yj}t)YGIkn}MfT523t*VT@S_l}P&8-2gz*;z$7Ur^0g=}{o-I`CAS zR+NwO2Z?1^=69N31?CuXwEwl!i_q&8p{-^J^T=wAo6K81)O}v941J0;n)1O0mzCA` zHmyS{U5)DPsDZUTW&l&~u<ZAqVmI$$8|<M3RQRe93Y>)@VbA}*(HPih@6Q{()qd3s zi<#V|;(V7mQ0D*o(9GZvCB3iiS>uf$vVIcj$sZ#rIgM^2MIvs5Umwrzvq^3o1%b8Q zZeixZtZCy672fVQ@MHCyxbnj{CXF*vH|eNYT(#>1+<&@Wy-k2++*LZ^WB^3E>3{7n zM6b@v55Ct@Fl!Krd15|k&TFU^5kpT3)N=X~00ON<+g?2@5qg(f^n}^WAevxvzki2k z|DUviA+?Nw+#>@n>}C*x;fAc2yZfku6bWzai^nP&z}P<3STmFfdU|5+8s~vOcmt{9 z5~Mn+XSn&qqTT9S!{~{9Z2D88O7LBDovKBjF?o?QZL3YEGg|!(T2)NV5B1v}QDv9w z=iBhx5zZ0C(esO^8~WNWPiB|c^tohqIW**dDkeGm4ur&^wX)`<x_}1UT<ZfsDSWzn z1ZYu;0W%$fU&{%cxZ<?eV~2D$Cg1h(VQ*UVK7yFH?)%3ox-aJ7onR=lBtwxtpcXl? zMb=!?jtM{3!BLv`?gSY|1i<Z!(VCq>ArN}KJ0On^LgHn_s^7okVoW5usFOYras9>n zG}{~J$c6`9vF->9?>wTH%R8xDSp%t=V~y8h)iAiu3P?&P^I`WZ|A?GW2hiizy)jZ> z>T2&Z3q2Gb^6%rKI|1opxmLGHH8#0c%{-dAmp<asbi(Oi);G<{%K~i)V%UCkj@>`% z9;9BE(aP#cZJ+xS`f4gKBKMQQ(l5b4CHNx~AE)2r^TiDD+rMB3qxI`0w{|8}wW;u9 z_B+!pXNrauGxw;ReBpinGm$>1wxCLkH3>+m3Uo)y;3w<mvrGB|r_Z|ey96-g>2`tF z{GA>XgGRv~7qHxVOkAl*KmyVyK^2OoTA*kOq@C+JedWmYyBCJVH_aRyEmKFm^GD(2 zcO-voSiC$wAHDx*dwJ<@mD0V;s^ID9K{9;nL3E{5ii2in*Ti8hbK~wd_(yc8TB%** z^lmzMe~Hx};5n0vCF?pTE`}|hQqa{Clkxs;|F|i|dphn!D;8ls+qXg#q)J)eWls53 zHJU$&WVS9Gb29I_w_mevP>b=nW}04lW75+X1SSkK%7i-GCpPp-MyK8DtJm3W`&dZ_ z*#=Qv_V`p~lAA3_n-Kun$c>5DMt4tWThgsfxA}V0xphw&W;wWq=On0qfj^&AYxz#X zxUQ+j8**V6*Jq2vhWU>1WN?YZL-htfaVNoJjy3auIk)x7*(O^m5J;XAr`8$>s;vr} zFX#j9x(xUKoM9tj96VZ-MP$9X6JI^2vfA+4mKa1Ma3<Xd)h=wPV4FVy?&Se)0a}B* zZjzji*gwQkY5D4@6}JoLVZjd5M7G==0gx`O!x#os2weXiMhp@Ry1lzUA)lHb-ZrEa zF!Ic8K;l1F7yW$ol7#+It$`eu&{3gl9{;&g<VUhV<B%Z`9{qzX%e?whApqw(x~l6C zhwpXf(FYY_XfE-a^ou?;%PzjcB~fm`ceZDO;V%kmFB_x-dCI?0G(ngkuBLW5n+hOv zUqA)vvbA%FzOJshAf86y|EybVoO@X*f;BzUnDQ+IDm<^#tamLe;yK{*Xp<y}T-L@( zPeA1E?p5U&jl8D>&AWtr{#G3etFHLkCd-Hh_3ck<%ztUPrhzq{;lg2{`*yg=7;`2( z>NgYDmwBU$1Cw5qeqRyU%mab<woX?+URJe`bC?<U*S>46{a^bY{zypMRsWD`A4>RA zaNRa^vG|Ll^1pbs`M;^3ZZ}<d<I>kk;?0>V*H|H1JSL7j9IG|90_w03jd(!i49c%~ zt{4D8($noZTB5Lv;lSvyaTRm|#pku(Ecw=0#q(4ah_9Hy)p+?JPSb5h(~+HaZnIsi zzF_Jnr@&Z<{@@eVvaxaxkXjSO!xMT|AC5-J$R1<^qE1%*9nG!h7i|oBLiK!50R^e5 zec(#vyMydIiP!y8xvPO*{2H9=tGzSK<tTphduZ9>6eaLi+Ec{{7VTj~K0lml9xK9N zy>}Wc;}i~`-GIAG@ZWG_&85BD?emU=biN<fy0O~PT_JBW8aZ`S1`LomR(mdU;aU&X zd3e_0QaS-7Ol6^rWnXp!k~0Bq^W}RBR$2$$`1N3abenT~7NcucoM)|PA&JLmPHXuN zDuc03&6{}(1&((x&l)4K29rCl_DXL%QyS0hf2gf@Jl6Uj`cioolajIz>d>M~i?Q1C z>A{ygI+C8vK9~~YHc{gK)lZ1ik2Nz&JN^fysNPl9e9Pjy)0<FVR?0kAP`&zG{6QoP zv1FZZ*nQHzeSx3fd_vz<GMJ{s{GuN{+ho04x|6SRr@j^!59f8I*udkP)Y;Q1OU*7h z`M>UpbrW6ibnMNn*lKRVl^*WXU+dD7VUExj!%L?E9mso~I`>wGTCp0MB$*5hQAPlG zz3+yAbo{_ld{Usi?cN|cNRhv}RLn00-qx1j1TGV036FP0wi)ZI>EgKz{j`DD6+=i^ zGn^6TCxxv)4BuiCc5qhwaLQGQFtJp{g1@6S=vx!HL9oZbk;dsqo52xLyXgXkL;lx^ zH%v(ByQK5_Ac5fu`ky~AvG^^v$$~f4bdM4wn5ljuCfTa<zK&R|a&@AzffU4|VVw<# zE~fs#njHFZq^g=tdKpl=*Jh{Y4Zx^%Z@<w7k$Il~xDQzfzDi3+=q?i_bJCZIC180A za2(e&HwpQQn@x(4$%5GUa%0?KT`=2}cJ_sOe<fz@IW})$Yl3)Z02pJ=Wz2@n<go@N z8({sCB+p_5<>l-uJdQC?(Q*1CDI|tE5y(m-WUAH{cmGionQshUMUe$&mN3Zi%jA`l zT;_pk1?Y0Fe7pt51dlW!E->3&;DL`NXGgAmgsem9Gw!<U29Re%#4EkVhJvk7QNY}d zue3<!Y0kb^&iTkyy#qgD$n?+5U-D$!*)Bn-<fO2CPg{wV_P?L6^jeJik50t?KzNGg zToOebiyWf(do+rXwP3o~{Zxn2N-p?6nv*0aJu!3J0+0|!N$K=106FUUuF$1F@TeKD z`s}ocJWyx%m%m=t;PyX%v=wbf3Z%%DLUNa}$ioG*Q7k{(s;`UkJFgE)?)Z<PaQ<Q4 zZ|8EO;%qLMq)W>4%3iu70?aE!-LUH$x>5?F0u0hx!dyq#=0arMHW`yL%eKH>ghfk7 zZ2Un=t-dl>rUHMwL)`onR1cj6N+>v&(oCDnbtkR&@j$Qr2L-%}wOl!BeoEL{Ow2n2 zYo8O_{`UQZIV3h~hWAm}4+PH91g7&fT|hc7ozopST{ZEoB>!2u7i|`6mFvh{a57d8 z=hAv=eT0)|-E?1li0LpHqKxF0?}D6>ZiR%&U&2y-%~M*xZy<efV;C-M9qCNV*TWUq z)4<F5e`Uy`=3@O~bO^)SQ&(rxb(0QKPI0%f`T-k!5~xHw3Ow{{b!rlMC|TURs1-Te zh{<`At{HN4K)&$-S1yHrkauNf&5A{|1>^2)!+Xlz!_Bzuf-`+-_m0(PD-^^TlARg@ zX$xG6oB*REmJzFq658sE&sXPf$A_{9e2oUmR~W`soR&d&i+t76{rJ#tWWsWZrms<c z=#+&qr@neAFWw=9>1$Lq(_8I3+bSBw8X<`;C&sUGYPI2u%vkNxhk)Q0k3v2cYwbUN zEHw{7zDq3%kE;ic*1)<YeRSgPFBizAHg8;ybGhCD)Uj#z9n9eBbg25`++bz!ECswp z2yGx4;q?Mn*mS>WacLqH`{Y#!bEIT&DLH<SeVdUYXaULCaS)Gy2ar;9av#K*mY#!I zpH_5!$7te^6~q`OdyMjJtKydZW?V!xHa4q)d>oTi&7q{GEJtWBeI0SAnj=Y2R%i3# zLl-)zg;B5!8iqL=TOBfSoUlA<Be6QYb5MJ6Saik11DYE+02<C|>4+mHC)MT`3d+xF zQgErlIr-^(<m~;%I)^Mw)kr<(F&;6M`CSP!E{E~bSu&_6Tva;`Y(ul@9#h8>jKfli zim?HV)SQ9ag-Tjkj<0Txu3nmu@ZbzEQkUtB)tw%Hg6$?j0mK9WGt^HyYJTS33K1BQ zfw65zU^x$(=PLDr`L&MGJ6txTi03irBa9AHILpHy1x#B7O-JpGx@kfVD-8~`)Jo2N ziPcfo>iccdVA&fWSOHihNT#Oe@+r;J8>2+=IkC-iE0I(M=aP8ANUYs~V_cF!?(}1{ znQ6$1uSaSEJOQjq(GH%v|1oIgNp<k7sP=M|3V1bXSj$?l1oQ8EHd~(&%@WWy%3Xel zsM%X&Z9o7nYIbA`R!zvC3oJ)8(3d0k&TcS*Lm<bCUb`Ie>$Ph#O?|dox8D7u^oaD# z{h;BlYmu^ta0Y+BHahII^&kELg<XQ@{(QDY(fa+HbNi;A2kYMM6h70|e5ExhV>)Q* z#aWktaT_}`J2&dYoF;=#yw^IGpU*L$^PHyl4;lf+ulRH7EsDS!Jhx^En0991lqf=k zF0w`bl6|QgYq+~%G*d+sAfmTMbo>*^r+c(q_E-*eJ@x}9E`7pf5DMPW-Q3P%Q$wkw z0N9J-lK2>|*?$fk+)WQx8b;pEa|*VYT?l!k-Oty^EKwkRHj%QJ$I!fx{pmwptE{`Y z{n?~9hNg?uRcdt#*2z|as|!hS+ump36HP~nBjmj0mJXH6EX@Nb>=8jwZ{l%V4;frJ zjiIY;ZS?5FXFd{`L#r#X8BxNb>=k2vj#e~v*Os_aGR&kilJ#!x5ZCL1S<3fS)Ex(! z^D7p2&@j@2t%=pa{W786heHEfVkT!?SeBAtgWR>?7@JLt@=ckEc|(s9F?MWxaKhd# zNyPTB6YNTzoP<gC)ok1@y2QW{>YWWUbaIE7z*9TlzG@paF%zRCI-wf9B17%-u_*Oj zoe+d33f-XA_GMMnbIIJ(<jKNaq>ScJI9aZh>tJhk>4W1lQbK1stTySW(b~PpiD)t` zYb2Y2(hv<g+S{e+_y@2nFHd~WFTtW=dcZb6_V#l+Mp~R^V@+K#rlX7G$mNeLkCyq$ z`S2|u?ys@t4s5LX0dbIYUTJM&&%1>Bwg5T^kYNuA*PDW4;a4w#3lzYp^uI=Ujsl5k z=~@{%Muzbxm~uwP_m|H0GhC?sp1!38{&k0;VrcPC5SgR>oY3ZJ7mTh}0r?uVFFL|r znp1IM+XvSE4c&qH>5lQ}zsZAkMLKF3^<MfTj8Yn2wDRI-2p;vH;F+ta@L0|LKWVr& zLp2&>kgRPR=mg2G;GcjZKn5Z3H<*4Nj4NH}XUbQpONUBk-Lx_4PSKbibcbFqsj%;- zg*!Bt+l$CBtpwA<4y5@^E1y1pV+hMM&}_N*^(UCgIfx4;Mpp^AU5kwqrCw80zS7wM z0tLUH7N%ij!HW%Wg_Td0zIl<Uglhi;gKA&2PrpbMRM+AA-q-_Qcoe`eRgD*Fn-m$= zpJ-Z2U(%Q^y#Oe&7d+9w-v5NIy0{C240Duc^b&ANp8&}U_g_z<<wqPWx(HngIiIyw z>Gw;EC10F|omNA2(J+wiOFVx86`OzmVKOTo%zlh$R1~O5yGUl;dybnm9;{YoXNlPO zJ5vk<p|gB$|3uvf^5orQ*sxUAX}LkqUKzq<ug4#N#R_|WB0?646GOt9p0PGs9E}W` zXy`4>33+);V`21Cv@nq5Q$I<mYDcZHRt`>S$cwCL(RVYjbT~gy_6mT4_Y_bi@LA7l zAAzpgCwGE~s;cxI05%C%sI?Q$DZT@g?j++UrVR+**+#?6NoF;BF-5wu60_qRs_b>J zXaKjBu@<94g7XqZ-@H>gE7wX5mEz_>l7>|9A;9hZ{-3BT6NnlNp<$F|vV!OdqOD#X zJAIs4T1)@j0fnQJ9zOw5X!ZIpHI!Bptd|LG?*nbm9Xk5H{dv2|m(Os812jyIM<qHz z#JAt=HMINo|K9x~`NRno7uxRtExD{9R-P@o*RFe*GF|W$h{6{fxAq7&S(7aVl*(kq zSvA!CCYXhXbk^y7t%rV;ot4B(GtlbaD_hXzkdR%>w%53EK@Ig64KwBcbtY@=45OP+ zx#|ZFJj#|-l*~GxgM;)S^<F<zL-+z7)rAHe)&oySt`&3x?E}ozP-!&G#B`YkiF5j3 z(2%eYgflobeWN%A?F?C|Oi2$R0UG8i#`Lht@(rqtk14?Csq}vfR!w_F$fu`X<hmvp zK+Gkf-?+yRn7y#;+`=KW9uFkjrp%RO767sWx6AEfW3r7u^W_?xS5kk1Q*8f}CuA5I z*6Zal|BWeM4hjF2<ex9|g)iLoit-}o;*^@~SkA8|%Lkzoa!yYCH_vauBL9j2SL#F9 z40sR9fD_^<_0Xj`KV6FNVz$}S_Ruh<WSB~SB^I0p@n%cg?W`2P!)$yghho&^5%OiT zQ4D%}7=<USgc+ZDptZ_(7!4V|Hj_1U1AqZE{X=XE4KtHyDp&R;ZPH0}b-^6&=^97F zXfOe(27^~+Ug6$8iBPdUDst@fMBgu;j`4&KMK#H_$Z?kGUYiYnX2@ak5uoeRS<95_ zWk(;*BAvd&CUcfl%_eoHhR(zxXc!wGcNE2dP<~F``EDn1ON~p-Uff)YFFoaB=49D) zd0*q|2xHZLnsWAP8hNn6P$EWUvX`V1xXNxd;@D!~k9Se90ivzijJ_VKKCbCl=={Al zg4RI1xP#C~5J&uI*w4TINU45-Q!4Z#yTDml-SVq#^7+S4`p!oVuEuM#9q!ODZ+A}n zE09<ZC2S=H>YiRqIz&Dkex-M~Pbnktw^rqe6=8*cN^;WU91ux_SIBoqI9i;*-D!8@ zSO;bXkR@*P){$YXp(bO{c2-Q~fE0IX0x)euK>zglc)>{cteV)YhxWJEXSR;PmnTH^ z6HKr7C)DnLB9~A|ZGWQxj;(m9`s)0c{om-8fKXn(OH)$#bnv7)c^^JCkJR+ervR-t zKJ)wrLiZzGE<YzTO7;BrE-kdvn%-<N*=J%T90L5Ee6<&?-!zVtjhl<^R#xeMY-2>6 z8i*+DH6Ce{XLuK2id8?kbP3;(_sqX!N6nAZ_tX>HGj+a@9CJihqomIN#o=vY?zmXh zs%(^SCR8l^L5(ea3Dco=YN$_ucCV^@o#vSgIC|{&u4>ictRmx}q1_(z_=m;`OZ`QZ z01uyj*;mQn;2&C5fA<k%_UctLb3Vg;KD>PfIJZY{ddv`3_K5CRz8;0=cdgp{zIuo( z7+GOxkRCR^ldh7<Y-UJhU-&*o#>MpIw9iz?c{NnccMB1+q9ZDEV0mdl0-j=5GMsR& zF`0FpmLFKOpHc3S@ML;`+~PZ^EuFhZt5vO<^XwytXEX-3(dsTfz2wsAE^^lKtsrX` zeP3?>RJb_;?^G~pid4l<06910@E_ET%|@Vb*%^rxTfbAESA&0Ft!y5yk5TXs)o9*5 zk$zn`V(cfs)M<x-b>eYK@-K1?0P72kgEZA9=Qs{47Tr`rh3i!{F)xG5)Rk_PDrW!W zWKoFX;-k>{YI%4b&Z}{SR3r-jdSkxl)@`}RyLt|!{Udi;Sj^*#z&eP!`cgUCl%T}8 z!nDbU0XWHMj2RLa`9?3f-#E&rP;IpWZCAYKdlvzs8DuCslfB3{fJ!glu<)VrtDshg z?xh+DBD0}j@U_-XXKKHfjnBLlqb0bHRl#ls6k=+w4&}%_7IS<=d3nq!QRU*k+U&AK zRqDklIRpYGum2R!G(&C0w8w~<8T^TNifnX1v5F<h>EQf|d$+*TwLb<I7n4^OXq9Bx zX4$OfLS_nhovHTf^s%BGpFRW;=QU9p#2j~vuXS=*&LQ9sM%}{xUms3B%u4b8Eb~yM z&!a0zF>+J)UW^@W|9~eXwd!sbdKpPn)6(A`_u!8XL`c=gwGY<~^5pD6j>6HOx4awv z=YN2pwXgsX10bBP3O$UsLvlta9G59CvO5co>F1bpYW=H|*$Xp_-X<7xvS+1iyGvxn zEzR22d%AoXqrn=1SP$RE$~t2B)jT^ftn&a#DdT-bKYD!nLR`S0qY$Q)dd7y1o%zWI zbXx7%hcOMeGK#cau9p|{HL)ted9i~@F2o_yqE0A7b2!TwmeuEf*jMYDr4MVmvG9IN zi~fWR@6_xr9iQO4&&n!>uj&tkt?ms^?uE;ncG8LWCuF?&<#ya{pk#*Yv8}i3kV0?b z34wZhu(PfHy9cuwwkn|_zMk%9PRTO-pB%U>FCG3>DAwuimhw_U*0Wp)e2UFc23oGu zaNIZTTU(u)dq84*nQ`&TK!N>F&c<61#ZSY0#+v%{5wU|S{evwc<4biC+C(okT8#hn zVDbtXlAIJm@bHr?AW{A+HLu@zD~mecPZmPl_U%P;{ORVLQTmjisJw@zGVjcge}ag? z0d&W$!S=6q-OHm9@C!>NX2RnW><SqT?HoQ86~)Q29rP1o2jx9(s9_hn(>!hx)ECO5 z@)@E!)~R*_2D7bJNldr{!JBt7%PXH<9z$msn%=p;_kn!5yv&Xgf|saGP(}TmKx5%# z$iBu4C|Tu2;rFz;<L$tfBUaU=m#*1k%Eg%>K1uCP$}1{*xs3Lu2+g1326a;-VP`cI zFej~E^YSZ>(-)`~)jn5`KyE|SPnErszTz{@TqZ<U-_Tb>QDtIXv_sTFA1Q^uM{Ev3 zZKX}{{UXR8-JpntZ5!cl#fk)p8t7$AFbgM_b4~R!2<Rui`ArEL<Q*x5fb*z1@6|`H zdMNhqUKNeroh^?TTXaCfI<RQGghc)n(jVBh3^%8*$XMH$F}9-ypNMO3F0V+zAUku? z3nw2t*xH!+*jb62{q5$IRoJeD+D1w<vBMy*myM}GsyGHEt~@+iCWu?!a}Bq2)>YAq zTG<WRZR7o;QK4=iW9{}o9J&w@`ba}{{;UKiI1t3OF7p*Pdjg^k6}5*sb|Cvp4k^E< z)+u6zOGSRfh14&#CAMnoS$0L}`I7Wqn`<w1{B;`Z(Px2x3DO=&X=GtwNoM_KV)^yr zQP-JsCF68I9KAH9`W+=qjvyh1os-7@ljf$K-&CfZp5Icgk$RIz(i`uwq;V)qKijho z@Fpj~oGWUy2GVqs+{%0hvDVflbuRio5L5WVTbb2C7fxVddSNBbi&7iw!h+A9o?j>m zG_o=<<S*$IQEz7V?`?J;f0V#K5u1_THs^2U6Vi!KZ=({EqaDx0QwM`w;^e*sLo5*+ z7&J>IjE8}<mkPwUOZ7%eDfZdVTVI<c=Ik+>9jG;9xHWa6;!`)-*&FLiO;{l!s}Dux z54Rf~^&X_OGfPU~h>23y0?gH){X~b3vF3A}QVmGYGD(c4s@W0(eFr+3IU(wri`zwH zp61N#AH)eDj9Nrdp>rM8TA&U_WPFe)>^Fv^y+ma9H^)9Juh=xQH{5Ri{xE85Dl>d> zHavLPGQVuH?PG{`O4b!szwVlW<&x6~osyXaW~$Zs4`Dv>I>mOWi9{F}eo}vRNV!a7 z^~^WFeB_uI$Hw(*N%ZFrhx)X`i{Ye-#F1pyq7%K+c!r_NFiQdg(CRIsJE3L|&Zv)B zH7_1Mmo(wmUGk_rRwi)T4BjZT${KR2uOxiolw3P|cU?roOMSq(TRoLK(>wh-`s2zq zQ-k56!<qjbtL5fM9=K^|)NKzk=6CX0r>|GBIg{HR!0U(<sMR3cYaqim4CJdKw}g+r zMoEdL1Fi8AR1;TKWnMa&Z?0aYLWn;pK{!Z`X*i3D$@pT^+q6S6vnr{4`gePPa&U4Y zgt0AnZOluu9Pf-R{?=Ie=9f7K0ux!W&+;j9(_&`Pe4bUN466-H@e>5{jiB-61}FJm z!;CA5;Yu0>d-$n|#0Z(*4*ZwBX}>;N>aU2qC<J(KYpi2MLhDPlyeNE*_^@Oz?%iKp z;!{3AyyN+^OE8;kc!pD|0Bld#y%=rK1`b<lf<0u521;oJOj>$fRN!@N;*0RGIQ}Q8 zxv=mg_7J<h=1RASSOWqvHd}E%FTIUMynl$^e!<raf2*TV;}B9A!;Xm4pA$hNblRJE z!Px(7eSpV!j{$$T5PwltetkCUA<`tH+27VX>ux(*C~vA1zPY?SCH$q&D^tYPhC;jh z<9keU`eJ*Rnk^8|qEaUZ6=a|?&qkRfS6fWL(!!(^1he*Pv;;dFJuDJ(nEh@bzNv{k zp!&_(tE{TE#*?o%i}yexf36V!jG2g!G5@Lgxx7(#{trI>_L=4Y_`b}LSJMx!4qTkf zzWoxWLkvA%nT~KyyswK#)EAb3YU@-*yYM|@Y)e$Dr~SK}YigHG2D~ku?`L$nU<0k} zyPto7_cXYiOr(DNy>q&dWv`c!l9n7fit5Uq$ej#6t9R$n&st`Nk;9mpOK0I^UL3bH zima1U30<UB>n9=uWU@edxjZ(xs3m`ND}7v_zgd=TJ}Vw>^QvioyF9zR;R0f8sp34a z3v)z6{&cFyix%ma_HHaHseOk+aG!RjJvdR_nb}D$+!QQ^b){!qVa2CWcQM8s5vaWO z5=&pZ_F!53oK=Qoyh@kDO=ICUmy^j8SATW$)c`&?!{=AG>~m@9Zyx+qWSNj63z1>9 z(ph~==22j#GQrf@e<*2^0%vRQ6TKdNsk!3P3QA`df2gW_P$`+^J~@H>H>6XY!q<&O z&hFowj`xUU409Cc;`BR`LlY_^blt#_Y7W`gI?tTSokUaZguD&p4KbawofaR|t_>f1 z+Qfx!bkEd|QnJxm)O4f16yL4?PHbQ1r&Vl-aA}|@xoUw{ZL~&E&2Q%Lm59}n51U$u z?J8%5_*Yf5`kt`vk4^yD9j-VJjBO(bVDeh05BVc%X`Y5BWMe!eS+TH0q~m*HetVDf zz8fG4_mQKsux72s$!?xl?>}bAj!mto-L(_`6FFZLA9MJ=ECuX))6;LHm$5>5D{gQN zfY@!WM>`88fd5Kx!Gsj*5e?HjsBfZ|LGdC_OT3zWxRdk5Jp7LdK7xu?aak)+z1Ai$ zk`<gsthn`6eXuZPU#q**MP<g^JaEWfdZ>;=^z24(YGT5xXp@1Ny1BCP9ow4n>&+q> znB;9u2a95v+UaSI{lj1ut~yTN)%SU(b}AORSLvr1*bbJ(R|Kj6!K5O2PKQOD7&a3` znt$sjd67XGOQWfpgDrC1*&&qQRQKNYL)cT06;eP4m*gg=jNGq_RjSQ2`E+jT<gQqg z;_Z5N{+kzr`?WJ|5mw%bxNOw_0drAOx5s)3No5Td!cqiN$*Z;M7-V@>N_e49bc}<Z zSWb{USvo~9V|vGBK&_;o8M+pv5{L6-r19U(jQo$zenWT5uLNn_&I4Ah@&s_v+OL?( zudcmN4$q?3PWBc}vU>KJySpg>B_t{DpCzBsCFx1x+ij{*$K*53gsm+Q!a!Alyq|MZ zDM`Q}v-Jedn9_Yf9E7MZEA0f2L7Dwjf!W{~sKJt{Ri6I9_<IB`44$wzBCg~I78=|6 zo$~o`M<^w(njJv^nPsGA4>)!2%3UixR2N-WFQZ>s2vJMQNpCqs&o_|L1-$^ViEI5* zcnm2anzyY<oR`|f*GU)Xz#tnuwfNmZqMa+g%^5#yRY6Hr0}mmM2gI(PsAG21nTpqc z3J1%h4mZww>1RI$g=Kd&TEtFG%_c0>HdUi}uF4_AV^|~0Hgvd!ND<J*)_aj<D4K-y zxTooD&4E4jZZ=>T`ELL2*{aBDqjA0pbMSOZexRP|gt=ZukG0WM_WO~NT<Gk&(O~e@ z$1>eFNu(ue+ch(v3sTk^?sltqc4%*?hl0`nfJrIbi~N-g(>SsduGFMKSs42mP8?V~ z#<-G;oBgz#a(QR+TNT2B&-ACREbTcw$be!iu@G%G{|!$0g@fk=r}Bx!G!HBJC#o@W zRf<&;arz(J5D2_HVGq#N3d?H67b*LmI-o4lOY`dw<x&)bdE1F8z^h}CkF|YGkiGdY zns>z(crXUAgj<sNC5Prz$WpA(&cvT3EDiI)TMZR>N>@$H&L|S3JOyt011G5&iJ>_U zz4R}$;whIy7elKau{9kuXBg2mOk--lK9H{Q3&CL6bJYGx9C<0Vck!|GlFu9}@-qvZ z-rs39BI4n&W<CVBK7HaR>hwNjoL;`2Ii%n1)gzE-XT79_L<l#|9WO3<vUI?8ya;7y zAcc2RHB*nAs4_YvYwXG@$tD%HuV`fD(H)n6&VEWP5umVQqz2W_o2Ca=Ea$hbE^5<v z+_d|8Hnja5@PA)TDbA@2UqnaXlvma0xvOh%$7{{>rA!_XT~^5pa`JJtBwV=*&Nu9$ zXN<l6wzmg~@Mqhm^WJuP;Qazon+;q^csZO@mMF77jKF-Pdwa=LjT(IS&{Dg%8B+7A zqfnMoEHQVX5IiuI4>GvC{!)WqO^V5Z%Vi9e48X8)WdVVvzp`x$Ct2hW=MyU|opJmA z&V1Q>Kh-UP-IfG)yBSo>SJ{;62O8}H8o9?!fFgMvuKtR4Ntr*eI_om<&<6a^;&UNa z{@aOvY)&$(j<n$dZ|S5jWrG-e0srP9F50%@^kSkYI`Ey;<~Mk%)o}$l7TurKu61b6 z9t0g`BmI<w<R))P{LNrU+cLKuG!!^kE{VJef@DgD<uUI;Ry(7iI<db}yhNiV`%X?F zD?@R>X)OGI$WF!6HL&xo4yMwQwV5$}uk*E6-#Fyj8u^cm(F-Y|(@bJ)=(Gne9)jKb zF#cANS@;&y&4EqfH1Lc|usuTOf%n#rPxkrPMu5z#QieUca%k^=5U79JJ|Uy-0SIrF zs$t*gXb!uU;bV1|E)}@LLYPb;?MUSBCjetJF@a~4*vu=-^y+5iw&!0mOi&`p;M4W7 zsO^XGOuIQoSi65-;gP07%4j>fxI~A4SV#=Z7+gN`-+7q87G986gH{qtbJ@@5wdjh; z^hK&XD8Ed0CX-wfO%MAH1cpw_Nj;Pg9*gS(u_95(-e|{}1X=WmUT{+gwHC6=DT(bD zmkL?R#vfE-jlto6^t34ttVh#>X;B@!R6B55SVe35W4jX&U+i>0)+ayc@jML7Qh989 z@DyI;R04km0pxK_>o`?<q<wu*UQH+rG)&3Ym(tx5Uoml9%<LxKYp0%wLD0d({)ZW@ zD_5|Tz|Q|6SoQ&P5+JXX%j#pl-Cfi-TT6;3;g>tl!fkVKvtMi$eMQwIs(F}bm(c{% zl#mc<P~Y|_4M*r;y~Ew2tFHQYKNx+WFJ&l70e<VT%+d64kt|DuUNW^@r_F9ZnJZ{P zZ%N~SdSzP{T-zFk$4!X0(xj-KuJ5bHODs{AA>C+s8z(5zm<<>YoHDmE@U$P#&HA17 z6?rIcj6#xwo&dR+9CuaIe7p~-M#obqX1=fWu+fkE@OS3E&+|g5GSuJ6%~>Icf{^zH zDA)}?w;_K0`<ue_)`8WW?kV3v8$8a78ocwe=u(M;A$&AZe$nf?8f}d3(45lEbetzw ztrRIEzqNEW@zx4uRPmQLhxLJ$*UZwmB?#2d@tc?nBV_jZ;2ibDyzMQ7d8gYhtn;kT zU>xquN1=+mOnF1hKU@;8*FT|JQhVOy^QDfsI$KwX`*3(8dx7uEaKJbkLXoL#S2AgW zynwe!mudr((Q_fxV9L-ylDamE@HwsV?!>EBe>tgL=Kgv3UkpEzdKF}T@*+^7!$*x) zbv9KqiM28t7+-6@W(DkSe!gSS1dD|;gXSBBf?emC_(pY>N~>OiY3XcR?x*7x-}1Uq zyl)+!o|xN<@;UXZjx>IRzrAD8XU@!__d%<H>(`=dhn`*O@+5<ErPYqKx^;M5X4L-9 z#WZ{R+=ZJ}!<J14sC!zyO{u32m}1|U^TknRHPd6BO@;;767Wi=lHB~0^`$^|9Zcw# zN;T-E%oHjMtZI1^UXUi<N~LZw6gZ4v5zGb&X=t-~O<B^bhGC3a!vYamaJi~92Lmcv znR-8!v0Y4N0cQcyoW>OLLDh%7Miu!Eeyk*etw%yX(_5S2D|qANIBodD1s1BBO=#t0 zfLEsZN`N%YC3G3#<LAU2*%x)HD9wWybE$rzldY@hxBvFFoE`q*&#=fSA8*S8sxjyb z$4{2YiD4}zng%AoI|28G-$Tdu$fjR;s}<tgy<`=Ew)vJfmm?m7pGs@`PL$bB+krp5 zaH;KXdF8vwfG%cD`NOKEepT%keR1rxLvu=`LK%`Eb0ATPV&~KNkGC}brnlByr4O@i zLRJbUBPc3pdec68I?l}Oi5NC*qJqq}qvH}~Ndj27kipAnJ%JJPei(2@kAHS{f*IRs zm`lL+fClL|8S0=P8lR@0d`$p(P);UGlQo>^q89M23pVlM{;5T&T0CHP-G$%|rIY&! z?pNp;%{zWYMOY^W*Dh(gC#N1t?#-Uab0tr^A}j{E8TJel#rx(-m$IWiy*wtf^_`Rk z?0B$j!~1~l{zIMMF<R<eJFBN<x9&fMy4Vv`Gc$KUO#P!~gA8@52d>DBbMWf8M`ZRE z>{D=J{m)|DyEcb#L^4Zrq3&3>jt4CQREIeIXW@NcK6QDlHmGHgVU)_RUZwO53p5qM z7p<&_vvRrUaRqhn0!kGv1&+jYYPZ^tity@H*Va*grMTP!jz^Cl{AQm{VK-i&x>&H{ z_U^N%^(FShoB#&-C!(axd|R%JTjyFIh4ea=YC7nqVm!Im)Y<pGT&uAafFD8XN5W!r z19swPyUVU+6{>3#$@aG3$9v2XRvtg&02;*{doqkFnT3?gI{i!%3NKn`>sOielR_cW z%~)UK#T<hw+icwI^H)%BI(`Dii!i<IhuU@fiZ}1)2+M}Mr_98#LEhn_PG3L~7$Zz} zpIGLj^_{SqmSi3*o|~Er9#{)EDiZ6^?ZV;&>##>;qP=cKskqP6yNxe2>O^Wsa%`i$ zJL}6qy=1LO@T8)ZNj~5%C`Rv*#P6x(sB1*am=@1xYdS1XO0jM&21`c$lXI?rXRoR+ z-}eU{Au|f~re02COdB>biXzQ`!zSj7b!S(fw!QBPU0G->G^h@-%J3pXGZ;;7TX)FW znJTK9qa+o1#Vv##_qz%oY1K*U|0T+vt)74!rHd=`l`kydU-zR1+o~o@VpjSZ-d_`< zVZ;r7Ls8GHS90LfVl&p{Jx7P=;~~-<ph3GG|Ez8e^Q-903||~RXgXSX)zNOP1Uqq6 z(oIFo-lanX^VpVxI&O!6NyU}U`CB6`qvkBV^Xe&$1?I526N^<eI~`A%T$P`)x_;d; zC)p;LFTqz0mEe*>IT$D%t4+dcSA9vd;`Gi31xOo%FvSKB=E0bV%O0f#L@WRM^*3zn zGiPPr7U-NFnD9VbL@6dE?h-WZ3<@i3WyJU!W`w6&1g|JsKHj$w8_KW-+H)w6Vg~9{ zytAg1k4QySKgHW3^^n~F6TxWNGyTeml+y53<?KL-`kb<|;Ec*&qKsY_xr$FCC4yVv zoj(nayqr!u3W7k67a0rzB+(-2^Oub|U+!3?1V|f#?z47?75<m-KdXMz_BdCL_mGp9 zdaYm-Jc-<tFY)xZUf%@7WovN!7L;nQPgd4|8K9c-K=0KFs38vg1$ckYeE4==-iz#) z&Nd|6wbjnqse;Y#RfV&+Qg`3$NYV~$c<1Kc=uK5S<Yx5Wmif`&l1Y+Td?eiLl~@`^ z$i7>p>9xvElI2C7v<HQ%f37?cT{`)k@=yw|U=%+7dhY)?6}!=mP~DL~H>3aDCI|t9 z2eIziSP^tV4bKRe7q)45vaj!6quPWP<9hHb!E&b;2W^cN&V-`hB`%97DViX<J)2^o zo@e@VNPv01fhm&AKlQgmOELc@JF3y@Em){PR`v8>w{EF|h8sE}{YjT04KI=MR`&I2 zs5OpTeyD`pnJ=;T`IH8!epO|Hd(y_*Ll)3D%A>#Uw}4JL8Ab#sI;`l;w?!TZV7}bG zg?FvLE)o}0w?ooI93PKd%ot0y{*v-6;D*-gz3%d@4TIWHF;3X2Dx^CvYsLM>fX7M< z`iR@Z`jVB%So@I*?yTK$Xh7nyJ}4uRVIY<Ak2$C@did6+NIO%+owyT)!{rmWZ+{%y z025`6>W1pmK)k`fjXB%35sSl7ziq6L$eN<eSBKPW`DHV+eYbJ5kKt7kZkNUj$rtxh zA@DZcyA`Lug81k2Ovmi!ohj&9&5+NO>U?Opk6T8351y!g6ek%gnFYpcnqUOn+Z?t7 zWrxSLa@C7rX)oGFW291vUw;|2t`g_#xIOXPMLrCYEEZnJgvYjq{C|Xf2{_bk+jsZV zT|JewDUzj<eT$Nv3YD>C#=aINWewR4t%O1hvX^FPEF)wY%cyJ_qGdE$r!WSC$vVbZ zzU!~t&-;Gw_a5II9mjnf-7(j4Ug!Ede<#zr)8u0lq0ko2?hF*ptQYT_6VIt{3O@9o z6<<cc0gNJ17wCgv5M@GGrVm8Q;H_(K-`e~1V0+l~tiBI;N#2Mxzw*}(|M?19mTR2| zTX_|XnR27Qa>{inTNSX7g*uQnu_@<}0GlEjHK<XPnVabg<Ic7^2xQ|E$coUS1=V6= z==9ZZOcj$u2eDA)apMmpJa>!%%Mn?3r?VhHitGk}t?qWoP-?Fp?fcBI90Y!}$;Xsw z2(SH6eF)}!AVmYV``}69k<-Z#7<>~1ss@^p5PoAHK^3lmhOXKr#V|8ww?%)~gFq~J zppV5#;(FVXgXL;|%yn8mY??j|UgyRiXbD@g;NVbVaseIXZIEyJ=cmm2W}LN75tqD~ z>z2$wqSVMFEBkkY&Yzs`CxCN&mMb9*9wWe5$-la7YTUEFe0MUzegnFb0DuF7bNE17 zis@i*i@NdAlk1EUyQ$1>f%ldW9CuTS04Qdcp*fEh8j)vdoYpD_;n{A3_R%Z}V;SyP z$J_7duIp0(o++$3)zI9a#I`e!J!-VKvXz;`vTg9|9qx2wtk{t?iHhSx3oVQfeS)qI zu$cA5g?2Ab%&lKQ0#33tB9`vcGZ*_y`#K7`2AYg77~${cE(mv3R5x~NnC^;QCr->g zq19VeRt`tB_I7Xxb(9JcCnvBZwkbGfeJzWrH8ywQ4_J(EFW7Z~j<*+p0lm&FTYqxD zoFxR7T!X<Rb`ISN=OT6OD08Nu>&`EOxE8bPC~o##&x<AC^nuu^O2k;obl0nLTjL47 zVRpM#U{N!^UDC7YZXN5YPgSmBmt|FvVhZa-MP<8?E85MXrw2DtQ3^Y6^5@H+BY>14 zO*^j`r-6h+#a7$WSV&0hV-rbFs#Y!^_U#T7*6_Tn9{IIu-Ea`USE0y}&IY8^Qt?lf zzdI}_t=n`?b0K%I3WXfg-YkSLh@EOopTS@?ao4IiWVG|N(?AtrdwNiI4I|W$sW<4p zY7#AI6a!xng0sRpVii&y0t&nKK26-fuZ)3~8pEE^ry}KFqJ2qcNRlNv9{~3EA)x3v z2MRi~NmWTrmPFr$FF82%IxWD(?J$0w=%=UgO#^p)fiKrFz*r<!o!qf|YhR9Y_E`t- z3I9&V#uY+rxLiQ`t2ttm^JwyxAu7Gg*6hG5L<ip&e&C$Q;2-7+YFZF3My@!>Xju+= zo$jN!xhbcs1e(W)v^y}%SSLH}c@n}RH<jFd=xOlMb^>G@s2On!sAcx(K(9gzbY>mR zjbFFFUX^?~YvAu?Io!z9mwhF{rO!^AOo}D4dfO)zzcjfQb3*1ET<hY<KCPjdmIb(3 zE#4`u{n$I?;gLhzhphUf{<>YUeHJFC$2@<s({zyi%4XNm_RyzlExB_%OoRhFe^Qkc z>Nqq5r(D-?9Q0B#4<K*KJ;2rNO85u^Wcv(T<KW@9FDBo<P%eLYDc*V#T<QD;ebI=e z8jrtDl)Sy-8ud`iKuY16qw8zUaPLygK6N#&3QQtPZ8)eMZDi4-<eHqNG7H;+j5%li zmB#-;8jh9)BhS2&b3gD6#^w$i9*RuKdWoc14ssj=EYWpy@cdWeo3D7M=%Hg7hxqtq z^F5?rN#xHv8b=G70hMbr1}y`S4zu6QmB|J-Cl%s@C0MQvzaEy*4+|G)xeg9DHJArK z?tjNQ&`?!<zr`c!Q4_<yLyvduCT-YjsN!32eK6BKnf~!;OHT53DIt0oC9Z~XVz4BS z5|-+I3?HvXKaps8SZYq_@p%1ZLDwDz`-^wK4O?k+D)(SKVv&6~7Ur47`_vy2@h#^} z09;kpw1&@F6}edh<R%8IsCz|2s6!FaWW>Sy?AWc8_U(1NQPT{x+_DT#hB#Q(psej^ zzJmp5ePoE8J;ukSiI<R(GjqFkAa`#GZnejfO<AhFc3WfBQM$pe3K=e3Oud7x1glpu z!}!^nf;#c1DtlvVUoUBF-rIJ-HW6gYqlZR(%ZJpSfM!6)&~|_;v;@8Ofe)9Gx*Xua zfl&pG3=|lZ#2aHCkoQ4aP$qN=a7oNMxF(;t==Q9k<J8*FoQ2>IM~w#ab|oFVt^Qwc z>mzS4^$@Mr$kwzvRz#0xNyi-f|N2%mf9@?{Uffh^F6WUhG_;O*89*1mhrT@!Ce^II zuSrg_JzP9M<wGC)SODO1&=)O1mrtnLo~@<=Viu;qg{;%a6kn-FR7~BlOgV=nMX!o> zvgmWaDgmgL>UnX)9=Y==QrRQ*>*fKT`kEJ$IXRp7bXRcx2)(-(RIv@dBw{2<GHS5@ z1Hg@z52u^~_p|jm25xs&vbL{f=vPR0mfA9yP*S?}0w8dyqgeazYnW!+`0q%qjNPx( zvrQz<IlGP_nQRV|(g~GMSL>8wmDRBtqR9l}rcDEO?_Zg6yMS37md&pV4iW*V;xs{Z zd@ck!J|%&x%ldBqV*0uNpz*(u0oMTYM+xSO*$d~Mxcx9GcJ$ogF2UN*Mes;4Kta3e zKc)_F``q~|s2Sp60fFHhRgps5pf0OOU47b=40pTbk#q4ce$`#$lx>}dNeu(ylcOyF zpI|uwhu@r5Db#?{j(?!2k^pN@lqk^s3wRNBH1zlLw6Rj>O@wn<vNn5CG=GnE>oHVv zs|vF!oc^ZuQ3L{BngoW%EWmZq#39!zaV9?~t%i#yH_thUx8ryJX@0un01)#xO&>g( z1!`4=Bnfb&<-YsDD!HB{!q$ETBcji96dQYCQUj@G6O;2-=wXsL8LH0>hs$ixgyH2s z1xjcK+-p6?@$sQ|HuYdVaM@z?(g0?7iG~KQC8W0x%Ya|nxDw&`z2WJ={C&E3R=e-^ znv9No`IWEO)?d7;jjS1Oq+?^Zs=9dC>`PwR)q0i6W@>C}f$!Skz^X^@R?j*zG|U~m z2N^39mJPOS)h_lA)%;}XbdAoskwYTscI)=|yC$PNCkpDa>zs?r0wUKOFmb29*(X!G zYFo5eJqECxuhrrf!9**0AGxah3H}3VHegKv%M6s03@;Mo8bJP&2XZI))I^h4-mw7- zL}-^=J;0BQ`EURA@|9`8vw9C7=bm$@--1^0e4lmyHcUsT`n;2Fs{7T_4tT}BnVhxZ zOXAjW$@0#Wfv<4vQ?bGII(HioSp3F+LtyvknGz0WvQP<FBL9tru_=U?hrG+|F35+e zumL~perYfvF!`_Lx}WQ14GmUxk50UmqI>r+S)k=IG|PPVcA!m0?Vh~g``pcM6(&0q zTIf)SkiePA&Y5X;#WEwhvuqC=C?Es)4*c<-#~y;-0tcQ`ps<E8juy}i>3F}<CjhF( zZPG$!1A5Opy!N(7t~pcgHd7_lC9+xk1zbPm58FAtt(%nlH?WtE;B}oaNv7KitjHs@ z_ze_t3zc4155tl{p|SNP4mig`?t`5Y?bF)9tRh8sb#tKt8{bVuHue~Ny%G9Uq?vJW z?Q_LqU)W@J?sMpUS%IQ^8R=74^6?o(_1&4PgXL0tV_G8|`?tNAxDq<~>Ge`AGLreS z>2**C(!q6*jk7uY3Ze2LbTFu)ee%jv%LEDAD||Z8ViGJPCH&U3Q9pCU0wvR7`dAO2 zlT59$NdbEO`iu%P1{O?dDbUm26#Z{N^t<(ri;zH~cojsNt#QIt`@l``Jptw4*#LPQ zB1NK>agnRnQgAWu?mBs2xSMNquv6gUsgjBb<6R1vZ2p+|h_0iN@_uWxouL{QgI!AY zU}0H4aR{9SAFf!vyaIKj$5_74&A>`#@MvDjT(1+nHF5Yv3mBW_a6#Ip5XW-npq@{x zio@*m=*rCcw%U|`<OFoTKhKsh*WIb7itYQ)aeX%=U=o$l_SY?=6x)urIG+6^w3Uss zHyxr52Z`X`{i<^^<k>q)yRW8xN=7U2<aWwjxEx6U*<~{5=NXaB_IqQha=E^f%}y8A z`P?NdE%2liTAxI13xck_%N9qCr8@+8wOGKTDJi|OH#s&&^};huWPpyO6osbgSWtba zwTG-}w&@}Q;=*$%)9goz(Y~-G8v3J)Dx{jyLLe*Ze1?`t8rm0@w3Uv#wu0Q+uaMyI z#$DH8$iHchHua!X6B$Riak*Y%Ce%Fg=NwGKJf7h7^J+51y5hNFWg?8%{b~>QIb25| zkCYk_q!l{?&$mg_Wej-CCU`DR5ZC7}Jej?_sUdHGCKR_^mHndoY3P7<$<ol64GM5) zrEV~m<r9mp6{-)ybW488(>%iW2lZ-$Ji5XjX&%@*j<c5{fnMX3e;05scO_Mc7=rpp zP08s<7K7_&Jb+qs^S_#1@{#q>X6otTp;g4H&Qa_u&mGXNBE^Xz4P5$|I_5C9&6si? zaE9Kvh*m`-dL{F9!697j$g_c~(m_N}x%=GLuBXa|!d-}fXX>!i!Fs8Dz41Sn>yFPa zRW(zi?=Glq%M6M$dwO!M-b)oZqcpl_u+`nF(pevYOk1iqyXh2;x9mCY^jI`m?%O%L z9W$I@W`v#i47D=#%wdD;v3hu`)9r)#3cwE#N0Z&-haF@vvg)q>)O9kqk<Z>I>-fyg zRX&aZ&1FCb>GtTVVhO%68`s6SS^y$N@cG>feANk<uj_iHCw3hpNfsvmR*Y8S|97fo z%haRXi)dps0uAvnZ_)t&lUjJLX<Gg0#3NrA!58-TjY08<byiu<GJSpWjp2gIoiG#4 z8Qp26WspU=Ls6LV;~#p)>)2||46fR}<N3e-+iIZxp+!AO5tt~H0Qj^6JPz<c=x=}k zc-9P+8I;FruM_&;s{N0|%a}1*B{wKHb2fmCc#Z<%3OaB*Z$1T7wlhnf;a<OC{_$Of zXbGc{Rb$I&XKv2o^vA(<VtJA_FE&1}$qzdiJJ+RNwOFyAKHHI_`EuSpo`r3rY(xDI zaL<?nk2dsO|GEv*9TGbFG&A5vS608Crk?@xg^mECG9nQ!8o$I^Vj4X<0UPuq2d@WC z^{0i^l||E6GYp6$c^@VI2mEGUoFr^2cf{a#v3gqz;3VAm-Lc!YL+mA|Frb)Uc5%X$ zG3{GsKWUd3vLcab_IaKVtJGt*e@D$`57he*6(ZrOU?{EGI!;*Q#{+O(VAO&BwlPN@ z&0O8GP8!d1ZID9imgOc>BymLtfeG~g9QfbS_*VX_XP$0g@yC)jtD=no^EBRa5fkk+ zPp#XI0YP-no(yV(ocjC#)5UwGk?Pe>rP19ZA{3+W^=hGhtqVOrZM{3s25Kh=2Csac z{4OnzY*kjyaskV^1F}AUMT(FFOu3`W+SJepGsIOs&|q%S;3^5|R~{TsF<YD($dE~D zYM=~wo-~&U2AvpQBR;b+^0AV0wJ}nU+e{q#K6uqE1plsYUOBl-G9z9yQ;<k&nf!4m z)zy1tmFhu5Uw~DBJlu{opX`Y5Bnq|jT_L_>ux=*OWA5h;*XE60_-}yq;*_E3(xU_V zXyX<$<7lTC-(6g>iM!7ED?BQ}%z|XgsP_8oE^&V-nbUUQQeB`qmZV~CAP<s8_uk*r zUtuZ6^Qym>aY%}FFZDXI1H|l5mNFM}AtFvVY#4M|$5ri??E4CU%V@jh3WV=c9<vK3 z-Rj7RR)*B)RZU=@8hJ$%B;s^GpCn1>NasuBy?qTjd(9{TKG!@zU2=WJy$l1N*O;@1 zkz&d&P59)>z%5LD#K58gv?Y7nMpx!K{fC|Y=>;77R=OHm{=`1;`i=(w;BW;j-IsK? zea+{%V~!xBWk9|BrMy)mBo`upp!Kl{k8bYe0}qoVUf#Ab?y)fZs|85)^K`y!OSmeq z`ExlDMyVV3q2X#Ca87^93SRMdqFPGOipsZ|T!|#90$qjek%oUVst*?hsr}EUp85Wo z@Xn8w+$xiwndt37`xMxa<f(PbJ7DG0d2h%?d|M56%{U$-Z7LR>sE;<veQ*F|t5s3? zJXjt+knq0aHXGo61)|njo+}xL&>`umIuk{!>`;5GRU+s?XfJ|aN#k@p<UJXG@V|V! z0E*o_`D?GYv|Qd}Os4OTqp8<-tc{ZeAi?<HXA=4nN;5zkd=@8>-eDl#w-rjSgKyjZ zBN<Q+rLV2Hzr-ZkG|cG+pA_}p@uEf@jTx-{z70FI@cCQtL%_)Nn;Z929e4?ZFbaBq zD#Cblw*9*5?Wyjb(U-L*b-#?fwV)l|0$0do&P8fIW-n#`=zI-%&QkE3JNzJBgxFkD zGM64Q{Q+U3p)lsJ`ao$vU4qF*Pz?tyR9z%mpNbF0%6+rQaVIcCNA^vBb|#j@FRUm@ zZf}cP?saaBRsa|)yDpg2f<Gu7s0BW)ULQeaW5dN^@<y4IJc>cly4;}ljepwQKBgrj zi2iIB(1LQGy3*1|n1CT6*}wA>bfxnp@)dL(<ual{D(~~PU+hn}dg$I0e20ZkGXXJM z%yw=Og>y9?KT11>n<BhtGw_XdpRO#{wVZPq+=rwr+Z^=oa;yuC)fqHO(OK4rYo^-D zG&Y6$1NeO<v65rgj-rZi!q*fW8=X}n3c12k*)p+RuaK1SMap0|<MN)`RHLx9N+08> zH`xF;z<7y)zmbOZM;*onIJR+mkns5K+dE~~xGxt6^GR(Q3X8zoU4CCdQz0YA_+z)_ zb@1|wilAmasK~rU=ZgQ2vhlm``9|805+|XJxN@p;T1(B3xEb&Ht7TY5I)7x37+#Ic zzx4s`XNO|+wNY}XfagT0QBer0DO6eh;u&-JI7cN0pH$#pbmMv0Bj_4js9oC4?$sr8 z6c+%OSK@bXFjN)w{$AG^cMPyu9C;rC;DaUciKMbnkgh&7%wJf>ASvP+Z2KgH^QWbC zB-C{N;f<V7uZ-{x7>i_}5yovaTf)%n<fjFS%cbmyZx<lx<OAydj#l$0x9)!di0pxa z6sdGRA%}&d`H1`XaX;G%^pg3=vFEAy&hbThvCU)sJ(7W{9x4x%6f9j|h0fF|nS$l` z0NnGyyQv@}9Y^Q}qHe_t%_(WLY^*-~$yuLOvw^>Eg8H_OH6%t0fV)kP^}PD*uvYT& z(bDNoar<en#2T&i!TtNv%go_DB9KNCe7JBc%ul56yMMkf3^KIDG{L&rjGmu;UTtv= z!Jpnkiyun`nlmR|U~oX|lyyMWy}TXT3~uGo)o?Cue2BmdpTZ}*s^?`S{J}yV=Vh4! zE~L=|sK-f!E^9u-*XJ{m_0>GSxMPdghU`O!zUUtGm|oJB2wQPDm~-Ag;G$J(A}Qfp zc_Ivj0=&QcGBr6E*en0FMd=V?O?;K%MDLS^y;mP?R+(Roj%CxYWB1a~G|;#>JLQeM zBoxu~FGyO(0JqCI$C&N%&d*A21Zk|<exBZm-2N3pv11z<xS#Kq29Wn(ns47b7rC8x z$LZk+`RpXVzh(Hp#QUL@PYO1at4tn^x1Tp+nLC(pUE$TV(1;iuZVoou;~SumsfkfC zy)C2gOR%dVNNy-XK2*4n8}#?9z$tBI?k78gKg*qJC-&5LRrIqo%b0Xw4s<)Ifmy|H zc(i{u>j)3UC6if4u{WE<DULWS_&2#aX+)e{An>=IT~BM~nd-g5%H+POxkEI08A?gj z3S+g7GNyaU-KtXz_EnGrfo=>Yg+5rDFF*vPW!Mv6Qd<}u@Du%NnOtI&SYH7ruw?*H znT;7tWONsDO=5|fszRYXTY}v7osB%ze)#wh9UhNBJ__o2eU)qeu>PJg+McAtsDr4_ z4C?@{K5V4IaA`Z2W{bjEABRGIQo4lHMKnq{Cgun-DlE!Z0Etghq3bbCKfewfe7&;o zn=h61ftVA~LHT9X<v5`R3My?JE~&ZYSW+soiz-zjQgKjs;03EDUJ0`x06cX@El>s7 z1>tgXNy~Mfg=fAjbjrT|M+Ky)FVDu7Ux@UDt%7~o`O{=BWur*%H?9@XV4o9qx~0BQ z{KFi(eLZITq|=RZ+&e1ymL1pDlnU5+q*qUsOX{k{B$;7dISkM(Kgvn$XAPHdKgnk! z%cI_i!I{Wzzv`l6iYdcZ0a<AKJ{%>9pFHg+%R<FZa@eimd*WwS4%xdJp@9ItDm$&? zCZ1N-98;QV7P%M*n*a?j)>CTJWtanuW9Hd~wy@45DM~kCy||1BFuMQjAqMzSIli#_ zH1vJThAhZh_dGR<<pS68{3y_4sLOj^cOUs?fO7WJxCHyU^%d?~Z&^%aNIUn-JO@P9 z-BB__viBiUPU(>~QYBbUNu#&r`EbHF-HE==!t6#Xb-k@PXVo|)ML&5Vft3!wUxdQb zh|H%b?e*^^KNYeYav4Q{20yJUUXfzh^KNc)@xZo_j(|L|jPw~xc5V5@Dwt4T2~t_3 zeT$IgyL{=IMx3{oOO#i&u`2eVFX>%j14_|*Fi0n0Wq~520#<)#5g5Mt<4SKW=ovqq zRb;nQ50`r!t8DwLhWzWAHSXHG0-X=IYn=u6LvY7ikd0`Zceo?+`{@$1*ArD?dxMQI z0assf(m{Sgjh662;8Gd`1G{<B+mpV>npK~|AztGCDWv($J*a~&@6T;1izB1<&XPQl z2K$}maa>bOG)NgzufU{U+z2cei#Z9C0`rjmOdR+s2&i!^IspH}^Gsj!aL{L@LtQlv z7z?FbzZ9_|vKtf`wmi4rIC|9SFfN~XQ(MvG0_ydw<-GZV`*(4FH6pQTWKIof-*pGV z@$IP;e<RGU3;t2+2xJnnRS^vdi<w|Tr)^&_D~m{hB;LRFQXtAvc#aLc3V5JvWStWQ z4YcmEy6A#(WFpCp-T;7<cCk1=wROXSa$BpkhU3X*S7SGQ?tC>!%nyLLY6mDPDp_WA zJk1xX+5#!sUO-s$DJu8w0w1in=Kf_WfJl&!TsIcH)a~7Gvd2>{)Uj6rjUgTIkIIfB ziow<6iptzC40`?D9*2}@EuB=usXa(n*2rM-fw2fcEEoat)5}Dy(K!l887Dh+N@4#E zng!O4tru2b0j!?2UTwOPc^;^AI&G?!x~UIeO{DVYuNXtFk9axz)9T?9U}5LffhWJ5 z$l5a=taDF+TscvtrhGi^c$}y_jsmwpY)v%cdJ$Oza!h}H<C`?es#4US;x5O#pI8X# ztNzw<OTg1k9LaSJdTIiFnjtq>3#Hi&c?MF2b}s>R*t)BbDC{qZJ0o7vi1_;OfaoDG z91Bu)prIiJu}jKXGC%Akz(F4xNI`Jh^RlO9Vx+*DwiJVaW6U7=8eyt2VeW2wrOeT> zqQtUqSWF_nn5T$6w|^i(Y&P4u`}hwi1e`79qN(&&8<Y6n+e~wWRLP<9R?`e;O#nb> zlm{8;Y)h1OI+0fy39vg>UvUE+pdrH#48!B;E7@F3-!{Mz;Lt8vZr70fabU02GiVin zhUc#_gj+(f$Ef;IvLGfS_Sz6xZU-2;EQ6b`5S#71#&x13x3h+i<nzWS3$1{Ltb?xv zYfNE~(i*Y`0HxNyU5%S-b0vj|u!55|^VXKE)7s{r+!=E=`VUJt!{W3WYp4``iiR$> zJKa9oxYy?S#sWZ+aLkr#Oi5v%P~&a$s8y%e#nIj;Ea5%y1>2e^EBJV*(TM%-LT;P0 zzy})seFk4_rssrIAJB#Slr$FS0Qq>)9|H^`1ADu#rne1}e>kB~qwjYoGDOz;u5{gW z?AlSd**=$6Ceoz=+LGV;l3p<FLluAD#}lv+z8Hyf7~(hqM&c$nD}SxheB_XlNIC_c zht)v<5O)M(;3FFd#GrRBeu}8oGFLU>pNIJ}S<2<9DUCa`&ZY$Di+;N@Q6E1`Dw`9) z)g&P(>KT}TA~%l1P9P({9d$$VaOfl?KwU%GF14O*aaP#W40=E}0Q1<}ea)X7xVo^B z%PH87Ti4ROE8|<EhacHNkzOl5=@*JBntV29k3IkU^bhKhONUp@A>VN0Tqf`jj~CPA zrl0Bn@3x=P8nk9n-w6T;&6F3#t{X99uN)53>Buu$DJ@mr<O~P}0%=OZ4-3y?0`6Ha zDof9Al71s&;-;vDnO|;0fj<%mZ`(Z*ON7#O01G{*Efyeced_Ssi$U_KUZ<EyrC}d< z1Fz0Ay@rfS`bdML&5?NEM7>e?JF~a`8dvM*7JqmPAH_F`^+7>v{S%N{^#~(7R{+`- zY~M$j16WscgM;SlgVq2yHsO#cmBmv`D4>gI$!B~|#!lCGFbK~9c<Q(FfbjEJH@S`l z3?6@>5tY1V2WV*P01w(&tajxc=maN#_rO=kH)*gZPquI2n39HNpoEV^BMSx6s)O<7 z4XWyq59!nc4Vp%KUU7SZHS*<zcsi@Zoy8|9w$!C$R9}jlVMhfx3NtuBsvakj_EG#m z#=Ua)zfBk0LRTb$&fp-JxxcJ*H6Y6EcCsrtb}%Q{D5k4RF3|JtKcSdm+swx&);Lgx z05ub3@0Gze0qtLr4<SQ(1-N)`zhjAP!i{sX3v>Qa%~6VBRFLdYLi25H@W;j>lUoI5 z(=Qj(&A0m^w≀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�d3 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 MEso?L`sM2X0}c2REC2ui diff --git a/docusaurus/static/img/double-satisfaction.png b/docusaurus/static/img/double-satisfaction.png deleted file mode 100644 index a75a0ba20fa917920357e557087a7e37d8ffbfde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18293 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 diff --git a/docusaurus/static/img/first-bid-simple-auction-v3.png b/docusaurus/static/img/first-bid-simple-auction-v3.png deleted file mode 100644 index 090947d2917aaa1aed3e61b6ec3a519e8968c0d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 139034 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 rB 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 diff --git a/docusaurus/static/img/platform-architecture.png b/docusaurus/static/img/platform-architecture.png deleted file mode 100644 index 4da5fbf4457cb9f332926c0f2873806381416c41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32443 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 ZW}g4w6(TPVvvH$*`Ak8oP{I)P{{S>Nd2j## diff --git a/docusaurus/static/img/second-bid-simple-auction-v3.png b/docusaurus/static/img/second-bid-simple-auction-v3.png deleted file mode 100644 index 8d5969dd57c64b1449d6915c9f32d75ef68c82db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 164852 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 Q8uUCR1+|+w*Nvb25A(QSk^lez diff --git a/nix/outputs.nix b/nix/outputs.nix index 563c6ce3976..1083c410f8d 100644 --- a/nix/outputs.nix +++ b/nix/outputs.nix @@ -34,8 +34,6 @@ in { packages.plutus-metatheory-site = repoRoot.nix.plutus-metatheory-site; packages.pre-commit-check = ghc96.pre-commit-check; - packages.read-the-docs-site = ghc96.read-the-docs-site; - packages.combined-haddock = ghc96.combined-haddock; } (lib.optionalAttrs (system == "x86_64-linux" || system == "x86_64-darwin") @@ -50,9 +48,7 @@ in (lib.optionalAttrs (system == "x86_64-linux") { hydraJobs.latex-documents = repoRoot.nix.latex-documents; - hydraJobs.read-the-docs-site = ghc96.read-the-docs-site; hydraJobs.pre-commit-check = ghc96.pre-commit-check; - hydraJobs.combined-haddock = ghc96.combined-haddock; hydraJobs.mingwW64.ghc96 = ghc96-mingwW64.hydraJobs; diff --git a/nix/project.nix b/nix/project.nix index c97349103a4..4d986debedf 100644 --- a/nix/project.nix +++ b/nix/project.nix @@ -175,23 +175,6 @@ let project = lib.iogx.mkHaskellProject { inherit cabalProject; shellArgs = repoRoot.nix.shell; - readTheDocs = { - enable = true; - siteFolder = "doc/read-the-docs-site"; - }; - combinedHaddock = { - enable = true; - prologue = '' - = Combined documentation for all the public Plutus libraries - - == Handy module entrypoints - - * "PlutusTx": Compiling Haskell to PLC (Plutus Core; on-chain code). - * "PlutusTx.Prelude": Haskell prelude replacement compatible with PLC. - * "PlutusCore": Programming language in which scripts on the Cardano blockchain are written. - * "UntypedPlutusCore": On-chain Plutus code. - ''; - }; }; in diff --git a/nix/shell.nix b/nix/shell.nix index 44bab32897f..e7dba26712b 100644 --- a/nix/shell.nix +++ b/nix/shell.nix @@ -58,6 +58,7 @@ in # Node JS pkgs.nodejs_20 + pkgs.yarn ];